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