2009-07-28 31 views
7

ここでの不満な反応は、私には不思議だったthisLinuxカーネルのI2Cライトアクノリッジポーリング

Iは、(PG 16、データシートから)デバイス(Analog Devices 525x)を抱えてきた:

サイクルを書き込む内部[EEPROM]中、I2Cインタフェースを無効にします。 「私は今、ソファを降りるつもり、私はシートクッションで1つのRIPを聞かせているため、しばらくの間それを使用しないでください」のように、公正いないようだ

。正直なところ、なぜそれが私の問題なのでしょうか? LinuxのGPIOビットがI2Cドライバでこれを行うためのメカニズムを提供しているのですか?本来、書き込みビットがセットされたアドレスを送信し、ACKが出現するまでその状態を保ちます。

私はバックポートGPIOビットバッシングドライバを搭載したARM(2.6.19)から2.6.14を使用しています。

答えて

1

それは既製あまりいないようですが、

あなたはおそらくあなたのパッチには、旗I2C_M_NOSTARTのようなプロトコルの変更フラグ 異なるだけを持っ見てする必要があります。 少なくともそれを行う方法はありますが(確かに乱雑な方法)

あなたは、同じバスに通常のi2cデバイスを置く必要はありません。

正直なところ、ハードウェアベンダーは常にこのようなことをしています。彼らは、あなたのものになっている限り、問題を "解決"したものとみなします。

私はそこに多くの壊れたI2Cを見て、あなたは他の人にとってより良い生活をすることができます。

0

これを可能にするために、I2Cシステム用のカーネルドライバを書き直す必要があると思われますか?

また、カーネルをアップグレードして、かなり古いカーネルバージョンである2.6.14から何が起こったのかを見てみましょう。

+0

プラットフォームに同梱されている専用のものです。それはすべての離散的な変更を移植するためのかなりの努力であろう。 2.6.14。++は合理的に動作しているため、ここに掲載されているものを超えるインセンティブはあまりありません。 – Jamie