gpio_keys 驱动使用 of_get_gpio_flags() 获取 dts 里面 gpio 配置信息。 但是of_get_gpio_flags() 传入 enum of_gpio_flags 类型来获取配置信息。 of_get_gpio_flags() 的最终实现由具体的 SOC 厂商实现,这里是全志厂商实现。 实现的函数为:drivers/pinctrl/sunxi/pinctrl-sunxi.c --> sunxi_pinctrl_gpio...
--- a/kernel-4.4/drivers/input/keyboard/gpio_keys.c+++ b/kernel-4.4/drivers/input/keyboard/gpio_keys.c@@ -32,6 +32,11 @@#include<linux/of_irq.h>#include<linux/spinlock.h>++#define LOG_TAG "[BUTTON]: %s() line: %d "+#define PRINTK_T(fmt, args...) printk(KERN_INFO LOG_TAG...
1>首先来查看驱动源码,在/mnt/workspace/osrc-lab/source/drivers/input/keyboard/gpio_keys_polled.c,我们可以看到驱动的源码并不大,大家可以自己仔细阅读,对开发驱动会有很大的好处。 2> 在这个驱动源码里我们可以看到设备树的驱动就是根据“gpio-keys-polled“进行匹配的,当我们设备树里的compatible对应的名字和驱动...
Linux kernel驱动,针对gpio-keys实现了一个专用驱动,在使用GPIO模拟按键的场合时,只需配置设备树即可实现相应的按键功能,其中kernel driver对应的文件路为drivers\input\keyboard\gpio_keys.c,对应的设备树描…
platform驱动编写基于gpio-keys通过他我们可以找到对应于dts文件中的设备节点定位到它就可以获取设备参数列表了因为新版内核structdevice中包含了成员structdevicenodeofnode platform驱动编写基于gpio-keys 加入of_ (device tree操作api) 的platform驱动编写 基于gpio-keys...
kernel-4.4/drivers/input/keyboard/gpio_keys.c 1. 完整代码可查看 https://gitee.com/weiqifa/gpio_key/blob/master/gpio_keys.c 1. 驱动代码流程,从probe处开始 刚开始的时候,我连dts文件都不会写,因为之前没有接触过这个驱动。然后看了gpio_keys_get_devtree_pdata函数,之后又看了内核代码下其他项目其他...
kernel-4.4/drivers/input/keyboard/gpio_keys.c 1. 完整代码可查看 https://gitee.com/weiqifa/gpio_key/blob/master/gpio_keys.c 1. 驱动代码流程,从probe处开始 刚开始的时候,我连dts文件都不会写,因为之前没有接触过这个驱动。然后看了gpio_keys_get_devtree_pdata函数,之后又看了内核代...