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