当前位置: 首页 > news >正文

【Mtk Camera开发学习】01 MTK 平台Camera BringUp

本专栏内容针对 “知识星球”成员免费,欢迎关注公众号:小驰行动派,加入知识星球。

#MTK Camera开发学习系列 #小驰私房菜

这篇文章主要介绍MTK 平台,Camera BringUp会涉及到修改的模块。

MTK不同的平台系列,具体修改代码路径可能会 有差异,不过大体应该是差不多的。

====================================================================

涉及到需要修改的文件:

一、Kernel

kernel-4.19/arch/arm64/configs/tbXXX_64_defconfig
kernel-4.19/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h
kernel-4.19/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_pwr_seq.c
kernel-4.19/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.c
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/XXX_mipi_raw

二、device

device/mediatek/common/kernel-headers/kd_imgsensor.h
device/mediateksample/tbXXX_64/ProjectConfig.mk

三、vendor

/vendor/mediatek/proprietary/custom/mt6XXX/hal/imgsensor_src/sensorlist.cpp
/vendor/mediatek/proprietary/custom/mt6XXX/hal/imgsensor/ver1/XXX_mipi_raw
/vendor/mediatek/proprietary/custom/mt6XXX/hal/imgsensor_metadata/XXX_mipi_raw 

===================================================

详细修改

一、Kernel

kernel-4.*/arch/arm64/configs/tbXXX_64_defconfig

CONFIG_CUSTOM_KERNEL_IMGSENSOR = "XXX_mipi_raw"

kernel-4.*/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h

#define XXX_SENSOR_ID                  0xXXX
#define SENSOR_DRVNAME_XXX_MIPI_RAW    "XXX_mipi_raw"

上电时序配置:

kernel-4.*/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_pwr_seq.c

#if defined(XXX_MIPI_RAW)
{SENSOR_DRVNAME_XXX_MIPI_RAW,         {          {RST, Vol_Low, 1},            {PDN, Vol_Low, 1},             {DVDD, Vol_1200, 1},             {DOVDD, Vol_1800, 1},              {AVDD, Vol_2800, 1},              {SensorMCLK, Vol_High, 1},             {RST, Vol_High, 1},              {PDN, Vol_High, 1},}, 
},
#endif 

kernel-4.*/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.c

#if defined(XXX_MIPI_RAW)
{XXX_SENSOR_ID, SENSOR_DRVNAME_XXX_MIPI_RAW, XXX_MIPI_RAW_SensorInit},
#endif

kernel-4.*/drivers/misc/mediatek/imgsensor/src/common/v1_1/imgsensor_sensor_list.h

UINT32 XXX_MIPI_RAW_SensorInit(struct SENSOR_FUNCTION_STRUCT **pfFunc);

驱动文件放置目录:

kernel-4.*4.*/drivers/misc/mediatek/imgsensor/src/common/v1_1/XXX_mipi_raw 

(如果只是修改了驱动文件,可以单独编译bootimage和dtboimage来快速验证)

二、device

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

#define XXX_SENSOR_ID 0xXXX
#define SENSOR_DRVNAME_XXX_MIPI_RAW "XXX_mipi_raw"

device/mediateksample/tbXXX_64/ProjectConfig.mk

(针对一供、二供这种,就直接在后面添加就好。如下面所示,XXX_mipi_raw表示一供, XXX2_mipi_raw表示二供)

CUSTOM_HAL_MAIN_IMGSENSOR = XXX_mipi_raw  XXX2_mipi_raw CUSTOM_KERNEL_IMGSENSOR = XXX_mipi_raw  XXX2_mipi_raw CUSTOM_KERNEL_MAIN_IMGSENSOR = XXX_mipi_raw  XXX2_mipi_raw 

三、vendor

/vendor/mediatek/proprietary/custom/mtXXX/hal/imgsensor_src/sensorlist.cpp

#if defined(XXX_MIPI_RAW)RAW_INFO_M(XXX_SENSOR_ID, DEFAULT_MODULE_INDEX, DEFAULT_MODULE_ID,
SENSOR_DRVNAME_XXX_MIPI_RAW,CAM_CALGetCalData), #endif

metadata相关信息:

