RK3399 Android上面调试IMX291 Camera驱动

由于官方代码没有IMX291的驱动,所以想把IMX214的驱动进行移植,刚开始的做法跟这位仁兄差不多

http://developer.t-firefly.com/archiver/tid-1615.html?page=1

在cam_board.xml中增加的IMX291相关配置,根据hardware/rockchip/camera/SiliconImage/isi/drv/IMX214添加了一份IMX291,修改相关寄存器地址与值编译生成libisp_isi_drv_IMX291.so,然后上电发现Camsys驱动platform_driver_register后没有进入camsys_platform_probe函数,也就是说Camsys没跑起来,那后面的i2c操作没办法成功

修改dts需增加isp_mmu配置:

&isp0 {
       status = "okay";
};

&isp1 {
       status = "okay";
};

+&isp0_mmu {
+       status = "okay";
+};
+
+&isp1_mmu {
+       status = "okay";
+};


采用哪组 MIPI 接口,RST 脚,MCKL 时钟都是在cam_board.xml分别配phyIndex,SensorGpioRst,SensorMclk;

IMX291 需要 MCLK 输出为37.125MHz或者74.25MHz

但是发现该时钟配置没生效

输出37.125MHz需要修改时钟源及分频方式

 

camsys跑起来了但是设备注册失败:
D CameraHal: Check IMX291 ID: reg: 0x16  val: 0x0 default: 0x2

E CameraHal: IMX291 device register failed!

这是驱动读取sensor id与设定默认值不匹配导致驱动注册失败,后来问了索尼的代理,原来imx291没有id,可通过读取其他寄存器默认值确认通讯情况

先在这立个帖子,如果有朋友也在RK上面移植新的camera驱动请私信或加Q47411296

 

你可能感兴趣的:(camera)