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

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 测试报告范文_系统测试报告

    测试报告范文_系统测试报告前言受益于pytest的集成,HttpRunnerv3.x可以使用pytest所有插件,包括pytest-html和allure-pytest,也可以实现这2种方式的报告内置html报告pyt

    2022年7月28日
    1
  • 零基础php从入门到精通_韩顺平java从入门到精通

    零基础php从入门到精通_韩顺平java从入门到精通从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用PHP进行网络开发应该掌握的各方面技术。本书共分4篇25章,其中,基础知识篇包括初识PHP、PHP环境搭建和开发工具、PHP语言基础、流程控制语句、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、PHP与JavaScript交互、日期和时间;核心技术篇包括Cookie与Session、图形图像处理技术、文件系统、面向对…

    2025年7月27日
    0
  • VS2008序列号_autocad2008激活序列号

    VS2008序列号_autocad2008激活序列号VS2008正式版序列号CDKEY:PYHYP-WXB3B-B2CCM-V9DX9-VDY8TMSDNLibraryforVisualStudio2008http://www.microsoft.com/downloads/details.aspx?FamilyID=6ff3bc60-32c8-4c22-8591-a20bf8dff1a2&DisplayLang=zh-cnVis…

    2022年8月10日
    4
  • linux怎么安装xshell_shell连接db2数据库命令

    linux怎么安装xshell_shell连接db2数据库命令第一步:在linux下解压文件第二步:安装之前先执行卸载掉centos7自带的mariadb-lib(1)查询mariadb信息rpm-qa|grepmariadb2)使用rpe-e命令卸载rpm-emariadb-libs-5.5.64-1.el7.x86_64–nodeps第三步:依次安装yuminstallmysql-community-common-5.7.27-1.e…

    2022年9月9日
    0
  • adventureworksdw2008r2_种植项目实施方案示例范文

    adventureworksdw2008r2_种植项目实施方案示例范文在SQLServer2008的Analysis帮助的例子经常用到AdventureWorks多维数据库。需要按照下列步骤安装1.首先安装SQL2008.AdventureWorks_All_Databases.x86.msi2.下载AdventureWorks2008R2NovemberCTP,里面有AdventureWorks的项目,在vs2008中部署就可以了。C:\Pro…

    2022年9月11日
    0
  • OpenERP Web开发[通俗易懂]

    OpenERP Web开发[通俗易懂]声明:本文非原创,原始出处为http://blog.csdn.net/mackz/article/details/22581517分类:原始页面:Welcome to OpenERP Web Training  在7和8下测试均可。  1.相关库/框架  主要:jQuery(使用1.8.3,如果使用新版本,其他jQuery插件也要升级或修改)、Underscore、QW

    2025年6月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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