日期:2014-05-16  浏览次数:20703 次

I2C驱动测试 有问题啊啊啊
纳闷啊~~~~~~~~~
我的板子是TQ2440,裸奔时I2C测试OK的
跑系统后测试I2C就出现下面提示了

s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)
s3c2440-i2c s3c2440-i2c: cannot get bus (error -110)

有人说I2C两条线上拉电阻由10K改1K , 我试了不行
按照天嵌教程 说是要
当开发板启动完毕后,进入开发板的串口控制台,输入命令: $ vi/etc/init.d/rcS,然后使用“#”号屏
蔽掉加载OV9650驱动的语句 #insmod /lib/ov9650.ko
可是我 vi/etc/init.d/rcS后,文件是空的,这该怎么办??高手赐教啊 郁闷中 在线等

------解决方案--------------------
错误信息在这里:
http://lxr.linux.no/linux+v3.3/drivers/i2c/busses/i2c-s3c2410.c#L502
上面一行调用了s3c24xx_i2c_set_master,这个函数在这:
http://lxr.linux.no/linux+v3.3/drivers/i2c/busses/i2c-s3c2410.c#L468
何以看到S3C2410_IICSTAT这个寄存器的S3C2410_IICSTAT_BUSBUSY这一位总是显示busy,所以就失败了。

我没用过s3c2440,你自己看看硬件手册,什么原因会导致S3C2410_IICSTAT仅存其显示一直忙碌,是因为没有正确初始化还是其它软件在占用?