要想让pinA B 用于gpio ,需要 设置iomux让它们连接到gpio模块,要想让pina b用于i2c,需要设置iomux 让他们连接到i2c模块
所以gpio和i2c应该是并列的关系 ,它们能够使用之前 需要设置Iomux,e有时候 不仅仅是设置iomux,不要配置引脚,比如上拉 下拉 开漏。现在的芯片动辄几百个引脚 ,在 要把引脚的复用 配置抽出来 ,做成pingctrl子系统 ,给gpio i2c等模块使用。用gpio系统管理 gpio模块,用pinctrl子系统管理 引脚 的复用和配置
等bsp工程师在gpio子系统中,pinctr子系统中把自己芯片的支持加进去 后,我们就可以非常方便的使用这些引脚,点灯非常简单。大多的芯片,没有单独的iomux模块,引脚 的复用配置等,就是在 gpio模块内部实现的,在硬件上gpio和pinc是如此密切相关,在软件上它们 的关系也非常密切
前者提供服务 可以用它复用引脚 ,配置引脚 pincontroller 后者使用服务,声明自己要使用哪些引脚的哪些功能,怎么配置 clientdevice
client device pinctrl系统的客户,就是傅pinctrl 系统的设备国,使用引脚的设备它在设备树里会被定义 为一个节点,在节点里声明要哪些引脚