1cfa1927fSPeng Fan# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2cfa1927fSPeng Fan%YAML 1.2 3cfa1927fSPeng Fan--- 4cfa1927fSPeng Fan$id: http://devicetree.org/schemas/dma/fsl,edma.yaml# 5cfa1927fSPeng Fan$schema: http://devicetree.org/meta-schemas/core.yaml# 6cfa1927fSPeng Fan 7cfa1927fSPeng Fantitle: Freescale enhanced Direct Memory Access(eDMA) Controller 8cfa1927fSPeng Fan 9cfa1927fSPeng Fandescription: | 10cfa1927fSPeng Fan The eDMA channels have multiplex capability by programmable 11cfa1927fSPeng Fan memory-mapped registers. channels are split into two groups, called 12cfa1927fSPeng Fan DMAMUX0 and DMAMUX1, specific DMA request source can only be multiplexed 13cfa1927fSPeng Fan by any channel of certain group, DMAMUX0 or DMAMUX1, but not both. 14cfa1927fSPeng Fan 15cfa1927fSPeng Fanmaintainers: 16cfa1927fSPeng Fan - Peng Fan <peng.fan@nxp.com> 17cfa1927fSPeng Fan 18cfa1927fSPeng Fanproperties: 19cfa1927fSPeng Fan compatible: 20cfa1927fSPeng Fan oneOf: 21cfa1927fSPeng Fan - enum: 22cfa1927fSPeng Fan - fsl,vf610-edma 23cfa1927fSPeng Fan - fsl,imx7ulp-edma 246eb439dfSFrank Li - fsl,imx8qm-adma 256eb439dfSFrank Li - fsl,imx8qm-edma 266eb439dfSFrank Li - fsl,imx93-edma3 276eb439dfSFrank Li - fsl,imx93-edma4 28cfa1927fSPeng Fan - items: 29cfa1927fSPeng Fan - const: fsl,ls1028a-edma 30cfa1927fSPeng Fan - const: fsl,vf610-edma 31cfa1927fSPeng Fan 32cfa1927fSPeng Fan reg: 336eb439dfSFrank Li minItems: 1 34cfa1927fSPeng Fan maxItems: 3 35cfa1927fSPeng Fan 36cfa1927fSPeng Fan interrupts: 376eb439dfSFrank Li minItems: 1 386eb439dfSFrank Li maxItems: 64 39cfa1927fSPeng Fan 40cfa1927fSPeng Fan interrupt-names: 416eb439dfSFrank Li minItems: 1 426eb439dfSFrank Li maxItems: 64 43cfa1927fSPeng Fan 44cfa1927fSPeng Fan "#dma-cells": 456eb439dfSFrank Li enum: 466eb439dfSFrank Li - 2 476eb439dfSFrank Li - 3 48cfa1927fSPeng Fan 49cfa1927fSPeng Fan dma-channels: 50*63f894deSKrzysztof Kozlowski minimum: 1 51*63f894deSKrzysztof Kozlowski maximum: 64 52cfa1927fSPeng Fan 53cfa1927fSPeng Fan clocks: 546eb439dfSFrank Li minItems: 1 55cfa1927fSPeng Fan maxItems: 2 56cfa1927fSPeng Fan 57cfa1927fSPeng Fan clock-names: 586eb439dfSFrank Li minItems: 1 59cfa1927fSPeng Fan maxItems: 2 60cfa1927fSPeng Fan 61cfa1927fSPeng Fan big-endian: 62cfa1927fSPeng Fan description: | 63cfa1927fSPeng Fan If present registers and hardware scatter/gather descriptors of the 64cfa1927fSPeng Fan eDMA are implemented in big endian mode, otherwise in little mode. 65cfa1927fSPeng Fan type: boolean 66cfa1927fSPeng Fan 67cfa1927fSPeng Fanrequired: 68cfa1927fSPeng Fan - "#dma-cells" 69cfa1927fSPeng Fan - compatible 70cfa1927fSPeng Fan - reg 71cfa1927fSPeng Fan - interrupts 72cfa1927fSPeng Fan - clocks 73cfa1927fSPeng Fan - dma-channels 74cfa1927fSPeng Fan 75cfa1927fSPeng FanallOf: 7610cafa2dSKrzysztof Kozlowski - $ref: dma-controller.yaml# 77cfa1927fSPeng Fan - if: 78cfa1927fSPeng Fan properties: 79cfa1927fSPeng Fan compatible: 80cfa1927fSPeng Fan contains: 816eb439dfSFrank Li enum: 826eb439dfSFrank Li - fsl,imx8qm-adma 836eb439dfSFrank Li - fsl,imx8qm-edma 846eb439dfSFrank Li - fsl,imx93-edma3 856eb439dfSFrank Li - fsl,imx93-edma4 866eb439dfSFrank Li then: 876eb439dfSFrank Li properties: 886eb439dfSFrank Li "#dma-cells": 896eb439dfSFrank Li const: 3 906eb439dfSFrank Li # It is not necessary to write the interrupt name for each channel. 916eb439dfSFrank Li # instead, you can simply maintain the sequential IRQ numbers as 926eb439dfSFrank Li # defined for the DMA channels. 936eb439dfSFrank Li interrupt-names: false 946eb439dfSFrank Li clock-names: 956eb439dfSFrank Li items: 966eb439dfSFrank Li - const: dma 976eb439dfSFrank Li clocks: 986eb439dfSFrank Li maxItems: 1 996eb439dfSFrank Li 1006eb439dfSFrank Li - if: 1016eb439dfSFrank Li properties: 1026eb439dfSFrank Li compatible: 1036eb439dfSFrank Li contains: 104cfa1927fSPeng Fan const: fsl,vf610-edma 105cfa1927fSPeng Fan then: 106cfa1927fSPeng Fan properties: 1076eb439dfSFrank Li clocks: 1086eb439dfSFrank Li minItems: 2 109cfa1927fSPeng Fan clock-names: 110cfa1927fSPeng Fan items: 111cfa1927fSPeng Fan - const: dmamux0 112cfa1927fSPeng Fan - const: dmamux1 113cfa1927fSPeng Fan interrupts: 1146eb439dfSFrank Li minItems: 2 115cfa1927fSPeng Fan maxItems: 2 116cfa1927fSPeng Fan interrupt-names: 117cfa1927fSPeng Fan items: 118cfa1927fSPeng Fan - const: edma-tx 119cfa1927fSPeng Fan - const: edma-err 120cfa1927fSPeng Fan reg: 1216eb439dfSFrank Li minItems: 2 122cfa1927fSPeng Fan maxItems: 3 1236eb439dfSFrank Li "#dma-cells": 1246eb439dfSFrank Li const: 2 1256eb439dfSFrank Li dma-channels: 1266eb439dfSFrank Li const: 32 127cfa1927fSPeng Fan 128cfa1927fSPeng Fan - if: 129cfa1927fSPeng Fan properties: 130cfa1927fSPeng Fan compatible: 131cfa1927fSPeng Fan contains: 132cfa1927fSPeng Fan const: fsl,imx7ulp-edma 133cfa1927fSPeng Fan then: 134cfa1927fSPeng Fan properties: 1356eb439dfSFrank Li clock: 1366eb439dfSFrank Li minItems: 2 137cfa1927fSPeng Fan clock-names: 138cfa1927fSPeng Fan items: 139cfa1927fSPeng Fan - const: dma 140cfa1927fSPeng Fan - const: dmamux0 141cfa1927fSPeng Fan interrupts: 1426eb439dfSFrank Li minItems: 2 143cfa1927fSPeng Fan maxItems: 17 144cfa1927fSPeng Fan reg: 1456eb439dfSFrank Li minItems: 2 146cfa1927fSPeng Fan maxItems: 2 1476eb439dfSFrank Li "#dma-cells": 1486eb439dfSFrank Li const: 2 1496eb439dfSFrank Li dma-channels: 1506eb439dfSFrank Li const: 32 151cfa1927fSPeng Fan 152cfa1927fSPeng FanunevaluatedProperties: false 153cfa1927fSPeng Fan 154cfa1927fSPeng Fanexamples: 155cfa1927fSPeng Fan - | 156cfa1927fSPeng Fan #include <dt-bindings/interrupt-controller/arm-gic.h> 157cfa1927fSPeng Fan #include <dt-bindings/clock/vf610-clock.h> 158cfa1927fSPeng Fan 159cfa1927fSPeng Fan edma0: dma-controller@40018000 { 160cfa1927fSPeng Fan #dma-cells = <2>; 161cfa1927fSPeng Fan compatible = "fsl,vf610-edma"; 162cfa1927fSPeng Fan reg = <0x40018000 0x2000>, 163cfa1927fSPeng Fan <0x40024000 0x1000>, 164cfa1927fSPeng Fan <0x40025000 0x1000>; 165cfa1927fSPeng Fan interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>, 166cfa1927fSPeng Fan <0 9 IRQ_TYPE_LEVEL_HIGH>; 167cfa1927fSPeng Fan interrupt-names = "edma-tx", "edma-err"; 168cfa1927fSPeng Fan dma-channels = <32>; 169cfa1927fSPeng Fan clock-names = "dmamux0", "dmamux1"; 170cfa1927fSPeng Fan clocks = <&clks VF610_CLK_DMAMUX0>, <&clks VF610_CLK_DMAMUX1>; 171cfa1927fSPeng Fan }; 172cfa1927fSPeng Fan 173cfa1927fSPeng Fan - | 174cfa1927fSPeng Fan #include <dt-bindings/interrupt-controller/arm-gic.h> 175cfa1927fSPeng Fan #include <dt-bindings/clock/imx7ulp-clock.h> 176cfa1927fSPeng Fan 177cfa1927fSPeng Fan edma1: dma-controller@40080000 { 178cfa1927fSPeng Fan #dma-cells = <2>; 179cfa1927fSPeng Fan compatible = "fsl,imx7ulp-edma"; 180cfa1927fSPeng Fan reg = <0x40080000 0x2000>, 181cfa1927fSPeng Fan <0x40210000 0x1000>; 182cfa1927fSPeng Fan dma-channels = <32>; 183cfa1927fSPeng Fan interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 184cfa1927fSPeng Fan <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 185cfa1927fSPeng Fan <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 186cfa1927fSPeng Fan <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 187cfa1927fSPeng Fan <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 188cfa1927fSPeng Fan <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 189cfa1927fSPeng Fan <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 190cfa1927fSPeng Fan <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 191cfa1927fSPeng Fan <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 192cfa1927fSPeng Fan <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 193cfa1927fSPeng Fan <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 194cfa1927fSPeng Fan <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 195cfa1927fSPeng Fan <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 196cfa1927fSPeng Fan <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 197cfa1927fSPeng Fan <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 198cfa1927fSPeng Fan <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 199cfa1927fSPeng Fan /* last is eDMA2-ERR interrupt */ 200cfa1927fSPeng Fan <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 201cfa1927fSPeng Fan clock-names = "dma", "dmamux0"; 202cfa1927fSPeng Fan clocks = <&pcc2 IMX7ULP_CLK_DMA1>, <&pcc2 IMX7ULP_CLK_DMA_MUX1>; 203cfa1927fSPeng Fan }; 2046eb439dfSFrank Li 2056eb439dfSFrank Li - | 2066eb439dfSFrank Li #include <dt-bindings/interrupt-controller/arm-gic.h> 2076eb439dfSFrank Li #include <dt-bindings/clock/imx93-clock.h> 2086eb439dfSFrank Li 2096eb439dfSFrank Li dma-controller@44000000 { 2106eb439dfSFrank Li compatible = "fsl,imx93-edma3"; 2116eb439dfSFrank Li reg = <0x44000000 0x200000>; 2126eb439dfSFrank Li #dma-cells = <3>; 2136eb439dfSFrank Li dma-channels = <31>; 2146eb439dfSFrank Li interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 2156eb439dfSFrank Li <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, 2166eb439dfSFrank Li <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, 2176eb439dfSFrank Li <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, 2186eb439dfSFrank Li <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, 2196eb439dfSFrank Li <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 2206eb439dfSFrank Li <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 2216eb439dfSFrank Li <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 2226eb439dfSFrank Li <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, 2236eb439dfSFrank Li <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 2246eb439dfSFrank Li <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 2256eb439dfSFrank Li <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 2266eb439dfSFrank Li <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, 2276eb439dfSFrank Li <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, 2286eb439dfSFrank Li <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, 2296eb439dfSFrank Li <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, 2306eb439dfSFrank Li <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>, 2316eb439dfSFrank Li <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, 2326eb439dfSFrank Li <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, 2336eb439dfSFrank Li <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, 2346eb439dfSFrank Li <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, 2356eb439dfSFrank Li <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 2366eb439dfSFrank Li <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 2376eb439dfSFrank Li <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 2386eb439dfSFrank Li <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 2396eb439dfSFrank Li <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 2406eb439dfSFrank Li <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 2416eb439dfSFrank Li <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 2426eb439dfSFrank Li <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 2436eb439dfSFrank Li <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 2446eb439dfSFrank Li <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>; 2456eb439dfSFrank Li clocks = <&clk IMX93_CLK_EDMA1_GATE>; 2466eb439dfSFrank Li clock-names = "dma"; 2476eb439dfSFrank Li }; 248