/vendor/mediatek/proprietary/custom/mt6XXX/hal/imgsensor_metadata/XXX_mipi_raw

tuning效果参数:

/vendor/mediatek/proprietary/custom/mt6XXX/hal/imgsensor/ver1/XXX_mipi_raw

=======================================================================

相关日志打印:

vendor/mediatek/proprietary/hardware/mtkcam/drv/src/sensor/common/v1_1/imgsensor_drv.cpp

01-02 17:49:55.340 D/ImgSensorDrv( 6839): [init][init] imgsensor_drv 01-02 17:49:55.340 D/ImgSensorDrv( 6839): [featureControl][featureControl] Skip due to no FeatureId
01-02 17:49:55.340 D/SeninfDrv( 6839): [setMclk][setTg3Phase]pcEn(1), freq(24) 01-02 17:49:55.340 D/ImgSensorDrv( 6839): [searchSensor]searchSensor idx = 3 01-02 17:49:55.415 D/ImgSensorDrv( 6839): [searchSensor]Warning(  124):Search fail
01-02 17:49:55.415 D/SeninfDrv( 6839): [setMclk][setTg3Phase]pcEn(0), freq(24) 01-02 17:49:55.415 D/ImgSensorDrv( 6839): [uninit][uninit] imgsensor_drv 01-02 17:49:55.415 D/ImgSensorDrv( 6839): [init][init] imgsensor_drv 01-02 17:49:55.415 D/ImgSensorDrv( 6839): [featureControl][featureControl] Skip due to no FeatureId
01-02 17:49:55.415 D/SeninfDrv( 6839): [setMclk][setTg3Phase]pcEn(1), freq(24) 01-02 17:49:55.415 D/ImgSensorDrv( 6839): [searchSensor]searchSensor idx = 4 01-02 17:49:55.499 D/ImgSensorDrv( 6839): [searchSensor]Warning(  124):Search fail
01-02 17:49:55.499 D/SeninfDrv( 6839): [setMclk][setTg3Phase]pcEn(0), freq(24) 01-02 17:49:55.499 D/ImgSensorDrv( 6839): [uninit][uninit] imgsensor_drv

------------------------------------------------------------------------

文章内容所有权归@公众号:小驰行动派,禁止宣传转载,谢谢~

http://www.lryc.cn/news/367325.html

相关文章:

  • 新能源汽车内卷真相
  • C 语言实现在终端里输出二维码
  • nodejs---fs模块,文件读写操作详解,自定义一个文件写入方法
  • Linux(Rocky)下 如何输入中文(切换中文输入法)教程
  • Python中包(package)与模块(module)的概念 以及 import 问题
  • Android常见内存泄漏场景总结
  • 未来已来:Angular、React、Vue.js——前端框架的三大巨头
  • Mybatis06-动态SQL
  • 26-LINUX--I/O复用-select
  • spring源码解析-(2)Bean的包扫描
  • Java 数学计算 - Random类
  • Ubuntu22.04之解决:无法关机和重启问题(二百四十三)
  • 大学数字媒体艺术设计网页设计试题及答案,分享几个实用搜题和学习工具 #媒体#职场发展
  • 【ArcGIS微课1000例】0119:TIFF与grid格式互相转换
  • B3870 [GESP202309 四级] 变长编码
  • WordPress网站更换域名后如何重新激活elementor
  • linux cron 执行url
  • 压缩视频在线压缩网站,压缩视频在线压缩工具软件
  • linux经典例题编程
  • 二叉树的实现(初阶数据结构)
  • C++笔试强训day41
  • 【JavaScript】内置对象 - 字符串对象 ⑤ ( 判断对象中是否有某个属性 | 统计字符串中每个字符出现的次数 )
  • Linux环境下测试服务器的DDR5内存性能
  • 19、matlab信号预处理中的中值滤波(medfilt1()函数)和萨维茨基-戈雷滤波滤(sgolayfilt()函数)
  • Scala 练习一 将Mysql表数据导入HBase
  • 前端工程化:基于Vue.js 3.0的设计与实践
  • Linux☞进程控制
  • mybatis离谱bug乱转类型
  • 视频监控管理平台LntonCVS视频汇聚平台充电桩视频监控应用方案
  • VS环境Python:深度探索与实用指南