2013-04-16 3 views
15

У меня есть пэд, который множится как GPIO на моей доске. Когда я пытаюсь экспортировать его через/SYS/класс/GPIO/экспорт, я получаюКак я могу узнать, какой драйвер Linux загружает мой GPIO?

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

Я думаю, какой-либо другой драйвер запрашивает эту площадку, прежде чем я получить этот шанс. Как я могу узнать, что его резервирует?

ответ

10

На ядре Boundary Devices, а может быть и на других, вы можете использовать cat /sys/kernel/debug/gpio, чтобы получить список отображаемых gpios, их состояний и имени, заданных при его назначении. Вы можете grep источник ядра для имени и узнать, какой модуль его схватил.

[email protected]:/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  

'

+0

Спасибо, это выглядит очень полезно. Интересно, существует ли она 3 года назад. –

+0

Возможно. Я искал один и тот же вопрос и не нашел ответа, поэтому я просто нашел 'find/sys -name gpio' и нашел это, что позволило мне узнать, что я запрашиваю неправильный GPIO. –

0

Вы можете использовать команду lsof для отображения открытых файлов. в соответствии с тем, что файлы gpio являются обычными файлами. (например,/sys/class/gpio/gpio242/value).
Также вы должны быть уверены, что загрузите нужные модули ядра (с insmod или modprobe) в память.

+1

Это не будет работать как узел sysfs еще не существует. Повторение номера GPIO для экспорта должно создать узел, но это не так. –

+0

Если вы загрузите нужный модуль ядра, вы увидите все доступные gpio в каталоге/sys/devices/virtual/gpio /. Каково ваше содержание каталога? Вы можете увидеть файл метки, чтобы следовать его реальному положению в схемах платы. – paykoob

1

Мы закончили использование другого контакта GPIO. i.mx6 имеет 7 контроллеров GPIO с 32 выводами, и некоторые из них просто пропускают ошибки ввода-вывода из-за ниоткуда.

Смежные вопросы