1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/gpio/loongson,ls-gpio.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Loongson GPIO controller.
8
9maintainers:
10  - Yinbo Zhu <zhuyinbo@loongson.cn>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - loongson,ls2k-gpio
17          - loongson,ls2k0500-gpio0
18          - loongson,ls2k0500-gpio1
19          - loongson,ls2k2000-gpio0
20          - loongson,ls2k2000-gpio1
21          - loongson,ls2k2000-gpio2
22          - loongson,ls3a5000-gpio
23          - loongson,ls3a6000-gpio  # Loongson-3A6000 node GPIO
24          - loongson,ls7a-gpio
25          - loongson,ls7a2000-gpio1 # LS7A2000 chipset GPIO
26          - loongson,ls7a2000-gpio2 # LS7A2000 ACPI GPIO
27      - items:
28          - const: loongson,ls2k1000-gpio
29          - const: loongson,ls2k-gpio
30      - items:
31          - const: loongson,ls7a1000-gpio
32          - const: loongson,ls7a-gpio
33
34  reg:
35    maxItems: 1
36
37  ngpios:
38    minimum: 1
39    maximum: 64
40
41  "#gpio-cells":
42    const: 2
43
44  gpio-controller: true
45
46  gpio-ranges: true
47
48  interrupts:
49    minItems: 1
50    maxItems: 64
51
52required:
53  - compatible
54  - reg
55  - ngpios
56  - "#gpio-cells"
57  - gpio-controller
58  - gpio-ranges
59  - interrupts
60
61additionalProperties: false
62
63examples:
64  - |
65    #include <dt-bindings/interrupt-controller/irq.h>
66
67    gpio0: gpio@1fe00500 {
68      compatible = "loongson,ls2k1000-gpio", "loongson,ls2k-gpio";
69      reg = <0x1fe00500 0x38>;
70      ngpios = <64>;
71      #gpio-cells = <2>;
72      gpio-controller;
73      gpio-ranges = <&pctrl 0 0 15>,
74                    <&pctrl 16 16 15>,
75                    <&pctrl 32 32 10>,
76                    <&pctrl 44 44 20>;
77      interrupt-parent = <&liointc1>;
78      interrupts = <28 IRQ_TYPE_LEVEL_LOW>,
79                   <29 IRQ_TYPE_LEVEL_LOW>,
80                   <30 IRQ_TYPE_LEVEL_LOW>,
81                   <30 IRQ_TYPE_LEVEL_LOW>,
82                   <26 IRQ_TYPE_LEVEL_LOW>,
83                   <26 IRQ_TYPE_LEVEL_LOW>,
84                   <26 IRQ_TYPE_LEVEL_LOW>,
85                   <26 IRQ_TYPE_LEVEL_LOW>,
86                   <26 IRQ_TYPE_LEVEL_LOW>,
87                   <26 IRQ_TYPE_LEVEL_LOW>,
88                   <26 IRQ_TYPE_LEVEL_LOW>,
89                   <26 IRQ_TYPE_LEVEL_LOW>,
90                   <26 IRQ_TYPE_LEVEL_LOW>,
91                   <26 IRQ_TYPE_LEVEL_LOW>,
92                   <26 IRQ_TYPE_LEVEL_LOW>,
93                   <>,
94                   <26 IRQ_TYPE_LEVEL_LOW>,
95                   <26 IRQ_TYPE_LEVEL_LOW>,
96                   <26 IRQ_TYPE_LEVEL_LOW>,
97                   <26 IRQ_TYPE_LEVEL_LOW>,
98                   <26 IRQ_TYPE_LEVEL_LOW>,
99                   <26 IRQ_TYPE_LEVEL_LOW>,
100                   <26 IRQ_TYPE_LEVEL_LOW>,
101                   <26 IRQ_TYPE_LEVEL_LOW>,
102                   <26 IRQ_TYPE_LEVEL_LOW>,
103                   <26 IRQ_TYPE_LEVEL_LOW>,
104                   <26 IRQ_TYPE_LEVEL_LOW>,
105                   <26 IRQ_TYPE_LEVEL_LOW>,
106                   <26 IRQ_TYPE_LEVEL_LOW>,
107                   <26 IRQ_TYPE_LEVEL_LOW>,
108                   <26 IRQ_TYPE_LEVEL_LOW>,
109                   <26 IRQ_TYPE_LEVEL_LOW>,
110                   <27 IRQ_TYPE_LEVEL_LOW>,
111                   <27 IRQ_TYPE_LEVEL_LOW>,
112                   <27 IRQ_TYPE_LEVEL_LOW>,
113                   <27 IRQ_TYPE_LEVEL_LOW>,
114                   <27 IRQ_TYPE_LEVEL_LOW>,
115                   <>,
116                   <27 IRQ_TYPE_LEVEL_LOW>,
117                   <27 IRQ_TYPE_LEVEL_LOW>,
118                   <27 IRQ_TYPE_LEVEL_LOW>,
119                   <27 IRQ_TYPE_LEVEL_LOW>,
120                   <>,
121                   <>,
122                   <27 IRQ_TYPE_LEVEL_LOW>,
123                   <27 IRQ_TYPE_LEVEL_LOW>,
124                   <27 IRQ_TYPE_LEVEL_LOW>,
125                   <27 IRQ_TYPE_LEVEL_LOW>,
126                   <27 IRQ_TYPE_LEVEL_LOW>,
127                   <27 IRQ_TYPE_LEVEL_LOW>,
128                   <27 IRQ_TYPE_LEVEL_LOW>,
129                   <27 IRQ_TYPE_LEVEL_LOW>,
130                   <27 IRQ_TYPE_LEVEL_LOW>,
131                   <27 IRQ_TYPE_LEVEL_LOW>,
132                   <27 IRQ_TYPE_LEVEL_LOW>,
133                   <27 IRQ_TYPE_LEVEL_LOW>,
134                   <27 IRQ_TYPE_LEVEL_LOW>,
135                   <27 IRQ_TYPE_LEVEL_LOW>,
136                   <27 IRQ_TYPE_LEVEL_LOW>,
137                   <27 IRQ_TYPE_LEVEL_LOW>,
138                   <27 IRQ_TYPE_LEVEL_LOW>,
139                   <27 IRQ_TYPE_LEVEL_LOW>,
140                   <27 IRQ_TYPE_LEVEL_LOW>,
141                   <27 IRQ_TYPE_LEVEL_LOW>;
142    };
143