IoTGateway/BSP/Android/Gettingstarted/How to set LCD backlight using PWM
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