From: Johan Hovold <johan@kernel.org>
To: Markus Pargmann <mpa@pengutronix.de>
Cc: Johan Hovold <johan@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
Alexandre Courbot <gnurou@gmail.com>,
"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
Alexandre Courbot <acourbot@nvidia.com>,
Arnd Bergmann <arnd@arndb.de>,
Michael Welling <mwelling@ieee.org>,
Mark Brown <broonie@kernel.org>,
Amit Kucheria <amit.kucheria@linaro.org>
Subject: Re: [PATCH 0/6] GPIO character device skeleton
Date: Tue, 3 Nov 2015 13:06:05 +0100 [thread overview]
Message-ID: <20151103120605.GA18098@localhost> (raw)
In-Reply-To: <3389425.noBYZr9C6e@adelgunde>
On Tue, Nov 03, 2015 at 08:23:24AM +0100, Markus Pargmann wrote:
> On Monday 02 November 2015 11:13:47 Johan Hovold wrote:
> > On Fri, Oct 30, 2015 at 08:48:44PM +0100, Linus Walleij wrote:
> > > On Fri, Oct 30, 2015 at 2:55 AM, Alexandre Courbot <gnurou@gmail.com> wrote:
> > > > On Sun, Oct 25, 2015 at 3:42 AM, Markus Pargmann <mpa@pengutronix.de> wrote:
> > >
> > > >> What happens if we have two I2C gpio expanders with the same I2C
> > > >> addresses connected to different I2C busses? If I see this correctly
> > > >> they would both show up with the same name. Is there an easy and
> > > >> race-free way to see which GPIO chip is connected to which I2C bus?
> > > >
> > > > I suppose the bus path could be part of the GPIO chip name to avoid
> > > > this ambiguity, something like: 7000c000.i2c/0-001c.gpio
> > >
> > > For DT that is the simple solution.
> >
> > Not all devices are platform devices, and the bus path can become quite
> > long, for example for usb to uniquely identify the gpio controller this
> > could be:
> >
> > platform/68000000.ocp/48064000.usbhshost/48064800.ehci/usb1/1-2/1-2.3/1-2.3:1.0/gpiochip7
> >
> > > Right now it used gpiochip->label if that is set, else the name of
> > > the gpiochip device like gpiochip0, gpiochip1 etc.
> >
> > Perhaps better to just stick to the bus unique names (e.g. gpopchip7),
> > and possibly export the label as an additional attribute.
>
> I think this wouldn't be enough. We would still have trouble identifying the
> gpiochips, right?
That information is already available through sysfs so there's no need
to try and re-encode it in device links etc.
> As an idea: We could use the complete path to create some sort of unique id for
> the device (perhaps hash or something different). This id can be exported as
> device attribute and would allow udev to create some links as known from
> /dev/disk/by-id for example. This would make identifying a single chip quite
> easy for any userspace application and we would avoid having this really long
> path somewhere.
The unique ids are already there in sysfs, for example:
$ for x in /sys/bus/gpio/devices/gpiochip*; do readlink $x; done
../../../devices/platform/68000000.ocp/48310000.gpio/gpiochip0
../../../devices/platform/68000000.ocp/49050000.gpio/gpiochip1
../../../devices/platform/68000000.ocp/49052000.gpio/gpiochip2
../../../devices/platform/68000000.ocp/49054000.gpio/gpiochip3
../../../devices/platform/68000000.ocp/49056000.gpio/gpiochip4
../../../devices/platform/68000000.ocp/49058000.gpio/gpiochip5
../../../devices/platform/68000000.ocp/48070000.i2c/i2c-0/0-0048/twl4030-gpio/gpiochip6
../../../devices/platform/68000000.ocp/48064000.usbhshost/48064800.ehci/usb1/1-2/1-2.3/1-2.3:1.0/gpiochip7
And libudev can be used to lookup devices based on (parent) attributes
(such as USB VID/PID, serial numbers, etc).
We could also export further attributes if that would help (e.g.
gpio-chip labels).
Johan
next prev parent reply other threads:[~2015-11-03 12:05 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-22 8:32 [PATCH 0/6] GPIO character device skeleton Linus Walleij
2015-10-22 8:32 ` [PATCH 1/6] gpio: make the gpiochip a real device Linus Walleij
2015-10-24 18:09 ` Markus Pargmann
2015-10-25 7:06 ` Alexandre Courbot
2015-10-26 2:12 ` Mark Brown
2015-11-03 21:20 ` Linus Walleij
2015-11-02 10:31 ` Johan Hovold
2015-11-02 12:25 ` Mark Brown
2015-11-02 12:43 ` Johan Hovold
2015-11-02 12:47 ` Mark Brown
2015-11-02 12:53 ` Johan Hovold
2015-11-02 13:06 ` Mark Brown
2015-11-02 13:14 ` Johan Hovold
2015-11-02 13:17 ` Mark Brown
2015-11-02 13:25 ` Johan Hovold
2015-11-03 21:24 ` Linus Walleij
2015-11-04 10:48 ` Linus Walleij
2015-11-05 9:44 ` Johan Hovold
2015-11-05 10:29 ` Mark Brown
2015-11-16 14:27 ` Linus Walleij
2015-12-03 14:04 ` Linus Walleij
2015-12-03 14:06 ` Linus Walleij
2015-12-03 21:26 ` Michael Welling
2015-12-04 22:31 ` Michael Welling
2015-12-11 17:58 ` Linus Walleij
2015-12-08 9:29 ` Johan Hovold
2015-12-11 18:06 ` Linus Walleij
2015-10-22 8:32 ` [PATCH 2/6] gpio: refer to gpio device in prints and debugfs Linus Walleij
2015-10-22 8:32 ` [PATCH 3/6] gpio: add a userspace chardev ABI for GPIOs Linus Walleij
2015-10-22 20:35 ` Michael Welling
2015-10-24 0:30 ` Greg Kroah-Hartman
2016-01-28 11:13 ` Linus Walleij
2015-10-26 1:34 ` Mark Brown
2016-01-27 10:05 ` Bamvor Zhang Jian
2016-01-28 11:14 ` Linus Walleij
2016-01-29 10:24 ` Bamvor Zhang Jian
2016-02-10 10:04 ` Linus Walleij
2015-10-22 8:32 ` [PATCH 4/6] tools/gpio: create GPIO tools Linus Walleij
2015-10-25 8:23 ` Alexandre Courbot
2015-10-22 8:32 ` [PATCH 5/6] gpio: add a userspace character device ABI Linus Walleij
2015-10-24 18:46 ` Markus Pargmann
2015-10-22 8:32 ` [PATCH 6/6] gpio: ABI: mark the sysfs ABI as obsolete Linus Walleij
2015-10-22 18:57 ` [PATCH 0/6] GPIO character device skeleton Michael Welling
2015-10-24 17:53 ` Markus Pargmann
2015-10-30 14:40 ` Linus Walleij
2015-11-02 10:00 ` Johan Hovold
2015-10-24 18:42 ` Markus Pargmann
2015-10-30 1:55 ` Alexandre Courbot
2015-10-30 19:48 ` Linus Walleij
2015-11-02 10:13 ` Johan Hovold
2015-11-03 7:23 ` Markus Pargmann
2015-11-03 12:06 ` Johan Hovold [this message]
2015-11-03 17:18 ` Linus Walleij
2015-11-04 19:44 ` Michael Welling
2015-11-05 9:40 ` Johan Hovold
2015-11-05 14:11 ` Linus Walleij
2015-11-06 10:21 ` Johan Hovold
2015-11-16 13:33 ` Linus Walleij
2015-11-03 17:05 ` Linus Walleij
2015-10-30 14:43 ` Linus Walleij
2015-10-30 22:54 ` Arnd Bergmann
2015-11-01 9:37 ` Linus Walleij
2015-11-02 10:16 ` Johan Hovold
2015-10-26 2:18 ` Mark Brown
2015-10-30 1:55 ` Alexandre Courbot
2015-10-30 19:47 ` Linus Walleij
2015-11-01 2:41 ` Mark Brown
2015-11-03 7:39 ` Markus Pargmann
2015-11-03 8:50 ` Mark Brown
2015-11-03 10:21 ` Amit Kucheria
2015-11-03 17:06 ` 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=20151103120605.GA18098@localhost \
--to=johan@kernel.org \
--cc=acourbot@nvidia.com \
--cc=amit.kucheria@linaro.org \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=gnurou@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=mpa@pengutronix.de \
--cc=mwelling@ieee.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.