2009-07-28 47 views
7

这里的晦涩响应使我不知道this在Linux内核中的I2C写确认轮询

我已经背负着设备(Analog Devices 525x)那(来自数据手册,第16页):

内部[EEPROM]期间禁用I2C接口写周期。

这似乎不公平,如“我现在下车沙发上,所以因为我让座垫一个裂口不使用了一段时间”。老实说,为什么这是我的问题?

无论如何,数据表建议应答轮询是答案 - 进入Linux内核... Linux GPIO位分离的I2C驱动程序提供了一个机制来做到这一点吗?本质上发送一个地址与写入位设置,并继续这样做,直到出现一个ACK。

我在一个ARM上使用2.6.14,带有后端端口的GPIO位bashing驱动(我认为是2.6.19)。

回答

1

它似乎没有太多现成的,但

你可能会需要看具有类似于旗I2C_M_NOSTART 只不同的协议修改标志,在你的补丁。 至少有一种方法可以做到(毫无疑问是一种凌乱的方式)

我希望为你着想,你不需要在同一条总线上放置普通的i2c设备。老实说,硬件厂商一直在做这样的事情。只要它成为你的问题,他们就会认为问题“解决了”。

我在那里看到很多破损的I2C,你可以让其他人的生活更美好。

0

听起来像你需要重写I2C系统的内核驱动程序来允许这样做吗?

另外,如何升级内核,看看自2.6.14以来发生了什么,这是迄今为止的一个相当古老的内核版本。

+0

这是平台附​​带的专有产品;将转发端口的所有离散更改都是非常努力的。 2.6.14。++的表现合理,所以除了这里发布的内容外,没有太多的动机。 – Jamie 2009-08-17 02:46:17