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

Abd*_*iab 10 linux embedded arm interrupt embedded-linux

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

我使用的板是一个ARM9Board由三星(臂11处理器)的基础上S3C6410 MCU和它具有以下的I/O接口:

在此输入图像描述

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

对于EINTx引脚:

我打电话的时候

int request_irq(unsigned int irq, void (*handler)(int, struct pt_regs *), 
unsigned long flags, const char *device); 
Run Code Online (Sandbox Code Playgroud)

我需要中断号作为函数的第一个参数传递它,那么如何获得irq数,例如EINT16引脚?

对于GPxx引脚: 与我需要GPIO引脚编号将其传递给这些功能的故事相同

int gpio_request(unsigned gpio, const char *label);
int gpio_direction_input(unsigned gpio);
int gpio_to_irq(unsigned gpio);
Run Code Online (Sandbox Code Playgroud)

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

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

emb*_*yle 8

您正在使用的嵌入式Linux应该有一个GPIO驱动程序,其中包含#defineGPIO引脚的语句.然后,您可以使用以下内容获取特定GPIO的IRQ编号:

irq_num = gpio_to_irq(S3C64XX_GPP(8));

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

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

在那里,您将找到#define各种GPIO的所有声明.

请参阅其文档中有关GPIO约定的部分:

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