/*
 *  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__
