一,i2c子系統代碼結構
i2c-core.c
1,使用bus_register進行總線註冊
2,提供與具體硬件無關的操作邏輯供i2c-dev.c中使用3,將操作邏輯通過EXPORT_SYMBOL導出到整個內核,供其他基於i2c的設備驅動調用
i2c-dev.c
實現i2c基本read、write功能,創建/dev/i2c-x節點
bus文件夾中的i2c-msm-v2.c
對i2c_core中物理層相關的操作進行實現,如clk配置、收發函數等等
二,i2c-dev中對i2c-croe的使用
i2c-dev.c中沒有probe函數,在初始化函數中註冊了各個設備對應的/dev/i2c-X節點。
static int __init i2c_dev_init(void)
{
int res;
res = register_chrdev(I2C_MAJOR, "i2c", &i2cdev_fops);
i2c_dev_class = class_create(THIS_MODULE, "i2c-dev");
i2c_dev