Linux之内核Platform KEY

目录

一、内核图形化配置

二、设备树修改


Linux 内核自带了 KEY 驱动,如果要使用内核自带的 KEY 驱动的话需要配置 Linux 内核。

一、内核图形化配置

在内核目录下,输入以下指令打开Linux图像配置界面

make   menuconfig

按照如下路径找到相应的配置选项

-> Device Drivers
        -> Input device support
                -> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])
                        -> Keyboards (INPUT_KEYBOARD [=y])
                                ->GPIO Buttons

选中GPIO Buttons选项,将其编译进 Linux 内核中

 选中以后会在.config 文件中出现CONFIG_KEYBOARD_GPIO=y这一行, Linux 内核就会根据这一行来将 KEY 驱动文件编译进 Linux 内核。

重新编译 Linux 内核,然后使用新编译出来的 zImage 镜像启动开发板。

二、设备树修改

Linux 内核自带的 KEY 驱动文件为drivers/input/keyboard/gpio_keys.c, gpio_keys.c 采用了 platform 驱动框架,在 KEY 驱动上使用了 input 子系统实现。所以,并不需要修改这个源文件。

要使用Linux内核自带的按键驱动程序只需要根据Documentation/devicetree/bindings/input/gpio-keys.txt 这个文件在设备树中添加指定的设备节点。

节点要求如下:

①节点名字为gpio-keys

②gpio-keys 节点的 compatible 属性值一定要设置为gpio-keys

③所有的 KEY是 gpio-keys 的子节点,每个子节点可以用如下属性描述自己:
        gpios: KEY 所连接的 GPIO 信息
        interrupts: KEY 所使用 GPIO 中断信息,不是必须的
        label: KEY 名字
        linux,code: KEY 要模拟的按键,如键盘上的按键

④如果按键要支持连按的话要加入 autorepeat

gpio-keys {
	compatible = "gpio-keys";
	#address-cells = <1>;
	#size-cells = <0>;
	autorepeat;
	key0 {
		label = "GPIO Key Enter";
		linux,code = <KEY_ENTER>;
		gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
	};
};

 这里键按键设置为电脑上的Enter按键。

重新编译设备树,然后用编译出来的dtb 启动 Linux 系统,系统启动以后查看/dev/input 目录

使用hexdump 命令来查看/dev/input/event1 文件

hexdump /dev/input/event2

如果按下按键以后会在终端上输出上面的信息那么表示 Linux 内核的按键驱动工作正常。

  • 1
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
评论

打赏作者

风间琉璃•

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值