2016-07-16 66 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