| # Copyright 2022 NXP |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| description: | |
| LPC pinctrl 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_30>, |
| <FC0_RXD_SDA_MOSI_DATA_PIO0_29>; |
| slew-rate = "standard"; |
| }; |
| }; |
| |
| If only the required properties are supplied, the ICON_PIO register will |
| be assigned the following values: |
| IOCON_FUNC=<pin mux selection>, |
| IOCON_MODE=0, |
| IOCON_SLEW=<slew-rate selection>, |
| IOCON_INVERT=0, |
| IOCON_DIGIMODE=1, |
| IOCON_OD=0, |
| |
| Values for I2C type and analog type pins have the following defaults: |
| IOCON_ASW=0 |
| IOCON_SSEL=0 |
| IOCON_FILTEROFF=1 |
| IOCON_ECS=0 |
| IOCON_EGP=1 |
| IOCON_I2CFILTER=1 |
| |
| Note the inherited pinctrl properties defined below have the following effects: |
| drive-open-drain: IOCON_OD=1 |
| bias-pull-up: IOCON_MODE=2 |
| bias-pull-down: IOCON_MODE=1 |
| drive-push-pull: IOCON_MODE=3 |
| |
| Note: for the LPC11u6x, the following fields are also supported: |
| IOCON_HYS- set by input-schmitt-enable |
| IOCON_S_MODE- set by nxp,digital-filter |
| IOCON_CLKDIV- set by nxp,filter-clock-div |
| IOCON_FILTR- set by nxp,analog-filter |
| |
| |
| compatible: "nxp,lpc-iocon-pinctrl" |
| |
| include: base.yaml |
| |
| child-binding: |
| description: LPC IOCON pin controller pin group |
| child-binding: |
| description: | |
| LPC IOCON pin controller pin configuration node |
| |
| include: |
| - name: pincfg-node.yaml |
| property-allowlist: |
| - drive-open-drain |
| - bias-pull-up |
| - bias-pull-down |
| - drive-push-pull |
| - input-schmitt-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: |
| default: "standard" |
| type: string |
| enum: |
| - "standard" |
| - "fast" |
| description: | |
| Pin output slew rate. Sets the SLEW field in the IOCON register. |
| defaults to standard slew rate, due to this being the reset value of |
| the field. |
| 0 SLEW_0- standard mode, output slew rate is slower |
| 1 SLEW_1- fast mode, output slew rate is faster |
| nxp,invert: |
| type: boolean |
| description: | |
| Invert the pin input logic level |
| nxp,analog-mode: |
| type: boolean |
| description: | |
| Set the pin to analog mode. Sets DIGIMODE=0, and ASW=1. Only valid for |
| analog type pins. Selects ASW0 on LPC55s3x family |
| nxp,analog-alt-mode: |
| type: boolean |
| description: | |
| Select the pin's alternate analog mode. Valid on LPC55s3x family SOCs |
| when DIGIMODE=0. Only valid for analog type pins. Sets ASW1. |
| power-source: |
| type: string |
| enum: |
| - "3v3" |
| - "1v8" |
| description: | |
| Pin output power source. Only valid for I2C mode pins running in I2C |
| mode. |
| nxp,digital-filter: |
| type: boolean |
| description: | |
| Digital input filter. Noise pulses below 10ms are filtered out. |
| nxp,i2c-filter: |
| type: string |
| enum: |
| - "slow" |
| - "fast" |
| description: | |
| I2C glitch filter speed. Only valid for I2C mode pins. Fast mode |
| typically only required for High speed I2C. |
| nxp,i2c-speed: |
| type: string |
| enum: |
| - "slow" |
| - "fast" |
| description: | |
| I2C speed. Only valid for I2C mode pins. Fast mode should be used for |
| fast mode plus I2C. |
| nxp,i2c-pullup: |
| type: boolean |
| description: | |
| Enable I2C pullup resistor. If not present, pin is open drain in I2C |
| mode. Only valid for I2C mode pins in I2C mode |
| nxp,i2c-mode: |
| type: boolean |
| description: | |
| Enable I2C mode for a pin. If not present, pin is in GPIO mode. Only |
| valid for I2C mode pins |