aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/msm/a4xx_reg.h
blob: 53ed86d1d93324e8f944bfac0c62a65b174cb144 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */

#ifndef _A4XX_REG_H
#define _A4XX_REG_H

/* RB registers */
#define A4XX_RB_GMEM_BASE_ADDR		0xcc0

/* RBBM registers */
#define A4XX_RBBM_AHB_CMD		0x25
#define A4XX_RBBM_SP_HYST_CNT		0x21
#define A4XX_RBBM_AHB_CTL0		0x23
#define A4XX_RBBM_AHB_CTL1		0x24
#define A4XX_RBBM_WAIT_IDLE_CLOCKS_CTL	0x2b
#define A4XX_RBBM_INTERFACE_HANG_INT_CTL	0x2f
#define A4XX_RBBM_INT_CLEAR_CMD		0x36
#define A4XX_RBBM_INT_0_MASK		0x37

#define A4XX_RBBM_PERFCTR_CP_0_LO		0x9c
#define A4XX_RBBM_PERFCTR_CP_0_HI		0x9d
#define A4XX_RBBM_PERFCTR_CP_1_LO		0x9e
#define A4XX_RBBM_PERFCTR_CP_1_HI		0x9f
#define A4XX_RBBM_PERFCTR_RBBM_0_LO		0xac
#define A4XX_RBBM_PERFCTR_RBBM_0_HI		0xad
#define A4XX_RBBM_PERFCTR_RBBM_1_LO		0xae
#define A4XX_RBBM_PERFCTR_RBBM_1_HI		0xaf
#define A4XX_RBBM_PERFCTR_RBBM_2_LO		0xb0
#define A4XX_RBBM_PERFCTR_RBBM_2_HI		0xb1
#define A4XX_RBBM_PERFCTR_RBBM_3_LO		0xb2
#define A4XX_RBBM_PERFCTR_RBBM_3_HI		0xb3
#define A4XX_RBBM_PERFCTR_PC_0_LO		0xb4
#define A4XX_RBBM_PERFCTR_PC_0_HI		0xb5
#define A4XX_RBBM_PERFCTR_PC_1_LO		0xb6
#define A4XX_RBBM_PERFCTR_PC_1_HI		0xb7
#define A4XX_RBBM_PERFCTR_PC_2_LO		0xb8
#define A4XX_RBBM_PERFCTR_PC_2_HI		0xb9
#define A4XX_RBBM_PERFCTR_PC_3_LO		0xba
#define A4XX_RBBM_PERFCTR_PC_3_HI		0xbb
#define A4XX_RBBM_PERFCTR_PC_4_LO		0xbc
#define A4XX_RBBM_PERFCTR_PC_4_HI		0xbd
#define A4XX_RBBM_PERFCTR_PC_5_LO		0xbe
#define A4XX_RBBM_PERFCTR_PC_5_HI		0xbf
#define A4XX_RBBM_PERFCTR_PC_6_LO		0xc0
#define A4XX_RBBM_PERFCTR_PC_6_HI		0xc1
#define A4XX_RBBM_PERFCTR_PC_7_LO		0xc2
#define A4XX_RBBM_PERFCTR_PC_7_HI		0xc3
#define A4XX_RBBM_PERFCTR_VFD_0_LO		0xc4
#define A4XX_RBBM_PERFCTR_VFD_0_HI		0xc5
#define A4XX_RBBM_PERFCTR_VFD_1_LO		0xc6
#define A4XX_RBBM_PERFCTR_VFD_1_HI		0xc7
#define A4XX_RBBM_PERFCTR_VFD_2_LO		0xc8
#define A4XX_RBBM_PERFCTR_VFD_2_HI		0xc9
#define A4XX_RBBM_PERFCTR_VFD_3_LO		0xca
#define A4XX_RBBM_PERFCTR_VFD_3_HI		0xcb
#define A4XX_RBBM_PERFCTR_VFD_4_LO		0xcc
#define A4XX_RBBM_PERFCTR_VFD_4_HI		0xcd
#define A4XX_RBBM_PERFCTR_VFD_5_LO		0xce
#define A4XX_RBBM_PERFCTR_VFD_5_HI		0xcf
#define A4XX_RBBM_PERFCTR_VFD_6_LO		0xd0
#define A4XX_RBBM_PERFCTR_VFD_6_HI		0xd1
#define A4XX_RBBM_PERFCTR_VFD_7_LO		0xd2
#define A4XX_RBBM_PERFCTR_VFD_7_HI		0xd3
#define A4XX_RBBM_PERFCTR_HLSQ_0_LO		0xd4
#define A4XX_RBBM_PERFCTR_HLSQ_0_HI		0xd5
#define A4XX_RBBM_PERFCTR_HLSQ_1_LO		0xd6
#define A4XX_RBBM_PERFCTR_HLSQ_1_HI		0xd7
#define A4XX_RBBM_PERFCTR_HLSQ_2_LO		0xd8
#define A4XX_RBBM_PERFCTR_HLSQ_2_HI		0xd9
#define A4XX_RBBM_PERFCTR_HLSQ_3_LO		0xda
#define A4XX_RBBM_PERFCTR_HLSQ_3_HI		0xdb
#define A4XX_RBBM_PERFCTR_HLSQ_4_LO		0xdc
#define A4XX_RBBM_PERFCTR_HLSQ_4_HI		0xdd
#define A4XX_RBBM_PERFCTR_HLSQ_5_LO		0xde
#define A4XX_RBBM_PERFCTR_HLSQ_5_HI		0xdf
#define A4XX_RBBM_PERFCTR_HLSQ_6_LO		0xe0
#define A4XX_RBBM_PERFCTR_HLSQ_6_HI		0xe1
#define A4XX_RBBM_PERFCTR_HLSQ_7_LO		0xe2
#define A4XX_RBBM_PERFCTR_HLSQ_7_HI		0xe3
#define A4XX_RBBM_PERFCTR_VPC_0_LO		0xe4
#define A4XX_RBBM_PERFCTR_VPC_0_HI		0xe5
#define A4XX_RBBM_PERFCTR_VPC_1_LO		0xe6
#define A4XX_RBBM_PERFCTR_VPC_1_HI		0xe7
#define A4XX_RBBM_PERFCTR_VPC_2_LO		0xe8
#define A4XX_RBBM_PERFCTR_VPC_2_HI		0xe9
#define A4XX_RBBM_PERFCTR_VPC_3_LO		0xea
#define A4XX_RBBM_PERFCTR_VPC_3_HI		0xeb
#define A4XX_RBBM_PERFCTR_CCU_0_LO		0xec
#define A4XX_RBBM_PERFCTR_CCU_0_HI		0xed
#define A4XX_RBBM_PERFCTR_CCU_1_LO		0xee
#define A4XX_RBBM_PERFCTR_CCU_1_HI		0xef
#define A4XX_RBBM_PERFCTR_CCU_2_LO		0xf0
#define A4XX_RBBM_PERFCTR_CCU_2_HI		0xf1
#define A4XX_RBBM_PERFCTR_CCU_3_LO		0xf2
#define A4XX_RBBM_PERFCTR_CCU_3_HI		0xf3
#define A4XX_RBBM_PERFCTR_TSE_0_LO		0xf4
#define A4XX_RBBM_PERFCTR_TSE_0_HI		0xf5
#define A4XX_RBBM_PERFCTR_TSE_1_LO		0xf6
#define A4XX_RBBM_PERFCTR_TSE_1_HI		0xf7
#define A4XX_RBBM_PERFCTR_TSE_2_LO		0xf8
#define A4XX_RBBM_PERFCTR_TSE_2_HI		0xf9
#define A4XX_RBBM_PERFCTR_TSE_3_LO		0xfa
#define A4XX_RBBM_PERFCTR_TSE_3_HI		0xfb
#define A4XX_RBBM_PERFCTR_RAS_0_LO		0xfc
#define A4XX_RBBM_PERFCTR_RAS_0_HI		0xfd
#define A4XX_RBBM_PERFCTR_RAS_1_LO		0xfe
#define A4XX_RBBM_PERFCTR_RAS_1_HI		0xff
#define A4XX_RBBM_PERFCTR_RAS_2_LO		0x100
#define A4XX_RBBM_PERFCTR_RAS_2_HI		0x101
#define A4XX_RBBM_PERFCTR_RAS_3_LO		0x102
#define A4XX_RBBM_PERFCTR_RAS_3_HI		0x103
#define A4XX_RBBM_PERFCTR_UCHE_0_LO		0x104
#define A4XX_RBBM_PERFCTR_UCHE_0_HI		0x105
#define A4XX_RBBM_PERFCTR_UCHE_1_LO		0x106
#define A4XX_RBBM_PERFCTR_UCHE_1_HI		0x107
#define A4XX_RBBM_PERFCTR_UCHE_2_LO		0x108
#define A4XX_RBBM_PERFCTR_UCHE_2_HI		0x109
#define A4XX_RBBM_PERFCTR_UCHE_3_LO		0x10a
#define A4XX_RBBM_PERFCTR_UCHE_3_HI		0x10b
#define A4XX_RBBM_PERFCTR_UCHE_4_LO		0x10c
#define A4XX_RBBM_PERFCTR_UCHE_4_HI		0x10d
#define A4XX_RBBM_PERFCTR_UCHE_5_LO		0x10e
#define A4XX_RBBM_PERFCTR_UCHE_5_HI		0x10f
#define A4XX_RBBM_PERFCTR_UCHE_6_LO		0x110
#define A4XX_RBBM_PERFCTR_UCHE_6_HI		0x111
#define A4XX_RBBM_PERFCTR_UCHE_7_LO		0x112
#define A4XX_RBBM_PERFCTR_UCHE_7_HI		0x113
#define A4XX_RBBM_PERFCTR_TP_0_LO		0x114
#define A4XX_RBBM_PERFCTR_TP_0_HI		0x115
#define A4XX_RBBM_PERFCTR_TP_1_LO		0x116
#define A4XX_RBBM_PERFCTR_TP_1_HI		0x117
#define A4XX_RBBM_PERFCTR_TP_2_LO		0x118
#define A4XX_RBBM_PERFCTR_TP_2_HI		0x119
#define A4XX_RBBM_PERFCTR_TP_3_LO		0x11a
#define A4XX_RBBM_PERFCTR_TP_3_HI		0x11b
#define A4XX_RBBM_PERFCTR_TP_4_LO		0x11c
#define A4XX_RBBM_PERFCTR_TP_4_HI		0x11d
#define A4XX_RBBM_PERFCTR_TP_5_LO		0x11e
#define A4XX_RBBM_PERFCTR_TP_5_HI		0x11f
#define A4XX_RBBM_PERFCTR_TP_6_LO		0x120
#define A4XX_RBBM_PERFCTR_TP_6_HI		0x121
#define A4XX_RBBM_PERFCTR_TP_7_LO		0x122
#define A4XX_RBBM_PERFCTR_TP_7_HI		0x123
#define A4XX_RBBM_PERFCTR_SP_0_LO		0x124
#define A4XX_RBBM_PERFCTR_SP_0_HI		0x125
#define A4XX_RBBM_PERFCTR_SP_1_LO		0x126
#define A4XX_RBBM_PERFCTR_SP_1_HI		0x127
#define A4XX_RBBM_PERFCTR_SP_2_LO		0x128
#define A4XX_RBBM_PERFCTR_SP_2_HI		0x129
#define A4XX_RBBM_PERFCTR_SP_3_LO		0x12a
#define A4XX_RBBM_PERFCTR_SP_3_HI		0x12b
#define A4XX_RBBM_PERFCTR_SP_4_LO		0x12c
#define A4XX_RBBM_PERFCTR_SP_4_HI		0x12d
#define A4XX_RBBM_PERFCTR_SP_5_LO		0x12e
#define A4XX_RBBM_PERFCTR_SP_5_HI		0x12f
#define A4XX_RBBM_PERFCTR_SP_6_LO		0x130
#define A4XX_RBBM_PERFCTR_SP_6_HI		0x131
#define A4XX_RBBM_PERFCTR_SP_7_LO		0x132
#define A4XX_RBBM_PERFCTR_SP_7_HI		0x133
#define A4XX_RBBM_PERFCTR_SP_8_LO		0x134
#define A4XX_RBBM_PERFCTR_SP_8_HI		0x135
#define A4XX_RBBM_PERFCTR_SP_9_LO		0x136
#define A4XX_RBBM_PERFCTR_SP_9_HI		0x137
#define A4XX_RBBM_PERFCTR_SP_10_LO		0x138
#define A4XX_RBBM_PERFCTR_SP_10_HI		0x139
#define A4XX_RBBM_PERFCTR_SP_11_LO		0x13a
#define A4XX_RBBM_PERFCTR_SP_11_HI		0x13b
#define A4XX_RBBM_PERFCTR_RB_0_LO		0x13c
#define A4XX_RBBM_PERFCTR_RB_0_HI		0x13d
#define A4XX_RBBM_PERFCTR_RB_1_LO		0x13e
#define A4XX_RBBM_PERFCTR_RB_1_HI		0x13f
#define A4XX_RBBM_PERFCTR_RB_2_LO		0x140
#define A4XX_RBBM_PERFCTR_RB_2_HI		0x141
#define A4XX_RBBM_PERFCTR_RB_3_LO		0x142
#define A4XX_RBBM_PERFCTR_RB_3_HI		0x143
#define A4XX_RBBM_PERFCTR_RB_4_LO		0x144
#define A4XX_RBBM_PERFCTR_RB_4_HI		0x145
#define A4XX_RBBM_PERFCTR_RB_5_LO		0x146
#define A4XX_RBBM_PERFCTR_RB_5_HI		0x147
#define A4XX_RBBM_PERFCTR_RB_6_LO		0x148
#define A4XX_RBBM_PERFCTR_RB_6_HI		0x149
#define A4XX_RBBM_PERFCTR_RB_7_LO		0x14a
#define A4XX_RBBM_PERFCTR_RB_7_HI		0x14b
#define A4XX_RBBM_PERFCTR_VSC_0_LO		0x14c
#define A4XX_RBBM_PERFCTR_VSC_0_HI		0x14d
#define A4XX_RBBM_PERFCTR_VSC_1_LO		0x14e
#define A4XX_RBBM_PERFCTR_VSC_1_HI		0x14f
#define A4XX_RBBM_PERFCTR_PWR_0_LO		0x166
#define A4XX_RBBM_PERFCTR_PWR_0_HI		0x167
#define A4XX_RBBM_PERFCTR_PWR_1_LO		0x168
#define A4XX_RBBM_PERFCTR_PWR_1_HI		0x169
#define A4XX_RBBM_PERFCTR_CTL			0x170
#define A4XX_RBBM_PERFCTR_LOAD_CMD0		0x171
#define A4XX_RBBM_PERFCTR_LOAD_CMD1		0x172
#define A4XX_RBBM_PERFCTR_LOAD_CMD2		0x173
#define A4XX_RBBM_PERFCTR_RBBM_SEL_0		0x176
#define A4XX_RBBM_PERFCTR_RBBM_SEL_1		0x177
#define A4XX_RBBM_PERFCTR_RBBM_SEL_2		0x178
#define A4XX_RBBM_PERFCTR_RBBM_SEL_3		0x179
#define A4XX_RBBM_GPU_BUSY_MASKED		0x17a
#define A4XX_RBBM_INT_0_STATUS			0x17d
#define A4XX_RBBM_AHB_ERROR_STATUS		0x18f
#define A4XX_RBBM_STATUS			0x191
#define A4XX_RBBM_CFG_COUNTER0			0x1a2
#define A4XX_RBBM_CFG_DEBBUS_TRACE_BUF0		0x1a9
#define A4XX_RBBM_CFG_DEBBUS_TRACE_BUF1		0x1aa
#define A4XX_RBBM_CFG_DEBBUS_TRACE_BUF2		0x1ab
#define A4XX_RBBM_CFG_DEBBUS_TRACE_BUF3		0x1ac
#define A4XX_RBBM_CFG_DEBBUS_TRACE_BUF4		0x1ad
#define A4XX_RBBM_CFG_DEBBUS_MISR0		0x1ae
#define A4XX_RBBM_CFG_DEBBUS_MISR1		0x1af

