* Atmel Extensible Direct Memory Access Controller (XDMAC) * XDMA Controller Required properties: - compatible: Should be "atmel,<chip>-dma". <chip> compatible description: - sama5d4: first SoC adding the XDMAC - reg: Should contain DMA registers location and length. - interrupts: Should contain DMA interrupt. - #dma-cells: Must be <1>, used to represent the number of integer cells in the dmas property of client devices. - The 1st cell specifies the channel configuration register: - bit 13: SIF, source interface identifier, used to get the memory interface identifier, - bit 14: DIF, destination interface identifier, used to get the peripheral interface identifier, - bit 30-24: PERID, peripheral identifier. Example: dma1: dma-controller@f0004000 { compatible = "atmel,sama5d4-dma"; reg = <0xf0004000 0x200>; interrupts = <50 4 0>; #dma-cells = <1>; }; * DMA clients DMA clients connected to the Atmel XDMA controller must use the format described in the dma.txt file, using a one-cell specifier for each channel. The two cells in order are: 1. A phandle pointing to the DMA controller. 2. Channel configuration register. Configurable fields are: - bit 13: SIF, source interface identifier, used to get the memory interface identifier, - bit 14: DIF, destination interface identifier, used to get the peripheral interface identifier, - bit 30-24: PERID, peripheral identifier. Example: i2c2: i2c@f8024000 { compatible = "atmel,at91sam9x5-i2c"; reg = <0xf8024000 0x4000>; interrupts = <34 4 6>; dmas = <&dma1 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(6))>, <&dma1 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(7))>; dma-names = "tx", "rx"; }; |