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