触觉智能RK3562开发板GT911触摸DTS配置文件解析

本文是基于触觉智能RK3562开发板Linux系统介绍GT911触控芯片I2C的DTS描述,有助于刚接触设备树的小伙伴了解各属性的含义。触觉智能RK3562开发板,采用 Rockchip 新一代 64 位处理器 RK3562(Quad-core ARM Cortex-A53,主频最高 2.0GHz),最大支持 8GB 内存;内置独立的 NPU,可用于轻量级人工智能应用,RK3562 拥有 PCIE2.1 / USB3.0 OTG / 双以太网等各类型接口,支持多种视频输入输出接口,拥有丰富的外部接口。

产品资料获取链接:
http://www.industio.cn/product-item-44.htmlimage
image
一、i2c-tools工具介绍

1.1 查看工具
利用"i2ctools"测试工具进行初步检测,这些工具通常已经预装,可以直接使用。查看工具时,可用tab键补齐,看下是否有这些工具,命令如下:
C:\Users\industio>adb shell
root@kylinos:/#
root@kylinos:/# i2c
i2cdetect i2cget i2c-stub-from-dump
i2cdump i2cset i2ctransfer

i2cdetect:检测指定总线上的I2C设备
• i2cdump:dump指定I2C设备的寄存器数值
• i2cget:读取I2C数据
• i2cset:设置I2C数据

1.2 i2cdetect命令
用i2cdetect检测有几组i2c总线在系统上,如下图所示:image
示例:用i2cdetect检测挂载在i2c总线上器件,结果如下图所示:image
1.3 添加APP包名
修改文件:
device/rockchip/rk356x/rk3566_r/rk3566_r.mk
例如包名为:
com.mdptech.neuronappandroidhu

--- a/device/rockchip/rk356x/rk3566_r/rk3566_r.mk
+++ b/device/rockchip/rk356x/rk3566_r/rk3566_r.mk
@@ -46,4 +46,5 @@ PRODUCT_PROPERTY_OVERRIDES += 4persist.bt.power.down=true
PRODUCT_PROPERTY_OVERRIDES += 6persist.sys.timezone=Asia/Shanghai
PRODUCT_PROPERTY_OVERRIDES += ro.vendor.hdmirotationlock=true

PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=HDMI-A-1

PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=DSI
+PRODUCT_PROPERTY_OVERRIDES += persist.sys.def_launherpag=com.mdptech.neuronappandroidhu
包名命令行方式查看:pm list package -3,修改后 make 编译源码即可。

二、GT911触摸芯片I2C的DTS配置
DTS路径位置:
kernel/arch/arm64/boot/dts/rockchip/ido-evb3562-v1b-dsi-mipi.dts

.&i2c3 {
status = "okay";
//是该设备的标签(label),用于在设备树的其他部分或内核代码中引用这个设备。表示这个设备在I2C总线上的地址是0x14
gt911@14 {
//设备型号,通过设备型号去寻找对应的驱动程序
compatible = "goodix,gt9xx"; 7
//设备物理地址
reg = <0x14>;
//客户端
//引脚的复用(pinctrl子系统)
pinctrl-names = "default";
//pinctrl-0对应defualt状态,<&touch_gpio>节点,此节点存放的对应状态的引脚配置
pinctrl-0 = <&touch_gpio>;
//触摸屏的中断GPIO,使用GPIO0的第6引脚(RK_PB6),触发类型为低电平触发
goodix_irq_gpio = <&gpio0 RK_PB6 17IRQ_TYPE_LEVEL_LOW>;
//触摸屏控制器的GPIO,使用GPIO的第5引脚(RK_PB5),复位信号为高电平触发
goodix_rst_gpio = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
touchscreen-swapped-x-y;
touchscreen-inverted-y;
status = "okay";
};
};
//编写pinctrl节点
&pinctrl {
//服务端
touch {
touch_gpio: touch-gpio {
//rockchip,pins属性代表着引脚的复用关系以及电气属性
rockchip,pins =
//将GPIO 0中的B6设置为了GPIO功能,RK_FUNC_GPIO是一个宏,设置电气属性
<0 RK_PB6 RK_FUNC_GPIO 34&pcfg_pull_up>,
<0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};

2.1 compatible属性
compatible属性也叫”兼容性“属性,compatible属性用于将设备和驱动进行匹配,匹配成功以后会执行驱动中的probe函数。
gt911对应的驱动路径:/kernel-5.10/drivers/input/touchscreen/gt9xx/gt9xx.c,在gt9xx.c中相对应代码

如下:
static const struct of_device_id goodix_match_table[] = {
{.compatible = "goodix,gt9xx",},
{ },
};

如果需要具体搜索函数时,可以通过命令:grep "goodix,gt9xx" -Rin,结果如下图所示:image

2.2 goodix_irq_gpio属性
<&gpio0 RK_PB6 IRQ_TYPE_LEVEL_LOW>对应原理图:image

查看gt911规格书可得到中断的触发方式为低电平触发,如下图所示image

2.3 goodix_rst_gpio属性
<&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>对应原理图:image

开发板原理图链接:
https://industio.yuque.com/mdtih8/ko53d3/me80861vrkblmuqn?singleDoc# 《IDO-EVB3562-V1主板结构资料》

posted @ 2025-05-15 10:15  Industio_触觉智能  阅读(164)  评论(0)    收藏  举报