blob: 95800ab37bb00cce3fdfe2278625e6ba47cdec69 [file] [log] [blame]
Lee Jonesfa332de2013-05-03 15:32:12 +01001* DMA40 DMA Controller
2
3Required properties:
4- compatible: "stericsson,dma40"
5- reg: Address range of the DMAC registers
6- reg-names: Names of the above areas to use during resource look-up
7- interrupt: Should contain the DMAC interrupt number
8- #dma-cells: must be <3>
Lee Jonesa7dacb62013-05-15 10:51:59 +01009- memcpy-channels: Channels to be used for memcpy
Lee Jonesfa332de2013-05-03 15:32:12 +010010
11Optional properties:
12- dma-channels: Number of channels supported by hardware - if not present
13 the driver will attempt to obtain the information from H/W
Lee Jones499c2bc2013-05-15 10:52:02 +010014- disabled-channels: Channels which can not be used
Lee Jonesfa332de2013-05-03 15:32:12 +010015
16Example:
17
18 dma: dma-controller@801C0000 {
19 compatible = "stericsson,db8500-dma40", "stericsson,dma40";
20 reg = <0x801C0000 0x1000 0x40010000 0x800>;
21 reg-names = "base", "lcpa";
22 interrupt-parent = <&intc>;
23 interrupts = <0 25 0x4>;
24
25 #dma-cells = <2>;
Lee Jonesa7dacb62013-05-15 10:51:59 +010026 memcpy-channels = <56 57 58 59 60>;
Lee Jones499c2bc2013-05-15 10:52:02 +010027 disabled-channels = <12>;
Lee Jonesfa332de2013-05-03 15:32:12 +010028 dma-channels = <8>;
29 };
30
31Clients
32Required properties:
33- dmas: Comma separated list of dma channel requests
34- dma-names: Names of the aforementioned requested channels
35
36Each dmas request consists of 4 cells:
37 1. A phandle pointing to the DMA controller
Linus Walleijf60f1412014-06-11 10:49:55 +020038 2. Device signal number, the signal line for single and burst requests
39 connected from the device to the DMA40 engine
Lee Jonesfa332de2013-05-03 15:32:12 +010040 3. The DMA request line number (only when 'use fixed channel' is set)
Linus Walleijf60f1412014-06-11 10:49:55 +020041 4. A 32bit mask specifying; mode, direction and endianness
42 [NB: This list will grow]
Lee Jonesfa332de2013-05-03 15:32:12 +010043 0x00000001: Mode:
44 Logical channel when unset
45 Physical channel when set
46 0x00000002: Direction:
47 Memory to Device when unset
48 Device to Memory when set
Masanari Iida9ca18392013-07-23 00:13:48 +090049 0x00000004: Endianness:
Lee Jonesfa332de2013-05-03 15:32:12 +010050 Little endian when unset
51 Big endian when set
52 0x00000008: Use fixed channel:
53 Use automatic channel selection when unset
54 Use DMA request line number when set
Lee Jones0a05ef02013-11-19 11:07:40 +000055 0x00000010: Set channel as high priority:
56 Normal priority when unset
57 High priority when set
Lee Jonesfa332de2013-05-03 15:32:12 +010058
Linus Walleijf60f1412014-06-11 10:49:55 +020059Existing signal numbers for the DB8500 ASIC. Unless specified, the signals are
60bidirectional, i.e. the same for RX and TX operations:
61
620: SPI controller 0
631: SD/MMC controller 0 (unused)
642: SD/MMC controller 1 (unused)
653: SD/MMC controller 2 (unused)
664: I2C port 1
675: I2C port 3
686: I2C port 2
697: I2C port 4
708: Synchronous Serial Port SSP0
719: Synchronous Serial Port SSP1
7210: Multi-Channel Display Engine MCDE RX
7311: UART port 2
7412: UART port 1
7513: UART port 0
7614: Multirate Serial Port MSP2
7715: I2C port 0
7816: USB OTG in/out endpoints 7 & 15
7917: USB OTG in/out endpoints 6 & 14
8018: USB OTG in/out endpoints 5 & 13
8119: USB OTG in/out endpoints 4 & 12
8220: SLIMbus or HSI channel 0
8321: SLIMbus or HSI channel 1
8422: SLIMbus or HSI channel 2
8523: SLIMbus or HSI channel 3
8624: Multimedia DSP SXA0
8725: Multimedia DSP SXA1
8826: Multimedia DSP SXA2
8927: Multimedia DSP SXA3
9028: SD/MM controller 2
9129: SD/MM controller 0
9230: MSP port 1 on DB8500 v1, MSP port 3 on DB8500 v2
9331: MSP port 0 or SLIMbus channel 0
9432: SD/MM controller 1
9533: SPI controller 2
9634: i2c3 RX2 TX2
9735: SPI controller 1
9836: USB OTG in/out endpoints 3 & 11
9937: USB OTG in/out endpoints 2 & 10
10038: USB OTG in/out endpoints 1 & 9
10139: USB OTG in/out endpoints 8
10240: SPI controller 3
10341: SD/MM controller 3
10442: SD/MM controller 4
10543: SD/MM controller 5
10644: Multimedia DSP SXA4
10745: Multimedia DSP SXA5
10846: SLIMbus channel 8 or Multimedia DSP SXA6
10947: SLIMbus channel 9 or Multimedia DSP SXA7
11048: Crypto Accelerator 1
11149: Crypto Accelerator 1 TX or Hash Accelerator 1 TX
11250: Hash Accelerator 1 TX
11351: memcpy TX (to be used by the DMA driver for memcpy operations)
11452: SLIMbus or HSI channel 4
11553: SLIMbus or HSI channel 5
11654: SLIMbus or HSI channel 6
11755: SLIMbus or HSI channel 7
11856: memcpy (to be used by the DMA driver for memcpy operations)
11957: memcpy (to be used by the DMA driver for memcpy operations)
12058: memcpy (to be used by the DMA driver for memcpy operations)
12159: memcpy (to be used by the DMA driver for memcpy operations)
12260: memcpy (to be used by the DMA driver for memcpy operations)
12361: Crypto Accelerator 0
12462: Crypto Accelerator 0 TX or Hash Accelerator 0 TX
12563: Hash Accelerator 0 TX
126
Lee Jonesfa332de2013-05-03 15:32:12 +0100127Example:
128
129 uart@80120000 {
130 compatible = "arm,pl011", "arm,primecell";
131 reg = <0x80120000 0x1000>;
132 interrupts = <0 11 0x4>;
133
134 dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
135 <&dma 13 0 0x0>; /* Logical - MemToDev */
136 dma-names = "rx", "rx";
137
138 status = "disabled";
139 };