1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * AMD ACP 3.1 Register Documentation
4  *
5  * Copyright 2020 Advanced Micro Devices, Inc.
6  */
7 
8 #ifndef _rn_OFFSET_HEADER
9 #define _rn_OFFSET_HEADER
10 // Registers from ACP_DMA block
11 
12 #define ACP_DMA_CNTL_0                                0x1240000
13 #define ACP_DMA_CNTL_1                                0x1240004
14 #define ACP_DMA_CNTL_2                                0x1240008
15 #define ACP_DMA_CNTL_3                                0x124000C
16 #define ACP_DMA_CNTL_4                                0x1240010
17 #define ACP_DMA_CNTL_5                                0x1240014
18 #define ACP_DMA_CNTL_6                                0x1240018
19 #define ACP_DMA_CNTL_7                                0x124001C
20 #define ACP_DMA_DSCR_STRT_IDX_0                       0x1240020
21 #define ACP_DMA_DSCR_STRT_IDX_1                       0x1240024
22 #define ACP_DMA_DSCR_STRT_IDX_2                       0x1240028
23 #define ACP_DMA_DSCR_STRT_IDX_3                       0x124002C
24 #define ACP_DMA_DSCR_STRT_IDX_4                       0x1240030
25 #define ACP_DMA_DSCR_STRT_IDX_5                       0x1240034
26 #define ACP_DMA_DSCR_STRT_IDX_6                       0x1240038
27 #define ACP_DMA_DSCR_STRT_IDX_7                       0x124003C
28 #define ACP_DMA_DSCR_CNT_0                            0x1240040
29 #define ACP_DMA_DSCR_CNT_1                            0x1240044
30 #define ACP_DMA_DSCR_CNT_2                            0x1240048
31 #define ACP_DMA_DSCR_CNT_3                            0x124004C
32 #define ACP_DMA_DSCR_CNT_4                            0x1240050
33 #define ACP_DMA_DSCR_CNT_5                            0x1240054
34 #define ACP_DMA_DSCR_CNT_6                            0x1240058
35 #define ACP_DMA_DSCR_CNT_7                            0x124005C
36 #define ACP_DMA_PRIO_0                                0x1240060
37 #define ACP_DMA_PRIO_1                                0x1240064
38 #define ACP_DMA_PRIO_2                                0x1240068
39 #define ACP_DMA_PRIO_3                                0x124006C
40 #define ACP_DMA_PRIO_4                                0x1240070
41 #define ACP_DMA_PRIO_5                                0x1240074
42 #define ACP_DMA_PRIO_6                                0x1240078
43 #define ACP_DMA_PRIO_7                                0x124007C
44 #define ACP_DMA_CUR_DSCR_0                            0x1240080
45 #define ACP_DMA_CUR_DSCR_1                            0x1240084
46 #define ACP_DMA_CUR_DSCR_2                            0x1240088
47 #define ACP_DMA_CUR_DSCR_3                            0x124008C
48 #define ACP_DMA_CUR_DSCR_4                            0x1240090
49 #define ACP_DMA_CUR_DSCR_5                            0x1240094
50 #define ACP_DMA_CUR_DSCR_6                            0x1240098
51 #define ACP_DMA_CUR_DSCR_7                            0x124009C
52 #define ACP_DMA_CUR_TRANS_CNT_0                       0x12400A0
53 #define ACP_DMA_CUR_TRANS_CNT_1                       0x12400A4
54 #define ACP_DMA_CUR_TRANS_CNT_2                       0x12400A8
55 #define ACP_DMA_CUR_TRANS_CNT_3                       0x12400AC
56 #define ACP_DMA_CUR_TRANS_CNT_4                       0x12400B0
57 #define ACP_DMA_CUR_TRANS_CNT_5                       0x12400B4
58 #define ACP_DMA_CUR_TRANS_CNT_6                       0x12400B8
59 #define ACP_DMA_CUR_TRANS_CNT_7                       0x12400BC
60 #define ACP_DMA_ERR_STS_0                             0x12400C0
61 #define ACP_DMA_ERR_STS_1                             0x12400C4
62 #define ACP_DMA_ERR_STS_2                             0x12400C8
63 #define ACP_DMA_ERR_STS_3                             0x12400CC
64 #define ACP_DMA_ERR_STS_4                             0x12400D0
65 #define ACP_DMA_ERR_STS_5                             0x12400D4
66 #define ACP_DMA_ERR_STS_6                             0x12400D8
67 #define ACP_DMA_ERR_STS_7                             0x12400DC
68 #define ACP_DMA_DESC_BASE_ADDR                        0x12400E0
69 #define ACP_DMA_DESC_MAX_NUM_DSCR                     0x12400E4
70 #define ACP_DMA_CH_STS                                0x12400E8
71 #define ACP_DMA_CH_GROUP                              0x12400EC
72 #define ACP_DMA_CH_RST_STS                            0x12400F0
73 
74 // Registers from ACP_AXI2AXIATU block
75 
76 #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_1                0x1240C00
77 #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_1                0x1240C04
78 #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_2                0x1240C08
79 #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_2                0x1240C0C
80 #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_3                0x1240C10
81 #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_3                0x1240C14
82 #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_4                0x1240C18
83 #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_4                0x1240C1C
84 #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_5                0x1240C20
85 #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_5                0x1240C24
86 #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_6                0x1240C28
87 #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_6                0x1240C2C
88 #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_7                0x1240C30
89 #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_7                0x1240C34
90 #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_8                0x1240C38
91 #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_8                0x1240C3C
92 #define ACPAXI2AXI_ATU_CTRL                           0x1240C40
93 
94 // Registers from ACP_CLKRST block
95 
96 #define ACP_SOFT_RESET                                0x1241000
97 #define ACP_CONTROL                                   0x1241004
98 #define ACP_STATUS                                    0x1241008
99 #define ACP_DYNAMIC_CG_MASTER_CONTROL                 0x1241010
100 
101 // Registers from ACP_MISC block
102 
103 #define ACP_EXTERNAL_INTR_ENB                         0x1241800
104 #define ACP_EXTERNAL_INTR_CNTL                        0x1241804
105 #define ACP_EXTERNAL_INTR_STAT                        0x1241808
106 #define ACP_PGMEM_CTRL                                0x12418C0
107 #define ACP_ERROR_STATUS                              0x12418C4
108 #define ACP_SW_I2S_ERROR_REASON                       0x12418C8
109 #define ACP_MEM_PG_STS                                0x12418CC
110 
111 // Registers from ACP_PGFSM block
112 
113 #define ACP_I2S_PIN_CONFIG                            0x1241400
114 #define ACP_PAD_PULLUP_PULLDOWN_CTRL                  0x1241404
115 #define ACP_PAD_DRIVE_STRENGTH_CTRL                   0x1241408
116 #define ACP_SW_PAD_KEEPER_EN                          0x124140C
117 #define ACP_PGFSM_CONTROL                             0x124141C
118 #define ACP_PGFSM_STATUS                              0x1241420
119 #define ACP_CLKMUX_SEL                                0x1241424
120 #define ACP_DEVICE_STATE                              0x1241428
121 #define AZ_DEVICE_STATE                               0x124142C
122 #define ACP_INTR_URGENCY_TIMER                        0x1241430
123 #define AZ_INTR_URGENCY_TIMER                         0x1241434
124 
125 // Registers from ACP_SCRATCH block
126 
127 #define ACP_SCRATCH_REG_0                             0x1250000
128 #define ACP_SCRATCH_REG_1                             0x1250004
129 #define ACP_SCRATCH_REG_2                             0x1250008
130 #define ACP_SCRATCH_REG_3                             0x125000C
131 #define ACP_SCRATCH_REG_4                             0x1250010
132 #define ACP_SCRATCH_REG_5                             0x1250014
133 #define ACP_SCRATCH_REG_6                             0x1250018
134 #define ACP_SCRATCH_REG_7                             0x125001C
135 #define ACP_SCRATCH_REG_8                             0x1250020
136 #define ACP_SCRATCH_REG_9                             0x1250024
137 #define ACP_SCRATCH_REG_10                            0x1250028
138 #define ACP_SCRATCH_REG_11                            0x125002C
139 #define ACP_SCRATCH_REG_12                            0x1250030
140 #define ACP_SCRATCH_REG_13                            0x1250034
141 #define ACP_SCRATCH_REG_14                            0x1250038
142 #define ACP_SCRATCH_REG_15                            0x125003C
143 #define ACP_SCRATCH_REG_16                            0x1250040
144 #define ACP_SCRATCH_REG_17                            0x1250044
145 #define ACP_SCRATCH_REG_18                            0x1250048
146 #define ACP_SCRATCH_REG_19                            0x125004C
147 #define ACP_SCRATCH_REG_20                            0x1250050
148 #define ACP_SCRATCH_REG_21                            0x1250054
149 #define ACP_SCRATCH_REG_22                            0x1250058
150 #define ACP_SCRATCH_REG_23                            0x125005C
151 #define ACP_SCRATCH_REG_24                            0x1250060
152 #define ACP_SCRATCH_REG_25                            0x1250064
153 #define ACP_SCRATCH_REG_26                            0x1250068
154 #define ACP_SCRATCH_REG_27                            0x125006C
155 #define ACP_SCRATCH_REG_28                            0x1250070
156 #define ACP_SCRATCH_REG_29                            0x1250074
157 #define ACP_SCRATCH_REG_30                            0x1250078
158 #define ACP_SCRATCH_REG_31                            0x125007C
159 #define ACP_SCRATCH_REG_32                            0x1250080
160 #define ACP_SCRATCH_REG_33                            0x1250084
161 #define ACP_SCRATCH_REG_34                            0x1250088
162 #define ACP_SCRATCH_REG_35                            0x125008C
163 #define ACP_SCRATCH_REG_36                            0x1250090
164 #define ACP_SCRATCH_REG_37                            0x1250094
165 #define ACP_SCRATCH_REG_38                            0x1250098
166 #define ACP_SCRATCH_REG_39                            0x125009C
167 #define ACP_SCRATCH_REG_40                            0x12500A0
168 #define ACP_SCRATCH_REG_41                            0x12500A4
169 #define ACP_SCRATCH_REG_42                            0x12500A8
170 #define ACP_SCRATCH_REG_43                            0x12500AC
171 #define ACP_SCRATCH_REG_44                            0x12500B0
172 #define ACP_SCRATCH_REG_45                            0x12500B4
173 #define ACP_SCRATCH_REG_46                            0x12500B8
174 #define ACP_SCRATCH_REG_47                            0x12500BC
175 #define ACP_SCRATCH_REG_48                            0x12500C0
176 #define ACP_SCRATCH_REG_49                            0x12500C4
177 #define ACP_SCRATCH_REG_50                            0x12500C8
178 #define ACP_SCRATCH_REG_51                            0x12500CC
179 #define ACP_SCRATCH_REG_52                            0x12500D0
180 #define ACP_SCRATCH_REG_53                            0x12500D4
181 #define ACP_SCRATCH_REG_54                            0x12500D8
182 #define ACP_SCRATCH_REG_55                            0x12500DC
183 #define ACP_SCRATCH_REG_56                            0x12500E0
184 #define ACP_SCRATCH_REG_57                            0x12500E4
185 #define ACP_SCRATCH_REG_58                            0x12500E8
186 #define ACP_SCRATCH_REG_59                            0x12500EC
187 #define ACP_SCRATCH_REG_60                            0x12500F0
188 #define ACP_SCRATCH_REG_61                            0x12500F4
189 #define ACP_SCRATCH_REG_62                            0x12500F8
190 #define ACP_SCRATCH_REG_63                            0x12500FC
191 #define ACP_SCRATCH_REG_64                            0x1250100
192 #define ACP_SCRATCH_REG_65                            0x1250104
193 #define ACP_SCRATCH_REG_66                            0x1250108
194 #define ACP_SCRATCH_REG_67                            0x125010C
195 #define ACP_SCRATCH_REG_68                            0x1250110
196 #define ACP_SCRATCH_REG_69                            0x1250114
197 #define ACP_SCRATCH_REG_70                            0x1250118
198 #define ACP_SCRATCH_REG_71                            0x125011C
199 #define ACP_SCRATCH_REG_72                            0x1250120
200 #define ACP_SCRATCH_REG_73                            0x1250124
201 #define ACP_SCRATCH_REG_74                            0x1250128
202 #define ACP_SCRATCH_REG_75                            0x125012C
203 #define ACP_SCRATCH_REG_76                            0x1250130
204 #define ACP_SCRATCH_REG_77                            0x1250134
205 #define ACP_SCRATCH_REG_78                            0x1250138
206 #define ACP_SCRATCH_REG_79                            0x125013C
207 #define ACP_SCRATCH_REG_80                            0x1250140
208 #define ACP_SCRATCH_REG_81                            0x1250144
209 #define ACP_SCRATCH_REG_82                            0x1250148
210 #define ACP_SCRATCH_REG_83                            0x125014C
211 #define ACP_SCRATCH_REG_84                            0x1250150
212 #define ACP_SCRATCH_REG_85                            0x1250154
213 #define ACP_SCRATCH_REG_86                            0x1250158
214 #define ACP_SCRATCH_REG_87                            0x125015C
215 #define ACP_SCRATCH_REG_88                            0x1250160
216 #define ACP_SCRATCH_REG_89                            0x1250164
217 #define ACP_SCRATCH_REG_90                            0x1250168
218 #define ACP_SCRATCH_REG_91                            0x125016C
219 #define ACP_SCRATCH_REG_92                            0x1250170
220 #define ACP_SCRATCH_REG_93                            0x1250174
221 #define ACP_SCRATCH_REG_94                            0x1250178
222 #define ACP_SCRATCH_REG_95                            0x125017C
223 #define ACP_SCRATCH_REG_96                            0x1250180
224 #define ACP_SCRATCH_REG_97                            0x1250184
225 #define ACP_SCRATCH_REG_98                            0x1250188
226 #define ACP_SCRATCH_REG_99                            0x125018C
227 #define ACP_SCRATCH_REG_100                           0x1250190
228 #define ACP_SCRATCH_REG_101                           0x1250194
229 #define ACP_SCRATCH_REG_102                           0x1250198
230 #define ACP_SCRATCH_REG_103                           0x125019C
231 #define ACP_SCRATCH_REG_104                           0x12501A0
232 #define ACP_SCRATCH_REG_105                           0x12501A4
233 #define ACP_SCRATCH_REG_106                           0x12501A8
234 #define ACP_SCRATCH_REG_107                           0x12501AC
235 #define ACP_SCRATCH_REG_108                           0x12501B0
236 #define ACP_SCRATCH_REG_109                           0x12501B4
237 #define ACP_SCRATCH_REG_110                           0x12501B8
238 #define ACP_SCRATCH_REG_111                           0x12501BC
239 #define ACP_SCRATCH_REG_112                           0x12501C0
240 #define ACP_SCRATCH_REG_113                           0x12501C4
241 #define ACP_SCRATCH_REG_114                           0x12501C8
242 #define ACP_SCRATCH_REG_115                           0x12501CC
243 #define ACP_SCRATCH_REG_116                           0x12501D0
244 #define ACP_SCRATCH_REG_117                           0x12501D4
245 #define ACP_SCRATCH_REG_118                           0x12501D8
246 #define ACP_SCRATCH_REG_119                           0x12501DC
247 #define ACP_SCRATCH_REG_120                           0x12501E0
248 #define ACP_SCRATCH_REG_121                           0x12501E4
249 #define ACP_SCRATCH_REG_122                           0x12501E8
250 #define ACP_SCRATCH_REG_123                           0x12501EC
251 #define ACP_SCRATCH_REG_124                           0x12501F0
252 #define ACP_SCRATCH_REG_125                           0x12501F4
253 #define ACP_SCRATCH_REG_126                           0x12501F8
254 #define ACP_SCRATCH_REG_127                           0x12501FC
255 #define ACP_SCRATCH_REG_128                           0x1250200
256 
257 // Registers from ACP_AUDIO_BUFFERS block
258 
259 #define ACP_I2S_RX_RINGBUFADDR                        0x1242000
260 #define ACP_I2S_RX_RINGBUFSIZE                        0x1242004
261 #define ACP_I2S_RX_LINKPOSITIONCNTR                   0x1242008
262 #define ACP_I2S_RX_FIFOADDR                           0x124200C
263 #define ACP_I2S_RX_FIFOSIZE                           0x1242010
264 #define ACP_I2S_RX_DMA_SIZE                           0x1242014
265 #define ACP_I2S_RX_LINEARPOSITIONCNTR_HIGH            0x1242018
266 #define ACP_I2S_RX_LINEARPOSITIONCNTR_LOW             0x124201C
267 #define ACP_I2S_RX_INTR_WATERMARK_SIZE                0x1242020
268 #define ACP_I2S_TX_RINGBUFADDR                        0x1242024
269 #define ACP_I2S_TX_RINGBUFSIZE                        0x1242028
270 #define ACP_I2S_TX_LINKPOSITIONCNTR                   0x124202C
271 #define ACP_I2S_TX_FIFOADDR                           0x1242030
272 #define ACP_I2S_TX_FIFOSIZE                           0x1242034
273 #define ACP_I2S_TX_DMA_SIZE                           0x1242038
274 #define ACP_I2S_TX_LINEARPOSITIONCNTR_HIGH            0x124203C
275 #define ACP_I2S_TX_LINEARPOSITIONCNTR_LOW             0x1242040
276 #define ACP_I2S_TX_INTR_WATERMARK_SIZE                0x1242044
277 #define ACP_BT_RX_RINGBUFADDR                         0x1242048
278 #define ACP_BT_RX_RINGBUFSIZE                         0x124204C
279 #define ACP_BT_RX_LINKPOSITIONCNTR                    0x1242050
280 #define ACP_BT_RX_FIFOADDR                            0x1242054
281 #define ACP_BT_RX_FIFOSIZE                            0x1242058
282 #define ACP_BT_RX_DMA_SIZE                            0x124205C
283 #define ACP_BT_RX_LINEARPOSITIONCNTR_HIGH             0x1242060
284 #define ACP_BT_RX_LINEARPOSITIONCNTR_LOW              0x1242064
285 #define ACP_BT_RX_INTR_WATERMARK_SIZE                 0x1242068
286 #define ACP_BT_TX_RINGBUFADDR                         0x124206C
287 #define ACP_BT_TX_RINGBUFSIZE                         0x1242070
288 #define ACP_BT_TX_LINKPOSITIONCNTR                    0x1242074
289 #define ACP_BT_TX_FIFOADDR                            0x1242078
290 #define ACP_BT_TX_FIFOSIZE                            0x124207C
291 #define ACP_BT_TX_DMA_SIZE                            0x1242080
292 #define ACP_BT_TX_LINEARPOSITIONCNTR_HIGH             0x1242084
293 #define ACP_BT_TX_LINEARPOSITIONCNTR_LOW              0x1242088
294 #define ACP_BT_TX_INTR_WATERMARK_SIZE                 0x124208C
295 #define ACP_HS_RX_RINGBUFADDR                         0x1242090
296 #define ACP_HS_RX_RINGBUFSIZE                         0x1242094
297 #define ACP_HS_RX_LINKPOSITIONCNTR                    0x1242098
298 #define ACP_HS_RX_FIFOADDR                            0x124209C
299 #define ACP_HS_RX_FIFOSIZE                            0x12420A0
300 #define ACP_HS_RX_DMA_SIZE                            0x12420A4
301 #define ACP_HS_RX_LINEARPOSITIONCNTR_HIGH             0x12420A8
302 #define ACP_HS_RX_LINEARPOSITIONCNTR_LOW              0x12420AC
303 #define ACP_HS_RX_INTR_WATERMARK_SIZE                 0x12420B0
304 #define ACP_HS_TX_RINGBUFADDR                         0x12420B4
305 #define ACP_HS_TX_RINGBUFSIZE                         0x12420B8
306 #define ACP_HS_TX_LINKPOSITIONCNTR                    0x12420BC
307 #define ACP_HS_TX_FIFOADDR                            0x12420C0
308 #define ACP_HS_TX_FIFOSIZE                            0x12420C4
309 #define ACP_HS_TX_DMA_SIZE                            0x12420C8
310 #define ACP_HS_TX_LINEARPOSITIONCNTR_HIGH             0x12420CC
311 #define ACP_HS_TX_LINEARPOSITIONCNTR_LOW              0x12420D0
312 #define ACP_HS_TX_INTR_WATERMARK_SIZE                 0x12420D4
313 
314 // Registers from ACP_I2S_TDM block
315 
316 #define ACP_I2STDM_IER                                0x1242400
317 #define ACP_I2STDM_IRER                               0x1242404
318 #define ACP_I2STDM_RXFRMT                             0x1242408
319 #define ACP_I2STDM_ITER                               0x124240C
320 #define ACP_I2STDM_TXFRMT                             0x1242410
321 
322 // Registers from ACP_BT_TDM block
323 
324 #define ACP_BTTDM_IER                                 0x1242800
325 #define ACP_BTTDM_IRER                                0x1242804
326 #define ACP_BTTDM_RXFRMT                              0x1242808
327 #define ACP_BTTDM_ITER                                0x124280C
328 #define ACP_BTTDM_TXFRMT                              0x1242810
329 
330 // Registers from ACP_WOV block
331 
332 #define ACP_WOV_PDM_ENABLE                            0x1242C04
333 #define ACP_WOV_PDM_DMA_ENABLE                        0x1242C08
334 #define ACP_WOV_RX_RINGBUFADDR                        0x1242C0C
335 #define ACP_WOV_RX_RINGBUFSIZE                        0x1242C10
336 #define ACP_WOV_RX_LINKPOSITIONCNTR                   0x1242C14
337 #define ACP_WOV_RX_LINEARPOSITIONCNTR_HIGH            0x1242C18
338 #define ACP_WOV_RX_LINEARPOSITIONCNTR_LOW             0x1242C1C
339 #define ACP_WOV_RX_INTR_WATERMARK_SIZE                0x1242C20
340 #define ACP_WOV_PDM_FIFO_FLUSH                        0x1242C24
341 #define ACP_WOV_PDM_NO_OF_CHANNELS                    0x1242C28
342 #define ACP_WOV_PDM_DECIMATION_FACTOR                 0x1242C2C
343 #define ACP_WOV_PDM_VAD_CTRL                          0x1242C30
344 #define ACP_WOV_BUFFER_STATUS                         0x1242C58
345 #define ACP_WOV_MISC_CTRL                             0x1242C5C
346 #define ACP_WOV_CLK_CTRL                              0x1242C60
347 #define ACP_PDM_VAD_DYNAMIC_CLK_GATING_EN             0x1242C64
348 #define ACP_WOV_ERROR_STATUS_REGISTER                 0x1242C68
349 #endif
350