2022-03-18 23:58:12 +08:00
|
|
|
# Copyright (c) 2022 NXP
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
description: |
|
|
|
|
The node has the 'pinctrl' node label set in MCUX RT SoC's devicetree. These
|
|
|
|
nodes can be autogenerated using the MCUXpresso config tools combined with
|
|
|
|
the rt_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_gpio_ad_25_lpuart1_rxd>,
|
|
|
|
<&iomuxc_gpio_ad_24_lpuart1_txd>;
|
|
|
|
drive-strength = "high";
|
|
|
|
slew-rate = "slow";
|
|
|
|
};
|
|
|
|
|
|
|
|
This will select GPIO_AD_25 as LPUART1 RX, and GPIO_AD_24 as LPUART1 TX.
|
|
|
|
Both pins will be configured with a weak latch, high drive strength,
|
|
|
|
and slow slew rates.
|
|
|
|
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:
|
|
|
|
drive-open-drain: ODE/ODE_LPSR=1
|
|
|
|
input-enable: SION=1 (in SW_MUX_CTL_PAD register)
|
|
|
|
bias-pull-down: PUE=1, PUS=0
|
|
|
|
bias-pull-up: PUE=1, PUS=1
|
|
|
|
bias-disable: PULL=11 (in supported registers)
|
|
|
|
slew-rate: SRE=<enum_idx>
|
|
|
|
drive-strength: DSE=<enum_idx>
|
|
|
|
|
|
|
|
If only required properties are supplied, the pin will have the following
|
|
|
|
configuration:
|
|
|
|
ODE=0
|
|
|
|
SION=0
|
|
|
|
PUE=0
|
|
|
|
PUS=0
|
|
|
|
SRE=0
|
|
|
|
DSE=0
|
|
|
|
|
|
|
|
For registers with PDVR and PULL fields, these are the defaults:
|
|
|
|
PULL=11
|
|
|
|
PDRV=0
|
|
|
|
|
|
|
|
|
|
|
|
compatible: "nxp,mcux-rt11xx-pinctrl"
|
|
|
|
|
2022-11-14 23:37:42 +08:00
|
|
|
include: base.yaml
|
2022-03-18 23:58:12 +08:00
|
|
|
|
|
|
|
child-binding:
|
|
|
|
description: MCUX RT pin controller pin group
|
|
|
|
child-binding:
|
|
|
|
description: |
|
|
|
|
MCUX RT pin controller pin configuration node.
|
2022-11-14 23:37:42 +08:00
|
|
|
|
|
|
|
include:
|
|
|
|
- name: pincfg-node.yaml
|
|
|
|
property-allowlist:
|
|
|
|
- drive-open-drain
|
|
|
|
- input-enable
|
|
|
|
- bias-disable
|
|
|
|
- bias-pull-down
|
|
|
|
- bias-pull-up
|
|
|
|
|
2022-03-18 23:58:12 +08:00
|
|
|
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:
|
|
|
|
type: string
|
|
|
|
enum:
|
|
|
|
- "normal"
|
|
|
|
- "high"
|
|
|
|
description: |
|
|
|
|
Pin output drive strength. Sets the DSE field in the IOMUXC peripheral.
|
|
|
|
0 (normal) - sets pin to normal drive strength
|
|
|
|
1 (high) - sets pin to high drive strength
|
|
|
|
slew-rate:
|
|
|
|
type: string
|
|
|
|
enum:
|
|
|
|
- "fast"
|
|
|
|
- "slow"
|
|
|
|
description: |
|
|
|
|
Select slew rate for pin. Corresponds to SRE field in IOMUXC peripheral
|
|
|
|
0 (fast) — Fast Slew Rate
|
|
|
|
1 (slow) — Slow Slew Rate
|