как узнать номер прерывания / GPIO для определенного pin-кода в linux

Я делаю проект, в котором мне нужно обработать прерывание в Linux.

совет я использую это ARM9Board на основе S3C6410 MCU от Samsung (процессор arm 11) и имеет следующий интерфейс ввода-вывода:

enter image description here

Как показывает изображение, у меня есть eintx-контакты для внешних прерываний и GPxx-контакты как GPIO-контакты, и я не против использовать любой из них, но у меня нет их номеров !

для контактов EINTx :

когда я называю

int request_irq(unsigned int irq, void (*handler)(int, struct pt_regs *), 
unsigned long flags, const char *device); 

мне нужен номер прерывания, чтобы передать его в качестве первого параметра функции, так как я могу получить номер irq, например, pin-код EINT16 ?

для контактов GPxx: та же история, что и мне нужен GPIO pin nuumber, чтобы передать его этим функциям

int gpio_request(unsigned gpio, const char *label);
int gpio_direction_input(unsigned gpio);
int gpio_to_irq(unsigned gpio);

i.e Как узнать номер GPIO для pin-кода GPP8 ?

Я искал документы правления и техническое описание, но он не содержит что-нибудь о том , как получить эти цифры, любая идея или помощь в том, где искать ?

2 ответов


встроенный Linux, который вы используете, должен иметь драйвер GPIO, который имеет #define операторы для контактов GPIO. Затем вы можете получить номер IRQ конкретного GPIO, используя что-то вроде:

irq_num = gpio_to_irq(S3C64XX_GPP(8));

поддержка Linux GPIO lib для этого конкретного чипа доступна в следующем файле:

Линукс/арки/руку/Маха-s3c6400/включить/мах/порты ввода-вывода.h

там вы найдете все #define отчетность для различных Выводы GPIO.

см. раздел О соглашениях GPIO в их документации:

http://www.kernel.org/doc/Documentation/gpio/gpio.txt


Я также выполнял некоторую работу над выводом GPIO, но он находится на другой плате, AM335x. Просто чтобы вы знали, есть довольно мало способов сделать это. Один из методов, который мы используем, - это использование платы памяти для доступа (записи или чтения) к pin-коду GPIO.

Это действительно хорошая статья, чтобы помочь мне получить вещи работать. Регистрация доступа к GPIOs Beaglebone через отображение памяти