kernel-4.4\drivers\misc\mediatek\imgsensor\src\common\v1
imgsensor.c
imgsensor_probe
--->imgsensor_i2c_create();
imgsensor_i2c.c
imgsensor_i2c_create()
---->i2c_add_driver
kernel-4.4\drivers\misc\mediatek\imgsensor\src\mt6739\camera_hw imgsensor_cfg_table.h中有如下定义
#define IMGSENSOR_I2C_OF_DRV_NAME_0 "mediatek,camera_main" // 匹配后摄的驱动
#define IMGSENSOR_I2C_OF_DRV_NAME_1 "mediatek,camera_sub" // 匹配后摄的驱动
#define IMGSENSOR_I2C_OF_DRV_NAME_2 "mediatek,camera_main_two"
mediatek,camera_main 、mediatek,camera_sub这两个字串在codegen.dws文件中匹配。dws 用工具可查看
camera 驱动文件 kernel-4.4\drivers\misc\mediatek\imgsensor\src\common\v1 imgsensor_i2c.c
有如下定义:
#ifdef CONFIG_OF
static const struct of_device_id gof_device_id_0[] = {
{ .compatible = IMGSENSOR_I2C_OF_DRV_NAME_0, }, //后摄
{}
};
static const struct of_device_id gof_device_id_1[] = { //前摄
{ .compatible = IMGSENSOR_I2C_OF_DRV_NAME_1, },
{}
};
static const struct of_device_id gof_device_id_2[] = {
{ .compatible = IMGSENSOR_I2C_OF_DRV_NAME_2, },
{}
};
#endif
i2c driver 注册结构体
static struct i2c_driv