mtk调试-camera

仅当做个人学习笔记使用,防丢失。

原文链接:https://blog.csdn.net/qq_58703058/article/details/132994554

Device:
1、 修改imgsensor相关(ProjectConfig.mk文件)

device/mediateksample/{platform}/ProjectConfig.mk

此文件用于将相关模块加入编译。

2、 在头文件中添加sensor id和 sensor name宏定义,sensor id在该sensor的规格书(datasheet)中搜索寄存器地址。(kd_imgsensor.h)

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

Kernel:
1、 将sensor原厂或是模组厂提供的sensor 驱动放置到如下文件夹(具体路径需要到out路径下看平台走的是哪个路径,此路径不唯一)

kernel-4.19/drivers/misc/mediatek/imgsensor/src/common/v1_1

2、 将模组信息添加到头文件

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

3、 在defconfig中添加宏定义让驱动文件编译

kernel-4.19/arch/arm64/configs/xxx_debug_defconfig

kernel-4.19/arch/arm64/configs/xxx_defconfig

4、 在SensorList中添加sensor id ,sensor name与sensor driver init函数

kernel-4.19/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.h 添加函数声明

kernel-4.19/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.c 添加数组成员

5、 上电时序配置

kernel-4.19/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_pCLKwr_seq.c 

6、 供电方式配置

需要注意配置的引脚是PMIC供电还是GPIO控制,如果供电由PMIC控制,则需要在对应位置修改为IMGSENSOR_HW_ID_REGULATOR,如果是GPIO配置,则应该为IMGSENSOR_HW_ID_GPIO

Kernel-4.19/drivers/misc/mediatek/imgsensor/src/mt6853/camera_hw_mt6833/imgsensor_cfg_table.c

VCAMD:就是DVDD数字供电,主要给ISP供电,所以有些没有ISP的模组没有这个引脚。

VCAMA:就是AVDD模拟供电,主要给感光区和ADC部分供电。

VCAMIO:就是VDDIO数字IO供电,主要给I2C部分供电。

VCAMAF:对焦马达供电。

7、 dtsi相关配置

kernel-4.14/arch/arm64/boot/dts/mediatek/cust_mt6833_camera.dtsi

可以参考其他项目的设备树是如何配置的。

cam0_rst0:后主摄,rst引脚,输出低电平;对应的是pinctrl-1,引用camera_pins_cam0_rst_0这个节点

cam0_rst1:后主摄,rst引脚,输出高电平;对应的是pinctrl-2,引用camera_pins_cam0_rst_1这个节点上下一一对应

以此类推,clk和RST为GPIO供电,需要在&pio中添加子节点定义在GPIO list中搜索R_CAM1_CLK1,R_CAM1_RST1找到对应的GPIO号

RST这路电需要配置的gpio口为GPIO56,camera_pins_cam0_rst_0和camera_pins_cam0_rst_1这两个节点中配置的GPIO口为56, CLK这路电需要配置的gpio口为GPIO50

8、 DWS配置 配置修改dws文件需要使用dtc工具,在代码中如下位置:

vendor/mediatek/proprietary/tools/dct,其中包含了linux版本与windows版本工具。dws文件存放位置如下:

kernel-4.19/drivers/misc/mediatek/dws/,工具中可以配置gpio引脚信息状态,i2c总线上挂载的设备等功能

Vendor:
1、 在SensorList中添加sensor id ,sensor name与sensor driver init函数 vendor/mediatek/proprietary/custom/common/hal/imgsensor_src/sensorlist.cpp

2、 根据原理图配置MIPI PORT和MLCK

vendor/mediatek/proprietary/custom/mt6853/hal/imgsensor_src/cfg_setting_imgsensor.cpp

3、 新增metadata文件和效果参数文件

vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor/ver1

vendor/mediatek/proprietary/custom/common/hal/imgsensor_metadata/sensor/xxx_mipi_raw/

vendor/mediatek/proprietary/custom/mt6739/hal/imgsensor_metadata/xxx_mipi_raw/

资料作用:
Datasheet:用于获取slave address,上下电时序和要求。在配置sensor ID和供电方式时用到。

Gpio map:用于查找各引脚对应的gpio端口号。在配置dtsi的gpio端口号时用到。

硬件原理图:用于查看硬件的信息。用于供电方式供电配置中查看引脚是gpio供电还是pmic供电,在dws配置中查看I2C通道,查看csi和mclk的通道。

模组规格图:可以查看I2C地址,电压配置信息。用于上电时序中三路电压的配置。

附录总结:
替换文件名字指令:

find 13870* |xargs -i echo mv "{}" "{}" | sed 's/13870/5648/2g' | sh

替换文件内容指令:

#替换单个文件下的内容,比如将文件中的"alidata"替换为"data".
sed -i "s/alidata/data/g" test.txt

#替换某个目录下所有文件中的内容,比如将root目录下所有文件中的"wwwroot"替换为"www".
sed -i "s/wwwroot/www/g" 'grep -rl wwwroot /root'

读取sensor id方法:

法一、adb shell后su切换超级权限使用cat /proc/drivers/camera_info查看

法二、使用手机里mtk自带log工具抓开机log,搜索关键字进行查找。或使用adb shell cat /proc/kmsg >./log.log抓log查看。

重要文件
kernel-4.19\drivers\misc\mediatek\imgsensor:

inc->kd_imgsensor.h -----定义sensor id 和sensor name

src->common->v1(此路径不绝对)->imgsensor_hw.c-----配置camera的供电

src->{project}->camera_hw->imgsensor_cfg_table.c-----配置供电方式以及上电时序

src->common->v1(此路径不绝对)->imgsensor.c-----camera驱动模块的加载,platform总线的注册

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值