一. 简介
前面一篇文章学习了 中断节点在设备树中的描述。文章地址如下:
Linux中断实验-如何在设备树中描述中断信息-CSDN博客
本文来学习,如何Linux中断驱动开发时,如何获取中断号。
二. Linux中断之获取中断号函数
Linux中断驱动开发时,需要用到中断号。我们用到中断号,中断信息已经写到了设备树里面。所以, Linux内核是提供了获取中断号的函数的。
1. 通用的获取中断号函数:irq_of_parse_and_map 函数
可以通过 irq_of_parse_and_map 函数从 interupts 属性中提取到对应的中断号,函数原型如下:
unsigned int irq_of_parse_and_map(struct device_node *dev, int index)
函数参数和返回值含义如下:
dev
:
设备节点。
index
:索引号,
interrupts
属性可能包含多条中断信息,通过
index
指定要获取的信息。
返回值:中断号。
2. GPIO作为中断时获取中断号函数:gpio_to_irq 函数
如果使用
GPIO
的话,可以使用
gpio_to_irq 函数
来获取
gpio
对应的中断号,函数原型如下:
int gpio_to_irq(unsigned int gpio)
函数参数和返回值含义如下:
gpio
:
要获取的
GPIO
编号。
返回值:
GPIO
对应的中断号。