• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 
9 #ifndef HPM_FFA_H
10 #define HPM_FFA_H
11 
12 typedef struct {
13     __RW uint32_t CTRL;                        /* 0x0:  */
14     __RW uint32_t STATUS;                      /* 0x4:  */
15     __RW uint32_t INT_EN;                      /* 0x8:  */
16     __R  uint8_t  RESERVED0[20];               /* 0xC - 0x1F: Reserved */
17     __RW uint32_t OP_CTRL;                     /* 0x20:  */
18     __RW uint32_t OP_CMD;                      /* 0x24:  */
19     union {
20         __RW uint32_t OP_REG0;                 /* 0x28:  */
21         __RW uint32_t OP_FIR_MISC;             /* 0x28:  */
22         __RW uint32_t OP_FFT_MISC;             /* 0x28:  */
23     };
24     union {
25         __RW uint32_t OP_REG1;                 /* 0x2C:  */
26         __RW uint32_t OP_FIR_MISC1;            /* 0x2C:  */
27     };
28     union {
29         __RW uint32_t OP_REG2;                 /* 0x30:  */
30         __RW uint32_t OP_FFT_INRBUF;           /* 0x30:  */
31     };
32     union {
33         __RW uint32_t OP_REG3;                 /* 0x34:  */
34         __RW uint32_t OP_FIR_INBUF;            /* 0x34:  */
35     };
36     union {
37         __RW uint32_t OP_REG4;                 /* 0x38:  */
38         __RW uint32_t OP_FIR_COEFBUF;          /* 0x38:  */
39         __RW uint32_t OP_FFT_OUTRBUF;          /* 0x38:  */
40     };
41     union {
42         __RW uint32_t OP_REG5;                 /* 0x3C:  */
43         __RW uint32_t OP_FIR_OUTBUF;           /* 0x3C:  */
44     };
45     __RW uint32_t OP_REG6;                     /* 0x40:  */
46     __RW uint32_t OP_REG7;                     /* 0x44:  */
47 } FFA_Type;
48 
49 
50 /* Bitfield definition for register: CTRL */
51 /*
52  * SFTRST (RW)
53  *
54  * software reset the module if asserted to be 1.
55  * EN is only active after this bit is zero.
56  */
57 #define FFA_CTRL_SFTRST_MASK (0x80000000UL)
58 #define FFA_CTRL_SFTRST_SHIFT (31U)
59 #define FFA_CTRL_SFTRST_SET(x) (((uint32_t)(x) << FFA_CTRL_SFTRST_SHIFT) & FFA_CTRL_SFTRST_MASK)
60 #define FFA_CTRL_SFTRST_GET(x) (((uint32_t)(x) & FFA_CTRL_SFTRST_MASK) >> FFA_CTRL_SFTRST_SHIFT)
61 
62 /*
63  * EN (RW)
64  *
65  * Asserted to enable the module
66  */
67 #define FFA_CTRL_EN_MASK (0x1U)
68 #define FFA_CTRL_EN_SHIFT (0U)
69 #define FFA_CTRL_EN_SET(x) (((uint32_t)(x) << FFA_CTRL_EN_SHIFT) & FFA_CTRL_EN_MASK)
70 #define FFA_CTRL_EN_GET(x) (((uint32_t)(x) & FFA_CTRL_EN_MASK) >> FFA_CTRL_EN_SHIFT)
71 
72 /* Bitfield definition for register: STATUS */
73 /*
74  * FIR_OV (W1C)
75  *
76  * FIR Overflow err
77  */
78 #define FFA_STATUS_FIR_OV_MASK (0x80U)
79 #define FFA_STATUS_FIR_OV_SHIFT (7U)
80 #define FFA_STATUS_FIR_OV_SET(x) (((uint32_t)(x) << FFA_STATUS_FIR_OV_SHIFT) & FFA_STATUS_FIR_OV_MASK)
81 #define FFA_STATUS_FIR_OV_GET(x) (((uint32_t)(x) & FFA_STATUS_FIR_OV_MASK) >> FFA_STATUS_FIR_OV_SHIFT)
82 
83 /*
84  * FFT_OV (W1C)
85  *
86  * FFT Overflow Err
87  */
88 #define FFA_STATUS_FFT_OV_MASK (0x40U)
89 #define FFA_STATUS_FFT_OV_SHIFT (6U)
90 #define FFA_STATUS_FFT_OV_SET(x) (((uint32_t)(x) << FFA_STATUS_FFT_OV_SHIFT) & FFA_STATUS_FFT_OV_MASK)
91 #define FFA_STATUS_FFT_OV_GET(x) (((uint32_t)(x) & FFA_STATUS_FFT_OV_MASK) >> FFA_STATUS_FFT_OV_SHIFT)
92 
93 /*
94  * WR_ERR (W1C)
95  *
96  * AXI Data Write Error
97  */
98 #define FFA_STATUS_WR_ERR_MASK (0x20U)
99 #define FFA_STATUS_WR_ERR_SHIFT (5U)
100 #define FFA_STATUS_WR_ERR_SET(x) (((uint32_t)(x) << FFA_STATUS_WR_ERR_SHIFT) & FFA_STATUS_WR_ERR_MASK)
101 #define FFA_STATUS_WR_ERR_GET(x) (((uint32_t)(x) & FFA_STATUS_WR_ERR_MASK) >> FFA_STATUS_WR_ERR_SHIFT)
102 
103 /*
104  * RD_NXT_ERR (W1C)
105  *
106  * AXI Read Bus Error for NXT DATA
107  */
108 #define FFA_STATUS_RD_NXT_ERR_MASK (0x10U)
109 #define FFA_STATUS_RD_NXT_ERR_SHIFT (4U)
110 #define FFA_STATUS_RD_NXT_ERR_SET(x) (((uint32_t)(x) << FFA_STATUS_RD_NXT_ERR_SHIFT) & FFA_STATUS_RD_NXT_ERR_MASK)
111 #define FFA_STATUS_RD_NXT_ERR_GET(x) (((uint32_t)(x) & FFA_STATUS_RD_NXT_ERR_MASK) >> FFA_STATUS_RD_NXT_ERR_SHIFT)
112 
113 /*
114  * RD_ERR (W1C)
115  *
116  * AXI Data Read Error
117  */
118 #define FFA_STATUS_RD_ERR_MASK (0x8U)
119 #define FFA_STATUS_RD_ERR_SHIFT (3U)
120 #define FFA_STATUS_RD_ERR_SET(x) (((uint32_t)(x) << FFA_STATUS_RD_ERR_SHIFT) & FFA_STATUS_RD_ERR_MASK)
121 #define FFA_STATUS_RD_ERR_GET(x) (((uint32_t)(x) & FFA_STATUS_RD_ERR_MASK) >> FFA_STATUS_RD_ERR_SHIFT)
122 
123 /*
124  * NXT_CMD_RD_DONE (W1C)
125  *
126  * Indicate that next command sequence is already read into the module.
127  */
128 #define FFA_STATUS_NXT_CMD_RD_DONE_MASK (0x2U)
129 #define FFA_STATUS_NXT_CMD_RD_DONE_SHIFT (1U)
130 #define FFA_STATUS_NXT_CMD_RD_DONE_SET(x) (((uint32_t)(x) << FFA_STATUS_NXT_CMD_RD_DONE_SHIFT) & FFA_STATUS_NXT_CMD_RD_DONE_MASK)
131 #define FFA_STATUS_NXT_CMD_RD_DONE_GET(x) (((uint32_t)(x) & FFA_STATUS_NXT_CMD_RD_DONE_MASK) >> FFA_STATUS_NXT_CMD_RD_DONE_SHIFT)
132 
133 /*
134  * OP_CMD_DONE (W1C)
135  *
136  * Indicate that operation cmd is done, and data are available in system memory.
137  */
138 #define FFA_STATUS_OP_CMD_DONE_MASK (0x1U)
139 #define FFA_STATUS_OP_CMD_DONE_SHIFT (0U)
140 #define FFA_STATUS_OP_CMD_DONE_SET(x) (((uint32_t)(x) << FFA_STATUS_OP_CMD_DONE_SHIFT) & FFA_STATUS_OP_CMD_DONE_MASK)
141 #define FFA_STATUS_OP_CMD_DONE_GET(x) (((uint32_t)(x) & FFA_STATUS_OP_CMD_DONE_MASK) >> FFA_STATUS_OP_CMD_DONE_SHIFT)
142 
143 /* Bitfield definition for register: INT_EN */
144 /*
145  * WRSV1 (RW)
146  *
147  * Reserved
148  */
149 #define FFA_INT_EN_WRSV1_MASK (0xFFFFFF00UL)
150 #define FFA_INT_EN_WRSV1_SHIFT (8U)
151 #define FFA_INT_EN_WRSV1_SET(x) (((uint32_t)(x) << FFA_INT_EN_WRSV1_SHIFT) & FFA_INT_EN_WRSV1_MASK)
152 #define FFA_INT_EN_WRSV1_GET(x) (((uint32_t)(x) & FFA_INT_EN_WRSV1_MASK) >> FFA_INT_EN_WRSV1_SHIFT)
153 
154 /*
155  * FIR_OV (RW)
156  *
157  * FIR Overflow err
158  */
159 #define FFA_INT_EN_FIR_OV_MASK (0x80U)
160 #define FFA_INT_EN_FIR_OV_SHIFT (7U)
161 #define FFA_INT_EN_FIR_OV_SET(x) (((uint32_t)(x) << FFA_INT_EN_FIR_OV_SHIFT) & FFA_INT_EN_FIR_OV_MASK)
162 #define FFA_INT_EN_FIR_OV_GET(x) (((uint32_t)(x) & FFA_INT_EN_FIR_OV_MASK) >> FFA_INT_EN_FIR_OV_SHIFT)
163 
164 /*
165  * FFT_OV (RW)
166  *
167  * FFT Overflow Err
168  */
169 #define FFA_INT_EN_FFT_OV_MASK (0x40U)
170 #define FFA_INT_EN_FFT_OV_SHIFT (6U)
171 #define FFA_INT_EN_FFT_OV_SET(x) (((uint32_t)(x) << FFA_INT_EN_FFT_OV_SHIFT) & FFA_INT_EN_FFT_OV_MASK)
172 #define FFA_INT_EN_FFT_OV_GET(x) (((uint32_t)(x) & FFA_INT_EN_FFT_OV_MASK) >> FFA_INT_EN_FFT_OV_SHIFT)
173 
174 /*
175  * WR_ERR (RW)
176  *
177  * Enable Data Write Error interrupt
178  */
179 #define FFA_INT_EN_WR_ERR_MASK (0x20U)
180 #define FFA_INT_EN_WR_ERR_SHIFT (5U)
181 #define FFA_INT_EN_WR_ERR_SET(x) (((uint32_t)(x) << FFA_INT_EN_WR_ERR_SHIFT) & FFA_INT_EN_WR_ERR_MASK)
182 #define FFA_INT_EN_WR_ERR_GET(x) (((uint32_t)(x) & FFA_INT_EN_WR_ERR_MASK) >> FFA_INT_EN_WR_ERR_SHIFT)
183 
184 /*
185  * RD_NXT_ERR (RW)
186  *
187  * Enable Read Bus Error for NXT DATA interrupt
188  */
189 #define FFA_INT_EN_RD_NXT_ERR_MASK (0x10U)
190 #define FFA_INT_EN_RD_NXT_ERR_SHIFT (4U)
191 #define FFA_INT_EN_RD_NXT_ERR_SET(x) (((uint32_t)(x) << FFA_INT_EN_RD_NXT_ERR_SHIFT) & FFA_INT_EN_RD_NXT_ERR_MASK)
192 #define FFA_INT_EN_RD_NXT_ERR_GET(x) (((uint32_t)(x) & FFA_INT_EN_RD_NXT_ERR_MASK) >> FFA_INT_EN_RD_NXT_ERR_SHIFT)
193 
194 /*
195  * RD_ERR (RW)
196  *
197  * Enable Data Read Error interrupt
198  */
199 #define FFA_INT_EN_RD_ERR_MASK (0x8U)
200 #define FFA_INT_EN_RD_ERR_SHIFT (3U)
201 #define FFA_INT_EN_RD_ERR_SET(x) (((uint32_t)(x) << FFA_INT_EN_RD_ERR_SHIFT) & FFA_INT_EN_RD_ERR_MASK)
202 #define FFA_INT_EN_RD_ERR_GET(x) (((uint32_t)(x) & FFA_INT_EN_RD_ERR_MASK) >> FFA_INT_EN_RD_ERR_SHIFT)
203 
204 /*
205  * NXT_CMD_RD_DONE (RW)
206  *
207  * Indicate that next command sequence is already read into the module.
208  */
209 #define FFA_INT_EN_NXT_CMD_RD_DONE_MASK (0x2U)
210 #define FFA_INT_EN_NXT_CMD_RD_DONE_SHIFT (1U)
211 #define FFA_INT_EN_NXT_CMD_RD_DONE_SET(x) (((uint32_t)(x) << FFA_INT_EN_NXT_CMD_RD_DONE_SHIFT) & FFA_INT_EN_NXT_CMD_RD_DONE_MASK)
212 #define FFA_INT_EN_NXT_CMD_RD_DONE_GET(x) (((uint32_t)(x) & FFA_INT_EN_NXT_CMD_RD_DONE_MASK) >> FFA_INT_EN_NXT_CMD_RD_DONE_SHIFT)
213 
214 /*
215  * OP_CMD_DONE (RW)
216  *
217  * Indicate that operation cmd is done, and data are available in system memory.
218  */
219 #define FFA_INT_EN_OP_CMD_DONE_MASK (0x1U)
220 #define FFA_INT_EN_OP_CMD_DONE_SHIFT (0U)
221 #define FFA_INT_EN_OP_CMD_DONE_SET(x) (((uint32_t)(x) << FFA_INT_EN_OP_CMD_DONE_SHIFT) & FFA_INT_EN_OP_CMD_DONE_MASK)
222 #define FFA_INT_EN_OP_CMD_DONE_GET(x) (((uint32_t)(x) & FFA_INT_EN_OP_CMD_DONE_MASK) >> FFA_INT_EN_OP_CMD_DONE_SHIFT)
223 
224 /* Bitfield definition for register: OP_CTRL */
225 /*
226  * NXT_ADDR (RW)
227  *
228  * The address for the next command.
229  * It will be processed after CUR_CMD is executed and done..
230  */
231 #define FFA_OP_CTRL_NXT_ADDR_MASK (0xFFFFFFFCUL)
232 #define FFA_OP_CTRL_NXT_ADDR_SHIFT (2U)
233 #define FFA_OP_CTRL_NXT_ADDR_SET(x) (((uint32_t)(x) << FFA_OP_CTRL_NXT_ADDR_SHIFT) & FFA_OP_CTRL_NXT_ADDR_MASK)
234 #define FFA_OP_CTRL_NXT_ADDR_GET(x) (((uint32_t)(x) & FFA_OP_CTRL_NXT_ADDR_MASK) >> FFA_OP_CTRL_NXT_ADDR_SHIFT)
235 
236 /*
237  * NXT_EN (RW)
238  *
239  * Whether NXT_CMD is enabled.
240  * Asserted to enable the NXT_CMD when CUR_CMD is done, or CUR_CMD is not enabled..
241  */
242 #define FFA_OP_CTRL_NXT_EN_MASK (0x2U)
243 #define FFA_OP_CTRL_NXT_EN_SHIFT (1U)
244 #define FFA_OP_CTRL_NXT_EN_SET(x) (((uint32_t)(x) << FFA_OP_CTRL_NXT_EN_SHIFT) & FFA_OP_CTRL_NXT_EN_MASK)
245 #define FFA_OP_CTRL_NXT_EN_GET(x) (((uint32_t)(x) & FFA_OP_CTRL_NXT_EN_MASK) >> FFA_OP_CTRL_NXT_EN_SHIFT)
246 
247 /*
248  * EN (RW)
249  *
250  * Whether CUR_CMD is enabled.
251  * Asserted to enable the CUR_CMD
252  */
253 #define FFA_OP_CTRL_EN_MASK (0x1U)
254 #define FFA_OP_CTRL_EN_SHIFT (0U)
255 #define FFA_OP_CTRL_EN_SET(x) (((uint32_t)(x) << FFA_OP_CTRL_EN_SHIFT) & FFA_OP_CTRL_EN_MASK)
256 #define FFA_OP_CTRL_EN_GET(x) (((uint32_t)(x) & FFA_OP_CTRL_EN_MASK) >> FFA_OP_CTRL_EN_SHIFT)
257 
258 /* Bitfield definition for register: OP_CMD */
259 /*
260  * CONJ_C (RW)
261  *
262  * asserted to have conjuate value for coefs in computation
263  */
264 #define FFA_OP_CMD_CONJ_C_MASK (0x1000000UL)
265 #define FFA_OP_CMD_CONJ_C_SHIFT (24U)
266 #define FFA_OP_CMD_CONJ_C_SET(x) (((uint32_t)(x) << FFA_OP_CMD_CONJ_C_SHIFT) & FFA_OP_CMD_CONJ_C_MASK)
267 #define FFA_OP_CMD_CONJ_C_GET(x) (((uint32_t)(x) & FFA_OP_CMD_CONJ_C_MASK) >> FFA_OP_CMD_CONJ_C_SHIFT)
268 
269 /*
270  * CMD (RW)
271  *
272  * The Command Used:
273  * 0: FIR
274  * 2: FFT
275  * Others: Reserved
276  */
277 #define FFA_OP_CMD_CMD_MASK (0xFC0000UL)
278 #define FFA_OP_CMD_CMD_SHIFT (18U)
279 #define FFA_OP_CMD_CMD_SET(x) (((uint32_t)(x) << FFA_OP_CMD_CMD_SHIFT) & FFA_OP_CMD_CMD_MASK)
280 #define FFA_OP_CMD_CMD_GET(x) (((uint32_t)(x) & FFA_OP_CMD_CMD_MASK) >> FFA_OP_CMD_CMD_SHIFT)
281 
282 /*
283  * OUTD_TYPE (RW)
284  *
285  * Output data type:
286  * 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15
287  */
288 #define FFA_OP_CMD_OUTD_TYPE_MASK (0x38000UL)
289 #define FFA_OP_CMD_OUTD_TYPE_SHIFT (15U)
290 #define FFA_OP_CMD_OUTD_TYPE_SET(x) (((uint32_t)(x) << FFA_OP_CMD_OUTD_TYPE_SHIFT) & FFA_OP_CMD_OUTD_TYPE_MASK)
291 #define FFA_OP_CMD_OUTD_TYPE_GET(x) (((uint32_t)(x) & FFA_OP_CMD_OUTD_TYPE_MASK) >> FFA_OP_CMD_OUTD_TYPE_SHIFT)
292 
293 /*
294  * COEF_TYPE (RW)
295  *
296  * Coef data type (used for FIR):
297  * 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15
298  */
299 #define FFA_OP_CMD_COEF_TYPE_MASK (0x7000U)
300 #define FFA_OP_CMD_COEF_TYPE_SHIFT (12U)
301 #define FFA_OP_CMD_COEF_TYPE_SET(x) (((uint32_t)(x) << FFA_OP_CMD_COEF_TYPE_SHIFT) & FFA_OP_CMD_COEF_TYPE_MASK)
302 #define FFA_OP_CMD_COEF_TYPE_GET(x) (((uint32_t)(x) & FFA_OP_CMD_COEF_TYPE_MASK) >> FFA_OP_CMD_COEF_TYPE_SHIFT)
303 
304 /*
305  * IND_TYPE (RW)
306  *
307  * Input data type:
308  * 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15
309  */
310 #define FFA_OP_CMD_IND_TYPE_MASK (0xE00U)
311 #define FFA_OP_CMD_IND_TYPE_SHIFT (9U)
312 #define FFA_OP_CMD_IND_TYPE_SET(x) (((uint32_t)(x) << FFA_OP_CMD_IND_TYPE_SHIFT) & FFA_OP_CMD_IND_TYPE_MASK)
313 #define FFA_OP_CMD_IND_TYPE_GET(x) (((uint32_t)(x) & FFA_OP_CMD_IND_TYPE_MASK) >> FFA_OP_CMD_IND_TYPE_SHIFT)
314 
315 /*
316  * NXT_CMD_LEN (RW)
317  *
318  * The length of nxt commands in 32-bit words
319  */
320 #define FFA_OP_CMD_NXT_CMD_LEN_MASK (0xFFU)
321 #define FFA_OP_CMD_NXT_CMD_LEN_SHIFT (0U)
322 #define FFA_OP_CMD_NXT_CMD_LEN_SET(x) (((uint32_t)(x) << FFA_OP_CMD_NXT_CMD_LEN_SHIFT) & FFA_OP_CMD_NXT_CMD_LEN_MASK)
323 #define FFA_OP_CMD_NXT_CMD_LEN_GET(x) (((uint32_t)(x) & FFA_OP_CMD_NXT_CMD_LEN_MASK) >> FFA_OP_CMD_NXT_CMD_LEN_SHIFT)
324 
325 /* Bitfield definition for register: OP_REG0 */
326 /*
327  * CT (RW)
328  *
329  * Contents
330  */
331 #define FFA_OP_REG0_CT_MASK (0xFFFFFFFFUL)
332 #define FFA_OP_REG0_CT_SHIFT (0U)
333 #define FFA_OP_REG0_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG0_CT_SHIFT) & FFA_OP_REG0_CT_MASK)
334 #define FFA_OP_REG0_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG0_CT_MASK) >> FFA_OP_REG0_CT_SHIFT)
335 
336 /* Bitfield definition for register: OP_FIR_MISC */
337 /*
338  * FIR_COEF_TAPS (RW)
339  *
340  * Length of FIR coefs (max 256)
341  */
342 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_MASK (0x3FFFU)
343 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_SHIFT (0U)
344 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC_FIR_COEF_TAPS_SHIFT) & FFA_OP_FIR_MISC_FIR_COEF_TAPS_MASK)
345 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC_FIR_COEF_TAPS_MASK) >> FFA_OP_FIR_MISC_FIR_COEF_TAPS_SHIFT)
346 
347 /* Bitfield definition for register: OP_FFT_MISC */
348 /*
349  * FFT_LEN (RW)
350  *
351  * FFT length
352  * 0:8,
353  * ...,
354  * n:2^(3+n)
355  */
356 #define FFA_OP_FFT_MISC_FFT_LEN_MASK (0x780U)
357 #define FFA_OP_FFT_MISC_FFT_LEN_SHIFT (7U)
358 #define FFA_OP_FFT_MISC_FFT_LEN_SET(x) (((uint32_t)(x) << FFA_OP_FFT_MISC_FFT_LEN_SHIFT) & FFA_OP_FFT_MISC_FFT_LEN_MASK)
359 #define FFA_OP_FFT_MISC_FFT_LEN_GET(x) (((uint32_t)(x) & FFA_OP_FFT_MISC_FFT_LEN_MASK) >> FFA_OP_FFT_MISC_FFT_LEN_SHIFT)
360 
361 /*
362  * IFFT (RW)
363  *
364  * Asserted to indicate IFFT
365  */
366 #define FFA_OP_FFT_MISC_IFFT_MASK (0x40U)
367 #define FFA_OP_FFT_MISC_IFFT_SHIFT (6U)
368 #define FFA_OP_FFT_MISC_IFFT_SET(x) (((uint32_t)(x) << FFA_OP_FFT_MISC_IFFT_SHIFT) & FFA_OP_FFT_MISC_IFFT_MASK)
369 #define FFA_OP_FFT_MISC_IFFT_GET(x) (((uint32_t)(x) & FFA_OP_FFT_MISC_IFFT_MASK) >> FFA_OP_FFT_MISC_IFFT_SHIFT)
370 
371 /*
372  * TMP_BLK (RW)
373  *
374  * Memory block for indata. Should be assigned as 1
375  */
376 #define FFA_OP_FFT_MISC_TMP_BLK_MASK (0xCU)
377 #define FFA_OP_FFT_MISC_TMP_BLK_SHIFT (2U)
378 #define FFA_OP_FFT_MISC_TMP_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FFT_MISC_TMP_BLK_SHIFT) & FFA_OP_FFT_MISC_TMP_BLK_MASK)
379 #define FFA_OP_FFT_MISC_TMP_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FFT_MISC_TMP_BLK_MASK) >> FFA_OP_FFT_MISC_TMP_BLK_SHIFT)
380 
381 /*
382  * IND_BLK (RW)
383  *
384  * Memory block for indata. Should be assigned as 0
385  */
386 #define FFA_OP_FFT_MISC_IND_BLK_MASK (0x3U)
387 #define FFA_OP_FFT_MISC_IND_BLK_SHIFT (0U)
388 #define FFA_OP_FFT_MISC_IND_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FFT_MISC_IND_BLK_SHIFT) & FFA_OP_FFT_MISC_IND_BLK_MASK)
389 #define FFA_OP_FFT_MISC_IND_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FFT_MISC_IND_BLK_MASK) >> FFA_OP_FFT_MISC_IND_BLK_SHIFT)
390 
391 /* Bitfield definition for register: OP_REG1 */
392 /*
393  * CT (RW)
394  *
395  * Contents
396  */
397 #define FFA_OP_REG1_CT_MASK (0xFFFFFFFFUL)
398 #define FFA_OP_REG1_CT_SHIFT (0U)
399 #define FFA_OP_REG1_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG1_CT_SHIFT) & FFA_OP_REG1_CT_MASK)
400 #define FFA_OP_REG1_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG1_CT_MASK) >> FFA_OP_REG1_CT_SHIFT)
401 
402 /* Bitfield definition for register: OP_FIR_MISC1 */
403 /*
404  * OUTD_MEM_BLK (RW)
405  *
406  * Should be assigned as 0
407  */
408 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_MASK (0x300000UL)
409 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_SHIFT (20U)
410 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC1_OUTD_MEM_BLK_SHIFT) & FFA_OP_FIR_MISC1_OUTD_MEM_BLK_MASK)
411 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC1_OUTD_MEM_BLK_MASK) >> FFA_OP_FIR_MISC1_OUTD_MEM_BLK_SHIFT)
412 
413 /*
414  * COEF_MEM_BLK (RW)
415  *
416  * Should be assigned as 1
417  */
418 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_MASK (0xC0000UL)
419 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_SHIFT (18U)
420 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC1_COEF_MEM_BLK_SHIFT) & FFA_OP_FIR_MISC1_COEF_MEM_BLK_MASK)
421 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC1_COEF_MEM_BLK_MASK) >> FFA_OP_FIR_MISC1_COEF_MEM_BLK_SHIFT)
422 
423 /*
424  * IND_MEM_BLK (RW)
425  *
426  * Should be assigned as 2
427  */
428 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_MASK (0x30000UL)
429 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_SHIFT (16U)
430 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC1_IND_MEM_BLK_SHIFT) & FFA_OP_FIR_MISC1_IND_MEM_BLK_MASK)
431 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC1_IND_MEM_BLK_MASK) >> FFA_OP_FIR_MISC1_IND_MEM_BLK_SHIFT)
432 
433 /*
434  * FIR_DATA_TAPS (RW)
435  *
436  * The input data data length
437  */
438 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_MASK (0xFFFFU)
439 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_SHIFT (0U)
440 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC1_FIR_DATA_TAPS_SHIFT) & FFA_OP_FIR_MISC1_FIR_DATA_TAPS_MASK)
441 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC1_FIR_DATA_TAPS_MASK) >> FFA_OP_FIR_MISC1_FIR_DATA_TAPS_SHIFT)
442 
443 /* Bitfield definition for register: OP_REG2 */
444 /*
445  * CT (RW)
446  *
447  * Contents
448  */
449 #define FFA_OP_REG2_CT_MASK (0xFFFFFFFFUL)
450 #define FFA_OP_REG2_CT_SHIFT (0U)
451 #define FFA_OP_REG2_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG2_CT_SHIFT) & FFA_OP_REG2_CT_MASK)
452 #define FFA_OP_REG2_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG2_CT_MASK) >> FFA_OP_REG2_CT_SHIFT)
453 
454 /* Bitfield definition for register: OP_FFT_INRBUF */
455 /*
456  * LOC (RW)
457  *
458  * The input (real) data buffer pointer
459  */
460 #define FFA_OP_FFT_INRBUF_LOC_MASK (0xFFFFFFFFUL)
461 #define FFA_OP_FFT_INRBUF_LOC_SHIFT (0U)
462 #define FFA_OP_FFT_INRBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FFT_INRBUF_LOC_SHIFT) & FFA_OP_FFT_INRBUF_LOC_MASK)
463 #define FFA_OP_FFT_INRBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FFT_INRBUF_LOC_MASK) >> FFA_OP_FFT_INRBUF_LOC_SHIFT)
464 
465 /* Bitfield definition for register: OP_REG3 */
466 /*
467  * CT (RW)
468  *
469  * Contents
470  */
471 #define FFA_OP_REG3_CT_MASK (0xFFFFFFFFUL)
472 #define FFA_OP_REG3_CT_SHIFT (0U)
473 #define FFA_OP_REG3_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG3_CT_SHIFT) & FFA_OP_REG3_CT_MASK)
474 #define FFA_OP_REG3_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG3_CT_MASK) >> FFA_OP_REG3_CT_SHIFT)
475 
476 /* Bitfield definition for register: OP_FIR_INBUF */
477 /*
478  * LOC (RW)
479  *
480  * The input data buffer pointer
481  */
482 #define FFA_OP_FIR_INBUF_LOC_MASK (0xFFFFFFFFUL)
483 #define FFA_OP_FIR_INBUF_LOC_SHIFT (0U)
484 #define FFA_OP_FIR_INBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FIR_INBUF_LOC_SHIFT) & FFA_OP_FIR_INBUF_LOC_MASK)
485 #define FFA_OP_FIR_INBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FIR_INBUF_LOC_MASK) >> FFA_OP_FIR_INBUF_LOC_SHIFT)
486 
487 /* Bitfield definition for register: OP_REG4 */
488 /*
489  * CT (RW)
490  *
491  * Contents
492  */
493 #define FFA_OP_REG4_CT_MASK (0xFFFFFFFFUL)
494 #define FFA_OP_REG4_CT_SHIFT (0U)
495 #define FFA_OP_REG4_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG4_CT_SHIFT) & FFA_OP_REG4_CT_MASK)
496 #define FFA_OP_REG4_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG4_CT_MASK) >> FFA_OP_REG4_CT_SHIFT)
497 
498 /* Bitfield definition for register: OP_FIR_COEFBUF */
499 /*
500  * LOC (RW)
501  *
502  * The coef buf pointer
503  */
504 #define FFA_OP_FIR_COEFBUF_LOC_MASK (0xFFFFFFFFUL)
505 #define FFA_OP_FIR_COEFBUF_LOC_SHIFT (0U)
506 #define FFA_OP_FIR_COEFBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FIR_COEFBUF_LOC_SHIFT) & FFA_OP_FIR_COEFBUF_LOC_MASK)
507 #define FFA_OP_FIR_COEFBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FIR_COEFBUF_LOC_MASK) >> FFA_OP_FIR_COEFBUF_LOC_SHIFT)
508 
509 /* Bitfield definition for register: OP_FFT_OUTRBUF */
510 /*
511  * LOC (RW)
512  *
513  * The output (real) data buffer pointer
514  */
515 #define FFA_OP_FFT_OUTRBUF_LOC_MASK (0xFFFFFFFFUL)
516 #define FFA_OP_FFT_OUTRBUF_LOC_SHIFT (0U)
517 #define FFA_OP_FFT_OUTRBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FFT_OUTRBUF_LOC_SHIFT) & FFA_OP_FFT_OUTRBUF_LOC_MASK)
518 #define FFA_OP_FFT_OUTRBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FFT_OUTRBUF_LOC_MASK) >> FFA_OP_FFT_OUTRBUF_LOC_SHIFT)
519 
520 /* Bitfield definition for register: OP_REG5 */
521 /*
522  * CT (RW)
523  *
524  * Contents
525  */
526 #define FFA_OP_REG5_CT_MASK (0xFFFFFFFFUL)
527 #define FFA_OP_REG5_CT_SHIFT (0U)
528 #define FFA_OP_REG5_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG5_CT_SHIFT) & FFA_OP_REG5_CT_MASK)
529 #define FFA_OP_REG5_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG5_CT_MASK) >> FFA_OP_REG5_CT_SHIFT)
530 
531 /* Bitfield definition for register: OP_FIR_OUTBUF */
532 /*
533  * LOC (RW)
534  *
535  * The output data buffer pointer. The length of the output buffer should be (FIR_DATA_TAPS - FIR_COEF_TAPS + 1)
536  */
537 #define FFA_OP_FIR_OUTBUF_LOC_MASK (0xFFFFFFFFUL)
538 #define FFA_OP_FIR_OUTBUF_LOC_SHIFT (0U)
539 #define FFA_OP_FIR_OUTBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FIR_OUTBUF_LOC_SHIFT) & FFA_OP_FIR_OUTBUF_LOC_MASK)
540 #define FFA_OP_FIR_OUTBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FIR_OUTBUF_LOC_MASK) >> FFA_OP_FIR_OUTBUF_LOC_SHIFT)
541 
542 /* Bitfield definition for register: OP_REG6 */
543 /*
544  * CT (RW)
545  *
546  * Contents
547  */
548 #define FFA_OP_REG6_CT_MASK (0xFFFFFFFFUL)
549 #define FFA_OP_REG6_CT_SHIFT (0U)
550 #define FFA_OP_REG6_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG6_CT_SHIFT) & FFA_OP_REG6_CT_MASK)
551 #define FFA_OP_REG6_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG6_CT_MASK) >> FFA_OP_REG6_CT_SHIFT)
552 
553 /* Bitfield definition for register: OP_REG7 */
554 /*
555  * CT (RW)
556  *
557  * Contents
558  */
559 #define FFA_OP_REG7_CT_MASK (0xFFFFFFFFUL)
560 #define FFA_OP_REG7_CT_SHIFT (0U)
561 #define FFA_OP_REG7_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG7_CT_SHIFT) & FFA_OP_REG7_CT_MASK)
562 #define FFA_OP_REG7_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG7_CT_MASK) >> FFA_OP_REG7_CT_SHIFT)
563 
564 
565 
566 
567 #endif /* HPM_FFA_H */
568