2016-07-16 65 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擴展器微型板,將採取I2C和吐出GPIO。所以如果我有一個gpio-i2C,那會很棒。

也許我已經走得太遠了,走了一段路。 stmpe610有一個i2c驅動程序嗎?這也會緩解我的問題。

< <

回答

2

如果我理解正確的,你有一個GPIO擴展卡,您可以連接到您的Zync主板。

如果上述假設是正確的,您需要做的是爲您的GPIO擴展板找到正確的驅動程序。你有什麼模特?它上面有什麼芯片?也許在內核中已經有了一個驅動程序。如果是這樣,那麼您只需在設備樹中的I2C基本控制器節點下聲明它,以便可以在您的設備樹中爲您的stmpe610觸摸屏節點引用其GPIO。

如果芯片還沒有驅動程序,那麼您將不得不爲芯片寫一個GPIO驅動程序。一個很好的例子就是MAX 7300的GPIO驅動程序,它也通過I2C連接。看看gpio-max7300.cgpio-max730x.c

+0

謝謝。這是一個很好的答案。您能否提供一個示例設備樹中的i2c到GPIO映射。我想確保我的語法正確。 – Xofo

+0

我發現這一點:http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/gpio/gpio-max732x.txt 這: http://stackoverflow.com/questions/ 26667082/max732x-c-i2c-io-expander -gpio-keys -w-linux-device-tree-not-working 謝謝! – Xofo