目标:通过查询方式驱动按键
驱动程序:
/* 2020/4/19
* 按键操作---查询模式检测按键状态
* s2->EINT0/GPF0
* s3->EINT2/GPF2
* s4->EINT11/GPG3
* s5->EINT19/GPG11
*/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/irq.h>
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <asm/arch/regs-gpio.h>
#include <asm/hardware.h>
#include <linux/poll.h>
static struct class *buttons_class;//创建一个class类
static struct class_device *buttons_class_dev;//创建类的设备
volatile unsigned long *gpgcon = NULL;//定义按键引脚的寄存器
volatile unsigned long *gpgdat = NULL;
volatile unsigned long *gpfcon = NULL;
volatile unsigned long *gpfdat = NULL;
static int buttons_open(struct inode *inode, struct file *file)
{
printk("buttons_open\n");
/* 配置GPF0 2,GPG3 11为输入引脚 */
*gpfcon &=