This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

beagle bone black LCD背光没法控制



问题:

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文件。

请帮我看一下问题在什么地方

  • 使用这样的命令没有反应。

    # Turn off backlight
    echo 1 | sudo tee /sys/class/backlight/*/bl_power

    # Turn on backlight
    echo 0 | sudo tee /sys/class/backlight/*/bl_power
  • 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还没做,所以不行

  • ehrpwm1: backlight_pins {
    pinctrl-single,pins = <

    。。。。//填写,从pinmux tool找到所需要的PWM引脚


    >;
    };

  • 谢谢您的回复,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 */
    >;
    };
    
    
    所以是不是别的原因呢?
  • 我看到你用的引脚功能是EHRPWM,我们的驱动使用的backlight使用的是eCap_in_PWM_out功能,建议把引脚改为BBB的P9的42,或者其他ecap引脚

  • 谢谢回复。

    更改了管脚,使用了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? 或者怎么查询驱动到底使用的是那个管脚?

  • 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 ) 

    >;
    };

  • 按照您说的方法实验了一下,结果还是不能控制背光。

    对了,我是用sysfs 接口来尝试控制背光的,这样没有问题吧?

    比如, echo 1 > /sys/class/backlight/backlight/bl_power

    echo 30 > /sys/class/backlight/backlight/brightness

    另外,可以通过什么方式确定到底是哪个管脚在控制着LCD的背光呢?

  • 确定那个引脚控制是看你在devicetree的配置,但是驱动使用的是ecap的pwm功能,所以你只能选ecap0,ecap1 ecap2的pwm

    运行

    板子上运行 cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 964

    看一下结果是不是

    pin 89 (44e10964.0) 00000000 pinctrl-single

  • 谢谢回复。

    这是我运行的结果: 

    (devenv) root@beaglebone:/sys/class/backlight/backlight# cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 964
    pin 89 (44e10964.0) 00000027 pinctrl-single

    另外一个信息就是,我试验了您说的方法,在结果不变的情况下,我又把dts中的配置恢复成我发的附件中,背光竟然可调节了。

    我用示波器查看了一下,背光的PWM信号的确是通过P9.14发出的,我觉得也很奇怪。