No more electrical workaround is required. Here is the solution.
Problem is with the kernel that doesn't use the right backlight control method.
When using at the availble backlight control you can see that it uses the TLC59108 which is not implemented on BeaglBone+LCD CAPE.
- Code: Select all
# ls /sys/class/backlight/
tlc59108-bl@
This is confirmed by the kernel configuration of the linux-am33x package (i.e. 3.2.11 version)
- Code: Select all
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_PWM is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_TLC59108=y
Normally recompiling the kernel with "CONFIG_BACKLIGHT_PWM=y" and unset "CONFIG_BACKLIGHT_TLC59108" should do the trick.
If you don't want to recompile the kernel you can change the configuration of the pin that controls the PWM to a be a regular GPIO and then force that GPIO to enable the backlight. However you lose the possibility to change the intensity of the backlight. The following doesn't work with the stock kernel that comes with the ArchLinux installation as it doesn't include the debugfs functionality. You need to update your system to linux-am33x 3.2.11-alarm10. I recommend not to update pacman and udev.
- Code: Select all
# pacman -Sy linux-am33x
Then reboot and issue the following commands at each reboot.
- Code: Select all
# modprobe da8xx_fb
# mount -t debugfs none /sys/kernel/debug/
# cd /sys/kernel/debug/omap_mux/
# cat gpmc_a2
name: gpmc_a2.ehrpwm1A (0x44e10848/0x848 = 0x0006), b NA, t NA
mode: OMAP_PIN_OUTPUT | OMAP_MUX_MODE6
signals: gpmc_a2 | mii2_txd3 | rgmii2_td3 | mmc2_dat1 | NA | NA | ehrpwm1A | gpio1_18
# echo 7 > gpmc_a2
# cat gpmc_a2
name: gpmc_a2.gpio1_18 (0x44e10848/0x848 = 0x0007), b NA, t NA
mode: OMAP_PIN_OUTPUT | OMAP_MUX_MODE7
signals: gpmc_a2 | mii2_txd3 | rgmii2_td3 | mmc2_dat1 | NA | NA | ehrpwm1A | gpio1_18
# cd /sys/class/gpio/
# echo 50 > export
# cd gpio50/
# echo out > direction
# echo 1 > value
Display backlight should turn on.