hi all:
我现在在调试dm8168的uboot,尝试在uboot中添加,iic从设备初始化的代码。在调试中发现这样的现象。
在我上电后,uboot中调用i2c_read函数读取iic从器件的内容时,会报“I2C read: I/O error”的错误,使用示波器在抓取iic引脚的波形发现没有数据输出。
但是在uboot中输入boot启动内核,在linux启动完成后,在linux中输入reboot,重启设备。
重启到uboot输入回车中止启动,这时执行同样的iic操作,全部是好用的,读写的数据全部正确。
现在uboot中iic的接口函数,是调用omap24xx_i2c.c中的函数,在uboot启动中已经调用iic_init函数。
开始怀疑io复用的问题,但是iic0,1的引脚都没有复用。
所以这个问题现在比较迷惑,iic初始化时出了对iic寄存器的初始化还要依赖于其他单元吗?内核中应当是做了一些初始化,使iic工作了,而uboot中没有做。