2016-07-16 12 views
1

私のZynqボードはSPI、I2Cを持っていますが、カーネルレベルのGPIOはありません(MIO上のGPIOは他のものに送られます)。それはヘッダーからのものです。私がこれを言うとき、私を信じてください。GPIOからI2Cカーネルドライバ(i2c-gpioの反対側)

カーネルレベルのGPIOが必要なので、タッチスクリーンインタフェースを駆動できます。私はいくつかのGPIOをstmpe610タッチスクリーンドライバ(Device Tree compatible = "st、stmpe610")にマッピングする必要があります。これはすべてうまくいいです。だから私はやりたいことは何とかI2CをGPIO(ディスプレイに接続されている)にマップし、ドライバをI2C経由でインターフェイスするように配管します。このようにして、カーネル空間から私のi2cエクスパンダのGPIOピンにアクセスできます。

私はi2c-gpioドライバを見ましたが、それは私が望むものと逆です(http://lwn.net/Articles/230571/)。それはGPIOをとり、ビットバンギングによってI2Cにします。

私はI2Cを取ってGPIOを吐き出すi2cエキスパンダーミニボードを持っています。だからgpio-i2Cがあれば素晴らしいだろう。

たぶん私はあまりにも遠くにさまよい、暴かれた道を離れました。 stmpe610にはi2cドライバがありますか?これはまた私の問題を緩和するでしょう。

< <

答えて

2

私が正しくあなたを理解している場合、あなたはあなたのZyncメインボードに接続することができGPIO拡張ボードを持っています。

上記の前提が正しい場合は、GPIO拡張ボード用の正しいドライバを見つける必要があります。どのようなモデルがありますか?そこには何のチップがありますか?おそらくカーネルにすでにドライバがあります。その場合は、デバイスツリーのI2Cベースコントローラノードの下で宣言するだけで、stmpe610タッチスクリーンノードのデバイスツリーでそのGPIOを参照できるようにする必要があります。

チップにまだドライバがない場合は、チップ用のGPIOドライバを作成する必要があります。まずは、I2Cを介して接続されているMAX 7300用のGPIOドライバです。ご覧くださいgpio-max7300.cgpio-max730x.c

+0

ありがとうございます。これは良い答えです。あなたは、デバイスツリーのi2cからGPIOへのマッピングの例を提供してください。私は構文が正しいことを確認したい。 http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/gpio/gpio-max732x.txt と、この: – Xofo

+0

私はこれを見つけた http://stackoverflow.com/questions/ 26667082/max732x-c-i2c-io-expander-gpio-keys-w-linux-device-tree-not-working ありがとう! – Xofo

関連する問題