79 lines
3.4 KiB
YAML
79 lines
3.4 KiB
YAML
# 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 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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|