xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/fsl,imx7ulp-iomuxc1.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/fsl,imx7ulp-iomuxc1.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadottitle: Freescale i.MX7ULP IOMUX Controller
8*ae5de77eSEmmanuel Vadot
9*ae5de77eSEmmanuel Vadotdescription: |
10*ae5de77eSEmmanuel Vadot  i.MX 7ULP has three IOMUXC instances: IOMUXC0 for M4 ports, IOMUXC1 for A7
11*ae5de77eSEmmanuel Vadot  ports and IOMUXC DDR for DDR interface.
12*ae5de77eSEmmanuel Vadot
13*ae5de77eSEmmanuel Vadot  Note: This binding doc is only for the IOMUXC1 support in A7 Domain and it
14*ae5de77eSEmmanuel Vadot  only supports generic pin config.
15*ae5de77eSEmmanuel Vadot
16*ae5de77eSEmmanuel Vadot  Please refer to fsl,imx-pinctrl.txt in this directory for common binding
17*ae5de77eSEmmanuel Vadot  part and usage.
18*ae5de77eSEmmanuel Vadot
19*ae5de77eSEmmanuel Vadotmaintainers:
20*ae5de77eSEmmanuel Vadot  - Frank Li <Frank.Li@nxp.com>
21*ae5de77eSEmmanuel Vadot
22*ae5de77eSEmmanuel Vadotproperties:
23*ae5de77eSEmmanuel Vadot  compatible:
24*ae5de77eSEmmanuel Vadot    const: fsl,imx7ulp-iomuxc1
25*ae5de77eSEmmanuel Vadot
26*ae5de77eSEmmanuel Vadot  reg:
27*ae5de77eSEmmanuel Vadot    maxItems: 1
28*ae5de77eSEmmanuel Vadot
29*ae5de77eSEmmanuel VadotpatternProperties:
30*ae5de77eSEmmanuel Vadot  'grp$':
31*ae5de77eSEmmanuel Vadot    type: object
32*ae5de77eSEmmanuel Vadot    description:
33*ae5de77eSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
34*ae5de77eSEmmanuel Vadot      Client device subnodes use below standard properties.
35*ae5de77eSEmmanuel Vadot
36*ae5de77eSEmmanuel Vadot    properties:
37*ae5de77eSEmmanuel Vadot      fsl,pins:
38*ae5de77eSEmmanuel Vadot        description:
39*ae5de77eSEmmanuel Vadot          Each entry consists of 5 integers which represents the mux
40*ae5de77eSEmmanuel Vadot          and config setting for one pin. The first 4 integers
41*ae5de77eSEmmanuel Vadot          <mux_conf_reg input_reg mux_mode input_val> are specified
42*ae5de77eSEmmanuel Vadot          using a PIN_FUNC_ID macro, which can be found in
43*ae5de77eSEmmanuel Vadot          imx7ulp-pinfunc.h in the device tree source folder.
44*ae5de77eSEmmanuel Vadot          The last integer CONFIG is the pad setting value like
45*ae5de77eSEmmanuel Vadot          pull-up on this pin.
46*ae5de77eSEmmanuel Vadot
47*ae5de77eSEmmanuel Vadot          Please refer to i.MX7ULP Reference Manual for detailed
48*ae5de77eSEmmanuel Vadot          CONFIG settings.
49*ae5de77eSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-matrix
50*ae5de77eSEmmanuel Vadot        items:
51*ae5de77eSEmmanuel Vadot          items:
52*ae5de77eSEmmanuel Vadot            - description: |
53*ae5de77eSEmmanuel Vadot                "mux_conf_reg" indicates the offset of mux register.
54*ae5de77eSEmmanuel Vadot            - description: |
55*ae5de77eSEmmanuel Vadot                "input_reg" indicates the offset of select input register.
56*ae5de77eSEmmanuel Vadot            - description: |
57*ae5de77eSEmmanuel Vadot                "mux_mode" indicates the mux value to be applied.
58*ae5de77eSEmmanuel Vadot            - description: |
59*ae5de77eSEmmanuel Vadot                "input_val" indicates the select input value to be applied.
60*ae5de77eSEmmanuel Vadot            - description: |
61*ae5de77eSEmmanuel Vadot                CONFIG bits definition:
62*ae5de77eSEmmanuel Vadot                  PAD_CTL_OBE           (1 << 17)
63*ae5de77eSEmmanuel Vadot                  PAD_CTL_IBE           (1 << 16)
64*ae5de77eSEmmanuel Vadot                  PAD_CTL_LK            (1 << 16)
65*ae5de77eSEmmanuel Vadot                  PAD_CTL_DSE_HI        (1 << 6)
66*ae5de77eSEmmanuel Vadot                  PAD_CTL_DSE_STD       (0 << 6)
67*ae5de77eSEmmanuel Vadot                  PAD_CTL_ODE           (1 << 5)
68*ae5de77eSEmmanuel Vadot                  PAD_CTL_PUSH_PULL     (0 << 5)
69*ae5de77eSEmmanuel Vadot                  PAD_CTL_SRE_SLOW      (1 << 2)
70*ae5de77eSEmmanuel Vadot                  PAD_CTL_SRE_STD       (0 << 2)
71*ae5de77eSEmmanuel Vadot                  PAD_CTL_PE            (1 << 0)
72*ae5de77eSEmmanuel Vadot
73*ae5de77eSEmmanuel Vadot    required:
74*ae5de77eSEmmanuel Vadot      - fsl,pins
75*ae5de77eSEmmanuel Vadot
76*ae5de77eSEmmanuel Vadot    additionalProperties: false
77*ae5de77eSEmmanuel Vadot
78*ae5de77eSEmmanuel Vadotrequired:
79*ae5de77eSEmmanuel Vadot  - compatible
80*ae5de77eSEmmanuel Vadot  - reg
81*ae5de77eSEmmanuel Vadot
82*ae5de77eSEmmanuel VadotallOf:
83*ae5de77eSEmmanuel Vadot  - $ref: pinctrl.yaml#
84*ae5de77eSEmmanuel Vadot
85*ae5de77eSEmmanuel VadotunevaluatedProperties: false
86*ae5de77eSEmmanuel Vadot
87*ae5de77eSEmmanuel Vadotexamples:
88*ae5de77eSEmmanuel Vadot  - |
89*ae5de77eSEmmanuel Vadot    pinctrl@40ac0000 {
90*ae5de77eSEmmanuel Vadot        compatible = "fsl,imx7ulp-iomuxc1";
91*ae5de77eSEmmanuel Vadot        reg = <0x40ac0000 0x1000>;
92*ae5de77eSEmmanuel Vadot
93*ae5de77eSEmmanuel Vadot        lpuart4grp {
94*ae5de77eSEmmanuel Vadot            fsl,pins = <
95*ae5de77eSEmmanuel Vadot                0x000c 0x0248 0x4 0x1 0x1
96*ae5de77eSEmmanuel Vadot                0x0008 0x024c 0x4 0x1 0x1
97*ae5de77eSEmmanuel Vadot            >;
98*ae5de77eSEmmanuel Vadot        };
99*ae5de77eSEmmanuel Vadot    };
100