/* CP registers */
#define A4XX_CP_SCRATCH_REG0		0x578
#define A4XX_CP_SCRATCH_UMASK		0x228
#define A4XX_CP_SCRATCH_ADDR		0x229
#define A4XX_CP_RB_BASE			0x200
#define A4XX_CP_RB_CNTL			0x201
#define A4XX_CP_RB_WPTR			0x205
#define A4XX_CP_RB_RPTR_ADDR		0x203
#define A4XX_CP_RB_RPTR			0x204
#define A4XX_CP_IB1_BASE		0x206
#define A4XX_CP_IB1_BUFSZ		0x207
#define A4XX_CP_IB2_BASE		0x208
#define A4XX_CP_IB2_BUFSZ		0x209
#define A4XX_CP_WFI_PEND_CTR		0x4d2
#define A4XX_CP_ME_CNTL			0x22d
#define A4XX_CP_ME_RAM_WADDR		0x225
#define A4XX_CP_ME_RAM_RADDR		0x226
#define A4XX_CP_ME_RAM_DATA		0x227
#define A4XX_CP_PFP_UCODE_ADDR		0x223
#define A4XX_CP_PFP_UCODE_DATA		0x224
#define A4XX_CP_PROTECT_CTRL		0x250
#define A4XX_CP_DEBUG			0x22e

