# 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:
      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.
