zephyr/dts/bindings/pinctrl/nxp,mcux-rt11xx-pinctrl.yaml

93 lines
2.8 KiB
YAML

# 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"
include:
- name: base.yaml
- name: pincfg-node-group.yaml
child-binding:
child-binding:
property-allowlist:
- drive-open-drain
- input-enable
- bias-disable
- bias-pull-down
- bias-pull-up
child-binding:
description: MCUX RT pin controller pin group
child-binding:
description: |
MCUX RT pin controller pin configuration node.
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: false
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:
required: false
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