xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/fsl,imx7d-pinctrl.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2d5b0e70fSEmmanuel Vadot%YAML 1.2
3d5b0e70fSEmmanuel Vadot---
4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/fsl,imx7d-pinctrl.yaml#
5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6d5b0e70fSEmmanuel Vadot
7d5b0e70fSEmmanuel Vadottitle: Freescale IMX7D IOMUX Controller
8d5b0e70fSEmmanuel Vadot
9d5b0e70fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Dong Aisheng <aisheng.dong@nxp.com>
11d5b0e70fSEmmanuel Vadot
12d5b0e70fSEmmanuel Vadotdescription:
13d5b0e70fSEmmanuel Vadot  Please refer to fsl,imx-pinctrl.txt and pinctrl-bindings.txt in this directory
14d5b0e70fSEmmanuel Vadot  for common binding part and usage.
15d5b0e70fSEmmanuel Vadot
16d5b0e70fSEmmanuel Vadotproperties:
17d5b0e70fSEmmanuel Vadot  compatible:
18d5b0e70fSEmmanuel Vadot    oneOf:
19d5b0e70fSEmmanuel Vadot      - enum:
20d5b0e70fSEmmanuel Vadot          - fsl,imx7d-iomuxc
21d5b0e70fSEmmanuel Vadot          - fsl,imx7d-iomuxc-lpsr
22d5b0e70fSEmmanuel Vadot
23d5b0e70fSEmmanuel Vadot  reg:
24d5b0e70fSEmmanuel Vadot    maxItems: 1
25d5b0e70fSEmmanuel Vadot
26d5b0e70fSEmmanuel Vadot  fsl,input-sel:
27d5b0e70fSEmmanuel Vadot    description:
28d5b0e70fSEmmanuel Vadot      phandle for main iomuxc controller which shares the input select
29d5b0e70fSEmmanuel Vadot      register for daisy chain settings.
30d5b0e70fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
31d5b0e70fSEmmanuel Vadot
32d5b0e70fSEmmanuel Vadot# Client device subnode's properties
33d5b0e70fSEmmanuel VadotpatternProperties:
34d5b0e70fSEmmanuel Vadot  'grp$':
35d5b0e70fSEmmanuel Vadot    type: object
36d5b0e70fSEmmanuel Vadot    description:
37d5b0e70fSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
38d5b0e70fSEmmanuel Vadot      Client device subnodes use below standard properties.
39d5b0e70fSEmmanuel Vadot
40d5b0e70fSEmmanuel Vadot    properties:
41d5b0e70fSEmmanuel Vadot      fsl,pins:
42d5b0e70fSEmmanuel Vadot        description:
43d5b0e70fSEmmanuel Vadot          each entry consists of 6 integers and represents the mux and config
44d5b0e70fSEmmanuel Vadot          setting for one pin. The first 5 integers <mux_reg conf_reg input_reg
45d5b0e70fSEmmanuel Vadot          mux_val input_val> are specified using a PIN_FUNC_ID macro, which can
46d5b0e70fSEmmanuel Vadot          be found in <arch/arm/boot/dts/imx7d-pinfunc.h>. The last integer
47d5b0e70fSEmmanuel Vadot          CONFIG is the pad setting value like pull-up on this pin. Please
48d5b0e70fSEmmanuel Vadot          refer to i.MX7D Reference Manual for detailed CONFIG settings.
49d5b0e70fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32-matrix
50d5b0e70fSEmmanuel Vadot        items:
51d5b0e70fSEmmanuel Vadot          items:
52d5b0e70fSEmmanuel Vadot            - description: |
53d5b0e70fSEmmanuel Vadot                "mux_reg" indicates the offset of mux register.
54d5b0e70fSEmmanuel Vadot            - description: |
55d5b0e70fSEmmanuel Vadot                "conf_reg" indicates the offset of pad configuration register.
56d5b0e70fSEmmanuel Vadot            - description: |
57d5b0e70fSEmmanuel Vadot                "input_reg" indicates the offset of select input register.
58d5b0e70fSEmmanuel Vadot            - description: |
59d5b0e70fSEmmanuel Vadot                "mux_val" indicates the mux value to be applied.
60d5b0e70fSEmmanuel Vadot            - description: |
61d5b0e70fSEmmanuel Vadot                "input_val" indicates the select input value to be applied.
62d5b0e70fSEmmanuel Vadot            - description: |
63d5b0e70fSEmmanuel Vadot                "pad_setting" indicates the pad configuration value to be applied.
64d5b0e70fSEmmanuel Vadot
65d5b0e70fSEmmanuel Vadot    required:
66d5b0e70fSEmmanuel Vadot      - fsl,pins
67d5b0e70fSEmmanuel Vadot
68d5b0e70fSEmmanuel Vadot    additionalProperties: false
69d5b0e70fSEmmanuel Vadot
70d5b0e70fSEmmanuel VadotallOf:
71*fac71e4eSEmmanuel Vadot  - $ref: pinctrl.yaml#
72d5b0e70fSEmmanuel Vadot
73d5b0e70fSEmmanuel Vadotrequired:
74d5b0e70fSEmmanuel Vadot  - compatible
75d5b0e70fSEmmanuel Vadot  - reg
76d5b0e70fSEmmanuel Vadot
77d5b0e70fSEmmanuel Vadotif:
78d5b0e70fSEmmanuel Vadot  properties:
79d5b0e70fSEmmanuel Vadot    compatible:
80d5b0e70fSEmmanuel Vadot      contains:
81d5b0e70fSEmmanuel Vadot        enum:
82d5b0e70fSEmmanuel Vadot          - fsl,imx7d-iomuxc-lpsr
83d5b0e70fSEmmanuel Vadot
84d5b0e70fSEmmanuel Vadotthen:
85d5b0e70fSEmmanuel Vadot  required:
86d5b0e70fSEmmanuel Vadot    - fsl,input-sel
87d5b0e70fSEmmanuel Vadot
88d5b0e70fSEmmanuel VadotadditionalProperties: false
89d5b0e70fSEmmanuel Vadot
90d5b0e70fSEmmanuel Vadotexamples:
91d5b0e70fSEmmanuel Vadot  - |
92d5b0e70fSEmmanuel Vadot    iomuxc: pinctrl@30330000 {
93d5b0e70fSEmmanuel Vadot      compatible = "fsl,imx7d-iomuxc";
94d5b0e70fSEmmanuel Vadot      reg = <0x30330000 0x10000>;
95d5b0e70fSEmmanuel Vadot
96d5b0e70fSEmmanuel Vadot      pinctrl_uart5: uart5grp {
97d5b0e70fSEmmanuel Vadot        fsl,pins =
98d5b0e70fSEmmanuel Vadot          <0x0160 0x03D0 0x0714 0x1 0x0	0x7e>,
99d5b0e70fSEmmanuel Vadot          <0x0164 0x03D4 0x0000 0x1 0x0	0x76>;
100d5b0e70fSEmmanuel Vadot      };
101d5b0e70fSEmmanuel Vadot    };
102d5b0e70fSEmmanuel Vadot  - |
103d5b0e70fSEmmanuel Vadot    iomuxc_lpsr: pinctrl@302c0000 {
104d5b0e70fSEmmanuel Vadot      compatible = "fsl,imx7d-iomuxc-lpsr";
105d5b0e70fSEmmanuel Vadot      reg = <0x302c0000 0x10000>;
106d5b0e70fSEmmanuel Vadot      fsl,input-sel = <&iomuxc>;
107d5b0e70fSEmmanuel Vadot
108d5b0e70fSEmmanuel Vadot      pinctrl_gpio_lpsr: gpio1-grp {
109d5b0e70fSEmmanuel Vadot          fsl,pins =
110d5b0e70fSEmmanuel Vadot            <0x0008 0x0038 0x0000 0x0 0x0	0x59>,
111d5b0e70fSEmmanuel Vadot            <0x000C 0x003C 0x0000 0x0 0x0	0x59>;
112d5b0e70fSEmmanuel Vadot        };
113d5b0e70fSEmmanuel Vadot    };
114