i.MX6UL 管脚复用的参数配置方法(以设备树为例)
NXP Cortex-A7 i.MX6UltraLite 的外设资源非常丰富。为了提供芯片的性价比,CPU厂家引入了PINMUX的架构,简单说就是引脚存在复用,以上说的这些接口,只用了大约114个引脚,每个引脚最大可以有9种功能(具体可查看Pin List),每个功能有可以出现在不同的引脚上面。
这里以使用UART3 作为RS485功能为例来说明;
首先查看i.MX6ul哪些引脚可做为uart3功能;
注:上述参考手册为《IMX6ULRM.pdf》
Chapter 4: External Signals and Pin Multiplexing --- Muxing Options
这里选
UART3_TX_DATA作为TX_DATA,
UART3_RX_DATA作为RX_DATA;
UART3_RTS引脚485方向引脚
接下来便是设备树中PINMUX的配置:
&uart3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart3>; fsl,rs485-gpio-txen = <&gpio1 27 GPIO_ACTIVE_HIGH>; linux,rs485-enabled-at-boot-time; status = "okay"; }; pinctrl_uart3: uart3grp { fsl,pins = < MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x1b0b1 MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x1b0b1 MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x1b0b1 /* RS485 RE/DE */ >; };
MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX,MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX这些属性名称可以在 arch/arm/boot/dts/imx6ul-pinfunc.h 文件中搜索引脚关键
字来确定,如 UART3_TX_DATA 就可以找到 MX6UL_PAD_UART3_TX_DATA__*********,然后就是根据需要复用成的功能做选择了。
把喜歡的事情做到極緻。