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/dma/renesas,rz-dmac.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Renesas RZ/{G2L,G2UL,V2L} DMA Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Biju Das <biju.das.jz@bp.renesas.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciallOf:
1362306a36Sopenharmony_ci  - $ref: dma-controller.yaml#
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciproperties:
1662306a36Sopenharmony_ci  compatible:
1762306a36Sopenharmony_ci    items:
1862306a36Sopenharmony_ci      - enum:
1962306a36Sopenharmony_ci          - renesas,r9a07g043-dmac # RZ/G2UL
2062306a36Sopenharmony_ci          - renesas,r9a07g044-dmac # RZ/G2{L,LC}
2162306a36Sopenharmony_ci          - renesas,r9a07g054-dmac # RZ/V2L
2262306a36Sopenharmony_ci      - const: renesas,rz-dmac
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  reg:
2562306a36Sopenharmony_ci    items:
2662306a36Sopenharmony_ci      - description: Control and channel register block
2762306a36Sopenharmony_ci      - description: DMA extended resource selector block
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  interrupts:
3062306a36Sopenharmony_ci    maxItems: 17
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  interrupt-names:
3362306a36Sopenharmony_ci    items:
3462306a36Sopenharmony_ci      - const: error
3562306a36Sopenharmony_ci      - const: ch0
3662306a36Sopenharmony_ci      - const: ch1
3762306a36Sopenharmony_ci      - const: ch2
3862306a36Sopenharmony_ci      - const: ch3
3962306a36Sopenharmony_ci      - const: ch4
4062306a36Sopenharmony_ci      - const: ch5
4162306a36Sopenharmony_ci      - const: ch6
4262306a36Sopenharmony_ci      - const: ch7
4362306a36Sopenharmony_ci      - const: ch8
4462306a36Sopenharmony_ci      - const: ch9
4562306a36Sopenharmony_ci      - const: ch10
4662306a36Sopenharmony_ci      - const: ch11
4762306a36Sopenharmony_ci      - const: ch12
4862306a36Sopenharmony_ci      - const: ch13
4962306a36Sopenharmony_ci      - const: ch14
5062306a36Sopenharmony_ci      - const: ch15
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  clocks:
5362306a36Sopenharmony_ci    items:
5462306a36Sopenharmony_ci      - description: DMA main clock
5562306a36Sopenharmony_ci      - description: DMA register access clock
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci  clock-names:
5862306a36Sopenharmony_ci    items:
5962306a36Sopenharmony_ci      - const: main
6062306a36Sopenharmony_ci      - const: register
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci  '#dma-cells':
6362306a36Sopenharmony_ci    const: 1
6462306a36Sopenharmony_ci    description:
6562306a36Sopenharmony_ci      The cell specifies the encoded MID/RID values of the DMAC port
6662306a36Sopenharmony_ci      connected to the DMA client and the slave channel configuration
6762306a36Sopenharmony_ci      parameters.
6862306a36Sopenharmony_ci      bits[0:9] - Specifies MID/RID value
6962306a36Sopenharmony_ci      bit[10] - Specifies DMA request high enable (HIEN)
7062306a36Sopenharmony_ci      bit[11] - Specifies DMA request detection type (LVL)
7162306a36Sopenharmony_ci      bits[12:14] - Specifies DMAACK output mode (AM)
7262306a36Sopenharmony_ci      bit[15] - Specifies Transfer Mode (TM)
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci  dma-channels:
7562306a36Sopenharmony_ci    const: 16
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci  power-domains:
7862306a36Sopenharmony_ci    maxItems: 1
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  resets:
8162306a36Sopenharmony_ci    items:
8262306a36Sopenharmony_ci      - description: Reset for DMA ARESETN reset terminal
8362306a36Sopenharmony_ci      - description: Reset for DMA RST_ASYNC reset terminal
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci  reset-names:
8662306a36Sopenharmony_ci    items:
8762306a36Sopenharmony_ci      - const: arst
8862306a36Sopenharmony_ci      - const: rst_async
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_cirequired:
9162306a36Sopenharmony_ci  - compatible
9262306a36Sopenharmony_ci  - reg
9362306a36Sopenharmony_ci  - interrupts
9462306a36Sopenharmony_ci  - interrupt-names
9562306a36Sopenharmony_ci  - clocks
9662306a36Sopenharmony_ci  - clock-names
9762306a36Sopenharmony_ci  - '#dma-cells'
9862306a36Sopenharmony_ci  - dma-channels
9962306a36Sopenharmony_ci  - power-domains
10062306a36Sopenharmony_ci  - resets
10162306a36Sopenharmony_ci  - reset-names
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciadditionalProperties: false
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciexamples:
10662306a36Sopenharmony_ci  - |
10762306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
10862306a36Sopenharmony_ci    #include <dt-bindings/clock/r9a07g044-cpg.h>
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci    dmac: dma-controller@11820000 {
11162306a36Sopenharmony_ci        compatible = "renesas,r9a07g044-dmac",
11262306a36Sopenharmony_ci                     "renesas,rz-dmac";
11362306a36Sopenharmony_ci        reg = <0x11820000 0x10000>,
11462306a36Sopenharmony_ci              <0x11830000 0x10000>;
11562306a36Sopenharmony_ci        interrupts = <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>,
11662306a36Sopenharmony_ci                     <GIC_SPI 125 IRQ_TYPE_EDGE_RISING>,
11762306a36Sopenharmony_ci                     <GIC_SPI 126 IRQ_TYPE_EDGE_RISING>,
11862306a36Sopenharmony_ci                     <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>,
11962306a36Sopenharmony_ci                     <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>,
12062306a36Sopenharmony_ci                     <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>,
12162306a36Sopenharmony_ci                     <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>,
12262306a36Sopenharmony_ci                     <GIC_SPI 131 IRQ_TYPE_EDGE_RISING>,
12362306a36Sopenharmony_ci                     <GIC_SPI 132 IRQ_TYPE_EDGE_RISING>,
12462306a36Sopenharmony_ci                     <GIC_SPI 133 IRQ_TYPE_EDGE_RISING>,
12562306a36Sopenharmony_ci                     <GIC_SPI 134 IRQ_TYPE_EDGE_RISING>,
12662306a36Sopenharmony_ci                     <GIC_SPI 135 IRQ_TYPE_EDGE_RISING>,
12762306a36Sopenharmony_ci                     <GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
12862306a36Sopenharmony_ci                     <GIC_SPI 137 IRQ_TYPE_EDGE_RISING>,
12962306a36Sopenharmony_ci                     <GIC_SPI 138 IRQ_TYPE_EDGE_RISING>,
13062306a36Sopenharmony_ci                     <GIC_SPI 139 IRQ_TYPE_EDGE_RISING>,
13162306a36Sopenharmony_ci                     <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>;
13262306a36Sopenharmony_ci        interrupt-names = "error",
13362306a36Sopenharmony_ci                          "ch0", "ch1", "ch2", "ch3",
13462306a36Sopenharmony_ci                          "ch4", "ch5", "ch6", "ch7",
13562306a36Sopenharmony_ci                          "ch8", "ch9", "ch10", "ch11",
13662306a36Sopenharmony_ci                          "ch12", "ch13", "ch14", "ch15";
13762306a36Sopenharmony_ci        clocks = <&cpg CPG_MOD R9A07G044_DMAC_ACLK>,
13862306a36Sopenharmony_ci                 <&cpg CPG_MOD R9A07G044_DMAC_PCLK>;
13962306a36Sopenharmony_ci        clock-names = "main", "register";
14062306a36Sopenharmony_ci        power-domains = <&cpg>;
14162306a36Sopenharmony_ci        resets = <&cpg R9A07G044_DMAC_ARESETN>,
14262306a36Sopenharmony_ci                 <&cpg R9A07G044_DMAC_RST_ASYNC>;
14362306a36Sopenharmony_ci        reset-names = "arst", "rst_async";
14462306a36Sopenharmony_ci        #dma-cells = <1>;
14562306a36Sopenharmony_ci        dma-channels = <16>;
14662306a36Sopenharmony_ci    };
147