xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/leds/backlight/pwm-backlight.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/leds/backlight/pwm-backlight.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: pwm-backlight bindings
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmaintainers:
10*4882a593Smuzhiyun  - Lee Jones <lee.jones@linaro.org>
11*4882a593Smuzhiyun  - Daniel Thompson <daniel.thompson@linaro.org>
12*4882a593Smuzhiyun  - Jingoo Han <jingoohan1@gmail.com>
13*4882a593Smuzhiyun
14*4882a593Smuzhiyunproperties:
15*4882a593Smuzhiyun  compatible:
16*4882a593Smuzhiyun    const: pwm-backlight
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun  pwms:
19*4882a593Smuzhiyun    maxItems: 1
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun  pwm-names: true
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun  power-supply:
24*4882a593Smuzhiyun    description: regulator for supply voltage
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun  enable-gpios:
27*4882a593Smuzhiyun    description:
28*4882a593Smuzhiyun      Contains a single GPIO specifier for the GPIO which enables and disables
29*4882a593Smuzhiyun      the backlight.
30*4882a593Smuzhiyun    maxItems: 1
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun  post-pwm-on-delay-ms:
33*4882a593Smuzhiyun    description:
34*4882a593Smuzhiyun      Delay in ms between setting an initial (non-zero) PWM and enabling the
35*4882a593Smuzhiyun      backlight using GPIO.
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun  pwm-off-delay-ms:
38*4882a593Smuzhiyun    description:
39*4882a593Smuzhiyun      Delay in ms between disabling the backlight using GPIO and setting PWM
40*4882a593Smuzhiyun      value to 0.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun  brightness-levels:
43*4882a593Smuzhiyun    description:
44*4882a593Smuzhiyun      Array of distinct brightness levels. Typically these are in the range
45*4882a593Smuzhiyun      from 0 to 255, but any range starting at 0 will do. The actual brightness
46*4882a593Smuzhiyun      level (PWM duty cycle) will be interpolated from these values. 0 means a
47*4882a593Smuzhiyun      0% duty cycle (darkest/off), while the last value in the array represents
48*4882a593Smuzhiyun      a 100% duty cycle (brightest).
49*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/uint32-array
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun  default-brightness-level:
52*4882a593Smuzhiyun    description:
53*4882a593Smuzhiyun      The default brightness level (index into the array defined by the
54*4882a593Smuzhiyun      "brightness-levels" property).
55*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/uint32
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun  num-interpolated-steps:
58*4882a593Smuzhiyun    description:
59*4882a593Smuzhiyun      Number of interpolated steps between each value of brightness-levels
60*4882a593Smuzhiyun      table. This way a high resolution pwm duty cycle can be used without
61*4882a593Smuzhiyun      having to list out every possible value in the brightness-level array.
62*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/uint32
63*4882a593Smuzhiyun
64*4882a593Smuzhiyundependencies:
65*4882a593Smuzhiyun  default-brightness-level: [brightness-levels]
66*4882a593Smuzhiyun  num-interpolated-steps: [brightness-levels]
67*4882a593Smuzhiyun
68*4882a593Smuzhiyunrequired:
69*4882a593Smuzhiyun  - compatible
70*4882a593Smuzhiyun  - pwms
71*4882a593Smuzhiyun  - power-supply
72*4882a593Smuzhiyun
73*4882a593SmuzhiyunadditionalProperties: false
74*4882a593Smuzhiyun
75*4882a593Smuzhiyunexamples:
76*4882a593Smuzhiyun  - |
77*4882a593Smuzhiyun    backlight {
78*4882a593Smuzhiyun        compatible = "pwm-backlight";
79*4882a593Smuzhiyun        pwms = <&pwm 0 5000000>;
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun        brightness-levels = <0 4 8 16 32 64 128 255>;
82*4882a593Smuzhiyun        default-brightness-level = <6>;
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun        power-supply = <&vdd_bl_reg>;
85*4882a593Smuzhiyun        enable-gpios = <&gpio 58 0>;
86*4882a593Smuzhiyun        post-pwm-on-delay-ms = <10>;
87*4882a593Smuzhiyun        pwm-off-delay-ms = <10>;
88*4882a593Smuzhiyun    };
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun  - |
91*4882a593Smuzhiyun    // Example using num-interpolation-steps:
92*4882a593Smuzhiyun    backlight {
93*4882a593Smuzhiyun        compatible = "pwm-backlight";
94*4882a593Smuzhiyun        pwms = <&pwm 0 5000000>;
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun        brightness-levels = <0 2048 4096 8192 16384 65535>;
97*4882a593Smuzhiyun        num-interpolated-steps = <2048>;
98*4882a593Smuzhiyun        default-brightness-level = <4096>;
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun        power-supply = <&vdd_bl_reg>;
101*4882a593Smuzhiyun        enable-gpios = <&gpio 58 0>;
102*4882a593Smuzhiyun    };
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun...
105