xref: /linux/Documentation/devicetree/bindings/gpio/fsl-imx-gpio.yaml (revision d53b8e36925256097a08d7cb749198d85cbf9b2b)
1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/gpio/fsl-imx-gpio.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale i.MX/MXC GPIO controller
8
9maintainers:
10  - Shawn Guo <shawnguo@kernel.org>
11  - Sascha Hauer <s.hauer@pengutronix.de>
12  - Fabio Estevam <festevam@gmail.com>
13
14properties:
15  compatible:
16    oneOf:
17      - enum:
18          - fsl,imx1-gpio
19          - fsl,imx21-gpio
20          - fsl,imx31-gpio
21          - fsl,imx35-gpio
22          - fsl,imx7d-gpio
23      - items:
24          - enum:
25              - fsl,imx27-gpio
26          - const: fsl,imx21-gpio
27      - items:
28          - const: fsl,imx35-gpio
29          - const: fsl,imx31-gpio
30      - items:
31          - enum:
32              - fsl,imx25-gpio
33          - const: fsl,imx35-gpio
34      - items:
35          - enum:
36              - fsl,imx50-gpio
37              - fsl,imx51-gpio
38              - fsl,imx53-gpio
39              - fsl,imx6q-gpio
40              - fsl,imx6sl-gpio
41              - fsl,imx6sll-gpio
42              - fsl,imx6sx-gpio
43              - fsl,imx6ul-gpio
44              - fsl,imx7d-gpio
45              - fsl,imx8dxl-gpio
46              - fsl,imx8mm-gpio
47              - fsl,imx8mn-gpio
48              - fsl,imx8mp-gpio
49              - fsl,imx8mq-gpio
50              - fsl,imx8qm-gpio
51              - fsl,imx8qxp-gpio
52              - fsl,imxrt1050-gpio
53              - fsl,imxrt1170-gpio
54          - const: fsl,imx35-gpio
55
56  reg:
57    maxItems: 1
58
59  interrupts:
60    description: |
61      Should be the port interrupt shared by all 32 pins, if one number.
62      If two numbers, the first one is the interrupt shared by low 16 pins
63      and the second one is for high 16 pins.
64    minItems: 1
65    maxItems: 2
66
67  interrupt-controller: true
68
69  "#interrupt-cells":
70    const: 2
71
72  clocks:
73    maxItems: 1
74
75  "#gpio-cells":
76    const: 2
77
78  gpio-controller: true
79  gpio-line-names: true
80  gpio-ranges: true
81
82  power-domains:
83    maxItems: 1
84
85patternProperties:
86  "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
87    type: object
88    properties:
89      gpio-hog: true
90      gpios: true
91      input: true
92      output-high: true
93      output-low: true
94      line-name: true
95
96    required:
97      - gpio-hog
98      - gpios
99
100    additionalProperties: false
101
102required:
103  - compatible
104  - reg
105  - interrupts
106  - interrupt-controller
107  - "#interrupt-cells"
108  - "#gpio-cells"
109  - gpio-controller
110
111additionalProperties: false
112
113examples:
114  - |
115    gpio0: gpio@73f84000 {
116        compatible = "fsl,imx35-gpio";
117        reg = <0x73f84000 0x4000>;
118        interrupts = <50 51>;
119        gpio-controller;
120        #gpio-cells = <2>;
121        interrupt-controller;
122        #interrupt-cells = <2>;
123    };
124
125...
126