imx6 添加matrix keypad
freescale增加matrix keypad
1.添加设备树,imx6 有矩阵键盘功能,支持8*8的键盘
kernel_imx/arch/arm/boot/dts/imx6qdl.dtsi
/*added by yue.zhong*/
#include <dt-bindings/input/input.h>
//键值定义的地方,这是一个链接文件,指向kernel_imx/include/dt-bindings/input/input.h
/*endadded by yue.zhong*/
…
kpp: kpp@020b8000 {
compatible = “fsl,imx6q-kpp”, “fsl,imx21-kpp”;
reg = ;
interrupts = ;
clocks = <&clks 0>;
linux,keymap = <
KEY(2, 2, KEY_SOS) KEY(2, 4, KEY_FUN1) KEY(2, 5, KEY_FUN2) KEY(2, 6, KEY_FUN3) KEY(2, 7, KEY_CALL) KEY(4, 2, KEY_PTT) KEY(4, 4, KEY_UP) KEY(4, 5, KEY_DOWN) KEY(4, 6, KEY_LEFT) KEY(4, 7, KEY_RIGHT)
KEY(5, 2, KEY_VOLUMEUP) KEY(5, 4, KEY_1) KEY(5, 5, KEY_2) KEY(5, 6, KEY_3) KEY(5, 7, KEY_ASTERISK) KEY(6, 2, KEY_VOLUMEDOWN) KEY(6, 4, KEY_4) KEY(6, 5, KEY_5) KEY(6, 6, KEY_6) KEY(6, 7, KEY_0)
KEY(7, 2, KEY_FUN4) KEY(7, 4, KEY_7) KEY(7, 5, KEY_8) KEY(7, 6, KEY_9) KEY(7, 7, KEY_POUND)
>;
}
…
kpp {
pinctrl_kpp_1: kpp_grp_1 {
fsl,pins = <
MX6QDL_PAD_KEY_COL2__KEY_COL2 0x1b0b0
MX6QDL_PAD_KEY_COL4__KEY_COL4 0x1b0b0
MX6QDL_PAD_GPIO_19__KEY_COL5 0x1b0b0
MX6QDL_PAD_GPIO_9__KEY_COL6 0x1b0b0
MX6QDL_PAD_GPIO_4__KEY_COL7 0x1b0b0
MX6QDL_PAD_KEY_ROW2__KEY_ROW2 0x110b0
MX6QDL_PAD_KEY_ROW4__KEY_ROW4 0x110b0
MX6QDL_PAD_GPIO_1__KEY_ROW5 0x110b0
MX6QDL_PAD_GPIO_2__KEY_ROW6 0x110b0
MX6QDL_PAD_GPIO_5__KEY_ROW7 0x110b0
>;
};
};
…
对应驱动在kernel_imx\drivers\input\keyboard\imx-keypad.c
但是设备驱动注册后,驱动中的定时器没有运行。。。囧,换方法,用gpio模拟。
过程中出现了ROW4所在的第二行始终为低电平,后决定驱动迎合电平状态,行列互换先满足键盘正常工作。
kpp: kpp@020b8000 {
compatible = “gpio-matrix-keypad”;
debounce-delay-ms = ;
col-scan-delay-us = ;
gpio-activelow = ;
kp-backlight-gpios = <&gpio6 7 0>;
pinctrl-0 = <&pinctrl_kpp_1>;
/*row turn col*/
row-gpios = < &gpio4 10 1 &gpio4 14 1 &gpio4 5 1 &gpio1 9 1 &gpio1 4 1>;
col-gpios = < &gpio4 11 0 &gpio4 15 0 &gpio1 1 0 &gpio1 2 0 &gpio1 5 0>;
linux,keymap = <
KEY(0, 0, KEY_SOS) KEY(0, 1, KEY_PTT) KEY(0, 2, KEY_VOLUMEUP) KEY(0, 3, KEY_VOLUMEDOWN) KEY(0, 4, KEY_FUN4)
KEY(1, 0, KEY_FUN1) KEY(1, 1, KEY_UP) KEY(1, 2, KEY_1) KEY(1, 3, KEY_4) KEY(1, 4, KEY_7)
KEY(2, 0, KEY_FUN2) KEY(2, 1, KEY_DOWN) KEY(2, 2, KEY_2) KEY(2, 3, KEY_5) KEY(2, 4, KEY_8)
KEY(3, 0, KEY_FUN3) KEY(3, 1, KEY_LEFT) KEY(3, 2, KEY_3) KEY(3, 3, KEY_6) KEY(3, 4, KEY_9)
KEY(4, 0, KEY_CALL) KEY(4, 1, KEY_RIGHT) KEY(4, 2, KEY_ASTERISK) KEY(4, 3, KEY_0) KEY(4, 4, KEY_POUND)
>;
}
对应驱动在kernel_imx\drivers\input\keyboard\matrix_keypad.c
2.键盘灯的gpio也不能拉动,很奇怪。
前两个问题都有遗留问题没有解决,未完待续。。。
imx6 添加matrix keypad相关推荐
- 【STM32扫描4x4矩阵键盘模块】 4x4 matrix keypad interface
[STM32扫描4x4矩阵键盘模块] 4x4 matrix keypad interface 4x4矩阵键盘模块 矩阵键盘是将多个按键排布成类似矩阵形式的键盘组.为了减少IO资源的占用,将键盘组的每一 ...
- (imx6)添加RT3070 STA AP 支持
参考文章: http://blog.csdn.net/Xiongzhizhu/article/details/52090995 http://blog.csdn.net/zhengnice/artic ...
- imx6ul添加keyboard Matrix矩阵键盘
文章目录 一.功能实现(代码) 1.1 添加编译选项 1.2 添加设备树节点 1.2.1 添加kpp节点 1.2.2 在iomuxc中添加pinctrl_复用节点 1.2.3 屏蔽其他设备节点占用的键 ...
- IMX6UL上添加支持矩阵按键
一般按键驱动有两种,一种是矩阵键盘驱动,一个是GPIO接口键盘驱动 矩阵键盘路径:drivers/input/keyboard/matrix_keypad.c(一般用于多按键情况) GPIO接口键盘路 ...
- keyboard Matrix矩阵键盘
文章目录 一.功能实现(代码) 1.1 添加编译选项 1.2 添加设备树节点 1.2.1 添加kpp节点 1.2.2 在iomuxc中添加pinctrl_复用节点 1.2.3 屏蔽其他设备节点占用的键 ...
- android图片缩小和放大Matrix
/**Bitmap放大的方法*/ private static Bitmap big(Bitmap bitmap) { Matrix matrix = new Matrix(); matrix. ...
- 桌面linux imx6q,SAIL-IMX6Q添加qt桌面应用程序
添加qt桌面应用程序比较繁琐,提起来大家都是相当头疼的一块项目,经过我一系列的摸索,终于学会了用imx6添加qt桌面应用程序. 文件夹设置存放在:/usr/share/matchbox/vfolder ...
- 做ARM的一些前后经历——转载的
前传篇 虽然到现在为止我的arm9还没有做出来,目前只调通了一块.写这篇文章的目的,就是想和嵌入式爱好者做一个简单的交流. 2002.9月以前我是做龙珠的(dragonball vz)软件的,使用的是 ...
- Tina_Linux_Key_快速配置使用指南
Tina Linux Key 快速配置使用指南 1 前言 1.1 文档简介 本文介绍Tina 平台key 相关的快速配置和使用方法. 1.2 目标读者 Allwinner key 驱动驱动层/应用层的 ...
最新文章
- [教程] 谈谈网页设计中的字体应用 (2) serif 和 sans-serif
- 认识Backbone (四)
- 车载360度全景监视系统
- 一封邮件, 就能看出你是不是足够专业
- BugKuCTF WEB web4
- .Net Core Nuget还原失败
- Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制
- Vue2.x中的父组件数据传递至子组件
- python语言如何软件搬家_python写程序-就像搬家把物品分类放在箱子里
- 点餐系统的设计(一)
- 手持设备点击响应速度,鼠标事件与touch事件的那些事
- iOS 设计模式之抽象工厂
- Linux下mongodb用户管理和设置远程登陆
- 阵列卡u盘安装系统步骤_Dell的R720服务器使用U盘安装系统
- C++银行管理系统设计分析及程序设计介绍
- android 百度基站定位服务器,Android基站定位原理及实现代码
- matplotlib绘制图例
- ToolGood.Words一款高性能敏感词(非法词/脏字)检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。
- matlab曲线拟合工具箱cftool
- 怎么在一堆身份证中筛选出大于18岁的?