- 硬件IO口配置
2.打开 vendor/mediatek/proprietary/bootable/bootloader/lk/target/sm6737t_66_n/dct/dct/codegen.dws 以及
kernel-3.18/drivers/misc/mediatek/dws/mt6735/sm6737t_66_n.dws,设置前后摄像头的CMRST和CMPDN引脚,这是跟上电时序有关;
a.GPIO配置
b.dts配置
kernel-3.18/arch/arm64/boot/dts/sm6737t_66_n.dts
将默认的GPIO7改为GPIO9.
2)软件驱动移植
- 编译摄像头驱动
- device/sunmontech/sm6737t_66_n/ProjectConfig.mk
需要注意的是,要关闭内核与HAL层的闪光灯,否则并不能同时打开俩个摄像头。
2.kernel-3.18/arch/arm64/configs/sm6737t_66_n_defconfig
3. kernel-3.18/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h
此处定义摄像头ID以及对应的名称,与驱动里的UINT32 OV2710MIPISensorInit(PSENSOR_FUNCTION_STRUCT *pfFunc)函数绑定
4.kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6735/kd_sensorlist.h
此处绑定ID,名称和驱动函数,定义需要大写
- 上电(此部分参考datasheet)
kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6735/camera_hw/kd_camera_hw.c,(需要注意的是前后摄共用同一个CMMCLK)
- hal修改
- device/mediatek/common/kernel-headers/kd_imgsensor.h
-
此处只需要绑定ID与名称,hal层无入口函数
vendor/mediatek/proprietary/custom/mt6735/hal/D1/imgsensor_src/sensorlist.cpp - vendor/mediatek/proprietary/custom/mt6735/hal/D1/imgsensor/ (ISP相关的文件,需要找原厂提供,或找到CCT工具调试)
完整的过程是这样,其余遇到的问题后面再更