一、总体介绍
四个结构体:
控制器部分:
struct i2c_adapter i2c控制器(对应SOC部分)
struct i2c_agorithm i2c算法(对应i2c怎样穿数据,包括在i2c_adapter中)
触摸屏芯片部分:
struct i2c_client i2c设备(具有i2c接口的设备)
struct i2c_driver i2c设备的驱动(与i2c_client配对)
几个部分的文件,每个部分的文件可以看成是一个模块,都可以以平台总线
的方式来实现,非常灵活,一般需要获取硬件资源的模块会设计成平台总线
式的结构,这样可以程序与数据分离,便于移植。是很好的一种设计理念。
接口文件i2c-core.c:
1、定义了i2c总线
i2c_bus_type
mach
probe
2、提供了一些驱动开发的接口
i2c_add_adapter/i2c_add_numbered_adapter 注册adapter(控制器部分)
i2c_register_driver 注册driver
i2c_new_device 注册client
二、控制器adapter部分(在文件i2c-s3c2410.c):
其采用的平台总线的方式实现,platform_driver部分是对SOC的I2C控制器
部分进行操作的程序;platform_device是SOC的I2C控制器部分的硬件资源
采取数据与程序分离的思想。
platform_driver:
platform_driver_register(&a