Linux device driver GPIO到I2C内核驱动程序(与I2C GPIO相反)

Linux device driver GPIO到I2C内核驱动程序(与I2C GPIO相反),linux-device-driver,gpio,i2c,device-tree,zynq,Linux Device Driver,Gpio,I2c,Device Tree,Zynq,我的Zynq板有SPI、I2C,但没有内核级GPIO(MIO上的GPIO被发送到一堆其他东西),所以我无法从头文件中获取它。相信我说的话 我需要一些内核级的GPIO,这样我就可以驱动一个触摸屏界面。我需要将一些GPIO映射到stmpe610触摸屏驱动程序(Device Tree compatible=“st,stmpe610”)。这一切都很好。因此,我想做的是以某种方式将I2C映射到GPIO(将连接到显示器),并通过I2C将驱动程序传输到接口。这样我就可以从内核空间访问i2c扩展器的GPIO引脚

我的Zynq板有SPI、I2C,但没有内核级GPIO(MIO上的GPIO被发送到一堆其他东西),所以我无法从头文件中获取它。相信我说的话

我需要一些内核级的GPIO,这样我就可以驱动一个触摸屏界面。我需要将一些GPIO映射到stmpe610触摸屏驱动程序(Device Tree compatible=“st,stmpe610”)。这一切都很好。因此,我想做的是以某种方式将I2C映射到GPIO(将连接到显示器),并通过I2C将驱动程序传输到接口。这样我就可以从内核空间访问i2c扩展器的GPIO引脚

我查看了i2c gpio驱动程序,但它的功能与我想要的正好相反()。它采用GPIO,通过位碰撞使其成为I2C

我有一个i2c扩展器迷你板,它可以读取i2c并输出GPIO。所以如果我有一个gpio-i2C,那就太好了

也许我走得太远了,离开了人迹罕至的道路。stmpe610是否有i2c驱动程序?这也会缓解我的问题


如果我理解正确,您有一个GPIO扩展板,可以连接到Zync主板

如果上述假设是正确的,那么您需要做的就是为您的GPIO扩展板找到正确的驱动程序。你们有什么型号的?上面有什么芯片?也许内核中已经有了它的驱动程序。如果是这样,那么您只需在设备树中的I2C基本控制器节点下声明它,这样就可以在stmpe610触摸屏节点的设备树中引用它的GPIO


如果芯片还没有驱动程序,那么您必须为芯片编写GPIO驱动程序。一个很好的例子是MAX 7300的GPIO驱动程序,它也是通过I2C连接的。看一看

谢谢。这是一个很好的答案。请在示例设备树中提供i2c到GPIO映射的示例。我想确保语法正确。我发现了这个:和这个:谢谢!