要细究这个问题,首先要知道pinctrl子系统和GPIO子系统究竟是干什么的,pinctrl子系统主要用于配置引脚的状态(如功能复用、电气属性等),而在Linux的软件架构中,GPIO子系统提供了对GPIO引脚的直接操作接口,如设置引脚方向、读取/写入引脚值等。
我们知道,在使用ZYNQ的EMIO时,需要在Vivado的硬件设计(引脚分配)环节就配置好哪些引脚分配给GPIO功能,相当于EMIO已经被分配了GPIO的功能,并且在xdc约束上给了电平标准这些其他引脚需要在pinctrl子系统所完成的事,故也就不用再多次一举了。
其次,我们要知道,在Linux的软件架构中,设置引脚方向、读取/写入引脚值等这些操作是独立于pinctrl子系统的,即使在没有pinctrl子系统配置的情况下,只要GPIO引脚已经被正确配置为GPIO功能,就可以通过GPIO子系统进行操作。
最后希望本文可以加深大家对于pinctrl子系统和GPIO子系统的理解。
标签:MPSoC,EMIO,引脚,pinctrl,ZYNQ,GPIO,子系统 From: https://blog.csdn.net/qq1016019583/article/details/142070328