目录
9.2.什么是pinctrl子系统?
pinctrl子系统主要用来设置pin的复用功能以及电气特性。参考STM32中用来配置引脚复用和电气特性时使用如下代码:
/*开启引脚复用功能PB14/PB15*/
GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_9);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_9);
/*引脚的配置PB14/PB15*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB,&GPIO_InitStructure);
pinctrl就是把上面的这些类似的代码简化为简单的语句,看下需要怎么简化。之前问过自己4个问题其实是3个问题:pinctrl是什么?怎么写?怎么用?
pinctrl是什么?已经知道了。
怎么写?参考文档如下图,之前分析过这些,感觉还是没有理清楚,重新理顺一下并用简练的语言把pinctrl总结出来。
原谅我是初学对Linux系统的专有术语还不太清楚,只能用通俗的话来描述专业的东西。
fsl,imx-pinctrl.txt,因为手里的单板是imx6ull所以先看了fsl,imx-pinctrl.txt,核心内容就是描述IOMUX Controller (IOMUXC)在设备树中是一个节点(node),用来选择引脚复用功能和配置引脚电气特性,涉及2个properties: