MTK配置Camera

1.在项目的ProjectConfig.mk中配置摄像头的kernel层与hal层,一个是驱动加载,一个是效果显示

device/mediateksample/$(yourprojectname)/ProjectConfig.mk

(本例用ov8865作后摄,gc5005做前摄)

CUSTOM_HAL_IMGSENSOR =ov8865_mipi_raw gc5005_mipi_raw
CUSTOM_HAL_MAIN_IMGSENSOR =ov8865_mipi_raw
CUSTOM_HAL_SUB_IMGSENSOR =gc5005_mipi_raw

CUSTOM_KERNEL_IMGSENSOR =ov8865_mipi_raw gc5005_mipi_raw
CUSTOM_KERNEL_MAIN_IMGSENSOR =ov8865_mipi_raw
CUSTOM_KERNEL_SUB_IMGSENSOR =gc5005_mipi_raw

找不到的搜我标红的宏名,兼容新的摄像头也是直接添加,分清楚前后摄就行

2.在项目的config配置,决定加载驱动的

$(LINUX_KERNEL_VERSION)/arch/arm/configs/$(yourprojectname)_debug_defconfig

$(LINUX_KERNEL_VERSION)/arch/arm/configs/$(yourprojectname)_defconfig

CONFIG_CUSTOM_KERNEL_IMGSENSOR="ov8865_mipi_raw gc5005_mipi_raw"

3.dst里面配置的加载

$(LINUX_KERNEL_VERSION)/arch/arm/boot/dts/cust_mt6761_camera.dtsi(看你自己项目定义的文件名,和加载到主dts里面的同名)

cam0_enable_sensor = "ov8865_mipi_raw"; //后摄
cam1_enable_sensor = "gc5005_mipi_raw"; //前摄

!!!一般情况下,其他部分不用改,但如果你发现通话,打开摄像头之后没声音了,试一下这里

-    pinmux = <PINMUX_GPIO159__FUNC_GPIO159>;
+   pinmux = <PINMUX_GPIO171__FUNC_GPIO171>;

当然不一定和我一样是159引脚,看具体项目,换成闲置的gpio口就行,很可能是这里共用了

4.kd_imgsensor.h里面配置SENSOR_ID与SENSOR_DRVNAME

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

$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h

两个.h文件里面同步,注意看里面之前有没有定义过,有就不管,没有添加就好,不要有两个一样的

#define OV8865_SENSOR_ID                        0x8865

#define GC5005_SENSOR_ID                        0x5005

#define SENSOR_DRVNAME_OV8865_MIPI_RAW           "ov8865_mipi_raw"

#define SENSOR_DRVNAME_GC5005_MIPI_RAW           "gc5005_mipi_raw"

5.添加驱动,这个问厂家要代码吧,我给一下路径

$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/imgsensor/src/common/v1/ov8865_mipi_raw/

$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/imgsensor/src/common/v1/gc5005_mipi_raw/

6.和屏里面介绍的一样,驱动初始化加载对应的函数

$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/imgsensor/src/common/v1/imgsensor_sensor_list.h

UINT32 OV8865_MIPI_RAW_SensorInit(struct SENSOR_FUNCTION_STRUCT **pfFunc);

UINT32 GC5005_MIPI_RAW_SensorInit(struct SENSOR_FUNCTION_STRUCT **pfFunc);

$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/imgsensor/src/common/v1/imgsensor_sensor_list.c

(与前面kd_imgsensor.h里面定义是对应的)

#if defined(OV8865_MIPI_RAW)
    {OV8865_SENSOR_ID,
    SENSOR_DRVNAME_OV8865_MIPI_RAW,
    OV8865_MIPI_RAW_SensorInit},
 #endif

#if defined(GC5005_MIPI_RAW)
    {GC5005_SENSOR_ID,
    SENSOR_DRVNAME_GC5005_MIPI_RAW,
    GC5005_MIPI_RAW_SensorInit},
#endif

7.给摄像头配置上电

$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/imgsensor/src/$(MTK_PLATFORM)/camera_hw/imgsensor_cfg_table.c

#if defined(GC5005_MIPI_RAW)
    {
        SENSOR_DRVNAME_GC5005_MIPI_RAW,
        {
            {PDN, Vol_High, 0},
            {RST, Vol_Low, 0},
            {AVDD, Vol_2800, 0},
            {DOVDD, Vol_1800, 0},
            {DVDD, Vol_1200, 0},
            {SensorMCLK, Vol_High, 1},
            {PDN, Vol_Low, 0},
            {RST, Vol_High, 10}
        },
    },
#endif
#if defined(OV8865_MIPI_RAW)
    {
        SENSOR_DRVNAME_OV8865_MIPI_RAW,
        {
            {SensorMCLK, Vol_High, 0},
            {PDN, Vol_Low, 5},
            {RST, Vol_Low, 5},
            {DOVDD, Vol_1800, 5},
            {AVDD, Vol_2800, 5},
            {DVDD, Vol_1200, 5},
            {AFVDD, Vol_2800, 5},
            {PDN, Vol_High, 5},
            {RST, Vol_High, 5}
        },
    },
#endif

8.HAL层摄像头效果文件加载,配置过了的不管,没有的加上

vendor/mediatek/proprietary/custom/$(MTK_PLATFORM)/hal/imgsensor_src/sensorlist.cpp

#if defined(GC5005_MIPI_RAW)
    RAW_INFO(GC5005_SENSOR_ID, SENSOR_DRVNAME_GC5005_MIPI_RAW, NULL),
#endif
#if defined(OV8865_MIPI_RAW)
    RAW_INFO(OV8865_SENSOR_ID, SENSOR_DRVNAME_OV8865_MIPI_RAW,NULL),
#endif

9.摄像头效果显示,这得找FAE调试了,可能要优化好多次

vendor/mediatek/proprietary/custom/common/hal/imgsensor_metadata/sensor/ov8865_mipi_raw/config_static_metadata.sensor.ov8865mipiraw.h

(包含一个文件,内容大同小异)

vendor/mediatek/proprietary/custom/$(MTK_PLATFORM)/hal/imgsensor/ov8865_mipi_raw/(包含两个文件夹AE_Tuning_Para与AWB_Tuning_Para以及效果文件,文件差异大,效果显示主要就是改这个文件夹里面文件)

vendor/mediatek/proprietary/custom/$(MTK_PLATFORM)/hal/imgsensor_metadata/ov8865_mipi_raw/(文件差异很小,有的甚至只有传入的摄像头驱动名称差异)

vendor/mediatek/proprietary/custom/common/hal/imgsensor_metadata/sensor/gc5005_mipi_raw/config_static_metadata.sensor.gc5005mipiraw.h

vendor/mediatek/proprietary/custom/$(MTK_PLATFORM)/hal/imgsensor/gc5005_mipi_raw/

vendor/mediatek/proprietary/custom/$(MTK_PLATFORM)/hal/imgsensor_metadata/gc5005_mipi_raw/

!!!FAE有时候很坑,给你之前别人点亮过的文件,你编进入发现摄像头界面呈现彩虹格子图的样式,缺少图像,可以看这个文件夹里面有没有多出一个config_request_metadata__.h文件,删了它

vendor/mediatek/proprietary/custom/$(MTK_PLATFORM)/hal/imgsensor_metadata/gc5005_mipi_raw/

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值