
清空记录
历史记录
取消
清空记录
历史记录

本文是触觉智能EVB3562开发板基于Linux系统介绍GT911触控芯片I2C的DTS描述,有助于刚接触设备树的小伙伴了解各属性的含义。触觉智能的IDO-EVB3562开发板,采用 Rockchip 新一代 64 位处理器 RK3562(Quad-core ARM Cortex-A53,主频最高 2.0GHz),最大支持 8GB 内存;内置独立的 NPU,可用于轻量级人工智能应用,RK3562 拥有 PCIE2.1 / USB3.0 OTG / 双以太网等各类型接口,支持多种视频输入输出接口,拥有丰富的外部接口。
产品资料获取链接:
/product-item-44.html
利用"i2ctools"测试工具进行初步检测,这些工具通常已经预装,可以直接使用。查看工具时,可用tab键补齐,看下是否有这些工具,命令如下:
C:\Users\industio>adb shellroot@kylinos:/#root@kylinos:/# i2ci2cdetect i2cget i2c-stub-from-dumpi2cdump i2cset i2ctransfer
i2cdetect:检测指定总线上的I2C设备
i2cdump:dump指定I2C设备的寄存器数值
i2cget:读取I2C数据
i2cset:设置I2C数据
用i2cdetect检测有几组i2c总线在系统上,如下图所示:
示例:用i2cdetect检测挂载在i2c总线上器件,结果如下图所示:
--- 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 += persist.bt.power.down=true PRODUCT_PROPERTY_OVERRIDES += persist.sys.timezone=Asia/Shanghai PRODUCT_PROPERTY_OVERRIDES += ro.vendor.hdmirotationlock=true #PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=HDMI-A-1PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=DSI+PRODUCT_PROPERTY_OVERRIDES += persist.sys.def_launherpag=com.mdptech.neuronappandroidhu
包名命令行方式查看:pm list package -3,修改后 make 编译源码即可。
&i2c3 { status = "okay"; //是该设备的标签(label),用于在设备树的其他部分或内核代码中引用这个设备。表示这个设备在I2C总线上的地址是0x14 gt911@14 { //设备型号,通过设备型号去寻找对应的驱动程序 compatible = "goodix,gt9xx"; //设备物理地址 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 IRQ_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 &pcfg_pull_up>, <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; }; };};compatible属性也叫”兼容性“属性,compatible属性用于将设备和驱动进行匹配,匹配成功以后会执行驱动中的probe函数。
static const struct of_device_id goodix_match_table[] = { {.compatible = "goodix,gt9xx",}, { },};如果需要具体搜索函数时,可以通过命令:grep "goodix,gt9xx" -Rin,结果如下图所示:
<&gpio0 RK_PB6 IRQ_TYPE_LEVEL_LOW>对应原理图:
查看gt911规格书可得到中断的触发方式为低电平触发,如下图所示
<&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>对应原理图:
开发板原理图链接:
https://3mw.cn/52g45
EVB3562 购买链接
https://item.taobao.com/item.htm?ft=t&id=739666345147
END
