| # Copyright (c) 2022 NXP |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| description: | |
| The node has the 'pinctrl' node label set in MCUX SoC's devicetree. These |
| nodes can be autogenerated using the MCUXpresso config tools combined with |
| the imx_dts_gen.py script in NXP's HAL. The mux, mode, input, daisy, and cfg |
| fields in a group select the pins to be configured, and the remaining |
| devicetree properties set configuration values for those pins |
| for example, here is an group configuring LPUART1 pins: |
| |
| group0 { |
| pinmux = <&iomuxc_uart2_rxd_uart_rx_uart2_rx, |
| &iomuxc_uart2_txd_uart_tx_uart2_tx>; |
| bias-pull-up; |
| slew-rate = "slow"; |
| drive-strength = "x1"; |
| }; |
| |
| This will select UART2_RXD as UART2 rx, and UART2_TXD as UART2 tx. |
| Both pins will be configured with a slow slew rate, and x1 drive |
| strength. |
| Note that the soc level iomuxc dts file can be examined to find the possible |
| pinmux options. Here are the affects of each property on the |
| IOMUXC SW_PAD_CTL register: |
| input-schmitt-enable: HYS=1 |
| drive-open-drain: OD=1 |
| bias-pull-down: PD=0 |
| bias-pull-up: PU |
| slew-rate: FSEL1=<enum_idx> |
| drive-strength: DSE=<enum_idx> |
| input-enable: SION=1 (in SW_MUX_CTL_PAD register) |
| |
| If only required properties are supplied, the pin will have the following |
| configuration: |
| HYS=0, |
| PD=0 |
| PU=0 |
| OD=0, |
| FSEL1=<slew-rate>, |
| DSE=<drive-strength>, |
| SION=0, |
| |
| |
| compatible: "nxp,imx93-pinctrl" |
| |
| include: base.yaml |
| |
| child-binding: |
| description: iMX pin controller pin group |
| child-binding: |
| description: | |
| iMX pin controller pin configuration node. |
| |
| include: |
| - name: pincfg-node.yaml |
| property-allowlist: |
| - input-schmitt-enable |
| - drive-open-drain |
| - input-enable |
| - bias-pull-up |
| - bias-pull-down |
| |
| properties: |
| pinmux: |
| required: true |
| type: phandles |
| description: | |
| Pin mux selections for this group. See the soc level iomuxc DTSI file |
| for a defined list of these options. |
| drive-strength: |
| required: true |
| type: string |
| enum: |
| - "x0" |
| - "x1" |
| - "x2" |
| - "x3" |
| - "x4" |
| - "x5" |
| - "x6" |
| description: | |
| Pin output drive strength. Sets the DSE field in the IOMUXC peripheral. |
| 00_0000 X0, No driver |
| 00_0001 X1 |
| 00_0011 X2 |
| 00_0111 X3 |
| 00_1111 X4 |
| 01_1111 X5 |
| 11_1111 X6 |
| slew-rate: |
| required: true |
| type: string |
| enum: |
| - "slow" |
| - "slightly_slow" |
| - "slightly_fast" |
| - "fast" |
| description: | |
| Select slew rate for pin. Corresponds to SRE field in IOMUXC peripheral |
| 0 SLOW — Slow Frequency Slew Rate |
| 1 Slightly SLOW — Slightly Slow Frequency Slew Rate |
| 2 Slightly FAST — Slightly Fast Frequency Slew Rate |
| 3 FAST — Fast Frequency Slew Rate |