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