From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: Alexander Dahl <ada@thorsis.com>, Kent Gibson <warthog618@gmail.com>
Cc: "linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
Linus Walleij <linus.walleij@linaro.org>
Subject: Re: setting gpio-line-names in dts for sama5d2 SoC
Date: Thu, 18 Mar 2021 14:40:44 +0200 [thread overview]
Message-ID: <CAHp75Vftrq66SweYKYprWBoi9X8csxe9ROaMorRFUjGSD8gNSQ@mail.gmail.com> (raw)
In-Reply-To: <854891727.11376.1616061014891@seven.thorsis.com>
+Cc: Kent (sorry, forgot to include you earlier)
On Thu, Mar 18, 2021 at 11:50 AM Alexander Dahl <ada@thorsis.com> wrote:
> > Andy Shevchenko <andy.shevchenko@gmail.com> hat am 17.03.2021 13:33 geschrieben:
> > On Wed, Mar 17, 2021 at 1:22 AM Andy Shevchenko
> > <andy.shevchenko@gmail.com> wrote:
> > > On Tuesday, March 16, 2021, Alexander Dahl <ada@thorsis.com> wrote:
...
> > >> for a Microchip SAMA5D2 SoC based device I try to set gpio-line-names in .dts file like this:
> > >>
> > >> 257 &pioA {
> > >> 258 gpio-line-names = "", /* PA0 */
> > >> 259 "", /* PA1 */
> > >> 260 "", /* PA2 */
> > >> 261 "FOO", /* PA3 */
> > >> 262 "BAR", /* PA4 */
> > >> 263 "", /* PA5 */
> > >>
> > >> … and so on for all 4 * 32 GPIO Pins. However when calling `gpioinfo` in userspace, I always get this:
> > >>
> > >> $ gpioinfo
> > >> gpiochip0 - 128 lines:
> > >> line 0: "PA0" unused input active-high
> > >> line 1: "PA1" unused input active-high
> > >> line 2: "PA2" unused input active-high
> > >> line 3: "PA3" unused input active-high
> > >> line 4: "PA4" unused input active-high
> > >> line 5: "PA5" unused input active-high
> > >>
> > >> … and so on. Those "PA0" line names are set by the pinctrl driver in drivers/pinctrl/pinctrl-at91-pio4.c before calling gpiochip_add_data() and from reading the code in drivers/gpio/gpiolib.c I suspect devprop_gpiochip_set_names() is never called then, so those names in .dts are simply ignored.
> > >>
> > >> Those default names from the at91 pio4 pinctrl driver are certainly correct speaking of pin names, but from a userspace point of view it would be better if I could override those from dts, so an application using libgpiod could look for a name like e.g. "VALVE7_EN" without caring to which pin that's actually connected. Can I override those with a currently present kernel?
>
> I don't think I can override with a recent kernel.
>
> >>> Or is it a problem in either the at91 pio4 driver or the gpiolib core? Or is that no real usecase and should I do it differently?
>
> If I disable the name assignment in the pinctrl-at91-pio4 driver, I get the line names from the dts. I used the following diff:
...
> Now gpioinfo shows what I set in dts, more or less similar to this:
>
> gpiochip0 - 128 lines:
> line 0: unnamed unused input active-high
> line 1: unnamed unused input active-high
> line 2: unnamed unused input active-high
> line 3: "FOO" unused input active-high
> line 4: "BAR" unused input active-high
> line 5: unnamed unused input active-high
>
> > > I would like to know the consequences if allow this, but to me it sounds like a bug in the gpiolib.c.
>
> At least the documentation recommends to not use pin names: https://www.kernel.org/doc/Documentation/devicetree/bindings/gpio/gpio.txt
>
> If anyone has an idea how to fix this, let me know. I can try to make a patch then. Currently however, I'm not familiar enough with the gpio subsystem to just start that.
You may look into the commit
7cba1a4d5e16 ("gpiolib: generalize devprop_gpiochip_set_names() for
device properties")
which unifies the logic, but at the same time removed one comment:
- /* If the chip defines names itself, these take precedence */
So, logic was that for a long time. And unfortunately I don't see how
we may change this without breakage. This backs us to the discussion
if the name of the line is ABI or not.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2021-03-18 12:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-16 13:07 setting gpio-line-names in dts for sama5d2 SoC Alexander Dahl
[not found] ` <CAHp75Vf05NN0dXUrMSOXBRuYRnQRHO_92itZ3ndOyX1oERWt=g@mail.gmail.com>
2021-03-17 12:33 ` Andy Shevchenko
2021-03-18 9:50 ` Alexander Dahl
2021-03-18 12:40 ` Andy Shevchenko [this message]
2021-03-18 13:56 ` Alexander Dahl
2021-03-18 14:59 ` Andy Shevchenko
2021-03-20 11:20 ` Linus Walleij
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=CAHp75Vftrq66SweYKYprWBoi9X8csxe9ROaMorRFUjGSD8gNSQ@mail.gmail.com \
--to=andy.shevchenko@gmail.com \
--cc=ada@thorsis.com \
--cc=bgolaszewski@baylibre.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=warthog618@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).