All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eugeniu Rosca <roscaeugeniu@gmail.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Eugeniu Rosca <erosca@de.adit-jv.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Harish Jenny K N <harish_kandiga@mentor.com>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Balasubramani Vivekanandan 
	<balasubramani_vivekanandan@mentor.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Stephen Warren <swarren@nvidia.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Phil Reid <preid@electromag.com.au>,
	Enrico Weigelt <info@metux.net>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" 
	<devicetree@vger.kernel.org>,
	Eugeniu Rosca <roscaeugeniu@gmail.com>
Subject: Re: [PATCH V4 2/2] gpio: inverter: document the inverter bindings
Date: Sat, 5 Oct 2019 15:07:40 +0200	[thread overview]
Message-ID: <20191005130740.GA22620@x230> (raw)
In-Reply-To: <CAMuHMdVt3yDiJzkbUGMdkKKd4+CJ0btWuO-J=YZL+pAo99_WXg@mail.gmail.com>

Hi Geert,

On Fri, Sep 27, 2019 at 11:07:20AM +0200, Geert Uytterhoeven wrote:

[..]

> My standard reply would be: describe the device connected to the GPIO(s)
> in DT.  The GPIO line polarities are specified in the device's "gpios"
> properties.
> 
> BTW, can you give an example of what's actually connected to those
> GPIOs?
> Is it a complex device (the GPIO is only a part of it, it's also hanging
> off e.g. an I2C bus)?
> Is it something simple (e.g. an LED ("gpio-leds"), relay, or actuator)?

Since the targeted user of the new feature is not in immediate vicinity,
we expect some delay in getting this information.

> 
> Next step would be to use the device from Linux.  For that to work, you
> need a dedicated driver (for the complex case), or something generic
> (for the simple case).
> The latter is not unlike e.g. spidev.  Once you have a generic driver,
> you can use "driver_override" in sysfs to bind the generic driver to
> your device.  See e.g. commit 5039563e7c25eccd ("spi: Add
> driver_override SPI device attribute").

We have passed your suggestions along. Many thanks.

> Currently we don't have a "generic" driver for GPIOs. We do have the
> GPIO chardev interface, which exports a full gpio_chip.
> It indeed looks like this "gpio-inverter" could be used as a generic
> driver.  But it is limited to GPIOs that are inverted, which rules out
> some use cases.
> 
> So what about making it more generic, and dropping the "inverter" from
> its name, and the "inverted" from the "inverted-gpios" property? After
> all the inversion can be specified by the polarity of the GPIO cells in
> the "gpios" property, and the GPIO core will take care of it[*]?
> Which boils down to adding a simple DT interface to my gpio-aggregator
> ("[PATCH/RFC v2 0/5] gpio: Add GPIO Aggregator Driver",
>  https://lore.kernel.org/lkml/20190911143858.13024-1-geert+renesas@glider.be/).
> And now I have realized[*], we probably no longer need the GPIO
> Forwarder Helper, as there is no need to add inversion on top.

After having a look at the gpio aggregator (and giving it a try on
R-Car3 H3ULCB), here is how I interpret the above comment:

If there is still a compelling reason for having gpio-inverter, then it
probably makes sense to strip it from its "inverter" function (hence,
transforming it into some kind of "repeater") on the basis that the
inverting function is more of a collateral/secondary feature, rather
than its primary one. Just like in the case of gpio aggregator, the
primary function of gpio inverter is to accept a bunch of GPIO lines and
to expose those via a dedicated gpiochip. I hope this is a proper
summary of the first point in your comment. In any case, this is the
understanding I get based on my experiments with both drivers.

What I also infer is that, assuming gpio-inverter will stay (potentially
renamed and stripped of its non-essential inverting function), the gpio
aggregator will need to keep its Forwarder Helper (supposed to act as a
common foundation for both drivers).

The second point which I extract from your comment is that the "gpio
aggregator" could alternatively acquire the role of "gpio-inverter"
(hence superseding it) by adding a "simple DT interface". I actually
tend to like this proposal, since (as said above) both drivers are
essentially doing the same thing, i.e. they cluster a number of gpio
lines and expose this cluster as a new gpiochip (keeping the
reserved/used gpio lines on hold). That looks like a huge overlap in
the functionalities of the two drivers.

The only difference which I see is that "gpio-inverter" is getting its
input from DT and generates the gpiochips at probe time, while
"gpio aggregator" is getting its input from sysfs and generates the
gpiochips at runtime, post-probe.

So, assuming no objections from Harish and other reviewers, I would be
very happy to review and test the DT-based gpio inversion functionality
as part of gpio aggregator. Thanks!

-- 
Best Regards,
Eugeniu

  reply	other threads:[~2019-10-05 13:08 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-28  9:30 [PATCH V4 2/2] gpio: inverter: document the inverter bindings Harish Jenny K N
2019-06-28  9:30 ` Harish Jenny K N
2019-07-04  5:01 ` Harish Jenny K N
2019-07-04  5:01   ` Harish Jenny K N
2019-07-08 22:36 ` Rob Herring
2019-07-09  5:25   ` Harish Jenny K N
2019-07-09  5:25     ` Harish Jenny K N
2019-07-09 16:08     ` Rob Herring
2019-07-10  8:28       ` Harish Jenny K N
2019-07-10  8:28         ` Harish Jenny K N
2019-07-17 13:51         ` Harish Jenny K N
2019-07-17 13:51           ` Harish Jenny K N
2019-07-29 11:07           ` Harish Jenny K N
2019-07-29 11:07             ` Harish Jenny K N
2019-08-05 11:15         ` Linus Walleij
2019-08-09 14:08           ` Rob Herring
2019-08-10  8:51             ` Linus Walleij
2019-08-19  9:36               ` Harish Jenny K N
2019-08-27  7:47                 ` Harish Jenny K N
2019-08-30  5:21                   ` Harish Jenny K N
2019-09-04  4:58                     ` Harish Jenny K N
2019-09-04  4:58                       ` Harish Jenny K N
2019-09-10  7:47                       ` Rob Herring
2019-09-11 12:52                         ` Harish Jenny K N
2019-09-25 16:51 ` Eugeniu Rosca
2019-09-27  5:52   ` Phil Reid
2019-09-27  9:07   ` Geert Uytterhoeven
2019-10-05 13:07     ` Eugeniu Rosca [this message]
2019-10-07  8:18       ` Geert Uytterhoeven
2019-10-11  4:35         ` Harish Jenny K N
2019-11-12 11:52           ` Harish Jenny K N
2019-11-12 12:19             ` Geert Uytterhoeven
2019-10-04 19:07   ` Stephen Warren
2019-10-05 17:50     ` Eugeniu Rosca
2019-10-07 15:36       ` Stephen Warren
  -- strict thread matches above, loose matches on Subject: below --
2019-06-28  5:20 [PATCH V4 0/2] Add Inverter controller for gpio configuration Harish Jenny K N
2019-06-28  5:20 ` [PATCH V4 2/2] gpio: inverter: document the inverter bindings Harish Jenny K N

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=20191005130740.GA22620@x230 \
    --to=roscaeugeniu@gmail.com \
    --cc=balasubramani_vivekanandan@mentor.com \
    --cc=bgolaszewski@baylibre.com \
    --cc=devicetree@vger.kernel.org \
    --cc=erosca@de.adit-jv.com \
    --cc=geert@linux-m68k.org \
    --cc=harish_kandiga@mentor.com \
    --cc=info@metux.net \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=preid@electromag.com.au \
    --cc=robh+dt@kernel.org \
    --cc=swarren@nvidia.com \
    --cc=swarren@wwwdotorg.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.