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
7title: pwm-backlight
8
9maintainers:
10  - Lee Jones <lee@kernel.org>
11  - Daniel Thompson <daniel.thompson@linaro.org>
12  - Jingoo Han <jingoohan1@gmail.com>
13
14properties:
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
64dependencies:
65  default-brightness-level: [brightness-levels]
66  num-interpolated-steps: [brightness-levels]
67
68required:
69  - compatible
70  - pwms
71
72additionalProperties: false
73
74examples:
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...
104