2022-03-31 16:35:36

by Fabio Baltieri

[permalink] [raw]
Subject: [PATCH v2 3/4] dt-bindings: update google,cros-ec-pwm documentation

Update google,cros-ec-pwm node documentation to mention the
google,use_pwm_type property.

Signed-off-by: Fabio Baltieri <[email protected]>
---
.../devicetree/bindings/pwm/google,cros-ec-pwm.yaml | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
index 4cfbffd8414a..9c895c990ed8 100644
--- a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
+++ b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
@@ -19,6 +19,12 @@ description: |
properties:
compatible:
const: google,cros-ec-pwm
+
+ google,use-pwm-type:
+ description:
+ Use PWM types (CROS_EC_PWM_DT_<...>) instead of generic channels.
+ type: boolean
+
"#pwm-cells":
description: The cell specifies the PWM index.
const: 1
--
2.35.1.1021.g381101b075-goog


2022-04-06 17:37:05

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: update google,cros-ec-pwm documentation

On Thu, Mar 31, 2022 at 12:58:17PM +0000, Fabio Baltieri wrote:
> Update google,cros-ec-pwm node documentation to mention the
> google,use_pwm_type property.
>
> Signed-off-by: Fabio Baltieri <[email protected]>
> ---
> .../devicetree/bindings/pwm/google,cros-ec-pwm.yaml | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> index 4cfbffd8414a..9c895c990ed8 100644
> --- a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> +++ b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> @@ -19,6 +19,12 @@ description: |
> properties:
> compatible:
> const: google,cros-ec-pwm
> +
> + google,use-pwm-type:
> + description:
> + Use PWM types (CROS_EC_PWM_DT_<...>) instead of generic channels.
> + type: boolean

Either do a new compatible string if the cell interpretation is mutually
exclusive (channel number vs. type) or split the number space for the
1st cell between type and channel number. IOW, set a bit (31?) to
signify the number is a type, not a channel.

Rob

2022-04-07 20:10:02

by Fabio Baltieri

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: update google,cros-ec-pwm documentation

Hi Rob,

On Wed, Apr 06, 2022 at 10:41:45AM -0500, Rob Herring wrote:
> On Thu, Mar 31, 2022 at 12:58:17PM +0000, Fabio Baltieri wrote:
> > Update google,cros-ec-pwm node documentation to mention the
> > google,use_pwm_type property.
> >
> > Signed-off-by: Fabio Baltieri <[email protected]>
> > ---
> > .../devicetree/bindings/pwm/google,cros-ec-pwm.yaml | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> > index 4cfbffd8414a..9c895c990ed8 100644
> > --- a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> > +++ b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> > @@ -19,6 +19,12 @@ description: |
> > properties:
> > compatible:
> > const: google,cros-ec-pwm
> > +
> > + google,use-pwm-type:
> > + description:
> > + Use PWM types (CROS_EC_PWM_DT_<...>) instead of generic channels.
> > + type: boolean
>
> Either do a new compatible string if the cell interpretation is mutually
> exclusive (channel number vs. type) or split the number space for the
> 1st cell between type and channel number. IOW, set a bit (31?) to
> signify the number is a type, not a channel.

Split the number space was my first (tentative) implementation as well,
but it turns out that the PWM subsystem really wants channels to be
zero-based[1], so I don't think flags or bitmasks are really an option.

New compatible sounds good though, I'll rework a v3 with that change.

Thanks!
Fabio

[1] https://elixir.bootlin.com/linux/v5.17/source/drivers/pwm/core.c#L423

--
Fabio Baltieri

2022-04-07 20:26:24

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: update google,cros-ec-pwm documentation

