如何知道Linux中特定引脚的中断/GPIO编号 [英] how to know the Interrupt/GPIO number for a specific pin in linux

查看:25
本文介绍了如何知道Linux中特定引脚的中断/GPIO编号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在做一个需要在 Linux 中处理中断的项目.

我使用的板子是

i'm doing a project in which i need to handle an interrupt in Linux.

the board i'm using is an ARM9Board based on the s3c6410 MCU by Samsung (arm 11 processor) and it has the following I/O interface :

as the image shows i have EINTx pins for external interrupts and GPxx pins as GPIO pins and i don't mind using any of them but i don't have their numbers !

For EINTx pins :

when i call

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

i need the interrupt number to pass it as the first paramter of the function , so how can i get the irq number for example the EINT16 pin ?

For GPxx pins : the same story as i need the GPIO pin nuumber to pass it to those functions

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

i.e how do i know the GPIO number for the GPP8 pin ?

i searched the board documents and datasheet but it doesn't contain anything about how to get those numbers , any idea or help on where to look ?

解决方案

The Embedded Linux you are using should have a GPIO driver that has #define statements for the GPIO pins. You can then get the IRQ number of the specific GPIO using something like:

irq_num = gpio_to_irq(S3C64XX_GPP(8));

The Linux GPIO lib support for that particular chip is available in the following file:

linux/arch/arm/mach-s3c6400/include/mach/gpio.h

There you will find all the #define statements for the various GPIO.

See the section on GPIO Conventions in their documentation:

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

这篇关于如何知道Linux中特定引脚的中断/GPIO编号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