MTK6517平台0309camera模块驱动、设备、总线结构笔记

MTK6517平台0309camera驱动相关文件

1、mtk6517_41/mediatek/custom/mbk77_twn_cu_jb/kernel/camera/camera目录下

Sensor供电

kd_camera_hw.c

kd_camera_hw.h

2、mtk6517_41/mediatek/custom/common/kernel/imgsensor/inc目录下

Sensor ID 和一些枚举类型的定义

kd_imgsensor.h-->Sensor ID

kd_imgsensor_define.h-->枚举类型

3、mtk6517_41/mediatek/custom/common/kernel/imgsensor/src目录下

Kernel Space 的SensorList ,imageSensor 模块的注册

kd_sensorlist.c

kd_sensorlist.h

4、mtk6517_41/mediatek/custom/common/kernel/imgsensor/gc0309_yuv目录下

camera驱动相关文件

gc0309yuv_Sensor.c

gc0309yuv_Sensor.h

5、mtk6517_41/mediatek/custom/common/hal/imgsensor/src目录下

Usr Space 的SensorList ,向用户空间提供的SensorList

sensorlist.cpp

6、mtk6517_41/mediatek/custom/common/hal/imgsensor/gc0309_yuv目录下

Sensor 效果调整

cfg_ftbl_gc0309_yuv.h

camera_tuning_para_gc0309_yuv.cpp

feature_gc0309_yuv.cpp

在Linux设备驱动模型中,主要关注总线、设备、驱动这三个实体。 总线会对加载于其上的设备、驱动进行配对,下面从这三个角度来分析Camera模块驱动的注册、匹配、加载的过程。

1、驱动的注册

mediatek/custom/common/kernel/imgsensor/src/kd_sensorlist.c中static int __init CAMERA_HW_i2C_init(void)函数通过platform_driver_register(&g_stCAMERA_HW_Driver)把Camera模块驱动注册到Platform总线上。g_stCAMERA_HW_Driver是对Platform_driver这个结构体的填充。

MTK6517平台0309camera模块驱动、设备、总线结构笔记

在mtk6517_41/kernel/include/linux目录下

MTK6517平台0309camera模块驱动、设备、总线结构笔记

2、设备的注册

在mt_devs.c中

MTK6517平台0309camera模块驱动、设备、总线结构笔记MTK6517平台0309camera模块驱动、设备、总线结构笔记

MTK平台用到的platform device 都在这注册 ,这样device 和driver 就能匹配上了

3、总线的匹配

在platform.c中, platform总线通过platform_match这个函数来确定platform_device 与 platform_driver 如何进行匹配

MTK6517平台0309camera模块驱动、设备、总线结构笔记