mtk平台上ctp调试很简单:搞定6根线就可以了,分别是地线,中断线,电源线,I2C线(2根),reset复位线。
这里地线就不讨论了。从原理图可以知道CTP是i2c 设备,保证I2C通讯正常前提是CTP上电正常,I2C通讯正常后,就要初始化ctp了(TP若本身就带rom,里面有参数,不用写参数,你的TP只要供电正常+中断正常,就可以工作),最后就是保证触摸功能的中断信号正常工作。
从上面可以看出:基本上就是围绕那6跟线做的
TP攻略:
1.把驱动添加到代码里面去
2.供电OK,I2C就通讯正常
3.在1 跟2的基础上,看log初始化是否成功
4.若初始化成功了,就看TP是否正常工作
5.若4不工作,量取中断信号是否对的
关于TP分辨率和坐标设置:andorid6.0这些客制化的东西都在设备树种配置
void tpd_get_dts_info(void)
{
struct device_node *node1 = NULL;
int key_dim_local[16], i;
node1 = of_find_matching_node(node1, touch_of_match);
if (node1) {
of_property_read_u32(node1, "tpd-key-dim-local", &tpd_dts_data.touch_max_num);
of_property_read_u32(node1, "use-tpd-button", &tpd_dts_data.use_tpd_button);
pr_info("[tpd]use-tpd-button = %d\n", tpd_dts_data.use_tpd_button);
of_property_read_u32_array(node1, "tpd-resolution",
tpd_dts_data.tpd_resolution, ARRAY_SIZE(tpd_dts_data.tpd_resolution));
if (tpd_dts_data.use_tpd_button) {
of_property_read_u32(node1, "tpd-key-num", &tpd_dts_data.tpd_key_num);