MTK平台 touch

本文介绍了在MTK平台中,针对两种不同的IC代码结构(存在tpd_local_init方法与不存在的情况),如何通过mtk_tpd.c和i2c_add_driver进行触控IC驱动的注册,强调了of_match_table在DTS文件中的一致性重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程有俩种

第一种

IC代码中有tpd_local_init方法,则需要和mtk平台的mtk_tpd.c一起编译

首先mtk_tpd.c注册platform_driver,会将所有编译的touch IC代码加入tpd_driver_list。
如下图代码所示:遍历tpd_driver_list中的touch,进入IC代码中的tpd_local_init。

if (tpd_driver_list[i].tpd_device_name != NULL) {
			tpd_driver_list[i].tpd_local_init();
			//tpd
			/* msleep(1); */
			if (tpd_load_status == 1) {
				TPD_DEBUG("%s, tpd_driver_name=%s\n", __func__,
					  tpd_driver_list[i].tpd_device_name);
				g_tpd_drv = &tpd_driver_list[i];
				break;
			}
		}

IC代码中的tpd_local_init将通过i2c_add_driver(&tpd_i2c_driver)注册IC。

注意:

mtk_tpd.c文件:&tpd_driver中的of_match_table应和dts文件中touch的compatible保持一致。
IC代码文件:&tpd_i2c_driver中的of_match_table建议改为mediatek,cap_touch,因为dws文件中i2c的name是cap_touch,只有匹配上才会走IC 的probe函数。

IC函数中的probe函数最后设置tpd_load_status=1,IC注册成功

第二种

IC代码中没有tpd_local_init方法,则直接使用i2c_add_driver(&tpd_i2c_driver)注册IC。

注意:

IC代码文件:&tpd_i2c_driver中的of_match_table应和dts文件中touch的compatible保持一致。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值