1 /******************************************************************************
2  *
3  * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by
4  * Analog Devices, Inc.),
5  * Copyright (C) 2023-2024 Analog Devices, Inc.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  ******************************************************************************/
20 
21 /****** Includes *******/
22 #include <stddef.h>
23 #include <stdint.h>
24 #include "mxc_device.h"
25 #include "mxc_assert.h"
26 #include "mxc_lock.h"
27 #include "mxc_sys.h"
28 #include "spixf.h"
29 #include "spixf_reva.h"
30 
31 #if defined(SPIXF_RAM)
32 
33 #include "gpio.h"
34 #include "gpio_regs.h"
35 #include "gpio_reva_regs.h"
36 #include "mxc_pins.h"
37 
38 /* NOTE: SPIXF functions should not access the flash area when
39  * executing from RAM.
40  */
41 // Non-const version of 'gpio_cfg_spixf' pin set.
42 mxc_gpio_cfg_t gpio_cfg_spixf_ram = { MXC_GPIO1,
43                                       (MXC_GPIO_PIN_22 | MXC_GPIO_PIN_23 | MXC_GPIO_PIN_24 |
44                                        MXC_GPIO_PIN_25 | MXC_GPIO_PIN_26 | MXC_GPIO_PIN_27),
45                                       MXC_GPIO_FUNC_ALT1,
46                                       MXC_GPIO_PAD_NONE,
47                                       MXC_GPIO_VSSEL_VDDIO,
48                                       MXC_GPIO_DRVSTR_0 };
49 
50 #if IAR_PRAGMAS
51 #pragma section = ".spix_config"
52 #else
53 __attribute__((section(".spix_config")))
54 #endif
MXC_GPIO_Config_SPIXF(mxc_gpio_cfg_t * cfg)55 static int MXC_GPIO_Config_SPIXF(mxc_gpio_cfg_t *cfg)
56 {
57     mxc_gpio_regs_t *gpio = cfg->port;
58     mxc_gpio_reva_regs_t *port = (mxc_gpio_reva_regs_t *)gpio;
59 
60     port->inen |= cfg->mask;
61     //Switch to I/O mode first
62     port->en0_set = cfg->mask;
63     port->en3_clr = cfg->mask;
64     port->en2_clr = cfg->mask;
65     port->en1_clr = cfg->mask;
66     port->en0_clr = cfg->mask;
67 
68     // Configure the pad
69     gpio->padctrl0 &= ~cfg->mask;
70     gpio->padctrl1 &= ~cfg->mask;
71     port->vssel &= ~(cfg->mask);
72     port->ds0 &= ~(cfg->mask);
73     port->ds1 &= ~(cfg->mask);
74 
75     return E_NO_ERROR;
76 }
77 #endif
78 
79 /****** Functions ******/
80 
81 #if defined(SPIXF_RAM) && IAR_PRAGMAS
82 #pragma section = ".spix_config"
83 #elif defined(SPIXF_RAM)
84 __attribute__((section(".spix_config")))
85 #endif
MXC_SPIXF_Init(uint32_t cmdval,uint32_t frequency)86 int MXC_SPIXF_Init(uint32_t cmdval, uint32_t frequency)
87 {
88 #ifndef MSDK_NO_GPIO_CLK_INIT
89     // Enable clock of SPIXFM
90     MXC_GCR->pclkdis0 &= ~(0x1 << MXC_SYS_PERIPH_CLOCK_SPIXIP);
91     // Enable clock of SPIXFC
92     MXC_GCR->pclkdis0 &= ~(0x1 << MXC_SYS_PERIPH_CLOCK_SPIXFC);
93 #if defined(SPIXF_RAM)
94     MXC_GPIO_Config_SPIXF(&gpio_cfg_spixf_ram);
95 #else
96     MXC_GPIO_Config(&gpio_cfg_spixf);
97 #endif
98 #endif
99 
100     return MXC_SPIXF_RevA_Init((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
101                                (mxc_spixfm_reva_regs_t *)MXC_SPIXFM, cmdval, frequency);
102 }
103 
MXC_SPIXF_Shutdown(void)104 void MXC_SPIXF_Shutdown(void)
105 {
106     MXC_SPIXF_RevA_Shutdown((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
107     MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_SPIXFC); // SPIXFC
108     MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_SPIXIP); // SPIX
109 }
110 
MXC_SPIXF_IOCtrl(mxc_spixf_ds_t sclk_ds,mxc_spixf_ds_t ss_ds,mxc_spixf_ds_t sdio_ds,mxc_spixf_pup_t pupdctrl)111 void MXC_SPIXF_IOCtrl(mxc_spixf_ds_t sclk_ds, mxc_spixf_ds_t ss_ds, mxc_spixf_ds_t sdio_ds,
112                       mxc_spixf_pup_t pupdctrl)
113 {
114     MXC_SPIXF_RevA_IOCtrl((mxc_spixfm_reva_regs_t *)MXC_SPIXFM, sclk_ds, ss_ds, sdio_ds, pupdctrl);
115 }
116 
117 #if defined(SPIXF_RAM) && IAR_PRAGMAS
118 #pragma section = ".spix_config"
119 #elif defined(SPIXF_RAM)
120 __attribute__((section(".spix_config")))
121 #endif
MXC_SPIXF_Clocks(uint32_t len,uint8_t deass)122 int MXC_SPIXF_Clocks(uint32_t len, uint8_t deass)
123 {
124     return MXC_SPIXF_RevA_Clocks((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
125                                  (mxc_spixfm_reva_regs_t *)MXC_SPIXFM,
126                                  (mxc_spixfc_fifo_reva_regs_t *)MXC_SPIXFC_FIFO, len, deass);
127 }
128 
129 #if defined(SPIXF_RAM) && IAR_PRAGMAS
130 #pragma section = ".spix_config"
131 #elif defined(SPIXF_RAM)
132 __attribute__((section(".spix_config")))
133 #endif
MXC_SPIXF_Transaction(mxc_spixf_req_t * req)134 int MXC_SPIXF_Transaction(mxc_spixf_req_t *req)
135 {
136     return MXC_SPIXF_RevA_Transaction((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
137                                       (mxc_spixfc_fifo_reva_regs_t *)MXC_SPIXFC_FIFO, req);
138 }
139 
MXC_SPIXF_TransactionAsync(mxc_spixf_req_t * req)140 int MXC_SPIXF_TransactionAsync(mxc_spixf_req_t *req)
141 {
142     return MXC_SPIXF_RevA_TransactionAsync((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
143                                            (mxc_spixfc_fifo_reva_regs_t *)MXC_SPIXFC_FIFO, req);
144 }
145 
MXC_SPIXF_AbortAsync(mxc_spixf_req_t * req)146 int MXC_SPIXF_AbortAsync(mxc_spixf_req_t *req)
147 {
148     return MXC_SPIXF_RevA_AbortAsync((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, req);
149 }
150 
MXC_SPIXF_Handler(void)151 void MXC_SPIXF_Handler(void)
152 {
153     MXC_SPIXF_RevA_Handler((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
154                            (mxc_spixfc_fifo_reva_regs_t *)MXC_SPIXFC_FIFO);
155 }
156 
MXC_SPIXF_ReadyForSleep(void)157 int MXC_SPIXF_ReadyForSleep(void)
158 {
159     return MXC_SPIXF_RevA_ReadyForSleep((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
160 }
161 
MXC_SPIXF_EnableInt(uint32_t mask)162 int MXC_SPIXF_EnableInt(uint32_t mask)
163 {
164     return MXC_SPIXF_RevA_EnableInt((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
165 }
166 
MXC_SPIXF_DisableInt(uint32_t mask)167 int MXC_SPIXF_DisableInt(uint32_t mask)
168 {
169     return MXC_SPIXF_RevA_DisableInt((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
170 }
171 
MXC_SPIXF_ClearFlags(uint32_t flags)172 int MXC_SPIXF_ClearFlags(uint32_t flags)
173 {
174     return MXC_SPIXF_RevA_ClearFlags((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, flags);
175 }
176 
MXC_SPIXF_GetFlags(void)177 int MXC_SPIXF_GetFlags(void)
178 {
179     return MXC_SPIXF_RevA_GetFlags((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
180 }
181 
182 //Low level
183 
184 #if defined(SPIXF_RAM) && IAR_PRAGMAS
185 #pragma section = ".spix_config"
186 #elif defined(SPIXF_RAM)
187 __attribute__((section(".spix_config")))
188 #endif
MXC_SPIXF_SetMode(mxc_spixf_mode_t mode)189 int MXC_SPIXF_SetMode(mxc_spixf_mode_t mode)
190 {
191     return MXC_SPIXF_RevA_SetMode((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
192                                   (mxc_spixfm_reva_regs_t *)MXC_SPIXFM, mode);
193 }
194 
MXC_SPIXF_GetMode(void)195 mxc_spixf_mode_t MXC_SPIXF_GetMode(void)
196 {
197     return MXC_SPIXF_RevA_GetMode((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
198 }
199 
MXC_SPIXF_SetSSPolActiveHigh(void)200 int MXC_SPIXF_SetSSPolActiveHigh(void)
201 {
202     return MXC_SPIXF_RevA_SetSSPolActiveHigh((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
203                                              (mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
204 }
205 
206 #if defined(SPIXF_RAM) && IAR_PRAGMAS
207 #pragma section = ".spix_config"
208 #elif defined(SPIXF_RAM)
209 __attribute__((section(".spix_config")))
210 #endif
MXC_SPIXF_SetSSPolActiveLow(void)211 int MXC_SPIXF_SetSSPolActiveLow(void)
212 {
213     return MXC_SPIXF_RevA_SetSSPolActiveLow((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
214                                             (mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
215 }
216 
MXC_SPIXF_GetSSPolarity(void)217 int MXC_SPIXF_GetSSPolarity(void)
218 {
219     return MXC_SPIXF_RevA_GetSSPolarity((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
220 }
221 
222 #if defined(SPIXF_RAM) && IAR_PRAGMAS
223 #pragma section = ".spix_config"
224 #elif defined(SPIXF_RAM)
225 __attribute__((section(".spix_config")))
226 #endif
MXC_SPIXF_SetSPIFrequency(unsigned int hz)227 int MXC_SPIXF_SetSPIFrequency(unsigned int hz)
228 {
229     return MXC_SPIXF_RevA_SetSPIFrequency((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
230                                           (mxc_spixfm_reva_regs_t *)MXC_SPIXFM, hz);
231 }
232 
MXC_SPIXF_SetSPIFrequencyRead(unsigned int hz)233 int MXC_SPIXF_SetSPIFrequencyRead(unsigned int hz)
234 {
235     return MXC_SPIXF_RevA_SetSPIFrequency(NULL, (mxc_spixfm_reva_regs_t *)MXC_SPIXFM, hz);
236 }
237 
MXC_SPIXF_SetSPIFrequencyWrite(unsigned int hz)238 int MXC_SPIXF_SetSPIFrequencyWrite(unsigned int hz)
239 {
240     return MXC_SPIXF_RevA_SetSPIFrequency((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, NULL, hz);
241 }
242 
MXC_SPIXF_GetSPIFrequency(void)243 uint32_t MXC_SPIXF_GetSPIFrequency(void)
244 {
245     return MXC_SPIXF_RevA_GetSPIFrequency((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
246 }
247 
MXC_SPIXF_GetSPIFrequencyRead(void)248 uint32_t MXC_SPIXF_GetSPIFrequencyRead(void)
249 {
250     return MXC_SPIXF_RevA_GetSPIFrequency((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
251 }
252 
MXC_SPIXF_GetSPIFrequencyWrite(void)253 uint32_t MXC_SPIXF_GetSPIFrequencyWrite(void)
254 {
255     return MXC_SPIXF_RevA_GetSPIFrequencyWrite((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
256 }
257 
258 #if defined(SPIXF_RAM) && IAR_PRAGMAS
259 #pragma section = ".spix_config"
260 #elif defined(SPIXF_RAM)
261 __attribute__((section(".spix_config")))
262 #endif
MXC_SPIXF_SetSSActiveTime(mxc_spixf_ssact_t ssact)263 int MXC_SPIXF_SetSSActiveTime(mxc_spixf_ssact_t ssact)
264 {
265     return MXC_SPIXF_RevA_SetSSActiveTime((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
266                                           (mxc_spixfm_reva_regs_t *)MXC_SPIXFM, ssact);
267 }
268 
MXC_SPIXF_GetSSActiveTime(void)269 mxc_spixf_ssact_t MXC_SPIXF_GetSSActiveTime(void)
270 {
271     return MXC_SPIXF_RevA_GetSSActiveTime((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
272 }
273 
274 #if defined(SPIXF_RAM) && IAR_PRAGMAS
275 #pragma section = ".spix_config"
276 #elif defined(SPIXF_RAM)
277 __attribute__((section(".spix_config")))
278 #endif
MXC_SPIXF_SetSSInactiveTime(mxc_spixf_ssiact_t ssiact)279 int MXC_SPIXF_SetSSInactiveTime(mxc_spixf_ssiact_t ssiact)
280 {
281     return MXC_SPIXF_RevA_SetSSInactiveTime((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
282                                             (mxc_spixfm_reva_regs_t *)MXC_SPIXFM, ssiact);
283 }
284 
MXC_SPIXF_GetSSInactiveTime(void)285 mxc_spixf_ssiact_t MXC_SPIXF_GetSSInactiveTime(void)
286 {
287     return MXC_SPIXF_RevA_GetSSInactiveTime((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
288 }
289 
290 #if defined(SPIXF_RAM) && IAR_PRAGMAS
291 #pragma section = ".spix_config"
292 #elif defined(SPIXF_RAM)
293 __attribute__((section(".spix_config")))
294 #endif
MXC_SPIXF_SetCmdWidth(mxc_spixf_spiwidth_t width)295 int MXC_SPIXF_SetCmdWidth(mxc_spixf_spiwidth_t width)
296 {
297     return MXC_SPIXF_RevA_SetCmdWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXFM, width);
298 }
299 
MXC_SPIXF_GetCmdWidth(void)300 mxc_spixf_spiwidth_t MXC_SPIXF_GetCmdWidth(void)
301 {
302     return MXC_SPIXF_RevA_GetCmdWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
303 }
304 
305 #if defined(SPIXF_RAM) && IAR_PRAGMAS
306 #pragma section = ".spix_config"
307 #elif defined(SPIXF_RAM)
308 __attribute__((section(".spix_config")))
309 #endif
MXC_SPIXF_SetAddrWidth(mxc_spixf_spiwidth_t width)310 int MXC_SPIXF_SetAddrWidth(mxc_spixf_spiwidth_t width)
311 {
312     return MXC_SPIXF_RevA_SetAddrWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXFM, width);
313 }
314 
MXC_SPIXF_GetAddrWidth(void)315 mxc_spixf_spiwidth_t MXC_SPIXF_GetAddrWidth(void)
316 {
317     return MXC_SPIXF_RevA_GetAddrWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
318 }
319 
320 #if defined(SPIXF_RAM) && IAR_PRAGMAS
321 #pragma section = ".spix_config"
322 #elif defined(SPIXF_RAM)
323 __attribute__((section(".spix_config")))
324 #endif
MXC_SPIXF_SetDataWidth(mxc_spixf_spiwidth_t width)325 int MXC_SPIXF_SetDataWidth(mxc_spixf_spiwidth_t width)
326 {
327     return MXC_SPIXF_RevA_SetDataWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXFM, width);
328 }
329 
MXC_SPIXF_GetDataWidth(void)330 mxc_spixf_spiwidth_t MXC_SPIXF_GetDataWidth(void)
331 {
332     return MXC_SPIXF_RevA_GetDataWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
333 }
334 
MXC_SPIXF_Set4ByteAddr(void)335 int MXC_SPIXF_Set4ByteAddr(void)
336 {
337     return MXC_SPIXF_RevA_Set4ByteAddr((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
338 }
339 
340 #if defined(SPIXF_RAM) && IAR_PRAGMAS
341 #pragma section = ".spix_config"
342 #elif defined(SPIXF_RAM)
343 __attribute__((section(".spix_config")))
344 #endif
MXC_SPIXF_Set3ByteAddr(void)345 int MXC_SPIXF_Set3ByteAddr(void)
346 {
347     return MXC_SPIXF_RevA_Set3ByteAddr((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
348 }
349 
MXC_SPIXF_GetBytesPerAddr(void)350 unsigned int MXC_SPIXF_GetBytesPerAddr(void)
351 {
352     return MXC_SPIXF_RevA_GetBytesPerAddr((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
353 }
354 
355 #if defined(SPIXF_RAM) && IAR_PRAGMAS
356 #pragma section = ".spix_config"
357 #elif defined(SPIXF_RAM)
358 __attribute__((section(".spix_config")))
359 #endif
MXC_SPIXF_SetModeClk(uint8_t mdclk)360 int MXC_SPIXF_SetModeClk(uint8_t mdclk)
361 {
362     return MXC_SPIXF_RevA_SetModeClk((mxc_spixfm_reva_regs_t *)MXC_SPIXFM, mdclk);
363 }
364 
MXC_SPIXF_GetModeClk(void)365 uint8_t MXC_SPIXF_GetModeClk(void)
366 {
367     return MXC_SPIXF_RevA_GetModeClk((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
368 }
369 
370 #if defined(SPIXF_RAM) && IAR_PRAGMAS
371 #pragma section = ".spix_config"
372 #elif defined(SPIXF_RAM)
373 __attribute__((section(".spix_config")))
374 #endif
MXC_SPIXF_SetCmdValue(uint8_t cmdval)375 int MXC_SPIXF_SetCmdValue(uint8_t cmdval)
376 {
377     return MXC_SPIXF_RevA_SetCmdValue((mxc_spixfm_reva_regs_t *)MXC_SPIXFM, cmdval);
378 }
379 
MXC_SPIXF_SetCmdModeEveryTrans(void)380 int MXC_SPIXF_SetCmdModeEveryTrans(void)
381 {
382     return MXC_SPIXF_RevA_SetCmdModeEveryTrans((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
383 }
384 
MXC_SPIXF_SetCmdModeFirstTrans(void)385 int MXC_SPIXF_SetCmdModeFirstTrans(void)
386 {
387     return MXC_SPIXF_RevA_SetCmdModeFirstTrans((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
388 }
389 
MXC_SPIXF_GetCmdMode(void)390 mxc_spixf_cmd_t MXC_SPIXF_GetCmdMode(void)
391 {
392     return MXC_SPIXF_RevA_GetCmdMode((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
393 }
394 
MXC_SPIXF_BBDataOutputEnable(uint8_t mask)395 int MXC_SPIXF_BBDataOutputEnable(uint8_t mask)
396 {
397     return MXC_SPIXF_RevA_BBDataOutputEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
398 }
399 
MXC_SPIXF_BBDataOutputDisable(uint8_t mask)400 int MXC_SPIXF_BBDataOutputDisable(uint8_t mask)
401 {
402     return MXC_SPIXF_RevA_BBDataOutputDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
403 }
404 
MXC_SPIXF_BBDataOutputIsEnabled(void)405 uint8_t MXC_SPIXF_BBDataOutputIsEnabled(void)
406 {
407     return MXC_SPIXF_RevA_BBDataOutputIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
408 }
409 
MXC_SPIXF_GetBBDataOutputValue(void)410 uint8_t MXC_SPIXF_GetBBDataOutputValue(void)
411 {
412     return MXC_SPIXF_RevA_GetBBDataOutputValue((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
413 }
414 
MXC_SPIXF_GetBBDataInputValue(void)415 uint8_t MXC_SPIXF_GetBBDataInputValue(void)
416 {
417     return MXC_SPIXF_RevA_GetBBDataInputValue((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
418 }
419 
420 #if defined(SPIXF_RAM) && IAR_PRAGMAS
421 #pragma section = ".spix_config"
422 #elif defined(SPIXF_RAM)
423 __attribute__((section(".spix_config")))
424 #endif
MXC_SPIXF_SetModeData(uint16_t data)425 int MXC_SPIXF_SetModeData(uint16_t data)
426 {
427     return MXC_SPIXF_RevA_SetModeData((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
428                                       (mxc_spixfm_reva_regs_t *)MXC_SPIXFM, data);
429 }
430 
MXC_SPIXF_GetModeData(void)431 uint16_t MXC_SPIXF_GetModeData(void)
432 {
433     return MXC_SPIXF_RevA_GetModeData((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
434 }
435 
MXC_SPIXF_SetSCKInverted(void)436 int MXC_SPIXF_SetSCKInverted(void)
437 {
438     return MXC_SPIXF_RevA_SetSCKInverted((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
439                                          (mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
440 }
441 
442 #if defined(SPIXF_RAM) && IAR_PRAGMAS
443 #pragma section = ".spix_config"
444 #elif defined(SPIXF_RAM)
445 __attribute__((section(".spix_config")))
446 #endif
MXC_SPIXF_SetSCKNonInverted(void)447 int MXC_SPIXF_SetSCKNonInverted(void)
448 {
449     return MXC_SPIXF_RevA_SetSCKNonInverted((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
450                                             (mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
451 }
452 
MXC_SPIXF_GetSCKInverted(void)453 int MXC_SPIXF_GetSCKInverted(void)
454 {
455     return MXC_SPIXF_RevA_GetSCKInverted((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
456 }
457 
458 #if defined(SPIXF_RAM) && IAR_PRAGMAS
459 #pragma section = ".spix_config"
460 #elif defined(SPIXF_RAM)
461 __attribute__((section(".spix_config")))
462 #endif
MXC_SPIXF_SCKFeedbackEnable(void)463 int MXC_SPIXF_SCKFeedbackEnable(void)
464 {
465     return MXC_SPIXF_RevA_SCKFeedbackEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
466                                             (mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
467 }
468 
MXC_SPIXF_SCKFeedbackDisable(void)469 int MXC_SPIXF_SCKFeedbackDisable(void)
470 {
471     return MXC_SPIXF_RevA_SCKFeedbackDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
472                                              (mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
473 }
474 
MXC_SPIXF_SCKFeedbackIsEnabled(void)475 int MXC_SPIXF_SCKFeedbackIsEnabled(void)
476 {
477     return MXC_SPIXF_RevA_SCKFeedbackIsEnabled((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
478 }
479 
MXC_SPIXF_SetSCKSampleDelay(uint8_t delay)480 int MXC_SPIXF_SetSCKSampleDelay(uint8_t delay)
481 {
482     return MXC_SPIXF_RevA_SetSCKSampleDelay((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, delay);
483 }
484 
MXC_SPIXF_GetSCKSampleDelay(void)485 uint8_t MXC_SPIXF_GetSCKSampleDelay(void)
486 {
487     return MXC_SPIXF_RevA_GetSCKSampleDelay((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
488 }
489 
MXC_SPIXF_SetPageSize(mxc_spixf_page_size_t size)490 void MXC_SPIXF_SetPageSize(mxc_spixf_page_size_t size)
491 {
492     MXC_SPIXF_RevA_SetPageSize((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, size);
493 }
494 
MXC_SPIXF_GetPageSize(void)495 mxc_spixf_page_size_t MXC_SPIXF_GetPageSize(void)
496 {
497     return MXC_SPIXF_RevA_GetPageSize((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
498 }
499 
MXC_SPIXF_SimpleRXEnabled(void)500 int MXC_SPIXF_SimpleRXEnabled(void)
501 {
502     return MXC_SPIXF_RevA_SimpleRXEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
503 }
504 
MXC_SPIXF_SimpleRXDisable(void)505 int MXC_SPIXF_SimpleRXDisable(void)
506 {
507     return MXC_SPIXF_RevA_SimpleRXDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
508 }
509 
MXC_SPIXF_SimpleRXIsEnabled(void)510 int MXC_SPIXF_SimpleRXIsEnabled(void)
511 {
512     return MXC_SPIXF_RevA_SimpleRXIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
513 }
514 
MXC_SPIXF_SimpleModeEnable(void)515 int MXC_SPIXF_SimpleModeEnable(void)
516 {
517     return MXC_SPIXF_RevA_SimpleModeEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
518 }
519 
MXC_SPIXF_SimpleModeDisable(void)520 int MXC_SPIXF_SimpleModeDisable(void)
521 {
522     return MXC_SPIXF_RevA_SimpleModeDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
523 }
524 
MXC_SPIXF_SimpleModeIsEnabled(void)525 int MXC_SPIXF_SimpleModeIsEnabled(void)
526 {
527     return MXC_SPIXF_RevA_SimpleModeIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
528 }
529 
MXC_SPIXF_SampleOutputEnable(uint8_t mask)530 int MXC_SPIXF_SampleOutputEnable(uint8_t mask)
531 {
532     return MXC_SPIXF_RevA_SampleOutputEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
533 }
534 
MXC_SPIXF_SampleOutputDisable(uint8_t mask)535 int MXC_SPIXF_SampleOutputDisable(uint8_t mask)
536 {
537     return MXC_SPIXF_RevA_SampleOutputDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
538 }
539 
MXC_SPIXF_SampleOutputIsEnabled(void)540 uint8_t MXC_SPIXF_SampleOutputIsEnabled(void)
541 {
542     return MXC_SPIXF_RevA_SampleOutputIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
543 }
544 
MXC_SPIXF_GetSampleOutputValue(void)545 uint8_t MXC_SPIXF_GetSampleOutputValue(void)
546 {
547     return MXC_SPIXF_RevA_GetSampleOutputValue((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
548 }
549 
MXC_SPIXF_SetSCKDriveHigh(void)550 void MXC_SPIXF_SetSCKDriveHigh(void)
551 {
552     MXC_SPIXF_RevA_SetSCKDriveHigh((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
553 }
554 
MXC_SPIXF_SetSCKDriveLow(void)555 void MXC_SPIXF_SetSCKDriveLow(void)
556 {
557     MXC_SPIXF_RevA_SetSCKDriveLow((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
558 }
559 
MXC_SPIXF_GetSCKDrive(void)560 uint8_t MXC_SPIXF_GetSCKDrive(void)
561 {
562     return MXC_SPIXF_RevA_GetSCKDrive((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
563 }
564 
MXC_SPIXF_SetSSDriveOutputHigh(void)565 void MXC_SPIXF_SetSSDriveOutputHigh(void)
566 {
567     MXC_SPIXF_RevA_SetSSDriveOutputHigh((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
568 }
569 
MXC_SPIXF_SetSSDriveOutputLow(void)570 void MXC_SPIXF_SetSSDriveOutputLow(void)
571 {
572     MXC_SPIXF_RevA_SetSSDriveOutputLow((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
573 }
574 
MXC_SPIXF_GetSSDriveOutput(void)575 uint8_t MXC_SPIXF_GetSSDriveOutput(void)
576 {
577     return MXC_SPIXF_RevA_GetSSDriveOutput((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
578 }
579 
MXC_SPIXF_BitBangModeEnable(void)580 int MXC_SPIXF_BitBangModeEnable(void)
581 {
582     return MXC_SPIXF_RevA_BitBangModeEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
583 }
584 
MXC_SPIXF_BitBangModeDisable(void)585 int MXC_SPIXF_BitBangModeDisable(void)
586 {
587     return MXC_SPIXF_RevA_BitBangModeDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
588 }
589 
MXC_SPIXF_BitBangModeIsEnabled(void)590 int MXC_SPIXF_BitBangModeIsEnabled(void)
591 {
592     return MXC_SPIXF_RevA_BitBangModeIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
593 }
594 
MXC_SPIXF_RXFIFOEnable(void)595 int MXC_SPIXF_RXFIFOEnable(void)
596 {
597     return MXC_SPIXF_RevA_RXFIFOEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
598 }
599 
MXC_SPIXF_RXFIFODisable(void)600 int MXC_SPIXF_RXFIFODisable(void)
601 {
602     return MXC_SPIXF_RevA_RXFIFODisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
603 }
604 
MXC_SPIXF_RXFIFOIsEnabled(void)605 int MXC_SPIXF_RXFIFOIsEnabled(void)
606 {
607     return MXC_SPIXF_RevA_RXFIFOIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
608 }
609 
MXC_SPIXF_TXFIFOEnable(void)610 int MXC_SPIXF_TXFIFOEnable(void)
611 {
612     return MXC_SPIXF_RevA_TXFIFOEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
613 }
614 
MXC_SPIXF_TXFIFODisable(void)615 int MXC_SPIXF_TXFIFODisable(void)
616 {
617     return MXC_SPIXF_RevA_TXFIFODisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
618 }
619 
MXC_SPIXF_TXFIFOIsEnabled(void)620 int MXC_SPIXF_TXFIFOIsEnabled(void)
621 {
622     return MXC_SPIXF_RevA_IsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
623 }
624 
625 #if defined(SPIXF_RAM) && IAR_PRAGMAS
626 #pragma section = ".spix_config"
627 #elif defined(SPIXF_RAM)
628 __attribute__((section(".spix_config")))
629 #endif
MXC_SPIXF_Enable(void)630 int MXC_SPIXF_Enable(void)
631 {
632     return MXC_SPIXF_RevA_Enable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
633 }
634 
635 #if defined(SPIXF_RAM) && IAR_PRAGMAS
636 #pragma section = ".spix_config"
637 #elif defined(SPIXF_RAM)
638 __attribute__((section(".spix_config")))
639 #endif
MXC_SPIXF_Disable(void)640 int MXC_SPIXF_Disable(void)
641 {
642     return MXC_SPIXF_RevA_Disable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
643 }
644 
645 #if defined(SPIXF_RAM) && IAR_PRAGMAS
646 #pragma section = ".spix_config"
647 #elif defined(SPIXF_RAM)
648 __attribute__((section(".spix_config")))
649 #endif
MXC_SPIXF_IsEnabled(void)650 int MXC_SPIXF_IsEnabled(void)
651 {
652     return MXC_SPIXF_RevA_IsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
653 }
654 
MXC_SPIXF_SetIoctrlSDIODriveHigh(void)655 void MXC_SPIXF_SetIoctrlSDIODriveHigh(void)
656 {
657     MXC_SPIXF_RevA_SetIoctrlSDIODriveHigh((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
658 }
659 
MXC_SPIXF_SetIoctrlSDIODriveLow(void)660 void MXC_SPIXF_SetIoctrlSDIODriveLow(void)
661 {
662     MXC_SPIXF_RevA_SetIoctrlSDIODriveLow((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
663 }
664 
MXC_SPIXF_GetIoctrlSDIODrive(void)665 uint8_t MXC_SPIXF_GetIoctrlSDIODrive(void)
666 {
667     return MXC_SPIXF_RevA_GetIoctrlSDIODrive((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
668 }
669 
MXC_SPIXF_SetIoctrlSCLKDriveHigh(void)670 void MXC_SPIXF_SetIoctrlSCLKDriveHigh(void)
671 {
672     MXC_SPIXF_RevA_SetIoctrlSCLKDriveHigh((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
673 }
674 
MXC_SPIXF_SetIoctrlSCLKDriveLow(void)675 void MXC_SPIXF_SetIoctrlSCLKDriveLow(void)
676 {
677     MXC_SPIXF_RevA_SetIoctrlSCLKDriveLow((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
678 }
679 
MXC_SPIXF_GetIoctrlSCLKDrive(void)680 uint8_t MXC_SPIXF_GetIoctrlSCLKDrive(void)
681 {
682     return MXC_SPIXF_RevA_GetIoctrlSCLKDrive((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
683 }
684 
MXC_SPIXF_SetIoctrlSSDriveHigh(void)685 void MXC_SPIXF_SetIoctrlSSDriveHigh(void)
686 {
687     MXC_SPIXF_RevA_SetIoctrlSSDriveHigh((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
688 }
689 
MXC_SPIXF_SetIoctrlSSDriveLow(void)690 void MXC_SPIXF_SetIoctrlSSDriveLow(void)
691 {
692     MXC_SPIXF_RevA_SetIoctrlSSDriveLow((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
693 }
694 
MXC_SPIXF_GetIoctrlSSDrive(void)695 uint8_t MXC_SPIXF_GetIoctrlSSDrive(void)
696 {
697     return MXC_SPIXF_RevA_GetIoctrlSSDrive((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
698 }
699 
MXC_SPIXF_SetPuPdCtrl(mxc_spixf_pup_t pupd)700 void MXC_SPIXF_SetPuPdCtrl(mxc_spixf_pup_t pupd)
701 {
702     MXC_SPIXF_RevA_SetPuPdCtrl((mxc_spixfm_reva_regs_t *)MXC_SPIXFM, pupd);
703 }
704 
MXC_SPIXF_GetPuPdCtrl(void)705 uint8_t MXC_SPIXF_GetPuPdCtrl(void)
706 {
707     return MXC_SPIXF_RevA_GetPuPdCtrl((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
708 }
709 
710 #if defined(SPIXF_RAM) && IAR_PRAGMAS
711 #pragma section = ".spix_config"
712 #elif defined(SPIXF_RAM)
713 __attribute__((section(".spix_config")))
714 #endif
MXC_SPIXF_SetBusIdle(unsigned int busidle)715 int MXC_SPIXF_SetBusIdle(unsigned int busidle)
716 {
717     return MXC_SPIXF_RevA_SetBusIdle((mxc_spixfm_reva_regs_t *)MXC_SPIXFM, busidle);
718 }
719 
MXC_SPIXF_GetBusIdle(void)720 unsigned int MXC_SPIXF_GetBusIdle(void)
721 {
722     return MXC_SPIXF_RevA_GetBusIdle((mxc_spixfm_reva_regs_t *)MXC_SPIXFM);
723 }
724