On Thu, Apr 07, 2022 at 02:38:55PM +0000, Fabio Baltieri wrote:
> Hi Rob,
>
> On Wed, Apr 06, 2022 at 10:41:45AM -0500, Rob Herring wrote:
> > On Thu, Mar 31, 2022 at 12:58:17PM +0000, Fabio Baltieri wrote:
> > > Update google,cros-ec-pwm node documentation to mention the
> > > google,use_pwm_type property.
> > >
> > > Signed-off-by: Fabio Baltieri <[email protected]>
> > > ---
> > > .../devicetree/bindings/pwm/google,cros-ec-pwm.yaml | 6 ++++++
> > > 1 file changed, 6 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> > > index 4cfbffd8414a..9c895c990ed8 100644
> > > --- a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> > > +++ b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> > > @@ -19,6 +19,12 @@ description: |
> > > properties:
> > > compatible:
> > > const: google,cros-ec-pwm
> > > +
> > > + google,use-pwm-type:
> > > + description:
> > > + Use PWM types (CROS_EC_PWM_DT_<...>) instead of generic channels.
> > > + type: boolean
> >
> > Either do a new compatible string if the cell interpretation is mutually
> > exclusive (channel number vs. type) or split the number space for the
> > 1st cell between type and channel number. IOW, set a bit (31?) to
> > signify the number is a type, not a channel.
>
> Split the number space was my first (tentative) implementation as well,
> but it turns out that the PWM subsystem really wants channels to be
> zero-based[1], so I don't think flags or bitmasks are really an option.

Fix the PWM subsystem then...

> New compatible sounds good though, I'll rework a v3 with that change.
>
> Thanks!
> Fabio
>
> [1] https://elixir.bootlin.com/linux/v5.17/source/drivers/pwm/core.c#L423
>
> --
> Fabio Baltieri

2022-04-07 21:28:19

by Fabio Baltieri

[permalink] [raw]
Subject: Re: [PATCH v2 3/4] dt-bindings: update google,cros-ec-pwm documentation

On Thu, Apr 07, 2022 at 11:49:09AM -0500, Rob Herring wrote:
> On Thu, Apr 07, 2022 at 02:38:55PM +0000, Fabio Baltieri wrote:
> > Hi Rob,
> >
> > On Wed, Apr 06, 2022 at 10:41:45AM -0500, Rob Herring wrote:
> > > On Thu, Mar 31, 2022 at 12:58:17PM +0000, Fabio Baltieri wrote:
> > > > Update google,cros-ec-pwm node documentation to mention the
> > > > google,use_pwm_type property.
> > > >
> > > > Signed-off-by: Fabio Baltieri <[email protected]>
> > > > ---
> > > > .../devicetree/bindings/pwm/google,cros-ec-pwm.yaml | 6 ++++++
> > > > 1 file changed, 6 insertions(+)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> > > > index 4cfbffd8414a..9c895c990ed8 100644
> > > > --- a/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> > > > +++ b/Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.yaml
> > > > @@ -19,6 +19,12 @@ description: |
> > > > properties:
> > > > compatible:
> > > > const: google,cros-ec-pwm
> > > > +
> > > > + google,use-pwm-type:
> > > > + description:
> > > > + Use PWM types (CROS_EC_PWM_DT_<...>) instead of generic channels.
> > > > + type: boolean
> > >
> > > Either do a new compatible string if the cell interpretation is mutually
> > > exclusive (channel number vs. type) or split the number space for the
> > > 1st cell between type and channel number. IOW, set a bit (31?) to
> > > signify the number is a type, not a channel.
> >
> > Split the number space was my first (tentative) implementation as well,
> > but it turns out that the PWM subsystem really wants channels to be
> > zero-based[1], so I don't think flags or bitmasks are really an option.
>
> Fix the PWM subsystem then...

It's a good design decision, allows for probe time validation and a good
debugfs interface, I'm happy to have this feature comply with it.

>
> > New compatible sounds good though, I'll rework a v3 with that change.
> >
> > Thanks!
> > Fabio
> >
> > [1] https://elixir.bootlin.com/linux/v5.17/source/drivers/pwm/core.c#L423
> >
> > --
> > Fabio Baltieri

--
Fabio Baltieri