| /****************************************************************************** |
| * Filename: hw_aon_wuc_h |
| * Revised: 2016-03-14 09:20:59 +0100 (Mon, 14 Mar 2016) |
| * Revision: 45924 |
| * |
| * Copyright (c) 2015 - 2016, Texas Instruments Incorporated |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are met: |
| * |
| * 1) Redistributions of source code must retain the above copyright notice, |
| * this list of conditions and the following disclaimer. |
| * |
| * 2) 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. |
| * |
| * 3) Neither the name of the ORGANIZATION 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 HOLDER 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_AON_WUC_H__ |
| #define __HW_AON_WUC_H__ |
| |
| //***************************************************************************** |
| // |
| // This section defines the register offsets of |
| // AON_WUC component |
| // |
| //***************************************************************************** |
| // MCU Clock Management |
| #define AON_WUC_O_MCUCLK 0x00000000 |
| |
| // AUX Clock Management |
| #define AON_WUC_O_AUXCLK 0x00000004 |
| |
| // MCU Configuration |
| #define AON_WUC_O_MCUCFG 0x00000008 |
| |
| // AUX Configuration |
| #define AON_WUC_O_AUXCFG 0x0000000C |
| |
| // AUX Control |
| #define AON_WUC_O_AUXCTL 0x00000010 |
| |
| // Power Status |
| #define AON_WUC_O_PWRSTAT 0x00000014 |
| |
| // Shutdown Control |
| #define AON_WUC_O_SHUTDOWN 0x00000018 |
| |
| // Control 0 |
| #define AON_WUC_O_CTL0 0x00000020 |
| |
| // Control 1 |
| #define AON_WUC_O_CTL1 0x00000024 |
| |
| // Recharge Controller Configuration |
| #define AON_WUC_O_RECHARGECFG 0x00000030 |
| |
| // Recharge Controller Status |
| #define AON_WUC_O_RECHARGESTAT 0x00000034 |
| |
| // Oscillator Configuration |
| #define AON_WUC_O_OSCCFG 0x00000038 |
| |
| // JTAG Configuration |
| #define AON_WUC_O_JTAGCFG 0x00000040 |
| |
| // JTAG USERCODE |
| #define AON_WUC_O_JTAGUSERCODE 0x00000044 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_MCUCLK |
| // |
| //***************************************************************************** |
| // Field: [2] RCOSC_HF_CAL_DONE |
| // |
| // MCU bootcode will set this bit when RCOSC_HF is calibrated. The FLASH can |
| // not be used until this bit is set. |
| // |
| // 1: RCOSC_HF is calibrated to 48 MHz, allowing FLASH to power up. |
| // 0: RCOSC_HF is not yet calibrated, ie FLASH must not assume that the SCLK_HF |
| // is safe |
| #define AON_WUC_MCUCLK_RCOSC_HF_CAL_DONE 0x00000004 |
| #define AON_WUC_MCUCLK_RCOSC_HF_CAL_DONE_BITN 2 |
| #define AON_WUC_MCUCLK_RCOSC_HF_CAL_DONE_M 0x00000004 |
| #define AON_WUC_MCUCLK_RCOSC_HF_CAL_DONE_S 2 |
| |
| // Field: [1:0] PWR_DWN_SRC |
| // |
| // Controls the clock source for the entire MCU domain while MCU is requesting |
| // powerdown. |
| // |
| // When MCU requests powerdown with SCLK_HF as source, then WUC will switch |
| // over to this clock source during powerdown, and automatically switch back to |
| // SCLK_HF when MCU is no longer requesting powerdown and system is back in |
| // active mode. |
| // ENUMs: |
| // SCLK_LF Use SCLK_LF in Powerdown |
| // NONE No clock in Powerdown |
| #define AON_WUC_MCUCLK_PWR_DWN_SRC_W 2 |
| #define AON_WUC_MCUCLK_PWR_DWN_SRC_M 0x00000003 |
| #define AON_WUC_MCUCLK_PWR_DWN_SRC_S 0 |
| #define AON_WUC_MCUCLK_PWR_DWN_SRC_SCLK_LF 0x00000001 |
| #define AON_WUC_MCUCLK_PWR_DWN_SRC_NONE 0x00000000 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_AUXCLK |
| // |
| //***************************************************************************** |
| // Field: [12:11] PWR_DWN_SRC |
| // |
| // When AUX requests powerdown with SCLK_HF as source, then WUC will switch |
| // over to this clock source during powerdown, and automatically switch back to |
| // SCLK_HF when AUX system is back in active mode |
| // ENUMs: |
| // SCLK_LF Use SCLK_LF in Powerdown |
| // NONE No clock in Powerdown |
| #define AON_WUC_AUXCLK_PWR_DWN_SRC_W 2 |
| #define AON_WUC_AUXCLK_PWR_DWN_SRC_M 0x00001800 |
| #define AON_WUC_AUXCLK_PWR_DWN_SRC_S 11 |
| #define AON_WUC_AUXCLK_PWR_DWN_SRC_SCLK_LF 0x00000800 |
| #define AON_WUC_AUXCLK_PWR_DWN_SRC_NONE 0x00000000 |
| |
| // Field: [10:8] SCLK_HF_DIV |
| // |
| // Select the AUX clock divider for SCLK_HF |
| // |
| // NB: It is not supported to change the AUX clock divider while SCLK_HF is |
| // active source for AUX |
| // ENUMs: |
| // DIV256 Divide by 256 |
| // DIV128 Divide by 128 |
| // DIV64 Divide by 64 |
| // DIV32 Divide by 32 |
| // DIV16 Divide by 16 |
| // DIV8 Divide by 8 |
| // DIV4 Divide by 4 |
| // DIV2 Divide by 2 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_W 3 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_M 0x00000700 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_S 8 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_DIV256 0x00000700 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_DIV128 0x00000600 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_DIV64 0x00000500 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_DIV32 0x00000400 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_DIV16 0x00000300 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_DIV8 0x00000200 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_DIV4 0x00000100 |
| #define AON_WUC_AUXCLK_SCLK_HF_DIV_DIV2 0x00000000 |
| |
| // Field: [2:0] SRC |
| // |
| // Selects the clock source for AUX: |
| // |
| // NB: Switching the clock source is guaranteed to be glitchless |
| // ENUMs: |
| // SCLK_LF LF Clock (SCLK_LF) |
| // SCLK_HF HF Clock (SCLK_HF) |
| #define AON_WUC_AUXCLK_SRC_W 3 |
| #define AON_WUC_AUXCLK_SRC_M 0x00000007 |
| #define AON_WUC_AUXCLK_SRC_S 0 |
| #define AON_WUC_AUXCLK_SRC_SCLK_LF 0x00000004 |
| #define AON_WUC_AUXCLK_SRC_SCLK_HF 0x00000001 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_MCUCFG |
| // |
| //***************************************************************************** |
| // Field: [17] VIRT_OFF |
| // |
| // Internal. Only to be used through TI provided API. |
| #define AON_WUC_MCUCFG_VIRT_OFF 0x00020000 |
| #define AON_WUC_MCUCFG_VIRT_OFF_BITN 17 |
| #define AON_WUC_MCUCFG_VIRT_OFF_M 0x00020000 |
| #define AON_WUC_MCUCFG_VIRT_OFF_S 17 |
| |
| // Field: [16] FIXED_WU_EN |
| // |
| // Internal. Only to be used through TI provided API. |
| #define AON_WUC_MCUCFG_FIXED_WU_EN 0x00010000 |
| #define AON_WUC_MCUCFG_FIXED_WU_EN_BITN 16 |
| #define AON_WUC_MCUCFG_FIXED_WU_EN_M 0x00010000 |
| #define AON_WUC_MCUCFG_FIXED_WU_EN_S 16 |
| |
| // Field: [3:0] SRAM_RET_EN |
| // |
| // MCU SRAM is partitioned into 4 banks . This register controls which of the |
| // banks that has retention during MCU power off |
| // ENUMs: |
| // RET_FULL Retention on for all banks (SRAM:BANK0, SRAM:BANK1 |
| // ,SRAM:BANK2 and SRAM:BANK3) |
| // RET_LEVEL3 Retention on for SRAM:BANK0, SRAM:BANK1 and |
| // SRAM:BANK2 |
| // RET_LEVEL2 Retention on for SRAM:BANK0 and SRAM:BANK1 |
| // RET_LEVEL1 Retention on for SRAM:BANK0 |
| // RET_NONE Retention is disabled |
| #define AON_WUC_MCUCFG_SRAM_RET_EN_W 4 |
| #define AON_WUC_MCUCFG_SRAM_RET_EN_M 0x0000000F |
| #define AON_WUC_MCUCFG_SRAM_RET_EN_S 0 |
| #define AON_WUC_MCUCFG_SRAM_RET_EN_RET_FULL 0x0000000F |
| #define AON_WUC_MCUCFG_SRAM_RET_EN_RET_LEVEL3 0x00000007 |
| #define AON_WUC_MCUCFG_SRAM_RET_EN_RET_LEVEL2 0x00000003 |
| #define AON_WUC_MCUCFG_SRAM_RET_EN_RET_LEVEL1 0x00000001 |
| #define AON_WUC_MCUCFG_SRAM_RET_EN_RET_NONE 0x00000000 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_AUXCFG |
| // |
| //***************************************************************************** |
| // Field: [0] RAM_RET_EN |
| // |
| // This bit controls retention mode for the AUX_RAM:BANK0: |
| // |
| // 0: Retention is disabled |
| // 1: Retention is enabled |
| // |
| // NB: If retention is disabled, the AUX_RAM will be powered off when it would |
| // otherwise be put in retention mode |
| #define AON_WUC_AUXCFG_RAM_RET_EN 0x00000001 |
| #define AON_WUC_AUXCFG_RAM_RET_EN_BITN 0 |
| #define AON_WUC_AUXCFG_RAM_RET_EN_M 0x00000001 |
| #define AON_WUC_AUXCFG_RAM_RET_EN_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_AUXCTL |
| // |
| //***************************************************************************** |
| // Field: [31] RESET_REQ |
| // |
| // Reset request for AUX. Writing 1 to this register will assert reset to AUX. |
| // The reset will be held until the bit is cleared again. |
| // |
| // 0: AUX reset pin will be deasserted |
| // 1: AUX reset pin will be asserted |
| #define AON_WUC_AUXCTL_RESET_REQ 0x80000000 |
| #define AON_WUC_AUXCTL_RESET_REQ_BITN 31 |
| #define AON_WUC_AUXCTL_RESET_REQ_M 0x80000000 |
| #define AON_WUC_AUXCTL_RESET_REQ_S 31 |
| |
| // Field: [2] SCE_RUN_EN |
| // |
| // Enables (1) or disables (0) AUX_SCE execution. AUX_SCE execution will begin |
| // when AUX Domain is powered and either this or AUX_SCE:CTL.CLK_EN is set. |
| // |
| // Setting this bit will assure that AUX_SCE execution starts as soon as AUX |
| // power domain is woken up. ( AUX_SCE:CTL.CLK_EN will be reset to 0 if AUX |
| // power domain has been off) |
| // |
| // 0: AUX_SCE execution will be disabled if AUX_SCE:CTL.CLK_EN is 0 |
| // 1: AUX_SCE execution is enabled. |
| #define AON_WUC_AUXCTL_SCE_RUN_EN 0x00000004 |
| #define AON_WUC_AUXCTL_SCE_RUN_EN_BITN 2 |
| #define AON_WUC_AUXCTL_SCE_RUN_EN_M 0x00000004 |
| #define AON_WUC_AUXCTL_SCE_RUN_EN_S 2 |
| |
| // Field: [1] SWEV |
| // |
| // Writing 1 sets the software event to the AUX domain, which can be read |
| // through AUX_WUC:WUEVFLAGS.AON_SW. |
| // |
| // This event is normally cleared by AUX_SCE through the |
| // AUX_WUC:WUEVCLR.AON_SW. It can also be cleared by writing 0 to this |
| // register. |
| // |
| // Reading 0 means that there is no outstanding software event for AUX. |
| // |
| // Note that it can take up to 1,5 SCLK_LF clock cycles to clear the event from |
| // AUX. |
| #define AON_WUC_AUXCTL_SWEV 0x00000002 |
| #define AON_WUC_AUXCTL_SWEV_BITN 1 |
| #define AON_WUC_AUXCTL_SWEV_M 0x00000002 |
| #define AON_WUC_AUXCTL_SWEV_S 1 |
| |
| // Field: [0] AUX_FORCE_ON |
| // |
| // Forces the AUX domain into active mode, overriding the requests from |
| // AUX_WUC:PWROFFREQ, AUX_WUC:PWRDWNREQ and AUX_WUC:MCUBUSCTL. |
| // Note that an ongoing AUX_WUC:PWROFFREQ will complete before this bit will |
| // set the AUX domain into active mode. |
| // |
| // MCU must set this bit in order to access the AUX peripherals. |
| // The AUX domain status can be read from PWRSTAT.AUX_PD_ON |
| // |
| // 0: AUX is allowed to Power Off, Power Down or Disconnect. |
| // 1: AUX Power OFF, Power Down or Disconnect requests will be overruled |
| #define AON_WUC_AUXCTL_AUX_FORCE_ON 0x00000001 |
| #define AON_WUC_AUXCTL_AUX_FORCE_ON_BITN 0 |
| #define AON_WUC_AUXCTL_AUX_FORCE_ON_M 0x00000001 |
| #define AON_WUC_AUXCTL_AUX_FORCE_ON_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_PWRSTAT |
| // |
| //***************************************************************************** |
| // Field: [9] AUX_PWR_DWN |
| // |
| // Indicates the AUX powerdown state when AUX domain is powered up. |
| // |
| // 0: Active mode |
| // 1: AUX Powerdown request has been granted |
| #define AON_WUC_PWRSTAT_AUX_PWR_DWN 0x00000200 |
| #define AON_WUC_PWRSTAT_AUX_PWR_DWN_BITN 9 |
| #define AON_WUC_PWRSTAT_AUX_PWR_DWN_M 0x00000200 |
| #define AON_WUC_PWRSTAT_AUX_PWR_DWN_S 9 |
| |
| // Field: [6] JTAG_PD_ON |
| // |
| // Indicates JTAG power state: |
| // |
| // 0: JTAG is powered off |
| // 1: JTAG is powered on |
| #define AON_WUC_PWRSTAT_JTAG_PD_ON 0x00000040 |
| #define AON_WUC_PWRSTAT_JTAG_PD_ON_BITN 6 |
| #define AON_WUC_PWRSTAT_JTAG_PD_ON_M 0x00000040 |
| #define AON_WUC_PWRSTAT_JTAG_PD_ON_S 6 |
| |
| // Field: [5] AUX_PD_ON |
| // |
| // Indicates AUX power state: |
| // |
| // 0: AUX is not ready for use ( may be powered off or in power state |
| // transition ) |
| // 1: AUX is powered on, connected to bus and ready for use, |
| #define AON_WUC_PWRSTAT_AUX_PD_ON 0x00000020 |
| #define AON_WUC_PWRSTAT_AUX_PD_ON_BITN 5 |
| #define AON_WUC_PWRSTAT_AUX_PD_ON_M 0x00000020 |
| #define AON_WUC_PWRSTAT_AUX_PD_ON_S 5 |
| |
| // Field: [4] MCU_PD_ON |
| // |
| // Indicates MCU power state: |
| // |
| // 0: MCU Power sequencing is not yet finalized and MCU_AONIF registers may not |
| // be reliable |
| // 1: MCU Power sequencing is finalized and all MCU_AONIF registers are |
| // reliable |
| #define AON_WUC_PWRSTAT_MCU_PD_ON 0x00000010 |
| #define AON_WUC_PWRSTAT_MCU_PD_ON_BITN 4 |
| #define AON_WUC_PWRSTAT_MCU_PD_ON_M 0x00000010 |
| #define AON_WUC_PWRSTAT_MCU_PD_ON_S 4 |
| |
| // Field: [2] AUX_BUS_CONNECTED |
| // |
| // Indicates that AUX Bus is connected: |
| // |
| // 0: AUX bus is not connected |
| // 1: AUX bus is connected ( idle_ack = 0 ) |
| #define AON_WUC_PWRSTAT_AUX_BUS_CONNECTED 0x00000004 |
| #define AON_WUC_PWRSTAT_AUX_BUS_CONNECTED_BITN 2 |
| #define AON_WUC_PWRSTAT_AUX_BUS_CONNECTED_M 0x00000004 |
| #define AON_WUC_PWRSTAT_AUX_BUS_CONNECTED_S 2 |
| |
| // Field: [1] AUX_RESET_DONE |
| // |
| // Indicates Reset Done from AUX: |
| // |
| // 0: AUX is being reset |
| // 1: AUX reset is released |
| #define AON_WUC_PWRSTAT_AUX_RESET_DONE 0x00000002 |
| #define AON_WUC_PWRSTAT_AUX_RESET_DONE_BITN 1 |
| #define AON_WUC_PWRSTAT_AUX_RESET_DONE_M 0x00000002 |
| #define AON_WUC_PWRSTAT_AUX_RESET_DONE_S 1 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_SHUTDOWN |
| // |
| //***************************************************************************** |
| // Field: [0] EN |
| // |
| // Writing a 1 to this bit forces a shutdown request to be registered and all |
| // I/O values to be latched - in the PAD ring, possibly enabling I/O wakeup. |
| // Writing 0 will cancel a registered shutdown request and open th I/O latches |
| // residing in the PAD ring. |
| // |
| // A registered shutdown request takes effect the next time power down |
| // conditions exists. At this time, the will not enter Powerdown mode, but |
| // instead it will turn off all internal powersupplies, effectively putting the |
| // device into Shutdown mode. |
| #define AON_WUC_SHUTDOWN_EN 0x00000001 |
| #define AON_WUC_SHUTDOWN_EN_BITN 0 |
| #define AON_WUC_SHUTDOWN_EN_M 0x00000001 |
| #define AON_WUC_SHUTDOWN_EN_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_CTL0 |
| // |
| //***************************************************************************** |
| // Field: [8] PWR_DWN_DIS |
| // |
| // Controls whether MCU and AUX requesting to be powered off will enable a |
| // transition to powerdown: |
| // |
| // 0: Enabled |
| // 1: Disabled |
| #define AON_WUC_CTL0_PWR_DWN_DIS 0x00000100 |
| #define AON_WUC_CTL0_PWR_DWN_DIS_BITN 8 |
| #define AON_WUC_CTL0_PWR_DWN_DIS_M 0x00000100 |
| #define AON_WUC_CTL0_PWR_DWN_DIS_S 8 |
| |
| // Field: [3] AUX_SRAM_ERASE |
| // |
| // Internal. Only to be used through TI provided API. |
| #define AON_WUC_CTL0_AUX_SRAM_ERASE 0x00000008 |
| #define AON_WUC_CTL0_AUX_SRAM_ERASE_BITN 3 |
| #define AON_WUC_CTL0_AUX_SRAM_ERASE_M 0x00000008 |
| #define AON_WUC_CTL0_AUX_SRAM_ERASE_S 3 |
| |
| // Field: [2] MCU_SRAM_ERASE |
| // |
| // Internal. Only to be used through TI provided API. |
| #define AON_WUC_CTL0_MCU_SRAM_ERASE 0x00000004 |
| #define AON_WUC_CTL0_MCU_SRAM_ERASE_BITN 2 |
| #define AON_WUC_CTL0_MCU_SRAM_ERASE_M 0x00000004 |
| #define AON_WUC_CTL0_MCU_SRAM_ERASE_S 2 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_CTL1 |
| // |
| //***************************************************************************** |
| // Field: [1] MCU_RESET_SRC |
| // |
| // Indicates source of last MCU Voltage Domain warm reset request: |
| // |
| // 0: MCU SW reset |
| // 1: JTAG reset |
| // |
| // This bit can only be cleared by writing a 1 to it |
| #define AON_WUC_CTL1_MCU_RESET_SRC 0x00000002 |
| #define AON_WUC_CTL1_MCU_RESET_SRC_BITN 1 |
| #define AON_WUC_CTL1_MCU_RESET_SRC_M 0x00000002 |
| #define AON_WUC_CTL1_MCU_RESET_SRC_S 1 |
| |
| // Field: [0] MCU_WARM_RESET |
| // |
| // Indicates type of last MCU Voltage Domain reset: |
| // |
| // 0: Last MCU reset was not a warm reset |
| // 1: Last MCU reset was a warm reset (requested from MCU or JTAG as indicated |
| // in MCU_RESET_SRC) |
| // |
| // This bit can only be cleared by writing a 1 to it |
| #define AON_WUC_CTL1_MCU_WARM_RESET 0x00000001 |
| #define AON_WUC_CTL1_MCU_WARM_RESET_BITN 0 |
| #define AON_WUC_CTL1_MCU_WARM_RESET_M 0x00000001 |
| #define AON_WUC_CTL1_MCU_WARM_RESET_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_RECHARGECFG |
| // |
| //***************************************************************************** |
| // Field: [31] ADAPTIVE_EN |
| // |
| // Enable adaptive recharge |
| // |
| // Note: Recharge can be turned completely of by setting MAX_PER_E=7 and |
| // MAX_PER_M=31 and this bitfield to 0 |
| #define AON_WUC_RECHARGECFG_ADAPTIVE_EN 0x80000000 |
| #define AON_WUC_RECHARGECFG_ADAPTIVE_EN_BITN 31 |
| #define AON_WUC_RECHARGECFG_ADAPTIVE_EN_M 0x80000000 |
| #define AON_WUC_RECHARGECFG_ADAPTIVE_EN_S 31 |
| |
| // Field: [23:20] C2 |
| // |
| // Gain factor for adaptive recharge algorithm |
| // |
| // period_new=period * ( 1+/-(2^-C1+2^-C2) ) |
| // Valid values for C2 is 2 to 10 |
| // |
| // Note: Rounding may cause adaptive recharge not to start for very small |
| // values of both Gain and Initial period. Criteria for algorithm to start is |
| // MAX(PERIOD*2^-C1,PERIOD*2^-C2) >= 1 |
| #define AON_WUC_RECHARGECFG_C2_W 4 |
| #define AON_WUC_RECHARGECFG_C2_M 0x00F00000 |
| #define AON_WUC_RECHARGECFG_C2_S 20 |
| |
| // Field: [19:16] C1 |
| // |
| // Gain factor for adaptive recharge algorithm |
| // |
| // period_new=period * ( 1+/-(2^-C1+2^-C2) ) |
| // Valid values for C1 is 1 to 10 |
| // |
| // Note: Rounding may cause adaptive recharge not to start for very small |
| // values of both Gain and Initial period. Criteria for algorithm to start is |
| // MAX(PERIOD*2^-C1,PERIOD*2^-C2) >= 1 |
| #define AON_WUC_RECHARGECFG_C1_W 4 |
| #define AON_WUC_RECHARGECFG_C1_M 0x000F0000 |
| #define AON_WUC_RECHARGECFG_C1_S 16 |
| |
| // Field: [15:11] MAX_PER_M |
| // |
| // This register defines the maximum period that the recharge algorithm can |
| // take, i.e. it defines the maximum number of cycles between 2 recharges. |
| // The maximum number of cycles is specified with a 5 bit mantissa and 3 bit |
| // exponent: |
| // MAXCYCLES=(MAX_PER_M*16+15)*2^MAX_PER_E |
| // This field sets the mantissa of MAXCYCLES |
| #define AON_WUC_RECHARGECFG_MAX_PER_M_W 5 |
| #define AON_WUC_RECHARGECFG_MAX_PER_M_M 0x0000F800 |
| #define AON_WUC_RECHARGECFG_MAX_PER_M_S 11 |
| |
| // Field: [10:8] MAX_PER_E |
| // |
| // This register defines the maximum period that the recharge algorithm can |
| // take, i.e. it defines the maximum number of cycles between 2 recharges. |
| // The maximum number of cycles is specified with a 5 bit mantissa and 3 bit |
| // exponent: |
| // MAXCYCLES=(MAX_PER_M*16+15)*2^MAX_PER_E |
| // This field sets the exponent MAXCYCLES |
| #define AON_WUC_RECHARGECFG_MAX_PER_E_W 3 |
| #define AON_WUC_RECHARGECFG_MAX_PER_E_M 0x00000700 |
| #define AON_WUC_RECHARGECFG_MAX_PER_E_S 8 |
| |
| // Field: [7:3] PER_M |
| // |
| // Number of 32 KHz clocks between activation of recharge controller |
| // For recharge algorithm, PERIOD is the initial period when entering powerdown |
| // mode. The adaptive recharge algorithm will not change this register |
| // PERIOD will effectively be a 16 bit value coded in a 5 bit mantissa and 3 |
| // bit exponent: |
| // This field sets the Mantissa of the Period. |
| // PERIOD=(PER_M*16+15)*2^PER_E |
| #define AON_WUC_RECHARGECFG_PER_M_W 5 |
| #define AON_WUC_RECHARGECFG_PER_M_M 0x000000F8 |
| #define AON_WUC_RECHARGECFG_PER_M_S 3 |
| |
| // Field: [2:0] PER_E |
| // |
| // Number of 32 KHz clocks between activation of recharge controller |
| // For recharge algorithm, PERIOD is the initial period when entering powerdown |
| // mode. The adaptive recharge algorithm will not change this register |
| // PERIOD will effectively be a 16 bit value coded in a 5 bit mantissa and 3 |
| // bit exponent: |
| // This field sets the Exponent of the Period. |
| // PERIOD=(PER_M*16+15)*2^PER_E |
| #define AON_WUC_RECHARGECFG_PER_E_W 3 |
| #define AON_WUC_RECHARGECFG_PER_E_M 0x00000007 |
| #define AON_WUC_RECHARGECFG_PER_E_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_RECHARGESTAT |
| // |
| //***************************************************************************** |
| // Field: [19:16] VDDR_SMPLS |
| // |
| // The last 4 VDDR samples, bit 0 being the newest. |
| // |
| // The register is being updated in every recharge period with a shift left, |
| // and bit 0 is updated with the last VDDR sample, ie a 1 is shiftet in in case |
| // VDDR > VDDR_threshold just before recharge starts. Otherwise a 0 will be |
| // shifted in. |
| #define AON_WUC_RECHARGESTAT_VDDR_SMPLS_W 4 |
| #define AON_WUC_RECHARGESTAT_VDDR_SMPLS_M 0x000F0000 |
| #define AON_WUC_RECHARGESTAT_VDDR_SMPLS_S 16 |
| |
| // Field: [15:0] MAX_USED_PER |
| // |
| // The maximum value of recharge period seen with VDDR>threshold. |
| // |
| // The VDDR voltage is compared against the threshold voltage at just before |
| // each recharge. If VDDR is above threshold, MAX_USED_PER is updated with max |
| // ( current recharge peride; MAX_USED_PER ) This way MAX_USED_PER can track |
| // the recharge period where VDDR is decharged to the threshold value. We can |
| // therefore use the value as an indication of the leakage current during |
| // recharge. |
| // |
| // This bitfield is cleared to 0 when writing this register. |
| #define AON_WUC_RECHARGESTAT_MAX_USED_PER_W 16 |
| #define AON_WUC_RECHARGESTAT_MAX_USED_PER_M 0x0000FFFF |
| #define AON_WUC_RECHARGESTAT_MAX_USED_PER_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_OSCCFG |
| // |
| //***************************************************************************** |
| // Field: [7:3] PER_M |
| // |
| // Number of 32 KHz clocks between oscillator amplitude calibrations. |
| // When this counter expires, an oscillator amplitude compensation is triggered |
| // immediately in Active mode. When this counter expires in Powerdown mode an |
| // internal flag is set such that the amplitude compensation is postponed until |
| // the next recharge occurs. |
| // |
| // The Period will effectively be a 16 bit value coded in a 5 bit mantissa and |
| // 3 bit exponent |
| // PERIOD=(PER_M*16+15)*2^PER_E |
| // This field sets the mantissa |
| // Note: Oscillator amplitude calibration is turned of when both this bitfield |
| // and PER_E are set to 0 |
| #define AON_WUC_OSCCFG_PER_M_W 5 |
| #define AON_WUC_OSCCFG_PER_M_M 0x000000F8 |
| #define AON_WUC_OSCCFG_PER_M_S 3 |
| |
| // Field: [2:0] PER_E |
| // |
| // Number of 32 KHz clocks between oscillator amplitude calibrations. |
| // When this counter expires, an oscillator amplitude compensation is triggered |
| // immediately in Active mode. When this counter expires in Powerdown mode an |
| // internal flag is set such that the amplitude compensation is postponed until |
| // the next recharge occurs. |
| // The Period will effectively be a 16 bit value coded in a 5 bit mantissa and |
| // 3 bit exponent |
| // PERIOD=(PER_M*16+15)*2^PER_E |
| // This field sets the exponent |
| // Note: Oscillator amplitude calibration is turned of when both PER_M and |
| // this bitfield are set to 0 |
| #define AON_WUC_OSCCFG_PER_E_W 3 |
| #define AON_WUC_OSCCFG_PER_E_M 0x00000007 |
| #define AON_WUC_OSCCFG_PER_E_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_JTAGCFG |
| // |
| //***************************************************************************** |
| // Field: [8] JTAG_PD_FORCE_ON |
| // |
| // Controls JTAG PowerDomain power state: |
| // |
| // 0: Controlled exclusively by debug subsystem. (JTAG Powerdomain will be |
| // powered off unless a debugger is attached) |
| // 1: JTAG Power Domain is forced on, independent of debug subsystem. |
| // |
| // NB: The reset value causes JTAG Power Domain to be powered on by default. |
| // Software must clear this bit to turn off the JTAG Power Domain |
| #define AON_WUC_JTAGCFG_JTAG_PD_FORCE_ON 0x00000100 |
| #define AON_WUC_JTAGCFG_JTAG_PD_FORCE_ON_BITN 8 |
| #define AON_WUC_JTAGCFG_JTAG_PD_FORCE_ON_M 0x00000100 |
| #define AON_WUC_JTAGCFG_JTAG_PD_FORCE_ON_S 8 |
| |
| //***************************************************************************** |
| // |
| // Register: AON_WUC_O_JTAGUSERCODE |
| // |
| //***************************************************************************** |
| // Field: [31:0] USER_CODE |
| // |
| // 32-bit JTAG USERCODE register feeding main JTAG TAP |
| // NB: This field can be locked |
| #define AON_WUC_JTAGUSERCODE_USER_CODE_W 32 |
| #define AON_WUC_JTAGUSERCODE_USER_CODE_M 0xFFFFFFFF |
| #define AON_WUC_JTAGUSERCODE_USER_CODE_S 0 |
| |
| |
| #endif // __AON_WUC__ |