Re: [PATCH v5 3/3] dt-bindings: leds: Convert pwm to yaml

Rob Herring
2020-09-22T15:57:54Z

On Sat, Sep 19, 2020 at 07:31:45AM +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@gmail.com>
> Signed-off-by: Alexander Dahl <post@lespocky.de>
> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
> ---
>
> Notes:
> v4 -> v5:
> * updated based on feedback by Rob Herring
> * removed Acked-by
>
> 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 | 82 +++++++++++++++++++
> 2 files changed, 82 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..c9316811c7f1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/leds-pwm.yaml
> @@ -0,0 +1,82 @@
> +# 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@ucw.cz>
> +
> +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:
> + "^led(-[0-9a-f]+)?$":
> + type: object
> +
> + $ref: common.yaml#
> +
> + properties:
> + pwms:
> + maxItems: 1
> +
> + pwm-names: true
> +
> + max-brightness:
> + description:
> + Maximum brightness possible for the LED
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
> + active-low:
> + description:
> + For PWMs where the LED is wired to supply rather than ground.
> + type: boolean
> +
> + required:
> + - pwms
> + - max-brightness
> +
> +additionalProperties: false
> +
> +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>;
> + };

It would be best to just remove these 2 nodes. The provider is not
really relevant here and these will likely have schema errors when
there's a schema for them. For example, they should be child nodes of
the TWL6030 device.

> +
> + pwm_leds {

Use generic node names:

led-controller {

> + compatible = "pwm-leds";
> +
> + led-1 {
> + label = "omap4::keypad";
> + pwms = <&twl_pwm 0 7812500>;
> + max-brightness = <127>;
> + };
> +
> + led-2 {
> + color = <LED_COLOR_ID_GREEN>;
> + function = LED_FUNCTION_CHARGING;
> + pwms = <&twl_pwmled 0 7812500>;
> + max-brightness = <255>;
> + };
> + };
> +
> +...
> --
> 2.20.1
>