blob: a21328c926510bbd9e15a6276059d91e35745538 [file] [log] [blame]
# Copyright (c) 2022 NXP
# SPDX-License-Identifier: Apache-2.0
description: |
This compatible binding should be applied to the device's iomuxc DTS node.
the DTS node will be populated with all pinmux options for the specific SOC.
These options can then be used in a pinctrl node with the "nxp,mcux-rt-pinctrl"
compatible string to define pin groups.
The user should not edit the bindings defined within this node to make pinmux
selections, but should instead edit the pinctrl groups for their board.
compatible: "nxp,imx-iomuxc"
include:
- name: base.yaml
properties:
reg:
required: true
child-binding:
description: MCUX RT pin mux option
properties:
pinmux:
required: true
type: array
description: |
An array of values defining the pin mux selection, in the following format:
<mux_register, mux_val, input_reg, daisy_val, cfg_reg>
mux_register: register that will be written to to make mux selection
mux_val: value to write to mux_register
input_reg: peripheral register that will direct peripheral signal to pin
daisy_val: value to write to input_reg
cfg_reg: register that will configure pin pull, drive strength, and open drain
gpr:
required: false
type: array
description: |
An array of values defining the GPR bit write required, if one exists.
Some IOMUXC options require writing to an IOMUXC_GPR register to select
them. This array has the following elements:
<gpr_reg, gpr_shift, gpr_val>
gpr_reg: GPR register address to write to
gpr_shift: shift to apply to value before writing
gpr_val: value to write
# Note: the below properties should ideally be an enum. However, the pinctrl driver
# will need to initialize the pin configuration register differently based on
# the type of register provided, and it does so using the IF_ENABLED macro. This
# macro cannot work using preprocessor equality statements (like DT_ENUM_IDX(prop) == val),
# so we cannot use an enum and instead must use individual properties.
pin-pue:
required: false
type: boolean
description: |
RT11xx parts have multiple types of IOMUXC registers defined, with
different register layouts. This property can be set to indicate
to the pinctrl driver the type of register this pinmux represents,
and should not be modified by the user.
pin-pdrv:
required: false
type: boolean
description: |
RT11xx parts have multiple types of IOMUXC registers defined, with
different register layouts. This property can be set to indicate
to the pinctrl driver the type of register this pinmux represents,
and should not be modified by the user.
pin-lpsr:
required: false
type: boolean
description: |
RT11xx parts have multiple types of IOMUXC registers defined, with
different register layouts. This property can be set to indicate
to the pinctrl driver the type of register this pinmux represents,
and should not be modified by the user.
pin-snvs:
required: false
type: boolean
description: |
RT11xx parts have multiple types of IOMUXC registers defined, with
different register layouts. This property can be set to indicate
to the pinctrl driver the type of register this pinmux represents,
and should not be modified by the user.