From 032ea7ca12034fe3181eab913f3be2fab71a1870 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gero=20Schw=C3=A4ricke?= Date: Fri, 7 Nov 2025 16:09:17 +0100 Subject: [PATCH] rules: add rule to generate unique symlinks for gpio devices Regular generated paths make it hard to identify individual GPIO devices. This is a challenge when using multiple USB-to-GPIO adapters like Diolan DLN2. The unique symlinks from this rule can be used, e.g., with gpiod tools. --- rules.d/60-gpiochip.rules | 17 +++++++++++++++++ rules.d/meson.build | 1 + 2 files changed, 18 insertions(+) create mode 100644 rules.d/60-gpiochip.rules diff --git a/rules.d/60-gpiochip.rules b/rules.d/60-gpiochip.rules new file mode 100644 index 00000000000..76c57b4adeb --- /dev/null +++ b/rules.d/60-gpiochip.rules @@ -0,0 +1,17 @@ +# do not edit this file, it will be overwritten on update + +ACTION=="remove", GOTO="gpiochip_end" +SUBSYSTEM!="gpio", GOTO="gpiochip_end" + +KERNEL!="gpiochip[0-9]*", GOTO="gpiochip_end" + +IMPORT{builtin}="path_id" +ENV{ID_PATH_WITH_USB_REVISION}=="?*", SYMLINK+="gpio/by-path/$env{ID_PATH_WITH_USB_REVISION}" + +SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id" +ENV{ID_BUS}=="", GOTO="gpiochip_end" +ENV{ID_SERIAL}=="", GOTO="gpiochip_end" +ENV{ID_USB_INTERFACE_NUM}=="", GOTO="gpiochip_end" +SYMLINK+="gpio/by-id/$env{ID_BUS}-$env{ID_SERIAL}-if$env{ID_USB_INTERFACE_NUM}" + +LABEL="gpiochip_end" diff --git a/rules.d/meson.build b/rules.d/meson.build index 933a84859ad..25e742cdfde 100644 --- a/rules.d/meson.build +++ b/rules.d/meson.build @@ -12,6 +12,7 @@ rules = [ '60-drm.rules', '60-evdev.rules', '60-fido-id.rules', + '60-gpiochip.rules', '60-infiniband.rules', '60-input-id.rules', '60-persistent-alsa.rules', -- 2.47.3