ext: cc3220sdk: Import HAL for TI CC3220S SoC
The CC3220 SDK provides a peripheral driver library and hardware
register access header files for the Texas Instruments SimpleLink
CC3220S and CC3220SF SoCs.
The current version supported in Zephyr is CC3220 SDK 1.30.01.03,
downloaded from:
http://www.ti.com/tool/download/SIMPLELINK-CC3220-SDK
Jira: ZEP-1958
Change-Id: Ib278a6e067a621c589d6efd17cda6f75dc2a9cdb
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
diff --git a/ext/hal/ti/cc3220sdk/Kbuild b/ext/hal/ti/cc3220sdk/Kbuild
new file mode 100644
index 0000000..6298bf6
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/Kbuild
@@ -0,0 +1,4 @@
+ccflags-$(CONFIG_HAS_CC3220SDK) += -D$(COMPILER)
+# Need to build prcm and utils for PRCMCC3220MCUInit, which is not in ROM
+obj-$(CONFIG_HAS_CC3220SDK) += driverlib/utils.o
+obj-$(CONFIG_HAS_CC3220SDK) += driverlib/prcm.o
diff --git a/ext/hal/ti/cc3220sdk/Kconfig b/ext/hal/ti/cc3220sdk/Kconfig
new file mode 100644
index 0000000..a7d7943
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/Kconfig
@@ -0,0 +1,11 @@
+# Kconfig - CC3220 SDK HAL configuration
+
+config HAS_CC3220SDK
+ bool
+
+menuconfig CC3220SDK
+ bool "TI CC3220 SDK support"
+ default n
+ depends on HAS_CC3220SDK
+ help
+ Build required peripheral driverlib files from the CC3220 SDK
diff --git a/ext/hal/ti/cc3220sdk/Makefile b/ext/hal/ti/cc3220sdk/Makefile
new file mode 100644
index 0000000..64a41fc
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/Makefile
@@ -0,0 +1,6 @@
+ifdef CONFIG_HAS_CC3220SDK
+ZEPHYRINCLUDE +=-I$(srctree)/ext/hal/ti/cc3220sdk
+ZEPHYRINCLUDE +=-I$(srctree)/ext/hal/ti/cc3220sdk/inc
+ZEPHYRINCLUDE +=-I$(srctree)/ext/hal/ti/cc3220sdk/driverlib
+KBUILD_CFLAGS += -DUSE_CC3200_ROM_DRV_API
+endif # CONFIG_HAS_CC3220SDK
diff --git a/ext/hal/ti/cc3220sdk/README b/ext/hal/ti/cc3220sdk/README
new file mode 100644
index 0000000..669684e
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/README
@@ -0,0 +1,26 @@
+The CC3220 SDK provides a peripheral driver library and hardware
+register access header files for the Texas Instruments SimpleLink
+CC3220S and CC3220SF SoCs.
+
+The current version supported in Zephyr is CC3220 SDK 1.30.01.03,
+downloaded from:
+
+ http://www.ti.com/tool/download/SIMPLELINK-CC3220-SDK
+
+A subset of the files in driverlib/ and inc/ are copied from a
+Linux CC3220 SDK installation without modification.
+
+TI provides the driver library functions burned into ROM at the factory,
+or updated via a service pack patch, thus saving application code space.
+
+Calling driverlib APIs prefixed by "MAP_" will vector to those functions
+already existing in ROM.
+
+For the zephyr shell sample, for example, using these ROM functions
+results in a savings of about 2Kb in code space.
+
+After setting CONFIG_HAS_CC3220SDK=y in Kconfig, most of the
+peripheral driver library functions will be accessible from ROM,
+except for the following modules:
+- driverlib/prcm.c
+- driverlib/utils.c
diff --git a/ext/hal/ti/cc3220sdk/driverlib/cpu.h b/ext/hal/ti/cc3220sdk/driverlib/cpu.h
new file mode 100644
index 0000000..4e8840e
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/cpu.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// cpu.h
+//
+// Prototypes for the CPU instruction wrapper functions.
+//
+//*****************************************************************************
+
+#ifndef __CPU_H__
+#define __CPU_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Prototypes.
+//
+//*****************************************************************************
+extern unsigned long CPUcpsid(void);
+extern unsigned long CPUcpsie(void);
+extern unsigned long CPUprimask(void);
+extern void CPUwfi(void);
+extern unsigned long CPUbasepriGet(void);
+extern void CPUbasepriSet(unsigned long ulNewBasepri);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __CPU_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/flash.h b/ext/hal/ti/cc3220sdk/driverlib/flash.h
new file mode 100644
index 0000000..e9f0a00
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/flash.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// flash.h
+//
+// Prototypes for the flash driver.
+//
+//*****************************************************************************
+
+#ifndef __FLASH_H__
+#define __FLASH_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Values that can be passed to FlashProtectSet(), and returned by
+// FlashProtectGet().
+//
+//*****************************************************************************
+typedef enum
+{
+ FlashReadWrite, // Flash can be read and written
+ FlashReadOnly, // Flash can only be read
+ FlashExecuteOnly // Flash can only be executed
+}
+tFlashProtection;
+
+//*****************************************************************************
+//
+// Values passed to FlashIntEnable(), FlashIntDisable() and FlashIntClear() and
+// returned from FlashIntStatus().
+//
+//*****************************************************************************
+#define FLASH_INT_PROGRAM 0x00000002 // Programming Interrupt Mask
+#define FLASH_INT_ACCESS 0x00000001 // Access Interrupt Mask
+#define FLASH_INT_EEPROM 0x00000004 // EEPROM Interrupt Mask
+#define FLASH_INT_VOLTAGE_ERR 0x00000200 // Voltage Error Interrupt Mask
+#define FLASH_INT_DATA_ERR 0x00000400 // Invalid Data Interrupt Mask
+#define FLASH_INT_ERASE_ERR 0x00000800 // Erase Error Interrupt Mask
+#define FLASH_INT_PROGRAM_ERR 0x00002000 // Program Verify Error Interrupt Mask
+
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern void FlashDisable(void);
+extern long FlashErase(unsigned long ulAddress);
+extern void FlashEraseNonBlocking(unsigned long ulAddress);
+extern long FlashMassErase(void);
+extern void FlashMassEraseNonBlocking(void);
+extern long FlashProgram(unsigned long *pulData, unsigned long ulAddress,
+ unsigned long ulCount);
+extern long FlashProgramNonBlocking(unsigned long *pulData,
+ unsigned long ulAddress,
+ unsigned long ulCount);
+extern void FlashIntRegister(void (*pfnHandler)(void));
+extern void FlashIntUnregister(void);
+extern void FlashIntEnable(unsigned long ulIntFlags);
+extern void FlashIntDisable(unsigned long ulIntFlags);
+extern unsigned long FlashIntStatus(tBoolean bMasked);
+extern void FlashIntClear(unsigned long ulIntFlags);
+extern tFlashProtection FlashProtectGet(unsigned long ulAddress);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __FLASH_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/gpio.h b/ext/hal/ti/cc3220sdk/driverlib/gpio.h
new file mode 100644
index 0000000..d62bae6
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/gpio.h
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// gpio.h
+//
+// Defines and Macros for GPIO API.
+//
+//*****************************************************************************
+
+#ifndef __GPIO_H__
+#define __GPIO_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// The following values define the bit field for the ucPins argument to several
+// of the APIs.
+//
+//*****************************************************************************
+#define GPIO_PIN_0 0x00000001 // GPIO pin 0
+#define GPIO_PIN_1 0x00000002 // GPIO pin 1
+#define GPIO_PIN_2 0x00000004 // GPIO pin 2
+#define GPIO_PIN_3 0x00000008 // GPIO pin 3
+#define GPIO_PIN_4 0x00000010 // GPIO pin 4
+#define GPIO_PIN_5 0x00000020 // GPIO pin 5
+#define GPIO_PIN_6 0x00000040 // GPIO pin 6
+#define GPIO_PIN_7 0x00000080 // GPIO pin 7
+
+//*****************************************************************************
+//
+// Values that can be passed to GPIODirModeSet as the ulPinIO parameter, and
+// returned from GPIODirModeGet.
+//
+//*****************************************************************************
+#define GPIO_DIR_MODE_IN 0x00000000 // Pin is a GPIO input
+#define GPIO_DIR_MODE_OUT 0x00000001 // Pin is a GPIO output
+
+//*****************************************************************************
+//
+// Values that can be passed to GPIOIntTypeSet as the ulIntType parameter, and
+// returned from GPIOIntTypeGet.
+//
+//*****************************************************************************
+#define GPIO_FALLING_EDGE 0x00000000 // Interrupt on falling edge
+#define GPIO_RISING_EDGE 0x00000004 // Interrupt on rising edge
+#define GPIO_BOTH_EDGES 0x00000001 // Interrupt on both edges
+#define GPIO_LOW_LEVEL 0x00000002 // Interrupt on low level
+#define GPIO_HIGH_LEVEL 0x00000006 // Interrupt on high level
+
+//*****************************************************************************
+//
+// Values that can be passed to GPIOIntEnable() and GPIOIntDisable() functions
+// in the ulIntFlags parameter.
+//
+//*****************************************************************************
+#define GPIO_INT_DMA 0x00000100
+#define GPIO_INT_PIN_0 0x00000001
+#define GPIO_INT_PIN_1 0x00000002
+#define GPIO_INT_PIN_2 0x00000004
+#define GPIO_INT_PIN_3 0x00000008
+#define GPIO_INT_PIN_4 0x00000010
+#define GPIO_INT_PIN_5 0x00000020
+#define GPIO_INT_PIN_6 0x00000040
+#define GPIO_INT_PIN_7 0x00000080
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern void GPIODirModeSet(unsigned long ulPort, unsigned char ucPins,
+ unsigned long ulPinIO);
+extern unsigned long GPIODirModeGet(unsigned long ulPort, unsigned char ucPin);
+extern void GPIOIntTypeSet(unsigned long ulPort, unsigned char ucPins,
+ unsigned long ulIntType);
+extern void GPIODMATriggerEnable(unsigned long ulPort);
+extern void GPIODMATriggerDisable(unsigned long ulPort);
+extern unsigned long GPIOIntTypeGet(unsigned long ulPort, unsigned char ucPin);
+extern void GPIOIntEnable(unsigned long ulPort, unsigned long ulIntFlags);
+extern void GPIOIntDisable(unsigned long ulPort, unsigned long ulIntFlags);
+extern long GPIOIntStatus(unsigned long ulPort, tBoolean bMasked);
+extern void GPIOIntClear(unsigned long ulPort, unsigned long ulIntFlags);
+extern void GPIOIntRegister(unsigned long ulPort,
+ void (*pfnIntHandler)(void));
+extern void GPIOIntUnregister(unsigned long ulPort);
+extern long GPIOPinRead(unsigned long ulPort, unsigned char ucPins);
+extern void GPIOPinWrite(unsigned long ulPort, unsigned char ucPins,
+ unsigned char ucVal);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __GPIO_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/interrupt.h b/ext/hal/ti/cc3220sdk/driverlib/interrupt.h
new file mode 100644
index 0000000..999bd37
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/interrupt.h
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// interrupt.h
+//
+// Prototypes for the NVIC Interrupt Controller Driver.
+//
+//*****************************************************************************
+
+#ifndef __INTERRUPT_H__
+#define __INTERRUPT_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// A union that describes the entries of the vector table. The union is needed
+// since the first entry is the stack pointer and the remainder are function
+// pointers.
+//
+//*****************************************************************************
+typedef union
+{
+ void (*pfnHandler)(void);
+ unsigned long ulPtr;
+}
+uVectorEntry;
+
+
+//*****************************************************************************
+//
+// Macro to generate an interrupt priority mask based on the number of bits
+// of priority supported by the hardware.
+//
+//*****************************************************************************
+#define INT_PRIORITY_MASK ((0xFF << (8 - NUM_PRIORITY_BITS)) & 0xFF)
+
+//*****************************************************************************
+// Interrupt priority levels
+//*****************************************************************************
+#define INT_PRIORITY_LVL_0 0x00
+#define INT_PRIORITY_LVL_1 0x20
+#define INT_PRIORITY_LVL_2 0x40
+#define INT_PRIORITY_LVL_3 0x60
+#define INT_PRIORITY_LVL_4 0x80
+#define INT_PRIORITY_LVL_5 0xA0
+#define INT_PRIORITY_LVL_6 0xC0
+#define INT_PRIORITY_LVL_7 0xE0
+
+//*****************************************************************************
+//
+// Prototypes for the APIs.
+//
+//*****************************************************************************
+extern tBoolean IntMasterEnable(void);
+extern tBoolean IntMasterDisable(void);
+extern void IntVTableBaseSet(unsigned long ulVtableBase);
+extern void IntRegister(unsigned long ulInterrupt, void (*pfnHandler)(void));
+extern void IntUnregister(unsigned long ulInterrupt);
+extern void IntPriorityGroupingSet(unsigned long ulBits);
+extern unsigned long IntPriorityGroupingGet(void);
+extern void IntPrioritySet(unsigned long ulInterrupt,
+ unsigned char ucPriority);
+extern long IntPriorityGet(unsigned long ulInterrupt);
+extern void IntEnable(unsigned long ulInterrupt);
+extern void IntDisable(unsigned long ulInterrupt);
+extern void IntPendSet(unsigned long ulInterrupt);
+extern void IntPendClear(unsigned long ulInterrupt);
+extern void IntPriorityMaskSet(unsigned long ulPriorityMask);
+extern unsigned long IntPriorityMaskGet(void);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __INTERRUPT_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/pin.h b/ext/hal/ti/cc3220sdk/driverlib/pin.h
new file mode 100644
index 0000000..fa946fb
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/pin.h
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// pin.h
+//
+// Defines and Macros for the pin mux module
+//
+//*****************************************************************************
+
+#ifndef __PIN_H__
+#define __PIN_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+// Macros Defining Pins
+//*****************************************************************************
+
+#define PIN_01 0x00000000
+#define PIN_02 0x00000001
+#define PIN_03 0x00000002
+#define PIN_04 0x00000003
+#define PIN_05 0x00000004
+#define PIN_06 0x00000005
+#define PIN_07 0x00000006
+#define PIN_08 0x00000007
+#define PIN_11 0x0000000A
+#define PIN_12 0x0000000B
+#define PIN_13 0x0000000C
+#define PIN_14 0x0000000D
+#define PIN_15 0x0000000E
+#define PIN_16 0x0000000F
+#define PIN_17 0x00000010
+#define PIN_18 0x00000011
+#define PIN_19 0x00000012
+#define PIN_20 0x00000013
+#define PIN_21 0x00000014
+#define PIN_45 0x0000002C
+#define PIN_46 0x0000002D
+#define PIN_47 0x0000002E
+#define PIN_48 0x0000002F
+#define PIN_49 0x00000030
+#define PIN_50 0x00000031
+#define PIN_52 0x00000033
+#define PIN_53 0x00000034
+#define PIN_55 0x00000036
+#define PIN_56 0x00000037
+#define PIN_57 0x00000038
+#define PIN_58 0x00000039
+#define PIN_59 0x0000003A
+#define PIN_60 0x0000003B
+#define PIN_61 0x0000003C
+#define PIN_62 0x0000003D
+#define PIN_63 0x0000003E
+#define PIN_64 0x0000003F
+
+
+
+//*****************************************************************************
+// Macros that can be used with PinConfigSet(), PinTypeGet(), PinStrengthGet()
+//*****************************************************************************
+
+#define PIN_MODE_0 0x00000000
+#define PIN_MODE_1 0x00000001
+#define PIN_MODE_2 0x00000002
+#define PIN_MODE_3 0x00000003
+#define PIN_MODE_4 0x00000004
+#define PIN_MODE_5 0x00000005
+#define PIN_MODE_6 0x00000006
+#define PIN_MODE_7 0x00000007
+#define PIN_MODE_8 0x00000008
+#define PIN_MODE_9 0x00000009
+#define PIN_MODE_10 0x0000000A
+#define PIN_MODE_11 0x0000000B
+#define PIN_MODE_12 0x0000000C
+#define PIN_MODE_13 0x0000000D
+#define PIN_MODE_14 0x0000000E
+#define PIN_MODE_15 0x0000000F
+// Note : PIN_MODE_255 is a dummy define for pinmux utility code generation
+// PIN_MODE_255 should never be used in any user code.
+#define PIN_MODE_255 0x000000FF
+
+//*****************************************************************************
+// Macros that can be used with PinDirModeSet() and returned from
+// PinDirModeGet().
+//*****************************************************************************
+#define PIN_DIR_MODE_IN 0x00000C00 // Pin is input
+#define PIN_DIR_MODE_OUT 0x00000800 // Pin is output
+#define PIN_DIR_MODE_HW 0x00000000 // Pin is peripheral function
+
+//*****************************************************************************
+// Macros that can be used with PinConfigSet()
+//*****************************************************************************
+#define PIN_STRENGTH_2MA 0x00000020
+#define PIN_STRENGTH_4MA 0x00000040
+#define PIN_STRENGTH_6MA 0x00000060
+
+#define PIN_TYPE_STD 0x00000000
+#define PIN_TYPE_STD_PU 0x00000100
+#define PIN_TYPE_STD_PD 0x00000200
+
+#define PIN_TYPE_OD 0x00000010
+#define PIN_TYPE_OD_PU 0x00000110
+#define PIN_TYPE_OD_PD 0x00000210
+#define PIN_TYPE_ANALOG 0x10000000
+
+//*****************************************************************************
+// Macros that can be used with PinHysteresisSet()
+//*****************************************************************************
+#define PIN_HYSTERESIS_OFF 0x00000000
+#define PIN_HYSTERESIS_10 0x00000004
+#define PIN_HYSTERESIS_20 0x0000000C
+#define PIN_HYSTERESIS_30 0x00000014
+#define PIN_HYSTERESIS_40 0x0000001C
+
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void PinModeSet(unsigned long ulPin, unsigned long ulPinMode);
+extern void PinDirModeSet(unsigned long ulPin, unsigned long ulPinIO);
+extern unsigned long PinDirModeGet(unsigned long ulPin);
+extern unsigned long PinModeGet(unsigned long ulPin);
+extern void PinConfigGet(unsigned long ulPin,unsigned long *pulPinStrength,
+ unsigned long *pulPinType);
+extern void PinConfigSet(unsigned long ulPin,unsigned long ulPinStrength,
+ unsigned long ulPinType);
+extern void PinTypeUART(unsigned long ulPin,unsigned long ulPinMode);
+extern void PinTypeI2C(unsigned long ulPin,unsigned long ulPinMode);
+extern void PinTypeSPI(unsigned long ulPin,unsigned long ulPinMode);
+extern void PinTypeI2S(unsigned long ulPin,unsigned long ulPinMode);
+extern void PinTypeTimer(unsigned long ulPin,unsigned long ulPinMode);
+extern void PinTypeCamera(unsigned long ulPin,unsigned long ulPinMode);
+extern void PinTypeGPIO(unsigned long ulPin,unsigned long ulPinMode,
+ tBoolean bOpenDrain);
+extern void PinTypeADC(unsigned long ulPin,unsigned long ulPinMode);
+extern void PinTypeSDHost(unsigned long ulPin,unsigned long ulPinMode);
+extern void PinHysteresisSet(unsigned long ulHysteresis);
+extern void PinLockLevelSet(unsigned long ulPin, unsigned char ucLevel);
+extern void PinLock(unsigned long ulOutEnable);
+extern void PinUnlock(void);
+extern unsigned long PinToPadGet(unsigned long ulPin);
+extern unsigned long PinFromPadGet(unsigned long ulPad);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //__PIN_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/prcm.c b/ext/hal/ti/cc3220sdk/driverlib/prcm.c
new file mode 100644
index 0000000..3019c71
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/prcm.c
@@ -0,0 +1,2715 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+//*****************************************************************************
+//
+//! \addtogroup PRCM_Power_Reset_Clock_Module_api
+//! @{
+//
+//*****************************************************************************
+
+#include "inc/hw_types.h"
+#include "inc/hw_ints.h"
+#include "inc/hw_memmap.h"
+#include "inc/hw_apps_rcm.h"
+#include "inc/hw_gprcm.h"
+#include "inc/hw_hib1p2.h"
+#include "inc/hw_hib3p3.h"
+#include "inc/hw_ocp_shared.h"
+#include "inc/hw_common_reg.h"
+#include "prcm.h"
+#include "interrupt.h"
+#include "cpu.h"
+#include "flash.h"
+#include "utils.h"
+
+
+//*****************************************************************************
+// Macro definition
+//*****************************************************************************
+#define PRCM_SOFT_RESET 0x00000001
+#define PRCM_ENABLE_STATUS 0x00000002
+#define SYS_CLK 80000000
+#define XTAL_CLK 40000000
+
+
+//*****************************************************************************
+// CC3200 does not have a true RTC capability. However, API(s) in this file
+// provide an effective mechanism to support RTC feature in the device.
+//
+// The implementation to support RTC has been kept very simple. A set of
+// HIB Memory Registers in conjunction with Slow Clock Counter are used
+// to render RTC information to users. Core principle of design involves
+// two steps (a) establish an association between user provided wall-clock
+// and slow clock counter. (b) store reference value of this associattion
+// in HIB Registers. This reference value and SCC value are then combined
+// to create real-world calendar time.
+//
+// Across HIB cycles, value stored in HIB Registers is retained and slow
+// clock counter continues to tick, thereby, this arragement is relevant
+// and valid as long as device has a (tickle) battery power.
+//
+// Further, provision also has been made to set an alarm. When it RTC value
+// matches that of set for alarm, an interrupt is generated.
+//
+// HIB MEM REG0 and REG1 are reserved for TI.
+//
+// If RTC feature is not used, then HIB REG2 & REG3 are available to user.
+//
+// Lower half of REG0 is used for TI HW ECO.
+//*****************************************************************************
+#define RTC_U64MSEC_MK(u32Secs, u16Msec) (((unsigned long long)u32Secs << 10)|\
+ (u16Msec & 0x3FF))
+
+#define RTC_SECS_IN_U64MSEC(u64Msec) ((unsigned long)(u64Msec >> 10))
+#define RTC_MSEC_IN_U64MSEC(u64Msec) ((unsigned short)(u64Msec & 0x3FF))
+
+#define RTC_SECS_U32_REG_ADDR (HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG3)
+#define RTC_MSEC_U16_REG_ADDR (HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG2+2)
+
+#define RTC_U32SECS_REG (HWREG(RTC_SECS_U32_REG_ADDR))
+#define RTC_U16MSEC_REG (*(unsigned short*)RTC_MSEC_U16_REG_ADDR)
+
+//*****************************************************************************
+// Register Access and Updates
+//
+// Tick of SCC has a resolution of 32768Hz, meaning 1 sec is equal to 32768
+// clock ticks. Ideal way of getting time in millisecond will involve floating
+// point arithmetic (division by 32.768). To avoid this, we simply divide it by
+// 32, which will give a range from 0 -1023(instead of 0-999). To use this
+// output correctly we have to take care of this inaccuracy externally.
+// following wrapper can be used to convert the value from cycles to
+// millisecond:
+//
+// CYCLES_U16MS(cycles) ((cycles *1000)/ 1024),
+//
+// Similarly, before setting the value, it must be first converted (from ms to
+// cycles).
+//
+// U16MS_CYCLES(msec) ((msec *1024)/1000)
+//
+// Note: There is a precision loss of 1 ms with the above scheme.
+//
+//*****************************************************************************
+#define SCC_U64MSEC_GET() (PRCMSlowClkCtrGet() >> 5)
+#define SCC_U64MSEC_MATCH_SET(u64Msec) (PRCMSlowClkCtrMatchSet(u64Msec << 5))
+#define SCC_U64MSEC_MATCH_GET() (PRCMSlowClkCtrMatchGet() >> 5)
+
+//*****************************************************************************
+//
+// Bit: 31 is used to indicate use of RTC. If set as '1', RTC feature is used.
+// Bits: 30 to 26 are reserved, available to software for use
+// Bits: 25 to 16 are used to save millisecond part of RTC reference.
+// Bits: 15 to 0 are being used for HW Changes / ECO
+//
+//*****************************************************************************
+
+//*****************************************************************************
+// Set RTC USE Bit
+//*****************************************************************************
+static void RTCUseSet(void)
+{
+ unsigned short usRegValue;
+
+ usRegValue = RTC_U16MSEC_REG | (1 << 15);
+
+ UtilsDelay((80*200)/3);
+
+ RTC_U16MSEC_REG = usRegValue;
+}
+
+//*****************************************************************************
+// Checks if RTC-USE bit is set
+//*****************************************************************************
+static tBoolean IsRTCUsed(void)
+{
+ unsigned short usRegValue;
+
+ usRegValue = RTC_U16MSEC_REG;
+
+ UtilsDelay((80*200)/3);
+
+ return ((usRegValue & (1 << 15))? true : false);
+}
+
+//*****************************************************************************
+// Read 16-bit mSecs
+//*****************************************************************************
+static unsigned short RTCU16MSecRegRead(void)
+{
+ unsigned short usRegValue;
+
+ usRegValue = RTC_U16MSEC_REG;
+
+ UtilsDelay((80*200)/3);
+
+ return (usRegValue & 0x3FF);
+}
+
+//*****************************************************************************
+// Write 16-bit mSecs
+//*****************************************************************************
+static void RTCU16MSecRegWrite(unsigned short u16Msec)
+{
+ unsigned short usRegValue;
+
+ usRegValue = RTC_U16MSEC_REG;
+
+ UtilsDelay((80*200)/3);
+
+ RTC_U16MSEC_REG = ((usRegValue & ~0x3FF) |u16Msec);
+}
+
+//*****************************************************************************
+// Read 32-bit Secs
+//*****************************************************************************
+static unsigned long RTCU32SecRegRead(void)
+{
+ return (PRCMHIBRegRead(RTC_SECS_U32_REG_ADDR));
+}
+
+//*****************************************************************************
+// Write 32-bit Secs
+//*****************************************************************************
+static void RTCU32SecRegWrite(unsigned long u32Msec)
+{
+ PRCMHIBRegWrite(RTC_SECS_U32_REG_ADDR, u32Msec);
+}
+
+//*****************************************************************************
+// Macros
+//*****************************************************************************
+#define IS_RTC_USED() IsRTCUsed()
+#define RTC_USE_SET() RTCUseSet()
+
+#define RTC_U16MSEC_REG_RD() RTCU16MSecRegRead()
+#define RTC_U16MSEC_REG_WR(u16Msec) RTCU16MSecRegWrite(u16Msec)
+
+#define RTC_U32SECS_REG_RD() RTCU32SecRegRead()
+#define RTC_U32SECS_REG_WR(u32Secs) RTCU32SecRegWrite(u32Secs)
+
+#define SELECT_SCC_U42BITS(u64Msec) (u64Msec & 0x3ffffffffff)
+
+//*****************************************************************************
+// Global Peripheral clock and rest Registers
+//*****************************************************************************
+static const PRCM_PeriphRegs_t PRCM_PeriphRegsList[] =
+{
+
+ {APPS_RCM_O_CAMERA_CLK_GATING, APPS_RCM_O_CAMERA_SOFT_RESET },
+ {APPS_RCM_O_MCASP_CLK_GATING, APPS_RCM_O_MCASP_SOFT_RESET },
+ {APPS_RCM_O_MMCHS_CLK_GATING, APPS_RCM_O_MMCHS_SOFT_RESET },
+ {APPS_RCM_O_MCSPI_A1_CLK_GATING, APPS_RCM_O_MCSPI_A1_SOFT_RESET },
+ {APPS_RCM_O_MCSPI_A2_CLK_GATING, APPS_RCM_O_MCSPI_A2_SOFT_RESET },
+ {APPS_RCM_O_UDMA_A_CLK_GATING, APPS_RCM_O_UDMA_A_SOFT_RESET },
+ {APPS_RCM_O_GPIO_A_CLK_GATING, APPS_RCM_O_GPIO_A_SOFT_RESET },
+ {APPS_RCM_O_GPIO_B_CLK_GATING, APPS_RCM_O_GPIO_B_SOFT_RESET },
+ {APPS_RCM_O_GPIO_C_CLK_GATING, APPS_RCM_O_GPIO_C_SOFT_RESET },
+ {APPS_RCM_O_GPIO_D_CLK_GATING, APPS_RCM_O_GPIO_D_SOFT_RESET },
+ {APPS_RCM_O_GPIO_E_CLK_GATING, APPS_RCM_O_GPIO_E_SOFT_RESET },
+ {APPS_RCM_O_WDOG_A_CLK_GATING, APPS_RCM_O_WDOG_A_SOFT_RESET },
+ {APPS_RCM_O_UART_A0_CLK_GATING, APPS_RCM_O_UART_A0_SOFT_RESET },
+ {APPS_RCM_O_UART_A1_CLK_GATING, APPS_RCM_O_UART_A1_SOFT_RESET },
+ {APPS_RCM_O_GPT_A0_CLK_GATING , APPS_RCM_O_GPT_A0_SOFT_RESET },
+ {APPS_RCM_O_GPT_A1_CLK_GATING, APPS_RCM_O_GPT_A1_SOFT_RESET },
+ {APPS_RCM_O_GPT_A2_CLK_GATING, APPS_RCM_O_GPT_A2_SOFT_RESET },
+ {APPS_RCM_O_GPT_A3_CLK_GATING, APPS_RCM_O_GPT_A3_SOFT_RESET },
+ {APPS_RCM_O_CRYPTO_CLK_GATING, APPS_RCM_O_CRYPTO_SOFT_RESET },
+ {APPS_RCM_O_MCSPI_S0_CLK_GATING, APPS_RCM_O_MCSPI_S0_SOFT_RESET },
+ {APPS_RCM_O_I2C_CLK_GATING, APPS_RCM_O_I2C_SOFT_RESET }
+
+};
+
+//*****************************************************************************
+//
+//! Performs a software reset of a MCU and associated peripherals
+//!
+//! \param bIncludeSubsystem is \b true to reset associated peripherals.
+//!
+//! This function performs a software reset of a MCU and associated peripherals.
+//! To reset the associated peripheral, the parameter \e bIncludeSubsystem
+//! should be set to \b true.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMMCUReset(tBoolean bIncludeSubsystem)
+{
+ if(bIncludeSubsystem)
+ {
+ //
+ // Reset Apps processor and associated peripheral
+ //
+ HWREG(GPRCM_BASE+ GPRCM_O_APPS_SOFT_RESET) = 0x2;
+ }
+ else
+ {
+ //
+ // Reset Apps processor only
+ //
+ HWREG(GPRCM_BASE+ GPRCM_O_APPS_SOFT_RESET) = 0x1;
+ }
+
+ //
+ // Wait for system to enter hibernate
+ //
+ __asm(" wfi\n");
+
+ //
+ // Infinite loop
+ //
+ while(1)
+ {
+
+ }
+}
+
+//*****************************************************************************
+//
+//! Gets the reason for a reset.
+//!
+//! This function returns the reason(s) for a reset. The reset reason are:-
+//! -\b PRCM_POWER_ON - Device is powering up.
+//! -\b PRCM_LPDS_EXIT - Device is exiting from LPDS.
+//! -\b PRCM_CORE_RESET - Device is exiting soft core only reset
+//! -\b PRCM_MCU_RESET - Device is exiting soft subsystem reset.
+//! -\b PRCM_WDT_RESET - Device was reset by watchdog.
+//! -\b PRCM_SOC_RESET - Device is exting SOC reset.
+//! -\b PRCM_HIB_EXIT - Device is exiting hibernate.
+//!
+//! \return Returns one of the cause defined above.
+//
+//*****************************************************************************
+unsigned long PRCMSysResetCauseGet()
+{
+ unsigned long ulWakeupStatus;
+
+ //
+ // Read the Reset status
+ //
+ ulWakeupStatus = (HWREG(GPRCM_BASE+ GPRCM_O_APPS_RESET_CAUSE) & 0xFF);
+
+ //
+ // For hibernate do additional check.
+ //
+ if(ulWakeupStatus == PRCM_POWER_ON)
+ {
+ if(PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_WAKE_STATUS) & 0x1)
+ {
+ ulWakeupStatus = PRCM_HIB_EXIT;
+
+ if( (HWREG(OCP_SHARED_BASE + OCP_SHARED_O_SPARE_REG_8) & (0x00000280)) == 0x00000280 )
+ {
+ ulWakeupStatus = PRCM_WDT_RESET;
+ }
+ }
+ }
+ else if((ulWakeupStatus == PRCM_LPDS_EXIT) &&
+ !(HWREG(GPRCM_BASE + GPRCM_O_GPRCM_EFUSE_READ_REG1) & (1 <<2)) )
+ {
+ if(HWREG(OCP_SHARED_BASE + OCP_SHARED_O_SPARE_REG_8) & (0x1<<8))
+ {
+ ulWakeupStatus = PRCM_POWER_ON;
+ }
+ }
+
+ //
+ // Return status.
+ //
+ return ulWakeupStatus;
+}
+
+//*****************************************************************************
+//
+//! Enable clock(s) to peripheral.
+//!
+//! \param ulPeripheral is one of the valid peripherals
+//! \param ulClkFlags are bitmask of clock(s) to be enabled.
+//!
+//! This function enables the clock for the specified peripheral. Peripherals
+//! are by default clock gated (disabled) and generates a bus fault if
+//! accessed.
+//!
+//! The parameter \e ulClkFlags can be logical OR of the following:
+//! -\b PRCM_RUN_MODE_CLK - Ungates clock to the peripheral
+//! -\b PRCM_SLP_MODE_CLK - Keeps the clocks ungated in sleep.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMPeripheralClkEnable(unsigned long ulPeripheral, unsigned long ulClkFlags)
+{
+ //
+ // Enable the specified peripheral clocks, Nothing to be done for PRCM_ADC
+ // as it is a dummy define for pinmux utility code generation
+ //
+ if(ulPeripheral != PRCM_ADC)
+ {
+ HWREG(ARCM_BASE + PRCM_PeriphRegsList[ulPeripheral].ulClkReg) |= ulClkFlags;
+ }
+
+ //
+ // Checking ROM Version less than 2.x.x.
+ // Only for driverlib backward compatibility
+ //
+ if( (HWREG(0x00000400) & 0xFFFF) < 2 )
+ {
+ //
+ // Set the default clock for camera
+ //
+ if(ulPeripheral == PRCM_CAMERA)
+ {
+ HWREG(ARCM_BASE + APPS_RCM_O_CAMERA_CLK_GEN) = 0x0404;
+ }
+ }
+}
+
+//*****************************************************************************
+//
+//! Disables clock(s) to peripheral.
+//!
+//! \param ulPeripheral is one of the valid peripherals
+//! \param ulClkFlags are bitmask of clock(s) to be enabled.
+//!
+//! This function disable the clock for the specified peripheral. Peripherals
+//! are by default clock gated (disabled) and generated a bus fault if
+//! accessed.
+//!
+//! The parameter \e ulClkFlags can be logical OR bit fields as defined in
+//! PRCMEnablePeripheral().
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMPeripheralClkDisable(unsigned long ulPeripheral, unsigned long ulClkFlags)
+{
+ //
+ // Disable the specified peripheral clocks
+ //
+ HWREG(ARCM_BASE + PRCM_PeriphRegsList[ulPeripheral].ulClkReg) &= ~ulClkFlags;
+}
+
+//*****************************************************************************
+//
+//! Gets the input clock for the specified peripheral.
+//!
+//! \param ulPeripheral is one of the valid peripherals.
+//!
+//! This function gets the input clock for the specified peripheral.
+//!
+//! The parameter \e ulPeripheral has the same definition as that in
+//! PRCMPeripheralClkEnable();
+//!
+//! \return Returns input clock frequency for specified peripheral.
+//
+//*****************************************************************************
+unsigned long
+PRCMPeripheralClockGet(unsigned long ulPeripheral)
+{
+ unsigned long ulClockFreq;
+ unsigned long ulHiPulseDiv;
+ unsigned long ulLoPulseDiv;
+
+ //
+ // Get the clock based on specified peripheral.
+ //
+ if(((ulPeripheral == PRCM_SSPI) | (ulPeripheral == PRCM_LSPI)
+ | (ulPeripheral == PRCM_GSPI)))
+ {
+ return XTAL_CLK;
+ }
+ else if(ulPeripheral == PRCM_CAMERA)
+ {
+ ulHiPulseDiv = ((HWREG(ARCM_BASE + APPS_RCM_O_CAMERA_CLK_GEN) >> 8) & 0x07);
+ ulLoPulseDiv = (HWREG(ARCM_BASE + APPS_RCM_O_CAMERA_CLK_GEN)& 0xFF);
+ }
+ else if(ulPeripheral == PRCM_SDHOST)
+ {
+ ulHiPulseDiv = ((HWREG(ARCM_BASE + APPS_RCM_O_MMCHS_CLK_GEN) >> 8) & 0x07);
+ ulLoPulseDiv = (HWREG(ARCM_BASE + APPS_RCM_O_MMCHS_CLK_GEN)& 0xFF);
+ }
+ else
+ {
+ return SYS_CLK;
+ }
+
+ //
+ // Compute the clock freq. from the divider value
+ //
+ ulClockFreq = (240000000/((ulHiPulseDiv + 1) + (ulLoPulseDiv + 1)));
+
+ //
+ // Return the clock rate.
+ //
+ return ulClockFreq;
+}
+
+//*****************************************************************************
+//
+//! Performs a software reset of a peripheral.
+//!
+//! \param ulPeripheral is one of the valid peripheral.
+//!
+//! This function does soft reset of the specified peripheral
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMPeripheralReset(unsigned long ulPeripheral)
+{
+ volatile unsigned long ulDelay;
+
+ if( ulPeripheral != PRCM_DTHE)
+ {
+ //
+ // Assert the reset
+ //
+ HWREG(ARCM_BASE + PRCM_PeriphRegsList[ulPeripheral].ulRstReg)
+ |= PRCM_SOFT_RESET;
+ //
+ // Delay a little bit.
+ //
+ for(ulDelay = 0; ulDelay < 16; ulDelay++)
+ {
+ }
+
+ //
+ // Deassert the reset
+ //
+ HWREG(ARCM_BASE+PRCM_PeriphRegsList[ulPeripheral].ulRstReg)
+ &= ~PRCM_SOFT_RESET;
+ }
+}
+
+//*****************************************************************************
+//
+//! Determines if a peripheral is ready.
+//!
+//! \param ulPeripheral is one of the valid modules
+//!
+//! This function determines if a particular peripheral is ready to be
+//! accessed. The peripheral may be in a non-ready state if it is not enabled,
+//! is being held in reset, or is in the process of becoming ready after being
+//! enabled or taken out of reset.
+//!
+//! \return Returns \b true if the peripheral is ready, \b false otherwise.
+//
+//*****************************************************************************
+tBoolean
+PRCMPeripheralStatusGet(unsigned long ulPeripheral)
+{
+ unsigned long ReadyBit;
+
+ //
+ // Read the ready bit status
+ //
+ ReadyBit = HWREG(ARCM_BASE + PRCM_PeriphRegsList[ulPeripheral].ulRstReg);
+ ReadyBit = ReadyBit & PRCM_ENABLE_STATUS;
+
+ if (ReadyBit)
+ {
+ //
+ // Module is ready
+ //
+ return(true);
+ }
+ else
+ {
+ //
+ // Module is not ready
+ //
+ return(false);
+ }
+}
+
+//*****************************************************************************
+//
+//! Configure I2S fracactional divider
+//!
+//! \param ulI2CClkFreq is the required input clock for McAPS module
+//!
+//! This function configures I2S fractional divider. By default this
+//! divider is set to output 24 Mhz clock to I2S module.
+//!
+//! The minimum frequency that can be obtained by configuring this divider is
+//!
+//! (240000KHz/1023.99) = 234.377 KHz
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMI2SClockFreqSet(unsigned long ulI2CClkFreq)
+{
+ unsigned long long ullDiv;
+ unsigned short usInteger;
+ unsigned short usFrac;
+
+ ullDiv = (((unsigned long long)240000000 * 65536)/ulI2CClkFreq);
+
+ usInteger = (ullDiv/65536);
+ usFrac = (ullDiv%65536);
+
+ HWREG(ARCM_BASE + APPS_RCM_O_MCASP_FRAC_CLK_CONFIG0) =
+ ((usInteger & 0x3FF) << 16 | usFrac);
+}
+
+//*****************************************************************************
+//
+//! Sets the LPDS exit PC and SP restore vlaues.
+//!
+//! \param ulStackPtr is the SP restore value.
+//! \param ulProgCntr is the PC restore value
+//!
+//! This function sets the LPDS exit PC and SP restore vlaues. Setting
+//! \e ulProgCntr to a non-zero value, forces bootloader to jump to that
+//! address with Stack Pointer initialized to \e ulStackPtr on LPDS exit,
+//! otherwise the application's vector table entries are used.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMLPDSRestoreInfoSet(unsigned long ulStackPtr, unsigned long ulProgCntr)
+{
+ //
+ // ROM Version 2.x.x or greater
+ //
+ if( (HWREG(0x00000400) & 0xFFFF) >= 2 )
+ {
+ //
+ // Set The SP Value
+ //
+ HWREG(0x4402E160) = ulStackPtr;
+
+ //
+ // Set The PC Value
+ //
+ HWREG(0x4402E198) = ulProgCntr;
+
+ }
+ else
+ {
+ //
+ // Set The SP Value
+ //
+ HWREG(0x4402E18C) = ulStackPtr;
+
+ //
+ // Set The PC Value
+ //
+ HWREG(0x4402E190) = ulProgCntr;
+ }
+}
+
+//*****************************************************************************
+//
+//! Puts the system into Low Power Deel Sleep (LPDS) power mode.
+//!
+//! This function puts the system into Low Power Deel Sleep (LPDS) power mode.
+//! A call to this function never returns and the execution starts from Reset.
+//! \sa PRCMLPDSRestoreInfoSet().
+//!
+//! \return None.
+//!
+//! \note External debugger will always disconnect whenever the system
+//! enters LPDS and debug interface is shutdown until next POR reset. In order
+//! to avoid this and allow for connecting back the debugger after waking up
+//! from LPDS \sa PRCMLPDSEnterKeepDebugIf().
+//!
+//
+//*****************************************************************************
+void
+PRCMLPDSEnter()
+{
+ unsigned long ulChipId;
+
+ //
+ // Read the Chip ID
+ //
+ ulChipId = ((HWREG(GPRCM_BASE + GPRCM_O_GPRCM_EFUSE_READ_REG2) >> 16) & 0x1F);
+
+ //
+ // Check if flash exists
+ //
+ if( (0x11 == ulChipId) || (0x19 == ulChipId))
+ {
+
+ //
+ // Disable the flash
+ //
+ FlashDisable();
+ }
+
+#ifndef KEEP_TESTPD_ALIVE
+
+ //
+ // Disable TestPD
+ //
+ HWREG(0x4402E168) |= (1<<9);
+#endif
+
+ //
+ // Set bandgap duty cycle to 1
+ //
+ HWREG(HIB1P2_BASE + HIB1P2_O_BGAP_DUTY_CYCLING_EXIT_CFG) = 0x1;
+
+ //
+ // Request LPDS
+ //
+ HWREG(ARCM_BASE + APPS_RCM_O_APPS_LPDS_REQ)
+ = APPS_RCM_APPS_LPDS_REQ_APPS_LPDS_REQ;
+
+ //
+ // Wait for system to enter LPDS
+ //
+ __asm(" wfi\n");
+
+ //
+ // Infinite loop
+ //
+ while(1)
+ {
+
+ }
+
+}
+
+
+//*****************************************************************************
+//
+//! Puts the system into Low Power Deel Sleep (LPDS) power mode keeping
+//! debug interface alive.
+//!
+//! This function puts the system into Low Power Deel Sleep (LPDS) power mode
+//! keeping debug interface alive. A call to this function never returns and the
+//! execution starts from Reset \sa PRCMLPDSRestoreInfoSet().
+//!
+//! \return None.
+//!
+//! \note External debugger will always disconnect whenever the system
+//! enters LPDS, using this API will allow connecting back the debugger after
+//! waking up from LPDS. This API is recommended for development purposes
+//! only as it adds to the current consumption of the system.
+//!
+//
+//*****************************************************************************
+void
+PRCMLPDSEnterKeepDebugIf()
+{
+ unsigned long ulChipId;
+
+ //
+ // Read the Chip ID
+ //
+ ulChipId = ((HWREG(GPRCM_BASE + GPRCM_O_GPRCM_EFUSE_READ_REG2) >> 16) & 0x1F);
+
+ //
+ // Check if flash exists
+ //
+ if( (0x11 == ulChipId) || (0x19 == ulChipId))
+ {
+
+ //
+ // Disable the flash
+ //
+ FlashDisable();
+ }
+
+ //
+ // Set bandgap duty cycle to 1
+ //
+ HWREG(HIB1P2_BASE + HIB1P2_O_BGAP_DUTY_CYCLING_EXIT_CFG) = 0x1;
+
+ //
+ // Request LPDS
+ //
+ HWREG(ARCM_BASE + APPS_RCM_O_APPS_LPDS_REQ)
+ = APPS_RCM_APPS_LPDS_REQ_APPS_LPDS_REQ;
+
+ //
+ // Wait for system to enter LPDS
+ //
+ __asm(" wfi\n");
+
+ //
+ // Infinite loop
+ //
+ while(1)
+ {
+
+ }
+
+}
+
+//*****************************************************************************
+//
+//! Enable the individual LPDS wakeup source(s).
+//!
+//! \param ulLpdsWakeupSrc is logical OR of wakeup sources.
+//!
+//! This function enable the individual LPDS wakeup source(s) and following
+//! three wakeup sources (\e ulLpdsWakeupSrc ) are supported by the device.
+//! -\b PRCM_LPDS_HOST_IRQ
+//! -\b PRCM_LPDS_GPIO
+//! -\b PRCM_LPDS_TIMER
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMLPDSWakeupSourceEnable(unsigned long ulLpdsWakeupSrc)
+{
+ unsigned long ulRegVal;
+
+ //
+ // Read the current wakup sources
+ //
+ ulRegVal = HWREG(GPRCM_BASE+ GPRCM_O_APPS_LPDS_WAKEUP_CFG);
+
+ //
+ // Enable individual wakeup source
+ //
+ ulRegVal = ((ulRegVal | ulLpdsWakeupSrc) & 0x91);
+
+ //
+ // Set the configuration in the register
+ //
+ HWREG(GPRCM_BASE+ GPRCM_O_APPS_LPDS_WAKEUP_CFG) = ulRegVal;
+}
+
+//*****************************************************************************
+//
+//! Disable the individual LPDS wakeup source(s).
+//!
+//! \param ulLpdsWakeupSrc is logical OR of wakeup sources.
+//!
+//! This function enable the individual LPDS wakeup source(s) and following
+//! three wake up sources (\e ulLpdsWakeupSrc ) are supported by the device.
+//! -\b PRCM_LPDS_HOST_IRQ
+//! -\b PRCM_LPDS_GPIO
+//! -\b PRCM_LPDS_TIMER
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMLPDSWakeupSourceDisable(unsigned long ulLpdsWakeupSrc)
+{
+ HWREG(GPRCM_BASE+ GPRCM_O_APPS_LPDS_WAKEUP_CFG) &= ~ulLpdsWakeupSrc;
+}
+
+
+//*****************************************************************************
+//
+//! Get LPDS wakeup cause
+//!
+//! This function gets LPDS wakeup caouse
+//!
+//! \return Returns values enumerated as described in
+//! PRCMLPDSWakeupSourceEnable().
+//
+//*****************************************************************************
+unsigned long
+PRCMLPDSWakeupCauseGet()
+{
+ return (HWREG(GPRCM_BASE+ GPRCM_O_APPS_LPDS_WAKEUP_SRC));
+}
+
+//*****************************************************************************
+//
+//! Sets LPDS wakeup Timer
+//!
+//! \param ulTicks is number of 32.768 KHz clocks
+//!
+//! This function sets internal LPDS wakeup timer running at 32.768 KHz. The
+//! timer is only configured if the parameter \e ulTicks is in valid range i.e.
+//! from 21 to 2^32.
+//!
+//! \return Returns \b true on success, \b false otherwise.
+//
+//*****************************************************************************
+void
+PRCMLPDSIntervalSet(unsigned long ulTicks)
+{
+ //
+ // Check sleep is atleast for 21 cycles
+ // If not set the sleep time to 21 cycles
+ //
+ if( ulTicks < 21)
+ {
+ ulTicks = 21;
+ }
+
+ HWREG(GPRCM_BASE + GPRCM_O_APPS_LPDS_WAKETIME_WAKE_CFG) = ulTicks;
+ HWREG(GPRCM_BASE + GPRCM_O_APPS_LPDS_WAKETIME_OPP_CFG) = ulTicks-20;
+}
+
+//*****************************************************************************
+//
+//! Selects the GPIO for LPDS wakeup
+//!
+//! \param ulGPIOPin is one of the valid GPIO fro LPDS wakeup.
+//! \param ulType is the wakeup trigger type.
+//!
+//! This function setects the wakeup GPIO for LPDS wakeup and can be
+//! used to select one out of 7 pre-defined GPIO(s).
+//!
+//! The parameter \e ulLpdsGPIOSel should be one of the following:-
+//! -\b PRCM_LPDS_GPIO2
+//! -\b PRCM_LPDS_GPIO4
+//! -\b PRCM_LPDS_GPIO13
+//! -\b PRCM_LPDS_GPIO17
+//! -\b PRCM_LPDS_GPIO11
+//! -\b PRCM_LPDS_GPIO24
+//! -\b PRCM_LPDS_GPIO26
+//!
+//! The parameter \e ulType sets the trigger type and can be one of the
+//! following:
+//! - \b PRCM_LPDS_LOW_LEVEL
+//! - \b PRCM_LPDS_HIGH_LEVEL
+//! - \b PRCM_LPDS_FALL_EDGE
+//! - \b PRCM_LPDS_RISE_EDGE
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMLPDSWakeUpGPIOSelect(unsigned long ulGPIOPin, unsigned long ulType)
+{
+ //
+ // Set the wakeup GPIO
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_HIB_LPDS_GPIO_SEL, ulGPIOPin);
+
+ //
+ // Set the trigger type.
+ //
+ HWREG(GPRCM_BASE + GPRCM_O_APPS_GPIO_WAKE_CONF) = (ulType & 0x3);
+}
+
+//*****************************************************************************
+//
+//! Puts the system into Sleep.
+//!
+//! This function puts the system into sleep power mode. System exits the power
+//! state on any one of the available interrupt. On exit from sleep mode the
+//! function returns to the calling function with all the processor core
+//! registers retained.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMSleepEnter()
+{
+ //
+ // Request Sleep
+ //
+ CPUwfi();
+}
+
+//*****************************************************************************
+//
+//! Enable SRAM column retention during LPDS Power mode(s)
+//!
+//! \param ulSramColSel is bit mask of valid SRAM columns.
+//! \param ulModeFlags is the bit mask of power modes.
+//!
+//! This functions enables the SRAM retention. The device supports configurable
+//! SRAM column retention in Low Power Deep Sleep (LPDS). Each column is of
+//! 64 KB size.
+//!
+//! The parameter \e ulSramColSel should be logical OR of the following:-
+//! -\b PRCM_SRAM_COL_1
+//! -\b PRCM_SRAM_COL_2
+//! -\b PRCM_SRAM_COL_3
+//! -\b PRCM_SRAM_COL_4
+//!
+//! The parameter \e ulModeFlags selects the power modes and sholud be logical
+//! OR of one or more of the following
+//! -\b PRCM_SRAM_LPDS_RET
+//!
+//! \return None.
+//
+//****************************************************************************
+void
+PRCMSRAMRetentionEnable(unsigned long ulSramColSel, unsigned long ulModeFlags)
+{
+ if(ulModeFlags & PRCM_SRAM_LPDS_RET)
+ {
+ //
+ // Configure LPDS SRAM retention register
+ //
+ HWREG(GPRCM_BASE+ GPRCM_O_APPS_SRAM_LPDS_CFG) = (ulSramColSel & 0xF);
+ }
+}
+
+//*****************************************************************************
+//
+//! Disable SRAM column retention during LPDS Power mode(s).
+//!
+//! \param ulSramColSel is bit mask of valid SRAM columns.
+//! \param ulFlags is the bit mask of power modes.
+//!
+//! This functions disable the SRAM retention. The device supports configurable
+//! SRAM column retention in Low Power Deep Sleep (LPDS). Each column is
+//! of 64 KB size.
+//!
+//! The parameter \e ulSramColSel should be logical OR of the following:-
+//! -\b PRCM_SRAM_COL_1
+//! -\b PRCM_SRAM_COL_2
+//! -\b PRCM_SRAM_COL_3
+//! -\b PRCM_SRAM_COL_4
+//!
+//! The parameter \e ulFlags selects the power modes and sholud be logical OR
+//! of one or more of the following
+//! -\b PRCM_SRAM_LPDS_RET
+//!
+//! \return None.
+//
+//****************************************************************************
+void
+PRCMSRAMRetentionDisable(unsigned long ulSramColSel, unsigned long ulFlags)
+{
+ if(ulFlags & PRCM_SRAM_LPDS_RET)
+ {
+ //
+ // Configure LPDS SRAM retention register
+ //
+ HWREG(GPRCM_BASE+ GPRCM_O_APPS_SRAM_LPDS_CFG) &= ~(ulSramColSel & 0xF);
+ }
+}
+
+
+//*****************************************************************************
+//
+//! Enables individual HIB wakeup source(s).
+//!
+//! \param ulHIBWakupSrc is logical OR of valid HIB wakeup sources.
+//!
+//! This function enables individual HIB wakeup source(s). The paramter
+//! \e ulHIBWakupSrc is the bit mask of HIB wakeup sources and should be
+//! logical OR of one or more of the follwoing :-
+//! -\b PRCM_HIB_SLOW_CLK_CTR
+//! -\b PRCM_HIB_GPIO2
+//! -\b PRCM_HIB_GPIO4
+//! -\b PRCM_HIB_GPIO13
+//! -\b PRCM_HIB_GPIO17
+//! -\b PRCM_HIB_GPIO11
+//! -\b PRCM_HIB_GPIO24
+//! -\b PRCM_HIB_GPIO26
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMHibernateWakeupSourceEnable(unsigned long ulHIBWakupSrc)
+{
+ unsigned long ulRegValue;
+
+ //
+ // Read the RTC register
+ //
+ ulRegValue = PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_EN);
+
+ //
+ // Enable the RTC as wakeup source if specified
+ //
+ ulRegValue |= (ulHIBWakupSrc & 0x1);
+
+ //
+ // Enable HIB wakeup sources
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_EN,ulRegValue);
+
+ //
+ // REad the GPIO wakeup configuration register
+ //
+ ulRegValue = PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_GPIO_WAKE_EN);
+
+ //
+ // Enable the specified GPIOs a wakeup sources
+ //
+ ulRegValue |= ((ulHIBWakupSrc>>16)&0xFF);
+
+ //
+ // Write the new register configuration
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_GPIO_WAKE_EN,ulRegValue);
+}
+
+//*****************************************************************************
+//
+//! Disable individual HIB wakeup source(s).
+//!
+//! \param ulHIBWakupSrc is logical OR of valid HIB wakeup sources.
+//!
+//! This function disable individual HIB wakeup source(s). The paramter
+//! \e ulHIBWakupSrc is same as bit fileds defined in
+//! PRCMEnableHibernateWakeupSource()
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMHibernateWakeupSourceDisable(unsigned long ulHIBWakupSrc)
+{
+ unsigned long ulRegValue;
+
+ //
+ // Read the RTC register
+ //
+ ulRegValue = PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_EN);
+
+ //
+ // Disable the RTC as wakeup source if specified
+ //
+ ulRegValue &= ~(ulHIBWakupSrc & 0x1);
+
+ //
+ // Disable HIB wakeup sources
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_EN,ulRegValue);
+
+ //
+ // Read the GPIO wakeup configuration register
+ //
+ ulRegValue = PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_GPIO_WAKE_EN);
+
+ //
+ // Enable the specified GPIOs a wakeup sources
+ //
+ ulRegValue &= ~((ulHIBWakupSrc>>16)&0xFF);
+
+ //
+ // Write the new register configuration
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_GPIO_WAKE_EN,ulRegValue);
+}
+
+
+//*****************************************************************************
+//
+//! Get hibernate wakeup cause
+//!
+//! This function gets the hibernate wakeup cause.
+//!
+//! \return Returns \b PRCM_HIB_WAKEUP_CAUSE_SLOW_CLOCK or
+//! \b PRCM_HIB_WAKEUP_CAUSE_GPIO
+//
+//*****************************************************************************
+unsigned long
+PRCMHibernateWakeupCauseGet()
+{
+ //
+ // Supported only in ES2.00 and Later devices i.e. ROM Version 2.x.x or greater
+ //
+ if( (HWREG(0x00000400) & 0xFFFF) >= 2 )
+ {
+ return ((PRCMHIBRegRead((OCP_SHARED_BASE + OCP_SHARED_O_SPARE_REG_8))>>2)&0x7);
+ }
+ else
+ {
+ return(0);
+ }
+}
+
+//*****************************************************************************
+//
+//! Sets Hibernate wakeup Timer
+//!
+//! \param ullTicks is number of 32.768 KHz clocks
+//!
+//! This function sets internal hibernate wakeup timer running at 32.768 KHz.
+//!
+//! \return Returns \b true on success, \b false otherwise.
+//
+//*****************************************************************************
+void
+PRCMHibernateIntervalSet(unsigned long long ullTicks)
+{
+ unsigned long long ullRTCVal;
+
+ //
+ // Latch the RTC vlaue
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_TIMER_READ ,0x1);
+
+ //
+ // Read latched values as 2 32-bit vlaues
+ //
+ ullRTCVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_TIMER_MSW);
+ ullRTCVal = ullRTCVal << 32;
+ ullRTCVal |= PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_TIMER_LSW);
+
+ //
+ // Add the interval
+ //
+ ullRTCVal = ullRTCVal + ullTicks;
+
+ //
+ // Set RTC match value
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_LSW_CONF,
+ (unsigned long)(ullRTCVal));
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_MSW_CONF,
+ (unsigned long)(ullRTCVal>>32));
+}
+
+
+//*****************************************************************************
+//
+//! Selects the GPIO(s) for hibernate wakeup
+//!
+//! \param ulGPIOBitMap is the bit-map of valid hibernate wakeup GPIO.
+//! \param ulType is the wakeup trigger type.
+//!
+//! This function setects the wakeup GPIO for hibernate and can be
+//! used to select any combination of 7 pre-defined GPIO(s).
+//!
+//! This function enables individual HIB wakeup source(s). The paramter
+//! \e ulGPIOBitMap should be one of the follwoing :-
+//! -\b PRCM_HIB_GPIO2
+//! -\b PRCM_HIB_GPIO4
+//! -\b PRCM_HIB_GPIO13
+//! -\b PRCM_HIB_GPIO17
+//! -\b PRCM_HIB_GPIO11
+//! -\b PRCM_HIB_GPIO24
+//! -\b PRCM_HIB_GPIO26
+//!
+//! The parameter \e ulType sets the trigger type and can be one of the
+//! following:
+//! - \b PRCM_HIB_LOW_LEVEL
+//! - \b PRCM_HIB_HIGH_LEVEL
+//! - \b PRCM_HIB_FALL_EDGE
+//! - \b PRCM_HIB_RISE_EDGE
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMHibernateWakeUpGPIOSelect(unsigned long ulGPIOBitMap, unsigned long ulType)
+{
+ unsigned char ucLoop;
+ unsigned long ulRegValue;
+
+ //
+ // Shift the bits to extract the GPIO selection
+ //
+ ulGPIOBitMap >>= 16;
+
+ //
+ // Set the configuration for each GPIO
+ //
+ for(ucLoop=0; ucLoop < 7; ucLoop++)
+ {
+ if(ulGPIOBitMap & (1<<ucLoop))
+ {
+ ulRegValue = PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_GPIO_WAKE_CONF);
+ ulRegValue = (ulRegValue & (~(0x3 << (ucLoop*2)))) | (ulType <<(ucLoop*2));
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_GPIO_WAKE_CONF, ulRegValue);
+ }
+ }
+}
+
+//*****************************************************************************
+//
+//! Puts the system into Hibernate
+//!
+//! This function puts the system into Hibernate. The device enters HIB
+//! immediately and on exit from HIB device core starts its execution from
+//! reset thus the function never returns.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void
+PRCMHibernateEnter()
+{
+
+ //
+ // Request hibernate.
+ //
+ PRCMHIBRegWrite((HIB3P3_BASE+HIB3P3_O_MEM_HIB_REQ),0x1);
+
+ //
+ // Wait for system to enter hibernate
+ //
+ __asm(" wfi\n");
+
+ //
+ // Infinite loop
+ //
+ while(1)
+ {
+
+ }
+}
+
+//*****************************************************************************
+//
+//! Gets the current value of the internal slow clock counter
+//!
+//! This function latches and reads the internal RTC running at 32.768 Khz
+//!
+//! \return 64-bit current counter vlaue.
+//
+//*****************************************************************************
+unsigned long long
+PRCMSlowClkCtrGet()
+{
+ unsigned long long ullRTCVal;
+
+ //
+ // Latch the RTC vlaue
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_TIMER_READ, 0x1);
+
+ //
+ // Read latched values as 2 32-bit vlaues
+ //
+ ullRTCVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_TIMER_MSW);
+ ullRTCVal = ullRTCVal << 32;
+ ullRTCVal |= PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_TIMER_LSW);
+
+ return ullRTCVal;
+}
+
+//*****************************************************************************
+//
+//! Gets the current value of the internal slow clock counter
+//!
+//! This function is similar to \sa PRCMSlowClkCtrGet() but reads the counter
+//! value from a relatively faster interface using an auto-latch mechainsm.
+//!
+//! \note Due to the nature of implemetation of auto latching, when using this
+//! API, the recommendation is to read the value thrice and identify the right
+//! value (as 2 out the 3 read values will always be correct and with a max. of
+//! 1 LSB change)
+//!
+//! \return 64-bit current counter vlaue.
+//
+//*****************************************************************************
+unsigned long long PRCMSlowClkCtrFastGet(void)
+{
+ unsigned long long ullRTCVal;
+
+ //
+ // Read as 2 32-bit values
+ //
+ ullRTCVal = HWREG(HIB1P2_BASE + HIB1P2_O_HIB_RTC_TIMER_MSW_1P2);
+ ullRTCVal = ullRTCVal << 32;
+ ullRTCVal |= HWREG(HIB1P2_BASE + HIB1P2_O_HIB_RTC_TIMER_LSW_1P2);
+
+ return ullRTCVal;
+
+}
+
+//*****************************************************************************
+//
+//! Sets slow clock counter match value to interrupt the processor.
+//!
+//! \param ullValue is the match value.
+//!
+//! This function sets the match value for slow clock counter. This is use
+//! to interrupt the processor when RTC counts to the specified value.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMSlowClkCtrMatchSet(unsigned long long ullValue)
+{
+ //
+ // Set RTC match value
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_IRQ_LSW_CONF,
+ (unsigned long)(ullValue));
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_IRQ_MSW_CONF,
+ (unsigned long)(ullValue>>32));
+}
+
+//*****************************************************************************
+//
+//! Gets slow clock counter match value.
+//!
+//! This function gets the match value for slow clock counter. This is use
+//! to interrupt the processor when RTC counts to the specified value.
+//!
+//! \return None.
+//
+//*****************************************************************************
+unsigned long long PRCMSlowClkCtrMatchGet()
+{
+ unsigned long long ullValue;
+
+ //
+ // Get RTC match value
+ //
+ ullValue = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_IRQ_MSW_CONF);
+ ullValue = ullValue<<32;
+ ullValue |= PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_IRQ_LSW_CONF);
+
+ //
+ // Return the value
+ //
+ return ullValue;
+}
+
+
+//*****************************************************************************
+//
+//! Write to On-Chip Retention (OCR) register.
+//!
+//! This function writes to On-Chip retention register. The device supports two
+//! 4-byte OCR register which are retained across all power mode.
+//!
+//! The parameter \e ucIndex is an index of the OCR and can be \b 0 or \b 1.
+//!
+//! These registers are shared by the RTC implementation (if Driverlib RTC
+//! APIs are used), ROM, and user application.
+//!
+//! When RTC APIs in use:
+//!
+//! |-----------------------------------------------|
+//! | INDEX 1 |
+//! |-----------------------------------------------|
+//! |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
+//! |-----------------------------------------------|
+//! | Reserved by RTC APIs - YY |
+//! |-----------------------------------------------|
+//! |15|14|13|12|11|10|09|08|07|06|05|04|03|02|01|00|
+//! |-----------------------------------------------|
+//! | Reserved by RTC APIs - YY |
+//! |-----------------------------------------------|
+//!
+//!
+//! |-----------------------------------------------|
+//! | INDEX 0 |
+//! |-----------------------------------------------|
+//! |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
+//! |-----------------------------------------------|
+//! | Reserved by RTC APIs - YY |
+//! |-----------------------------------------------|
+//! |15|14|13|12|11|10|09|08|07|06|05|04|03|02|01|00|
+//! |-----------------------------------------------|
+//! |YY| For User Application |XX|
+//! |-----------------------------------------------|
+//!
+//! YY => Reserved by RTC APIs. If Driverlib RTC APIs are used
+//! XX => Reserved by ROM
+//!
+//!
+//! When RTC APIs are not in use:
+//!
+//! |-----------------------------------------------|
+//! | INDEX 1 |
+//! |-----------------------------------------------|
+//! |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
+//! |-----------------------------------------------|
+//! | For User Application |
+//! |-----------------------------------------------|
+//! |15|14|13|12|11|10|09|08|07|06|05|04|03|02|01|00|
+//! |-----------------------------------------------|
+//! | For User Application |
+//! |-----------------------------------------------|
+//!
+//!
+//! |-----------------------------------------------|
+//! | INDEX 0 |
+//! |-----------------------------------------------|
+//! |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
+//! |-----------------------------------------------|
+//! | For User Application |
+//! |-----------------------------------------------|
+//! |15|14|13|12|11|10|09|08|07|06|05|04|03|02|01|00|
+//! |-----------------------------------------------|
+//! | For User Application |XX|
+//! |-----------------------------------------------|
+//!
+//! XX => Reserved by ROM
+//!
+//!
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMOCRRegisterWrite(unsigned char ucIndex, unsigned long ulRegValue)
+{
+ unsigned long ulVal;
+
+ //
+ // Compuitr the offset
+ //
+ ucIndex = ucIndex << 2;
+
+ //
+ // If bit 0 is reserved
+ //
+ if( (HWREG(OCP_SHARED_BASE + OCP_SHARED_O_SPARE_REG_8) & (0x00000080)) &&
+ (ucIndex == 0) )
+ {
+ ulVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG2 + ucIndex);
+ ulRegValue = ((ulRegValue << 0x1) | (ulVal & (0x1)));
+ }
+
+ //
+ // Write thr value
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG2 + ucIndex,ulRegValue);
+
+}
+
+//*****************************************************************************
+//
+//! Read from On-Chip Retention (OCR) register.
+//!
+//! This function reads from On-Chip retention register. The device supports two
+//! 4-byte OCR register which are retained across all power mode.
+//!
+//! The parameter \e ucIndex is an index of the OCR and can be \b 0 or \b 1.
+//!
+//! \sa PRCMOCRRegisterWrite() for the register usage details.
+//!
+//! \return None.
+//
+//*****************************************************************************
+unsigned long PRCMOCRRegisterRead(unsigned char ucIndex)
+{
+ unsigned long ulRet;
+
+ //
+ // Read the OCR register
+ //
+ ulRet = PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_HIB_REG2 + (ucIndex << 2));
+
+ //
+ // If bit 0 is reserved
+ //
+ if( (HWREG(OCP_SHARED_BASE + OCP_SHARED_O_SPARE_REG_8) & (0x00000080)) &&
+ (ucIndex == 0) )
+ {
+ ulRet = ulRet >> 0x1;
+ }
+
+ //
+ // Return the read value.
+ //
+ return ulRet;
+}
+
+//*****************************************************************************
+//
+//! Registers an interrupt handler for the PRCM.
+//!
+//! \param pfnHandler is a pointer to the function to be called when the
+//! interrupt is activated.
+//!
+//! This function does the actual registering of the interrupt handler. This
+//! function enables the global interrupt in the interrupt controller;
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMIntRegister(void (*pfnHandler)(void))
+{
+ //
+ // Register the interrupt handler.
+ //
+ IntRegister(INT_PRCM, pfnHandler);
+
+ //
+ // Enable the PRCM interrupt.
+ //
+ IntEnable(INT_PRCM);
+}
+
+//*****************************************************************************
+//
+//! Unregisters an interrupt handler for the PRCM.
+//!
+//! This function does the actual unregistering of the interrupt handler. It
+//! clears the handler to be called when a PRCM interrupt occurs. This
+//! function also masks off the interrupt in the interrupt controller so that
+//! the interrupt handler no longer is called.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMIntUnregister()
+{
+ //
+ // Enable the UART interrupt.
+ //
+ IntDisable(INT_PRCM);
+
+ //
+ // Register the interrupt handler.
+ //
+ IntUnregister(INT_PRCM);
+}
+
+//*****************************************************************************
+//
+//! Enables individual PRCM interrupt sources.
+//!
+//! \param ulIntFlags is the bit mask of the interrupt sources to be enabled.
+//!
+//! This function enables the indicated ARCM interrupt sources. Only the
+//! sources that are enabled can be reflected to the processor interrupt;
+//! disabled sources have no effect on the processor.
+//!
+//! The \e ulIntFlags parameter is the logical OR of any of the following:
+//! -\b PRCM_INT_SLOW_CLK_CTR
+//!
+//
+//*****************************************************************************
+void PRCMIntEnable(unsigned long ulIntFlags)
+{
+ unsigned long ulRegValue;
+
+ if(ulIntFlags & PRCM_INT_SLOW_CLK_CTR )
+ {
+ //
+ // Enable PRCM interrupt
+ //
+ HWREG(ARCM_BASE + APPS_RCM_O_APPS_RCM_INTERRUPT_ENABLE) |= 0x4;
+
+ //
+ // Enable RTC interrupt
+ //
+ ulRegValue = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_IRQ_ENABLE);
+ ulRegValue |= 0x1;
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_IRQ_ENABLE, ulRegValue);
+ }
+}
+
+//*****************************************************************************
+//
+//! Disables individual PRCM interrupt sources.
+//!
+//! \param ulIntFlags is the bit mask of the interrupt sources to be disabled.
+//!
+//! This function disables the indicated ARCM interrupt sources. Only the
+//! sources that are enabled can be reflected to the processor interrupt;
+//! disabled sources have no effect on the processor.
+//!
+//! The \e ulIntFlags parameter has the same definition as the \e ulIntFlags
+//! parameter to PRCMEnableInterrupt().
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMIntDisable(unsigned long ulIntFlags)
+{
+ unsigned long ulRegValue;
+
+ if(ulIntFlags & PRCM_INT_SLOW_CLK_CTR )
+ {
+ //
+ // Disable PRCM interrupt
+ //
+ HWREG(ARCM_BASE + APPS_RCM_O_APPS_RCM_INTERRUPT_ENABLE) &= ~0x4;
+
+ //
+ // Disable RTC interrupt
+ //
+ ulRegValue = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_IRQ_ENABLE);
+ ulRegValue &= ~0x1;
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_IRQ_ENABLE, ulRegValue);
+ }
+}
+
+//*****************************************************************************
+//
+//! Gets the current interrupt status.
+//!
+//! This function returns the PRCM interrupt status of interrupts that are
+//! allowed to reflect to the processor. The interrupts are cleared on read.
+//!
+//! \return Returns the current interrupt status.
+//
+//*****************************************************************************
+unsigned long PRCMIntStatus()
+{
+ return HWREG(ARCM_BASE + APPS_RCM_O_APPS_RCM_INTERRUPT_STATUS);
+}
+
+//*****************************************************************************
+//
+//! Mark the function of RTC as being used
+//!
+//! This function marks in HW that feature to maintain calendar time in device
+//! is being used.
+//!
+//! Specifically, this feature reserves user's HIB Register-1 accessed through
+//! PRCMOCRRegisterWrite(1) for internal work / purpose, therefore, the stated
+//! register is not available to user. Also, users must not excercise the Slow
+//! Clock Counter API(s), if RTC has been set for use.
+//!
+//! The RTC feature, if set or marked, can be only reset either through reboot
+//! or power cycle.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMRTCInUseSet()
+{
+ RTC_USE_SET();
+ return;
+}
+
+//*****************************************************************************
+//
+//! Ascertain whether function of RTC is being used
+//!
+//! This function indicates whether function of RTC is being used on the device
+//! or not.
+//!
+//! This routine should be utilized by the application software, when returning
+//! from low-power, to confirm that RTC has been put to use and may not need to
+//! set the value of the RTC.
+//!
+//! The RTC feature, if set or marked, can be only reset either through reboot
+//! or power cycle.
+//!
+//! \return None.
+//
+//*****************************************************************************
+tBoolean PRCMRTCInUseGet()
+{
+ return IS_RTC_USED()? true : false;
+}
+
+//*****************************************************************************
+//
+//! Set the calendar time in the device.
+//!
+//! \param ulSecs refers to the seconds part of the calendar time
+//! \param usMsec refers to the fractional (ms) part of the second
+//!
+//! This function sets the specified calendar time in the device. The calendar
+//! time is outlined in terms of seconds and milliseconds. However, the device
+//! makes no assumption about the origin or reference of the calendar time.
+//!
+//! The device uses the indicated calendar value to update and maintain the
+//! wall-clock time across active and low power states.
+//!
+//! The function PRCMRTCInUseSet() must be invoked prior to use of this feature.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMRTCSet(unsigned long ulSecs, unsigned short usMsec)
+{
+ unsigned long long ullMsec = 0;
+
+ if(IS_RTC_USED()) {
+ ullMsec = RTC_U64MSEC_MK(ulSecs, usMsec) - SCC_U64MSEC_GET();
+
+ RTC_U32SECS_REG_WR(RTC_SECS_IN_U64MSEC(ullMsec));
+ RTC_U16MSEC_REG_WR(RTC_MSEC_IN_U64MSEC(ullMsec));
+ }
+
+ return;
+}
+
+//*****************************************************************************
+//
+//! Get the instantaneous calendar time from the device.
+//!
+//! \param ulSecs refers to the seconds part of the calendar time
+//! \param usMsec refers to the fractional (ms) part of the second
+//!
+//! This function fetches the instantaneous value of the ticking calendar time
+//! from the device. The calendar time is outlined in terms of seconds and
+//! milliseconds.
+//!
+//! The device provides the calendar value that has been maintained across
+//! active and low power states.
+//!
+//! The function PRCMRTCSet() must have been invoked once to set a reference.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMRTCGet(unsigned long *ulSecs, unsigned short *usMsec)
+{
+ unsigned long long ullMsec = 0;
+
+ if(IS_RTC_USED()) {
+ ullMsec = RTC_U64MSEC_MK(RTC_U32SECS_REG_RD(),
+ RTC_U16MSEC_REG_RD());
+ ullMsec += SCC_U64MSEC_GET();
+ }
+
+ *ulSecs = RTC_SECS_IN_U64MSEC(ullMsec);
+ *usMsec = RTC_MSEC_IN_U64MSEC(ullMsec);
+
+ return;
+}
+
+//*****************************************************************************
+//
+//! Set a calendar time alarm.
+//!
+//! \param ulSecs refers to the seconds part of the calendar time
+//! \param usMsec refers to the fractional (ms) part of the second
+//!
+//! This function sets an wall-clock alarm in the device to be reported for a
+//! futuristic calendar time. The calendar time is outlined in terms of seconds
+//! and milliseconds.
+//!
+//! The device provides uses the calendar value that has been maintained across
+//! active and low power states to report attainment of alarm time.
+//!
+//! The function PRCMRTCSet() must have been invoked once to set a reference.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMRTCMatchSet(unsigned long ulSecs, unsigned short usMsec)
+{
+ unsigned long long ullMsec = 0;
+
+ if(IS_RTC_USED()) {
+ ullMsec = RTC_U64MSEC_MK(ulSecs, usMsec);
+ ullMsec -= RTC_U64MSEC_MK(RTC_U32SECS_REG_RD(),
+ RTC_U16MSEC_REG_RD());
+ SCC_U64MSEC_MATCH_SET(SELECT_SCC_U42BITS(ullMsec));
+ }
+
+ return;
+}
+
+//*****************************************************************************
+//
+//! Get a previously set calendar time alarm.
+//!
+//! \param ulSecs refers to the seconds part of the calendar time
+//! \param usMsec refers to the fractional (ms) part of the second
+//!
+//! This function fetches from the device a wall-clock alarm that would have
+//! been previously set in the device. The calendar time is outlined in terms
+//! of seconds and milliseconds.
+//!
+//! If no alarm was set in the past, then this function would fetch a random
+//! information.
+//!
+//! The function PRCMRTCMatchSet() must have been invoked once to set an alarm.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMRTCMatchGet(unsigned long *ulSecs, unsigned short *usMsec)
+{
+ unsigned long long ullMsec = 0;
+
+ if(IS_RTC_USED()) {
+ ullMsec = SCC_U64MSEC_MATCH_GET();
+ ullMsec += RTC_U64MSEC_MK(RTC_U32SECS_REG_RD(),
+ RTC_U16MSEC_REG_RD());
+ }
+
+ *ulSecs = RTC_SECS_IN_U64MSEC(ullMsec);
+ *usMsec = RTC_MSEC_IN_U64MSEC(ullMsec);
+
+ return;
+}
+
+//*****************************************************************************
+//
+//! MCU Initialization Routine
+//!
+//! This function contains all the mandatory bug fixes, ECO enables,
+//! initializations for both CC3200 and CC3220.
+//!
+//! \note \b ###IMPORTANT### : This is a routine which should be one of the
+//! first things to be executed after control comes to MCU Application code.
+//!
+//! \return None
+//
+//*****************************************************************************
+void PRCMCC3200MCUInit()
+{
+
+ if( PRCMSysResetCauseGet() != PRCM_LPDS_EXIT )
+ {
+ if( 0x00010001 == HWREG(0x00000400) )
+ {
+
+#ifndef REMOVE_CC3200_ES_1_2_1_CODE
+
+ unsigned long ulRegVal;
+
+ //
+ // DIG DCDC NFET SEL and COT mode disable
+ //
+ HWREG(0x4402F010) = 0x30031820;
+ HWREG(0x4402F00C) = 0x04000000;
+
+ UtilsDelay(32000);
+
+ //
+ // ANA DCDC clock config
+ //
+ HWREG(0x4402F11C) = 0x099;
+ HWREG(0x4402F11C) = 0x0AA;
+ HWREG(0x4402F11C) = 0x1AA;
+
+ //
+ // PA DCDC clock config
+ //
+ HWREG(0x4402F124) = 0x099;
+ HWREG(0x4402F124) = 0x0AA;
+ HWREG(0x4402F124) = 0x1AA;
+
+ //
+ // TD Flash timing configurations in case of MCU WDT reset
+ //
+ if((HWREG(0x4402D00C) & 0xFF) == 0x00000005)
+ {
+ HWREG(0x400F707C) |= 0x01840082;
+ HWREG(0x400F70C4)= 0x1;
+ HWREG(0x400F70C4)= 0x0;
+ }
+
+ //
+ // Take I2C semaphore
+ //
+ ulRegVal = HWREG(0x400F7000);
+ ulRegVal = (ulRegVal & ~0x3) | 0x1;
+ HWREG(0x400F7000) = ulRegVal;
+
+ //
+ // Take GPIO semaphore
+ //
+ ulRegVal = HWREG(0x400F703C);
+ ulRegVal = (ulRegVal & ~0x3FF) | 0x155;
+ HWREG(0x400F703C) = ulRegVal;
+
+ //
+ // Enable 32KHz internal RC oscillator
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_INT_OSC_CONF, 0x00000101);
+
+ //
+ // Delay for a little bit.
+ //
+ UtilsDelay(8000);
+
+ //
+ // Enable 16MHz clock
+ //
+ HWREG(HIB1P2_BASE+HIB1P2_O_CM_OSC_16M_CONFIG) = 0x00010008;
+
+ //
+ // Delay for a little bit.
+ //
+ UtilsDelay(8000);
+
+#endif // REMOVE_CC3200_ES_1_2_1_CODE
+
+ }
+ else
+ {
+
+ unsigned long ulRegValue;
+
+ //
+ // DIG DCDC LPDS ECO Enable
+ //
+ HWREG(0x4402F064) |= 0x800000;
+
+ //
+ // Enable hibernate ECO for PG 1.32 devices only. With this ECO enabled,
+ // any hibernate wakeup source will be kept maked until the device enters
+ // hibernate completely (analog + digital)
+ //
+ ulRegValue = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG0);
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG0, ulRegValue | (1<<4));
+
+ //
+ // Handling the clock switching (for 1.32 only)
+ //
+ HWREG(0x4402E16C) |= 0x3C;
+ }
+
+
+ //
+ // Enable uDMA
+ //
+ PRCMPeripheralClkEnable(PRCM_UDMA,PRCM_RUN_MODE_CLK);
+
+ //
+ // Reset uDMA
+ //
+ PRCMPeripheralReset(PRCM_UDMA);
+
+ //
+ // Disable uDMA
+ //
+ PRCMPeripheralClkDisable(PRCM_UDMA,PRCM_RUN_MODE_CLK);
+
+ //
+ // Enable RTC
+ //
+ if(PRCMSysResetCauseGet()== PRCM_POWER_ON)
+ {
+ PRCMHIBRegWrite(0x4402F804,0x1);
+ }
+
+ //
+ // SWD mode
+ //
+ if(((HWREG(0x4402F0C8) & 0xFF) == 0x2))
+ {
+ HWREG(0x4402E110) = ((HWREG(0x4402E110) & ~0xC0F) | 0x2);
+ HWREG(0x4402E114) = ((HWREG(0x4402E110) & ~0xC0F) | 0x2);
+ }
+
+ //
+ // Override JTAG mux
+ //
+ HWREG(0x4402E184) |= 0x2;
+
+ //
+ // Change UART pins(55,57) mode to PIN_MODE_0 if they are in PIN_MODE_1
+ //
+ if( (HWREG(0x4402E0A4) & 0xF) == 0x1)
+ {
+ HWREG(0x4402E0A4) = ((HWREG(0x4402E0A4) & ~0xF));
+ }
+
+ if( (HWREG(0x4402E0A8) & 0xF) == 0x1)
+ {
+ HWREG(0x4402E0A8) = ((HWREG(0x4402E0A8) & ~0xF));
+ }
+
+ //
+ // DIG DCDC VOUT trim settings based on PROCESS INDICATOR
+ //
+ if(((HWREG(0x4402DC78) >> 22) & 0xF) == 0xE)
+ {
+ HWREG(0x4402F0B0) = ((HWREG(0x4402F0B0) & ~(0x00FC0000))|(0x32 << 18));
+ }
+ else
+ {
+ HWREG(0x4402F0B0) = ((HWREG(0x4402F0B0) & ~(0x00FC0000))|(0x29 << 18));
+ }
+
+ //
+ // Enable SOFT RESTART in case of DIG DCDC collapse
+ //
+ HWREG(0x4402FC74) &= ~(0x10000000);
+
+ //
+ // Required only if ROM version is lower than 2.x.x
+ //
+ if( (HWREG(0x00000400) & 0xFFFF) < 2 )
+ {
+ //
+ // Disable the sleep for ANA DCDC
+ //
+ HWREG(0x4402F0A8) |= 0x00000004 ;
+ }
+ else if( (HWREG(0x00000400) >> 16) >= 1 )
+ {
+ //
+ // Enable NWP force reset and HIB on WDT reset
+ // Enable direct boot path for flash
+ //
+ HWREG(OCP_SHARED_BASE + OCP_SHARED_O_SPARE_REG_8) |= ((7<<5) | 0x1);
+ if((HWREG(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG2) & 0x1) )
+ {
+ HWREG(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG2) &= ~0x1;
+ HWREG(OCP_SHARED_BASE + OCP_SHARED_O_SPARE_REG_8) |= (1<<9);
+
+ //
+ // Clear the RTC hib wake up source
+ //
+ HWREG(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_EN) &= ~0x1;
+
+ //
+ // Reset RTC match value
+ //
+ HWREG(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_WAKE_LSW_CONF) = 0;
+ HWREG(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_WAKE_MSW_CONF) = 0;
+
+ }
+ }
+
+ unsigned long efuse_reg2;
+ unsigned long ulDevMajorVer, ulDevMinorVer;
+ //
+ // Read the device identification register
+ //
+ efuse_reg2= HWREG(GPRCM_BASE + GPRCM_O_GPRCM_EFUSE_READ_REG2);
+
+ //
+ // Read the ROM mojor and minor version
+ //
+ ulDevMajorVer = ((efuse_reg2 >> 28) & 0xF);
+ ulDevMinorVer = ((efuse_reg2 >> 24) & 0xF);
+
+ if(((ulDevMajorVer == 0x3) && (ulDevMinorVer == 0)) || (ulDevMajorVer < 0x3))
+ {
+ unsigned int Scratch, PreRegulatedMode;
+
+ // 0x4402F840 => 6th bit “1” indicates device is in pre-regulated mode.
+ PreRegulatedMode = (HWREG(0x4402F840) >> 6) & 1;
+
+ if( PreRegulatedMode)
+ {
+ Scratch = HWREG(0x4402F028);
+ Scratch &= 0xFFFFFF7F; // <7:7> = 0
+ HWREG(0x4402F028) = Scratch;
+
+ Scratch = HWREG(0x4402F010);
+ Scratch &= 0x0FFFFFFF; // <31:28> = 0
+ Scratch |= 0x10000000; // <31:28> = 1
+ HWREG(0x4402F010) = Scratch;
+ }
+ else
+ {
+ Scratch = HWREG(0x4402F024);
+
+ Scratch &= 0xFFFFFFF0; // <3:0> = 0
+ Scratch |= 0x00000001; // <3:0> = 1
+ Scratch &= 0xFFFFF0FF; // <11:8> = 0000
+ Scratch |= 0x00000500; // <11:8> = 0101
+ Scratch &= 0xFFFE7FFF; // <16:15> = 0000
+ Scratch |= 0x00010000; // <16:15> = 10
+
+ HWREG(0x4402F024) = Scratch;
+
+ Scratch = HWREG(0x4402F028);
+
+ Scratch &= 0xFFFFFF7F; // <7:7> = 0
+ Scratch &= 0x0FFFFFFF; // <31:28> = 0
+ Scratch &= 0xFF0FFFFF; // <23:20> = 0
+ Scratch |= 0x00300000; // <23:20> = 0011
+ Scratch &= 0xFFF0FFFF; // <19:16> = 0
+ Scratch |= 0x00030000; // <19:16> = 0011
+
+ HWREG(0x4402F028) = Scratch;
+ HWREG(0x4402F010) &= 0x0FFFFFFF; // <31:28> = 0
+ }
+ }
+ else
+ {
+ unsigned int Scratch, PreRegulatedMode;
+
+ // 0x4402F840 => 6th bit “1” indicates device is in pre-regulated mode.
+ PreRegulatedMode = (HWREG(0x4402F840) >> 6) & 1;
+
+ Scratch = HWREG(0x4402F028);
+ Scratch &= 0xFFFFFF7F; // <7:7> = 0
+ HWREG(0x4402F028) = Scratch;
+
+ HWREG(0x4402F010) &= 0x0FFFFFFF; // <31:28> = 0
+ if( PreRegulatedMode)
+ {
+ HWREG(0x4402F010) |= 0x10000000; // <31:28> = 1
+ }
+ }
+ }
+ else
+ {
+ unsigned long ulRegVal;
+
+ //
+ // I2C Configuration
+ //
+ ulRegVal = HWREG(COMMON_REG_BASE + COMMON_REG_O_I2C_Properties_Register);
+ ulRegVal = (ulRegVal & ~0x3) | 0x1;
+ HWREG(COMMON_REG_BASE + COMMON_REG_O_I2C_Properties_Register) = ulRegVal;
+
+ //
+ // GPIO configuration
+ //
+ ulRegVal = HWREG(COMMON_REG_BASE + COMMON_REG_O_GPIO_properties_register);
+ ulRegVal = (ulRegVal & ~0x3FF) | 0x155;
+ HWREG(COMMON_REG_BASE + COMMON_REG_O_GPIO_properties_register) = ulRegVal;
+
+ }
+}
+
+//*****************************************************************************
+//
+//! Reads 32-bit value from register at specified address
+//!
+//! \param ulRegAddr is the address of register to be read.
+//!
+//! This function reads 32-bit value from the register as specified by
+//! \e ulRegAddr.
+//!
+//! \return Return the value of the register.
+//
+//*****************************************************************************
+unsigned long PRCMHIBRegRead(unsigned long ulRegAddr)
+{
+ unsigned long ulValue;
+
+ //
+ // Read the Reg value
+ //
+ ulValue = HWREG(ulRegAddr);
+
+ //
+ // Wait for 200 uSec
+ //
+ UtilsDelay((80*200)/3);
+
+ //
+ // Return the value
+ //
+ return ulValue;
+}
+
+//*****************************************************************************
+//
+//! Writes 32-bit value to register at specified address
+//!
+//! \param ulRegAddr is the address of register to be read.
+//! \param ulValue is the 32-bit value to be written.
+//!
+//! This function writes 32-bit value passed as \e ulValue to the register as
+//! specified by \e ulRegAddr
+//!
+//! \return None
+//
+//*****************************************************************************
+void PRCMHIBRegWrite(unsigned long ulRegAddr, unsigned long ulValue)
+{
+ //
+ // Read the Reg value
+ //
+ HWREG(ulRegAddr) = ulValue;
+
+ //
+ // Wait for 200 uSec
+ //
+ UtilsDelay((80*200)/3);
+}
+
+//*****************************************************************************
+//
+//! \param ulDivider is clock frequency divider value
+//! \param ulWidth is the width of the high pulse
+//!
+//! This function sets the input frequency for camera module.
+//!
+//! The frequency is calculated as follows:
+//!
+//! f_out = 240MHz/ulDivider;
+//!
+//! The parameter \e ulWidth sets the width of the high pulse.
+//!
+//! For e.g.:
+//!
+//! ulDivider = 4;
+//! ulWidth = 2;
+//!
+//! f_out = 30 MHz and 50% duty cycle
+//!
+//! And,
+//!
+//! ulDivider = 4;
+//! ulWidth = 1;
+//!
+//! f_out = 30 MHz and 25% duty cycle
+//!
+//! \return 0 on success, 1 on error
+//
+//*****************************************************************************
+unsigned long PRCMCameraFreqSet(unsigned char ulDivider, unsigned char ulWidth)
+{
+ if(ulDivider > ulWidth && ulWidth != 0 )
+ {
+ //
+ // Set the hifh pulse width
+ //
+ HWREG(ARCM_BASE +
+ APPS_RCM_O_CAMERA_CLK_GEN) = (((ulWidth & 0x07) -1) << 8);
+
+ //
+ // Set the low pulse width
+ //
+ HWREG(ARCM_BASE +
+ APPS_RCM_O_CAMERA_CLK_GEN) = ((ulDivider - ulWidth - 1) & 0x07);
+ //
+ // Return success
+ //
+ return 0;
+ }
+
+ //
+ // Success;
+ //
+ return 1;
+}
+
+//*****************************************************************************
+//
+//! Enable the IO value retention
+//!
+//! \param ulIORetGrpFlags is one of the valid IO groups.
+//!
+//! This function enables the IO retention for group of pins as specified by
+//! \e ulIORetGrpFlags parameter. Enabling retention will immediately lock the
+//! digital pins, in the specified group, to their current state (0 or 1).
+//! Output pins can only be driven when retention is disabled.
+//!
+//! The parameter \e ulIORetGrpFlags can be logical OR of one or
+//! more of the following:
+//! -\b PRCM_IO_RET_GRP_0 - All the pins except sFlash and JTAG interface
+//! -\b PRCM_IO_RET_GRP_1 - sFlash interface pins 11,12,13,14
+//! -\b PRCM_IO_RET_GRP_2 - JTAG TDI and TDO interface pins 16,17
+//! -\b PRCM_IO_RET_GRP_3 - JTAG TCK and TMS interface pins 19,20
+//!
+//! \note Use case is to park the pins when entering HIB.
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMIORetentionEnable(unsigned long ulIORetGrpFlags)
+{
+ unsigned long ulRegVal;
+
+ //
+ // Supported only in ES2.00 and Later devices i.e. ROM Version 2.x.x or greater
+ //
+ if( (HWREG(0x00000400) & 0xFFFF) >= 2 )
+ {
+ //
+ // Disable IO Pad to ODI Path
+ //
+ HWREG(OCP_SHARED_BASE + OCP_SHARED_O_GPIO_PAD_CMN_CONFIG) |= 0x00001D00;
+
+ //
+ // 0b'0 in bit 5 for JTAG PADS
+ // 0b'0 in bit 0 for all other IOs
+ //
+ HWREG(OCP_SHARED_BASE + OCP_SHARED_O_GPIO_PAD_CMN_CONFIG) &= ~(0x00000023);
+
+ //
+ // Enable retention for GRP0
+ //
+ if( ulIORetGrpFlags & PRCM_IO_RET_GRP_0 )
+ {
+ ulRegVal = PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_PAD_OEN_RET33_CONF);
+ ulRegVal |= 0x5;
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_PAD_OEN_RET33_CONF,ulRegVal);
+ }
+
+ //
+ // Enable retention for GRP1
+ //
+ if( ulIORetGrpFlags & PRCM_IO_RET_GRP_1 )
+ {
+ ulRegVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG0);
+ ulRegVal |= ((0x3<<5));
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG0,ulRegVal);
+ }
+
+ //
+ // Enable retention for GRP2
+ //
+ if( ulIORetGrpFlags & PRCM_IO_RET_GRP_2 )
+ {
+ ulRegVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_JTAG_CONF);
+ ulRegVal |= 0x00000101;
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_JTAG_CONF,ulRegVal);
+ }
+
+ //
+ // Enable retention for GRP3
+ //
+ if( ulIORetGrpFlags & PRCM_IO_RET_GRP_3 )
+ {
+ ulRegVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_JTAG_CONF);
+ ulRegVal |= 0x00000204;
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_JTAG_CONF,ulRegVal);
+ }
+ }
+}
+
+//*****************************************************************************
+//
+//! Disable the IO value retention
+//!
+//! \param ulIORetGrpFlags is one of the valid IO groups.
+//!
+//! This function disable the IO retention for group of pins as specified by
+//! \e ulIORetGrpFlags parameter. Disabling retention will unlock the
+//! digital pins in the specified group. Output pins can only be driven when
+//! retention is disabled.
+//!
+//! The parameter \e ulIORetGrpFlags can be logical OR of one or
+//! more of the following:
+//! -\b PRCM_IO_RET_GRP_0 - All the pins except sFlash and JTAG interface
+//! -\b PRCM_IO_RET_GRP_1 - sFlash interface pins 11,12,13,14
+//! -\b PRCM_IO_RET_GRP_2 - JTAG TDI and TDO interface pins 16,17
+//! -\b PRCM_IO_RET_GRP_3 - JTAG TCK and TMS interface pins 19,20
+//!
+//! \note Use case is to un-park the pins when exiting HIB
+//!
+//! \return None.
+//
+//*****************************************************************************
+void PRCMIORetentionDisable(unsigned long ulIORetGrpFlags)
+{
+ unsigned long ulRegVal;
+
+ //
+ // Supported only in ES2.00 and Later devices i.e. ROM Version 2.x.x or greater
+ //
+ if( (HWREG(0x00000400) & 0xFFFF) >= 2 )
+ {
+
+ //
+ // Enable IO Pad to ODI Path
+ //
+ HWREG(OCP_SHARED_BASE + OCP_SHARED_O_GPIO_PAD_CMN_CONFIG) &= ~(0x00001D00);
+
+ //
+ // 0b'1 in bit 5 for JTAG PADS
+ // 0b'1 in bit 0 for all other IOs
+ //
+ HWREG(OCP_SHARED_BASE + OCP_SHARED_O_GPIO_PAD_CMN_CONFIG) |= 0x00000023;
+
+ //
+ // Disable retention for GRP0
+ //
+ if( ulIORetGrpFlags & PRCM_IO_RET_GRP_0 )
+ {
+ ulRegVal = PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_PAD_OEN_RET33_CONF);
+ ulRegVal &= ~0x5;
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_PAD_OEN_RET33_CONF,ulRegVal);
+ }
+
+ //
+ // Disable retention for GRP1
+ //
+ if( ulIORetGrpFlags & PRCM_IO_RET_GRP_1 )
+ {
+ ulRegVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG0);
+ ulRegVal &= ~((0x3<<5));
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_HIB_REG0,ulRegVal);
+ }
+
+ //
+ // Disable retention for GRP2
+ //
+ if( ulIORetGrpFlags & PRCM_IO_RET_GRP_2 )
+ {
+ ulRegVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_JTAG_CONF);
+ ulRegVal &= ~0x00000101;
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_JTAG_CONF,ulRegVal);
+
+ }
+
+ //
+ // Disable retention for GRP3
+ //
+ if( ulIORetGrpFlags & PRCM_IO_RET_GRP_3 )
+ {
+ ulRegVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_JTAG_CONF);
+ ulRegVal &= ~0x00000204;
+ PRCMHIBRegWrite(HIB3P3_BASE + HIB3P3_O_MEM_JTAG_CONF,ulRegVal);
+ }
+
+ }
+}
+
+//*****************************************************************************
+//
+//! Gets the device type
+//!
+//! This function returns bit-packed value representing the device type
+//!
+//! The returned value is logical OR of one or more of the following:-
+//!
+//! -\b PRCM_DEV_TYPE_FLAG_R - R variant
+//! -\b PRCM_DEV_TYPE_FLAG_F - F variant
+//! -\b PRCM_DEV_TYPE_FLAG_Z - Z variant
+//! -\b PRCM_DEV_TYPE_FLAG_SECURE - Device is secure
+//! -\b PRCM_DEV_TYPE_FLAG_PRE_PROD - Device is a pre-production part
+//! -\b PRCM_DEV_TYPE_FLAG_3200 - Device is CC3200
+//! -\b PRCM_DEV_TYPE_FLAG_3220 - Device is CC3220
+//! -\b PRCM_DEV_TYPE_FLAG_REV1 - Device Rev 1
+//! -\b PRCM_DEV_TYPE_FLAG_REV2 - Device Rev 2
+//!
+//! Pre-defined helper macros:-
+//!
+//! -\b PRCM_DEV_TYPE_PRE_CC3200R - Pre-Production CC3200R
+//! -\b PRCM_DEV_TYPE_PRE_CC3200F - Pre-Production CC3200F
+//! -\b PRCM_DEV_TYPE_PRE_CC3200Z - Pre-Production CC3200Z
+//! -\b PRCM_DEV_TYPE_CC3200R - Production CC3200R
+//! -\b PRCM_DEV_TYPE_PRE_CC3220R - Pre-Production CC3220R
+//! -\b PRCM_DEV_TYPE_PRE_CC3220F - Pre-Production CC3220F
+//! -\b PRCM_DEV_TYPE_PRE_CC3220Z - Pre-Production CC3220Z
+//! -\b PRCM_DEV_TYPE_CC3220R - Production CC3220R
+//! -\b PRCM_DEV_TYPE_PRE_CC3220RS - Pre-Production CC3220RS
+//! -\b PRCM_DEV_TYPE_PRE_CC3220FS - Pre-Production CC3220FS
+//! -\b PRCM_DEV_TYPE_PRE_CC3220ZS - Pre-Production CC3220ZS
+//! -\b PRCM_DEV_TYPE_CC3220RS - Production CC3220RS
+//! -\b PRCM_DEV_TYPE_CC3220FS - Production CC3220FS
+//!
+//! \return Returns, bit-packed value representing the device type,
+//! or 0 if device is unknown
+//
+//*****************************************************************************
+unsigned long PRCMDeviceTypeGet()
+{
+ unsigned long ulDevType;
+ unsigned long ulChipId;
+ unsigned long ulDevMajorVer;
+ unsigned long ulDevMinorVer;
+
+ //
+ // Read the device identification register
+ //
+ ulChipId = HWREG(GPRCM_BASE + GPRCM_O_GPRCM_EFUSE_READ_REG2);
+
+ //
+ // Read the ROM mojor and minor version
+ //
+ ulDevMajorVer = ((ulChipId >> 28) & 0xF);
+ ulDevMinorVer = ((ulChipId >> 24) & 0xF);
+
+
+ ulChipId = ((HWREG(GPRCM_BASE + GPRCM_O_GPRCM_EFUSE_READ_REG2) >> 16) & 0x1F);
+
+ //
+ // Get the device variant from the chip id
+ //
+ switch((ulChipId & 0xF))
+ {
+ //
+ // It is R variant
+ //
+ case 0x0:
+ ulDevType = PRCM_DEV_TYPE_FLAG_R;
+ break;
+
+ //
+ // It is F variant, non secure F variant is always Pre-Production
+ //
+ case 0x1:
+ ulDevType = PRCM_DEV_TYPE_FLAG_F|PRCM_DEV_TYPE_FLAG_PRE_PROD;
+ break;
+
+ //
+ // It is Z variant and is always Pre-Production
+ //
+ case 0x3:
+ ulDevType = PRCM_DEV_TYPE_FLAG_Z|PRCM_DEV_TYPE_FLAG_PRE_PROD;
+ break;
+
+ //
+ // It is Secure R
+ //
+ case 0x8:
+ ulDevType = PRCM_DEV_TYPE_FLAG_R|PRCM_DEV_TYPE_FLAG_SECURE;
+ break;
+
+ //
+ // It is Secure F
+ //
+ case 0x9:
+ ulDevType = PRCM_DEV_TYPE_FLAG_F|PRCM_DEV_TYPE_FLAG_SECURE;
+ break;
+
+ //
+ // It is secure Z variant and variant is always Pre-Production
+ //
+ case 0xB:
+ ulDevType = PRCM_DEV_TYPE_FLAG_Z|PRCM_DEV_TYPE_FLAG_SECURE|
+ PRCM_DEV_TYPE_FLAG_PRE_PROD;
+ break;
+
+ //
+ // Undefined variant
+ //
+ default:
+ ulDevType = 0x0;
+ }
+
+ if( ulDevType != 0 )
+ {
+ if( ulDevMajorVer == 0x3 )
+ {
+ ulDevType |= PRCM_DEV_TYPE_FLAG_3220;
+ }
+ else if( ulDevMajorVer == 0x2 )
+ {
+ ulDevType |= (PRCM_DEV_TYPE_FLAG_PRE_PROD|PRCM_DEV_TYPE_FLAG_3220);
+
+ if( ((ulDevType & PRCM_DEV_TYPE_FLAG_Z) != 0) )
+ {
+ if((ulDevMinorVer == 0x0))
+ {
+ ulDevType |= PRCM_DEV_TYPE_FLAG_REV1;
+ }
+ else
+ {
+ ulDevType |= PRCM_DEV_TYPE_FLAG_REV2;
+ }
+ }
+ else
+ {
+ if((ulDevMinorVer == 0x1))
+ {
+ ulDevType |= PRCM_DEV_TYPE_FLAG_REV1;
+ }
+ }
+ }
+ else
+ {
+ if( (ulDevMinorVer == 0x4))
+ {
+ if( ((ulDevType & PRCM_DEV_TYPE_FLAG_Z) != 0))
+ {
+ ulDevType |= (PRCM_DEV_TYPE_FLAG_PRE_PROD|PRCM_DEV_TYPE_FLAG_3220);
+ }
+ else
+ {
+ ulDevType |= PRCM_DEV_TYPE_FLAG_3200;
+ }
+ }
+ else
+ {
+ ulDevType |= (PRCM_DEV_TYPE_FLAG_PRE_PROD|PRCM_DEV_TYPE_FLAG_3200);
+ }
+ }
+ }
+
+
+ return ulDevType;
+}
+
+
+
+//****************************************************************************
+//
+//! Used to trigger a hibernate cycle for the device using RTC
+//!
+//! This API can be used to do a clean reboot of device.
+//!
+//! \note This routine should only be exercised after all the network processing
+//! has been stopped. To stop network processing use \b sl_stop API from
+//! simplelink library.
+//!
+//! \return None
+//
+//****************************************************************************
+void PRCMHibernateCycleTrigger()
+{
+ unsigned long ulRegValue;
+ unsigned long long ullRTCVal;
+
+ //
+ // Read the RTC register
+ //
+ ulRegValue = PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_EN);
+
+ //
+ // Enable the RTC as wakeup source if specified
+ //
+ ulRegValue |= (PRCM_HIB_SLOW_CLK_CTR & 0x1);
+
+ //
+ // Enable HIB wakeup sources
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_EN,ulRegValue);
+
+ //
+ // Latch the RTC vlaue
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_TIMER_READ ,0x1);
+
+ //
+ // Read latched values as 2 32-bit vlaues
+ //
+ ullRTCVal = PRCMHIBRegRead(HIB3P3_BASE + HIB3P3_O_MEM_HIB_RTC_TIMER_MSW);
+ ullRTCVal = ullRTCVal << 32;
+ ullRTCVal |= PRCMHIBRegRead(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_TIMER_LSW);
+
+ //
+ //Considering worst case execution times of ROM,RAM,Flash value of 160 is used
+ //
+ ullRTCVal = ullRTCVal + 160;
+
+ //
+ // Set RTC match value
+ //
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_LSW_CONF,
+ (unsigned long)(ullRTCVal));
+ PRCMHIBRegWrite(HIB3P3_BASE+HIB3P3_O_MEM_HIB_RTC_WAKE_MSW_CONF,
+ (unsigned long)(ullRTCVal>>32));
+ //
+ // Note : Any addition of code after this line would need a change in
+ // ullTicks Interval currently set to 160
+ //
+
+ //
+ // Request hibernate.
+ //
+ PRCMHIBRegWrite((HIB3P3_BASE+HIB3P3_O_MEM_HIB_REQ),0x1);
+
+ //
+ // Wait for system to enter hibernate
+ //
+ __asm(" wfi\n");
+
+ //
+ // Infinite loop
+ //
+ while(1)
+ {
+
+ }
+}
+
+
+//*****************************************************************************
+//
+// Close the Doxygen group.
+//! @}
+//
+//*****************************************************************************
diff --git a/ext/hal/ti/cc3220sdk/driverlib/prcm.h b/ext/hal/ti/cc3220sdk/driverlib/prcm.h
new file mode 100644
index 0000000..17e24ff
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/prcm.h
@@ -0,0 +1,368 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// prcm.h
+//
+// Prototypes for the PRCM control driver.
+//
+//*****************************************************************************
+
+#ifndef __PRCM_H__
+#define __PRCM_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Peripheral clock and reset control registers
+//
+//*****************************************************************************
+typedef struct _PRCM_PeripheralRegs_
+{
+
+unsigned long ulClkReg;
+unsigned long ulRstReg;
+
+}PRCM_PeriphRegs_t;
+
+//*****************************************************************************
+// Values that can be passed to PRCMPeripheralEnable() and
+// PRCMPeripheralDisable()
+//*****************************************************************************
+#define PRCM_RUN_MODE_CLK 0x00000001
+#define PRCM_SLP_MODE_CLK 0x00000100
+
+//*****************************************************************************
+// Values that can be passed to PRCMSRAMRetentionEnable() and
+// PRCMSRAMRetentionDisable() as ulSramColSel.
+//*****************************************************************************
+#define PRCM_SRAM_COL_1 0x00000001
+#define PRCM_SRAM_COL_2 0x00000002
+#define PRCM_SRAM_COL_3 0x00000004
+#define PRCM_SRAM_COL_4 0x00000008
+
+//*****************************************************************************
+// Values that can be passed to PRCMSRAMRetentionEnable() and
+// PRCMSRAMRetentionDisable() as ulModeFlags.
+//*****************************************************************************
+#define PRCM_SRAM_LPDS_RET 0x00000002
+
+//*****************************************************************************
+// Values that can be passed to PRCMLPDSWakeupSourceEnable(),
+// PRCMLPDSWakeupCauseGet() and PRCMLPDSWakeupSourceDisable().
+//*****************************************************************************
+#define PRCM_LPDS_HOST_IRQ 0x00000080
+#define PRCM_LPDS_GPIO 0x00000010
+#define PRCM_LPDS_TIMER 0x00000001
+
+//*****************************************************************************
+// Values that can be passed to PRCMLPDSWakeUpGPIOSelect() as Type
+//*****************************************************************************
+#define PRCM_LPDS_LOW_LEVEL 0x00000002
+#define PRCM_LPDS_HIGH_LEVEL 0x00000000
+#define PRCM_LPDS_FALL_EDGE 0x00000001
+#define PRCM_LPDS_RISE_EDGE 0x00000003
+
+//*****************************************************************************
+// Values that can be passed to PRCMLPDSWakeUpGPIOSelect()
+//*****************************************************************************
+#define PRCM_LPDS_GPIO2 0x00000000
+#define PRCM_LPDS_GPIO4 0x00000001
+#define PRCM_LPDS_GPIO13 0x00000002
+#define PRCM_LPDS_GPIO17 0x00000003
+#define PRCM_LPDS_GPIO11 0x00000004
+#define PRCM_LPDS_GPIO24 0x00000005
+#define PRCM_LPDS_GPIO26 0x00000006
+
+//*****************************************************************************
+// Values that can be passed to PRCMHibernateWakeupSourceEnable(),
+// PRCMHibernateWakeupSourceDisable().
+//*****************************************************************************
+#define PRCM_HIB_SLOW_CLK_CTR 0x00000001
+
+//*****************************************************************************
+// Values that can be passed to PRCMHibernateWakeUpGPIOSelect() as ulType
+//*****************************************************************************
+#define PRCM_HIB_LOW_LEVEL 0x00000000
+#define PRCM_HIB_HIGH_LEVEL 0x00000001
+#define PRCM_HIB_FALL_EDGE 0x00000002
+#define PRCM_HIB_RISE_EDGE 0x00000003
+
+//*****************************************************************************
+// Values that can be passed to PRCMHibernateWakeupSourceEnable(),
+// PRCMHibernateWakeupSourceDisable(), PRCMHibernateWakeUpGPIOSelect()
+//*****************************************************************************
+#define PRCM_HIB_GPIO2 0x00010000
+#define PRCM_HIB_GPIO4 0x00020000
+#define PRCM_HIB_GPIO13 0x00040000
+#define PRCM_HIB_GPIO17 0x00080000
+#define PRCM_HIB_GPIO11 0x00100000
+#define PRCM_HIB_GPIO24 0x00200000
+#define PRCM_HIB_GPIO26 0x00400000
+
+//*****************************************************************************
+// Values that will be returned from PRCMSysResetCauseGet().
+//*****************************************************************************
+#define PRCM_POWER_ON 0x00000000
+#define PRCM_LPDS_EXIT 0x00000001
+#define PRCM_CORE_RESET 0x00000003
+#define PRCM_MCU_RESET 0x00000004
+#define PRCM_WDT_RESET 0x00000005
+#define PRCM_SOC_RESET 0x00000006
+#define PRCM_HIB_EXIT 0x00000007
+
+//*****************************************************************************
+// Values that can be passed to PRCMHibernateWakeupCauseGet().
+//*****************************************************************************
+#define PRCM_HIB_WAKEUP_CAUSE_SLOW_CLOCK 0x00000002
+#define PRCM_HIB_WAKEUP_CAUSE_GPIO 0x00000004
+
+//*****************************************************************************
+// Values that can be passed to PRCMSEnableInterrupt
+//*****************************************************************************
+#define PRCM_INT_SLOW_CLK_CTR 0x00004000
+
+//*****************************************************************************
+// Values that can be passed to PRCMPeripheralClkEnable(),
+// PRCMPeripheralClkDisable(), PRCMPeripheralReset()
+//*****************************************************************************
+#define PRCM_CAMERA 0x00000000
+#define PRCM_I2S 0x00000001
+#define PRCM_SDHOST 0x00000002
+#define PRCM_GSPI 0x00000003
+#define PRCM_LSPI 0x00000004
+#define PRCM_UDMA 0x00000005
+#define PRCM_GPIOA0 0x00000006
+#define PRCM_GPIOA1 0x00000007
+#define PRCM_GPIOA2 0x00000008
+#define PRCM_GPIOA3 0x00000009
+#define PRCM_GPIOA4 0x0000000A
+#define PRCM_WDT 0x0000000B
+#define PRCM_UARTA0 0x0000000C
+#define PRCM_UARTA1 0x0000000D
+#define PRCM_TIMERA0 0x0000000E
+#define PRCM_TIMERA1 0x0000000F
+#define PRCM_TIMERA2 0x00000010
+#define PRCM_TIMERA3 0x00000011
+#define PRCM_DTHE 0x00000012
+#define PRCM_SSPI 0x00000013
+#define PRCM_I2CA0 0x00000014
+// Note : PRCM_ADC is a dummy define for pinmux utility code generation
+// PRCM_ADC should never be used in any user code.
+#define PRCM_ADC 0x000000FF
+
+
+//*****************************************************************************
+// Values that can be passed to PRCMIORetEnable() and PRCMIORetDisable()
+//*****************************************************************************
+#define PRCM_IO_RET_GRP_0 0x00000001
+#define PRCM_IO_RET_GRP_1 0x00000002
+#define PRCM_IO_RET_GRP_2 0x00000004
+#define PRCM_IO_RET_GRP_3 0x00000008
+
+//*****************************************************************************
+// Macros definig the device type
+//*****************************************************************************
+#define PRCM_DEV_TYPE_FLAG_R 0x00000001
+#define PRCM_DEV_TYPE_FLAG_F 0x00000002
+#define PRCM_DEV_TYPE_FLAG_Z 0x00000004
+#define PRCM_DEV_TYPE_FLAG_SECURE 0x00000008
+#define PRCM_DEV_TYPE_FLAG_PRE_PROD 0x00000010
+#define PRCM_DEV_TYPE_FLAG_3200 0x00000020
+#define PRCM_DEV_TYPE_FLAG_3220 0x00000040
+#define PRCM_DEV_TYPE_FLAG_REV1 0x00010000
+#define PRCM_DEV_TYPE_FLAG_REV2 0x00020000
+
+//*****************************************************************************
+// Pre-defined helper macros
+//*****************************************************************************
+#define PRCM_DEV_TYPE_PRE_CC3200R (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3200| \
+ PRCM_DEV_TYPE_FLAG_R)
+
+#define PRCM_DEV_TYPE_PRE_CC3200F (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3200| \
+ PRCM_DEV_TYPE_FLAG_F)
+
+#define PRCM_DEV_TYPE_PRE_CC3200Z (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3200| \
+ PRCM_DEV_TYPE_FLAG_Z)
+
+#define PRCM_DEV_TYPE_CC3200R (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3200| \
+ PRCM_DEV_TYPE_FLAG_R)
+
+#define PRCM_DEV_TYPE_PRE_CC3220R (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_R)
+
+#define PRCM_DEV_TYPE_PRE_CC3220F (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_F)
+
+#define PRCM_DEV_TYPE_PRE_CC3220Z (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_Z)
+
+#define PRCM_DEV_TYPE_CC3220R (PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_R)
+
+
+#define PRCM_DEV_TYPE_PRE_CC3220RS (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_R| \
+ PRCM_DEV_TYPE_FLAG_SECURE)
+
+#define PRCM_DEV_TYPE_PRE_CC3220FS (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_F| \
+ PRCM_DEV_TYPE_FLAG_SECURE)
+
+#define PRCM_DEV_TYPE_PRE_CC3220ZS (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_Z| \
+ PRCM_DEV_TYPE_FLAG_SECURE)
+
+#define PRCM_DEV_TYPE_CC3220RS (PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_R| \
+ PRCM_DEV_TYPE_FLAG_SECURE)
+
+#define PRCM_DEV_TYPE_CC3220FS (PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_F| \
+ PRCM_DEV_TYPE_FLAG_SECURE)
+
+
+#define PRCM_DEV_TYPE_PRE_CC3220Z1 (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_Z| \
+ PRCM_DEV_TYPE_FLAG_REV1)
+
+#define PRCM_DEV_TYPE_PRE_CC3220Z2 (PRCM_DEV_TYPE_FLAG_PRE_PROD| \
+ PRCM_DEV_TYPE_FLAG_3220| \
+ PRCM_DEV_TYPE_FLAG_Z| \
+ PRCM_DEV_TYPE_FLAG_REV2)
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void PRCMMCUReset(tBoolean bIncludeSubsystem);
+extern unsigned long PRCMSysResetCauseGet(void);
+
+extern void PRCMPeripheralClkEnable(unsigned long ulPeripheral,
+ unsigned long ulClkFlags);
+extern void PRCMPeripheralClkDisable(unsigned long ulPeripheral,
+ unsigned long ulClkFlags);
+extern void PRCMPeripheralReset(unsigned long ulPeripheral);
+extern tBoolean PRCMPeripheralStatusGet(unsigned long ulPeripheral);
+
+extern void PRCMI2SClockFreqSet(unsigned long ulI2CClkFreq);
+extern unsigned long PRCMPeripheralClockGet(unsigned long ulPeripheral);
+
+extern void PRCMSleepEnter(void);
+
+extern void PRCMSRAMRetentionEnable(unsigned long ulSramColSel,
+ unsigned long ulFlags);
+extern void PRCMSRAMRetentionDisable(unsigned long ulSramColSel,
+ unsigned long ulFlags);
+extern void PRCMLPDSRestoreInfoSet(unsigned long ulRestoreSP,
+ unsigned long ulRestorePC);
+extern void PRCMLPDSEnter(void);
+extern void PRCMLPDSIntervalSet(unsigned long ulTicks);
+extern void PRCMLPDSWakeupSourceEnable(unsigned long ulLpdsWakeupSrc);
+extern unsigned long PRCMLPDSWakeupCauseGet(void);
+extern void PRCMLPDSWakeUpGPIOSelect(unsigned long ulGPIOPin,
+ unsigned long ulType);
+extern void PRCMLPDSWakeupSourceDisable(unsigned long ulLpdsWakeupSrc);
+
+extern void PRCMHibernateEnter(void);
+extern void PRCMHibernateWakeupSourceEnable(unsigned long ulHIBWakupSrc);
+extern unsigned long PRCMHibernateWakeupCauseGet(void);
+extern void PRCMHibernateWakeUpGPIOSelect(unsigned long ulMultiGPIOBitMap,
+ unsigned long ulType);
+extern void PRCMHibernateWakeupSourceDisable(unsigned long ulHIBWakupSrc);
+extern void PRCMHibernateIntervalSet(unsigned long long ullTicks);
+
+extern unsigned long long PRCMSlowClkCtrGet(void);
+extern unsigned long long PRCMSlowClkCtrFastGet(void);
+extern void PRCMSlowClkCtrMatchSet(unsigned long long ullTicks);
+extern unsigned long long PRCMSlowClkCtrMatchGet(void);
+
+extern void PRCMOCRRegisterWrite(unsigned char ucIndex,
+ unsigned long ulRegValue);
+extern unsigned long PRCMOCRRegisterRead(unsigned char ucIndex);
+
+extern void PRCMIntRegister(void (*pfnHandler)(void));
+extern void PRCMIntUnregister(void);
+extern void PRCMIntEnable(unsigned long ulIntFlags);
+extern void PRCMIntDisable(unsigned long ulIntFlags);
+extern unsigned long PRCMIntStatus(void);
+extern void PRCMRTCInUseSet(void);
+extern tBoolean PRCMRTCInUseGet(void);
+extern void PRCMRTCSet(unsigned long ulSecs, unsigned short usMsec);
+extern void PRCMRTCGet(unsigned long *ulSecs, unsigned short *usMsec);
+extern void PRCMRTCMatchSet(unsigned long ulSecs, unsigned short usMsec);
+extern void PRCMRTCMatchGet(unsigned long *ulSecs, unsigned short *usMsec);
+extern void PRCMCC3200MCUInit(void);
+extern unsigned long PRCMHIBRegRead(unsigned long ulRegAddr);
+extern void PRCMHIBRegWrite(unsigned long ulRegAddr, unsigned long ulValue);
+extern unsigned long PRCMCameraFreqSet(unsigned char ulDivider,
+ unsigned char ulWidth);
+extern void PRCMIORetentionEnable(unsigned long ulIORetGrpFlags);
+extern void PRCMIORetentionDisable(unsigned long ulIORetGrpFlags);
+extern unsigned long PRCMDeviceTypeGet(void);
+extern void PRCMLPDSEnterKeepDebugIf(void);
+extern void PRCMHibernateCycleTrigger(void);
+
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __PRCM_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/rom.h b/ext/hal/ti/cc3220sdk/driverlib/rom.h
new file mode 100644
index 0000000..98938cf
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/rom.h
@@ -0,0 +1,2787 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// rom.h - Macros to facilitate calling functions in the ROM.
+//
+//
+//*****************************************************************************
+//
+// THIS IS AN AUTO-GENERATED FILE. DO NOT EDIT BY HAND.
+//
+//*****************************************************************************
+
+#ifndef __ROM_H__
+#define __ROM_H__
+
+//*****************************************************************************
+//
+// For backward compatibility with older Driverlib versions
+//
+//*****************************************************************************
+#ifdef TARGET_IS_CC3200
+#define USE_CC3200_ROM_DRV_API
+#endif
+
+//*****************************************************************************
+//
+// Pointers to the main API tables.
+//
+//*****************************************************************************
+#define ROM_APITABLE ((unsigned long *)0x0000040C)
+#define ROM_VERSION (ROM_APITABLE[0])
+#define ROM_UARTTABLE ((unsigned long *)(ROM_APITABLE[1]))
+#define ROM_TIMERTABLE ((unsigned long *)(ROM_APITABLE[2]))
+#define ROM_WATCHDOGTABLE ((unsigned long *)(ROM_APITABLE[3]))
+#define ROM_INTERRUPTTABLE ((unsigned long *)(ROM_APITABLE[4]))
+#define ROM_UDMATABLE ((unsigned long *)(ROM_APITABLE[5]))
+#define ROM_PRCMTABLE ((unsigned long *)(ROM_APITABLE[6]))
+#define ROM_I2CTABLE ((unsigned long *)(ROM_APITABLE[7]))
+#define ROM_SPITABLE ((unsigned long *)(ROM_APITABLE[8]))
+#define ROM_CAMERATABLE ((unsigned long *)(ROM_APITABLE[9]))
+#define ROM_FLASHTABLE ((unsigned long *)(ROM_APITABLE[10]))
+#define ROM_PINTABLE ((unsigned long *)(ROM_APITABLE[11]))
+#define ROM_SYSTICKTABLE ((unsigned long *)(ROM_APITABLE[12]))
+#define ROM_UTILSTABLE ((unsigned long *)(ROM_APITABLE[13]))
+#define ROM_I2STABLE ((unsigned long *)(ROM_APITABLE[14]))
+#define ROM_HWSPINLOCKTABLE ((unsigned long *)(ROM_APITABLE[15]))
+#define ROM_GPIOTABLE ((unsigned long *)(ROM_APITABLE[16]))
+#define ROM_AESTABLE ((unsigned long *)(ROM_APITABLE[17]))
+#define ROM_DESTABLE ((unsigned long *)(ROM_APITABLE[18]))
+#define ROM_SHAMD5TABLE ((unsigned long *)(ROM_APITABLE[19]))
+#define ROM_CRCTABLE ((unsigned long *)(ROM_APITABLE[20]))
+#define ROM_SDHOSTTABLE ((unsigned long *)(ROM_APITABLE[21]))
+#define ROM_ADCTABLE ((unsigned long *)(ROM_APITABLE[22]))
+#define ROM_CPUTABLE ((unsigned long *)(ROM_APITABLE[23]))
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Interrupt API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntEnable \
+ ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntMasterEnable \
+ ((tBoolean (*)(void))ROM_INTERRUPTTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntMasterDisable \
+ ((tBoolean (*)(void))ROM_INTERRUPTTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntDisable \
+ ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntPriorityGroupingSet \
+ ((void (*)(unsigned long ulBits))ROM_INTERRUPTTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntPriorityGroupingGet \
+ ((unsigned long (*)(void))ROM_INTERRUPTTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntPrioritySet \
+ ((void (*)(unsigned long ulInterrupt, \
+ unsigned char ucPriority))ROM_INTERRUPTTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntPriorityGet \
+ ((long (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntPendSet \
+ ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntPendClear \
+ ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntPriorityMaskSet \
+ ((void (*)(unsigned long ulPriorityMask))ROM_INTERRUPTTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntPriorityMaskGet \
+ ((unsigned long (*)(void))ROM_INTERRUPTTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntRegister \
+ ((void (*)(unsigned long ulInterrupt, \
+ void (*pfnHandler)(void)))ROM_INTERRUPTTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntUnregister \
+ ((void (*)(unsigned long ulInterrupt))ROM_INTERRUPTTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_IntVTableBaseSet \
+ ((void (*)(unsigned long ulVtableBase))ROM_INTERRUPTTABLE[14])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Timer API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer))ROM_TIMERTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer))ROM_TIMERTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerConfigure \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulConfig))ROM_TIMERTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerControlLevel \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer, \
+ tBoolean bInvert))ROM_TIMERTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerControlEvent \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer, \
+ unsigned long ulEvent))ROM_TIMERTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerControlStall \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer, \
+ tBoolean bStall))ROM_TIMERTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerPrescaleSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer, \
+ unsigned long ulValue))ROM_TIMERTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerPrescaleGet \
+ ((unsigned long (*)(unsigned long ulBase, \
+ unsigned long ulTimer))ROM_TIMERTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerPrescaleMatchSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer, \
+ unsigned long ulValue))ROM_TIMERTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerPrescaleMatchGet \
+ ((unsigned long (*)(unsigned long ulBase, \
+ unsigned long ulTimer))ROM_TIMERTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerLoadSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer, \
+ unsigned long ulValue))ROM_TIMERTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerLoadGet \
+ ((unsigned long (*)(unsigned long ulBase, \
+ unsigned long ulTimer))ROM_TIMERTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerValueGet \
+ ((unsigned long (*)(unsigned long ulBase, \
+ unsigned long ulTimer))ROM_TIMERTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerMatchSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer, \
+ unsigned long ulValue))ROM_TIMERTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerMatchGet \
+ ((unsigned long (*)(unsigned long ulBase, \
+ unsigned long ulTimer))ROM_TIMERTABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerIntRegister \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer, \
+ void (*pfnHandler)(void)))ROM_TIMERTABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerIntUnregister \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer))ROM_TIMERTABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerIntEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_TIMERTABLE[17])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerIntDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_TIMERTABLE[18])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerIntStatus \
+ ((unsigned long (*)(unsigned long ulBase, \
+ tBoolean bMasked))ROM_TIMERTABLE[19])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerIntClear \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_TIMERTABLE[20])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerValueSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTimer, \
+ unsigned long ulValue))ROM_TIMERTABLE[22])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerDMAEventSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulDMAEvent))ROM_TIMERTABLE[23])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_TimerDMAEventGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_TIMERTABLE[24])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the UART API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTParityModeSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulParity))ROM_UARTTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTParityModeGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTFIFOLevelSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTxLevel, \
+ unsigned long ulRxLevel))ROM_UARTTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTFIFOLevelGet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long *pulTxLevel, \
+ unsigned long *pulRxLevel))ROM_UARTTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTConfigSetExpClk \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulUARTClk, \
+ unsigned long ulBaud, \
+ unsigned long ulConfig))ROM_UARTTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTConfigGetExpClk \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulUARTClk, \
+ unsigned long *pulBaud, \
+ unsigned long *pulConfig))ROM_UARTTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTEnable \
+ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTDisable \
+ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTFIFOEnable \
+ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTFIFODisable \
+ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTCharsAvail \
+ ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTSpaceAvail \
+ ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTCharGetNonBlocking \
+ ((long (*)(unsigned long ulBase))ROM_UARTTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTCharGet \
+ ((long (*)(unsigned long ulBase))ROM_UARTTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTCharPutNonBlocking \
+ ((tBoolean (*)(unsigned long ulBase, \
+ unsigned char ucData))ROM_UARTTABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTCharPut \
+ ((void (*)(unsigned long ulBase, \
+ unsigned char ucData))ROM_UARTTABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTBreakCtl \
+ ((void (*)(unsigned long ulBase, \
+ tBoolean bBreakState))ROM_UARTTABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTBusy \
+ ((tBoolean (*)(unsigned long ulBase))ROM_UARTTABLE[17])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTIntRegister \
+ ((void (*)(unsigned long ulBase, \
+ void(*pfnHandler)(void)))ROM_UARTTABLE[18])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTIntUnregister \
+ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[19])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTIntEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_UARTTABLE[20])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTIntDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_UARTTABLE[21])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTIntStatus \
+ ((unsigned long (*)(unsigned long ulBase, \
+ tBoolean bMasked))ROM_UARTTABLE[22])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTIntClear \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_UARTTABLE[23])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTDMAEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulDMAFlags))ROM_UARTTABLE[24])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTDMADisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulDMAFlags))ROM_UARTTABLE[25])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTRxErrorGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[26])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTRxErrorClear \
+ ((void (*)(unsigned long ulBase))ROM_UARTTABLE[27])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTModemControlSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulControl))ROM_UARTTABLE[28])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTModemControlClear \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulControl))ROM_UARTTABLE[29])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTModemControlGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[30])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTModemStatusGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[31])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTFlowControlSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulMode))ROM_UARTTABLE[32])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTFlowControlGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[33])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTTxIntModeSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulMode))ROM_UARTTABLE[34])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UARTTxIntModeGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_UARTTABLE[35])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the uDMA API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelTransferSet \
+ ((void (*)(unsigned long ulChannelStructIndex, \
+ unsigned long ulMode, \
+ void *pvSrcAddr, \
+ void *pvDstAddr, \
+ unsigned long ulTransferSize))ROM_UDMATABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAEnable \
+ ((void (*)(void))ROM_UDMATABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMADisable \
+ ((void (*)(void))ROM_UDMATABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAErrorStatusGet \
+ ((unsigned long (*)(void))ROM_UDMATABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAErrorStatusClear \
+ ((void (*)(void))ROM_UDMATABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelEnable \
+ ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelDisable \
+ ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelIsEnabled \
+ ((tBoolean (*)(unsigned long ulChannelNum))ROM_UDMATABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAControlBaseSet \
+ ((void (*)(void *pControlTable))ROM_UDMATABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAControlBaseGet \
+ ((void * (*)(void))ROM_UDMATABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelRequest \
+ ((void (*)(unsigned long ulChannelNum))ROM_UDMATABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelAttributeEnable \
+ ((void (*)(unsigned long ulChannelNum, \
+ unsigned long ulAttr))ROM_UDMATABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelAttributeDisable \
+ ((void (*)(unsigned long ulChannelNum, \
+ unsigned long ulAttr))ROM_UDMATABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelAttributeGet \
+ ((unsigned long (*)(unsigned long ulChannelNum))ROM_UDMATABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelControlSet \
+ ((void (*)(unsigned long ulChannelStructIndex, \
+ unsigned long ulControl))ROM_UDMATABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelSizeGet \
+ ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelModeGet \
+ ((unsigned long (*)(unsigned long ulChannelStructIndex))ROM_UDMATABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAIntStatus \
+ ((unsigned long (*)(void))ROM_UDMATABLE[17])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAIntClear \
+ ((void (*)(unsigned long ulChanMask))ROM_UDMATABLE[18])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAControlAlternateBaseGet \
+ ((void * (*)(void))ROM_UDMATABLE[19])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelScatterGatherSet \
+ ((void (*)(unsigned long ulChannelNum, \
+ unsigned ulTaskCount, \
+ void *pvTaskList, \
+ unsigned long ulIsPeriphSG))ROM_UDMATABLE[20])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAChannelAssign \
+ ((void (*)(unsigned long ulMapping))ROM_UDMATABLE[21])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAIntRegister \
+ ((void (*)(unsigned long ulIntChannel, \
+ void (*pfnHandler)(void)))ROM_UDMATABLE[22])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_uDMAIntUnregister \
+ ((void (*)(unsigned long ulIntChannel))ROM_UDMATABLE[23])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Watchdog API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogIntClear \
+ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogRunning \
+ ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogEnable \
+ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogLock \
+ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogUnlock \
+ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogLockState \
+ ((tBoolean (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogReloadSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulLoadVal))ROM_WATCHDOGTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogReloadGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogValueGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogIntStatus \
+ ((unsigned long (*)(unsigned long ulBase, \
+ tBoolean bMasked))ROM_WATCHDOGTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogStallEnable \
+ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogStallDisable \
+ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogIntRegister \
+ ((void (*)(unsigned long ulBase, \
+ void(*pfnHandler)(void)))ROM_WATCHDOGTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_WatchdogIntUnregister \
+ ((void (*)(unsigned long ulBase))ROM_WATCHDOGTABLE[14])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the I2C API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CIntRegister \
+ ((void (*)(uint32_t ui32Base, \
+ void(pfnHandler)(void)))ROM_I2CTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CIntUnregister \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CTxFIFOConfigSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Config))ROM_I2CTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CTxFIFOFlush \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CRxFIFOConfigSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Config))ROM_I2CTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CRxFIFOFlush \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CFIFOStatus \
+ ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CFIFODataPut \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t ui8Data))ROM_I2CTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CFIFODataPutNonBlocking \
+ ((uint32_t (*)(uint32_t ui32Base, \
+ uint8_t ui8Data))ROM_I2CTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CFIFODataGet \
+ ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CFIFODataGetNonBlocking \
+ ((uint32_t (*)(uint32_t ui32Base, \
+ uint8_t *pui8Data))ROM_I2CTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterBurstLengthSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t ui8Length))ROM_I2CTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterBurstCountGet \
+ ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterGlitchFilterConfigSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Config))ROM_I2CTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveFIFOEnable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Config))ROM_I2CTABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveFIFODisable \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterBusBusy \
+ ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterBusy \
+ ((bool (*)(uint32_t ui32Base))ROM_I2CTABLE[17])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterControl \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Cmd))ROM_I2CTABLE[18])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterDataGet \
+ ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[19])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterDataPut \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t ui8Data))ROM_I2CTABLE[20])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterDisable \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[21])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterEnable \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[22])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterErr \
+ ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[23])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterIntClear \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[24])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterIntDisable \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[25])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterIntEnable \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[26])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterIntStatus \
+ ((bool (*)(uint32_t ui32Base, \
+ bool bMasked))ROM_I2CTABLE[27])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterIntEnableEx \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_I2CTABLE[28])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterIntDisableEx \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_I2CTABLE[29])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterIntStatusEx \
+ ((uint32_t (*)(uint32_t ui32Base, \
+ bool bMasked))ROM_I2CTABLE[30])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterIntClearEx \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_I2CTABLE[31])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterTimeoutSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Value))ROM_I2CTABLE[32])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveACKOverride \
+ ((void (*)(uint32_t ui32Base, \
+ bool bEnable))ROM_I2CTABLE[33])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveACKValueSet \
+ ((void (*)(uint32_t ui32Base, \
+ bool bACK))ROM_I2CTABLE[34])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterLineStateGet \
+ ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[35])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterSlaveAddrSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t ui8SlaveAddr, \
+ bool bReceive))ROM_I2CTABLE[36])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveDataGet \
+ ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[37])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveDataPut \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t ui8Data))ROM_I2CTABLE[38])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveDisable \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[39])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveEnable \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[40])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveInit \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t ui8SlaveAddr))ROM_I2CTABLE[41])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveAddressSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t ui8AddrNum, \
+ uint8_t ui8SlaveAddr))ROM_I2CTABLE[42])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveIntClear \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[43])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveIntDisable \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[44])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveIntEnable \
+ ((void (*)(uint32_t ui32Base))ROM_I2CTABLE[45])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveIntClearEx \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_I2CTABLE[46])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveIntDisableEx \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_I2CTABLE[47])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveIntEnableEx \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_I2CTABLE[48])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveIntStatus \
+ ((bool (*)(uint32_t ui32Base, \
+ bool bMasked))ROM_I2CTABLE[49])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveIntStatusEx \
+ ((uint32_t (*)(uint32_t ui32Base, \
+ bool bMasked))ROM_I2CTABLE[50])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CSlaveStatus \
+ ((uint32_t (*)(uint32_t ui32Base))ROM_I2CTABLE[51])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2CMasterInitExpClk \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32I2CClk, \
+ bool bFast))ROM_I2CTABLE[52])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SPI API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIEnable \
+ ((void (*)(unsigned long ulBase))ROM_SPITABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIDisable \
+ ((void (*)(unsigned long ulBase))ROM_SPITABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIReset \
+ ((void (*)(unsigned long ulBase))ROM_SPITABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIConfigSetExpClk \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulSPIClk, \
+ unsigned long ulBitRate, \
+ unsigned long ulMode, \
+ unsigned long ulSubMode, \
+ unsigned long ulConfig))ROM_SPITABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIDataGetNonBlocking \
+ ((long (*)(unsigned long ulBase, \
+ unsigned long * pulData))ROM_SPITABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIDataGet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long *pulData))ROM_SPITABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIDataPutNonBlocking \
+ ((long (*)(unsigned long ulBase, \
+ unsigned long ulData))ROM_SPITABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIDataPut \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulData))ROM_SPITABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIFIFOEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulFlags))ROM_SPITABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIFIFODisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulFlags))ROM_SPITABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIFIFOLevelSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTxLevel, \
+ unsigned long ulRxLevel))ROM_SPITABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIFIFOLevelGet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long *pulTxLevel, \
+ unsigned long *pulRxLevel))ROM_SPITABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIWordCountSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulWordCount))ROM_SPITABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIIntRegister \
+ ((void (*)(unsigned long ulBase, \
+ void(*pfnHandler)(void)))ROM_SPITABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIIntUnregister \
+ ((void (*)(unsigned long ulBase))ROM_SPITABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIIntEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_SPITABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIIntDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_SPITABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIIntStatus \
+ ((unsigned long (*)(unsigned long ulBase, \
+ tBoolean bMasked))ROM_SPITABLE[17])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIIntClear \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_SPITABLE[18])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIDmaEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulFlags))ROM_SPITABLE[19])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPIDmaDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulFlags))ROM_SPITABLE[20])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPICSEnable \
+ ((void (*)(unsigned long ulBase))ROM_SPITABLE[21])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPICSDisable \
+ ((void (*)(unsigned long ulBase))ROM_SPITABLE[22])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SPITransfer \
+ ((long (*)(unsigned long ulBase, \
+ unsigned char *ucDout, \
+ unsigned char *ucDin, \
+ unsigned long ulSize, \
+ unsigned long ulFlags))ROM_SPITABLE[23])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the CAM API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraReset \
+ ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraParamsConfig \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulHSPol, \
+ unsigned long ulVSPol, \
+ unsigned long ulFlags))ROM_CAMERATABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraXClkConfig \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulCamClkIn, \
+ unsigned long ulXClk))ROM_CAMERATABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraXClkSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned char bXClkFlags))ROM_CAMERATABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraDMAEnable \
+ ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraDMADisable \
+ ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraThresholdSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulThreshold))ROM_CAMERATABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraIntRegister \
+ ((void (*)(unsigned long ulBase, \
+ void (*pfnHandler)(void)))ROM_CAMERATABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraIntUnregister \
+ ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraIntEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_CAMERATABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraIntDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_CAMERATABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraIntStatus \
+ ((unsigned long (*)(unsigned long ulBase))ROM_CAMERATABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraIntClear \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_CAMERATABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraCaptureStop \
+ ((void (*)(unsigned long ulBase, \
+ tBoolean bImmediate))ROM_CAMERATABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraCaptureStart \
+ ((void (*)(unsigned long ulBase))ROM_CAMERATABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CameraBufferRead \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long *pBuffer, \
+ unsigned char ucSize))ROM_CAMERATABLE[15])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the FLASH API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashDisable \
+ ((void (*)(void))ROM_FLASHTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashErase \
+ ((long (*)(unsigned long ulAddress))ROM_FLASHTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashMassErase \
+ ((long (*)(void))ROM_FLASHTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashMassEraseNonBlocking \
+ ((void (*)(void))ROM_FLASHTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashEraseNonBlocking \
+ ((void (*)(unsigned long ulAddress))ROM_FLASHTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashProgram \
+ ((long (*)(unsigned long *pulData, \
+ unsigned long ulAddress, \
+ unsigned long ulCount))ROM_FLASHTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashProgramNonBlocking \
+ ((long (*)(unsigned long *pulData, \
+ unsigned long ulAddress, \
+ unsigned long ulCount))ROM_FLASHTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashIntRegister \
+ ((void (*)(void (*pfnHandler)(void)))ROM_FLASHTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashIntUnregister \
+ ((void (*)(void))ROM_FLASHTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashIntEnable \
+ ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashIntDisable \
+ ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashIntStatus \
+ ((unsigned long (*)(tBoolean bMasked))ROM_FLASHTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashIntClear \
+ ((void (*)(unsigned long ulIntFlags))ROM_FLASHTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_FlashProtectGet \
+ ((tFlashProtection (*)(unsigned long ulAddress))ROM_FLASHTABLE[13])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the Pin API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinModeSet \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode))ROM_PINTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinDirModeSet \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinIO))ROM_PINTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinDirModeGet \
+ ((unsigned long (*)(unsigned long ulPin))ROM_PINTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinModeGet \
+ ((unsigned long (*)(unsigned long ulPin))ROM_PINTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinConfigGet \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long *pulPinStrength, \
+ unsigned long *pulPinType))ROM_PINTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinConfigSet \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinStrength, \
+ unsigned long ulPinType))ROM_PINTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinTypeUART \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode))ROM_PINTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinTypeI2C \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode))ROM_PINTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinTypeSPI \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode))ROM_PINTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinTypeI2S \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode))ROM_PINTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinTypeTimer \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode))ROM_PINTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinTypeCamera \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode))ROM_PINTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinTypeGPIO \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode, \
+ tBoolean bOpenDrain))ROM_PINTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinTypeADC \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode))ROM_PINTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinTypeSDHost \
+ ((void (*)(unsigned long ulPin, \
+ unsigned long ulPinMode))ROM_PINTABLE[14])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinHysteresisSet \
+ ((void (*)(unsigned long ulHysteresis))ROM_PINTABLE[15])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinLockLevelSet \
+ ((void (*)(unsigned long ulPin, \
+ unsigned char ucLevel))ROM_PINTABLE[16])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinLock \
+ ((void (*)(unsigned long ulOutEnable))ROM_PINTABLE[17])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PinUnlock \
+ ((void (*)(void))ROM_PINTABLE[18])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SYSTICK API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SysTickEnable \
+ ((void (*)(void))ROM_SYSTICKTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SysTickDisable \
+ ((void (*)(void))ROM_SYSTICKTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SysTickIntRegister \
+ ((void (*)(void (*pfnHandler)(void)))ROM_SYSTICKTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SysTickIntUnregister \
+ ((void (*)(void))ROM_SYSTICKTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SysTickIntEnable \
+ ((void (*)(void))ROM_SYSTICKTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SysTickIntDisable \
+ ((void (*)(void))ROM_SYSTICKTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SysTickPeriodSet \
+ ((void (*)(unsigned long ulPeriod))ROM_SYSTICKTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SysTickPeriodGet \
+ ((unsigned long (*)(void))ROM_SYSTICKTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SysTickValueGet \
+ ((unsigned long (*)(void))ROM_SYSTICKTABLE[8])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the UTILS API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_UtilsDelay \
+ ((void (*)(unsigned long ulCount))ROM_UTILSTABLE[0])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the I2S API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulMode))ROM_I2STABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SDisable \
+ ((void (*)(unsigned long ulBase))ROM_I2STABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SDataPut \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulDataLine, \
+ unsigned long ulData))ROM_I2STABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SDataPutNonBlocking \
+ ((long (*)(unsigned long ulBase, \
+ unsigned long ulDataLine, \
+ unsigned long ulData))ROM_I2STABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SDataGet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulDataLine, \
+ unsigned long *pulData))ROM_I2STABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SDataGetNonBlocking \
+ ((long (*)(unsigned long ulBase, \
+ unsigned long ulDataLine, \
+ unsigned long *pulData))ROM_I2STABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SConfigSetExpClk \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulI2SClk, \
+ unsigned long ulBitClk, \
+ unsigned long ulConfig))ROM_I2STABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2STxFIFOEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulTxLevel, \
+ unsigned long ulWordsPerTransfer))ROM_I2STABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2STxFIFODisable \
+ ((void (*)(unsigned long ulBase))ROM_I2STABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SRxFIFOEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulRxLevel, \
+ unsigned long ulWordsPerTransfer))ROM_I2STABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SRxFIFODisable \
+ ((void (*)(unsigned long ulBase))ROM_I2STABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2STxFIFOStatusGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SRxFIFOStatusGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SSerializerConfig \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulDataLine, \
+ unsigned long ulSerMode, \
+ unsigned long ulInActState))ROM_I2STABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SIntEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_I2STABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SIntDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_I2STABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SIntStatus \
+ ((unsigned long (*)(unsigned long ulBase))ROM_I2STABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SIntClear \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_I2STABLE[17])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SIntRegister \
+ ((void (*)(unsigned long ulBase, \
+ void (*pfnHandler)(void)))ROM_I2STABLE[18])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SIntUnregister \
+ ((void (*)(unsigned long ulBase))ROM_I2STABLE[19])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2STxActiveSlotSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulActSlot))ROM_I2STABLE[20])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_I2SRxActiveSlotSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulActSlot))ROM_I2STABLE[21])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the GPIO API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIODirModeSet \
+ ((void (*)(unsigned long ulPort, \
+ unsigned char ucPins, \
+ unsigned long ulPinIO))ROM_GPIOTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIODirModeGet \
+ ((unsigned long (*)(unsigned long ulPort, \
+ unsigned char ucPin))ROM_GPIOTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOIntTypeSet \
+ ((void (*)(unsigned long ulPort, \
+ unsigned char ucPins, \
+ unsigned long ulIntType))ROM_GPIOTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIODMATriggerEnable \
+ ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIODMATriggerDisable \
+ ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOIntTypeGet \
+ ((unsigned long (*)(unsigned long ulPort, \
+ unsigned char ucPin))ROM_GPIOTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOIntEnable \
+ ((void (*)(unsigned long ulPort, \
+ unsigned long ulIntFlags))ROM_GPIOTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOIntDisable \
+ ((void (*)(unsigned long ulPort, \
+ unsigned long ulIntFlags))ROM_GPIOTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOIntStatus \
+ ((long (*)(unsigned long ulPort, \
+ tBoolean bMasked))ROM_GPIOTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOIntClear \
+ ((void (*)(unsigned long ulPort, \
+ unsigned long ulIntFlags))ROM_GPIOTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOIntRegister \
+ ((void (*)(unsigned long ulPort, \
+ void (*pfnIntHandler)(void)))ROM_GPIOTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOIntUnregister \
+ ((void (*)(unsigned long ulPort))ROM_GPIOTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOPinRead \
+ ((long (*)(unsigned long ulPort, \
+ unsigned char ucPins))ROM_GPIOTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_GPIOPinWrite \
+ ((void (*)(unsigned long ulPort, \
+ unsigned char ucPins, \
+ unsigned char ucVal))ROM_GPIOTABLE[13])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the AES API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESConfigSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Config))ROM_AESTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESKey1Set \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Key, \
+ uint32_t ui32Keysize))ROM_AESTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESKey2Set \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Key, \
+ uint32_t ui32Keysize))ROM_AESTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESKey3Set \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Key))ROM_AESTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESIVSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8IVdata))ROM_AESTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESTagRead \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8TagData))ROM_AESTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDataLengthSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint64_t ui64Length))ROM_AESTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESAuthDataLengthSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Length))ROM_AESTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDataReadNonBlocking \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8Dest, \
+ uint8_t ui8Length))ROM_AESTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDataRead \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Dest, \
+ uint8_t ui8Length))ROM_AESTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDataWriteNonBlocking \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src, \
+ uint8_t ui8Length))ROM_AESTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDataWrite \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src, \
+ uint8_t ui8Length))ROM_AESTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDataProcess \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src, \
+ uint8_t *pui8Dest, \
+ uint32_t ui32Length))ROM_AESTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDataMAC \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src, \
+ uint32_t ui32Length, \
+ uint8_t *pui8Tag))ROM_AESTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDataProcessAE \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src, \
+ uint8_t *pui8Dest, \
+ uint32_t ui32Length, \
+ uint8_t *pui8AuthSrc, \
+ uint32_t ui32AuthLength, \
+ uint8_t *pui8Tag))ROM_AESTABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESIntStatus \
+ ((uint32_t (*)(uint32_t ui32Base, \
+ bool bMasked))ROM_AESTABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESIntEnable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_AESTABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESIntDisable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_AESTABLE[17])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESIntClear \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_AESTABLE[18])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESIntRegister \
+ ((void (*)(uint32_t ui32Base, \
+ void(*pfnHandler)(void)))ROM_AESTABLE[19])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESIntUnregister \
+ ((void (*)(uint32_t ui32Base))ROM_AESTABLE[20])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDMAEnable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Flags))ROM_AESTABLE[21])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESDMADisable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Flags))ROM_AESTABLE[22])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_AESIVGet \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8IVdata))ROM_AESTABLE[23])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the DES API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESConfigSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Config))ROM_DESTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESDataRead \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Dest, \
+ uint8_t ui8Length))ROM_DESTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESDataReadNonBlocking \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8Dest, \
+ uint8_t ui8Length))ROM_DESTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESDataProcess \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src, \
+ uint8_t *pui8Dest, \
+ uint32_t ui32Length))ROM_DESTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESDataWrite \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src, \
+ uint8_t ui8Length))ROM_DESTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESDataWriteNonBlocking \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src, \
+ uint8_t ui8Length))ROM_DESTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESDMADisable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Flags))ROM_DESTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESDMAEnable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Flags))ROM_DESTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESIntClear \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_DESTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESIntDisable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_DESTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESIntEnable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_DESTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESIntRegister \
+ ((void (*)(uint32_t ui32Base, \
+ void(*pfnHandler)(void)))ROM_DESTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESIntStatus \
+ ((uint32_t (*)(uint32_t ui32Base, \
+ bool bMasked))ROM_DESTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESIntUnregister \
+ ((void (*)(uint32_t ui32Base))ROM_DESTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESIVSet \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8IVdata))ROM_DESTABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESKeySet \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Key))ROM_DESTABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_DESDataLengthSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Length))ROM_DESTABLE[16])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SHAMD5 API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5ConfigSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Mode))ROM_SHAMD5TABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5DataProcess \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8DataSrc, \
+ uint32_t ui32DataLength, \
+ uint8_t *pui8HashResult))ROM_SHAMD5TABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5DataWrite \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src))ROM_SHAMD5TABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5DataWriteNonBlocking \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src))ROM_SHAMD5TABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5DMADisable \
+ ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5DMAEnable \
+ ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5DataLengthSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Length))ROM_SHAMD5TABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5HMACKeySet \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src))ROM_SHAMD5TABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5HMACPPKeyGenerate \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Key, \
+ uint8_t *pui8PPKey))ROM_SHAMD5TABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5HMACPPKeySet \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Src))ROM_SHAMD5TABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5HMACProcess \
+ ((bool (*)(uint32_t ui32Base, \
+ uint8_t *pui8DataSrc, \
+ uint32_t ui32DataLength, \
+ uint8_t *pui8HashResult))ROM_SHAMD5TABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5IntClear \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_SHAMD5TABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5IntDisable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_SHAMD5TABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5IntEnable \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32IntFlags))ROM_SHAMD5TABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5IntRegister \
+ ((void (*)(uint32_t ui32Base, \
+ void(*pfnHandler)(void)))ROM_SHAMD5TABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5IntStatus \
+ ((uint32_t (*)(uint32_t ui32Base, \
+ bool bMasked))ROM_SHAMD5TABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5IntUnregister \
+ ((void (*)(uint32_t ui32Base))ROM_SHAMD5TABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SHAMD5ResultRead \
+ ((void (*)(uint32_t ui32Base, \
+ uint8_t *pui8Dest))ROM_SHAMD5TABLE[17])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the CRC API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CRCConfigSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32CRCConfig))ROM_CRCTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CRCDataProcess \
+ ((uint32_t (*)(uint32_t ui32Base, \
+ void *puiDataIn, \
+ uint32_t ui32DataLength, \
+ uint32_t ui32Config))ROM_CRCTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CRCDataWrite \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Data))ROM_CRCTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CRCResultRead \
+ ((uint32_t (*)(uint32_t ui32Base))ROM_CRCTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CRCSeedSet \
+ ((void (*)(uint32_t ui32Base, \
+ uint32_t ui32Seed))ROM_CRCTABLE[4])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the SDHOST API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostCmdReset \
+ ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostInit \
+ ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostCmdSend \
+ ((long (*)(unsigned long ulBase, \
+ unsigned long ulCmd, \
+ unsigned ulArg))ROM_SDHOSTTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostIntRegister \
+ ((void (*)(unsigned long ulBase, \
+ void (*pfnHandler)(void)))ROM_SDHOSTTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostIntUnregister \
+ ((void (*)(unsigned long ulBase))ROM_SDHOSTTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostIntEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_SDHOSTTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostIntDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_SDHOSTTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostIntStatus \
+ ((unsigned long (*)(unsigned long ulBase))ROM_SDHOSTTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostIntClear \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulIntFlags))ROM_SDHOSTTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostRespGet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulRespnse[4]))ROM_SDHOSTTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostBlockSizeSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned short ulBlkSize))ROM_SDHOSTTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostBlockCountSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned short ulBlkCount))ROM_SDHOSTTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostDataNonBlockingWrite \
+ ((tBoolean (*)(unsigned long ulBase, \
+ unsigned long ulData))ROM_SDHOSTTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostDataNonBlockingRead \
+ ((tBoolean (*)(unsigned long ulBase, \
+ unsigned long *pulData))ROM_SDHOSTTABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostDataWrite \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulData))ROM_SDHOSTTABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostDataRead \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long *ulData))ROM_SDHOSTTABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostSetExpClk \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulSDHostClk, \
+ unsigned long ulCardClk))ROM_SDHOSTTABLE[17])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostCardErrorMaskSet \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulErrMask))ROM_SDHOSTTABLE[18])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_SDHostCardErrorMaskGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_SDHOSTTABLE[19])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the PRCM API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMMCUReset \
+ ((void (*)(tBoolean bIncludeSubsystem))ROM_PRCMTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMSysResetCauseGet \
+ ((unsigned long (*)(void))ROM_PRCMTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMPeripheralClkEnable \
+ ((void (*)(unsigned long ulPeripheral, \
+ unsigned long ulClkFlags))ROM_PRCMTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMPeripheralClkDisable \
+ ((void (*)(unsigned long ulPeripheral, \
+ unsigned long ulClkFlags))ROM_PRCMTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMPeripheralReset \
+ ((void (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMPeripheralStatusGet \
+ ((tBoolean (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMI2SClockFreqSet \
+ ((void (*)(unsigned long ulI2CClkFreq))ROM_PRCMTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMPeripheralClockGet \
+ ((unsigned long (*)(unsigned long ulPeripheral))ROM_PRCMTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMSleepEnter \
+ ((void (*)(void))ROM_PRCMTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMSRAMRetentionEnable \
+ ((void (*)(unsigned long ulSramColSel, \
+ unsigned long ulFlags))ROM_PRCMTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMSRAMRetentionDisable \
+ ((void (*)(unsigned long ulSramColSel, \
+ unsigned long ulFlags))ROM_PRCMTABLE[12])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMLPDSEnter \
+ ((void (*)(void))ROM_PRCMTABLE[13])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMLPDSIntervalSet \
+ ((void (*)(unsigned long ulTicks))ROM_PRCMTABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMLPDSWakeupSourceEnable \
+ ((void (*)(unsigned long ulLpdsWakeupSrc))ROM_PRCMTABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMLPDSWakeupCauseGet \
+ ((unsigned long (*)(void))ROM_PRCMTABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMLPDSWakeUpGPIOSelect \
+ ((void (*)(unsigned long ulGPIOPin, \
+ unsigned long ulType))ROM_PRCMTABLE[17])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMLPDSWakeupSourceDisable \
+ ((void (*)(unsigned long ulLpdsWakeupSrc))ROM_PRCMTABLE[18])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMHibernateEnter \
+ ((void (*)(void))ROM_PRCMTABLE[19])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMHibernateWakeupSourceEnable \
+ ((void (*)(unsigned long ulHIBWakupSrc))ROM_PRCMTABLE[20])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMHibernateWakeupCauseGet \
+ ((unsigned long (*)(void))ROM_PRCMTABLE[21])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMHibernateWakeUpGPIOSelect \
+ ((void (*)(unsigned long ulMultiGPIOBitMap, \
+ unsigned long ulType))ROM_PRCMTABLE[22])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMHibernateWakeupSourceDisable \
+ ((void (*)(unsigned long ulHIBWakupSrc))ROM_PRCMTABLE[23])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMHibernateIntervalSet \
+ ((void (*)(unsigned long long ullTicks))ROM_PRCMTABLE[24])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMSlowClkCtrGet \
+ ((unsigned long long (*)(void))ROM_PRCMTABLE[25])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMSlowClkCtrMatchSet \
+ ((void (*)(unsigned long long ullTicks))ROM_PRCMTABLE[26])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMSlowClkCtrMatchGet \
+ ((unsigned long long (*)(void))ROM_PRCMTABLE[27])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMOCRRegisterWrite \
+ ((void (*)(unsigned char ucIndex, \
+ unsigned long ulRegValue))ROM_PRCMTABLE[28])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMOCRRegisterRead \
+ ((unsigned long (*)(unsigned char ucIndex))ROM_PRCMTABLE[29])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMIntRegister \
+ ((void (*)(void (*pfnHandler)(void)))ROM_PRCMTABLE[30])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMIntUnregister \
+ ((void (*)(void))ROM_PRCMTABLE[31])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMIntEnable \
+ ((void (*)(unsigned long ulIntFlags))ROM_PRCMTABLE[32])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMIntDisable \
+ ((void (*)(unsigned long ulIntFlags))ROM_PRCMTABLE[33])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMIntStatus \
+ ((unsigned long (*)(void))ROM_PRCMTABLE[34])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMRTCInUseSet \
+ ((void (*)(void))ROM_PRCMTABLE[35])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMRTCInUseGet \
+ ((tBoolean (*)(void))ROM_PRCMTABLE[36])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMRTCSet \
+ ((void (*)(unsigned long ulSecs, \
+ unsigned short usMsec))ROM_PRCMTABLE[37])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMRTCGet \
+ ((void (*)(unsigned long *ulSecs, \
+ unsigned short *usMsec))ROM_PRCMTABLE[38])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMRTCMatchSet \
+ ((void (*)(unsigned long ulSecs, \
+ unsigned short usMsec))ROM_PRCMTABLE[39])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMRTCMatchGet \
+ ((void (*)(unsigned long *ulSecs, \
+ unsigned short *usMsec))ROM_PRCMTABLE[40])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMLPDSRestoreInfoSet \
+ ((void (*)(unsigned long ulRestoreSP, \
+ unsigned long ulRestorePC))ROM_PRCMTABLE[41])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMSlowClkCtrFastGet \
+ ((unsigned long long (*)(void))ROM_PRCMTABLE[42])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMCC3200MCUInit \
+ ((void (*)(void))ROM_PRCMTABLE[43])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMHIBRegRead \
+ ((unsigned long (*)(unsigned long ulRegAddr))ROM_PRCMTABLE[44])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMHIBRegWrite \
+ ((void (*)(unsigned long ulRegAddr, \
+ unsigned long ulValue))ROM_PRCMTABLE[45])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMCameraFreqSet \
+ ((unsigned long (*)(unsigned char ulDivider, \
+ unsigned char ulWidth))ROM_PRCMTABLE[46])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMIORetentionEnable \
+ ((void (*)(unsigned long ulIORetGrpFlags))ROM_PRCMTABLE[47])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMIORetentionDisable \
+ ((void (*)(unsigned long ulIORetGrpFlags))ROM_PRCMTABLE[48])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMDeviceTypeGet \
+ ((unsigned long (*)(void))ROM_PRCMTABLE[49])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMLPDSEnterKeepDebugIf \
+ ((void (*)(void))ROM_PRCMTABLE[50])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_PRCMHibernateCycleTrigger \
+ ((void (*)(void))ROM_PRCMTABLE[51])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the HWSPINLOCK API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_HwSpinLockAcquire \
+ ((void (*)(uint32_t ui32LockID))ROM_HWSPINLOCKTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_HwSpinLockTryAcquire \
+ ((int32_t (*)(uint32_t ui32LockID, \
+ uint32_t ui32Retry))ROM_HWSPINLOCKTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_HwSpinLockRelease \
+ ((void (*)(uint32_t ui32LockID))ROM_HWSPINLOCKTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_HwSpinLockTest \
+ ((uint32_t (*)(uint32_t ui32LockID, \
+ bool bCurrentStatus))ROM_HWSPINLOCKTABLE[3])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the ADC API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCEnable \
+ ((void (*)(unsigned long ulBase))ROM_ADCTABLE[0])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCDisable \
+ ((void (*)(unsigned long ulBase))ROM_ADCTABLE[1])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCChannelEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulChannel))ROM_ADCTABLE[2])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCChannelDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulChannel))ROM_ADCTABLE[3])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCIntRegister \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulChannel, \
+ void (*pfnHandler)(void)))ROM_ADCTABLE[4])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCIntUnregister \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulChannel))ROM_ADCTABLE[5])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCIntEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulChannel, \
+ unsigned long ulIntFlags))ROM_ADCTABLE[6])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCIntDisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulChannel, \
+ unsigned long ulIntFlags))ROM_ADCTABLE[7])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCIntStatus \
+ ((unsigned long (*)(unsigned long ulBase, \
+ unsigned long ulChannel))ROM_ADCTABLE[8])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCIntClear \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulChannel, \
+ unsigned long ulIntFlags))ROM_ADCTABLE[9])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCDMAEnable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulChannel))ROM_ADCTABLE[10])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCDMADisable \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulChannel))ROM_ADCTABLE[11])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCTimerConfig \
+ ((void (*)(unsigned long ulBase, \
+ unsigned long ulValue))ROM_ADCTABLE[14])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCTimerEnable \
+ ((void (*)(unsigned long ulBase))ROM_ADCTABLE[15])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCTimerDisable \
+ ((void (*)(unsigned long ulBase))ROM_ADCTABLE[16])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCTimerReset \
+ ((void (*)(unsigned long ulBase))ROM_ADCTABLE[17])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCTimerValueGet \
+ ((unsigned long (*)(unsigned long ulBase))ROM_ADCTABLE[18])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCFIFOLvlGet \
+ ((unsigned char (*)(unsigned long ulBase, \
+ unsigned long ulChannel))ROM_ADCTABLE[19])
+#endif
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define ROM_ADCFIFORead \
+ ((unsigned long (*)(unsigned long ulBase, \
+ unsigned long ulChannel))ROM_ADCTABLE[20])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions in the CPU API.
+//
+//*****************************************************************************
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CPUcpsid \
+ ((unsigned long (*)(void))ROM_CPUTABLE[0])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CPUcpsie \
+ ((unsigned long (*)(void))ROM_CPUTABLE[1])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CPUprimask \
+ ((unsigned long (*)(void))ROM_CPUTABLE[2])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CPUwfi \
+ ((void (*)(void))ROM_CPUTABLE[3])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CPUbasepriGet \
+ ((unsigned long (*)(void))ROM_CPUTABLE[4])
+#endif
+#if defined(USE_CC3220_ROM_DRV_API)
+#define ROM_CPUbasepriSet \
+ ((void (*)(unsigned long ulNewBasepri))ROM_CPUTABLE[5])
+#endif
+
+//*****************************************************************************
+//
+// Macros for calling ROM functions Directly.
+//
+//*****************************************************************************
+#define ROM_UtilsDelayDirect \
+ ((void (*)(unsigned long ulCount))ROM_UTILSTABLE[0])
+
+#define ROM_PRCMLPDSEnterDirect \
+ ((void (*)(void))ROM_PRCMTABLE[13])
+
+#define ROM_PRCMLPDSEnterKeepDebugIfDirect \
+ ((void (*)(void))ROM_PRCMTABLE[50])
+
+#endif // __ROM_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/rom_map.h b/ext/hal/ti/cc3220sdk/driverlib/rom_map.h
new file mode 100644
index 0000000..3fb6838
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/rom_map.h
@@ -0,0 +1,3321 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// rom_map.h - Macros to facilitate calling functions in the ROM when they are
+// available.
+//
+//*****************************************************************************
+//*****************************************************************************
+//
+// THIS IS AN AUTO-GENERATED FILE. DO NOT EDIT BY HAND.
+//
+//*****************************************************************************
+
+#ifndef __ROM_MAP_H__
+#define __ROM_MAP_H__
+
+//*****************************************************************************
+// Patched ROM APIs
+//*****************************************************************************
+#include "rom_patch.h"
+
+//*****************************************************************************
+//
+// Macros for the Interrupt API.
+//
+//*****************************************************************************
+#ifdef ROM_IntEnable
+#define MAP_IntEnable \
+ ROM_IntEnable
+#else
+#define MAP_IntEnable \
+ IntEnable
+#endif
+#ifdef ROM_IntMasterEnable
+#define MAP_IntMasterEnable \
+ ROM_IntMasterEnable
+#else
+#define MAP_IntMasterEnable \
+ IntMasterEnable
+#endif
+#ifdef ROM_IntMasterDisable
+#define MAP_IntMasterDisable \
+ ROM_IntMasterDisable
+#else
+#define MAP_IntMasterDisable \
+ IntMasterDisable
+#endif
+#ifdef ROM_IntDisable
+#define MAP_IntDisable \
+ ROM_IntDisable
+#else
+#define MAP_IntDisable \
+ IntDisable
+#endif
+#ifdef ROM_IntPriorityGroupingSet
+#define MAP_IntPriorityGroupingSet \
+ ROM_IntPriorityGroupingSet
+#else
+#define MAP_IntPriorityGroupingSet \
+ IntPriorityGroupingSet
+#endif
+#ifdef ROM_IntPriorityGroupingGet
+#define MAP_IntPriorityGroupingGet \
+ ROM_IntPriorityGroupingGet
+#else
+#define MAP_IntPriorityGroupingGet \
+ IntPriorityGroupingGet
+#endif
+#ifdef ROM_IntPrioritySet
+#define MAP_IntPrioritySet \
+ ROM_IntPrioritySet
+#else
+#define MAP_IntPrioritySet \
+ IntPrioritySet
+#endif
+#ifdef ROM_IntPriorityGet
+#define MAP_IntPriorityGet \
+ ROM_IntPriorityGet
+#else
+#define MAP_IntPriorityGet \
+ IntPriorityGet
+#endif
+#ifdef ROM_IntPendSet
+#define MAP_IntPendSet \
+ ROM_IntPendSet
+#else
+#define MAP_IntPendSet \
+ IntPendSet
+#endif
+#ifdef ROM_IntPendClear
+#define MAP_IntPendClear \
+ ROM_IntPendClear
+#else
+#define MAP_IntPendClear \
+ IntPendClear
+#endif
+#ifdef ROM_IntPriorityMaskSet
+#define MAP_IntPriorityMaskSet \
+ ROM_IntPriorityMaskSet
+#else
+#define MAP_IntPriorityMaskSet \
+ IntPriorityMaskSet
+#endif
+#ifdef ROM_IntPriorityMaskGet
+#define MAP_IntPriorityMaskGet \
+ ROM_IntPriorityMaskGet
+#else
+#define MAP_IntPriorityMaskGet \
+ IntPriorityMaskGet
+#endif
+#ifdef ROM_IntRegister
+#define MAP_IntRegister \
+ ROM_IntRegister
+#else
+#define MAP_IntRegister \
+ IntRegister
+#endif
+#ifdef ROM_IntUnregister
+#define MAP_IntUnregister \
+ ROM_IntUnregister
+#else
+#define MAP_IntUnregister \
+ IntUnregister
+#endif
+#ifdef ROM_IntVTableBaseSet
+#define MAP_IntVTableBaseSet \
+ ROM_IntVTableBaseSet
+#else
+#define MAP_IntVTableBaseSet \
+ IntVTableBaseSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Timer API.
+//
+//*****************************************************************************
+#ifdef ROM_TimerEnable
+#define MAP_TimerEnable \
+ ROM_TimerEnable
+#else
+#define MAP_TimerEnable \
+ TimerEnable
+#endif
+#ifdef ROM_TimerDisable
+#define MAP_TimerDisable \
+ ROM_TimerDisable
+#else
+#define MAP_TimerDisable \
+ TimerDisable
+#endif
+#ifdef ROM_TimerConfigure
+#define MAP_TimerConfigure \
+ ROM_TimerConfigure
+#else
+#define MAP_TimerConfigure \
+ TimerConfigure
+#endif
+#ifdef ROM_TimerControlLevel
+#define MAP_TimerControlLevel \
+ ROM_TimerControlLevel
+#else
+#define MAP_TimerControlLevel \
+ TimerControlLevel
+#endif
+#ifdef ROM_TimerControlEvent
+#define MAP_TimerControlEvent \
+ ROM_TimerControlEvent
+#else
+#define MAP_TimerControlEvent \
+ TimerControlEvent
+#endif
+#ifdef ROM_TimerControlStall
+#define MAP_TimerControlStall \
+ ROM_TimerControlStall
+#else
+#define MAP_TimerControlStall \
+ TimerControlStall
+#endif
+#ifdef ROM_TimerPrescaleSet
+#define MAP_TimerPrescaleSet \
+ ROM_TimerPrescaleSet
+#else
+#define MAP_TimerPrescaleSet \
+ TimerPrescaleSet
+#endif
+#ifdef ROM_TimerPrescaleGet
+#define MAP_TimerPrescaleGet \
+ ROM_TimerPrescaleGet
+#else
+#define MAP_TimerPrescaleGet \
+ TimerPrescaleGet
+#endif
+#ifdef ROM_TimerPrescaleMatchSet
+#define MAP_TimerPrescaleMatchSet \
+ ROM_TimerPrescaleMatchSet
+#else
+#define MAP_TimerPrescaleMatchSet \
+ TimerPrescaleMatchSet
+#endif
+#ifdef ROM_TimerPrescaleMatchGet
+#define MAP_TimerPrescaleMatchGet \
+ ROM_TimerPrescaleMatchGet
+#else
+#define MAP_TimerPrescaleMatchGet \
+ TimerPrescaleMatchGet
+#endif
+#ifdef ROM_TimerLoadSet
+#define MAP_TimerLoadSet \
+ ROM_TimerLoadSet
+#else
+#define MAP_TimerLoadSet \
+ TimerLoadSet
+#endif
+#ifdef ROM_TimerLoadGet
+#define MAP_TimerLoadGet \
+ ROM_TimerLoadGet
+#else
+#define MAP_TimerLoadGet \
+ TimerLoadGet
+#endif
+#ifdef ROM_TimerValueGet
+#define MAP_TimerValueGet \
+ ROM_TimerValueGet
+#else
+#define MAP_TimerValueGet \
+ TimerValueGet
+#endif
+#ifdef ROM_TimerMatchSet
+#define MAP_TimerMatchSet \
+ ROM_TimerMatchSet
+#else
+#define MAP_TimerMatchSet \
+ TimerMatchSet
+#endif
+#ifdef ROM_TimerMatchGet
+#define MAP_TimerMatchGet \
+ ROM_TimerMatchGet
+#else
+#define MAP_TimerMatchGet \
+ TimerMatchGet
+#endif
+#ifdef ROM_TimerIntRegister
+#define MAP_TimerIntRegister \
+ ROM_TimerIntRegister
+#else
+#define MAP_TimerIntRegister \
+ TimerIntRegister
+#endif
+#ifdef ROM_TimerIntUnregister
+#define MAP_TimerIntUnregister \
+ ROM_TimerIntUnregister
+#else
+#define MAP_TimerIntUnregister \
+ TimerIntUnregister
+#endif
+#ifdef ROM_TimerIntEnable
+#define MAP_TimerIntEnable \
+ ROM_TimerIntEnable
+#else
+#define MAP_TimerIntEnable \
+ TimerIntEnable
+#endif
+#ifdef ROM_TimerIntDisable
+#define MAP_TimerIntDisable \
+ ROM_TimerIntDisable
+#else
+#define MAP_TimerIntDisable \
+ TimerIntDisable
+#endif
+#ifdef ROM_TimerIntStatus
+#define MAP_TimerIntStatus \
+ ROM_TimerIntStatus
+#else
+#define MAP_TimerIntStatus \
+ TimerIntStatus
+#endif
+#ifdef ROM_TimerIntClear
+#define MAP_TimerIntClear \
+ ROM_TimerIntClear
+#else
+#define MAP_TimerIntClear \
+ TimerIntClear
+#endif
+#ifdef ROM_TimerValueSet
+#define MAP_TimerValueSet \
+ ROM_TimerValueSet
+#else
+#define MAP_TimerValueSet \
+ TimerValueSet
+#endif
+#ifdef ROM_TimerDMAEventSet
+#define MAP_TimerDMAEventSet \
+ ROM_TimerDMAEventSet
+#else
+#define MAP_TimerDMAEventSet \
+ TimerDMAEventSet
+#endif
+#ifdef ROM_TimerDMAEventGet
+#define MAP_TimerDMAEventGet \
+ ROM_TimerDMAEventGet
+#else
+#define MAP_TimerDMAEventGet \
+ TimerDMAEventGet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the UART API.
+//
+//*****************************************************************************
+#ifdef ROM_UARTParityModeSet
+#define MAP_UARTParityModeSet \
+ ROM_UARTParityModeSet
+#else
+#define MAP_UARTParityModeSet \
+ UARTParityModeSet
+#endif
+#ifdef ROM_UARTParityModeGet
+#define MAP_UARTParityModeGet \
+ ROM_UARTParityModeGet
+#else
+#define MAP_UARTParityModeGet \
+ UARTParityModeGet
+#endif
+#ifdef ROM_UARTFIFOLevelSet
+#define MAP_UARTFIFOLevelSet \
+ ROM_UARTFIFOLevelSet
+#else
+#define MAP_UARTFIFOLevelSet \
+ UARTFIFOLevelSet
+#endif
+#ifdef ROM_UARTFIFOLevelGet
+#define MAP_UARTFIFOLevelGet \
+ ROM_UARTFIFOLevelGet
+#else
+#define MAP_UARTFIFOLevelGet \
+ UARTFIFOLevelGet
+#endif
+#ifdef ROM_UARTConfigSetExpClk
+#define MAP_UARTConfigSetExpClk \
+ ROM_UARTConfigSetExpClk
+#else
+#define MAP_UARTConfigSetExpClk \
+ UARTConfigSetExpClk
+#endif
+#ifdef ROM_UARTConfigGetExpClk
+#define MAP_UARTConfigGetExpClk \
+ ROM_UARTConfigGetExpClk
+#else
+#define MAP_UARTConfigGetExpClk \
+ UARTConfigGetExpClk
+#endif
+#ifdef ROM_UARTEnable
+#define MAP_UARTEnable \
+ ROM_UARTEnable
+#else
+#define MAP_UARTEnable \
+ UARTEnable
+#endif
+#ifdef ROM_UARTDisable
+#define MAP_UARTDisable \
+ ROM_UARTDisable
+#else
+#define MAP_UARTDisable \
+ UARTDisable
+#endif
+#ifdef ROM_UARTFIFOEnable
+#define MAP_UARTFIFOEnable \
+ ROM_UARTFIFOEnable
+#else
+#define MAP_UARTFIFOEnable \
+ UARTFIFOEnable
+#endif
+#ifdef ROM_UARTFIFODisable
+#define MAP_UARTFIFODisable \
+ ROM_UARTFIFODisable
+#else
+#define MAP_UARTFIFODisable \
+ UARTFIFODisable
+#endif
+#ifdef ROM_UARTCharsAvail
+#define MAP_UARTCharsAvail \
+ ROM_UARTCharsAvail
+#else
+#define MAP_UARTCharsAvail \
+ UARTCharsAvail
+#endif
+#ifdef ROM_UARTSpaceAvail
+#define MAP_UARTSpaceAvail \
+ ROM_UARTSpaceAvail
+#else
+#define MAP_UARTSpaceAvail \
+ UARTSpaceAvail
+#endif
+#ifdef ROM_UARTCharGetNonBlocking
+#define MAP_UARTCharGetNonBlocking \
+ ROM_UARTCharGetNonBlocking
+#else
+#define MAP_UARTCharGetNonBlocking \
+ UARTCharGetNonBlocking
+#endif
+#ifdef ROM_UARTCharGet
+#define MAP_UARTCharGet \
+ ROM_UARTCharGet
+#else
+#define MAP_UARTCharGet \
+ UARTCharGet
+#endif
+#ifdef ROM_UARTCharPutNonBlocking
+#define MAP_UARTCharPutNonBlocking \
+ ROM_UARTCharPutNonBlocking
+#else
+#define MAP_UARTCharPutNonBlocking \
+ UARTCharPutNonBlocking
+#endif
+#ifdef ROM_UARTCharPut
+#define MAP_UARTCharPut \
+ ROM_UARTCharPut
+#else
+#define MAP_UARTCharPut \
+ UARTCharPut
+#endif
+#ifdef ROM_UARTBreakCtl
+#define MAP_UARTBreakCtl \
+ ROM_UARTBreakCtl
+#else
+#define MAP_UARTBreakCtl \
+ UARTBreakCtl
+#endif
+#ifdef ROM_UARTBusy
+#define MAP_UARTBusy \
+ ROM_UARTBusy
+#else
+#define MAP_UARTBusy \
+ UARTBusy
+#endif
+#ifdef ROM_UARTIntRegister
+#define MAP_UARTIntRegister \
+ ROM_UARTIntRegister
+#else
+#define MAP_UARTIntRegister \
+ UARTIntRegister
+#endif
+#ifdef ROM_UARTIntUnregister
+#define MAP_UARTIntUnregister \
+ ROM_UARTIntUnregister
+#else
+#define MAP_UARTIntUnregister \
+ UARTIntUnregister
+#endif
+#ifdef ROM_UARTIntEnable
+#define MAP_UARTIntEnable \
+ ROM_UARTIntEnable
+#else
+#define MAP_UARTIntEnable \
+ UARTIntEnable
+#endif
+#ifdef ROM_UARTIntDisable
+#define MAP_UARTIntDisable \
+ ROM_UARTIntDisable
+#else
+#define MAP_UARTIntDisable \
+ UARTIntDisable
+#endif
+#ifdef ROM_UARTIntStatus
+#define MAP_UARTIntStatus \
+ ROM_UARTIntStatus
+#else
+#define MAP_UARTIntStatus \
+ UARTIntStatus
+#endif
+#ifdef ROM_UARTIntClear
+#define MAP_UARTIntClear \
+ ROM_UARTIntClear
+#else
+#define MAP_UARTIntClear \
+ UARTIntClear
+#endif
+#ifdef ROM_UARTDMAEnable
+#define MAP_UARTDMAEnable \
+ ROM_UARTDMAEnable
+#else
+#define MAP_UARTDMAEnable \
+ UARTDMAEnable
+#endif
+#ifdef ROM_UARTDMADisable
+#define MAP_UARTDMADisable \
+ ROM_UARTDMADisable
+#else
+#define MAP_UARTDMADisable \
+ UARTDMADisable
+#endif
+#ifdef ROM_UARTRxErrorGet
+#define MAP_UARTRxErrorGet \
+ ROM_UARTRxErrorGet
+#else
+#define MAP_UARTRxErrorGet \
+ UARTRxErrorGet
+#endif
+#ifdef ROM_UARTRxErrorClear
+#define MAP_UARTRxErrorClear \
+ ROM_UARTRxErrorClear
+#else
+#define MAP_UARTRxErrorClear \
+ UARTRxErrorClear
+#endif
+#ifdef ROM_UARTModemControlSet
+#define MAP_UARTModemControlSet \
+ ROM_UARTModemControlSet
+#else
+#define MAP_UARTModemControlSet \
+ UARTModemControlSet
+#endif
+#ifdef ROM_UARTModemControlClear
+#define MAP_UARTModemControlClear \
+ ROM_UARTModemControlClear
+#else
+#define MAP_UARTModemControlClear \
+ UARTModemControlClear
+#endif
+#ifdef ROM_UARTModemControlGet
+#define MAP_UARTModemControlGet \
+ ROM_UARTModemControlGet
+#else
+#define MAP_UARTModemControlGet \
+ UARTModemControlGet
+#endif
+#ifdef ROM_UARTModemStatusGet
+#define MAP_UARTModemStatusGet \
+ ROM_UARTModemStatusGet
+#else
+#define MAP_UARTModemStatusGet \
+ UARTModemStatusGet
+#endif
+#ifdef ROM_UARTFlowControlSet
+#define MAP_UARTFlowControlSet \
+ ROM_UARTFlowControlSet
+#else
+#define MAP_UARTFlowControlSet \
+ UARTFlowControlSet
+#endif
+#ifdef ROM_UARTFlowControlGet
+#define MAP_UARTFlowControlGet \
+ ROM_UARTFlowControlGet
+#else
+#define MAP_UARTFlowControlGet \
+ UARTFlowControlGet
+#endif
+#ifdef ROM_UARTTxIntModeSet
+#define MAP_UARTTxIntModeSet \
+ ROM_UARTTxIntModeSet
+#else
+#define MAP_UARTTxIntModeSet \
+ UARTTxIntModeSet
+#endif
+#ifdef ROM_UARTTxIntModeGet
+#define MAP_UARTTxIntModeGet \
+ ROM_UARTTxIntModeGet
+#else
+#define MAP_UARTTxIntModeGet \
+ UARTTxIntModeGet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the uDMA API.
+//
+//*****************************************************************************
+#ifdef ROM_uDMAChannelTransferSet
+#define MAP_uDMAChannelTransferSet \
+ ROM_uDMAChannelTransferSet
+#else
+#define MAP_uDMAChannelTransferSet \
+ uDMAChannelTransferSet
+#endif
+#ifdef ROM_uDMAEnable
+#define MAP_uDMAEnable \
+ ROM_uDMAEnable
+#else
+#define MAP_uDMAEnable \
+ uDMAEnable
+#endif
+#ifdef ROM_uDMADisable
+#define MAP_uDMADisable \
+ ROM_uDMADisable
+#else
+#define MAP_uDMADisable \
+ uDMADisable
+#endif
+#ifdef ROM_uDMAErrorStatusGet
+#define MAP_uDMAErrorStatusGet \
+ ROM_uDMAErrorStatusGet
+#else
+#define MAP_uDMAErrorStatusGet \
+ uDMAErrorStatusGet
+#endif
+#ifdef ROM_uDMAErrorStatusClear
+#define MAP_uDMAErrorStatusClear \
+ ROM_uDMAErrorStatusClear
+#else
+#define MAP_uDMAErrorStatusClear \
+ uDMAErrorStatusClear
+#endif
+#ifdef ROM_uDMAChannelEnable
+#define MAP_uDMAChannelEnable \
+ ROM_uDMAChannelEnable
+#else
+#define MAP_uDMAChannelEnable \
+ uDMAChannelEnable
+#endif
+#ifdef ROM_uDMAChannelDisable
+#define MAP_uDMAChannelDisable \
+ ROM_uDMAChannelDisable
+#else
+#define MAP_uDMAChannelDisable \
+ uDMAChannelDisable
+#endif
+#ifdef ROM_uDMAChannelIsEnabled
+#define MAP_uDMAChannelIsEnabled \
+ ROM_uDMAChannelIsEnabled
+#else
+#define MAP_uDMAChannelIsEnabled \
+ uDMAChannelIsEnabled
+#endif
+#ifdef ROM_uDMAControlBaseSet
+#define MAP_uDMAControlBaseSet \
+ ROM_uDMAControlBaseSet
+#else
+#define MAP_uDMAControlBaseSet \
+ uDMAControlBaseSet
+#endif
+#ifdef ROM_uDMAControlBaseGet
+#define MAP_uDMAControlBaseGet \
+ ROM_uDMAControlBaseGet
+#else
+#define MAP_uDMAControlBaseGet \
+ uDMAControlBaseGet
+#endif
+#ifdef ROM_uDMAChannelRequest
+#define MAP_uDMAChannelRequest \
+ ROM_uDMAChannelRequest
+#else
+#define MAP_uDMAChannelRequest \
+ uDMAChannelRequest
+#endif
+#ifdef ROM_uDMAChannelAttributeEnable
+#define MAP_uDMAChannelAttributeEnable \
+ ROM_uDMAChannelAttributeEnable
+#else
+#define MAP_uDMAChannelAttributeEnable \
+ uDMAChannelAttributeEnable
+#endif
+#ifdef ROM_uDMAChannelAttributeDisable
+#define MAP_uDMAChannelAttributeDisable \
+ ROM_uDMAChannelAttributeDisable
+#else
+#define MAP_uDMAChannelAttributeDisable \
+ uDMAChannelAttributeDisable
+#endif
+#ifdef ROM_uDMAChannelAttributeGet
+#define MAP_uDMAChannelAttributeGet \
+ ROM_uDMAChannelAttributeGet
+#else
+#define MAP_uDMAChannelAttributeGet \
+ uDMAChannelAttributeGet
+#endif
+#ifdef ROM_uDMAChannelControlSet
+#define MAP_uDMAChannelControlSet \
+ ROM_uDMAChannelControlSet
+#else
+#define MAP_uDMAChannelControlSet \
+ uDMAChannelControlSet
+#endif
+#ifdef ROM_uDMAChannelSizeGet
+#define MAP_uDMAChannelSizeGet \
+ ROM_uDMAChannelSizeGet
+#else
+#define MAP_uDMAChannelSizeGet \
+ uDMAChannelSizeGet
+#endif
+#ifdef ROM_uDMAChannelModeGet
+#define MAP_uDMAChannelModeGet \
+ ROM_uDMAChannelModeGet
+#else
+#define MAP_uDMAChannelModeGet \
+ uDMAChannelModeGet
+#endif
+#ifdef ROM_uDMAIntStatus
+#define MAP_uDMAIntStatus \
+ ROM_uDMAIntStatus
+#else
+#define MAP_uDMAIntStatus \
+ uDMAIntStatus
+#endif
+#ifdef ROM_uDMAIntClear
+#define MAP_uDMAIntClear \
+ ROM_uDMAIntClear
+#else
+#define MAP_uDMAIntClear \
+ uDMAIntClear
+#endif
+#ifdef ROM_uDMAControlAlternateBaseGet
+#define MAP_uDMAControlAlternateBaseGet \
+ ROM_uDMAControlAlternateBaseGet
+#else
+#define MAP_uDMAControlAlternateBaseGet \
+ uDMAControlAlternateBaseGet
+#endif
+#ifdef ROM_uDMAChannelScatterGatherSet
+#define MAP_uDMAChannelScatterGatherSet \
+ ROM_uDMAChannelScatterGatherSet
+#else
+#define MAP_uDMAChannelScatterGatherSet \
+ uDMAChannelScatterGatherSet
+#endif
+#ifdef ROM_uDMAChannelAssign
+#define MAP_uDMAChannelAssign \
+ ROM_uDMAChannelAssign
+#else
+#define MAP_uDMAChannelAssign \
+ uDMAChannelAssign
+#endif
+#ifdef ROM_uDMAIntRegister
+#define MAP_uDMAIntRegister \
+ ROM_uDMAIntRegister
+#else
+#define MAP_uDMAIntRegister \
+ uDMAIntRegister
+#endif
+#ifdef ROM_uDMAIntUnregister
+#define MAP_uDMAIntUnregister \
+ ROM_uDMAIntUnregister
+#else
+#define MAP_uDMAIntUnregister \
+ uDMAIntUnregister
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Watchdog API.
+//
+//*****************************************************************************
+#ifdef ROM_WatchdogIntClear
+#define MAP_WatchdogIntClear \
+ ROM_WatchdogIntClear
+#else
+#define MAP_WatchdogIntClear \
+ WatchdogIntClear
+#endif
+#ifdef ROM_WatchdogRunning
+#define MAP_WatchdogRunning \
+ ROM_WatchdogRunning
+#else
+#define MAP_WatchdogRunning \
+ WatchdogRunning
+#endif
+#ifdef ROM_WatchdogEnable
+#define MAP_WatchdogEnable \
+ ROM_WatchdogEnable
+#else
+#define MAP_WatchdogEnable \
+ WatchdogEnable
+#endif
+#ifdef ROM_WatchdogLock
+#define MAP_WatchdogLock \
+ ROM_WatchdogLock
+#else
+#define MAP_WatchdogLock \
+ WatchdogLock
+#endif
+#ifdef ROM_WatchdogUnlock
+#define MAP_WatchdogUnlock \
+ ROM_WatchdogUnlock
+#else
+#define MAP_WatchdogUnlock \
+ WatchdogUnlock
+#endif
+#ifdef ROM_WatchdogLockState
+#define MAP_WatchdogLockState \
+ ROM_WatchdogLockState
+#else
+#define MAP_WatchdogLockState \
+ WatchdogLockState
+#endif
+#ifdef ROM_WatchdogReloadSet
+#define MAP_WatchdogReloadSet \
+ ROM_WatchdogReloadSet
+#else
+#define MAP_WatchdogReloadSet \
+ WatchdogReloadSet
+#endif
+#ifdef ROM_WatchdogReloadGet
+#define MAP_WatchdogReloadGet \
+ ROM_WatchdogReloadGet
+#else
+#define MAP_WatchdogReloadGet \
+ WatchdogReloadGet
+#endif
+#ifdef ROM_WatchdogValueGet
+#define MAP_WatchdogValueGet \
+ ROM_WatchdogValueGet
+#else
+#define MAP_WatchdogValueGet \
+ WatchdogValueGet
+#endif
+#ifdef ROM_WatchdogIntStatus
+#define MAP_WatchdogIntStatus \
+ ROM_WatchdogIntStatus
+#else
+#define MAP_WatchdogIntStatus \
+ WatchdogIntStatus
+#endif
+#ifdef ROM_WatchdogStallEnable
+#define MAP_WatchdogStallEnable \
+ ROM_WatchdogStallEnable
+#else
+#define MAP_WatchdogStallEnable \
+ WatchdogStallEnable
+#endif
+#ifdef ROM_WatchdogStallDisable
+#define MAP_WatchdogStallDisable \
+ ROM_WatchdogStallDisable
+#else
+#define MAP_WatchdogStallDisable \
+ WatchdogStallDisable
+#endif
+#ifdef ROM_WatchdogIntRegister
+#define MAP_WatchdogIntRegister \
+ ROM_WatchdogIntRegister
+#else
+#define MAP_WatchdogIntRegister \
+ WatchdogIntRegister
+#endif
+#ifdef ROM_WatchdogIntUnregister
+#define MAP_WatchdogIntUnregister \
+ ROM_WatchdogIntUnregister
+#else
+#define MAP_WatchdogIntUnregister \
+ WatchdogIntUnregister
+#endif
+
+//*****************************************************************************
+//
+// Macros for the I2C API.
+//
+//*****************************************************************************
+#ifdef ROM_I2CIntRegister
+#define MAP_I2CIntRegister \
+ ROM_I2CIntRegister
+#else
+#define MAP_I2CIntRegister \
+ I2CIntRegister
+#endif
+#ifdef ROM_I2CIntUnregister
+#define MAP_I2CIntUnregister \
+ ROM_I2CIntUnregister
+#else
+#define MAP_I2CIntUnregister \
+ I2CIntUnregister
+#endif
+#ifdef ROM_I2CTxFIFOConfigSet
+#define MAP_I2CTxFIFOConfigSet \
+ ROM_I2CTxFIFOConfigSet
+#else
+#define MAP_I2CTxFIFOConfigSet \
+ I2CTxFIFOConfigSet
+#endif
+#ifdef ROM_I2CTxFIFOFlush
+#define MAP_I2CTxFIFOFlush \
+ ROM_I2CTxFIFOFlush
+#else
+#define MAP_I2CTxFIFOFlush \
+ I2CTxFIFOFlush
+#endif
+#ifdef ROM_I2CRxFIFOConfigSet
+#define MAP_I2CRxFIFOConfigSet \
+ ROM_I2CRxFIFOConfigSet
+#else
+#define MAP_I2CRxFIFOConfigSet \
+ I2CRxFIFOConfigSet
+#endif
+#ifdef ROM_I2CRxFIFOFlush
+#define MAP_I2CRxFIFOFlush \
+ ROM_I2CRxFIFOFlush
+#else
+#define MAP_I2CRxFIFOFlush \
+ I2CRxFIFOFlush
+#endif
+#ifdef ROM_I2CFIFOStatus
+#define MAP_I2CFIFOStatus \
+ ROM_I2CFIFOStatus
+#else
+#define MAP_I2CFIFOStatus \
+ I2CFIFOStatus
+#endif
+#ifdef ROM_I2CFIFODataPut
+#define MAP_I2CFIFODataPut \
+ ROM_I2CFIFODataPut
+#else
+#define MAP_I2CFIFODataPut \
+ I2CFIFODataPut
+#endif
+#ifdef ROM_I2CFIFODataPutNonBlocking
+#define MAP_I2CFIFODataPutNonBlocking \
+ ROM_I2CFIFODataPutNonBlocking
+#else
+#define MAP_I2CFIFODataPutNonBlocking \
+ I2CFIFODataPutNonBlocking
+#endif
+#ifdef ROM_I2CFIFODataGet
+#define MAP_I2CFIFODataGet \
+ ROM_I2CFIFODataGet
+#else
+#define MAP_I2CFIFODataGet \
+ I2CFIFODataGet
+#endif
+#ifdef ROM_I2CFIFODataGetNonBlocking
+#define MAP_I2CFIFODataGetNonBlocking \
+ ROM_I2CFIFODataGetNonBlocking
+#else
+#define MAP_I2CFIFODataGetNonBlocking \
+ I2CFIFODataGetNonBlocking
+#endif
+#ifdef ROM_I2CMasterBurstLengthSet
+#define MAP_I2CMasterBurstLengthSet \
+ ROM_I2CMasterBurstLengthSet
+#else
+#define MAP_I2CMasterBurstLengthSet \
+ I2CMasterBurstLengthSet
+#endif
+#ifdef ROM_I2CMasterBurstCountGet
+#define MAP_I2CMasterBurstCountGet \
+ ROM_I2CMasterBurstCountGet
+#else
+#define MAP_I2CMasterBurstCountGet \
+ I2CMasterBurstCountGet
+#endif
+#ifdef ROM_I2CMasterGlitchFilterConfigSet
+#define MAP_I2CMasterGlitchFilterConfigSet \
+ ROM_I2CMasterGlitchFilterConfigSet
+#else
+#define MAP_I2CMasterGlitchFilterConfigSet \
+ I2CMasterGlitchFilterConfigSet
+#endif
+#ifdef ROM_I2CSlaveFIFOEnable
+#define MAP_I2CSlaveFIFOEnable \
+ ROM_I2CSlaveFIFOEnable
+#else
+#define MAP_I2CSlaveFIFOEnable \
+ I2CSlaveFIFOEnable
+#endif
+#ifdef ROM_I2CSlaveFIFODisable
+#define MAP_I2CSlaveFIFODisable \
+ ROM_I2CSlaveFIFODisable
+#else
+#define MAP_I2CSlaveFIFODisable \
+ I2CSlaveFIFODisable
+#endif
+#ifdef ROM_I2CMasterBusBusy
+#define MAP_I2CMasterBusBusy \
+ ROM_I2CMasterBusBusy
+#else
+#define MAP_I2CMasterBusBusy \
+ I2CMasterBusBusy
+#endif
+#ifdef ROM_I2CMasterBusy
+#define MAP_I2CMasterBusy \
+ ROM_I2CMasterBusy
+#else
+#define MAP_I2CMasterBusy \
+ I2CMasterBusy
+#endif
+#ifdef ROM_I2CMasterControl
+#define MAP_I2CMasterControl \
+ ROM_I2CMasterControl
+#else
+#define MAP_I2CMasterControl \
+ I2CMasterControl
+#endif
+#ifdef ROM_I2CMasterDataGet
+#define MAP_I2CMasterDataGet \
+ ROM_I2CMasterDataGet
+#else
+#define MAP_I2CMasterDataGet \
+ I2CMasterDataGet
+#endif
+#ifdef ROM_I2CMasterDataPut
+#define MAP_I2CMasterDataPut \
+ ROM_I2CMasterDataPut
+#else
+#define MAP_I2CMasterDataPut \
+ I2CMasterDataPut
+#endif
+#ifdef ROM_I2CMasterDisable
+#define MAP_I2CMasterDisable \
+ ROM_I2CMasterDisable
+#else
+#define MAP_I2CMasterDisable \
+ I2CMasterDisable
+#endif
+#ifdef ROM_I2CMasterEnable
+#define MAP_I2CMasterEnable \
+ ROM_I2CMasterEnable
+#else
+#define MAP_I2CMasterEnable \
+ I2CMasterEnable
+#endif
+#ifdef ROM_I2CMasterErr
+#define MAP_I2CMasterErr \
+ ROM_I2CMasterErr
+#else
+#define MAP_I2CMasterErr \
+ I2CMasterErr
+#endif
+#ifdef ROM_I2CMasterIntClear
+#define MAP_I2CMasterIntClear \
+ ROM_I2CMasterIntClear
+#else
+#define MAP_I2CMasterIntClear \
+ I2CMasterIntClear
+#endif
+#ifdef ROM_I2CMasterIntDisable
+#define MAP_I2CMasterIntDisable \
+ ROM_I2CMasterIntDisable
+#else
+#define MAP_I2CMasterIntDisable \
+ I2CMasterIntDisable
+#endif
+#ifdef ROM_I2CMasterIntEnable
+#define MAP_I2CMasterIntEnable \
+ ROM_I2CMasterIntEnable
+#else
+#define MAP_I2CMasterIntEnable \
+ I2CMasterIntEnable
+#endif
+#ifdef ROM_I2CMasterIntStatus
+#define MAP_I2CMasterIntStatus \
+ ROM_I2CMasterIntStatus
+#else
+#define MAP_I2CMasterIntStatus \
+ I2CMasterIntStatus
+#endif
+#ifdef ROM_I2CMasterIntEnableEx
+#define MAP_I2CMasterIntEnableEx \
+ ROM_I2CMasterIntEnableEx
+#else
+#define MAP_I2CMasterIntEnableEx \
+ I2CMasterIntEnableEx
+#endif
+#ifdef ROM_I2CMasterIntDisableEx
+#define MAP_I2CMasterIntDisableEx \
+ ROM_I2CMasterIntDisableEx
+#else
+#define MAP_I2CMasterIntDisableEx \
+ I2CMasterIntDisableEx
+#endif
+#ifdef ROM_I2CMasterIntStatusEx
+#define MAP_I2CMasterIntStatusEx \
+ ROM_I2CMasterIntStatusEx
+#else
+#define MAP_I2CMasterIntStatusEx \
+ I2CMasterIntStatusEx
+#endif
+#ifdef ROM_I2CMasterIntClearEx
+#define MAP_I2CMasterIntClearEx \
+ ROM_I2CMasterIntClearEx
+#else
+#define MAP_I2CMasterIntClearEx \
+ I2CMasterIntClearEx
+#endif
+#ifdef ROM_I2CMasterTimeoutSet
+#define MAP_I2CMasterTimeoutSet \
+ ROM_I2CMasterTimeoutSet
+#else
+#define MAP_I2CMasterTimeoutSet \
+ I2CMasterTimeoutSet
+#endif
+#ifdef ROM_I2CSlaveACKOverride
+#define MAP_I2CSlaveACKOverride \
+ ROM_I2CSlaveACKOverride
+#else
+#define MAP_I2CSlaveACKOverride \
+ I2CSlaveACKOverride
+#endif
+#ifdef ROM_I2CSlaveACKValueSet
+#define MAP_I2CSlaveACKValueSet \
+ ROM_I2CSlaveACKValueSet
+#else
+#define MAP_I2CSlaveACKValueSet \
+ I2CSlaveACKValueSet
+#endif
+#ifdef ROM_I2CMasterLineStateGet
+#define MAP_I2CMasterLineStateGet \
+ ROM_I2CMasterLineStateGet
+#else
+#define MAP_I2CMasterLineStateGet \
+ I2CMasterLineStateGet
+#endif
+#ifdef ROM_I2CMasterSlaveAddrSet
+#define MAP_I2CMasterSlaveAddrSet \
+ ROM_I2CMasterSlaveAddrSet
+#else
+#define MAP_I2CMasterSlaveAddrSet \
+ I2CMasterSlaveAddrSet
+#endif
+#ifdef ROM_I2CSlaveDataGet
+#define MAP_I2CSlaveDataGet \
+ ROM_I2CSlaveDataGet
+#else
+#define MAP_I2CSlaveDataGet \
+ I2CSlaveDataGet
+#endif
+#ifdef ROM_I2CSlaveDataPut
+#define MAP_I2CSlaveDataPut \
+ ROM_I2CSlaveDataPut
+#else
+#define MAP_I2CSlaveDataPut \
+ I2CSlaveDataPut
+#endif
+#ifdef ROM_I2CSlaveDisable
+#define MAP_I2CSlaveDisable \
+ ROM_I2CSlaveDisable
+#else
+#define MAP_I2CSlaveDisable \
+ I2CSlaveDisable
+#endif
+#ifdef ROM_I2CSlaveEnable
+#define MAP_I2CSlaveEnable \
+ ROM_I2CSlaveEnable
+#else
+#define MAP_I2CSlaveEnable \
+ I2CSlaveEnable
+#endif
+#ifdef ROM_I2CSlaveInit
+#define MAP_I2CSlaveInit \
+ ROM_I2CSlaveInit
+#else
+#define MAP_I2CSlaveInit \
+ I2CSlaveInit
+#endif
+#ifdef ROM_I2CSlaveAddressSet
+#define MAP_I2CSlaveAddressSet \
+ ROM_I2CSlaveAddressSet
+#else
+#define MAP_I2CSlaveAddressSet \
+ I2CSlaveAddressSet
+#endif
+#ifdef ROM_I2CSlaveIntClear
+#define MAP_I2CSlaveIntClear \
+ ROM_I2CSlaveIntClear
+#else
+#define MAP_I2CSlaveIntClear \
+ I2CSlaveIntClear
+#endif
+#ifdef ROM_I2CSlaveIntDisable
+#define MAP_I2CSlaveIntDisable \
+ ROM_I2CSlaveIntDisable
+#else
+#define MAP_I2CSlaveIntDisable \
+ I2CSlaveIntDisable
+#endif
+#ifdef ROM_I2CSlaveIntEnable
+#define MAP_I2CSlaveIntEnable \
+ ROM_I2CSlaveIntEnable
+#else
+#define MAP_I2CSlaveIntEnable \
+ I2CSlaveIntEnable
+#endif
+#ifdef ROM_I2CSlaveIntClearEx
+#define MAP_I2CSlaveIntClearEx \
+ ROM_I2CSlaveIntClearEx
+#else
+#define MAP_I2CSlaveIntClearEx \
+ I2CSlaveIntClearEx
+#endif
+#ifdef ROM_I2CSlaveIntDisableEx
+#define MAP_I2CSlaveIntDisableEx \
+ ROM_I2CSlaveIntDisableEx
+#else
+#define MAP_I2CSlaveIntDisableEx \
+ I2CSlaveIntDisableEx
+#endif
+#ifdef ROM_I2CSlaveIntEnableEx
+#define MAP_I2CSlaveIntEnableEx \
+ ROM_I2CSlaveIntEnableEx
+#else
+#define MAP_I2CSlaveIntEnableEx \
+ I2CSlaveIntEnableEx
+#endif
+#ifdef ROM_I2CSlaveIntStatus
+#define MAP_I2CSlaveIntStatus \
+ ROM_I2CSlaveIntStatus
+#else
+#define MAP_I2CSlaveIntStatus \
+ I2CSlaveIntStatus
+#endif
+#ifdef ROM_I2CSlaveIntStatusEx
+#define MAP_I2CSlaveIntStatusEx \
+ ROM_I2CSlaveIntStatusEx
+#else
+#define MAP_I2CSlaveIntStatusEx \
+ I2CSlaveIntStatusEx
+#endif
+#ifdef ROM_I2CSlaveStatus
+#define MAP_I2CSlaveStatus \
+ ROM_I2CSlaveStatus
+#else
+#define MAP_I2CSlaveStatus \
+ I2CSlaveStatus
+#endif
+#ifdef ROM_I2CMasterInitExpClk
+#define MAP_I2CMasterInitExpClk \
+ ROM_I2CMasterInitExpClk
+#else
+#define MAP_I2CMasterInitExpClk \
+ I2CMasterInitExpClk
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SPI API.
+//
+//*****************************************************************************
+#ifdef ROM_SPIEnable
+#define MAP_SPIEnable \
+ ROM_SPIEnable
+#else
+#define MAP_SPIEnable \
+ SPIEnable
+#endif
+#ifdef ROM_SPIDisable
+#define MAP_SPIDisable \
+ ROM_SPIDisable
+#else
+#define MAP_SPIDisable \
+ SPIDisable
+#endif
+#ifdef ROM_SPIReset
+#define MAP_SPIReset \
+ ROM_SPIReset
+#else
+#define MAP_SPIReset \
+ SPIReset
+#endif
+#ifdef ROM_SPIConfigSetExpClk
+#define MAP_SPIConfigSetExpClk \
+ ROM_SPIConfigSetExpClk
+#else
+#define MAP_SPIConfigSetExpClk \
+ SPIConfigSetExpClk
+#endif
+#ifdef ROM_SPIDataGetNonBlocking
+#define MAP_SPIDataGetNonBlocking \
+ ROM_SPIDataGetNonBlocking
+#else
+#define MAP_SPIDataGetNonBlocking \
+ SPIDataGetNonBlocking
+#endif
+#ifdef ROM_SPIDataGet
+#define MAP_SPIDataGet \
+ ROM_SPIDataGet
+#else
+#define MAP_SPIDataGet \
+ SPIDataGet
+#endif
+#ifdef ROM_SPIDataPutNonBlocking
+#define MAP_SPIDataPutNonBlocking \
+ ROM_SPIDataPutNonBlocking
+#else
+#define MAP_SPIDataPutNonBlocking \
+ SPIDataPutNonBlocking
+#endif
+#ifdef ROM_SPIDataPut
+#define MAP_SPIDataPut \
+ ROM_SPIDataPut
+#else
+#define MAP_SPIDataPut \
+ SPIDataPut
+#endif
+#ifdef ROM_SPIFIFOEnable
+#define MAP_SPIFIFOEnable \
+ ROM_SPIFIFOEnable
+#else
+#define MAP_SPIFIFOEnable \
+ SPIFIFOEnable
+#endif
+#ifdef ROM_SPIFIFODisable
+#define MAP_SPIFIFODisable \
+ ROM_SPIFIFODisable
+#else
+#define MAP_SPIFIFODisable \
+ SPIFIFODisable
+#endif
+#ifdef ROM_SPIFIFOLevelSet
+#define MAP_SPIFIFOLevelSet \
+ ROM_SPIFIFOLevelSet
+#else
+#define MAP_SPIFIFOLevelSet \
+ SPIFIFOLevelSet
+#endif
+#ifdef ROM_SPIFIFOLevelGet
+#define MAP_SPIFIFOLevelGet \
+ ROM_SPIFIFOLevelGet
+#else
+#define MAP_SPIFIFOLevelGet \
+ SPIFIFOLevelGet
+#endif
+#ifdef ROM_SPIWordCountSet
+#define MAP_SPIWordCountSet \
+ ROM_SPIWordCountSet
+#else
+#define MAP_SPIWordCountSet \
+ SPIWordCountSet
+#endif
+#ifdef ROM_SPIIntRegister
+#define MAP_SPIIntRegister \
+ ROM_SPIIntRegister
+#else
+#define MAP_SPIIntRegister \
+ SPIIntRegister
+#endif
+#ifdef ROM_SPIIntUnregister
+#define MAP_SPIIntUnregister \
+ ROM_SPIIntUnregister
+#else
+#define MAP_SPIIntUnregister \
+ SPIIntUnregister
+#endif
+#ifdef ROM_SPIIntEnable
+#define MAP_SPIIntEnable \
+ ROM_SPIIntEnable
+#else
+#define MAP_SPIIntEnable \
+ SPIIntEnable
+#endif
+#ifdef ROM_SPIIntDisable
+#define MAP_SPIIntDisable \
+ ROM_SPIIntDisable
+#else
+#define MAP_SPIIntDisable \
+ SPIIntDisable
+#endif
+#ifdef ROM_SPIIntStatus
+#define MAP_SPIIntStatus \
+ ROM_SPIIntStatus
+#else
+#define MAP_SPIIntStatus \
+ SPIIntStatus
+#endif
+#ifdef ROM_SPIIntClear
+#define MAP_SPIIntClear \
+ ROM_SPIIntClear
+#else
+#define MAP_SPIIntClear \
+ SPIIntClear
+#endif
+#ifdef ROM_SPIDmaEnable
+#define MAP_SPIDmaEnable \
+ ROM_SPIDmaEnable
+#else
+#define MAP_SPIDmaEnable \
+ SPIDmaEnable
+#endif
+#ifdef ROM_SPIDmaDisable
+#define MAP_SPIDmaDisable \
+ ROM_SPIDmaDisable
+#else
+#define MAP_SPIDmaDisable \
+ SPIDmaDisable
+#endif
+#ifdef ROM_SPICSEnable
+#define MAP_SPICSEnable \
+ ROM_SPICSEnable
+#else
+#define MAP_SPICSEnable \
+ SPICSEnable
+#endif
+#ifdef ROM_SPICSDisable
+#define MAP_SPICSDisable \
+ ROM_SPICSDisable
+#else
+#define MAP_SPICSDisable \
+ SPICSDisable
+#endif
+#ifdef ROM_SPITransfer
+#define MAP_SPITransfer \
+ ROM_SPITransfer
+#else
+#define MAP_SPITransfer \
+ SPITransfer
+#endif
+
+//*****************************************************************************
+//
+// Macros for the CAM API.
+//
+//*****************************************************************************
+#ifdef ROM_CameraReset
+#define MAP_CameraReset \
+ ROM_CameraReset
+#else
+#define MAP_CameraReset \
+ CameraReset
+#endif
+#ifdef ROM_CameraParamsConfig
+#define MAP_CameraParamsConfig \
+ ROM_CameraParamsConfig
+#else
+#define MAP_CameraParamsConfig \
+ CameraParamsConfig
+#endif
+#ifdef ROM_CameraXClkConfig
+#define MAP_CameraXClkConfig \
+ ROM_CameraXClkConfig
+#else
+#define MAP_CameraXClkConfig \
+ CameraXClkConfig
+#endif
+#ifdef ROM_CameraXClkSet
+#define MAP_CameraXClkSet \
+ ROM_CameraXClkSet
+#else
+#define MAP_CameraXClkSet \
+ CameraXClkSet
+#endif
+#ifdef ROM_CameraDMAEnable
+#define MAP_CameraDMAEnable \
+ ROM_CameraDMAEnable
+#else
+#define MAP_CameraDMAEnable \
+ CameraDMAEnable
+#endif
+#ifdef ROM_CameraDMADisable
+#define MAP_CameraDMADisable \
+ ROM_CameraDMADisable
+#else
+#define MAP_CameraDMADisable \
+ CameraDMADisable
+#endif
+#ifdef ROM_CameraThresholdSet
+#define MAP_CameraThresholdSet \
+ ROM_CameraThresholdSet
+#else
+#define MAP_CameraThresholdSet \
+ CameraThresholdSet
+#endif
+#ifdef ROM_CameraIntRegister
+#define MAP_CameraIntRegister \
+ ROM_CameraIntRegister
+#else
+#define MAP_CameraIntRegister \
+ CameraIntRegister
+#endif
+#ifdef ROM_CameraIntUnregister
+#define MAP_CameraIntUnregister \
+ ROM_CameraIntUnregister
+#else
+#define MAP_CameraIntUnregister \
+ CameraIntUnregister
+#endif
+#ifdef ROM_CameraIntEnable
+#define MAP_CameraIntEnable \
+ ROM_CameraIntEnable
+#else
+#define MAP_CameraIntEnable \
+ CameraIntEnable
+#endif
+#ifdef ROM_CameraIntDisable
+#define MAP_CameraIntDisable \
+ ROM_CameraIntDisable
+#else
+#define MAP_CameraIntDisable \
+ CameraIntDisable
+#endif
+#ifdef ROM_CameraIntStatus
+#define MAP_CameraIntStatus \
+ ROM_CameraIntStatus
+#else
+#define MAP_CameraIntStatus \
+ CameraIntStatus
+#endif
+#ifdef ROM_CameraIntClear
+#define MAP_CameraIntClear \
+ ROM_CameraIntClear
+#else
+#define MAP_CameraIntClear \
+ CameraIntClear
+#endif
+#ifdef ROM_CameraCaptureStop
+#define MAP_CameraCaptureStop \
+ ROM_CameraCaptureStop
+#else
+#define MAP_CameraCaptureStop \
+ CameraCaptureStop
+#endif
+#ifdef ROM_CameraCaptureStart
+#define MAP_CameraCaptureStart \
+ ROM_CameraCaptureStart
+#else
+#define MAP_CameraCaptureStart \
+ CameraCaptureStart
+#endif
+#ifdef ROM_CameraBufferRead
+#define MAP_CameraBufferRead \
+ ROM_CameraBufferRead
+#else
+#define MAP_CameraBufferRead \
+ CameraBufferRead
+#endif
+
+//*****************************************************************************
+//
+// Macros for the FLASH API.
+//
+//*****************************************************************************
+#ifdef ROM_FlashDisable
+#define MAP_FlashDisable \
+ ROM_FlashDisable
+#else
+#define MAP_FlashDisable \
+ FlashDisable
+#endif
+#ifdef ROM_FlashErase
+#define MAP_FlashErase \
+ ROM_FlashErase
+#else
+#define MAP_FlashErase \
+ FlashErase
+#endif
+#ifdef ROM_FlashMassErase
+#define MAP_FlashMassErase \
+ ROM_FlashMassErase
+#else
+#define MAP_FlashMassErase \
+ FlashMassErase
+#endif
+#ifdef ROM_FlashMassEraseNonBlocking
+#define MAP_FlashMassEraseNonBlocking \
+ ROM_FlashMassEraseNonBlocking
+#else
+#define MAP_FlashMassEraseNonBlocking \
+ FlashMassEraseNonBlocking
+#endif
+#ifdef ROM_FlashEraseNonBlocking
+#define MAP_FlashEraseNonBlocking \
+ ROM_FlashEraseNonBlocking
+#else
+#define MAP_FlashEraseNonBlocking \
+ FlashEraseNonBlocking
+#endif
+#ifdef ROM_FlashProgram
+#define MAP_FlashProgram \
+ ROM_FlashProgram
+#else
+#define MAP_FlashProgram \
+ FlashProgram
+#endif
+#ifdef ROM_FlashProgramNonBlocking
+#define MAP_FlashProgramNonBlocking \
+ ROM_FlashProgramNonBlocking
+#else
+#define MAP_FlashProgramNonBlocking \
+ FlashProgramNonBlocking
+#endif
+#ifdef ROM_FlashIntRegister
+#define MAP_FlashIntRegister \
+ ROM_FlashIntRegister
+#else
+#define MAP_FlashIntRegister \
+ FlashIntRegister
+#endif
+#ifdef ROM_FlashIntUnregister
+#define MAP_FlashIntUnregister \
+ ROM_FlashIntUnregister
+#else
+#define MAP_FlashIntUnregister \
+ FlashIntUnregister
+#endif
+#ifdef ROM_FlashIntEnable
+#define MAP_FlashIntEnable \
+ ROM_FlashIntEnable
+#else
+#define MAP_FlashIntEnable \
+ FlashIntEnable
+#endif
+#ifdef ROM_FlashIntDisable
+#define MAP_FlashIntDisable \
+ ROM_FlashIntDisable
+#else
+#define MAP_FlashIntDisable \
+ FlashIntDisable
+#endif
+#ifdef ROM_FlashIntStatus
+#define MAP_FlashIntStatus \
+ ROM_FlashIntStatus
+#else
+#define MAP_FlashIntStatus \
+ FlashIntStatus
+#endif
+#ifdef ROM_FlashIntClear
+#define MAP_FlashIntClear \
+ ROM_FlashIntClear
+#else
+#define MAP_FlashIntClear \
+ FlashIntClear
+#endif
+#ifdef ROM_FlashProtectGet
+#define MAP_FlashProtectGet \
+ ROM_FlashProtectGet
+#else
+#define MAP_FlashProtectGet \
+ FlashProtectGet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the Pin API.
+//
+//*****************************************************************************
+#ifdef ROM_PinModeSet
+#define MAP_PinModeSet \
+ ROM_PinModeSet
+#else
+#define MAP_PinModeSet \
+ PinModeSet
+#endif
+#ifdef ROM_PinDirModeSet
+#define MAP_PinDirModeSet \
+ ROM_PinDirModeSet
+#else
+#define MAP_PinDirModeSet \
+ PinDirModeSet
+#endif
+#ifdef ROM_PinDirModeGet
+#define MAP_PinDirModeGet \
+ ROM_PinDirModeGet
+#else
+#define MAP_PinDirModeGet \
+ PinDirModeGet
+#endif
+#ifdef ROM_PinModeGet
+#define MAP_PinModeGet \
+ ROM_PinModeGet
+#else
+#define MAP_PinModeGet \
+ PinModeGet
+#endif
+#ifdef ROM_PinConfigGet
+#define MAP_PinConfigGet \
+ ROM_PinConfigGet
+#else
+#define MAP_PinConfigGet \
+ PinConfigGet
+#endif
+#ifdef ROM_PinConfigSet
+#define MAP_PinConfigSet \
+ ROM_PinConfigSet
+#else
+#define MAP_PinConfigSet \
+ PinConfigSet
+#endif
+#ifdef ROM_PinTypeUART
+#define MAP_PinTypeUART \
+ ROM_PinTypeUART
+#else
+#define MAP_PinTypeUART \
+ PinTypeUART
+#endif
+#ifdef ROM_PinTypeI2C
+#define MAP_PinTypeI2C \
+ ROM_PinTypeI2C
+#else
+#define MAP_PinTypeI2C \
+ PinTypeI2C
+#endif
+#ifdef ROM_PinTypeSPI
+#define MAP_PinTypeSPI \
+ ROM_PinTypeSPI
+#else
+#define MAP_PinTypeSPI \
+ PinTypeSPI
+#endif
+#ifdef ROM_PinTypeI2S
+#define MAP_PinTypeI2S \
+ ROM_PinTypeI2S
+#else
+#define MAP_PinTypeI2S \
+ PinTypeI2S
+#endif
+#ifdef ROM_PinTypeTimer
+#define MAP_PinTypeTimer \
+ ROM_PinTypeTimer
+#else
+#define MAP_PinTypeTimer \
+ PinTypeTimer
+#endif
+#ifdef ROM_PinTypeCamera
+#define MAP_PinTypeCamera \
+ ROM_PinTypeCamera
+#else
+#define MAP_PinTypeCamera \
+ PinTypeCamera
+#endif
+#ifdef ROM_PinTypeGPIO
+#define MAP_PinTypeGPIO \
+ ROM_PinTypeGPIO
+#else
+#define MAP_PinTypeGPIO \
+ PinTypeGPIO
+#endif
+#ifdef ROM_PinTypeADC
+#define MAP_PinTypeADC \
+ ROM_PinTypeADC
+#else
+#define MAP_PinTypeADC \
+ PinTypeADC
+#endif
+#ifdef ROM_PinTypeSDHost
+#define MAP_PinTypeSDHost \
+ ROM_PinTypeSDHost
+#else
+#define MAP_PinTypeSDHost \
+ PinTypeSDHost
+#endif
+#ifdef ROM_PinHysteresisSet
+#define MAP_PinHysteresisSet \
+ ROM_PinHysteresisSet
+#else
+#define MAP_PinHysteresisSet \
+ PinHysteresisSet
+#endif
+#ifdef ROM_PinLockLevelSet
+#define MAP_PinLockLevelSet \
+ ROM_PinLockLevelSet
+#else
+#define MAP_PinLockLevelSet \
+ PinLockLevelSet
+#endif
+#ifdef ROM_PinLock
+#define MAP_PinLock \
+ ROM_PinLock
+#else
+#define MAP_PinLock \
+ PinLock
+#endif
+#ifdef ROM_PinUnlock
+#define MAP_PinUnlock \
+ ROM_PinUnlock
+#else
+#define MAP_PinUnlock \
+ PinUnlock
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SYSTICK API.
+//
+//*****************************************************************************
+#ifdef ROM_SysTickEnable
+#define MAP_SysTickEnable \
+ ROM_SysTickEnable
+#else
+#define MAP_SysTickEnable \
+ SysTickEnable
+#endif
+#ifdef ROM_SysTickDisable
+#define MAP_SysTickDisable \
+ ROM_SysTickDisable
+#else
+#define MAP_SysTickDisable \
+ SysTickDisable
+#endif
+#ifdef ROM_SysTickIntRegister
+#define MAP_SysTickIntRegister \
+ ROM_SysTickIntRegister
+#else
+#define MAP_SysTickIntRegister \
+ SysTickIntRegister
+#endif
+#ifdef ROM_SysTickIntUnregister
+#define MAP_SysTickIntUnregister \
+ ROM_SysTickIntUnregister
+#else
+#define MAP_SysTickIntUnregister \
+ SysTickIntUnregister
+#endif
+#ifdef ROM_SysTickIntEnable
+#define MAP_SysTickIntEnable \
+ ROM_SysTickIntEnable
+#else
+#define MAP_SysTickIntEnable \
+ SysTickIntEnable
+#endif
+#ifdef ROM_SysTickIntDisable
+#define MAP_SysTickIntDisable \
+ ROM_SysTickIntDisable
+#else
+#define MAP_SysTickIntDisable \
+ SysTickIntDisable
+#endif
+#ifdef ROM_SysTickPeriodSet
+#define MAP_SysTickPeriodSet \
+ ROM_SysTickPeriodSet
+#else
+#define MAP_SysTickPeriodSet \
+ SysTickPeriodSet
+#endif
+#ifdef ROM_SysTickPeriodGet
+#define MAP_SysTickPeriodGet \
+ ROM_SysTickPeriodGet
+#else
+#define MAP_SysTickPeriodGet \
+ SysTickPeriodGet
+#endif
+#ifdef ROM_SysTickValueGet
+#define MAP_SysTickValueGet \
+ ROM_SysTickValueGet
+#else
+#define MAP_SysTickValueGet \
+ SysTickValueGet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the UTILS API.
+//
+//*****************************************************************************
+#if defined(USE_CC3200_ROM_DRV_API) || \
+ defined(USE_CC3220_ROM_DRV_API)
+#define MAP_UtilsDelay \
+ ROM_UtilsDelay
+#else
+#define MAP_UtilsDelay \
+ UtilsDelay
+#endif
+
+//*****************************************************************************
+//
+// Macros for the I2S API.
+//
+//*****************************************************************************
+#ifdef ROM_I2SEnable
+#define MAP_I2SEnable \
+ ROM_I2SEnable
+#else
+#define MAP_I2SEnable \
+ I2SEnable
+#endif
+#ifdef ROM_I2SDisable
+#define MAP_I2SDisable \
+ ROM_I2SDisable
+#else
+#define MAP_I2SDisable \
+ I2SDisable
+#endif
+#ifdef ROM_I2SDataPut
+#define MAP_I2SDataPut \
+ ROM_I2SDataPut
+#else
+#define MAP_I2SDataPut \
+ I2SDataPut
+#endif
+#ifdef ROM_I2SDataPutNonBlocking
+#define MAP_I2SDataPutNonBlocking \
+ ROM_I2SDataPutNonBlocking
+#else
+#define MAP_I2SDataPutNonBlocking \
+ I2SDataPutNonBlocking
+#endif
+#ifdef ROM_I2SDataGet
+#define MAP_I2SDataGet \
+ ROM_I2SDataGet
+#else
+#define MAP_I2SDataGet \
+ I2SDataGet
+#endif
+#ifdef ROM_I2SDataGetNonBlocking
+#define MAP_I2SDataGetNonBlocking \
+ ROM_I2SDataGetNonBlocking
+#else
+#define MAP_I2SDataGetNonBlocking \
+ I2SDataGetNonBlocking
+#endif
+#ifdef ROM_I2SConfigSetExpClk
+#define MAP_I2SConfigSetExpClk \
+ ROM_I2SConfigSetExpClk
+#else
+#define MAP_I2SConfigSetExpClk \
+ I2SConfigSetExpClk
+#endif
+#ifdef ROM_I2STxFIFOEnable
+#define MAP_I2STxFIFOEnable \
+ ROM_I2STxFIFOEnable
+#else
+#define MAP_I2STxFIFOEnable \
+ I2STxFIFOEnable
+#endif
+#ifdef ROM_I2STxFIFODisable
+#define MAP_I2STxFIFODisable \
+ ROM_I2STxFIFODisable
+#else
+#define MAP_I2STxFIFODisable \
+ I2STxFIFODisable
+#endif
+#ifdef ROM_I2SRxFIFOEnable
+#define MAP_I2SRxFIFOEnable \
+ ROM_I2SRxFIFOEnable
+#else
+#define MAP_I2SRxFIFOEnable \
+ I2SRxFIFOEnable
+#endif
+#ifdef ROM_I2SRxFIFODisable
+#define MAP_I2SRxFIFODisable \
+ ROM_I2SRxFIFODisable
+#else
+#define MAP_I2SRxFIFODisable \
+ I2SRxFIFODisable
+#endif
+#ifdef ROM_I2STxFIFOStatusGet
+#define MAP_I2STxFIFOStatusGet \
+ ROM_I2STxFIFOStatusGet
+#else
+#define MAP_I2STxFIFOStatusGet \
+ I2STxFIFOStatusGet
+#endif
+#ifdef ROM_I2SRxFIFOStatusGet
+#define MAP_I2SRxFIFOStatusGet \
+ ROM_I2SRxFIFOStatusGet
+#else
+#define MAP_I2SRxFIFOStatusGet \
+ I2SRxFIFOStatusGet
+#endif
+#ifdef ROM_I2SSerializerConfig
+#define MAP_I2SSerializerConfig \
+ ROM_I2SSerializerConfig
+#else
+#define MAP_I2SSerializerConfig \
+ I2SSerializerConfig
+#endif
+#ifdef ROM_I2SIntEnable
+#define MAP_I2SIntEnable \
+ ROM_I2SIntEnable
+#else
+#define MAP_I2SIntEnable \
+ I2SIntEnable
+#endif
+#ifdef ROM_I2SIntDisable
+#define MAP_I2SIntDisable \
+ ROM_I2SIntDisable
+#else
+#define MAP_I2SIntDisable \
+ I2SIntDisable
+#endif
+#ifdef ROM_I2SIntStatus
+#define MAP_I2SIntStatus \
+ ROM_I2SIntStatus
+#else
+#define MAP_I2SIntStatus \
+ I2SIntStatus
+#endif
+#ifdef ROM_I2SIntClear
+#define MAP_I2SIntClear \
+ ROM_I2SIntClear
+#else
+#define MAP_I2SIntClear \
+ I2SIntClear
+#endif
+#ifdef ROM_I2SIntRegister
+#define MAP_I2SIntRegister \
+ ROM_I2SIntRegister
+#else
+#define MAP_I2SIntRegister \
+ I2SIntRegister
+#endif
+#ifdef ROM_I2SIntUnregister
+#define MAP_I2SIntUnregister \
+ ROM_I2SIntUnregister
+#else
+#define MAP_I2SIntUnregister \
+ I2SIntUnregister
+#endif
+#ifdef ROM_I2STxActiveSlotSet
+#define MAP_I2STxActiveSlotSet \
+ ROM_I2STxActiveSlotSet
+#else
+#define MAP_I2STxActiveSlotSet \
+ I2STxActiveSlotSet
+#endif
+#ifdef ROM_I2SRxActiveSlotSet
+#define MAP_I2SRxActiveSlotSet \
+ ROM_I2SRxActiveSlotSet
+#else
+#define MAP_I2SRxActiveSlotSet \
+ I2SRxActiveSlotSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the GPIO API.
+//
+//*****************************************************************************
+#ifdef ROM_GPIODirModeSet
+#define MAP_GPIODirModeSet \
+ ROM_GPIODirModeSet
+#else
+#define MAP_GPIODirModeSet \
+ GPIODirModeSet
+#endif
+#ifdef ROM_GPIODirModeGet
+#define MAP_GPIODirModeGet \
+ ROM_GPIODirModeGet
+#else
+#define MAP_GPIODirModeGet \
+ GPIODirModeGet
+#endif
+#ifdef ROM_GPIOIntTypeSet
+#define MAP_GPIOIntTypeSet \
+ ROM_GPIOIntTypeSet
+#else
+#define MAP_GPIOIntTypeSet \
+ GPIOIntTypeSet
+#endif
+#ifdef ROM_GPIODMATriggerEnable
+#define MAP_GPIODMATriggerEnable \
+ ROM_GPIODMATriggerEnable
+#else
+#define MAP_GPIODMATriggerEnable \
+ GPIODMATriggerEnable
+#endif
+#ifdef ROM_GPIODMATriggerDisable
+#define MAP_GPIODMATriggerDisable \
+ ROM_GPIODMATriggerDisable
+#else
+#define MAP_GPIODMATriggerDisable \
+ GPIODMATriggerDisable
+#endif
+#ifdef ROM_GPIOIntTypeGet
+#define MAP_GPIOIntTypeGet \
+ ROM_GPIOIntTypeGet
+#else
+#define MAP_GPIOIntTypeGet \
+ GPIOIntTypeGet
+#endif
+#ifdef ROM_GPIOIntEnable
+#define MAP_GPIOIntEnable \
+ ROM_GPIOIntEnable
+#else
+#define MAP_GPIOIntEnable \
+ GPIOIntEnable
+#endif
+#ifdef ROM_GPIOIntDisable
+#define MAP_GPIOIntDisable \
+ ROM_GPIOIntDisable
+#else
+#define MAP_GPIOIntDisable \
+ GPIOIntDisable
+#endif
+#ifdef ROM_GPIOIntStatus
+#define MAP_GPIOIntStatus \
+ ROM_GPIOIntStatus
+#else
+#define MAP_GPIOIntStatus \
+ GPIOIntStatus
+#endif
+#ifdef ROM_GPIOIntClear
+#define MAP_GPIOIntClear \
+ ROM_GPIOIntClear
+#else
+#define MAP_GPIOIntClear \
+ GPIOIntClear
+#endif
+#ifdef ROM_GPIOIntRegister
+#define MAP_GPIOIntRegister \
+ ROM_GPIOIntRegister
+#else
+#define MAP_GPIOIntRegister \
+ GPIOIntRegister
+#endif
+#ifdef ROM_GPIOIntUnregister
+#define MAP_GPIOIntUnregister \
+ ROM_GPIOIntUnregister
+#else
+#define MAP_GPIOIntUnregister \
+ GPIOIntUnregister
+#endif
+#ifdef ROM_GPIOPinRead
+#define MAP_GPIOPinRead \
+ ROM_GPIOPinRead
+#else
+#define MAP_GPIOPinRead \
+ GPIOPinRead
+#endif
+#ifdef ROM_GPIOPinWrite
+#define MAP_GPIOPinWrite \
+ ROM_GPIOPinWrite
+#else
+#define MAP_GPIOPinWrite \
+ GPIOPinWrite
+#endif
+
+//*****************************************************************************
+//
+// Macros for the AES API.
+//
+//*****************************************************************************
+#ifdef ROM_AESConfigSet
+#define MAP_AESConfigSet \
+ ROM_AESConfigSet
+#else
+#define MAP_AESConfigSet \
+ AESConfigSet
+#endif
+#ifdef ROM_AESKey1Set
+#define MAP_AESKey1Set \
+ ROM_AESKey1Set
+#else
+#define MAP_AESKey1Set \
+ AESKey1Set
+#endif
+#ifdef ROM_AESKey2Set
+#define MAP_AESKey2Set \
+ ROM_AESKey2Set
+#else
+#define MAP_AESKey2Set \
+ AESKey2Set
+#endif
+#ifdef ROM_AESKey3Set
+#define MAP_AESKey3Set \
+ ROM_AESKey3Set
+#else
+#define MAP_AESKey3Set \
+ AESKey3Set
+#endif
+#ifdef ROM_AESIVSet
+#define MAP_AESIVSet \
+ ROM_AESIVSet
+#else
+#define MAP_AESIVSet \
+ AESIVSet
+#endif
+#ifdef ROM_AESTagRead
+#define MAP_AESTagRead \
+ ROM_AESTagRead
+#else
+#define MAP_AESTagRead \
+ AESTagRead
+#endif
+#ifdef ROM_AESDataLengthSet
+#define MAP_AESDataLengthSet \
+ ROM_AESDataLengthSet
+#else
+#define MAP_AESDataLengthSet \
+ AESDataLengthSet
+#endif
+#ifdef ROM_AESAuthDataLengthSet
+#define MAP_AESAuthDataLengthSet \
+ ROM_AESAuthDataLengthSet
+#else
+#define MAP_AESAuthDataLengthSet \
+ AESAuthDataLengthSet
+#endif
+#ifdef ROM_AESDataReadNonBlocking
+#define MAP_AESDataReadNonBlocking \
+ ROM_AESDataReadNonBlocking
+#else
+#define MAP_AESDataReadNonBlocking \
+ AESDataReadNonBlocking
+#endif
+#ifdef ROM_AESDataRead
+#define MAP_AESDataRead \
+ ROM_AESDataRead
+#else
+#define MAP_AESDataRead \
+ AESDataRead
+#endif
+#ifdef ROM_AESDataWriteNonBlocking
+#define MAP_AESDataWriteNonBlocking \
+ ROM_AESDataWriteNonBlocking
+#else
+#define MAP_AESDataWriteNonBlocking \
+ AESDataWriteNonBlocking
+#endif
+#ifdef ROM_AESDataWrite
+#define MAP_AESDataWrite \
+ ROM_AESDataWrite
+#else
+#define MAP_AESDataWrite \
+ AESDataWrite
+#endif
+#ifdef ROM_AESDataProcess
+#define MAP_AESDataProcess \
+ ROM_AESDataProcess
+#else
+#define MAP_AESDataProcess \
+ AESDataProcess
+#endif
+#ifdef ROM_AESDataMAC
+#define MAP_AESDataMAC \
+ ROM_AESDataMAC
+#else
+#define MAP_AESDataMAC \
+ AESDataMAC
+#endif
+#ifdef ROM_AESDataProcessAE
+#define MAP_AESDataProcessAE \
+ ROM_AESDataProcessAE
+#else
+#define MAP_AESDataProcessAE \
+ AESDataProcessAE
+#endif
+#ifdef ROM_AESIntStatus
+#define MAP_AESIntStatus \
+ ROM_AESIntStatus
+#else
+#define MAP_AESIntStatus \
+ AESIntStatus
+#endif
+#ifdef ROM_AESIntEnable
+#define MAP_AESIntEnable \
+ ROM_AESIntEnable
+#else
+#define MAP_AESIntEnable \
+ AESIntEnable
+#endif
+#ifdef ROM_AESIntDisable
+#define MAP_AESIntDisable \
+ ROM_AESIntDisable
+#else
+#define MAP_AESIntDisable \
+ AESIntDisable
+#endif
+#ifdef ROM_AESIntClear
+#define MAP_AESIntClear \
+ ROM_AESIntClear
+#else
+#define MAP_AESIntClear \
+ AESIntClear
+#endif
+#ifdef ROM_AESIntRegister
+#define MAP_AESIntRegister \
+ ROM_AESIntRegister
+#else
+#define MAP_AESIntRegister \
+ AESIntRegister
+#endif
+#ifdef ROM_AESIntUnregister
+#define MAP_AESIntUnregister \
+ ROM_AESIntUnregister
+#else
+#define MAP_AESIntUnregister \
+ AESIntUnregister
+#endif
+#ifdef ROM_AESDMAEnable
+#define MAP_AESDMAEnable \
+ ROM_AESDMAEnable
+#else
+#define MAP_AESDMAEnable \
+ AESDMAEnable
+#endif
+#ifdef ROM_AESDMADisable
+#define MAP_AESDMADisable \
+ ROM_AESDMADisable
+#else
+#define MAP_AESDMADisable \
+ AESDMADisable
+#endif
+#ifdef ROM_AESIVGet
+#define MAP_AESIVGet \
+ ROM_AESIVGet
+#else
+#define MAP_AESIVGet \
+ AESIVGet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the DES API.
+//
+//*****************************************************************************
+#ifdef ROM_DESConfigSet
+#define MAP_DESConfigSet \
+ ROM_DESConfigSet
+#else
+#define MAP_DESConfigSet \
+ DESConfigSet
+#endif
+#ifdef ROM_DESDataRead
+#define MAP_DESDataRead \
+ ROM_DESDataRead
+#else
+#define MAP_DESDataRead \
+ DESDataRead
+#endif
+#ifdef ROM_DESDataReadNonBlocking
+#define MAP_DESDataReadNonBlocking \
+ ROM_DESDataReadNonBlocking
+#else
+#define MAP_DESDataReadNonBlocking \
+ DESDataReadNonBlocking
+#endif
+#ifdef ROM_DESDataProcess
+#define MAP_DESDataProcess \
+ ROM_DESDataProcess
+#else
+#define MAP_DESDataProcess \
+ DESDataProcess
+#endif
+#ifdef ROM_DESDataWrite
+#define MAP_DESDataWrite \
+ ROM_DESDataWrite
+#else
+#define MAP_DESDataWrite \
+ DESDataWrite
+#endif
+#ifdef ROM_DESDataWriteNonBlocking
+#define MAP_DESDataWriteNonBlocking \
+ ROM_DESDataWriteNonBlocking
+#else
+#define MAP_DESDataWriteNonBlocking \
+ DESDataWriteNonBlocking
+#endif
+#ifdef ROM_DESDMADisable
+#define MAP_DESDMADisable \
+ ROM_DESDMADisable
+#else
+#define MAP_DESDMADisable \
+ DESDMADisable
+#endif
+#ifdef ROM_DESDMAEnable
+#define MAP_DESDMAEnable \
+ ROM_DESDMAEnable
+#else
+#define MAP_DESDMAEnable \
+ DESDMAEnable
+#endif
+#ifdef ROM_DESIntClear
+#define MAP_DESIntClear \
+ ROM_DESIntClear
+#else
+#define MAP_DESIntClear \
+ DESIntClear
+#endif
+#ifdef ROM_DESIntDisable
+#define MAP_DESIntDisable \
+ ROM_DESIntDisable
+#else
+#define MAP_DESIntDisable \
+ DESIntDisable
+#endif
+#ifdef ROM_DESIntEnable
+#define MAP_DESIntEnable \
+ ROM_DESIntEnable
+#else
+#define MAP_DESIntEnable \
+ DESIntEnable
+#endif
+#ifdef ROM_DESIntRegister
+#define MAP_DESIntRegister \
+ ROM_DESIntRegister
+#else
+#define MAP_DESIntRegister \
+ DESIntRegister
+#endif
+#ifdef ROM_DESIntStatus
+#define MAP_DESIntStatus \
+ ROM_DESIntStatus
+#else
+#define MAP_DESIntStatus \
+ DESIntStatus
+#endif
+#ifdef ROM_DESIntUnregister
+#define MAP_DESIntUnregister \
+ ROM_DESIntUnregister
+#else
+#define MAP_DESIntUnregister \
+ DESIntUnregister
+#endif
+#ifdef ROM_DESIVSet
+#define MAP_DESIVSet \
+ ROM_DESIVSet
+#else
+#define MAP_DESIVSet \
+ DESIVSet
+#endif
+#ifdef ROM_DESKeySet
+#define MAP_DESKeySet \
+ ROM_DESKeySet
+#else
+#define MAP_DESKeySet \
+ DESKeySet
+#endif
+#ifdef ROM_DESDataLengthSet
+#define MAP_DESDataLengthSet \
+ ROM_DESDataLengthSet
+#else
+#define MAP_DESDataLengthSet \
+ DESDataLengthSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SHAMD5 API.
+//
+//*****************************************************************************
+#ifdef ROM_SHAMD5ConfigSet
+#define MAP_SHAMD5ConfigSet \
+ ROM_SHAMD5ConfigSet
+#else
+#define MAP_SHAMD5ConfigSet \
+ SHAMD5ConfigSet
+#endif
+#ifdef ROM_SHAMD5DataProcess
+#define MAP_SHAMD5DataProcess \
+ ROM_SHAMD5DataProcess
+#else
+#define MAP_SHAMD5DataProcess \
+ SHAMD5DataProcess
+#endif
+#ifdef ROM_SHAMD5DataWrite
+#define MAP_SHAMD5DataWrite \
+ ROM_SHAMD5DataWrite
+#else
+#define MAP_SHAMD5DataWrite \
+ SHAMD5DataWrite
+#endif
+#ifdef ROM_SHAMD5DataWriteNonBlocking
+#define MAP_SHAMD5DataWriteNonBlocking \
+ ROM_SHAMD5DataWriteNonBlocking
+#else
+#define MAP_SHAMD5DataWriteNonBlocking \
+ SHAMD5DataWriteNonBlocking
+#endif
+#ifdef ROM_SHAMD5DMADisable
+#define MAP_SHAMD5DMADisable \
+ ROM_SHAMD5DMADisable
+#else
+#define MAP_SHAMD5DMADisable \
+ SHAMD5DMADisable
+#endif
+#ifdef ROM_SHAMD5DMAEnable
+#define MAP_SHAMD5DMAEnable \
+ ROM_SHAMD5DMAEnable
+#else
+#define MAP_SHAMD5DMAEnable \
+ SHAMD5DMAEnable
+#endif
+#ifdef ROM_SHAMD5DataLengthSet
+#define MAP_SHAMD5DataLengthSet \
+ ROM_SHAMD5DataLengthSet
+#else
+#define MAP_SHAMD5DataLengthSet \
+ SHAMD5DataLengthSet
+#endif
+#ifdef ROM_SHAMD5HMACKeySet
+#define MAP_SHAMD5HMACKeySet \
+ ROM_SHAMD5HMACKeySet
+#else
+#define MAP_SHAMD5HMACKeySet \
+ SHAMD5HMACKeySet
+#endif
+#ifdef ROM_SHAMD5HMACPPKeyGenerate
+#define MAP_SHAMD5HMACPPKeyGenerate \
+ ROM_SHAMD5HMACPPKeyGenerate
+#else
+#define MAP_SHAMD5HMACPPKeyGenerate \
+ SHAMD5HMACPPKeyGenerate
+#endif
+#ifdef ROM_SHAMD5HMACPPKeySet
+#define MAP_SHAMD5HMACPPKeySet \
+ ROM_SHAMD5HMACPPKeySet
+#else
+#define MAP_SHAMD5HMACPPKeySet \
+ SHAMD5HMACPPKeySet
+#endif
+#ifdef ROM_SHAMD5HMACProcess
+#define MAP_SHAMD5HMACProcess \
+ ROM_SHAMD5HMACProcess
+#else
+#define MAP_SHAMD5HMACProcess \
+ SHAMD5HMACProcess
+#endif
+#ifdef ROM_SHAMD5IntClear
+#define MAP_SHAMD5IntClear \
+ ROM_SHAMD5IntClear
+#else
+#define MAP_SHAMD5IntClear \
+ SHAMD5IntClear
+#endif
+#ifdef ROM_SHAMD5IntDisable
+#define MAP_SHAMD5IntDisable \
+ ROM_SHAMD5IntDisable
+#else
+#define MAP_SHAMD5IntDisable \
+ SHAMD5IntDisable
+#endif
+#ifdef ROM_SHAMD5IntEnable
+#define MAP_SHAMD5IntEnable \
+ ROM_SHAMD5IntEnable
+#else
+#define MAP_SHAMD5IntEnable \
+ SHAMD5IntEnable
+#endif
+#ifdef ROM_SHAMD5IntRegister
+#define MAP_SHAMD5IntRegister \
+ ROM_SHAMD5IntRegister
+#else
+#define MAP_SHAMD5IntRegister \
+ SHAMD5IntRegister
+#endif
+#ifdef ROM_SHAMD5IntStatus
+#define MAP_SHAMD5IntStatus \
+ ROM_SHAMD5IntStatus
+#else
+#define MAP_SHAMD5IntStatus \
+ SHAMD5IntStatus
+#endif
+#ifdef ROM_SHAMD5IntUnregister
+#define MAP_SHAMD5IntUnregister \
+ ROM_SHAMD5IntUnregister
+#else
+#define MAP_SHAMD5IntUnregister \
+ SHAMD5IntUnregister
+#endif
+#ifdef ROM_SHAMD5ResultRead
+#define MAP_SHAMD5ResultRead \
+ ROM_SHAMD5ResultRead
+#else
+#define MAP_SHAMD5ResultRead \
+ SHAMD5ResultRead
+#endif
+
+//*****************************************************************************
+//
+// Macros for the CRC API.
+//
+//*****************************************************************************
+#ifdef ROM_CRCConfigSet
+#define MAP_CRCConfigSet \
+ ROM_CRCConfigSet
+#else
+#define MAP_CRCConfigSet \
+ CRCConfigSet
+#endif
+#ifdef ROM_CRCDataProcess
+#define MAP_CRCDataProcess \
+ ROM_CRCDataProcess
+#else
+#define MAP_CRCDataProcess \
+ CRCDataProcess
+#endif
+#ifdef ROM_CRCDataWrite
+#define MAP_CRCDataWrite \
+ ROM_CRCDataWrite
+#else
+#define MAP_CRCDataWrite \
+ CRCDataWrite
+#endif
+#ifdef ROM_CRCResultRead
+#define MAP_CRCResultRead \
+ ROM_CRCResultRead
+#else
+#define MAP_CRCResultRead \
+ CRCResultRead
+#endif
+#ifdef ROM_CRCSeedSet
+#define MAP_CRCSeedSet \
+ ROM_CRCSeedSet
+#else
+#define MAP_CRCSeedSet \
+ CRCSeedSet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the SDHOST API.
+//
+//*****************************************************************************
+#ifdef ROM_SDHostCmdReset
+#define MAP_SDHostCmdReset \
+ ROM_SDHostCmdReset
+#else
+#define MAP_SDHostCmdReset \
+ SDHostCmdReset
+#endif
+#ifdef ROM_SDHostInit
+#define MAP_SDHostInit \
+ ROM_SDHostInit
+#else
+#define MAP_SDHostInit \
+ SDHostInit
+#endif
+#ifdef ROM_SDHostCmdSend
+#define MAP_SDHostCmdSend \
+ ROM_SDHostCmdSend
+#else
+#define MAP_SDHostCmdSend \
+ SDHostCmdSend
+#endif
+#ifdef ROM_SDHostIntRegister
+#define MAP_SDHostIntRegister \
+ ROM_SDHostIntRegister
+#else
+#define MAP_SDHostIntRegister \
+ SDHostIntRegister
+#endif
+#ifdef ROM_SDHostIntUnregister
+#define MAP_SDHostIntUnregister \
+ ROM_SDHostIntUnregister
+#else
+#define MAP_SDHostIntUnregister \
+ SDHostIntUnregister
+#endif
+#ifdef ROM_SDHostIntEnable
+#define MAP_SDHostIntEnable \
+ ROM_SDHostIntEnable
+#else
+#define MAP_SDHostIntEnable \
+ SDHostIntEnable
+#endif
+#ifdef ROM_SDHostIntDisable
+#define MAP_SDHostIntDisable \
+ ROM_SDHostIntDisable
+#else
+#define MAP_SDHostIntDisable \
+ SDHostIntDisable
+#endif
+#ifdef ROM_SDHostIntStatus
+#define MAP_SDHostIntStatus \
+ ROM_SDHostIntStatus
+#else
+#define MAP_SDHostIntStatus \
+ SDHostIntStatus
+#endif
+#ifdef ROM_SDHostIntClear
+#define MAP_SDHostIntClear \
+ ROM_SDHostIntClear
+#else
+#define MAP_SDHostIntClear \
+ SDHostIntClear
+#endif
+#ifdef ROM_SDHostRespGet
+#define MAP_SDHostRespGet \
+ ROM_SDHostRespGet
+#else
+#define MAP_SDHostRespGet \
+ SDHostRespGet
+#endif
+#ifdef ROM_SDHostBlockSizeSet
+#define MAP_SDHostBlockSizeSet \
+ ROM_SDHostBlockSizeSet
+#else
+#define MAP_SDHostBlockSizeSet \
+ SDHostBlockSizeSet
+#endif
+#ifdef ROM_SDHostBlockCountSet
+#define MAP_SDHostBlockCountSet \
+ ROM_SDHostBlockCountSet
+#else
+#define MAP_SDHostBlockCountSet \
+ SDHostBlockCountSet
+#endif
+#ifdef ROM_SDHostDataNonBlockingWrite
+#define MAP_SDHostDataNonBlockingWrite \
+ ROM_SDHostDataNonBlockingWrite
+#else
+#define MAP_SDHostDataNonBlockingWrite \
+ SDHostDataNonBlockingWrite
+#endif
+#ifdef ROM_SDHostDataNonBlockingRead
+#define MAP_SDHostDataNonBlockingRead \
+ ROM_SDHostDataNonBlockingRead
+#else
+#define MAP_SDHostDataNonBlockingRead \
+ SDHostDataNonBlockingRead
+#endif
+#ifdef ROM_SDHostDataWrite
+#define MAP_SDHostDataWrite \
+ ROM_SDHostDataWrite
+#else
+#define MAP_SDHostDataWrite \
+ SDHostDataWrite
+#endif
+#ifdef ROM_SDHostDataRead
+#define MAP_SDHostDataRead \
+ ROM_SDHostDataRead
+#else
+#define MAP_SDHostDataRead \
+ SDHostDataRead
+#endif
+#ifdef ROM_SDHostSetExpClk
+#define MAP_SDHostSetExpClk \
+ ROM_SDHostSetExpClk
+#else
+#define MAP_SDHostSetExpClk \
+ SDHostSetExpClk
+#endif
+#ifdef ROM_SDHostCardErrorMaskSet
+#define MAP_SDHostCardErrorMaskSet \
+ ROM_SDHostCardErrorMaskSet
+#else
+#define MAP_SDHostCardErrorMaskSet \
+ SDHostCardErrorMaskSet
+#endif
+#ifdef ROM_SDHostCardErrorMaskGet
+#define MAP_SDHostCardErrorMaskGet \
+ ROM_SDHostCardErrorMaskGet
+#else
+#define MAP_SDHostCardErrorMaskGet \
+ SDHostCardErrorMaskGet
+#endif
+
+//*****************************************************************************
+//
+// Macros for the PRCM API.
+//
+//*****************************************************************************
+#ifdef ROM_PRCMMCUReset
+#define MAP_PRCMMCUReset \
+ ROM_PRCMMCUReset
+#else
+#define MAP_PRCMMCUReset \
+ PRCMMCUReset
+#endif
+#ifdef ROM_PRCMSysResetCauseGet
+#define MAP_PRCMSysResetCauseGet \
+ ROM_PRCMSysResetCauseGet
+#else
+#define MAP_PRCMSysResetCauseGet \
+ PRCMSysResetCauseGet
+#endif
+#ifdef ROM_PRCMPeripheralClkEnable
+#define MAP_PRCMPeripheralClkEnable \
+ ROM_PRCMPeripheralClkEnable
+#else
+#define MAP_PRCMPeripheralClkEnable \
+ PRCMPeripheralClkEnable
+#endif
+#ifdef ROM_PRCMPeripheralClkDisable
+#define MAP_PRCMPeripheralClkDisable \
+ ROM_PRCMPeripheralClkDisable
+#else
+#define MAP_PRCMPeripheralClkDisable \
+ PRCMPeripheralClkDisable
+#endif
+#ifdef ROM_PRCMPeripheralReset
+#define MAP_PRCMPeripheralReset \
+ ROM_PRCMPeripheralReset
+#else
+#define MAP_PRCMPeripheralReset \
+ PRCMPeripheralReset
+#endif
+#ifdef ROM_PRCMPeripheralStatusGet
+#define MAP_PRCMPeripheralStatusGet \
+ ROM_PRCMPeripheralStatusGet
+#else
+#define MAP_PRCMPeripheralStatusGet \
+ PRCMPeripheralStatusGet
+#endif
+#ifdef ROM_PRCMI2SClockFreqSet
+#define MAP_PRCMI2SClockFreqSet \
+ ROM_PRCMI2SClockFreqSet
+#else
+#define MAP_PRCMI2SClockFreqSet \
+ PRCMI2SClockFreqSet
+#endif
+#ifdef ROM_PRCMPeripheralClockGet
+#define MAP_PRCMPeripheralClockGet \
+ ROM_PRCMPeripheralClockGet
+#else
+#define MAP_PRCMPeripheralClockGet \
+ PRCMPeripheralClockGet
+#endif
+#ifdef ROM_PRCMSleepEnter
+#define MAP_PRCMSleepEnter \
+ ROM_PRCMSleepEnter
+#else
+#define MAP_PRCMSleepEnter \
+ PRCMSleepEnter
+#endif
+#ifdef ROM_PRCMSRAMRetentionEnable
+#define MAP_PRCMSRAMRetentionEnable \
+ ROM_PRCMSRAMRetentionEnable
+#else
+#define MAP_PRCMSRAMRetentionEnable \
+ PRCMSRAMRetentionEnable
+#endif
+#ifdef ROM_PRCMSRAMRetentionDisable
+#define MAP_PRCMSRAMRetentionDisable \
+ ROM_PRCMSRAMRetentionDisable
+#else
+#define MAP_PRCMSRAMRetentionDisable \
+ PRCMSRAMRetentionDisable
+#endif
+#ifdef ROM_PRCMLPDSEnter
+#define MAP_PRCMLPDSEnter \
+ ROM_PRCMLPDSEnter
+#else
+#define MAP_PRCMLPDSEnter \
+ PRCMLPDSEnter
+#endif
+#ifdef ROM_PRCMLPDSIntervalSet
+#define MAP_PRCMLPDSIntervalSet \
+ ROM_PRCMLPDSIntervalSet
+#else
+#define MAP_PRCMLPDSIntervalSet \
+ PRCMLPDSIntervalSet
+#endif
+#ifdef ROM_PRCMLPDSWakeupSourceEnable
+#define MAP_PRCMLPDSWakeupSourceEnable \
+ ROM_PRCMLPDSWakeupSourceEnable
+#else
+#define MAP_PRCMLPDSWakeupSourceEnable \
+ PRCMLPDSWakeupSourceEnable
+#endif
+#ifdef ROM_PRCMLPDSWakeupCauseGet
+#define MAP_PRCMLPDSWakeupCauseGet \
+ ROM_PRCMLPDSWakeupCauseGet
+#else
+#define MAP_PRCMLPDSWakeupCauseGet \
+ PRCMLPDSWakeupCauseGet
+#endif
+#ifdef ROM_PRCMLPDSWakeUpGPIOSelect
+#define MAP_PRCMLPDSWakeUpGPIOSelect \
+ ROM_PRCMLPDSWakeUpGPIOSelect
+#else
+#define MAP_PRCMLPDSWakeUpGPIOSelect \
+ PRCMLPDSWakeUpGPIOSelect
+#endif
+#ifdef ROM_PRCMLPDSWakeupSourceDisable
+#define MAP_PRCMLPDSWakeupSourceDisable \
+ ROM_PRCMLPDSWakeupSourceDisable
+#else
+#define MAP_PRCMLPDSWakeupSourceDisable \
+ PRCMLPDSWakeupSourceDisable
+#endif
+#ifdef ROM_PRCMHibernateEnter
+#define MAP_PRCMHibernateEnter \
+ ROM_PRCMHibernateEnter
+#else
+#define MAP_PRCMHibernateEnter \
+ PRCMHibernateEnter
+#endif
+#ifdef ROM_PRCMHibernateWakeupSourceEnable
+#define MAP_PRCMHibernateWakeupSourceEnable \
+ ROM_PRCMHibernateWakeupSourceEnable
+#else
+#define MAP_PRCMHibernateWakeupSourceEnable \
+ PRCMHibernateWakeupSourceEnable
+#endif
+#ifdef ROM_PRCMHibernateWakeupCauseGet
+#define MAP_PRCMHibernateWakeupCauseGet \
+ ROM_PRCMHibernateWakeupCauseGet
+#else
+#define MAP_PRCMHibernateWakeupCauseGet \
+ PRCMHibernateWakeupCauseGet
+#endif
+#ifdef ROM_PRCMHibernateWakeUpGPIOSelect
+#define MAP_PRCMHibernateWakeUpGPIOSelect \
+ ROM_PRCMHibernateWakeUpGPIOSelect
+#else
+#define MAP_PRCMHibernateWakeUpGPIOSelect \
+ PRCMHibernateWakeUpGPIOSelect
+#endif
+#ifdef ROM_PRCMHibernateWakeupSourceDisable
+#define MAP_PRCMHibernateWakeupSourceDisable \
+ ROM_PRCMHibernateWakeupSourceDisable
+#else
+#define MAP_PRCMHibernateWakeupSourceDisable \
+ PRCMHibernateWakeupSourceDisable
+#endif
+#ifdef ROM_PRCMHibernateIntervalSet
+#define MAP_PRCMHibernateIntervalSet \
+ ROM_PRCMHibernateIntervalSet
+#else
+#define MAP_PRCMHibernateIntervalSet \
+ PRCMHibernateIntervalSet
+#endif
+#ifdef ROM_PRCMSlowClkCtrGet
+#define MAP_PRCMSlowClkCtrGet \
+ ROM_PRCMSlowClkCtrGet
+#else
+#define MAP_PRCMSlowClkCtrGet \
+ PRCMSlowClkCtrGet
+#endif
+#ifdef ROM_PRCMSlowClkCtrMatchSet
+#define MAP_PRCMSlowClkCtrMatchSet \
+ ROM_PRCMSlowClkCtrMatchSet
+#else
+#define MAP_PRCMSlowClkCtrMatchSet \
+ PRCMSlowClkCtrMatchSet
+#endif
+#ifdef ROM_PRCMSlowClkCtrMatchGet
+#define MAP_PRCMSlowClkCtrMatchGet \
+ ROM_PRCMSlowClkCtrMatchGet
+#else
+#define MAP_PRCMSlowClkCtrMatchGet \
+ PRCMSlowClkCtrMatchGet
+#endif
+#ifdef ROM_PRCMOCRRegisterWrite
+#define MAP_PRCMOCRRegisterWrite \
+ ROM_PRCMOCRRegisterWrite
+#else
+#define MAP_PRCMOCRRegisterWrite \
+ PRCMOCRRegisterWrite
+#endif
+#ifdef ROM_PRCMOCRRegisterRead
+#define MAP_PRCMOCRRegisterRead \
+ ROM_PRCMOCRRegisterRead
+#else
+#define MAP_PRCMOCRRegisterRead \
+ PRCMOCRRegisterRead
+#endif
+#ifdef ROM_PRCMIntRegister
+#define MAP_PRCMIntRegister \
+ ROM_PRCMIntRegister
+#else
+#define MAP_PRCMIntRegister \
+ PRCMIntRegister
+#endif
+#ifdef ROM_PRCMIntUnregister
+#define MAP_PRCMIntUnregister \
+ ROM_PRCMIntUnregister
+#else
+#define MAP_PRCMIntUnregister \
+ PRCMIntUnregister
+#endif
+#ifdef ROM_PRCMIntEnable
+#define MAP_PRCMIntEnable \
+ ROM_PRCMIntEnable
+#else
+#define MAP_PRCMIntEnable \
+ PRCMIntEnable
+#endif
+#ifdef ROM_PRCMIntDisable
+#define MAP_PRCMIntDisable \
+ ROM_PRCMIntDisable
+#else
+#define MAP_PRCMIntDisable \
+ PRCMIntDisable
+#endif
+#ifdef ROM_PRCMIntStatus
+#define MAP_PRCMIntStatus \
+ ROM_PRCMIntStatus
+#else
+#define MAP_PRCMIntStatus \
+ PRCMIntStatus
+#endif
+#ifdef ROM_PRCMRTCInUseSet
+#define MAP_PRCMRTCInUseSet \
+ ROM_PRCMRTCInUseSet
+#else
+#define MAP_PRCMRTCInUseSet \
+ PRCMRTCInUseSet
+#endif
+#ifdef ROM_PRCMRTCInUseGet
+#define MAP_PRCMRTCInUseGet \
+ ROM_PRCMRTCInUseGet
+#else
+#define MAP_PRCMRTCInUseGet \
+ PRCMRTCInUseGet
+#endif
+#ifdef ROM_PRCMRTCSet
+#define MAP_PRCMRTCSet \
+ ROM_PRCMRTCSet
+#else
+#define MAP_PRCMRTCSet \
+ PRCMRTCSet
+#endif
+#ifdef ROM_PRCMRTCGet
+#define MAP_PRCMRTCGet \
+ ROM_PRCMRTCGet
+#else
+#define MAP_PRCMRTCGet \
+ PRCMRTCGet
+#endif
+#ifdef ROM_PRCMRTCMatchSet
+#define MAP_PRCMRTCMatchSet \
+ ROM_PRCMRTCMatchSet
+#else
+#define MAP_PRCMRTCMatchSet \
+ PRCMRTCMatchSet
+#endif
+#ifdef ROM_PRCMRTCMatchGet
+#define MAP_PRCMRTCMatchGet \
+ ROM_PRCMRTCMatchGet
+#else
+#define MAP_PRCMRTCMatchGet \
+ PRCMRTCMatchGet
+#endif
+#ifdef ROM_PRCMLPDSRestoreInfoSet
+#define MAP_PRCMLPDSRestoreInfoSet \
+ ROM_PRCMLPDSRestoreInfoSet
+#else
+#define MAP_PRCMLPDSRestoreInfoSet \
+ PRCMLPDSRestoreInfoSet
+#endif
+#ifdef ROM_PRCMSlowClkCtrFastGet
+#define MAP_PRCMSlowClkCtrFastGet \
+ ROM_PRCMSlowClkCtrFastGet
+#else
+#define MAP_PRCMSlowClkCtrFastGet \
+ PRCMSlowClkCtrFastGet
+#endif
+#ifdef ROM_PRCMCC3200MCUInit
+#define MAP_PRCMCC3200MCUInit \
+ ROM_PRCMCC3200MCUInit
+#else
+#define MAP_PRCMCC3200MCUInit \
+ PRCMCC3200MCUInit
+#endif
+#ifdef ROM_PRCMHIBRegRead
+#define MAP_PRCMHIBRegRead \
+ ROM_PRCMHIBRegRead
+#else
+#define MAP_PRCMHIBRegRead \
+ PRCMHIBRegRead
+#endif
+#ifdef ROM_PRCMHIBRegWrite
+#define MAP_PRCMHIBRegWrite \
+ ROM_PRCMHIBRegWrite
+#else
+#define MAP_PRCMHIBRegWrite \
+ PRCMHIBRegWrite
+#endif
+#ifdef ROM_PRCMCameraFreqSet
+#define MAP_PRCMCameraFreqSet \
+ ROM_PRCMCameraFreqSet
+#else
+#define MAP_PRCMCameraFreqSet \
+ PRCMCameraFreqSet
+#endif
+#ifdef ROM_PRCMIORetentionEnable
+#define MAP_PRCMIORetentionEnable \
+ ROM_PRCMIORetentionEnable
+#else
+#define MAP_PRCMIORetentionEnable \
+ PRCMIORetentionEnable
+#endif
+#ifdef ROM_PRCMIORetentionDisable
+#define MAP_PRCMIORetentionDisable \
+ ROM_PRCMIORetentionDisable
+#else
+#define MAP_PRCMIORetentionDisable \
+ PRCMIORetentionDisable
+#endif
+#ifdef ROM_PRCMDeviceTypeGet
+#define MAP_PRCMDeviceTypeGet \
+ ROM_PRCMDeviceTypeGet
+#else
+#define MAP_PRCMDeviceTypeGet \
+ PRCMDeviceTypeGet
+#endif
+#ifdef ROM_PRCMLPDSEnterKeepDebugIf
+#define MAP_PRCMLPDSEnterKeepDebugIf \
+ ROM_PRCMLPDSEnterKeepDebugIf
+#else
+#define MAP_PRCMLPDSEnterKeepDebugIf \
+ PRCMLPDSEnterKeepDebugIf
+#endif
+#ifdef ROM_PRCMHibernateCycleTrigger
+#define MAP_PRCMHibernateCycleTrigger \
+ ROM_PRCMHibernateCycleTrigger
+#else
+#define MAP_PRCMHibernateCycleTrigger \
+ PRCMHibernateCycleTrigger
+#endif
+
+//*****************************************************************************
+//
+// Macros for the HWSPINLOCK API.
+//
+//*****************************************************************************
+#ifdef ROM_HwSpinLockAcquire
+#define MAP_HwSpinLockAcquire \
+ ROM_HwSpinLockAcquire
+#else
+#define MAP_HwSpinLockAcquire \
+ HwSpinLockAcquire
+#endif
+#ifdef ROM_HwSpinLockTryAcquire
+#define MAP_HwSpinLockTryAcquire \
+ ROM_HwSpinLockTryAcquire
+#else
+#define MAP_HwSpinLockTryAcquire \
+ HwSpinLockTryAcquire
+#endif
+#ifdef ROM_HwSpinLockRelease
+#define MAP_HwSpinLockRelease \
+ ROM_HwSpinLockRelease
+#else
+#define MAP_HwSpinLockRelease \
+ HwSpinLockRelease
+#endif
+#ifdef ROM_HwSpinLockTest
+#define MAP_HwSpinLockTest \
+ ROM_HwSpinLockTest
+#else
+#define MAP_HwSpinLockTest \
+ HwSpinLockTest
+#endif
+
+//*****************************************************************************
+//
+// Macros for the ADC API.
+//
+//*****************************************************************************
+#ifdef ROM_ADCEnable
+#define MAP_ADCEnable \
+ ROM_ADCEnable
+#else
+#define MAP_ADCEnable \
+ ADCEnable
+#endif
+#ifdef ROM_ADCDisable
+#define MAP_ADCDisable \
+ ROM_ADCDisable
+#else
+#define MAP_ADCDisable \
+ ADCDisable
+#endif
+#ifdef ROM_ADCChannelEnable
+#define MAP_ADCChannelEnable \
+ ROM_ADCChannelEnable
+#else
+#define MAP_ADCChannelEnable \
+ ADCChannelEnable
+#endif
+#ifdef ROM_ADCChannelDisable
+#define MAP_ADCChannelDisable \
+ ROM_ADCChannelDisable
+#else
+#define MAP_ADCChannelDisable \
+ ADCChannelDisable
+#endif
+#ifdef ROM_ADCIntRegister
+#define MAP_ADCIntRegister \
+ ROM_ADCIntRegister
+#else
+#define MAP_ADCIntRegister \
+ ADCIntRegister
+#endif
+#ifdef ROM_ADCIntUnregister
+#define MAP_ADCIntUnregister \
+ ROM_ADCIntUnregister
+#else
+#define MAP_ADCIntUnregister \
+ ADCIntUnregister
+#endif
+#ifdef ROM_ADCIntEnable
+#define MAP_ADCIntEnable \
+ ROM_ADCIntEnable
+#else
+#define MAP_ADCIntEnable \
+ ADCIntEnable
+#endif
+#ifdef ROM_ADCIntDisable
+#define MAP_ADCIntDisable \
+ ROM_ADCIntDisable
+#else
+#define MAP_ADCIntDisable \
+ ADCIntDisable
+#endif
+#ifdef ROM_ADCIntStatus
+#define MAP_ADCIntStatus \
+ ROM_ADCIntStatus
+#else
+#define MAP_ADCIntStatus \
+ ADCIntStatus
+#endif
+#ifdef ROM_ADCIntClear
+#define MAP_ADCIntClear \
+ ROM_ADCIntClear
+#else
+#define MAP_ADCIntClear \
+ ADCIntClear
+#endif
+#ifdef ROM_ADCDMAEnable
+#define MAP_ADCDMAEnable \
+ ROM_ADCDMAEnable
+#else
+#define MAP_ADCDMAEnable \
+ ADCDMAEnable
+#endif
+#ifdef ROM_ADCDMADisable
+#define MAP_ADCDMADisable \
+ ROM_ADCDMADisable
+#else
+#define MAP_ADCDMADisable \
+ ADCDMADisable
+#endif
+#ifdef ROM_ADCTimerConfig
+#define MAP_ADCTimerConfig \
+ ROM_ADCTimerConfig
+#else
+#define MAP_ADCTimerConfig \
+ ADCTimerConfig
+#endif
+#ifdef ROM_ADCTimerEnable
+#define MAP_ADCTimerEnable \
+ ROM_ADCTimerEnable
+#else
+#define MAP_ADCTimerEnable \
+ ADCTimerEnable
+#endif
+#ifdef ROM_ADCTimerDisable
+#define MAP_ADCTimerDisable \
+ ROM_ADCTimerDisable
+#else
+#define MAP_ADCTimerDisable \
+ ADCTimerDisable
+#endif
+#ifdef ROM_ADCTimerReset
+#define MAP_ADCTimerReset \
+ ROM_ADCTimerReset
+#else
+#define MAP_ADCTimerReset \
+ ADCTimerReset
+#endif
+#ifdef ROM_ADCTimerValueGet
+#define MAP_ADCTimerValueGet \
+ ROM_ADCTimerValueGet
+#else
+#define MAP_ADCTimerValueGet \
+ ADCTimerValueGet
+#endif
+#ifdef ROM_ADCFIFOLvlGet
+#define MAP_ADCFIFOLvlGet \
+ ROM_ADCFIFOLvlGet
+#else
+#define MAP_ADCFIFOLvlGet \
+ ADCFIFOLvlGet
+#endif
+#ifdef ROM_ADCFIFORead
+#define MAP_ADCFIFORead \
+ ROM_ADCFIFORead
+#else
+#define MAP_ADCFIFORead \
+ ADCFIFORead
+#endif
+
+//*****************************************************************************
+//
+// Macros for the CPU API.
+//
+//*****************************************************************************
+#ifdef ROM_CPUcpsid
+#define MAP_CPUcpsid \
+ ROM_CPUcpsid
+#else
+#define MAP_CPUcpsid \
+ CPUcpsid
+#endif
+#ifdef ROM_CPUcpsie
+#define MAP_CPUcpsie \
+ ROM_CPUcpsie
+#else
+#define MAP_CPUcpsie \
+ CPUcpsie
+#endif
+#ifdef ROM_CPUprimask
+#define MAP_CPUprimask \
+ ROM_CPUprimask
+#else
+#define MAP_CPUprimask \
+ CPUprimask
+#endif
+#ifdef ROM_CPUwfi
+#define MAP_CPUwfi \
+ ROM_CPUwfi
+#else
+#define MAP_CPUwfi \
+ CPUwfi
+#endif
+#ifdef ROM_CPUbasepriGet
+#define MAP_CPUbasepriGet \
+ ROM_CPUbasepriGet
+#else
+#define MAP_CPUbasepriGet \
+ CPUbasepriGet
+#endif
+#ifdef ROM_CPUbasepriSet
+#define MAP_CPUbasepriSet \
+ ROM_CPUbasepriSet
+#else
+#define MAP_CPUbasepriSet \
+ CPUbasepriSet
+#endif
+
+#endif // __ROM_MAP_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/rom_patch.h b/ext/hal/ti/cc3220sdk/driverlib/rom_patch.h
new file mode 100644
index 0000000..f733ec4
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/rom_patch.h
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// rom_patch.h - Macros to facilitate patching driverlib API's in the ROM.
+//
+//
+
+//*****************************************************************************
+//
+// List of API's in the ROM that need to be patched.
+// For e.g. to patch ROM_UARTCharPut add the line #undef ROM_UARTCharPut
+//*****************************************************************************
+
+#ifndef __ROM_PATCH_H__
+#define __ROM_PATCH_H__
+
+#if defined(TARGET_IS_CC3200) || defined(USE_CC3200_ROM_DRV_API)
+#undef ROM_ADCIntClear
+#undef ROM_IntEnable
+#undef ROM_IntDisable
+#undef ROM_IntPendSet
+#undef ROM_SDHostCardErrorMaskSet
+#undef ROM_SDHostCardErrorMaskGet
+#undef ROM_TimerConfigure
+#undef ROM_TimerDMAEventSet
+#undef ROM_TimerDMAEventGet
+#undef ROM_SDHostDataNonBlockingWrite
+#undef ROM_SDHostDataWrite
+#undef ROM_SDHostDataRead
+#undef ROM_SDHostDataNonBlockingRead
+#undef ROM_PRCMSysResetCauseGet
+#undef ROM_PRCMPeripheralClkEnable
+#undef ROM_PRCMLPDSWakeUpGPIOSelect
+#undef ROM_PRCMHibernateWakeupSourceEnable
+#undef ROM_PRCMHibernateWakeupSourceDisable
+#undef ROM_PRCMHibernateWakeupCauseGet
+#undef ROM_PRCMHibernateIntervalSet
+#undef ROM_PRCMHibernateWakeUpGPIOSelect
+#undef ROM_PRCMHibernateEnter
+#undef ROM_PRCMSlowClkCtrGet
+#undef ROM_PRCMSlowClkCtrMatchSet
+#undef ROM_PRCMSlowClkCtrMatchGet
+#undef ROM_PRCMOCRRegisterWrite
+#undef ROM_PRCMOCRRegisterRead
+#undef ROM_PRCMIntEnable
+#undef ROM_PRCMIntDisable
+#undef ROM_PRCMRTCInUseSet
+#undef ROM_PRCMRTCInUseGet
+#undef ROM_PRCMRTCSet
+#undef ROM_PRCMRTCGet
+#undef ROM_PRCMRTCMatchSet
+#undef ROM_PRCMRTCMatchGet
+#undef ROM_PRCMPeripheralClkDisable
+#undef ROM_PRCMPeripheralReset
+#undef ROM_PRCMPeripheralStatusGet
+#undef ROM_SPIConfigSetExpClk
+#undef ROM_AESDataProcess
+#undef ROM_DESDataProcess
+#undef ROM_I2SEnable
+#undef ROM_I2SConfigSetExpClk
+#undef ROM_PinConfigSet
+#undef ROM_PRCMLPDSEnter
+#undef ROM_PRCMCC3200MCUInit
+#undef ROM_SDHostIntStatus
+#undef ROM_SDHostBlockCountSet
+#undef ROM_UARTModemControlSet
+#undef ROM_UARTModemControlClear
+#undef ROM_CameraXClkSet
+#undef ROM_PRCMMCUReset
+#undef ROM_PRCMPeripheralClkEnable
+#undef ROM_SPIDmaDisable
+#endif
+
+#if defined(USE_CC3220_ROM_DRV_API)
+#undef ROM_PRCMDeviceTypeGet
+#undef ROM_SDHostDataNonBlockingRead
+#undef ROM_PRCMIORetentionEnable
+#undef ROM_PRCMIORetentionDisable
+#undef ROM_PRCMCC3200MCUInit
+#endif
+
+#endif // __ROM_PATCH_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/uart.h b/ext/hal/ti/cc3220sdk/driverlib/uart.h
new file mode 100644
index 0000000..5d1f150
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/uart.h
@@ -0,0 +1,235 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// uart.h
+//
+// Defines and Macros for the UART.
+//
+//*****************************************************************************
+
+#ifndef __UART_H__
+#define __UART_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// Values that can be passed to UARTIntEnable, UARTIntDisable, and UARTIntClear
+// as the ulIntFlags parameter, and returned from UARTIntStatus.
+//
+//*****************************************************************************
+#define UART_INT_DMATX 0x20000 // DMA Tx Done interrupt Mask
+#define UART_INT_DMARX 0x10000 // DMA Rx Done interrupt Mask
+#define UART_INT_EOT 0x800 // End of transfer interrupt Mask
+#define UART_INT_OE 0x400 // Overrun Error Interrupt Mask
+#define UART_INT_BE 0x200 // Break Error Interrupt Mask
+#define UART_INT_PE 0x100 // Parity Error Interrupt Mask
+#define UART_INT_FE 0x080 // Framing Error Interrupt Mask
+#define UART_INT_RT 0x040 // Receive Timeout Interrupt Mask
+#define UART_INT_TX 0x020 // Transmit Interrupt Mask
+#define UART_INT_RX 0x010 // Receive Interrupt Mask
+#define UART_INT_CTS 0x002 // CTS Modem Interrupt Mask
+
+
+//*****************************************************************************
+//
+// Values that can be passed to UARTConfigSetExpClk as the ulConfig parameter
+// and returned by UARTConfigGetExpClk in the pulConfig parameter.
+// Additionally, the UART_CONFIG_PAR_* subset can be passed to
+// UARTParityModeSet as the ulParity parameter, and are returned by
+// UARTParityModeGet.
+//
+//*****************************************************************************
+#define UART_CONFIG_WLEN_MASK 0x00000060 // Mask for extracting word length
+#define UART_CONFIG_WLEN_8 0x00000060 // 8 bit data
+#define UART_CONFIG_WLEN_7 0x00000040 // 7 bit data
+#define UART_CONFIG_WLEN_6 0x00000020 // 6 bit data
+#define UART_CONFIG_WLEN_5 0x00000000 // 5 bit data
+#define UART_CONFIG_STOP_MASK 0x00000008 // Mask for extracting stop bits
+#define UART_CONFIG_STOP_ONE 0x00000000 // One stop bit
+#define UART_CONFIG_STOP_TWO 0x00000008 // Two stop bits
+#define UART_CONFIG_PAR_MASK 0x00000086 // Mask for extracting parity
+#define UART_CONFIG_PAR_NONE 0x00000000 // No parity
+#define UART_CONFIG_PAR_EVEN 0x00000006 // Even parity
+#define UART_CONFIG_PAR_ODD 0x00000002 // Odd parity
+#define UART_CONFIG_PAR_ONE 0x00000082 // Parity bit is one
+#define UART_CONFIG_PAR_ZERO 0x00000086 // Parity bit is zero
+
+//*****************************************************************************
+//
+// Values that can be passed to UARTFIFOLevelSet as the ulTxLevel parameter and
+// returned by UARTFIFOLevelGet in the pulTxLevel.
+//
+//*****************************************************************************
+#define UART_FIFO_TX1_8 0x00000000 // Transmit interrupt at 1/8 Full
+#define UART_FIFO_TX2_8 0x00000001 // Transmit interrupt at 1/4 Full
+#define UART_FIFO_TX4_8 0x00000002 // Transmit interrupt at 1/2 Full
+#define UART_FIFO_TX6_8 0x00000003 // Transmit interrupt at 3/4 Full
+#define UART_FIFO_TX7_8 0x00000004 // Transmit interrupt at 7/8 Full
+
+//*****************************************************************************
+//
+// Values that can be passed to UARTFIFOLevelSet as the ulRxLevel parameter and
+// returned by UARTFIFOLevelGet in the pulRxLevel.
+//
+//*****************************************************************************
+#define UART_FIFO_RX1_8 0x00000000 // Receive interrupt at 1/8 Full
+#define UART_FIFO_RX2_8 0x00000008 // Receive interrupt at 1/4 Full
+#define UART_FIFO_RX4_8 0x00000010 // Receive interrupt at 1/2 Full
+#define UART_FIFO_RX6_8 0x00000018 // Receive interrupt at 3/4 Full
+#define UART_FIFO_RX7_8 0x00000020 // Receive interrupt at 7/8 Full
+
+//*****************************************************************************
+//
+// Values that can be passed to UARTDMAEnable() and UARTDMADisable().
+//
+//*****************************************************************************
+#define UART_DMA_ERR_RXSTOP 0x00000004 // Stop DMA receive if UART error
+#define UART_DMA_TX 0x00000002 // Enable DMA for transmit
+#define UART_DMA_RX 0x00000001 // Enable DMA for receive
+
+//*****************************************************************************
+//
+// Values returned from UARTRxErrorGet().
+//
+//*****************************************************************************
+#define UART_RXERROR_OVERRUN 0x00000008
+#define UART_RXERROR_BREAK 0x00000004
+#define UART_RXERROR_PARITY 0x00000002
+#define UART_RXERROR_FRAMING 0x00000001
+
+//*****************************************************************************
+//
+// Values that can be passed to UARTModemControlSet()and UARTModemControlClear()
+// or returned from UARTModemControlGet().
+//
+//*****************************************************************************
+#define UART_OUTPUT_RTS 0x00000800
+
+//*****************************************************************************
+//
+// Values that can be returned from UARTModemStatusGet().
+//
+//*****************************************************************************
+#define UART_INPUT_CTS 0x00000001
+
+//*****************************************************************************
+//
+// Values that can be passed to UARTFlowControl() or returned from
+// UARTFlowControlGet().
+//
+//*****************************************************************************
+#define UART_FLOWCONTROL_TX 0x00008000
+#define UART_FLOWCONTROL_RX 0x00004000
+#define UART_FLOWCONTROL_NONE 0x00000000
+
+//*****************************************************************************
+//
+// Values that can be passed to UARTTxIntModeSet() or returned from
+// UARTTxIntModeGet().
+//
+//*****************************************************************************
+#define UART_TXINT_MODE_FIFO 0x00000000
+#define UART_TXINT_MODE_EOT 0x00000010
+
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void UARTParityModeSet(unsigned long ulBase, unsigned long ulParity);
+extern unsigned long UARTParityModeGet(unsigned long ulBase);
+extern void UARTFIFOLevelSet(unsigned long ulBase, unsigned long ulTxLevel,
+ unsigned long ulRxLevel);
+extern void UARTFIFOLevelGet(unsigned long ulBase, unsigned long *pulTxLevel,
+ unsigned long *pulRxLevel);
+extern void UARTConfigSetExpClk(unsigned long ulBase, unsigned long ulUARTClk,
+ unsigned long ulBaud, unsigned long ulConfig);
+extern void UARTConfigGetExpClk(unsigned long ulBase, unsigned long ulUARTClk,
+ unsigned long *pulBaud,
+ unsigned long *pulConfig);
+extern void UARTEnable(unsigned long ulBase);
+extern void UARTDisable(unsigned long ulBase);
+extern void UARTFIFOEnable(unsigned long ulBase);
+extern void UARTFIFODisable(unsigned long ulBase);
+extern tBoolean UARTCharsAvail(unsigned long ulBase);
+extern tBoolean UARTSpaceAvail(unsigned long ulBase);
+extern long UARTCharGetNonBlocking(unsigned long ulBase);
+extern long UARTCharGet(unsigned long ulBase);
+extern tBoolean UARTCharPutNonBlocking(unsigned long ulBase,
+ unsigned char ucData);
+extern void UARTCharPut(unsigned long ulBase, unsigned char ucData);
+extern void UARTBreakCtl(unsigned long ulBase, tBoolean bBreakState);
+extern tBoolean UARTBusy(unsigned long ulBase);
+extern void UARTIntRegister(unsigned long ulBase, void(*pfnHandler)(void));
+extern void UARTIntUnregister(unsigned long ulBase);
+extern void UARTIntEnable(unsigned long ulBase, unsigned long ulIntFlags);
+extern void UARTIntDisable(unsigned long ulBase, unsigned long ulIntFlags);
+extern unsigned long UARTIntStatus(unsigned long ulBase, tBoolean bMasked);
+extern void UARTIntClear(unsigned long ulBase, unsigned long ulIntFlags);
+extern void UARTDMAEnable(unsigned long ulBase, unsigned long ulDMAFlags);
+extern void UARTDMADisable(unsigned long ulBase, unsigned long ulDMAFlags);
+extern unsigned long UARTRxErrorGet(unsigned long ulBase);
+extern void UARTRxErrorClear(unsigned long ulBase);
+extern void UARTModemControlSet(unsigned long ulBase,
+ unsigned long ulControl);
+extern void UARTModemControlClear(unsigned long ulBase,
+ unsigned long ulControl);
+extern unsigned long UARTModemControlGet(unsigned long ulBase);
+extern unsigned long UARTModemStatusGet(unsigned long ulBase);
+extern void UARTFlowControlSet(unsigned long ulBase, unsigned long ulMode);
+extern unsigned long UARTFlowControlGet(unsigned long ulBase);
+extern void UARTTxIntModeSet(unsigned long ulBase, unsigned long ulMode);
+extern unsigned long UARTTxIntModeGet(unsigned long ulBase);
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __UART_H__
diff --git a/ext/hal/ti/cc3220sdk/driverlib/utils.c b/ext/hal/ti/cc3220sdk/driverlib/utils.c
new file mode 100644
index 0000000..f97cea6
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/utils.c
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// utils.c
+//
+// Utility APIs
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+//! \addtogroup Utils_api
+//! @{
+//
+//*****************************************************************************
+#include "utils.h"
+
+
+//*****************************************************************************
+//
+//! Provides a small delay.
+//!
+//! \param ulCount is the number of delay loop iterations to perform.
+//!
+//! This function provides a means of generating a constant length delay. It
+//! is written in assembly to keep the delay consistent across tool chains,
+//! avoiding the need to tune the delay based on the tool chain in use.
+//!
+//! The loop takes 3 cycles/loop.
+//!
+//! \return None.
+//
+//*****************************************************************************
+#if defined(ewarm) || defined(DOXYGEN)
+void
+UtilsDelay(unsigned long ulCount)
+{
+ __asm(" subs r0, #1\n"
+ " bne.n UtilsDelay\n");
+}
+#endif
+
+#if defined(gcc)
+void __attribute__((naked))
+UtilsDelay(unsigned long ulCount)
+{
+ __asm(" subs r0, #1\n"
+ " bne UtilsDelay\n"
+ " bx lr");
+}
+#endif
+
+//
+// For CCS implement this function in pure assembly. This prevents the TI
+// compiler from doing funny things with the optimizer.
+//
+#if defined(ccs)
+ __asm(" .sect \".text:UtilsDelay\"\n"
+ " .clink\n"
+ " .thumbfunc UtilsDelay\n"
+ " .thumb\n"
+ " .global UtilsDelay\n"
+ "UtilsDelay:\n"
+ " subs r0, #1\n"
+ " bne.n UtilsDelay\n"
+ " bx lr\n");
+#endif
+
+//*****************************************************************************
+//
+// Close the Doxygen group.
+//! @}
+//
+//*****************************************************************************
diff --git a/ext/hal/ti/cc3220sdk/driverlib/utils.h b/ext/hal/ti/cc3220sdk/driverlib/utils.h
new file mode 100644
index 0000000..fe7e39b
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/driverlib/utils.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+//*****************************************************************************
+//
+// utils.h
+//
+// Prototypes and macros for utility APIs
+//
+//*****************************************************************************
+
+#ifndef __UTILS_H__
+#define __UTILS_H__
+
+//*****************************************************************************
+//
+// If building with a C++ compiler, make all of the definitions in this header
+// have a C binding.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//*****************************************************************************
+//
+// API Function prototypes
+//
+//*****************************************************************************
+extern void UtilsDelay(unsigned long ulCount);
+
+
+//*****************************************************************************
+//
+// Mark the end of the C bindings section for C++ compilers.
+//
+//*****************************************************************************
+#ifdef __cplusplus
+}
+#endif
+
+#endif //__UTILS_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_apps_rcm.h b/ext/hal/ti/cc3220sdk/inc/hw_apps_rcm.h
new file mode 100644
index 0000000..32c666f
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_apps_rcm.h
@@ -0,0 +1,1504 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __HW_APPS_RCM_H__
+#define __HW_APPS_RCM_H__
+
+//*****************************************************************************
+//
+// The following are defines for the APPS_RCM register offsets.
+//
+//*****************************************************************************
+#define APPS_RCM_O_CAMERA_CLK_GEN \
+ 0x00000000
+
+#define APPS_RCM_O_CAMERA_CLK_GATING \
+ 0x00000004
+
+#define APPS_RCM_O_CAMERA_SOFT_RESET \
+ 0x00000008
+
+#define APPS_RCM_O_MCASP_CLK_GATING \
+ 0x00000014
+
+#define APPS_RCM_O_MCASP_SOFT_RESET \
+ 0x00000018
+
+#define APPS_RCM_O_MMCHS_CLK_GEN \
+ 0x00000020
+
+#define APPS_RCM_O_MMCHS_CLK_GATING \
+ 0x00000024
+
+#define APPS_RCM_O_MMCHS_SOFT_RESET \
+ 0x00000028
+
+#define APPS_RCM_O_MCSPI_A1_CLK_GEN \
+ 0x0000002C
+
+#define APPS_RCM_O_MCSPI_A1_CLK_GATING \
+ 0x00000030
+
+#define APPS_RCM_O_MCSPI_A1_SOFT_RESET \
+ 0x00000034
+
+#define APPS_RCM_O_MCSPI_A2_CLK_GEN \
+ 0x00000038
+
+#define APPS_RCM_O_MCSPI_A2_CLK_GATING \
+ 0x00000040
+
+#define APPS_RCM_O_MCSPI_A2_SOFT_RESET \
+ 0x00000044
+
+#define APPS_RCM_O_UDMA_A_CLK_GATING \
+ 0x00000048
+
+#define APPS_RCM_O_UDMA_A_SOFT_RESET \
+ 0x0000004C
+
+#define APPS_RCM_O_GPIO_A_CLK_GATING \
+ 0x00000050
+
+#define APPS_RCM_O_GPIO_A_SOFT_RESET \
+ 0x00000054
+
+#define APPS_RCM_O_GPIO_B_CLK_GATING \
+ 0x00000058
+
+#define APPS_RCM_O_GPIO_B_SOFT_RESET \
+ 0x0000005C
+
+#define APPS_RCM_O_GPIO_C_CLK_GATING \
+ 0x00000060
+
+#define APPS_RCM_O_GPIO_C_SOFT_RESET \
+ 0x00000064
+
+#define APPS_RCM_O_GPIO_D_CLK_GATING \
+ 0x00000068
+
+#define APPS_RCM_O_GPIO_D_SOFT_RESET \
+ 0x0000006C
+
+#define APPS_RCM_O_GPIO_E_CLK_GATING \
+ 0x00000070
+
+#define APPS_RCM_O_GPIO_E_SOFT_RESET \
+ 0x00000074
+
+#define APPS_RCM_O_WDOG_A_CLK_GATING \
+ 0x00000078
+
+#define APPS_RCM_O_WDOG_A_SOFT_RESET \
+ 0x0000007C
+
+#define APPS_RCM_O_UART_A0_CLK_GATING \
+ 0x00000080
+
+#define APPS_RCM_O_UART_A0_SOFT_RESET \
+ 0x00000084
+
+#define APPS_RCM_O_UART_A1_CLK_GATING \
+ 0x00000088
+
+#define APPS_RCM_O_UART_A1_SOFT_RESET \
+ 0x0000008C
+
+#define APPS_RCM_O_GPT_A0_CLK_GATING \
+ 0x00000090
+
+#define APPS_RCM_O_GPT_A0_SOFT_RESET \
+ 0x00000094
+
+#define APPS_RCM_O_GPT_A1_CLK_GATING \
+ 0x00000098
+
+#define APPS_RCM_O_GPT_A1_SOFT_RESET \
+ 0x0000009C
+
+#define APPS_RCM_O_GPT_A2_CLK_GATING \
+ 0x000000A0
+
+#define APPS_RCM_O_GPT_A2_SOFT_RESET \
+ 0x000000A4
+
+#define APPS_RCM_O_GPT_A3_CLK_GATING \
+ 0x000000A8
+
+#define APPS_RCM_O_GPT_A3_SOFT_RESET \
+ 0x000000AC
+
+#define APPS_RCM_O_MCASP_FRAC_CLK_CONFIG0 \
+ 0x000000B0
+
+#define APPS_RCM_O_MCASP_FRAC_CLK_CONFIG1 \
+ 0x000000B4
+
+#define APPS_RCM_O_CRYPTO_CLK_GATING \
+ 0x000000B8
+
+#define APPS_RCM_O_CRYPTO_SOFT_RESET \
+ 0x000000BC
+
+#define APPS_RCM_O_MCSPI_S0_CLK_GATING \
+ 0x000000C8
+
+#define APPS_RCM_O_MCSPI_S0_SOFT_RESET \
+ 0x000000CC
+
+#define APPS_RCM_O_MCSPI_S0_CLKDIV_CFG \
+ 0x000000D0
+
+#define APPS_RCM_O_I2C_CLK_GATING \
+ 0x000000D8
+
+#define APPS_RCM_O_I2C_SOFT_RESET \
+ 0x000000DC
+
+#define APPS_RCM_O_APPS_LPDS_REQ \
+ 0x000000E4
+
+#define APPS_RCM_O_APPS_TURBO_REQ \
+ 0x000000EC
+
+#define APPS_RCM_O_APPS_DSLP_WAKE_CONFIG \
+ 0x00000108
+
+#define APPS_RCM_O_APPS_DSLP_WAKE_TIMER_CFG \
+ 0x0000010C
+
+#define APPS_RCM_O_APPS_RCM_SLP_WAKE_ENABLE \
+ 0x00000110
+
+#define APPS_RCM_O_APPS_SLP_WAKETIMER_CFG \
+ 0x00000114
+
+#define APPS_RCM_O_APPS_TO_NWP_WAKE_REQUEST \
+ 0x00000118
+
+#define APPS_RCM_O_APPS_RCM_INTERRUPT_STATUS \
+ 0x00000120
+
+#define APPS_RCM_O_APPS_RCM_INTERRUPT_ENABLE \
+ 0x00000124
+
+
+
+
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_CAMERA_CLK_GEN register.
+//
+//******************************************************************************
+#define APPS_RCM_CAMERA_CLK_GEN_CAMERA_PLLCKDIV_OFF_TIME_M \
+ 0x00000700 // Configuration of OFF-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of Camera func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_CAMERA_CLK_GEN_CAMERA_PLLCKDIV_OFF_TIME_S 8
+#define APPS_RCM_CAMERA_CLK_GEN_NU1_M \
+ 0x000000F8
+
+#define APPS_RCM_CAMERA_CLK_GEN_NU1_S 3
+#define APPS_RCM_CAMERA_CLK_GEN_CAMERA_PLLCKDIV_ON_TIME_M \
+ 0x00000007 // Configuration of ON-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of Camera func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_CAMERA_CLK_GEN_CAMERA_PLLCKDIV_ON_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_CAMERA_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_CAMERA_CLK_GATING_NU1_M \
+ 0x00FE0000
+
+#define APPS_RCM_CAMERA_CLK_GATING_NU1_S 17
+#define APPS_RCM_CAMERA_CLK_GATING_CAMERA_DSLP_CLK_ENABLE \
+ 0x00010000 // 0 - Disable camera clk during
+ // deep-sleep mode
+
+#define APPS_RCM_CAMERA_CLK_GATING_NU2_M \
+ 0x0000FE00
+
+#define APPS_RCM_CAMERA_CLK_GATING_NU2_S 9
+#define APPS_RCM_CAMERA_CLK_GATING_CAMERA_SLP_CLK_ENABLE \
+ 0x00000100 // 1- Enable camera clk during
+ // sleep mode ; 0- Disable camera
+ // clk during sleep mode
+
+#define APPS_RCM_CAMERA_CLK_GATING_NU3_M \
+ 0x000000FE
+
+#define APPS_RCM_CAMERA_CLK_GATING_NU3_S 1
+#define APPS_RCM_CAMERA_CLK_GATING_CAMERA_RUN_CLK_ENABLE \
+ 0x00000001 // 1- Enable camera clk during run
+ // mode ; 0- Disable camera clk
+ // during run mode
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_CAMERA_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_CAMERA_SOFT_RESET_CAMERA_ENABLED_STATUS \
+ 0x00000002 // 1 - Camera clocks/resets are
+ // enabled ; 0 - Camera
+ // clocks/resets are disabled
+
+#define APPS_RCM_CAMERA_SOFT_RESET_CAMERA_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for Camera-core
+ // ; 0 - De-assert reset for
+ // Camera-core
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCASP_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_MCASP_CLK_GATING_NU1_M \
+ 0x00FE0000
+
+#define APPS_RCM_MCASP_CLK_GATING_NU1_S 17
+#define APPS_RCM_MCASP_CLK_GATING_MCASP_DSLP_CLK_ENABLE \
+ 0x00010000 // 0 - Disable MCASP clk during
+ // deep-sleep mode
+
+#define APPS_RCM_MCASP_CLK_GATING_NU2_M \
+ 0x0000FE00
+
+#define APPS_RCM_MCASP_CLK_GATING_NU2_S 9
+#define APPS_RCM_MCASP_CLK_GATING_MCASP_SLP_CLK_ENABLE \
+ 0x00000100 // 1- Enable MCASP clk during sleep
+ // mode ; 0- Disable MCASP clk
+ // during sleep mode
+
+#define APPS_RCM_MCASP_CLK_GATING_NU3_M \
+ 0x000000FE
+
+#define APPS_RCM_MCASP_CLK_GATING_NU3_S 1
+#define APPS_RCM_MCASP_CLK_GATING_MCASP_RUN_CLK_ENABLE \
+ 0x00000001 // 1- Enable MCASP clk during run
+ // mode ; 0- Disable MCASP clk
+ // during run mode
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCASP_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_MCASP_SOFT_RESET_MCASP_ENABLED_STATUS \
+ 0x00000002 // 1 - MCASP Clocks/resets are
+ // enabled ; 0 - MCASP Clocks/resets
+ // are disabled
+
+#define APPS_RCM_MCASP_SOFT_RESET_MCASP_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for MCASP-core
+ // ; 0 - De-assert reset for
+ // MCASP-core
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MMCHS_CLK_GEN register.
+//
+//******************************************************************************
+#define APPS_RCM_MMCHS_CLK_GEN_MMCHS_PLLCKDIV_OFF_TIME_M \
+ 0x00000700 // Configuration of OFF-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of MMCHS func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_MMCHS_CLK_GEN_MMCHS_PLLCKDIV_OFF_TIME_S 8
+#define APPS_RCM_MMCHS_CLK_GEN_NU1_M \
+ 0x000000F8
+
+#define APPS_RCM_MMCHS_CLK_GEN_NU1_S 3
+#define APPS_RCM_MMCHS_CLK_GEN_MMCHS_PLLCKDIV_ON_TIME_M \
+ 0x00000007 // Configuration of ON-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of MMCHS func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_MMCHS_CLK_GEN_MMCHS_PLLCKDIV_ON_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MMCHS_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_MMCHS_CLK_GATING_NU1_M \
+ 0x00FE0000
+
+#define APPS_RCM_MMCHS_CLK_GATING_NU1_S 17
+#define APPS_RCM_MMCHS_CLK_GATING_MMCHS_DSLP_CLK_ENABLE \
+ 0x00010000 // 0 - Disable MMCHS clk during
+ // deep-sleep mode
+
+#define APPS_RCM_MMCHS_CLK_GATING_NU2_M \
+ 0x0000FE00
+
+#define APPS_RCM_MMCHS_CLK_GATING_NU2_S 9
+#define APPS_RCM_MMCHS_CLK_GATING_MMCHS_SLP_CLK_ENABLE \
+ 0x00000100 // 1- Enable MMCHS clk during sleep
+ // mode ; 0- Disable MMCHS clk
+ // during sleep mode
+
+#define APPS_RCM_MMCHS_CLK_GATING_NU3_M \
+ 0x000000FE
+
+#define APPS_RCM_MMCHS_CLK_GATING_NU3_S 1
+#define APPS_RCM_MMCHS_CLK_GATING_MMCHS_RUN_CLK_ENABLE \
+ 0x00000001 // 1- Enable MMCHS clk during run
+ // mode ; 0- Disable MMCHS clk
+ // during run mode
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MMCHS_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_MMCHS_SOFT_RESET_MMCHS_ENABLED_STATUS \
+ 0x00000002 // 1 - MMCHS Clocks/resets are
+ // enabled ; 0 - MMCHS Clocks/resets
+ // are disabled
+
+#define APPS_RCM_MMCHS_SOFT_RESET_MMCHS_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for MMCHS-core
+ // ; 0 - De-assert reset for
+ // MMCHS-core
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCSPI_A1_CLK_GEN register.
+//
+//******************************************************************************
+#define APPS_RCM_MCSPI_A1_CLK_GEN_MCSPI_A1_BAUD_CLK_SEL \
+ 0x00010000 // 0 - XTAL clk is used as baud clk
+ // for MCSPI_A1 ; 1 - PLL divclk is
+ // used as baud clk for MCSPI_A1.
+
+#define APPS_RCM_MCSPI_A1_CLK_GEN_NU1_M \
+ 0x0000F800
+
+#define APPS_RCM_MCSPI_A1_CLK_GEN_NU1_S 11
+#define APPS_RCM_MCSPI_A1_CLK_GEN_MCSPI_A1_PLLCLKDIV_OFF_TIME_M \
+ 0x00000700 // Configuration of OFF-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of MCSPI_A1 func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_MCSPI_A1_CLK_GEN_MCSPI_A1_PLLCLKDIV_OFF_TIME_S 8
+#define APPS_RCM_MCSPI_A1_CLK_GEN_NU2_M \
+ 0x000000F8
+
+#define APPS_RCM_MCSPI_A1_CLK_GEN_NU2_S 3
+#define APPS_RCM_MCSPI_A1_CLK_GEN_MCSPI_A1_PLLCLKDIV_ON_TIME_M \
+ 0x00000007 // Configuration of ON-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of MCSPI_A1 func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_MCSPI_A1_CLK_GEN_MCSPI_A1_PLLCLKDIV_ON_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCSPI_A1_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_MCSPI_A1_CLK_GATING_NU1_M \
+ 0x00FE0000
+
+#define APPS_RCM_MCSPI_A1_CLK_GATING_NU1_S 17
+#define APPS_RCM_MCSPI_A1_CLK_GATING_MCSPI_A1_DSLP_CLK_ENABLE \
+ 0x00010000 // 0 - Disable MCSPI_A1 clk during
+ // deep-sleep mode
+
+#define APPS_RCM_MCSPI_A1_CLK_GATING_NU2_M \
+ 0x0000FE00
+
+#define APPS_RCM_MCSPI_A1_CLK_GATING_NU2_S 9
+#define APPS_RCM_MCSPI_A1_CLK_GATING_MCSPI_A1_SLP_CLK_ENABLE \
+ 0x00000100 // 1- Enable MCSPI_A1 clk during
+ // sleep mode ; 0- Disable MCSPI_A1
+ // clk during sleep mode
+
+#define APPS_RCM_MCSPI_A1_CLK_GATING_NU3_M \
+ 0x000000FE
+
+#define APPS_RCM_MCSPI_A1_CLK_GATING_NU3_S 1
+#define APPS_RCM_MCSPI_A1_CLK_GATING_MCSPI_A1_RUN_CLK_ENABLE \
+ 0x00000001 // 1- Enable MCSPI_A1 clk during
+ // run mode ; 0- Disable MCSPI_A1
+ // clk during run mode
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCSPI_A1_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_MCSPI_A1_SOFT_RESET_MCSPI_A1_ENABLED_STATUS \
+ 0x00000002 // 1 - MCSPI_A1 Clocks/Resets are
+ // enabled ; 0 - MCSPI_A1
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_MCSPI_A1_SOFT_RESET_MCSPI_A1_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for
+ // MCSPI_A1-core ; 0 - De-assert
+ // reset for MCSPI_A1-core
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCSPI_A2_CLK_GEN register.
+//
+//******************************************************************************
+#define APPS_RCM_MCSPI_A2_CLK_GEN_MCSPI_A2_BAUD_CLK_SEL \
+ 0x00010000 // 0 - XTAL clk is used as baud-clk
+ // for MCSPI_A2 ; 1 - PLL divclk is
+ // used as baud-clk for MCSPI_A2
+
+#define APPS_RCM_MCSPI_A2_CLK_GEN_NU1_M \
+ 0x0000F800
+
+#define APPS_RCM_MCSPI_A2_CLK_GEN_NU1_S 11
+#define APPS_RCM_MCSPI_A2_CLK_GEN_MCSPI_A2_PLLCKDIV_OFF_TIME_M \
+ 0x00000700 // Configuration of OFF-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of MCSPI_A2 func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_MCSPI_A2_CLK_GEN_MCSPI_A2_PLLCKDIV_OFF_TIME_S 8
+#define APPS_RCM_MCSPI_A2_CLK_GEN_NU2_M \
+ 0x000000F8
+
+#define APPS_RCM_MCSPI_A2_CLK_GEN_NU2_S 3
+#define APPS_RCM_MCSPI_A2_CLK_GEN_MCSPI_A2_PLLCKDIV_ON_TIME_M \
+ 0x00000007 // Configuration of OFF-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of MCSPI_A2 func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_MCSPI_A2_CLK_GEN_MCSPI_A2_PLLCKDIV_ON_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCSPI_A2_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_MCSPI_A2_CLK_GATING_NU1_M \
+ 0x00FE0000
+
+#define APPS_RCM_MCSPI_A2_CLK_GATING_NU1_S 17
+#define APPS_RCM_MCSPI_A2_CLK_GATING_MCSPI_A2_DSLP_CLK_ENABLE \
+ 0x00010000 // 0 - Disable MCSPI_A2 clk during
+ // deep-sleep mode
+
+#define APPS_RCM_MCSPI_A2_CLK_GATING_NU2_M \
+ 0x0000FE00
+
+#define APPS_RCM_MCSPI_A2_CLK_GATING_NU2_S 9
+#define APPS_RCM_MCSPI_A2_CLK_GATING_MCSPI_A2_SLP_CLK_ENABLE \
+ 0x00000100 // 1- Enable MCSPI_A2 clk during
+ // sleep mode ; 0- Disable MCSPI_A2
+ // clk during sleep mode
+
+#define APPS_RCM_MCSPI_A2_CLK_GATING_NU3_M \
+ 0x000000FE
+
+#define APPS_RCM_MCSPI_A2_CLK_GATING_NU3_S 1
+#define APPS_RCM_MCSPI_A2_CLK_GATING_MCSPI_A2_RUN_CLK_ENABLE \
+ 0x00000001 // 1- Enable MCSPI_A2 clk during
+ // run mode ; 0- Disable MCSPI_A2
+ // clk during run mode
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCSPI_A2_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_MCSPI_A2_SOFT_RESET_MCSPI_A2_ENABLED_STATUS \
+ 0x00000002 // 1 - MCSPI_A2 Clocks/Resets are
+ // enabled ; 0 - MCSPI_A2
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_MCSPI_A2_SOFT_RESET_MCSPI_A2_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for
+ // MCSPI_A2-core ; 0 - De-assert
+ // reset for MCSPI_A2-core
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_UDMA_A_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_UDMA_A_CLK_GATING_UDMA_A_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable UDMA_A clk during
+ // deep-sleep mode 0 - Disable
+ // UDMA_A clk during deep-sleep mode
+ // ;
+
+#define APPS_RCM_UDMA_A_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_UDMA_A_CLK_GATING_NU1_S 9
+#define APPS_RCM_UDMA_A_CLK_GATING_UDMA_A_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable UDMA_A clk during
+ // sleep mode 0 - Disable UDMA_A clk
+ // during sleep mode ;
+
+#define APPS_RCM_UDMA_A_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_UDMA_A_CLK_GATING_NU2_S 1
+#define APPS_RCM_UDMA_A_CLK_GATING_UDMA_A_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable UDMA_A clk during run
+ // mode 0 - Disable UDMA_A clk
+ // during run mode ;
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_UDMA_A_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_UDMA_A_SOFT_RESET_UDMA_A_ENABLED_STATUS \
+ 0x00000002 // 1 - UDMA_A Clocks/Resets are
+ // enabled ; 0 - UDMA_A
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_UDMA_A_SOFT_RESET_UDMA_A_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for DMA_A ; 0 -
+ // De-assert reset for DMA_A
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_A_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_A_CLK_GATING_GPIO_A_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable GPIO_A clk during
+ // deep-sleep mode 0 - Disable
+ // GPIO_A clk during deep-sleep mode
+ // ;
+
+#define APPS_RCM_GPIO_A_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_GPIO_A_CLK_GATING_NU1_S 9
+#define APPS_RCM_GPIO_A_CLK_GATING_GPIO_A_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable GPIO_A clk during
+ // sleep mode 0 - Disable GPIO_A clk
+ // during sleep mode ;
+
+#define APPS_RCM_GPIO_A_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_GPIO_A_CLK_GATING_NU2_S 1
+#define APPS_RCM_GPIO_A_CLK_GATING_GPIO_A_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable GPIO_A clk during run
+ // mode 0 - Disable GPIO_A clk
+ // during run mode ;
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_A_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_A_SOFT_RESET_GPIO_A_ENABLED_STATUS \
+ 0x00000002 // 1 - GPIO_A Clocks/Resets are
+ // enabled ; 0 - GPIO_A
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_GPIO_A_SOFT_RESET_GPIO_A_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for GPIO_A ; 0
+ // - De-assert reset for GPIO_A
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_B_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_B_CLK_GATING_GPIO_B_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable GPIO_B clk during
+ // deep-sleep mode 0 - Disable
+ // GPIO_B clk during deep-sleep mode
+ // ;
+
+#define APPS_RCM_GPIO_B_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_GPIO_B_CLK_GATING_NU1_S 9
+#define APPS_RCM_GPIO_B_CLK_GATING_GPIO_B_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable GPIO_B clk during
+ // sleep mode 0 - Disable GPIO_B clk
+ // during sleep mode ;
+
+#define APPS_RCM_GPIO_B_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_GPIO_B_CLK_GATING_NU2_S 1
+#define APPS_RCM_GPIO_B_CLK_GATING_GPIO_B_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable GPIO_B clk during run
+ // mode 0 - Disable GPIO_B clk
+ // during run mode ;
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_B_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_B_SOFT_RESET_GPIO_B_ENABLED_STATUS \
+ 0x00000002 // 1 - GPIO_B Clocks/Resets are
+ // enabled ; 0 - GPIO_B
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_GPIO_B_SOFT_RESET_GPIO_B_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for GPIO_B ; 0
+ // - De-assert reset for GPIO_B
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_C_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_C_CLK_GATING_GPIO_C_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable GPIO_C clk during
+ // deep-sleep mode 0 - Disable
+ // GPIO_C clk during deep-sleep mode
+ // ;
+
+#define APPS_RCM_GPIO_C_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_GPIO_C_CLK_GATING_NU1_S 9
+#define APPS_RCM_GPIO_C_CLK_GATING_GPIO_C_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable GPIO_C clk during
+ // sleep mode 0 - Disable GPIO_C clk
+ // during sleep mode ;
+
+#define APPS_RCM_GPIO_C_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_GPIO_C_CLK_GATING_NU2_S 1
+#define APPS_RCM_GPIO_C_CLK_GATING_GPIO_C_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable GPIO_C clk during run
+ // mode 0 - Disable GPIO_C clk
+ // during run mode ;
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_C_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_C_SOFT_RESET_GPIO_C_ENABLED_STATUS \
+ 0x00000002 // 1 - GPIO_C Clocks/Resets are
+ // enabled ; 0 - GPIO_C
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_GPIO_C_SOFT_RESET_GPIO_C_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for GPIO_C ; 0
+ // - De-assert reset for GPIO_C
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_D_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_D_CLK_GATING_GPIO_D_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable GPIO_D clk during
+ // deep-sleep mode 0 - Disable
+ // GPIO_D clk during deep-sleep mode
+ // ;
+
+#define APPS_RCM_GPIO_D_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_GPIO_D_CLK_GATING_NU1_S 9
+#define APPS_RCM_GPIO_D_CLK_GATING_GPIO_D_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable GPIO_D clk during
+ // sleep mode 0 - Disable GPIO_D clk
+ // during sleep mode ;
+
+#define APPS_RCM_GPIO_D_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_GPIO_D_CLK_GATING_NU2_S 1
+#define APPS_RCM_GPIO_D_CLK_GATING_GPIO_D_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable GPIO_D clk during run
+ // mode 0 - Disable GPIO_D clk
+ // during run mode ;
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_D_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_D_SOFT_RESET_GPIO_D_ENABLED_STATUS \
+ 0x00000002 // 1 - GPIO_D Clocks/Resets are
+ // enabled ; 0 - GPIO_D
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_GPIO_D_SOFT_RESET_GPIO_D_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for GPIO_D ; 0
+ // - De-assert reset for GPIO_D
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_E_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_E_CLK_GATING_GPIO_E_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable GPIO_E clk during
+ // deep-sleep mode 0 - Disable
+ // GPIO_E clk during deep-sleep mode
+ // ;
+
+#define APPS_RCM_GPIO_E_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_GPIO_E_CLK_GATING_NU1_S 9
+#define APPS_RCM_GPIO_E_CLK_GATING_GPIO_E_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable GPIO_E clk during
+ // sleep mode 0 - Disable GPIO_E clk
+ // during sleep mode ;
+
+#define APPS_RCM_GPIO_E_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_GPIO_E_CLK_GATING_NU2_S 1
+#define APPS_RCM_GPIO_E_CLK_GATING_GPIO_E_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable GPIO_E clk during run
+ // mode 0 - Disable GPIO_E clk
+ // during run mode ;
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPIO_E_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_GPIO_E_SOFT_RESET_GPIO_E_ENABLED_STATUS \
+ 0x00000002 // 1 - GPIO_E Clocks/Resets are
+ // enabled ; 0 - GPIO_E
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_GPIO_E_SOFT_RESET_GPIO_E_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for GPIO_E ; 0
+ // - De-assert reset for GPIO_E
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_WDOG_A_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_WDOG_A_CLK_GATING_WDOG_A_BAUD_CLK_SEL_M \
+ 0x03000000 // "00" - Sysclk ; "01" - REF_CLK
+ // (38.4 MHz) ; "10/11" - Slow_clk
+
+#define APPS_RCM_WDOG_A_CLK_GATING_WDOG_A_BAUD_CLK_SEL_S 24
+#define APPS_RCM_WDOG_A_CLK_GATING_WDOG_A_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable WDOG_A clk during
+ // deep-sleep mode 0 - Disable
+ // WDOG_A clk during deep-sleep mode
+ // ;
+
+#define APPS_RCM_WDOG_A_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_WDOG_A_CLK_GATING_NU1_S 9
+#define APPS_RCM_WDOG_A_CLK_GATING_WDOG_A_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable WDOG_A clk during
+ // sleep mode 0 - Disable WDOG_A clk
+ // during sleep mode ;
+
+#define APPS_RCM_WDOG_A_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_WDOG_A_CLK_GATING_NU2_S 1
+#define APPS_RCM_WDOG_A_CLK_GATING_WDOG_A_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable WDOG_A clk during run
+ // mode 0 - Disable WDOG_A clk
+ // during run mode ;
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_WDOG_A_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_WDOG_A_SOFT_RESET_WDOG_A_ENABLED_STATUS \
+ 0x00000002 // 1 - WDOG_A Clocks/Resets are
+ // enabled ; 0 - WDOG_A
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_WDOG_A_SOFT_RESET_WDOG_A_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for WDOG_A ; 0
+ // - De-assert reset for WDOG_A
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_UART_A0_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_UART_A0_CLK_GATING_UART_A0_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable UART_A0 clk during
+ // deep-sleep mode 0 - Disable
+ // UART_A0 clk during deep-sleep
+ // mode ;
+
+#define APPS_RCM_UART_A0_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_UART_A0_CLK_GATING_NU1_S 9
+#define APPS_RCM_UART_A0_CLK_GATING_UART_A0_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable UART_A0 clk during
+ // sleep mode 0 - Disable UART_A0
+ // clk during sleep mode ;
+
+#define APPS_RCM_UART_A0_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_UART_A0_CLK_GATING_NU2_S 1
+#define APPS_RCM_UART_A0_CLK_GATING_UART_A0_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable UART_A0 clk during
+ // run mode 0 - Disable UART_A0 clk
+ // during run mode ;
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_UART_A0_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_UART_A0_SOFT_RESET_UART_A0_ENABLED_STATUS \
+ 0x00000002 // 1 - UART_A0 Clocks/Resets are
+ // enabled ; 0 - UART_A0
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_UART_A0_SOFT_RESET_UART_A0_SOFT_RESET \
+ 0x00000001 // 1 - Assert reset for UART_A0 ; 0
+ // - De-assert reset for UART_A0
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_UART_A1_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_UART_A1_CLK_GATING_UART_A1_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable UART_A1 clk during
+ // deep-sleep mode 0 - Disable
+ // UART_A1 clk during deep-sleep
+ // mode ;
+
+#define APPS_RCM_UART_A1_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_UART_A1_CLK_GATING_NU1_S 9
+#define APPS_RCM_UART_A1_CLK_GATING_UART_A1_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable UART_A1 clk during
+ // sleep mode 0 - Disable UART_A1
+ // clk during sleep mode ;
+
+#define APPS_RCM_UART_A1_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_UART_A1_CLK_GATING_NU2_S 1
+#define APPS_RCM_UART_A1_CLK_GATING_UART_A1_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable UART_A1 clk during
+ // run mode 0 - Disable UART_A1 clk
+ // during run mode ;
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_UART_A1_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_UART_A1_SOFT_RESET_UART_A1_ENABLED_STATUS \
+ 0x00000002 // 1 - UART_A1 Clocks/Resets are
+ // enabled ; 0 - UART_A1
+ // Clocks/Resets are disabled
+
+#define APPS_RCM_UART_A1_SOFT_RESET_UART_A1_SOFT_RESET \
+ 0x00000001 // 1 - Assert the soft reset for
+ // UART_A1 ; 0 - De-assert the soft
+ // reset for UART_A1
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPT_A0_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_GPT_A0_CLK_GATING_GPT_A0_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable the GPT_A0 clock
+ // during deep-sleep ; 0 - Disable
+ // the GPT_A0 clock during
+ // deep-sleep
+
+#define APPS_RCM_GPT_A0_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_GPT_A0_CLK_GATING_NU1_S 9
+#define APPS_RCM_GPT_A0_CLK_GATING_GPT_A0_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable the GPT_A0 clock
+ // during sleep ; 0 - Disable the
+ // GPT_A0 clock during sleep
+
+#define APPS_RCM_GPT_A0_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_GPT_A0_CLK_GATING_NU2_S 1
+#define APPS_RCM_GPT_A0_CLK_GATING_GPT_A0_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable the GPT_A0 clock
+ // during run ; 0 - Disable the
+ // GPT_A0 clock during run
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPT_A0_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_GPT_A0_SOFT_RESET_GPT_A0_ENABLED_STATUS \
+ 0x00000002 // 1 - GPT_A0 clocks/resets are
+ // enabled ; 0 - GPT_A0
+ // clocks/resets are disabled
+
+#define APPS_RCM_GPT_A0_SOFT_RESET_GPT_A0_SOFT_RESET \
+ 0x00000001 // 1 - Assert the soft reset for
+ // GPT_A0 ; 0 - De-assert the soft
+ // reset for GPT_A0
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPT_A1_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_GPT_A1_CLK_GATING_GPT_A1_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable the GPT_A1 clock
+ // during deep-sleep ; 0 - Disable
+ // the GPT_A1 clock during
+ // deep-sleep
+
+#define APPS_RCM_GPT_A1_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_GPT_A1_CLK_GATING_NU1_S 9
+#define APPS_RCM_GPT_A1_CLK_GATING_GPT_A1_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable the GPT_A1 clock
+ // during sleep ; 0 - Disable the
+ // GPT_A1 clock during sleep
+
+#define APPS_RCM_GPT_A1_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_GPT_A1_CLK_GATING_NU2_S 1
+#define APPS_RCM_GPT_A1_CLK_GATING_GPT_A1_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable the GPT_A1 clock
+ // during run ; 0 - Disable the
+ // GPT_A1 clock during run
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPT_A1_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_GPT_A1_SOFT_RESET_GPT_A1_ENABLED_STATUS \
+ 0x00000002 // 1 - GPT_A1 clocks/resets are
+ // enabled ; 0 - GPT_A1
+ // clocks/resets are disabled
+
+#define APPS_RCM_GPT_A1_SOFT_RESET_GPT_A1_SOFT_RESET \
+ 0x00000001 // 1 - Assert the soft reset for
+ // GPT_A1 ; 0 - De-assert the soft
+ // reset for GPT_A1
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPT_A2_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_GPT_A2_CLK_GATING_GPT_A2_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable the GPT_A2 clock
+ // during deep-sleep ; 0 - Disable
+ // the GPT_A2 clock during
+ // deep-sleep
+
+#define APPS_RCM_GPT_A2_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_GPT_A2_CLK_GATING_NU1_S 9
+#define APPS_RCM_GPT_A2_CLK_GATING_GPT_A2_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable the GPT_A2 clock
+ // during sleep ; 0 - Disable the
+ // GPT_A2 clock during sleep
+
+#define APPS_RCM_GPT_A2_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_GPT_A2_CLK_GATING_NU2_S 1
+#define APPS_RCM_GPT_A2_CLK_GATING_GPT_A2_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable the GPT_A2 clock
+ // during run ; 0 - Disable the
+ // GPT_A2 clock during run
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPT_A2_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_GPT_A2_SOFT_RESET_GPT_A2_ENABLED_STATUS \
+ 0x00000002 // 1 - GPT_A2 clocks/resets are
+ // enabled ; 0 - GPT_A2
+ // clocks/resets are disabled
+
+#define APPS_RCM_GPT_A2_SOFT_RESET_GPT_A2_SOFT_RESET \
+ 0x00000001 // 1 - Assert the soft reset for
+ // GPT_A2 ; 0 - De-assert the soft
+ // reset for GPT_A2
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPT_A3_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_GPT_A3_CLK_GATING_GPT_A3_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable the GPT_A3 clock
+ // during deep-sleep ; 0 - Disable
+ // the GPT_A3 clock during
+ // deep-sleep
+
+#define APPS_RCM_GPT_A3_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_GPT_A3_CLK_GATING_NU1_S 9
+#define APPS_RCM_GPT_A3_CLK_GATING_GPT_A3_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable the GPT_A3 clock
+ // during sleep ; 0 - Disable the
+ // GPT_A3 clock during sleep
+
+#define APPS_RCM_GPT_A3_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_GPT_A3_CLK_GATING_NU2_S 1
+#define APPS_RCM_GPT_A3_CLK_GATING_GPT_A3_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable the GPT_A3 clock
+ // during run ; 0 - Disable the
+ // GPT_A3 clock during run
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_GPT_A3_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_GPT_A3_SOFT_RESET_GPT_A3_ENABLED_STATUS \
+ 0x00000002 // 1 - GPT_A3 Clocks/resets are
+ // enabled ; 0 - GPT_A3
+ // Clocks/resets are disabled
+
+#define APPS_RCM_GPT_A3_SOFT_RESET_GPT_A3_SOFT_RESET \
+ 0x00000001 // 1 - Assert the soft reset for
+ // GPT_A3 ; 0 - De-assert the soft
+ // reset for GPT_A3
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCASP_FRAC_CLK_CONFIG0 register.
+//
+//******************************************************************************
+#define APPS_RCM_MCASP_FRAC_CLK_CONFIG0_MCASP_FRAC_DIV_DIVISOR_M \
+ 0x03FF0000
+
+#define APPS_RCM_MCASP_FRAC_CLK_CONFIG0_MCASP_FRAC_DIV_DIVISOR_S 16
+#define APPS_RCM_MCASP_FRAC_CLK_CONFIG0_MCASP_FRAC_DIV_FRACTION_M \
+ 0x0000FFFF
+
+#define APPS_RCM_MCASP_FRAC_CLK_CONFIG0_MCASP_FRAC_DIV_FRACTION_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCASP_FRAC_CLK_CONFIG1 register.
+//
+//******************************************************************************
+#define APPS_RCM_MCASP_FRAC_CLK_CONFIG1_MCASP_FRAC_DIV_SOFT_RESET \
+ 0x00010000 // 1 - Assert the reset for MCASP
+ // Frac-clk div; 0 - Donot assert
+ // the reset for MCASP frac clk-div
+
+#define APPS_RCM_MCASP_FRAC_CLK_CONFIG1_MCASP_FRAC_DIV_PERIOD_M \
+ 0x000003FF
+
+#define APPS_RCM_MCASP_FRAC_CLK_CONFIG1_MCASP_FRAC_DIV_PERIOD_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_CRYPTO_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_CRYPTO_CLK_GATING_CRYPTO_DSLP_CLK_ENABLE \
+ 0x00010000 // 0 - Disable the Crypto clock
+ // during deep-sleep
+
+#define APPS_RCM_CRYPTO_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_CRYPTO_CLK_GATING_NU1_S 9
+#define APPS_RCM_CRYPTO_CLK_GATING_CRYPTO_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable the Crypto clock
+ // during sleep ; 0 - Disable the
+ // Crypto clock during sleep
+
+#define APPS_RCM_CRYPTO_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_CRYPTO_CLK_GATING_NU2_S 1
+#define APPS_RCM_CRYPTO_CLK_GATING_CRYPTO_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable the Crypto clock
+ // during run ; 0 - Disable the
+ // Crypto clock during run
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_CRYPTO_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_CRYPTO_SOFT_RESET_CRYPTO_ENABLED_STATUS \
+ 0x00000002 // 1 - Crypto clocks/resets are
+ // enabled ; 0 - Crypto
+ // clocks/resets are disabled
+
+#define APPS_RCM_CRYPTO_SOFT_RESET_CRYPTO_SOFT_RESET \
+ 0x00000001 // 1 - Assert the soft reset for
+ // Crypto ; 0 - De-assert the soft
+ // reset for Crypto
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCSPI_S0_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_MCSPI_S0_CLK_GATING_MCSPI_S0_DSLP_CLK_ENABLE \
+ 0x00010000 // 0 - Disable the MCSPI_S0 clock
+ // during deep-sleep
+
+#define APPS_RCM_MCSPI_S0_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_MCSPI_S0_CLK_GATING_NU1_S 9
+#define APPS_RCM_MCSPI_S0_CLK_GATING_MCSPI_S0_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable the MCSPI_S0 clock
+ // during sleep ; 0 - Disable the
+ // MCSPI_S0 clock during sleep
+
+#define APPS_RCM_MCSPI_S0_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_MCSPI_S0_CLK_GATING_NU2_S 1
+#define APPS_RCM_MCSPI_S0_CLK_GATING_MCSPI_S0_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable the MCSPI_S0 clock
+ // during run ; 0 - Disable the
+ // MCSPI_S0 clock during run
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCSPI_S0_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_MCSPI_S0_SOFT_RESET_MCSPI_S0_ENABLED_STATUS \
+ 0x00000002 // 1 - MCSPI_S0 Clocks/Resets are
+ // enabled ; 0 - MCSPI_S0
+ // Clocks/resets are disabled
+
+#define APPS_RCM_MCSPI_S0_SOFT_RESET_MCSPI_S0_SOFT_RESET \
+ 0x00000001 // 1 - Assert the soft reset for
+ // MCSPI_S0 ; 0 - De-assert the soft
+ // reset for MCSPI_S0
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_MCSPI_S0_CLKDIV_CFG register.
+//
+//******************************************************************************
+#define APPS_RCM_MCSPI_S0_CLKDIV_CFG_MCSPI_S0_BAUD_CLK_SEL \
+ 0x00010000 // 0 - XTAL clk is used as baud-clk
+ // for MCSPI_S0 ; 1 - PLL divclk is
+ // used as buad-clk for MCSPI_S0
+
+#define APPS_RCM_MCSPI_S0_CLKDIV_CFG_NU1_M \
+ 0x0000F800
+
+#define APPS_RCM_MCSPI_S0_CLKDIV_CFG_NU1_S 11
+#define APPS_RCM_MCSPI_S0_CLKDIV_CFG_MCSPI_S0_PLLCLKDIV_OFF_TIME_M \
+ 0x00000700 // Configuration of OFF-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of MCSPI_S0 func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_MCSPI_S0_CLKDIV_CFG_MCSPI_S0_PLLCLKDIV_OFF_TIME_S 8
+#define APPS_RCM_MCSPI_S0_CLKDIV_CFG_NU2_M \
+ 0x000000F8
+
+#define APPS_RCM_MCSPI_S0_CLKDIV_CFG_NU2_S 3
+#define APPS_RCM_MCSPI_S0_CLKDIV_CFG_MCSPI_S0_PLLCLKDIV_ON_TIME_M \
+ 0x00000007 // Configuration of ON-TIME for
+ // dividing PLL clk (240 MHz) in
+ // generation of MCSPI_S0 func-clk :
+ // "000" - 1 "001" - 2 "010" - 3
+ // "011" - 4 "100" - 5 "101" - 6
+ // "110" - 7 "111" - 8
+
+#define APPS_RCM_MCSPI_S0_CLKDIV_CFG_MCSPI_S0_PLLCLKDIV_ON_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_I2C_CLK_GATING register.
+//
+//******************************************************************************
+#define APPS_RCM_I2C_CLK_GATING_I2C_DSLP_CLK_ENABLE \
+ 0x00010000 // 1 - Enable the I2C Clock during
+ // deep-sleep 0 - Disable the I2C
+ // clock during deep-sleep
+
+#define APPS_RCM_I2C_CLK_GATING_NU1_M \
+ 0x0000FE00
+
+#define APPS_RCM_I2C_CLK_GATING_NU1_S 9
+#define APPS_RCM_I2C_CLK_GATING_I2C_SLP_CLK_ENABLE \
+ 0x00000100 // 1 - Enable the I2C clock during
+ // sleep ; 0 - Disable the I2C clock
+ // during sleep
+
+#define APPS_RCM_I2C_CLK_GATING_NU2_M \
+ 0x000000FE
+
+#define APPS_RCM_I2C_CLK_GATING_NU2_S 1
+#define APPS_RCM_I2C_CLK_GATING_I2C_RUN_CLK_ENABLE \
+ 0x00000001 // 1 - Enable the I2C clock during
+ // run ; 0 - Disable the I2C clock
+ // during run
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_I2C_SOFT_RESET register.
+//
+//******************************************************************************
+#define APPS_RCM_I2C_SOFT_RESET_I2C_ENABLED_STATUS \
+ 0x00000002 // 1 - I2C Clocks/Resets are
+ // enabled ; 0 - I2C clocks/resets
+ // are disabled
+
+#define APPS_RCM_I2C_SOFT_RESET_I2C_SOFT_RESET \
+ 0x00000001 // 1 - Assert the soft reset for
+ // Shared-I2C ; 0 - De-assert the
+ // soft reset for Shared-I2C
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_APPS_LPDS_REQ register.
+//
+//******************************************************************************
+#define APPS_RCM_APPS_LPDS_REQ_APPS_LPDS_REQ \
+ 0x00000001 // 1 - Request for LPDS
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_APPS_TURBO_REQ register.
+//
+//******************************************************************************
+#define APPS_RCM_APPS_TURBO_REQ_APPS_TURBO_REQ \
+ 0x00000001 // 1 - Request for TURBO
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_APPS_DSLP_WAKE_CONFIG register.
+//
+//******************************************************************************
+#define APPS_RCM_APPS_DSLP_WAKE_CONFIG_DSLP_WAKE_FROM_NWP_ENABLE \
+ 0x00000002 // 1 - Enable the NWP to wake APPS
+ // from deep-sleep ; 0 - Disable NWP
+ // to wake APPS from deep-sleep
+
+#define APPS_RCM_APPS_DSLP_WAKE_CONFIG_DSLP_WAKE_TIMER_ENABLE \
+ 0x00000001 // 1 - Enable deep-sleep wake timer
+ // in APPS RCM for deep-sleep; 0 -
+ // Disable deep-sleep wake timer in
+ // APPS RCM
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_APPS_DSLP_WAKE_TIMER_CFG register.
+//
+//******************************************************************************
+#define APPS_RCM_APPS_DSLP_WAKE_TIMER_CFG_DSLP_WAKE_TIMER_OPP_CFG_M \
+ 0xFFFF0000 // Configuration (in slow_clks)
+ // which says when to request for
+ // OPP during deep-sleep exit
+
+#define APPS_RCM_APPS_DSLP_WAKE_TIMER_CFG_DSLP_WAKE_TIMER_OPP_CFG_S 16
+#define APPS_RCM_APPS_DSLP_WAKE_TIMER_CFG_DSLP_WAKE_TIMER_WAKE_CFG_M \
+ 0x0000FFFF // Configuration (in slow_clks)
+ // which says when to request for
+ // WAKE during deep-sleep exit
+
+#define APPS_RCM_APPS_DSLP_WAKE_TIMER_CFG_DSLP_WAKE_TIMER_WAKE_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_APPS_RCM_SLP_WAKE_ENABLE register.
+//
+//******************************************************************************
+#define APPS_RCM_APPS_RCM_SLP_WAKE_ENABLE_SLP_WAKE_FROM_NWP_ENABLE \
+ 0x00000002 // 1- Enable the sleep wakeup due
+ // to NWP request. 0- Disable the
+ // sleep wakeup due to NWP request
+
+#define APPS_RCM_APPS_RCM_SLP_WAKE_ENABLE_SLP_WAKE_TIMER_ENABLE \
+ 0x00000001 // 1- Enable the sleep wakeup due
+ // to sleep-timer; 0-Disable the
+ // sleep wakeup due to sleep-timer
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_APPS_SLP_WAKETIMER_CFG register.
+//
+//******************************************************************************
+#define APPS_RCM_APPS_SLP_WAKETIMER_CFG_SLP_WAKE_TIMER_CFG_M \
+ 0xFFFFFFFF // Configuration (number of
+ // sysclks-80MHz) for the Sleep
+ // wakeup timer
+
+#define APPS_RCM_APPS_SLP_WAKETIMER_CFG_SLP_WAKE_TIMER_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_APPS_TO_NWP_WAKE_REQUEST register.
+//
+//******************************************************************************
+#define APPS_RCM_APPS_TO_NWP_WAKE_REQUEST_APPS_TO_NWP_WAKEUP_REQUEST \
+ 0x00000001 // When 1 => APPS generated a wake
+ // request to NWP (When NWP is in
+ // any of its low-power modes :
+ // SLP/DSLP/LPDS)
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// APPS_RCM_O_APPS_RCM_INTERRUPT_STATUS register.
+//
+//******************************************************************************
+#define APPS_RCM_APPS_RCM_INTERRUPT_STATUS_apps_deep_sleep_timer_wake \
+ 0x00000008 // 1 - Indicates that deep-sleep
+ // timer expiry had caused the
+ // wakeup from deep-sleep
+
+#define APPS_RCM_APPS_RCM_INTERRUPT_STATUS_apps_sleep_timer_wake \
+ 0x00000004 // 1 - Indicates that sleep timer
+ // expiry had caused the wakeup from
+ // sleep
+
+#define APPS_RCM_APPS_RCM_INTERRUPT_STATUS_apps_deep_sleep_wake_from_nwp \
+ 0x00000002 // 1 - Indicates that NWP had
+ // caused the wakeup from deep-sleep
+
+#define APPS_RCM_APPS_RCM_INTERRUPT_STATUS_apps_sleep_wake_from_nwp \
+ 0x00000001 // 1 - Indicates that NWP had
+ // caused the wakeup from Sleep
+
+
+
+
+#endif // __HW_APPS_RCM_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_common_reg.h b/ext/hal/ti/cc3220sdk/inc/hw_common_reg.h
new file mode 100644
index 0000000..48bebc8
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_common_reg.h
@@ -0,0 +1,1115 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __HW_COMMON_REG_H__
+#define __HW_COMMON_REG_H__
+
+//*****************************************************************************
+//
+// The following are defines for the COMMON_REG register offsets.
+//
+//*****************************************************************************
+#define COMMON_REG_O_I2C_Properties_Register \
+ 0x00000000
+
+#define COMMON_REG_O_SPI_Properties_Register \
+ 0x00000004
+
+#define COMMON_REG_O_APPS_sh_resource_Interrupt_enable \
+ 0x0000000C
+
+#define COMMON_REG_O_APPS_sh_resource_Interrupt_status \
+ 0x00000010
+
+#define COMMON_REG_O_NWP_sh_resource_Interrupt_enable \
+ 0x00000014
+
+#define COMMON_REG_O_NWP_sh_resource_Interrupt_status \
+ 0x00000018
+
+#define COMMON_REG_O_Flash_ctrl_reg \
+ 0x0000001C
+
+#define COMMON_REG_O_Bus_matrix_M0_segment_access_config \
+ 0x00000024
+
+#define COMMON_REG_O_Bus_matrix_M1_segment_access_config \
+ 0x00000028
+
+#define COMMON_REG_O_Bus_matrix_M2_segment_access_config \
+ 0x0000002C
+
+#define COMMON_REG_O_Bus_matrix_M3_segment_access_config \
+ 0x00000030
+
+#define COMMON_REG_O_Bus_matrix_M4_segment_access_config \
+ 0x00000034
+
+#define COMMON_REG_O_Bus_matrix_M5_segment_access_config \
+ 0x00000038
+
+#define COMMON_REG_O_GPIO_properties_register \
+ 0x0000003C
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE1 \
+ 0x00000040
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE2 \
+ 0x00000044
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE3 \
+ 0x00000048
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE4 \
+ 0x0000004C
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE5 \
+ 0x00000050
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE6 \
+ 0x00000054
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE7 \
+ 0x00000058
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE8 \
+ 0x0000005C
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE9 \
+ 0x00000060
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE10 \
+ 0x00000064
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE11 \
+ 0x00000068
+
+#define COMMON_REG_O_APPS_NW_SEMAPHORE12 \
+ 0x0000006C
+
+#define COMMON_REG_O_APPS_SEMAPPHORE_PEND \
+ 0x00000070
+
+#define COMMON_REG_O_NW_SEMAPPHORE_PEND \
+ 0x00000074
+
+#define COMMON_REG_O_SEMAPHORE_STATUS \
+ 0x00000078
+
+#define COMMON_REG_O_IDMEM_TIM_Update \
+ 0x0000007C
+
+#define COMMON_REG_O_FPGA_ROM_WR_EN \
+ 0x00000080
+
+#define COMMON_REG_O_NW_INT_MASK \
+ 0x00000084
+
+#define COMMON_REG_O_NW_INT_MASK_SET \
+ 0x00000088
+
+#define COMMON_REG_O_NW_INT_MASK_CLR \
+ 0x0000008C
+
+#define COMMON_REG_O_NW_INT_STS_CLR \
+ 0x00000090
+
+#define COMMON_REG_O_NW_INT_ACK 0x00000094
+#define COMMON_REG_O_NW_INT_TRIG \
+ 0x00000098
+
+#define COMMON_REG_O_NW_INT_STS_MASKED \
+ 0x0000009C
+
+#define COMMON_REG_O_NW_INT_STS_RAW \
+ 0x000000A0
+
+#define COMMON_REG_O_APPS_INT_MASK \
+ 0x000000A4
+
+#define COMMON_REG_O_APPS_INT_MASK_SET \
+ 0x000000A8
+
+#define COMMON_REG_O_APPS_INT_MASK_CLR \
+ 0x000000AC
+
+#define COMMON_REG_O_APPS_INT_STS_CLR \
+ 0x000000B0
+
+#define COMMON_REG_O_APPS_INT_ACK \
+ 0x000000B4
+
+#define COMMON_REG_O_APPS_INT_TRIG \
+ 0x000000B8
+
+#define COMMON_REG_O_APPS_INT_STS_MASKED \
+ 0x000000BC
+
+#define COMMON_REG_O_APPS_INT_STS_RAW \
+ 0x000000C0
+
+#define COMMON_REG_O_IDMEM_TIM_Updated \
+ 0x000000C4
+
+#define COMMON_REG_O_APPS_GPIO_TRIG_EN \
+ 0x000000C8
+
+#define COMMON_REG_O_EMU_DEBUG_REG \
+ 0x000000CC
+
+#define COMMON_REG_O_SEMAPHORE_STATUS2 \
+ 0x000000D0
+
+#define COMMON_REG_O_SEMAPHORE_PREV_OWNER1 \
+ 0x000000D4
+
+#define COMMON_REG_O_SEMAPHORE_PREV_OWNER2 \
+ 0x000000D8
+
+
+
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_I2C_Properties_Register register.
+//
+//******************************************************************************
+#define COMMON_REG_I2C_Properties_Register_I2C_Properties_Register_M \
+ 0x00000003 // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_I2C_Properties_Register_I2C_Properties_Register_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_SPI_Properties_Register register.
+//
+//******************************************************************************
+#define COMMON_REG_SPI_Properties_Register_SPI_Properties_Register_M \
+ 0x00000003 // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_SPI_Properties_Register_SPI_Properties_Register_S 0
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_sh_resource_Interrupt_enable register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_sh_resource_Interrupt_enable_APPS_sh_resource_Interrupt_enable_M \
+ 0x0000000F // Interrupt enable APPS bit 0 ->
+ // when '1' enable I2C interrupt bit
+ // 1 -> when '1' enable SPI
+ // interrupt bit 3 ->
+ // when '1' enable GPIO interrupt
+
+#define COMMON_REG_APPS_sh_resource_Interrupt_enable_APPS_sh_resource_Interrupt_enable_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_sh_resource_Interrupt_status register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_sh_resource_Interrupt_status_APPS_sh_resource_Interrupt_status_M \
+ 0x0000000F // Interrupt enable APPS bit 0 ->
+ // when '1' enable I2C interrupt bit
+ // 1 -> when '1' enable SPI
+ // interrupt bit 3 ->
+ // when '1' enable GPIO interrupt
+
+#define COMMON_REG_APPS_sh_resource_Interrupt_status_APPS_sh_resource_Interrupt_status_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NWP_sh_resource_Interrupt_enable register.
+//
+//******************************************************************************
+#define COMMON_REG_NWP_sh_resource_Interrupt_enable_NWP_sh_resource_Interrupt_enable_M \
+ 0x0000000F // Interrupt enable NWP bit 0 ->
+ // when '1' enable I2C interrupt bit
+ // 1 -> when '1' enable SPI
+ // interrupt bit 3 ->
+ // when '1' enable GPIO interrupt
+
+#define COMMON_REG_NWP_sh_resource_Interrupt_enable_NWP_sh_resource_Interrupt_enable_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NWP_sh_resource_Interrupt_status register.
+//
+//******************************************************************************
+#define COMMON_REG_NWP_sh_resource_Interrupt_status_NWP_sh_resource_Interrupt_status_M \
+ 0x0000000F // Interrupt enable NWP bit 0 ->
+ // when '1' enable I2C interrupt bit
+ // 1 -> when '1' enable SPI
+ // interrupt bit 3 ->
+ // when '1' enable GPIO interrupt
+
+#define COMMON_REG_NWP_sh_resource_Interrupt_status_NWP_sh_resource_Interrupt_status_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_Flash_ctrl_reg register.
+//
+//******************************************************************************
+#define COMMON_REG_Flash_ctrl_reg_Flash_ctrl_reg_M \
+ 0x00000003 // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_Flash_ctrl_reg_Flash_ctrl_reg_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_Bus_matrix_M0_segment_access_config register.
+//
+//******************************************************************************
+#define COMMON_REG_Bus_matrix_M0_segment_access_config_Bus_matrix_M0_segment_access_config_M \
+ 0x0003FFFF // Master 0 control word matrix to
+ // each segment. Tieoff. Bit value 1
+ // indicates segment is accesable.
+
+#define COMMON_REG_Bus_matrix_M0_segment_access_config_Bus_matrix_M0_segment_access_config_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_Bus_matrix_M1_segment_access_config register.
+//
+//******************************************************************************
+#define COMMON_REG_Bus_matrix_M1_segment_access_config_Bus_matrix_M1_segment_access_config_M \
+ 0x0003FFFF // Master 1 control word matrix to
+ // each segment. Tieoff. Bit value 1
+ // indicates segment is accesable.
+
+#define COMMON_REG_Bus_matrix_M1_segment_access_config_Bus_matrix_M1_segment_access_config_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_Bus_matrix_M2_segment_access_config register.
+//
+//******************************************************************************
+#define COMMON_REG_Bus_matrix_M2_segment_access_config_Bus_matrix_M2_segment_access_config_M \
+ 0x0003FFFF // Master 2 control word matrix to
+ // each segment. Tieoff. Bit value 1
+ // indicates segment is accesable.
+
+#define COMMON_REG_Bus_matrix_M2_segment_access_config_Bus_matrix_M2_segment_access_config_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_Bus_matrix_M3_segment_access_config register.
+//
+//******************************************************************************
+#define COMMON_REG_Bus_matrix_M3_segment_access_config_Bus_matrix_M3_segment_access_config_M \
+ 0x0003FFFF // Master 3 control word matrix to
+ // each segment. Tieoff. Bit value 1
+ // indicates segment is accesable.
+
+#define COMMON_REG_Bus_matrix_M3_segment_access_config_Bus_matrix_M3_segment_access_config_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_Bus_matrix_M4_segment_access_config register.
+//
+//******************************************************************************
+#define COMMON_REG_Bus_matrix_M4_segment_access_config_Bus_matrix_M4_segment_access_config_M \
+ 0x0003FFFF // Master 4 control word matrix to
+ // each segment. Tieoff. Bit value 1
+ // indicates segment is accesable.
+
+#define COMMON_REG_Bus_matrix_M4_segment_access_config_Bus_matrix_M4_segment_access_config_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_Bus_matrix_M5_segment_access_config register.
+//
+//******************************************************************************
+#define COMMON_REG_Bus_matrix_M5_segment_access_config_Bus_matrix_M5_segment_access_config_M \
+ 0x0003FFFF // Master 5 control word matrix to
+ // each segment. Tieoff. Bit value 1
+ // indicates segment is accesable.
+
+#define COMMON_REG_Bus_matrix_M5_segment_access_config_Bus_matrix_M5_segment_access_config_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_GPIO_properties_register register.
+//
+//******************************************************************************
+#define COMMON_REG_GPIO_properties_register_GPIO_properties_register_M \
+ 0x000003FF // Shared GPIO configuration
+ // register. Bit [1:0] to configure
+ // GPIO0 Bit [3:2] to configure
+ // GPIO1 Bit [5:4] to configure
+ // GPIO2 Bit [7:6] to configure
+ // GPIO3 Bit [9:8] to configure
+ // GPIO4 each GPIO can be
+ // individully selected. When “00�
+ // GPIO is free resource. When “01�
+ // GPIO is APPS resource. When “10�
+ // GPIO is NWP resource. Writing 11
+ // doesnt have any affect, i.e. If
+ // one write only relevant gpio
+ // semaphore and other bits are 1s,
+ // it'll not disturb the other
+ // semaphore bits. For example : Say
+ // If NW wants to take control of
+ // gpio-1, one should write
+ // 10'b11_1111_1011 and if one wants
+ // to release it write
+ // 10'b11_1111_0011.
+
+#define COMMON_REG_GPIO_properties_register_GPIO_properties_register_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE1 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE1_APPS_NW_SEMAPHORE1_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE1_APPS_NW_SEMAPHORE1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE2 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE2_APPS_NW_SEMAPHORE2_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE2_APPS_NW_SEMAPHORE2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE3 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE3_APPS_NW_SEMAPHORE3_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE3_APPS_NW_SEMAPHORE3_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE4 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE4_APPS_NW_SEMAPHORE4_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE4_APPS_NW_SEMAPHORE4_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE5 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE5_APPS_NW_SEMAPHORE5_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE5_APPS_NW_SEMAPHORE5_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE6 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE6_APPS_NW_SEMAPHORE6_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE6_APPS_NW_SEMAPHORE6_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE7 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE7_APPS_NW_SEMAPHORE7_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE7_APPS_NW_SEMAPHORE7_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE8 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE8_APPS_NW_SEMAPHORE8_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE8_APPS_NW_SEMAPHORE8_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE9 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE9_APPS_NW_SEMAPHORE9_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE9_APPS_NW_SEMAPHORE9_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE10 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE10_APPS_NW_SEMAPHORE10_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE10_APPS_NW_SEMAPHORE10_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE11 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE11_APPS_NW_SEMAPHORE11_M \
+ 0xFFFFFFFF // • Each semaphore register is of
+ // 2 bit. • When this register is
+ // set to 2’b01 – Apps have access
+ // and when set to 2’b10 – NW have
+ // access. • Ideally both the master
+ // can modify any of this 2 bit, but
+ // assumption apps will write only
+ // 2’b01 or 2’b00 to this register
+ // and nw will write only 2’b10 or
+ // 2’b00. • Implementation is when
+ // any of the bit of this register
+ // is set, only next write
+ // allowedvis 2’b00 – Again
+ // assumption is one master will not
+ // write 2’b00 if other is already
+ // holding the semaphore.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE11_APPS_NW_SEMAPHORE11_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_NW_SEMAPHORE12 register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_NW_SEMAPHORE12_APPS_NW_SEMAPHORE12_M \
+ 0xFFFFFFFF // APPS NW semaphore register - not
+ // reflected in status.
+
+#define COMMON_REG_APPS_NW_SEMAPHORE12_APPS_NW_SEMAPHORE12_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_SEMAPPHORE_PEND register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_SEMAPPHORE_PEND_APPS_SEMAPPHORE_PEND_M \
+ 0xFFFFFFFF // APPS SEMAPOHORE STATUS
+
+#define COMMON_REG_APPS_SEMAPPHORE_PEND_APPS_SEMAPPHORE_PEND_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NW_SEMAPPHORE_PEND register.
+//
+//******************************************************************************
+#define COMMON_REG_NW_SEMAPPHORE_PEND_NW_SEMAPPHORE_PEND_M \
+ 0xFFFFFFFF // NW SEMAPHORE STATUS
+
+#define COMMON_REG_NW_SEMAPPHORE_PEND_NW_SEMAPPHORE_PEND_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_SEMAPHORE_STATUS register.
+//
+//******************************************************************************
+#define COMMON_REG_SEMAPHORE_STATUS_SEMAPHORE_STATUS_M \
+ 0xFFFFFFFF // SEMAPHORE STATUS 9:8 :semaphore
+ // status of flash_control 7:6
+ // :semaphore status of
+ // gpio_properties 5:4
+ // :semaphore status of
+ // spi_propertie 1:0 :semaphore
+ // status of i2c_propertie
+
+#define COMMON_REG_SEMAPHORE_STATUS_SEMAPHORE_STATUS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_IDMEM_TIM_Update register.
+//
+//******************************************************************************
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_FPGA_ROM_WR_EN register.
+//
+//******************************************************************************
+#define COMMON_REG_FPGA_ROM_WR_EN_FPGA_ROM_WR_EN \
+ 0x00000001 // when '1' enables Write into
+ // IDMEM CORE ROM, APPS ROM, NWP ROM
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NW_INT_MASK register.
+//
+//******************************************************************************
+#define COMMON_REG_NW_INT_MASK_NW_INT_MASK_M \
+ 0xFFFFFFFF // 1= disable corresponding
+ // interrupt;0 = interrupt enabled
+
+#define COMMON_REG_NW_INT_MASK_NW_INT_MASK_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NW_INT_MASK_SET register.
+//
+//******************************************************************************
+#define COMMON_REG_NW_INT_MASK_SET_NW_INT_MASK_SET_M \
+ 0xFFFFFFFF // write 1 to set corresponding bit
+ // in NW_INT_MASK;0 = no effect
+
+#define COMMON_REG_NW_INT_MASK_SET_NW_INT_MASK_SET_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NW_INT_MASK_CLR register.
+//
+//******************************************************************************
+#define COMMON_REG_NW_INT_MASK_CLR_NW_INT_MASK_CLR_M \
+ 0xFFFFFFFF // write 1 to clear corresponding
+ // bit in NW_INT_MASK;0 = no effect
+
+#define COMMON_REG_NW_INT_MASK_CLR_NW_INT_MASK_CLR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NW_INT_STS_CLR register.
+//
+//******************************************************************************
+#define COMMON_REG_NW_INT_STS_CLR_NW_INT_STS_CLR_M \
+ 0xFFFFFFFF // write 1 to clear corresponding
+ // interrupt; 0 = no effect;
+ // interrupt is not lost if coincide
+ // with write operation
+
+#define COMMON_REG_NW_INT_STS_CLR_NW_INT_STS_CLR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NW_INT_ACK register.
+//
+//******************************************************************************
+#define COMMON_REG_NW_INT_ACK_NW_INT_ACK_M \
+ 0xFFFFFFFF // write 1 to clear corresponding
+ // interrupt;0 = no effect
+
+#define COMMON_REG_NW_INT_ACK_NW_INT_ACK_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NW_INT_TRIG register.
+//
+//******************************************************************************
+#define COMMON_REG_NW_INT_TRIG_NW_INT_TRIG_M \
+ 0xFFFFFFFF // Writing a 1 to a bit in this
+ // register causes the the Host CPU
+ // if enabled (not masked). This
+ // register is self-clearing.
+ // Writing 0 has no effect
+
+#define COMMON_REG_NW_INT_TRIG_NW_INT_TRIG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NW_INT_STS_MASKED register.
+//
+//******************************************************************************
+#define COMMON_REG_NW_INT_STS_MASKED_NW_INT_STS_MASKED_M \
+ 0xFFFFFFFF // 1= corresponding interrupt is
+ // active and not masked. read is
+ // non-destructive;0 = corresponding
+ // interrupt is inactive or masked
+ // by NW_INT mask
+
+#define COMMON_REG_NW_INT_STS_MASKED_NW_INT_STS_MASKED_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_NW_INT_STS_RAW register.
+//
+//******************************************************************************
+#define COMMON_REG_NW_INT_STS_RAW_NW_INT_STS_RAW_M \
+ 0xFFFFFFFF // 1= corresponding interrupt is
+ // active. read is non-destructive;0
+ // = corresponding interrupt is
+ // inactive
+
+#define COMMON_REG_NW_INT_STS_RAW_NW_INT_STS_RAW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_INT_MASK register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_INT_MASK_APPS_INT_MASK_M \
+ 0xFFFFFFFF // 1= disable corresponding
+ // interrupt;0 = interrupt enabled
+
+#define COMMON_REG_APPS_INT_MASK_APPS_INT_MASK_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_INT_MASK_SET register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_INT_MASK_SET_APPS_INT_MASK_SET_M \
+ 0xFFFFFFFF // write 1 to set corresponding bit
+ // in APPS_INT_MASK;0 = no effect
+
+#define COMMON_REG_APPS_INT_MASK_SET_APPS_INT_MASK_SET_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_INT_MASK_CLR register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_INT_MASK_CLR_APPS_INT_MASK_CLR_M \
+ 0xFFFFFFFF // write 1 to clear corresponding
+ // bit in APPS_INT_MASK;0 = no
+ // effect
+
+#define COMMON_REG_APPS_INT_MASK_CLR_APPS_INT_MASK_CLR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_INT_STS_CLR register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_INT_STS_CLR_APPS_INT_STS_CLR_M \
+ 0xFFFFFFFF // write 1 to clear corresponding
+ // interrupt; 0 = no effect;
+ // interrupt is not lost if coincide
+ // with write operation
+
+#define COMMON_REG_APPS_INT_STS_CLR_APPS_INT_STS_CLR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_INT_ACK register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_INT_ACK_APPS_INT_ACK_M \
+ 0xFFFFFFFF // write 1 to clear corresponding
+ // interrupt;0 = no effect
+
+#define COMMON_REG_APPS_INT_ACK_APPS_INT_ACK_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_INT_TRIG register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_INT_TRIG_APPS_INT_TRIG_M \
+ 0xFFFFFFFF // Writing a 1 to a bit in this
+ // register causes the the Host CPU
+ // if enabled (not masked). This
+ // register is self-clearing.
+ // Writing 0 has no effect
+
+#define COMMON_REG_APPS_INT_TRIG_APPS_INT_TRIG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_INT_STS_MASKED register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_INT_STS_MASKED_APPS_INT_STS_MASKED_M \
+ 0xFFFFFFFF // 1= corresponding interrupt is
+ // active and not masked. read is
+ // non-destructive;0 = corresponding
+ // interrupt is inactive or masked
+ // by APPS_INT mask
+
+#define COMMON_REG_APPS_INT_STS_MASKED_APPS_INT_STS_MASKED_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_INT_STS_RAW register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_INT_STS_RAW_APPS_INT_STS_RAW_M \
+ 0xFFFFFFFF // 1= corresponding interrupt is
+ // active. read is non-destructive;0
+ // = corresponding interrupt is
+ // inactive
+
+#define COMMON_REG_APPS_INT_STS_RAW_APPS_INT_STS_RAW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_IDMEM_TIM_Updated register.
+//
+//******************************************************************************
+#define COMMON_REG_IDMEM_TIM_Updated_TIM_UPDATED \
+ 0x00000001 // toggle in this signal
+ // indicatesIDMEM_TIM_UPDATE
+ // register mentioned above is
+ // updated.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_APPS_GPIO_TRIG_EN register.
+//
+//******************************************************************************
+#define COMMON_REG_APPS_GPIO_TRIG_EN_APPS_GPIO_TRIG_EN_M \
+ 0x0000001F // APPS GPIO Trigger EN control.
+ // Bit 0: when '1' enable GPIO 0
+ // trigger. This bit enables trigger
+ // for all GPIO 0 pins (GPIO 0 to
+ // GPIO7). Bit 1: when '1' enable
+ // GPIO 1 trigger. This bit enables
+ // trigger for all GPIO 1 pins (
+ // GPIO8 to GPIO15). Bit 2: when '1'
+ // enable GPIO 2 trigger. This bit
+ // enables trigger for all GPIO 2
+ // pins (GPIO16 to GPIO23). Bit 3:
+ // when '1' enable GPIO 3 trigger.
+ // This bit enables trigger for all
+ // GPIO 3 pins (GPIO24 to GPIO31).
+ // Bit 4: when '1' enable GPIO 4
+ // trigger. This bit enables trigger
+ // for all GPIO 4 pins.(GPIO32 to
+ // GPIO39)
+
+#define COMMON_REG_APPS_GPIO_TRIG_EN_APPS_GPIO_TRIG_EN_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_EMU_DEBUG_REG register.
+//
+//******************************************************************************
+#define COMMON_REG_EMU_DEBUG_REG_EMU_DEBUG_REG_M \
+ 0xFFFFFFFF // 0 th bit used for stalling APPS
+ // DMA and 1st bit is used for
+ // stalling NWP DMA for debug
+ // purpose. Other bits are unused.
+
+#define COMMON_REG_EMU_DEBUG_REG_EMU_DEBUG_REG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_SEMAPHORE_STATUS2 register.
+//
+//******************************************************************************
+#define COMMON_REG_SEMAPHORE_STATUS2_SEMPAPHORE_STATUS2_M \
+ 0x00FFFFFF // SEMAPHORE STATUS 23:22
+ // :semaphore status of
+ // apps_nw_semaphore11 21:20
+ // :semaphore status of
+ // apps_nw_semaphore11 19:18
+ // :semaphore status of
+ // apps_nw_semaphore10 17:16
+ // :semaphore status of
+ // apps_nw_semaphore9 15:14
+ // :semaphore status of
+ // apps_nw_semaphore8 13:12
+ // :semaphore status of
+ // apps_nw_semaphore7 11:10
+ // :semaphore status of
+ // apps_nw_semaphore6 9:8 :semaphore
+ // status of apps_nw_semaphore5 7:6
+ // :semaphore status of
+ // apps_nw_semaphore4 5:4 :semaphore
+ // status of apps_nw_semaphore3 3:2
+ // :semaphore status of
+ // apps_nw_semaphore2 1:0 :semaphore
+ // status of apps_nw_semaphore1
+
+#define COMMON_REG_SEMAPHORE_STATUS2_SEMPAPHORE_STATUS2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_SEMAPHORE_PREV_OWNER1 register.
+//
+//******************************************************************************
+#define COMMON_REG_SEMAPHORE_PREV_OWNER1_SEMAPHORE_PREV_OWNER1_M \
+ 0x0003FFFF // 1:0 : prvious owner of
+ // i2c_properties_reg[1:0] 3:2 :
+ // prvious owner of
+ // spi_properties_reg[1:0] 5:4 :
+ // prvious owner of
+ // gpio_properties_reg[1:0] 9:8 :
+ // prvious owner of
+ // gpio_properties_reg[3:2] 11:10 :
+ // prvious owner of
+ // gpio_properties_reg[5:4] 13:12 :
+ // prvious owner of
+ // gpio_properties_reg[7:6] 15:14 :
+ // prvious owner of
+ // gpio_properties_reg[9:8] 17:16 :
+ // prvious owner of
+ // flash_control_reg[1:0]
+
+#define COMMON_REG_SEMAPHORE_PREV_OWNER1_SEMAPHORE_PREV_OWNER1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// COMMON_REG_O_SEMAPHORE_PREV_OWNER2 register.
+//
+//******************************************************************************
+#define COMMON_REG_SEMAPHORE_PREV_OWNER2_SEMAPHORE_PREV_OWNER2_M \
+ 0x00FFFFFF // 1:0 : previous owner of
+ // apps_nw_semaphore1_reg[1:0] 3:2 :
+ // previous owner of
+ // apps_nw_semaphore2_reg[1:0] 5:4 :
+ // previous owner of
+ // apps_nw_semaphore3_reg[1:0] 7:6 :
+ // previous owner of
+ // apps_nw_semaphore4_reg[1:0] 9:8 :
+ // previous owner of
+ // apps_nw_semaphore5_reg[1:0] 11:10
+ // : previous owner of
+ // apps_nw_semaphore6_reg[1:0] 13:12
+ // : previous owner of
+ // apps_nw_semaphore7_reg[1:0] 15:14
+ // : previous owner of
+ // apps_nw_semaphore8_reg[1:0] 17:16
+ // : previous owner of
+ // apps_nw_semaphore9_reg[1:0] 19:18
+ // : previous owner of
+ // apps_nw_semaphore10_reg[1:0]
+ // 21:20 : previous owner of
+ // apps_nw_semaphore11_reg[1:0]
+ // 23:22 : previous owner of
+ // apps_nw_semaphore12_reg[1:0]
+
+#define COMMON_REG_SEMAPHORE_PREV_OWNER2_SEMAPHORE_PREV_OWNER2_S 0
+
+
+
+#endif // __HW_COMMON_REG_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_gpio.h b/ext/hal/ti/cc3220sdk/inc/hw_gpio.h
new file mode 100644
index 0000000..41ddbb1
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_gpio.h
@@ -0,0 +1,1347 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __HW_GPIO_H__
+#define __HW_GPIO_H__
+
+//*****************************************************************************
+//
+// The following are defines for the GPIO register offsets.
+//
+//*****************************************************************************
+#define GPIO_O_GPIO_DATA 0x00000000 // 0x4000 5000 0x4000 6000 0x4000
+ // 7000 0x4002 4000 GPIO Data
+ // (GPIODATA)@@ offset 0x000 The
+ // GPIODATA register is the data
+ // register. In software control
+ // mode@@ values written in the
+ // GPIODATA register are transferred
+ // onto the GPIO port pins if the
+ // respective pins have been
+ // configured as outputs through the
+ // GPIO Direction (GPIODIR) register
+ // (see page 653). In order to write
+ // to GPIODATA@@ the corresponding
+ // bits in the mask@@ resulting from
+ // the address bus bits [9:2]@@ must
+ // be set. Otherwise@@ the bit
+ // values remain unchanged by the
+ // write. Similarly@@ the values
+ // read from this register are
+ // determined for each bit by the
+ // mask bit derived from the address
+ // used to access the data
+ // register@@ bits [9:2]. Bits that
+ // are set in the address mask cause
+ // the corresponding bits in
+ // GPIODATA to be read@@ and bits
+ // that are clear in the address
+ // mask cause the corresponding bits
+ // in GPIODATA to be read as 0@@
+ // regardless of their value. A read
+ // from GPIODATA returns the last
+ // bit value written if the
+ // respective pins are configured as
+ // outputs@@ or it returns the value
+ // on the corresponding input pin
+ // when these are configured as
+ // inputs. All bits are cleared by a
+ // reset.
+#define GPIO_O_GPIO_DIR 0x00000400 // 0x4000 5400 0x4000 6400 0x4000
+ // 7400 0x4002 4400 GPIO Direction
+ // (GPIODIR)@@ offset 0x400 The
+ // GPIODIR register is the data
+ // direction register. Setting a bit
+ // in the GPIODIR register
+ // configures the corresponding pin
+ // to be an output@@ while clearing
+ // a bit configures the
+ // corresponding pin to be an input.
+ // All bits are cleared by a reset@@
+ // meaning all GPIO pins are inputs
+ // by default.
+#define GPIO_O_GPIO_IS 0x00000404 // 0x4000 5404 0x4000 6404 0x4000
+ // 7404 0x4002 4404 GPIO Interrupt
+ // Sense (GPIOIS)@@ offset 0x404 The
+ // GPIOIS register is the interrupt
+ // sense register. Setting a bit in
+ // the GPIOIS register configures
+ // the corresponding pin to detect
+ // levels@@ while clearing a bit
+ // configures the corresponding pin
+ // to detect edges. All bits are
+ // cleared by a reset.
+#define GPIO_O_GPIO_IBE 0x00000408 // 0x4000 5408 0x4000 6408 0x4000
+ // 7408 0x4002 4408 GPIO Interrupt
+ // Both Edges (GPIOIBE)@@ offset
+ // 0x408 The GPIOIBE register allows
+ // both edges to cause interrupts.
+ // When the corresponding bit in the
+ // GPIO Interrupt Sense (GPIOIS)
+ // register is set to detect edges@@
+ // setting a bit in the GPIOIBE
+ // register configures the
+ // corresponding pin to detect both
+ // rising and falling edges@@
+ // regardless of the corresponding
+ // bit in the GPIO Interrupt Event
+ // (GPIOIEV) register . Clearing a
+ // bit configures the pin to be
+ // controlled by the GPIOIEV
+ // register. All bits are cleared by
+ // a reset.
+#define GPIO_O_GPIO_IEV 0x0000040C // 0x4000 540C 0x4000 640C 0x4000
+ // 740C 0x4002 440C GPIO Interrupt
+ // Event (GPIOIEV)@@ offset 0x40C
+ // The GPIOIEV register is the
+ // interrupt event register. Setting
+ // a bit in the GPIOIEV register
+ // configures the corresponding pin
+ // to detect rising edges or high
+ // levels@@ depending on the
+ // corresponding bit value in the
+ // GPIO Interrupt Sense (GPIOIS)
+ // register . Clearing a bit
+ // configures the pin to detect
+ // falling edges or low levels@@
+ // depending on the corresponding
+ // bit value in the GPIOIS register.
+ // All bits are cleared by a reset.
+#define GPIO_O_GPIO_IM 0x00000410 // 0x4000 5410 0x4000 6410 0x4000
+ // 7410 0x4002 4410 GPIO Interrupt
+ // Mask (GPIOIM)@@ offset 0x410 The
+ // GPIOIM register is the interrupt
+ // mask register. Setting a bit in
+ // the GPIOIM register allows
+ // interrupts that are generated by
+ // the corresponding pin to be sent
+ // to the interrupt controller on
+ // the combined interrupt signal.
+ // Clearing a bit prevents an
+ // interrupt on the corresponding
+ // pin from being sent to the
+ // interrupt controller. All bits
+ // are cleared by a reset.
+#define GPIO_O_GPIO_RIS 0x00000414 // 0x4000 5414 0x4000 6414 0x4000
+ // 7414 0x4002 4414 GPIO Raw
+ // Interrupt Status (GPIORIS)@@
+ // offset 0x414 The GPIORIS register
+ // is the raw interrupt status
+ // register. A bit in this register
+ // is set when an interrupt
+ // condition occurs on the
+ // corresponding GPIO pin. If the
+ // corresponding bit in the GPIO
+ // Interrupt Mask (GPIOIM) register
+ // is set@@ the interrupt is sent to
+ // the interrupt controller. Bits
+ // read as zero indicate that
+ // corresponding input pins have not
+ // initiated an interrupt. A bit in
+ // this register can be cleared by
+ // writing a 1 to the corresponding
+ // bit in the GPIO Interrupt Clear
+ // (GPIOICR) register.
+#define GPIO_O_GPIO_MIS 0x00000418 // 0x4000 5418 0x4000 6418 0x4000
+ // 7418 0x4002 4418 GPIO Masked
+ // Interrupt Status (GPIOMIS)@@
+ // offset 0x418 The GPIOMIS register
+ // is the masked interrupt status
+ // register. If a bit is set in this
+ // register@@ the corresponding
+ // interrupt has triggered an
+ // interrupt to the interrupt
+ // controller. If a bit is clear@@
+ // either no interrupt has been
+ // generated@@ or the interrupt is
+ // masked. If no port pin@@ other
+ // than the one that is being used
+ // as an ADC trigger@@ is being used
+ // to generate interrupts@@ the
+ // appropriate Interrupt Set Enable
+ // (ENn) register can disable the
+ // interrupts for the port@@ and the
+ // ADC interrupt can be used to read
+ // back the converted data.
+ // Otherwise@@ the port interrupt
+ // handler must ignore and clear
+ // interrupts on the port pin and
+ // wait for the ADC interrupt@@ or
+ // the ADC interrupt must be
+ // disabled in the EN0 register and
+ // the port interrupt handler must
+ // poll the ADC registers until the
+ // conversion is completed. If no
+ // port pin@@ other than the one
+ // that is being used as an ADC
+ // trigger@@ is being used to
+ // generate interrupts@@ the
+ // appropriate Interrupt Set Enable
+ // (ENn) register can disable the
+ // interrupts for the port@@ and the
+ // ADC interrupt can be used to read
+ // back the converted data.
+ // Otherwise@@ the port interrupt
+ // handler must ignore and clear
+ // interrupts on the port pin and
+ // wait for the ADC interrupt@@ or
+ // the ADC interrupt must be
+ // disabled in the EN0 register and
+ // the port interrupt handler must
+ // poll the ADC registers until the
+ // conversion is completed. Note
+ // that if the Port B GPIOADCCTL
+ // register is cleared@@ PB4 can
+ // still be used as an external
+ // trigger for the ADC. This is a
+ // legacy mode which allows code
+ // written for previous Stellaris
+ // devices to operate on this
+ // microcontroller. GPIOMIS is the
+ // state of the interrupt after
+ // masking.
+#define GPIO_O_GPIO_ICR 0x0000041C // 0x4000 541C 0x4000 641C 0x4000
+ // 741C 0x4002 441C GPIO Interrupt
+ // Clear (GPIOICR)@@ offset 0x41C
+ // The GPIOICR register is the
+ // interrupt clear register. Writing
+ // a 1 to a bit in this register
+ // clears the corresponding
+ // interrupt bit in the GPIORIS and
+ // GPIOMIS registers. Writing a 0
+ // has no effect.
+#define GPIO_O_GPIO_AFSEL 0x00000420 // 0x4000 5420 0x4000 6420 0x4000
+ // 7420 0x4002 4420 GPIO Alternate
+ // Function Select (GPIOAFSEL)@@
+ // offset 0x420 The GPIOAFSEL
+ // register is the mode control
+ // select register. If a bit is
+ // clear@@ the pin is used as a GPIO
+ // and is controlled by the GPIO
+ // registers. Setting a bit in this
+ // register configures the
+ // corresponding GPIO line to be
+ // controlled by an associated
+ // peripheral. Several possible
+ // peripheral functions are
+ // multiplexed on each GPIO. The
+ // GPIO Port Control (GPIOPCTL)
+ // register is used to select one of
+ // the possible functions.
+#define GPIO_O_GPIO_DR2R 0x00000500 // 0x4000 5500 0x4000 6500 0x4000
+ // 7500 0x4002 4500 GPIO 2-mA Drive
+ // Select (GPIODR2R)@@ offset 0x500
+ // The GPIODR2R register is the 2-mA
+ // drive control register. Each GPIO
+ // signal in the port can be
+ // individually configured without
+ // affecting the other pads. When
+ // setting the DRV2 bit for a GPIO
+ // signal@@ the corresponding DRV4
+ // bit in the GPIODR4R register and
+ // DRV8 bit in the GPIODR8R register
+ // are automatically cleared by
+ // hardware. By default@@ all GPIO
+ // pins have 2-mA drive.
+#define GPIO_O_GPIO_DR4R 0x00000504 // 0x4000 5504 0x4000 6504 0x4000
+ // 7504 0x4002 4504 GPIO 4-mA Drive
+ // Select (GPIODR4R)@@ offset 0x504
+ // The GPIODR4R register is the 4-mA
+ // drive control register. Each GPIO
+ // signal in the port can be
+ // individually configured without
+ // affecting the other pads. When
+ // setting the DRV4 bit for a GPIO
+ // signal@@ the corresponding DRV2
+ // bit in the GPIODR2R register and
+ // DRV8 bit in the GPIODR8R register
+ // are automatically cleared by
+ // hardware.
+#define GPIO_O_GPIO_DR8R 0x00000508 // 0x4000 5508 0x4000 6508 0x4000
+ // 7508 0x4002 4508 GPIO 8-mA Drive
+ // Select (GPIODR8R)@@ offset 0x508
+ // The GPIODR8R register is the 8-mA
+ // drive control register. Each GPIO
+ // signal in the port can be
+ // individually configured without
+ // affecting the other pads. When
+ // setting the DRV8 bit for a GPIO
+ // signal@@ the corresponding DRV2
+ // bit in the GPIODR2R register and
+ // DRV4 bit in the GPIODR4R register
+ // are automatically cleared by
+ // hardware. The 8-mA setting is
+ // also used for high-current
+ // operation. Note: There is no
+ // configuration difference between
+ // 8-mA and high-current operation.
+ // The additional current capacity
+ // results from a shift in the
+ // VOH/VOL levels.
+#define GPIO_O_GPIO_ODR 0x0000050C // 0x4000 550C 0x4000 650C 0x4000
+ // 750C 0x4002 450C GPIO Open Drain
+ // Select (GPIOODR)@@ offset 0x50C
+ // The GPIOODR register is the open
+ // drain control register. Setting a
+ // bit in this register enables the
+ // open-drain configuration of the
+ // corresponding GPIO pad. When
+ // open-drain mode is enabled@@ the
+ // corresponding bit should also be
+ // set in the GPIO Digital Input
+ // Enable (GPIODEN) register .
+ // Corresponding bits in the drive
+ // strength and slew rate control
+ // registers (GPIODR2R@@ GPIODR4R@@
+ // GPIODR8R@@ and GPIOSLR) can be
+ // set to achieve the desired rise
+ // and fall times. The GPIO acts as
+ // an open-drain input if the
+ // corresponding bit in the GPIODIR
+ // register is cleared. If open
+ // drain is selected while the GPIO
+ // is configured as an input@@ the
+ // GPIO will remain an input and the
+ // open-drain selection has no
+ // effect until the GPIO is changed
+ // to an output. When using the I2C
+ // module@@ in addition to
+ // configuring the pin to open
+ // drain@@ the GPIO Alternate
+ // Function Select (GPIOAFSEL)
+ // register bits for the I2C clock
+ // and data pins should be set
+#define GPIO_O_GPIO_PUR 0x00000510 // 0x4000 5510 0x4000 6510 0x4000
+ // 7510 0x4002 4510 GPIO Pull-Up
+ // Select (GPIOPUR)@@ offset 0x510
+ // The GPIOPUR register is the
+ // pull-up control register. When a
+ // bit is set@@ a weak pull-up
+ // resistor on the corresponding
+ // GPIO signal is enabled. Setting a
+ // bit in GPIOPUR automatically
+ // clears the corresponding bit in
+ // the GPIO Pull-Down Select
+ // (GPIOPDR) register . Write access
+ // to this register is protected
+ // with the GPIOCR register. Bits in
+ // GPIOCR that are cleared prevent
+ // writes to the equivalent bit in
+ // this register.
+#define GPIO_O_GPIO_PDR 0x00000514 // 0x4000 5514 0x4000 6514 0x4000
+ // 7514 0x4002 4514 GPIO Pull-Down
+ // Select (GPIOPDR)@@ offset 0x514
+ // The GPIOPDR register is the
+ // pull-down control register. When
+ // a bit is set@@ a weak pull-down
+ // resistor on the corresponding
+ // GPIO signal is enabled. Setting a
+ // bit in GPIOPDR automatically
+ // clears the corresponding bit in
+ // the GPIO Pull-Up Select (GPIOPUR)
+ // register
+#define GPIO_O_GPIO_SLR 0x00000518 // 0x4000 5518 0x4000 6518 0x4000
+ // 7518 0x4002 4518 The GPIOSLR
+ // register is the slew rate control
+ // register. Slew rate control is
+ // only available when using the
+ // 8-mA drive strength option via
+ // the GPIO 8-mA Drive Select
+ // (GPIODR8R) register
+#define GPIO_O_GPIO_DEN 0x0000051C // 0x4000 551C 0x4000 651C 0x4000
+ // 751C 0x4002 451C GPIO Digital
+ // Enable (GPIODEN)@@ offset 0x51C
+ // Note: Pins configured as digital
+ // inputs are Schmitt-triggered. The
+ // GPIODEN register is the digital
+ // enable register. By default@@ all
+ // GPIO signals except those listed
+ // below are configured out of reset
+ // to be undriven (tristate). Their
+ // digital function is disabled;
+ // they do not drive a logic value
+ // on the pin and they do not allow
+ // the pin voltage into the GPIO
+ // receiver. To use the pin as a
+ // digital input or output (either
+ // GPIO or alternate function)@@ the
+ // corresponding GPIODEN bit must be
+ // set.
+#define GPIO_O_GPIO_LOCK 0x00000520 // 0x4000 5520 0x4000 6520 0x4000
+ // 7520 0x4002 4520 GPIO Lock
+ // (GPIOLOCK)@@ offset 0x520 The
+ // GPIOLOCK register enables write
+ // access to the GPIOCR register .
+ // Writing 0x4C4F.434B to the
+ // GPIOLOCK register unlocks the
+ // GPIOCR register. Writing any
+ // other value to the GPIOLOCK
+ // register re-enables the locked
+ // state. Reading the GPIOLOCK
+ // register returns the lock status
+ // rather than the 32-bit value that
+ // was previously written.
+ // Therefore@@ when write accesses
+ // are disabled@@ or locked@@
+ // reading the GPIOLOCK register
+ // returns 0x0000.0001. When write
+ // accesses are enabled@@ or
+ // unlocked@@ reading the GPIOLOCK
+ // register returns 0x0000.0000.
+#define GPIO_O_GPIO_CR 0x00000524 // 0x4000 5524 0x4000 6524 0x4000
+ // 7524 0x4002 4524 GPIO Commit
+ // (GPIOCR)@@ offset 0x524 The
+ // GPIOCR register is the commit
+ // register. The value of the GPIOCR
+ // register determines which bits of
+ // the GPIOAFSEL@@ GPIOPUR@@
+ // GPIOPDR@@ and GPIODEN registers
+ // are committed when a write to
+ // these registers is performed. If
+ // a bit in the GPIOCR register is
+ // cleared@@ the data being written
+ // to the corresponding bit in the
+ // GPIOAFSEL@@ GPIOPUR@@ GPIOPDR@@
+ // or GPIODEN registers cannot be
+ // committed and retains its
+ // previous value. If a bit in the
+ // GPIOCR register is set@@ the data
+ // being written to the
+ // corresponding bit of the
+ // GPIOAFSEL@@ GPIOPUR@@ GPIOPDR@@
+ // or GPIODEN registers is committed
+ // to the register and reflects the
+ // new value. The contents of the
+ // GPIOCR register can only be
+ // modified if the status in the
+ // GPIOLOCK register is unlocked.
+ // Writes to the GPIOCR register are
+ // ignored if the status in the
+ // GPIOLOCK register is locked.
+#define GPIO_O_GPIO_AMSEL 0x00000528 // 0x4000 5528 0x4000 6528 0x4000
+ // 7528 0x4002 4528 The GPIOAMSEL
+ // register controls isolation
+ // circuits to the analog side of a
+ // unified I/O pad. Because the
+ // GPIOs may be driven by a 5-V
+ // source and affect analog
+ // operation@@ analog circuitry
+ // requires isolation from the pins
+ // when they are not used in their
+ // analog function. Each bit of this
+ // register controls the isolation
+ // circuitry for the corresponding
+ // GPIO signal.
+#define GPIO_O_GPIO_PCTL 0x0000052C // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) 0x4000 552C
+ // 0x4000 652C 0x4000 752C 0x4002
+ // 452C GPIO Port Control
+ // (GPIOPCTL)@@ offset 0x52C The
+ // GPIOPCTL register is used in
+ // conjunction with the GPIOAFSEL
+ // register and selects the specific
+ // peripheral signal for each GPIO
+ // pin when using the alternate
+ // function mode. Most bits in the
+ // GPIOAFSEL register are cleared on
+ // reset@@ therefore most GPIO pins
+ // are configured as GPIOs by
+ // default. When a bit is set in the
+ // GPIOAFSEL register@@ the
+ // corresponding GPIO signal is
+ // controlled by an associated
+ // peripheral. The GPIOPCTL register
+ // selects one out of a set of
+ // peripheral functions for each
+ // GPIO@@ providing additional
+ // flexibility in signal definition.
+#define GPIO_O_GPIO_ADCCTL 0x00000530 // This register is not used in
+ // cc3xx. ADC trigger via GPIO is
+ // not supported. 0x4000 5530 0x4000
+ // 6530 0x4000 7530 0x4002 4530 GPIO
+ // ADC Control (GPIOADCCTL)@@ offset
+ // 0x530 This register is used to
+ // configure a GPIO pin as a source
+ // for the ADC trigger. Note that if
+ // the Port B GPIOADCCTL register is
+ // cleared@@ PB4 can still be used
+ // as an external trigger for the
+ // ADC. This is a legacy mode which
+ // allows code written for previous
+ // Stellaris devices to operate on
+ // this microcontroller.
+#define GPIO_O_GPIO_DMACTL 0x00000534 // 0x4000 5534 0x4000 6534 0x4000
+ // 7534 0x4002 4534 GPIO DMA Control
+ // (GPIODMACTL)@@ offset 0x534 This
+ // register is used to configure a
+ // GPIO pin as a source for the ?DMA
+ // trigger.
+#define GPIO_O_GPIO_SI 0x00000538 // 0x4000 5538 0x4000 6538 0x4000
+ // 7538 0x4002 4538 GPIO Select
+ // Interrupt (GPIOSI)@@ offset 0x538
+ // This register is used to enable
+ // individual interrupts for each
+ // pin. Note: This register is only
+ // available on Port P and Port Q.
+#define GPIO_O_GPIO_PERIPHID4 0x00000FD0 // 0x4000 5FD0 0x4000 6FD0 0x4000
+ // 7FD0 0x4002 4FD0 GPIO Peripheral
+ // Identification 4
+ // (GPIOPeriphID4)@@ offset 0xFD0
+ // The GPIOPeriphID4@@
+ // GPIOPeriphID5@@ GPIOPeriphID6@@
+ // and GPIOPeriphID7 registers can
+ // conceptually be treated as one
+ // 32-bit register; each register
+ // contains eight bits of the 32-bit
+ // register@@ used by software to
+ // identify the peripheral.
+#define GPIO_O_GPIO_PERIPHID5 0x00000FD4 // 0x4000 5FD4 0x4000 6FD4 0x4000
+ // 7FD4 0x4002 4FD4 GPIO Peripheral
+ // Identification 5
+ // (GPIOPeriphID5)@@ offset 0xFD4
+ // The GPIOPeriphID4@@
+ // GPIOPeriphID5@@ GPIOPeriphID6@@
+ // and GPIOPeriphID7 registers can
+ // conceptually be treated as one
+ // 32-bit register; each register
+ // contains eight bits of the 32-bit
+ // register@@ used by software to
+ // identify the peripheral.
+#define GPIO_O_GPIO_PERIPHID6 0x00000FD8 // 0x4000 5FD8 0x4000 6FD8 0x4000
+ // 7FD8 0x4002 4FD8 GPIO Peripheral
+ // Identification 6
+ // (GPIOPeriphID6)@@ offset 0xFD8
+ // The GPIOPeriphID4@@
+ // GPIOPeriphID5@@ GPIOPeriphID6@@
+ // and GPIOPeriphID7 registers can
+ // conceptually be treated as one
+ // 32-bit register; each register
+ // contains eight bits of the 32-bit
+ // register@@ used by software to
+ // identify the peripheral.
+#define GPIO_O_GPIO_PERIPHID7 0x00000FDC // 0x4000 5FDC 0x4000 6FDC 0x4000
+ // 7FDC 0x4002 4FDC GPIO Peripheral
+ // Identification 7
+ // (GPIOPeriphID7)@@ offset 0xFDC
+ // The GPIOPeriphID4@@
+ // GPIOPeriphID5@@ GPIOPeriphID6@@
+ // and GPIOPeriphID7 registers can
+ // conceptually be treated as one
+ // 32-bit register; each register
+ // contains eight bits of the 32-bit
+ // register@@ used by software to
+ // identify the peripheral.
+#define GPIO_O_GPIO_PERIPHID0 0x00000FE0 // 0x4000 5FE0 0x4000 6FE0 0x4000
+ // 7FE0 0x4002 4FE0 GPIO Peripheral
+ // Identification 0
+ // (GPIOPeriphID0)@@ offset 0xFE0
+ // The GPIOPeriphID0@@
+ // GPIOPeriphID1@@ GPIOPeriphID2@@
+ // and GPIOPeriphID3 registers can
+ // conceptually be treated as one
+ // 32-bit register; each register
+ // contains eight bits of the 32-bit
+ // register@@ used by software to
+ // identify the peripheral.
+#define GPIO_O_GPIO_PERIPHID1 0x00000FE4 // 0x4000 5FE4 0x4000 6FE4 0x4000
+ // 7FE4 0x4002 4FE4 GPIO Peripheral
+ // Identification 1
+ // (GPIOPeriphID1)@@ offset 0xFE4
+ // The GPIOPeriphID0@@
+ // GPIOPeriphID1@@ GPIOPeriphID2@@
+ // and GPIOPeriphID3 registers can
+ // conceptually be treated as one
+ // 32-bit register; each register
+ // contains eight bits of the 32-bit
+ // register@@ used by software to
+ // identify the peripheral.
+#define GPIO_O_GPIO_PERIPHID2 0x00000FE8 // 0x4000 5FE8 0x4000 6FE8 0x4000
+ // 7FE8 0x4002 4FE8 GPIO Peripheral
+ // Identification 2
+ // (GPIOPeriphID2)@@ offset 0xFE8
+ // The GPIOPeriphID0@@
+ // GPIOPeriphID1@@ GPIOPeriphID2@@
+ // and GPIOPeriphID3 registers can
+ // conceptually be treated as one
+ // 32-bit register; each register
+ // contains eight bits of the 32-bit
+ // register@@ used by software to
+ // identify the peripheral.
+#define GPIO_O_GPIO_PERIPHID3 0x00000FEC // 0x4000 5FEC 0x4000 6FEC 0x4000
+ // 7FEC 0x4002 4FEC GPIO Peripheral
+ // Identification 3
+ // (GPIOPeriphID3)@@ offset 0xFEC
+ // The GPIOPeriphID0@@
+ // GPIOPeriphID1@@ GPIOPeriphID2@@
+ // and GPIOPeriphID3 registers can
+ // conceptually be treated as one
+ // 32-bit register; each register
+ // contains eight bits of the 32-bit
+ // register@@ used by software to
+ // identify the peripheral.
+#define GPIO_O_GPIO_PCELLID0 0x00000FF0 // 0x4000 5FF0 0x4000 6FF0 0x4000
+ // 7FF0 0x4002 4FF0 GPIO PrimeCell
+ // Identification 0 (GPIOPCellID0)@@
+ // offset 0xFF0 The GPIOPCellID0@@
+ // GPIOPCellID1@@ GPIOPCellID2@@ and
+ // GPIOPCellID3 registers are four
+ // 8-bit wide registers@@ that can
+ // conceptually be treated as one
+ // 32-bit register. The register is
+ // used as a standard
+ // cross-peripheral identification
+ // system.
+#define GPIO_O_GPIO_PCELLID1 0x00000FF4 // 0x4000 5FF4 0x4000 6FF4 0x4000
+ // 7FF4 0x4002 4FF4 GPIO PrimeCell
+ // Identification 1 (GPIOPCellID1)@@
+ // offset 0xFF4 The GPIOPCellID0@@
+ // GPIOPCellID1@@ GPIOPCellID2@@ and
+ // GPIOPCellID3 registers are four
+ // 8-bit wide registers@@ that can
+ // conceptually be treated as one
+ // 32-bit register. The register is
+ // used as a standard
+ // cross-peripheral identification
+ // system.
+#define GPIO_O_GPIO_PCELLID2 0x00000FF8 // 0x4000 5FF8 0x4000 6FF8 0x4000
+ // 7FF8 0x4002 4FF8 GPIO PrimeCell
+ // Identification 2 (GPIOPCellID2)@@
+ // offset 0xFF8 The GPIOPCellID0@@
+ // GPIOPCellID1@@ GPIOPCellID2@@ and
+ // GPIOPCellID3 registers are four
+ // 8-bit wide registers@@ that can
+ // conceptually be treated as one
+ // 32-bit register. The register is
+ // used as a standard
+ // cross-peripheral identification
+ // system.
+#define GPIO_O_GPIO_PCELLID3 0x00000FFC // 0x4000 5FFC 0x4000 6FFC 0x4000
+ // 7FFC 0x4002 4FFC GPIO PrimeCell
+ // Identification 3 (GPIOPCellID3)@@
+ // offset 0xFFC The GPIOPCellID0@@
+ // GPIOPCellID1@@ GPIOPCellID2@@ and
+ // GPIOPCellID3 registers are four
+ // 8-bit wide registers@@ that can
+ // conceptually be treated as one
+ // 32-bit register. The register is
+ // used as a standard
+ // cross-peripheral identification
+ // system.0xb1
+
+
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_DATA register.
+//
+//******************************************************************************
+#define GPIO_GPIO_DATA_DATA_M 0x000000FF // GPIO Data This register is
+ // virtually mapped to 256 locations
+ // in the address space. To
+ // facilitate the reading and
+ // writing of data to these
+ // registers by independent
+ // drivers@@ the data read from and
+ // written to the registers are
+ // masked by the eight address lines
+ // [9:2]. Reads from this register
+ // return its current state. Writes
+ // to this register only affect bits
+ // that are not masked by ADDR[9:2]
+ // and are configured as outputs.
+#define GPIO_GPIO_DATA_DATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_DIR register.
+//
+//******************************************************************************
+#define GPIO_GPIO_DIR_DIR_M 0x000000FF // GPIO Data Direction Value
+ // Description 0 Corresponding pin
+ // is an input. 1 Corresponding pins
+ // is an output.
+#define GPIO_GPIO_DIR_DIR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_IS register.
+//
+//******************************************************************************
+#define GPIO_GPIO_IS_IS_M 0x000000FF // GPIO Interrupt Sense Value
+ // Description 0 The edge on the
+ // corresponding pin is detected
+ // (edge-sensitive). 1 The level on
+ // the corresponding pin is detected
+ // (level-sensitive).
+#define GPIO_GPIO_IS_IS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_IBE register.
+//
+//******************************************************************************
+#define GPIO_GPIO_IBE_IBE_M 0x000000FF // GPIO Interrupt Both Edges Value
+ // Description 0 Interrupt
+ // generation is controlled by the
+ // GPIO Interrupt Event (GPIOIEV)
+ // register. 1 Both edges on the
+ // corresponding pin trigger an
+ // interrupt.
+#define GPIO_GPIO_IBE_IBE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_IEV register.
+//
+//******************************************************************************
+#define GPIO_GPIO_IEV_IEV_M 0x000000FF // GPIO Interrupt Event Value
+ // Description 1 A falling edge or a
+ // Low level on the corresponding
+ // pin triggers an interrupt. 0 A
+ // rising edge or a High level on
+ // the corresponding pin triggers an
+ // interrupt.
+#define GPIO_GPIO_IEV_IEV_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_IM register.
+//
+//******************************************************************************
+#define GPIO_GPIO_IM_IME_M 0x000000FF // GPIO Interrupt Mask Enable Value
+ // Description 0 The interrupt from
+ // the corresponding pin is masked.
+ // 1 The interrupt from the
+ // corresponding pin is sent to the
+ // interrupt controller.
+#define GPIO_GPIO_IM_IME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_RIS register.
+//
+//******************************************************************************
+#define GPIO_GPIO_RIS_RIS_M 0x000000FF // GPIO Interrupt Raw Status Value
+ // Description 1 An interrupt
+ // condition has occurred on the
+ // corresponding pin. 0 interrupt
+ // condition has not occurred on the
+ // corresponding pin. A bit is
+ // cleared by writing a 1 to the
+ // corresponding bit in the GPIOICR
+ // register.
+#define GPIO_GPIO_RIS_RIS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_MIS register.
+//
+//******************************************************************************
+#define GPIO_GPIO_MIS_MIS_M 0x000000FF // GPIO Masked Interrupt Status
+ // Value Description 1 An interrupt
+ // condition on the corresponding
+ // pin has triggered an interrupt to
+ // the interrupt controller. 0 An
+ // interrupt condition on the
+ // corresponding pin is masked or
+ // has not occurred. A bit is
+ // cleared by writing a 1 to the
+ // corresponding bit in the GPIOICR
+ // register.
+#define GPIO_GPIO_MIS_MIS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_ICR register.
+//
+//******************************************************************************
+#define GPIO_GPIO_ICR_IC_M 0x000000FF // GPIO Interrupt Clear Value
+ // Description 1 The corresponding
+ // interrupt is cleared. 0 The
+ // corresponding interrupt is
+ // unaffected.
+#define GPIO_GPIO_ICR_IC_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_AFSEL register.
+//
+//******************************************************************************
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_DR2R register.
+//
+//******************************************************************************
+#define GPIO_GPIO_DR2R_DRV2_M 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Output Pad
+ // 2-mA Drive Enable Value
+ // Description 1 The corresponding
+ // GPIO pin has 2-mA drive. The
+ // drive for the corresponding GPIO
+ // pin is controlled by the GPIODR4R
+ // or GPIODR8R register. 0 Setting a
+ // bit in either the GPIODR4
+ // register or the GPIODR8 register
+ // clears the corresponding 2-mA
+ // enable bit. The change is
+ // effective on the second clock
+ // cycle after the write if
+ // accessing GPIO via the APB memory
+ // aperture. If using AHB access@@
+ // the change is effective on the
+ // next clock cycle.
+#define GPIO_GPIO_DR2R_DRV2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_DR4R register.
+//
+//******************************************************************************
+#define GPIO_GPIO_DR4R_DRV4_M 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Output Pad
+ // 4-mA Drive Enable Value
+ // Description 1 The corresponding
+ // GPIO pin has 4-mA drive. The
+ // drive for the corresponding GPIO
+ // pin is controlled by the GPIODR2R
+ // or GPIODR8R register. 0 Setting a
+ // bit in either the GPIODR2
+ // register or the GPIODR8 register
+ // clears the corresponding 4-mA
+ // enable bit. The change is
+ // effective on the second clock
+ // cycle after the write if
+ // accessing GPIO via the APB memory
+ // aperture. If using AHB access@@
+ // the change is effective on the
+ // next clock cycle.
+#define GPIO_GPIO_DR4R_DRV4_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_DR8R register.
+//
+//******************************************************************************
+#define GPIO_GPIO_DR8R_DRV8_M 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Output Pad
+ // 8-mA Drive Enable Value
+ // Description 1 The corresponding
+ // GPIO pin has 8-mA drive. The
+ // drive for the corresponding GPIO
+ // pin is controlled by the GPIODR2R
+ // or GPIODR4R register. 0 Setting a
+ // bit in either the GPIODR2
+ // register or the GPIODR4 register
+ // clears the corresponding 8-mA
+ // enable bit. The change is
+ // effective on the second clock
+ // cycle after the write if
+ // accessing GPIO via the APB memory
+ // aperture. If using AHB access@@
+ // the change is effective on the
+ // next clock cycle.
+#define GPIO_GPIO_DR8R_DRV8_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_ODR register.
+//
+//******************************************************************************
+#define GPIO_GPIO_ODR_ODE_M 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Output Pad
+ // Open Drain Enable Value
+ // Description 1 The corresponding
+ // pin is configured as open drain.
+ // 0 The corresponding pin is not
+ // configured as open drain.
+#define GPIO_GPIO_ODR_ODE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_PUR register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PUR_PUE_M 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Pad Weak
+ // Pull-Up Enable Value Description
+ // 1 The corresponding pin has a
+ // weak pull-up resistor. 0 The
+ // corresponding pin is not
+ // affected. Setting a bit in the
+ // GPIOPDR register clears the
+ // corresponding bit in the GPIOPUR
+ // register. The change is effective
+ // on the second clock cycle after
+ // the write if accessing GPIO via
+ // the APB memory aperture. If using
+ // AHB access@@ the change is
+ // effective on the next clock
+ // cycle.
+#define GPIO_GPIO_PUR_PUE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_PDR register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PDR_PDE_M 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Pad Weak
+ // Pull-Down Enable Value
+ // Description 1 The corresponding
+ // pin has a weak pull-down
+ // resistor. 0 The corresponding pin
+ // is not affected. Setting a bit in
+ // the GPIOPUR register clears the
+ // corresponding bit in the GPIOPDR
+ // register. The change is effective
+ // on the second clock cycle after
+ // the write if accessing GPIO via
+ // the APB memory aperture. If using
+ // AHB access@@ the change is
+ // effective on the next clock
+ // cycle.
+#define GPIO_GPIO_PDR_PDE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_SLR register.
+//
+//******************************************************************************
+#define GPIO_GPIO_SLR_SRL_M 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Slew Rate
+ // Limit Enable (8-mA drive only)
+ // Value Description 1 Slew rate
+ // control is enabled for the
+ // corresponding pin. 0 Slew rate
+ // control is disabled for the
+ // corresponding pin.
+#define GPIO_GPIO_SLR_SRL_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_DEN register.
+//
+//******************************************************************************
+#define GPIO_GPIO_DEN_DEN_M 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Digital Enable
+ // Value Description 0 The digital
+ // functions for the corresponding
+ // pin are disabled. 1 The digital
+ // functions for the corresponding
+ // pin are enabled.
+#define GPIO_GPIO_DEN_DEN_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_LOCK register.
+//
+//******************************************************************************
+#define GPIO_GPIO_LOCK_LOCK_M 0xFFFFFFFF // This register is not used in
+ // cc3xx. GPIO Lock A write of the
+ // value 0x4C4F.434B unlocks the
+ // GPIO Commit (GPIOCR) register for
+ // write access.A write of any other
+ // value or a write to the GPIOCR
+ // register reapplies the lock@@
+ // preventing any register updates.
+ // A read of this register returns
+ // the following values: Value
+ // Description 0x1 The GPIOCR
+ // register is locked and may not be
+ // modified. 0x0 The GPIOCR register
+ // is unlocked and may be modified.
+#define GPIO_GPIO_LOCK_LOCK_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_CR register.
+//
+//******************************************************************************
+#define GPIO_GPIO_CR_CR_M 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) GPIO Commit
+ // Value Description The
+ // corresponding GPIOAFSEL@@
+ // GPIOPUR@@ GPIOPDR@@ or GPIODEN
+ // bits can be written. 1 The
+ // corresponding GPIOAFSEL@@
+ // GPIOPUR@@ GPIOPDR@@ or GPIODEN
+ // bits cannot be written. 0 Note:
+ // The default register type for the
+ // GPIOCR register is RO for all
+ // GPIO pins with the exception of
+ // the NMI pin and the four JTAG/SWD
+ // pins (PD7@@ PF0@@ and PC[3:0]).
+ // These six pins are the only GPIOs
+ // that are protected by the GPIOCR
+ // register. Because of this@@ the
+ // register type for GPIO Port D7@@
+ // GPIO Port F0@@ and GPIO Port
+ // C[3:0] is R/W. The default reset
+ // value for the GPIOCR register is
+ // 0x0000.00FF for all GPIO pins@@
+ // with the exception of the NMI pin
+ // and the four JTAG/SWD pins (PD7@@
+ // PF0@@ and PC[3:0]). To ensure
+ // that the JTAG port is not
+ // accidentally programmed as GPIO
+ // pins@@ the PC[3:0] pins default
+ // to non-committable. Similarly@@
+ // to ensure that the NMI pin is not
+ // accidentally programmed as a GPIO
+ // pin@@ the PD7 and PF0 pins
+ // default to non-committable.
+ // Because of this@@ the default
+ // reset value of GPIOCR for GPIO
+ // Port C is 0x0000.00F0@@ for GPIO
+ // Port D is 0x0000.007F@@ and for
+ // GPIO Port F is 0x0000.00FE.
+#define GPIO_GPIO_CR_CR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_AMSEL register.
+//
+//******************************************************************************
+#define GPIO_GPIO_AMSEL_GPIO_AMSEL_M \
+ 0x000000FF // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) GPIO Analog
+ // Mode Select Value Description 1
+ // The analog function of the pin is
+ // enabled@@ the isolation is
+ // disabled@@ and the pin is capable
+ // of analog functions. 0 The analog
+ // function of the pin is disabled@@
+ // the isolation is enabled@@ and
+ // the pin is capable of digital
+ // functions as specified by the
+ // other GPIO configuration
+ // registers. Note: This register
+ // and bits are only valid for GPIO
+ // signals that share analog
+ // function through a unified I/O
+ // pad. The reset state of this
+ // register is 0 for all signals.
+
+#define GPIO_GPIO_AMSEL_GPIO_AMSEL_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_PCTL register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PCTL_PMC7_M 0xF0000000 // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Port Mux
+ // Control 7 This field controls the
+ // configuration for GPIO pin 7.
+#define GPIO_GPIO_PCTL_PMC7_S 28
+#define GPIO_GPIO_PCTL_PMC6_M 0x0F000000 // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Port Mux
+ // Control 6 This field controls the
+ // configuration for GPIO pin 6.
+#define GPIO_GPIO_PCTL_PMC6_S 24
+#define GPIO_GPIO_PCTL_PMC5_M 0x00F00000 // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Port Mux
+ // Control 5 This field controls the
+ // configuration for GPIO pin 5.
+#define GPIO_GPIO_PCTL_PMC5_S 20
+#define GPIO_GPIO_PCTL_PMC4_M 0x000F0000 // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Port Mux
+ // Control 4 This field controls the
+ // configuration for GPIO pin 4.
+#define GPIO_GPIO_PCTL_PMC4_S 16
+#define GPIO_GPIO_PCTL_PMC3_M 0x0000F000 // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Port Mux
+ // Control 43 This field controls
+ // the configuration for GPIO pin 3.
+#define GPIO_GPIO_PCTL_PMC3_S 12
+#define GPIO_GPIO_PCTL_PMC1_M 0x00000F00 // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Port Mux
+ // Control 1 This field controls the
+ // configuration for GPIO pin 1.
+#define GPIO_GPIO_PCTL_PMC1_S 8
+#define GPIO_GPIO_PCTL_PMC2_M 0x000000F0 // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Port Mux
+ // Control 2 This field controls the
+ // configuration for GPIO pin 2.
+#define GPIO_GPIO_PCTL_PMC2_S 4
+#define GPIO_GPIO_PCTL_PMC0_M 0x0000000F // This register is not used in
+ // cc3xx. equivalant register exsist
+ // outside GPIO IP (refer
+ // PAD*_config register in the
+ // shared comn space) Port Mux
+ // Control 0 This field controls the
+ // configuration for GPIO pin 0.
+#define GPIO_GPIO_PCTL_PMC0_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_ADCCTL register.
+//
+//******************************************************************************
+#define GPIO_GPIO_ADCCTL_ADCEN_M \
+ 0x000000FF // This register is not used in
+ // cc3xx. ADC trigger via GPIO is
+ // not supported. ADC Trigger Enable
+ // Value Description 1 The
+ // corresponding pin is used to
+ // trigger the ADC. 0 The
+ // corresponding pin is not used to
+ // trigger the ADC.
+
+#define GPIO_GPIO_ADCCTL_ADCEN_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_DMACTL register.
+//
+//******************************************************************************
+#define GPIO_GPIO_DMACTL_DMAEN_M \
+ 0x000000FF // This register is not used in the
+ // cc3xx. Alternate register to
+ // support this feature is coded in
+ // the APPS_NWP_CMN space. refer
+ // register as offset 0x400F70D8
+ // ?DMA Trigger Enable Value
+ // Description 1 The corresponding
+ // pin is used to trigger the ?DMA.
+ // 0 The corresponding pin is not
+ // used to trigger the ?DMA.
+
+#define GPIO_GPIO_DMACTL_DMAEN_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPIO_O_GPIO_SI register.
+//
+//******************************************************************************
+#define GPIO_GPIO_SI_SUM 0x00000001 // Summary Interrupt Value
+ // Description 1 Each pin has its
+ // own interrupt vector. 0 All port
+ // pin interrupts are OR'ed together
+ // to produce a summary interrupt.
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PERIPHID4 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PERIPHID4_PID4_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO Peripheral ID
+ // Register [7:0]
+
+#define GPIO_GPIO_PERIPHID4_PID4_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PERIPHID5 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PERIPHID5_PID5_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO Peripheral ID
+ // Register [15:8]
+
+#define GPIO_GPIO_PERIPHID5_PID5_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PERIPHID6 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PERIPHID6_PID6_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO Peripheral ID
+ // Register [23:16]
+
+#define GPIO_GPIO_PERIPHID6_PID6_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PERIPHID7 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PERIPHID7_PID7_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO Peripheral ID
+ // Register [31:24]
+
+#define GPIO_GPIO_PERIPHID7_PID7_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PERIPHID0 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PERIPHID0_PID0_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO Peripheral ID
+ // Register [7:0] Can be used by
+ // software to identify the presence
+ // of this peripheral.
+
+#define GPIO_GPIO_PERIPHID0_PID0_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PERIPHID1 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PERIPHID1_PID1_M \
+ 0x000000FF // GPIO Peripheral ID Register
+ // [15:8] Can be used by software to
+ // identify the presence of this
+ // peripheral.
+
+#define GPIO_GPIO_PERIPHID1_PID1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PERIPHID2 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PERIPHID2_PID2_M \
+ 0x000000FF // This register is not used in
+ // CC3XX.v GPIO Peripheral ID
+ // Register [23:16] Can be used by
+ // software to identify the presence
+ // of this peripheral.
+
+#define GPIO_GPIO_PERIPHID2_PID2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PERIPHID3 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PERIPHID3_PID3_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO Peripheral ID
+ // Register [31:24] Can be used by
+ // software to identify the presence
+ // of this peripheral.
+
+#define GPIO_GPIO_PERIPHID3_PID3_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PCELLID0 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PCELLID0_CID0_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO PrimeCell ID Register
+ // [7:0] Provides software a
+ // standard cross-peripheral
+ // identification system.
+
+#define GPIO_GPIO_PCELLID0_CID0_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PCELLID1 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PCELLID1_CID1_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO PrimeCell ID Register
+ // [15:8] Provides software a
+ // standard cross-peripheral
+ // identification system.
+
+#define GPIO_GPIO_PCELLID1_CID1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PCELLID2 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PCELLID2_CID2_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO PrimeCell ID Register
+ // [23:16] Provides software a
+ // standard cross-peripheral
+ // identification system.
+
+#define GPIO_GPIO_PCELLID2_CID2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPIO_O_GPIO_PCELLID3 register.
+//
+//******************************************************************************
+#define GPIO_GPIO_PCELLID3_CID3_M \
+ 0x000000FF // This register is not used in
+ // CC3XX. GPIO PrimeCell ID Register
+ // [31:24] Provides software a
+ // standard cross-peripheral
+ // identification system.
+
+#define GPIO_GPIO_PCELLID3_CID3_S 0
+
+
+
+#endif // __HW_GPIO_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_gprcm.h b/ext/hal/ti/cc3220sdk/inc/hw_gprcm.h
new file mode 100644
index 0000000..1683e38
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_gprcm.h
@@ -0,0 +1,3320 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __HW_GPRCM_H__
+#define __HW_GPRCM_H__
+
+//*****************************************************************************
+//
+// The following are defines for the GPRCM register offsets.
+//
+//*****************************************************************************
+#define GPRCM_O_APPS_SOFT_RESET 0x00000000
+#define GPRCM_O_APPS_LPDS_WAKEUP_CFG \
+ 0x00000004
+
+#define GPRCM_O_APPS_LPDS_WAKEUP_SRC \
+ 0x00000008
+
+#define GPRCM_O_APPS_RESET_CAUSE \
+ 0x0000000C
+
+#define GPRCM_O_APPS_LPDS_WAKETIME_OPP_CFG \
+ 0x00000010
+
+#define GPRCM_O_APPS_SRAM_DSLP_CFG \
+ 0x00000018
+
+#define GPRCM_O_APPS_SRAM_LPDS_CFG \
+ 0x0000001C
+
+#define GPRCM_O_APPS_LPDS_WAKETIME_WAKE_CFG \
+ 0x00000020
+
+#define GPRCM_O_TOP_DIE_ENABLE 0x00000100
+#define GPRCM_O_TOP_DIE_ENABLE_PARAMETERS \
+ 0x00000104
+
+#define GPRCM_O_MCU_GLOBAL_SOFT_RESET \
+ 0x00000108
+
+#define GPRCM_O_ADC_CLK_CONFIG 0x0000010C
+#define GPRCM_O_APPS_GPIO_WAKE_CONF \
+ 0x00000110
+
+#define GPRCM_O_EN_NWP_BOOT_WO_DEVINIT \
+ 0x00000114
+
+#define GPRCM_O_MEM_HCLK_DIV_CFG \
+ 0x00000118
+
+#define GPRCM_O_MEM_SYSCLK_DIV_CFG \
+ 0x0000011C
+
+#define GPRCM_O_APLLMCS_LOCK_TIME_CONF \
+ 0x00000120
+
+#define GPRCM_O_NWP_SOFT_RESET 0x00000400
+#define GPRCM_O_NWP_LPDS_WAKEUP_CFG \
+ 0x00000404
+
+#define GPRCM_O_NWP_LPDS_WAKEUP_SRC \
+ 0x00000408
+
+#define GPRCM_O_NWP_RESET_CAUSE 0x0000040C
+#define GPRCM_O_NWP_LPDS_WAKETIME_OPP_CFG \
+ 0x00000410
+
+#define GPRCM_O_NWP_SRAM_DSLP_CFG \
+ 0x00000418
+
+#define GPRCM_O_NWP_SRAM_LPDS_CFG \
+ 0x0000041C
+
+#define GPRCM_O_NWP_LPDS_WAKETIME_WAKE_CFG \
+ 0x00000420
+
+#define GPRCM_O_NWP_AUTONMS_SPI_MASTER_SEL \
+ 0x00000424
+
+#define GPRCM_O_NWP_AUTONMS_SPI_IDLE_REQ \
+ 0x00000428
+
+#define GPRCM_O_WLAN_TO_NWP_WAKE_REQUEST \
+ 0x0000042C
+
+#define GPRCM_O_NWP_TO_WLAN_WAKE_REQUEST \
+ 0x00000430
+
+#define GPRCM_O_NWP_GPIO_WAKE_CONF \
+ 0x00000434
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG12 \
+ 0x00000438
+
+#define GPRCM_O_GPRCM_DIEID_READ_REG5 \
+ 0x00000448
+
+#define GPRCM_O_GPRCM_DIEID_READ_REG6 \
+ 0x0000044C
+
+#define GPRCM_O_REF_FSM_CFG0 0x00000800
+#define GPRCM_O_REF_FSM_CFG1 0x00000804
+#define GPRCM_O_APLLMCS_WLAN_CONFIG0_40 \
+ 0x00000808
+
+#define GPRCM_O_APLLMCS_WLAN_CONFIG1_40 \
+ 0x0000080C
+
+#define GPRCM_O_APLLMCS_WLAN_CONFIG0_26 \
+ 0x00000810
+
+#define GPRCM_O_APLLMCS_WLAN_CONFIG1_26 \
+ 0x00000814
+
+#define GPRCM_O_APLLMCS_WLAN_OVERRIDES \
+ 0x00000818
+
+#define GPRCM_O_APLLMCS_MCU_RUN_CONFIG0_38P4 \
+ 0x0000081C
+
+#define GPRCM_O_APLLMCS_MCU_RUN_CONFIG1_38P4 \
+ 0x00000820
+
+#define GPRCM_O_APLLMCS_MCU_RUN_CONFIG0_26 \
+ 0x00000824
+
+#define GPRCM_O_APLLMCS_MCU_RUN_CONFIG1_26 \
+ 0x00000828
+
+#define GPRCM_O_SPARE_RW0 0x0000082C
+#define GPRCM_O_SPARE_RW1 0x00000830
+#define GPRCM_O_APLLMCS_MCU_OVERRIDES \
+ 0x00000834
+
+#define GPRCM_O_SYSCLK_SWITCH_STATUS \
+ 0x00000838
+
+#define GPRCM_O_REF_LDO_CONTROLS \
+ 0x0000083C
+
+#define GPRCM_O_REF_RTRIM_CONTROL \
+ 0x00000840
+
+#define GPRCM_O_REF_SLICER_CONTROLS0 \
+ 0x00000844
+
+#define GPRCM_O_REF_SLICER_CONTROLS1 \
+ 0x00000848
+
+#define GPRCM_O_REF_ANA_BGAP_CONTROLS0 \
+ 0x0000084C
+
+#define GPRCM_O_REF_ANA_BGAP_CONTROLS1 \
+ 0x00000850
+
+#define GPRCM_O_REF_ANA_SPARE_CONTROLS0 \
+ 0x00000854
+
+#define GPRCM_O_REF_ANA_SPARE_CONTROLS1 \
+ 0x00000858
+
+#define GPRCM_O_MEMSS_PSCON_OVERRIDES0 \
+ 0x0000085C
+
+#define GPRCM_O_MEMSS_PSCON_OVERRIDES1 \
+ 0x00000860
+
+#define GPRCM_O_PLL_REF_LOCK_OVERRIDES \
+ 0x00000864
+
+#define GPRCM_O_MCU_PSCON_DEBUG 0x00000868
+#define GPRCM_O_MEMSS_PWR_PS 0x0000086C
+#define GPRCM_O_REF_FSM_DEBUG 0x00000870
+#define GPRCM_O_MEM_SYS_OPP_REQ_OVERRIDE \
+ 0x00000874
+
+#define GPRCM_O_MEM_TESTCTRL_PD_OPP_CONFIG \
+ 0x00000878
+
+#define GPRCM_O_MEM_WL_FAST_CLK_REQ_OVERRIDES \
+ 0x0000087C
+
+#define GPRCM_O_MEM_MCU_PD_MODE_REQ_OVERRIDES \
+ 0x00000880
+
+#define GPRCM_O_MEM_MCSPI_SRAM_OFF_REQ_OVERRIDES \
+ 0x00000884
+
+#define GPRCM_O_MEM_WLAN_APLLMCS_OVERRIDES \
+ 0x00000888
+
+#define GPRCM_O_MEM_REF_FSM_CFG2 \
+ 0x0000088C
+
+#define GPRCM_O_TESTCTRL_POWER_CTRL \
+ 0x00000C10
+
+#define GPRCM_O_SSDIO_POWER_CTRL \
+ 0x00000C14
+
+#define GPRCM_O_MCSPI_N1_POWER_CTRL \
+ 0x00000C18
+
+#define GPRCM_O_WELP_POWER_CTRL 0x00000C1C
+#define GPRCM_O_WL_SDIO_POWER_CTRL \
+ 0x00000C20
+
+#define GPRCM_O_WLAN_SRAM_ACTIVE_PWR_CFG \
+ 0x00000C24
+
+#define GPRCM_O_WLAN_SRAM_SLEEP_PWR_CFG \
+ 0x00000C28
+
+#define GPRCM_O_APPS_SECURE_INIT_DONE \
+ 0x00000C30
+
+#define GPRCM_O_APPS_DEV_MODE_INIT_DONE \
+ 0x00000C34
+
+#define GPRCM_O_EN_APPS_REBOOT 0x00000C38
+#define GPRCM_O_MEM_APPS_PERIPH_PRESENT \
+ 0x00000C3C
+
+#define GPRCM_O_MEM_NWP_PERIPH_PRESENT \
+ 0x00000C40
+
+#define GPRCM_O_MEM_SHARED_PERIPH_PRESENT \
+ 0x00000C44
+
+#define GPRCM_O_NWP_PWR_STATE 0x00000C48
+#define GPRCM_O_APPS_PWR_STATE 0x00000C4C
+#define GPRCM_O_MCU_PWR_STATE 0x00000C50
+#define GPRCM_O_WTOP_PM_PS 0x00000C54
+#define GPRCM_O_WTOP_PD_RESETZ_OVERRIDE_REG \
+ 0x00000C58
+
+#define GPRCM_O_WELP_PD_RESETZ_OVERRIDE_REG \
+ 0x00000C5C
+
+#define GPRCM_O_WL_SDIO_PD_RESETZ_OVERRIDE_REG \
+ 0x00000C60
+
+#define GPRCM_O_SSDIO_PD_RESETZ_OVERRIDE_REG \
+ 0x00000C64
+
+#define GPRCM_O_MCSPI_N1_PD_RESETZ_OVERRIDE_REG \
+ 0x00000C68
+
+#define GPRCM_O_TESTCTRL_PD_RESETZ_OVERRIDE_REG \
+ 0x00000C6C
+
+#define GPRCM_O_MCU_PD_RESETZ_OVERRIDE_REG \
+ 0x00000C70
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG0 \
+ 0x00000C78
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG1 \
+ 0x00000C7C
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG2 \
+ 0x00000C80
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG3 \
+ 0x00000C84
+
+#define GPRCM_O_WTOP_MEM_RET_CFG \
+ 0x00000C88
+
+#define GPRCM_O_COEX_CLK_SWALLOW_CFG0 \
+ 0x00000C8C
+
+#define GPRCM_O_COEX_CLK_SWALLOW_CFG1 \
+ 0x00000C90
+
+#define GPRCM_O_COEX_CLK_SWALLOW_CFG2 \
+ 0x00000C94
+
+#define GPRCM_O_COEX_CLK_SWALLOW_ENABLE \
+ 0x00000C98
+
+#define GPRCM_O_DCDC_CLK_GEN_CONFIG \
+ 0x00000C9C
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG4 \
+ 0x00000CA0
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG5 \
+ 0x00000CA4
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG6 \
+ 0x00000CA8
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG7 \
+ 0x00000CAC
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG8 \
+ 0x00000CB0
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG9 \
+ 0x00000CB4
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG10 \
+ 0x00000CB8
+
+#define GPRCM_O_GPRCM_EFUSE_READ_REG11 \
+ 0x00000CBC
+
+#define GPRCM_O_GPRCM_DIEID_READ_REG0 \
+ 0x00000CC0
+
+#define GPRCM_O_GPRCM_DIEID_READ_REG1 \
+ 0x00000CC4
+
+#define GPRCM_O_GPRCM_DIEID_READ_REG2 \
+ 0x00000CC8
+
+#define GPRCM_O_GPRCM_DIEID_READ_REG3 \
+ 0x00000CCC
+
+#define GPRCM_O_GPRCM_DIEID_READ_REG4 \
+ 0x00000CD0
+
+#define GPRCM_O_APPS_SS_OVERRIDES \
+ 0x00000CD4
+
+#define GPRCM_O_NWP_SS_OVERRIDES \
+ 0x00000CD8
+
+#define GPRCM_O_SHARED_SS_OVERRIDES \
+ 0x00000CDC
+
+#define GPRCM_O_IDMEM_CORE_RST_OVERRIDES \
+ 0x00000CE0
+
+#define GPRCM_O_TOP_DIE_FSM_OVERRIDES \
+ 0x00000CE4
+
+#define GPRCM_O_MCU_PSCON_OVERRIDES \
+ 0x00000CE8
+
+#define GPRCM_O_WTOP_PSCON_OVERRIDES \
+ 0x00000CEC
+
+#define GPRCM_O_WELP_PSCON_OVERRIDES \
+ 0x00000CF0
+
+#define GPRCM_O_WL_SDIO_PSCON_OVERRIDES \
+ 0x00000CF4
+
+#define GPRCM_O_MCSPI_PSCON_OVERRIDES \
+ 0x00000CF8
+
+#define GPRCM_O_SSDIO_PSCON_OVERRIDES \
+ 0x00000CFC
+
+
+
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_SOFT_RESET register.
+//
+//******************************************************************************
+#define GPRCM_APPS_SOFT_RESET_APPS_SOFT_RESET1 \
+ 0x00000002 // Soft-reset1 for APPS : Cortex
+ // sysrstn is asserted and in
+ // addition to that the associated
+ // APPS Peripherals are also reset.
+ // This is an auto-clear bit.
+
+#define GPRCM_APPS_SOFT_RESET_APPS_SOFT_RESET0 \
+ 0x00000001 // Soft-reset0 for APPS : Only
+ // sys-resetn for Cortex will be
+ // asserted. This is an auto-clear
+ // bit.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_LPDS_WAKEUP_CFG register.
+//
+//******************************************************************************
+#define GPRCM_APPS_LPDS_WAKEUP_CFG_APPS_LPDS_WAKEUP_CFG_M \
+ 0x000000FF // Mask for LPDS Wakeup interrupt :
+ // [7] - Host IRQ from NWP [6] -
+ // NWP_LPDS_Wake_irq (TRUE_LPDS) [5]
+ // - NWP Wake-request to APPS [4] -
+ // GPIO [3:1] - Reserved [0] - LPDS
+ // Wakeup-timer
+
+#define GPRCM_APPS_LPDS_WAKEUP_CFG_APPS_LPDS_WAKEUP_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_LPDS_WAKEUP_SRC register.
+//
+//******************************************************************************
+#define GPRCM_APPS_LPDS_WAKEUP_SRC_APPS_LPDS_WAKEUP_SRC_M \
+ 0x000000FF // Indicates the cause for wakeup
+ // from LPDS : [7] - Host IRQ from
+ // NWP [6] - NWP_LPDS_Wake_irq
+ // (TRUE_LPDS) [5] - NWP
+ // Wake-request to APPS [4] - GPIO
+ // [3:1] - Reserved [0] - LPDS
+ // Wakeup-timer
+
+#define GPRCM_APPS_LPDS_WAKEUP_SRC_APPS_LPDS_WAKEUP_SRC_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_RESET_CAUSE register.
+//
+//******************************************************************************
+#define GPRCM_APPS_RESET_CAUSE_APPS_RESET_CAUSE_M \
+ 0x000000FF // Indicates the reset cause for
+ // APPS : "0000" - Wake from HIB/OFF
+ // mode; "0001" - Wake from LPDS ;
+ // "0010" - Reserved ; "0011" -
+ // Soft-reset0 (Only APPS
+ // Cortex-sysrstn is asserted);
+ // "0100" - Soft-reset1 (APPS
+ // Cortex-sysrstn and APPS
+ // peripherals are reset); "0101" -
+ // WDOG0 (APPS Cortex-sysrstn and
+ // APPS peripherals are reset);
+ // "0110" - MCU Soft-reset (APPS +
+ // NWP Cortex-sysrstn + Peripherals
+ // are reset); "0111" - Secure Init
+ // done (Indication that reset has
+ // happened after DevInit); "1000" -
+ // Dev Mode Patch Init done (During
+ // development mode, patch
+ // downloading and Cortex
+ // re-vectoring is completed)
+
+#define GPRCM_APPS_RESET_CAUSE_APPS_RESET_CAUSE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_LPDS_WAKETIME_OPP_CFG register.
+//
+//******************************************************************************
+#define GPRCM_APPS_LPDS_WAKETIME_OPP_CFG_APPS_LPDS_WAKETIME_OPP_CFG_M \
+ 0xFFFFFFFF // OPP Request Configuration
+ // (Number of slow-clk cycles) for
+ // LPDS Wake-timer : This
+ // configuration implies the RTC
+ // time-stamp, which must be few
+ // slow-clks prior to
+ // APPS_LPDS_WAKETIME_WAKE_CFG, such
+ // that by the time actual wakeup is
+ // given, OPP is already switched to
+ // ACTIVE (RUN).
+
+#define GPRCM_APPS_LPDS_WAKETIME_OPP_CFG_APPS_LPDS_WAKETIME_OPP_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_SRAM_DSLP_CFG register.
+//
+//******************************************************************************
+#define GPRCM_APPS_SRAM_DSLP_CFG_APPS_SRAM_DSLP_CFG_M \
+ 0x000FFFFF // Configuration of APPS Memories
+ // during Deep-sleep : 0 - SRAMs are
+ // OFF ; 1 - SRAMs are Retained.
+ // APPS SRAM Cluster information :
+ // [0] - 1st column in MEMSS
+ // (Applicable only when owned by
+ // APPS); [1] - 2nd column in MEMSS
+ // (Applicable only when owned by
+ // APPS); [2] - 3rd column in MEMSS
+ // (Applicable only when owned by
+ // APPS) ; [3] - 4th column in MEMSS
+ // (Applicable only when owned by
+ // APPS) ; [16] - MCU-PD - Apps
+ // cluster 0 (TBD); [19:18] -
+ // Reserved.
+
+#define GPRCM_APPS_SRAM_DSLP_CFG_APPS_SRAM_DSLP_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_SRAM_LPDS_CFG register.
+//
+//******************************************************************************
+#define GPRCM_APPS_SRAM_LPDS_CFG_APPS_SRAM_LPDS_CFG_M \
+ 0x000FFFFF // Configuration of APPS Memories
+ // during LPDS : 0 - SRAMs are OFF ;
+ // 1 - SRAMs are Retained. APPS SRAM
+ // Cluster information : [0] - 1st
+ // column in MEMSS (Applicable only
+ // when owned by APPS); [1] - 2nd
+ // column in MEMSS (Applicable only
+ // when owned by APPS); [2] - 3rd
+ // column in MEMSS (Applicable only
+ // when owned by APPS) ; [3] - 4th
+ // column in MEMSS (Applicable only
+ // when owned by APPS) ; [16] -
+ // MCU-PD - Apps cluster 0 (TBD);
+ // [19:18] - Reserved.
+
+#define GPRCM_APPS_SRAM_LPDS_CFG_APPS_SRAM_LPDS_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_LPDS_WAKETIME_WAKE_CFG register.
+//
+//******************************************************************************
+#define GPRCM_APPS_LPDS_WAKETIME_WAKE_CFG_APPS_LPDS_WAKETIME_WAKE_CFG_M \
+ 0xFFFFFFFF // Configuration (in no of
+ // slow_clks) which says when the
+ // actual wakeup request for
+ // removing the PD-reset be given.
+
+#define GPRCM_APPS_LPDS_WAKETIME_WAKE_CFG_APPS_LPDS_WAKETIME_WAKE_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_TOP_DIE_ENABLE register.
+//
+//******************************************************************************
+#define GPRCM_TOP_DIE_ENABLE_FLASH_BUSY \
+ 0x00001000
+
+#define GPRCM_TOP_DIE_ENABLE_TOP_DIE_PWR_PS_M \
+ 0x00000F00
+
+#define GPRCM_TOP_DIE_ENABLE_TOP_DIE_PWR_PS_S 8
+#define GPRCM_TOP_DIE_ENABLE_TOP_DIE_ENABLE_STATUS \
+ 0x00000002 // 1 - Top-die is enabled ;
+
+#define GPRCM_TOP_DIE_ENABLE_TOP_DIE_ENABLE \
+ 0x00000001 // 1 - Enable the top-die ; 0 -
+ // Disable the top-die
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_TOP_DIE_ENABLE_PARAMETERS register.
+//
+//******************************************************************************
+#define GPRCM_TOP_DIE_ENABLE_PARAMETERS_FLASH_3P3_RSTN2D2D_POR_RSTN_M \
+ 0xF0000000 // Configuration (in slow_clks) for
+ // number of clks between
+ // Flash-3p3-rstn to D2D POR Resetn.
+
+#define GPRCM_TOP_DIE_ENABLE_PARAMETERS_FLASH_3P3_RSTN2D2D_POR_RSTN_S 28
+#define GPRCM_TOP_DIE_ENABLE_PARAMETERS_TOP_DIE_SW_EN2TOP_DIE_FLASH_3P3_RSTN_M \
+ 0x00FF0000 // Configuration (in slow_clks) for
+ // number of clks between Top-die
+ // Switch-Enable and Top-die Flash
+ // 3p3 Reset removal
+
+#define GPRCM_TOP_DIE_ENABLE_PARAMETERS_TOP_DIE_SW_EN2TOP_DIE_FLASH_3P3_RSTN_S 16
+#define GPRCM_TOP_DIE_ENABLE_PARAMETERS_TOP_DIE_POR_RSTN2BOTT_DIE_FMC_RSTN_M \
+ 0x000000FF // Configuration (in slow_clks) for
+ // number of clks between D2D POR
+ // Reset removal and bottom die FMC
+ // reset removal
+
+#define GPRCM_TOP_DIE_ENABLE_PARAMETERS_TOP_DIE_POR_RSTN2BOTT_DIE_FMC_RSTN_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MCU_GLOBAL_SOFT_RESET register.
+//
+//******************************************************************************
+#define GPRCM_MCU_GLOBAL_SOFT_RESET_MCU_GLOBAL_SOFT_RESET \
+ 0x00000001 // 1 - Assert the global reset for
+ // MCU (APPS + NWP) ; Asserts both
+ // Cortex sysrstn and its
+ // peripherals 0 - Deassert the
+ // global reset for MCU (APPS + NWP)
+ // ; Asserts both Cortex sysrstn and
+ // its peripherals Note : Reset for
+ // shared peripherals is not
+ // affected here.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_ADC_CLK_CONFIG register.
+//
+//******************************************************************************
+#define GPRCM_ADC_CLK_CONFIG_ADC_CLKGEN_OFF_TIME_M \
+ 0x000007C0 // Configuration (in number of 38.4
+ // MHz clks) for the OFF-Time in
+ // generation of ADC_CLK
+
+#define GPRCM_ADC_CLK_CONFIG_ADC_CLKGEN_OFF_TIME_S 6
+#define GPRCM_ADC_CLK_CONFIG_ADC_CLKGEN_ON_TIME_M \
+ 0x0000003E // Configuration (in number of 38.4
+ // MHz clks) for the ON-Time in
+ // generation of ADC_CLK
+
+#define GPRCM_ADC_CLK_CONFIG_ADC_CLKGEN_ON_TIME_S 1
+#define GPRCM_ADC_CLK_CONFIG_ADC_CLK_ENABLE \
+ 0x00000001 // 1 - Enable the ADC_CLK ; 0 -
+ // Disable the ADC_CLK
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_GPIO_WAKE_CONF register.
+//
+//******************************************************************************
+#define GPRCM_APPS_GPIO_WAKE_CONF_APPS_GPIO_WAKE_CONF_M \
+ 0x00000003 // "00" - Wake on Level0 on
+ // selected GPIO pin (GPIO is
+ // selected inside the HIB3p3
+ // module); "01" - Wakeup on
+ // fall-edge of GPIO pin.
+
+#define GPRCM_APPS_GPIO_WAKE_CONF_APPS_GPIO_WAKE_CONF_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_EN_NWP_BOOT_WO_DEVINIT register.
+//
+//******************************************************************************
+#define GPRCM_EN_NWP_BOOT_WO_DEVINIT_reserved_M \
+ 0xFFFFFFFE
+
+#define GPRCM_EN_NWP_BOOT_WO_DEVINIT_reserved_S 1
+#define GPRCM_EN_NWP_BOOT_WO_DEVINIT_mem_en_nwp_boot_wo_devinit \
+ 0x00000001 // 1 - Override the secure-mode
+ // done for booting up NWP (Wakeup
+ // NWP on its event independent of
+ // CM4 state) ; 0 - Donot override
+ // the secure-mode done for NWP boot
+ // (NWP must be enabled by CM4 only)
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_HCLK_DIV_CFG register.
+//
+//******************************************************************************
+#define GPRCM_MEM_HCLK_DIV_CFG_mem_hclk_div_cfg_M \
+ 0x00000007 // Division configuration for
+ // HCLKDIVOUT : "000" - Divide by 1
+ // ; "001" - Divide by 2 ; "010" -
+ // Divide by 3 ; "011" - Divide by 4
+ // ; "100" - Divide by 5 ; "101" -
+ // Divide by 6 ; "110" - Divide by 7
+ // ; "111" - Divide by 8
+
+#define GPRCM_MEM_HCLK_DIV_CFG_mem_hclk_div_cfg_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_SYSCLK_DIV_CFG register.
+//
+//******************************************************************************
+#define GPRCM_MEM_SYSCLK_DIV_CFG_mem_sysclk_div_off_time_M \
+ 0x00000038
+
+#define GPRCM_MEM_SYSCLK_DIV_CFG_mem_sysclk_div_off_time_S 3
+#define GPRCM_MEM_SYSCLK_DIV_CFG_mem_sysclk_div_on_time_M \
+ 0x00000007
+
+#define GPRCM_MEM_SYSCLK_DIV_CFG_mem_sysclk_div_on_time_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_LOCK_TIME_CONF register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_LOCK_TIME_CONF_mem_apllmcs_wlan_lock_time_M \
+ 0x0000FF00
+
+#define GPRCM_APLLMCS_LOCK_TIME_CONF_mem_apllmcs_wlan_lock_time_S 8
+#define GPRCM_APLLMCS_LOCK_TIME_CONF_mem_apllmcs_mcu_lock_time_M \
+ 0x000000FF
+
+#define GPRCM_APLLMCS_LOCK_TIME_CONF_mem_apllmcs_mcu_lock_time_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_SOFT_RESET register.
+//
+//******************************************************************************
+#define GPRCM_NWP_SOFT_RESET_NWP_SOFT_RESET1 \
+ 0x00000002 // Soft-reset1 for NWP - Cortex
+ // sysrstn and NWP associated
+ // peripherals are - This is an
+ // auto-clr bit.
+
+#define GPRCM_NWP_SOFT_RESET_NWP_SOFT_RESET0 \
+ 0x00000001 // Soft-reset0 for NWP - Only
+ // Cortex-sysrstn is asserted - This
+ // is an auto-clear bit.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_LPDS_WAKEUP_CFG register.
+//
+//******************************************************************************
+#define GPRCM_NWP_LPDS_WAKEUP_CFG_NWP_LPDS_WAKEUP_CFG_M \
+ 0x000000FF // Mask for LPDS Wakeup interrupt :
+ // 7 - WLAN Host Interrupt ; 6 -
+ // WLAN to NWP Wake request ; 5 -
+ // APPS to NWP Wake request; 4 -
+ // GPIO Wakeup ; 3 - Autonomous UART
+ // Wakeup ; 2 - SSDIO Wakeup ; 1 -
+ // Autonomous SPI Wakeup ; 0 - LPDS
+ // Wakeup-timer
+
+#define GPRCM_NWP_LPDS_WAKEUP_CFG_NWP_LPDS_WAKEUP_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_LPDS_WAKEUP_SRC register.
+//
+//******************************************************************************
+#define GPRCM_NWP_LPDS_WAKEUP_SRC_NWP_LPDS_WAKEUP_SRC_M \
+ 0x000000FF // Indicates the cause for NWP
+ // LPDS-Wakeup : 7 - WLAN Host
+ // Interrupt ; 6 - WLAN to NWP Wake
+ // request ; 5 - APPS to NWP Wake
+ // request; 4 - GPIO Wakeup ; 3 -
+ // Autonomous UART Wakeup ; 2 -
+ // SSDIO Wakeup ; 1 - Autonomous SPI
+ // Wakeup ; 0 - LPDS Wakeup-timer
+
+#define GPRCM_NWP_LPDS_WAKEUP_SRC_NWP_LPDS_WAKEUP_SRC_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_RESET_CAUSE register.
+//
+//******************************************************************************
+#define GPRCM_NWP_RESET_CAUSE_NWP_RESET_CAUSE_M \
+ 0x000000FF // Indicates the reset cause for
+ // NWP : "0000" - Wake from HIB/OFF
+ // mode; "0001" - Wake from LPDS ;
+ // "0010" - Reserved ; "0011" -
+ // Soft-reset0 (Only NWP
+ // Cortex-sysrstn is asserted);
+ // "0100" - Soft-reset1 (NWP
+ // Cortex-sysrstn and NWP
+ // peripherals are reset); "0101" -
+ // WDOG0 (NWP Cortex-sysrstn and NWP
+ // peripherals are reset); "0110" -
+ // MCU Soft-reset (APPS + NWP
+ // Cortex-sysrstn + Peripherals are
+ // reset); "0111" - SSDIO Function2
+ // reset (Only Cortex-sysrstn is
+ // asserted) ; "1000" - Reset due to
+ // WDOG of APPS (NWP Cortex-sysrstn
+ // and NWP peripherals are reset);
+
+#define GPRCM_NWP_RESET_CAUSE_NWP_RESET_CAUSE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_LPDS_WAKETIME_OPP_CFG register.
+//
+//******************************************************************************
+#define GPRCM_NWP_LPDS_WAKETIME_OPP_CFG_NWP_LPDS_WAKETIME_OPP_CFG_M \
+ 0xFFFFFFFF // OPP Request Configuration
+ // (Number of slow-clk cycles) for
+ // LPDS Wake-timer
+
+#define GPRCM_NWP_LPDS_WAKETIME_OPP_CFG_NWP_LPDS_WAKETIME_OPP_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_SRAM_DSLP_CFG register.
+//
+//******************************************************************************
+#define GPRCM_NWP_SRAM_DSLP_CFG_NWP_SRAM_DSLP_CFG_M \
+ 0x000FFFFF // Configuration of NWP Memories
+ // during DSLP : 0 - SRAMs are OFF ;
+ // 1 - SRAMs are Retained. NWP SRAM
+ // Cluster information : [2] - 3rd
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [3] - 4th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [4] - 5th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [5] - 6th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [6] - 7th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [7] - 8th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [8] - 9th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [9] - 10th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [10] - 11th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [11] - 12th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [12] - 13th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [13] - 14th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [14] - 15th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [19:18] -
+ // Reserved.
+
+#define GPRCM_NWP_SRAM_DSLP_CFG_NWP_SRAM_DSLP_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_SRAM_LPDS_CFG register.
+//
+//******************************************************************************
+#define GPRCM_NWP_SRAM_LPDS_CFG_NWP_SRAM_LPDS_CFG_M \
+ 0x000FFFFF // Configuration of NWP Memories
+ // during LPDS : 0 - SRAMs are OFF ;
+ // 1 - SRAMs are Retained. NWP SRAM
+ // Cluster information : [2] - 3rd
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [3] - 4th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [4] - 5th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [5] - 6th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [6] - 7th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [7] - 8th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [8] - 9th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [9] - 10th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [10] - 11th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [11] - 12th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [12] - 13th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [13] - 14th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [14] - 15th
+ // column in MEMSS (Applicable only
+ // when owned by NWP) ; [19:18] -
+ // Reserved.
+
+#define GPRCM_NWP_SRAM_LPDS_CFG_NWP_SRAM_LPDS_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_LPDS_WAKETIME_WAKE_CFG register.
+//
+//******************************************************************************
+#define GPRCM_NWP_LPDS_WAKETIME_WAKE_CFG_NWP_LPDS_WAKETIME_WAKE_CFG_M \
+ 0xFFFFFFFF // Wake time configuration (no of
+ // slow clks) for NWP wake from
+ // LPDS.
+
+#define GPRCM_NWP_LPDS_WAKETIME_WAKE_CFG_NWP_LPDS_WAKETIME_WAKE_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_AUTONMS_SPI_MASTER_SEL register.
+//
+//******************************************************************************
+#define GPRCM_NWP_AUTONMS_SPI_MASTER_SEL_F_M \
+ 0xFFFE0000
+
+#define GPRCM_NWP_AUTONMS_SPI_MASTER_SEL_F_S 17
+#define GPRCM_NWP_AUTONMS_SPI_MASTER_SEL_MEM_AUTONMS_SPI_MASTER_SEL \
+ 0x00010000 // 0 - APPS is selected as host for
+ // Autonms SPI ; 1 - External host
+ // is selected as host for Autonms
+ // SPI
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_AUTONMS_SPI_IDLE_REQ register.
+//
+//******************************************************************************
+#define GPRCM_NWP_AUTONMS_SPI_IDLE_REQ_NWP_AUTONMS_SPI_IDLE_WAKEUP \
+ 0x00010000
+
+#define GPRCM_NWP_AUTONMS_SPI_IDLE_REQ_NWP_AUTONMS_SPI_IDLE_ACK \
+ 0x00000002 // When 1 => IDLE-mode is
+ // acknowledged by the SPI-IP. (This
+ // is for MCSPI_N1)
+
+#define GPRCM_NWP_AUTONMS_SPI_IDLE_REQ_NWP_AUTONMS_SPI_IDLE_REQ \
+ 0x00000001 // When 1 => Request for IDLE-mode
+ // for autonomous SPI. (This is for
+ // MCSPI_N1)
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WLAN_TO_NWP_WAKE_REQUEST register.
+//
+//******************************************************************************
+#define GPRCM_WLAN_TO_NWP_WAKE_REQUEST_WLAN_TO_NWP_WAKE_REQUEST \
+ 0x00000001 // 1 - Request for waking up NWP
+ // from any of its low-power modes
+ // (SLP/DSLP/LPDS)
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_TO_WLAN_WAKE_REQUEST register.
+//
+//******************************************************************************
+#define GPRCM_NWP_TO_WLAN_WAKE_REQUEST_NWP_TO_WLAN_WAKE_REQUEST \
+ 0x00000001 // 1 - Request for wakinp up WLAN
+ // from its ELP Mode (This gets
+ // triggered to ELP-logic of WLAN)
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_GPIO_WAKE_CONF register.
+//
+//******************************************************************************
+#define GPRCM_NWP_GPIO_WAKE_CONF_NWP_GPIO_WAKE_CONF_M \
+ 0x00000003 // "00" - Wakeup on level0 of the
+ // selected GPIO (GPIO gets selected
+ // inside HIB3P3-module); "01" -
+ // Wakeup on fall-edge of selected
+ // GPIO.
+
+#define GPRCM_NWP_GPIO_WAKE_CONF_NWP_GPIO_WAKE_CONF_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG12 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG12_FUSEFARM_ROW_32_MSW_M \
+ 0x0000FFFF // This corrsponds to ROW_32
+ // [31:16] of the FUSEFARM. SPARE
+
+#define GPRCM_GPRCM_EFUSE_READ_REG12_FUSEFARM_ROW_32_MSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_DIEID_READ_REG5 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_DIEID_READ_REG5_FUSEFARM_ROW_10_M \
+ 0xFFFFFFFF // Corresponds to ROW10 of FUSEFARM
+ // : [5:0] - ADC OFFSET ; [13:6] -
+ // TEMP_SENSE ; [14:14] - DFT_GSG ;
+ // [15:15] - FMC_DISABLE ; [31:16] -
+ // WLAN_MAC ID
+
+#define GPRCM_GPRCM_DIEID_READ_REG5_FUSEFARM_ROW_10_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_DIEID_READ_REG6 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_DIEID_READ_REG6_FUSEFARM_ROW_11_M \
+ 0xFFFFFFFF // Corresponds to ROW11 of FUSEFARM
+ // : [31:0] : WLAN MAC ID
+
+#define GPRCM_GPRCM_DIEID_READ_REG6_FUSEFARM_ROW_11_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_FSM_CFG0 register.
+//
+//******************************************************************************
+#define GPRCM_REF_FSM_CFG0_BGAP_SETTLING_TIME_M \
+ 0x00FF0000 // ANA-BGAP Settling time (In
+ // number of slow_clks)
+
+#define GPRCM_REF_FSM_CFG0_BGAP_SETTLING_TIME_S 16
+#define GPRCM_REF_FSM_CFG0_FREF_LDO_SETTLING_TIME_M \
+ 0x0000FF00 // Slicer LDO settling time (In
+ // number of slow clks)
+
+#define GPRCM_REF_FSM_CFG0_FREF_LDO_SETTLING_TIME_S 8
+#define GPRCM_REF_FSM_CFG0_DIG_BUF_SETTLING_TIME_M \
+ 0x000000FF // Dig-buffer settling time (In
+ // number of slow clks)
+
+#define GPRCM_REF_FSM_CFG0_DIG_BUF_SETTLING_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_FSM_CFG1 register.
+//
+//******************************************************************************
+#define GPRCM_REF_FSM_CFG1_XTAL_SETTLING_TIME_M \
+ 0xFF000000 // XTAL settling time (In number of
+ // slow clks)
+
+#define GPRCM_REF_FSM_CFG1_XTAL_SETTLING_TIME_S 24
+#define GPRCM_REF_FSM_CFG1_SLICER_LV_SETTLING_TIME_M \
+ 0x00FF0000 // LV Slicer settling time
+
+#define GPRCM_REF_FSM_CFG1_SLICER_LV_SETTLING_TIME_S 16
+#define GPRCM_REF_FSM_CFG1_SLICER_HV_PD_SETTLING_TIME_M \
+ 0x0000FF00 // HV Slicer Pull-down settling
+ // time
+
+#define GPRCM_REF_FSM_CFG1_SLICER_HV_PD_SETTLING_TIME_S 8
+#define GPRCM_REF_FSM_CFG1_SLICER_HV_SETTLING_TIME_M \
+ 0x000000FF // HV Slicer settling time
+
+#define GPRCM_REF_FSM_CFG1_SLICER_HV_SETTLING_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_WLAN_CONFIG0_40 register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_WLAN_CONFIG0_40_APLLMCS_WLAN_N_40_M \
+ 0x00007F00 // Configuration for WLAN APLLMCS -
+ // N[6:0], if the XTAL frequency is
+ // 40 MHz (Selected by efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG0_40_APLLMCS_WLAN_N_40_S 8
+#define GPRCM_APLLMCS_WLAN_CONFIG0_40_APLLMCS_WLAN_M_40_M \
+ 0x000000FF // Configuration for WLAN APLLMCS -
+ // M[7:0], if the XTAL frequency is
+ // 40 MHz (Selected by efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG0_40_APLLMCS_WLAN_M_40_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_WLAN_CONFIG1_40 register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_WLAN_CONFIG1_40_APLLMCS_HISPEED_40 \
+ 0x00000010 // Configuration for WLAN APLLMCS -
+ // if the XTAL frequency if 40 MHz
+ // (Selected by Efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG1_40_APLLMCS_SEL96_40 \
+ 0x00000008 // Configuration for WLAN APLLMCS -
+ // Sel96, if the XTAL frequency is
+ // 40 MHz (Selected by Efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG1_40_APLLMCS_SELINPFREQ_40_M \
+ 0x00000007 // Configuration for WLAN APLLMCS -
+ // Selinpfreq, if the XTAL frequency
+ // is 40 MHz (Selected by Efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG1_40_APLLMCS_SELINPFREQ_40_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_WLAN_CONFIG0_26 register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_WLAN_CONFIG0_26_APLLMCS_WLAN_N_26_M \
+ 0x00007F00 // Configuration for WLAN APLLMCS -
+ // N[6:0], if the XTAL frequency is
+ // 26 MHz (Selected by efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG0_26_APLLMCS_WLAN_N_26_S 8
+#define GPRCM_APLLMCS_WLAN_CONFIG0_26_APLLMCS_WLAN_M_26_M \
+ 0x000000FF // Configuration for WLAN APLLMCS -
+ // M[7:0], if the XTAL frequency is
+ // 26 MHz (Selected by efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG0_26_APLLMCS_WLAN_M_26_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_WLAN_CONFIG1_26 register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_WLAN_CONFIG1_26_APLLMCS_HISPEED_26 \
+ 0x00000010 // Configuration for WLAN APLLMCS -
+ // if the XTAL frequency if 26 MHz
+ // (Selected by Efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG1_26_APLLMCS_SEL96_26 \
+ 0x00000008 // Configuration for WLAN APLLMCS -
+ // Sel96, if the XTAL frequency is
+ // 26 MHz (Selected by Efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG1_26_APLLMCS_SELINPFREQ_26_M \
+ 0x00000007 // Configuration for WLAN APLLMCS -
+ // Selinpfreq, if the XTAL frequency
+ // is 26 MHz (Selected by Efuse)
+
+#define GPRCM_APLLMCS_WLAN_CONFIG1_26_APLLMCS_SELINPFREQ_26_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_WLAN_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_POSTDIV_OVERRIDE_CTRL \
+ 0x00080000
+
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_POSTDIV_OVERRIDE_M \
+ 0x00070000
+
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_POSTDIV_OVERRIDE_S 16
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_SPARE_M \
+ 0x00000700
+
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_SPARE_S 8
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_M_8_OVERRIDE_CTRL \
+ 0x00000020 // Override control for
+ // WLAN_APLLMCS_M[8]. When set to1,
+ // M[8] will be selected by bit [3].
+ // (Else controlled from WTOP)
+
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_M_8_OVERRIDE \
+ 0x00000010 // Override for WLAN_APLLMCS_M[8].
+ // Applicable only when bit [4] is
+ // set to 1. (Else controlled from
+ // WTOP)
+
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_N_7_8_OVERRIDE_CTRL \
+ 0x00000004 // Override control for
+ // WLAN_APLLMCS_N[8:7]. When set
+ // to1, N[8:7] will be selected by
+ // bits [2:1]. (Else controlled from
+ // WTOP)
+
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_N_7_8_OVERRIDE_M \
+ 0x00000003 // Override value for
+ // WLAN_APLLMCS_N[8:7] bits.
+ // Applicable only when bit [1] is
+ // set to 1. (Else controlled from
+ // WTOP)
+
+#define GPRCM_APLLMCS_WLAN_OVERRIDES_APLLMCS_WLAN_N_7_8_OVERRIDE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_MCU_RUN_CONFIG0_38P4 register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_POSTDIV_M \
+ 0x38000000
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_POSTDIV_S 27
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_SPARE_M \
+ 0x07000000
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_SPARE_S 24
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_RUN_N_38P4_M \
+ 0x007F0000 // Configuration for MCU-APLLMCS :
+ // N during RUN mode. Selected if
+ // the XTAL frequency is 38.4 MHz
+ // (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_RUN_N_38P4_S 16
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_RUN_M_38P4_M \
+ 0x0000FF00 // Configuration for MCU-APLLMCS :
+ // M during RUN mode. Selected if
+ // the XTAL frequency is 38.4 MHz
+ // (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_RUN_M_38P4_S 8
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_RUN_M_8_38P4 \
+ 0x00000010 // Configuration for MCU-APLLMCS :
+ // M[8] during RUN mode. Selected if
+ // the XTAL frequency is 38.4 MHz
+ // (From Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_RUN_N_7_8_38P4_M \
+ 0x00000003 // Configuration for MCU-APLLMCS :
+ // N[8:7] during RUN mode. Selected
+ // if the XTAL frequency is 38.4 MHz
+ // (From Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_38P4_APLLMCS_MCU_RUN_N_7_8_38P4_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_MCU_RUN_CONFIG1_38P4 register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG1_38P4_APLLMCS_MCU_RUN_HISPEED_38P4 \
+ 0x00000010 // Configuration for MCU-APLLMCS :
+ // HISPEED during RUN mode. Selected
+ // if the XTAL frequency is 38.4 MHz
+ // (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG1_38P4_APLLMCS_MCU_RUN_SEL96_38P4 \
+ 0x00000008 // Configuration for MCU-APLLMCS :
+ // SEL96 during RUN mode. Selected
+ // if the XTAL frequency is 38.4 MHz
+ // (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG1_38P4_APLLMCS_MCU_RUN_SELINPFREQ_38P4_M \
+ 0x00000007 // Configuration for MCU-APLLMCS :
+ // SELINPFREQ during RUN mode.
+ // Selected if the XTAL frequency is
+ // 38.4 MHz (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG1_38P4_APLLMCS_MCU_RUN_SELINPFREQ_38P4_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_MCU_RUN_CONFIG0_26 register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_26_APLLMCS_MCU_RUN_N_26_M \
+ 0x007F0000 // Configuration for MCU-APLLMCS :
+ // N during RUN mode. Selected if
+ // the XTAL frequency is 26 MHz
+ // (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_26_APLLMCS_MCU_RUN_N_26_S 16
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_26_APLLMCS_MCU_RUN_M_26_M \
+ 0x0000FF00 // Configuration for MCU-APLLMCS :
+ // M during RUN mode. Selected if
+ // the XTAL frequency is 26 MHz
+ // (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_26_APLLMCS_MCU_RUN_M_26_S 8
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_26_APLLMCS_MCU_RUN_M_8_26 \
+ 0x00000010 // Configuration for MCU-APLLMCS :
+ // M[8] during RUN mode. Selected if
+ // the XTAL frequency is 26 MHz
+ // (From Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_26_APLLMCS_MCU_RUN_N_7_8_26_M \
+ 0x00000003 // Configuration for MCU-APLLMCS :
+ // N[8:7] during RUN mode. Selected
+ // if the XTAL frequency is 26 MHz
+ // (From Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG0_26_APLLMCS_MCU_RUN_N_7_8_26_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_MCU_RUN_CONFIG1_26 register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG1_26_APLLMCS_MCU_RUN_HISPEED_26 \
+ 0x00000010 // Configuration for MCU-APLLMCS :
+ // HISPEED during RUN mode. Selected
+ // if the XTAL frequency is 26 MHz
+ // (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG1_26_APLLMCS_MCU_RUN_SEL96_26 \
+ 0x00000008 // Configuration for MCU-APLLMCS :
+ // SEL96 during RUN mode. Selected
+ // if the XTAL frequency is 26 MHz
+ // (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG1_26_APLLMCS_MCU_RUN_SELINPFREQ_26_M \
+ 0x00000007 // Configuration for MCU-APLLMCS :
+ // SELINPFREQ during RUN mode.
+ // Selected if the XTAL frequency is
+ // 26 MHz (from Efuse)
+
+#define GPRCM_APLLMCS_MCU_RUN_CONFIG1_26_APLLMCS_MCU_RUN_SELINPFREQ_26_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPRCM_O_SPARE_RW0 register.
+//
+//******************************************************************************
+//******************************************************************************
+//
+// The following are defines for the bit fields in the GPRCM_O_SPARE_RW1 register.
+//
+//******************************************************************************
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APLLMCS_MCU_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_APLLMCS_MCU_OVERRIDES_APLLMCS_MCU_LOCK \
+ 0x00000400 // 1 - APLLMCS_MCU is locked ; 0 -
+ // APLLMCS_MCU is not locked
+
+#define GPRCM_APLLMCS_MCU_OVERRIDES_APLLMCS_MCU_ENABLE_OVERRIDE \
+ 0x00000200 // Override for APLLMCS_MCU Enable.
+ // Applicable if bit [8] is set
+
+#define GPRCM_APLLMCS_MCU_OVERRIDES_APLLMCS_MCU_ENABLE_OVERRIDE_CTRL \
+ 0x00000100 // 1 - Enable for APLLMCS_MCU comes
+ // from bit [9]. 0 - Enable for
+ // APLLMCS_MCU comes from FSM.
+
+#define GPRCM_APLLMCS_MCU_OVERRIDES_SYSCLK_SRC_OVERRIDE_M \
+ 0x00000006 // Override for sysclk src
+ // (applicable only if bit [0] is
+ // set to 1. "00"- SLOW_CLK "01"-
+ // XTAL_CLK "10"- PLL_CLK
+
+#define GPRCM_APLLMCS_MCU_OVERRIDES_SYSCLK_SRC_OVERRIDE_S 1
+#define GPRCM_APLLMCS_MCU_OVERRIDES_SYSCLK_SRC_OVERRIDE_CTRL \
+ 0x00000001 // 1 - Sysclk src is selected from
+ // bits [2:1] of this register. 0 -
+ // Sysclk src is selected from FSM
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_SYSCLK_SWITCH_STATUS register.
+//
+//******************************************************************************
+#define GPRCM_SYSCLK_SWITCH_STATUS_SYSCLK_SWITCH_STATUS \
+ 0x00000001 // 1 - Sysclk switching is
+ // complete. 0 - Sysclk switching is
+ // in progress.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_LDO_CONTROLS register.
+//
+//******************************************************************************
+#define GPRCM_REF_LDO_CONTROLS_REF_LDO_ENABLE_OVERRIDE_CTRL \
+ 0x00010000 // 1 - Enable for REF_LDO comes
+ // from bit [0] of this register ; 0
+ // - Enable for REF_LDO comes from
+ // the FSM. Note : Final REF_LDO_EN
+ // reaches on the port
+ // TOP_PM_REG2[0] of gprcm.
+
+#define GPRCM_REF_LDO_CONTROLS_REF_SPARE_CONTROL_M \
+ 0x0000C000 // Spare bits for REF_CTRL_FSM.
+ // Reaches directly on port
+ // TOP_PM_REG2[15:14] of gprcm.
+
+#define GPRCM_REF_LDO_CONTROLS_REF_SPARE_CONTROL_S 14
+#define GPRCM_REF_LDO_CONTROLS_REF_TLOAD_ENABLE_M \
+ 0x00003800 // REF TLOAD Enable. Reaches
+ // directly on port
+ // TOP_PM_REG2[13:11] of gprcm.
+
+#define GPRCM_REF_LDO_CONTROLS_REF_TLOAD_ENABLE_S 11
+#define GPRCM_REF_LDO_CONTROLS_REF_LDO_TMUX_CONTROL_M \
+ 0x00000700 // REF_LDO Test-mux control.
+ // Reaches directly on port
+ // TOP_PM_REG2[10:8] of gprcm.
+
+#define GPRCM_REF_LDO_CONTROLS_REF_LDO_TMUX_CONTROL_S 8
+#define GPRCM_REF_LDO_CONTROLS_REF_BW_CONTROL_M \
+ 0x000000C0 // REF BW Control. Reaches directly
+ // on port TOP_PM_REG2[7:6] of
+ // gprcm.
+
+#define GPRCM_REF_LDO_CONTROLS_REF_BW_CONTROL_S 6
+#define GPRCM_REF_LDO_CONTROLS_REF_VTRIM_CONTROL_M \
+ 0x0000003C // REF VTRIM Control. Reaches
+ // directly on port TOP_PM_REG2[5:2]
+ // of gprcm.
+
+#define GPRCM_REF_LDO_CONTROLS_REF_VTRIM_CONTROL_S 2
+#define GPRCM_REF_LDO_CONTROLS_REF_LDO_BYPASS_ENABLE \
+ 0x00000002 // REF LDO Bypass Enable. Reaches
+ // directly on port TOP_PM_REG2[1]
+ // of gprcm.
+
+#define GPRCM_REF_LDO_CONTROLS_REF_LDO_ENABLE \
+ 0x00000001 // Override for REF_LDO Enable.
+ // Applicable only if bit [16] of
+ // this register is set. Note :
+ // Final REF_LDO_EN reaches on the
+ // port TOP_PM_REG2[0] of gprcm.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_RTRIM_CONTROL register.
+//
+//******************************************************************************
+#define GPRCM_REF_RTRIM_CONTROL_TOP_PM_REG0_5_4_M \
+ 0x18000000 // This is [5:4] bits of
+ // TOP_PM_REG0
+
+#define GPRCM_REF_RTRIM_CONTROL_TOP_PM_REG0_5_4_S 27
+#define GPRCM_REF_RTRIM_CONTROL_TOP_CLKM_REG0_15_5_M \
+ 0x07FF0000 // This is [15:5] bits of
+ // TOP_CLKM_REG0
+
+#define GPRCM_REF_RTRIM_CONTROL_TOP_CLKM_REG0_15_5_S 16
+#define GPRCM_REF_RTRIM_CONTROL_REF_CLKM_RTRIM_OVERRIDE_CTRL \
+ 0x00000100 // 1 - CLKM_RTRIM comes for
+ // bits[4:0] of this register. 0 -
+ // CLKM_RTRIM comes from Efuse
+ // (after efuse_done = 1).
+
+#define GPRCM_REF_RTRIM_CONTROL_REF_CLKM_RTRIM_M \
+ 0x0000001F // CLKM_TRIM Override. Applicable
+ // when efuse_done = 0 or bit[8] is
+ // set to 1.
+
+#define GPRCM_REF_RTRIM_CONTROL_REF_CLKM_RTRIM_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_SLICER_CONTROLS0 register.
+//
+//******************************************************************************
+#define GPRCM_REF_SLICER_CONTROLS0_CLK_EN_WLAN_LOWV_OVERRIDE_CTRL \
+ 0x00200000 // 1 - EN_DIG_BUF_TOP comes from
+ // bit [14] of this register. 0 -
+ // EN_DIG_BUF_TOP comes from the
+ // FSM. Note : Final EN_DIG_BUF_WLAN
+ // reaches on TOP_CLKM_REG1_IN[14]
+ // port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_CLK_EN_TOP_LOWV_OVERRIDE_CTRL \
+ 0x00100000 // 1 - EN_DIG_BUF_TOP comes from
+ // bit [15] of this register. 0 -
+ // EN_DIG_BUF_TOP comes from the
+ // FSM. Note : Final EN_DIG_BUF_TOP
+ // reaches on TOP_CLKM_REG1_IN[15]
+ // port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_XTAL_OVERRIDE_CTRL \
+ 0x00080000 // 1 - EN_XTAL comes from bit [3]
+ // of this register. 0 - EN_XTAL
+ // comes from FSM. Note : Final
+ // XTAL_EN reaches on
+ // TOP_CLKM_REG1_IN[3] of gprcm.
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_SLI_HV_OVERRIDE_CTRL \
+ 0x00040000 // 1 - Enable HV Slicer comes from
+ // bit [2] of this register. 0 -
+ // Enable HV Slicer comes from FSM.
+ // Note : Final HV_SLICER_EN reaches
+ // on port TOP_CLKM_REG1_IN[1] of
+ // gprcm.
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_SLI_LV_OVERRIDE_CTRL \
+ 0x00020000 // 1 - Enable LV Slicer comes from
+ // bit[1] of this register. 0 -
+ // Enable LV Slicer comes from FSM.
+ // Note : final LV_SLICER_EN reaches
+ // on port TOP_CLKM_REG1_IN[2] of
+ // gprcm.
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_SLI_HV_PDN_OVERRIDE_CTRL \
+ 0x00010000 // 1 - Enable HV Pull-down comes
+ // from bit[0] of this register. 0 -
+ // Enable HV Pull-down comes from
+ // FSM. Note : Final HV_PULL_DOWN
+ // reaches on port
+ // TOP_CLKM_REG1_IN[0] of gprcm.
+
+#define GPRCM_REF_SLICER_CONTROLS0_CLK_EN_TOP_LOWV \
+ 0x00008000 // Override for EN_DIG_BUF_TOP.
+ // Applicable if bit[20] is set to
+ // 1. Note : Final EN_DIG_BUF_TOP
+ // reaches on TOP_CLKM_REG1_IN[15]
+ // port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_CLK_EN_WLAN_LOWV \
+ 0x00004000 // Override for EN_DIG_BUF_WLAN.
+ // Applicable if bit[19] is set to
+ // 1. Note : Final EN_DIG_BUF_WLAN
+ // reaches on TOP_CLKM_REG1_IN[14]
+ // port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_CLKOUT_FLIP_EN \
+ 0x00002000 // CLKOUT Flip Enable. Reaches on
+ // bit[13] of TOP_CLKM_REG1_IN[13]
+ // port of gprcm.
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_DIV2_WLAN_CLK \
+ 0x00001000 // Enable divide2 in WLAN Clk-path.
+ // Reaches on TOP_CLKM_REG1_IN[12]
+ // port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_DIV3_WLAN_CLK \
+ 0x00000800 // Enable divide3 in WLAN Clk-path.
+ // Reaches on TOP_CLKM_REG1_IN[11]
+ // port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_DIV4_WLAN_CLK \
+ 0x00000400 // Enable divide4 in WLAN Clk-path.
+ // Reaches on TOP_CLKM_REG1_IN[10]
+ // port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_CM_TMUX_SEL_LOWV_M \
+ 0x000003C0 // CM Test-mux select. Reaches on
+ // TOP_CLMM_REG1_IN[9:6] port of
+ // gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_CM_TMUX_SEL_LOWV_S 6
+#define GPRCM_REF_SLICER_CONTROLS0_SLICER_SPARE0_M \
+ 0x00000030 // Slicer spare0 control. Reaches
+ // on TOP_CLKM_REG1_IN[5:4] port of
+ // gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_SLICER_SPARE0_S 4
+#define GPRCM_REF_SLICER_CONTROLS0_EN_XTAL \
+ 0x00000008 // Enable XTAL override. Reaches on
+ // TOP_CLKM_REG1_IN[3] port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_SLICER_HV \
+ 0x00000004 // Enable HV Slicer override.
+ // Reaches on TOP_CLKM_REG1_IN[1]
+ // port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_SLICER_LV \
+ 0x00000002 // Enable LV Slicer override.
+ // Reaches on TOP_CLKM_REG1_IN[2]
+ // port of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS0_EN_SLICER_HV_PDN \
+ 0x00000001 // Enable HV Pull-down override.
+ // Reaches on TOP_CLKM_REG1_IN[0]
+ // port of gprcm
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_SLICER_CONTROLS1 register.
+//
+//******************************************************************************
+#define GPRCM_REF_SLICER_CONTROLS1_SLICER_SPARE1_M \
+ 0x0000FC00 // Slicer spare1. Reaches on port
+ // TOP_CLKM_REG2_IN[15:10] of gprcm.
+
+#define GPRCM_REF_SLICER_CONTROLS1_SLICER_SPARE1_S 10
+#define GPRCM_REF_SLICER_CONTROLS1_XOSC_TRIM_M \
+ 0x000003F0 // XOSC Trim. Reaches on port
+ // TOP_CLKM_REG2_IN[9:4] of gprcm
+
+#define GPRCM_REF_SLICER_CONTROLS1_XOSC_TRIM_S 4
+#define GPRCM_REF_SLICER_CONTROLS1_SLICER_ITRIM_CHANGE_TOGGLE \
+ 0x00000008 // Slicer ITRIM Toggle. Reaches on
+ // port TOP_CLKM_REG2_IN[3] of
+ // gprcm.
+
+#define GPRCM_REF_SLICER_CONTROLS1_SLICER_LV_TRIM_M \
+ 0x00000007 // LV Slicer trim. Reaches on port
+ // TOP_CLKM_REG2_IN[2:0] of gprcm.
+
+#define GPRCM_REF_SLICER_CONTROLS1_SLICER_LV_TRIM_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_ANA_BGAP_CONTROLS0 register.
+//
+//******************************************************************************
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_reserved_M \
+ 0xFF800000
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_reserved_S 23
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_mag_trim_override_ctrl \
+ 0x00400000 // 1 - REF_MAG_TRIM comes from
+ // bit[4:0] of register
+ // REF_ANA_BGAP_CONTROLS1 [Addr :
+ // 0x0850]; 0 - REF_MAG_TRIM comes
+ // from efuse (After efc_done = 1).
+ // Note : Final REF_MAG_TRIM reaches
+ // on port TOP_PM_REG1[4:0] of gprcm
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_v2i_trim_override_ctrl \
+ 0x00200000 // 1 - REF_V2I_TRIM comes from
+ // bit[9:6] of this register ; 0 -
+ // REF_V2I_TRIM comes from efuse
+ // (After efc_done = 1). Note :
+ // Final REF_V2I_TRIM reaches on
+ // port TOP_PM_REG0[9:6] of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_temp_trim_override_ctrl \
+ 0x00100000 // 1 - REF_TEMP_TRIM comes from
+ // bit[15:10] of this register ; 0 -
+ // REF_TEMP_TRIM comes from efuse
+ // (After efc_done = 1). Note :
+ // Final REF_TEMP_TRIM reaches on
+ // port TOP_PM_REG0[15:10] of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_startup_en_override_ctrl \
+ 0x00080000 // 1 - REF_STARTUP_EN comes from
+ // bit [3] of this register ; 0 -
+ // REF_STARTUP_EN comes from FSM.
+ // Note : Final REF_STARTUP_EN
+ // reaches on port TOP_PM_REG0[3] of
+ // gprcm
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_v2i_en_override_ctrl \
+ 0x00040000 // 1 - REF_V2I_EN comes from bit
+ // [2] of this register ; 0 -
+ // REF_V2I_EN comes from FSM. Note :
+ // Final REF_V2I_EN reaches on port
+ // TOP_PM_REG0[2] of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_fc_en_override_ctrl \
+ 0x00020000 // 1 - REF_FC_EN comes from bit [1]
+ // of this register ; 0 - REF_FC_EN
+ // comes from FSM. Note : Final
+ // REF_FC_EN reaches on port
+ // TOP_PM_REG0[1] of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_bgap_en_override_ctrl \
+ 0x00010000 // 1 - REF_BGAP_EN comes from bit
+ // [0] of this register ; 0 -
+ // REF_BGAP_EN comes from FSM. Note
+ // : Final REF_BGAP_EN reaches on
+ // port TOP_PM_REG0[0] of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_temp_trim_M \
+ 0x0000FC00 // REF_TEMP_TRIM override.
+ // Applicable when bit [20] of this
+ // register set to 1. (or efc_done =
+ // 0) Note : Final REF_TEMP_TRIM
+ // reaches on port
+ // TOP_PM_REG0[15:10] of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_temp_trim_S 10
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_v2i_trim_M \
+ 0x000003C0 // REF_V2I_TRIM Override.
+ // Applicable when bit [21] of this
+ // register set to 1 . (of efc_done
+ // = 0) Note : Final REF_V2I_TRIM
+ // reaches on port TOP_PM_REG0[9:6]
+ // of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_v2i_trim_S 6
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_NU1_M \
+ 0x00000030
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_NU1_S 4
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_startup_en \
+ 0x00000008 // REF_STARTUP_EN override.
+ // Applicable when bit [19] of this
+ // register is set to 1. Note :
+ // Final REF_STARTUP_EN reaches on
+ // port TOP_PM_REG0[3] of gprcm
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_v2i_en \
+ 0x00000004 // REF_V2I_EN override. Applicable
+ // when bit [21] of this register is
+ // set to 1. Note : Final REF_V2I_EN
+ // reaches on port TOP_PM_REG0[2] of
+ // gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_fc_en \
+ 0x00000002 // REF_FC_EN override. Applicable
+ // when bit [17] of this register is
+ // set to 1. Note : Final REF_FC_EN
+ // reaches on port TOP_PM_REG0[1] of
+ // gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS0_mem_ref_bgap_en \
+ 0x00000001 // REF_BGAP_EN override. Applicable
+ // when bit [16] of this register
+ // set to 1. Note : Final
+ // REF_BGAP_EN reaches on port
+ // TOP_PM_REG0[0] of gprcm.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_ANA_BGAP_CONTROLS1 register.
+//
+//******************************************************************************
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_reserved_M \
+ 0xFFFF0000
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_reserved_S 16
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_mem_ref_bg_spare_M \
+ 0x0000C000 // REF_BGAP_SPARE. Reaches on port
+ // TOP_PM_REG1[15:14] of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_mem_ref_bg_spare_S 14
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_mem_ref_bgap_tmux_ctrl_M \
+ 0x00003E00 // REF_BGAP_TMUX_CTRL. Reaches on
+ // port TOP_PM_REG1[13:9] of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_mem_ref_bgap_tmux_ctrl_S 9
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_mem_ref_filt_trim_M \
+ 0x000001E0 // REF_FILT_TRIM. Reaches on port
+ // TOP_PM_REG1[8:5] of gprcm.
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_mem_ref_filt_trim_S 5
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_mem_ref_mag_trim_M \
+ 0x0000001F // REF_MAG_TRIM Override.
+ // Applicable when bit[22] of
+ // REF_ANA_BGAP_CONTROLS0 [0x084C]
+ // set to 1 (of efc_done = 0). Note
+ // : Final REF_MAG_TRIM reaches on
+ // port TOP_PM_REG1[4:0] of gprcm
+
+#define GPRCM_REF_ANA_BGAP_CONTROLS1_mem_ref_mag_trim_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_ANA_SPARE_CONTROLS0 register.
+//
+//******************************************************************************
+#define GPRCM_REF_ANA_SPARE_CONTROLS0_reserved_M \
+ 0xFFFF0000
+
+#define GPRCM_REF_ANA_SPARE_CONTROLS0_reserved_S 16
+#define GPRCM_REF_ANA_SPARE_CONTROLS0_mem_top_pm_reg3_M \
+ 0x0000FFFF // Spare control. Reaches on
+ // TOP_PM_REG3 [15:0] of gprcm.
+
+#define GPRCM_REF_ANA_SPARE_CONTROLS0_mem_top_pm_reg3_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_ANA_SPARE_CONTROLS1 register.
+//
+//******************************************************************************
+#define GPRCM_REF_ANA_SPARE_CONTROLS1_mem_top_clkm_reg3_M \
+ 0xFFFF0000 // Spare control. Reaches on
+ // TOP_CLKM_REG3 [15:0] of gprcm.
+
+#define GPRCM_REF_ANA_SPARE_CONTROLS1_mem_top_clkm_reg3_S 16
+#define GPRCM_REF_ANA_SPARE_CONTROLS1_mem_top_clkm_reg4_M \
+ 0x0000FFFF // Spare control. Reaches on
+ // TOP_CLKM_REG4 [15:0] of gprcm.
+
+#define GPRCM_REF_ANA_SPARE_CONTROLS1_mem_top_clkm_reg4_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEMSS_PSCON_OVERRIDES0 register.
+//
+//******************************************************************************
+#define GPRCM_MEMSS_PSCON_OVERRIDES0_mem_memss_pscon_mem_off_override_M \
+ 0xFFFF0000
+
+#define GPRCM_MEMSS_PSCON_OVERRIDES0_mem_memss_pscon_mem_off_override_S 16
+#define GPRCM_MEMSS_PSCON_OVERRIDES0_mem_memss_pscon_mem_retain_override_M \
+ 0x0000FFFF
+
+#define GPRCM_MEMSS_PSCON_OVERRIDES0_mem_memss_pscon_mem_retain_override_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEMSS_PSCON_OVERRIDES1 register.
+//
+//******************************************************************************
+#define GPRCM_MEMSS_PSCON_OVERRIDES1_reserved_M \
+ 0xFFFFFFC0
+
+#define GPRCM_MEMSS_PSCON_OVERRIDES1_reserved_S 6
+#define GPRCM_MEMSS_PSCON_OVERRIDES1_mem_memss_pscon_mem_update_override_ctrl \
+ 0x00000020
+
+#define GPRCM_MEMSS_PSCON_OVERRIDES1_mem_memss_pscon_mem_update_override \
+ 0x00000010
+
+#define GPRCM_MEMSS_PSCON_OVERRIDES1_mem_memss_pscon_sleep_override_ctrl \
+ 0x00000008
+
+#define GPRCM_MEMSS_PSCON_OVERRIDES1_mem_memss_pscon_sleep_override \
+ 0x00000004
+
+#define GPRCM_MEMSS_PSCON_OVERRIDES1_mem_memss_pscon_mem_off_override_ctrl \
+ 0x00000002
+
+#define GPRCM_MEMSS_PSCON_OVERRIDES1_mem_memms_pscon_mem_retain_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_PLL_REF_LOCK_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_PLL_REF_LOCK_OVERRIDES_reserved_M \
+ 0xFFFFFFF8
+
+#define GPRCM_PLL_REF_LOCK_OVERRIDES_reserved_S 3
+#define GPRCM_PLL_REF_LOCK_OVERRIDES_mem_mcu_apllmcs_lock_override \
+ 0x00000004
+
+#define GPRCM_PLL_REF_LOCK_OVERRIDES_mem_wlan_apllmcs_lock_override \
+ 0x00000002
+
+#define GPRCM_PLL_REF_LOCK_OVERRIDES_mem_ref_clk_valid_override \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MCU_PSCON_DEBUG register.
+//
+//******************************************************************************
+#define GPRCM_MCU_PSCON_DEBUG_reserved_M \
+ 0xFFFFFFC0
+
+#define GPRCM_MCU_PSCON_DEBUG_reserved_S 6
+#define GPRCM_MCU_PSCON_DEBUG_mcu_pscon_rtc_ps_M \
+ 0x00000038 // MCU_PSCON_RTC_ON = "0000";
+ // MCU_PSCON_RTC_OFF = "0001";
+ // MCU_PSCON_RTC_RET = "0010";
+ // MCU_PSCON_RTC_OFF_TO_ON = "0011";
+ // MCU_PSCON_RTC_RET_TO_ON = "0100";
+ // MCU_PSCON_RTC_ON_TO_RET = "0101";
+ // MCU_PSCON_RTC_ON_TO_OFF = "0110";
+ // MCU_PSCON_RTC_RET_TO_ON_WAIT_OPP
+ // = "0111";
+ // MCU_PSCON_RTC_OFF_TO_ON_WAIT_OPP
+ // = "1000";
+
+#define GPRCM_MCU_PSCON_DEBUG_mcu_pscon_rtc_ps_S 3
+#define GPRCM_MCU_PSCON_DEBUG_mcu_pscon_sys_ps_M \
+ 0x00000007
+
+#define GPRCM_MCU_PSCON_DEBUG_mcu_pscon_sys_ps_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEMSS_PWR_PS register.
+//
+//******************************************************************************
+#define GPRCM_MEMSS_PWR_PS_reserved_M \
+ 0xFFFFFFF8
+
+#define GPRCM_MEMSS_PWR_PS_reserved_S 3
+#define GPRCM_MEMSS_PWR_PS_pwr_ps_memss_M \
+ 0x00000007 // MEMSS_PM_SLEEP = "000";
+ // MEMSS_PM_WAIT_OPP = "010";
+ // MEMSS_PM_ACTIVE = "011";
+ // MEMSS_PM_SLEEP_TO_ACTIVE = "100";
+ // MEMSS_PM_ACTIVE_TO_SLEEP = "101";
+
+#define GPRCM_MEMSS_PWR_PS_pwr_ps_memss_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_REF_FSM_DEBUG register.
+//
+//******************************************************************************
+#define GPRCM_REF_FSM_DEBUG_reserved_M \
+ 0xFFFFFFC0
+
+#define GPRCM_REF_FSM_DEBUG_reserved_S 6
+#define GPRCM_REF_FSM_DEBUG_fref_mode_M \
+ 0x00000030 // 01 - HV Mode ; 10 - LV Mode ; 11
+ // - XTAL Mode
+
+#define GPRCM_REF_FSM_DEBUG_fref_mode_S 4
+#define GPRCM_REF_FSM_DEBUG_ref_fsm_ps_M \
+ 0x0000000F // constant FREF_CLK_OFF = "00000";
+ // constant FREF_EN_BGAP = "00001";
+ // constant FREF_EN_LDO = "00010";
+ // constant FREF_EN_SLI_HV =
+ // "00011"; constant
+ // FREF_EN_SLI_HV_PD = "00100";
+ // constant FREF_EN_DIG_BUF =
+ // "00101"; constant FREF_EN_OSC =
+ // "00110"; constant FREF_EN_SLI_LV
+ // = "00111"; constant
+ // FREF_EN_CLK_REQ = "01000";
+ // constant FREF_CLK_VALID =
+ // "01001"; constant FREF_MODE_DET0
+ // = "01010"; constant
+ // FREF_MODE_DET1 = "01011";
+ // constant FREF_MODE_DET2 =
+ // "10010"; constant FREF_MODE_DET3
+ // = "10011"; constant FREF_VALID =
+ // "01100"; constant FREF_VALID0 =
+ // "01101"; constant FREF_VALID1 =
+ // "01110"; constant FREF_VALID2 =
+ // "01111"; constant
+ // FREF_WAIT_EXT_TCXO0 = "10000";
+ // constant FREF_WAIT_EXT_TCXO1 =
+ // "10001";
+
+#define GPRCM_REF_FSM_DEBUG_ref_fsm_ps_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_SYS_OPP_REQ_OVERRIDE register.
+//
+//******************************************************************************
+#define GPRCM_MEM_SYS_OPP_REQ_OVERRIDE_reserved_M \
+ 0xFFFFFFE0
+
+#define GPRCM_MEM_SYS_OPP_REQ_OVERRIDE_reserved_S 5
+#define GPRCM_MEM_SYS_OPP_REQ_OVERRIDE_mem_sys_opp_req_override_ctrl \
+ 0x00000010 // 1 - Override the sytem-opp
+ // request to ANATOP using bit0 of
+ // this register
+
+#define GPRCM_MEM_SYS_OPP_REQ_OVERRIDE_mem_sys_opp_req_override_M \
+ 0x0000000F // "0001" - RUN ; "0010" - DSLP ;
+ // "0100" - LPDS ; Others - NA
+
+#define GPRCM_MEM_SYS_OPP_REQ_OVERRIDE_mem_sys_opp_req_override_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_TESTCTRL_PD_OPP_CONFIG register.
+//
+//******************************************************************************
+#define GPRCM_MEM_TESTCTRL_PD_OPP_CONFIG_reserved_M \
+ 0xFFFFFFFE
+
+#define GPRCM_MEM_TESTCTRL_PD_OPP_CONFIG_reserved_S 1
+#define GPRCM_MEM_TESTCTRL_PD_OPP_CONFIG_mem_sleep_opp_enter_with_testpd_on \
+ 0x00000001 // 1 - Enable sleep-opp (DSLP/LPDS)
+ // entry even if Test-Pd is kept ON
+ // ; 0 - Donot enable sleep-opp
+ // (DSLP/LPDS) entry with Test-Pd
+ // ON.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_WL_FAST_CLK_REQ_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_MEM_WL_FAST_CLK_REQ_OVERRIDES_reserved_M \
+ 0xFFFFFFF8
+
+#define GPRCM_MEM_WL_FAST_CLK_REQ_OVERRIDES_reserved_S 3
+#define GPRCM_MEM_WL_FAST_CLK_REQ_OVERRIDES_mem_wl_fast_clk_req_override_ctrl \
+ 0x00000004 // NA
+
+#define GPRCM_MEM_WL_FAST_CLK_REQ_OVERRIDES_mem_wl_fast_clk_req_override \
+ 0x00000002 // NA
+
+#define GPRCM_MEM_WL_FAST_CLK_REQ_OVERRIDES_mem_wl_sleep_with_clk_req_override \
+ 0x00000001 // NA
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_MCU_PD_MODE_REQ_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_MEM_MCU_PD_MODE_REQ_OVERRIDES_mem_mcu_pd_mode_req_override_ctrl \
+ 0x00000004 // 1 - Override the MCU-PD power
+ // modes using bits [1] & [0] ;
+
+#define GPRCM_MEM_MCU_PD_MODE_REQ_OVERRIDES_mem_mcu_pd_pwrdn_req_override \
+ 0x00000002 // 1 - Request for power-down of
+ // MCU-PD ;
+
+#define GPRCM_MEM_MCU_PD_MODE_REQ_OVERRIDES_mem_mcu_pd_ret_req_override \
+ 0x00000001 // 1 - Request for retention mode
+ // of MCU-PD.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_MCSPI_SRAM_OFF_REQ_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_MEM_MCSPI_SRAM_OFF_REQ_OVERRIDES_mem_mcspi_sram_off_req_override_ctrl \
+ 0x00000002 // 1- Override the MCSPI
+ // (Autonomous SPI) memory state
+ // using bit [0]
+
+#define GPRCM_MEM_MCSPI_SRAM_OFF_REQ_OVERRIDES_mem_mcspi_sram_off_req_override \
+ 0x00000001 // 1 - Request for power-down of
+ // Autonomous SPI 8k memory ; 0 -
+ // Donot request power-down of
+ // Autonomous SPI 8k Memory
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_WLAN_APLLMCS_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_MEM_WLAN_APLLMCS_OVERRIDES_wlan_apllmcs_lock \
+ 0x00000100
+
+#define GPRCM_MEM_WLAN_APLLMCS_OVERRIDES_mem_wlan_apllmcs_enable_override \
+ 0x00000002
+
+#define GPRCM_MEM_WLAN_APLLMCS_OVERRIDES_mem_wlan_apllmcs_enable_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_REF_FSM_CFG2 register.
+//
+//******************************************************************************
+#define GPRCM_MEM_REF_FSM_CFG2_MEM_FC_DEASSERT_DELAY_M \
+ 0x00380000 // Number of RTC clocks for keeping
+ // the FC_EN asserted high
+
+#define GPRCM_MEM_REF_FSM_CFG2_MEM_FC_DEASSERT_DELAY_S 19
+#define GPRCM_MEM_REF_FSM_CFG2_MEM_STARTUP_DEASSERT_DELAY_M \
+ 0x00070000 // Number of RTC clocks for keeping
+ // the STARTUP_EN asserted high
+
+#define GPRCM_MEM_REF_FSM_CFG2_MEM_STARTUP_DEASSERT_DELAY_S 16
+#define GPRCM_MEM_REF_FSM_CFG2_MEM_EXT_TCXO_SETTLING_TIME_M \
+ 0x0000FFFF // Number of RTC clocks for waiting
+ // for clock to settle.
+
+#define GPRCM_MEM_REF_FSM_CFG2_MEM_EXT_TCXO_SETTLING_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_TESTCTRL_POWER_CTRL register.
+//
+//******************************************************************************
+#define GPRCM_TESTCTRL_POWER_CTRL_TESTCTRL_PD_STATUS_M \
+ 0x00000006
+
+#define GPRCM_TESTCTRL_POWER_CTRL_TESTCTRL_PD_STATUS_S 1
+#define GPRCM_TESTCTRL_POWER_CTRL_TESTCTRL_PD_ENABLE \
+ 0x00000001 // 0 - Disable the TestCtrl-pd ; 1
+ // - Enable the TestCtrl-pd.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_SSDIO_POWER_CTRL register.
+//
+//******************************************************************************
+#define GPRCM_SSDIO_POWER_CTRL_SSDIO_PD_STATUS_M \
+ 0x00000006 // 1 - SSDIO-PD is ON ; 0 -
+ // SSDIO-PD is OFF
+
+#define GPRCM_SSDIO_POWER_CTRL_SSDIO_PD_STATUS_S 1
+#define GPRCM_SSDIO_POWER_CTRL_SSDIO_PD_ENABLE \
+ 0x00000001 // 0 - Disable the SSDIO-pd ; 1 -
+ // Enable the SSDIO-pd.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MCSPI_N1_POWER_CTRL register.
+//
+//******************************************************************************
+#define GPRCM_MCSPI_N1_POWER_CTRL_MCSPI_N1_PD_STATUS_M \
+ 0x00000006 // 1 - MCSPI_N1-PD is ON ; 0 -
+ // MCSPI_N1-PD if OFF
+
+#define GPRCM_MCSPI_N1_POWER_CTRL_MCSPI_N1_PD_STATUS_S 1
+#define GPRCM_MCSPI_N1_POWER_CTRL_MCSPI_N1_PD_ENABLE \
+ 0x00000001 // 0 - Disable the MCSPI_N1-pd ; 1
+ // - Enable the MCSPI_N1-pd.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WELP_POWER_CTRL register.
+//
+//******************************************************************************
+#define GPRCM_WELP_POWER_CTRL_WTOP_PD_STATUS_M \
+ 0x00001C00
+
+#define GPRCM_WELP_POWER_CTRL_WTOP_PD_STATUS_S 10
+#define GPRCM_WELP_POWER_CTRL_WTOP_PD_REQ_OVERRIDE \
+ 0x00000200
+
+#define GPRCM_WELP_POWER_CTRL_WTOP_PD_REQ_OVERRIDE_CTRL \
+ 0x00000100
+
+#define GPRCM_WELP_POWER_CTRL_WELP_PD_STATUS_M \
+ 0x00000006
+
+#define GPRCM_WELP_POWER_CTRL_WELP_PD_STATUS_S 1
+#define GPRCM_WELP_POWER_CTRL_WELP_PD_ENABLE \
+ 0x00000001 // 0 - Disable the WELP-pd ; 1 -
+ // Enable the WELP-pd.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WL_SDIO_POWER_CTRL register.
+//
+//******************************************************************************
+#define GPRCM_WL_SDIO_POWER_CTRL_WL_SDIO_PD_STATUS_M \
+ 0x00000006
+
+#define GPRCM_WL_SDIO_POWER_CTRL_WL_SDIO_PD_STATUS_S 1
+#define GPRCM_WL_SDIO_POWER_CTRL_WL_SDIO_PD_ENABLE \
+ 0x00000001 // 0 - Disable the WL_SDIO-pd ; 1 -
+ // Enable the WL_SDIO-pd.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WLAN_SRAM_ACTIVE_PWR_CFG register.
+//
+//******************************************************************************
+#define GPRCM_WLAN_SRAM_ACTIVE_PWR_CFG_WLAN_SRAM_ACTIVE_PWR_CFG_M \
+ 0x00FFFFFF // SRAM (WTOP+DRP) state during
+ // Active-mode : 1 - SRAMs are ON ;
+ // 0 - SRAMs are OFF. Cluster
+ // information : [0] - 1st column of
+ // MEMSS (Applicable only when owned
+ // by WTOP/PHY) [1] - 2nd column of
+ // MEMSS (Applicable only when owned
+ // by WTOP/PHY) ; [2] - 3rd column
+ // of MEMSS (Applicable only when
+ // owned by WTOP/PHY) ; [3] - 4th
+ // column of MEMSS (Applicable only
+ // when owned by WTOP/PHY) ; [4] -
+ // 5th column of MEMSS (Applicable
+ // only when owned by WTOP/PHY) ;
+ // [5] - 6th column of MEMSS
+ // (Applicable only when owned by
+ // WTOP/PHY) ; [6] - 7th column of
+ // MEMSS (Applicable only when owned
+ // by WTOP/PHY) ; [7] - 8th column
+ // of MEMSS (Applicable only when
+ // owned by WTOP/PHY) ; [8] - 9th
+ // column of MEMSS (Applicable only
+ // when owned by WTOP/PHY) ; [9] -
+ // 10th column of MEMSS (Applicable
+ // only when owned by WTOP/PHY) ;
+ // [10] - 11th column of MEMSS
+ // (Applicable only when owned by
+ // WTOP/PHY) ; [11] - 12th column of
+ // MEMSS (Applicable only when owned
+ // by WTOP/PHY) ; [12] - 13th column
+ // of MEMSS (Applicable only when
+ // owned by WTOP/PHY) ; [13] - 14th
+ // column of MEMSS (Applicable only
+ // when owned by WTOP/PHY) ; [14] -
+ // 15th column of MEMSS (Applicable
+ // only when owned by WTOP/PHY) ;
+ // [15] - 16th column of MEMSS
+ // (Applicable only when owned by
+ // WTOP/PHY) ; [23:16] - Internal to
+ // WTOP Cluster
+
+#define GPRCM_WLAN_SRAM_ACTIVE_PWR_CFG_WLAN_SRAM_ACTIVE_PWR_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WLAN_SRAM_SLEEP_PWR_CFG register.
+//
+//******************************************************************************
+#define GPRCM_WLAN_SRAM_SLEEP_PWR_CFG_WLAN_SRAM_SLEEP_PWR_CFG_M \
+ 0x00FFFFFF // SRAM (WTOP+DRP) state during
+ // Sleep-mode : 1 - SRAMs are RET ;
+ // 0 - SRAMs are OFF. Cluster
+ // information : [0] - 1st column of
+ // MEMSS (Applicable only when owned
+ // by WTOP/PHY) [1] - 2nd column of
+ // MEMSS (Applicable only when owned
+ // by WTOP/PHY) ; [2] - 3rd column
+ // of MEMSS (Applicable only when
+ // owned by WTOP/PHY) ; [3] - 4th
+ // column of MEMSS (Applicable only
+ // when owned by WTOP/PHY) ; [4] -
+ // 5th column of MEMSS (Applicable
+ // only when owned by WTOP/PHY) ;
+ // [5] - 6th column of MEMSS
+ // (Applicable only when owned by
+ // WTOP/PHY) ; [6] - 7th column of
+ // MEMSS (Applicable only when owned
+ // by WTOP/PHY) ; [7] - 8th column
+ // of MEMSS (Applicable only when
+ // owned by WTOP/PHY) ; [8] - 9th
+ // column of MEMSS (Applicable only
+ // when owned by WTOP/PHY) ; [9] -
+ // 10th column of MEMSS (Applicable
+ // only when owned by WTOP/PHY) ;
+ // [10] - 11th column of MEMSS
+ // (Applicable only when owned by
+ // WTOP/PHY) ; [11] - 12th column of
+ // MEMSS (Applicable only when owned
+ // by WTOP/PHY) ; [12] - 13th column
+ // of MEMSS (Applicable only when
+ // owned by WTOP/PHY) ; [13] - 14th
+ // column of MEMSS (Applicable only
+ // when owned by WTOP/PHY) ; [14] -
+ // 15th column of MEMSS (Applicable
+ // only when owned by WTOP/PHY) ;
+ // [15] - 16th column of MEMSS
+ // (Applicable only when owned by
+ // WTOP/PHY) ; [23:16] - Internal to
+ // WTOP Cluster
+
+#define GPRCM_WLAN_SRAM_SLEEP_PWR_CFG_WLAN_SRAM_SLEEP_PWR_CFG_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_SECURE_INIT_DONE register.
+//
+//******************************************************************************
+#define GPRCM_APPS_SECURE_INIT_DONE_SECURE_INIT_DONE_STATUS \
+ 0x00000002 // 1-Secure mode init is done ;
+ // 0-Secure mode init is not done
+
+#define GPRCM_APPS_SECURE_INIT_DONE_APPS_SECURE_INIT_DONE \
+ 0x00000001 // Must be programmed 1 in order to
+ // say that secure-mode device init
+ // is done
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_DEV_MODE_INIT_DONE register.
+//
+//******************************************************************************
+#define GPRCM_APPS_DEV_MODE_INIT_DONE_APPS_DEV_MODE_INIT_DONE \
+ 0x00000001 // 1 - Patch download and other
+ // initializations are done (before
+ // removing APPS resetn) for
+ // development mode (#3) . 0 -
+ // Development mode (#3) init is not
+ // done yet
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_EN_APPS_REBOOT register.
+//
+//******************************************************************************
+#define GPRCM_EN_APPS_REBOOT_EN_APPS_REBOOT \
+ 0x00000001 // 1 - When 1, disable the reboot
+ // of APPS after DevInit is
+ // completed. In this case, APPS
+ // will permanantly help in reset. 0
+ // - When 0, enable the reboot of
+ // APPS after DevInit is completed.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_APPS_PERIPH_PRESENT register.
+//
+//******************************************************************************
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_WLAN_GEM_PP \
+ 0x00010000 // 1 - Enable ; 0 - Disable
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_AES_PP \
+ 0x00008000
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_DES_PP \
+ 0x00004000
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_SHA_PP \
+ 0x00002000
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_CAMERA_PP \
+ 0x00001000
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_MMCHS_PP \
+ 0x00000800
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_MCASP_PP \
+ 0x00000400
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_MCSPI_A1_PP \
+ 0x00000200
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_MCSPI_A2_PP \
+ 0x00000100
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_UDMA_PP \
+ 0x00000080
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_WDOG_PP \
+ 0x00000040
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_UART_A0_PP \
+ 0x00000020
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_UART_A1_PP \
+ 0x00000010
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_GPT_A0_PP \
+ 0x00000008
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_GPT_A1_PP \
+ 0x00000004
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_GPT_A2_PP \
+ 0x00000002
+
+#define GPRCM_MEM_APPS_PERIPH_PRESENT_APPS_GPT_A3_PP \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_NWP_PERIPH_PRESENT register.
+//
+//******************************************************************************
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_ASYNC_BRIDGE_PP \
+ 0x00000200
+
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_MCSPI_N2_PP \
+ 0x00000100
+
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_GPT_N0_PP \
+ 0x00000080
+
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_GPT_N1_PP \
+ 0x00000040
+
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_WDOG_PP \
+ 0x00000020
+
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_UDMA_PP \
+ 0x00000010
+
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_UART_N0_PP \
+ 0x00000008
+
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_UART_N1_PP \
+ 0x00000004
+
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_SSDIO_PP \
+ 0x00000002
+
+#define GPRCM_MEM_NWP_PERIPH_PRESENT_NWP_MCSPI_N1_PP \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MEM_SHARED_PERIPH_PRESENT register.
+//
+//******************************************************************************
+
+#define GPRCM_MEM_SHARED_PERIPH_PRESENT_SHARED_MCSPI_PP \
+ 0x00000040
+
+#define GPRCM_MEM_SHARED_PERIPH_PRESENT_SHARED_I2C_PP \
+ 0x00000020
+
+#define GPRCM_MEM_SHARED_PERIPH_PRESENT_SHARED_GPIO_A_PP \
+ 0x00000010
+
+#define GPRCM_MEM_SHARED_PERIPH_PRESENT_SHARED_GPIO_B_PP \
+ 0x00000008
+
+#define GPRCM_MEM_SHARED_PERIPH_PRESENT_SHARED_GPIO_C_PP \
+ 0x00000004
+
+#define GPRCM_MEM_SHARED_PERIPH_PRESENT_SHARED_GPIO_D_PP \
+ 0x00000002
+
+#define GPRCM_MEM_SHARED_PERIPH_PRESENT_SHARED_GPIO_E_PP \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_PWR_STATE register.
+//
+//******************************************************************************
+#define GPRCM_NWP_PWR_STATE_NWP_PWR_STATE_PS_M \
+ 0x00000F00 // "0000"- PORZ :- NWP is yet to be
+ // enabled by APPS during powerup
+ // (from HIB/OFF) ; "0011"- ACTIVE
+ // :- NWP is enabled, clocks and
+ // resets to NWP-SubSystem are
+ // enabled ; "0010"- LPDS :- NWP is
+ // in LPDS-mode ; Clocks and reset
+ // to NWP-SubSystem are gated ;
+ // "0101"- WAIT_FOR_OPP :- NWP is in
+ // transition from LPDS to ACTIVE,
+ // where it is waiting for OPP to be
+ // stable ; "1000"-
+ // WAKE_TIMER_OPP_REQ :- NWP is in
+ // transition from LPDS, where the
+ // wakeup cause is LPDS_Wake timer
+ // OTHERS : NA
+
+#define GPRCM_NWP_PWR_STATE_NWP_PWR_STATE_PS_S 8
+#define GPRCM_NWP_PWR_STATE_NWP_RCM_PS_M \
+ 0x00000007 // "000" - NWP_RUN : NWP is in RUN
+ // state (default) - Applicable only
+ // when NWP_PWR_STATE_PS = ACTIVE ;
+ // "001" - NWP_SLP : NWP is in SLEEP
+ // state (default) - Applicable only
+ // when NWP_PWR_STATE_PS = ACTIVE ;
+ // "010" - NWP_DSLP : NWP is in
+ // Deep-Sleep state (default) -
+ // Applicable only when
+ // NWP_PWR_STATE_PS = ACTIVE ; "011"
+ // - WAIT_FOR_ACTIVE : NWP is in
+ // transition from Deep-sleep to
+ // Run, where it is waiting for OPP
+ // to be stable ; "100" -
+ // WAIT_FOR_DSLP_TIMER_WAKE_REQ :
+ // NWP is in transition from
+ // Deep-sleep to Run, where the
+ // wakeup cause is deep-sleep
+ // wake-timer
+
+#define GPRCM_NWP_PWR_STATE_NWP_RCM_PS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_PWR_STATE register.
+//
+//******************************************************************************
+#define GPRCM_APPS_PWR_STATE_APPS_PWR_STATE_PS_M \
+ 0x00000F00 // "0000"- PORZ :- APPS is waiting
+ // for PLL_clock during powerup
+ // (from HIB/OFF) ; "0011"- ACTIVE
+ // :- APPS is enabled, clocks and
+ // resets to APPS-SubSystem are
+ // enabled ; APPS might be either in
+ // Secure or Un-secure mode during
+ // this state. "1001" -
+ // SECURE_MODE_LPDS :- While in
+ // ACTIVE (Secure-mode), APPS had to
+ // program the DevInit_done bit at
+ // the end, after which it enters
+ // into this state, where the reset
+ // to APPS will be asserted. From
+ // this state APPS might either
+ // re-boot itself or enter into LPDS
+ // depending upon whether the device
+ // is 3200 or 3100. "0010"- LPDS :-
+ // APPS is in LPDS-mode ; Clocks and
+ // reset to APPS-SubSystem are gated
+ // ; "0101"- WAIT_FOR_OPP :- APPS is
+ // in transition from LPDS to
+ // ACTIVE, where it is waiting for
+ // OPP to be stable ; "1000" -
+ // WAKE_TIMER_OPP_REQ : APPS is in
+ // transition from LPDS, where the
+ // wakeup cause is LPDS_Wake timer ;
+ // "1010" - WAIT_FOR_PATCH_INIT :
+ // APPS enters into this state
+ // during development-mode #3 (SOP =
+ // 3), where it is waiting for patch
+ // download to complete and 0x4 hack
+ // is programmed. OTHERS : NA
+
+#define GPRCM_APPS_PWR_STATE_APPS_PWR_STATE_PS_S 8
+#define GPRCM_APPS_PWR_STATE_APPS_RCM_PS_M \
+ 0x00000007 // "000" - APPS_RUN : APPS is in
+ // RUN state (default) - Applicable
+ // only when APPS_PWR_STATE_PS =
+ // ACTIVE ; "001" - APPS_SLP : APPS
+ // is in SLEEP state (default) -
+ // Applicable only when
+ // APPS_PWR_STATE_PS = ACTIVE ;
+ // "010" - APPS_DSLP : APPS is in
+ // Deep-Sleep state (default) -
+ // Applicable only when
+ // APPS_PWR_STATE_PS = ACTIVE ;
+ // "011" - WAIT_FOR_ACTIVE : APPS is
+ // in transition from Deep-sleep to
+ // Run, where it is waiting for OPP
+ // to be stable ; "100" -
+ // WAIT_FOR_DSLP_TIMER_WAKE_REQ :
+ // APPS is in transition from
+ // Deep-sleep to Run, where the
+ // wakeup cause is deep-sleep
+ // wake-timer
+
+#define GPRCM_APPS_PWR_STATE_APPS_RCM_PS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MCU_PWR_STATE register.
+//
+//******************************************************************************
+#define GPRCM_MCU_PWR_STATE_MCU_OPP_PS_M \
+ 0x0000001F // TBD
+
+#define GPRCM_MCU_PWR_STATE_MCU_OPP_PS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WTOP_PM_PS register.
+//
+//******************************************************************************
+#define GPRCM_WTOP_PM_PS_WTOP_PM_PS_M \
+ 0x00000007 // "011" - WTOP_PM_ACTIVE (Default)
+ // :- WTOP_Pd is in ACTIVE mode;
+ // "100" - WTOP_PM_ACTIVE_TO_SLEEP
+ // :- WTOP_Pd is in transition from
+ // ACTIVE to SLEEP ; "000" -
+ // WTOP_PM_SLEEP : WTOP-Pd is in
+ // Sleep-state ; "100" -
+ // WTOP_PM_SLEEP_TO_ACTIVE : WTOP_Pd
+ // is in transition from SLEEP to
+ // ACTIVE ; "000" -
+ // WTOP_PM_WAIT_FOR_OPP : Wait for
+ // OPP to be stable ;
+
+#define GPRCM_WTOP_PM_PS_WTOP_PM_PS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WTOP_PD_RESETZ_OVERRIDE_REG register.
+//
+//******************************************************************************
+#define GPRCM_WTOP_PD_RESETZ_OVERRIDE_REG_WTOP_PD_RESETZ_OVERRIDE_CTRL \
+ 0x00000100 // Override control for WTOP PD
+ // Resetz. When set to 1,
+ // WTOP_Resetz will be controlled by
+ // bit [0]
+
+#define GPRCM_WTOP_PD_RESETZ_OVERRIDE_REG_WTOP_PD_RESETZ_OVERRIDE \
+ 0x00000001 // Override for WTOP PD Resetz.
+ // Applicable only when bit[8] is
+ // set to 1
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WELP_PD_RESETZ_OVERRIDE_REG register.
+//
+//******************************************************************************
+#define GPRCM_WELP_PD_RESETZ_OVERRIDE_REG_WELP_PD_RESETZ_OVERRIDE_CTRL \
+ 0x00000100 // Override control for WELP PD
+ // Resetz. When set to 1,
+ // WELP_Resetz will be controlled by
+ // bit [0]
+
+#define GPRCM_WELP_PD_RESETZ_OVERRIDE_REG_WELP_PD_RESETZ_OVERRIDE \
+ 0x00000001 // Override for WELP PD Resetz.
+ // Applicable only when bit[8] is
+ // set to 1
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WL_SDIO_PD_RESETZ_OVERRIDE_REG register.
+//
+//******************************************************************************
+#define GPRCM_WL_SDIO_PD_RESETZ_OVERRIDE_REG_WL_SDIO_PD_RESETZ_OVERRIDE_CTRL \
+ 0x00000100 // Override control for WL_SDIO
+ // Resetz. When set to 1,
+ // WL_SDIO_Resetz will be controlled
+ // by bit [0]
+
+#define GPRCM_WL_SDIO_PD_RESETZ_OVERRIDE_REG_WL_SDIO_PD_RESETZ_OVERRIDE \
+ 0x00000001 // Override for WL_SDIO Resetz.
+ // Applicable only when bit[8] is
+ // set to 1
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_SSDIO_PD_RESETZ_OVERRIDE_REG register.
+//
+//******************************************************************************
+#define GPRCM_SSDIO_PD_RESETZ_OVERRIDE_REG_SSDIO_PD_RESETZ_OVERRIDE_CTRL \
+ 0x00000100 // Override control for SSDIO
+ // Resetz. When set to 1,
+ // SSDIO_Resetz will be controlled
+ // by bit [0]
+
+#define GPRCM_SSDIO_PD_RESETZ_OVERRIDE_REG_SSDIO_PD_RESETZ_OVERRIDE \
+ 0x00000001 // Override for SSDIO Resetz.
+ // Applicable only when bit[8] is
+ // set to 1
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MCSPI_N1_PD_RESETZ_OVERRIDE_REG register.
+//
+//******************************************************************************
+#define GPRCM_MCSPI_N1_PD_RESETZ_OVERRIDE_REG_MCSPI_N1_PD_RESETZ_OVERRIDE_CTRL \
+ 0x00000100 // Override control for MCSPI_N1
+ // Resetz. When set to 1,
+ // MCSPI_N1_Resetz will be
+ // controlled by bit [0]
+
+#define GPRCM_MCSPI_N1_PD_RESETZ_OVERRIDE_REG_MCSPI_N1_PD_RESETZ_OVERRIDE \
+ 0x00000001 // Override for MCSPI_N1 Resetz.
+ // Applicable only when bit[8] is
+ // set to 1
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_TESTCTRL_PD_RESETZ_OVERRIDE_REG register.
+//
+//******************************************************************************
+#define GPRCM_TESTCTRL_PD_RESETZ_OVERRIDE_REG_TESTCTRL_PD_RESETZ_OVERRIDE_CTRL \
+ 0x00000100 // Override control for TESTCTRL-PD
+ // Resetz. When set to 1,
+ // TESTCTRL_Resetz will be
+ // controlled by bit [0]
+
+#define GPRCM_TESTCTRL_PD_RESETZ_OVERRIDE_REG_TESTCTRL_PD_RESETZ_OVERRIDE \
+ 0x00000001 // Override for TESTCTRL Resetz.
+ // Applicable only when bit[8] is
+ // set to 1
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MCU_PD_RESETZ_OVERRIDE_REG register.
+//
+//******************************************************************************
+#define GPRCM_MCU_PD_RESETZ_OVERRIDE_REG_MCU_PD_RESETZ_OVERRIDE_CTRL \
+ 0x00000100 // Override control for MCU-PD
+ // Resetz. When set to 1, MCU_Resetz
+ // will be controlled by bit [0]
+
+#define GPRCM_MCU_PD_RESETZ_OVERRIDE_REG_MCU_PD_RESETZ_OVERRIDE \
+ 0x00000001 // Override for MCU Resetz.
+ // Applicable only when bit[8] is
+ // set to 1
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG0 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG0_FUSEFARM_ROW_14_M \
+ 0xFFFFFFFF // This is ROW_14 [31:0] of
+ // FUSEFARM. [0:0] : XTAL_IS_26MHZ
+ // [5:1] : TOP_CLKM_RTRIM[4:0]
+ // [10:6] : ANA_BGAP_MAG_TRIM[4:0]
+ // [16:11] : ANA_BGAP_TEMP_TRIM[5:0]
+ // [20:17] : ANA_BGAP_V2I_TRIM[3:0]
+ // [25:22] : PROCESS INDICATOR
+ // [26:26] : Reserved [31:27] :
+ // FUSEROM Version
+
+#define GPRCM_GPRCM_EFUSE_READ_REG0_FUSEFARM_ROW_14_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG1 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG1_FUSEFARM_ROW_15_LSW_M \
+ 0x0000FFFF // This is ROW_15[15:0] of FUSEFARM
+ // 1. NWP Peripheral Present bits
+ // [15:8] NWP_GPT_N0_PP [15:15]
+ // NWP_GPT_N1_PP [14:14] NWP_WDOG_PP
+ // [13:13] NWP_UDMA_PP [12:12]
+ // NWP_UART_N0_PP [11:11]
+ // NWP_UART_N1_PP [10:10]
+ // NWP_SSDIO_PP [9:9]
+ // NWP_MCSPI_N1_PP [8:8] 2. Shared
+ // Peripheral Present bits [7:0]
+ // SHARED SPI PP [6:6]
+ // SHARED I2C PP [5:5] SHARED
+ // GPIO-A PP [4:4] SHARED GPIO-B PP
+ // [3:3] SHARED GPIO-C PP [2:2]
+ // SHARED GPIO-D PP [1:1] SHARED
+ // GPIO-E PP [0:0]
+
+#define GPRCM_GPRCM_EFUSE_READ_REG1_FUSEFARM_ROW_15_LSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG2 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG2_FUSEFARM_ROW_16_LSW_ROW_15_MSW_M \
+ 0xFFFFFFFF // This is ROW_16[15:0] &
+ // ROW_15[31:16] of FUSEFARM.
+ // [31:21] - Reserved [20:16] -
+ // CHIP_ID [15:15] - SSBD SOP
+ // Control [14:14] - SSBD TAP
+ // Control [13:2] - APPS Peripheral
+ // Present bits : APPS_CAMERA_PP
+ // [13:13] APPS_MMCHS_PP [12:12]
+ // APPS_MCASP_PP [11:11]
+ // APPS_MCSPI_A1_PP [10:10]
+ // APPS_MCSPI_A2_PP [9:9]
+ // APPS_UDMA_PP [8:8] APPS_WDOG_PP
+ // [7:7] APPS_UART_A0_PP [6:6]
+ // APPS_UART_A1_PP [5:5]
+ // APPS_GPT_A0_PP [4:4]
+ // APPS_GPT_A1_PP [3:3]
+ // APPS_GPT_A2_PP [2:2]
+ // APPS_GPT_A3_PP [1:1] [0:0] - NWP
+ // Peripheral present bits
+ // NWP_ACSPI_PP [0:0]
+
+#define GPRCM_GPRCM_EFUSE_READ_REG2_FUSEFARM_ROW_16_LSW_ROW_15_MSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG3 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG3_FUSEFARM_ROW_17_LSW_ROW_16_MSW_M \
+ 0xFFFFFFFF // This is ROW_17[15:0] &
+ // ROW_16[31:16] of FUSEFARM :
+ // [31:16] - TEST_TAP_KEY(15:0)
+ // [15:0] - Reserved
+
+#define GPRCM_GPRCM_EFUSE_READ_REG3_FUSEFARM_ROW_17_LSW_ROW_16_MSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WTOP_MEM_RET_CFG register.
+//
+//******************************************************************************
+#define GPRCM_WTOP_MEM_RET_CFG_WTOP_MEM_RET_CFG \
+ 0x00000001 // 1 - Soft-compile memories in
+ // WTOP can be turned-off during
+ // WTOP-sleep mode ; 0 -
+ // Soft-compile memories in WTOP
+ // must be kept on during WTOP-sleep
+ // mode.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_COEX_CLK_SWALLOW_CFG0 register.
+//
+//******************************************************************************
+#define GPRCM_COEX_CLK_SWALLOW_CFG0_Q_FACTOR_M \
+ 0x007FFFFF // TBD
+
+#define GPRCM_COEX_CLK_SWALLOW_CFG0_Q_FACTOR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_COEX_CLK_SWALLOW_CFG1 register.
+//
+//******************************************************************************
+#define GPRCM_COEX_CLK_SWALLOW_CFG1_P_FACTOR_M \
+ 0x000FFFFF // TBD
+
+#define GPRCM_COEX_CLK_SWALLOW_CFG1_P_FACTOR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_COEX_CLK_SWALLOW_CFG2 register.
+//
+//******************************************************************************
+#define GPRCM_COEX_CLK_SWALLOW_CFG2_CONSECUTIVE_SWALLOW_M \
+ 0x00000018
+
+#define GPRCM_COEX_CLK_SWALLOW_CFG2_CONSECUTIVE_SWALLOW_S 3
+#define GPRCM_COEX_CLK_SWALLOW_CFG2_PRBS_GAIN \
+ 0x00000004
+
+#define GPRCM_COEX_CLK_SWALLOW_CFG2_PRBS_ENABLE \
+ 0x00000002
+
+#define GPRCM_COEX_CLK_SWALLOW_CFG2_SWALLOW_ENABLE \
+ 0x00000001 // TBD
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_COEX_CLK_SWALLOW_ENABLE register.
+//
+//******************************************************************************
+#define GPRCM_COEX_CLK_SWALLOW_ENABLE_COEX_CLK_SWALLOW_ENABLE \
+ 0x00000001 // 1 - Enable switching of sysclk
+ // to Coex-clk path ; 0 - Disable
+ // switching of sysclk to Coex-clk
+ // path.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_DCDC_CLK_GEN_CONFIG register.
+//
+//******************************************************************************
+#define GPRCM_DCDC_CLK_GEN_CONFIG_DCDC_CLK_ENABLE \
+ 0x00000001 // 1 - Enable the clock for DCDC
+ // (PWM-mode) ; 0 - Disable the
+ // clock for DCDC (PWM-mode)
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG4 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG4_FUSEFARM_ROW_17_MSW_M \
+ 0x0000FFFF // This corresponds to
+ // ROW_17[31:16] of the FUSEFARM :
+ // [15:0] : TEST_TAP_KEY(31:16)
+
+#define GPRCM_GPRCM_EFUSE_READ_REG4_FUSEFARM_ROW_17_MSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG5 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG5_FUSEFARM_ROW_18_M \
+ 0xFFFFFFFF // Corresponds to ROW_18 of
+ // FUSEFARM. [29:0] -
+ // MEMSS_COLUMN_SEL_LSW ; [30:30] -
+ // WLAN GEM DISABLE ; [31:31] -
+ // SERIAL WIRE JTAG SELECT
+
+#define GPRCM_GPRCM_EFUSE_READ_REG5_FUSEFARM_ROW_18_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG6 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG6_FUSEFARM_ROW_19_LSW_M \
+ 0x0000FFFF // Corresponds to ROW_19[15:0] of
+ // FUSEFARM. [15:0] :
+ // MEMSS_COLUMN_SEL_MSW
+
+#define GPRCM_GPRCM_EFUSE_READ_REG6_FUSEFARM_ROW_19_LSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG7 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG7_FUSEFARM_ROW_20_LSW_ROW_19_MSW_M \
+ 0xFFFFFFFF // Corresponds to ROW_20[15:0] &
+ // ROW_19[31:16] of FUSEFARM.
+ // FLASH_REGION0
+
+#define GPRCM_GPRCM_EFUSE_READ_REG7_FUSEFARM_ROW_20_LSW_ROW_19_MSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG8 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG8_FUSEFARM_ROW_21_LSW_ROW_20_MSW_M \
+ 0xFFFFFFFF // Corresponds to ROW_21[15:0] &
+ // ROW_20[31:16] of FUSEFARM.
+ // FLASH_REGION1
+
+#define GPRCM_GPRCM_EFUSE_READ_REG8_FUSEFARM_ROW_21_LSW_ROW_20_MSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG9 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG9_FUSEFARM_ROW_22_LSW_ROW_21_MSW_M \
+ 0xFFFFFFFF // Corresponds to ROW_22[15:0] &
+ // ROW_21[31:16] of FUSEFARM.
+ // FLASH_REGION2
+
+#define GPRCM_GPRCM_EFUSE_READ_REG9_FUSEFARM_ROW_22_LSW_ROW_21_MSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG10 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG10_FUSEFARM_ROW_23_LSW_ROW_22_MSW_M \
+ 0xFFFFFFFF // Corresponds to ROW_23[15:0] &
+ // ROW_22[31:16] of FUSEFARM.
+ // FLASH_REGION3
+
+#define GPRCM_GPRCM_EFUSE_READ_REG10_FUSEFARM_ROW_23_LSW_ROW_22_MSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_EFUSE_READ_REG11 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_EFUSE_READ_REG11_FUSEFARM_ROW_24_LSW_ROW_23_MSW_M \
+ 0xFFFFFFFF // Corresponds to ROW_24[15:0] &
+ // ROW_23[31:16] of FUSEFARM.
+ // FLASH_DESCRIPTOR
+
+#define GPRCM_GPRCM_EFUSE_READ_REG11_FUSEFARM_ROW_24_LSW_ROW_23_MSW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_DIEID_READ_REG0 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_DIEID_READ_REG0_FUSEFARM_191_160_M \
+ 0xFFFFFFFF // Corresponds to bits [191:160] of
+ // the FUSEFARM. This is ROW_5 of
+ // FUSEFARM [191:160] : [31:0] :
+ // DIE_ID0 [31:0] : DEVX [11:0] DEVY
+ // [23:12] DEVWAF [29:24] DEV_SPARE
+ // [31:30]
+
+#define GPRCM_GPRCM_DIEID_READ_REG0_FUSEFARM_191_160_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_DIEID_READ_REG1 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_DIEID_READ_REG1_FUSEFARM_223_192_M \
+ 0xFFFFFFFF // Corresponds to bits [223:192] of
+ // the FUSEFARM. This is ROW_6 of
+ // FUSEFARM :- DEVLOT [23:0] DEVFAB
+ // [28:24] DEVFABBE [31:29]
+
+#define GPRCM_GPRCM_DIEID_READ_REG1_FUSEFARM_223_192_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_DIEID_READ_REG2 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_DIEID_READ_REG2_FUSEFARM_255_224_M \
+ 0xFFFFFFFF // Corresponds to bits [255:224] of
+ // the FUSEFARM. This is ROW_7 of
+ // FUSEFARM:- DEVDESREV[4:0]
+ // Memrepair[5:5] MakeDefined[16:6]
+ // CHECKSUM[30:17] Reserved :
+ // [31:31]
+
+#define GPRCM_GPRCM_DIEID_READ_REG2_FUSEFARM_255_224_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_DIEID_READ_REG3 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_DIEID_READ_REG3_FUSEFARM_287_256_M \
+ 0xFFFFFFFF // Corresponds to bits [287:256] of
+ // the FUSEFARM. This is ROW_8 of
+ // FUSEFARM :- DIEID0 - DEVREG
+ // [31:0]
+
+#define GPRCM_GPRCM_DIEID_READ_REG3_FUSEFARM_287_256_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_GPRCM_DIEID_READ_REG4 register.
+//
+//******************************************************************************
+#define GPRCM_GPRCM_DIEID_READ_REG4_FUSEFARM_319_288_M \
+ 0xFFFFFFFF // Corresponds to bits [319:288] of
+ // the FUSEFARM. This is ROW_9 of
+ // FUSEFARM :- [7:0] - VBATMON ;
+ // [13:8] - BUFF_OFFSET ; [15:15] -
+ // DFT_GXG ; [14:14] - DFT_GLX ;
+ // [19:16] - PHY ROM Version ;
+ // [23:20] - MAC ROM Version ;
+ // [27:24] - NWP ROM Version ;
+ // [31:28] - APPS ROM Version
+
+#define GPRCM_GPRCM_DIEID_READ_REG4_FUSEFARM_319_288_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_APPS_SS_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_APPS_SS_OVERRIDES_reserved_M \
+ 0xFFFFFC00
+
+#define GPRCM_APPS_SS_OVERRIDES_reserved_S 10
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_refclk_gating_override \
+ 0x00000200
+
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_refclk_gating_override_ctrl \
+ 0x00000100
+
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_pllclk_gating_override \
+ 0x00000080
+
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_pllclk_gating_override_ctrl \
+ 0x00000040
+
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_por_rstn_override \
+ 0x00000020
+
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_sysrstn_override \
+ 0x00000010
+
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_sysclk_gating_override \
+ 0x00000008
+
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_por_rstn_override_ctrl \
+ 0x00000004
+
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_sysrstn_override_ctrl \
+ 0x00000002
+
+#define GPRCM_APPS_SS_OVERRIDES_mem_apps_sysclk_gating_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_NWP_SS_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_NWP_SS_OVERRIDES_reserved_M \
+ 0xFFFFFC00
+
+#define GPRCM_NWP_SS_OVERRIDES_reserved_S 10
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_refclk_gating_override \
+ 0x00000200
+
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_refclk_gating_override_ctrl \
+ 0x00000100
+
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_pllclk_gating_override \
+ 0x00000080
+
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_pllclk_gating_override_ctrl \
+ 0x00000040
+
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_por_rstn_override \
+ 0x00000020
+
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_sysrstn_override \
+ 0x00000010
+
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_sysclk_gating_override \
+ 0x00000008
+
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_por_rstn_override_ctrl \
+ 0x00000004
+
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_sysrstn_override_ctrl \
+ 0x00000002
+
+#define GPRCM_NWP_SS_OVERRIDES_mem_nwp_sysclk_gating_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_SHARED_SS_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_SHARED_SS_OVERRIDES_reserved_M \
+ 0xFFFFFF00
+
+#define GPRCM_SHARED_SS_OVERRIDES_reserved_S 8
+#define GPRCM_SHARED_SS_OVERRIDES_mem_shared_pllclk_gating_override_ctrl \
+ 0x00000080
+
+#define GPRCM_SHARED_SS_OVERRIDES_mem_shared_pllclk_gating_override \
+ 0x00000040
+
+#define GPRCM_SHARED_SS_OVERRIDES_mem_shared_refclk_gating_override_ctrl \
+ 0x00000020
+
+#define GPRCM_SHARED_SS_OVERRIDES_mem_shared_refclk_gating_override \
+ 0x00000010
+
+#define GPRCM_SHARED_SS_OVERRIDES_mem_shared_rstn_override \
+ 0x00000008
+
+#define GPRCM_SHARED_SS_OVERRIDES_mem_shared_sysclk_gating_override \
+ 0x00000004
+
+#define GPRCM_SHARED_SS_OVERRIDES_mem_shared_rstn_override_ctrl \
+ 0x00000002
+
+#define GPRCM_SHARED_SS_OVERRIDES_mem_shared_sysclk_gating_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_IDMEM_CORE_RST_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_reserved_M \
+ 0xFFFFFF00
+
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_reserved_S 8
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_mem_idmem_core_sysrstn_override \
+ 0x00000080
+
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_mem_idmem_core_fmc_rstn_override \
+ 0x00000040
+
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_SPARE_RW1 \
+ 0x00000020
+
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_mem_idmem_core_piosc_gating_override \
+ 0x00000010
+
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_mem_idmem_core_sysrstn_override_ctrl \
+ 0x00000008
+
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_mem_idmem_core_fmc_rstn_override_ctrl \
+ 0x00000004
+
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_SPARE_RW0 \
+ 0x00000002
+
+#define GPRCM_IDMEM_CORE_RST_OVERRIDES_mem_idmem_core_piosc_gating_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_TOP_DIE_FSM_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_reserved_M \
+ 0xFFFFF000
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_reserved_S 12
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_pwr_switch_pgoodin_override_ctrl \
+ 0x00000800
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_pwr_switch_pgoodin_override \
+ 0x00000400
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_hclk_gating_override \
+ 0x00000200
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_piosc_gating_override \
+ 0x00000100
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_rstn_override \
+ 0x00000080
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_pwr_switch_ponin_override \
+ 0x00000040
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_flash_ready_override \
+ 0x00000020
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_hclk_gating_override_ctrl \
+ 0x00000010
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_piosc_gating_override_ctrl \
+ 0x00000008
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_rstn_override_ctrl \
+ 0x00000004
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_d2d_pwr_switch_ponin_override_ctrl \
+ 0x00000002
+
+#define GPRCM_TOP_DIE_FSM_OVERRIDES_mem_flash_ready_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MCU_PSCON_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_MCU_PSCON_OVERRIDES_reserved_M \
+ 0xFFF00000
+
+#define GPRCM_MCU_PSCON_OVERRIDES_reserved_S 20
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_mem_sleep_override_ctrl \
+ 0x00080000
+
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_mem_update_override_ctrl \
+ 0x00040000
+
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_mem_off_override_ctrl \
+ 0x00020000
+
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_mem_retain_override_ctrl \
+ 0x00010000
+
+#define GPRCM_MCU_PSCON_OVERRIDES_NU1_M \
+ 0x0000FC00
+
+#define GPRCM_MCU_PSCON_OVERRIDES_NU1_S 10
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_sleep_override \
+ 0x00000200
+
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_mem_update_override \
+ 0x00000100
+
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_mem_off_override_M \
+ 0x000000F0
+
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_mem_off_override_S 4
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_mem_retain_override_M \
+ 0x0000000F
+
+#define GPRCM_MCU_PSCON_OVERRIDES_mem_mcu_pscon_mem_retain_override_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WTOP_PSCON_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_WTOP_PSCON_OVERRIDES_reserved_M \
+ 0xFFC00000
+
+#define GPRCM_WTOP_PSCON_OVERRIDES_reserved_S 22
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_sleep_override_ctrl \
+ 0x00200000
+
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_mem_update_override_ctrl \
+ 0x00100000
+
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_mem_off_override_ctrl \
+ 0x00080000
+
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_mem_retain_override_ctrl \
+ 0x00040000
+
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_sleep_override \
+ 0x00020000
+
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_mem_update_override \
+ 0x00010000
+
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_mem_off_override_M \
+ 0x0000FF00
+
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_mem_off_override_S 8
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_mem_retain_override_M \
+ 0x000000FF
+
+#define GPRCM_WTOP_PSCON_OVERRIDES_mem_wtop_pscon_mem_retain_override_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WELP_PSCON_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_WELP_PSCON_OVERRIDES_reserved_M \
+ 0xFFFFFFFC
+
+#define GPRCM_WELP_PSCON_OVERRIDES_reserved_S 2
+#define GPRCM_WELP_PSCON_OVERRIDES_mem_welp_pscon_sleep_override_ctrl \
+ 0x00000002
+
+#define GPRCM_WELP_PSCON_OVERRIDES_mem_welp_pscon_sleep_override \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_WL_SDIO_PSCON_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_WL_SDIO_PSCON_OVERRIDES_reserved_M \
+ 0xFFFFFFFC
+
+#define GPRCM_WL_SDIO_PSCON_OVERRIDES_reserved_S 2
+#define GPRCM_WL_SDIO_PSCON_OVERRIDES_mem_wl_sdio_pscon_sleep_override_ctrl \
+ 0x00000002
+
+#define GPRCM_WL_SDIO_PSCON_OVERRIDES_mem_wl_sdio_pscon_sleep_override \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_MCSPI_PSCON_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_MCSPI_PSCON_OVERRIDES_reserved_M \
+ 0xFFFFFF00
+
+#define GPRCM_MCSPI_PSCON_OVERRIDES_reserved_S 8
+#define GPRCM_MCSPI_PSCON_OVERRIDES_mem_mcspi_pscon_mem_retain_override_ctrl \
+ 0x00000080
+
+#define GPRCM_MCSPI_PSCON_OVERRIDES_mem_mcspi_pscon_mem_off_override_ctrl \
+ 0x00000040
+
+#define GPRCM_MCSPI_PSCON_OVERRIDES_mem_mcspi_pscon_mem_retain_override \
+ 0x00000020
+
+#define GPRCM_MCSPI_PSCON_OVERRIDES_mem_mcspi_pscon_mem_off_override \
+ 0x00000010
+
+#define GPRCM_MCSPI_PSCON_OVERRIDES_mem_mcspi_pscon_mem_update_override_ctrl \
+ 0x00000008
+
+#define GPRCM_MCSPI_PSCON_OVERRIDES_mem_mcspi_pscon_mem_update_override \
+ 0x00000004
+
+#define GPRCM_MCSPI_PSCON_OVERRIDES_mem_mcspi_pscon_sleep_override_ctrl \
+ 0x00000002
+
+#define GPRCM_MCSPI_PSCON_OVERRIDES_mem_mcspi_pscon_sleep_override \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// GPRCM_O_SSDIO_PSCON_OVERRIDES register.
+//
+//******************************************************************************
+#define GPRCM_SSDIO_PSCON_OVERRIDES_reserved_M \
+ 0xFFFFFFFC
+
+#define GPRCM_SSDIO_PSCON_OVERRIDES_reserved_S 2
+#define GPRCM_SSDIO_PSCON_OVERRIDES_mem_ssdio_pscon_sleep_override_ctrl \
+ 0x00000002
+
+#define GPRCM_SSDIO_PSCON_OVERRIDES_mem_ssdio_pscon_sleep_override \
+ 0x00000001
+
+
+
+
+#endif // __HW_GPRCM_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_hib1p2.h b/ext/hal/ti/cc3220sdk/inc/hw_hib1p2.h
new file mode 100644
index 0000000..4b5e8db
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_hib1p2.h
@@ -0,0 +1,1748 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __HW_HIB1P2_H__
+#define __HW_HIB1P2_H__
+
+//*****************************************************************************
+//
+// The following are defines for the HIB1P2 register offsets.
+//
+//*****************************************************************************
+#define HIB1P2_O_SRAM_SKA_LDO_PARAMETERS0 \
+ 0x00000000
+
+#define HIB1P2_O_SRAM_SKA_LDO_PARAMETERS1 \
+ 0x00000004
+
+#define HIB1P2_O_DIG_DCDC_PARAMETERS0 \
+ 0x00000008
+
+#define HIB1P2_O_DIG_DCDC_PARAMETERS1 \
+ 0x0000000C
+
+#define HIB1P2_O_DIG_DCDC_PARAMETERS2 \
+ 0x00000010
+
+#define HIB1P2_O_DIG_DCDC_PARAMETERS3 \
+ 0x00000014
+
+#define HIB1P2_O_DIG_DCDC_PARAMETERS4 \
+ 0x00000018
+
+#define HIB1P2_O_DIG_DCDC_PARAMETERS5 \
+ 0x0000001C
+
+#define HIB1P2_O_DIG_DCDC_PARAMETERS6 \
+ 0x00000020
+
+#define HIB1P2_O_ANA_DCDC_PARAMETERS0 \
+ 0x00000024
+
+#define HIB1P2_O_ANA_DCDC_PARAMETERS1 \
+ 0x00000028
+
+#define HIB1P2_O_ANA_DCDC_PARAMETERS16 \
+ 0x00000064
+
+#define HIB1P2_O_ANA_DCDC_PARAMETERS17 \
+ 0x00000068
+
+#define HIB1P2_O_ANA_DCDC_PARAMETERS18 \
+ 0x0000006C
+
+#define HIB1P2_O_ANA_DCDC_PARAMETERS19 \
+ 0x00000070
+
+#define HIB1P2_O_FLASH_DCDC_PARAMETERS0 \
+ 0x00000074
+
+#define HIB1P2_O_FLASH_DCDC_PARAMETERS1 \
+ 0x00000078
+
+#define HIB1P2_O_FLASH_DCDC_PARAMETERS2 \
+ 0x0000007C
+
+#define HIB1P2_O_FLASH_DCDC_PARAMETERS3 \
+ 0x00000080
+
+#define HIB1P2_O_FLASH_DCDC_PARAMETERS4 \
+ 0x00000084
+
+#define HIB1P2_O_FLASH_DCDC_PARAMETERS5 \
+ 0x00000088
+
+#define HIB1P2_O_FLASH_DCDC_PARAMETERS6 \
+ 0x0000008C
+
+#define HIB1P2_O_PMBIST_PARAMETERS0 \
+ 0x00000094
+
+#define HIB1P2_O_PMBIST_PARAMETERS1 \
+ 0x00000098
+
+#define HIB1P2_O_PMBIST_PARAMETERS2 \
+ 0x0000009C
+
+#define HIB1P2_O_PMBIST_PARAMETERS3 \
+ 0x000000A0
+
+#define HIB1P2_O_FLASH_DCDC_PARAMETERS8 \
+ 0x000000A4
+
+#define HIB1P2_O_ANA_DCDC_PARAMETERS_OVERRIDE \
+ 0x000000A8
+
+#define HIB1P2_O_FLASH_DCDC_PARAMETERS_OVERRIDE \
+ 0x000000AC
+
+#define HIB1P2_O_DIG_DCDC_VTRIM_CFG \
+ 0x000000B0
+
+#define HIB1P2_O_DIG_DCDC_FSM_PARAMETERS \
+ 0x000000B4
+
+#define HIB1P2_O_ANA_DCDC_FSM_PARAMETERS \
+ 0x000000B8
+
+#define HIB1P2_O_SRAM_SKA_LDO_FSM_PARAMETERS \
+ 0x000000BC
+
+#define HIB1P2_O_BGAP_DUTY_CYCLING_EXIT_CFG \
+ 0x000000C0
+
+#define HIB1P2_O_CM_OSC_16M_CONFIG \
+ 0x000000C4
+
+#define HIB1P2_O_SOP_SENSE_VALUE \
+ 0x000000C8
+
+#define HIB1P2_O_HIB_RTC_TIMER_LSW_1P2 \
+ 0x000000CC
+
+#define HIB1P2_O_HIB_RTC_TIMER_MSW_1P2 \
+ 0x000000D0
+
+#define HIB1P2_O_HIB1P2_BGAP_TRIM_OVERRIDES \
+ 0x000000D4
+
+#define HIB1P2_O_HIB1P2_EFUSE_READ_REG0 \
+ 0x000000D8
+
+#define HIB1P2_O_HIB1P2_EFUSE_READ_REG1 \
+ 0x000000DC
+
+#define HIB1P2_O_HIB1P2_POR_TEST_CTRL \
+ 0x000000E0
+
+#define HIB1P2_O_HIB_TIMER_SYNC_CALIB_CFG0 \
+ 0x000000E4
+
+#define HIB1P2_O_HIB_TIMER_SYNC_CALIB_CFG1 \
+ 0x000000E8
+
+#define HIB1P2_O_HIB_TIMER_SYNC_CFG2 \
+ 0x000000EC
+
+#define HIB1P2_O_HIB_TIMER_SYNC_TSF_ADJ_VAL \
+ 0x000000F0
+
+#define HIB1P2_O_HIB_TIMER_RTC_GTS_TIMESTAMP_LSW \
+ 0x000000F4
+
+#define HIB1P2_O_HIB_TIMER_RTC_GTS_TIMESTAMP_MSW \
+ 0x000000F8
+
+#define HIB1P2_O_HIB_TIMER_RTC_WUP_TIMESTAMP_LSW \
+ 0x000000FC
+
+#define HIB1P2_O_HIB_TIMER_RTC_WUP_TIMESTAMP_MSW \
+ 0x00000100
+
+#define HIB1P2_O_HIB_TIMER_SYNC_WAKE_OFFSET_ERR \
+ 0x00000104
+
+#define HIB1P2_O_HIB_TIMER_SYNC_TSF_CURR_VAL_LSW \
+ 0x00000108
+
+#define HIB1P2_O_HIB_TIMER_SYNC_TSF_CURR_VAL_MSW \
+ 0x0000010C
+
+#define HIB1P2_O_CM_SPARE 0x00000110
+#define HIB1P2_O_PORPOL_SPARE 0x00000114
+#define HIB1P2_O_MEM_DIG_DCDC_CLK_CONFIG \
+ 0x00000118
+
+#define HIB1P2_O_MEM_ANA_DCDC_CLK_CONFIG \
+ 0x0000011C
+
+#define HIB1P2_O_MEM_FLASH_DCDC_CLK_CONFIG \
+ 0x00000120
+
+#define HIB1P2_O_MEM_PA_DCDC_CLK_CONFIG \
+ 0x00000124
+
+#define HIB1P2_O_MEM_SLDO_VNWA_OVERRIDE \
+ 0x00000128
+
+#define HIB1P2_O_MEM_BGAP_DUTY_CYCLING_ENABLE_OVERRIDE \
+ 0x0000012C
+
+#define HIB1P2_O_MEM_HIB_FSM_DEBUG \
+ 0x00000130
+
+#define HIB1P2_O_MEM_SLDO_VNWA_SW_CTRL \
+ 0x00000134
+
+#define HIB1P2_O_MEM_SLDO_WEAK_PROCESS \
+ 0x00000138
+
+#define HIB1P2_O_MEM_PA_DCDC_OV_UV_STATUS \
+ 0x0000013C
+
+#define HIB1P2_O_MEM_CM_TEST_MODE \
+ 0x00000140
+
+
+
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_SRAM_SKA_LDO_PARAMETERS0 register.
+//
+//******************************************************************************
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_en_sc_itrim_lowv_M \
+ 0xC0000000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_en_sc_itrim_lowv_S 30
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_en_iq_trim_lowv_M \
+ 0x30000000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_en_iq_trim_lowv_S 28
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_en_sc_prot_lowv \
+ 0x08000000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_en_lowv_override \
+ 0x04000000 // FSM Override value for SLDO_EN :
+ // Applicable only when bit [4] of
+ // this register is set to 1.
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_en_low_pwr_lowv \
+ 0x02000000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_int_cap_sel_lowv \
+ 0x01000000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_vtrim_lowv_M \
+ 0x00FC0000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_vtrim_lowv_S 18
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_spare_lowv_M \
+ 0x0003FF00
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_spare_lowv_S 8
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_skaldo_en_lowv_override \
+ 0x00000080 // FSM Override value for
+ // SKA_LDO_EN : Applicable only when
+ // bit [3] of this register is set
+ // to 1.
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_skaldo_en_cap_ref_lowv \
+ 0x00000040
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_skaldo_en_resdiv_ref_lowv \
+ 0x00000020
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_sldo_en_lowv_fsm_override_ctrl \
+ 0x00000010 // When 1, bit[26] of this register
+ // will be used as SLDO_EN
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_mem_skaldo_en_lowv_fsm_override_ctrl \
+ 0x00000008 // When 1, bit[26] of this register
+ // will be used as SKA_LDO_EN
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_NA1_M \
+ 0x00000007
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS0_NA1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_SRAM_SKA_LDO_PARAMETERS1 register.
+//
+//******************************************************************************
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_mem_skaldo_ctrl_lowv_M \
+ 0xFFC00000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_mem_skaldo_ctrl_lowv_S 22
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_mem_skaldo_vtrim_lowv_M \
+ 0x003F0000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_mem_skaldo_vtrim_lowv_S 16
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_mem_sldo_en_tload_lowv \
+ 0x00008000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_mem_skaldo_en_tload_lowv \
+ 0x00004000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_mem_skaldo_cap_sw_en_lowv \
+ 0x00002000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_mem_skaldo_en_hib_lowv \
+ 0x00001000
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_mem_skaldo_en_vref_buf_lowv \
+ 0x00000800
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_NA2_M \
+ 0x000007FF
+
+#define HIB1P2_SRAM_SKA_LDO_PARAMETERS1_NA2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_DIG_DCDC_PARAMETERS0 register.
+//
+//******************************************************************************
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_en_lowv_override \
+ 0x80000000 // Override value for DCDC_DIG_EN :
+ // Applicable only when bit [31] of
+ // DIG_DCDC_PARAMETERS1 [0x000C] is
+ // set to 1. Else from FSM
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_delayed_en_lowv \
+ 0x40000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_en_subreg_1p8v_lowv_override \
+ 0x20000000 // Override value for
+ // DCDC_DIG_EN_SUBREG_1P8V :
+ // Applicable only when bit [30] of
+ // DIG_DCDC_PARAMETERS1 [0x000C] is
+ // set to 1. Else from FSM
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_en_subreg_1p2v_lowv_override \
+ 0x10000000 // Override value for
+ // DCDC_DIG_EN_SUBREG_1P2V :
+ // Applicable only when bit [29] of
+ // DIG_DCDC_PARAMETERS1 [0x000C] is
+ // set to 1. Else from FSM
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_en_slp_mode_lowv_override \
+ 0x08000000 // Override value for
+ // DCDC_DIG_SLP_EN : Applicable only
+ // when bit [28] of
+ // DIG_DCDC_PARAMETERS1 [0x000C] is
+ // set to 1. Else from FSM
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_en_ldo_mode_lowv \
+ 0x04000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_en_nfet_rds_mode_lowv \
+ 0x02000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_en_pfet_rds_mode_lowv \
+ 0x01000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_ext_smps_override_mode_lowv \
+ 0x00800000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_clk_in_lowv_enable \
+ 0x00400000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_vtrim_lowv_override_M \
+ 0x003F0000 // Override value for
+ // DCDC_DIG_VTRIM : Applicable only
+ // when bit [27] of
+ // DIG_DCDC_PARAMETERS1 [0x000C] is
+ // set to 1.
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_vtrim_lowv_override_S 16
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_pfm_ripple_trim_lowv_M \
+ 0x0000C000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_pfm_ripple_trim_lowv_S 14
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_iq_ctrl_lowv_M \
+ 0x00003000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_iq_ctrl_lowv_S 12
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_en_cl_non_ov_lowv \
+ 0x00000800
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_non_ov_ctrl_lowv_M \
+ 0x00000780
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_non_ov_ctrl_lowv_S 7
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_slp_drv_dly_sel_lowv_M \
+ 0x00000078
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_mem_dcdc_dig_slp_drv_dly_sel_lowv_S 3
+#define HIB1P2_DIG_DCDC_PARAMETERS0_NA3_M \
+ 0x00000007
+
+#define HIB1P2_DIG_DCDC_PARAMETERS0_NA3_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_DIG_DCDC_PARAMETERS1 register.
+//
+//******************************************************************************
+#define HIB1P2_DIG_DCDC_PARAMETERS1_mem_dcdc_dig_en_lowv_fsm_override_ctrl \
+ 0x80000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS1_mem_dcdc_dig_en_subreg_1p8v_fsm_override_ctrl \
+ 0x40000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS1_mem_dcdc_dig_en_subreg_1p2v_fsm_override_ctrl \
+ 0x20000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS1_mem_dcdc_dig_en_slp_mode_lowv_fsm_override_ctrl \
+ 0x10000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS1_mem_dcdc_dig_vtrim_fsm_override_ctrl \
+ 0x08000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS1_mem_dcdc_dig_cot_mode_en_lowv_fsm_override_ctrl \
+ 0x04000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS1_mem_dcdc_dig_ilim_trim_lowv_efc_override_ctrl \
+ 0x02000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS1_NA4_M \
+ 0x01FFFFFF
+
+#define HIB1P2_DIG_DCDC_PARAMETERS1_NA4_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_DIG_DCDC_PARAMETERS2 register.
+//
+//******************************************************************************
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_pfet_sel_lowv_M \
+ 0xF0000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_pfet_sel_lowv_S 28
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_nfet_sel_lowv_M \
+ 0x0F000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_nfet_sel_lowv_S 24
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_pdrv_stagger_ctrl_lowv_M \
+ 0x00C00000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_pdrv_stagger_ctrl_lowv_S 22
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_ndrv_stagger_ctrl_lowv_M \
+ 0x00300000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_ndrv_stagger_ctrl_lowv_S 20
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_pdrv_str_sel_lowv_M \
+ 0x000F0000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_pdrv_str_sel_lowv_S 16
+#define HIB1P2_DIG_DCDC_PARAMETERS2_NA5 \
+ 0x00008000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_ndrv_str_sel_lowv_M \
+ 0x00007800
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_ndrv_str_sel_lowv_S 11
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_en_shootthru_ctrl_lowv \
+ 0x00000400
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_ton_trim_lowv_M \
+ 0x000003FC
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_ton_trim_lowv_S 2
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_swcap_res_hf_clk_lowv \
+ 0x00000002
+
+#define HIB1P2_DIG_DCDC_PARAMETERS2_mem_dcdc_dig_cot_mode_en_lowv_override \
+ 0x00000001 // Override value for
+ // DCDC_DIG_COT_EN : Applicable only
+ // when bit[26] of
+ // DIG_DCDC_PARAMETERS1 [0x000C] is
+ // set to 1.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_DIG_DCDC_PARAMETERS3 register.
+//
+//******************************************************************************
+#define HIB1P2_DIG_DCDC_PARAMETERS3_NA6 \
+ 0x80000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_cot_ctrl_lowv_M \
+ 0x7F800000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_cot_ctrl_lowv_S 23
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_en_ilim_lowv \
+ 0x00400000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_en_ilim_hib_lowv \
+ 0x00200000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_ilim_trim_lowv_override_M \
+ 0x001FE000 // Override value for
+ // DCDC_DIG_ILIM_TRIM : Applicable
+ // only when bit [25] of
+ // DIG_DCDC_PARAMETERS1 [0x000C] is
+ // set to 1
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_ilim_trim_lowv_override_S 13
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_ilim_mask_dly_sel_lowv_M \
+ 0x00001800
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_ilim_mask_dly_sel_lowv_S 11
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_en_ncomp_lowv \
+ 0x00000400
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_en_ncomp_hib_lowv \
+ 0x00000200
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_ncomp_trim_lowv_M \
+ 0x000001F0
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_ncomp_trim_lowv_S 4
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_ncomp_mask_dly_sel_lowv_M \
+ 0x0000000C
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_ncomp_mask_dly_sel_lowv_S 2
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_en_uv_prot_lowv \
+ 0x00000002
+
+#define HIB1P2_DIG_DCDC_PARAMETERS3_mem_dcdc_dig_en_ov_prot_lowv \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_DIG_DCDC_PARAMETERS4 register.
+//
+//******************************************************************************
+#define HIB1P2_DIG_DCDC_PARAMETERS4_dcdc_dig_uv_prot_out_lowv \
+ 0x80000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS4_dcdc_dig_ov_prot_out_lowv \
+ 0x40000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS4_mem_dcdc_dig_en_tmux_lowv \
+ 0x20000000
+
+#define HIB1P2_DIG_DCDC_PARAMETERS4_NA7_M \
+ 0x1FFFFFFF
+
+#define HIB1P2_DIG_DCDC_PARAMETERS4_NA7_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_DIG_DCDC_PARAMETERS5 register.
+//
+//******************************************************************************
+#define HIB1P2_DIG_DCDC_PARAMETERS5_mem_dcdc_dig_tmux_ctrl_lowv_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_DIG_DCDC_PARAMETERS5_mem_dcdc_dig_tmux_ctrl_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_DIG_DCDC_PARAMETERS6 register.
+//
+//******************************************************************************
+#define HIB1P2_DIG_DCDC_PARAMETERS6_mem_dcdc_dig_spare_lowv_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_DIG_DCDC_PARAMETERS6_mem_dcdc_dig_spare_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_ANA_DCDC_PARAMETERS0 register.
+//
+//******************************************************************************
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_en_lowv_override \
+ 0x80000000 // Override for ANA DCDC EN
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_delayed_en_lowv \
+ 0x40000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_en_subreg_1p8v_lowv \
+ 0x20000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_en_subreg_1p2v_lowv \
+ 0x10000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_en_pwm_mode_lowv_override \
+ 0x08000000 // Override for ANA DCDC PWM
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_en_slp_mode_lowv_override \
+ 0x04000000 // Override for ANA DCDC SLP
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_en_ldo_mode_lowv \
+ 0x02000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_en_pfet_rds_mode_lowv \
+ 0x01000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_en_nfet_rds_mode_lowv \
+ 0x00800000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_ext_smps_override_mode_lowv \
+ 0x00400000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_clk_in_lowv_enable \
+ 0x00200000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_vtrim_lowv_M \
+ 0x001E0000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_vtrim_lowv_S 17
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_pfm_ripple_trim_lowv_M \
+ 0x00018000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_pfm_ripple_trim_lowv_S 15
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_iq_ctrl_lowv_M \
+ 0x00006000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_iq_ctrl_lowv_S 13
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_en_cl_non_ov_lowv \
+ 0x00001000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_non_ov_ctrl_lowv_M \
+ 0x00000F00
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_non_ov_ctrl_lowv_S 8
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_slp_drv_dly_sel_lowv_M \
+ 0x000000F0
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_slp_drv_dly_sel_lowv_S 4
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_pfet_sel_lowv_M \
+ 0x0000000F
+
+#define HIB1P2_ANA_DCDC_PARAMETERS0_mem_dcdc_ana_pfet_sel_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_ANA_DCDC_PARAMETERS1 register.
+//
+//******************************************************************************
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_nfet_sel_lowv_M \
+ 0xF0000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_nfet_sel_lowv_S 28
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_pdrv_stagger_ctrl_lowv_M \
+ 0x0C000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_pdrv_stagger_ctrl_lowv_S 26
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_ndrv_stagger_ctrl_lowv_M \
+ 0x03000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_ndrv_stagger_ctrl_lowv_S 24
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_pdrv_str_sel_lowv_M \
+ 0x00F00000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_pdrv_str_sel_lowv_S 20
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_ndrv_str_sel_lowv_M \
+ 0x000F0000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_ndrv_str_sel_lowv_S 16
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_en_rtrim_lowv \
+ 0x00008000 // (Earlier SHOOTTHRU CTRL)
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_apwm_en_lowv \
+ 0x00004000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_ramp_hgt_lowv_M \
+ 0x00003E00
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_ramp_hgt_lowv_S 9
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_en_anti_glitch_lowv \
+ 0x00000100
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_en_hi_clamp_lowv \
+ 0x00000080
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_hi_clamp_trim_lowv_M \
+ 0x00000060
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_hi_clamp_trim_lowv_S 5
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_en_lo_clamp_lowv \
+ 0x00000010
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_lo_clamp_trim_lowv_M \
+ 0x0000000C
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_mem_dcdc_ana_lo_clamp_trim_lowv_S 2
+#define HIB1P2_ANA_DCDC_PARAMETERS1_NA8_M \
+ 0x00000003
+
+#define HIB1P2_ANA_DCDC_PARAMETERS1_NA8_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_ANA_DCDC_PARAMETERS16 register.
+//
+//******************************************************************************
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_en_ilim_lowv \
+ 0x00200000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_en_ilim_hib_lowv \
+ 0x00100000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_ilim_trim_lowv_override_M \
+ 0x000FF000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_ilim_trim_lowv_override_S 12
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_ilim_mask_dly_sel_lowv_M \
+ 0x00000C00
+
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_ilim_mask_dly_sel_lowv_S 10
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_en_ncomp_lowv \
+ 0x00000200
+
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_en_ncomp_hib_lowv \
+ 0x00000100
+
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_ncomp_trim_lowv_M \
+ 0x000000F8
+
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_ncomp_trim_lowv_S 3
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_ncomp_mask_dly_sel_lowv_M \
+ 0x00000006
+
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_ncomp_mask_dly_sel_lowv_S 1
+#define HIB1P2_ANA_DCDC_PARAMETERS16_mem_dcdc_ana_en_ov_prot_lowv \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_ANA_DCDC_PARAMETERS17 register.
+//
+//******************************************************************************
+#define HIB1P2_ANA_DCDC_PARAMETERS17_dcdc_ana_ov_prot_out_lowv \
+ 0x80000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS17_mem_dcdc_ana_en_tmux_lowv \
+ 0x40000000
+
+#define HIB1P2_ANA_DCDC_PARAMETERS17_NA17_M \
+ 0x3FFFFFFF
+
+#define HIB1P2_ANA_DCDC_PARAMETERS17_NA17_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_ANA_DCDC_PARAMETERS18 register.
+//
+//******************************************************************************
+#define HIB1P2_ANA_DCDC_PARAMETERS18_mem_dcdc_ana_tmux_ctrl_lowv_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_ANA_DCDC_PARAMETERS18_mem_dcdc_ana_tmux_ctrl_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_ANA_DCDC_PARAMETERS19 register.
+//
+//******************************************************************************
+#define HIB1P2_ANA_DCDC_PARAMETERS19_mem_dcdc_ana_spare_lowv_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_ANA_DCDC_PARAMETERS19_mem_dcdc_ana_spare_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_FLASH_DCDC_PARAMETERS0 register.
+//
+//******************************************************************************
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_lowv \
+ 0x80000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_delayed_en_lowv \
+ 0x40000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_clk_in_lowv_enable \
+ 0x20000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_iq_ctrl_lowv_M \
+ 0x18000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_iq_ctrl_lowv_S 27
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_buck_mode_lowv \
+ 0x04000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_boost_mode_lowv \
+ 0x02000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_buck_boost_mode_lowv \
+ 0x01000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_bb_alt_cycles_lowv \
+ 0x00800000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_cl_non_ov_lowv \
+ 0x00400000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_non_ov_ctrl_lowv_M \
+ 0x003C0000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_non_ov_ctrl_lowv_S 18
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_drv_lowv \
+ 0x00020000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_pwm_mode_lowv \
+ 0x00010000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_pfm_comp_lowv \
+ 0x00008000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_slp_mode_lowv \
+ 0x00004000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_n1fet_rds_mode_lowv \
+ 0x00002000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_n2fet_rds_mode_lowv \
+ 0x00001000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_p1fet_rds_mode_lowv \
+ 0x00000800
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_en_p2fet_rds_mode_lowv \
+ 0x00000400
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_ext_smps_mode_override_lowv \
+ 0x00000200
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_p1fet_sel_lowv_M \
+ 0x000001E0
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_p1fet_sel_lowv_S 5
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_n1fet_sel_lowv_M \
+ 0x0000001E
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_mem_dcdc_flash_n1fet_sel_lowv_S 1
+#define HIB1P2_FLASH_DCDC_PARAMETERS0_NA18 \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_FLASH_DCDC_PARAMETERS1 register.
+//
+//******************************************************************************
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p2fet_sel_lowv_M \
+ 0xF0000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p2fet_sel_lowv_S 28
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n2fet_sel_lowv_M \
+ 0x0F000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n2fet_sel_lowv_S 24
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p1drv_str_sel_lowv_M \
+ 0x00F00000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p1drv_str_sel_lowv_S 20
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n1drv_str_sel_lowv_M \
+ 0x000F0000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n1drv_str_sel_lowv_S 16
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p2drv_str_sel_lowv_M \
+ 0x0000F000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p2drv_str_sel_lowv_S 12
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n2drv_str_sel_lowv_M \
+ 0x00000F00
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n2drv_str_sel_lowv_S 8
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p1fet_non_ov_lowv_M \
+ 0x000000C0
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p1fet_non_ov_lowv_S 6
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n1fet_non_ov_lowv_M \
+ 0x00000030
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n1fet_non_ov_lowv_S 4
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p2fet_non_ov_lowv_M \
+ 0x0000000C
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_p2fet_non_ov_lowv_S 2
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n2fet_non_ov_lowv_M \
+ 0x00000003
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS1_mem_dcdc_flash_n2fet_non_ov_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_FLASH_DCDC_PARAMETERS2 register.
+//
+//******************************************************************************
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_p1fet_stagger_lowv_M \
+ 0xC0000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_p1fet_stagger_lowv_S 30
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_n1fet_stagger_lowv_M \
+ 0x30000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_n1fet_stagger_lowv_S 28
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_p2fet_stagger_lowv_M \
+ 0x0C000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_p2fet_stagger_lowv_S 26
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_n2fet_stagger_lowv_M \
+ 0x03000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_n2fet_stagger_lowv_S 24
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_shoot_thru_ctrl_lowv \
+ 0x00800000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_en_ncomp_lowv \
+ 0x00400000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_en_ncomp_hib_lowv \
+ 0x00200000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_ncomp_trim_lowv_M \
+ 0x001F0000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_ncomp_trim_lowv_S 16
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_ncomp_mask_dly_trim_lowv_M \
+ 0x0000F000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_ncomp_mask_dly_trim_lowv_S 12
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_en_ilim_lowv \
+ 0x00000800
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_en_ilim_hib_lowv \
+ 0x00000400
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_ilim_trim_lowv_override_M \
+ 0x000003FC
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_ilim_trim_lowv_override_S 2
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_ilim_mask_dly_sel_lowv_M \
+ 0x00000003
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS2_mem_dcdc_flash_ilim_mask_dly_sel_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_FLASH_DCDC_PARAMETERS3 register.
+//
+//******************************************************************************
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_en_anti_glitch_lowv \
+ 0x80000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_en_hi_clamp_lowv \
+ 0x40000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_en_lo_clamp_lowv \
+ 0x20000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_ramp_hgt_lowv_M \
+ 0x1F000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_ramp_hgt_lowv_S 24
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_vclamph_trim_lowv_M \
+ 0x00E00000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_vclamph_trim_lowv_S 21
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_vclampl_trim_lowv_M \
+ 0x001C0000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_vclampl_trim_lowv_S 18
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_vtrim_lowv_M \
+ 0x0003C000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_vtrim_lowv_S 14
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_pfm_ripple_trim_lowv_M \
+ 0x00003C00
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_pfm_ripple_trim_lowv_S 10
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_slp_drv_dly_sel_lowv_M \
+ 0x00000300
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_slp_drv_dly_sel_lowv_S 8
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_en_ov_prot_lowv \
+ 0x00000080
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_en_uv_prot_lowv \
+ 0x00000040
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_mem_dcdc_flash_en_tmux_lowv \
+ 0x00000020
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_NA19_M \
+ 0x0000001F
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS3_NA19_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_FLASH_DCDC_PARAMETERS4 register.
+//
+//******************************************************************************
+#define HIB1P2_FLASH_DCDC_PARAMETERS4_mem_dcdc_flash_tmux_ctrl_lowv_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS4_mem_dcdc_flash_tmux_ctrl_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_FLASH_DCDC_PARAMETERS5 register.
+//
+//******************************************************************************
+#define HIB1P2_FLASH_DCDC_PARAMETERS5_mem_dcdc_flash_spare_lowv_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS5_mem_dcdc_flash_spare_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_FLASH_DCDC_PARAMETERS6 register.
+//
+//******************************************************************************
+#define HIB1P2_FLASH_DCDC_PARAMETERS6_dcdc_flash_ov_prot_out_lowv \
+ 0x80000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS6_dcdc_flash_uv_prot_out_lowv \
+ 0x40000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS6_NA20_M \
+ 0x3FFFFFFF
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS6_NA20_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_PMBIST_PARAMETERS0 register.
+//
+//******************************************************************************
+#define HIB1P2_PMBIST_PARAMETERS0_mem_pm_bist_en_lowv \
+ 0x80000000
+
+#define HIB1P2_PMBIST_PARAMETERS0_mem_pm_bist_ctrl_lowv_M \
+ 0x7FFFF800
+
+#define HIB1P2_PMBIST_PARAMETERS0_mem_pm_bist_ctrl_lowv_S 11
+#define HIB1P2_PMBIST_PARAMETERS0_NA21_M \
+ 0x000007FF
+
+#define HIB1P2_PMBIST_PARAMETERS0_NA21_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_PMBIST_PARAMETERS1 register.
+//
+//******************************************************************************
+#define HIB1P2_PMBIST_PARAMETERS1_mem_pm_bist_spare_lowv_M \
+ 0xFFFF0000
+
+#define HIB1P2_PMBIST_PARAMETERS1_mem_pm_bist_spare_lowv_S 16
+#define HIB1P2_PMBIST_PARAMETERS1_mem_pmtest_en_lowv \
+ 0x00008000
+
+#define HIB1P2_PMBIST_PARAMETERS1_NA22_M \
+ 0x00007FFF
+
+#define HIB1P2_PMBIST_PARAMETERS1_NA22_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_PMBIST_PARAMETERS2 register.
+//
+//******************************************************************************
+#define HIB1P2_PMBIST_PARAMETERS2_mem_pmtest_tmux_ctrl_lowv_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_PMBIST_PARAMETERS2_mem_pmtest_tmux_ctrl_lowv_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_PMBIST_PARAMETERS3 register.
+//
+//******************************************************************************
+#define HIB1P2_PMBIST_PARAMETERS3_mem_pmtest_spare_lowv_M \
+ 0xFFFF0000
+
+#define HIB1P2_PMBIST_PARAMETERS3_mem_pmtest_spare_lowv_S 16
+#define HIB1P2_PMBIST_PARAMETERS3_mem_pmtest_load_trim_lowv_M \
+ 0x0000E000
+
+#define HIB1P2_PMBIST_PARAMETERS3_mem_pmtest_load_trim_lowv_S 13
+#define HIB1P2_PMBIST_PARAMETERS3_mem_rnwell_calib_en_lowv \
+ 0x00001000
+
+#define HIB1P2_PMBIST_PARAMETERS3_NA23_M \
+ 0x00000FFF
+
+#define HIB1P2_PMBIST_PARAMETERS3_NA23_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_FLASH_DCDC_PARAMETERS8 register.
+//
+//******************************************************************************
+#define HIB1P2_FLASH_DCDC_PARAMETERS8_mem_en_flash_sup_comp_lowv \
+ 0x80000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS8_mem_flash_high_sup_trim_lowv_M \
+ 0x7C000000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS8_mem_flash_high_sup_trim_lowv_S 26
+#define HIB1P2_FLASH_DCDC_PARAMETERS8_mem_flash_low_sup_trim_lowv_M \
+ 0x03E00000
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS8_mem_flash_low_sup_trim_lowv_S 21
+#define HIB1P2_FLASH_DCDC_PARAMETERS8_NA24_M \
+ 0x001FFFFF
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS8_NA24_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_ANA_DCDC_PARAMETERS_OVERRIDE register.
+//
+//******************************************************************************
+#define HIB1P2_ANA_DCDC_PARAMETERS_OVERRIDE_reserved_M \
+ 0xFFFFFFC0
+
+#define HIB1P2_ANA_DCDC_PARAMETERS_OVERRIDE_reserved_S 6
+#define HIB1P2_ANA_DCDC_PARAMETERS_OVERRIDE_mem_dcdc_ana_en_subreg_1p2v_lowv_override_ctrl \
+ 0x00000020
+
+#define HIB1P2_ANA_DCDC_PARAMETERS_OVERRIDE_mem_dcdc_ana_en_subreg_1p8v_lowv_override_ctrl \
+ 0x00000010
+
+#define HIB1P2_ANA_DCDC_PARAMETERS_OVERRIDE_mem_dcdc_ana_ilim_trim_lowv_efc_override_ctrl \
+ 0x00000008
+
+#define HIB1P2_ANA_DCDC_PARAMETERS_OVERRIDE_mem_dcdc_ana_en_slp_mode_lowv_fsm_override_ctrl \
+ 0x00000004
+
+#define HIB1P2_ANA_DCDC_PARAMETERS_OVERRIDE_mem_dcdc_ana_en_pwm_mode_lowv_fsm_override_ctrl \
+ 0x00000002
+
+#define HIB1P2_ANA_DCDC_PARAMETERS_OVERRIDE_mem_dcdc_ana_en_lowv_fsm_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_FLASH_DCDC_PARAMETERS_OVERRIDE register.
+//
+//******************************************************************************
+#define HIB1P2_FLASH_DCDC_PARAMETERS_OVERRIDE_reserved_M \
+ 0xFFFFFFFC
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS_OVERRIDE_reserved_S 2
+#define HIB1P2_FLASH_DCDC_PARAMETERS_OVERRIDE_mem_dcdc_flash_en_lowv_override_ctrl \
+ 0x00000002
+
+#define HIB1P2_FLASH_DCDC_PARAMETERS_OVERRIDE_mem_dcdc_flash_ilim_trim_lowv_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_DIG_DCDC_VTRIM_CFG register.
+//
+//******************************************************************************
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_reserved_M \
+ 0xFF000000
+
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_reserved_S 24
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_mem_dcdc_dig_run_vtrim_M \
+ 0x00FC0000
+
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_mem_dcdc_dig_run_vtrim_S 18
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_mem_dcdc_dig_dslp_vtrim_M \
+ 0x0003F000
+
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_mem_dcdc_dig_dslp_vtrim_S 12
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_mem_dcdc_dig_lpds_vtrim_M \
+ 0x00000FC0
+
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_mem_dcdc_dig_lpds_vtrim_S 6
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_Spare_RW_M \
+ 0x0000003F
+
+#define HIB1P2_DIG_DCDC_VTRIM_CFG_Spare_RW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_DIG_DCDC_FSM_PARAMETERS register.
+//
+//******************************************************************************
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_reserved_M \
+ 0xFFFF8000
+
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_reserved_S 15
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_enter_cot_to_vtrim_M \
+ 0x00007000
+
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_enter_cot_to_vtrim_S 12
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_enter_vtrim_to_sleep_M \
+ 0x00000E00
+
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_enter_vtrim_to_sleep_S 9
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_exit_sleep_to_vtrim_M \
+ 0x000001C0
+
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_exit_sleep_to_vtrim_S 6
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_exit_vtrim_to_cot_M \
+ 0x00000038
+
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_exit_vtrim_to_cot_S 3
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_exit_cot_to_run_M \
+ 0x00000007
+
+#define HIB1P2_DIG_DCDC_FSM_PARAMETERS_mem_dcdc_dig_dslp_exit_cot_to_run_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_ANA_DCDC_FSM_PARAMETERS register.
+//
+//******************************************************************************
+#define HIB1P2_ANA_DCDC_FSM_PARAMETERS_reserved_M \
+ 0xFFFFFFF8
+
+#define HIB1P2_ANA_DCDC_FSM_PARAMETERS_reserved_S 3
+#define HIB1P2_ANA_DCDC_FSM_PARAMETERS_mem_dcdc_ana_dslp_exit_sleep_to_run_M \
+ 0x00000007
+
+#define HIB1P2_ANA_DCDC_FSM_PARAMETERS_mem_dcdc_ana_dslp_exit_sleep_to_run_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_SRAM_SKA_LDO_FSM_PARAMETERS register.
+//
+//******************************************************************************
+#define HIB1P2_SRAM_SKA_LDO_FSM_PARAMETERS_reserved_M \
+ 0xFFFFFFC0
+
+#define HIB1P2_SRAM_SKA_LDO_FSM_PARAMETERS_reserved_S 6
+#define HIB1P2_SRAM_SKA_LDO_FSM_PARAMETERS_mem_ska_ldo_en_to_sram_ldo_dis_M \
+ 0x00000038
+
+#define HIB1P2_SRAM_SKA_LDO_FSM_PARAMETERS_mem_ska_ldo_en_to_sram_ldo_dis_S 3
+#define HIB1P2_SRAM_SKA_LDO_FSM_PARAMETERS_mem_sram_ldo_en_to_ska_ldo_dis_M \
+ 0x00000007
+
+#define HIB1P2_SRAM_SKA_LDO_FSM_PARAMETERS_mem_sram_ldo_en_to_ska_ldo_dis_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_BGAP_DUTY_CYCLING_EXIT_CFG register.
+//
+//******************************************************************************
+#define HIB1P2_BGAP_DUTY_CYCLING_EXIT_CFG_reserved_M \
+ 0xFFFFFFF8
+
+#define HIB1P2_BGAP_DUTY_CYCLING_EXIT_CFG_reserved_S 3
+#define HIB1P2_BGAP_DUTY_CYCLING_EXIT_CFG_mem_bgap_duty_cycling_exit_time_M \
+ 0x00000007
+
+#define HIB1P2_BGAP_DUTY_CYCLING_EXIT_CFG_mem_bgap_duty_cycling_exit_time_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_CM_OSC_16M_CONFIG register.
+//
+//******************************************************************************
+#define HIB1P2_CM_OSC_16M_CONFIG_reserved_M \
+ 0xFFFC0000
+
+#define HIB1P2_CM_OSC_16M_CONFIG_reserved_S 18
+#define HIB1P2_CM_OSC_16M_CONFIG_cm_clk_good_16m \
+ 0x00020000
+
+#define HIB1P2_CM_OSC_16M_CONFIG_mem_cm_en_osc_16m \
+ 0x00010000
+
+#define HIB1P2_CM_OSC_16M_CONFIG_mem_cm_osc_16m_trim_M \
+ 0x0000FC00
+
+#define HIB1P2_CM_OSC_16M_CONFIG_mem_cm_osc_16m_trim_S 10
+#define HIB1P2_CM_OSC_16M_CONFIG_mem_cm_osc_16m_spare_M \
+ 0x000003F0
+
+#define HIB1P2_CM_OSC_16M_CONFIG_mem_cm_osc_16m_spare_S 4
+#define HIB1P2_CM_OSC_16M_CONFIG_mem_cm_osc_en_sli_16m \
+ 0x00000008
+
+#define HIB1P2_CM_OSC_16M_CONFIG_mem_cm_sli_16m_trim_M \
+ 0x00000007
+
+#define HIB1P2_CM_OSC_16M_CONFIG_mem_cm_sli_16m_trim_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_SOP_SENSE_VALUE register.
+//
+//******************************************************************************
+#define HIB1P2_SOP_SENSE_VALUE_reserved_M \
+ 0xFFFFFF00
+
+#define HIB1P2_SOP_SENSE_VALUE_reserved_S 8
+#define HIB1P2_SOP_SENSE_VALUE_sop_sense_value_M \
+ 0x000000FF
+
+#define HIB1P2_SOP_SENSE_VALUE_sop_sense_value_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_RTC_TIMER_LSW_1P2 register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_RTC_TIMER_LSW_1P2_hib_rtc_timer_lsw_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_HIB_RTC_TIMER_LSW_1P2_hib_rtc_timer_lsw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_RTC_TIMER_MSW_1P2 register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_RTC_TIMER_MSW_1P2_hib_rtc_timer_msw_M \
+ 0x0000FFFF
+
+#define HIB1P2_HIB_RTC_TIMER_MSW_1P2_hib_rtc_timer_msw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB1P2_BGAP_TRIM_OVERRIDES register.
+//
+//******************************************************************************
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_reserved_M \
+ 0xFF800000
+
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_reserved_S 23
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_mem_bgap_mag_trim_override_ctrl \
+ 0x00400000
+
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_mem_bgap_mag_trim_override_M \
+ 0x003FC000
+
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_mem_bgap_mag_trim_override_S 14
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_mem_bgap_temp_trim_override_ctrl \
+ 0x00002000
+
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_mem_bgap_temp_trim_override_M \
+ 0x00001FC0
+
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_mem_bgap_temp_trim_override_S 6
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_mem_bgap_rtrim_override_ctrl \
+ 0x00000020
+
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_mem_bgap_rtrim_override_M \
+ 0x0000001F
+
+#define HIB1P2_HIB1P2_BGAP_TRIM_OVERRIDES_mem_bgap_rtrim_override_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB1P2_EFUSE_READ_REG0 register.
+//
+//******************************************************************************
+#define HIB1P2_HIB1P2_EFUSE_READ_REG0_FUSEFARM_ROW_12_M \
+ 0xFFFFFFFF // Corresponds to ROW_12 of
+ // FUSEFARM. [7:0] :
+ // DCDC_DIG_ILIM_TRIM_LOWV(7:0)
+ // [15:8] :
+ // DCDC_ANA_ILIM_TRIM_LOWV(7:0)
+ // [23:16] :
+ // DCDC_FLASH_ILIM_TRIM_LOWV(7:0)
+ // [24:24] : DTHE SHA DISABLE
+ // [25:25] : DTHE DES DISABLE
+ // [26:26] : DTHE AES DISABLE
+ // [31:27] : HD_BG_RTRIM (4:0)
+
+#define HIB1P2_HIB1P2_EFUSE_READ_REG0_FUSEFARM_ROW_12_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB1P2_EFUSE_READ_REG1 register.
+//
+//******************************************************************************
+#define HIB1P2_HIB1P2_EFUSE_READ_REG1_FUSEFARM_ROW_13_M \
+ 0xFFFFFFFF // Corresponds to ROW_13 of the
+ // FUSEFARM. [7:0] : HD_BG_MAG_TRIM
+ // (7:0) [14:8] : HD_BG_TEMP_TRIM
+ // (6:0) [15:15] : GREYOUT ENABLE
+ // DUTY CYCLING [31:16] :
+ // Reserved/Checksum
+
+#define HIB1P2_HIB1P2_EFUSE_READ_REG1_FUSEFARM_ROW_13_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB1P2_POR_TEST_CTRL register.
+//
+//******************************************************************************
+#define HIB1P2_HIB1P2_POR_TEST_CTRL_reserved_M \
+ 0xFFFFFF00
+
+#define HIB1P2_HIB1P2_POR_TEST_CTRL_reserved_S 8
+#define HIB1P2_HIB1P2_POR_TEST_CTRL_mem_prcm_por_test_ctrl_M \
+ 0x000000FF
+
+#define HIB1P2_HIB1P2_POR_TEST_CTRL_mem_prcm_por_test_ctrl_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_SYNC_CALIB_CFG0 register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG0_reserved_M \
+ 0xFFFF0000
+
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG0_reserved_S 16
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG0_mem_cfg_calib_time_M \
+ 0x0000FF00
+
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG0_mem_cfg_calib_time_S 8
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG0_NU1_M \
+ 0x000000FE
+
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG0_NU1_S 1
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG0_mem_cfg_calib_start \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_SYNC_CALIB_CFG1 register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG1_reserved_M \
+ 0xFFF00000
+
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG1_reserved_S 20
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG1_fast_calib_count_M \
+ 0x000FFFFF
+
+#define HIB1P2_HIB_TIMER_SYNC_CALIB_CFG1_fast_calib_count_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_SYNC_CFG2 register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_SYNC_CFG2_reserved_M \
+ 0xFFFFFE00
+
+#define HIB1P2_HIB_TIMER_SYNC_CFG2_reserved_S 9
+#define HIB1P2_HIB_TIMER_SYNC_CFG2_mem_cfg_hib_unload \
+ 0x00000100
+
+#define HIB1P2_HIB_TIMER_SYNC_CFG2_NU1_M \
+ 0x000000FC
+
+#define HIB1P2_HIB_TIMER_SYNC_CFG2_NU1_S 2
+#define HIB1P2_HIB_TIMER_SYNC_CFG2_mem_cfg_tsf_adj \
+ 0x00000002
+
+#define HIB1P2_HIB_TIMER_SYNC_CFG2_mem_cfg_update_tsf \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_SYNC_TSF_ADJ_VAL register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_SYNC_TSF_ADJ_VAL_mem_tsf_adj_val_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_HIB_TIMER_SYNC_TSF_ADJ_VAL_mem_tsf_adj_val_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_RTC_GTS_TIMESTAMP_LSW register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_RTC_GTS_TIMESTAMP_LSW_rtc_gts_timestamp_lsw_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_HIB_TIMER_RTC_GTS_TIMESTAMP_LSW_rtc_gts_timestamp_lsw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_RTC_GTS_TIMESTAMP_MSW register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_RTC_GTS_TIMESTAMP_MSW_reserved_M \
+ 0xFFFF0000
+
+#define HIB1P2_HIB_TIMER_RTC_GTS_TIMESTAMP_MSW_reserved_S 16
+#define HIB1P2_HIB_TIMER_RTC_GTS_TIMESTAMP_MSW_rtc_gts_timestamp_msw_M \
+ 0x0000FFFF
+
+#define HIB1P2_HIB_TIMER_RTC_GTS_TIMESTAMP_MSW_rtc_gts_timestamp_msw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_RTC_WUP_TIMESTAMP_LSW register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_RTC_WUP_TIMESTAMP_LSW_rtc_wup_timestamp_lsw_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_HIB_TIMER_RTC_WUP_TIMESTAMP_LSW_rtc_wup_timestamp_lsw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_RTC_WUP_TIMESTAMP_MSW register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_RTC_WUP_TIMESTAMP_MSW_reserved_M \
+ 0xFFFF0000
+
+#define HIB1P2_HIB_TIMER_RTC_WUP_TIMESTAMP_MSW_reserved_S 16
+#define HIB1P2_HIB_TIMER_RTC_WUP_TIMESTAMP_MSW_rtc_wup_timestamp_msw_M \
+ 0x0000FFFF
+
+#define HIB1P2_HIB_TIMER_RTC_WUP_TIMESTAMP_MSW_rtc_wup_timestamp_msw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_SYNC_WAKE_OFFSET_ERR register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_SYNC_WAKE_OFFSET_ERR_reserved_M \
+ 0xFFFFF000
+
+#define HIB1P2_HIB_TIMER_SYNC_WAKE_OFFSET_ERR_reserved_S 12
+#define HIB1P2_HIB_TIMER_SYNC_WAKE_OFFSET_ERR_wup_offset_error_M \
+ 0x00000FFF
+
+#define HIB1P2_HIB_TIMER_SYNC_WAKE_OFFSET_ERR_wup_offset_error_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_SYNC_TSF_CURR_VAL_LSW register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_SYNC_TSF_CURR_VAL_LSW_tsf_curr_val_lsw_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_HIB_TIMER_SYNC_TSF_CURR_VAL_LSW_tsf_curr_val_lsw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_HIB_TIMER_SYNC_TSF_CURR_VAL_MSW register.
+//
+//******************************************************************************
+#define HIB1P2_HIB_TIMER_SYNC_TSF_CURR_VAL_MSW_tsf_curr_val_msw_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_HIB_TIMER_SYNC_TSF_CURR_VAL_MSW_tsf_curr_val_msw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the HIB1P2_O_CM_SPARE register.
+//
+//******************************************************************************
+#define HIB1P2_CM_SPARE_CM_SPARE_OUT_M \
+ 0xFF000000
+
+#define HIB1P2_CM_SPARE_CM_SPARE_OUT_S 24
+#define HIB1P2_CM_SPARE_MEM_CM_TEST_CTRL_M \
+ 0x00FF0000
+
+#define HIB1P2_CM_SPARE_MEM_CM_TEST_CTRL_S 16
+#define HIB1P2_CM_SPARE_MEM_CM_SPARE_M \
+ 0x0000FFFF
+
+#define HIB1P2_CM_SPARE_MEM_CM_SPARE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_PORPOL_SPARE register.
+//
+//******************************************************************************
+#define HIB1P2_PORPOL_SPARE_MEM_PORPOL_SPARE_M \
+ 0xFFFFFFFF
+
+#define HIB1P2_PORPOL_SPARE_MEM_PORPOL_SPARE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_DIG_DCDC_CLK_CONFIG register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_DIG_DCDC_CLK_CONFIG_MEM_DIG_DCDC_CLK_ENABLE \
+ 0x00000100
+
+#define HIB1P2_MEM_DIG_DCDC_CLK_CONFIG_MEM_DIG_DCDC_CLK_PLLGEN_OFF_TIME_M \
+ 0x000000F0
+
+#define HIB1P2_MEM_DIG_DCDC_CLK_CONFIG_MEM_DIG_DCDC_CLK_PLLGEN_OFF_TIME_S 4
+#define HIB1P2_MEM_DIG_DCDC_CLK_CONFIG_MEM_DIG_DCDC_CLK_PLLGEN_ON_TIME_M \
+ 0x0000000F
+
+#define HIB1P2_MEM_DIG_DCDC_CLK_CONFIG_MEM_DIG_DCDC_CLK_PLLGEN_ON_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_ANA_DCDC_CLK_CONFIG register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_ANA_DCDC_CLK_CONFIG_MEM_ANA_DCDC_CLK_ENABLE \
+ 0x00000100
+
+#define HIB1P2_MEM_ANA_DCDC_CLK_CONFIG_MEM_ANA_DCDC_CLK_PLLGEN_OFF_TIME_M \
+ 0x000000F0
+
+#define HIB1P2_MEM_ANA_DCDC_CLK_CONFIG_MEM_ANA_DCDC_CLK_PLLGEN_OFF_TIME_S 4
+#define HIB1P2_MEM_ANA_DCDC_CLK_CONFIG_MEM_ANA_DCDC_CLK_PLLGEN_ON_TIME_M \
+ 0x0000000F
+
+#define HIB1P2_MEM_ANA_DCDC_CLK_CONFIG_MEM_ANA_DCDC_CLK_PLLGEN_ON_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_FLASH_DCDC_CLK_CONFIG register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_FLASH_DCDC_CLK_CONFIG_MEM_FLASH_DCDC_CLK_ENABLE \
+ 0x00000100
+
+#define HIB1P2_MEM_FLASH_DCDC_CLK_CONFIG_MEM_FLASH_DCDC_CLK_PLLGEN_OFF_TIME_M \
+ 0x000000F0
+
+#define HIB1P2_MEM_FLASH_DCDC_CLK_CONFIG_MEM_FLASH_DCDC_CLK_PLLGEN_OFF_TIME_S 4
+#define HIB1P2_MEM_FLASH_DCDC_CLK_CONFIG_MEM_FLASH_DCDC_CLK_PLLGEN_ON_TIME_M \
+ 0x0000000F
+
+#define HIB1P2_MEM_FLASH_DCDC_CLK_CONFIG_MEM_FLASH_DCDC_CLK_PLLGEN_ON_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_PA_DCDC_CLK_CONFIG register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_PA_DCDC_CLK_CONFIG_MEM_PA_DCDC_CLK_ENABLE \
+ 0x00000100
+
+#define HIB1P2_MEM_PA_DCDC_CLK_CONFIG_MEM_PA_DCDC_CLK_PLLGEN_OFF_TIME_M \
+ 0x000000F0
+
+#define HIB1P2_MEM_PA_DCDC_CLK_CONFIG_MEM_PA_DCDC_CLK_PLLGEN_OFF_TIME_S 4
+#define HIB1P2_MEM_PA_DCDC_CLK_CONFIG_MEM_PA_DCDC_CLK_PLLGEN_ON_TIME_M \
+ 0x0000000F
+
+#define HIB1P2_MEM_PA_DCDC_CLK_CONFIG_MEM_PA_DCDC_CLK_PLLGEN_ON_TIME_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_SLDO_VNWA_OVERRIDE register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_SLDO_VNWA_OVERRIDE_MEM_SLDO_EN_TOP_VNWA_OVERRIDE_CTRL \
+ 0x00000002
+
+#define HIB1P2_MEM_SLDO_VNWA_OVERRIDE_MEM_SLDO_EN_TOP_VNWA_OVERRIDE \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_BGAP_DUTY_CYCLING_ENABLE_OVERRIDE register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_BGAP_DUTY_CYCLING_ENABLE_OVERRIDE_MEM_BGAP_DUTY_CYCLING_OVERRIDE_CTRL \
+ 0x00000002
+
+#define HIB1P2_MEM_BGAP_DUTY_CYCLING_ENABLE_OVERRIDE_MEM_BGAP_DUTY_CYCLING_OVERRIDE \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_HIB_FSM_DEBUG register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_HIB_FSM_DEBUG_SRAM_PS_M \
+ 0x00000700
+
+#define HIB1P2_MEM_HIB_FSM_DEBUG_SRAM_PS_S 8
+#define HIB1P2_MEM_HIB_FSM_DEBUG_ANA_DCDC_PS_M \
+ 0x000000F0
+
+#define HIB1P2_MEM_HIB_FSM_DEBUG_ANA_DCDC_PS_S 4
+#define HIB1P2_MEM_HIB_FSM_DEBUG_DIG_DCDC_PS_M \
+ 0x0000000F
+
+#define HIB1P2_MEM_HIB_FSM_DEBUG_DIG_DCDC_PS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_SLDO_VNWA_SW_CTRL register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_SLDO_VNWA_SW_CTRL_MEM_SLDO_VNWA_SW_CTRL_M \
+ 0x000FFFFF
+
+#define HIB1P2_MEM_SLDO_VNWA_SW_CTRL_MEM_SLDO_VNWA_SW_CTRL_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_SLDO_WEAK_PROCESS register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_SLDO_WEAK_PROCESS_MEM_SLDO_WEAK_PROCESS \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_PA_DCDC_OV_UV_STATUS register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_PA_DCDC_OV_UV_STATUS_dcdc_pa_ov_prot_out_lowv \
+ 0x00000002
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB1P2_O_MEM_CM_TEST_MODE register.
+//
+//******************************************************************************
+#define HIB1P2_MEM_CM_TEST_MODE_mem_cm_test_mode \
+ 0x00000001
+
+
+
+
+#endif // __HW_HIB1P2_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_hib3p3.h b/ext/hal/ti/cc3220sdk/inc/hw_hib3p3.h
new file mode 100644
index 0000000..42cde5b
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_hib3p3.h
@@ -0,0 +1,1136 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __HW_HIB3P3_H__
+#define __HW_HIB3P3_H__
+
+//*****************************************************************************
+//
+// The following are defines for the HIB3P3 register offsets.
+//
+//*****************************************************************************
+#define HIB3P3_O_MEM_HIB_REQ 0x00000000
+#define HIB3P3_O_MEM_HIB_RTC_TIMER_ENABLE \
+ 0x00000004
+
+#define HIB3P3_O_MEM_HIB_RTC_TIMER_RESET \
+ 0x00000008
+
+#define HIB3P3_O_MEM_HIB_RTC_TIMER_READ \
+ 0x0000000C
+
+#define HIB3P3_O_MEM_HIB_RTC_TIMER_LSW \
+ 0x00000010
+
+#define HIB3P3_O_MEM_HIB_RTC_TIMER_MSW \
+ 0x00000014
+
+#define HIB3P3_O_MEM_HIB_RTC_WAKE_EN \
+ 0x00000018
+
+#define HIB3P3_O_MEM_HIB_RTC_WAKE_LSW_CONF \
+ 0x0000001C
+
+#define HIB3P3_O_MEM_HIB_RTC_WAKE_MSW_CONF \
+ 0x00000020
+
+#define HIB3P3_O_MEM_INT_OSC_CONF \
+ 0x0000002C
+
+#define HIB3P3_O_MEM_XTAL_OSC_CONF \
+ 0x00000034
+
+#define HIB3P3_O_MEM_BGAP_PARAMETERS0 \
+ 0x00000038
+
+#define HIB3P3_O_MEM_BGAP_PARAMETERS1 \
+ 0x0000003C
+
+#define HIB3P3_O_MEM_HIB_DETECTION_STATUS \
+ 0x00000040
+
+#define HIB3P3_O_MEM_HIB_MISC_CONTROLS \
+ 0x00000044
+
+#define HIB3P3_O_MEM_HIB_CONFIG 0x00000050
+#define HIB3P3_O_MEM_HIB_RTC_IRQ_ENABLE \
+ 0x00000054
+
+#define HIB3P3_O_MEM_HIB_RTC_IRQ_LSW_CONF \
+ 0x00000058
+
+#define HIB3P3_O_MEM_HIB_RTC_IRQ_MSW_CONF \
+ 0x0000005C
+
+#define HIB3P3_O_MEM_HIB_UART_CONF \
+ 0x00000400
+
+#define HIB3P3_O_MEM_GPIO_WAKE_EN \
+ 0x00000404
+
+#define HIB3P3_O_MEM_GPIO_WAKE_CONF \
+ 0x00000408
+
+#define HIB3P3_O_MEM_PAD_OEN_RET33_CONF \
+ 0x0000040C
+
+#define HIB3P3_O_MEM_UART_RTS_OEN_RET33_CONF \
+ 0x00000410
+
+#define HIB3P3_O_MEM_JTAG_CONF 0x00000414
+#define HIB3P3_O_MEM_HIB_REG0 0x00000418
+#define HIB3P3_O_MEM_HIB_REG1 0x0000041C
+#define HIB3P3_O_MEM_HIB_REG2 0x00000420
+#define HIB3P3_O_MEM_HIB_REG3 0x00000424
+#define HIB3P3_O_MEM_HIB_SEQUENCER_CFG0 \
+ 0x0000045C
+
+#define HIB3P3_O_MEM_HIB_SEQUENCER_CFG1 \
+ 0x00000460
+
+#define HIB3P3_O_MEM_HIB_MISC_CONFIG \
+ 0x00000464
+
+#define HIB3P3_O_MEM_HIB_WAKE_STATUS \
+ 0x00000468
+
+#define HIB3P3_O_MEM_HIB_LPDS_GPIO_SEL \
+ 0x0000046C
+
+#define HIB3P3_O_MEM_HIB_SEQUENCER_CFG2 \
+ 0x00000470
+
+#define HIB3P3_O_HIBANA_SPARE_LOWV \
+ 0x00000474
+
+#define HIB3P3_O_HIB_TMUX_CTRL 0x00000478
+#define HIB3P3_O_HIB_1P2_1P8_LDO_TRIM \
+ 0x0000047C
+
+#define HIB3P3_O_HIB_COMP_TRIM 0x00000480
+#define HIB3P3_O_HIB_EN_TS 0x00000484
+#define HIB3P3_O_HIB_1P8V_DET_EN \
+ 0x00000488
+
+#define HIB3P3_O_HIB_VBAT_MON_EN \
+ 0x0000048C
+
+#define HIB3P3_O_HIB_NHIB_ENABLE \
+ 0x00000490
+
+#define HIB3P3_O_HIB_UART_RTS_SW_ENABLE \
+ 0x00000494
+
+
+
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_REQ register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_REQ_reserved_M \
+ 0xFFFFFE00
+
+#define HIB3P3_MEM_HIB_REQ_reserved_S 9
+#define HIB3P3_MEM_HIB_REQ_NU1_M \
+ 0x000001FC
+
+#define HIB3P3_MEM_HIB_REQ_NU1_S 2
+#define HIB3P3_MEM_HIB_REQ_mem_hib_clk_disable \
+ 0x00000002 // 1 - Specifies that the Hiberante
+ // mode is without clocks ; 0 -
+ // Specified that the Hibernate mode
+ // is with clocks This register will
+ // be reset during Hibernate
+ // -WO-Clks mode (but not during
+ // Hibernate-W-Clks mode).
+
+#define HIB3P3_MEM_HIB_REQ_mem_hib_req \
+ 0x00000001 // 1 - Request for hibernate mode
+ // (This is an auto-clear bit) ; 0 -
+ // Donot request for hibernate mode
+ // This register will be reset
+ // during Hibernate -WO-Clks mode
+ // (but not during Hibernate-W-Clks
+ // mode).
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_TIMER_ENABLE register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_TIMER_ENABLE_reserved_M \
+ 0xFFFFFFFE
+
+#define HIB3P3_MEM_HIB_RTC_TIMER_ENABLE_reserved_S 1
+#define HIB3P3_MEM_HIB_RTC_TIMER_ENABLE_mem_hib_rtc_timer_enable \
+ 0x00000001 // 1 - Enable the RTC timer to
+ // start running ; 0 - Keep the RTC
+ // timer disabled This register will
+ // be reset during Hibernate
+ // -WO-Clks mode (but not during
+ // Hibernate-W-Clks mode).
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_TIMER_RESET register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_TIMER_RESET_reserved_M \
+ 0xFFFFFFFE
+
+#define HIB3P3_MEM_HIB_RTC_TIMER_RESET_reserved_S 1
+#define HIB3P3_MEM_HIB_RTC_TIMER_RESET_mem_hib_rtc_timer_reset \
+ 0x00000001 // 1 - Reset the RTC timer ; 0 -
+ // Donot reset the RTC timer. This
+ // is an auto-clear bit. This
+ // register will be reset during
+ // Hibernate -WO-Clks mode (but not
+ // during Hibernate-W-Clks mode).
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_TIMER_READ register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_TIMER_READ_reserved_M \
+ 0xFFFFFFFE
+
+#define HIB3P3_MEM_HIB_RTC_TIMER_READ_reserved_S 1
+#define HIB3P3_MEM_HIB_RTC_TIMER_READ_mem_hib_rtc_timer_read \
+ 0x00000001 // 1 - Latch the running RTC timer
+ // into local registers. After
+ // programming this bit to 1, the
+ // F/w can read the latched RTC
+ // timer values from
+ // MEM_HIB_RTC_TIMER_LSW and
+ // MEM_HIB_RTC_TIMER_MSW. Before the
+ // F/w (APPS or NWP) wants to read
+ // the RTC-Timer, it has to program
+ // this bit to 1, then only read the
+ // MSW and LSW values. This is an
+ // auto-clear bit. This register
+ // will be reset during Hibernate
+ // -WO-Clks mode (but not during
+ // Hibernate-W-Clks mode).
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_TIMER_LSW register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_TIMER_LSW_hib_rtc_timer_lsw_M \
+ 0xFFFFFFFF // Lower 32b value of the latched
+ // RTC-Timer.
+
+#define HIB3P3_MEM_HIB_RTC_TIMER_LSW_hib_rtc_timer_lsw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_TIMER_MSW register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_TIMER_MSW_reserved_M \
+ 0xFFFF0000
+
+#define HIB3P3_MEM_HIB_RTC_TIMER_MSW_reserved_S 16
+#define HIB3P3_MEM_HIB_RTC_TIMER_MSW_hib_rtc_timer_msw_M \
+ 0x0000FFFF // Upper 32b value of the latched
+ // RTC-Timer.
+
+#define HIB3P3_MEM_HIB_RTC_TIMER_MSW_hib_rtc_timer_msw_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_WAKE_EN register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_WAKE_EN_reserved_M \
+ 0xFFFFFFFE
+
+#define HIB3P3_MEM_HIB_RTC_WAKE_EN_reserved_S 1
+#define HIB3P3_MEM_HIB_RTC_WAKE_EN_mem_hib_rtc_wake_en \
+ 0x00000001 // 1 - Enable the RTC timer based
+ // wakeup during Hibernate mode ; 0
+ // - Disable the RTC timer based
+ // wakeup during Hibernate mode This
+ // register will be reset during
+ // Hibernate-WO-Clks mode (but not
+ // during Hibernate-W-Clks mode).
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_WAKE_LSW_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_WAKE_LSW_CONF_mem_hib_rtc_wake_lsw_conf_M \
+ 0xFFFFFFFF // Configuration for RTC-Timer
+ // Wakeup (Lower 32b word)
+
+#define HIB3P3_MEM_HIB_RTC_WAKE_LSW_CONF_mem_hib_rtc_wake_lsw_conf_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_WAKE_MSW_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_WAKE_MSW_CONF_reserved_M \
+ 0xFFFF0000
+
+#define HIB3P3_MEM_HIB_RTC_WAKE_MSW_CONF_reserved_S 16
+#define HIB3P3_MEM_HIB_RTC_WAKE_MSW_CONF_mem_hib_rtc_wake_msw_conf_M \
+ 0x0000FFFF // Configuration for RTC-Timer
+ // Wakeup (Upper 16b word)
+
+#define HIB3P3_MEM_HIB_RTC_WAKE_MSW_CONF_mem_hib_rtc_wake_msw_conf_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_INT_OSC_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_INT_OSC_CONF_reserved_M \
+ 0xFFFF0000
+
+#define HIB3P3_MEM_INT_OSC_CONF_reserved_S 16
+#define HIB3P3_MEM_INT_OSC_CONF_cm_clk_good_32k_int \
+ 0x00008000 // 1 - Internal 32kHz Oscillator is
+ // valid ; 0 - Internal 32k
+ // oscillator clk is not valid
+
+#define HIB3P3_MEM_INT_OSC_CONF_mem_cm_intosc_32k_spare_M \
+ 0x00007E00
+
+#define HIB3P3_MEM_INT_OSC_CONF_mem_cm_intosc_32k_spare_S 9
+#define HIB3P3_MEM_INT_OSC_CONF_mem_cm_en_intosc_32k_override_ctrl \
+ 0x00000100 // When 1, the INT_32K_OSC_EN comes
+ // from bit [0] of this register,
+ // else comes from the FSM. This
+ // register will be reset during
+ // Hibernate-WO-Clks mode (but not
+ // during Hibernate-W-Clks mode)
+
+#define HIB3P3_MEM_INT_OSC_CONF_NU1 \
+ 0x00000080
+
+#define HIB3P3_MEM_INT_OSC_CONF_mem_cm_intosc_32k_trim_M \
+ 0x0000007E
+
+#define HIB3P3_MEM_INT_OSC_CONF_mem_cm_intosc_32k_trim_S 1
+#define HIB3P3_MEM_INT_OSC_CONF_mem_cm_en_intosc_32k \
+ 0x00000001 // Override value for INT_OSC_EN.
+ // Applicable only when bit [3] of
+ // this register is set to 1.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_XTAL_OSC_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_XTAL_OSC_CONF_reserved_M \
+ 0xFFF00000
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_reserved_S 20
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_en_sli_32k_override_ctrl \
+ 0x00080000 // When 1, the SLICER_EN comes from
+ // bit [10] of this register, else
+ // comes from the FSM.
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_en_xtal_32k_override_ctrl \
+ 0x00040000 // When 1, the XTAL_EN comes from
+ // bit [0] of this register, else
+ // comes from the FSM.
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_cm_clk_good_xtal \
+ 0x00020000 // 1 - XTAL Clk is good ; 0 - XTAL
+ // Clk is yet to be valid.
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_xtal_trim_M \
+ 0x0001F800
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_xtal_trim_S 11
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_en_sli_32k \
+ 0x00000400 // SLICER_EN Override value :
+ // Applicable only when bit [19] of
+ // this register is set to 1.
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_sli_32k_trim_M \
+ 0x00000380
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_sli_32k_trim_S 7
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_fref_32k_slicer_itrim_M \
+ 0x00000070
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_fref_32k_slicer_itrim_S 4
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_en_fref_32k_slicer \
+ 0x00000008
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_en_input_sense_M \
+ 0x00000006
+
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_en_input_sense_S 1
+#define HIB3P3_MEM_XTAL_OSC_CONF_mem_cm_en_xtal_32k \
+ 0x00000001 // XTAL_EN Override value :
+ // Applicable only when bit [18] of
+ // this register is set to 1.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_BGAP_PARAMETERS0 register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_BGAP_PARAMETERS0_reserved_M \
+ 0xFFF80000
+
+#define HIB3P3_MEM_BGAP_PARAMETERS0_reserved_S 19
+#define HIB3P3_MEM_BGAP_PARAMETERS0_mem_en_seq \
+ 0x00040000
+
+#define HIB3P3_MEM_BGAP_PARAMETERS0_mem_vbok4bg_comp_trim_M \
+ 0x0001C000
+
+#define HIB3P3_MEM_BGAP_PARAMETERS0_mem_vbok4bg_comp_trim_S 14
+#define HIB3P3_MEM_BGAP_PARAMETERS0_mem_bgap_en_vbat_ok_4bg \
+ 0x00001000
+
+#define HIB3P3_MEM_BGAP_PARAMETERS0_mem_bgap_en_vbok4bg_comp \
+ 0x00000800
+
+#define HIB3P3_MEM_BGAP_PARAMETERS0_mem_bgap_en_vbok4bg_comp_ref \
+ 0x00000400
+
+#define HIB3P3_MEM_BGAP_PARAMETERS0_mem_bgap_spare_M \
+ 0x000003FF
+
+#define HIB3P3_MEM_BGAP_PARAMETERS0_mem_bgap_spare_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_BGAP_PARAMETERS1 register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_BGAP_PARAMETERS1_reserved_M \
+ 0xE0000000
+
+#define HIB3P3_MEM_BGAP_PARAMETERS1_reserved_S 29
+#define HIB3P3_MEM_BGAP_PARAMETERS1_mem_bgap_act_iref_itrim_M \
+ 0x1F000000
+
+#define HIB3P3_MEM_BGAP_PARAMETERS1_mem_bgap_act_iref_itrim_S 24
+#define HIB3P3_MEM_BGAP_PARAMETERS1_mem_bgap_en_act_iref \
+ 0x00000008
+
+#define HIB3P3_MEM_BGAP_PARAMETERS1_mem_bgap_en_v2i \
+ 0x00000004
+
+#define HIB3P3_MEM_BGAP_PARAMETERS1_mem_bgap_en_cap_sw \
+ 0x00000002
+
+#define HIB3P3_MEM_BGAP_PARAMETERS1_mem_bgap_en \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_DETECTION_STATUS register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_DETECTION_STATUS_reserved_M \
+ 0xFFFFFF80
+
+#define HIB3P3_MEM_HIB_DETECTION_STATUS_reserved_S 7
+#define HIB3P3_MEM_HIB_DETECTION_STATUS_hib_forced_ana_status \
+ 0x00000040 // 1 - 1.8 V supply forced mode.
+
+#define HIB3P3_MEM_HIB_DETECTION_STATUS_hib_forced_flash_status \
+ 0x00000004 // 1 - 3.3 V supply forced mode for
+ // Flash supply
+
+#define HIB3P3_MEM_HIB_DETECTION_STATUS_hib_ext_clk_det_out_status \
+ 0x00000002 // 1 - Forced clock mode
+
+#define HIB3P3_MEM_HIB_DETECTION_STATUS_hib_xtal_det_out_status \
+ 0x00000001 // 1 - XTAL clock mode
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_MISC_CONTROLS register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_MISC_CONTROLS_reserved_M \
+ 0xFFFFF800
+
+#define HIB3P3_MEM_HIB_MISC_CONTROLS_reserved_S 11
+#define HIB3P3_MEM_HIB_MISC_CONTROLS_mem_hib_en_pok_por_comp \
+ 0x00000400
+
+#define HIB3P3_MEM_HIB_MISC_CONTROLS_mem_hib_en_pok_por_comp_ref \
+ 0x00000200
+
+#define HIB3P3_MEM_HIB_MISC_CONTROLS_mem_hib_pok_por_comp_trim_M \
+ 0x000001C0
+
+#define HIB3P3_MEM_HIB_MISC_CONTROLS_mem_hib_pok_por_comp_trim_S 6
+#define HIB3P3_MEM_HIB_MISC_CONTROLS_NU1 \
+ 0x00000020
+
+#define HIB3P3_MEM_HIB_MISC_CONTROLS_mem_hib_flash_det_en \
+ 0x00000010
+
+#define HIB3P3_MEM_HIB_MISC_CONTROLS_mem_hib_en_tmux \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_CONFIG register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_CONFIG_TOP_MUX_CTRL_SOP_SPIO_M \
+ 0xFF000000
+
+#define HIB3P3_MEM_HIB_CONFIG_TOP_MUX_CTRL_SOP_SPIO_S 24
+#define HIB3P3_MEM_HIB_CONFIG_EN_ANA_DIG_SHARED3 \
+ 0x00080000 // 1 - Enable VDD_FLASH_INDP_PAD
+ // for digital path (SHARED4) ; 0 -
+ // Disable VDD_FLASH_INDP_PAD for
+ // digital path (SHARED4) ; Before
+ // programming this bit to 1, ensure
+ // that the device is in FORCED 3.3
+ // supply Mode, which can be
+ // inferred from the register :
+ // MEM_HIB_DETECTION_STATUS : 0x0040
+
+#define HIB3P3_MEM_HIB_CONFIG_EN_ANA_DIG_SHARED2 \
+ 0x00040000 // 1 - Enable the
+ // VDD_FB_GPIO_MUX_PAD for digital
+ // path (SHARED3) ; 0 - Disable the
+ // VDD_FB_GPIO_MUX_PAD for digital
+ // path (SHARED3) ; This pin can be
+ // used only in modes other than
+ // SOP("111")
+
+#define HIB3P3_MEM_HIB_CONFIG_EN_ANA_DIG_SHARED1 \
+ 0x00020000 // 1 - Enable the PM_TEST_PAD for
+ // digital GPIO path (SHARED2) ; 0 -
+ // Disable the PM_TEST_PAD for
+ // digital GPIO path (SHARED2) This
+ // pin can be used for digital only
+ // in modes other then SOP-111
+
+#define HIB3P3_MEM_HIB_CONFIG_EN_ANA_DIG_SHARED0 \
+ 0x00010000 // 1 - Enable the XTAL_N pin
+ // digital GPIO path (SHARED1); 0 -
+ // Disable the XTAL_N pin digital
+ // GPIO path (SHARED1). Before
+ // programming this bit to 1, ensure
+ // that the device is in FORCED CLK
+ // Mode, which can inferred from the
+ // register :
+ // MEM_HIB_DETECTION_STATUS :
+ // 0x0040.
+
+#define HIB3P3_MEM_HIB_CONFIG_mem_hib_xtal_enable \
+ 0x00000100 // 1 - Enable the XTAL Clock ; 0 -
+ // Donot enable the XTAL Clock. This
+ // bit has to be programmed to 1 (by
+ // APPS Devinit F/w), during exit
+ // from OFF or Hib_wo_clks modes,
+ // after checking if the slow_clk
+ // mode is XTAL_CLK mode. Once
+ // enabled the XTAL will be disabled
+ // only after entering HIB_WO_CLKS
+ // mode. This register will be reset
+ // during Hibernate -WO-Clks mode
+ // (but not during Hibernate-W-Clks
+ // mode).
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_IRQ_ENABLE register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_IRQ_ENABLE_HIB_RTC_IRQ_ENABLE \
+ 0x00000001 // 1 - Enable the HIB RTC - IRQ ; 0
+ // - Disable the HIB RTC - IRQ
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_IRQ_LSW_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_IRQ_LSW_CONF_HIB_RTC_IRQ_LSW_CONF_M \
+ 0xFFFFFFFF // Configuration for LSW of the
+ // RTC-Timestamp at which interrupt
+ // need to be generated
+
+#define HIB3P3_MEM_HIB_RTC_IRQ_LSW_CONF_HIB_RTC_IRQ_LSW_CONF_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_RTC_IRQ_MSW_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_RTC_IRQ_MSW_CONF_HIB_RTC_IRQ_MSW_CONF_M \
+ 0x0000FFFF // Configuration for MSW of thr
+ // RTC-Timestamp at which the
+ // interrupt need to be generated
+
+#define HIB3P3_MEM_HIB_RTC_IRQ_MSW_CONF_HIB_RTC_IRQ_MSW_CONF_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_UART_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_UART_CONF_reserved_M \
+ 0xFFFFFFFE
+
+#define HIB3P3_MEM_HIB_UART_CONF_reserved_S 1
+#define HIB3P3_MEM_HIB_UART_CONF_mem_hib_uart_wake_en \
+ 0x00000001 // 1 - Enable the UART-Autonomous
+ // mode wakeup during Hibernate mode
+ // ; This is an auto-clear bit, once
+ // programmed to 1, it will latched
+ // into an internal register which
+ // remain asserted until the
+ // Hib-wakeup is initiated.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_GPIO_WAKE_EN register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_GPIO_WAKE_EN_reserved_M \
+ 0xFFFFFF00
+
+#define HIB3P3_MEM_GPIO_WAKE_EN_reserved_S 8
+#define HIB3P3_MEM_GPIO_WAKE_EN_mem_gpio_wake_en_M \
+ 0x000000FF // 1 - Enable the GPIO-Autonomous
+ // mode wakeup during Hibernate mode
+ // ; This is an auto-clear bit, once
+ // programmed to 1, it will latched
+ // into an internal register which
+ // remain asserted until the
+ // Hib-wakeup is initiated.
+
+#define HIB3P3_MEM_GPIO_WAKE_EN_mem_gpio_wake_en_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_GPIO_WAKE_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_GPIO_WAKE_CONF_reserved_M \
+ 0xFFFF0000
+
+#define HIB3P3_MEM_GPIO_WAKE_CONF_reserved_S 16
+#define HIB3P3_MEM_GPIO_WAKE_CONF_mem_gpio_wake_conf_M \
+ 0x0000FFFF // Configuration to say whether the
+ // GPIO wakeup has to happen on
+ // Level0 or falling-edge for the
+ // given group. “00� – Level0 “01� –
+ // Level1 “10�- Fall-edge “11�-
+ // Rise-edge [1:0] – Conf for GPIO0
+ // [3:2] – Conf for GPIO1 [5:4] –
+ // Conf for GPIO2 [7:6] – Conf for
+ // GPIO3 [9:8] – Conf for GPIO4
+ // [11:10] – Conf for GPIO5 [13:12]
+ // – Conf for GPIO6
+
+#define HIB3P3_MEM_GPIO_WAKE_CONF_mem_gpio_wake_conf_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_PAD_OEN_RET33_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_PAD_OEN_RET33_CONF_mem_pad_oen_ret33_override_ctrl \
+ 0x00000004 // 1 - Override the OEN33 and RET33
+ // controls of GPIOs during
+ // SOP-Bootdebug mode ; 0 - Donot
+ // override the OEN33 and RET33
+ // controls of GPIOs during
+ // SOP-Bootdebug mode
+
+#define HIB3P3_MEM_PAD_OEN_RET33_CONF_PAD_OEN33_CONF \
+ 0x00000002
+
+#define HIB3P3_MEM_PAD_OEN_RET33_CONF_PAD_RET33_CONF \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_UART_RTS_OEN_RET33_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_UART_RTS_OEN_RET33_CONF_mem_uart_nrts_oen_ret33_override_ctrl \
+ 0x00000004 // 1 - Override the OEN33 and RET33
+ // controls of UART NRTS GPIO during
+ // SOP-Bootdebug mode ; 0 - Donot
+ // override the OEN33 and RET33
+ // controls of UART NRTS GPIO during
+ // SOP-Bootdebug mode
+
+#define HIB3P3_MEM_UART_RTS_OEN_RET33_CONF_PAD_UART_RTS_OEN33_CONF \
+ 0x00000002
+
+#define HIB3P3_MEM_UART_RTS_OEN_RET33_CONF_PAD_UART_RTS_RET33_CONF \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_JTAG_CONF register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_JTAG_CONF_mem_jtag1_oen_ret33_override_ctrl \
+ 0x00000200
+
+#define HIB3P3_MEM_JTAG_CONF_mem_jtag0_oen_ret33_override_ctrl \
+ 0x00000100
+
+#define HIB3P3_MEM_JTAG_CONF_PAD_JTAG1_RTS_OEN33_CONF \
+ 0x00000008
+
+#define HIB3P3_MEM_JTAG_CONF_PAD_JTAG1_RTS_RET33_CONF \
+ 0x00000004
+
+#define HIB3P3_MEM_JTAG_CONF_PAD_JTAG0_RTS_OEN33_CONF \
+ 0x00000002
+
+#define HIB3P3_MEM_JTAG_CONF_PAD_JTAG0_RTS_RET33_CONF \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_REG0 register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_REG0_mem_hib_reg0_M \
+ 0xFFFFFFFF
+
+#define HIB3P3_MEM_HIB_REG0_mem_hib_reg0_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_REG1 register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_REG1_mem_hib_reg1_M \
+ 0xFFFFFFFF
+
+#define HIB3P3_MEM_HIB_REG1_mem_hib_reg1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_REG2 register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_REG2_mem_hib_reg2_M \
+ 0xFFFFFFFF
+
+#define HIB3P3_MEM_HIB_REG2_mem_hib_reg2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_REG3 register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_REG3_mem_hib_reg3_M \
+ 0xFFFFFFFF
+
+#define HIB3P3_MEM_HIB_REG3_mem_hib_reg3_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_SEQUENCER_CFG0 register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_bdc_ev0_to_ev1_time_M \
+ 0xFFFF0000 // Configuration for the number of
+ // slow-clks between de-assertion of
+ // EN_BG_3P3V to assertion of
+ // EN_BG_3P3V
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_bdc_ev0_to_ev1_time_S 16
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_NU1 \
+ 0x00008000
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_bdc_ev3_to_ev4_time_M \
+ 0x00006000 // Configuration for the number of
+ // slow-clks between assertion of
+ // EN_COMP_3P3V and assertion of
+ // EN_COMP_LATCH_3P3V
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_bdc_ev3_to_ev4_time_S 13
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_bdc_ev2_to_ev3_time_M \
+ 0x00001800 // Configuration for the number of
+ // slow-clks between assertion of
+ // (EN_CAP_SW_3P3V,EN_COMP_REF) and
+ // assertion of (EN_COMP_3P3V)
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_bdc_ev2_to_ev3_time_S 11
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_bdc_ev1_to_ev2_time_M \
+ 0x00000600 // Configuration for the number of
+ // slow-clks between assertion of
+ // (EN_BG_3P3V) and assertion of
+ // (EN_CAP_SW_3P3V,
+ // EN_COMP_REF_3P3V)
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_bdc_ev1_to_ev2_time_S 9
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_en_crude_ref_comp \
+ 0x00000100
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_en_vbok4bg_ref_override_ctrl \
+ 0x00000080 // 1 - EN_VBOK4BG_REF comes from
+ // bit[10] of the register
+ // MEM_BGAP_PARAMETERS0 [0x0038]. 0
+ // - EN_VBOK4BG_REF comes directly
+ // from the Hib-Sequencer.
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_en_vbok4bg_comp_override_ctrl \
+ 0x00000040 // 1 - EN_VBOK4BG comes from
+ // bit[11] of the register
+ // MEM_BGAP_PARAMETERS0 [0x0038]. 0
+ // - EN_VBOK4BG comes directly from
+ // the Hib-Sequencer.
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_en_v2i_override_ctrl \
+ 0x00000020 // 1 - EN_V2I comes from bit[2] of
+ // the register MEM_BGAP_PARAMETERS1
+ // [0x003C]. 0 - EN_V2I comes
+ // directly from the Hib-Sequencer.
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_por_comp_ref_override_ctrl \
+ 0x00000010 // 1 - EN_POR_COMP_REF comes from
+ // bit[9] of the register
+ // MEM_HIB_MISC_CONTROLS [0x0044]. 0
+ // - EN_POR_COMP_REF comes directly
+ // from the Hib-Sequencer.
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_en_por_comp_override_ctrl \
+ 0x00000008 // 1 - EN_POR_COMP comes from
+ // bit[10] of the register
+ // MEM_HIB_MISC_CONTROLS [0x044]. 0
+ // - EN_POR_COMP comes directly from
+ // the Hib-Sequencer.
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_cap_sw_override_ctrl \
+ 0x00000004 // 1 - EN_CAP_SW comes from bit[1]
+ // of the register
+ // MEM_BGAP_PARAMETERS1 [0x003C]. 0
+ // - EN_CAP_SW comes directly from
+ // Hib-Sequencer.
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_bg_override_ctrl \
+ 0x00000002 // 1 - EN_BGAP comes from bit[0] of
+ // the register MEM_BGAP_PARAMETERS1
+ // [0x003C]. 0 - EN_BGAP comes
+ // directly from Hib-Sequencer.
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG0_mem_act_iref_override_ctrl \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_SEQUENCER_CFG1 register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_reserved_M \
+ 0xFFFF0000
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_reserved_S 16
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_bdc_ev5_to_ev6_time_M \
+ 0x0000C000 // Configuration for number of
+ // slow-clks between de-assertion of
+ // EN_COMP_LATCH and assertion of
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_bdc_ev5_to_ev6_time_S 14
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_bdc_to_active_ev1_to_ev2_time_M \
+ 0x00003000 // Configuration for number of
+ // slow-clks between assertion of
+ // EN_COMP_REF to assertion of
+ // EN_COMP during HIB-Exit
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_bdc_to_active_ev1_to_ev2_time_S 12
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_bdc_to_active_ev0_to_ev1_time_M \
+ 0x00000C00 // TBD
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_bdc_to_active_ev0_to_ev1_time_S 10
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_bdc_to_active_ev0_to_active_M \
+ 0x00000300 // Configuration in number of
+ // slow-clks between assertion of
+ // (EN_BGAP_3P3V, EN_CAP_SW_3P3V,
+ // EN_ACT_IREF_3P3V, EN_COMP_REF) to
+ // assertion of EN_COMP_3P3V
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_bdc_to_active_ev0_to_active_S 8
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_active_to_bdc_ev1_to_bdc_ev0_time_M \
+ 0x000000C0 // Configuration in number of
+ // slow-clks between de-assertion of
+ // (EN_COMP_3P3V, EN_COMP_REF_3P3V,
+ // EN_ACT_IREF_3P3V, EN_CAP_SW_3P3V)
+ // to deassertion of EN_BGAP_3P3V.
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_mem_active_to_bdc_ev1_to_bdc_ev0_time_S 6
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_NU1_M \
+ 0x0000003F
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG1_NU1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_MISC_CONFIG register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_MISC_CONFIG_mem_en_pll_untrim_current \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_WAKE_STATUS register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_WAKE_STATUS_hib_wake_src_M \
+ 0x0000001E // "0100" - GPIO ; "0010" - RTC ;
+ // "0001" - UART Others - Reserved
+
+#define HIB3P3_MEM_HIB_WAKE_STATUS_hib_wake_src_S 1
+#define HIB3P3_MEM_HIB_WAKE_STATUS_hib_wake_status \
+ 0x00000001 // 1 - Wake from Hibernate ; 0 -
+ // Wake from OFF
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_LPDS_GPIO_SEL register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_LPDS_GPIO_SEL_HIB_LPDS_GPIO_SEL_M \
+ 0x00000007
+
+#define HIB3P3_MEM_HIB_LPDS_GPIO_SEL_HIB_LPDS_GPIO_SEL_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_MEM_HIB_SEQUENCER_CFG2 register.
+//
+//******************************************************************************
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_reserved_M \
+ 0xFFFFF800
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_reserved_S 11
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_active_to_bdc_ev0_to_active_to_bdc_ev1_time_M \
+ 0x00000600 // Deassertion of EN_COMP_LATCH_3P3
+ // to deassertion of (EN_COMP_3P3,
+ // EN_COMP_REF_3P3, EN_ACT_IREF_3P3,
+ // EN_CAP_SW_3P3)
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_active_to_bdc_ev0_to_active_to_bdc_ev1_time_S 9
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_bdc_ev4_to_ev5_time_M \
+ 0x000001C0 // Assertion of EN_COMP_LATCH_3P3
+ // to deassertion of
+ // EN_COMP_LATCH_3P3
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_bdc_ev4_to_ev5_time_S 6
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_bdc_ev6_to_ev7_time_M \
+ 0x00000030 // Deassertion of (EN_CAP_SW_3P3,
+ // EN_COMP_REF_3P3, EN_COMP_3P3,
+ // EN_COMP_OUT_LATCH_3P3) to
+ // deassertion of EN_BGAP_3P3
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_bdc_ev6_to_ev7_time_S 4
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_bdc_to_active_ev1_to_ev2_time_M \
+ 0x0000000C // Assertion of EN_COMP_3P3 to
+ // assertion of EN_COMPOUT_LATCH_3P3
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_bdc_to_active_ev1_to_ev2_time_S 2
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_hib_to_active_ev2_to_ev3_time_M \
+ 0x00000003 // Assertion of EN_COMP_3P3 to
+ // assertion of EN_COMPOUT_LATCH_3P3
+
+#define HIB3P3_MEM_HIB_SEQUENCER_CFG2_mem_hib_to_active_ev2_to_ev3_time_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_HIBANA_SPARE_LOWV register.
+//
+//******************************************************************************
+#define HIB3P3_HIBANA_SPARE_LOWV_mem_hibana_spare1_M \
+ 0xFFC00000
+
+#define HIB3P3_HIBANA_SPARE_LOWV_mem_hibana_spare1_S 22
+#define HIB3P3_HIBANA_SPARE_LOWV_mem_hibana_spare0_M \
+ 0x0001FFFF
+
+#define HIB3P3_HIBANA_SPARE_LOWV_mem_hibana_spare0_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_HIB_TMUX_CTRL register.
+//
+//******************************************************************************
+#define HIB3P3_HIB_TMUX_CTRL_reserved_M \
+ 0xFFFFFC00
+
+#define HIB3P3_HIB_TMUX_CTRL_reserved_S 10
+#define HIB3P3_HIB_TMUX_CTRL_mem_hd_tmux_cntrl_M \
+ 0x000003FF
+
+#define HIB3P3_HIB_TMUX_CTRL_mem_hd_tmux_cntrl_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_HIB_1P2_1P8_LDO_TRIM register.
+//
+//******************************************************************************
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_reserved_M \
+ 0xFFFFF000
+
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_reserved_S 12
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_mem_hd_1p2_ldo_en_override_ctrl \
+ 0x00000800
+
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_mem_hd_1p8_ldo_en_override_ctrl \
+ 0x00000400
+
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_mem_hd_1p2_ldo_en_override \
+ 0x00000200
+
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_mem_hd_1p8_ldo_en_override \
+ 0x00000100
+
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_mem_hd_1p2_ldo_vtrim_M \
+ 0x000000F0
+
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_mem_hd_1p2_ldo_vtrim_S 4
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_mem_hd_1p8_ldo_vtrim_M \
+ 0x0000000F
+
+#define HIB3P3_HIB_1P2_1P8_LDO_TRIM_mem_hd_1p8_ldo_vtrim_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_HIB_COMP_TRIM register.
+//
+//******************************************************************************
+#define HIB3P3_HIB_COMP_TRIM_reserved_M \
+ 0xFFFFFFF8
+
+#define HIB3P3_HIB_COMP_TRIM_reserved_S 3
+#define HIB3P3_HIB_COMP_TRIM_mem_hd_comp_trim_M \
+ 0x00000007
+
+#define HIB3P3_HIB_COMP_TRIM_mem_hd_comp_trim_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_HIB_EN_TS register.
+//
+//******************************************************************************
+#define HIB3P3_HIB_EN_TS_reserved_M \
+ 0xFFFFFFFE
+
+#define HIB3P3_HIB_EN_TS_reserved_S 1
+#define HIB3P3_HIB_EN_TS_mem_hd_en_ts \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_HIB_1P8V_DET_EN register.
+//
+//******************************************************************************
+#define HIB3P3_HIB_1P8V_DET_EN_reserved_M \
+ 0xFFFFFFFE
+
+#define HIB3P3_HIB_1P8V_DET_EN_reserved_S 1
+#define HIB3P3_HIB_1P8V_DET_EN_mem_hib_1p8v_det_en \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_HIB_VBAT_MON_EN register.
+//
+//******************************************************************************
+#define HIB3P3_HIB_VBAT_MON_EN_reserved_M \
+ 0xFFFFFFFC
+
+#define HIB3P3_HIB_VBAT_MON_EN_reserved_S 2
+#define HIB3P3_HIB_VBAT_MON_EN_mem_hib_vbat_mon_del_en \
+ 0x00000002
+
+#define HIB3P3_HIB_VBAT_MON_EN_mem_hib_vbat_mon_en \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_HIB_NHIB_ENABLE register.
+//
+//******************************************************************************
+#define HIB3P3_HIB_NHIB_ENABLE_mem_hib_nhib_enable \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// HIB3P3_O_HIB_UART_RTS_SW_ENABLE register.
+//
+//******************************************************************************
+#define HIB3P3_HIB_UART_RTS_SW_ENABLE_mem_hib_uart_rts_sw_enable \
+ 0x00000001
+
+
+
+
+#endif // __HW_HIB3P3_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_ints.h b/ext/hal/ti/cc3220sdk/inc/hw_ints.h
new file mode 100644
index 0000000..af2c02f
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_ints.h
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+//*****************************************************************************
+//
+// hw_ints.h - Macros that define the interrupt assignment on CC3200.
+//
+//*****************************************************************************
+
+#ifndef __HW_INTS_H__
+#define __HW_INTS_H__
+
+//*****************************************************************************
+//
+// The following are defines for the fault assignments.
+//
+//*****************************************************************************
+#define FAULT_NMI 2 // NMI fault
+#define FAULT_HARD 3 // Hard fault
+#define FAULT_MPU 4 // MPU fault
+#define FAULT_BUS 5 // Bus fault
+#define FAULT_USAGE 6 // Usage fault
+#define FAULT_SVCALL 11 // SVCall
+#define FAULT_DEBUG 12 // Debug monitor
+#define FAULT_PENDSV 14 // PendSV
+#define FAULT_SYSTICK 15 // System Tick
+
+//*****************************************************************************
+//
+// The following are defines for the interrupt assignments.
+//
+//*****************************************************************************
+#define INT_GPIOA0 16 // GPIO Port S0
+#define INT_GPIOA1 17 // GPIO Port S1
+#define INT_GPIOA2 18 // GPIO Port S2
+#define INT_GPIOA3 19 // GPIO Port S3
+#define INT_UARTA0 21 // UART0 Rx and Tx
+#define INT_UARTA1 22 // UART1 Rx and Tx
+#define INT_I2CA0 24 // I2C controller
+#define INT_ADCCH0 30 // ADC Sequence 0
+#define INT_ADCCH1 31 // ADC Sequence 1
+#define INT_ADCCH2 32 // ADC Sequence 2
+#define INT_ADCCH3 33 // ADC Sequence 3
+#define INT_WDT 34 // Watchdog Timer0
+#define INT_TIMERA0A 35 // Timer 0 subtimer A
+#define INT_TIMERA0B 36 // Timer 0 subtimer B
+#define INT_TIMERA1A 37 // Timer 1 subtimer A
+#define INT_TIMERA1B 38 // Timer 1 subtimer B
+#define INT_TIMERA2A 39 // Timer 2 subtimer A
+#define INT_TIMERA2B 40 // Timer 2 subtimer B
+#define INT_FLASH 45 // FLASH Control
+#define INT_TIMERA3A 51 // Timer 3 subtimer A
+#define INT_TIMERA3B 52 // Timer 3 subtimer B
+#define INT_UDMA 62 // uDMA controller
+#define INT_UDMAERR 63 // uDMA Error
+#define INT_SHA 164 // SHA
+#define INT_AES 167 // AES
+#define INT_DES 169 // DES
+#define INT_MMCHS 175 // SDIO
+#define INT_I2S 177 // McAPS
+#define INT_CAMERA 179 // Camera
+#define INT_NWPIC 187 // Interprocessor communication
+#define INT_PRCM 188 // Power, Reset and Clock Module
+#define INT_SSPI 191 // Shared SPI
+#define INT_GSPI 192 // Generic SPI
+#define INT_LSPI 193 // Link SPI
+
+//*****************************************************************************
+//
+// The following are defines for the total number of interrupts.
+//
+//*****************************************************************************
+#define NUM_INTERRUPTS 195 //The above number plus 2?
+
+
+//*****************************************************************************
+//
+// The following are defines for the total number of priority levels.
+//
+//*****************************************************************************
+#define NUM_PRIORITY 8
+#define NUM_PRIORITY_BITS 3
+
+
+#endif // __HW_INTS_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_memmap.h b/ext/hal/ti/cc3220sdk/inc/hw_memmap.h
new file mode 100644
index 0000000..1e26774
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_memmap.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __HW_MEMMAP_H__
+#define __HW_MEMMAP_H__
+
+//*****************************************************************************
+//
+// The following are defines for the base address of the memories and
+// peripherals on the slave_1 interface.
+//
+//*****************************************************************************
+#define FLASH_BASE 0x01000000
+#define SRAM_BASE 0x20000000
+#define WDT_BASE 0x40000000
+#define GPIOA0_BASE 0x40004000
+#define GPIOA1_BASE 0x40005000
+#define GPIOA2_BASE 0x40006000
+#define GPIOA3_BASE 0x40007000
+#define GPIOA4_BASE 0x40024000
+#define UARTA0_BASE 0x4000C000
+#define UARTA1_BASE 0x4000D000
+#define I2CA0_BASE 0x40020000
+#define TIMERA0_BASE 0x40030000
+#define TIMERA1_BASE 0x40031000
+#define TIMERA2_BASE 0x40032000
+#define TIMERA3_BASE 0x40033000
+#define STACKDIE_CTRL_BASE 0x400F5000
+#define COMMON_REG_BASE 0x400F7000
+#define FLASH_CONTROL_BASE 0x400FD000
+#define SYSTEM_CONTROL_BASE 0x400FE000
+#define UDMA_BASE 0x400FF000
+#define SDHOST_BASE 0x44010000
+#define CAMERA_BASE 0x44018000
+#define I2S_BASE 0x4401C000
+#define SSPI_BASE 0x44020000
+#define GSPI_BASE 0x44021000
+#define LSPI_BASE 0x44022000
+#define ARCM_BASE 0x44025000
+#define APPS_CONFIG_BASE 0x44026000
+#define GPRCM_BASE 0x4402D000
+#define OCP_SHARED_BASE 0x4402E000
+#define ADC_BASE 0x4402E800
+#define HIB1P2_BASE 0x4402F000
+#define HIB3P3_BASE 0x4402F800
+#define DTHE_BASE 0x44030000
+#define SHAMD5_BASE 0x44035000
+#define AES_BASE 0x44037000
+#define DES_BASE 0x44039000
+
+
+#endif // __HW_MEMMAP_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_ocp_shared.h b/ext/hal/ti/cc3220sdk/inc/hw_ocp_shared.h
new file mode 100644
index 0000000..79b5f76
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_ocp_shared.h
@@ -0,0 +1,3443 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __HW_OCP_SHARED_H__
+#define __HW_OCP_SHARED_H__
+
+//*****************************************************************************
+//
+// The following are defines for the OCP_SHARED register offsets.
+//
+//*****************************************************************************
+#define OCP_SHARED_O_SEMAPHORE1 0x00000000
+#define OCP_SHARED_O_SEMAPHORE2 0x00000004
+#define OCP_SHARED_O_SEMAPHORE3 0x00000008
+#define OCP_SHARED_O_SEMAPHORE4 0x0000000C
+#define OCP_SHARED_O_SEMAPHORE5 0x00000010
+#define OCP_SHARED_O_SEMAPHORE6 0x00000014
+#define OCP_SHARED_O_SEMAPHORE7 0x00000018
+#define OCP_SHARED_O_SEMAPHORE8 0x0000001C
+#define OCP_SHARED_O_SEMAPHORE9 0x00000020
+#define OCP_SHARED_O_SEMAPHORE10 \
+ 0x00000024
+
+#define OCP_SHARED_O_SEMAPHORE11 \
+ 0x00000028
+
+#define OCP_SHARED_O_SEMAPHORE12 \
+ 0x0000002C
+
+#define OCP_SHARED_O_IC_LOCKER_ID \
+ 0x00000030
+
+#define OCP_SHARED_O_MCU_SEMAPHORE_PEND \
+ 0x00000034
+
+#define OCP_SHARED_O_WL_SEMAPHORE_PEND \
+ 0x00000038
+
+#define OCP_SHARED_O_PLATFORM_DETECTION_RD_ONLY \
+ 0x0000003C
+
+#define OCP_SHARED_O_SEMAPHORES_STATUS_RD_ONLY \
+ 0x00000040
+
+#define OCP_SHARED_O_CC3XX_CONFIG_CTRL \
+ 0x00000044
+
+#define OCP_SHARED_O_CC3XX_SHARED_MEM_SEL_LSB \
+ 0x00000048
+
+#define OCP_SHARED_O_CC3XX_SHARED_MEM_SEL_MSB \
+ 0x0000004C
+
+#define OCP_SHARED_O_WLAN_ELP_WAKE_EN \
+ 0x00000050
+
+#define OCP_SHARED_O_DEVINIT_ROM_START_ADDR \
+ 0x00000054
+
+#define OCP_SHARED_O_DEVINIT_ROM_END_ADDR \
+ 0x00000058
+
+#define OCP_SHARED_O_SSBD_SEED 0x0000005C
+#define OCP_SHARED_O_SSBD_CHK 0x00000060
+#define OCP_SHARED_O_SSBD_POLY_SEL \
+ 0x00000064
+
+#define OCP_SHARED_O_SPARE_REG_0 \
+ 0x00000068
+
+#define OCP_SHARED_O_SPARE_REG_1 \
+ 0x0000006C
+
+#define OCP_SHARED_O_SPARE_REG_2 \
+ 0x00000070
+
+#define OCP_SHARED_O_SPARE_REG_3 \
+ 0x00000074
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_0 \
+ 0x000000A0
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_1 \
+ 0x000000A4
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_2 \
+ 0x000000A8
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_3 \
+ 0x000000AC
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_4 \
+ 0x000000B0
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_5 \
+ 0x000000B4
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_6 \
+ 0x000000B8
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_7 \
+ 0x000000BC
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_8 \
+ 0x000000C0
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_9 \
+ 0x000000C4
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_10 \
+ 0x000000C8
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_11 \
+ 0x000000CC
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_12 \
+ 0x000000D0
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_13 \
+ 0x000000D4
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_14 \
+ 0x000000D8
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_15 \
+ 0x000000DC
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_16 \
+ 0x000000E0
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_17 \
+ 0x000000E4
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_18 \
+ 0x000000E8
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_19 \
+ 0x000000EC
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_20 \
+ 0x000000F0
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_21 \
+ 0x000000F4
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_22 \
+ 0x000000F8
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_23 \
+ 0x000000FC
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_24 \
+ 0x00000100
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_25 \
+ 0x00000104
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_26 \
+ 0x00000108
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_27 \
+ 0x0000010C
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_28 \
+ 0x00000110
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_29 \
+ 0x00000114
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_30 \
+ 0x00000118
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_31 \
+ 0x0000011C
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_32 \
+ 0x00000120
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_33 \
+ 0x00000124
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_34 \
+ 0x00000128
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_35 \
+ 0x0000012C
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_36 \
+ 0x00000130
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_37 \
+ 0x00000134
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_38 \
+ 0x00000138
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_39 \
+ 0x0000013C
+
+#define OCP_SHARED_O_GPIO_PAD_CONFIG_40 \
+ 0x00000140
+
+#define OCP_SHARED_O_GPIO_PAD_CMN_CONFIG \
+ 0x00000144 // This register provide control to
+ // GPIO_CC3XXV1 IO PAD. Common
+ // control signals to all bottom Die
+ // IO's are controlled via this.
+
+#define OCP_SHARED_O_D2D_DEV_PAD_CMN_CONFIG \
+ 0x00000148
+
+#define OCP_SHARED_O_D2D_TOSTACK_PAD_CONF \
+ 0x0000014C
+
+#define OCP_SHARED_O_D2D_MISC_PAD_CONF \
+ 0x00000150
+
+#define OCP_SHARED_O_SOP_CONF_OVERRIDE \
+ 0x00000154
+
+#define OCP_SHARED_O_CC3XX_DEBUGSS_STATUS \
+ 0x00000158
+
+#define OCP_SHARED_O_CC3XX_DEBUGMUX_SEL \
+ 0x0000015C
+
+#define OCP_SHARED_O_ALT_PC_VAL_NW \
+ 0x00000160
+
+#define OCP_SHARED_O_ALT_PC_VAL_APPS \
+ 0x00000164
+
+#define OCP_SHARED_O_SPARE_REG_4 \
+ 0x00000168
+
+#define OCP_SHARED_O_SPARE_REG_5 \
+ 0x0000016C
+
+#define OCP_SHARED_O_SH_SPI_CS_MASK \
+ 0x00000170
+
+#define OCP_SHARED_O_CC3XX_DEVICE_TYPE \
+ 0x00000174
+
+#define OCP_SHARED_O_MEM_TOPMUXCTRL_IFORCE \
+ 0x00000178
+
+#define OCP_SHARED_O_CC3XX_DEV_PACKAGE_DETECT \
+ 0x0000017C
+
+#define OCP_SHARED_O_AUTONMS_SPICLK_SEL \
+ 0x00000180
+
+#define OCP_SHARED_O_CC3XX_DEV_PADCONF \
+ 0x00000184
+
+#define OCP_SHARED_O_SPARE_REG_8 \
+ 0x00000188
+
+#define OCP_SHARED_O_SPARE_REG_6 \
+ 0x0000018C
+
+#define OCP_SHARED_O_SPARE_REG_7 \
+ 0x00000190
+
+#define OCP_SHARED_O_APPS_WLAN_ORBIT \
+ 0x00000194
+
+#define OCP_SHARED_O_APPS_WLAN_SCRATCH_PAD \
+ 0x00000198
+
+
+
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE1 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE1_MEM_SEMAPHORE1_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE1_MEM_SEMAPHORE1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE2 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE2_MEM_SEMAPHORE2_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE2_MEM_SEMAPHORE2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE3 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE3_MEM_SEMAPHORE3_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE3_MEM_SEMAPHORE3_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE4 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE4_MEM_SEMAPHORE4_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE4_MEM_SEMAPHORE4_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE5 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE5_MEM_SEMAPHORE5_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE5_MEM_SEMAPHORE5_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE6 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE6_MEM_SEMAPHORE6_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE6_MEM_SEMAPHORE6_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE7 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE7_MEM_SEMAPHORE7_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE7_MEM_SEMAPHORE7_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE8 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE8_MEM_SEMAPHORE8_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE8_MEM_SEMAPHORE8_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE9 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE9_MEM_SEMAPHORE9_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE9_MEM_SEMAPHORE9_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE10 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE10_MEM_SEMAPHORE10_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE10_MEM_SEMAPHORE10_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE11 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE11_MEM_SEMAPHORE11_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE11_MEM_SEMAPHORE11_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORE12 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORE12_MEM_SEMAPHORE12_M \
+ 0x00000003 // General Purpose Semaphore for SW
+ // Usage. If any of the 2 bits of a
+ // given register is set to 1, it
+ // means that the semaphore is
+ // locked by one of the masters.
+ // Each bit represents a master IP
+ // as follows: {WLAN,NWP}. The JTAG
+ // cannot capture the semaphore but
+ // it can release it. As a master IP
+ // reads the semaphore, it will be
+ // caputed and the masters
+ // correlating bit will be set to 1
+ // (set upon read). As any IP writes
+ // to this address (independent of
+ // the written data) the semaphore
+ // will be set to 2'b00.
+
+#define OCP_SHARED_SEMAPHORE12_MEM_SEMAPHORE12_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_IC_LOCKER_ID register.
+//
+//******************************************************************************
+#define OCP_SHARED_IC_LOCKER_ID_MEM_IC_LOCKER_ID_M \
+ 0x00000007 // This register is used for
+ // allowing only one master OCP to
+ // perform write transactions to the
+ // OCP slaves. Each bit represents
+ // an IP in the following format: {
+ // JTAG,WLAN, NWP mcu}. As any of
+ // the bits is set to one, the
+ // correlating IP is preventing the
+ // other IP's from performing write
+ // transactions to the slaves. As
+ // the Inter Connect is locked, the
+ // only the locking IP can write to
+ // the register and by that
+ // releasing the lock. 3'b000 => IC
+ // is not locked. 3'b001 => IC is
+ // locked by NWP mcu. 3'b010 => IC
+ // is locked by WLAN. 3'b100 => IC
+ // is locked by JTAG.
+
+#define OCP_SHARED_IC_LOCKER_ID_MEM_IC_LOCKER_ID_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_MCU_SEMAPHORE_PEND register.
+//
+//******************************************************************************
+#define OCP_SHARED_MCU_SEMAPHORE_PEND_MEM_MCU_SEMAPHORE_PEND_M \
+ 0x0000FFFF // This register specifies the
+ // semaphore for which the NWP mcu
+ // is waiting to be released. It is
+ // set to the serial number of a
+ // given locked semaphore after it
+ // was read by the NWP mcu. Only
+ // [11:0] is used.
+
+#define OCP_SHARED_MCU_SEMAPHORE_PEND_MEM_MCU_SEMAPHORE_PEND_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_WL_SEMAPHORE_PEND register.
+//
+//******************************************************************************
+#define OCP_SHARED_WL_SEMAPHORE_PEND_MEM_WL_SEMAPHORE_PEND_M \
+ 0x0000FFFF // This register specifies the
+ // semaphore for which the WLAN is
+ // waiting to be released. It is set
+ // to the serial number of a given
+ // locked semaphore after it was
+ // read by the WLAN. Only [11:0] is
+ // used.
+
+#define OCP_SHARED_WL_SEMAPHORE_PEND_MEM_WL_SEMAPHORE_PEND_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_PLATFORM_DETECTION_RD_ONLY register.
+//
+//******************************************************************************
+#define OCP_SHARED_PLATFORM_DETECTION_RD_ONLY_PLATFORM_DETECTION_M \
+ 0x0000FFFF // This information serves the IPs
+ // for knowing in which platform are
+ // they integrated at: 0 = CC31XX.
+
+#define OCP_SHARED_PLATFORM_DETECTION_RD_ONLY_PLATFORM_DETECTION_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SEMAPHORES_STATUS_RD_ONLY register.
+//
+//******************************************************************************
+#define OCP_SHARED_SEMAPHORES_STATUS_RD_ONLY_SEMAPHORES_STATUS_M \
+ 0x00000FFF // Captured/released semaphores
+ // status for the 12 semaphores.
+ // Each bit of the 12 bits
+ // represents a semaphore. 0 =>
+ // Semaphore Free. 1 => Semaphore
+ // Captured.
+
+#define OCP_SHARED_SEMAPHORES_STATUS_RD_ONLY_SEMAPHORES_STATUS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_CC3XX_CONFIG_CTRL register.
+//
+//******************************************************************************
+#define OCP_SHARED_CC3XX_CONFIG_CTRL_MEM_IC_TO_EN \
+ 0x00000010 // This bit is used to enable
+ // timeout mechanism for top_ocp_ic
+ // (for debug puropse). When 1 value
+ // , in case any ocp slave doesn't
+ // give sresponse within 16 cylcles
+ // top_ic will give error response
+ // itself to avoid bus hange.
+
+#define OCP_SHARED_CC3XX_CONFIG_CTRL_MEM_ALT_PC_EN_APPS \
+ 0x00000008 // 1 bit should be accessible only
+ // in devinit. This will enable 0x4
+ // hack for apps processor
+
+#define OCP_SHARED_CC3XX_CONFIG_CTRL_MEM_ALT_PC_EN_NW \
+ 0x00000004 // 1 bit, should be accessible only
+ // in devinit. This will enable 0x4
+ // hack for nw processor
+
+#define OCP_SHARED_CC3XX_CONFIG_CTRL_MEM_EXTEND_NW_ROM \
+ 0x00000002 // When set NW can take over apps
+ // rom and flash via IDCODE bus.
+ // Apps will able to access this
+ // register only during devinit and
+ // reset value should be 0.
+
+#define OCP_SHARED_CC3XX_CONFIG_CTRL_MEM_WLAN_HOST_INTF_SEL \
+ 0x00000001 // When this bit is set to 0 WPSI
+ // host interface wil be selected,
+ // when this bit is set to 1 , WLAN
+ // host async bridge will be
+ // selected.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_CC3XX_SHARED_MEM_SEL_LSB register.
+//
+//******************************************************************************
+#define OCP_SHARED_CC3XX_SHARED_MEM_SEL_LSB_MEM_SHARED_MEM_SEL_LSB_M \
+ 0x3FFFFFFF // This register provides memss RAM
+ // column configuration for column 0
+ // to 9. 3 bits are allocated per
+ // column. This register is required
+ // to be configured before starting
+ // RAM access. Changing register
+ // setting while code is running
+ // will result into unpredictable
+ // memory behaviour. Register is
+ // supported to configured ones
+ // after core is booted up. 3 bit
+ // encoding per column is as
+ // follows: when 000 : WLAN, 001:
+ // NWP, 010: APPS, 011: PHY, 100:
+ // OCLA column 0 select: bit [2:0]
+ // :when 000 -> WLAN,001 -> NWP,010
+ // -> APPS, 011 -> PHY, 100 -> OCLA
+ // column 1 select: bit [5:3]
+ // :column 2 select: bit [8 : 6]:
+ // column 3 select : bit [11: 9]
+ // column 4 select : bit [14:12]
+ // column 5 select : bit [17:15]
+ // column 6 select : bit [20:18]
+ // column 7 select : bit [23:21]
+ // column 8 select : bit [26:24]
+ // column 9 select : bit [29:27]
+ // column 10 select
+
+#define OCP_SHARED_CC3XX_SHARED_MEM_SEL_LSB_MEM_SHARED_MEM_SEL_LSB_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_CC3XX_SHARED_MEM_SEL_MSB register.
+//
+//******************************************************************************
+#define OCP_SHARED_CC3XX_SHARED_MEM_SEL_MSB_MEM_SHARED_MEM_SEL_MSB_M \
+ 0x00000FFF // This register provides memss RAM
+ // column configuration for column
+ // 10 to 15. 3 bits are allocated
+ // per column. This register is
+ // required to be configured before
+ // starting RAM access. Changing
+ // register setting while code is
+ // running will result into
+ // unpredictable memory behaviour.
+ // Register is supported to
+ // configured ones after core is
+ // booted up. 3 bit encoding per
+ // column is as follows: when 000 :
+ // WLAN, 001: NWP, 010: APPS, 011:
+ // PHY, 100: OCLA column 11 select :
+ // bit [2:0] column 12 select : bit
+ // [5:3] column 13 select : bit [8 :
+ // 6] column 14 select :
+
+#define OCP_SHARED_CC3XX_SHARED_MEM_SEL_MSB_MEM_SHARED_MEM_SEL_MSB_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_WLAN_ELP_WAKE_EN register.
+//
+//******************************************************************************
+#define OCP_SHARED_WLAN_ELP_WAKE_EN_MEM_WLAN_ELP_WAKE_EN \
+ 0x00000001 // when '1' : signal will enabled
+ // ELP power doamin when '0': ELP is
+ // not powered up.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_DEVINIT_ROM_START_ADDR register.
+//
+//******************************************************************************
+#define OCP_SHARED_DEVINIT_ROM_START_ADDR_MEM_DEVINIT_ROM_START_ADDR_M \
+ 0xFFFFFFFF // 32 bit, Writable only during
+ // devinit, and whole 32 bit should
+ // be output of the config register
+ // module. This register is not used
+ // , similar register availble in
+ // GPRCM space.
+
+#define OCP_SHARED_DEVINIT_ROM_START_ADDR_MEM_DEVINIT_ROM_START_ADDR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_DEVINIT_ROM_END_ADDR register.
+//
+//******************************************************************************
+#define OCP_SHARED_DEVINIT_ROM_END_ADDR_MEM_DEVINIT_ROM_END_ADDR_M \
+ 0xFFFFFFFF // 32 bit, Writable only during
+ // devinit, and whole 32 bit should
+ // be output of the config register
+ // module.
+
+#define OCP_SHARED_DEVINIT_ROM_END_ADDR_MEM_DEVINIT_ROM_END_ADDR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SSBD_SEED register.
+//
+//******************************************************************************
+#define OCP_SHARED_SSBD_SEED_MEM_SSBD_SEED_M \
+ 0xFFFFFFFF // 32 bit, Writable only during
+ // devinit, and whole 32 bit should
+ // be output of the config register
+ // module.
+
+#define OCP_SHARED_SSBD_SEED_MEM_SSBD_SEED_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SSBD_CHK register.
+//
+//******************************************************************************
+#define OCP_SHARED_SSBD_CHK_MEM_SSBD_CHK_M \
+ 0xFFFFFFFF // 32 bit, Writable only during
+ // devinit, and whole 32 bit should
+ // be output of the config register
+ // module.
+
+#define OCP_SHARED_SSBD_CHK_MEM_SSBD_CHK_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SSBD_POLY_SEL register.
+//
+//******************************************************************************
+#define OCP_SHARED_SSBD_POLY_SEL_MEM_SSBD_POLY_SEL_M \
+ 0x00000003 // 2 bit, Writable only during
+ // devinit, and whole 2 bit should
+ // be output of the config register
+ // module.
+
+#define OCP_SHARED_SSBD_POLY_SEL_MEM_SSBD_POLY_SEL_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SPARE_REG_0 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SPARE_REG_0_MEM_SPARE_REG_0_M \
+ 0xFFFFFFFF // Devinit code should look for
+ // whether corresponding fuse is
+ // blown and if blown write to the
+ // 11th bit of this register to
+ // disable flshtst interface
+
+#define OCP_SHARED_SPARE_REG_0_MEM_SPARE_REG_0_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SPARE_REG_1 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SPARE_REG_1_MEM_SPARE_REG_1_M \
+ 0xFFFFFFFF // NWP Software register
+
+#define OCP_SHARED_SPARE_REG_1_MEM_SPARE_REG_1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SPARE_REG_2 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SPARE_REG_2_MEM_SPARE_REG_2_M \
+ 0xFFFFFFFF // NWP Software register
+
+#define OCP_SHARED_SPARE_REG_2_MEM_SPARE_REG_2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SPARE_REG_3 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SPARE_REG_3_MEM_SPARE_REG_3_M \
+ 0xFFFFFFFF // APPS Software register
+
+#define OCP_SHARED_SPARE_REG_3_MEM_SPARE_REG_3_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_0 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_0_MEM_GPIO_PAD_CONFIG_0_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." "For example in
+ // case of I2C Value gets latched at
+ // rising edge of RET33.""" """ 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_0_MEM_GPIO_PAD_CONFIG_0_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_1 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_1_MEM_GPIO_PAD_CONFIG_1_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_1_MEM_GPIO_PAD_CONFIG_1_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_2 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_2_MEM_GPIO_PAD_CONFIG_2_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_2_MEM_GPIO_PAD_CONFIG_2_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_3 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_3_MEM_GPIO_PAD_CONFIG_3_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_3_MEM_GPIO_PAD_CONFIG_3_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_4 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_4_MEM_GPIO_PAD_CONFIG_4_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_4_MEM_GPIO_PAD_CONFIG_4_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_5 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_5_MEM_GPIO_PAD_CONFIG_5_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_5_MEM_GPIO_PAD_CONFIG_5_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_6 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_6_MEM_GPIO_PAD_CONFIG_6_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_6_MEM_GPIO_PAD_CONFIG_6_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_7 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_7_MEM_GPIO_PAD_CONFIG_7_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_7_MEM_GPIO_PAD_CONFIG_7_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_8 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_8_MEM_GPIO_PAD_CONFIG_8_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_8_MEM_GPIO_PAD_CONFIG_8_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_9 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_9_MEM_GPIO_PAD_CONFIG_9_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_9_MEM_GPIO_PAD_CONFIG_9_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_10 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_10_MEM_GPIO_PAD_CONFIG_10_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_10_MEM_GPIO_PAD_CONFIG_10_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_11 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_11_MEM_GPIO_PAD_CONFIG_11_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_11_MEM_GPIO_PAD_CONFIG_11_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_12 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_12_MEM_GPIO_PAD_CONFIG_12_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_12_MEM_GPIO_PAD_CONFIG_12_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_13 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_13_MEM_GPIO_PAD_CONFIG_13_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_13_MEM_GPIO_PAD_CONFIG_13_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_14 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_14_MEM_GPIO_PAD_CONFIG_14_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_14_MEM_GPIO_PAD_CONFIG_14_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_15 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_15_MEM_GPIO_PAD_CONFIG_15_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_15_MEM_GPIO_PAD_CONFIG_15_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_16 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_16_MEM_GPIO_PAD_CONFIG_16_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_16_MEM_GPIO_PAD_CONFIG_16_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_17 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_17_MEM_GPIO_PAD_CONFIG_17_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_17_MEM_GPIO_PAD_CONFIG_17_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_18 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_18_MEM_GPIO_PAD_CONFIG_18_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_18_MEM_GPIO_PAD_CONFIG_18_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_19 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_19_MEM_GPIO_PAD_CONFIG_19_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_19_MEM_GPIO_PAD_CONFIG_19_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_20 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_20_MEM_GPIO_PAD_CONFIG_20_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_20_MEM_GPIO_PAD_CONFIG_20_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_21 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_21_MEM_GPIO_PAD_CONFIG_21_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_21_MEM_GPIO_PAD_CONFIG_21_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_22 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_22_MEM_GPIO_PAD_CONFIG_22_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_22_MEM_GPIO_PAD_CONFIG_22_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_23 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_23_MEM_GPIO_PAD_CONFIG_23_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_23_MEM_GPIO_PAD_CONFIG_23_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_24 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_24_MEM_GPIO_PAD_CONFIG_24_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_24_MEM_GPIO_PAD_CONFIG_24_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_25 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_25_MEM_GPIO_PAD_CONFIG_25_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_25_MEM_GPIO_PAD_CONFIG_25_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_26 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_26_MEM_GPIO_PAD_CONFIG_26_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_26_MEM_GPIO_PAD_CONFIG_26_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_27 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_27_MEM_GPIO_PAD_CONFIG_27_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_27_MEM_GPIO_PAD_CONFIG_27_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_28 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_28_MEM_GPIO_PAD_CONFIG_28_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_28_MEM_GPIO_PAD_CONFIG_28_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_29 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_29_MEM_GPIO_PAD_CONFIG_29_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_29_MEM_GPIO_PAD_CONFIG_29_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_30 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_30_MEM_GPIO_PAD_CONFIG_30_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_30_MEM_GPIO_PAD_CONFIG_30_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_31 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_31_MEM_GPIO_PAD_CONFIG_31_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_31_MEM_GPIO_PAD_CONFIG_31_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_32 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_32_MEM_GPIO_PAD_CONFIG_32_M \
+ 0x00000FFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." it can be used
+ // for I2C type of peripherals. 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_32_MEM_GPIO_PAD_CONFIG_32_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_33 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_33_MEM_GPIO_PAD_CONFIG_33_M \
+ 0x0000003F // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 5 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'. IODEN and I8MAEN
+ // is diesabled for all development
+ // IO's. These signals are tied to
+ // logic level '0'. common control
+ // is implemented for I2MAEN,
+ // I4MAEN, WKPU, WKPD control .
+ // refer dev_pad_cmn_config register
+ // bits.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_33_MEM_GPIO_PAD_CONFIG_33_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_34 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_34_MEM_GPIO_PAD_CONFIG_34_M \
+ 0x0000003F // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 5 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'. IODEN and I8MAEN
+ // is diesabled for all development
+ // IO's. These signals are tied to
+ // logic level '0'. common control
+ // is implemented for I2MAEN,
+ // I4MAEN, WKPU, WKPD control .
+ // refer dev_pad_cmn_config register
+ // bits.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_34_MEM_GPIO_PAD_CONFIG_34_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_35 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_35_MEM_GPIO_PAD_CONFIG_35_M \
+ 0x0000003F // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 5 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'. IODEN and I8MAEN
+ // is diesabled for all development
+ // IO's. These signals are tied to
+ // logic level '0'. common control
+ // is implemented for I2MAEN,
+ // I4MAEN, WKPU, WKPD control .
+ // refer dev_pad_cmn_config register
+ // bits.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_35_MEM_GPIO_PAD_CONFIG_35_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_36 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_36_MEM_GPIO_PAD_CONFIG_36_M \
+ 0x0000003F // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 5 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'. IODEN and I8MAEN
+ // is diesabled for all development
+ // IO's. These signals are tied to
+ // logic level '0'. common control
+ // is implemented for I2MAEN,
+ // I4MAEN, WKPU, WKPD control .
+ // refer dev_pad_cmn_config register
+ // bits.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_36_MEM_GPIO_PAD_CONFIG_36_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_37 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_37_MEM_GPIO_PAD_CONFIG_37_M \
+ 0x0000003F // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 5 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'. IODEN and I8MAEN
+ // is diesabled for all development
+ // IO's. These signals are tied to
+ // logic level '0'. common control
+ // is implemented for I2MAEN,
+ // I4MAEN, WKPU, WKPD control .
+ // refer dev_pad_cmn_config register
+ // bits.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_37_MEM_GPIO_PAD_CONFIG_37_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_38 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_38_MEM_GPIO_PAD_CONFIG_38_M \
+ 0x0000003F // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 5 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'. IODEN and I8MAEN
+ // is diesabled for all development
+ // IO's. These signals are tied to
+ // logic level '0'. common control
+ // is implemented for I2MAEN,
+ // I4MAEN, WKPU, WKPD control .
+ // refer dev_pad_cmn_config register
+ // bits.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_38_MEM_GPIO_PAD_CONFIG_38_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_39 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_39_MEM_GPIO_PAD_CONFIG_39_M \
+ 0x0000003F // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 5 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'. IODEN and I8MAEN
+ // is diesabled for all development
+ // IO's. These signals are tied to
+ // logic level '0'. common control
+ // is implemented for I2MAEN,
+ // I4MAEN, WKPU, WKPD control .
+ // refer dev_pad_cmn_config register
+ // bits.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_39_MEM_GPIO_PAD_CONFIG_39_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CONFIG_40 register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CONFIG_40_MEM_GPIO_PAD_CONFIG_40_M \
+ 0x0007FFFF // GPIO 0 register: "Bit 0 - 3 is
+ // used for PAD IO mode selection.
+ // io_register={ "" 0 =>
+ // """"CONFMODE[0]"""""" "" 1 =>
+ // """"CONFMODE[1]"""""" "" 2 =>
+ // """"CONFMODE[2]"""""" "" 3 =>
+ // """"CONFMODE[3]"""" 4 =>
+ // """"IODEN"""" --> When level ‘1’
+ // this disables the PMOS xtors of
+ // the output stages making them
+ // open-drain type." "For example in
+ // case of I2C Value gets latched at
+ // rising edge of RET33.""" """ 5 =>
+ // """"I2MAEN"""" --> Level ‘1’
+ // enables the approx 2mA output
+ // stage""" """ 6 => """"I4MAEN""""
+ // --> Level ‘1’ enables the approx
+ // 4mA output stage""" """ 7 =>
+ // """"I8MAEN"""" --> Level ‘1’
+ // enables the approx 8mA output
+ // stage. Note: any drive strength
+ // between 2mA and 14mA can be
+ // obtained with combination of 2mA
+ // 4mA and 8mA.""" """ 8 =>
+ // """"IWKPUEN"""" --> 10uA pull up
+ // (weak strength)""" """ 9 =>
+ // """"IWKPDEN"""" --> 10uA pull
+ // down (weak strength)""" """ 10 =>
+ // """"IOE_N"""" --> output enable
+ // value. level ‘0’ enables the IDO
+ // to PAD path. Else PAD is
+ // tristated (except for the PU/PD
+ // which are independent)." "Value
+ // gets latched at rising edge of
+ // RET33""" """ 11 =>""""
+ // IOE_N_OV"""" --> output enable
+ // overirde. when bit is set to
+ // logic '1' IOE_N (bit 4) value
+ // will control IO IOE_N signal else
+ // IOE_N is control via selected HW
+ // logic. strong PULL UP and PULL
+ // Down control is disabled for all
+ // IO's. both controls are tied to
+ // logic level '0'.
+
+#define OCP_SHARED_GPIO_PAD_CONFIG_40_MEM_GPIO_PAD_CONFIG_40_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_GPIO_PAD_CMN_CONFIG register.
+//
+//******************************************************************************
+#define OCP_SHARED_GPIO_PAD_CMN_CONFIG_MEM_D2D_ISO_A_EN \
+ 0x00000080 // when '1' enable ISO A control to
+ // D2D Pads else ISO is disabled.
+ // For these PADS to be functional
+ // this signals should be set 0.
+
+#define OCP_SHARED_GPIO_PAD_CMN_CONFIG_MEM_D2D_ISO_Y_EN \
+ 0x00000040 // when '1' enable ISO Y control to
+ // D2D Pads else ISO is disabled.
+ // For these PADS to be functional
+ // this signals should be set 0.
+
+#define OCP_SHARED_GPIO_PAD_CMN_CONFIG_MEM_PAD_JTAG_IDIEN \
+ 0x00000020 // If level ‘1’ enables the PAD to
+ // ODI path for JTAG PADS [PAD 23,
+ // 24, 28, 29]. Else ODI is pulled
+ // ‘Low’ regardless of PAD level."
+ // "Value gets latched at rising
+ // edge of RET33.""" """
+
+#define OCP_SHARED_GPIO_PAD_CMN_CONFIG_MEM_PAD_HYSTVAL_M \
+ 0x00000018 // 00’: hysteriris = 10% of VDDS
+ // (difference between upper and
+ // lower threshold of the schmit
+ // trigger) ‘01’: hysteriris = 20%
+ // of VDDS (difference between upper
+ // and lower threshold of the schmit
+ // trigger) ‘10’: hysteriris = 30%
+ // of VDDS (difference between upper
+ // and lower threshold of the schmit
+ // trigger) ‘11’: hysteriris = 40%
+ // of VDDS (difference between upper
+ // and lower threshold of the schmit
+ // trigger)" """
+
+#define OCP_SHARED_GPIO_PAD_CMN_CONFIG_MEM_PAD_HYSTVAL_S 3
+#define OCP_SHARED_GPIO_PAD_CMN_CONFIG_MEM_PAD_HYSTEN \
+ 0x00000004 // If logic ‘0’ there is no
+ // hysteresis. Set to ‘1’ to enable
+ // hysteresis. Leave the choice to
+ // customers"""
+
+#define OCP_SHARED_GPIO_PAD_CMN_CONFIG_MEM_PAD_IBIASEN \
+ 0x00000002 // Normal functional operation set
+ // this to logic ‘1’ to increase the
+ // speed of the o/p buffer at the
+ // cost of 0.2uA static current
+ // consumption per IO. During IDDQ
+ // test and during Hibernate this
+ // would be forced to logic ‘0’.
+ // Value is not latched at rising
+ // edge of RET33.""
+
+#define OCP_SHARED_GPIO_PAD_CMN_CONFIG_MEM_PAD_IDIEN \
+ 0x00000001 // If level ‘1’ enables the PAD to
+ // ODI path. Else ODI is pulled
+ // ‘Low’ regardless of PAD level."
+ // "Value gets latched at rising
+ // edge of RET33.""" """
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_D2D_DEV_PAD_CMN_CONFIG register.
+//
+//******************************************************************************
+#define OCP_SHARED_D2D_DEV_PAD_CMN_CONFIG_MEM_DEV_PAD_CMN_CONF_M \
+ 0x0000003F // this register implements common
+ // IO control to all devement mode
+ // PADs; these PADs are DEV_PAD33 to
+ // DEV_PAD39. Bit [1:0] : Drive
+ // strength control. These 2 bits
+ // are connected to DEV PAD drive
+ // strength control. possible drive
+ // stregnths are 2MA, 4MA and 6 MA
+ // for the these IO's. bit 0: when
+ // set to logic value '1' enable 2MA
+ // drive strength for DEVPAD01 to 07
+ // bit 1: when set to logic value
+ // '1' enable 4MA drive strength for
+ // DEVPAD01 to 07. bit[3:2] : WK
+ // PULL UP and PULL down control.
+ // These 2 bits provide IWKPUEN and
+ // IWKPDEN control for all DEV IO's.
+ // bit 2: when set to logic value
+ // '1' enable WKPU to DEVPAD01 to 07
+ // bit 3: when set to logic value
+ // '1' enable WKPD to DEVPAD01 to
+ // 07. bit 4: WK PULL control for
+ // DEV_PKG_DETECT pin. when '1'
+ // pullup enabled else it is
+ // disable. bit 5: when set to logic
+ // value '1' enable 8MA drive
+ // strength for DEVPAD01 to 07.
+
+#define OCP_SHARED_D2D_DEV_PAD_CMN_CONFIG_MEM_DEV_PAD_CMN_CONF_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_D2D_TOSTACK_PAD_CONF register.
+//
+//******************************************************************************
+#define OCP_SHARED_D2D_TOSTACK_PAD_CONF_MEM_D2D_TOSTACK_PAD_CONF_M \
+ 0x1FFFFFFF // OEN/OEN2X control. When 0 : Act
+ // as input buffer else output
+ // buffer with drive strength 2.
+ // this register control OEN2X pin
+ // of D2D TOSTACK PAD: OEN1X and
+ // OEN2X decoding is as follows:
+ // "when ""00"" :" "when ""01"" :
+ // dirve strength is '1' and output
+ // buffer enabled." "when ""10"" :
+ // drive strength is 2 and output
+ // buffer is disabled." "when ""11""
+ // : dirve strength is '3' and
+ // output buffer enabled."
+
+#define OCP_SHARED_D2D_TOSTACK_PAD_CONF_MEM_D2D_TOSTACK_PAD_CONF_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_D2D_MISC_PAD_CONF register.
+//
+//******************************************************************************
+#define OCP_SHARED_D2D_MISC_PAD_CONF_MEM_D2D_POR_RESET_N \
+ 0x00000200 // This register provide OEN2X
+ // control to D2D PADS OEN/OEN2X
+ // control. When 0 : Act as input
+ // buffer else output buffer with
+ // drive strength 2.
+
+#define OCP_SHARED_D2D_MISC_PAD_CONF_MEM_D2D_RESET_N \
+ 0x00000100 // OEN/OEN2X control. When 0 : Act
+ // as input buffer else output
+ // buffer with drive strength 2.
+
+#define OCP_SHARED_D2D_MISC_PAD_CONF_MEM_D2D_HCLK \
+ 0x00000080 // OEN/OEN2X control. When 0 : Act
+ // as input buffer else output
+ // buffer with drive strength 2.
+
+#define OCP_SHARED_D2D_MISC_PAD_CONF_MEM_D2D_JTAG_TCK \
+ 0x00000040 // OEN/OEN2X control. When 0 : Act
+ // as input buffer else output
+ // buffer with drive strength 2.
+
+#define OCP_SHARED_D2D_MISC_PAD_CONF_MEM_D2D_JTAG_TMS \
+ 0x00000020 // OEN/OEN2X control. When 0 : Act
+ // as input buffer else output
+ // buffer with drive strength 2.
+
+#define OCP_SHARED_D2D_MISC_PAD_CONF_MEM_D2D_JTAG_TDI \
+ 0x00000010 // OEN/OEN2X control. When 0 : Act
+ // as input buffer else output
+ // buffer with drive strength 2.
+
+#define OCP_SHARED_D2D_MISC_PAD_CONF_MEM_D2D_PIOSC \
+ 0x00000008 // OEN/OEN2X control. When 0 : Act
+ // as input buffer else output
+ // buffer with drive strength 2.
+
+#define OCP_SHARED_D2D_MISC_PAD_CONF_MEM_D2D_SPARE_M \
+ 0x00000007 // D2D SPARE PAD OEN/OEN2X control.
+ // When 0: Act as input buffer else
+ // output buffer with drive strength
+ // 2.
+
+#define OCP_SHARED_D2D_MISC_PAD_CONF_MEM_D2D_SPARE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SOP_CONF_OVERRIDE register.
+//
+//******************************************************************************
+#define OCP_SHARED_SOP_CONF_OVERRIDE_MEM_SOP_CONF_OVERRIDE \
+ 0x00000001 // when '1' : signal will ovberride
+ // SoP setting of JTAG PADS. when
+ // '0': SoP setting will control
+ // JTAG PADs [ TDI, TDO, TMS, TCK]
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_CC3XX_DEBUGSS_STATUS register.
+//
+//******************************************************************************
+#define OCP_SHARED_CC3XX_DEBUGSS_STATUS_APPS_MCU_JTAGNSW \
+ 0x00000020 // This register contains debug
+ // subsystem status bits From APPS
+ // MCU status bit to indicates
+ // whether serial wire or 4 pins
+ // jtag select.
+
+#define OCP_SHARED_CC3XX_DEBUGSS_STATUS_CJTAG_BYPASS_STATUS \
+ 0x00000010 // cjtag bypass bit select
+
+#define OCP_SHARED_CC3XX_DEBUGSS_STATUS_SW_INTERFACE_SEL_STATUS \
+ 0x00000008 // serial wire interface bit select
+
+#define OCP_SHARED_CC3XX_DEBUGSS_STATUS_APPS_TAP_ENABLE_STATUS \
+ 0x00000004 // apps tap enable status
+
+#define OCP_SHARED_CC3XX_DEBUGSS_STATUS_TAPS_ENABLE_STATUS \
+ 0x00000002 // tap enable status
+
+#define OCP_SHARED_CC3XX_DEBUGSS_STATUS_SSBD_UNLOCK \
+ 0x00000001 // ssbd unlock status
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_CC3XX_DEBUGMUX_SEL register.
+//
+//******************************************************************************
+#define OCP_SHARED_CC3XX_DEBUGMUX_SEL_MEM_CC3XX_DEBUGMUX_SEL_M \
+ 0x0000FFFF // debug mux select register. Upper
+ // 8 bits are used for debug module
+ // selection. Lower 8 bit [7:0] used
+ // inside debug module for selecting
+ // module specific signals.
+ // Bits[15:8: when set x"00" : GPRCM
+ // debug bus. When "o1" : SDIO debug
+ // debug bus when x"02" :
+ // autonoumous SPI when x"03" :
+ // TOPIC when x"04": memss when
+ // x"25": mcu debug bus : APPS debug
+ // when x"45": mcu debug bus : NWP
+ // debug when x"65": mcu debug bus :
+ // AHB2VBUS debug when x"85": mcu
+ // debug bus : VBUS2HAB debug when
+ // x"95": mcu debug bus : RCM debug
+ // when x"A5": mcu debug bus :
+ // crypto debug when x"06": WLAN
+ // debug bus when x"07": debugss bus
+ // when x"08": ADC debug when x"09":
+ // SDIO PHY debug bus then "others"
+ // : no debug is selected
+
+#define OCP_SHARED_CC3XX_DEBUGMUX_SEL_MEM_CC3XX_DEBUGMUX_SEL_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_ALT_PC_VAL_NW register.
+//
+//******************************************************************************
+#define OCP_SHARED_ALT_PC_VAL_NW_MEM_ALT_PC_VAL_NW_M \
+ 0xFFFFFFFF // 32 bit. Program counter value
+ // for 0x4 address when Alt_pc_en_nw
+ // is set.
+
+#define OCP_SHARED_ALT_PC_VAL_NW_MEM_ALT_PC_VAL_NW_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_ALT_PC_VAL_APPS register.
+//
+//******************************************************************************
+#define OCP_SHARED_ALT_PC_VAL_APPS_MEM_ALT_PC_VAL_APPS_M \
+ 0xFFFFFFFF // 32 bit. Program counter value
+ // for 0x4 address when
+ // Alt_pc_en_apps is set
+
+#define OCP_SHARED_ALT_PC_VAL_APPS_MEM_ALT_PC_VAL_APPS_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SPARE_REG_4 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SPARE_REG_4_MEM_SPARE_REG_4_M \
+ 0xFFFFFFFE // HW register
+
+#define OCP_SHARED_SPARE_REG_4_MEM_SPARE_REG_4_S 1
+#define OCP_SHARED_SPARE_REG_4_INVERT_D2D_INTERFACE \
+ 0x00000001 // Data to the top die launched at
+ // negative edge instead of positive
+ // edge.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SPARE_REG_5 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SPARE_REG_5_MEM_SPARE_REG_5_M \
+ 0xFFFFFFFF // HW register
+
+#define OCP_SHARED_SPARE_REG_5_MEM_SPARE_REG_5_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SH_SPI_CS_MASK register.
+//
+//******************************************************************************
+#define OCP_SHARED_SH_SPI_CS_MASK_MEM_SH_SPI_CS_MASK_M \
+ 0x0000000F // ( chip select 0 is unmasked
+ // after reset. When ‘1’ : CS is
+ // unmasked or else masked. Valid
+ // configurations are 1000, 0100,
+ // 0010 or 0001. Any other setting
+ // can lead to unpredictable
+ // behavior.
+
+#define OCP_SHARED_SH_SPI_CS_MASK_MEM_SH_SPI_CS_MASK_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_CC3XX_DEVICE_TYPE register.
+//
+//******************************************************************************
+#define OCP_SHARED_CC3XX_DEVICE_TYPE_DEVICE_TYPE_reserved_M \
+ 0x00000060 // reserved bits tied off "00".
+
+#define OCP_SHARED_CC3XX_DEVICE_TYPE_DEVICE_TYPE_reserved_S 5
+#define OCP_SHARED_CC3XX_DEVICE_TYPE_DEVICE_TYPE_M \
+ 0x0000001F // CC3XX Device type information.
+
+#define OCP_SHARED_CC3XX_DEVICE_TYPE_DEVICE_TYPE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_MEM_TOPMUXCTRL_IFORCE register.
+//
+//******************************************************************************
+#define OCP_SHARED_MEM_TOPMUXCTRL_IFORCE_MEM_TOPMUXCTRL_IFORCE1_M \
+ 0x000000F0 // [4] 1: switch between
+ // WLAN_I2C_SCL and
+ // TOP_GPIO_PORT4_I2C closes 0:
+ // switch opens [5] 1: switch
+ // between WLAN_I2C_SCL and
+ // TOP_VSENSE_PORT closes 0: switch
+ // opens [6] 1: switch between
+ // WLAN_I2C_SCL and WLAN_ANA_TP4
+ // closes 0: switch opens [7]
+ // Reserved
+
+#define OCP_SHARED_MEM_TOPMUXCTRL_IFORCE_MEM_TOPMUXCTRL_IFORCE1_S 4
+#define OCP_SHARED_MEM_TOPMUXCTRL_IFORCE_MEM_TOPMUXCTRL_IFORCE_M \
+ 0x0000000F // [0] 1: switch between
+ // WLAN_I2C_SDA and
+ // TOP_GPIO_PORT3_I2C closes 0:
+ // switch opens [1] 1: switch
+ // between WLAN_I2C_SDA and
+ // TOP_IFORCE_PORT closes 0: switch
+ // opens [2] 1: switch between
+ // WLAN_I2C_SDA and WLAN_ANA_TP3
+ // closes 0: switch opens [3]
+ // Reserved
+
+#define OCP_SHARED_MEM_TOPMUXCTRL_IFORCE_MEM_TOPMUXCTRL_IFORCE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_CC3XX_DEV_PACKAGE_DETECT register.
+//
+//******************************************************************************
+#define OCP_SHARED_CC3XX_DEV_PACKAGE_DETECT_DEV_PKG_DETECT \
+ 0x00000001 // when '0' indicates package type
+ // is development.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_AUTONMS_SPICLK_SEL register.
+//
+//******************************************************************************
+#define OCP_SHARED_AUTONMS_SPICLK_SEL_MEM_AUTONOMOUS_BYPASS \
+ 0x00000002 // This bit is used to bypass MCPSI
+ // autonomous mode .if this bit is 1
+ // autonomous MCSPI logic will be
+ // bypassed and it will act as link
+ // SPI
+
+#define OCP_SHARED_AUTONMS_SPICLK_SEL_MEM_AUTONMS_SPICLK_SEL \
+ 0x00000001 // This bit is used in SPI
+ // Autonomous mode to switch clock
+ // from system clock to SPI clk that
+ // is coming from PAD. When value 1
+ // PAD SPI clk is used as system
+ // clock in LPDS mode by SPI as well
+ // as autonomous wrapper logic.
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_CC3XX_DEV_PADCONF register.
+//
+//******************************************************************************
+#define OCP_SHARED_CC3XX_DEV_PADCONF_MEM_CC3XX_DEV_PADCONF_M \
+ 0x0000FFFF
+
+#define OCP_SHARED_CC3XX_DEV_PADCONF_MEM_CC3XX_DEV_PADCONF_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_IDMEM_TIM_UPDATE register.
+//
+//******************************************************************************
+#define OCP_SHARED_IDMEM_TIM_UPDATE_MEM_IDMEM_TIM_UPDATE_M \
+ 0xFFFFFFFF
+
+#define OCP_SHARED_IDMEM_TIM_UPDATE_MEM_IDMEM_TIM_UPDATE_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SPARE_REG_6 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SPARE_REG_6_MEM_SPARE_REG_6_M \
+ 0xFFFFFFFF // NWP Software register
+
+#define OCP_SHARED_SPARE_REG_6_MEM_SPARE_REG_6_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_SPARE_REG_7 register.
+//
+//******************************************************************************
+#define OCP_SHARED_SPARE_REG_7_MEM_SPARE_REG_7_M \
+ 0xFFFFFFFF // NWP Software register
+
+#define OCP_SHARED_SPARE_REG_7_MEM_SPARE_REG_7_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_APPS_WLAN_ORBIT register.
+//
+//******************************************************************************
+#define OCP_SHARED_APPS_WLAN_ORBIT_mem_orbit_spare_M \
+ 0xFFFFFC00 // Spare bit
+
+#define OCP_SHARED_APPS_WLAN_ORBIT_mem_orbit_spare_S 10
+#define OCP_SHARED_APPS_WLAN_ORBIT_mem_orbit_test_status \
+ 0x00000200 // A rising edge on this bit
+ // indicates that the test case
+ // passes. This bit would be brought
+ // out on the pin interface during
+ // ORBIT.
+
+#define OCP_SHARED_APPS_WLAN_ORBIT_mem_orbit_test_exec \
+ 0x00000100 // This register bit is writable by
+ // the FW and when set to 1 it
+ // indicates the start of a test
+ // execution. A failing edge on this
+ // bit indicates that the test
+ // execution is complete. This bit
+ // would be brought out on the pin
+ // interface during ORBIT.
+
+#define OCP_SHARED_APPS_WLAN_ORBIT_mem_orbit_test_id_M \
+ 0x000000FC // Implies the test case ID that
+ // needs to run.
+
+#define OCP_SHARED_APPS_WLAN_ORBIT_mem_orbit_test_id_S 2
+#define OCP_SHARED_APPS_WLAN_ORBIT_mem_orbit_halt_proc \
+ 0x00000002 // This bit is used to trigger the
+ // execution of test cases within
+ // the (ROM based) IP.
+
+#define OCP_SHARED_APPS_WLAN_ORBIT_mem_orbit_test_mode \
+ 0x00000001 // When this bit is 1 it implies
+ // ORBIT mode of operation and the
+ // (ROM based) IP start the
+ // execution from a test case
+ // perspective
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// OCP_SHARED_O_APPS_WLAN_SCRATCH_PAD register.
+//
+//******************************************************************************
+#define OCP_SHARED_APPS_WLAN_SCRATCH_PAD_MEM_APPS_WLAN_SCRATCH_PAD_M \
+ 0xFFFFFFFF // scratch pad register.
+
+#define OCP_SHARED_APPS_WLAN_SCRATCH_PAD_MEM_APPS_WLAN_SCRATCH_PAD_S 0
+
+
+
+#endif // __HW_OCP_SHARED_H__
diff --git a/ext/hal/ti/cc3220sdk/inc/hw_types.h b/ext/hal/ti/cc3220sdk/inc/hw_types.h
new file mode 100644
index 0000000..8eff4e4
--- /dev/null
+++ b/ext/hal/ti/cc3220sdk/inc/hw_types.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef __HW_TYPES_H__
+#define __HW_TYPES_H__
+
+//*****************************************************************************
+//
+// Define a boolean type, and values for true and false.
+//
+//*****************************************************************************
+typedef unsigned char tBoolean;
+
+#ifndef true
+#define true 1
+#endif
+
+#ifndef false
+#define false 0
+#endif
+
+//*****************************************************************************
+//
+// Macros for hardware access, both direct and via the bit-band region.
+//
+//*****************************************************************************
+#define HWREG(x) \
+ (*((volatile unsigned long *)(x)))
+#define HWREGH(x) \
+ (*((volatile unsigned short *)(x)))
+#define HWREGB(x) \
+ (*((volatile unsigned char *)(x)))
+#define HWREGBITW(x, b) \
+ HWREG(((unsigned long)(x) & 0xF0000000) | 0x02000000 | \
+ (((unsigned long)(x) & 0x000FFFFF) << 5) | ((b) << 2))
+#define HWREGBITH(x, b) \
+ HWREGH(((unsigned long)(x) & 0xF0000000) | 0x02000000 | \
+ (((unsigned long)(x) & 0x000FFFFF) << 5) | ((b) << 2))
+#define HWREGBITB(x, b) \
+ HWREGB(((unsigned long)(x) & 0xF0000000) | 0x02000000 | \
+ (((unsigned long)(x) & 0x000FFFFF) << 5) | ((b) << 2))
+
+
+#endif // __HW_TYPES_H__