| # Copyright 2022, NXP |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| description: | |
| RT600/RT500 pin control node. This node defines pin configurations in pin |
| groups, and has the 'pinctrl' node identifier in the SOC's devicetree. Each |
| group within the pin configuration defines a peripheral's pin configuration. |
| Each numbered subgroup represents pins with shared configuration for that |
| peripheral. The 'pinmux' property of each group selects the pins to be |
| configured with these properties. For example, here is a configuration |
| for FLEXCOMM0 pins: |
| |
| pinmux_flexcomm0_usart: pinmux_flexcomm0_usart { |
| group0 { |
| pinmux = <FC0_TXD_SCL_MISO_WS_PIO0_1>, |
| <FC0_RXD_SDA_MOSI_DATA_PIO0_2>; |
| slew-rate = "normal"; |
| drive-strength = "normal"; |
| }; |
| }; |
| |
| If only the required properties are supplied, the ICON_PIO register will |
| be assigned the following values: |
| IOCON_FUNC=<pin mux selection>, |
| IOCON_PUPDENA = 0, |
| IOCON_PUPDSEL = 0, |
| IOCON_IBENA = 0, |
| IOCON_SLEWRATE = <slew-rate selection>, |
| IOCON_FULLDRIVE = <drive-strength selection>, |
| IOCON_AMENA = 0, |
| IOCON_ODENA = 0, |
| IOCON_IIENA = 0, |
| |
| Note the inherited pinctrl properties defined below have the following effects: |
| drive-open-drain: IOCON_ODENA=1 |
| bias-pull-up: IOCON_PUPDENA=1, IOCON_PUPSEL=1 |
| bias-pull-down: IOCON_PUPDENA=1, IOCON_PUPSEL=0 |
| input-enable: IOCON_IBENA=1 |
| |
| compatible: "nxp,rt-iocon-pinctrl" |
| |
| include: base.yaml |
| |
| child-binding: |
| description: iMX RT IOCON pin controller pin group |
| child-binding: |
| description: | |
| iMX RT IOCON pin controller pin configuration node |
| |
| include: |
| - name: pincfg-node.yaml |
| property-allowlist: |
| - drive-open-drain |
| - bias-pull-up |
| - bias-pull-down |
| - input-enable |
| |
| properties: |
| pinmux: |
| required: true |
| type: array |
| description: | |
| Pin mux selection for this group. See the SOC level pinctrl header |
| file in NXP's HAL for a defined list of these options. |
| slew-rate: |
| required: true |
| type: string |
| enum: |
| - "normal" |
| - "slow" |
| description: | |
| Pin output slew rate. Sets the SLEWRATE field in the IOCON register. |
| 0 SLEWRATE_0- normal mode, output slew rate is standard |
| 1 SLEWRATE_1- slow mode, output slew rate is slower |
| drive-strength: |
| required: true |
| type: string |
| enum: |
| - "normal" |
| - "high" |
| description: | |
| Pin output drive strength. Sets the FULLDRIVE field in the |
| IOCON register. |
| 0 FULLDRIVE_0- Normal output drive mode |
| 1 FULLDRIVE_1- Full output drive mode, output strength is twice |
| the drive strength of normal drive mode. |
| nxp,invert: |
| type: boolean |
| description: | |
| Invert the pin input logic level |
| nxp,analog-mode: |
| type: boolean |
| description: | |
| Set the pin to analog mode. Sets AMENA=1 |