On Tue, Mar 10, 2020 at 3:49 PM Mika Westerberg mika.westerberg@linux.intel.com wrote:
With the newer kernel the gpiochip%d number is different so crossystem ends up reading the wrong pin.
Hmm, so gpiochipX is also not considered a stable number. It is based on ARCH_NR_GPIOS which may change. So if the userspace is relaying certain GPIO chip is always gpichip200 for example then it is wrong.
Yes it has always been clear that sysfs is what one shall use for establishing the topology of the hardware, so /sys/bus/gpiochip etc.
For example on my laptop: $ pwd /sys/bus/gpio/devices $ ls -al total 0 drwxr-xr-x. 2 root root 0 25 mar 23.49 . drwxr-xr-x. 4 root root 0 25 mar 23.49 .. lrwxrwxrwx. 1 root root 0 25 mar 23.49 gpiochip0 -> ../../../devices/pci0000:00/INT344B:00/gpiochip0
Here we see that this gpiochip is on this PCI card and so on.
Linus