CC13xx Driver Library
rom.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: rom.h
3 * Revised: 2016-03-18 11:09:07 +0100 (Fri, 18 Mar 2016)
4 * Revision: 45947
5 *
6 * Description: Prototypes for the ROM utility functions.
7 *
8 * Copyright (c) 2015 - 2016, 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 SafeHapiVoid( FPTR_VOID_VOID_T fPtr );
154 extern void SafeHapiAuxAdiSelect( FPTR_VOID_UINT8_T fPtr, uint8_t ut8Signal );
155 
156 #define HapiCrc32(a,b,c) P_HARD_API->Crc32(a,b,c)
157 #define HapiGetFlashSize() P_HARD_API->FlashGetSize()
158 #define HapiGetChipId() P_HARD_API->GetChipId()
159 #define HapiSectorErase(a) MemBusWrkAroundHapiEraseSector(a)
160 #define HapiProgramFlash(a,b,c) MemBusWrkAroundHapiProgramFlash(a,b,c)
161 #define HapiResetDevice() P_HARD_API->ResetDevice()
162 #define HapiFletcher32(a,b,c) P_HARD_API->Fletcher32(a,b,c)
163 #define HapiMinValue(a,b) P_HARD_API->MinValue(a,b)
164 #define HapiMaxValue(a,b) P_HARD_API->MaxValue(a,b)
165 #define HapiMeanValue(a,b) P_HARD_API->MeanValue(a,b)
166 #define HapiStandDeviationValue(a,b) P_HARD_API->StandDeviationValue(a,b)
167 #define HapiHFSourceSafeSwitch() SafeHapiVoid( P_HARD_API->HFSourceSafeSwitch )
168 #define HapiSelectCompAInput(a) SafeHapiAuxAdiSelect( P_HARD_API->SelectCompAInput , a )
169 #define HapiSelectCompARef(a) SafeHapiAuxAdiSelect( P_HARD_API->SelectCompARef , a )
170 #define HapiSelectADCCompBInput(a) SafeHapiAuxAdiSelect( P_HARD_API->SelectADCCompBInput, a )
171 #define HapiSelectCompBRef(a) SafeHapiAuxAdiSelect( P_HARD_API->SelectCompBRef , a )
172 
173 //
174 // Defines for input parameter to the HapiSelectCompAInput function.
175 // The define values can not be changed!
176 //
177 #define COMPA_IN_NC 0x00
178 #define COMPA_IN_AUXIO7 0x09
179 #define COMPA_IN_AUXIO6 0x0A
180 #define COMPA_IN_AUXIO5 0x0B
181 #define COMPA_IN_AUXIO4 0x0C
182 #define COMPA_IN_AUXIO3 0x0D
183 #define COMPA_IN_AUXIO2 0x0E
184 #define COMPA_IN_AUXIO1 0x0F
185 #define COMPA_IN_AUXIO0 0x10
186 
187 //
188 // Defines for input parameter to the HapiSelectCompARef function.
189 // The define values can not be changed!
190 //
191 #define COMPA_REF_NC 0x00
192 #define COMPA_REF_DCOUPL 0x01
193 #define COMPA_REF_VSS 0x02
194 #define COMPA_REF_VDDS 0x03
195 #define COMPA_REF_ADCVREFP 0x04
196 #define COMPA_REF_AUXIO7 0x09
197 #define COMPA_REF_AUXIO6 0x0A
198 #define COMPA_REF_AUXIO5 0x0B
199 #define COMPA_REF_AUXIO4 0x0C
200 #define COMPA_REF_AUXIO3 0x0D
201 #define COMPA_REF_AUXIO2 0x0E
202 #define COMPA_REF_AUXIO1 0x0F
203 #define COMPA_REF_AUXIO0 0x10
204 
205 //
206 // Defines for input parameter to the HapiSelectADCCompBInput function.
207 // The define values can not be changed!
208 //
209 #define ADC_COMPB_IN_NC 0x00
210 #define ADC_COMPB_IN_DCOUPL 0x03
211 #define ADC_COMPB_IN_VSS 0x04
212 #define ADC_COMPB_IN_VDDS 0x05
213 #define ADC_COMPB_IN_AUXIO7 0x09
214 #define ADC_COMPB_IN_AUXIO6 0x0A
215 #define ADC_COMPB_IN_AUXIO5 0x0B
216 #define ADC_COMPB_IN_AUXIO4 0x0C
217 #define ADC_COMPB_IN_AUXIO3 0x0D
218 #define ADC_COMPB_IN_AUXIO2 0x0E
219 #define ADC_COMPB_IN_AUXIO1 0x0F
220 #define ADC_COMPB_IN_AUXIO0 0x10
221 
222 //
223 // Defines for input parameter to the HapiSelectCompBRef function.
224 // The define values can not be changed!
225 //
226 #define COMPB_REF_NC 0x00
227 #define COMPB_REF_DCOUPL 0x01
228 #define COMPB_REF_VSS 0x02
229 #define COMPB_REF_VDDS 0x03
230 
231 #endif // __HAPI_H__
232 
233 //*****************************************************************************
234 //
235 // Pointers to the main API tables.
236 //
237 //*****************************************************************************
238 #define ROM_API_TABLE ((uint32_t *) 0x10000180)
239 #define ROM_VERSION (ROM_API_TABLE[0])
240 
241 
242 #define ROM_API_AON_EVENT_TABLE ((uint32_t*) (ROM_API_TABLE[1]))
243 #define ROM_API_AON_IOC_TABLE ((uint32_t*) (ROM_API_TABLE[2]))
244 #define ROM_API_AON_RTC_TABLE ((uint32_t*) (ROM_API_TABLE[3]))
245 #define ROM_API_AON_WUC_TABLE ((uint32_t*) (ROM_API_TABLE[4]))
246 #define ROM_API_AUX_CTRL_TABLE ((uint32_t*) (ROM_API_TABLE[5]))
247 #define ROM_API_AUX_TDC_TABLE ((uint32_t*) (ROM_API_TABLE[6]))
248 #define ROM_API_AUX_TIMER_TABLE ((uint32_t*) (ROM_API_TABLE[7]))
249 #define ROM_API_AUX_WUC_TABLE ((uint32_t*) (ROM_API_TABLE[8]))
250 #define ROM_API_DDI_TABLE ((uint32_t*) (ROM_API_TABLE[9]))
251 #define ROM_API_FLASH_TABLE ((uint32_t*) (ROM_API_TABLE[10]))
252 #define ROM_API_I2C_TABLE ((uint32_t*) (ROM_API_TABLE[11]))
253 #define ROM_API_INTERRUPT_TABLE ((uint32_t*) (ROM_API_TABLE[12]))
254 #define ROM_API_IOC_TABLE ((uint32_t*) (ROM_API_TABLE[13]))
255 #define ROM_API_PRCM_TABLE ((uint32_t*) (ROM_API_TABLE[14]))
256 #define ROM_API_SMPH_TABLE ((uint32_t*) (ROM_API_TABLE[15]))
257 #define ROM_API_SSI_TABLE ((uint32_t*) (ROM_API_TABLE[17]))
258 #define ROM_API_TIMER_TABLE ((uint32_t*) (ROM_API_TABLE[18]))
259 #define ROM_API_TRNG_TABLE ((uint32_t*) (ROM_API_TABLE[19]))
260 #define ROM_API_UART_TABLE ((uint32_t*) (ROM_API_TABLE[20]))
261 #define ROM_API_UDMA_TABLE ((uint32_t*) (ROM_API_TABLE[21]))
262 #define ROM_API_VIMS_TABLE ((uint32_t*) (ROM_API_TABLE[22]))
263 
264 // AON_EVENT FUNCTIONS
265 #define ROM_AONEventMcuWakeUpSet \
266  ((void (*)(uint32_t ui32MCUWUEvent, uint32_t ui32EventSrc)) \
267  ROM_API_AON_EVENT_TABLE[0])
268 
269 #define ROM_AONEventMcuWakeUpGet \
270  ((uint32_t (*)(uint32_t ui32MCUWUEvent)) \
271  ROM_API_AON_EVENT_TABLE[1])
272 
273 #define ROM_AONEventAuxWakeUpSet \
274  ((void (*)(uint32_t ui32AUXWUEvent, uint32_t ui32EventSrc)) \
275  ROM_API_AON_EVENT_TABLE[2])
276 
277 #define ROM_AONEventAuxWakeUpGet \
278  ((uint32_t (*)(uint32_t ui32AUXWUEvent)) \
279  ROM_API_AON_EVENT_TABLE[3])
280 
281 #define ROM_AONEventMcuSet \
282  ((void (*)(uint32_t ui32MCUEvent, uint32_t ui32EventSrc)) \
283  ROM_API_AON_EVENT_TABLE[4])
284 
285 #define ROM_AONEventMcuGet \
286  ((uint32_t (*)(uint32_t ui32MCUEvent)) \
287  ROM_API_AON_EVENT_TABLE[5])
288 
289 
290 // AON_WUC FUNCTIONS
291 #define ROM_AONWUCAuxReset \
292  ((void (*)(void)) \
293  ROM_API_AON_WUC_TABLE[3])
294 
295 #define ROM_AONWUCRechargeCtrlConfigSet \
296  ((void (*)(bool bAdaptEnable, uint32_t ui32AdaptRate, uint32_t ui32Period, uint32_t ui32MaxPeriod)) \
297  ROM_API_AON_WUC_TABLE[4])
298 
299 #define ROM_AONWUCOscConfig \
300  ((void (*)(uint32_t ui32Period)) \
301  ROM_API_AON_WUC_TABLE[5])
302 
303 
304 // AUX_TDC FUNCTIONS
305 #define ROM_AUXTDCConfigSet \
306  ((void (*)(uint32_t ui32Base, uint32_t ui32StartCondition, uint32_t ui32StopCondition)) \
307  ROM_API_AUX_TDC_TABLE[0])
308 
309 #define ROM_AUXTDCMeasurementDone \
310  ((uint32_t (*)(uint32_t ui32Base)) \
311  ROM_API_AUX_TDC_TABLE[1])
312 
313 
314 // AUX_WUC FUNCTIONS
315 #define ROM_AUXWUCClockEnable \
316  ((void (*)(uint32_t ui32Clocks)) \
317  ROM_API_AUX_WUC_TABLE[0])
318 
319 #define ROM_AUXWUCClockDisable \
320  ((void (*)(uint32_t ui32Clocks)) \
321  ROM_API_AUX_WUC_TABLE[1])
322 
323 #define ROM_AUXWUCClockStatus \
324  ((uint32_t (*)(uint32_t ui32Clocks)) \
325  ROM_API_AUX_WUC_TABLE[2])
326 
327 #define ROM_AUXWUCPowerCtrl \
328  ((void (*)(uint32_t ui32PowerMode)) \
329  ROM_API_AUX_WUC_TABLE[3])
330 
331 
332 // DDI FUNCTIONS
333 #define ROM_DDI16BitWrite \
334  ((void (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32WrData)) \
335  ROM_API_DDI_TABLE[0])
336 
337 #define ROM_DDI16BitfieldWrite \
338  ((void (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Shift, uint16_t ui32Data)) \
339  ROM_API_DDI_TABLE[1])
340 
341 #define ROM_DDI16BitRead \
342  ((uint16_t (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask)) \
343  ROM_API_DDI_TABLE[2])
344 
345 #define ROM_DDI16BitfieldRead \
346  ((uint16_t (*)(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Shift)) \
347  ROM_API_DDI_TABLE[3])
348 
349 
350 // FLASH FUNCTIONS
351 #define ROM_FlashPowerModeGet \
352  ((uint32_t (*)(void)) \
353  ROM_API_FLASH_TABLE[1])
354 
355 #define ROM_FlashProtectionSet \
356  ((void (*)(uint32_t ui32SectorAddress, uint32_t ui32ProtectMode)) \
357  ROM_API_FLASH_TABLE[2])
358 
359 #define ROM_FlashProtectionGet \
360  ((uint32_t (*)(uint32_t ui32SectorAddress)) \
361  ROM_API_FLASH_TABLE[3])
362 
363 #define ROM_FlashProtectionSave \
364  ((uint32_t (*)(uint32_t ui32SectorAddress)) \
365  ROM_API_FLASH_TABLE[4])
366 
367 #define ROM_FlashEfuseReadRow \
368  ((bool (*)(uint32_t *pui32EfuseData, uint32_t ui32RowAddress)) \
369  ROM_API_FLASH_TABLE[8])
370 
371 #define ROM_FlashDisableSectorsForWrite \
372  ((void (*)(void)) \
373  ROM_API_FLASH_TABLE[9])
374 
375 
376 // I2C FUNCTIONS
377 #define ROM_I2CMasterInitExpClk \
378  ((void (*)(uint32_t ui32Base, uint32_t ui32I2CClk, bool bFast)) \
379  ROM_API_I2C_TABLE[0])
380 
381 #define ROM_I2CMasterErr \
382  ((uint32_t (*)(uint32_t ui32Base)) \
383  ROM_API_I2C_TABLE[1])
384 
385 
386 // INTERRUPT FUNCTIONS
387 #define ROM_IntPriorityGroupingSet \
388  ((void (*)(uint32_t ui32Bits)) \
389  ROM_API_INTERRUPT_TABLE[0])
390 
391 #define ROM_IntPriorityGroupingGet \
392  ((uint32_t (*)(void)) \
393  ROM_API_INTERRUPT_TABLE[1])
394 
395 #define ROM_IntPrioritySet \
396  ((void (*)(uint32_t ui32Interrupt, uint8_t ui8Priority)) \
397  ROM_API_INTERRUPT_TABLE[2])
398 
399 #define ROM_IntPriorityGet \
400  ((int32_t (*)(uint32_t ui32Interrupt)) \
401  ROM_API_INTERRUPT_TABLE[3])
402 
403 #define ROM_IntEnable \
404  ((void (*)(uint32_t ui32Interrupt)) \
405  ROM_API_INTERRUPT_TABLE[4])
406 
407 #define ROM_IntDisable \
408  ((void (*)(uint32_t ui32Interrupt)) \
409  ROM_API_INTERRUPT_TABLE[5])
410 
411 #define ROM_IntPendSet \
412  ((void (*)(uint32_t ui32Interrupt)) \
413  ROM_API_INTERRUPT_TABLE[6])
414 
415 #define ROM_IntPendGet \
416  ((bool (*)(uint32_t ui32Interrupt)) \
417  ROM_API_INTERRUPT_TABLE[7])
418 
419 #define ROM_IntPendClear \
420  ((void (*)(uint32_t ui32Interrupt)) \
421  ROM_API_INTERRUPT_TABLE[8])
422 
423 
424 // IOC FUNCTIONS
425 #define ROM_IOCPortConfigureSet \
426  ((void (*)(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)) \
427  ROM_API_IOC_TABLE[0])
428 
429 #define ROM_IOCPortConfigureGet \
430  ((uint32_t (*)(uint32_t ui32IOId)) \
431  ROM_API_IOC_TABLE[1])
432 
433 #define ROM_IOCIOShutdownSet \
434  ((void (*)(uint32_t ui32IOId, uint32_t ui32IOShutdown)) \
435  ROM_API_IOC_TABLE[2])
436 
437 #define ROM_IOCIOModeSet \
438  ((void (*)(uint32_t ui32IOId, uint32_t ui32IOMode)) \
439  ROM_API_IOC_TABLE[4])
440 
441 #define ROM_IOCIOIntSet \
442  ((void (*)(uint32_t ui32IOId, uint32_t ui32Int, uint32_t ui32EdgeDet)) \
443  ROM_API_IOC_TABLE[5])
444 
445 #define ROM_IOCIOPortPullSet \
446  ((void (*)(uint32_t ui32IOId, uint32_t ui32Pull)) \
447  ROM_API_IOC_TABLE[6])
448 
449 #define ROM_IOCIOHystSet \
450  ((void (*)(uint32_t ui32IOId, uint32_t ui32Hysteresis)) \
451  ROM_API_IOC_TABLE[7])
452 
453 #define ROM_IOCIOInputSet \
454  ((void (*)(uint32_t ui32IOId, uint32_t ui32Input)) \
455  ROM_API_IOC_TABLE[8])
456 
457 #define ROM_IOCIOSlewCtrlSet \
458  ((void (*)(uint32_t ui32IOId, uint32_t ui32SlewEnable)) \
459  ROM_API_IOC_TABLE[9])
460 
461 #define ROM_IOCIODrvStrengthSet \
462  ((void (*)(uint32_t ui32IOId, uint32_t ui32IOCurrent, uint32_t ui32DrvStrength)) \
463  ROM_API_IOC_TABLE[10])
464 
465 #define ROM_IOCIOPortIdSet \
466  ((void (*)(uint32_t ui32IOId, uint32_t ui32PortId)) \
467  ROM_API_IOC_TABLE[11])
468 
469 #define ROM_IOCIntEnable \
470  ((void (*)(uint32_t ui32IOId)) \
471  ROM_API_IOC_TABLE[12])
472 
473 #define ROM_IOCIntDisable \
474  ((void (*)(uint32_t ui32IOId)) \
475  ROM_API_IOC_TABLE[13])
476 
477 #define ROM_IOCPinTypeGpioInput \
478  ((void (*)(uint32_t ui32IOId)) \
479  ROM_API_IOC_TABLE[14])
480 
481 #define ROM_IOCPinTypeGpioOutput \
482  ((void (*)(uint32_t ui32IOId)) \
483  ROM_API_IOC_TABLE[15])
484 
485 #define ROM_IOCPinTypeUart \
486  ((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Cts, uint32_t ui32Rts)) \
487  ROM_API_IOC_TABLE[16])
488 
489 #define ROM_IOCPinTypeSsiMaster \
490  ((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)) \
491  ROM_API_IOC_TABLE[17])
492 
493 #define ROM_IOCPinTypeSsiSlave \
494  ((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)) \
495  ROM_API_IOC_TABLE[18])
496 
497 #define ROM_IOCPinTypeI2c \
498  ((void (*)(uint32_t ui32Base, uint32_t ui32Data, uint32_t ui32Clk)) \
499  ROM_API_IOC_TABLE[19])
500 
501 #define ROM_IOCPinTypeAux \
502  ((void (*)(uint32_t ui32IOId)) \
503  ROM_API_IOC_TABLE[21])
504 
505 
506 // PRCM FUNCTIONS
507 #define ROM_PRCMInfClockConfigureSet \
508  ((void (*)(uint32_t ui32ClkDiv, uint32_t ui32PowerMode)) \
509  ROM_API_PRCM_TABLE[0])
510 
511 #define ROM_PRCMInfClockConfigureGet \
512  ((uint32_t (*)(uint32_t ui32PowerMode)) \
513  ROM_API_PRCM_TABLE[1])
514 
515 #define ROM_PRCMAudioClockConfigSet \
516  ((void (*)(uint32_t ui32ClkConfig, uint32_t ui32SampleRate)) \
517  ROM_API_PRCM_TABLE[4])
518 
519 #define ROM_PRCMPowerDomainOn \
520  ((void (*)(uint32_t ui32Domains)) \
521  ROM_API_PRCM_TABLE[5])
522 
523 #define ROM_PRCMPowerDomainOff \
524  ((void (*)(uint32_t ui32Domains)) \
525  ROM_API_PRCM_TABLE[6])
526 
527 #define ROM_PRCMPeripheralRunEnable \
528  ((void (*)(uint32_t ui32Peripheral)) \
529  ROM_API_PRCM_TABLE[7])
530 
531 #define ROM_PRCMPeripheralRunDisable \
532  ((void (*)(uint32_t ui32Peripheral)) \
533  ROM_API_PRCM_TABLE[8])
534 
535 #define ROM_PRCMPeripheralSleepEnable \
536  ((void (*)(uint32_t ui32Peripheral)) \
537  ROM_API_PRCM_TABLE[9])
538 
539 #define ROM_PRCMPeripheralSleepDisable \
540  ((void (*)(uint32_t ui32Peripheral)) \
541  ROM_API_PRCM_TABLE[10])
542 
543 #define ROM_PRCMPeripheralDeepSleepEnable \
544  ((void (*)(uint32_t ui32Peripheral)) \
545  ROM_API_PRCM_TABLE[11])
546 
547 #define ROM_PRCMPeripheralDeepSleepDisable \
548  ((void (*)(uint32_t ui32Peripheral)) \
549  ROM_API_PRCM_TABLE[12])
550 
551 #define ROM_PRCMPowerDomainStatus \
552  ((uint32_t (*)(uint32_t ui32Domains)) \
553  ROM_API_PRCM_TABLE[13])
554 
555 #define ROM_PRCMDeepSleep \
556  ((void (*)(void)) \
557  ROM_API_PRCM_TABLE[14])
558 
559 
560 // SMPH FUNCTIONS
561 #define ROM_SMPHAcquire \
562  ((void (*)(uint32_t ui32Semaphore)) \
563  ROM_API_SMPH_TABLE[0])
564 
565 
566 // SSI FUNCTIONS
567 #define ROM_SSIConfigSetExpClk \
568  ((void (*)(uint32_t ui32Base, uint32_t ui32SSIClk, uint32_t ui32Protocol, uint32_t ui32Mode, uint32_t ui32BitRate, uint32_t ui32DataWidth)) \
569  ROM_API_SSI_TABLE[0])
570 
571 #define ROM_SSIDataPut \
572  ((void (*)(uint32_t ui32Base, uint32_t ui32Data)) \
573  ROM_API_SSI_TABLE[1])
574 
575 #define ROM_SSIDataPutNonBlocking \
576  ((int32_t (*)(uint32_t ui32Base, uint32_t ui32Data)) \
577  ROM_API_SSI_TABLE[2])
578 
579 #define ROM_SSIDataGet \
580  ((void (*)(uint32_t ui32Base, uint32_t *pui32Data)) \
581  ROM_API_SSI_TABLE[3])
582 
583 #define ROM_SSIDataGetNonBlocking \
584  ((int32_t (*)(uint32_t ui32Base, uint32_t *pui32Data)) \
585  ROM_API_SSI_TABLE[4])
586 
587 
588 // TIMER FUNCTIONS
589 #define ROM_TimerConfigure \
590  ((void (*)(uint32_t ui32Base, uint32_t ui32Config)) \
591  ROM_API_TIMER_TABLE[0])
592 
593 #define ROM_TimerLevelControl \
594  ((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bInvert)) \
595  ROM_API_TIMER_TABLE[1])
596 
597 #define ROM_TimerStallControl \
598  ((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bStall)) \
599  ROM_API_TIMER_TABLE[3])
600 
601 #define ROM_TimerWaitOnTriggerControl \
602  ((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bWait)) \
603  ROM_API_TIMER_TABLE[4])
604 
605 
606 // TRNG FUNCTIONS
607 #define ROM_TRNGNumberGet \
608  ((uint32_t (*)(uint32_t ui32Word)) \
609  ROM_API_TRNG_TABLE[1])
610 
611 
612 // UART FUNCTIONS
613 #define ROM_UARTFIFOLevelGet \
614  ((void (*)(uint32_t ui32Base, uint32_t *pui32TxLevel, uint32_t *pui32RxLevel)) \
615  ROM_API_UART_TABLE[0])
616 
617 #define ROM_UARTConfigSetExpClk \
618  ((void (*)(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t ui32Baud, uint32_t ui32Config)) \
619  ROM_API_UART_TABLE[1])
620 
621 #define ROM_UARTConfigGetExpClk \
622  ((void (*)(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t *pui32Baud, uint32_t *pui32Config)) \
623  ROM_API_UART_TABLE[2])
624 
625 #define ROM_UARTDisable \
626  ((void (*)(uint32_t ui32Base)) \
627  ROM_API_UART_TABLE[3])
628 
629 #define ROM_UARTCharGetNonBlocking \
630  ((int32_t (*)(uint32_t ui32Base)) \
631  ROM_API_UART_TABLE[4])
632 
633 #define ROM_UARTCharGet \
634  ((int32_t (*)(uint32_t ui32Base)) \
635  ROM_API_UART_TABLE[5])
636 
637 #define ROM_UARTCharPutNonBlocking \
638  ((bool (*)(uint32_t ui32Base, uint8_t ui8Data)) \
639  ROM_API_UART_TABLE[6])
640 
641 #define ROM_UARTCharPut \
642  ((void (*)(uint32_t ui32Base, uint8_t ui8Data)) \
643  ROM_API_UART_TABLE[7])
644 
645 
646 // UDMA FUNCTIONS
647 #define ROM_uDMAChannelAttributeEnable \
648  ((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)) \
649  ROM_API_UDMA_TABLE[0])
650 
651 #define ROM_uDMAChannelAttributeDisable \
652  ((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)) \
653  ROM_API_UDMA_TABLE[1])
654 
655 #define ROM_uDMAChannelAttributeGet \
656  ((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelNum)) \
657  ROM_API_UDMA_TABLE[2])
658 
659 #define ROM_uDMAChannelControlSet \
660  ((void (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex, uint32_t ui32Control)) \
661  ROM_API_UDMA_TABLE[3])
662 
663 #define ROM_uDMAChannelScatterGatherSet \
664  ((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32TaskCount, void *pvTaskList, uint32_t ui32IsPeriphSG)) \
665  ROM_API_UDMA_TABLE[5])
666 
667 #define ROM_uDMAChannelSizeGet \
668  ((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex)) \
669  ROM_API_UDMA_TABLE[6])
670 
671 #define ROM_uDMAChannelModeGet \
672  ((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex)) \
673  ROM_API_UDMA_TABLE[7])
674 
675 
676 // VIMS FUNCTIONS
677 #define ROM_VIMSConfigure \
678  ((void (*)(uint32_t ui32Base, bool bRoundRobin, bool bPrefetch)) \
679  ROM_API_VIMS_TABLE[0])
680 
681 #define ROM_VIMSModeSet \
682  ((void (*)(uint32_t ui32Base, uint32_t ui32Mode)) \
683  ROM_API_VIMS_TABLE[1])
684 
685 
686 
687 //*****************************************************************************
688 //
689 // Mark the end of the C bindings section for C++ compilers.
690 //
691 //*****************************************************************************
692 #ifdef __cplusplus
693 }
694 #endif
695 
696 #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:728
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:64
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
void SafeHapiVoid(FPTR_VOID_VOID_T fPtr)
Definition: adi.c:53
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:758
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