On Tue, Nov 3, 2015 at 1:06 PM, Johan Hovold <johan@xxxxxxxxxx> 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. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html