RK3568触摸屏驱动调试总结

news/2024/11/30 14:28:08/

硬件电路分析

RK3568 CPU通过I2C与触控板外设wdt87xx连接。
首先要根据电路图获取如下I2C的信息:

项目Value
接在哪个I2Ci2c1
I2C 寄存器地址0x2c
HID 地址0x20
中断B5

1、接在哪个I2C
如图,1接在I2C1:
在这里插入图片描述
2、使用哪个GPIO引脚接收触控板的中断
如图:
CPU使用的是GPIO 0 B5引脚来接收触控板的中断
在这里插入图片描述

3、I2C1的寄存器地址0x2c
这个需要硬件工程师给出。
可以通过i2cdetect -r 1检测一下。
root@RK356X:/# i2cdetect -r 1
在这里插入图片描述
I2C1的0X2C位置挂载了一个I2C设备,就是本次的WD87XX触控。
I2C2的0X50位置挂载了一个I2C设备,这是RK628D。

4、HID 地址
查3568手册确认地址。

配置设备树

735 &i2c1 {
736 status = “okay”;
737
738 i2c-scl-rising-time-ns = <345>;
739 i2c-scl-falling-time-ns = <11>;
740 clock-frequency = <400000>;
741
742 touchpad: touchpad@2c {
743 compatible = “hid-over-i2c”;
744 interrupt-parent = <&gpio0>;
745 interrupts = <RK_PB5 IRQ_TYPE_LEVEL_LOW>;
746 pinctrl-names = “default”;
747 pinctrl-0 = <&touchpad_irq_gpio>;
748 reg = <0x2c>;
749 hid-descr-addr = <0x0020>;
750 };
751 };

其中,touchpad_irq_gpio定义:
491 touchpad {
492 touchpad_irq_gpio: touchpad-irq-gpio {
493 rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
494 };
495 };

为什么要这么配?
1、确定TOUCHPAD的寄存器地址REG=2c
2、确定TP挂在I2C1,因此要修改I2C的信息,通过 &i2c1来引用并加以修改。
3、和供应商确认支持的驱动程序是hid-over-i2c
4、HID地址可以向供应商索取相关的模板。

三、驱动工作
1、drivers hid hid-over-i2c 在工作
2、中断
cat /proc/interrupts| grep hid-over-i2c
122: 2 0 0 0 gpio0 13 Level hid-over-i2c

证实其工作正常。触发产生了中断。


http://www.ppmy.cn/news/30073.html

相关文章

【蓝桥杯试题】暴力枚举题型

&#x1f483;&#x1f3fc; 本人简介&#xff1a;男 &#x1f476;&#x1f3fc; 年龄&#xff1a;18 &#x1f91e; 作者&#xff1a;那就叫我亮亮叭 &#x1f4d5; 专栏&#xff1a;蓝桥杯试题 文章目录1. 统计方形&#xff08;数据加强版&#xff09;1. 1 题目描述1.2 思路…

PostgreSQL和PostGISWGS84和CGCS2000与GCJ02和BD09坐标系与之间互转

– 如果转换后结果为null,查看geom的srid是否为4326或者4490 WGS84转GCJ02 select geoc_wgs84togcj02(geom) from test_table GCJ02转WGS84 select geoc_gcj02towgs84(geom) from test_table WGS84转BD09 select geoc_wgs84tobd09(geom) from test_table BD09转WGS84 select …

Python基础知识汇总(字符串四)

目录 字母的大小写转换 lower()方法 upper()方法 删除字符串中的空格和特殊字符 strip()方法

【LeetCode】剑指 Offer(15)

目录 题目&#xff1a;剑指 Offer 32 - II. 从上到下打印二叉树 II - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 32 - III. 从上到下打…

numpy数组与矩阵运算(二)

文章目录矩阵生成与常用操作矩阵生成矩阵转置查看矩阵特性矩阵乘法计算相关系数矩阵计算方差、协方差、标准差计算特征值与特征向量计算逆矩阵求解线性方程组奇异值分解函数向量化矩阵生成与常用操作 矩阵生成 扩展库numpy中提供的matrix()函数可以用来把列表、元组、range对…

windows下neo4j安装及配置,并绘制人物关系图谱

neo4j安装及配置&#xff0c;绘制人物关系图谱 先升级pip&#xff0c;安装py2neo pip install py2neo2021.0.1依赖 jdk1.8&#xff0c; neo4j 3.xx&#xff1b; 或者jdk18&#xff0c;neo4j 4.x&#xff0c;5.x&#xff1b; 官网下载了neo4j4.x,5.x 因为jdk版本原因都不行&am…

【LinkedList】| 深度剥析Java SE 源码合集Ⅰ

目录一. &#x1f981; LinkedList介绍二. &#x1f981; 结构以及对应方法分析2.1 结构组成2.1.1 节点类2.1.2 成员变量2.2 方法实现2.2.1 添加add(E e)方法2.2.2 头尾添加元素Ⅰ addFirst(E e)Ⅱ addLast(E e)2.2.3 查找get(int index)方法2.2.4 删除remove()方法三. &#x…

Ubuntu 18.04 出现GLIBC_2.28 not found的解决方法

关于/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28’ not found出现报错&#xff0c;建议不要使用源码包去编译并升级。在下文有分享一个使用官方的Debian软件包去升级使用的方法。仅供参考&#xff01; 环境 # uname -a Linux Ubuntu 5.4.0-144-generic #161~18.04.…