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_41/kernel/include/linux目录下
2、设备的注册
在mt_devs.c中
MTK平台用到的platform device 都在这注册 ,这样device 和driver 就能匹配上了
3、总线的匹配
在platform.c中, platform总线通过platform_match这个函数来确定platform_device 与 platform_driver 如何进行匹配