如何在linux中知道特定引脚的中断/ GPIO编号

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

我使用的主板是基于三星s3c6410 MCU的ARM9Board(arm 11处理器),它具有以下I / O接口:

在这里输入图像说明

如图所示,我有EINTx引脚的外部中断和GPxx引脚作为GPIO引脚,我不介意使用其中任何一个,但我没有他们的号码!

对于EINTx引脚:

当我打电话

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

我需要中断号作为函数的第一个parameter passing它,所以如何获得irq号码,例如EINT16引脚?

对于GPxx引脚:同样的故事,我需要GPIO引脚编号将它传递给这些function

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

即我如何知道GPP8引脚的GPIO号码?

我search了董事会的文件和数据表,但它不包含任何关于如何获得这些数字,任何想法或帮助在哪里看?

Solutions Collecting From Web of "如何在linux中知道特定引脚的中断/ GPIO编号"

您正在使用的嵌入式Linux应该有一个GPIO驱动程序,它具有GPIO引脚的#define语句。 然后,您可以使用类似于以下内容获取特定GPIO的IRQ编号:

irq_num = gpio_to_irq(S3C64XX_GPP(8));

以下文件提供了针对该特定芯片的Linux GPIO lib支持:

LINUX /拱/臂/马赫 – S3C6400 /包含/马赫/ gpio.h

在那里您可以找到各种GPIO的所有#define语句。

请参阅GPIO公约章节:

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

我在GPIO引脚上做了一些工作,但它在不同的主板AM335x上。 只是为了让你知道,有很少的办法做到这一点。 我们正在使用的一种方法是使用内存板访问(写或读)GPIO引脚。

这是一个非常好的文章,可以帮助我完成工作。 通过内存映射寄存器访问Beaglebone的GPIO