1、先找到Camera的上电时序图,从图中可以看到我们接下来需要配置的GPIO引脚。
2、再找到板子原理图中的Camera部分引脚定义如下图,从中可以找到Camera的上电时序图的对应GPIO引脚。以CMMCLK为例,CMCLK --> CMMCLK --> Y27 --> GPIO45。
3、硬件连接分析完后,接下来就分析软件是否正确配置。在jsh\K9635_6735_5.1\kernel-3.10\tools\dct目录下运行DrvGen软件并打开\jsh\K9635_6735_5.1\kernel-3.10\drivers\misc\mediatek\mach\mt6735\f202_3566t\dct\dct目录下codegen.dws如下图。从图中可看到GPIO45引脚是否正确配置。
4、kd_camera_hw.c 是需要客制化的文件,主要控制imagesensor的上电和下电时序,一定要正确填写,否则可能会出现读不到id,黑屏,花屏,进入退出Camera速度慢等一系列问题。接下来着重理清上电时序代码
int kdCISModulePowerOn(CAMERA_DUAL_CAMERA_SENSOR_ENUM SensorIdx, char *currSensorName, BOOL On, char* mode_name)
{
u32 pinSetIdx = 0;//default main sensor
#define IDX_PS_CMRST 0#define IDX_PS_CMPDN 4
#define IDX_PS_MODE 1
#define IDX_PS_ON 2
#define IDX_PS_OFF 3
u32 pinSet[3][8] = {
//for main sensor{
CAMERA_CMRST_PIN, // The reset pin of main sensor uses GPIO10 of mt6306, please call mt6306 API to set
CAMERA_CMRST_PIN_M_GPIO, /* mode */
GPIO_OUT_ONE, /* ON state */
GPIO_OUT_ZERO, /* OFF state */
CAMERA_CMPDN_PIN,
CAMERA_CMPDN_PIN_M_GPIO,
GPIO_OUT_ONE,
GPIO_OUT_ZERO,
},
//for sub sensor
{ CAMERA_CMRST1_PIN,
CAMERA_CMRST1_PIN_M_GPIO,
GPIO_OUT_ONE,
GPIO_OUT_ZERO,
CAMERA_CMPDN1_PIN,
CAMERA_CMPDN1_PIN_M_GPIO,
GPIO_OUT_ONE,
GPIO_OUT_ZERO,
},
//for main_2 s