Merge tag 'timers-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / gpio / snps,dw-apb-gpio.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/gpio/snps,dw-apb-gpio.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Synopsys DesignWare APB GPIO controller
8
9 description: |
10   Synopsys DesignWare GPIO controllers have a configurable number of ports,
11   each of which are intended to be represented as child nodes with the generic
12   GPIO-controller properties as desribed in this bindings file.
13
14 maintainers:
15   - Hoan Tran <hoan@os.amperecomputing.com>
16   - Serge Semin <fancer.lancer@gmail.com>
17
18 properties:
19   $nodename:
20     pattern: "^gpio@[0-9a-f]+$"
21
22   compatible:
23     const: snps,dw-apb-gpio
24
25   "#address-cells":
26     const: 1
27
28   "#size-cells":
29     const: 0
30
31   reg:
32     maxItems: 1
33
34   clocks:
35     minItems: 1
36     items:
37       - description: APB interface clock source
38       - description: DW GPIO debounce reference clock source
39
40   clock-names:
41     minItems: 1
42     items:
43       - const: bus
44       - const: db
45
46   resets:
47     maxItems: 1
48
49 patternProperties:
50   "^gpio-(port|controller)@[0-9a-f]+$":
51     type: object
52     properties:
53       compatible:
54         const: snps,dw-apb-gpio-port
55
56       reg:
57         maxItems: 1
58
59       gpio-controller: true
60
61       '#gpio-cells':
62         const: 2
63
64       ngpios:
65         default: 32
66         minimum: 1
67         maximum: 32
68
69       snps,nr-gpios:
70         description: The number of GPIO pins exported by the port.
71         deprecated: true
72         $ref: /schemas/types.yaml#/definitions/uint32
73         default: 32
74         minimum: 1
75         maximum: 32
76
77       interrupts:
78         description: |
79           The interrupts to the parent controller raised when GPIOs generate
80           the interrupts. If the controller provides one combined interrupt
81           for all GPIOs, specify a single interrupt. If the controller provides
82           one interrupt for each GPIO, provide a list of interrupts that
83           correspond to each of the GPIO pins.
84         minItems: 1
85         maxItems: 32
86
87       interrupt-controller: true
88
89       '#interrupt-cells':
90         const: 2
91
92     required:
93       - compatible
94       - reg
95       - gpio-controller
96       - '#gpio-cells'
97
98     dependencies:
99       interrupt-controller: [ interrupts ]
100
101     additionalProperties: false
102
103 additionalProperties: false
104
105 required:
106   - compatible
107   - reg
108   - "#address-cells"
109   - "#size-cells"
110
111 examples:
112   - |
113     gpio: gpio@20000 {
114       compatible = "snps,dw-apb-gpio";
115       reg = <0x20000 0x1000>;
116       #address-cells = <1>;
117       #size-cells = <0>;
118
119       porta: gpio-port@0 {
120         compatible = "snps,dw-apb-gpio-port";
121         reg = <0>;
122         gpio-controller;
123         #gpio-cells = <2>;
124         snps,nr-gpios = <8>;
125         interrupt-controller;
126         #interrupt-cells = <2>;
127         interrupt-parent = <&vic1>;
128         interrupts = <0>;
129       };
130
131       portb: gpio-port@1 {
132         compatible = "snps,dw-apb-gpio-port";
133         reg = <1>;
134         gpio-controller;
135         #gpio-cells = <2>;
136         snps,nr-gpios = <8>;
137       };
138     };
139 ...