11be5336bSPeter UjfalusiTexas Instruments eDMA 21be5336bSPeter Ujfalusi 31be5336bSPeter UjfalusiThe eDMA3 consists of two components: Channel controller (CC) and Transfer 41be5336bSPeter UjfalusiController(s) (TC). The CC is the main entry for DMA users since it is 51be5336bSPeter Ujfalusiresponsible for the DMA channel handling, while the TCs are responsible to 61be5336bSPeter Ujfalusiexecute the actual DMA tansfer. 71be5336bSPeter Ujfalusi 81be5336bSPeter Ujfalusi------------------------------------------------------------------------------ 91be5336bSPeter UjfalusieDMA3 Channel Controller 101be5336bSPeter Ujfalusi 111be5336bSPeter UjfalusiRequired properties: 12*470bbff0SLokesh Vutla-------------------- 13*470bbff0SLokesh Vutla- compatible: Should be: 14*470bbff0SLokesh Vutla - "ti,edma3-tpcc" for the channel controller(s) on OMAP, 15*470bbff0SLokesh Vutla AM33xx and AM43xx SoCs. 16*470bbff0SLokesh Vutla - "ti,k2g-edma3-tpcc", "ti,edma3-tpcc" for the 17*470bbff0SLokesh Vutla channel controller(s) on 66AK2G. 181be5336bSPeter Ujfalusi- #dma-cells: Should be set to <2>. The first number is the DMA request 191be5336bSPeter Ujfalusi number and the second is the TC the channel is serviced on. 201be5336bSPeter Ujfalusi- reg: Memory map of eDMA CC 211be5336bSPeter Ujfalusi- reg-names: "edma3_cc" 221be5336bSPeter Ujfalusi- interrupts: Interrupt lines for CCINT, MPERR and CCERRINT. 23a5206553SRobert P. J. Day- interrupt-names: "edma3_ccint", "edma3_mperr" and "edma3_ccerrint" 241be5336bSPeter Ujfalusi- ti,tptcs: List of TPTCs associated with the eDMA in the following form: 251be5336bSPeter Ujfalusi <&tptc_phandle TC_priority_number>. The highest priority is 0. 261be5336bSPeter Ujfalusi 27*470bbff0SLokesh VutlaSoC-specific Required properties: 28*470bbff0SLokesh Vutla-------------------------------- 29*470bbff0SLokesh VutlaThe following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only: 30*470bbff0SLokesh Vutla- ti,hwmods: Name of the hwmods associated to the eDMA CC. 31*470bbff0SLokesh Vutla 32*470bbff0SLokesh VutlaThe following are mandatory properties for 66AK2G SoCs only: 33*470bbff0SLokesh Vutla- power-domains:Should contain a phandle to a PM domain provider node 34*470bbff0SLokesh Vutla and an args specifier containing the device id 35*470bbff0SLokesh Vutla value. This property is as per the binding, 36*470bbff0SLokesh Vutla Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 37*470bbff0SLokesh Vutla 381be5336bSPeter UjfalusiOptional properties: 39*470bbff0SLokesh Vutla------------------- 401be5336bSPeter Ujfalusi- ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow 41ecb7deceSPeter Ujfalusi these channels will be SW triggered channels. See example. 421be5336bSPeter Ujfalusi- ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by 431be5336bSPeter Ujfalusi the driver, they are allocated to be used by for example the 441be5336bSPeter Ujfalusi DSP. See example. 451be5336bSPeter Ujfalusi 461be5336bSPeter Ujfalusi------------------------------------------------------------------------------ 471be5336bSPeter UjfalusieDMA3 Transfer Controller 481be5336bSPeter Ujfalusi 491be5336bSPeter UjfalusiRequired properties: 50*470bbff0SLokesh Vutla-------------------- 51*470bbff0SLokesh Vutla- compatible: Should be: 52*470bbff0SLokesh Vutla - "ti,edma3-tptc" for the transfer controller(s) on OMAP, 53*470bbff0SLokesh Vutla AM33xx and AM43xx SoCs. 54*470bbff0SLokesh Vutla - "ti,k2g-edma3-tptc", "ti,edma3-tptc" for the 55*470bbff0SLokesh Vutla transfer controller(s) on 66AK2G. 561be5336bSPeter Ujfalusi- reg: Memory map of eDMA TC 571be5336bSPeter Ujfalusi- interrupts: Interrupt number for TCerrint. 581be5336bSPeter Ujfalusi 59*470bbff0SLokesh VutlaSoC-specific Required properties: 60*470bbff0SLokesh Vutla-------------------------------- 61*470bbff0SLokesh VutlaThe following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only: 62*470bbff0SLokesh Vutla- ti,hwmods: Name of the hwmods associated to the eDMA TC. 63*470bbff0SLokesh Vutla 64*470bbff0SLokesh VutlaThe following are mandatory properties for 66AK2G SoCs only: 65*470bbff0SLokesh Vutla- power-domains:Should contain a phandle to a PM domain provider node 66*470bbff0SLokesh Vutla and an args specifier containing the device id 67*470bbff0SLokesh Vutla value. This property is as per the binding, 68*470bbff0SLokesh Vutla Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt 69*470bbff0SLokesh Vutla 701be5336bSPeter UjfalusiOptional properties: 71*470bbff0SLokesh Vutla------------------- 721be5336bSPeter Ujfalusi- interrupt-names: "edma3_tcerrint" 731be5336bSPeter Ujfalusi 741be5336bSPeter Ujfalusi------------------------------------------------------------------------------ 75*470bbff0SLokesh VutlaExamples: 761be5336bSPeter Ujfalusi 77*470bbff0SLokesh Vutla1. 781be5336bSPeter Ujfalusiedma: edma@49000000 { 791be5336bSPeter Ujfalusi compatible = "ti,edma3-tpcc"; 801be5336bSPeter Ujfalusi ti,hwmods = "tpcc"; 811be5336bSPeter Ujfalusi reg = <0x49000000 0x10000>; 821be5336bSPeter Ujfalusi reg-names = "edma3_cc"; 831be5336bSPeter Ujfalusi interrupts = <12 13 14>; 84a5206553SRobert P. J. Day interrupt-names = "edma3_ccint", "edma3_mperr", "edma3_ccerrint"; 851be5336bSPeter Ujfalusi dma-requests = <64>; 861be5336bSPeter Ujfalusi #dma-cells = <2>; 871be5336bSPeter Ujfalusi 881be5336bSPeter Ujfalusi ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 7>, <&edma_tptc2 0>; 891be5336bSPeter Ujfalusi 901be5336bSPeter Ujfalusi /* Channel 20 and 21 is allocated for memcpy */ 91ecb7deceSPeter Ujfalusi ti,edma-memcpy-channels = <20 21>; 92ae0add74SPeter Ujfalusi /* The following PaRAM slots are reserved: 35-44 and 100-109 */ 93ae0add74SPeter Ujfalusi ti,edma-reserved-slot-ranges = <35 10>, <100 10>; 941be5336bSPeter Ujfalusi}; 951be5336bSPeter Ujfalusi 961be5336bSPeter Ujfalusiedma_tptc0: tptc@49800000 { 971be5336bSPeter Ujfalusi compatible = "ti,edma3-tptc"; 981be5336bSPeter Ujfalusi ti,hwmods = "tptc0"; 991be5336bSPeter Ujfalusi reg = <0x49800000 0x100000>; 1001be5336bSPeter Ujfalusi interrupts = <112>; 1011be5336bSPeter Ujfalusi interrupt-names = "edm3_tcerrint"; 1021be5336bSPeter Ujfalusi}; 1031be5336bSPeter Ujfalusi 1041be5336bSPeter Ujfalusiedma_tptc1: tptc@49900000 { 1051be5336bSPeter Ujfalusi compatible = "ti,edma3-tptc"; 1061be5336bSPeter Ujfalusi ti,hwmods = "tptc1"; 1071be5336bSPeter Ujfalusi reg = <0x49900000 0x100000>; 1081be5336bSPeter Ujfalusi interrupts = <113>; 1091be5336bSPeter Ujfalusi interrupt-names = "edm3_tcerrint"; 1101be5336bSPeter Ujfalusi}; 1111be5336bSPeter Ujfalusi 1121be5336bSPeter Ujfalusiedma_tptc2: tptc@49a00000 { 1131be5336bSPeter Ujfalusi compatible = "ti,edma3-tptc"; 1141be5336bSPeter Ujfalusi ti,hwmods = "tptc2"; 1151be5336bSPeter Ujfalusi reg = <0x49a00000 0x100000>; 1161be5336bSPeter Ujfalusi interrupts = <114>; 1171be5336bSPeter Ujfalusi interrupt-names = "edm3_tcerrint"; 1181be5336bSPeter Ujfalusi}; 1191be5336bSPeter Ujfalusi 1201be5336bSPeter Ujfalusisham: sham@53100000 { 1211be5336bSPeter Ujfalusi compatible = "ti,omap4-sham"; 1221be5336bSPeter Ujfalusi ti,hwmods = "sham"; 1231be5336bSPeter Ujfalusi reg = <0x53100000 0x200>; 1241be5336bSPeter Ujfalusi interrupts = <109>; 1251be5336bSPeter Ujfalusi /* DMA channel 36 executed on eDMA TC0 - low priority queue */ 1261be5336bSPeter Ujfalusi dmas = <&edma 36 0>; 1271be5336bSPeter Ujfalusi dma-names = "rx"; 1281be5336bSPeter Ujfalusi}; 1291be5336bSPeter Ujfalusi 1301be5336bSPeter Ujfalusimcasp0: mcasp@48038000 { 1311be5336bSPeter Ujfalusi compatible = "ti,am33xx-mcasp-audio"; 1321be5336bSPeter Ujfalusi ti,hwmods = "mcasp0"; 1331be5336bSPeter Ujfalusi reg = <0x48038000 0x2000>, 1341be5336bSPeter Ujfalusi <0x46000000 0x400000>; 1351be5336bSPeter Ujfalusi reg-names = "mpu", "dat"; 1361be5336bSPeter Ujfalusi interrupts = <80>, <81>; 1371be5336bSPeter Ujfalusi interrupt-names = "tx", "rx"; 1381be5336bSPeter Ujfalusi status = "disabled"; 1391be5336bSPeter Ujfalusi /* DMA channels 8 and 9 executed on eDMA TC2 - high priority queue */ 1401be5336bSPeter Ujfalusi dmas = <&edma 8 2>, 1411be5336bSPeter Ujfalusi <&edma 9 2>; 1421be5336bSPeter Ujfalusi dma-names = "tx", "rx"; 1431be5336bSPeter Ujfalusi}; 1441be5336bSPeter Ujfalusi 145*470bbff0SLokesh Vutla2. 146*470bbff0SLokesh Vutlaedma1: edma@02728000 { 147*470bbff0SLokesh Vutla compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc"; 148*470bbff0SLokesh Vutla reg = <0x02728000 0x8000>; 149*470bbff0SLokesh Vutla reg-names = "edma3_cc"; 150*470bbff0SLokesh Vutla interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>, 151*470bbff0SLokesh Vutla <GIC_SPI 219 IRQ_TYPE_EDGE_RISING>, 152*470bbff0SLokesh Vutla <GIC_SPI 220 IRQ_TYPE_EDGE_RISING>; 153*470bbff0SLokesh Vutla interrupt-names = "edma3_ccint", "emda3_mperr", 154*470bbff0SLokesh Vutla "edma3_ccerrint"; 155*470bbff0SLokesh Vutla dma-requests = <64>; 156*470bbff0SLokesh Vutla #dma-cells = <2>; 157*470bbff0SLokesh Vutla 158*470bbff0SLokesh Vutla ti,tptcs = <&edma1_tptc0 7>, <&edma1_tptc1 0>; 159*470bbff0SLokesh Vutla 160*470bbff0SLokesh Vutla /* 161*470bbff0SLokesh Vutla * memcpy is disabled, can be enabled with: 162*470bbff0SLokesh Vutla * ti,edma-memcpy-channels = <12 13 14 15>; 163*470bbff0SLokesh Vutla * for example. 164*470bbff0SLokesh Vutla */ 165*470bbff0SLokesh Vutla 166*470bbff0SLokesh Vutla power-domains = <&k2g_pds 0x4f>; 167*470bbff0SLokesh Vutla}; 168*470bbff0SLokesh Vutla 169*470bbff0SLokesh Vutlaedma1_tptc0: tptc@027b0000 { 170*470bbff0SLokesh Vutla compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc"; 171*470bbff0SLokesh Vutla reg = <0x027b0000 0x400>; 172*470bbff0SLokesh Vutla power-domains = <&k2g_pds 0x4f>; 173*470bbff0SLokesh Vutla}; 174*470bbff0SLokesh Vutla 175*470bbff0SLokesh Vutlaedma1_tptc1: tptc@027b8000 { 176*470bbff0SLokesh Vutla compatible = "ti, k2g-edma3-tptc", "ti,edma3-tptc"; 177*470bbff0SLokesh Vutla reg = <0x027b8000 0x400>; 178*470bbff0SLokesh Vutla power-domains = <&k2g_pds 0x4f>; 179*470bbff0SLokesh Vutla}; 180*470bbff0SLokesh Vutla 181*470bbff0SLokesh Vutlammc0: mmc@23000000 { 182*470bbff0SLokesh Vutla compatible = "ti,k2g-hsmmc", "ti,omap4-hsmmc"; 183*470bbff0SLokesh Vutla reg = <0x23000000 0x400>; 184*470bbff0SLokesh Vutla interrupts = <GIC_SPI 96 IRQ_TYPE_EDGE_RISING>; 185*470bbff0SLokesh Vutla dmas = <&edma1 24 0>, <&edma1 25 0>; 186*470bbff0SLokesh Vutla dma-names = "tx", "rx"; 187*470bbff0SLokesh Vutla bus-width = <4>; 188*470bbff0SLokesh Vutla ti,needs-special-reset; 189*470bbff0SLokesh Vutla no-1-8-v; 190*470bbff0SLokesh Vutla max-frequency = <96000000>; 191*470bbff0SLokesh Vutla power-domains = <&k2g_pds 0xb>; 192*470bbff0SLokesh Vutla clocks = <&k2g_clks 0xb 1>, <&k2g_clks 0xb 2>; 193*470bbff0SLokesh Vutla clock-names = "fck", "mmchsdb_fck"; 194*470bbff0SLokesh Vutla status = "disabled"; 195*470bbff0SLokesh Vutla}; 196*470bbff0SLokesh Vutla 1971be5336bSPeter Ujfalusi------------------------------------------------------------------------------ 1981be5336bSPeter UjfalusiDEPRECATED binding, new DTS files must use the ti,edma3-tpcc/ti,edma3-tptc 1991be5336bSPeter Ujfalusibinding. 200bf3156ddSMatt Porter 201bf3156ddSMatt PorterRequired properties: 202bf3156ddSMatt Porter- compatible : "ti,edma3" 203bf3156ddSMatt Porter- #dma-cells: Should be set to <1> 204bf3156ddSMatt Porter Clients should use a single channel number per DMA request. 205bf3156ddSMatt Porter- reg: Memory map for accessing module 206bf3156ddSMatt Porter- interrupt-parent: Interrupt controller the interrupt is routed through 207bf3156ddSMatt Porter- interrupts: Exactly 3 interrupts need to be specified in the order: 208bf3156ddSMatt Porter 1. Transfer completion interrupt. 209bf3156ddSMatt Porter 2. Memory protection interrupt. 210bf3156ddSMatt Porter 3. Error interrupt. 211bf3156ddSMatt PorterOptional properties: 212bf3156ddSMatt Porter- ti,hwmods: Name of the hwmods associated to the EDMA 213bf3156ddSMatt Porter- ti,edma-xbar-event-map: Crossbar event to channel map 214bf3156ddSMatt Porter 215efc24e14SPeter UjfalusiDeprecated properties: 216efc24e14SPeter UjfalusiListed here in case one wants to boot an old kernel with new DTB. These 217efc24e14SPeter Ujfalusiproperties might need to be added to the new DTS files. 218efc24e14SPeter Ujfalusi- ti,edma-regions: Number of regions 219efc24e14SPeter Ujfalusi- ti,edma-slots: Number of slots 220efc24e14SPeter Ujfalusi- dma-channels: Specify total DMA channels per CC 221efc24e14SPeter Ujfalusi 222bf3156ddSMatt PorterExample: 223bf3156ddSMatt Porter 224bf3156ddSMatt Porteredma: edma@49000000 { 225bf3156ddSMatt Porter reg = <0x49000000 0x10000>; 226bf3156ddSMatt Porter interrupt-parent = <&intc>; 227bf3156ddSMatt Porter interrupts = <12 13 14>; 228bf3156ddSMatt Porter compatible = "ti,edma3"; 229bf3156ddSMatt Porter ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2"; 230bf3156ddSMatt Porter #dma-cells = <1>; 231cf7eb979SThomas Gleixner ti,edma-xbar-event-map = /bits/ 16 <1 12 232bf3156ddSMatt Porter 2 13>; 233bf3156ddSMatt Porter}; 234