16f64aa57SCorentin Labbe# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 26f64aa57SCorentin Labbe%YAML 1.2 36f64aa57SCorentin Labbe--- 46f64aa57SCorentin Labbe$id: http://devicetree.org/schemas/dma/arm-pl08x.yaml# 56f64aa57SCorentin Labbe$schema: http://devicetree.org/meta-schemas/core.yaml# 66f64aa57SCorentin Labbe 76f64aa57SCorentin Labbetitle: ARM PrimeCells PL080 and PL081 and derivatives DMA controller 86f64aa57SCorentin Labbe 96f64aa57SCorentin Labbemaintainers: 106f64aa57SCorentin Labbe - Vinod Koul <vkoul@kernel.org> 116f64aa57SCorentin Labbe 126f64aa57SCorentin LabbeallOf: 13a173a242SRob Herring - $ref: /schemas/arm/primecell.yaml# 14*10cafa2dSKrzysztof Kozlowski - $ref: dma-controller.yaml# 156f64aa57SCorentin Labbe 166f64aa57SCorentin Labbe# We need a select here so we don't match all nodes with 'arm,primecell' 176f64aa57SCorentin Labbeselect: 186f64aa57SCorentin Labbe properties: 196f64aa57SCorentin Labbe compatible: 206f64aa57SCorentin Labbe contains: 216f64aa57SCorentin Labbe enum: 226f64aa57SCorentin Labbe - arm,pl080 236f64aa57SCorentin Labbe - arm,pl081 246f64aa57SCorentin Labbe required: 256f64aa57SCorentin Labbe - compatible 266f64aa57SCorentin Labbe 276f64aa57SCorentin Labbeproperties: 286f64aa57SCorentin Labbe compatible: 296f64aa57SCorentin Labbe oneOf: 306f64aa57SCorentin Labbe - items: 316f64aa57SCorentin Labbe - enum: 326f64aa57SCorentin Labbe - arm,pl080 336f64aa57SCorentin Labbe - arm,pl081 346f64aa57SCorentin Labbe - const: arm,primecell 356f64aa57SCorentin Labbe - items: 366f64aa57SCorentin Labbe - const: faraday,ftdma020 376f64aa57SCorentin Labbe - const: arm,pl080 386f64aa57SCorentin Labbe - const: arm,primecell 396f64aa57SCorentin Labbe 406f64aa57SCorentin Labbe reg: 416f64aa57SCorentin Labbe maxItems: 1 426f64aa57SCorentin Labbe description: Address range of the PL08x registers 436f64aa57SCorentin Labbe 446f64aa57SCorentin Labbe interrupts: 456f64aa57SCorentin Labbe minItems: 1 466f64aa57SCorentin Labbe description: The PL08x interrupt number 476f64aa57SCorentin Labbe 486f64aa57SCorentin Labbe clocks: 496f64aa57SCorentin Labbe minItems: 1 506f64aa57SCorentin Labbe description: The clock running the IP core clock 516f64aa57SCorentin Labbe 526f64aa57SCorentin Labbe clock-names: 536f64aa57SCorentin Labbe maxItems: 1 546f64aa57SCorentin Labbe 556f64aa57SCorentin Labbe lli-bus-interface-ahb1: 566f64aa57SCorentin Labbe type: boolean 576f64aa57SCorentin Labbe description: if AHB master 1 is eligible for fetching LLIs 586f64aa57SCorentin Labbe 596f64aa57SCorentin Labbe lli-bus-interface-ahb2: 606f64aa57SCorentin Labbe type: boolean 616f64aa57SCorentin Labbe description: if AHB master 2 is eligible for fetching LLIs 626f64aa57SCorentin Labbe 636f64aa57SCorentin Labbe mem-bus-interface-ahb1: 646f64aa57SCorentin Labbe type: boolean 656f64aa57SCorentin Labbe description: if AHB master 1 is eligible for fetching memory contents 666f64aa57SCorentin Labbe 676f64aa57SCorentin Labbe mem-bus-interface-ahb2: 686f64aa57SCorentin Labbe type: boolean 696f64aa57SCorentin Labbe description: if AHB master 2 is eligible for fetching memory contents 706f64aa57SCorentin Labbe 716f64aa57SCorentin Labbe memcpy-burst-size: 726f64aa57SCorentin Labbe $ref: /schemas/types.yaml#/definitions/uint32 736f64aa57SCorentin Labbe enum: 746f64aa57SCorentin Labbe - 1 756f64aa57SCorentin Labbe - 4 766f64aa57SCorentin Labbe - 8 776f64aa57SCorentin Labbe - 16 786f64aa57SCorentin Labbe - 32 796f64aa57SCorentin Labbe - 64 806f64aa57SCorentin Labbe - 128 816f64aa57SCorentin Labbe - 256 826f64aa57SCorentin Labbe description: the size of the bursts for memcpy 836f64aa57SCorentin Labbe 846f64aa57SCorentin Labbe memcpy-bus-width: 856f64aa57SCorentin Labbe $ref: /schemas/types.yaml#/definitions/uint32 866f64aa57SCorentin Labbe enum: 876f64aa57SCorentin Labbe - 8 886f64aa57SCorentin Labbe - 16 896f64aa57SCorentin Labbe - 32 906f64aa57SCorentin Labbe - 64 916f64aa57SCorentin Labbe description: bus width used for memcpy in bits. FTDMAC020 also accept 64 bits 926f64aa57SCorentin Labbe 93a173a242SRob Herring resets: 94a173a242SRob Herring maxItems: 1 95a173a242SRob Herring 966f64aa57SCorentin Labberequired: 976f64aa57SCorentin Labbe - reg 986f64aa57SCorentin Labbe - interrupts 996f64aa57SCorentin Labbe - clocks 1006f64aa57SCorentin Labbe - clock-names 1016f64aa57SCorentin Labbe - "#dma-cells" 1026f64aa57SCorentin Labbe 1036f64aa57SCorentin LabbeunevaluatedProperties: false 1046f64aa57SCorentin Labbe 1056f64aa57SCorentin Labbeexamples: 1066f64aa57SCorentin Labbe - | 1076f64aa57SCorentin Labbe dmac0: dma-controller@10130000 { 1086f64aa57SCorentin Labbe compatible = "arm,pl080", "arm,primecell"; 1096f64aa57SCorentin Labbe reg = <0x10130000 0x1000>; 1106f64aa57SCorentin Labbe interrupt-parent = <&vica>; 1116f64aa57SCorentin Labbe interrupts = <15>; 1126f64aa57SCorentin Labbe clocks = <&hclkdma0>; 1136f64aa57SCorentin Labbe clock-names = "apb_pclk"; 1146f64aa57SCorentin Labbe lli-bus-interface-ahb1; 1156f64aa57SCorentin Labbe lli-bus-interface-ahb2; 1166f64aa57SCorentin Labbe mem-bus-interface-ahb2; 1176f64aa57SCorentin Labbe memcpy-burst-size = <256>; 1186f64aa57SCorentin Labbe memcpy-bus-width = <32>; 1196f64aa57SCorentin Labbe #dma-cells = <2>; 1206f64aa57SCorentin Labbe }; 1216f64aa57SCorentin Labbe - | 1226f64aa57SCorentin Labbe #include <dt-bindings/interrupt-controller/irq.h> 1236f64aa57SCorentin Labbe #include <dt-bindings/reset/cortina,gemini-reset.h> 1246f64aa57SCorentin Labbe #include <dt-bindings/clock/cortina,gemini-clock.h> 1256f64aa57SCorentin Labbe dma-controller@67000000 { 1266f64aa57SCorentin Labbe compatible = "faraday,ftdma020", "arm,pl080", "arm,primecell"; 1276f64aa57SCorentin Labbe /* Faraday Technology FTDMAC020 variant */ 1286f64aa57SCorentin Labbe arm,primecell-periphid = <0x0003b080>; 1296f64aa57SCorentin Labbe reg = <0x67000000 0x1000>; 1306f64aa57SCorentin Labbe interrupts = <9 IRQ_TYPE_EDGE_RISING>; 1316f64aa57SCorentin Labbe resets = <&syscon GEMINI_RESET_DMAC>; 1326f64aa57SCorentin Labbe clocks = <&syscon GEMINI_CLK_AHB>; 1336f64aa57SCorentin Labbe clock-names = "apb_pclk"; 1346f64aa57SCorentin Labbe /* Bus interface AHB1 (AHB0) is totally tilted */ 1356f64aa57SCorentin Labbe lli-bus-interface-ahb2; 1366f64aa57SCorentin Labbe mem-bus-interface-ahb2; 1376f64aa57SCorentin Labbe memcpy-burst-size = <256>; 1386f64aa57SCorentin Labbe memcpy-bus-width = <32>; 1396f64aa57SCorentin Labbe #dma-cells = <2>; 1406f64aa57SCorentin Labbe }; 141