IMX6移植Linux4.1.15内核时需要添加矩阵按键的设备树信息
发布日期:2021-07-01 00:05:04
浏览次数:2
分类:技术文章
本文共 2818 字,大约阅读时间需要 9 分钟。
之前在Linux3.0.35内核移植过按键的信息,请点击链接查看:
本篇文章记录在IMX6开发板移植4.1.15内核时,添加矩阵按键的设备树信息。
1、具体添加的设备树信息
下面是我们的开发板中按键与核心板的引脚链接情况:
具体的驱动程序的分析可以查看之前移植3.0.35内核时的相关分析:
本次主要修改imx6qdl-sabresd.dtsi文件,该文件是与具体外设相关的文件
在imx6qdl-sabresd.dtsi文件的最后加上keypad设备树信息
&kpp { // keypad compatible = "fsl,imx6qdl-kpp", "fsl,imx21-kpp"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_kpp>; clocks = <&clks IMX6QDL_CLK_DUMMY>; linux,keymap = < MATRIX_KEY(0x0, 0x0, KEY_UP) MATRIX_KEY(0x0, 0x1, KEY_F9) MATRIX_KEY(0x0, 0x2, KEY_F3) MATRIX_KEY(0x0, 0x4, KEY_DOWN) MATRIX_KEY(0x0, 0x5, KEY_PRINT) MATRIX_KEY(0x1, 0x0, KEY_RIGHT) MATRIX_KEY(0x1, 0x1, KEY_F8) MATRIX_KEY(0x1, 0x2, KEY_F4) MATRIX_KEY(0x1, 0x4, KEY_HOME) MATRIX_KEY(0x1, 0x5, KEY_PAGEDOWN) MATRIX_KEY(0x2, 0x0, KEY_F12) MATRIX_KEY(0x2, 0x1, KEY_F7) MATRIX_KEY(0x2, 0x2, KEY_F5) MATRIX_KEY(0x2, 0x4, KEY_END) MATRIX_KEY(0x2, 0x5, KEY_PAGEUP) MATRIX_KEY(0x4, 0x0, KEY_F11) MATRIX_KEY(0x4, 0x1, KEY_F1) MATRIX_KEY(0x4, 0x2, KEY_F6) MATRIX_KEY(0x4, 0x4, KEY_NUMLOCK) MATRIX_KEY(0x4, 0x5, KEY_ESC) MATRIX_KEY(0x5, 0x0, KEY_F10) MATRIX_KEY(0x5, 0x1, KEY_F2) MATRIX_KEY(0x5, 0x2, KEY_LEFT) MATRIX_KEY(0x5, 0x4, KEY_SCROLLLOCK) MATRIX_KEY(0x5, 0x5, KEY_PAUSE) >; status = "okay";};
在iomuxc节点下的imx6qdl-sabresd节点下:
&iomuxc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hog>; imx6qdl-sabresd { 。。。。。。 。。。。。。 pinctrl_kpp:kpp_grp_1{ fsl,pins = < MX6QDL_PAD_KEY_COL0__KEY_COL0 0x80000000 MX6QDL_PAD_KEY_ROW0__KEY_ROW0 0x80000000 MX6QDL_PAD_KEY_COL1__KEY_COL1 0x80000000 MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x80000000 MX6QDL_PAD_KEY_COL2__KEY_COL2 0x80000000 MX6QDL_PAD_KEY_ROW2__KEY_ROW2 0x80000000 MX6QDL_PAD_KEY_COL4__KEY_COL4 0x80000000 MX6QDL_PAD_KEY_ROW4__KEY_ROW4 0x80000000 MX6QDL_PAD_CSI0_DAT4__KEY_COL5 0x80000000 MX6QDL_PAD_CSI0_DAT5__KEY_ROW5 0x80000000 >; }; };};
同样跟移植3.0.35内核一样,注意将引脚复用去掉,否则无法正常使用按键。
2、测试
重新编译内核后,烧写到开发板,然后测试按键是否可以正常使用:
首先在板子启动后,在板子的终端输入;
$ cat /proc/bus/input/devices
查看当前的设备,找到我们的按键设备,假设为evet0。
则在终端中输入
$ hexdump /dev/input/event0
所有按键都按一遍,会发现终端中打印了按键的值(显示的内容好像是某一种编码,不知道怎么转换为按键的值)
3、总结
设备树的出现,使内核的代码量变得精简的同时,也使得外设驱动的移植变得更加简单。
学习探讨加:
qq:1126137994 微信:liu1126137994转载地址:https://lyy-0217.blog.csdn.net/article/details/83317984 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年05月05日 13时33分24秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode64:最小路径和
2019-05-01
LeetCode931. 下降路径最小和
2019-05-01
LeetCode62. 不同路径
2019-05-01
记gdb调试一次报错:Missing separate debuginfos, use: zypper install glibc-32bit-debuginfo-2.22-15.3.x86_64
2019-05-01
LeetCode242. 有效的字母异位词
2019-05-01
LeetCode83. 删除排序链表中的重复元素
2019-05-01
关于301和302重定向的理解
2019-05-01
使用java代码和jmeter脚本批量造数
2019-05-01
[9] JMeter-常用函数的使用
2019-05-01
[10] JMeter-察看结果树,你知道都有哪些功能吗?
2019-05-01
[11] JMeter-结果分析之聚合报告
2019-05-01
[12] JMeter-结果分析之图形图表
2019-05-01
[13] JMeter-详解JMeter参数化之CSV Data Set Config
2019-05-01
[14] JMeter关联-详解JMeter正则表达式提取器
2019-05-01
优化jmeter脚本
2019-05-01
Gradle基础使用总结1
2019-05-01
性能测试场景设置---不同场景下对应的jmeter脚本【不定时补充】
2019-05-01
登录oracle数据库时常用的操作命令整理
2019-05-01
微信小程序实现安卓机下拉不刷新,ios下拉刷新操作(自定义底部tab栏在安卓机下拉)
2019-05-01