Camera現在是使用比較廣泛的外設,現在基於:MT8385,Android版本:Android12,內核版本:kernel-4.19來實現移植ov13855。
1. MiPi 硬體引腳配置,配置路徑:
vendor\mediatek\proprietary\custom\tb8788p1_64_wifi_k419\hal\imgsensor_src\cfg_setting_imgsensor.cpp
static CUSTOM_CFG gCustomCfg[] = {
{
.sensorIdx = IMGSENSOR_SENSOR_IDX_MAIN,
.mclk = CUSTOM_CFG_MCLK_2,
.port = CUSTOM_CFG_CSI_PORT_1,
.dir = CUSTOM_CFG_DIR_REAR,
.bitOrder = CUSTOM_CFG_BITORDER_9_2,
.orientation = 90,
.horizontalFov = 67,
.verticalFov = 49
},
{
.sensorIdx = IMGSENSOR_SENSOR_IDX_SUB,
.mclk = CUSTOM_CFG_MCLK_3,
.port = CUSTOM_CFG_CSI_PORT_2,
.dir = CUSTOM_CFG_DIR_FRONT,
.bitOrder = CUSTOM_CFG_BITORDER_9_2,
.orientation = 270,
.horizontalFov = 63,
.verticalFov = 40
},
2.配置mclk上電時序
kernel-4.19/drivers/misc/mediatek/imgsensor/src/mt6771/camera_project/tb8788p1_64_wifi_k419/camera_hw/imgsensor_cfg_table.c
struct IMGSENSOR_HW_CFG imgsensor_custom_config[] = {
{
IMGSENSOR_SENSOR_IDX_MAIN,
IMGSENSOR_I2C_DEV_0,
{
{IMGSENSOR_HW_PIN_MCLK, IMGSENSOR_HW_ID_MCLK},
{IMGSENSOR_HW_PIN_AVDD, IMGSENSOR_HW_ID_REGULATOR},
{IMGSENSOR_HW_PIN_DOVDD, IMGSENSOR_HW_ID_REGULATOR},
{IMGSENSOR_HW_PIN_DVDD, IMGSENSOR_HW_ID_REGULATOR},
{IMGSENSOR_HW_PIN_PDN, IMGSENSOR_HW_ID_GPIO},
{IMGSENSOR_HW_PIN_RST, IMGSENSOR_HW_ID_GPIO},
{IMGSENSOR_HW_PIN_NONE, IMGSENSOR_HW_ID_NONE},
},
},
{
IMGSENSOR_SENSOR_IDX_SUB,
IMGSENSOR_I2C_DEV_1,
{
{IMGSENSOR_HW_PIN_MCLK, IMGSENSOR_HW_ID_MCLK},
{IMGSENSOR_HW_PIN_AVDD, IMGSENSOR_HW_ID_REGULATOR},
{IMGSENSOR_HW_PIN_DOVDD, IMGSENSOR_HW_ID_REGULATOR},
{IMGSENSOR_HW_PIN_DVDD, IMGSENSOR_HW_ID_REGULATOR},
{IMGSENSOR_HW_PIN_PDN, IMGSENSOR_HW_ID_GPIO},
{IMGSENSOR_HW_PIN_RST, IMGSENSOR_HW_ID_GPIO},
{IMGSENSOR_HW_PIN_NONE, IMGSENSOR_HW_ID_NONE},
},
},
#if defined(OV13855_MIPI_RAW)
{
SENSOR_DRVNAME_OV13855_MIPI_RAW,
{
{SensorMCLK, Vol_High, 0},
{PDN, Vol_Low, 0},
{RST, Vol_Low, 0},
{DOVDD, Vol_1800, 1},
{AVDD, Vol_2800, 1},
{DVDD, Vol_1200, 5},
{AFVDD, Vol_2800, 1},
{PDN, Vol_High, 1},
{RST, Vol_High, 2}
},
},
#endif
3.driver放置路徑:drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.c
#if defined(OV13855_MIPI_RAW)
{OV13855_SENSOR_ID, SENSOR_DRVNAME_OV13855_MIPI_RAW,OV13855_MIPI_RAW_SensorInit},
#endif
drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.h
UINT32 OV13855_MIPI_RAW_SensorInit(struct SENSOR_FUNCTION_STRUCT **pfFunc);
drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h
#define OV13855_SENSOR_ID 0xD855
alps/device/mediateksample/tb8788p1_64_wifi_k419/ProjectConfig.mk
CUSTOM_HAL_IMGSENSOR = ov13855_mipi_raw
kernel-4.19\arch\arm64\configs\tb8788p1_64_wifi_k419_debug_defconfig
CONFIG_CUSTOM_KERNEL_IMGSENSOR="ov13855_mipi_raw"
以上就是Camera在kernel4.19上的移植步驟,具體的可以參考MTK_MT8385_Legacy_Camera_Sensor_Driver_Porting_User_Guide_v1.4。
評論