IoTGateway/BSP/Android/Gettingstarted/How to set LCD backlight using PWM

From ESS-WIKI
Jump to: navigation, search

1. How to set the pwm-backlight?

pwm-backlight bindings

Required properties:
  - compatible: "pwm-backlight"
  - pwms: OF device-tree PWM specification (see PWM binding[0])
  - brightness-levels: Array of distinct brightness levels. Typically these
      are in the range from 0 to 255, but any range starting at 0 will do.
      The actual brightness level (PWM duty cycle) will be interpolated
      from these values. 0 means a 0% duty cycle (darkest/off), while the
      last value in the array represents a 100% duty cycle (brightest).
  - default-brightness-level: the default brightness level (index into the
      array defined by the "brightness-levels" property)
  - power-supply: regulator for supply voltage

Optional properties:
  - pwm-names: a list of names for the PWM devices specified in the
               "pwms" property (see PWM binding[0])
  - enable-gpios: contains a single GPIO specifier for the GPIO which enables
                  and disables the backlight (see GPIO binding[1])

[0]: Documentation/devicetree/bindings/pwm/pwm.txt
[1]: Documentation/devicetree/bindings/gpio/gpio.txt

Example:

    backlight {
        compatible = "pwm-backlight";
        pwms = <&pwm 0 5000000>;

        brightness-levels = <0 4 8 16 32 64 128 255>;
        default-brightness-level = <6>;

        power-supply = <&vdd_bl_reg>;
        enable-gpios = <&gpio 58 0>;
    };

In ELAA, you can set it in kernel_imx/arch/arm/boot/dts/imx6qdl-advantech.dtsi

...

        bkl: backlight {
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_lvds_bkl_1 &pinctrl_lvds_vcc_1>;
                compatible = "pwm-backlight";
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                status = "disabled";
        };
...


2. How to check the pwm-backlight path for Android

The pwm-backlight path is at /sys/class/backlight/backlight

We must make sure the pwm-backlight path is correct for Android.

For ROM 7421, the related file is device/fsl/rom_7421_a1/init.rc

For ROM 3420, the related file is device/fsl/rom_3420_a1/init.rc

....

# Default backlight device
setprop hw.backlight.dev "backlight"
# Chmod/chown FSL specific sys entry
chown system system /sys/class/backlight/backlight/brightness
chmod 0660 /sys/class/backlight/backlight/brightness
...


3. How to control pwm-backlight from Android setting

Go to Android (Settings--> Display--> Brightness level), to adjust the pwm-backlight bar, then check whether the backlight is changed as adjusting the control bar.



4. How to control pwm-backlight in command line

#cd /sys/class/backlight/backlight

a. check current brightness level

# cat brightness

b. change the brightness level

#echo 3 > brightness

c. check the max brightness

#cat max_brightness

d. turn off pwm backlight power

#echo 1 > bl_power

e. turn on pwm backlight power

# echo 0 > bl_power