TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8168内核不能使用I2C1问题

您好!我在调8168内核I2C驱动,发现I2C0可以正常访问,而I2C1一直访问不了,相应引脚上根本没有信号出来。

  在《TI816x-PSP-04.00.00.09-DataSheet.pdf》P4页发现一句话:

“Though I2C1 control from kernel is not supported, it is possible to add this support by editing

arch/arm/plat-omap/i2c.c and arch/arm/mach-omap2/board-ti8168evm.c for 'Bus 2'”

如果想访问BUS2,具体应该怎么改上面那两个文件?谢谢!

目前我做的修改为下面标的红色部分,凡是还是没效果,i2c1一直没有信号出来。

在uboot中给了i2c1的时钟:

evm.c,peripheral_enable()中:

__raw_writel(0x2, CM_ALWON_I2C_1_CLKCTRL);

while(((__raw_readl(CM_ALWON_I2C_1_CLKCTRL) & 0x70000) >> 16) != 0) ;

在内核arch/arm/plat-omap/i2c.c

static struct resource i2c_resources[][2] = {

{ I2C_RESOURCE_BUILDER(0, 0) },

{ I2C_RESOURCE_BUILDER(0, 0) },

};

static struct platform_device omap_i2c_devices[] = {

I2C_DEV_BUILDER(1, i2c_resources[0], &i2c_pdata[0]),

I2C_DEV_BUILDER(2, i2c_resources[1], &i2c_pdata[1]),

};

xiaohui chen1:

我用到的是I2C1(设备节点/dev/i2c-2)

增加错误的打印信息,还请专家帮忙看看。谢谢!

/ # /mnt/i2cget -y 2 0x18 0

omap_i2c omap_i2c.2: controller timed out

Error: Read failed

Feng Dong:

回复 xiaohui chen1:

请首先检查pin脚定义是否正确

xiaohui chen1:

回复 Feng Dong:

管脚复用没有问题,我挂仿真器对比了下i2c0/i2c1的pinmux配置寄存器:

PINCTRL287、PINCTRL288、PINCTRL289、PINCTRL290的值都一样,都是0x18: i2c引脚模式,Pullup selected, Pullup/Pulldown disabled

外面都有上拉电阻。

xiaohui chen1:

回复 Feng Dong:

管脚复用没有修改,我挂仿真器对比了下i2c0/i2c1的pinmux配置寄存器:

PINCTRL287、PINCTRL288、PINCTRL289、PINCTRL290的值都一样,都是0x18: i2c引脚模式,Pullup selected, Pullup/Pulldown disabled

外面都有上拉电阻。

赞(0)
未经允许不得转载:TI中文支持网 » DM8168内核不能使用I2C1问题
分享到: 更多 (0)