采用原子操作,设置GPIO为输入模式,对按键值保护。
文章目录
一、设备树修改
这里介绍其流程:
1.找东山的原理图对应的引脚
2.找imx6ull芯片手册查此引脚宏定义
3.打开dts文件,找到iomuxc,在其下面添加子节点
4.在根节点下添加gpio节点,使用刚的节点地址
5.检查有无重复定义的节点
二、驱动程序
struct key_dev{
dev_t devid;
struct cdev cdev;
struct class *class;
struct device *device;
int major;
int minor;
struct device_node *nd;
int key_gpio;
atomic_t keyvalue;
};
struct key_dev key;
static int keygpio_init()
{
int ret = 0;
key.nd = of_find_node_by_path("/key");
key.key_gpio = of_get_named_gpio(key.nd, "key-gpio", 0);
gpio_request(key.key_gpio, "key0");
ret = gpio_direction_input(key.key_gpio);