xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/dma/ste-dma40.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun* DMA40 DMA Controller
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRequired properties:
4*4882a593Smuzhiyun- compatible: "stericsson,dma40"
5*4882a593Smuzhiyun- reg: Address range of the DMAC registers
6*4882a593Smuzhiyun- reg-names: Names of the above areas to use during resource look-up
7*4882a593Smuzhiyun- interrupt: Should contain the DMAC interrupt number
8*4882a593Smuzhiyun- #dma-cells: must be <3>
9*4882a593Smuzhiyun- memcpy-channels: Channels to be used for memcpy
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunOptional properties:
12*4882a593Smuzhiyun- dma-channels: Number of channels supported by hardware - if not present
13*4882a593Smuzhiyun		the driver will attempt to obtain the information from H/W
14*4882a593Smuzhiyun- disabled-channels: Channels which can not be used
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunExample:
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	dma: dma-controller@801c0000 {
19*4882a593Smuzhiyun		compatible = "stericsson,db8500-dma40", "stericsson,dma40";
20*4882a593Smuzhiyun		reg = <0x801C0000 0x1000  0x40010000 0x800>;
21*4882a593Smuzhiyun		reg-names = "base", "lcpa";
22*4882a593Smuzhiyun		interrupt-parent = <&intc>;
23*4882a593Smuzhiyun		interrupts = <0 25 0x4>;
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun		#dma-cells = <2>;
26*4882a593Smuzhiyun		memcpy-channels  = <56 57 58 59 60>;
27*4882a593Smuzhiyun		disabled-channels  = <12>;
28*4882a593Smuzhiyun		dma-channels = <8>;
29*4882a593Smuzhiyun	};
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunClients
32*4882a593SmuzhiyunRequired properties:
33*4882a593Smuzhiyun- dmas: Comma separated list of dma channel requests
34*4882a593Smuzhiyun- dma-names: Names of the aforementioned requested channels
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunEach dmas request consists of 4 cells:
37*4882a593Smuzhiyun  1. A phandle pointing to the DMA controller
38*4882a593Smuzhiyun  2. Device signal number, the signal line for single and burst requests
39*4882a593Smuzhiyun     connected from the device to the DMA40 engine
40*4882a593Smuzhiyun  3. The DMA request line number (only when 'use fixed channel' is set)
41*4882a593Smuzhiyun  4. A 32bit mask specifying; mode, direction and endianness
42*4882a593Smuzhiyun     [NB: This list will grow]
43*4882a593Smuzhiyun        0x00000001: Mode:
44*4882a593Smuzhiyun                Logical channel when unset
45*4882a593Smuzhiyun                Physical channel when set
46*4882a593Smuzhiyun        0x00000002: Direction:
47*4882a593Smuzhiyun                Memory to Device when unset
48*4882a593Smuzhiyun                Device to Memory when set
49*4882a593Smuzhiyun        0x00000004: Endianness:
50*4882a593Smuzhiyun                Little endian when unset
51*4882a593Smuzhiyun                Big endian when set
52*4882a593Smuzhiyun        0x00000008: Use fixed channel:
53*4882a593Smuzhiyun                Use automatic channel selection when unset
54*4882a593Smuzhiyun                Use DMA request line number when set
55*4882a593Smuzhiyun        0x00000010: Set channel as high priority:
56*4882a593Smuzhiyun                Normal priority when unset
57*4882a593Smuzhiyun                High priority when set
58*4882a593Smuzhiyun
59*4882a593SmuzhiyunExisting signal numbers for the DB8500 ASIC. Unless specified, the signals are
60*4882a593Smuzhiyunbidirectional, i.e. the same for RX and TX operations:
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun0:  SPI controller 0
63*4882a593Smuzhiyun1:  SD/MMC controller 0 (unused)
64*4882a593Smuzhiyun2:  SD/MMC controller 1 (unused)
65*4882a593Smuzhiyun3:  SD/MMC controller 2 (unused)
66*4882a593Smuzhiyun4:  I2C port 1
67*4882a593Smuzhiyun5:  I2C port 3
68*4882a593Smuzhiyun6:  I2C port 2
69*4882a593Smuzhiyun7:  I2C port 4
70*4882a593Smuzhiyun8:  Synchronous Serial Port SSP0
71*4882a593Smuzhiyun9:  Synchronous Serial Port SSP1
72*4882a593Smuzhiyun10: Multi-Channel Display Engine MCDE RX
73*4882a593Smuzhiyun11: UART port 2
74*4882a593Smuzhiyun12: UART port 1
75*4882a593Smuzhiyun13: UART port 0
76*4882a593Smuzhiyun14: Multirate Serial Port MSP2
77*4882a593Smuzhiyun15: I2C port 0
78*4882a593Smuzhiyun16: USB OTG in/out endpoints 7 & 15
79*4882a593Smuzhiyun17: USB OTG in/out endpoints 6 & 14
80*4882a593Smuzhiyun18: USB OTG in/out endpoints 5 & 13
81*4882a593Smuzhiyun19: USB OTG in/out endpoints 4 & 12
82*4882a593Smuzhiyun20: SLIMbus or HSI channel 0
83*4882a593Smuzhiyun21: SLIMbus or HSI channel 1
84*4882a593Smuzhiyun22: SLIMbus or HSI channel 2
85*4882a593Smuzhiyun23: SLIMbus or HSI channel 3
86*4882a593Smuzhiyun24: Multimedia DSP SXA0
87*4882a593Smuzhiyun25: Multimedia DSP SXA1
88*4882a593Smuzhiyun26: Multimedia DSP SXA2
89*4882a593Smuzhiyun27: Multimedia DSP SXA3
90*4882a593Smuzhiyun28: SD/MM controller 2
91*4882a593Smuzhiyun29: SD/MM controller 0
92*4882a593Smuzhiyun30: MSP port 1 on DB8500 v1, MSP port 3 on DB8500 v2
93*4882a593Smuzhiyun31: MSP port 0 or SLIMbus channel 0
94*4882a593Smuzhiyun32: SD/MM controller 1
95*4882a593Smuzhiyun33: SPI controller 2
96*4882a593Smuzhiyun34: i2c3 RX2 TX2
97*4882a593Smuzhiyun35: SPI controller 1
98*4882a593Smuzhiyun36: USB OTG in/out endpoints 3 & 11
99*4882a593Smuzhiyun37: USB OTG in/out endpoints 2 & 10
100*4882a593Smuzhiyun38: USB OTG in/out endpoints 1 & 9
101*4882a593Smuzhiyun39: USB OTG in/out endpoints 8
102*4882a593Smuzhiyun40: SPI controller 3
103*4882a593Smuzhiyun41: SD/MM controller 3
104*4882a593Smuzhiyun42: SD/MM controller 4
105*4882a593Smuzhiyun43: SD/MM controller 5
106*4882a593Smuzhiyun44: Multimedia DSP SXA4
107*4882a593Smuzhiyun45: Multimedia DSP SXA5
108*4882a593Smuzhiyun46: SLIMbus channel 8 or Multimedia DSP SXA6
109*4882a593Smuzhiyun47: SLIMbus channel 9 or Multimedia DSP SXA7
110*4882a593Smuzhiyun48: Crypto Accelerator 1
111*4882a593Smuzhiyun49: Crypto Accelerator 1 TX or Hash Accelerator 1 TX
112*4882a593Smuzhiyun50: Hash Accelerator 1 TX
113*4882a593Smuzhiyun51: memcpy TX (to be used by the DMA driver for memcpy operations)
114*4882a593Smuzhiyun52: SLIMbus or HSI channel 4
115*4882a593Smuzhiyun53: SLIMbus or HSI channel 5
116*4882a593Smuzhiyun54: SLIMbus or HSI channel 6
117*4882a593Smuzhiyun55: SLIMbus or HSI channel 7
118*4882a593Smuzhiyun56: memcpy (to be used by the DMA driver for memcpy operations)
119*4882a593Smuzhiyun57: memcpy (to be used by the DMA driver for memcpy operations)
120*4882a593Smuzhiyun58: memcpy (to be used by the DMA driver for memcpy operations)
121*4882a593Smuzhiyun59: memcpy (to be used by the DMA driver for memcpy operations)
122*4882a593Smuzhiyun60: memcpy (to be used by the DMA driver for memcpy operations)
123*4882a593Smuzhiyun61: Crypto Accelerator 0
124*4882a593Smuzhiyun62: Crypto Accelerator 0 TX or Hash Accelerator 0 TX
125*4882a593Smuzhiyun63: Hash Accelerator 0 TX
126*4882a593Smuzhiyun
127*4882a593SmuzhiyunExample:
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun	uart@80120000 {
130*4882a593Smuzhiyun		compatible = "arm,pl011", "arm,primecell";
131*4882a593Smuzhiyun		reg = <0x80120000 0x1000>;
132*4882a593Smuzhiyun		interrupts = <0 11 0x4>;
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun		dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
135*4882a593Smuzhiyun		       <&dma 13 0 0x0>; /* Logical - MemToDev */
136*4882a593Smuzhiyun		dma-names = "rx", "rx";
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun	};
139