MTK平台camera(摄像头)调试教程 下载本文

驱动的入口:

Camera Driver analysis in the platform of MTK

Preliminary Information

其中成员函数 open()只是初始化一个原子变量留给系统调用。ioctl()才是整个 Camera

CAMERA_HW_Ioctl()是上层文件操作系统操作底层硬件的方法,它先对 Camera 需要的 Buffer 做一个初始化,然后建立对 Cameraopen、getinfo 等操作的接口:

通过判断 Sensor 状态的逻辑值来进行具体的操作,对于这个值的定义在: Mediatek\\custom\\common\\kernel\\imgsensor\\inc\\Kd_imgsensor.h 中

Ghong Confidential

Revision 0.1-Feb.14 2012

?2012 Ghong inc.

- 15 -

Camera Driver analysis in the platform of MTK

Preliminary Information

在 KdSetDriver()中通过判断 name 和 ID 匹配具体型号的 sensor 的驱动,判断它是主摄还 是次摄,并对它进行初始化:

通过 NAME 和 ID 匹配完成后会将 PSENSOR_FUNCTION_STRUCT *pfFunc 这个结构体匹 配到具体型号的驱动代码中:

到这里,整个 Camera 驱动从总线注册到完成具体 sensor 的初始化的流程就完成了,

CAMERA_HW_Ioctl()中其他的 ioctl 操作函数最后都会在$sensor$_sensor.c 中实现。

Ghong Confidential

Revision 0.1-Feb.14 2012

?2012 Ghong inc.

- 16 -

Camera Driver analysis in the platform of MTK

Preliminary Information

十、 Camera 驱动添加、调试流程:

1、 修改系统配置文件 ProjectConfig.mk:

-alps\\mediatek\\config\\$project$\\ProjectConfig.mk

Ghong Confidential

Revision 0.1-Feb.14 2012

?2012 Ghong inc.

- 17 -

Camera Driver analysis in the platform of MTK

2、 检查、配置供电文件:

Preliminary Information

-alps\\mediatek\\custom\\$project$\\Kernel\\Camera\\Camera\\kd_camera_hw.c

Camera 供电流程(以 3M 前摄 MT9V114+5M 后摄 OV5647 为例):

其实在 kd_camera_hw.c 中只有一个函数 kdCISModulePowerOn(),在这个 函数中需要注意的是通过 GPIO 口控制 PDN 和 RST 引脚的时候,对于其相关的

定义,由其在切换平台的时候。例如 MT6573 和 MT6575 的定义顺序就不同。

- 18 -

Ghong Confidential Revision 0.1-Feb.14 2012

?2012 Ghong inc.