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