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 <stdio.h>
24 #include "mxc_errors.h"
25 #include "mxc_assert.h"
26 #include "mxc_lock.h"
27 #include "spixf.h"
28 #include "spixf_reva.h"
29 
30 /* **** Definitions **** */
31 
32 /* **** Globals **** */
33 
34 /* ************************************************************************** */
MXC_SPIXF_Init(uint32_t cmdval,uint32_t frequency)35 int MXC_SPIXF_Init(uint32_t cmdval, uint32_t frequency)
36 {
37 #ifndef MSDK_NO_GPIO_CLK_INIT
38     MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SPIXIPF);
39     MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_SPIXIPM);
40     MXC_SYS_ClockEnable(MXC_SYS_PERIPH_CLOCK_ICACHEXIP);
41     MXC_GPIO_Config(&gpio_cfg_spixfc);
42 #endif
43 
44     MXC_SPIXF_RevA_Init((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, (mxc_spixfm_reva_regs_t *)MXC_SPIXF,
45                         cmdval, frequency);
46 
47     MXC_SPIXFC->gen_ctrl |= MXC_F_SPIXFC_GEN_CTRL_ENABLE;
48     return E_NO_ERROR;
49 }
50 
51 /* ************************************************************************** */
MXC_SPIXF_Shutdown(void)52 void MXC_SPIXF_Shutdown(void)
53 {
54     MXC_SPIXF_RevA_Shutdown((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
55 
56     MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_SPIXIPF);
57     MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_SPIXIPM);
58     MXC_SYS_ClockDisable(MXC_SYS_PERIPH_CLOCK_ICACHEXIP);
59 }
60 
61 /* ************************************************************************** */
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)62 void MXC_SPIXF_IOCtrl(mxc_spixf_ds_t sclk_ds, mxc_spixf_ds_t ss_ds, mxc_spixf_ds_t sdio_ds,
63                       mxc_spixf_pup_t pupdctrl)
64 {
65     MXC_SPIXF_RevA_IOCtrl((mxc_spixfm_reva_regs_t *)MXC_SPIXF, sclk_ds, ss_ds, sdio_ds, pupdctrl);
66 }
67 
68 /* ************************************************************************** */
MXC_SPIXF_Clocks(uint32_t len,uint8_t deass)69 int MXC_SPIXF_Clocks(uint32_t len, uint8_t deass)
70 {
71     return MXC_SPIXF_RevA_Clocks((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
72                                  (mxc_spixfm_reva_regs_t *)MXC_SPIXF,
73                                  (mxc_spixfc_fifo_reva_regs_t *)MXC_SPIXFC_FIFO, len, deass);
74 }
75 
76 /* ************************************************************************** */
MXC_SPIXF_Transaction(mxc_spixf_req_t * req)77 int MXC_SPIXF_Transaction(mxc_spixf_req_t *req)
78 {
79     return MXC_SPIXF_RevA_Transaction((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
80                                       (mxc_spixfc_fifo_reva_regs_t *)MXC_SPIXFC_FIFO, req);
81 }
82 
83 /* ************************************************************************** */
MXC_SPIXF_TransactionAsync(mxc_spixf_req_t * req)84 int MXC_SPIXF_TransactionAsync(mxc_spixf_req_t *req)
85 {
86     return MXC_SPIXF_RevA_TransactionAsync((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
87                                            (mxc_spixfc_fifo_reva_regs_t *)MXC_SPIXFC_FIFO, req);
88 }
89 
90 /* ************************************************************************** */
MXC_SPIXF_AbortAsync(mxc_spixf_req_t * req)91 int MXC_SPIXF_AbortAsync(mxc_spixf_req_t *req)
92 {
93     return MXC_SPIXF_RevA_AbortAsync((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, req);
94 }
95 
96 /* ************************************************************************** */
MXC_SPIXF_Handler(void)97 void MXC_SPIXF_Handler(void)
98 {
99     MXC_SPIXF_RevA_Handler((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
100                            (mxc_spixfc_fifo_reva_regs_t *)MXC_SPIXFC_FIFO);
101 }
102 
103 /* ************************************************************************** */
MXC_SPIXF_ReadyForSleep(void)104 int MXC_SPIXF_ReadyForSleep(void)
105 {
106     return MXC_SPIXF_RevA_ReadyForSleep((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
107 }
108 
109 /* ************************************************************************** */
MXC_SPIXF_EnableInt(uint32_t mask)110 int MXC_SPIXF_EnableInt(uint32_t mask)
111 {
112     return MXC_SPIXF_RevA_EnableInt((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
113 }
114 
115 /* ************************************************************************** */
MXC_SPIXF_DisableInt(uint32_t mask)116 int MXC_SPIXF_DisableInt(uint32_t mask)
117 {
118     return MXC_SPIXF_RevA_DisableInt((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
119 }
120 
121 /* ************************************************************************** */
MXC_SPIXF_ClearFlags(uint32_t flags)122 int MXC_SPIXF_ClearFlags(uint32_t flags)
123 {
124     return MXC_SPIXF_RevA_ClearFlags((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, flags);
125 }
126 
127 /* ************************************************************************** */
MXC_SPIXF_GetFlags(void)128 int MXC_SPIXF_GetFlags(void)
129 {
130     return MXC_SPIXF_RevA_GetFlags((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
131 }
132 
133 /* ************************************************************************** */
MXC_SPIXF_SetMode(mxc_spixf_mode_t mode)134 int MXC_SPIXF_SetMode(mxc_spixf_mode_t mode)
135 {
136     return MXC_SPIXF_RevA_SetMode((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
137                                   (mxc_spixfm_reva_regs_t *)MXC_SPIXF, mode);
138 }
139 
140 /* ************************************************************************** */
MXC_SPIXF_GetMode(void)141 mxc_spixf_mode_t MXC_SPIXF_GetMode(void)
142 {
143     return MXC_SPIXF_RevA_GetMode((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
144 }
145 
146 /* ************************************************************************** */
MXC_SPIXF_SetSSPolActiveHigh(void)147 int MXC_SPIXF_SetSSPolActiveHigh(void)
148 {
149     return MXC_SPIXF_RevA_SetSSPolActiveHigh((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
150                                              (mxc_spixfm_reva_regs_t *)MXC_SPIXF);
151 }
152 
153 /* ************************************************************************** */
MXC_SPIXF_SetSSPolActiveLow(void)154 int MXC_SPIXF_SetSSPolActiveLow(void)
155 {
156     return MXC_SPIXF_RevA_SetSSPolActiveLow((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
157                                             (mxc_spixfm_reva_regs_t *)MXC_SPIXF);
158 }
159 
160 /* ************************************************************************** */
MXC_SPIXF_GetSSPolarity(void)161 int MXC_SPIXF_GetSSPolarity(void)
162 {
163     return MXC_SPIXF_RevA_GetSSPolarity((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
164 }
165 
166 /* ************************************************************************** */
MXC_SPIXF_SetSPIFrequency(unsigned int hz)167 int MXC_SPIXF_SetSPIFrequency(unsigned int hz)
168 {
169     return MXC_SPIXF_RevA_SetSPIFrequency((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
170                                           (mxc_spixfm_reva_regs_t *)MXC_SPIXF, hz);
171 }
172 
173 /* ************************************************************************** */
MXC_SPIXF_SetSPIFrequencyRead(unsigned int hz)174 int MXC_SPIXF_SetSPIFrequencyRead(unsigned int hz)
175 {
176     return MXC_SPIXF_RevA_SetSPIFrequency(NULL, (mxc_spixfm_reva_regs_t *)MXC_SPIXF, hz);
177 }
178 
179 /* ************************************************************************** */
MXC_SPIXF_SetSPIFrequencyWrite(unsigned int hz)180 int MXC_SPIXF_SetSPIFrequencyWrite(unsigned int hz)
181 {
182     return MXC_SPIXF_RevA_SetSPIFrequency((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, NULL, hz);
183 }
184 
185 /* ************************************************************************** */
MXC_SPIXF_GetSPIFrequency(void)186 uint32_t MXC_SPIXF_GetSPIFrequency(void)
187 {
188     return MXC_SPIXF_RevA_GetSPIFrequency((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
189 }
190 
191 /* ************************************************************************** */
MXC_SPIXF_GetSPIFrequencyRead(void)192 uint32_t MXC_SPIXF_GetSPIFrequencyRead(void)
193 {
194     return MXC_SPIXF_RevA_GetSPIFrequency((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
195 }
196 
197 /* ************************************************************************** */
MXC_SPIXF_GetSPIFrequencyWrite(void)198 uint32_t MXC_SPIXF_GetSPIFrequencyWrite(void)
199 {
200     return MXC_SPIXF_RevA_GetSPIFrequencyWrite((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
201 }
202 
203 /* ************************************************************************** */
MXC_SPIXF_SetSSActiveTime(mxc_spixf_ssact_t ssact)204 int MXC_SPIXF_SetSSActiveTime(mxc_spixf_ssact_t ssact)
205 {
206     return MXC_SPIXF_RevA_SetSSActiveTime((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
207                                           (mxc_spixfm_reva_regs_t *)MXC_SPIXF, ssact);
208 }
209 
210 /* ************************************************************************** */
MXC_SPIXF_GetSSActiveTime(void)211 mxc_spixf_ssact_t MXC_SPIXF_GetSSActiveTime(void)
212 {
213     return MXC_SPIXF_RevA_GetSSActiveTime((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
214 }
215 
216 /* ************************************************************************** */
MXC_SPIXF_SetSSInactiveTime(mxc_spixf_ssiact_t ssiact)217 int MXC_SPIXF_SetSSInactiveTime(mxc_spixf_ssiact_t ssiact)
218 {
219     return MXC_SPIXF_RevA_SetSSInactiveTime((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
220                                             (mxc_spixfm_reva_regs_t *)MXC_SPIXF, ssiact);
221 }
222 
223 /* ************************************************************************** */
MXC_SPIXF_GetSSInactiveTime(void)224 mxc_spixf_ssiact_t MXC_SPIXF_GetSSInactiveTime(void)
225 {
226     return MXC_SPIXF_RevA_GetSSInactiveTime((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
227 }
228 
229 /* ************************************************************************** */
MXC_SPIXF_SetCmdWidth(mxc_spixf_spiwidth_t width)230 int MXC_SPIXF_SetCmdWidth(mxc_spixf_spiwidth_t width)
231 {
232     return MXC_SPIXF_RevA_SetCmdWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXF, width);
233 }
234 
235 /* ************************************************************************** */
MXC_SPIXF_GetCmdWidth(void)236 mxc_spixf_spiwidth_t MXC_SPIXF_GetCmdWidth(void)
237 {
238     return MXC_SPIXF_RevA_GetCmdWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
239 }
240 
241 /* ************************************************************************** */
MXC_SPIXF_SetAddrWidth(mxc_spixf_spiwidth_t width)242 int MXC_SPIXF_SetAddrWidth(mxc_spixf_spiwidth_t width)
243 {
244     return MXC_SPIXF_RevA_SetAddrWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXF, width);
245 }
246 
247 /* ************************************************************************** */
MXC_SPIXF_GetAddrWidth(void)248 mxc_spixf_spiwidth_t MXC_SPIXF_GetAddrWidth(void)
249 {
250     return MXC_SPIXF_RevA_GetAddrWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
251 }
252 
253 /* ************************************************************************** */
MXC_SPIXF_SetDataWidth(mxc_spixf_spiwidth_t width)254 int MXC_SPIXF_SetDataWidth(mxc_spixf_spiwidth_t width)
255 {
256     return MXC_SPIXF_RevA_SetDataWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXF, width);
257 }
258 
259 /* ************************************************************************** */
MXC_SPIXF_GetDataWidth(void)260 mxc_spixf_spiwidth_t MXC_SPIXF_GetDataWidth(void)
261 {
262     return MXC_SPIXF_RevA_GetDataWidth((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
263 }
264 
265 /* ************************************************************************** */
MXC_SPIXF_Set4ByteAddr(void)266 int MXC_SPIXF_Set4ByteAddr(void)
267 {
268     return MXC_SPIXF_RevA_Set4ByteAddr((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
269 }
270 
271 /* ************************************************************************** */
MXC_SPIXF_Set3ByteAddr(void)272 int MXC_SPIXF_Set3ByteAddr(void)
273 {
274     return MXC_SPIXF_RevA_Set3ByteAddr((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
275 }
276 
277 /* ************************************************************************** */
MXC_SPIXF_GetBytesPerAddr(void)278 unsigned int MXC_SPIXF_GetBytesPerAddr(void)
279 {
280     return MXC_SPIXF_RevA_GetBytesPerAddr((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
281 }
282 
283 /* ************************************************************************** */
MXC_SPIXF_SetModeClk(uint8_t mdclk)284 int MXC_SPIXF_SetModeClk(uint8_t mdclk)
285 {
286     return MXC_SPIXF_RevA_SetModeClk((mxc_spixfm_reva_regs_t *)MXC_SPIXF, mdclk);
287 }
288 
289 /* ************************************************************************** */
MXC_SPIXF_GetModeClk(void)290 uint8_t MXC_SPIXF_GetModeClk(void)
291 {
292     return MXC_SPIXF_RevA_GetModeClk((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
293 }
294 
295 /* ************************************************************************** */
MXC_SPIXF_SetCmdValue(uint8_t cmdval)296 int MXC_SPIXF_SetCmdValue(uint8_t cmdval)
297 {
298     return MXC_SPIXF_RevA_SetCmdValue((mxc_spixfm_reva_regs_t *)MXC_SPIXF, cmdval);
299 }
300 
301 /* ************************************************************************** */
MXC_SPIXF_SetCmdModeEveryTrans(void)302 int MXC_SPIXF_SetCmdModeEveryTrans(void)
303 {
304     if (MXC_SPIXF_GetSSDriveOutput() == 1) {
305         return E_BUSY;
306     }
307 
308     MXC_SPIXF->mode_ctrl &= ~MXC_F_SPIXF_MODE_CTRL_NOCMD;
309     return E_NO_ERROR;
310 }
311 
312 /* ************************************************************************** */
MXC_SPIXF_SetCmdModeFirstTrans(void)313 int MXC_SPIXF_SetCmdModeFirstTrans(void)
314 {
315     if (MXC_SPIXF_GetSSDriveOutput() == 1) {
316         return E_BUSY;
317     }
318 
319     MXC_SPIXF->mode_ctrl |= MXC_F_SPIXF_MODE_CTRL_NOCMD;
320     return E_NO_ERROR;
321 }
322 
323 /* ************************************************************************** */
MXC_SPIXF_GetCmdMode(void)324 mxc_spixf_cmd_t MXC_SPIXF_GetCmdMode(void)
325 {
326     return MXC_SPIXF_RevA_GetCmdMode((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
327 }
328 
329 /* ************************************************************************** */
MXC_SPIXF_BBDataOutputEnable(uint8_t mask)330 int MXC_SPIXF_BBDataOutputEnable(uint8_t mask)
331 {
332     return MXC_SPIXF_RevA_BBDataOutputEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
333 }
334 
335 /* ************************************************************************** */
MXC_SPIXF_BBDataOutputDisable(uint8_t mask)336 int MXC_SPIXF_BBDataOutputDisable(uint8_t mask)
337 {
338     return MXC_SPIXF_RevA_BBDataOutputDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
339 }
340 
341 /* ************************************************************************** */
MXC_SPIXF_BBDataOutputIsEnabled(void)342 uint8_t MXC_SPIXF_BBDataOutputIsEnabled(void)
343 {
344     return MXC_SPIXF_RevA_BBDataOutputIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
345 }
346 
347 /* ************************************************************************** */
MXC_SPIXF_GetBBDataOutputValue(void)348 uint8_t MXC_SPIXF_GetBBDataOutputValue(void)
349 {
350     return MXC_SPIXF_RevA_GetBBDataOutputValue((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
351 }
352 
353 /* ************************************************************************** */
MXC_SPIXF_GetBBDataInputValue(void)354 uint8_t MXC_SPIXF_GetBBDataInputValue(void)
355 {
356     return MXC_SPIXF_RevA_GetBBDataInputValue((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
357 }
358 
359 /* ************************************************************************** */
MXC_SPIXF_SetModeData(uint16_t data)360 int MXC_SPIXF_SetModeData(uint16_t data)
361 {
362     return MXC_SPIXF_RevA_SetModeData((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
363                                       (mxc_spixfm_reva_regs_t *)MXC_SPIXF, data);
364 }
365 
366 /* ************************************************************************** */
MXC_SPIXF_GetModeData(void)367 uint16_t MXC_SPIXF_GetModeData(void)
368 {
369     return MXC_SPIXF_RevA_GetModeData((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
370 }
371 
372 /* ************************************************************************** */
MXC_SPIXF_SetSCKInverted(void)373 int MXC_SPIXF_SetSCKInverted(void)
374 {
375     return MXC_SPIXF_RevA_SetSCKInverted((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
376                                          (mxc_spixfm_reva_regs_t *)MXC_SPIXF);
377 }
378 
379 /* ************************************************************************** */
MXC_SPIXF_SetSCKNonInverted(void)380 int MXC_SPIXF_SetSCKNonInverted(void)
381 {
382     return MXC_SPIXF_RevA_SetSCKNonInverted((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
383                                             (mxc_spixfm_reva_regs_t *)MXC_SPIXF);
384 }
385 
386 /* ************************************************************************** */
MXC_SPIXF_GetSCKInverted(void)387 int MXC_SPIXF_GetSCKInverted(void)
388 {
389     return MXC_SPIXF_RevA_GetSCKInverted((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
390 }
391 
392 /* ************************************************************************** */
MXC_SPIXF_SCKFeedbackEnable(void)393 int MXC_SPIXF_SCKFeedbackEnable(void)
394 {
395     return MXC_SPIXF_RevA_SCKFeedbackEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
396                                             (mxc_spixfm_reva_regs_t *)MXC_SPIXF);
397 }
398 
399 /* ************************************************************************** */
MXC_SPIXF_SCKFeedbackDisable(void)400 int MXC_SPIXF_SCKFeedbackDisable(void)
401 {
402     return MXC_SPIXF_RevA_SCKFeedbackDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC,
403                                              (mxc_spixfm_reva_regs_t *)MXC_SPIXF);
404 }
405 
406 /* ************************************************************************** */
MXC_SPIXF_SCKFeedbackIsEnabled(void)407 int MXC_SPIXF_SCKFeedbackIsEnabled(void)
408 {
409     return MXC_SPIXF_RevA_SCKFeedbackIsEnabled((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
410 }
411 
412 /* ************************************************************************** */
MXC_SPIXF_SetSCKSampleDelay(uint8_t delay)413 int MXC_SPIXF_SetSCKSampleDelay(uint8_t delay)
414 {
415     return MXC_SPIXF_RevA_SetSCKSampleDelay((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, delay);
416 }
417 
418 /* ************************************************************************** */
MXC_SPIXF_GetSCKSampleDelay(void)419 uint8_t MXC_SPIXF_GetSCKSampleDelay(void)
420 {
421     return MXC_SPIXF_RevA_GetSCKSampleDelay((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
422 }
423 
424 /* ************************************************************************** */
MXC_SPIXF_SetPageSize(mxc_spixf_page_size_t size)425 void MXC_SPIXF_SetPageSize(mxc_spixf_page_size_t size)
426 {
427     MXC_SPIXF_RevA_SetPageSize((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, size);
428 }
429 
430 /* ************************************************************************** */
MXC_SPIXF_GetPageSize(void)431 mxc_spixf_page_size_t MXC_SPIXF_GetPageSize(void)
432 {
433     return MXC_SPIXF_RevA_GetPageSize((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
434 }
435 
436 /* ************************************************************************** */
MXC_SPIXF_SimpleRXEnabled(void)437 int MXC_SPIXF_SimpleRXEnabled(void)
438 {
439     return MXC_SPIXF_RevA_SimpleRXEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
440 }
441 
442 /* ************************************************************************** */
MXC_SPIXF_SimpleRXDisable(void)443 int MXC_SPIXF_SimpleRXDisable(void)
444 {
445     return MXC_SPIXF_RevA_SimpleRXDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
446 }
447 
448 /* ************************************************************************** */
MXC_SPIXF_SimpleRXIsEnabled(void)449 int MXC_SPIXF_SimpleRXIsEnabled(void)
450 {
451     return MXC_SPIXF_RevA_SimpleRXIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
452 }
453 
454 /* ************************************************************************** */
MXC_SPIXF_SimpleModeEnable(void)455 int MXC_SPIXF_SimpleModeEnable(void)
456 {
457     return MXC_SPIXF_RevA_SimpleModeEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
458 }
459 
460 /* ************************************************************************** */
MXC_SPIXF_SimpleModeDisable(void)461 int MXC_SPIXF_SimpleModeDisable(void)
462 {
463     return MXC_SPIXF_RevA_SimpleModeDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
464 }
465 
466 /* ************************************************************************** */
MXC_SPIXF_SimpleModeIsEnabled(void)467 int MXC_SPIXF_SimpleModeIsEnabled(void)
468 {
469     return MXC_SPIXF_RevA_SimpleModeIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
470 }
471 
472 /* ************************************************************************** */
MXC_SPIXF_SampleOutputEnable(uint8_t mask)473 int MXC_SPIXF_SampleOutputEnable(uint8_t mask)
474 {
475     return MXC_SPIXF_RevA_SampleOutputEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
476 }
477 
478 /* ************************************************************************** */
MXC_SPIXF_SampleOutputDisable(uint8_t mask)479 int MXC_SPIXF_SampleOutputDisable(uint8_t mask)
480 {
481     return MXC_SPIXF_RevA_SampleOutputDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC, mask);
482 }
483 
484 /* ************************************************************************** */
MXC_SPIXF_SampleOutputIsEnabled(void)485 uint8_t MXC_SPIXF_SampleOutputIsEnabled(void)
486 {
487     return MXC_SPIXF_RevA_SampleOutputIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
488 }
489 
490 /* ************************************************************************** */
MXC_SPIXF_GetSampleOutputValue(void)491 uint8_t MXC_SPIXF_GetSampleOutputValue(void)
492 {
493     return MXC_SPIXF_RevA_GetSampleOutputValue((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
494 }
495 
496 /* ************************************************************************** */
MXC_SPIXF_SetSCKDriveHigh(void)497 void MXC_SPIXF_SetSCKDriveHigh(void)
498 {
499     MXC_SPIXF_RevA_SetSCKDriveHigh((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
500 }
501 
502 /* ************************************************************************** */
MXC_SPIXF_SetSCKDriveLow(void)503 void MXC_SPIXF_SetSCKDriveLow(void)
504 {
505     MXC_SPIXF_RevA_SetSCKDriveLow((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
506 }
507 
508 /* ************************************************************************** */
MXC_SPIXF_GetSCKDrive(void)509 uint8_t MXC_SPIXF_GetSCKDrive(void)
510 {
511     return MXC_SPIXF_RevA_GetSCKDrive((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
512 }
513 
514 /* ************************************************************************** */
MXC_SPIXF_SetSSDriveOutputHigh(void)515 void MXC_SPIXF_SetSSDriveOutputHigh(void)
516 {
517     MXC_SPIXFC->gen_ctrl |= MXC_F_SPIXFC_GEN_CTRL_SSDR;
518 }
519 
520 /* ************************************************************************** */
MXC_SPIXF_SetSSDriveOutputLow(void)521 void MXC_SPIXF_SetSSDriveOutputLow(void)
522 {
523     MXC_SPIXFC->gen_ctrl &= ~MXC_F_SPIXFC_GEN_CTRL_SSDR;
524 }
525 
526 /* ************************************************************************** */
MXC_SPIXF_GetSSDriveOutput(void)527 uint8_t MXC_SPIXF_GetSSDriveOutput(void)
528 {
529     return !!(MXC_SPIXFC->gen_ctrl & MXC_F_SPIXFC_GEN_CTRL_SSDR);
530 }
531 
532 /* ************************************************************************** */
MXC_SPIXF_BitBangModeEnable(void)533 int MXC_SPIXF_BitBangModeEnable(void)
534 {
535     return MXC_SPIXF_RevA_BitBangModeEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
536 }
537 
538 /* ************************************************************************** */
MXC_SPIXF_BitBangModeDisable(void)539 int MXC_SPIXF_BitBangModeDisable(void)
540 {
541     return MXC_SPIXF_RevA_BitBangModeDisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
542 }
543 
544 /* ************************************************************************** */
MXC_SPIXF_BitBangModeIsEnabled(void)545 int MXC_SPIXF_BitBangModeIsEnabled(void)
546 {
547     return MXC_SPIXF_RevA_BitBangModeIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
548 }
549 
550 /* ************************************************************************** */
MXC_SPIXF_RXFIFOEnable(void)551 int MXC_SPIXF_RXFIFOEnable(void)
552 {
553     return MXC_SPIXF_RevA_RXFIFOEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
554 }
555 
556 /* ************************************************************************** */
MXC_SPIXF_RXFIFODisable(void)557 int MXC_SPIXF_RXFIFODisable(void)
558 {
559     return MXC_SPIXF_RevA_RXFIFODisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
560 }
561 
562 /* ************************************************************************** */
MXC_SPIXF_RXFIFOIsEnabled(void)563 int MXC_SPIXF_RXFIFOIsEnabled(void)
564 {
565     return MXC_SPIXF_RevA_RXFIFOIsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
566 }
567 
568 /* ************************************************************************** */
MXC_SPIXF_TXFIFOEnable(void)569 int MXC_SPIXF_TXFIFOEnable(void)
570 {
571     return MXC_SPIXF_RevA_TXFIFOEnable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
572 }
573 
574 /* ************************************************************************** */
MXC_SPIXF_TXFIFODisable(void)575 int MXC_SPIXF_TXFIFODisable(void)
576 {
577     return MXC_SPIXF_RevA_TXFIFODisable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
578 }
579 
580 /* ************************************************************************** */
MXC_SPIXF_TXFIFOIsEnabled(void)581 int MXC_SPIXF_TXFIFOIsEnabled(void)
582 {
583     return MXC_SPIXF_RevA_IsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
584 }
585 
586 /* ************************************************************************** */
MXC_SPIXF_Enable(void)587 int MXC_SPIXF_Enable(void)
588 {
589     return MXC_SPIXF_RevA_Enable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
590 }
591 
592 /* ************************************************************************** */
MXC_SPIXF_Disable(void)593 int MXC_SPIXF_Disable(void)
594 {
595     return MXC_SPIXF_RevA_Disable((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
596 }
597 
598 /* ************************************************************************** */
MXC_SPIXF_IsEnabled(void)599 int MXC_SPIXF_IsEnabled(void)
600 {
601     return MXC_SPIXF_RevA_IsEnabled((mxc_spixfc_reva_regs_t *)MXC_SPIXFC);
602 }
603 
604 /* ************************************************************************** */
MXC_SPIXF_SetIoctrlSDIODriveHigh(void)605 void MXC_SPIXF_SetIoctrlSDIODriveHigh(void)
606 {
607     MXC_SPIXF_RevA_SetIoctrlSDIODriveHigh((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
608 }
609 
610 /* ************************************************************************** */
MXC_SPIXF_SetIoctrlSDIODriveLow(void)611 void MXC_SPIXF_SetIoctrlSDIODriveLow(void)
612 {
613     MXC_SPIXF_RevA_SetIoctrlSDIODriveLow((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
614 }
615 
616 /* ************************************************************************** */
MXC_SPIXF_GetIoctrlSDIODrive(void)617 uint8_t MXC_SPIXF_GetIoctrlSDIODrive(void)
618 {
619     return MXC_SPIXF_RevA_GetIoctrlSDIODrive((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
620 }
621 
622 /* ************************************************************************** */
MXC_SPIXF_SetIoctrlSCLKDriveHigh(void)623 void MXC_SPIXF_SetIoctrlSCLKDriveHigh(void)
624 {
625     MXC_SPIXF_RevA_SetIoctrlSCLKDriveHigh((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
626 }
627 
628 /* ************************************************************************** */
MXC_SPIXF_SetIoctrlSCLKDriveLow(void)629 void MXC_SPIXF_SetIoctrlSCLKDriveLow(void)
630 {
631     MXC_SPIXF_RevA_SetIoctrlSCLKDriveLow((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
632 }
633 
634 /* ************************************************************************** */
MXC_SPIXF_GetIoctrlSCLKDrive(void)635 uint8_t MXC_SPIXF_GetIoctrlSCLKDrive(void)
636 {
637     return MXC_SPIXF_RevA_GetIoctrlSCLKDrive((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
638 }
639 
640 /* ************************************************************************** */
MXC_SPIXF_SetIoctrlSSDriveHigh(void)641 void MXC_SPIXF_SetIoctrlSSDriveHigh(void)
642 {
643     MXC_SPIXF_RevA_SetIoctrlSSDriveHigh((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
644 }
645 
646 /* ************************************************************************** */
MXC_SPIXF_SetIoctrlSSDriveLow(void)647 void MXC_SPIXF_SetIoctrlSSDriveLow(void)
648 {
649     MXC_SPIXF_RevA_SetIoctrlSSDriveLow((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
650 }
651 
652 /* ************************************************************************** */
MXC_SPIXF_GetIoctrlSSDrive(void)653 uint8_t MXC_SPIXF_GetIoctrlSSDrive(void)
654 {
655     return MXC_SPIXF_RevA_GetIoctrlSSDrive((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
656 }
657 
658 /* ************************************************************************** */
MXC_SPIXF_SetPuPdCtrl(mxc_spixf_pup_t pupd)659 void MXC_SPIXF_SetPuPdCtrl(mxc_spixf_pup_t pupd)
660 {
661     MXC_SPIXF->io_ctrl &= ~MXC_F_SPIXF_IO_CTRL_PUPDCTRL; //Clear PUPD field before setting
662     MXC_SPIXF_RevA_SetPuPdCtrl((mxc_spixfm_reva_regs_t *)MXC_SPIXF, pupd);
663 }
664 
665 /* ************************************************************************** */
MXC_SPIXF_GetPuPdCtrl(void)666 uint8_t MXC_SPIXF_GetPuPdCtrl(void)
667 {
668     return MXC_SPIXF_RevA_GetPuPdCtrl((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
669 }
670 
671 /* ************************************************************************** */
MXC_SPIXF_SetBusIdle(unsigned int busidle)672 int MXC_SPIXF_SetBusIdle(unsigned int busidle)
673 {
674     return MXC_SPIXF_RevA_SetBusIdle((mxc_spixfm_reva_regs_t *)MXC_SPIXF, busidle);
675 }
676 
677 /* ************************************************************************** */
MXC_SPIXF_GetBusIdle(void)678 unsigned int MXC_SPIXF_GetBusIdle(void)
679 {
680     return MXC_SPIXF_RevA_GetBusIdle((mxc_spixfm_reva_regs_t *)MXC_SPIXF);
681 }
682