imx6 添加matrix keypad

imx6 添加matrix keypadfreescale增加matrixkeypad1.添加设备树,imx6有矩阵键盘功能,支持8*8的键盘kernel_imx/arch/arm/boot/dts/imx6qdl.dtsi/*addedbyyue.zhong*/#include//键值定义的地方,这是一个链接文件,指向kernel_imx/include/dt-bindings/input/i

大家好,又见面了,我是你们的朋友全栈君。

freescale增加matrix keypad

keypad_pin_sch

keypad_pin_sch2

keypad_keymap

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

imx_keypad_setup_timer_bug

但是设备驱动注册后,驱动中的定时器没有运行。。。囧,换方法,用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也不能拉动,很奇怪。
keypad_backlight_sch

keypad_backlight_sch2

前两个问题都有遗留问题没有解决,未完待续。。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130362.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 数据库选型之内存数据库eXtremeDB

    数据库选型之内存数据库eXtremeDB鉴于内存数据库访问速率快的特点,本文分别从单线程、多线程(并发访问)和多线程读/写混合访问角度对eXtremeDB数据库读写速率展开测试。需要指出的是,本文读取操作包含将数据读取后,并在控制台显示出来

  • 联想笔记本电脑键盘灯在哪里开_笔记本电脑键盘字母键变成数字键

    联想笔记本电脑键盘灯在哪里开_笔记本电脑键盘字母键变成数字键在联想系列的笔记本电脑中,自带有键盘等的功能,不仅可以显得炫酷,还可以在光线比较暗的情况下打开键盘灯可以方便我们看清键盘上的按键,不过很多用户并不知道联想的键盘灯怎么开吧,其实有快捷键可以快速开启的,下面就给大家分享一下联想笔记本键盘亮灯按哪个键吧。具体步骤如下:1、联想笔记本部分型号具bai备键盘背光功能,方法通du过“FN+空格”打开,支持此功能的zhi机型,dao键盘上有相应标示。部分早期的…

  • 浙江八年级 python_如何看待浙江八年级将新增python编程以及数据结构等课程?…

    浙江八年级 python_如何看待浙江八年级将新增python编程以及数据结构等课程?…不是吧阿sir,这后浪来的有点快吧放观点:可以在教育中普及编程语言引导学生学习,但不能把它变成所有初中生的必修课你把VB这种过时东西扔掉,我举双手赞成;你让学有余力、对这方面感兴趣的同学在课余时间研习一下代码和算法,我对此是鼓励的;但是你把python拿过来强制所有人学,那这门课1)如果加入记分考试,那这在应试教育体系下纯粹是给学生增加负担(我们学校大一下刚学VB这种比python还要简单的语言,…

  • 32位int取值范围_正则表达式判断是否是int32

    32位int取值范围_正则表达式判断是否是int32在做游戏的开发中,由于游戏运行的时间已经很长,数据量

  • 使用Windows PE的U盘安装win7

    前年刚去公司的时候用PE装过好多系统,最近又装一台华硕的,碰到了一个问题,一起记录了下。华硕X45,Bios已经改为U盘启动了,但就是进不去,因为知道可能还有个选磁盘启动项的键,找了半天原来按Esc就

    2021年12月21日
  • Java连接MySQL mysql-connector-java-bin.jar驱动包的下载与安装

    Java连接MySQL mysql-connector-java-bin.jar驱动包的下载与安装eclipse在连接mysql数据库的时候要通过mysql驱动包进行连接首先进入官网中—-官网地址:https://dev.mysql.com/进入官网中选择DOWNLOADS(下载)2.选择下载中的mysql-connectors3.选择connector/JJ指的是Java4.接下在选择操作系统,此处选择platformindependent(独立于平台)…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号