MTK 触摸屏驱动总结

5星 · 超过95%的资源 需积分: 50 17 下载量 8 浏览量 更新于2024-09-10 2 收藏 3KB TXT 举报
"MTK TP总结" MTK TP(Touch Panel)是MTK(MediaTek)公司处理器平台中关于触摸屏驱动的一部分。在Android系统中,触摸屏驱动通常基于I2C(Inter-Integrated Circuit)总线通信协议,因为许多触摸控制器芯片通过I2C接口与主处理器连接。本文档主要总结了MTK平台上关于I2C驱动和TP驱动的相关结构体、函数以及配置方法。 首先,`struct i2c_board_info` 是定义I2C设备信息的结构体,包含了以下字段: 1. `type`: 设备类型,用于标识I2C设备的名称,大小限制为`I2C_NAME_SIZE`个字符。 2. `flags`: 设备标志,如是否需要重试传输等。 3. `addr`: I2C设备的7位地址。 4. `platform_data`: 用于传递特定平台的数据到驱动程序。 5. `archdata`: 设备的架构相关数据。 6. `of_node` 和 `acpi_node`: 分别用于设备树和ACPI(Advanced Configuration and Power Interface)描述设备的节点。 接着,`struct i2c_devinfo` 结构体扩展了 `struct i2c_board_info`,增加了`busnum`字段,表示设备所在的I2C总线号。 在文档中,`tpd_device_driver` 和 `tpd_i2c_driver` 是两个驱动程序的结构体实例,分别代表TPD(Touch Panel Device)驱动和I2C驱动。它们定义了驱动的相关操作函数,例如: - `tpd_local_init`: TPD设备的本地初始化函数。 - `tpd_suspend` 和 `tpd_resume`: 分别对应设备的挂起和恢复操作,用于电源管理。 - `tpd_i2c_probe` 和 `tpd_i2c_remove`: 分别在检测到设备时调用的探测函数和在设备移除时调用的函数。 - `tpd_i2c_detect`: 设备检测函数,用于自动检测I2C总线上的设备。 此外,`tpd_i2c_driver` 结构体中的 `.driver` 字段包含驱动的名称、所有者(在某些情况下是 `THIS_MODULE`,表示当前模块),以及`probe`、`remove`等函数指针。 `#define I2C_BOARD_INFO(dev_type, dev_addr)` 宏定义用于创建 `struct i2c_board_info` 的便捷方式,它将设备类型和地址赋值给结构体。 最后,`static struct i2c_board_info __initdata gslX680_i2c_tpd` 使用上述宏定义了一个具体的I2C设备实例,类型为GSLX680,这通常是触摸控制器的型号。 这个文档涵盖了MTK平台中触摸屏驱动的I2C配置和驱动程序的实现细节,包括结构体定义、函数指针以及设备注册和操作的方法。这些内容对于理解和调试基于MTK平台的触摸屏驱动至关重要。