xref: /openbmc/linux/Documentation/devicetree/bindings/leds/backlight/pwm-backlight.yaml (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
144e1655aSRob Herring# SPDX-License-Identifier: GPL-2.0-only
244e1655aSRob Herring%YAML 1.2
344e1655aSRob Herring---
444e1655aSRob Herring$id: http://devicetree.org/schemas/leds/backlight/pwm-backlight.yaml#
544e1655aSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
644e1655aSRob Herring
7*84e85359SKrzysztof Kozlowskititle: pwm-backlight
844e1655aSRob Herring
944e1655aSRob Herringmaintainers:
102654f59bSLee Jones  - Lee Jones <lee@kernel.org>
1144e1655aSRob Herring  - Daniel Thompson <daniel.thompson@linaro.org>
1244e1655aSRob Herring  - Jingoo Han <jingoohan1@gmail.com>
1344e1655aSRob Herring
1444e1655aSRob Herringproperties:
1544e1655aSRob Herring  compatible:
1644e1655aSRob Herring    const: pwm-backlight
1744e1655aSRob Herring
1844e1655aSRob Herring  pwms:
1944e1655aSRob Herring    maxItems: 1
2044e1655aSRob Herring
2144e1655aSRob Herring  pwm-names: true
2244e1655aSRob Herring
2344e1655aSRob Herring  power-supply:
2444e1655aSRob Herring    description: regulator for supply voltage
2544e1655aSRob Herring
2644e1655aSRob Herring  enable-gpios:
2744e1655aSRob Herring    description:
2844e1655aSRob Herring      Contains a single GPIO specifier for the GPIO which enables and disables
2944e1655aSRob Herring      the backlight.
3044e1655aSRob Herring    maxItems: 1
3144e1655aSRob Herring
3244e1655aSRob Herring  post-pwm-on-delay-ms:
3344e1655aSRob Herring    description:
3444e1655aSRob Herring      Delay in ms between setting an initial (non-zero) PWM and enabling the
3544e1655aSRob Herring      backlight using GPIO.
3644e1655aSRob Herring
3744e1655aSRob Herring  pwm-off-delay-ms:
3844e1655aSRob Herring    description:
3944e1655aSRob Herring      Delay in ms between disabling the backlight using GPIO and setting PWM
4044e1655aSRob Herring      value to 0.
4144e1655aSRob Herring
4244e1655aSRob Herring  brightness-levels:
4344e1655aSRob Herring    description:
4444e1655aSRob Herring      Array of distinct brightness levels. Typically these are in the range
4544e1655aSRob Herring      from 0 to 255, but any range starting at 0 will do. The actual brightness
4644e1655aSRob Herring      level (PWM duty cycle) will be interpolated from these values. 0 means a
4744e1655aSRob Herring      0% duty cycle (darkest/off), while the last value in the array represents
4844e1655aSRob Herring      a 100% duty cycle (brightest).
4944e1655aSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
5044e1655aSRob Herring
5144e1655aSRob Herring  default-brightness-level:
5244e1655aSRob Herring    description:
5344e1655aSRob Herring      The default brightness level (index into the array defined by the
5444e1655aSRob Herring      "brightness-levels" property).
5544e1655aSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
5644e1655aSRob Herring
5744e1655aSRob Herring  num-interpolated-steps:
5844e1655aSRob Herring    description:
5944e1655aSRob Herring      Number of interpolated steps between each value of brightness-levels
6044e1655aSRob Herring      table. This way a high resolution pwm duty cycle can be used without
6144e1655aSRob Herring      having to list out every possible value in the brightness-level array.
6244e1655aSRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
6344e1655aSRob Herring
6444e1655aSRob Herringdependencies:
6544e1655aSRob Herring  default-brightness-level: [brightness-levels]
6644e1655aSRob Herring  num-interpolated-steps: [brightness-levels]
6744e1655aSRob Herring
6844e1655aSRob Herringrequired:
6944e1655aSRob Herring  - compatible
7044e1655aSRob Herring  - pwms
7144e1655aSRob Herring
7244e1655aSRob HerringadditionalProperties: false
7344e1655aSRob Herring
7444e1655aSRob Herringexamples:
7544e1655aSRob Herring  - |
7644e1655aSRob Herring    backlight {
7744e1655aSRob Herring        compatible = "pwm-backlight";
7844e1655aSRob Herring        pwms = <&pwm 0 5000000>;
7944e1655aSRob Herring
8044e1655aSRob Herring        brightness-levels = <0 4 8 16 32 64 128 255>;
8144e1655aSRob Herring        default-brightness-level = <6>;
8244e1655aSRob Herring
8344e1655aSRob Herring        power-supply = <&vdd_bl_reg>;
8444e1655aSRob Herring        enable-gpios = <&gpio 58 0>;
8544e1655aSRob Herring        post-pwm-on-delay-ms = <10>;
8644e1655aSRob Herring        pwm-off-delay-ms = <10>;
8744e1655aSRob Herring    };
8844e1655aSRob Herring
8944e1655aSRob Herring  - |
9044e1655aSRob Herring    // Example using num-interpolation-steps:
9144e1655aSRob Herring    backlight {
9244e1655aSRob Herring        compatible = "pwm-backlight";
9344e1655aSRob Herring        pwms = <&pwm 0 5000000>;
9444e1655aSRob Herring
9544e1655aSRob Herring        brightness-levels = <0 2048 4096 8192 16384 65535>;
9644e1655aSRob Herring        num-interpolated-steps = <2048>;
9744e1655aSRob Herring        default-brightness-level = <4096>;
9844e1655aSRob Herring
9944e1655aSRob Herring        power-supply = <&vdd_bl_reg>;
10044e1655aSRob Herring        enable-gpios = <&gpio 58 0>;
10144e1655aSRob Herring    };
10244e1655aSRob Herring
10344e1655aSRob Herring...
104