mbox series

[v2,0/2] gpio: introduce hog properties with less ambiguity

Message ID 20230530151946.2317748-1-u.kleine-koenig@pengutronix.de
Headers show
Series gpio: introduce hog properties with less ambiguity | expand

Message

Uwe Kleine-König May 30, 2023, 3:19 p.m. UTC
Hello,

this is another approach after
https://lore.kernel.org/linux-gpio/20210503210526.43455-1-u.kleine-koenig@pengutronix.de
two years ago. I switched back to "active" and "inactive" from
"asserted" and "deasserted". The poll about the naming is ambigous, but
I think with a slight preference of active/inactive over
asserted/deasserted (with my unbiased self preferring active/inactive,
too :-)

Rob Herring acked patch #1 and Linus Walleij acked patch #2 of the
asserted/deasserted variant back then, I dropped these as the change is
too relevant IMHO.

In the previous post I had some inconsistencies that should be gone now.

And Andy wrote:
> I like the idea (with active-inactive terms), but...
> 
> It’s a half baked solution. Please use fwnode to cover all possible
> providers.

which I didn't address because I want to change what is currently
supported and not introduce new support. Adding fwnode is orthogonal to
this renaming. I didn't find any other more general implementation that
would affect more than "of" for output-high and output-low. Please tell me
if I missed something.

Best regards
Uwe

Uwe Kleine-König (2):
  dt-bindings: gpio: introduce hog properties with less ambiguity
  gpio: use "active" and "inactive" instead of "high" and "low" for output hogs

 Documentation/devicetree/bindings/gpio/gpio.txt | 16 +++++++++++-----
 drivers/gpio/gpiolib-of.c                       | 10 ++++++++--
 include/linux/gpio/consumer.h                   | 14 ++++++++++----
 3 files changed, 29 insertions(+), 11 deletions(-)


base-commit: 8c33787278ca8db73ad7d23f932c8c39b9f6e543

Comments

Geert Uytterhoeven June 8, 2023, 6:50 a.m. UTC | #1
Hi Alexander,

On Wed, May 31, 2023 at 8:19 AM Alexander Stein
<alexander.stein@ew.tq-group.com> wrote:
> Am Dienstag, 30. Mai 2023, 17:19:45 CEST schrieb Uwe Kleine-König:
> > For active low lines the semantic of output-low and output-high is hard
> > to grasp because there is a double negation involved and so output-low
> > is actually a request to drive the line high (aka inactive).
> >
> > So introduce output-inactive and output-active with the same semantic as
> > output-low and output-high respectively have today, but with a more
> > sensible name.
> >
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > ---
> >  Documentation/devicetree/bindings/gpio/gpio.txt | 16 +++++++++++-----
> >  1 file changed, 11 insertions(+), 5 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt
> > b/Documentation/devicetree/bindings/gpio/gpio.txt index
> > d82c32217fff..2f037bbd3ffa 100644
> > --- a/Documentation/devicetree/bindings/gpio/gpio.txt
> > +++ b/Documentation/devicetree/bindings/gpio/gpio.txt
> > @@ -209,15 +209,21 @@ Required properties:
> >  - gpios:      Store the GPIO information (id, flags, ...) for each GPIO to
> >             affect. Shall contain an integer multiple of the number of
> cells
> >             specified in its parent node (GPIO controller node).
> > +
> >  Only one of the following properties scanned in the order shown below.
> >  This means that when multiple properties are present they will be searched
> >  in the order presented below and the first match is taken as the intended
> >  configuration.
> > -- input:      A property specifying to set the GPIO direction as input.
> > -- output-low  A property specifying to set the GPIO direction as output
> > with -              the value low.
> > -- output-high A property specifying to set the GPIO direction as output
> > with -              the value high.
> > +- input:             A property specifying to set the GPIO direction as
> > input. +- output-inactive:   A property specifying to set the GPIO
> > direction as output +              with the inactive value
> (depending on the
> > line's polarity, +                 which is active-high by default)
> > +- output-active:     A property specifying to set the GPIO direction as
> > output +                   with the active value.
>
> I know this is essentially just renaming currently existing properties.
> But these mutual exclusive (boolean) properties make it impossible to change
> them in DT overlay. Any ideas how to support changing the output level onGPIO
> hogs in DT overlay?

That's a good point. And despite it not working, people do try to
stick e.g. /delete-node/ in .dtso files...

I assume you can sort of remove the existing hog subnode by adding
status = "disabled" in the DT overlay, and adding a new subnode to
configure the new output level?

Gr{oetje,eeting}s,

                        Geert