RK3399 Android上面调试IMX291 Camera驱动

来源:互联网 发布:java swing开发实例 编辑:程序博客网 时间:2024/05/18 00:21
由于官方代码没有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";
+};


之外需要MCLK输出为37.125MHz或者74.25MHz,以为imx291只能在这两个clk下正常工作

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


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

E CameraHal: IMX291 device register failed!

这是驱动读取sensor id与默认值不匹配导致驱动注册失败,后来问了索尼的代理,原来imx291没有id


采用哪组MIPI接口,RST脚,MCKL时钟都是在cam_board.xml分别配phyIndex,SensorGpioRst,SensorMclk
但是发现<SensorMclk mclk="24000000" delay="1000"></SensorMclk>该时钟配置没生效,i2c通信也有问题

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