105 lines
2.9 KiB
YAML
105 lines
2.9 KiB
YAML
|
# 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
|