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相关推荐

  1. 【STM32扫描4x4矩阵键盘模块】 4x4 matrix keypad interface

    [STM32扫描4x4矩阵键盘模块] 4x4 matrix keypad interface 4x4矩阵键盘模块 矩阵键盘是将多个按键排布成类似矩阵形式的键盘组.为了减少IO资源的占用,将键盘组的每一 ...

  2. (imx6)添加RT3070 STA AP 支持

    参考文章: http://blog.csdn.net/Xiongzhizhu/article/details/52090995 http://blog.csdn.net/zhengnice/artic ...

  3. imx6ul添加keyboard Matrix矩阵键盘

    文章目录 一.功能实现(代码) 1.1 添加编译选项 1.2 添加设备树节点 1.2.1 添加kpp节点 1.2.2 在iomuxc中添加pinctrl_复用节点 1.2.3 屏蔽其他设备节点占用的键 ...

  4. IMX6UL上添加支持矩阵按键

    一般按键驱动有两种,一种是矩阵键盘驱动,一个是GPIO接口键盘驱动 矩阵键盘路径:drivers/input/keyboard/matrix_keypad.c(一般用于多按键情况) GPIO接口键盘路 ...

  5. keyboard Matrix矩阵键盘

    文章目录 一.功能实现(代码) 1.1 添加编译选项 1.2 添加设备树节点 1.2.1 添加kpp节点 1.2.2 在iomuxc中添加pinctrl_复用节点 1.2.3 屏蔽其他设备节点占用的键 ...

  6. android图片缩小和放大Matrix

    /**Bitmap放大的方法*/  private static Bitmap big(Bitmap bitmap) {  Matrix matrix = new Matrix();  matrix. ...

  7. 桌面linux imx6q,SAIL-IMX6Q添加qt桌面应用程序

    添加qt桌面应用程序比较繁琐,提起来大家都是相当头疼的一块项目,经过我一系列的摸索,终于学会了用imx6添加qt桌面应用程序. 文件夹设置存放在:/usr/share/matchbox/vfolder ...

  8. 做ARM的一些前后经历——转载的

    前传篇 虽然到现在为止我的arm9还没有做出来,目前只调通了一块.写这篇文章的目的,就是想和嵌入式爱好者做一个简单的交流. 2002.9月以前我是做龙珠的(dragonball vz)软件的,使用的是 ...

  9. Tina_Linux_Key_快速配置使用指南

    Tina Linux Key 快速配置使用指南 1 前言 1.1 文档简介 本文介绍Tina 平台key 相关的快速配置和使用方法. 1.2 目标读者 Allwinner key 驱动驱动层/应用层的 ...

最新文章

  1. [教程] 谈谈网页设计中的字体应用 (2) serif 和 sans-serif
  2. 认识Backbone (四)
  3. 车载360度全景监视系统
  4. 一封邮件, 就能看出你是不是足够专业
  5. BugKuCTF WEB web4
  6. .Net Core Nuget还原失败
  7. Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制
  8. Vue2.x中的父组件数据传递至子组件
  9. python语言如何软件搬家_python写程序-就像搬家把物品分类放在箱子里
  10. 点餐系统的设计(一)
  11. 手持设备点击响应速度,鼠标事件与touch事件的那些事
  12. iOS 设计模式之抽象工厂
  13. Linux下mongodb用户管理和设置远程登陆
  14. 阵列卡u盘安装系统步骤_Dell的R720服务器使用U盘安装系统
  15. C++银行管理系统设计分析及程序设计介绍
  16. android 百度基站定位服务器,Android基站定位原理及实现代码
  17. matplotlib绘制图例
  18. ToolGood.Words一款高性能敏感词(非法词/脏字)检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。
  19. matlab曲线拟合工具箱cftool
  20. 怎么在一堆身份证中筛选出大于18岁的?

热门文章

  1. HDU 5374 模拟俄罗斯方块
  2. 在有Anaconda情况下,使用python命令报错的问题
  3. 货币等精确计算使用BigDecimal
  4. 中小企业如何进行云灾备?
  5. 各地光热发电示范项目可研陆续结束 明年将迎开工潮
  6. 计算机网络三大必备书,网络十大神书据说都看过的可以成仙
  7. Android调微信小程序
  8. 大学生创业要先工作再创业更容易成老板
  9. SpringBoot继承阿里云短信
  10. 10.Python存储数据Json模块