本实验例程路径:i.MX6UL终结者光盘资料/06_Linux驱动例程/08_key
在设备树文件中添加好按键的硬件信息后,创建key.c文件,编写驱动程序,具体内容如下:
1 #include <linux/types.h>
2 #include <linux/kernel.h>
3 #include <linux/delay.h>
4 #include <linux/ide.h>
5 #include <linux/init.h>
6 #include <linux/module.h>
7 #include <linux/errno.h>
8 #include <linux/gpio.h>
9 #include <linux/cdev.h>
10 #include <linux/device.h>
11 #include <linux/of.h>
12 #include <linux/of_address.h>
13 #include <linux/of_gpio.h>
14 #include <linux/semaphore.h>
15 #include <asm/mach/map.h>
16 #include <asm/uaccess.h>
17 #include <asm/io.h>
18
19 #define KEY_CNT 1 /* 设备号个数 */
20 #define KEY_NAME "key" /* 名字 */
21
22 /* 定义按键值 */
23 #define KEY0VALUE 0XF0 /* 按键值 */
24 #define INVAKEY 0X00 /* 无效的按键值 */
25
26 /* key 设备结构体 */
27 struct key_dev{
28 dev_t devid; /* 设备号 */
29 struct cdev cdev; /* cdev */
30 struct class *class; /* 类 */
31 struct device *device; /* 设备 */
32 int major; /* 主设备号 */
33 int minor; /* 次设备号 */
34 struct device_node *nd; /* 设备节点 */
35 int key_gpio; /* key 所使用的