162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/interrupt-controller/renesas,rzg2l-irqc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Renesas RZ/G2L (and alike SoC's) Interrupt Controller (IA55)
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
1162306a36Sopenharmony_ci  - Geert Uytterhoeven <geert+renesas@glider.be>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  IA55 performs various interrupt controls including synchronization for the external
1562306a36Sopenharmony_ci  interrupts of NMI, IRQ, and GPIOINT and the interrupts of the built-in peripheral
1662306a36Sopenharmony_ci  interrupts output by each IP. And it notifies the interrupt to the GIC
1762306a36Sopenharmony_ci    - IRQ sense select for 8 external interrupts, mapped to 8 GIC SPI interrupts
1862306a36Sopenharmony_ci    - GPIO pins used as external interrupt input pins, mapped to 32 GIC SPI interrupts
1962306a36Sopenharmony_ci    - NMI edge select (NMI is not treated as NMI exception and supports fall edge and
2062306a36Sopenharmony_ci      stand-up edge detection interrupts)
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciproperties:
2362306a36Sopenharmony_ci  compatible:
2462306a36Sopenharmony_ci    items:
2562306a36Sopenharmony_ci      - enum:
2662306a36Sopenharmony_ci          - renesas,r9a07g043u-irqc   # RZ/G2UL
2762306a36Sopenharmony_ci          - renesas,r9a07g044-irqc    # RZ/G2{L,LC}
2862306a36Sopenharmony_ci          - renesas,r9a07g054-irqc    # RZ/V2L
2962306a36Sopenharmony_ci      - const: renesas,rzg2l-irqc
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  '#interrupt-cells':
3262306a36Sopenharmony_ci    description: The first cell should contain a macro RZG2L_{NMI,IRQX} included in the
3362306a36Sopenharmony_ci                 include/dt-bindings/interrupt-controller/irqc-rzg2l.h and the second
3462306a36Sopenharmony_ci                 cell is used to specify the flag.
3562306a36Sopenharmony_ci    const: 2
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  '#address-cells':
3862306a36Sopenharmony_ci    const: 0
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  interrupt-controller: true
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci  reg:
4362306a36Sopenharmony_ci    maxItems: 1
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  interrupts:
4662306a36Sopenharmony_ci    minItems: 41
4762306a36Sopenharmony_ci    items:
4862306a36Sopenharmony_ci      - description: NMI interrupt
4962306a36Sopenharmony_ci      - description: IRQ0 interrupt
5062306a36Sopenharmony_ci      - description: IRQ1 interrupt
5162306a36Sopenharmony_ci      - description: IRQ2 interrupt
5262306a36Sopenharmony_ci      - description: IRQ3 interrupt
5362306a36Sopenharmony_ci      - description: IRQ4 interrupt
5462306a36Sopenharmony_ci      - description: IRQ5 interrupt
5562306a36Sopenharmony_ci      - description: IRQ6 interrupt
5662306a36Sopenharmony_ci      - description: IRQ7 interrupt
5762306a36Sopenharmony_ci      - description: GPIO interrupt, TINT0
5862306a36Sopenharmony_ci      - description: GPIO interrupt, TINT1
5962306a36Sopenharmony_ci      - description: GPIO interrupt, TINT2
6062306a36Sopenharmony_ci      - description: GPIO interrupt, TINT3
6162306a36Sopenharmony_ci      - description: GPIO interrupt, TINT4
6262306a36Sopenharmony_ci      - description: GPIO interrupt, TINT5
6362306a36Sopenharmony_ci      - description: GPIO interrupt, TINT6
6462306a36Sopenharmony_ci      - description: GPIO interrupt, TINT7
6562306a36Sopenharmony_ci      - description: GPIO interrupt, TINT8
6662306a36Sopenharmony_ci      - description: GPIO interrupt, TINT9
6762306a36Sopenharmony_ci      - description: GPIO interrupt, TINT10
6862306a36Sopenharmony_ci      - description: GPIO interrupt, TINT11
6962306a36Sopenharmony_ci      - description: GPIO interrupt, TINT12
7062306a36Sopenharmony_ci      - description: GPIO interrupt, TINT13
7162306a36Sopenharmony_ci      - description: GPIO interrupt, TINT14
7262306a36Sopenharmony_ci      - description: GPIO interrupt, TINT15
7362306a36Sopenharmony_ci      - description: GPIO interrupt, TINT16
7462306a36Sopenharmony_ci      - description: GPIO interrupt, TINT17
7562306a36Sopenharmony_ci      - description: GPIO interrupt, TINT18
7662306a36Sopenharmony_ci      - description: GPIO interrupt, TINT19
7762306a36Sopenharmony_ci      - description: GPIO interrupt, TINT20
7862306a36Sopenharmony_ci      - description: GPIO interrupt, TINT21
7962306a36Sopenharmony_ci      - description: GPIO interrupt, TINT22
8062306a36Sopenharmony_ci      - description: GPIO interrupt, TINT23
8162306a36Sopenharmony_ci      - description: GPIO interrupt, TINT24
8262306a36Sopenharmony_ci      - description: GPIO interrupt, TINT25
8362306a36Sopenharmony_ci      - description: GPIO interrupt, TINT26
8462306a36Sopenharmony_ci      - description: GPIO interrupt, TINT27
8562306a36Sopenharmony_ci      - description: GPIO interrupt, TINT28
8662306a36Sopenharmony_ci      - description: GPIO interrupt, TINT29
8762306a36Sopenharmony_ci      - description: GPIO interrupt, TINT30
8862306a36Sopenharmony_ci      - description: GPIO interrupt, TINT31
8962306a36Sopenharmony_ci      - description: Bus error interrupt
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci  interrupt-names:
9262306a36Sopenharmony_ci    minItems: 41
9362306a36Sopenharmony_ci    items:
9462306a36Sopenharmony_ci      - const: nmi
9562306a36Sopenharmony_ci      - const: irq0
9662306a36Sopenharmony_ci      - const: irq1
9762306a36Sopenharmony_ci      - const: irq2
9862306a36Sopenharmony_ci      - const: irq3
9962306a36Sopenharmony_ci      - const: irq4
10062306a36Sopenharmony_ci      - const: irq5
10162306a36Sopenharmony_ci      - const: irq6
10262306a36Sopenharmony_ci      - const: irq7
10362306a36Sopenharmony_ci      - const: tint0
10462306a36Sopenharmony_ci      - const: tint1
10562306a36Sopenharmony_ci      - const: tint2
10662306a36Sopenharmony_ci      - const: tint3
10762306a36Sopenharmony_ci      - const: tint4
10862306a36Sopenharmony_ci      - const: tint5
10962306a36Sopenharmony_ci      - const: tint6
11062306a36Sopenharmony_ci      - const: tint7
11162306a36Sopenharmony_ci      - const: tint8
11262306a36Sopenharmony_ci      - const: tint9
11362306a36Sopenharmony_ci      - const: tint10
11462306a36Sopenharmony_ci      - const: tint11
11562306a36Sopenharmony_ci      - const: tint12
11662306a36Sopenharmony_ci      - const: tint13
11762306a36Sopenharmony_ci      - const: tint14
11862306a36Sopenharmony_ci      - const: tint15
11962306a36Sopenharmony_ci      - const: tint16
12062306a36Sopenharmony_ci      - const: tint17
12162306a36Sopenharmony_ci      - const: tint18
12262306a36Sopenharmony_ci      - const: tint19
12362306a36Sopenharmony_ci      - const: tint20
12462306a36Sopenharmony_ci      - const: tint21
12562306a36Sopenharmony_ci      - const: tint22
12662306a36Sopenharmony_ci      - const: tint23
12762306a36Sopenharmony_ci      - const: tint24
12862306a36Sopenharmony_ci      - const: tint25
12962306a36Sopenharmony_ci      - const: tint26
13062306a36Sopenharmony_ci      - const: tint27
13162306a36Sopenharmony_ci      - const: tint28
13262306a36Sopenharmony_ci      - const: tint29
13362306a36Sopenharmony_ci      - const: tint30
13462306a36Sopenharmony_ci      - const: tint31
13562306a36Sopenharmony_ci      - const: bus-err
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci  clocks:
13862306a36Sopenharmony_ci    maxItems: 2
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci  clock-names:
14162306a36Sopenharmony_ci    items:
14262306a36Sopenharmony_ci      - const: clk
14362306a36Sopenharmony_ci      - const: pclk
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci  power-domains:
14662306a36Sopenharmony_ci    maxItems: 1
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci  resets:
14962306a36Sopenharmony_ci    maxItems: 1
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_cirequired:
15262306a36Sopenharmony_ci  - compatible
15362306a36Sopenharmony_ci  - '#interrupt-cells'
15462306a36Sopenharmony_ci  - '#address-cells'
15562306a36Sopenharmony_ci  - interrupt-controller
15662306a36Sopenharmony_ci  - reg
15762306a36Sopenharmony_ci  - interrupts
15862306a36Sopenharmony_ci  - clocks
15962306a36Sopenharmony_ci  - clock-names
16062306a36Sopenharmony_ci  - power-domains
16162306a36Sopenharmony_ci  - resets
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ciallOf:
16462306a36Sopenharmony_ci  - $ref: /schemas/interrupt-controller.yaml#
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci  - if:
16762306a36Sopenharmony_ci      properties:
16862306a36Sopenharmony_ci        compatible:
16962306a36Sopenharmony_ci          contains:
17062306a36Sopenharmony_ci            const: renesas,r9a07g043u-irqc
17162306a36Sopenharmony_ci    then:
17262306a36Sopenharmony_ci      properties:
17362306a36Sopenharmony_ci        interrupts:
17462306a36Sopenharmony_ci          minItems: 42
17562306a36Sopenharmony_ci        interrupt-names:
17662306a36Sopenharmony_ci          minItems: 42
17762306a36Sopenharmony_ci      required:
17862306a36Sopenharmony_ci        - interrupt-names
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ciunevaluatedProperties: false
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ciexamples:
18362306a36Sopenharmony_ci  - |
18462306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
18562306a36Sopenharmony_ci    #include <dt-bindings/clock/r9a07g044-cpg.h>
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci    irqc: interrupt-controller@110a0000 {
18862306a36Sopenharmony_ci        compatible = "renesas,r9a07g044-irqc", "renesas,rzg2l-irqc";
18962306a36Sopenharmony_ci        reg = <0x110a0000 0x10000>;
19062306a36Sopenharmony_ci        #interrupt-cells = <2>;
19162306a36Sopenharmony_ci        #address-cells = <0>;
19262306a36Sopenharmony_ci        interrupt-controller;
19362306a36Sopenharmony_ci        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
19462306a36Sopenharmony_ci                     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
19562306a36Sopenharmony_ci                     <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
19662306a36Sopenharmony_ci                     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
19762306a36Sopenharmony_ci                     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
19862306a36Sopenharmony_ci                     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
19962306a36Sopenharmony_ci                     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
20062306a36Sopenharmony_ci                     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
20162306a36Sopenharmony_ci                     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
20262306a36Sopenharmony_ci                     <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>,
20362306a36Sopenharmony_ci                     <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>,
20462306a36Sopenharmony_ci                     <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>,
20562306a36Sopenharmony_ci                     <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>,
20662306a36Sopenharmony_ci                     <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>,
20762306a36Sopenharmony_ci                     <GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>,
20862306a36Sopenharmony_ci                     <GIC_SPI 450 IRQ_TYPE_LEVEL_HIGH>,
20962306a36Sopenharmony_ci                     <GIC_SPI 451 IRQ_TYPE_LEVEL_HIGH>,
21062306a36Sopenharmony_ci                     <GIC_SPI 452 IRQ_TYPE_LEVEL_HIGH>,
21162306a36Sopenharmony_ci                     <GIC_SPI 453 IRQ_TYPE_LEVEL_HIGH>,
21262306a36Sopenharmony_ci                     <GIC_SPI 454 IRQ_TYPE_LEVEL_HIGH>,
21362306a36Sopenharmony_ci                     <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>,
21462306a36Sopenharmony_ci                     <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
21562306a36Sopenharmony_ci                     <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>,
21662306a36Sopenharmony_ci                     <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>,
21762306a36Sopenharmony_ci                     <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>,
21862306a36Sopenharmony_ci                     <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>,
21962306a36Sopenharmony_ci                     <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>,
22062306a36Sopenharmony_ci                     <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>,
22162306a36Sopenharmony_ci                     <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>,
22262306a36Sopenharmony_ci                     <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
22362306a36Sopenharmony_ci                     <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
22462306a36Sopenharmony_ci                     <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
22562306a36Sopenharmony_ci                     <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
22662306a36Sopenharmony_ci                     <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
22762306a36Sopenharmony_ci                     <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>,
22862306a36Sopenharmony_ci                     <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>,
22962306a36Sopenharmony_ci                     <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH>,
23062306a36Sopenharmony_ci                     <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>,
23162306a36Sopenharmony_ci                     <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>,
23262306a36Sopenharmony_ci                     <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>,
23362306a36Sopenharmony_ci                     <GIC_SPI 475 IRQ_TYPE_LEVEL_HIGH>;
23462306a36Sopenharmony_ci        interrupt-names = "nmi",
23562306a36Sopenharmony_ci                          "irq0", "irq1", "irq2", "irq3",
23662306a36Sopenharmony_ci                          "irq4", "irq5", "irq6", "irq7",
23762306a36Sopenharmony_ci                          "tint0", "tint1", "tint2", "tint3",
23862306a36Sopenharmony_ci                          "tint4", "tint5", "tint6", "tint7",
23962306a36Sopenharmony_ci                          "tint8", "tint9", "tint10", "tint11",
24062306a36Sopenharmony_ci                          "tint12", "tint13", "tint14", "tint15",
24162306a36Sopenharmony_ci                          "tint16", "tint17", "tint18", "tint19",
24262306a36Sopenharmony_ci                          "tint20", "tint21", "tint22", "tint23",
24362306a36Sopenharmony_ci                          "tint24", "tint25", "tint26", "tint27",
24462306a36Sopenharmony_ci                          "tint28", "tint29", "tint30", "tint31";
24562306a36Sopenharmony_ci        clocks = <&cpg CPG_MOD R9A07G044_IA55_CLK>,
24662306a36Sopenharmony_ci                 <&cpg CPG_MOD R9A07G044_IA55_PCLK>;
24762306a36Sopenharmony_ci        clock-names = "clk", "pclk";
24862306a36Sopenharmony_ci        power-domains = <&cpg>;
24962306a36Sopenharmony_ci        resets = <&cpg R9A07G044_IA55_RESETN>;
25062306a36Sopenharmony_ci    };
251