MT8788平台Android12Camera调试记录文档

平台:MT8788

Android版本:Android12

内核版本:kernel-4.19

1. MiPi 硬件引脚配置

根据硬件实际layout来自定义设置

配置路径:(cfg_setting_imgsensor.cpp 优先级:project>platform>common)

s_mt87xx_tablet/vendor/mediatek/proprietary/custom/tb8788p1_64_wifi_k419/hal/imgsensor_src/cfg_setting_imgsensor.cpp

--- a/tb8788p1_64_wifi_k419/hal/imgsensor_src/cfg_setting_imgsensor.cpp
+++ b/tb8788p1_64_wifi_k419/hal/imgsensor_src/cfg_setting_imgsensor.cpp
@@ -41,7 +41,7 @@ static CUSTOM_CFG gCustomCfg[] = {
     {
         .sensorIdx     = IMGSENSOR_SENSOR_IDX_MAIN,
         .mclk          = CUSTOM_CFG_MCLK_1,
-        .port          = CUSTOM_CFG_CSI_PORT_0,
+        .port          = CUSTOM_CFG_CSI_PORT_0A,
         .dir           = CUSTOM_CFG_DIR_REAR,
         .bitOrder      = CUSTOM_CFG_BITORDER_9_2,
         .orientation   = 90,
@@ -50,7 +50,7 @@ static CUSTOM_CFG gCustomCfg[] = {
     },
     {
         .sensorIdx     = IMGSENSOR_SENSOR_IDX_SUB,
-        .mclk          = CUSTOM_CFG_MCLK_2,
+        .mclk          = CUSTOM_CFG_MCLK_1,
         .port          = CUSTOM_CFG_CSI_PORT_1,
         .dir           = CUSTOM_CFG_DIR_FRONT,
         .bitOrder      = CUSTOM_CFG_BITORDER_9_2,

         

2.Mclk On/Off control

配置mclk上电时序

配置路径:

s_mt87xx_tablet/kernel-4.19/drivers/misc/mediatek/imgsensor/src/mt6771/camera_project/tb8788p1_64_wifi_k419/camera_hw/imgsensor_cfg_table.c

--- a/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
@@ -38,9 +38,9 @@ struct IMGSENSOR_HW_CFG imgsensor_custom_config[] = {
                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_AVDD,  IMGSENSOR_HW_ID_GPIO},
+                       {IMGSENSOR_HW_PIN_DOVDD, IMGSENSOR_HW_ID_GPIO},
+                       {IMGSENSOR_HW_PIN_DVDD,  IMGSENSOR_HW_ID_GPIO},
                        {IMGSENSOR_HW_PIN_PDN,   IMGSENSOR_HW_ID_GPIO},
                        {IMGSENSOR_HW_PIN_RST,   IMGSENSOR_HW_ID_GPIO},
                        {IMGSENSOR_HW_PIN_NONE, IMGSENSOR_HW_ID_NONE},


--- a/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

@@ -653,6 +654,23 @@ struct IMGSENSOR_HW_POWER_SEQ sensor_power_sequence[] = {
          },
         },
 #endif
+
+#if defined(BF2257_MIPI_RAW)
+        {
+         SENSOR_DRVNAME_BF2257_MIPI_RAW,
+         {
+                //{PDN, Vol_Low, 1},
+                //{RST, Vol_Low, 10},
+                {DOVDD, Vol_1800, 0},
+                //{DVDD, Vol_2800, 0},
+                {AVDD, Vol_2800, 0},
+                {SensorMCLK, Vol_High, 5},
+                //{RST, Vol_High, 5},
+                {PDN, Vol_High, 5}
+          },
+         },
+#endif
+

3.Camera Driver File Path

3.1 kernel driver

driver放置路径:

drivers/misc/mediatek/imgsensor/src/common/v1_1/

diff --git a/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.c b/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.c
index cfb5fc9ba638..3e868a907571 100755
--- a/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.c
+++ b/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.c
@@ -23,6 +23,9 @@ struct IMGSENSOR_SENSOR_LIST
#endif
#if defined(GC5035_MIPI_RAW)
{GC5035_SENSOR_ID, SENSOR_DRVNAME_GC5035_MIPI_RAW, GC5035_MIPI_RAW_SensorInit},
+#endif
+#if defined(BF2257_MIPI_RAW)
+{BF2257_SENSOR_ID, SENSOR_DRVNAME_BF2257_MIPI_RAW, BF2257_MIPI_RAW_SensorInit},
#endif
/*  ADD sensor driver before this line /{0, {0}, NULL}, / end of list */
diff --git a/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.h b/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.h
old mode 100644
new mode 100755
index 0d14a4cb7f55..44ca1c3e3bfc
--- a/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.h
+++ b/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.h
@@ -203,7 +203,7 @@ UINT32 OV02B10_MIPI_RAW_SensorInit(struct SENSOR_FUNCTION_STRUCT **pfFunc);
UINT32 OV13B10LN_MIPI_RAW_SensorInit(struct SENSOR_FUNCTION_STRUCT **pfFunc);
UINT32 S5K4H7LN_MIPI_RAW_SensorInit(struct SENSOR_FUNCTION_STRUCT **pfFunc);
+UINT32 BF2257_MIPI_RAW_SensorInit(struct SENSOR_FUNCTION_STRUCT **pfFunc);
extern struct IMGSENSOR_SENSOR_LIST gimgsensor_sensor_list[];
#endif

drivers/misc/mediatek/imgsensor/inc/common/v1_1/

diff --git a/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h b/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h
index b6782e97f62c..912d4da2a103 100755
--- a/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h
+++ b/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h
@@ -329,6 +329,8 @@
 #define GC8034_SENSOR_ID                        0x8044
 #define GC8C34_SENSOR_ID                        0x80C4
 #define GC08A3_SENSOR_ID                       0x08a3
+/*BF*/
+#define BF2257_SENSOR_ID                        0x2257
 /*SP*/
 #define SP0A19_YUV_SENSOR_ID                    0xA6
 #define SP2518_YUV_SENSOR_ID                    0x53
@@ -566,6 +568,8 @@
 #define SENSOR_DRVNAME_GC0313MIPI_YUV           "gc0313_mipi_yuv"
 #define SENSOR_DRVNAME_GC8C34_MIPI_RAW          "gc8c34_mipi_raw"
 #define SENSOR_DRVNAME_GC8034_MIPI_RAW          "gc8034_mipi_raw"
+/*BF*/
+#define SENSOR_DRVNAME_BF2257_MIPI_RAW          "bf2257_mipi_raw"
 /*SP*/
 #define SENSOR_DRVNAME_SP0A19_YUV               "sp0a19_yuv"
 #define SENSOR_DRVNAME_SP2518_YUV               "sp2518_yuv"

3.2 hal driver

alps/vendor/mediatek/proprietary/custom/mt6771/hal/imgsensor/ver1/bf2257_mipi_raw/

alps/vendor/mediatek/proprietary/custom/mt6771/hal/imgsensor_metadata/bf2257_mipi_raw

Add new sensor:

Step1:

alps/device/mediateksample/tb8788p1_64_wifi_k419/ProjectConfig.mk

diff --git a/ProjectConfig.mk b/ProjectConfig.mk
index 7d8c56c..2bbff70 100755
--- a/ProjectConfig.mk
+++ b/ProjectConfig.mk

@@ -11,9 +11,9 @@ CUSTOM_HAL_ANT = mt6771_ant_m1
 CUSTOM_HAL_AUDIOFLINGER = audio
 CUSTOM_HAL_CAMERA = camera
 CUSTOM_HAL_COMBO = mt6771
-CUSTOM_HAL_IMGSENSOR = gc5035_mipi_raw
+CUSTOM_HAL_IMGSENSOR =  bf2257_mipi_raw  gc02m1_mipi_raw
 CUSTOM_HAL_MAIN2_IMGSENSOR =
-CUSTOM_HAL_MAIN_IMGSENSOR = gc5035_mipi_raw
+CUSTOM_HAL_MAIN_IMGSENSOR = bf2257_mipi_raw  gc02m1_mipi_raw
 CUSTOM_HAL_MSENSORLIB = akl akm
 CUSTOM_HAL_SENSORS = sensor
 CUSTOM_HAL_SUB_IMGSENSOR =
@@ -27,12 +27,12 @@ CUSTOM_KERNEL_GMRV_SENSOR = no
 CUSTOM_KERNEL_GRAVITY_SENSOR = no
 CUSTOM_KERNEL_GRV_SENSOR = no
 CUSTOM_KERNEL_GYROSCOPE =
-CUSTOM_KERNEL_IMGSENSOR = gc5035_mipi_raw
+CUSTOM_KERNEL_IMGSENSOR = bf2257_mipi_raw  gc02m1_mipi_raw
 CUSTOM_KERNEL_LEDS = mt65xx
 CUSTOM_KERNEL_LINEARACCEL_SENSOR = no
 CUSTOM_KERNEL_MAGNETOMETER = no
 CUSTOM_KERNEL_MAIN2_IMGSENSOR =
-CUSTOM_KERNEL_MAIN_IMGSENSOR = gc5035_mipi_raw
+CUSTOM_KERNEL_MAIN_IMGSENSOR = bf2257_mipi_raw  gc02m1_mipi_raw
 CUSTOM_KERNEL_ORIENTATION_SENSOR =
 CUSTOM_KERNEL_RV_SENSOR = no
 CUSTOM_KERNEL_SIGNIFICANT_MOTION_SENSOR = no

Step2:

alps/device/mediatek/common/kernel-headers/kd_imgsensor.h

diff --git a/kernel-headers/kd_imgsensor.h b/kernel-headers/kd_imgsensor.h
index 548703a3..6abdb199 100644
--- a/kernel-headers/kd_imgsensor.h
+++ b/kernel-headers/kd_imgsensor.h
@@ -303,7 +303,7 @@
 #define HI846_SENSOR_ID                         0x0846
 #define OV02A10_MONO_SENSOR_ID                  0x2509
 #define IMX616_SENSOR_ID                        0x0616
-
+#define BF2257_SENSOR_ID                        0x2257
 #define SC800CS_LY_SENSOR_ID                    0xd126
 #define OV48B_SENSOR_ID                         0x564842
 #define S5K3P9SP_SENSOR_ID                      0x3109
@@ -322,7 +322,7 @@
 #define S5K3L6WIDE_SENSOR_ID                    0x30C7
 #define S5KJN1TELE_SENSOR_ID                    0x38E1
 #define SENSOR_DRVNAME_OV13B10MAIN_MIPI_RAW         "ov13b10main_mipi_raw"
-
+#define SENSOR_DRVNAME_BF2257_MIPI_RAW          "bf2257_mipi_raw"
 #define OV13B10TXD_SENSOR_ID                    0x560D43
 #define SENSOR_DRVNAME_OV13B10TXD_MIPI_RAW      "ov13b10txd_mipi_raw"
 #define S5K4H7_SENSOR_ID                        0x487B

alps/kernel-4.19/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h

diff --git a/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h b/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h
index b6782e97f62c..912d4da2a103 100755
--- a/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h
+++ b/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h
@@ -329,6 +329,8 @@
 #define GC8034_SENSOR_ID                        0x8044
 #define GC8C34_SENSOR_ID                        0x80C4
 #define GC08A3_SENSOR_ID                       0x08a3
+/*BF*/
+#define BF2257_SENSOR_ID                        0x2257
 /*SP*/
 #define SP0A19_YUV_SENSOR_ID                    0xA6
 #define SP2518_YUV_SENSOR_ID                    0x53
@@ -566,6 +568,8 @@
 #define SENSOR_DRVNAME_GC0313MIPI_YUV           "gc0313_mipi_yuv"
 #define SENSOR_DRVNAME_GC8C34_MIPI_RAW          "gc8c34_mipi_raw"
 #define SENSOR_DRVNAME_GC8034_MIPI_RAW          "gc8034_mipi_raw"
+/*BF*/
+#define SENSOR_DRVNAME_BF2257_MIPI_RAW          "bf2257_mipi_raw"
 /*SP*/
 #define SENSOR_DRVNAME_SP0A19_YUV               "sp0a19_yuv"
 #define SENSOR_DRVNAME_SP2518_YUV               "sp2518_yuv"

Step3:

alps/mediatek/proprietary/custom/mt6771/hal/imgsensor_src

diff --git a/tb8788p1_64_wifi_k419/hal/imgsensor_src/cfg_setting_imgsensor.cpp b/tb8788p1_64_wifi_k419/hal/imgsensor_src/cfg_setting_imgsensor.cpp
index 64700c5fc..a657aeec7 100755
--- a/tb8788p1_64_wifi_k419/hal/imgsensor_src/cfg_setting_imgsensor.cpp
+++ b/tb8788p1_64_wifi_k419/hal/imgsensor_src/cfg_setting_imgsensor.cpp
@@ -51,7 +51,7 @@ static CUSTOM_CFG gCustomCfg[] = {
     {
         .sensorIdx     = IMGSENSOR_SENSOR_IDX_SUB,
         .mclk          = CUSTOM_CFG_MCLK_1,
-        .port          = CUSTOM_CFG_CSI_PORT_0A,
+        .port          = CUSTOM_CFG_CSI_PORT_0,
         .dir           = CUSTOM_CFG_DIR_FRONT,
         .bitOrder      = CUSTOM_CFG_BITORDER_9_2,
         .orientation   = 0,
diff --git a/tb8788p1_64_wifi_k419/hal/imgsensor_src/sensorlist.cpp b/tb8788p1_64_wifi_k419/hal/imgsensor_src/sensorlist.cpp
index 77874eb3b..fd2f4d8a7 100755
--- a/tb8788p1_64_wifi_k419/hal/imgsensor_src/sensorlist.cpp
+++ b/tb8788p1_64_wifi_k419/hal/imgsensor_src/sensorlist.cpp
@@ -95,6 +95,9 @@ MSDK_SENSOR_INIT_FUNCTION_STRUCT SensorList[] =
 #if defined(GC5035_MIPI_RAW)
        RAW_INFO_M(GC5035_SENSOR_ID, DEFAULT_MODULE_INDEX, DEFAULT_MODULE_ID,SENSOR_DRVNAME_GC5035_MIPI_RAW, NULL),
 #endif
+#if defined(BF2257_MIPI_RAW)
+        RAW_INFO_M(BF2257_SENSOR_ID, DEFAULT_MODULE_INDEX, DEFAULT_MODULE_ID,SENSOR_DRVNAME_BF2257_MIPI_RAW, NULL),
+#endif

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值