On Fri, Sep 11, 2020 at 05:40:04PM +0200, Alexander Dahl wrote: > The example was adapted slightly to make use of the 'function' and > 'color' properties. License discussed with the original author. > > Suggested-by: Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx> > Signed-off-by: Alexander Dahl <post@xxxxxxxxxxx> > Acked-by: Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx> > Cc: Peter Ujfalusi <peter.ujfalusi@xxxxxx> > --- > > Notes: > v3 -> v4: > * added Cc to original author of the binding > > v2 -> v3: > * changed license identifier to recommended one > * added Acked-by > > v2: > * added this patch to series (Suggested-by: Jacek Anaszewski) > > .../devicetree/bindings/leds/leds-pwm.txt | 50 ----------- > .../devicetree/bindings/leds/leds-pwm.yaml | 85 +++++++++++++++++++ > 2 files changed, 85 insertions(+), 50 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/leds/leds-pwm.txt > create mode 100644 Documentation/devicetree/bindings/leds/leds-pwm.yaml > > diff --git a/Documentation/devicetree/bindings/leds/leds-pwm.txt b/Documentation/devicetree/bindings/leds/leds-pwm.txt > deleted file mode 100644 > index 6c6583c35f2f..000000000000 > --- a/Documentation/devicetree/bindings/leds/leds-pwm.txt > +++ /dev/null > @@ -1,50 +0,0 @@ > -LED connected to PWM > - > -Required properties: > -- compatible : should be "pwm-leds". > - > -Each LED is represented as a sub-node of the pwm-leds device. Each > -node's name represents the name of the corresponding LED. > - > -LED sub-node properties: > -- pwms : PWM property to point to the PWM device (phandle)/port (id) and to > - specify the period time to be used: <&phandle id period_ns>; > -- pwm-names : (optional) Name to be used by the PWM subsystem for the PWM device > - For the pwms and pwm-names property please refer to: > - Documentation/devicetree/bindings/pwm/pwm.txt > -- max-brightness : Maximum brightness possible for the LED > -- active-low : (optional) For PWMs where the LED is wired to supply > - rather than ground. > -- label : (optional) > - see Documentation/devicetree/bindings/leds/common.txt > -- linux,default-trigger : (optional) > - see Documentation/devicetree/bindings/leds/common.txt > - > -Example: > - > -twl_pwm: pwm { > - /* provides two PWMs (id 0, 1 for PWM1 and PWM2) */ > - compatible = "ti,twl6030-pwm"; > - #pwm-cells = <2>; > -}; > - > -twl_pwmled: pwmled { > - /* provides one PWM (id 0 for Charing indicator LED) */ > - compatible = "ti,twl6030-pwmled"; > - #pwm-cells = <2>; > -}; > - > -pwmleds { > - compatible = "pwm-leds"; > - kpad { > - label = "omap4::keypad"; > - pwms = <&twl_pwm 0 7812500>; > - max-brightness = <127>; > - }; > - > - charging { > - label = "omap4:green:chrg"; > - pwms = <&twl_pwmled 0 7812500>; > - max-brightness = <255>; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/leds/leds-pwm.yaml b/Documentation/devicetree/bindings/leds/leds-pwm.yaml > new file mode 100644 > index 000000000000..c74867492424 > --- /dev/null > +++ b/Documentation/devicetree/bindings/leds/leds-pwm.yaml > @@ -0,0 +1,85 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/leds/leds-pwm.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: LEDs connected to PWM > + > +maintainers: > + - Pavel Machek <pavel@xxxxxx> > + > +description: > + Each LED is represented as a sub-node of the pwm-leds device. Each > + node's name represents the name of the corresponding LED. > + > +properties: > + compatible: > + const: pwm-leds > + > +patternProperties: > + "^pwm-led-([0-9a-f])$": '^led-([0-9a-f])' would be my preference. A bit more on that below. What about a single child case? > + type: object > + > + $ref: common.yaml# > + > + properties: > + pwms: > + description: > + "PWM property to point to the PWM device (phandle)/port (id) > + and to specify the period time to be used: > + <&phandle id period_ns>;" No need to redefine a common property. What is needed is how many pwms? I'd assume 1 only: 'maxItems: 1' > + > + pwm-names: > + description: > + "Name to be used by the PWM subsystem for the PWM device For > + the pwms and pwm-names property please refer to: > + Documentation/devicetree/bindings/pwm/pwm.txt" Same here. > + > + max-brightness: > + description: > + Maximum brightness possible for the LED Needs a type $ref. > + > + active-low: > + description: > + For PWMs where the LED is wired to supply rather than ground. type: boolean > + > + required: > + - pwms > + - max-brightness additionalProperties: false That will cause errors if child node names were not consistent (no one checked, so they won't be). We could just allow anything, but I prefer to move things to be consistent yet try to capture any existing pattern. > + > +examples: > + - | > + > + #include <dt-bindings/leds/common.h> > + > + twl_pwm: pwm { > + /* provides two PWMs (id 0, 1 for PWM1 and PWM2) */ > + compatible = "ti,twl6030-pwm"; > + #pwm-cells = <2>; > + }; > + > + twl_pwmled: pwmled { > + /* provides one PWM (id 0 for Charing indicator LED) */ > + compatible = "ti,twl6030-pwmled"; > + #pwm-cells = <2>; > + }; > + > + pwm_leds { > + compatible = "pwm-leds"; > + > + pwm-led-1 { > + label = "omap4::keypad"; > + pwms = <&twl_pwm 0 7812500>; > + max-brightness = <127>; > + }; > + > + pwm-led-2 { > + color = <LED_COLOR_ID_GREEN>; > + function = LED_FUNCTION_CHARGING; > + pwms = <&twl_pwmled 0 7812500>; > + max-brightness = <255>; > + }; > + }; > + > +... > -- > 2.20.1 >