1# Copyright (c) 2022 NXP
2# SPDX-License-Identifier: Apache-2.0
3
4description: |
5  The node has the 'pinctrl' node label set in MCUX SoC's devicetree. These
6  nodes can be autogenerated using the MCUXpresso config tools combined with
7  the imx_dts_gen.py script in NXP's HAL. The mux, mode, input, daisy, and cfg
8  fields in a group select the pins to be configured, and the remaining
9  devicetree properties set configuration values for those pins
10  for example, here is an group configuring LPUART1 pins:
11
12  group0 {
13    pinmux = <&iomuxc_uart4_rxd_uart_rx_uart4_rx:,
14      &iomuxc_uart4_txd_uart_tx_uart4_tx>;
15      bias-pull-up;
16      slew-rate = "slow";
17      drive-strength = "x1";
18  };
19
20  This will select UART4_RXD as UART4 rx, and UART4_TXD as UART4 tx.
21  Both pins will be configured with a slow slew rate, and minimum drive
22  strength.
23  Note that the soc level iomuxc dts file can be examined to find the possible
24  pinmux options. Here are the affects of each property on the
25  IOMUXC SW_PAD_CTL register:
26  input-schmitt-enable: HYS=1
27  bias-pull-up: PUE=1, PE=1
28  bias-pull-down: PUE=0, PE=1
29  drive-open-drain: ODE=1
30  slew-rate: FSEL=<enum_idx>
31  drive-strength: DSE=<enum_idx>
32  input-enable: SION=1 (in SW_MUX_CTL_PAD register)
33
34  If only required properties are supplied, the pin will have the following
35  configuration:
36  HYS=0,
37  PE=0
38  PUE=0
39  ODE=0,
40  SRE=<slew-rate>,
41  DSE=<drive-strength>,
42  SION=0,
43
44
45compatible: "nxp,imx8mp-pinctrl"
46
47include: base.yaml
48
49child-binding:
50  description: iMX pin controller pin group
51  child-binding:
52    description: |
53      iMX pin controller pin configuration node.
54
55    include:
56      - name: pincfg-node.yaml
57        property-allowlist:
58          - input-schmitt-enable
59          - drive-open-drain
60          - input-enable
61          - bias-pull-up
62          - bias-pull-down
63
64    properties:
65      pinmux:
66        required: true
67        type: phandles
68        description: |
69          Pin mux selections for this group. See the soc level iomuxc DTSI file
70          for a defined list of these options.
71      drive-strength:
72        required: true
73        type: string
74        enum:
75          - "x1"
76          - "x4"
77          - "x2"
78          - "x6"
79        description: |
80          Pin output drive strength. Sets the DSE field in the IOMUXC peripheral.
81          00 X1- low drive strength
82          01 X4- high drive strength
83          10 X2- medium drive strength
84          11 X6- max drive strength
85      slew-rate:
86        required: true
87        type: string
88        enum:
89          - "slow"
90          - "fast"
91        description: |
92          Select slew rate for pin. Corresponds to SRE field in IOMUXC peripheral
93          0 SLOWSlow Frequency Slew Rate
94          1 FASTFast Frequency Slew Rate
95