问题:
beagle bone black LCD背光没法控制, 所以在系统要关闭的时候,没法先把LCD屏幕黑掉,屏幕显示不需要的信息。
现象:
1.
/sys/devices/platform/backlight/backlight/backlight# dmesg | grep backlight
[ 17.767805] backlight supply power not found, using dummy regulator
[ 17.856816] backlight supply power not found, using dummy regulator
[ 31.508684] backlight supply power not found, using dummy regulator
[ 34.371138] backlight supply power not found, using dummy regulator
[ 34.435368] backlight supply power not found, using dummy regulator
[ 34.770638] backlight supply power not found, using dummy regulator
[ 39.065909] backlight supply power not found, using dummy regulator
[ 39.119089] backlight supply power not found, using dummy regulator
2. 设置 /sys/devices/platform/backlight/backlight/backlight/bl_power 为0, 但是LCD仍将显示图片
(devenv) root@beaglebone:~# cat /sys/devices/platform/backlight/backlight/backlight/bl_power
0
3. actual_brightness 更改数值,不起作用
/sys/devices/platform/backlight/backlight/backlight/max_brightness
100
cat /sys/devices/platform/backlight/backlight/backlight/brightness
5
这里改成0, 背光也改变不了
4. 把9.14 管脚的值设为0,背光也在。
附件中有我的dts文件。
请帮我看一下问题在什么地方
Cason wang:
使用这样的命令没有反应。
# Turn off backlightecho 1 | sudo tee /sys/class/backlight/*/bl_power# Turn on backlightecho 0 | sudo tee /sys/class/backlight/*/bl_power
Eggsy Pang:
backlight { status = "okay"; compatible = "pwm-backlight"; pwms = <&ehrpwm1 0 500000 0>; brightness-levels = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 >; default-brightness-level = <100>; };
ehrpwm1 这个引脚pinmux还没做,所以不行
Eggsy Pang:
ehrpwm1: backlight_pins { pinctrl-single,pins = <
。。。。//填写,从pinmux tool找到所需要的PWM引脚
>; };
Cason wang:
回复 Eggsy Pang:
谢谢您的回复,dts 文件中有这样的片段:fragment@2 {target = <&ehrpwm1>;__overlay__ {pinctrl-names = "default";pinctrl-0 = <&bb_lcd_pwm_backlight_pins>;status = "okay";};};fragment@0 {target = <&am33xx_pinmux>;__overlay__ {bb_lcd_pwm_backlight_pins: pinmux_bb_lcd_pwm_backlight_pins {pinctrl-single,pins = <BONE_P9_14 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_a2.ehrpwm1a */>;};所以是不是别的原因呢?
Eggsy Pang:
回复 Cason wang:
我看到你用的引脚功能是EHRPWM,我们的驱动使用的backlight使用的是eCap_in_PWM_out功能,建议把引脚改为BBB的P9的42,或者其他ecap引脚
Cason wang:
回复 Eggsy Pang:
谢谢回复。
更改了管脚,使用了BONE_P9_42A 或者BONE_P9_42B,结果仍旧是没法控制背光亮度
/sys/class/backlight/backlight
bb_lcd_pwm_backlight_pins: pinmux_bb_lcd_pwm_backlight_pins { pinctrl-single,pins = < /*BONE_P9_14 (PIN_OUTPUT_PULLDOWN | MUX_MODE6) gpmc_a2.ehrpwm1a */ BONE_P9_42A (PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* gpmc_a2.ehrpwm1a */ >; };
内核使用的是这个仓库构建的
git@github.com:RobertCNelson/ti-linux-kernel-dev.git
请问 怎么判断我的系统中使用的也是eCap_in_PWM_out? 或者怎么查询驱动到底使用的是那个管脚?
Eggsy Pang:
回复 Cason wang:
MUX_MODE6模式错了,试一下
bb_lcd_pwm_backlight_pins: pinmux_bb_lcd_pwm_backlight_pins {pinctrl-single,pins = <BONE_P9_42A (PIN_OUTPUT_PULLDOWN | MUX_MODE0)
>;};
还是不行再试下
bb_lcd_pwm_backlight_pins: pinmux_bb_lcd_pwm_backlight_pins {pinctrl-single,pins = <0x164 ( PIN_OUTPUT_PULLDOWN | MUX_MODE0 )
>;};
Cason wang:
回复 Eggsy Pang:
按照您说的方法实验了一下,结果还是不能控制背光。
对了,我是用sysfs 接口来尝试控制背光的,这样没有问题吧?
比如, echo 1 > /sys/class/backlight/backlight/bl_power
echo 30 > /sys/class/backlight/backlight/brightness
另外,可以通过什么方式确定到底是哪个管脚在控制着LCD的背光呢?
Eggsy Pang:
回复 Cason wang:
确定那个引脚控制是看你在devicetree的配置,但是驱动使用的是ecap的pwm功能,所以你只能选ecap0,ecap1 ecap2的pwm
运行
板子上运行 cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 964
看一下结果是不是
pin 89 (44e10964.0) 00000000 pinctrl-single
Cason wang:
回复 Eggsy Pang:
谢谢回复。
这是我运行的结果:
(devenv) root@beaglebone:/sys/class/backlight/backlight# cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 964pin 89 (44e10964.0) 00000027 pinctrl-single
另外一个信息就是,我试验了您说的方法,在结果不变的情况下,我又把dts中的配置恢复成我发的附件中,背光竟然可调节了。
我用示波器查看了一下,背光的PWM信号的确是通过P9.14发出的,我觉得也很奇怪。