123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- * Freescale Smart Direct Memory Access (SDMA) Controller for i.MX
- Required properties:
- - compatible : Should be one of
- "fsl,imx25-sdma"
- "fsl,imx31-sdma", "fsl,imx31-to1-sdma", "fsl,imx31-to2-sdma"
- "fsl,imx35-sdma", "fsl,imx35-to1-sdma", "fsl,imx35-to2-sdma"
- "fsl,imx51-sdma"
- "fsl,imx53-sdma"
- "fsl,imx6q-sdma"
- "fsl,imx7d-sdma"
- The -to variants should be preferred since they allow to determine the
- correct ROM script addresses needed for the driver to work without additional
- firmware.
- - reg : Should contain SDMA registers location and length
- - interrupts : Should contain SDMA interrupt
- - #dma-cells : Must be <3>.
- The first cell specifies the DMA request/event ID. See details below
- about the second and third cell.
- - fsl,sdma-ram-script-name : Should contain the full path of SDMA RAM
- scripts firmware
- The second cell of dma phandle specifies the peripheral type of DMA transfer.
- The full ID of peripheral types can be found below.
- ID transfer type
- ---------------------
- 0 MCU domain SSI
- 1 Shared SSI
- 2 MMC
- 3 SDHC
- 4 MCU domain UART
- 5 Shared UART
- 6 FIRI
- 7 MCU domain CSPI
- 8 Shared CSPI
- 9 SIM
- 10 ATA
- 11 CCM
- 12 External peripheral
- 13 Memory Stick Host Controller
- 14 Shared Memory Stick Host Controller
- 15 DSP
- 16 Memory
- 17 FIFO type Memory
- 18 SPDIF
- 19 IPU Memory
- 20 ASRC
- 21 ESAI
- 22 SSI Dual FIFO (needs firmware ver >= 2)
- 23 Shared ASRC
- 24 SAI
- The third cell specifies the transfer priority as below.
- ID transfer priority
- -------------------------
- 0 High
- 1 Medium
- 2 Low
- Optional properties:
- - gpr : The phandle to the General Purpose Register (GPR) node.
- - fsl,sdma-event-remap : Register bits of sdma event remap, the format is
- <reg shift val>.
- reg is the GPR register offset.
- shift is the bit position inside the GPR register.
- val is the value of the bit (0 or 1).
- Examples:
- sdma@83fb0000 {
- compatible = "fsl,imx51-sdma", "fsl,imx35-sdma";
- reg = <0x83fb0000 0x4000>;
- interrupts = <6>;
- #dma-cells = <3>;
- fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
- };
- DMA clients connected to the i.MX SDMA controller must use the format
- described in the dma.txt file.
- Examples:
- ssi2: ssi@70014000 {
- compatible = "fsl,imx51-ssi", "fsl,imx21-ssi";
- reg = <0x70014000 0x4000>;
- interrupts = <30>;
- clocks = <&clks 49>;
- dmas = <&sdma 24 1 0>,
- <&sdma 25 1 0>;
- dma-names = "rx", "tx";
- fsl,fifo-depth = <15>;
- };
- Using the fsl,sdma-event-remap property:
- If we want to use SDMA on the SAI1 port on a MX6SX:
- &sdma {
- gpr = <&gpr>;
- /* SDMA events remap for SAI1_RX and SAI1_TX */
- fsl,sdma-event-remap = <0 15 1>, <0 16 1>;
- };
- The fsl,sdma-event-remap property in this case has two values:
- - <0 15 1> means that the offset is 0, so GPR0 is the register of the
- SDMA remap. Bit 15 of GPR0 selects between UART4_RX and SAI1_RX.
- Setting bit 15 to 1 selects SAI1_RX.
- - <0 16 1> means that the offset is 0, so GPR0 is the register of the
- SDMA remap. Bit 16 of GPR0 selects between UART4_TX and SAI1_TX.
- Setting bit 16 to 1 selects SAI1_TX.
|