On Sun, Mar 17, 2024 at 9:15 PM Dominique Martinet <dominique.martinet@xxxxxxxxxxxxxxxxx> wrote: > > David Lechner wrote on Fri, Mar 15, 2024 at 10:53:36AM -0500: > > How about using udev rules to create symlinks for each device based on > > the label attribute? No changes to the kernel are needed. > > Right, it's definitely possible to make symlinks for each "device" -- my > patch comment links to such an udev script "solution": > https://git.toradex.com/cgit/meta-toradex-bsp-common.git/tree/recipes-core/udev/files/verdin-imx8mm/toradex-adc.sh?h=kirkstone-6.x.y > (the script is launched by udev here: > https://git.toradex.com/cgit/meta-toradex-bsp-common.git/tree/recipes-core/udev/files/verdin-imx8mm/99-toradex.rules > ) > > My conceptual problem with this is that this makes symlinks in /dev to > files in /sys and it feels like we're crossing boundaries. > As far as I can tell there is no way for userspace to create arbitrary > symlinks in /sys, so I think we could have an interface more > user-friendly by allowing paths to be static for users with multiple > devices. How about this: Use udev to create one symlink from /dev/frendly-name to /dev/iio:deviceX. Then in your application, look up the device by /dev/friendly-name. Then resolve the symlink to translate friendly-name to iio:deviceX. Now your app has the correct iio:deviceX and can use /sys/bus/iio/devices/iio:deviceX/ directly instead of making any symlinks to sysfs.