15def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 25def4c47SEmmanuel Vadot%YAML 1.2 35def4c47SEmmanuel Vadot--- 45def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/dma/snps,dw-axi-dmac.yaml# 55def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 65def4c47SEmmanuel Vadot 75def4c47SEmmanuel Vadottitle: Synopsys DesignWare AXI DMA Controller 85def4c47SEmmanuel Vadot 95def4c47SEmmanuel Vadotmaintainers: 105def4c47SEmmanuel Vadot - Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> 115def4c47SEmmanuel Vadot 125def4c47SEmmanuel Vadotdescription: 135def4c47SEmmanuel Vadot Synopsys DesignWare AXI DMA Controller DT Binding 145def4c47SEmmanuel Vadot 155def4c47SEmmanuel VadotallOf: 16cb7aa33aSEmmanuel Vadot - $ref: dma-controller.yaml# 175def4c47SEmmanuel Vadot 185def4c47SEmmanuel Vadotproperties: 195def4c47SEmmanuel Vadot compatible: 205def4c47SEmmanuel Vadot enum: 215def4c47SEmmanuel Vadot - snps,axi-dma-1.01a 225def4c47SEmmanuel Vadot - intel,kmb-axi-dma 23fac71e4eSEmmanuel Vadot - starfive,jh7110-axi-dma 24*7d0873ebSEmmanuel Vadot - starfive,jh8100-axi-dma 255def4c47SEmmanuel Vadot 265def4c47SEmmanuel Vadot reg: 275def4c47SEmmanuel Vadot minItems: 1 285def4c47SEmmanuel Vadot items: 295def4c47SEmmanuel Vadot - description: Address range of the DMAC registers 305def4c47SEmmanuel Vadot - description: Address range of the DMAC APB registers 315def4c47SEmmanuel Vadot 325def4c47SEmmanuel Vadot reg-names: 335def4c47SEmmanuel Vadot items: 345def4c47SEmmanuel Vadot - const: axidma_ctrl_regs 355def4c47SEmmanuel Vadot - const: axidma_apb_regs 365def4c47SEmmanuel Vadot 375def4c47SEmmanuel Vadot interrupts: 38b97ee269SEmmanuel Vadot description: 39b97ee269SEmmanuel Vadot If the IP-core synthesis parameter DMAX_INTR_IO_TYPE is set to 1, this 40b97ee269SEmmanuel Vadot will be per-channel interrupts. Otherwise, this is a single combined IRQ 41b97ee269SEmmanuel Vadot for all channels. 42b97ee269SEmmanuel Vadot minItems: 1 43b97ee269SEmmanuel Vadot maxItems: 8 445def4c47SEmmanuel Vadot 455def4c47SEmmanuel Vadot clocks: 465def4c47SEmmanuel Vadot items: 475def4c47SEmmanuel Vadot - description: Bus Clock 485def4c47SEmmanuel Vadot - description: Module Clock 495def4c47SEmmanuel Vadot 505def4c47SEmmanuel Vadot clock-names: 515def4c47SEmmanuel Vadot items: 525def4c47SEmmanuel Vadot - const: core-clk 535def4c47SEmmanuel Vadot - const: cfgr-clk 545def4c47SEmmanuel Vadot 555def4c47SEmmanuel Vadot '#dma-cells': 565def4c47SEmmanuel Vadot const: 1 575def4c47SEmmanuel Vadot 585def4c47SEmmanuel Vadot dma-channels: 595def4c47SEmmanuel Vadot minimum: 1 605def4c47SEmmanuel Vadot maximum: 8 615def4c47SEmmanuel Vadot 62e67e8565SEmmanuel Vadot resets: 63fac71e4eSEmmanuel Vadot minItems: 1 64fac71e4eSEmmanuel Vadot maxItems: 2 65e67e8565SEmmanuel Vadot 665def4c47SEmmanuel Vadot snps,dma-masters: 675def4c47SEmmanuel Vadot description: | 685def4c47SEmmanuel Vadot Number of AXI masters supported by the hardware. 695def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 705def4c47SEmmanuel Vadot enum: [1, 2] 715def4c47SEmmanuel Vadot 725def4c47SEmmanuel Vadot snps,data-width: 735def4c47SEmmanuel Vadot description: | 745def4c47SEmmanuel Vadot AXI data width supported by hardware. 755def4c47SEmmanuel Vadot (0 - 8bits, 1 - 16bits, 2 - 32bits, ..., 6 - 512bits) 765def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 775def4c47SEmmanuel Vadot enum: [0, 1, 2, 3, 4, 5, 6] 785def4c47SEmmanuel Vadot 795def4c47SEmmanuel Vadot snps,priority: 805def4c47SEmmanuel Vadot description: | 815def4c47SEmmanuel Vadot Channel priority specifier associated with the DMA channels. 825def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 835def4c47SEmmanuel Vadot minItems: 1 845def4c47SEmmanuel Vadot maxItems: 8 855def4c47SEmmanuel Vadot 865def4c47SEmmanuel Vadot snps,block-size: 875def4c47SEmmanuel Vadot description: | 885def4c47SEmmanuel Vadot Channel block size specifier associated with the DMA channels. 895def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 905def4c47SEmmanuel Vadot minItems: 1 915def4c47SEmmanuel Vadot maxItems: 8 925def4c47SEmmanuel Vadot 935def4c47SEmmanuel Vadot snps,axi-max-burst-len: 945def4c47SEmmanuel Vadot description: | 955def4c47SEmmanuel Vadot Restrict master AXI burst length by value specified in this property. 965def4c47SEmmanuel Vadot If this property is missing the maximum AXI burst length supported by 975def4c47SEmmanuel Vadot DMAC is used. 985def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 995def4c47SEmmanuel Vadot minimum: 1 1005def4c47SEmmanuel Vadot maximum: 256 1015def4c47SEmmanuel Vadot 1025def4c47SEmmanuel Vadotrequired: 1035def4c47SEmmanuel Vadot - compatible 1045def4c47SEmmanuel Vadot - reg 1055def4c47SEmmanuel Vadot - clocks 1065def4c47SEmmanuel Vadot - clock-names 1075def4c47SEmmanuel Vadot - interrupts 1085def4c47SEmmanuel Vadot - '#dma-cells' 1095def4c47SEmmanuel Vadot - dma-channels 1105def4c47SEmmanuel Vadot - snps,dma-masters 1115def4c47SEmmanuel Vadot - snps,data-width 1125def4c47SEmmanuel Vadot - snps,priority 1135def4c47SEmmanuel Vadot - snps,block-size 1145def4c47SEmmanuel Vadot 115fac71e4eSEmmanuel Vadotif: 116fac71e4eSEmmanuel Vadot properties: 117fac71e4eSEmmanuel Vadot compatible: 118fac71e4eSEmmanuel Vadot contains: 119fac71e4eSEmmanuel Vadot enum: 120fac71e4eSEmmanuel Vadot - starfive,jh7110-axi-dma 121fac71e4eSEmmanuel Vadotthen: 122fac71e4eSEmmanuel Vadot properties: 123fac71e4eSEmmanuel Vadot resets: 124fac71e4eSEmmanuel Vadot minItems: 2 125fac71e4eSEmmanuel Vadot items: 126fac71e4eSEmmanuel Vadot - description: AXI reset line 127fac71e4eSEmmanuel Vadot - description: AHB reset line 128fac71e4eSEmmanuel Vadot - description: module reset 129fac71e4eSEmmanuel Vadotelse: 130fac71e4eSEmmanuel Vadot properties: 131fac71e4eSEmmanuel Vadot resets: 132fac71e4eSEmmanuel Vadot maxItems: 1 133fac71e4eSEmmanuel Vadot 1345def4c47SEmmanuel VadotadditionalProperties: false 1355def4c47SEmmanuel Vadot 1365def4c47SEmmanuel Vadotexamples: 1375def4c47SEmmanuel Vadot - | 1385def4c47SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 1395def4c47SEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 1405def4c47SEmmanuel Vadot /* example with snps,dw-axi-dmac */ 141cb7aa33aSEmmanuel Vadot dma-controller@80000 { 1425def4c47SEmmanuel Vadot compatible = "snps,axi-dma-1.01a"; 1435def4c47SEmmanuel Vadot reg = <0x80000 0x400>; 1445def4c47SEmmanuel Vadot clocks = <&core_clk>, <&cfgr_clk>; 1455def4c47SEmmanuel Vadot clock-names = "core-clk", "cfgr-clk"; 1465def4c47SEmmanuel Vadot interrupt-parent = <&intc>; 1475def4c47SEmmanuel Vadot interrupts = <27>; 1485def4c47SEmmanuel Vadot #dma-cells = <1>; 1495def4c47SEmmanuel Vadot dma-channels = <4>; 1505def4c47SEmmanuel Vadot snps,dma-masters = <2>; 1515def4c47SEmmanuel Vadot snps,data-width = <3>; 1525def4c47SEmmanuel Vadot snps,block-size = <4096 4096 4096 4096>; 1535def4c47SEmmanuel Vadot snps,priority = <0 1 2 3>; 1545def4c47SEmmanuel Vadot snps,axi-max-burst-len = <16>; 1555def4c47SEmmanuel Vadot }; 156