7.9.2. 参数配置
7.9.2.1. 内核配置
参考快速入门 - 编译概述 - Kernel配置,进入kernel的功能配置,按如下选择:
Linux
Device Drivers
Input device support
[*] Touchscreens
<*> ZX resistive touchscreen controller support
Linux
Device Drivers
Input device support
<*> Event interface
备注
用户态需要获取Input事件,对此,内核需配置event接口,即Event interface需进行打开。
7.9.2.2. DTS参数配置
7.9.2.2.1. RTP自定义参数
RTP驱动支持从DTS中配置的完整参数,如下表:
参数名称 |
类型 |
取值范围 |
功能说明 |
---|---|---|---|
aic,max-pressure |
正整数 |
[1, 4095] |
最大压感值,超过此值的坐标事件会被忽略 |
aic,x-plate |
正整数 |
> 0 |
需要实测屏幕X方向的电阻,用于计算压感值 |
aic,y-plate |
正整数 |
> 0 |
需要实测屏幕Y方向的电阻,用于计算压感值 |
aic,two-points |
boolean |
有 - 1,无 - 0 |
是否打开两点采样 |
aic,manual-mode |
boolean |
有 - 1,无 - 0 |
是否采用手动模式 |
aic,sample-period-ms |
正整数 |
[1, 1000] |
周期采样模式下的周期值,单位:ms |
aic,fuzz |
正整数 |
[1, 32] |
对坐标变化模糊处理的半径值 |
不同的参数组合,可以让RTP工作在不同的采样模式,对应关系如下:
模式 |
子模式 |
采样点 |
需要用户配置的DTS参数 |
备注 |
---|---|---|---|---|
手动 模式 |
无压感 |
XN, YN |
manual-mode |
|
有压感 |
XN, YN, ZA |
manual-mode, x-plate, y-plate |
||
XN, YN, ZA, ZB |
manual-mode, x-plate |
|||
自动 模式 |
Auto1非周期 |
XN, YN |
无 |
|
Auto1周期 |
sample-period-ms |
|||
Auto2非周期 |
XN, YN, ZA, ZB |
x-plate |
缺省模式 |
|
Auto2周期 |
x-plate, sample-period-ms |
|||
Auto3非周期 |
XN, XP, YN, YP ZA, ZB |
x-plate, y-plate, two-points |
||
Auto3周期 |
x-plate, y-plate, two-points, sample-period-ms |
|||
Auto4非周期 |
XN, XP, YN, YP ZA, ZB, ZC, ZD |
x-plate, two-points |
||
Auto4周期 |
x-plate,two-points,sample-period-ms |
上表中“DTS参数”按照规范每个参数名称签名都有个“aic,”前缀,为了简洁表格中有省略。
备注
对于Auto2模式,如果用户配置了y-plate,ZB数据将驱动被忽略,压感计算 时采样公式2;
基于实测数据,Auto2非周期模式 在性能上表现都比较平衡,所以DTS中会作为缺省配置。
7.9.2.2.2. M4的配置
common/m4.dtsi中的参数配置:
rtp: rtp@19252000 {
compatible = "zx,aic-rtp-v1.0";
reg = <0x0 0x19252000 0x0 0x1000>;
interrupts-extended = <&plic0 93 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cmu CLK_RTP>, <&cmu CLK_APB1>;
clock-names = "rtp", "pclk";
resets = <&rst RESET_RTP>;
};
xxx-board.dts中的参数配置:
&rtp {
aic,max-pressure = <800>;
aic,x-plate = <235>;
pinctrl-names = "default";
pinctrl-0 = <&rtp_pins>;
status = "okay";
};
小技巧
这里的配置选用了Auto2的Single Piont模式,所以只用到RTP驱动的部分参数。
x-plate和y-plate两个参数是要根据触摸屏的电阻实测值来定。
7.9.2.3. 触摸屏的电阻实测方法
小技巧
原理图中触摸屏的四个引脚为PA11(YN)、PA10(XN)、PA09(YP)、PA08(XP)。
测量过程中需根据电路原理图中rtp的引脚顺序,确定XN、XP、YN、YP在屏幕的位置。
7.9.2.4. 几款RTP屏幕的参数
这里记录测试过的几款屏幕参数,主要是X、Y方向的电阻值,对应DTS中的x-plate、y-plate:
屏型号 |
分辨率 |
板子类型 |
x-plate |
y-plate |
备注 |
---|---|---|---|---|---|
LCD屏 |
800x480 |
per1 |
235 |
902 |
|
LVDS屏 |
1024x600 |
per1 |
702 |
236 |