MT8788 前摄改后摄

背景:调试时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,

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值