1# Copyright (c) 2022 NXP 2# SPDX-License-Identifier: Apache-2.0 3 4description: | 5 This compatible binding should be applied to the device's iomuxc DTS node. 6 the DTS node will be populated with all pinmux options for the specific SOC. 7 These options can then be used in a pinctrl node with the "nxp,mcux-rt-pinctrl" 8 compatible string to define pin groups. 9 10 The user should not edit the bindings defined within this node to make pinmux 11 selections, but should instead edit the pinctrl groups for their board. 12 13compatible: "nxp,imx-iomuxc" 14 15include: 16 - name: base.yaml 17 18properties: 19 reg: 20 required: true 21 22child-binding: 23 description: MCUX RT pin mux option 24 properties: 25 pinmux: 26 required: true 27 type: array 28 description: | 29 An array of values defining the pin mux selection, in the following format: 30 <mux_register, mux_val, input_reg, daisy_val, cfg_reg> 31 mux_register: register that will be written to make mux selection 32 mux_val: value to write to mux_register 33 input_reg: peripheral register that will direct peripheral signal to pin 34 daisy_val: value to write to input_reg 35 cfg_reg: register that will configure pin pull, drive strength, and open drain 36 gpr: 37 type: array 38 description: | 39 An array of values defining the GPR bit write required, if one exists. 40 Some IOMUXC options require writing to an IOMUXC_GPR register to select 41 them. This array has the following elements: 42 <gpr_reg, gpr_shift, gpr_val> 43 gpr_reg: GPR register address to write to 44 gpr_shift: shift to apply to value before writing 45 gpr_val: value to write 46 # Note: the below properties should ideally be an enum. However, the pinctrl driver 47 # will need to initialize the pin configuration register differently based on 48 # the type of register provided, and it does so using the IF_ENABLED macro. This 49 # macro cannot work using preprocessor equality statements (like DT_ENUM_IDX(prop) == val), 50 # so we cannot use an enum and instead must use individual properties. 51 pin-pue: 52 type: boolean 53 description: | 54 RT11xx parts have multiple types of IOMUXC registers defined, with 55 different register layouts. This property can be set to indicate 56 to the pinctrl driver the type of register this pinmux represents, 57 and should not be modified by the user. 58 pin-pdrv: 59 type: boolean 60 description: | 61 RT11xx parts have multiple types of IOMUXC registers defined, with 62 different register layouts. This property can be set to indicate 63 to the pinctrl driver the type of register this pinmux represents, 64 and should not be modified by the user. 65 pin-lpsr: 66 type: boolean 67 description: | 68 RT11xx parts have multiple types of IOMUXC registers defined, with 69 different register layouts. This property can be set to indicate 70 to the pinctrl driver the type of register this pinmux represents, 71 and should not be modified by the user. 72 pin-snvs: 73 type: boolean 74 description: | 75 RT11xx parts have multiple types of IOMUXC registers defined, with 76 different register layouts. This property can be set to indicate 77 to the pinctrl driver the type of register this pinmux represents, 78 and should not be modified by the user. 79