这一小节很简单,在读函数中返回两个gpio的状态就可以
#include <linux/fs.h> /* 包含file_operation结构体 */
#include <linux/init.h> /* 包含module_init module_exit */
#include <linux/module.h> /* 包含LICENSE的宏 */
#include <asm/uaccess.h>
#include <linux/io.h>
#include <linux/device.h>
#include <linux/gpio.h>
#include <mach/gpio.h>
#include <asm/gpio.h>
#include <linux/gfp.h>
#define GPH0_BASE 0xe0200c00
static unsigned int major;
static struct class *button_class;
static struct device *button_dev;
struct gpio_reg {
unsigned int con;
unsigned int dat;
};
static struct gpio_reg *gph0 = NULL;
/* open函数 */
static int button_drv_open(struct inode *inode, struct file *file)
{
/* 输入口是gph0 2.3, 配置成输入模式 */
gph0->con &= ~((0xf << 2*4)|(0xf << 3*4));
return 0;
}
ssize_t button_drv_read(struct file *file, char __user *array,