mini6410 实现简单按键中断驱动

简单按键中断驱动,在mini6410开发板上运行良好。

仅供技术交流,请勿商用

转载请标明出处:查看源码http://blog.csdn.net/muge0913/article/details/7009685

#include <linux/fs.h> #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/irq.h> #include <asm/irq.h> #include <asm/io.h> #include <linux/interrupt.h> #include <linux/miscdevice.h> #include <linux/cdev.h> #include <asm/uaccess.h> #include <mach/hardware.h> #include <linux/platform_device.h> #include <mach/regs-gpio.h> #include <mach/gpio-bank-n.h> #include <plat/gpio-cfg.h> #define DEVICE_NAME "button_irq" static int button_irq_open(struct inode *inode,struct file *filp) { return 0; } static int button_irq_release(struct inode *inode,struct file *filp) { return 0; } static irqreturn_t button_irq_inter(int nr,void *devid) { static int count=0; count ++; printk("%d\n",count); return IRQ_RETVAL(IRQ_HANDLED); } static int button_irq_init() { unsigned int ret; ret = request_irq(IRQ_EINT(0),button_irq_inter,IRQ_TYPE_EDGE_BOTH,"KEY0",NULL); return 0; } static struct file_operations dev_fops = { .owner = THIS_MODULE, .open = button_irq_open, .release = button_irq_release, }; static struct miscdevice misc = { .minor = MISC_DYNAMIC_MINOR, .name = DEVICE_NAME, .fops = &dev_fops, }; static int __init dev_init() { int ret; ret = misc_register(&misc); printk("button_irq errno\n"); button_irq_init(); return 0; } static void __exit dev_exit() { misc_deregister(&misc); free_irq(IRQ_EINT(0),NULL); } module_init(dev_init); module_exit(dev_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("MUGE0913");


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值