1 /*
2  * Copyright (c) 2021-2024 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[4];                /* 0xC - 0xF: Reserved */
17     __RW uint32_t FP_CTRL;                     /* 0x10:  */
18     __RW uint32_t FP_ST;                       /* 0x14:  */
19     __R  uint8_t  RESERVED1[8];                /* 0x18 - 0x1F: Reserved */
20     __RW uint32_t OP_CTRL;                     /* 0x20:  */
21     __RW uint32_t OP_CMD;                      /* 0x24:  */
22     union {
23         __RW uint32_t OP_REG0;                 /* 0x28:  */
24         __RW uint32_t OP_FIR_MISC;             /* 0x28:  */
25         __RW uint32_t OP_FFT_MISC;             /* 0x28:  */
26     };
27     union {
28         __RW uint32_t OP_REG1;                 /* 0x2C:  */
29         __RW uint32_t OP_FIR_MISC1;            /* 0x2C:  */
30     };
31     union {
32         __RW uint32_t OP_REG2;                 /* 0x30:  */
33         __RW uint32_t OP_FFT_INRBUF;           /* 0x30:  */
34     };
35     union {
36         __RW uint32_t OP_REG3;                 /* 0x34:  */
37         __RW uint32_t OP_FIR_INBUF;            /* 0x34:  */
38     };
39     union {
40         __RW uint32_t OP_REG4;                 /* 0x38:  */
41         __RW uint32_t OP_FIR_COEFBUF;          /* 0x38:  */
42         __RW uint32_t OP_FFT_OUTRBUF;          /* 0x38:  */
43     };
44     union {
45         __RW uint32_t OP_REG5;                 /* 0x3C:  */
46         __RW uint32_t OP_FIR_OUTBUF;           /* 0x3C:  */
47     };
48     __RW uint32_t OP_REG6;                     /* 0x40:  */
49     __RW uint32_t OP_REG7;                     /* 0x44:  */
50 } FFA_Type;
51 
52 
53 /* Bitfield definition for register: CTRL */
54 /*
55  * SFTRST (RW)
56  *
57  * software reset the module if asserted to be 1.
58  * EN is only active after this bit is zero.
59  */
60 #define FFA_CTRL_SFTRST_MASK (0x80000000UL)
61 #define FFA_CTRL_SFTRST_SHIFT (31U)
62 #define FFA_CTRL_SFTRST_SET(x) (((uint32_t)(x) << FFA_CTRL_SFTRST_SHIFT) & FFA_CTRL_SFTRST_MASK)
63 #define FFA_CTRL_SFTRST_GET(x) (((uint32_t)(x) & FFA_CTRL_SFTRST_MASK) >> FFA_CTRL_SFTRST_SHIFT)
64 
65 /*
66  * EN (RW)
67  *
68  * Asserted to enable the module
69  */
70 #define FFA_CTRL_EN_MASK (0x1U)
71 #define FFA_CTRL_EN_SHIFT (0U)
72 #define FFA_CTRL_EN_SET(x) (((uint32_t)(x) << FFA_CTRL_EN_SHIFT) & FFA_CTRL_EN_MASK)
73 #define FFA_CTRL_EN_GET(x) (((uint32_t)(x) & FFA_CTRL_EN_MASK) >> FFA_CTRL_EN_SHIFT)
74 
75 /* Bitfield definition for register: STATUS */
76 /*
77  * FP_NAN (RO)
78  *
79  * Ored together by ( FP_ST[IN_NAN] & FP_CTRL[IN_NAN_IE] ) | ( FP_ST[COEF_NAN] & FP_CTRL[COEF_NAN_IE] )
80  */
81 #define FFA_STATUS_FP_NAN_MASK (0x200U)
82 #define FFA_STATUS_FP_NAN_SHIFT (9U)
83 #define FFA_STATUS_FP_NAN_GET(x) (((uint32_t)(x) & FFA_STATUS_FP_NAN_MASK) >> FFA_STATUS_FP_NAN_SHIFT)
84 
85 /*
86  * FP_SAT (RO)
87  *
88  * Ored together by ( FP_ST[IN_SAT] & FP_CTRL[IN_SAT_IE] ) | ( FP_ST[COEF_SAT] & FP_CTRL[COEF_SAT_IE] )
89  */
90 #define FFA_STATUS_FP_SAT_MASK (0x100U)
91 #define FFA_STATUS_FP_SAT_SHIFT (8U)
92 #define FFA_STATUS_FP_SAT_GET(x) (((uint32_t)(x) & FFA_STATUS_FP_SAT_MASK) >> FFA_STATUS_FP_SAT_SHIFT)
93 
94 /*
95  * FIR_OV (W1C)
96  *
97  * FIR Overflow err
98  */
99 #define FFA_STATUS_FIR_OV_MASK (0x80U)
100 #define FFA_STATUS_FIR_OV_SHIFT (7U)
101 #define FFA_STATUS_FIR_OV_SET(x) (((uint32_t)(x) << FFA_STATUS_FIR_OV_SHIFT) & FFA_STATUS_FIR_OV_MASK)
102 #define FFA_STATUS_FIR_OV_GET(x) (((uint32_t)(x) & FFA_STATUS_FIR_OV_MASK) >> FFA_STATUS_FIR_OV_SHIFT)
103 
104 /*
105  * FFT_OV (W1C)
106  *
107  * FFT Overflow Err
108  */
109 #define FFA_STATUS_FFT_OV_MASK (0x40U)
110 #define FFA_STATUS_FFT_OV_SHIFT (6U)
111 #define FFA_STATUS_FFT_OV_SET(x) (((uint32_t)(x) << FFA_STATUS_FFT_OV_SHIFT) & FFA_STATUS_FFT_OV_MASK)
112 #define FFA_STATUS_FFT_OV_GET(x) (((uint32_t)(x) & FFA_STATUS_FFT_OV_MASK) >> FFA_STATUS_FFT_OV_SHIFT)
113 
114 /*
115  * WR_ERR (W1C)
116  *
117  * AXI Data Write Error
118  */
119 #define FFA_STATUS_WR_ERR_MASK (0x20U)
120 #define FFA_STATUS_WR_ERR_SHIFT (5U)
121 #define FFA_STATUS_WR_ERR_SET(x) (((uint32_t)(x) << FFA_STATUS_WR_ERR_SHIFT) & FFA_STATUS_WR_ERR_MASK)
122 #define FFA_STATUS_WR_ERR_GET(x) (((uint32_t)(x) & FFA_STATUS_WR_ERR_MASK) >> FFA_STATUS_WR_ERR_SHIFT)
123 
124 /*
125  * RD_NXT_ERR (W1C)
126  *
127  * AXI Read Bus Error for NXT DATA
128  */
129 #define FFA_STATUS_RD_NXT_ERR_MASK (0x10U)
130 #define FFA_STATUS_RD_NXT_ERR_SHIFT (4U)
131 #define FFA_STATUS_RD_NXT_ERR_SET(x) (((uint32_t)(x) << FFA_STATUS_RD_NXT_ERR_SHIFT) & FFA_STATUS_RD_NXT_ERR_MASK)
132 #define FFA_STATUS_RD_NXT_ERR_GET(x) (((uint32_t)(x) & FFA_STATUS_RD_NXT_ERR_MASK) >> FFA_STATUS_RD_NXT_ERR_SHIFT)
133 
134 /*
135  * RD_ERR (W1C)
136  *
137  * AXI Data Read Error
138  */
139 #define FFA_STATUS_RD_ERR_MASK (0x8U)
140 #define FFA_STATUS_RD_ERR_SHIFT (3U)
141 #define FFA_STATUS_RD_ERR_SET(x) (((uint32_t)(x) << FFA_STATUS_RD_ERR_SHIFT) & FFA_STATUS_RD_ERR_MASK)
142 #define FFA_STATUS_RD_ERR_GET(x) (((uint32_t)(x) & FFA_STATUS_RD_ERR_MASK) >> FFA_STATUS_RD_ERR_SHIFT)
143 
144 /*
145  * NXT_CMD_RD_DONE (W1C)
146  *
147  * Indicate that next command sequence is already read into the module.
148  */
149 #define FFA_STATUS_NXT_CMD_RD_DONE_MASK (0x2U)
150 #define FFA_STATUS_NXT_CMD_RD_DONE_SHIFT (1U)
151 #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)
152 #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)
153 
154 /*
155  * OP_CMD_DONE (W1C)
156  *
157  * Indicate that operation cmd is done, and data are available in system memory.
158  */
159 #define FFA_STATUS_OP_CMD_DONE_MASK (0x1U)
160 #define FFA_STATUS_OP_CMD_DONE_SHIFT (0U)
161 #define FFA_STATUS_OP_CMD_DONE_SET(x) (((uint32_t)(x) << FFA_STATUS_OP_CMD_DONE_SHIFT) & FFA_STATUS_OP_CMD_DONE_MASK)
162 #define FFA_STATUS_OP_CMD_DONE_GET(x) (((uint32_t)(x) & FFA_STATUS_OP_CMD_DONE_MASK) >> FFA_STATUS_OP_CMD_DONE_SHIFT)
163 
164 /* Bitfield definition for register: INT_EN */
165 /*
166  * WRSV1 (RW)
167  *
168  * Reserved
169  */
170 #define FFA_INT_EN_WRSV1_MASK (0xFFFFFF00UL)
171 #define FFA_INT_EN_WRSV1_SHIFT (8U)
172 #define FFA_INT_EN_WRSV1_SET(x) (((uint32_t)(x) << FFA_INT_EN_WRSV1_SHIFT) & FFA_INT_EN_WRSV1_MASK)
173 #define FFA_INT_EN_WRSV1_GET(x) (((uint32_t)(x) & FFA_INT_EN_WRSV1_MASK) >> FFA_INT_EN_WRSV1_SHIFT)
174 
175 /*
176  * FIR_OV (RW)
177  *
178  * FIR Overflow err
179  */
180 #define FFA_INT_EN_FIR_OV_MASK (0x80U)
181 #define FFA_INT_EN_FIR_OV_SHIFT (7U)
182 #define FFA_INT_EN_FIR_OV_SET(x) (((uint32_t)(x) << FFA_INT_EN_FIR_OV_SHIFT) & FFA_INT_EN_FIR_OV_MASK)
183 #define FFA_INT_EN_FIR_OV_GET(x) (((uint32_t)(x) & FFA_INT_EN_FIR_OV_MASK) >> FFA_INT_EN_FIR_OV_SHIFT)
184 
185 /*
186  * FFT_OV (RW)
187  *
188  * FFT Overflow Err
189  */
190 #define FFA_INT_EN_FFT_OV_MASK (0x40U)
191 #define FFA_INT_EN_FFT_OV_SHIFT (6U)
192 #define FFA_INT_EN_FFT_OV_SET(x) (((uint32_t)(x) << FFA_INT_EN_FFT_OV_SHIFT) & FFA_INT_EN_FFT_OV_MASK)
193 #define FFA_INT_EN_FFT_OV_GET(x) (((uint32_t)(x) & FFA_INT_EN_FFT_OV_MASK) >> FFA_INT_EN_FFT_OV_SHIFT)
194 
195 /*
196  * WR_ERR (RW)
197  *
198  * Enable Data Write Error interrupt
199  */
200 #define FFA_INT_EN_WR_ERR_MASK (0x20U)
201 #define FFA_INT_EN_WR_ERR_SHIFT (5U)
202 #define FFA_INT_EN_WR_ERR_SET(x) (((uint32_t)(x) << FFA_INT_EN_WR_ERR_SHIFT) & FFA_INT_EN_WR_ERR_MASK)
203 #define FFA_INT_EN_WR_ERR_GET(x) (((uint32_t)(x) & FFA_INT_EN_WR_ERR_MASK) >> FFA_INT_EN_WR_ERR_SHIFT)
204 
205 /*
206  * RD_NXT_ERR (RW)
207  *
208  * Enable Read Bus Error for NXT DATA interrupt
209  */
210 #define FFA_INT_EN_RD_NXT_ERR_MASK (0x10U)
211 #define FFA_INT_EN_RD_NXT_ERR_SHIFT (4U)
212 #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)
213 #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)
214 
215 /*
216  * RD_ERR (RW)
217  *
218  * Enable Data Read Error interrupt
219  */
220 #define FFA_INT_EN_RD_ERR_MASK (0x8U)
221 #define FFA_INT_EN_RD_ERR_SHIFT (3U)
222 #define FFA_INT_EN_RD_ERR_SET(x) (((uint32_t)(x) << FFA_INT_EN_RD_ERR_SHIFT) & FFA_INT_EN_RD_ERR_MASK)
223 #define FFA_INT_EN_RD_ERR_GET(x) (((uint32_t)(x) & FFA_INT_EN_RD_ERR_MASK) >> FFA_INT_EN_RD_ERR_SHIFT)
224 
225 /*
226  * NXT_CMD_RD_DONE (RW)
227  *
228  * Indicate that next command sequence is already read into the module.
229  */
230 #define FFA_INT_EN_NXT_CMD_RD_DONE_MASK (0x2U)
231 #define FFA_INT_EN_NXT_CMD_RD_DONE_SHIFT (1U)
232 #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)
233 #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)
234 
235 /*
236  * OP_CMD_DONE (RW)
237  *
238  * Indicate that operation cmd is done, and data are available in system memory.
239  */
240 #define FFA_INT_EN_OP_CMD_DONE_MASK (0x1U)
241 #define FFA_INT_EN_OP_CMD_DONE_SHIFT (0U)
242 #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)
243 #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)
244 
245 /* Bitfield definition for register: FP_CTRL */
246 /*
247  * IN_SAT_IE (RW)
248  *
249  * IN_SAT interrupt enable
250  */
251 #define FFA_FP_CTRL_IN_SAT_IE_MASK (0x80000000UL)
252 #define FFA_FP_CTRL_IN_SAT_IE_SHIFT (31U)
253 #define FFA_FP_CTRL_IN_SAT_IE_SET(x) (((uint32_t)(x) << FFA_FP_CTRL_IN_SAT_IE_SHIFT) & FFA_FP_CTRL_IN_SAT_IE_MASK)
254 #define FFA_FP_CTRL_IN_SAT_IE_GET(x) (((uint32_t)(x) & FFA_FP_CTRL_IN_SAT_IE_MASK) >> FFA_FP_CTRL_IN_SAT_IE_SHIFT)
255 
256 /*
257  * COEF_SAT_IE (RW)
258  *
259  * COEF_SAT interrupt enable
260  */
261 #define FFA_FP_CTRL_COEF_SAT_IE_MASK (0x20000000UL)
262 #define FFA_FP_CTRL_COEF_SAT_IE_SHIFT (29U)
263 #define FFA_FP_CTRL_COEF_SAT_IE_SET(x) (((uint32_t)(x) << FFA_FP_CTRL_COEF_SAT_IE_SHIFT) & FFA_FP_CTRL_COEF_SAT_IE_MASK)
264 #define FFA_FP_CTRL_COEF_SAT_IE_GET(x) (((uint32_t)(x) & FFA_FP_CTRL_COEF_SAT_IE_MASK) >> FFA_FP_CTRL_COEF_SAT_IE_SHIFT)
265 
266 /*
267  * IN_NAN_IE (RW)
268  *
269  * IN_NAN interrupt enable
270  */
271 #define FFA_FP_CTRL_IN_NAN_IE_MASK (0x10000000UL)
272 #define FFA_FP_CTRL_IN_NAN_IE_SHIFT (28U)
273 #define FFA_FP_CTRL_IN_NAN_IE_SET(x) (((uint32_t)(x) << FFA_FP_CTRL_IN_NAN_IE_SHIFT) & FFA_FP_CTRL_IN_NAN_IE_MASK)
274 #define FFA_FP_CTRL_IN_NAN_IE_GET(x) (((uint32_t)(x) & FFA_FP_CTRL_IN_NAN_IE_MASK) >> FFA_FP_CTRL_IN_NAN_IE_SHIFT)
275 
276 /*
277  * COEF_NAN_IE (RW)
278  *
279  * COEF_NAN interrupt enable
280  */
281 #define FFA_FP_CTRL_COEF_NAN_IE_MASK (0x8000000UL)
282 #define FFA_FP_CTRL_COEF_NAN_IE_SHIFT (27U)
283 #define FFA_FP_CTRL_COEF_NAN_IE_SET(x) (((uint32_t)(x) << FFA_FP_CTRL_COEF_NAN_IE_SHIFT) & FFA_FP_CTRL_COEF_NAN_IE_MASK)
284 #define FFA_FP_CTRL_COEF_NAN_IE_GET(x) (((uint32_t)(x) & FFA_FP_CTRL_COEF_NAN_IE_MASK) >> FFA_FP_CTRL_COEF_NAN_IE_SHIFT)
285 
286 /*
287  * EXP_ST_SEL (RW)
288  *
289  * 2'b00: exp for input data
290  * 2'b01: exp for output data
291  * 2'b10: exp for coef data
292  */
293 #define FFA_FP_CTRL_EXP_ST_SEL_MASK (0x6000000UL)
294 #define FFA_FP_CTRL_EXP_ST_SEL_SHIFT (25U)
295 #define FFA_FP_CTRL_EXP_ST_SEL_SET(x) (((uint32_t)(x) << FFA_FP_CTRL_EXP_ST_SEL_SHIFT) & FFA_FP_CTRL_EXP_ST_SEL_MASK)
296 #define FFA_FP_CTRL_EXP_ST_SEL_GET(x) (((uint32_t)(x) & FFA_FP_CTRL_EXP_ST_SEL_MASK) >> FFA_FP_CTRL_EXP_ST_SEL_SHIFT)
297 
298 /*
299  * OPT_BIAS_EXP (RW)
300  *
301  * Asserted to use biased exp as exp input and exp output
302  */
303 #define FFA_FP_CTRL_OPT_BIAS_EXP_MASK (0x1000000UL)
304 #define FFA_FP_CTRL_OPT_BIAS_EXP_SHIFT (24U)
305 #define FFA_FP_CTRL_OPT_BIAS_EXP_SET(x) (((uint32_t)(x) << FFA_FP_CTRL_OPT_BIAS_EXP_SHIFT) & FFA_FP_CTRL_OPT_BIAS_EXP_MASK)
306 #define FFA_FP_CTRL_OPT_BIAS_EXP_GET(x) (((uint32_t)(x) & FFA_FP_CTRL_OPT_BIAS_EXP_MASK) >> FFA_FP_CTRL_OPT_BIAS_EXP_SHIFT)
307 
308 /*
309  * COEF_MAX (RW)
310  *
311  * The coef max exp for float. When used as float input, this field must be configured. The absolute value of coefficients should be smalller than pow(2, (COEF_MAX+1)). So this suggested value is (ceil(log2(fabs(coef[])))-1).
312  */
313 #define FFA_FP_CTRL_COEF_MAX_MASK (0xFF0000UL)
314 #define FFA_FP_CTRL_COEF_MAX_SHIFT (16U)
315 #define FFA_FP_CTRL_COEF_MAX_SET(x) (((uint32_t)(x) << FFA_FP_CTRL_COEF_MAX_SHIFT) & FFA_FP_CTRL_COEF_MAX_MASK)
316 #define FFA_FP_CTRL_COEF_MAX_GET(x) (((uint32_t)(x) & FFA_FP_CTRL_COEF_MAX_MASK) >> FFA_FP_CTRL_COEF_MAX_SHIFT)
317 
318 /*
319  * OUT_MAX (RW)
320  *
321  * The output max exp for float. When used as float output, this field must be configured. The absolute value of output data should be smalller than pow(2, (OUT_MAX+1)). So this suggested value is (ceil(log2(fabs(out[])))-1).
322  */
323 #define FFA_FP_CTRL_OUT_MAX_MASK (0xFF00U)
324 #define FFA_FP_CTRL_OUT_MAX_SHIFT (8U)
325 #define FFA_FP_CTRL_OUT_MAX_SET(x) (((uint32_t)(x) << FFA_FP_CTRL_OUT_MAX_SHIFT) & FFA_FP_CTRL_OUT_MAX_MASK)
326 #define FFA_FP_CTRL_OUT_MAX_GET(x) (((uint32_t)(x) & FFA_FP_CTRL_OUT_MAX_MASK) >> FFA_FP_CTRL_OUT_MAX_SHIFT)
327 
328 /*
329  * IN_MAX (RW)
330  *
331  * The input max exp for float. When used as float input, this field must be configured. The absolute value of input data should be smalller than pow(2, (IN_MAX+1)). So this suggested value is (ceil(log2(fabs(in[])))-1).
332  */
333 #define FFA_FP_CTRL_IN_MAX_MASK (0xFFU)
334 #define FFA_FP_CTRL_IN_MAX_SHIFT (0U)
335 #define FFA_FP_CTRL_IN_MAX_SET(x) (((uint32_t)(x) << FFA_FP_CTRL_IN_MAX_SHIFT) & FFA_FP_CTRL_IN_MAX_MASK)
336 #define FFA_FP_CTRL_IN_MAX_GET(x) (((uint32_t)(x) & FFA_FP_CTRL_IN_MAX_MASK) >> FFA_FP_CTRL_IN_MAX_SHIFT)
337 
338 /* Bitfield definition for register: FP_ST */
339 /*
340  * IN_SAT (W1C)
341  *
342  * the float input is saturated when converted from float to fix due to small FLT_CTRL[IN_MAX].
343  */
344 #define FFA_FP_ST_IN_SAT_MASK (0x80000000UL)
345 #define FFA_FP_ST_IN_SAT_SHIFT (31U)
346 #define FFA_FP_ST_IN_SAT_SET(x) (((uint32_t)(x) << FFA_FP_ST_IN_SAT_SHIFT) & FFA_FP_ST_IN_SAT_MASK)
347 #define FFA_FP_ST_IN_SAT_GET(x) (((uint32_t)(x) & FFA_FP_ST_IN_SAT_MASK) >> FFA_FP_ST_IN_SAT_SHIFT)
348 
349 /*
350  * COEF_SAT (W1C)
351  *
352  * the float coef is saturated when converted from float to fix due to small FLT_CTRL[COEF_MAX].
353  */
354 #define FFA_FP_ST_COEF_SAT_MASK (0x20000000UL)
355 #define FFA_FP_ST_COEF_SAT_SHIFT (29U)
356 #define FFA_FP_ST_COEF_SAT_SET(x) (((uint32_t)(x) << FFA_FP_ST_COEF_SAT_SHIFT) & FFA_FP_ST_COEF_SAT_MASK)
357 #define FFA_FP_ST_COEF_SAT_GET(x) (((uint32_t)(x) & FFA_FP_ST_COEF_SAT_MASK) >> FFA_FP_ST_COEF_SAT_SHIFT)
358 
359 /*
360  * IN_NAN (W1C)
361  *
362  * IN_NAN found
363  */
364 #define FFA_FP_ST_IN_NAN_MASK (0x10000000UL)
365 #define FFA_FP_ST_IN_NAN_SHIFT (28U)
366 #define FFA_FP_ST_IN_NAN_SET(x) (((uint32_t)(x) << FFA_FP_ST_IN_NAN_SHIFT) & FFA_FP_ST_IN_NAN_MASK)
367 #define FFA_FP_ST_IN_NAN_GET(x) (((uint32_t)(x) & FFA_FP_ST_IN_NAN_MASK) >> FFA_FP_ST_IN_NAN_SHIFT)
368 
369 /*
370  * COEF_NAN (W1C)
371  *
372  * COEF_NAN found
373  */
374 #define FFA_FP_ST_COEF_NAN_MASK (0x8000000UL)
375 #define FFA_FP_ST_COEF_NAN_SHIFT (27U)
376 #define FFA_FP_ST_COEF_NAN_SET(x) (((uint32_t)(x) << FFA_FP_ST_COEF_NAN_SHIFT) & FFA_FP_ST_COEF_NAN_MASK)
377 #define FFA_FP_ST_COEF_NAN_GET(x) (((uint32_t)(x) & FFA_FP_ST_COEF_NAN_MASK) >> FFA_FP_ST_COEF_NAN_SHIFT)
378 
379 /*
380  * EXP_MAX (RO)
381  *
382  * The max exp for float
383  */
384 #define FFA_FP_ST_EXP_MAX_MASK (0xFF00U)
385 #define FFA_FP_ST_EXP_MAX_SHIFT (8U)
386 #define FFA_FP_ST_EXP_MAX_GET(x) (((uint32_t)(x) & FFA_FP_ST_EXP_MAX_MASK) >> FFA_FP_ST_EXP_MAX_SHIFT)
387 
388 /*
389  * EXP_MIN (RO)
390  *
391  * The min exp for float
392  */
393 #define FFA_FP_ST_EXP_MIN_MASK (0xFFU)
394 #define FFA_FP_ST_EXP_MIN_SHIFT (0U)
395 #define FFA_FP_ST_EXP_MIN_GET(x) (((uint32_t)(x) & FFA_FP_ST_EXP_MIN_MASK) >> FFA_FP_ST_EXP_MIN_SHIFT)
396 
397 /* Bitfield definition for register: OP_CTRL */
398 /*
399  * NXT_ADDR (RW)
400  *
401  * The address for the next command.
402  * It will be processed after CUR_CMD is executed and done..
403  */
404 #define FFA_OP_CTRL_NXT_ADDR_MASK (0xFFFFFFFCUL)
405 #define FFA_OP_CTRL_NXT_ADDR_SHIFT (2U)
406 #define FFA_OP_CTRL_NXT_ADDR_SET(x) (((uint32_t)(x) << FFA_OP_CTRL_NXT_ADDR_SHIFT) & FFA_OP_CTRL_NXT_ADDR_MASK)
407 #define FFA_OP_CTRL_NXT_ADDR_GET(x) (((uint32_t)(x) & FFA_OP_CTRL_NXT_ADDR_MASK) >> FFA_OP_CTRL_NXT_ADDR_SHIFT)
408 
409 /*
410  * NXT_EN (RW)
411  *
412  * Whether NXT_CMD is enabled.
413  * Asserted to enable the NXT_CMD when CUR_CMD is done, or CUR_CMD is not enabled..
414  */
415 #define FFA_OP_CTRL_NXT_EN_MASK (0x2U)
416 #define FFA_OP_CTRL_NXT_EN_SHIFT (1U)
417 #define FFA_OP_CTRL_NXT_EN_SET(x) (((uint32_t)(x) << FFA_OP_CTRL_NXT_EN_SHIFT) & FFA_OP_CTRL_NXT_EN_MASK)
418 #define FFA_OP_CTRL_NXT_EN_GET(x) (((uint32_t)(x) & FFA_OP_CTRL_NXT_EN_MASK) >> FFA_OP_CTRL_NXT_EN_SHIFT)
419 
420 /*
421  * EN (RW)
422  *
423  * Whether CUR_CMD is enabled.
424  * Asserted to enable the CUR_CMD
425  */
426 #define FFA_OP_CTRL_EN_MASK (0x1U)
427 #define FFA_OP_CTRL_EN_SHIFT (0U)
428 #define FFA_OP_CTRL_EN_SET(x) (((uint32_t)(x) << FFA_OP_CTRL_EN_SHIFT) & FFA_OP_CTRL_EN_MASK)
429 #define FFA_OP_CTRL_EN_GET(x) (((uint32_t)(x) & FFA_OP_CTRL_EN_MASK) >> FFA_OP_CTRL_EN_SHIFT)
430 
431 /* Bitfield definition for register: OP_CMD */
432 /*
433  * CONJ_C (RW)
434  *
435  * asserted to have conjuate value for coefs in computation
436  */
437 #define FFA_OP_CMD_CONJ_C_MASK (0x1000000UL)
438 #define FFA_OP_CMD_CONJ_C_SHIFT (24U)
439 #define FFA_OP_CMD_CONJ_C_SET(x) (((uint32_t)(x) << FFA_OP_CMD_CONJ_C_SHIFT) & FFA_OP_CMD_CONJ_C_MASK)
440 #define FFA_OP_CMD_CONJ_C_GET(x) (((uint32_t)(x) & FFA_OP_CMD_CONJ_C_MASK) >> FFA_OP_CMD_CONJ_C_SHIFT)
441 
442 /*
443  * CMD (RW)
444  *
445  * The Command Used:
446  * 0: FIR
447  * 2: FFT
448  * Others: Reserved
449  */
450 #define FFA_OP_CMD_CMD_MASK (0xFC0000UL)
451 #define FFA_OP_CMD_CMD_SHIFT (18U)
452 #define FFA_OP_CMD_CMD_SET(x) (((uint32_t)(x) << FFA_OP_CMD_CMD_SHIFT) & FFA_OP_CMD_CMD_MASK)
453 #define FFA_OP_CMD_CMD_GET(x) (((uint32_t)(x) & FFA_OP_CMD_CMD_MASK) >> FFA_OP_CMD_CMD_SHIFT)
454 
455 /*
456  * OUTD_TYPE (RW)
457  *
458  * Output data type:
459  * 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15
460  * 4:complex sp float 5: real sp float
461  */
462 #define FFA_OP_CMD_OUTD_TYPE_MASK (0x38000UL)
463 #define FFA_OP_CMD_OUTD_TYPE_SHIFT (15U)
464 #define FFA_OP_CMD_OUTD_TYPE_SET(x) (((uint32_t)(x) << FFA_OP_CMD_OUTD_TYPE_SHIFT) & FFA_OP_CMD_OUTD_TYPE_MASK)
465 #define FFA_OP_CMD_OUTD_TYPE_GET(x) (((uint32_t)(x) & FFA_OP_CMD_OUTD_TYPE_MASK) >> FFA_OP_CMD_OUTD_TYPE_SHIFT)
466 
467 /*
468  * COEF_TYPE (RW)
469  *
470  * Coef data type (used for FIR):
471  * 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15
472  * 4:complex sp float 5: real sp float
473  */
474 #define FFA_OP_CMD_COEF_TYPE_MASK (0x7000U)
475 #define FFA_OP_CMD_COEF_TYPE_SHIFT (12U)
476 #define FFA_OP_CMD_COEF_TYPE_SET(x) (((uint32_t)(x) << FFA_OP_CMD_COEF_TYPE_SHIFT) & FFA_OP_CMD_COEF_TYPE_MASK)
477 #define FFA_OP_CMD_COEF_TYPE_GET(x) (((uint32_t)(x) & FFA_OP_CMD_COEF_TYPE_MASK) >> FFA_OP_CMD_COEF_TYPE_SHIFT)
478 
479 /*
480  * IND_TYPE (RW)
481  *
482  * Input data type:
483  * 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15
484  * 4:complex sp float 5: real sp float
485  */
486 #define FFA_OP_CMD_IND_TYPE_MASK (0xE00U)
487 #define FFA_OP_CMD_IND_TYPE_SHIFT (9U)
488 #define FFA_OP_CMD_IND_TYPE_SET(x) (((uint32_t)(x) << FFA_OP_CMD_IND_TYPE_SHIFT) & FFA_OP_CMD_IND_TYPE_MASK)
489 #define FFA_OP_CMD_IND_TYPE_GET(x) (((uint32_t)(x) & FFA_OP_CMD_IND_TYPE_MASK) >> FFA_OP_CMD_IND_TYPE_SHIFT)
490 
491 /*
492  * NXT_CMD_LEN (RW)
493  *
494  * The length of nxt commands in 32-bit words
495  */
496 #define FFA_OP_CMD_NXT_CMD_LEN_MASK (0xFFU)
497 #define FFA_OP_CMD_NXT_CMD_LEN_SHIFT (0U)
498 #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)
499 #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)
500 
501 /* Bitfield definition for register: OP_REG0 */
502 /*
503  * CT (RW)
504  *
505  * Contents
506  */
507 #define FFA_OP_REG0_CT_MASK (0xFFFFFFFFUL)
508 #define FFA_OP_REG0_CT_SHIFT (0U)
509 #define FFA_OP_REG0_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG0_CT_SHIFT) & FFA_OP_REG0_CT_MASK)
510 #define FFA_OP_REG0_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG0_CT_MASK) >> FFA_OP_REG0_CT_SHIFT)
511 
512 /* Bitfield definition for register: OP_FIR_MISC */
513 /*
514  * FIR_COEF_TAPS (RW)
515  *
516  * Length of FIR coefs (max 256)
517  */
518 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_MASK (0x3FFFU)
519 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_SHIFT (0U)
520 #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)
521 #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)
522 
523 /* Bitfield definition for register: OP_FFT_MISC */
524 /*
525  * FFT_LEN (RW)
526  *
527  * FFT length
528  * 0:8,
529  * ...,
530  * n:2^(3+n)
531  */
532 #define FFA_OP_FFT_MISC_FFT_LEN_MASK (0x780U)
533 #define FFA_OP_FFT_MISC_FFT_LEN_SHIFT (7U)
534 #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)
535 #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)
536 
537 /*
538  * IFFT (RW)
539  *
540  * Asserted to indicate IFFT
541  */
542 #define FFA_OP_FFT_MISC_IFFT_MASK (0x40U)
543 #define FFA_OP_FFT_MISC_IFFT_SHIFT (6U)
544 #define FFA_OP_FFT_MISC_IFFT_SET(x) (((uint32_t)(x) << FFA_OP_FFT_MISC_IFFT_SHIFT) & FFA_OP_FFT_MISC_IFFT_MASK)
545 #define FFA_OP_FFT_MISC_IFFT_GET(x) (((uint32_t)(x) & FFA_OP_FFT_MISC_IFFT_MASK) >> FFA_OP_FFT_MISC_IFFT_SHIFT)
546 
547 /*
548  * TMP_BLK (RW)
549  *
550  * Memory block for indata. Should be assigned as 1
551  */
552 #define FFA_OP_FFT_MISC_TMP_BLK_MASK (0xCU)
553 #define FFA_OP_FFT_MISC_TMP_BLK_SHIFT (2U)
554 #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)
555 #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)
556 
557 /*
558  * IND_BLK (RW)
559  *
560  * Memory block for indata. Should be assigned as 0
561  */
562 #define FFA_OP_FFT_MISC_IND_BLK_MASK (0x3U)
563 #define FFA_OP_FFT_MISC_IND_BLK_SHIFT (0U)
564 #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)
565 #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)
566 
567 /* Bitfield definition for register: OP_REG1 */
568 /*
569  * CT (RW)
570  *
571  * Contents
572  */
573 #define FFA_OP_REG1_CT_MASK (0xFFFFFFFFUL)
574 #define FFA_OP_REG1_CT_SHIFT (0U)
575 #define FFA_OP_REG1_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG1_CT_SHIFT) & FFA_OP_REG1_CT_MASK)
576 #define FFA_OP_REG1_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG1_CT_MASK) >> FFA_OP_REG1_CT_SHIFT)
577 
578 /* Bitfield definition for register: OP_FIR_MISC1 */
579 /*
580  * OUTD_MEM_BLK (RW)
581  *
582  * Should be assigned as 0
583  */
584 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_MASK (0x300000UL)
585 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_SHIFT (20U)
586 #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)
587 #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)
588 
589 /*
590  * COEF_MEM_BLK (RW)
591  *
592  * Should be assigned as 1
593  */
594 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_MASK (0xC0000UL)
595 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_SHIFT (18U)
596 #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)
597 #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)
598 
599 /*
600  * IND_MEM_BLK (RW)
601  *
602  * Should be assigned as 2
603  */
604 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_MASK (0x30000UL)
605 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_SHIFT (16U)
606 #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)
607 #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)
608 
609 /*
610  * FIR_DATA_TAPS (RW)
611  *
612  * The input data data length
613  */
614 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_MASK (0xFFFFU)
615 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_SHIFT (0U)
616 #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)
617 #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)
618 
619 /* Bitfield definition for register: OP_REG2 */
620 /*
621  * CT (RW)
622  *
623  * Contents
624  */
625 #define FFA_OP_REG2_CT_MASK (0xFFFFFFFFUL)
626 #define FFA_OP_REG2_CT_SHIFT (0U)
627 #define FFA_OP_REG2_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG2_CT_SHIFT) & FFA_OP_REG2_CT_MASK)
628 #define FFA_OP_REG2_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG2_CT_MASK) >> FFA_OP_REG2_CT_SHIFT)
629 
630 /* Bitfield definition for register: OP_FFT_INRBUF */
631 /*
632  * LOC (RW)
633  *
634  * The input (real) data buffer pointer
635  */
636 #define FFA_OP_FFT_INRBUF_LOC_MASK (0xFFFFFFFFUL)
637 #define FFA_OP_FFT_INRBUF_LOC_SHIFT (0U)
638 #define FFA_OP_FFT_INRBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FFT_INRBUF_LOC_SHIFT) & FFA_OP_FFT_INRBUF_LOC_MASK)
639 #define FFA_OP_FFT_INRBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FFT_INRBUF_LOC_MASK) >> FFA_OP_FFT_INRBUF_LOC_SHIFT)
640 
641 /* Bitfield definition for register: OP_REG3 */
642 /*
643  * CT (RW)
644  *
645  * Contents
646  */
647 #define FFA_OP_REG3_CT_MASK (0xFFFFFFFFUL)
648 #define FFA_OP_REG3_CT_SHIFT (0U)
649 #define FFA_OP_REG3_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG3_CT_SHIFT) & FFA_OP_REG3_CT_MASK)
650 #define FFA_OP_REG3_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG3_CT_MASK) >> FFA_OP_REG3_CT_SHIFT)
651 
652 /* Bitfield definition for register: OP_FIR_INBUF */
653 /*
654  * LOC (RW)
655  *
656  * The input data buffer pointer
657  */
658 #define FFA_OP_FIR_INBUF_LOC_MASK (0xFFFFFFFFUL)
659 #define FFA_OP_FIR_INBUF_LOC_SHIFT (0U)
660 #define FFA_OP_FIR_INBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FIR_INBUF_LOC_SHIFT) & FFA_OP_FIR_INBUF_LOC_MASK)
661 #define FFA_OP_FIR_INBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FIR_INBUF_LOC_MASK) >> FFA_OP_FIR_INBUF_LOC_SHIFT)
662 
663 /* Bitfield definition for register: OP_REG4 */
664 /*
665  * CT (RW)
666  *
667  * Contents
668  */
669 #define FFA_OP_REG4_CT_MASK (0xFFFFFFFFUL)
670 #define FFA_OP_REG4_CT_SHIFT (0U)
671 #define FFA_OP_REG4_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG4_CT_SHIFT) & FFA_OP_REG4_CT_MASK)
672 #define FFA_OP_REG4_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG4_CT_MASK) >> FFA_OP_REG4_CT_SHIFT)
673 
674 /* Bitfield definition for register: OP_FIR_COEFBUF */
675 /*
676  * LOC (RW)
677  *
678  * The coef buf pointer
679  */
680 #define FFA_OP_FIR_COEFBUF_LOC_MASK (0xFFFFFFFFUL)
681 #define FFA_OP_FIR_COEFBUF_LOC_SHIFT (0U)
682 #define FFA_OP_FIR_COEFBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FIR_COEFBUF_LOC_SHIFT) & FFA_OP_FIR_COEFBUF_LOC_MASK)
683 #define FFA_OP_FIR_COEFBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FIR_COEFBUF_LOC_MASK) >> FFA_OP_FIR_COEFBUF_LOC_SHIFT)
684 
685 /* Bitfield definition for register: OP_FFT_OUTRBUF */
686 /*
687  * LOC (RW)
688  *
689  * The output (real) data buffer pointer
690  */
691 #define FFA_OP_FFT_OUTRBUF_LOC_MASK (0xFFFFFFFFUL)
692 #define FFA_OP_FFT_OUTRBUF_LOC_SHIFT (0U)
693 #define FFA_OP_FFT_OUTRBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FFT_OUTRBUF_LOC_SHIFT) & FFA_OP_FFT_OUTRBUF_LOC_MASK)
694 #define FFA_OP_FFT_OUTRBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FFT_OUTRBUF_LOC_MASK) >> FFA_OP_FFT_OUTRBUF_LOC_SHIFT)
695 
696 /* Bitfield definition for register: OP_REG5 */
697 /*
698  * CT (RW)
699  *
700  * Contents
701  */
702 #define FFA_OP_REG5_CT_MASK (0xFFFFFFFFUL)
703 #define FFA_OP_REG5_CT_SHIFT (0U)
704 #define FFA_OP_REG5_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG5_CT_SHIFT) & FFA_OP_REG5_CT_MASK)
705 #define FFA_OP_REG5_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG5_CT_MASK) >> FFA_OP_REG5_CT_SHIFT)
706 
707 /* Bitfield definition for register: OP_FIR_OUTBUF */
708 /*
709  * LOC (RW)
710  *
711  * The output data buffer pointer. The length of the output buffer should be (FIR_DATA_TAPS - FIR_COEF_TAPS + 1)
712  */
713 #define FFA_OP_FIR_OUTBUF_LOC_MASK (0xFFFFFFFFUL)
714 #define FFA_OP_FIR_OUTBUF_LOC_SHIFT (0U)
715 #define FFA_OP_FIR_OUTBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FIR_OUTBUF_LOC_SHIFT) & FFA_OP_FIR_OUTBUF_LOC_MASK)
716 #define FFA_OP_FIR_OUTBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FIR_OUTBUF_LOC_MASK) >> FFA_OP_FIR_OUTBUF_LOC_SHIFT)
717 
718 /* Bitfield definition for register: OP_REG6 */
719 /*
720  * CT (RW)
721  *
722  * Contents
723  */
724 #define FFA_OP_REG6_CT_MASK (0xFFFFFFFFUL)
725 #define FFA_OP_REG6_CT_SHIFT (0U)
726 #define FFA_OP_REG6_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG6_CT_SHIFT) & FFA_OP_REG6_CT_MASK)
727 #define FFA_OP_REG6_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG6_CT_MASK) >> FFA_OP_REG6_CT_SHIFT)
728 
729 /* Bitfield definition for register: OP_REG7 */
730 /*
731  * CT (RW)
732  *
733  * Contents
734  */
735 #define FFA_OP_REG7_CT_MASK (0xFFFFFFFFUL)
736 #define FFA_OP_REG7_CT_SHIFT (0U)
737 #define FFA_OP_REG7_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG7_CT_SHIFT) & FFA_OP_REG7_CT_MASK)
738 #define FFA_OP_REG7_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG7_CT_MASK) >> FFA_OP_REG7_CT_SHIFT)
739 
740 
741 
742 
743 #endif /* HPM_FFA_H */
744