CC26xx Driver Library
rom.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: rom.h
3 * Revised: 2015-11-11 14:08:23 +0100 (Wed, 11 Nov 2015)
4 * Revision: 45027
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_API_TABLE ((uint32_t *) 0x10000180)
238 #define ROM_VERSION (ROM_API_TABLE[0])
239 
240 
241 #define ROM_API_AON_EVENT_TABLE ((uint32_t*) (ROM_API_TABLE[1]))
242 #define ROM_API_AON_IOC_TABLE ((uint32_t*) (ROM_API_TABLE[2]))
243 #define ROM_API_AON_RTC_TABLE ((uint32_t*) (ROM_API_TABLE[3]))
244 #define ROM_API_AON_WUC_TABLE ((uint32_t*) (ROM_API_TABLE[4]))
245 #define ROM_API_AUX_CTRL_TABLE ((uint32_t*) (ROM_API_TABLE[5]))
246 #define ROM_API_AUX_TDC_TABLE ((uint32_t*) (ROM_API_TABLE[6]))
247 #define ROM_API_AUX_TIMER_TABLE ((uint32_t*) (ROM_API_TABLE[7]))
248 #define ROM_API_AUX_WUC_TABLE ((uint32_t*) (ROM_API_TABLE[8]))
249 #define ROM_API_DDI_TABLE ((uint32_t*) (ROM_API_TABLE[9]))
250 #define ROM_API_FLASH_TABLE ((uint32_t*) (ROM_API_TABLE[10]))
251 #define ROM_API_I2C_TABLE ((uint32_t*) (ROM_API_TABLE[11]))
252 #define ROM_API_INTERRUPT_TABLE ((uint32_t*) (ROM_API_TABLE[12]))
253 #define ROM_API_IOC_TABLE ((uint32_t*) (ROM_API_TABLE[13]))
254 #define ROM_API_PRCM_TABLE ((uint32_t*) (ROM_API_TABLE[14]))
255 #define ROM_API_SMPH_TABLE ((uint32_t*) (ROM_API_TABLE[15]))
256 #define ROM_API_SPIS_TABLE ((uint32_t*) (ROM_API_TABLE[16]))
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_TIMER FUNCTIONS
315 #define ROM_AUXTimerConfigure \
316  ((void (*)(uint32_t ui32Timer, uint32_t ui32Config)) \
317  ROM_API_AUX_TIMER_TABLE[0])
318 
319 #define ROM_AUXTimerStart \
320  ((void (*)(uint32_t ui32Timer)) \
321  ROM_API_AUX_TIMER_TABLE[1])
322 
323 #define ROM_AUXTimerStop \
324  ((void (*)(uint32_t ui32Timer)) \
325  ROM_API_AUX_TIMER_TABLE[2])
326 
327 #define ROM_AUXTimerPrescaleSet \
328  ((void (*)(uint32_t ui32Timer, uint32_t ui32PrescaleDiv)) \
329  ROM_API_AUX_TIMER_TABLE[3])
330 
331 #define ROM_AUXTimerPrescaleGet \
332  ((uint32_t (*)(uint32_t ui32Timer)) \
333  ROM_API_AUX_TIMER_TABLE[4])
334 
335 
336 // AUX_WUC FUNCTIONS
337 #define ROM_AUXWUCClockEnable \
338  ((void (*)(uint32_t ui32Clocks)) \
339  ROM_API_AUX_WUC_TABLE[0])
340 
341 #define ROM_AUXWUCClockDisable \
342  ((void (*)(uint32_t ui32Clocks)) \
343  ROM_API_AUX_WUC_TABLE[1])
344 
345 #define ROM_AUXWUCClockStatus \
346  ((uint32_t (*)(uint32_t ui32Clocks)) \
347  ROM_API_AUX_WUC_TABLE[2])
348 
349 #define ROM_AUXWUCPowerCtrl \
350  ((void (*)(uint32_t ui32PowerMode)) \
351  ROM_API_AUX_WUC_TABLE[3])
352 
353 
354 // FLASH FUNCTIONS
355 #define ROM_FlashPowerModeGet \
356  ((uint32_t (*)(void)) \
357  ROM_API_FLASH_TABLE[1])
358 
359 #define ROM_FlashProtectionSet \
360  ((void (*)(uint32_t ui32SectorAddress, uint32_t ui32ProtectMode)) \
361  ROM_API_FLASH_TABLE[2])
362 
363 #define ROM_FlashProtectionGet \
364  ((uint32_t (*)(uint32_t ui32SectorAddress)) \
365  ROM_API_FLASH_TABLE[3])
366 
367 #define ROM_FlashProtectionSave \
368  ((uint32_t (*)(uint32_t ui32SectorAddress)) \
369  ROM_API_FLASH_TABLE[4])
370 
371 #define ROM_FlashEfuseReadRow \
372  ((bool (*)(uint32_t *pui32EfuseData, uint32_t ui32RowAddress)) \
373  ROM_API_FLASH_TABLE[8])
374 
375 #define ROM_FlashDisableSectorsForWrite \
376  ((void (*)(void)) \
377  ROM_API_FLASH_TABLE[9])
378 
379 
380 // I2C FUNCTIONS
381 #define ROM_I2CMasterInitExpClk \
382  ((void (*)(uint32_t ui32Base, uint32_t ui32I2CClk, bool bFast)) \
383  ROM_API_I2C_TABLE[0])
384 
385 #define ROM_I2CMasterErr \
386  ((uint32_t (*)(uint32_t ui32Base)) \
387  ROM_API_I2C_TABLE[1])
388 
389 
390 // INTERRUPT FUNCTIONS
391 #define ROM_IntPriorityGroupingSet \
392  ((void (*)(uint32_t ui32Bits)) \
393  ROM_API_INTERRUPT_TABLE[0])
394 
395 #define ROM_IntPriorityGroupingGet \
396  ((uint32_t (*)(void)) \
397  ROM_API_INTERRUPT_TABLE[1])
398 
399 #define ROM_IntPrioritySet \
400  ((void (*)(uint32_t ui32Interrupt, uint8_t ui8Priority)) \
401  ROM_API_INTERRUPT_TABLE[2])
402 
403 #define ROM_IntPriorityGet \
404  ((int32_t (*)(uint32_t ui32Interrupt)) \
405  ROM_API_INTERRUPT_TABLE[3])
406 
407 #define ROM_IntEnable \
408  ((void (*)(uint32_t ui32Interrupt)) \
409  ROM_API_INTERRUPT_TABLE[4])
410 
411 #define ROM_IntDisable \
412  ((void (*)(uint32_t ui32Interrupt)) \
413  ROM_API_INTERRUPT_TABLE[5])
414 
415 #define ROM_IntPendSet \
416  ((void (*)(uint32_t ui32Interrupt)) \
417  ROM_API_INTERRUPT_TABLE[6])
418 
419 #define ROM_IntPendGet \
420  ((bool (*)(uint32_t ui32Interrupt)) \
421  ROM_API_INTERRUPT_TABLE[7])
422 
423 #define ROM_IntPendClear \
424  ((void (*)(uint32_t ui32Interrupt)) \
425  ROM_API_INTERRUPT_TABLE[8])
426 
427 
428 // IOC FUNCTIONS
429 #define ROM_IOCPortConfigureSet \
430  ((void (*)(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)) \
431  ROM_API_IOC_TABLE[0])
432 
433 #define ROM_IOCPortConfigureGet \
434  ((uint32_t (*)(uint32_t ui32IOId)) \
435  ROM_API_IOC_TABLE[1])
436 
437 #define ROM_IOCIOShutdownSet \
438  ((void (*)(uint32_t ui32IOId, uint32_t ui32IOShutdown)) \
439  ROM_API_IOC_TABLE[2])
440 
441 #define ROM_IOCIOModeSet \
442  ((void (*)(uint32_t ui32IOId, uint32_t ui32IOMode)) \
443  ROM_API_IOC_TABLE[4])
444 
445 #define ROM_IOCIOIntSet \
446  ((void (*)(uint32_t ui32IOId, uint32_t ui32Int, uint32_t ui32EdgeDet)) \
447  ROM_API_IOC_TABLE[5])
448 
449 #define ROM_IOCIOPortPullSet \
450  ((void (*)(uint32_t ui32IOId, uint32_t ui32Pull)) \
451  ROM_API_IOC_TABLE[6])
452 
453 #define ROM_IOCIOHystSet \
454  ((void (*)(uint32_t ui32IOId, uint32_t ui32Hysteresis)) \
455  ROM_API_IOC_TABLE[7])
456 
457 #define ROM_IOCIOInputSet \
458  ((void (*)(uint32_t ui32IOId, uint32_t ui32Input)) \
459  ROM_API_IOC_TABLE[8])
460 
461 #define ROM_IOCIOSlewCtrlSet \
462  ((void (*)(uint32_t ui32IOId, uint32_t ui32SlewEnable)) \
463  ROM_API_IOC_TABLE[9])
464 
465 #define ROM_IOCIODrvStrengthSet \
466  ((void (*)(uint32_t ui32IOId, uint32_t ui32IOCurrent, uint32_t ui32DrvStrength)) \
467  ROM_API_IOC_TABLE[10])
468 
469 #define ROM_IOCIOPortIdSet \
470  ((void (*)(uint32_t ui32IOId, uint32_t ui32PortId)) \
471  ROM_API_IOC_TABLE[11])
472 
473 #define ROM_IOCIntEnable \
474  ((void (*)(uint32_t ui32IOId)) \
475  ROM_API_IOC_TABLE[12])
476 
477 #define ROM_IOCIntDisable \
478  ((void (*)(uint32_t ui32IOId)) \
479  ROM_API_IOC_TABLE[13])
480 
481 #define ROM_IOCPinTypeGpioInput \
482  ((void (*)(uint32_t ui32IOId)) \
483  ROM_API_IOC_TABLE[14])
484 
485 #define ROM_IOCPinTypeGpioOutput \
486  ((void (*)(uint32_t ui32IOId)) \
487  ROM_API_IOC_TABLE[15])
488 
489 #define ROM_IOCPinTypeUart \
490  ((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Cts, uint32_t ui32Rts)) \
491  ROM_API_IOC_TABLE[16])
492 
493 #define ROM_IOCPinTypeSsiMaster \
494  ((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)) \
495  ROM_API_IOC_TABLE[17])
496 
497 #define ROM_IOCPinTypeSsiSlave \
498  ((void (*)(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)) \
499  ROM_API_IOC_TABLE[18])
500 
501 #define ROM_IOCPinTypeI2c \
502  ((void (*)(uint32_t ui32Base, uint32_t ui32Data, uint32_t ui32Clk)) \
503  ROM_API_IOC_TABLE[19])
504 
505 #define ROM_IOCPinTypeAux \
506  ((void (*)(uint32_t ui32IOId)) \
507  ROM_API_IOC_TABLE[21])
508 
509 
510 // PRCM FUNCTIONS
511 #define ROM_PRCMInfClockConfigureSet \
512  ((void (*)(uint32_t ui32ClkDiv, uint32_t ui32PowerMode)) \
513  ROM_API_PRCM_TABLE[0])
514 
515 #define ROM_PRCMInfClockConfigureGet \
516  ((uint32_t (*)(uint32_t ui32PowerMode)) \
517  ROM_API_PRCM_TABLE[1])
518 
519 #define ROM_PRCMAudioClockConfigSet \
520  ((void (*)(uint32_t ui32ClkConfig, uint32_t ui32SampleRate)) \
521  ROM_API_PRCM_TABLE[4])
522 
523 #define ROM_PRCMPowerDomainOn \
524  ((void (*)(uint32_t ui32Domains)) \
525  ROM_API_PRCM_TABLE[5])
526 
527 #define ROM_PRCMPowerDomainOff \
528  ((void (*)(uint32_t ui32Domains)) \
529  ROM_API_PRCM_TABLE[6])
530 
531 #define ROM_PRCMPeripheralRunEnable \
532  ((void (*)(uint32_t ui32Peripheral)) \
533  ROM_API_PRCM_TABLE[7])
534 
535 #define ROM_PRCMPeripheralRunDisable \
536  ((void (*)(uint32_t ui32Peripheral)) \
537  ROM_API_PRCM_TABLE[8])
538 
539 #define ROM_PRCMPeripheralSleepEnable \
540  ((void (*)(uint32_t ui32Peripheral)) \
541  ROM_API_PRCM_TABLE[9])
542 
543 #define ROM_PRCMPeripheralSleepDisable \
544  ((void (*)(uint32_t ui32Peripheral)) \
545  ROM_API_PRCM_TABLE[10])
546 
547 #define ROM_PRCMPeripheralDeepSleepEnable \
548  ((void (*)(uint32_t ui32Peripheral)) \
549  ROM_API_PRCM_TABLE[11])
550 
551 #define ROM_PRCMPeripheralDeepSleepDisable \
552  ((void (*)(uint32_t ui32Peripheral)) \
553  ROM_API_PRCM_TABLE[12])
554 
555 #define ROM_PRCMPowerDomainStatus \
556  ((uint32_t (*)(uint32_t ui32Domains)) \
557  ROM_API_PRCM_TABLE[13])
558 
559 #define ROM_PRCMDeepSleep \
560  ((void (*)(void)) \
561  ROM_API_PRCM_TABLE[14])
562 
563 
564 // SMPH FUNCTIONS
565 #define ROM_SMPHAcquire \
566  ((void (*)(uint32_t ui32Semaphore)) \
567  ROM_API_SMPH_TABLE[0])
568 
569 
570 // SSI FUNCTIONS
571 #define ROM_SSIConfigSetExpClk \
572  ((void (*)(uint32_t ui32Base, uint32_t ui32SSIClk, uint32_t ui32Protocol, uint32_t ui32Mode, uint32_t ui32BitRate, uint32_t ui32DataWidth)) \
573  ROM_API_SSI_TABLE[0])
574 
575 #define ROM_SSIDataPut \
576  ((void (*)(uint32_t ui32Base, uint32_t ui32Data)) \
577  ROM_API_SSI_TABLE[1])
578 
579 #define ROM_SSIDataPutNonBlocking \
580  ((int32_t (*)(uint32_t ui32Base, uint32_t ui32Data)) \
581  ROM_API_SSI_TABLE[2])
582 
583 #define ROM_SSIDataGet \
584  ((void (*)(uint32_t ui32Base, uint32_t *pui32Data)) \
585  ROM_API_SSI_TABLE[3])
586 
587 #define ROM_SSIDataGetNonBlocking \
588  ((int32_t (*)(uint32_t ui32Base, uint32_t *pui32Data)) \
589  ROM_API_SSI_TABLE[4])
590 
591 
592 // TIMER FUNCTIONS
593 #define ROM_TimerConfigure \
594  ((void (*)(uint32_t ui32Base, uint32_t ui32Config)) \
595  ROM_API_TIMER_TABLE[0])
596 
597 #define ROM_TimerLevelControl \
598  ((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bInvert)) \
599  ROM_API_TIMER_TABLE[1])
600 
601 #define ROM_TimerStallControl \
602  ((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bStall)) \
603  ROM_API_TIMER_TABLE[3])
604 
605 #define ROM_TimerWaitOnTriggerControl \
606  ((void (*)(uint32_t ui32Base, uint32_t ui32Timer, bool bWait)) \
607  ROM_API_TIMER_TABLE[4])
608 
609 
610 // TRNG FUNCTIONS
611 #define ROM_TRNGNumberGet \
612  ((uint32_t (*)(uint32_t ui32Word)) \
613  ROM_API_TRNG_TABLE[1])
614 
615 
616 // UART FUNCTIONS
617 #define ROM_UARTFIFOLevelGet \
618  ((void (*)(uint32_t ui32Base, uint32_t *pui32TxLevel, uint32_t *pui32RxLevel)) \
619  ROM_API_UART_TABLE[0])
620 
621 #define ROM_UARTConfigSetExpClk \
622  ((void (*)(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t ui32Baud, uint32_t ui32Config)) \
623  ROM_API_UART_TABLE[1])
624 
625 #define ROM_UARTConfigGetExpClk \
626  ((void (*)(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t *pui32Baud, uint32_t *pui32Config)) \
627  ROM_API_UART_TABLE[2])
628 
629 #define ROM_UARTDisable \
630  ((void (*)(uint32_t ui32Base)) \
631  ROM_API_UART_TABLE[3])
632 
633 #define ROM_UARTCharGetNonBlocking \
634  ((int32_t (*)(uint32_t ui32Base)) \
635  ROM_API_UART_TABLE[4])
636 
637 #define ROM_UARTCharGet \
638  ((int32_t (*)(uint32_t ui32Base)) \
639  ROM_API_UART_TABLE[5])
640 
641 #define ROM_UARTCharPutNonBlocking \
642  ((bool (*)(uint32_t ui32Base, uint8_t ui8Data)) \
643  ROM_API_UART_TABLE[6])
644 
645 #define ROM_UARTCharPut \
646  ((void (*)(uint32_t ui32Base, uint8_t ui8Data)) \
647  ROM_API_UART_TABLE[7])
648 
649 
650 // UDMA FUNCTIONS
651 #define ROM_uDMAChannelAttributeEnable \
652  ((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)) \
653  ROM_API_UDMA_TABLE[0])
654 
655 #define ROM_uDMAChannelAttributeDisable \
656  ((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32Attr)) \
657  ROM_API_UDMA_TABLE[1])
658 
659 #define ROM_uDMAChannelAttributeGet \
660  ((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelNum)) \
661  ROM_API_UDMA_TABLE[2])
662 
663 #define ROM_uDMAChannelControlSet \
664  ((void (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex, uint32_t ui32Control)) \
665  ROM_API_UDMA_TABLE[3])
666 
667 #define ROM_uDMAChannelScatterGatherSet \
668  ((void (*)(uint32_t ui32Base, uint32_t ui32ChannelNum, uint32_t ui32TaskCount, void *pvTaskList, uint32_t ui32IsPeriphSG)) \
669  ROM_API_UDMA_TABLE[5])
670 
671 #define ROM_uDMAChannelSizeGet \
672  ((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex)) \
673  ROM_API_UDMA_TABLE[6])
674 
675 #define ROM_uDMAChannelModeGet \
676  ((uint32_t (*)(uint32_t ui32Base, uint32_t ui32ChannelStructIndex)) \
677  ROM_API_UDMA_TABLE[7])
678 
679 
680 // VIMS FUNCTIONS
681 #define ROM_VIMSConfigure \
682  ((void (*)(uint32_t ui32Base, bool bRoundRobin, bool bPrefetch)) \
683  ROM_API_VIMS_TABLE[0])
684 
685 #define ROM_VIMSModeSet \
686  ((void (*)(uint32_t ui32Base, uint32_t ui32Mode)) \
687  ROM_API_VIMS_TABLE[1])
688 
689 
690 
691 //*****************************************************************************
692 //
693 // Mark the end of the C bindings section for C++ compilers.
694 //
695 //*****************************************************************************
696 #ifdef __cplusplus
697 }
698 #endif
699 
700 #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