1029ab5eaSThierry Reding #ifndef DT_BINDINGS_MEMORY_TEGRA186_MC_H
2029ab5eaSThierry Reding #define DT_BINDINGS_MEMORY_TEGRA186_MC_H
3029ab5eaSThierry Reding 
4029ab5eaSThierry Reding /* special clients */
5029ab5eaSThierry Reding #define TEGRA186_SID_INVALID		0x00
6029ab5eaSThierry Reding #define TEGRA186_SID_PASSTHROUGH	0x7f
7029ab5eaSThierry Reding 
8029ab5eaSThierry Reding /* host1x clients */
9029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X		0x01
10029ab5eaSThierry Reding #define TEGRA186_SID_CSI		0x02
11029ab5eaSThierry Reding #define TEGRA186_SID_VIC		0x03
12029ab5eaSThierry Reding #define TEGRA186_SID_VI			0x04
13029ab5eaSThierry Reding #define TEGRA186_SID_ISP		0x05
14029ab5eaSThierry Reding #define TEGRA186_SID_NVDEC		0x06
15029ab5eaSThierry Reding #define TEGRA186_SID_NVENC		0x07
16029ab5eaSThierry Reding #define TEGRA186_SID_NVJPG		0x08
17029ab5eaSThierry Reding #define TEGRA186_SID_NVDISPLAY		0x09
18029ab5eaSThierry Reding #define TEGRA186_SID_TSEC		0x0a
19029ab5eaSThierry Reding #define TEGRA186_SID_TSECB		0x0b
20029ab5eaSThierry Reding #define TEGRA186_SID_SE			0x0c
21029ab5eaSThierry Reding #define TEGRA186_SID_SE1		0x0d
22029ab5eaSThierry Reding #define TEGRA186_SID_SE2		0x0e
23029ab5eaSThierry Reding #define TEGRA186_SID_SE3		0x0f
24029ab5eaSThierry Reding 
25029ab5eaSThierry Reding /* GPU clients */
26029ab5eaSThierry Reding #define TEGRA186_SID_GPU		0x10
27029ab5eaSThierry Reding 
28029ab5eaSThierry Reding /* other SoC clients */
29029ab5eaSThierry Reding #define TEGRA186_SID_AFI		0x11
30029ab5eaSThierry Reding #define TEGRA186_SID_HDA		0x12
31029ab5eaSThierry Reding #define TEGRA186_SID_ETR		0x13
32029ab5eaSThierry Reding #define TEGRA186_SID_EQOS		0x14
33029ab5eaSThierry Reding #define TEGRA186_SID_UFSHC		0x15
34029ab5eaSThierry Reding #define TEGRA186_SID_AON		0x16
35029ab5eaSThierry Reding #define TEGRA186_SID_SDMMC4		0x17
36029ab5eaSThierry Reding #define TEGRA186_SID_SDMMC3		0x18
37029ab5eaSThierry Reding #define TEGRA186_SID_SDMMC2		0x19
38029ab5eaSThierry Reding #define TEGRA186_SID_SDMMC1		0x1a
39029ab5eaSThierry Reding #define TEGRA186_SID_XUSB_HOST		0x1b
40029ab5eaSThierry Reding #define TEGRA186_SID_XUSB_DEV		0x1c
41029ab5eaSThierry Reding #define TEGRA186_SID_SATA		0x1d
42029ab5eaSThierry Reding #define TEGRA186_SID_APE		0x1e
43029ab5eaSThierry Reding #define TEGRA186_SID_SCE		0x1f
44029ab5eaSThierry Reding 
45029ab5eaSThierry Reding /* GPC DMA clients */
46029ab5eaSThierry Reding #define TEGRA186_SID_GPCDMA_0		0x20
47029ab5eaSThierry Reding #define TEGRA186_SID_GPCDMA_1		0x21
48029ab5eaSThierry Reding #define TEGRA186_SID_GPCDMA_2		0x22
49029ab5eaSThierry Reding #define TEGRA186_SID_GPCDMA_3		0x23
50029ab5eaSThierry Reding #define TEGRA186_SID_GPCDMA_4		0x24
51029ab5eaSThierry Reding #define TEGRA186_SID_GPCDMA_5		0x25
52029ab5eaSThierry Reding #define TEGRA186_SID_GPCDMA_6		0x26
53029ab5eaSThierry Reding #define TEGRA186_SID_GPCDMA_7		0x27
54029ab5eaSThierry Reding 
55029ab5eaSThierry Reding /* APE DMA clients */
56029ab5eaSThierry Reding #define TEGRA186_SID_APE_1		0x28
57029ab5eaSThierry Reding #define TEGRA186_SID_APE_2		0x29
58029ab5eaSThierry Reding 
59029ab5eaSThierry Reding /* camera RTCPU */
60029ab5eaSThierry Reding #define TEGRA186_SID_RCE		0x2a
61029ab5eaSThierry Reding 
62029ab5eaSThierry Reding /* camera RTCPU on host1x address space */
63029ab5eaSThierry Reding #define TEGRA186_SID_RCE_1X		0x2b
64029ab5eaSThierry Reding 
65029ab5eaSThierry Reding /* APE DMA clients */
66029ab5eaSThierry Reding #define TEGRA186_SID_APE_3		0x2c
67029ab5eaSThierry Reding 
68029ab5eaSThierry Reding /* camera RTCPU running on APE */
69029ab5eaSThierry Reding #define TEGRA186_SID_APE_CAM		0x2d
70029ab5eaSThierry Reding #define TEGRA186_SID_APE_CAM_1X		0x2e
71029ab5eaSThierry Reding 
72029ab5eaSThierry Reding /*
73029ab5eaSThierry Reding  * The BPMP has its SID value hardcoded in the firmware. Changing it requires
74029ab5eaSThierry Reding  * considerable effort.
75029ab5eaSThierry Reding  */
76029ab5eaSThierry Reding #define TEGRA186_SID_BPMP		0x32
77029ab5eaSThierry Reding 
78029ab5eaSThierry Reding /* for SMMU tests */
79029ab5eaSThierry Reding #define TEGRA186_SID_SMMU_TEST		0x33
80029ab5eaSThierry Reding 
81029ab5eaSThierry Reding /* host1x virtualization channels */
82029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_CTX0	0x38
83029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_CTX1	0x39
84029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_CTX2	0x3a
85029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_CTX3	0x3b
86029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_CTX4	0x3c
87029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_CTX5	0x3d
88029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_CTX6	0x3e
89029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_CTX7	0x3f
90029ab5eaSThierry Reding 
91029ab5eaSThierry Reding /* host1x command buffers */
92029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_VM0		0x40
93029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_VM1		0x41
94029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_VM2		0x42
95029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_VM3		0x43
96029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_VM4		0x44
97029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_VM5		0x45
98029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_VM6		0x46
99029ab5eaSThierry Reding #define TEGRA186_SID_HOST1X_VM7		0x47
100029ab5eaSThierry Reding 
101029ab5eaSThierry Reding /* SE data buffers */
102029ab5eaSThierry Reding #define TEGRA186_SID_SE_VM0		0x48
103029ab5eaSThierry Reding #define TEGRA186_SID_SE_VM1		0x49
104029ab5eaSThierry Reding #define TEGRA186_SID_SE_VM2		0x4a
105029ab5eaSThierry Reding #define TEGRA186_SID_SE_VM3		0x4b
106029ab5eaSThierry Reding #define TEGRA186_SID_SE_VM4		0x4c
107029ab5eaSThierry Reding #define TEGRA186_SID_SE_VM5		0x4d
108029ab5eaSThierry Reding #define TEGRA186_SID_SE_VM6		0x4e
109029ab5eaSThierry Reding #define TEGRA186_SID_SE_VM7		0x4f
110029ab5eaSThierry Reding 
111*96b0239bSThierry Reding /*
112*96b0239bSThierry Reding  * memory client IDs
113*96b0239bSThierry Reding  */
114*96b0239bSThierry Reding 
115*96b0239bSThierry Reding /* Misses from System Memory Management Unit (SMMU) Page Table Cache (PTC) */
116*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_PTCR 0x00
117*96b0239bSThierry Reding /* PCIE reads */
118*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_AFIR 0x0e
119*96b0239bSThierry Reding /* High-definition audio (HDA) reads */
120*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_HDAR 0x15
121*96b0239bSThierry Reding /* Host channel data reads */
122*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_HOST1XDMAR 0x16
123*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_NVENCSRD 0x1c
124*96b0239bSThierry Reding /* SATA reads */
125*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SATAR 0x1f
126*96b0239bSThierry Reding /* Reads from Cortex-A9 4 CPU cores via the L2 cache */
127*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_MPCORER 0x27
128*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_NVENCSWR 0x2b
129*96b0239bSThierry Reding /* PCIE writes */
130*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_AFIW 0x31
131*96b0239bSThierry Reding /* High-definition audio (HDA) writes */
132*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_HDAW 0x35
133*96b0239bSThierry Reding /* Writes from Cortex-A9 4 CPU cores via the L2 cache */
134*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_MPCOREW 0x39
135*96b0239bSThierry Reding /* SATA writes */
136*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SATAW 0x3d
137*96b0239bSThierry Reding /* ISP Read client for Crossbar A */
138*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_ISPRA 0x44
139*96b0239bSThierry Reding /* ISP Write client for Crossbar A */
140*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_ISPWA 0x46
141*96b0239bSThierry Reding /* ISP Write client Crossbar B */
142*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_ISPWB 0x47
143*96b0239bSThierry Reding /* XUSB reads */
144*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_XUSB_HOSTR 0x4a
145*96b0239bSThierry Reding /* XUSB_HOST writes */
146*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_XUSB_HOSTW 0x4b
147*96b0239bSThierry Reding /* XUSB reads */
148*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_XUSB_DEVR 0x4c
149*96b0239bSThierry Reding /* XUSB_DEV writes */
150*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_XUSB_DEVW 0x4d
151*96b0239bSThierry Reding /* TSEC Memory Return Data Client Description */
152*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_TSECSRD 0x54
153*96b0239bSThierry Reding /* TSEC Memory Write Client Description */
154*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_TSECSWR 0x55
155*96b0239bSThierry Reding /* 3D, ltcx reads instance 0 */
156*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_GPUSRD 0x58
157*96b0239bSThierry Reding /* 3D, ltcx writes instance 0 */
158*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_GPUSWR 0x59
159*96b0239bSThierry Reding /* sdmmca memory read client */
160*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SDMMCRA 0x60
161*96b0239bSThierry Reding /* sdmmcbmemory read client */
162*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SDMMCRAA 0x61
163*96b0239bSThierry Reding /* sdmmc memory read client */
164*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SDMMCR 0x62
165*96b0239bSThierry Reding /* sdmmcd memory read client */
166*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SDMMCRAB 0x63
167*96b0239bSThierry Reding /* sdmmca memory write client */
168*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SDMMCWA 0x64
169*96b0239bSThierry Reding /* sdmmcb memory write client */
170*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SDMMCWAA 0x65
171*96b0239bSThierry Reding /* sdmmc memory write client */
172*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SDMMCW 0x66
173*96b0239bSThierry Reding /* sdmmcd memory write client */
174*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SDMMCWAB 0x67
175*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_VICSRD 0x6c
176*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_VICSWR 0x6d
177*96b0239bSThierry Reding /* VI Write client */
178*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_VIW 0x72
179*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_NVDECSRD 0x78
180*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_NVDECSWR 0x79
181*96b0239bSThierry Reding /* Audio Processing (APE) engine reads */
182*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_APER 0x7a
183*96b0239bSThierry Reding /* Audio Processing (APE) engine writes */
184*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_APEW 0x7b
185*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_NVJPGSRD 0x7e
186*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_NVJPGSWR 0x7f
187*96b0239bSThierry Reding /* SE Memory Return Data Client Description */
188*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SESRD 0x80
189*96b0239bSThierry Reding /* SE Memory Write Client Description */
190*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SESWR 0x81
191*96b0239bSThierry Reding /* ETR reads */
192*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_ETRR 0x84
193*96b0239bSThierry Reding /* ETR writes */
194*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_ETRW 0x85
195*96b0239bSThierry Reding /* TSECB Memory Return Data Client Description */
196*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_TSECSRDB 0x86
197*96b0239bSThierry Reding /* TSECB Memory Write Client Description */
198*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_TSECSWRB 0x87
199*96b0239bSThierry Reding /* 3D, ltcx reads instance 1 */
200*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_GPUSRD2 0x88
201*96b0239bSThierry Reding /* 3D, ltcx writes instance 1 */
202*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_GPUSWR2 0x89
203*96b0239bSThierry Reding /* AXI Switch read client */
204*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_AXISR 0x8c
205*96b0239bSThierry Reding /* AXI Switch write client */
206*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_AXISW 0x8d
207*96b0239bSThierry Reding /* EQOS read client */
208*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_EQOSR 0x8e
209*96b0239bSThierry Reding /* EQOS write client */
210*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_EQOSW 0x8f
211*96b0239bSThierry Reding /* UFSHC read client */
212*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_UFSHCR 0x90
213*96b0239bSThierry Reding /* UFSHC write client */
214*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_UFSHCW 0x91
215*96b0239bSThierry Reding /* NVDISPLAY read client */
216*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_NVDISPLAYR 0x92
217*96b0239bSThierry Reding /* BPMP read client */
218*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_BPMPR 0x93
219*96b0239bSThierry Reding /* BPMP write client */
220*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_BPMPW 0x94
221*96b0239bSThierry Reding /* BPMPDMA read client */
222*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_BPMPDMAR 0x95
223*96b0239bSThierry Reding /* BPMPDMA write client */
224*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_BPMPDMAW 0x96
225*96b0239bSThierry Reding /* AON read client */
226*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_AONR 0x97
227*96b0239bSThierry Reding /* AON write client */
228*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_AONW 0x98
229*96b0239bSThierry Reding /* AONDMA read client */
230*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_AONDMAR 0x99
231*96b0239bSThierry Reding /* AONDMA write client */
232*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_AONDMAW 0x9a
233*96b0239bSThierry Reding /* SCE read client */
234*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SCER 0x9b
235*96b0239bSThierry Reding /* SCE write client */
236*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SCEW 0x9c
237*96b0239bSThierry Reding /* SCEDMA read client */
238*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SCEDMAR 0x9d
239*96b0239bSThierry Reding /* SCEDMA write client */
240*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_SCEDMAW 0x9e
241*96b0239bSThierry Reding /* APEDMA read client */
242*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_APEDMAR 0x9f
243*96b0239bSThierry Reding /* APEDMA write client */
244*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_APEDMAW 0xa0
245*96b0239bSThierry Reding /* NVDISPLAY read client instance 2 */
246*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 0xa1
247*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_VICSRD1 0xa2
248*96b0239bSThierry Reding #define TEGRA186_MEMORY_CLIENT_NVDECSRD1 0xa3
249*96b0239bSThierry Reding 
250029ab5eaSThierry Reding #endif
251