MTK-MT6735-camera新加模組調試總結

記錄下MTK6735 添加新的camera模組調試過程

1、第三方提供kernel的驅動代碼以及hal層的效果代碼。

kernel代碼拷貝到(比如)kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6735/sc2232_mipi_raw_sub/

hal代碼拷貝到(比如)vendor/mediatek/proprietary/custom/mt6735/hal/D1/imgsensor/sc2232_mipi_raw_sub/

文件名很重要,不能隨便寫,兩處代碼中的SENSOR_ID和SENSOR_DRVNAME要一致,並且和下文中的定義也要一致。

2、修改sensorlist.cpp添加sensor相關配置(如下圖)

DRVNAME後面的sc2232_mipi_raw_sub就是對應文件夾名,所以第一步中的文件名不能隨便寫。

3、添加sensor ID和DRVNAME的定義

兩處定義的順序要一致!!!

4、綁定函數入口

注意紅框的名字必須和kernel驅動代碼中此函數的名字一致。

5、修改上下電時序,關鍵是上電時序

代碼位置:kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6735/camera_hw/kd_camera_hw.c

函數名:kdCISModulePowerOn,注意if中判斷的sensor name,不同的模組上電時序不同,請仔細閱讀datasheet

另外若想修改I2C讀寫時的i2c-bus-num,請注意修改kernel驅動代碼的這裏

返回值有兩個0和1,走的i2c總線不一樣,i2c選擇不對時kernel的日誌上會看到i2c發送超時或者無應答錯誤。

I2C掛載的具體實現在kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt6735/kd_sensorlist.c中,不管使用的是什麼模組,mtk都會先註冊main-camera和sub-camera,上面截圖中會決定你的camera的i2c是哪一路,即在mtk已經註冊的main和sub中選擇一個。

6、添加config使相關修改編譯進去

hal的修改對應配置在ProjectConfig.mk(在device目錄下),可以搜索IMGSENSOR查看

kernel的修改對應配置在kernel-3.18/arch/arm64/configs/,可以搜索IMGSENSOR查看

注意ProjectConfig.mk修改時若不清楚對應的MAIN_LENS和SUB_LENS的設置,請先設置爲dummy_lens,此設置項對應相機的AF功能。

至此一顆新的sensor添加完成。

備註:關於preview size 白平衡等相關設置的位置在vendor/mediatek/proprietary/custom/mt6735/hal/D1/sendepfeature/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章