一、前言
Defensor 目前已调试的摄像头MIPI 接口的 OV2718 以及带 Serdes 的 MIPI 接口的 OV2775,下面将以 OV2775 摄像头为例 ,讲解它的驱动的移植以及 Serdes 的配置,Serdes 型号为 THCV241A 和 THCV242。
二、使能 i2c
2.1 确认使用的 i2c
通过下面的原理图可以确认,与 THCV242 对接的 i2c 总线组别为 7。
2.2 确定 Liteos 端 i2c7
在 osdrv/platform/liteos/platform/bsp/board/hi3566v100/board.c 下可以确认 liteos 端的 i2c7 是否有使能,具体如下:
2.3 复用 i2c7
(1)在 product_init_hi3562v100.c 中添加 i2c7 pinmux 的配置,具体操作如下:
① 增加 PDT_INIT_SetI2C7PinMux 函数,具体如下:
② 在 PDT_INIT_SetSensorCtlPinMux 中修改如下:
(2) 在 middleware/ndk/code/mediaserver/configs/sensor/hi3562v100/comm/
sensor_intf_comm_params/comm_sensor_intf_cfg_params.c 中确认选择对应的 i2c,具体操作如下:
三、添加 ov2775_2l 设备
3.1 MPP 层添加
(1)复制 ov2775 的驱动源码,重命名为 ov2775_2l,并且将源码中所有涉及“ov2775”的改为“ov2775_2l”
(2) 修改 Makefile,将 TARGETLIB 和 TARGETLIB_SO 修改如下:
(3)添加 serdes 相关 api
① 在 ov2775_2l_cmos.h 中定义 ov2775_2l_get_serdes_i2c_addr,具体如下:
② 在 ov2775_2l_cmos.c 中的设备地址填入 ov2775_2l_get_serdes_i2c_addr(vi_pipe) ,具体添加如下:
③ 在 ov2775_2l_sensor_ctl.c 中修改如下:
在 ov2775_2l_i2c_init 中修改 ioctl 实参,具体如下:
(4)修改 sensor_i2c.c, 具体如下:
(5) 进入 amp/a7_liteos/mpp/component/isp/user 目录下,直接 make all
3.2 NDK 层添加
(1) 在 ndk/code/mediaserver/configs/sensor/include/sensor_interface_cfg_params.h 头文件中定义 OV2775_2L
(2) 在 ndk/code/mediaserver/configs/sensor/hi35xx 目录下新建一个 OV2775_2l 的文件夹, 并且新增 sensor_interface_cfg_param.c 和 Makefile 两个文件(可以参考其他sensor)
① 修改 Makefile 如下:
② 参照 ov2775 的 sensor_interface_cfg_params.c 仿写一个 ov2775_2l 的 sensor_interface_cfg_params.c 便可
(3) 在 ndk\code\mediaserver\configs\sensor\hi3562v100\comm\register_sensor\目录下
register_sensor.c 文件中调用 MAPI_SENSOR_Load 函数注册对应 sensor 库
3.3 Reference 层添加
(1) 在 reference/dashcam/modules/init/amp/liteos/src/product_init_hi3562v100.c 中添加 ov2775_2l 的配置
(2) 直接复制 ov2775 scene 的配置,改名为 ov2775_2l
(3) 直接参考 hi3566 ov2775 的配置编写一个 ov2775_2l 的 param
3.4 添加 Menuconfig
(1) 在 build/Kconfig.board 文件中,在“Sensor Configure”对应的 Dev 下,添加 sensor 型号以及在 serdes 中添加 ov2775_2l
(2) 在 build/kconfig.mak 文件中,在 Sensor Type 中添加对应的 sensor 类型字符串以及对应 sensor 编译宏
(3) 在 build/base.mak 文件中,在 NDK Configure 下增加新 sensor 编译选项适配
配置完成后,具体效果如下:
OV2775 的移植到这一步就已经完成了,下一篇博文将为大家介绍在 Hi3566V100 上配置 Serdes 并使用 OV2775 来进行验证。
评论