xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/renesas,rzg2l-irqc.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b97ee269SEmmanuel Vadot%YAML 1.2
3b97ee269SEmmanuel Vadot---
4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/renesas,rzg2l-irqc.yaml#
5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
7b97ee269SEmmanuel Vadottitle: Renesas RZ/G2L (and alike SoC's) Interrupt Controller (IA55)
8b97ee269SEmmanuel Vadot
9b97ee269SEmmanuel Vadotmaintainers:
10b97ee269SEmmanuel Vadot  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
11b97ee269SEmmanuel Vadot  - Geert Uytterhoeven <geert+renesas@glider.be>
12b97ee269SEmmanuel Vadot
13b97ee269SEmmanuel Vadotdescription: |
14b97ee269SEmmanuel Vadot  IA55 performs various interrupt controls including synchronization for the external
15b97ee269SEmmanuel Vadot  interrupts of NMI, IRQ, and GPIOINT and the interrupts of the built-in peripheral
16b97ee269SEmmanuel Vadot  interrupts output by each IP. And it notifies the interrupt to the GIC
17b97ee269SEmmanuel Vadot    - IRQ sense select for 8 external interrupts, mapped to 8 GIC SPI interrupts
18b97ee269SEmmanuel Vadot    - GPIO pins used as external interrupt input pins, mapped to 32 GIC SPI interrupts
19b97ee269SEmmanuel Vadot    - NMI edge select (NMI is not treated as NMI exception and supports fall edge and
20b97ee269SEmmanuel Vadot      stand-up edge detection interrupts)
21b97ee269SEmmanuel Vadot
22b97ee269SEmmanuel Vadotproperties:
23b97ee269SEmmanuel Vadot  compatible:
24b97ee269SEmmanuel Vadot    items:
25b97ee269SEmmanuel Vadot      - enum:
26aa1a8ff2SEmmanuel Vadot          - renesas,r9a07g043u-irqc   # RZ/G2UL
27b97ee269SEmmanuel Vadot          - renesas,r9a07g044-irqc    # RZ/G2{L,LC}
28b97ee269SEmmanuel Vadot          - renesas,r9a07g054-irqc    # RZ/V2L
29*8d13bc63SEmmanuel Vadot          - renesas,r9a08g045-irqc    # RZ/G3S
30b97ee269SEmmanuel Vadot      - const: renesas,rzg2l-irqc
31b97ee269SEmmanuel Vadot
32b97ee269SEmmanuel Vadot  '#interrupt-cells':
33aa1a8ff2SEmmanuel Vadot    description: The first cell should contain a macro RZG2L_{NMI,IRQX} included in the
34aa1a8ff2SEmmanuel Vadot                 include/dt-bindings/interrupt-controller/irqc-rzg2l.h and the second
35aa1a8ff2SEmmanuel Vadot                 cell is used to specify the flag.
36b97ee269SEmmanuel Vadot    const: 2
37b97ee269SEmmanuel Vadot
38b97ee269SEmmanuel Vadot  '#address-cells':
39b97ee269SEmmanuel Vadot    const: 0
40b97ee269SEmmanuel Vadot
41b97ee269SEmmanuel Vadot  interrupt-controller: true
42b97ee269SEmmanuel Vadot
43b97ee269SEmmanuel Vadot  reg:
44b97ee269SEmmanuel Vadot    maxItems: 1
45b97ee269SEmmanuel Vadot
46b97ee269SEmmanuel Vadot  interrupts:
47aa1a8ff2SEmmanuel Vadot    minItems: 41
48aa1a8ff2SEmmanuel Vadot    items:
49aa1a8ff2SEmmanuel Vadot      - description: NMI interrupt
50aa1a8ff2SEmmanuel Vadot      - description: IRQ0 interrupt
51aa1a8ff2SEmmanuel Vadot      - description: IRQ1 interrupt
52aa1a8ff2SEmmanuel Vadot      - description: IRQ2 interrupt
53aa1a8ff2SEmmanuel Vadot      - description: IRQ3 interrupt
54aa1a8ff2SEmmanuel Vadot      - description: IRQ4 interrupt
55aa1a8ff2SEmmanuel Vadot      - description: IRQ5 interrupt
56aa1a8ff2SEmmanuel Vadot      - description: IRQ6 interrupt
57aa1a8ff2SEmmanuel Vadot      - description: IRQ7 interrupt
58aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT0
59aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT1
60aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT2
61aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT3
62aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT4
63aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT5
64aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT6
65aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT7
66aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT8
67aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT9
68aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT10
69aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT11
70aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT12
71aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT13
72aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT14
73aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT15
74aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT16
75aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT17
76aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT18
77aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT19
78aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT20
79aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT21
80aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT22
81aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT23
82aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT24
83aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT25
84aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT26
85aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT27
86aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT28
87aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT29
88aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT30
89aa1a8ff2SEmmanuel Vadot      - description: GPIO interrupt, TINT31
90aa1a8ff2SEmmanuel Vadot      - description: Bus error interrupt
91aa1a8ff2SEmmanuel Vadot
92aa1a8ff2SEmmanuel Vadot  interrupt-names:
93aa1a8ff2SEmmanuel Vadot    minItems: 41
94aa1a8ff2SEmmanuel Vadot    items:
95aa1a8ff2SEmmanuel Vadot      - const: nmi
96aa1a8ff2SEmmanuel Vadot      - const: irq0
97aa1a8ff2SEmmanuel Vadot      - const: irq1
98aa1a8ff2SEmmanuel Vadot      - const: irq2
99aa1a8ff2SEmmanuel Vadot      - const: irq3
100aa1a8ff2SEmmanuel Vadot      - const: irq4
101aa1a8ff2SEmmanuel Vadot      - const: irq5
102aa1a8ff2SEmmanuel Vadot      - const: irq6
103aa1a8ff2SEmmanuel Vadot      - const: irq7
104aa1a8ff2SEmmanuel Vadot      - const: tint0
105aa1a8ff2SEmmanuel Vadot      - const: tint1
106aa1a8ff2SEmmanuel Vadot      - const: tint2
107aa1a8ff2SEmmanuel Vadot      - const: tint3
108aa1a8ff2SEmmanuel Vadot      - const: tint4
109aa1a8ff2SEmmanuel Vadot      - const: tint5
110aa1a8ff2SEmmanuel Vadot      - const: tint6
111aa1a8ff2SEmmanuel Vadot      - const: tint7
112aa1a8ff2SEmmanuel Vadot      - const: tint8
113aa1a8ff2SEmmanuel Vadot      - const: tint9
114aa1a8ff2SEmmanuel Vadot      - const: tint10
115aa1a8ff2SEmmanuel Vadot      - const: tint11
116aa1a8ff2SEmmanuel Vadot      - const: tint12
117aa1a8ff2SEmmanuel Vadot      - const: tint13
118aa1a8ff2SEmmanuel Vadot      - const: tint14
119aa1a8ff2SEmmanuel Vadot      - const: tint15
120aa1a8ff2SEmmanuel Vadot      - const: tint16
121aa1a8ff2SEmmanuel Vadot      - const: tint17
122aa1a8ff2SEmmanuel Vadot      - const: tint18
123aa1a8ff2SEmmanuel Vadot      - const: tint19
124aa1a8ff2SEmmanuel Vadot      - const: tint20
125aa1a8ff2SEmmanuel Vadot      - const: tint21
126aa1a8ff2SEmmanuel Vadot      - const: tint22
127aa1a8ff2SEmmanuel Vadot      - const: tint23
128aa1a8ff2SEmmanuel Vadot      - const: tint24
129aa1a8ff2SEmmanuel Vadot      - const: tint25
130aa1a8ff2SEmmanuel Vadot      - const: tint26
131aa1a8ff2SEmmanuel Vadot      - const: tint27
132aa1a8ff2SEmmanuel Vadot      - const: tint28
133aa1a8ff2SEmmanuel Vadot      - const: tint29
134aa1a8ff2SEmmanuel Vadot      - const: tint30
135aa1a8ff2SEmmanuel Vadot      - const: tint31
136aa1a8ff2SEmmanuel Vadot      - const: bus-err
137b97ee269SEmmanuel Vadot
138b97ee269SEmmanuel Vadot  clocks:
139b97ee269SEmmanuel Vadot    maxItems: 2
140b97ee269SEmmanuel Vadot
141b97ee269SEmmanuel Vadot  clock-names:
142b97ee269SEmmanuel Vadot    items:
143b97ee269SEmmanuel Vadot      - const: clk
144b97ee269SEmmanuel Vadot      - const: pclk
145b97ee269SEmmanuel Vadot
146b97ee269SEmmanuel Vadot  power-domains:
147b97ee269SEmmanuel Vadot    maxItems: 1
148b97ee269SEmmanuel Vadot
149b97ee269SEmmanuel Vadot  resets:
150b97ee269SEmmanuel Vadot    maxItems: 1
151b97ee269SEmmanuel Vadot
152b97ee269SEmmanuel Vadotrequired:
153b97ee269SEmmanuel Vadot  - compatible
154b97ee269SEmmanuel Vadot  - '#interrupt-cells'
155b97ee269SEmmanuel Vadot  - '#address-cells'
156b97ee269SEmmanuel Vadot  - interrupt-controller
157b97ee269SEmmanuel Vadot  - reg
158b97ee269SEmmanuel Vadot  - interrupts
159b97ee269SEmmanuel Vadot  - clocks
160b97ee269SEmmanuel Vadot  - clock-names
161b97ee269SEmmanuel Vadot  - power-domains
162b97ee269SEmmanuel Vadot  - resets
163b97ee269SEmmanuel Vadot
164aa1a8ff2SEmmanuel VadotallOf:
165aa1a8ff2SEmmanuel Vadot  - $ref: /schemas/interrupt-controller.yaml#
166aa1a8ff2SEmmanuel Vadot
167aa1a8ff2SEmmanuel Vadot  - if:
168aa1a8ff2SEmmanuel Vadot      properties:
169aa1a8ff2SEmmanuel Vadot        compatible:
170aa1a8ff2SEmmanuel Vadot          contains:
171*8d13bc63SEmmanuel Vadot            enum:
172*8d13bc63SEmmanuel Vadot              - renesas,r9a07g043u-irqc
173*8d13bc63SEmmanuel Vadot              - renesas,r9a08g045-irqc
174aa1a8ff2SEmmanuel Vadot    then:
175aa1a8ff2SEmmanuel Vadot      properties:
176aa1a8ff2SEmmanuel Vadot        interrupts:
177aa1a8ff2SEmmanuel Vadot          minItems: 42
178aa1a8ff2SEmmanuel Vadot        interrupt-names:
179aa1a8ff2SEmmanuel Vadot          minItems: 42
180aa1a8ff2SEmmanuel Vadot      required:
181aa1a8ff2SEmmanuel Vadot        - interrupt-names
182aa1a8ff2SEmmanuel Vadot
183b97ee269SEmmanuel VadotunevaluatedProperties: false
184b97ee269SEmmanuel Vadot
185b97ee269SEmmanuel Vadotexamples:
186b97ee269SEmmanuel Vadot  - |
187b97ee269SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
188b97ee269SEmmanuel Vadot    #include <dt-bindings/clock/r9a07g044-cpg.h>
189b97ee269SEmmanuel Vadot
190b97ee269SEmmanuel Vadot    irqc: interrupt-controller@110a0000 {
191b97ee269SEmmanuel Vadot        compatible = "renesas,r9a07g044-irqc", "renesas,rzg2l-irqc";
192b97ee269SEmmanuel Vadot        reg = <0x110a0000 0x10000>;
193b97ee269SEmmanuel Vadot        #interrupt-cells = <2>;
194b97ee269SEmmanuel Vadot        #address-cells = <0>;
195b97ee269SEmmanuel Vadot        interrupt-controller;
196b97ee269SEmmanuel Vadot        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
197b97ee269SEmmanuel Vadot                     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
198b97ee269SEmmanuel Vadot                     <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
199b97ee269SEmmanuel Vadot                     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
200b97ee269SEmmanuel Vadot                     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
201b97ee269SEmmanuel Vadot                     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
202b97ee269SEmmanuel Vadot                     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
203b97ee269SEmmanuel Vadot                     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
204b97ee269SEmmanuel Vadot                     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
205b97ee269SEmmanuel Vadot                     <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>,
206b97ee269SEmmanuel Vadot                     <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>,
207b97ee269SEmmanuel Vadot                     <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>,
208b97ee269SEmmanuel Vadot                     <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>,
209b97ee269SEmmanuel Vadot                     <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>,
210b97ee269SEmmanuel Vadot                     <GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>,
211b97ee269SEmmanuel Vadot                     <GIC_SPI 450 IRQ_TYPE_LEVEL_HIGH>,
212b97ee269SEmmanuel Vadot                     <GIC_SPI 451 IRQ_TYPE_LEVEL_HIGH>,
213b97ee269SEmmanuel Vadot                     <GIC_SPI 452 IRQ_TYPE_LEVEL_HIGH>,
214b97ee269SEmmanuel Vadot                     <GIC_SPI 453 IRQ_TYPE_LEVEL_HIGH>,
215b97ee269SEmmanuel Vadot                     <GIC_SPI 454 IRQ_TYPE_LEVEL_HIGH>,
216b97ee269SEmmanuel Vadot                     <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>,
217b97ee269SEmmanuel Vadot                     <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
218b97ee269SEmmanuel Vadot                     <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>,
219b97ee269SEmmanuel Vadot                     <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>,
220b97ee269SEmmanuel Vadot                     <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>,
221b97ee269SEmmanuel Vadot                     <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>,
222b97ee269SEmmanuel Vadot                     <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>,
223b97ee269SEmmanuel Vadot                     <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>,
224b97ee269SEmmanuel Vadot                     <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>,
225b97ee269SEmmanuel Vadot                     <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
226b97ee269SEmmanuel Vadot                     <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
227b97ee269SEmmanuel Vadot                     <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
228b97ee269SEmmanuel Vadot                     <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
229b97ee269SEmmanuel Vadot                     <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
230b97ee269SEmmanuel Vadot                     <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>,
231b97ee269SEmmanuel Vadot                     <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>,
232b97ee269SEmmanuel Vadot                     <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH>,
233b97ee269SEmmanuel Vadot                     <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>,
234b97ee269SEmmanuel Vadot                     <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>,
235b97ee269SEmmanuel Vadot                     <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>,
236b97ee269SEmmanuel Vadot                     <GIC_SPI 475 IRQ_TYPE_LEVEL_HIGH>;
237aa1a8ff2SEmmanuel Vadot        interrupt-names = "nmi",
238aa1a8ff2SEmmanuel Vadot                          "irq0", "irq1", "irq2", "irq3",
239aa1a8ff2SEmmanuel Vadot                          "irq4", "irq5", "irq6", "irq7",
240aa1a8ff2SEmmanuel Vadot                          "tint0", "tint1", "tint2", "tint3",
241aa1a8ff2SEmmanuel Vadot                          "tint4", "tint5", "tint6", "tint7",
242aa1a8ff2SEmmanuel Vadot                          "tint8", "tint9", "tint10", "tint11",
243aa1a8ff2SEmmanuel Vadot                          "tint12", "tint13", "tint14", "tint15",
244aa1a8ff2SEmmanuel Vadot                          "tint16", "tint17", "tint18", "tint19",
245aa1a8ff2SEmmanuel Vadot                          "tint20", "tint21", "tint22", "tint23",
246aa1a8ff2SEmmanuel Vadot                          "tint24", "tint25", "tint26", "tint27",
247aa1a8ff2SEmmanuel Vadot                          "tint28", "tint29", "tint30", "tint31";
248b97ee269SEmmanuel Vadot        clocks = <&cpg CPG_MOD R9A07G044_IA55_CLK>,
249b97ee269SEmmanuel Vadot                 <&cpg CPG_MOD R9A07G044_IA55_PCLK>;
250b97ee269SEmmanuel Vadot        clock-names = "clk", "pclk";
251b97ee269SEmmanuel Vadot        power-domains = <&cpg>;
252b97ee269SEmmanuel Vadot        resets = <&cpg R9A07G044_IA55_RESETN>;
253b97ee269SEmmanuel Vadot    };
254