162306a36Sopenharmony_ci* Atmel Extensible Direct Memory Access Controller (XDMAC) 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci* XDMA Controller 462306a36Sopenharmony_ciRequired properties: 562306a36Sopenharmony_ci- compatible: Should be "atmel,sama5d4-dma", "microchip,sam9x60-dma" or 662306a36Sopenharmony_ci "microchip,sama7g5-dma" or 762306a36Sopenharmony_ci "microchip,sam9x7-dma", "atmel,sama5d4-dma". 862306a36Sopenharmony_ci- reg: Should contain DMA registers location and length. 962306a36Sopenharmony_ci- interrupts: Should contain DMA interrupt. 1062306a36Sopenharmony_ci- #dma-cells: Must be <1>, used to represent the number of integer cells in 1162306a36Sopenharmony_cithe dmas property of client devices. 1262306a36Sopenharmony_ci - The 1st cell specifies the channel configuration register: 1362306a36Sopenharmony_ci - bit 13: SIF, source interface identifier, used to get the memory 1462306a36Sopenharmony_ci interface identifier, 1562306a36Sopenharmony_ci - bit 14: DIF, destination interface identifier, used to get the peripheral 1662306a36Sopenharmony_ci interface identifier, 1762306a36Sopenharmony_ci - bit 30-24: PERID, peripheral identifier. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciExample: 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_cidma1: dma-controller@f0004000 { 2262306a36Sopenharmony_ci compatible = "atmel,sama5d4-dma"; 2362306a36Sopenharmony_ci reg = <0xf0004000 0x200>; 2462306a36Sopenharmony_ci interrupts = <50 4 0>; 2562306a36Sopenharmony_ci #dma-cells = <1>; 2662306a36Sopenharmony_ci}; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci* DMA clients 3062306a36Sopenharmony_ciDMA clients connected to the Atmel XDMA controller must use the format 3162306a36Sopenharmony_cidescribed in the dma.txt file, using a one-cell specifier for each channel. 3262306a36Sopenharmony_ciThe two cells in order are: 3362306a36Sopenharmony_ci1. A phandle pointing to the DMA controller. 3462306a36Sopenharmony_ci2. Channel configuration register. Configurable fields are: 3562306a36Sopenharmony_ci - bit 13: SIF, source interface identifier, used to get the memory 3662306a36Sopenharmony_ci interface identifier, 3762306a36Sopenharmony_ci - bit 14: DIF, destination interface identifier, used to get the peripheral 3862306a36Sopenharmony_ci interface identifier, 3962306a36Sopenharmony_ci - bit 30-24: PERID, peripheral identifier. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciExample: 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_cii2c2: i2c@f8024000 { 4462306a36Sopenharmony_ci compatible = "atmel,at91sam9x5-i2c"; 4562306a36Sopenharmony_ci reg = <0xf8024000 0x4000>; 4662306a36Sopenharmony_ci interrupts = <34 4 6>; 4762306a36Sopenharmony_ci dmas = <&dma1 4862306a36Sopenharmony_ci (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 4962306a36Sopenharmony_ci | AT91_XDMAC_DT_PERID(6))>, 5062306a36Sopenharmony_ci <&dma1 5162306a36Sopenharmony_ci (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) 5262306a36Sopenharmony_ci | AT91_XDMAC_DT_PERID(7))>; 5362306a36Sopenharmony_ci dma-names = "tx", "rx"; 5462306a36Sopenharmony_ci}; 55