i2c读写时,报错
root@DM385_IPNC:/opt/ipnc/bin# ./i2c_rdwr.out -r 78 300a
omap_i2c omap_i2c.3: controller timed out
I2C (0x78): Read ERROR !!! (reg[0x0a], count = 4)
查了下datasheet,我用的是c12,j13
在uboot里配置了复用为i2c
/* 135-I2C[2]_SDA 136-I2C[2]_SCL */
/* -136 */ BIT(0), BIT(0), BIT(6), BIT(6),
在kernel/arch/arm/mach-omap2/board-dm385ipnc.c里添加了
omap_writel(0xe0040, 0x48140A18);
omap_writel(0xe0040, 0x48140A1c);
omap_writel(0x1, 0x48140924);
omap_writel(0x1, 0x48140928);
omap_writel(0x1, 0x481409a0);
omap_writel(0x1, 0x481409a4);
omap_writel(0x1, 0x48140a6c);
omap_writel(0x1, 0x48140b8c);
omap_writel(0x1, 0x48140b90);
omap_writel(0x1, 0x48140ba8);
跟踪代码,发现的确执行了上面代码,但在系统起来后,发现复用还是没有成功
root@DM385_IPNC:/opt/ipnc/bin# ./mem_rdwr.out --rd 48140A18
[host] 0x48140a18:
[host] 000E0001
手动配置也不成功
root@DM385_IPNC:/opt/ipnc/bin# ./mem_rdwr.out --wr 48140A18 000E0040
[host] ORG 0x48140a18: e0001
[host] NEW 0x48140a18: e0001
有两点疑惑:1、除了uboot和kernel里那两个地方复用外,还有什么地方需要操作的;
2、为什么手动配置也没有效果;
大家有熟悉的给指点下,先谢谢~


