您当前的位置: 首页 >  linux

风间琉璃•

暂无认证

  • 0浏览

    0关注

    337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux之内核Platform KEY

风间琉璃• 发布时间:2022-09-27 21:03:17 ,浏览量:0

目录

一、内核图形化配置

二、设备树修改

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 = ;
	#size-cells = ;
	autorepeat;
	key0 {
		label = "GPIO Key Enter";
		linux,code = ;
		gpios = ;
	};
};

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

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

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

hexdump /dev/input/event2

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

关注
打赏
1665385461
查看更多评论
立即登录/注册

微信扫码登录

0.0383s