Ati*_*liz 21 linux-device-driver gpio
我的电路板上有一个多用作GPIO的焊盘.当我尝试通过/ sys/class/gpio/export导出它时,我得到了
-sh: echo: write error: Device or resource busy
Run Code Online (Sandbox Code Playgroud)
我的猜测是其他一些司机在我得到这个机会之前要求这个垫子.我怎样才能找到保留它的内容?
小智 21
在Boundary Devices内核以及其他内核上,您可以使用它cat /sys/kernel/debug/gpio来获取映射的gpios列表,它们的状态以及分配时给出的名称.您可以grep内核源代码名称,并找出抓住它的模块.
root@nitrogen6x:/opt# cat /sys/kernel/debug/gpio
GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:
gpio-2 (flexcan-trx-stby ) out lo
gpio-17 (DISP_SCL ) out lo
GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:
gpio-33 (sysfs ) out lo
gpio-35 (sysfs ) in hi
gpio-36 (sysfs ) in hi
gpio-37 (DISP_SDI ) out lo
gpio-38 (219c000.usdhc cd ) in hi
GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:
gpio-83 (spi_imx ) out lo
gpio-86 (usb_otg_vbus ) out lo
GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:
gpio-101 (sysfs ) in hi
gpio-116 (rst-gpios ) out lo
GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:
GPIOs 160-191, platform/20b0000.gpio, 20b0000.gpio:
gpio-175 (wlan-en ) out lo
gpio-176 (bt_rfkill_reset ) out lo
GPIOs 192-223, platform/20b4000.gpio, 20b4000.gpio:
gpio-192 (2198000.usdhc cd ) in lo
gpio-204 (ehci_reset_gpio ) out lo
gpio-205 (sysfs ) in lo
Run Code Online (Sandbox Code Playgroud)
"
小智 6
如果您尝试使用cat /sys/kernel/debug/gpio但它不起作用,请先尝试:
mount -t debugfs debugfs /sys/kernel/debug
Run Code Online (Sandbox Code Playgroud)
然后使用上述cat命令
/sys/kernel/debug/gpio是旧版 GPIO 接口的一部分,可能不存在于较新的内核中。替代品是libgpio-toolsgpioinfo工具;这些工具使用较新的字符设备接口来处理 gpios。
如果使用buildroot,请启用BR2_PACKAGE_LIBGPIOD和BR2_PACKAGE_LIBGPIOD_TOOLS。
buildroot:~ $ gpiodetect
gpiochip0 [30200000.gpio] (32 lines)
gpiochip1 [30210000.gpio] (32 lines)
gpiochip2 [30220000.gpio] (32 lines)
gpiochip3 [30230000.gpio] (32 lines)
gpiochip4 [30240000.gpio] (32 lines)
gpiochip5 [0-0023] (16 lines)
buildroot:~ $ gpioinfo
gpiochip0 - 32 lines:
line 0: unnamed unused input active-high
line 1: unnamed unused input active-high
line 2: unnamed unused input active-high
line 3: unnamed unused input active-high
line 4: unnamed unused input active-high
line 5: unnamed unused input active-high
line 6: unnamed "pci_usb_sel" output active-high [used]
line 7: unnamed "dio0" input active-high [used]
line 8: unnamed unused input active-high
line 9: unnamed "dio1" input active-high [used]
line 10: unnamed "regulator-usb-otg1" output active-high [used]
(...)
Run Code Online (Sandbox Code Playgroud)