[libgpiod PATCH] gpioget: Add --line-name to lookup GPIO line

Zev Weiss zweiss at equinix.com
Fri Dec 3 14:50:19 AEDT 2021

On Wed, Dec 01, 2021 at 08:29:47PM PST, Joel Stanley wrote:
>On Wed, 1 Dec 2021 at 08:29, Bartosz Golaszewski <brgl at bgdev.pl> wrote:
>> On Wed, Dec 1, 2021 at 8:29 AM Joel Stanley <joel at jms.id.au> wrote:
>> >
>> > Systems provide line names to make using GPIOs easier for userspace. Use
>> > this feature to make the tools user friendly by adding the ability to
>> > show the state of a named line.
>> >
>> >  $ gpioget --line-name power-chassis-good
>> >  1
>> >
>> >  $ gpioget -L pcieslot-power
>> >  0
>> I'm not very convinced to be honest. It's not like "gpioget gpiochip0
>> `gpiofind gpiochip0 line-name`" requires much more typing than
>> "gpioget gpiochip --line-name=name".
>I'm taking on feedback from people working in our labs, and
>implementing userspace applications. We've been building BMCs with
>mainline Linux for about six years now, and it's been a long road
>re-training them from "back in the day we just did devmem <this>
><that>" and "why can't we just do cat /sys/class/gpio/gpio305/value",
>and now "why does the level of the GPIO change back after I run the
>This usability improvement is one more step towards them using and
>being happy with the "new world" of the gpiod API.
>Once we settle on a good API here, I plan on submitting a version of
>gpioget/gpioset added to busybox.
>> There are also other questions:
>> this uses getopt and only allows to specify a single line name. What
>> if we want to specify more lines like with offsets? Even if you allow
>> multiple names, getopt() doesn't guarantee ordering of arguments.
>If you're happy with the concept I'm happy to iterate on the implementation.
>Yes, it only allows a single line name. That tends to be how the tool
>is used, both from the command line and in scripts.
>Can you give me an example of your proposed command line API, so I can
>understand what you're suggesting here?

My two cents: like Jeremy, I would very much welcome the ability to
specify GPIOs by name instead of number, but the one-line-only
limitation does seem unfortunate.  How about making a command-line flag
that just means "line-specifier arguments should be interpreted as names
instead of numbers"?

So you could do:

  $ gpioget --by-name chassis-intrusion cpu1-prochot
  0 1

  $ gpioset --by-name led-green=1 led-red=0


More information about the openbmc mailing list