- 硬件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工具調試)
完整的過程是這樣,其餘遇到的問題後面再更