All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johan Hovold <johan@kernel.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Johan Hovold <johan@kernel.org>,
	Markus Pargmann <mpa@pengutronix.de>,
	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: Thu, 5 Nov 2015 10:40:15 +0100	[thread overview]
Message-ID: <20151105094015.GC7561@localhost> (raw)
In-Reply-To: <CACRpkdaQYDk4s9b79xh+vL-3SFYp5GN3KpjgsSshzF0E+1-r5A@mail.gmail.com>

On Tue, Nov 03, 2015 at 06:18:42PM +0100, Linus Walleij wrote:
> On Tue, Nov 3, 2015 at 1:06 PM, Johan Hovold <johan@kernel.org> wrote:
> > [Pargmann]
> >> 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).
> 
> Yeah sysfs does provide this.
>
> This has the problem that everyone and their dog need to use udev
> or something like it. Some library or so that run around in sysfs like
> libudev+systemdlib does currently.
> 
> And since Android does not use udev, and Busybox does not use udev,
> there are quite a few million users there. Or at least two big projects that
> need to reimplement the same idea. It could be argued that they should,
> since sysfs is indeed an ABI.
>
> In the Busybox mdev case part of the goal is to minimize userspace code
> size too, and it does not support the complex rules of udev for example.
> 
> It'd be nice if devices could be uniquely identified in the chardev alone
> I think, then we don't need to much reliance on external assumptions
> and traversing sysfs somehow for more info.

Point is that this is not a gpio-specific problem. Userspace needs to
deal with this for any resource it wants to access (e.g. i2c or spi).

And you should be able to use libudev for tree-traversal without actually
using udevd, right?

Johan

  parent reply	other threads:[~2015-11-05  9:40 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
2015-11-03 17:18             ` Linus Walleij
2015-11-04 19:44               ` Michael Welling
2015-11-05  9:40               ` Johan Hovold [this message]
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=20151105094015.GC7561@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.