2009-07-28 12 views
7

Die glanzlose Antwort hier ließ mich Wunder this.I2C schreiben Bestätigung Polling in Linux Kernel

Ich habe mit einer Vorrichtung, die aufgebürdet worden (Analog Devices 525x) (aus dem Datenblatt, S. 16):

die I2C-Schnittstelle während des internen [EEPROM] deaktiviert Schreibzyklus.

Das ist nicht fair scheint, wie in „ich die Couch jetzt aussteigen, verwenden Sie es also nicht für eine Weile, weil ich einen Riss in dem Sitzkissen lassen“. Ehrlich, warum sollte das mein Problem sein?

Wie auch immer, das Datenblatt schlägt vor, dass Bestätigung Polling ist die Antwort - geben Sie den Linux-Kernel ... bietet der Linux GPIO Bit Bashed I2C-Treiber einen Mechanismus dafür? Senden Sie im Wesentlichen eine Adresse mit gesetztem Schreibbit und machen Sie dies so lange, bis ein ACK erscheint.

Ich benutze 2.6.14 auf einem ARM mit Back-Ported GPIO Bit Bashing-Treiber (von 2.6.19 glaube ich).

Antwort

1

es nicht scheint aus dem Regal, aber

Sie müssen wahrscheinlich eine Protokoll Modifikation Flagge an, die wie Flag I2C_M_NOSTART nur verschiedene, in Ihrem Patches zu suchen. Zumindest gibt es eine Möglichkeit, es zu tun (zugegebenermaßen eine chaotische Art und Weise)

Ich hoffe für Sie, müssen Sie nicht ein normales i2c-Gerät auf dem gleichen Bus.

Ehrlich gesagt, Hardware-Anbieter machen solche Sachen die ganze Zeit. Sie betrachten das Problem als "gelöst", solange es Ihnen gehört.

Ich sehe viele gebrochene I2C da draußen und Sie könnten das Leben schöner für andere Menschen machen.

0

Klingt, als ob Sie den Kernel-Treiber für das I2C-System neu schreiben müssen, um dies zu ermöglichen?

Auch, was ist mit der Aktualisierung des Kernels und sehen, was seit 2.6.14 passiert ist, die eine ziemlich alte Kernel-Version ist.

+0

Es ist eine proprietäre Sache, die mit der Plattform geliefert wird; es wäre eine ziemliche Anstrengung, alle diskreten Änderungen weiterzuleiten. 2.6.14. ++ verhält sich vernünftig, so dass es nicht viel mehr Ansporn gibt als was hier gepostet wird. – Jamie