Setting Backlight Brightness on Mini2440 T35

Carlos Eduardo
Hey guys, i'm a mini2440/embedded newbie i recently got a Mini2440 (T35)
arm board and want to know how can i set the LCD backlight brightness...
I've tried two ways, without success:

Test 1: emdebian + kernel 2.6.32.2 (compiled from FriendlyARM's DVD:
linux-2.6.32.2-mini2440-20100113.tgz) :

Dmesg (the part that matters... the framebuffer part)

s3c2410fb: devinit
s3c2410fb: got and enabled clock
s3c2410fb: map_video_memory(fbi=c388ea50) map_size 155648
s3c2410fb: map_video_memory: clear ffc00000:00026000
s3c2410fb: map_video_memory: dma=33900000 cpu=ffc00000 size=00026000
s3c2410fb: got video memory
s3c2410fb: LPCSEL    = 0x00000f82
s3c2410fb: replacing TPAL 00000000
s3c2410fb: check_var(var=c388e820, info=c388e800)
s3c2410fb: pixclk 170000, divisor is 17
s3c2410fb: s3c2410fb_activate_var: var->xres  = 240
s3c2410fb: s3c2410fb_activate_var: var->yres  = 320
s3c2410fb: s3c2410fb_activate_var: var->bpp   = 16
s3c2410fb: setting vert: up=2, low=5, sync=2
s3c2410fb: setting horz: lft=1, rt=26, sync=5
s3c2410fb: new register set:
s3c2410fb: lcdcon[1] = 0x00000878
s3c2410fb: lcdcon[2] = 0x014fc101
s3c2410fb: lcdcon[3] = 0x00c8ef00
s3c2410fb: lcdcon[4] = 0x00000004
s3c2410fb: lcdcon[5] = 0x00000b09
s3c2410fb: LCDSADDR1 = 0x19c80000
s3c2410fb: LCDSADDR2 = 0x19c92c00
s3c2410fb: LCDSADDR3 = 0x000000f0

Result: If i look at the device from a 45 degree angle, i can see the Tux
logo and a console prompt (proving that LCD works just fine and it's
initialized properly) but back-light is too bright (maxed out) and i don't
know how to set it to a reasonable (usable) level...

I've got no /dev/backlight whatsoever.... maybe udev is playing tricks on
me and i need to create it manually? or maybe this kernel doesn't uses this
interface and there's another way to set it... i don't really know.

Test 2 : Emdebian + Jay's custom 2.6.33 (vanilla--> customized) kernel

I can see the logo too, no support for buzzer (/dev/pwm doesn't exists),
leds work by writing /sys/class/leds.... , and i see a 'backlight' there
under leds, there IS a level file inside this backlight folder but no
matter what value i put in there, it's just OFF or ON maxed out (0 is off,
and anything else 1--255 is ON, maxed).... found in google another jay's
post in which he's using PWM (triggers and delay_on delay_off) to try to
mess with the backlight in this way, but i tried a bunch of variable
combinations, and when it starts to get a bit dimmer... the screen
flickering starts to become apparent ;( 


What should i do guys? i'm missing something here.... thanks in advance!

PS: My setup is U-BOOT on nand + sd card for boot , swap and root
filesystems.

Jay
Hello,

the newer kernels (at least mine) are a little bit different. The backlight
is registered as led device under /sys/class/leds/backlight. You can
disable backlight by typing "echo 0 > /sys/class/leds/backlight/brightness"
and enable by "echo 1 > /sys/class/leds/backlight/brightness". The speaker
is different too because its registered as real speaker device and not only
as "normal" PWM device. The PC-Speaker-Device is located under e.g.
/sys/class/input/event2 or /sys/class/input/input2

Jay
Another problem is to set the brighness of LCD which isn't possible
normally on mini2440 because the backlight isn't connected to any PWM port
so there is no other possibility than to do it by software. This is a
quick-and-dirty workaround because software solutions for this depend on
system workload. Only a fiew combinations of on/off time values work
without LCD backlight is flickering to much.

Screwface
Hi,

I had a look at this PWM problem. GPB1 (timer controlled) is correctly
wired to the LCD connector. The problem is, as Jay mentionned, it is not
wired on the screen PCB. I thint it is correctly connected on 7" displays,
so it should be possible to set the brightness with it. If someone can
confirm?

Do you think it is possible to connect resistors the same way as for
Innolux 7" (R23, R25) I mean, soldering a small wire from pin 31 of CON3 to
a small board with the resistors, and then connect the two resulting signal
(ONEWIRE) to pin 6 of the STC12LE4052-12I-SOP20 ? I didn't fount an english
datasheet of this component to check if my theory is ok or not.

Have a look at the schematics
http://www.friendlyarm.net/dl.php?file=lcd35_schematic.zip
http://www.friendlyarm.net/dl.php?file=lcd70_schematic.zip

Your opinion?