/* SP registers */
#define A4XX_SP_VS_OBJ_START		0x22e1
#define A4XX_SP_VS_PVT_MEM_ADDR		0x22e3
#define A4XX_SP_FS_OBJ_START		0x22eb
#define A4XX_SP_FS_PVT_MEM_ADDR		0x22ed

/* VPC registers */
#define A4XX_VPC_DEBUG_RAM_SEL		0xe60
#define A4XX_VPC_DEBUG_RAM_READ		0xe61

/* VSC registers */
#define A4XX_VSC_SIZE_ADDRESS		0xc01
#define A4XX_VSC_PIPE_DATA_ADDRESS_0	0xc10
#define A4XX_VSC_PIPE_DATA_LENGTH_7	0xc1f

/* VFD registers */
#define A4XX_VFD_CONTROL_0		0x2200
#define A4XX_VFD_FETCH_INSTR_0_0	0x220a
#define A4XX_VFD_FETCH_INSTR_1_31	0x2287

/* VBIF */
#define A4XX_VBIF_ABIT_SORT		0x301c
#define A4XX_VBIF_ABIT_SORT_CONF	0x301d
#define A4XX_VBIF_GATE_OFF_WRREQ_EN	0x302a
#define A4XX_VBIF_IN_RD_LIM_CONF0	0x302c
#define A4XX_VBIF_IN_RD_LIM_CONF1	0x302d
#define A4XX_VBIF_IN_WR_LIM_CONF0	0x3030
#define A4XX_VBIF_IN_WR_LIM_CONF1	0x3031
#define A4XX_VBIF_ROUND_ROBIN_QOS_ARB	0x3049

#endif /* _A400_REG_H */