mirror of
				https://github.com/oplus-giulia-dev/android_kernel_oneplus_sm8650-devicetrees
				synced 2025-11-04 14:45:59 +08:00 
			
		
		
		
	Add snapshot of device tree bindings from keystone common kernel, branch
"android-mainline-keystone-qcom-release" at 3da6de37c76b ("Snap for
8113462 from e98653b1be1521039c56a905ccc4860bac47118c to
android-mainline-keystone-qcom-release").
Change-Id: I05e4ecc6512d1e8b085f4495b16eb559a0a94de0
		
	
		
			
				
	
	
		
			139 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
* DMA40 DMA Controller
 | 
						|
 | 
						|
Required properties:
 | 
						|
- compatible: "stericsson,dma40"
 | 
						|
- reg: Address range of the DMAC registers
 | 
						|
- reg-names: Names of the above areas to use during resource look-up
 | 
						|
- interrupt: Should contain the DMAC interrupt number
 | 
						|
- #dma-cells: must be <3>
 | 
						|
- memcpy-channels: Channels to be used for memcpy
 | 
						|
 | 
						|
Optional properties:
 | 
						|
- dma-channels: Number of channels supported by hardware - if not present
 | 
						|
		the driver will attempt to obtain the information from H/W
 | 
						|
- disabled-channels: Channels which can not be used
 | 
						|
 | 
						|
Example:
 | 
						|
 | 
						|
	dma: dma-controller@801c0000 {
 | 
						|
		compatible = "stericsson,db8500-dma40", "stericsson,dma40";
 | 
						|
		reg = <0x801C0000 0x1000  0x40010000 0x800>;
 | 
						|
		reg-names = "base", "lcpa";
 | 
						|
		interrupt-parent = <&intc>;
 | 
						|
		interrupts = <0 25 0x4>;
 | 
						|
 | 
						|
		#dma-cells = <2>;
 | 
						|
		memcpy-channels  = <56 57 58 59 60>;
 | 
						|
		disabled-channels  = <12>;
 | 
						|
		dma-channels = <8>;
 | 
						|
	};
 | 
						|
 | 
						|
Clients
 | 
						|
Required properties:
 | 
						|
- dmas: Comma separated list of dma channel requests
 | 
						|
- dma-names: Names of the aforementioned requested channels
 | 
						|
 | 
						|
Each dmas request consists of 4 cells:
 | 
						|
  1. A phandle pointing to the DMA controller
 | 
						|
  2. Device signal number, the signal line for single and burst requests
 | 
						|
     connected from the device to the DMA40 engine
 | 
						|
  3. The DMA request line number (only when 'use fixed channel' is set)
 | 
						|
  4. A 32bit mask specifying; mode, direction and endianness
 | 
						|
     [NB: This list will grow]
 | 
						|
        0x00000001: Mode:
 | 
						|
                Logical channel when unset
 | 
						|
                Physical channel when set
 | 
						|
        0x00000002: Direction:
 | 
						|
                Memory to Device when unset
 | 
						|
                Device to Memory when set
 | 
						|
        0x00000004: Endianness:
 | 
						|
                Little endian when unset
 | 
						|
                Big endian when set
 | 
						|
        0x00000008: Use fixed channel:
 | 
						|
                Use automatic channel selection when unset
 | 
						|
                Use DMA request line number when set
 | 
						|
        0x00000010: Set channel as high priority:
 | 
						|
                Normal priority when unset
 | 
						|
                High priority when set
 | 
						|
 | 
						|
Existing signal numbers for the DB8500 ASIC. Unless specified, the signals are
 | 
						|
bidirectional, i.e. the same for RX and TX operations:
 | 
						|
 | 
						|
0:  SPI controller 0
 | 
						|
1:  SD/MMC controller 0 (unused)
 | 
						|
2:  SD/MMC controller 1 (unused)
 | 
						|
3:  SD/MMC controller 2 (unused)
 | 
						|
4:  I2C port 1
 | 
						|
5:  I2C port 3
 | 
						|
6:  I2C port 2
 | 
						|
7:  I2C port 4
 | 
						|
8:  Synchronous Serial Port SSP0
 | 
						|
9:  Synchronous Serial Port SSP1
 | 
						|
10: Multi-Channel Display Engine MCDE RX
 | 
						|
11: UART port 2
 | 
						|
12: UART port 1
 | 
						|
13: UART port 0
 | 
						|
14: Multirate Serial Port MSP2
 | 
						|
15: I2C port 0
 | 
						|
16: USB OTG in/out endpoints 7 & 15
 | 
						|
17: USB OTG in/out endpoints 6 & 14
 | 
						|
18: USB OTG in/out endpoints 5 & 13
 | 
						|
19: USB OTG in/out endpoints 4 & 12
 | 
						|
20: SLIMbus or HSI channel 0
 | 
						|
21: SLIMbus or HSI channel 1
 | 
						|
22: SLIMbus or HSI channel 2
 | 
						|
23: SLIMbus or HSI channel 3
 | 
						|
24: Multimedia DSP SXA0
 | 
						|
25: Multimedia DSP SXA1
 | 
						|
26: Multimedia DSP SXA2
 | 
						|
27: Multimedia DSP SXA3
 | 
						|
28: SD/MM controller 2
 | 
						|
29: SD/MM controller 0
 | 
						|
30: MSP port 1 on DB8500 v1, MSP port 3 on DB8500 v2
 | 
						|
31: MSP port 0 or SLIMbus channel 0
 | 
						|
32: SD/MM controller 1
 | 
						|
33: SPI controller 2
 | 
						|
34: i2c3 RX2 TX2
 | 
						|
35: SPI controller 1
 | 
						|
36: USB OTG in/out endpoints 3 & 11
 | 
						|
37: USB OTG in/out endpoints 2 & 10
 | 
						|
38: USB OTG in/out endpoints 1 & 9
 | 
						|
39: USB OTG in/out endpoints 8
 | 
						|
40: SPI controller 3
 | 
						|
41: SD/MM controller 3
 | 
						|
42: SD/MM controller 4
 | 
						|
43: SD/MM controller 5
 | 
						|
44: Multimedia DSP SXA4
 | 
						|
45: Multimedia DSP SXA5
 | 
						|
46: SLIMbus channel 8 or Multimedia DSP SXA6
 | 
						|
47: SLIMbus channel 9 or Multimedia DSP SXA7
 | 
						|
48: Crypto Accelerator 1
 | 
						|
49: Crypto Accelerator 1 TX or Hash Accelerator 1 TX
 | 
						|
50: Hash Accelerator 1 TX
 | 
						|
51: memcpy TX (to be used by the DMA driver for memcpy operations)
 | 
						|
52: SLIMbus or HSI channel 4
 | 
						|
53: SLIMbus or HSI channel 5
 | 
						|
54: SLIMbus or HSI channel 6
 | 
						|
55: SLIMbus or HSI channel 7
 | 
						|
56: memcpy (to be used by the DMA driver for memcpy operations)
 | 
						|
57: memcpy (to be used by the DMA driver for memcpy operations)
 | 
						|
58: memcpy (to be used by the DMA driver for memcpy operations)
 | 
						|
59: memcpy (to be used by the DMA driver for memcpy operations)
 | 
						|
60: memcpy (to be used by the DMA driver for memcpy operations)
 | 
						|
61: Crypto Accelerator 0
 | 
						|
62: Crypto Accelerator 0 TX or Hash Accelerator 0 TX
 | 
						|
63: Hash Accelerator 0 TX
 | 
						|
 | 
						|
Example:
 | 
						|
 | 
						|
	uart@80120000 {
 | 
						|
		compatible = "arm,pl011", "arm,primecell";
 | 
						|
		reg = <0x80120000 0x1000>;
 | 
						|
		interrupts = <0 11 0x4>;
 | 
						|
 | 
						|
		dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
 | 
						|
		       <&dma 13 0 0x0>; /* Logical - MemToDev */
 | 
						|
		dma-names = "rx", "rx";
 | 
						|
 | 
						|
	};
 |