CC26xx Driver Library
rom.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: rom.h
3 * Revised: 2015-08-03 14:46:38 +0200 (Mon, 03 Aug 2015)
4 * Revision: 44311
5 *
6 * Description: Prototypes for the ROM utility functions.
7 *
8 * Copyright (c) 2015, Texas Instruments Incorporated
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions are met:
13 *
14 * 1) Redistributions of source code must retain the above copyright notice,
15 * this list of conditions and the following disclaimer.
16 *
17 * 2) Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 *
21 * 3) Neither the name of the ORGANIZATION nor the names of its contributors may
22 * be used to endorse or promote products derived from this software without
23 * specific prior written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 *
37 ******************************************************************************/
38 
39 #ifndef __ROM_H__
40 #define __ROM_H__
41 
42 //*****************************************************************************
43 //
44 // If building with a C++ compiler, make all of the definitions in this header
45 // have a C binding.
46 //
47 //*****************************************************************************
48 #ifdef __cplusplus
49 extern "C"
50 {
51 #endif
52 
53 #include <inc/hw_types.h>
54 
55 #ifndef __HAPI_H__
56 #define __HAPI_H__
57 
58 //
59 // Start address of the ROM hard API access table (located after the ROM FW rev field)
60 //
61 #define ROM_HAPI_TABLE_ADDR 0x10000048
62 
63 //
64 // ROM Hard-API function interface types
65 //
66 typedef uint32_t (* FPTR_CRC32_T) ( uint8_t* /* pui8Data */,\
67  uint32_t /* ui32ByteCount */,\
68  uint32_t /* ui32RepeatCount */);
69 
70 typedef uint32_t (* FPTR_GETFLSIZE_T) ( void );
71 
72 typedef uint32_t (* FPTR_GETCHIPID_T) ( void );
73 
74 typedef uint32_t (* FPTR_RESERVED1_T) ( uint32_t );
75 
76 typedef uint32_t (* FPTR_RESERVED2_T) ( void );
77 
78 typedef uint32_t (* FPTR_RESERVED3_T) ( uint8_t* ,\
79  uint32_t ,\
80  uint32_t );
81 typedef void (* FPTR_RESETDEV_T) ( void );
82 
83 typedef uint32_t (* FPTR_FLETCHER32_T) ( uint16_t* /* pui16Data */,\
84  uint16_t /* ui16WordCount */,\
85  uint16_t /* ui16RepeatCount */);
86 
87 typedef uint32_t (* FPTR_MINVAL_T) ( uint32_t* /* ulpDataBuffer */,\
88  uint32_t /* ui32DataCount */);
89 
90 typedef uint32_t (* FPTR_MAXVAL_T) ( uint32_t* /* pui32DataBuffer */,\
91  uint32_t /* ui32DataCount */);
92 
93 typedef uint32_t (* FPTR_MEANVAL_T) ( uint32_t* /* pui32DataBuffer */,\
94  uint32_t /* ui32DataCount */);
95 
96 typedef uint32_t (* FPTR_STDDVAL_T) ( uint32_t* /* pui32DataBuffer */,\
97  uint32_t /* ui32DataCount */);
98 
99 typedef void (* FPTR_HFSOURCESAFESWITCH_T) ( void );
100 
101 typedef void (* FPTR_RESERVED4_T) ( uint32_t );
102 
103 typedef void (* FPTR_RESERVED5_T) ( uint32_t );
104 
105 typedef void (* FPTR_COMPAIN_T) ( uint8_t /* ut8Signal */);
106 
107 typedef void (* FPTR_COMPAREF_T) ( uint8_t /* ut8Signal */);
108 
109 typedef void (* FPTR_ADCCOMPBIN_T) ( uint8_t /* ut8Signal */);
110 
111 typedef void (* FPTR_COMPBREF_T) ( uint8_t /* ut8Signal */);
112 
113 extern uint32_t MemBusWrkAroundHapiProgramFlash(uint8_t *pui8DataBuffer,
114  uint32_t ui32Address,
115  uint32_t ui32Count);
116 
117 extern uint32_t MemBusWrkAroundHapiEraseSector(uint32_t ui32Address);
118 
119 //
120 // ROM Hard-API access table type
121 //
122 typedef struct
123 {
143 } HARD_API_T;
144 
145 //
146 // Pointer to the ROM HAPI table
147 //
148 #define P_HARD_API ((HARD_API_T*) ROM_HAPI_TABLE_ADDR)
149 
150 //
151 // Add wrapper around the Hapi functions needing the "bus arbitration issue" workaround
152 //
153 extern void SafeHapiAuxAdiSelect( FPTR_VOID_UINT8_T fPtr, uint8_t ut8Signal );
154 
155 #define HapiCrc32(a,b,c) P_HARD_API->Crc32(a,b,c)
156 #define HapiGetFlashSize() P_HARD_API->FlashGetSize()
157 #define HapiGetChipId() P_HARD_API->GetChipId()
158 #define HapiSectorErase(a) MemBusWrkAroundHapiEraseSector(a)
159 #define HapiProgramFlash(a,b,c) MemBusWrkAroundHapiProgramFlash(a,b,c)
160 #define HapiResetDevice() P_HARD_API->ResetDevice()
161 #define HapiFletcher32(a,b,c) P_HARD_API->Fletcher32(a,b,c)
162 #define HapiMinValue(a,b) P_HARD_API->MinValue(a,b)
163 #define HapiMaxValue(a,b) P_HARD_API->MaxValue(a,b)
164 #define HapiMeanValue(a,b) P_HARD_API->MeanValue(a,b)
165 #define HapiStandDeviationValue(a,b) P_HARD_API->StandDeviationValue(a,b)
166 #define HapiHFSourceSafeSwitch() P_HARD_API->HFSourceSafeSwitch()
167 #define HapiSelectCompAInput(a) SafeHapiAuxAdiSelect( P_HARD_API->SelectCompAInput , a )
168 #define HapiSelectCompARef(a) SafeHapiAuxAdiSelect( P_HARD_API->SelectCompARef , a )
169 #define HapiSelectADCCompBInput(a) SafeHapiAuxAdiSelect( P_HARD_API->SelectADCCompBInput, a )
170 #define HapiSelectCompBRef(a) SafeHapiAuxAdiSelect( P_HARD_API->SelectCompBRef , a )
171 
172 //
173 // Defines for input parameter to the HapiSelectCompAInput function.
174 // The define values can not be changed!
175 //
176 #define COMPA_IN_NC 0x00
177 #define COMPA_IN_AUXIO7 0x09
178 #define COMPA_IN_AUXIO6 0x0A
179 #define COMPA_IN_AUXIO5 0x0B
180 #define COMPA_IN_AUXIO4 0x0C
181 #define COMPA_IN_AUXIO3 0x0D
182 #define COMPA_IN_AUXIO2 0x0E
183 #define COMPA_IN_AUXIO1 0x0F
184 #define COMPA_IN_AUXIO0 0x10
185 
186 //
187 // Defines for input parameter to the HapiSelectCompARef function.
188 // The define values can not be changed!
189 //
190 #define COMPA_REF_NC 0x00
191 #define COMPA_REF_DCOUPL 0x01
192 #define COMPA_REF_VSS 0x02
193 #define COMPA_REF_VDDS 0x03
194 #define COMPA_REF_ADCVREFP 0x04
195 #define COMPA_REF_AUXIO7 0x09
196 #define COMPA_REF_AUXIO6 0x0A
197 #define COMPA_REF_AUXIO5 0x0B
198 #define COMPA_REF_AUXIO4 0x0C
199 #define COMPA_REF_AUXIO3 0x0D
200 #define COMPA_REF_AUXIO2 0x0E
201 #define COMPA_REF_AUXIO1 0x0F
202 #define COMPA_REF_AUXIO0 0x10
203 
204 //
205 // Defines for input parameter to the HapiSelectADCCompBInput function.
206 // The define values can not be changed!
207 //
208 #define ADC_COMPB_IN_NC 0x00
209 #define ADC_COMPB_IN_DCOUPL 0x03
210 #define ADC_COMPB_IN_VSS 0x04
211 #define ADC_COMPB_IN_VDDS 0x05
212 #define ADC_COMPB_IN_AUXIO7 0x09
213 #define ADC_COMPB_IN_AUXIO6 0x0A
214 #define ADC_COMPB_IN_AUXIO5 0x0B
215 #define ADC_COMPB_IN_AUXIO4 0x0C
216 #define ADC_COMPB_IN_AUXIO3 0x0D
217 #define ADC_COMPB_IN_AUXIO2 0x0E
218 #define ADC_COMPB_IN_AUXIO1 0x0F
219 #define ADC_COMPB_IN_AUXIO0 0x10
220 
221 //
222 // Defines for input parameter to the HapiSelectCompBRef function.
223 // The define values can not be changed!
224 //
225 #define COMPB_REF_NC 0x00
226 #define COMPB_REF_DCOUPL 0x01
227 #define COMPB_REF_VSS 0x02
228 #define COMPB_REF_VDDS 0x03
229 
230 #endif // __HAPI_H_
231 
232 //*****************************************************************************
233 //
234 // Pointers to the main API tables.
235 //
236 //*****************************************************************************
237 #define ROM_APITABLE ((uint32_t *)0x10000180)
238 #define ROM_VERSION (ROM_APITABLE[0])
239 #define ROM_AON_EVENTTABLE ((uint32_t *)(ROM_APITABLE[1]))
240 #define ROM_AON_IOCTABLE ((uint32_t *)(ROM_APITABLE[2]))
241 #define ROM_AON_RTCTABLE ((uint32_t *)(ROM_APITABLE[3]))
242 #define ROM_AON_WUCTABLE ((uint32_t *)(ROM_APITABLE[4]))
243 #define ROM_AUX_CTRLTABLE ((uint32_t *)(ROM_APITABLE[5]))
244 #define ROM_AUX_TDCTABLE ((uint32_t *)(ROM_APITABLE[6]))
245 #define ROM_AUX_TIMERTABLE ((uint32_t *)(ROM_APITABLE[7]))
246 #define ROM_AUX_WUCTABLE ((uint32_t *)(ROM_APITABLE[8]))
247 #define ROM_DDITABLE ((uint32_t *)(ROM_APITABLE[9]))
248 #define ROM_FLASHTABLE ((uint32_t *)(ROM_APITABLE[10]))
249 #define ROM_I2CTABLE ((uint32_t *)(ROM_APITABLE[11]))
250 #define ROM_INTERRUPTTABLE ((uint32_t *)(ROM_APITABLE[12]))
251 #define ROM_IOCTABLE ((uint32_t *)(ROM_APITABLE[13]))
252 #define ROM_PRCMTABLE ((uint32_t *)(ROM_APITABLE[14]))
253 #define ROM_SMPHTABLE ((uint32_t *)(ROM_APITABLE[15]))
254 #define ROM_SPISTABLE ((uint32_t *)(ROM_APITABLE[16]))
255 #define ROM_SSITABLE ((uint32_t *)(ROM_APITABLE[17]))
256 #define ROM_TIMERTABLE ((uint32_t *)(ROM_APITABLE[18]))
257 #define ROM_TRNGTABLE ((uint32_t *)(ROM_APITABLE[19]))
258 #define ROM_UARTTABLE ((uint32_t *)(ROM_APITABLE[20]))
259 #define ROM_UDMATABLE ((uint32_t *)(ROM_APITABLE[21]))
260 #define ROM_VIMSTABLE ((uint32_t *)(ROM_APITABLE[22]))
261 
262 //*****************************************************************************
263 //
264 // Macros for calling ROM functions in the AON_EVENT API.
265 //
266 //*****************************************************************************
267 #define ROM_AONEventMcuWakeUpSet \
268  ((void (*)(uint32_t ui32MCUWUEvent, \
269  uint32_t ui32EventSrc))ROM_AON_EVENTTABLE[0])
270 
271 #define ROM_AONEventMcuWakeUpGet \
272  ((uint32_t (*)(uint32_t ui32MCUWUEvent))ROM_AON_EVENTTABLE[1])
273 
274 #define ROM_AONEventAuxWakeUpSet \
275  ((void (*)(uint32_t ui32AUXWUEvent, \
276  uint32_t ui32EventSrc))ROM_AON_EVENTTABLE[2])
277 
278 #define ROM_AONEventAuxWakeUpGet \
279  ((uint32_t (*)(uint32_t ui32AUXWUEvent))ROM_AON_EVENTTABLE[3])
280 
281 #define ROM_AONEventMcuSet \
282  ((void (*)(uint32_t ui32MCUEvent, \
283  uint32_t ui32EventSrc))ROM_AON_EVENTTABLE[4])
284 
285 #define ROM_AONEventMcuGet \
286  ((uint32_t (*)(uint32_t ui32MCUEvent))ROM_AON_EVENTTABLE[5])
287 
288 //*****************************************************************************
289 //
290 // Macros for calling ROM functions in the AON_IOC API.
291 //
292 //*****************************************************************************
293 #define ROM_AONIOCDriveStrengthSet \
294  ((void (*)(uint32_t ui32LowDrvStr, \
295  uint32_t ui32MedDrvStr, \
296  uint32_t ui32MaxDrvStr))ROM_AON_IOCTABLE[0])
297 
298 #define ROM_AONIOCDriveStrengthGet \
299  ((uint32_t (*)(uint32_t ui32DriveLevel))ROM_AON_IOCTABLE[1])
300 
301 //*****************************************************************************
302 //
303 // Macros for calling ROM functions in the AON_RTC API.
304 //
305 //*****************************************************************************
306 
307 //*****************************************************************************
308 //
309 // Macros for calling ROM functions in the AON_WUC API.
310 //
311 //*****************************************************************************
312 
313 #define ROM_AONWUCAuxReset \
314  ((void (*)(void))ROM_AON_WUCTABLE[3])
315 
316 #define ROM_AONWUCRechargeCtrlConfigSet \
317  ((void (*)(bool bAdaptEnable, \
318  uint32_t ui32AdaptRate, \
319  uint32_t ui32Period, \
320  uint32_t ui32MaxPeriod))ROM_AON_WUCTABLE[4])
321 
322 #define ROM_AONWUCOscConfig \
323  ((void (*)(uint32_t ui32Period))ROM_AON_WUCTABLE[5])
324 
325 
326 //*****************************************************************************
327 //
328 // Macros for calling ROM functions in the AUX_TDC API.
329 //
330 //*****************************************************************************
331 #define ROM_AUXTDCConfigSet \
332  ((void (*)(uint32_t ui32Base, \
333  uint32_t ui32StartCondition, \
334  uint32_t ui32StopCondition))ROM_AUX_TDCTABLE[0])
335 
336 #define ROM_AUXTDCMeasurementDone \
337  ((uint32_t (*)(uint32_t ui32Base))ROM_AUX_TDCTABLE[1])
338 
339 //*****************************************************************************
340 //
341 // Macros for calling ROM functions in the AUX_TIMER API.
342 //
343 //*****************************************************************************
344 #define ROM_AUXTimerConfigure \
345  ((void (*)(uint32_t ui32Timer, \
346  uint32_t ui32Config))ROM_AUX_TIMERTABLE[0])
347 
348 #define ROM_AUXTimerStart \
349  ((void (*)(uint32_t ui32Timer))ROM_AUX_TIMERTABLE[1])
350 
351 #define ROM_AUXTimerStop \
352  ((void (*)(uint32_t ui32Timer))ROM_AUX_TIMERTABLE[2])
353 
354 #define ROM_AUXTimerPrescaleSet \
355  ((void (*)(uint32_t ui32Timer, \
356  uint32_t ui32PrescaleDiv))ROM_AUX_TIMERTABLE[3])
357 
358 #define ROM_AUXTimerPrescaleGet \
359  ((uint32_t (*)(uint32_t ui32Timer))ROM_AUX_TIMERTABLE[4])
360 
361 //*****************************************************************************
362 //
363 // Macros for calling ROM functions in the AUX_WUC API.
364 //
365 //*****************************************************************************
366 #define ROM_AUXWUCClockEnable \
367  ((void (*)(uint32_t ui32Clocks))ROM_AUX_WUCTABLE[0])
368 
369 #define ROM_AUXWUCClockDisable \
370  ((void (*)(uint32_t ui32Clocks))ROM_AUX_WUCTABLE[1])
371 
372 #define ROM_AUXWUCClockStatus \
373  ((uint32_t (*)(uint32_t ui32Clocks))ROM_AUX_WUCTABLE[2])
374 
375 #define ROM_AUXWUCPowerCtrl \
376  ((void (*)(uint32_t ui32PowerMode))ROM_AUX_WUCTABLE[3])
377 
378 //*****************************************************************************
379 //
380 // Macros for calling ROM functions in the FLASH API.
381 //
382 //*****************************************************************************
383 
384 #define ROM_FlashPowerModeGet \
385  ((uint32_t (*)(void))ROM_FLASHTABLE[1])
386 
387 #define ROM_FlashProtectionSet \
388  ((void (*)(uint32_t ui32SectorAddress, \
389  uint32_t ui32ProtectMode))ROM_FLASHTABLE[2])
390 
391 #define ROM_FlashProtectionGet \
392  ((uint32_t (*)(uint32_t ui32SectorAddress))ROM_FLASHTABLE[3])
393 
394 #define ROM_FlashProtectionSave \
395  ((uint32_t (*)(uint32_t ui32SectorAddress))ROM_FLASHTABLE[4])
396 
397 #define ROM_FlashEfuseReadRow \
398  ((bool (*)(uint32_t *pui32EfuseData, \
399  uint32_t ui32RowAddress))ROM_FLASHTABLE[8])
400 
401 #define ROM_FlashDisableSectorsForWrite \
402  ((void (*)(void))ROM_FLASHTABLE[9])
403 
404 //*****************************************************************************
405 //
406 // Macros for calling ROM functions in the I2C API.
407 //
408 //*****************************************************************************
409 #define ROM_I2CMasterInitExpClk \
410  ((void (*)(uint32_t ui32Base, \
411  uint32_t ui32I2CClk, \
412  bool bFast))ROM_I2CTABLE[0])
413 
414 #define ROM_I2CMasterErr \
415  ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[1])
416 
417 //*****************************************************************************
418 //
419 // Macros for calling ROM functions in the INTERRUPT API.
420 //
421 //*****************************************************************************
422 #define ROM_IntPriorityGroupingSet \
423  ((void (*)(uint32_t ui32Bits))ROM_INTERRUPTTABLE[0])
424 
425 #define ROM_IntPriorityGroupingGet \
426  ((uint32_t (*)(void))ROM_INTERRUPTTABLE[1])
427 
428 #define ROM_IntPrioritySet \
429  ((void (*)(uint32_t ui32Interrupt, \
430  uint8_t ui8Priority))ROM_INTERRUPTTABLE[2])
431 
432 #define ROM_IntPriorityGet \
433  ((int32_t (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[3])
434 
435 #define ROM_IntEnable \
436  ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[4])
437 
438 #define ROM_IntDisable \
439  ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[5])
440 
441 #define ROM_IntPendSet \
442  ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[6])
443 
444 #define ROM_IntPendGet \
445  ((bool (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[7])
446 
447 #define ROM_IntPendClear \
448  ((void (*)(uint32_t ui32Interrupt))ROM_INTERRUPTTABLE[8])
449 
450 //*****************************************************************************
451 //
452 // Macros for calling ROM functions in the IOC API.
453 //
454 //*****************************************************************************
455 #define ROM_IOCPortConfigureSet \
456  ((void (*)(uint32_t ui32IOId, \
457  uint32_t ui32PortId, \
458  uint32_t ui32IOConfig))ROM_IOCTABLE[0])
459 
460 #define ROM_IOCPortConfigureGet \
461  ((uint32_t (*)(uint32_t ui32IOId))ROM_IOCTABLE[1])
462 
463 #define ROM_IOCIOShutdownSet \
464  ((void (*)(uint32_t ui32IOId, \
465  uint32_t ui32IOShutdown))ROM_IOCTABLE[2])
466 
467 
468 #define ROM_IOCIOModeSet \
469  ((void (*)(uint32_t ui32IOId, \
470  uint32_t ui32IOMode))ROM_IOCTABLE[4])
471 
472 #define ROM_IOCIOIntSet \
473  ((void (*)(uint32_t ui32IOId, \
474  uint32_t ui32Int, \
475  uint32_t ui32EdgeDet))ROM_IOCTABLE[5])
476 
477 #define ROM_IOCIOPortPullSet \
478  ((void (*)(uint32_t ui32IOId, \
479  uint32_t ui32Pull))ROM_IOCTABLE[6])
480 
481 #define ROM_IOCIOHystSet \
482  ((void (*)(uint32_t ui32IOId, \
483  uint32_t ui32Hysteresis))ROM_IOCTABLE[7])
484 
485 #define ROM_IOCIOInputSet \
486  ((void (*)(uint32_t ui32IOId, \
487  uint32_t ui32Input))ROM_IOCTABLE[8])
488 
489 #define ROM_IOCIOSlewCtrlSet \
490  ((void (*)(uint32_t ui32IOId, \
491  uint32_t ui32SlewEnable))ROM_IOCTABLE[9])
492 
493 #define ROM_IOCIODrvStrengthSet \
494  ((void (*)(uint32_t ui32IOId, \
495  uint32_t ui32IOCurrent, \
496  uint32_t ui32DrvStrength))ROM_IOCTABLE[10])
497 
498 #define ROM_IOCIOPortIdSet \
499  ((void (*)(uint32_t ui32IOId, \
500  uint32_t ui32PortId))ROM_IOCTABLE[11])
501 
502 #define ROM_IOCIntEnable \
503  ((void (*)(uint32_t ui32IOId))ROM_IOCTABLE[12])
504 
505 #define ROM_IOCIntDisable \
506  ((void (*)(uint32_t ui32IOId))ROM_IOCTABLE[13])
507 
508 #define ROM_IOCPinTypeGpioInput \
509  ((void (*)(uint32_t ui32IOId))ROM_IOCTABLE[14])
510 
511 #define ROM_IOCPinTypeGpioOutput \
512  ((void (*)(uint32_t ui32IOId))ROM_IOCTABLE[15])
513 
514 #define ROM_IOCPinTypeUart \
515  ((void (*)(uint32_t ui32Base, \
516  uint32_t ui32Rx, \
517  uint32_t ui32Tx, \
518  uint32_t ui32Cts, \
519  uint32_t ui32Rts))ROM_IOCTABLE[16])
520 
521 #define ROM_IOCPinTypeSsiMaster \
522  ((void (*)(uint32_t ui32Base, \
523  uint32_t ui32Rx, \
524  uint32_t ui32Tx, \
525  uint32_t ui32Fss, \
526  uint32_t ui32Clk))ROM_IOCTABLE[17])
527 
528 #define ROM_IOCPinTypeSsiSlave \
529  ((void (*)(uint32_t ui32Base, \
530  uint32_t ui32Rx, \
531  uint32_t ui32Tx, \
532  uint32_t ui32Fss, \
533  uint32_t ui32Clk))ROM_IOCTABLE[18])
534 
535 #define ROM_IOCPinTypeI2c \
536  ((void (*)(uint32_t ui32Base, \
537  uint32_t ui32Data, \
538  uint32_t ui32Clk))ROM_IOCTABLE[19])
539 
540 #define ROM_IOCPinTypeSpis \
541  ((void (*)(uint32_t ui32Rx, \
542  uint32_t ui32Tx, \
543  uint32_t ui32Fss, \
544  uint32_t ui32Clk))ROM_IOCTABLE[20])
545 
546 #define ROM_IOCPinTypeAux \
547  ((void (*)(uint32_t ui32IOId))ROM_IOCTABLE[21])
548 
549 //*****************************************************************************
550 //
551 // Macros for calling ROM functions in the PRCM API.
552 //
553 //*****************************************************************************
554 #define ROM_PRCMInfClockConfigureSet \
555  ((void (*)(uint32_t ui32ClkDiv, \
556  uint32_t ui32PowerMode))ROM_PRCMTABLE[0])
557 
558 #define ROM_PRCMInfClockConfigureGet \
559  ((uint32_t (*)(uint32_t ui32PowerMode))ROM_PRCMTABLE[1])
560 
561 
562 #define ROM_PRCMAudioClockConfigSet \
563  ((void (*)(uint32_t ui32ClkConfig, \
564  uint32_t ui32SampleRate))ROM_PRCMTABLE[4])
565 
566 #define ROM_PRCMPowerDomainOn \
567  ((void (*)(uint32_t ui32Domains))ROM_PRCMTABLE[5])
568 
569 #define ROM_PRCMPowerDomainOff \
570  ((void (*)(uint32_t ui32Domains))ROM_PRCMTABLE[6])
571 
572 #define ROM_PRCMPeripheralRunEnable \
573  ((void (*)(uint32_t ui32Peripheral))ROM_PRCMTABLE[7])
574 
575 #define ROM_PRCMPeripheralRunDisable \
576  ((void (*)(uint32_t ui32Peripheral))ROM_PRCMTABLE[8])
577 
578 #define ROM_PRCMPeripheralSleepEnable \
579  ((void (*)(uint32_t ui32Peripheral))ROM_PRCMTABLE[9])
580 
581 #define ROM_PRCMPeripheralSleepDisable \
582  ((void (*)(uint32_t ui32Peripheral))ROM_PRCMTABLE[10])
583 
584 #define ROM_PRCMPeripheralDeepSleepEnable \
585  ((void (*)(uint32_t ui32Peripheral))ROM_PRCMTABLE[11])
586 
587 #define ROM_PRCMPeripheralDeepSleepDisable \
588  ((void (*)(uint32_t ui32Peripheral))ROM_PRCMTABLE[12])
589 
590 #define ROM_PRCMPowerDomainStatus \
591  ((uint32_t (*)(uint32_t ui32Domains))ROM_PRCMTABLE[13])
592 
593 #define ROM_PRCMDeepSleep \
594  ((void (*)(void))ROM_PRCMTABLE[14])
595 
596 
597 //*****************************************************************************
598 //
599 // Macros for calling ROM functions in the SMPH API.
600 //
601 //*****************************************************************************
602 #define ROM_SMPHAcquire \
603  ((void (*)(uint32_t ui32Semaphore))ROM_SMPHTABLE[0])
604 
605 
606 //*****************************************************************************
607 //
608 // Macros for calling ROM functions in the SSI API.
609 //
610 //*****************************************************************************
611 #define ROM_SSIConfigSetExpClk \
612  ((void (*)(uint32_t ui32Base, \
613  uint32_t ui32SSIClk, \
614  uint32_t ui32Protocol, \
615  uint32_t ui32Mode, \
616  uint32_t ui32BitRate, \
617  uint32_t ui32DataWidth))ROM_SSITABLE[0])
618 
619 #define ROM_SSIDataPut \
620  ((void (*)(uint32_t ui32Base, \
621  uint32_t ui32Data))ROM_SSITABLE[1])
622 
623 #define ROM_SSIDataPutNonBlocking \
624  ((int32_t (*)(uint32_t ui32Base, \
625  uint32_t ui32Data))ROM_SSITABLE[2])
626 
627 #define ROM_SSIDataGet \
628  ((void (*)(uint32_t ui32Base, \
629  uint32_t *pui32Data))ROM_SSITABLE[3])
630 
631 #define ROM_SSIDataGetNonBlocking \
632  ((int32_t (*)(uint32_t ui32Base, \
633  uint32_t *pui32Data))ROM_SSITABLE[4])
634 
635 //*****************************************************************************
636 //
637 // Macros for calling ROM functions in the TIMER API.
638 //
639 //*****************************************************************************
640 #define ROM_TimerConfigure \
641  ((void (*)(uint32_t ui32Base, \
642  uint32_t ui32Config))ROM_TIMERTABLE[0])
643 
644 #define ROM_TimerLevelControl \
645  ((void (*)(uint32_t ui32Base, \
646  uint32_t ui32Timer, \
647  bool bInvert))ROM_TIMERTABLE[1])
648 
649 #define ROM_TimerStallControl \
650  ((void (*)(uint32_t ui32Base, \
651  uint32_t ui32Timer, \
652  bool bStall))ROM_TIMERTABLE[3])
653 
654 #define ROM_TimerWaitOnTriggerControl \
655  ((void (*)(uint32_t ui32Base, \
656  uint32_t ui32Timer, \
657  bool bWait))ROM_TIMERTABLE[4])
658 
659 //*****************************************************************************
660 //
661 // Macros for calling ROM functions in the TRNG API.
662 //
663 //*****************************************************************************
664 
665 #define ROM_TRNGNumberGet \
666  ((uint32_t (*)(uint32_t ui32Word))ROM_TRNGTABLE[1])
667 
668 //*****************************************************************************
669 //
670 // Macros for calling ROM functions in the UART API.
671 //
672 //*****************************************************************************
673 #define ROM_UARTFIFOLevelGet \
674  ((void (*)(uint32_t ui32Base, \
675  uint32_t *pui32TxLevel, \
676  uint32_t *pui32RxLevel))ROM_UARTTABLE[0])
677 
678 #define ROM_UARTConfigSetExpClk \
679  ((void (*)(uint32_t ui32Base, \
680  uint32_t ui32UARTClk, \
681  uint32_t ui32Baud, \
682  uint32_t ui32Config))ROM_UARTTABLE[1])
683 
684 #define ROM_UARTConfigGetExpClk \
685  ((void (*)(uint32_t ui32Base, \
686  uint32_t ui32UARTClk, \
687  uint32_t *pui32Baud, \
688  uint32_t *pui32Config))ROM_UARTTABLE[2])
689 
690 #define ROM_UARTDisable \
691  ((void (*)(uint32_t ui32Base))ROM_UARTTABLE[3])
692 
693 #define ROM_UARTCharGetNonBlocking \
694  ((int32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[4])
695 
696 #define ROM_UARTCharGet \
697  ((int32_t (*)(uint32_t ui32Base))ROM_UARTTABLE[5])
698 
699 #define ROM_UARTCharPutNonBlocking \
700  ((bool (*)(uint32_t ui32Base, \
701  uint8_t ui8Data))ROM_UARTTABLE[6])
702 
703 #define ROM_UARTCharPut \
704  ((void (*)(uint32_t ui32Base, \
705  uint8_t ui8Data))ROM_UARTTABLE[7])
706 
707 //*****************************************************************************
708 //
709 // Macros for calling ROM functions in the UDMA API.
710 //
711 //*****************************************************************************
712 #define ROM_uDMAChannelAttributeEnable \
713  ((void (*)(uint32_t ui32Base, \
714  uint32_t ui32ChannelNum, \
715  uint32_t ui32Attr))ROM_UDMATABLE[0])
716 
717 #define ROM_uDMAChannelAttributeDisable \
718  ((void (*)(uint32_t ui32Base, \
719  uint32_t ui32ChannelNum, \
720  uint32_t ui32Attr))ROM_UDMATABLE[1])
721 
722 #define ROM_uDMAChannelAttributeGet \
723  ((uint32_t (*)(uint32_t ui32Base, \
724  uint32_t ui32ChannelNum))ROM_UDMATABLE[2])
725 
726 #define ROM_uDMAChannelControlSet \
727  ((void (*)(uint32_t ui32Base, \
728  uint32_t ui32ChannelStructIndex, \
729  uint32_t ui32Control))ROM_UDMATABLE[3])
730 
731 #define ROM_uDMAChannelScatterGatherSet \
732  ((void (*)(uint32_t ui32Base, \
733  uint32_t ui32ChannelNum, \
734  uint32_t ui32TaskCount, \
735  void *pvTaskList, \
736  uint32_t ui32IsPeriphSG))ROM_UDMATABLE[5])
737 
738 #define ROM_uDMAChannelSizeGet \
739  ((uint32_t (*)(uint32_t ui32Base, \
740  uint32_t ui32ChannelStructIndex))ROM_UDMATABLE[6])
741 
742 #define ROM_uDMAChannelModeGet \
743  ((uint32_t (*)(uint32_t ui32Base, \
744  uint32_t ui32ChannelStructIndex))ROM_UDMATABLE[7])
745 
746 //*****************************************************************************
747 //
748 // Macros for calling ROM functions in the VIMS API.
749 //
750 //*****************************************************************************
751 #define ROM_VIMSConfigure \
752  ((void (*)(uint32_t ui32Base, \
753  bool bRoundRobin, \
754  bool bPrefetch))ROM_VIMSTABLE[0])
755 
756 #define ROM_VIMSModeSet \
757  ((void (*)(uint32_t ui32Base, \
758  uint32_t ui32Mode))ROM_VIMSTABLE[1])
759 
760 //*****************************************************************************
761 //
762 // Mark the end of the C bindings section for C++ compilers.
763 //
764 //*****************************************************************************
765 #ifdef __cplusplus
766 }
767 #endif
768 
769 #endif // __ROM_H__
FPTR_RESERVED2_T ReservedLocation2
Definition: rom.h:128
FPTR_RESERVED5_T ReservedLocation5
Definition: rom.h:137
FPTR_GETCHIPID_T GetChipId
Definition: rom.h:126
FPTR_STDDVAL_T StandDeviationValue
Definition: rom.h:135
uint32_t(* FPTR_MEANVAL_T)(uint32_t *, uint32_t)
Definition: rom.h:93
uint32_t MemBusWrkAroundHapiProgramFlash(uint8_t *pui8DataBuffer, uint32_t ui32Address, uint32_t ui32Count)
Definition: flash.c:715
void(* FPTR_RESERVED5_T)(uint32_t)
Definition: rom.h:103
void(* FPTR_ADCCOMPBIN_T)(uint8_t)
Definition: rom.h:109
FPTR_CRC32_T Crc32
Definition: rom.h:124
FPTR_RESETDEV_T ResetDevice
Definition: rom.h:130
void(* FPTR_COMPAIN_T)(uint8_t)
Definition: rom.h:105
void SafeHapiAuxAdiSelect(FPTR_VOID_UINT8_T fPtr, uint8_t ut8Signal)
Definition: adi.c:53
FPTR_MINVAL_T MinValue
Definition: rom.h:132
FPTR_FLETCHER32_T Fletcher32
Definition: rom.h:131
uint32_t(* FPTR_STDDVAL_T)(uint32_t *, uint32_t)
Definition: rom.h:96
uint32_t(* FPTR_GETFLSIZE_T)(void)
Definition: rom.h:70
FPTR_GETFLSIZE_T FlashGetSize
Definition: rom.h:125
FPTR_HFSOURCESAFESWITCH_T HFSourceSafeSwitch
Definition: rom.h:138
FPTR_COMPBREF_T SelectCompBRef
Definition: rom.h:142
uint32_t(* FPTR_RESERVED3_T)(uint8_t *, uint32_t, uint32_t)
Definition: rom.h:78
uint32_t MemBusWrkAroundHapiEraseSector(uint32_t ui32Address)
Definition: flash.c:745
uint32_t(* FPTR_RESERVED2_T)(void)
Definition: rom.h:76
uint32_t(* FPTR_FLETCHER32_T)(uint16_t *, uint16_t, uint16_t)
Definition: rom.h:83
uint32_t(* FPTR_MINVAL_T)(uint32_t *, uint32_t)
Definition: rom.h:87
uint32_t(* FPTR_GETCHIPID_T)(void)
Definition: rom.h:72
void(* FPTR_RESETDEV_T)(void)
Definition: rom.h:81
void(* FPTR_COMPBREF_T)(uint8_t)
Definition: rom.h:111
FPTR_COMPAREF_T SelectCompARef
Definition: rom.h:140
uint32_t(* FPTR_RESERVED1_T)(uint32_t)
Definition: rom.h:74
FPTR_COMPAIN_T SelectCompAInput
Definition: rom.h:139
uint32_t(* FPTR_CRC32_T)(uint8_t *, uint32_t, uint32_t)
Definition: rom.h:66
void(* FPTR_COMPAREF_T)(uint8_t)
Definition: rom.h:107
FPTR_ADCCOMPBIN_T SelectADCCompBInput
Definition: rom.h:141
uint32_t(* FPTR_MAXVAL_T)(uint32_t *, uint32_t)
Definition: rom.h:90
void(* FPTR_HFSOURCESAFESWITCH_T)(void)
Definition: rom.h:99
FPTR_MEANVAL_T MeanValue
Definition: rom.h:134
FPTR_RESERVED1_T ReservedLocation1
Definition: rom.h:127
void(* FPTR_RESERVED4_T)(uint32_t)
Definition: rom.h:101
FPTR_RESERVED3_T ReservedLocation3
Definition: rom.h:129
FPTR_MAXVAL_T MaxValue
Definition: rom.h:133
FPTR_RESERVED4_T ReservedLocation4
Definition: rom.h:136