如何找到 USB/TTL (dev/ttyUSB_) 与其 GPIO 引脚 (/dev/gpiochip_) 之间的关系

如何找到 USB/TTL (dev/ttyUSB_) 与其 GPIO 引脚 (/dev/gpiochip_) 之间的关系

我有一些基于 CP2102N 的 USB/TTL 适配器,有 4 条 GPIO 线。

我可以通过 来打开其中一个串行设备,相关的 GPIO 线由:/dev/ttyUSB0控制。libgpiod/dev/gpiochip1

我需要确保我始终修改正确的设备,并且我需要一种方法来通过查询/dev/ttyUSB0-> 的结果/dev/gpiochip1或通过查询/dev/gpiochip1-> 的结果来找出关系/dev/ttyUSB0

我怎么做?我没有看到任何东西libgpiod可以做到这一点。

答案1

您可以尝试readlink /sys/class/gpio/gpiochip1和/或readlink /sys/class/tty/ttyUSB0,并查看两条路径是否具有相同的控制器和 USB 设备组件。

例如,如果您收到类似以下信息:

# readlink /sys/class/gpio/gpiochip1
../../devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/gpio/gpiochip1
# readlink /sys/class/tty/ttyUSB0
../../devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/ttyUSB0/tty/ttyUSB0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The same PCI USB controller and USB device path!

那么你就会知道 ttyUSB0 == gpiochip1。

相关内容