xref: /freebsd/sys/contrib/device-tree/Bindings/gpio/fsl-imx-gpio.yaml (revision 43a5ec4eb41567cc92586503212743d89686d78f)
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  - Anson Huang <Anson.Huang@nxp.com>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - fsl,imx1-gpio
17          - fsl,imx21-gpio
18          - fsl,imx31-gpio
19          - fsl,imx35-gpio
20          - fsl,imx7d-gpio
21      - items:
22          - const: fsl,imx35-gpio
23          - const: fsl,imx31-gpio
24      - items:
25          - enum:
26              - fsl,imx50-gpio
27              - fsl,imx51-gpio
28              - fsl,imx53-gpio
29              - fsl,imx6q-gpio
30              - fsl,imx6sl-gpio
31              - fsl,imx6sll-gpio
32              - fsl,imx6sx-gpio
33              - fsl,imx6ul-gpio
34              - fsl,imx7d-gpio
35              - fsl,imx8mm-gpio
36              - fsl,imx8mn-gpio
37              - fsl,imx8mp-gpio
38              - fsl,imx8mq-gpio
39              - fsl,imx8qxp-gpio
40          - const: fsl,imx35-gpio
41
42  reg:
43    maxItems: 1
44
45  interrupts:
46    description: |
47      Should be the port interrupt shared by all 32 pins, if one number.
48      If two numbers, the first one is the interrupt shared by low 16 pins
49      and the second one is for high 16 pins.
50    minItems: 1
51    maxItems: 2
52
53  interrupt-controller: true
54
55  "#interrupt-cells":
56    const: 2
57
58  clocks:
59    maxItems: 1
60
61  "#gpio-cells":
62    const: 2
63
64  gpio-controller: true
65  gpio-line-names: true
66  gpio-ranges: true
67
68  power-domains:
69    maxItems: 1
70
71patternProperties:
72  "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
73    type: object
74    properties:
75      gpio-hog: true
76      gpios: true
77      input: true
78      output-high: true
79      output-low: true
80      line-name: true
81
82    required:
83      - gpio-hog
84      - gpios
85
86    additionalProperties: false
87
88required:
89  - compatible
90  - reg
91  - interrupts
92  - interrupt-controller
93  - "#interrupt-cells"
94  - "#gpio-cells"
95  - gpio-controller
96
97additionalProperties: false
98
99examples:
100  - |
101    gpio0: gpio@73f84000 {
102        compatible = "fsl,imx35-gpio";
103        reg = <0x73f84000 0x4000>;
104        interrupts = <50 51>;
105        gpio-controller;
106        #gpio-cells = <2>;
107        interrupt-controller;
108        #interrupt-cells = <2>;
109    };
110
111...
112