Skip to main content
 首页 » 编程设计

linux-device-driver之如何找出占用我的 GPIO 的 Linux 驱动程序

2025年02月15日25pengyingh

我的板上有一个作为 GPIO 复用的焊盘。当我尝试通过/sys/class/gpio/export 导出它时,我得到

-sh: echo: write error: Device or resource busy 

我的猜测是在我得到这个机会之前,其他一些司机正在请求这个垫子。我怎样才能知道什么是保留它?

请您参考如下方法:

在边界设备内核和其他内核上,您可以使用 cat /sys/kernel/debug/gpio获取映射 gpio 的列表、它们的状态以及分配时给出的名称。您可以 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     

'