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