From: Alexander Dahl <ada@thorsis.com>
To: linux-leds@vger.kernel.org
Cc: Rob Herring <robh@kernel.org>, Alexander Dahl <post@lespocky.de>,
devicetree@vger.kernel.org,
Jacek Anaszewski <jacek.anaszewski@gmail.com>,
Pavel Machek <pavel@ucw.cz>, Dan Murphy <dmurphy@ti.com>,
linux-kernel@vger.kernel.org,
Peter Ujfalusi <peter.ujfalusi@ti.com>
Subject: Re: [PATCH v4 3/3] dt-bindings: leds: Convert pwm to yaml
Date: Fri, 18 Sep 2020 17:03:08 +0200 [thread overview]
Message-ID: <4676987.BC07iakZNo@ada> (raw)
In-Reply-To: <20200915203735.GB2453633@bogus>
Hello Rob,
thanks for your feedback. I have some questions/remarks on this new yaml
binding stuff before sending v5 (which will also replace patch 1/3 with a
different approach btw).
Am Dienstag, 15. September 2020, 22:37:35 CEST schrieb Rob Herring:
> 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@gmail.com>
> > Signed-off-by: Alexander Dahl <post@lespocky.de>
> > Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
> > Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
> > ---
> >
> > 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@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:
>
> > + "^pwm-led-([0-9a-f])$":
> '^led-([0-9a-f])' would be my preference. A bit more on that below.
Fine for me.
> What about a single child case?
One child or multiple childs. I found .dts files with one to four sub-nodes
of the pwm-leds device in current master.
> > + 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.
Should this look like in 'Documentation/devicetree/bindings/leds/backlight/
pwm-backlight.yaml' then?
> What is needed is how many pwms? I'd assume 1 only: 'maxItems: 1'
Yes, one pwm channel per LED.
> > +
> > + 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.
fwnode_property_read_u32() is used to read this.
>
> > +
> > + 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.
Child node names follow no scheme at all currently as far as I could see,
examples from real current .dts files:
panel, led-red, blueled, kpad, front, green, pwm_blue, ds1, network_red,
alarm-brightness, pmu_stat, overo, heartbeat, power, …
Greets
Alex
>
> > +
> > +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>;
> > + };
> > + };
> > +
> > +...
next prev parent reply other threads:[~2020-09-18 15:12 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-11 15:40 [PATCH v4 0/3] leds: pwm: Make automatic labels work Alexander Dahl
2020-09-11 15:40 ` [PATCH v4 1/3] leds: Require valid fwnode pointer for composing name Alexander Dahl
2020-09-11 21:26 ` Jacek Anaszewski
2020-09-15 9:14 ` Alexander Dahl
2020-09-15 21:14 ` Jacek Anaszewski
2020-09-11 15:40 ` [PATCH v4 2/3] leds: pwm: Allow automatic labels for DT based devices Alexander Dahl
2020-09-11 15:40 ` [PATCH v4 3/3] dt-bindings: leds: Convert pwm to yaml Alexander Dahl
2020-09-15 20:37 ` Rob Herring
2020-09-18 15:03 ` Alexander Dahl [this message]
2020-09-18 15:35 ` Rob Herring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4676987.BC07iakZNo@ada \
--to=ada@thorsis.com \
--cc=devicetree@vger.kernel.org \
--cc=dmurphy@ti.com \
--cc=jacek.anaszewski@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=peter.ujfalusi@ti.com \
--cc=post@lespocky.de \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.