Linux下的camera驱动开发解决思路

Linux下的camera驱动开发
哪位在Linux下有做过camera的驱动开放,请进来指点一下!
我是用开源的Moto   代码做的,始终会出现这个问题,I2C-CAMERA   in   fun:i2c_ov9640_read   i2c   write   error   code   =-121,请帮忙分析一下是什么原因!

------解决方案--------------------

------解决方案--------------------
根据错误信息,报告i2c初始化失败。

你确定硬件没有问题了么?有时候硬件连线有问题挺折腾人的,比如确定camera加电正常,i2c连线可靠等。

------解决方案--------------------
至少要enable I2C设备之类的,不过既然你camera模块都能够使用了,i2c自然已经enable了。

make内核不会为你生成dev设备节点。需要你自己添加,或用udev。

------解决方案--------------------
I2C-CAMERA in fun:i2c_ov9640_read i2c write error code =-121
I2C-CAMERA in fun:i2c_ov9640_init error: failed to read chipid
fun camera_init camera function init error!!
fun pxa_camera_open camera_init faile!

这个是I2C总线驱动的时候第一次写入从机地址的时候出错,应该是你的Camera设备的从机号设置错误。
------解决方案--------------------
我直接在内核里加了SCCB协议, 用IO口模拟SCCB时序,访问ov9650和拍照都很正常.

ov9650的协议地址是0x60/0x61, linux下在应用层设置ioctl时, slave地址应当是:
(0x60> > 1)=0x30, 不会是0x2a, 你的实现肯定还有问题.

使用s3c2440+ov9650, 在linux下拍照的具体效果可以看这个贴子:

http://www.embedu.cn/viewthread.php?tid=3399&extra=page%3D1



------解决方案--------------------
补充一下,我的驱动在2.6.18里做的, V4L2架构, 适用于2.6.18和以后的各linux版本.
------解决方案--------------------
I2C总线已经驱动了的情况下,具体的设备驱动一般不难,你多看看Camera芯片资料了解清楚读写位,直接用I2C提供的接口就行了
------解决方案--------------------
实在不行,找他们的fae...除了iic问题
------解决方案--------------------
你不是有开源的Moto 代码么,里面没有i2c模块么,就用那个接口应该可以