RK3568-GIC中断控制器
编写设备树
使用gpio3_b6引脚=32x3+8x1+6=编号为110
中断驱动程序
#include <linux/module.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/gpio.h>
int irq;
//中断服务函数
irqreturn_t test_interrupt(int irq , void * args){
printk("This is test interrupt\n");
return IRQ_RETVAL(IRQ_HANDLED);
}
//驱动入口函数
static int interrupt_irq_init(void){
int ret;
irq = gpio_to_irq(110); //填写要申请的gpio编号
printk("irq is %d\n", irq);
ret = request_irq(irq, test_interrupt, IRQF_TRIGGER_RISING, "test", NULL); //引脚上升沿触发中断服务函数
if(ret < 0){
printk("request_irq is error\n");
return -1;
}
return 0;
}
//驱动出口函数
static void interrupt_irq_exit(void){
free_irq(irq, NULL);
printk("bye bye\n");
}
module_init(interrupt_irq_init);
module_exit(interrupt_irq_exit);
MODULE_LICENSE("GP