背景:调试时Camera是作为前摄进行调试的,在优化Camera的效果时,需要将Camera改为后摄才可以正常连接CCT来调整Camera的效果。因此有了以下一些记录
根据原理图更改引脚配置
1.修改dts
将前摄与后摄引脚进行交换
diff --git a/arch/arm64/boot/dts/mediatek/tb8788p1_64_wifi_k419.dts b/arch/arm64/boot/dts/mediatek/tb8788p1_64_wifi_k419.dts
index 692b4e108ecb..eb25e95b6eb9 100755
--- a/arch/arm64/boot/dts/mediatek/tb8788p1_64_wifi_k419.dts
+++ b/arch/arm64/boot/dts/mediatek/tb8788p1_64_wifi_k419.dts
@@ -659,7 +659,7 @@
/* CAMERA GPIO standardization */
camera_pins_cam0_rst_0: cam0@0 {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO102__FUNC_GPIO102>;
+ pinmux = <PINMUX_GPIO101__FUNC_GPIO101>;
/*direction 0:in, 1:out*/
slew-rate = <1>;
/*direction out used only. output_low or high*/
@@ -669,7 +669,7 @@
camera_pins_cam0_rst_1: cam0@1 {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO102__FUNC_GPIO102>;
+ pinmux = <PINMUX_GPIO101__FUNC_GPIO101>;
slew-rate = <1>;
output-high;
};
@@ -677,7 +677,7 @@
camera_pins_cam0_pnd_0: cam0@2 {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO98__FUNC_GPIO98>;
+ pinmux = <PINMUX_GPIO97__FUNC_GPIO97>;
slew-rate = <1>;
output-low;
};
@@ -685,7 +685,7 @@
camera_pins_cam0_pnd_1: cam0@3 {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO98__FUNC_GPIO98>;
+ pinmux = <PINMUX_GPIO97__FUNC_GPIO97>;
slew-rate = <1>;
output-high;
};
@@ -693,7 +693,7 @@
camera_pins_cam1_rst_0: cam1@0 {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO101__FUNC_GPIO101>;
+ pinmux = <PINMUX_GPIO102__FUNC_GPIO102>;
/*direction 0:in, 1:out*/
slew-rate = <1>;
/*direction out used only. output_low or high*/
@@ -703,7 +703,7 @@
camera_pins_cam1_rst_1: cam1@1 {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO101__FUNC_GPIO101>;
+ pinmux = <PINMUX_GPIO102__FUNC_GPIO102>;
slew-rate = <1>;
output-high;
};
@@ -711,7 +711,7 @@
camera_pins_cam1_pnd_0: cam1@2 {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO97__FUNC_GPIO97>;
+ pinmux = <PINMUX_GPIO98__FUNC_GPIO98>;
slew-rate = <1>;
output-low;
};
@@ -719,7 +719,7 @@
camera_pins_cam1_pnd_1: cam1@3 {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO97__FUNC_GPIO97>;
+ pinmux = <PINMUX_GPIO98__FUNC_GPIO98>;
slew-rate = <1>;
output-high;
};
@@ -807,25 +807,25 @@
camera_pins_cam0_mclk_on: camera_pins_cam0_mclk_on {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO100__FUNC_CMMCLK1>;
+ pinmux = <PINMUX_GPIO99__FUNC_CMMCLK0>;
};
};
camera_pins_cam0_mclk_off: camera_pins_cam0_mclk_off {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO100__FUNC_GPIO100>;
+ pinmux = <PINMUX_GPIO99__FUNC_GPIO99>;
};
};
camera_pins_cam1_mclk_off: camera_pins_cam1_mclk_off {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO99__FUNC_GPIO99>;
+ pinmux = <PINMUX_GPIO100__FUNC_GPIO100>;
};
};
camera_pins_cam1_mclk_on: camera_pins_cam1_mclk_on {
pins_cmd_dat {
- pinmux = <PINMUX_GPIO99__FUNC_CMMCLK0>;
+ pinmux = <PINMUX_GPIO100__FUNC_CMMCLK1>;
};
};
2.修改硬件引脚类型
/drivers/misc/mediatek/imgsensor/src/mt6771/camera_project/tb8788p1_64_wifi_k419/camera_hw/imgsensor_cfg_table.c
+++ b/drivers/misc/mediatek/imgsensor/src/mt6771/camera_project/tb8788p1_64_wifi_k419/camera_hw/imgsensor_cfg_table.c
@@@ -25,9 -25,9 +25,9 @@@ struct IMGSENSOR_HW_CFG imgsensor_custom_config
IMGSENSOR_I2C_DEV_0,
{
{IMGSENSOR_HW_PIN_MCLK, IMGSENSOR_HW_ID_MCLK},
-- {IMGSENSOR_HW_PIN_AVDD, IMGSENSOR_HW_ID_GPIO},
-- {IMGSENSOR_HW_PIN_DOVDD, IMGSENSOR_HW_ID_GPIO},
-- {IMGSENSOR_HW_PIN_DVDD, IMGSENSOR_HW_ID_GPIO},
++ {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_HW_ID_GPIO
表示该引脚被配置为GPIO(通用输入/输出)类型。GPIO引脚可以用于多种目的,如数据输入、数据输出、中断触发等。在这种情况下,GPIO引脚可能用作一般的I/O接口,而不是专门用于电源供应。
- IMGSENSOR_HW_ID_REGULATOR
表示该引脚被配置为REGULATOR(调节器)类型。REGULATOR引脚用于提供稳定的电压给其他设备或模块,以确保它们正常工作。在这种情况下,引脚被专门用于供电目的,以满足图像传感器对电源的要求。
因此,通过使用不同的常量值,可以明确指定每个引脚的不同用途和类型。在给定的代码片段中,原先是将引脚定义为GPIO类型,而修改后将其定义为REGULATOR类型,以表明引脚的实际用途从通用I/O转变为电源供应。
3.修改camera供电与连接方式
--- a/tb8788p1_64_wifi_k419/hal/imgsensor_src/cfg_setting_imgsensor.cpp
+++ b/tb8788p1_64_wifi_k419/hal/imgsensor_src/cfg_setting_imgsensor.cpp
@@ -40,8 +40,8 @@ namespace NSCamCustomSensor {
static CUSTOM_CFG gCustomCfg[] = {
{
.sensorIdx = IMGSENSOR_SENSOR_IDX_MAIN,
- .mclk = CUSTOM_CFG_MCLK_2,
- .port = CUSTOM_CFG_CSI_PORT_1,
+ .mclk = CUSTOM_CFG_MCLK_1,
+ .port = CUSTOM_CFG_CSI_PORT_0A,
.dir = CUSTOM_CFG_DIR_REAR,
.bitOrder = CUSTOM_CFG_BITORDER_9_2,
.orientation = 0,
@@ -50,7 +50,7 @@ static CUSTOM_CFG gCustomCfg[] = {
},
{
.sensorIdx = IMGSENSOR_SENSOR_IDX_SUB,
- .mclk = CUSTOM_CFG_MCLK_1,
+ .mclk = CUSTOM_CFG_MCLK_2,
.port = CUSTOM_CFG_CSI_PORT_0A,
.dir = CUSTOM_CFG_DIR_FRONT,
.bitOrder = CUSTOM_CFG_BITORDER_9_2,