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