/****************************************************************************** * Filename: hw_prcm_h * Revised: 2018-05-14 12:24:52 +0200 (Mon, 14 May 2018) * Revision: 51990 * * Copyright (c) 2015 - 2017, 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_PRCM_H__ #define __HW_PRCM_H__ //***************************************************************************** // // This section defines the register offsets of // PRCM component // //***************************************************************************** // Infrastructure Clock Division Factor For Run Mode #define PRCM_O_INFRCLKDIVR 0x00000000 // Infrastructure Clock Division Factor For Sleep Mode #define PRCM_O_INFRCLKDIVS 0x00000004 // Infrastructure Clock Division Factor For DeepSleep Mode #define PRCM_O_INFRCLKDIVDS 0x00000008 // MCU Voltage Domain Control #define PRCM_O_VDCTL 0x0000000C // Load PRCM Settings To CLKCTRL Power Domain #define PRCM_O_CLKLOADCTL 0x00000028 // RFC Clock Gate #define PRCM_O_RFCCLKG 0x0000002C // VIMS Clock Gate #define PRCM_O_VIMSCLKG 0x00000030 // SEC (PKA And TRNG And CRYPTO) And UDMA Clock Gate For Run And All Modes #define PRCM_O_SECDMACLKGR 0x0000003C // SEC (PKA And TRNG And CRYPTO) And UDMA Clock Gate For Sleep Mode #define PRCM_O_SECDMACLKGS 0x00000040 // SEC (PKA And TRNG and CRYPTO) And UDMA Clock Gate For Deep Sleep Mode #define PRCM_O_SECDMACLKGDS 0x00000044 // GPIO Clock Gate For Run And All Modes #define PRCM_O_GPIOCLKGR 0x00000048 // GPIO Clock Gate For Sleep Mode #define PRCM_O_GPIOCLKGS 0x0000004C // GPIO Clock Gate For Deep Sleep Mode #define PRCM_O_GPIOCLKGDS 0x00000050 // GPT Clock Gate For Run And All Modes #define PRCM_O_GPTCLKGR 0x00000054 // GPT Clock Gate For Sleep Mode #define PRCM_O_GPTCLKGS 0x00000058 // GPT Clock Gate For Deep Sleep Mode #define PRCM_O_GPTCLKGDS 0x0000005C // I2C Clock Gate For Run And All Modes #define PRCM_O_I2CCLKGR 0x00000060 // I2C Clock Gate For Sleep Mode #define PRCM_O_I2CCLKGS 0x00000064 // I2C Clock Gate For Deep Sleep Mode #define PRCM_O_I2CCLKGDS 0x00000068 // UART Clock Gate For Run And All Modes #define PRCM_O_UARTCLKGR 0x0000006C // UART Clock Gate For Sleep Mode #define PRCM_O_UARTCLKGS 0x00000070 // UART Clock Gate For Deep Sleep Mode #define PRCM_O_UARTCLKGDS 0x00000074 // SSI Clock Gate For Run And All Modes #define PRCM_O_SSICLKGR 0x00000078 // SSI Clock Gate For Sleep Mode #define PRCM_O_SSICLKGS 0x0000007C // SSI Clock Gate For Deep Sleep Mode #define PRCM_O_SSICLKGDS 0x00000080 // I2S Clock Gate For Run And All Modes #define PRCM_O_I2SCLKGR 0x00000084 // I2S Clock Gate For Sleep Mode #define PRCM_O_I2SCLKGS 0x00000088 // I2S Clock Gate For Deep Sleep Mode #define PRCM_O_I2SCLKGDS 0x0000008C // Internal #define PRCM_O_SYSBUSCLKDIV 0x000000B4 // Internal #define PRCM_O_CPUCLKDIV 0x000000B8 // Internal #define PRCM_O_PERBUSCPUCLKDIV 0x000000BC // Internal #define PRCM_O_PERDMACLKDIV 0x000000C4 // I2S Clock Control #define PRCM_O_I2SBCLKSEL 0x000000C8 // GPT Scalar #define PRCM_O_GPTCLKDIV 0x000000CC // I2S Clock Control #define PRCM_O_I2SCLKCTL 0x000000D0 // MCLK Division Ratio #define PRCM_O_I2SMCLKDIV 0x000000D4 // BCLK Division Ratio #define PRCM_O_I2SBCLKDIV 0x000000D8 // WCLK Division Ratio #define PRCM_O_I2SWCLKDIV 0x000000DC // RESET For SEC (PKA And TRNG And CRYPTO) And UDMA #define PRCM_O_RESETSECDMA 0x000000F0 // RESET For GPIO IPs #define PRCM_O_RESETGPIO 0x000000F4 // RESET For GPT Ips #define PRCM_O_RESETGPT 0x000000F8 // RESET For I2C IPs #define PRCM_O_RESETI2C 0x000000FC // RESET For UART IPs #define PRCM_O_RESETUART 0x00000100 // RESET For SSI IPs #define PRCM_O_RESETSSI 0x00000104 // RESET For I2S IP #define PRCM_O_RESETI2S 0x00000108 // Power Domain Control #define PRCM_O_PDCTL0 0x0000012C // RFC Power Domain Control #define PRCM_O_PDCTL0RFC 0x00000130 // SERIAL Power Domain Control #define PRCM_O_PDCTL0SERIAL 0x00000134 // PERIPH Power Domain Control #define PRCM_O_PDCTL0PERIPH 0x00000138 // Power Domain Status #define PRCM_O_PDSTAT0 0x00000140 // RFC Power Domain Status #define PRCM_O_PDSTAT0RFC 0x00000144 // SERIAL Power Domain Status #define PRCM_O_PDSTAT0SERIAL 0x00000148 // PERIPH Power Domain Status #define PRCM_O_PDSTAT0PERIPH 0x0000014C // Power Domain Control #define PRCM_O_PDCTL1 0x0000017C // CPU Power Domain Direct Control #define PRCM_O_PDCTL1CPU 0x00000184 // RFC Power Domain Direct Control #define PRCM_O_PDCTL1RFC 0x00000188 // VIMS Mode Direct Control #define PRCM_O_PDCTL1VIMS 0x0000018C // Power Manager Status #define PRCM_O_PDSTAT1 0x00000194 // BUS Power Domain Direct Read Status #define PRCM_O_PDSTAT1BUS 0x00000198 // RFC Power Domain Direct Read Status #define PRCM_O_PDSTAT1RFC 0x0000019C // CPU Power Domain Direct Read Status #define PRCM_O_PDSTAT1CPU 0x000001A0 // VIMS Mode Direct Read Status #define PRCM_O_PDSTAT1VIMS 0x000001A4 // Control To RFC #define PRCM_O_RFCBITS 0x000001CC // Selected RFC Mode #define PRCM_O_RFCMODESEL 0x000001D0 // Allowed RFC Modes #define PRCM_O_RFCMODEHWOPT 0x000001D4 // Power Profiler Register #define PRCM_O_PWRPROFSTAT 0x000001E0 // MCU SRAM configuration #define PRCM_O_MCUSRAMCFG 0x0000021C // Memory Retention Control #define PRCM_O_RAMRETEN 0x00000224 // Oscillator Interrupt Mask #define PRCM_O_OSCIMSC 0x00000290 // Oscillator Raw Interrupt Status #define PRCM_O_OSCRIS 0x00000294 // Oscillator Raw Interrupt Clear #define PRCM_O_OSCICR 0x00000298 //***************************************************************************** // // Register: PRCM_O_INFRCLKDIVR // //***************************************************************************** // Field: [1:0] RATIO // // Division rate for clocks driving modules in the MCU_AON domain when system // CPU is in run mode. Division ratio affects both infrastructure clock and // perbusull clock. // ENUMs: // DIV32 Divide by 32 // DIV8 Divide by 8 // DIV2 Divide by 2 // DIV1 Divide by 1 #define PRCM_INFRCLKDIVR_RATIO_W 2 #define PRCM_INFRCLKDIVR_RATIO_M 0x00000003 #define PRCM_INFRCLKDIVR_RATIO_S 0 #define PRCM_INFRCLKDIVR_RATIO_DIV32 0x00000003 #define PRCM_INFRCLKDIVR_RATIO_DIV8 0x00000002 #define PRCM_INFRCLKDIVR_RATIO_DIV2 0x00000001 #define PRCM_INFRCLKDIVR_RATIO_DIV1 0x00000000 //***************************************************************************** // // Register: PRCM_O_INFRCLKDIVS // //***************************************************************************** // Field: [1:0] RATIO // // Division rate for clocks driving modules in the MCU_AON domain when system // CPU is in sleep mode. Division ratio affects both infrastructure clock and // perbusull clock. // ENUMs: // DIV32 Divide by 32 // DIV8 Divide by 8 // DIV2 Divide by 2 // DIV1 Divide by 1 #define PRCM_INFRCLKDIVS_RATIO_W 2 #define PRCM_INFRCLKDIVS_RATIO_M 0x00000003 #define PRCM_INFRCLKDIVS_RATIO_S 0 #define PRCM_INFRCLKDIVS_RATIO_DIV32 0x00000003 #define PRCM_INFRCLKDIVS_RATIO_DIV8 0x00000002 #define PRCM_INFRCLKDIVS_RATIO_DIV2 0x00000001 #define PRCM_INFRCLKDIVS_RATIO_DIV1 0x00000000 //***************************************************************************** // // Register: PRCM_O_INFRCLKDIVDS // //***************************************************************************** // Field: [1:0] RATIO // // Division rate for clocks driving modules in the MCU_AON domain when system // CPU is in seepsleep mode. Division ratio affects both infrastructure clock // and perbusull clock. // ENUMs: // DIV32 Divide by 32 // DIV8 Divide by 8 // DIV2 Divide by 2 // DIV1 Divide by 1 #define PRCM_INFRCLKDIVDS_RATIO_W 2 #define PRCM_INFRCLKDIVDS_RATIO_M 0x00000003 #define PRCM_INFRCLKDIVDS_RATIO_S 0 #define PRCM_INFRCLKDIVDS_RATIO_DIV32 0x00000003 #define PRCM_INFRCLKDIVDS_RATIO_DIV8 0x00000002 #define PRCM_INFRCLKDIVDS_RATIO_DIV2 0x00000001 #define PRCM_INFRCLKDIVDS_RATIO_DIV1 0x00000000 //***************************************************************************** // // Register: PRCM_O_VDCTL // //***************************************************************************** // Field: [0] ULDO // // Request PMCTL to switch to uLDO. // // 0: No request // 1: Assert request when possible // // The bit will have no effect before the following requirements are met: // 1. PDCTL1.CPU_ON = 0 // 2. PDCTL1.VIMS_MODE = x0 // 3. SECDMACLKGDS.DMA_CLK_EN = 0 and S.CRYPTO_CLK_EN] = 0 and // SECDMACLKGR.DMA_AM_CLK_EN = 0 (Note: Settings must be loaded with // CLKLOADCTL.LOAD) // 4. SECDMACLKGDS.CRYPTO_CLK_EN = 0 and SECDMACLKGR.CRYPTO_AM_CLK_EN = 0 // (Note: Settings must be loaded with CLKLOADCTL.LOAD) // 5. I2SCLKGDS.CLK_EN = 0 and I2SCLKGR.AM_CLK_EN = 0 (Note: Settings must be // loaded with CLKLOADCTL.LOAD) // 6. RFC do no request access to BUS // 7. System CPU in deepsleep #define PRCM_VDCTL_ULDO 0x00000001 #define PRCM_VDCTL_ULDO_BITN 0 #define PRCM_VDCTL_ULDO_M 0x00000001 #define PRCM_VDCTL_ULDO_S 0 //***************************************************************************** // // Register: PRCM_O_CLKLOADCTL // //***************************************************************************** // Field: [1] LOAD_DONE // // Status of LOAD. // Will be cleared to 0 when any of the registers requiring a LOAD is written // to, and be set to 1 when a LOAD is done. // Note that writing no change to a register will result in the LOAD_DONE being // cleared. // // 0 : One or more registers have been write accessed after last LOAD // 1 : No registers are write accessed after last LOAD #define PRCM_CLKLOADCTL_LOAD_DONE 0x00000002 #define PRCM_CLKLOADCTL_LOAD_DONE_BITN 1 #define PRCM_CLKLOADCTL_LOAD_DONE_M 0x00000002 #define PRCM_CLKLOADCTL_LOAD_DONE_S 1 // Field: [0] LOAD // // // 0: No action // 1: Load settings to CLKCTRL. Bit is HW cleared. // // Multiple changes to settings may be done before LOAD is written once so all // changes takes place at the same time. LOAD can also be done after single // setting updates. // // Registers that needs to be followed by LOAD before settings being applied // are: // - SYSBUSCLKDIV // - CPUCLKDIV // - PERBUSCPUCLKDIV // - PERDMACLKDIV // - PERBUSCPUCLKG // - RFCCLKG // - VIMSCLKG // - SECDMACLKGR // - SECDMACLKGS // - SECDMACLKGDS // - GPIOCLKGR // - GPIOCLKGS // - GPIOCLKGDS // - GPTCLKGR // - GPTCLKGS // - GPTCLKGDS // - GPTCLKDIV // - I2CCLKGR // - I2CCLKGS // - I2CCLKGDS // - SSICLKGR // - SSICLKGS // - SSICLKGDS // - UARTCLKGR // - UARTCLKGS // - UARTCLKGDS // - I2SCLKGR // - I2SCLKGS // - I2SCLKGDS // - I2SBCLKSEL // - I2SCLKCTL // - I2SMCLKDIV // - I2SBCLKDIV // - I2SWCLKDIV #define PRCM_CLKLOADCTL_LOAD 0x00000001 #define PRCM_CLKLOADCTL_LOAD_BITN 0 #define PRCM_CLKLOADCTL_LOAD_M 0x00000001 #define PRCM_CLKLOADCTL_LOAD_S 0 //***************************************************************************** // // Register: PRCM_O_RFCCLKG // //***************************************************************************** // Field: [0] CLK_EN // // // 0: Disable Clock // 1: Enable clock if RFC power domain is on // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_RFCCLKG_CLK_EN 0x00000001 #define PRCM_RFCCLKG_CLK_EN_BITN 0 #define PRCM_RFCCLKG_CLK_EN_M 0x00000001 #define PRCM_RFCCLKG_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_VIMSCLKG // //***************************************************************************** // Field: [1:0] CLK_EN // // 00: Disable clock // 01: Disable clock when SYSBUS clock is disabled // 11: Enable clock // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_VIMSCLKG_CLK_EN_W 2 #define PRCM_VIMSCLKG_CLK_EN_M 0x00000003 #define PRCM_VIMSCLKG_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_SECDMACLKGR // //***************************************************************************** // Field: [24] DMA_AM_CLK_EN // // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides DMA_CLK_EN, SECDMACLKGS.DMA_CLK_EN and SECDMACLKGDS.DMA_CLK_EN // when enabled. // // SYSBUS clock will always run when enabled // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGR_DMA_AM_CLK_EN 0x01000000 #define PRCM_SECDMACLKGR_DMA_AM_CLK_EN_BITN 24 #define PRCM_SECDMACLKGR_DMA_AM_CLK_EN_M 0x01000000 #define PRCM_SECDMACLKGR_DMA_AM_CLK_EN_S 24 // Field: [19] PKA_ZERIOZE_RESET_N // // Zeroization logic hardware reset. // // 0: pka_zeroize logic inactive. // 1: pka_zeroize of memory is enabled. // // This register must remain active until the memory are completely zeroized // which requires 256 periods on systembus clock. #define PRCM_SECDMACLKGR_PKA_ZERIOZE_RESET_N 0x00080000 #define PRCM_SECDMACLKGR_PKA_ZERIOZE_RESET_N_BITN 19 #define PRCM_SECDMACLKGR_PKA_ZERIOZE_RESET_N_M 0x00080000 #define PRCM_SECDMACLKGR_PKA_ZERIOZE_RESET_N_S 19 // Field: [18] PKA_AM_CLK_EN // // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides PKA_CLK_EN, SECDMACLKGS.PKA_CLK_EN and SECDMACLKGDS.PKA_CLK_EN // when enabled. // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGR_PKA_AM_CLK_EN 0x00040000 #define PRCM_SECDMACLKGR_PKA_AM_CLK_EN_BITN 18 #define PRCM_SECDMACLKGR_PKA_AM_CLK_EN_M 0x00040000 #define PRCM_SECDMACLKGR_PKA_AM_CLK_EN_S 18 // Field: [17] TRNG_AM_CLK_EN // // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides TRNG_CLK_EN, SECDMACLKGS.TRNG_CLK_EN and SECDMACLKGDS.TRNG_CLK_EN // when enabled. // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGR_TRNG_AM_CLK_EN 0x00020000 #define PRCM_SECDMACLKGR_TRNG_AM_CLK_EN_BITN 17 #define PRCM_SECDMACLKGR_TRNG_AM_CLK_EN_M 0x00020000 #define PRCM_SECDMACLKGR_TRNG_AM_CLK_EN_S 17 // Field: [16] CRYPTO_AM_CLK_EN // // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides CRYPTO_CLK_EN, SECDMACLKGS.CRYPTO_CLK_EN and // SECDMACLKGDS.CRYPTO_CLK_EN when enabled. // // SYSBUS clock will always run when enabled // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGR_CRYPTO_AM_CLK_EN 0x00010000 #define PRCM_SECDMACLKGR_CRYPTO_AM_CLK_EN_BITN 16 #define PRCM_SECDMACLKGR_CRYPTO_AM_CLK_EN_M 0x00010000 #define PRCM_SECDMACLKGR_CRYPTO_AM_CLK_EN_S 16 // Field: [8] DMA_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by DMA_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGR_DMA_CLK_EN 0x00000100 #define PRCM_SECDMACLKGR_DMA_CLK_EN_BITN 8 #define PRCM_SECDMACLKGR_DMA_CLK_EN_M 0x00000100 #define PRCM_SECDMACLKGR_DMA_CLK_EN_S 8 // Field: [2] PKA_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by PKA_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGR_PKA_CLK_EN 0x00000004 #define PRCM_SECDMACLKGR_PKA_CLK_EN_BITN 2 #define PRCM_SECDMACLKGR_PKA_CLK_EN_M 0x00000004 #define PRCM_SECDMACLKGR_PKA_CLK_EN_S 2 // Field: [1] TRNG_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by TRNG_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGR_TRNG_CLK_EN 0x00000002 #define PRCM_SECDMACLKGR_TRNG_CLK_EN_BITN 1 #define PRCM_SECDMACLKGR_TRNG_CLK_EN_M 0x00000002 #define PRCM_SECDMACLKGR_TRNG_CLK_EN_S 1 // Field: [0] CRYPTO_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by CRYPTO_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGR_CRYPTO_CLK_EN 0x00000001 #define PRCM_SECDMACLKGR_CRYPTO_CLK_EN_BITN 0 #define PRCM_SECDMACLKGR_CRYPTO_CLK_EN_M 0x00000001 #define PRCM_SECDMACLKGR_CRYPTO_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_SECDMACLKGS // //***************************************************************************** // Field: [8] DMA_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by SECDMACLKGR.DMA_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGS_DMA_CLK_EN 0x00000100 #define PRCM_SECDMACLKGS_DMA_CLK_EN_BITN 8 #define PRCM_SECDMACLKGS_DMA_CLK_EN_M 0x00000100 #define PRCM_SECDMACLKGS_DMA_CLK_EN_S 8 // Field: [2] PKA_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by SECDMACLKGR.PKA_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGS_PKA_CLK_EN 0x00000004 #define PRCM_SECDMACLKGS_PKA_CLK_EN_BITN 2 #define PRCM_SECDMACLKGS_PKA_CLK_EN_M 0x00000004 #define PRCM_SECDMACLKGS_PKA_CLK_EN_S 2 // Field: [1] TRNG_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by SECDMACLKGR.TRNG_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGS_TRNG_CLK_EN 0x00000002 #define PRCM_SECDMACLKGS_TRNG_CLK_EN_BITN 1 #define PRCM_SECDMACLKGS_TRNG_CLK_EN_M 0x00000002 #define PRCM_SECDMACLKGS_TRNG_CLK_EN_S 1 // Field: [0] CRYPTO_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by SECDMACLKGR.CRYPTO_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGS_CRYPTO_CLK_EN 0x00000001 #define PRCM_SECDMACLKGS_CRYPTO_CLK_EN_BITN 0 #define PRCM_SECDMACLKGS_CRYPTO_CLK_EN_M 0x00000001 #define PRCM_SECDMACLKGS_CRYPTO_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_SECDMACLKGDS // //***************************************************************************** // Field: [8] DMA_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by SECDMACLKGR.DMA_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGDS_DMA_CLK_EN 0x00000100 #define PRCM_SECDMACLKGDS_DMA_CLK_EN_BITN 8 #define PRCM_SECDMACLKGDS_DMA_CLK_EN_M 0x00000100 #define PRCM_SECDMACLKGDS_DMA_CLK_EN_S 8 // Field: [2] PKA_CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by SECDMACLKGR.PKA_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGDS_PKA_CLK_EN 0x00000004 #define PRCM_SECDMACLKGDS_PKA_CLK_EN_BITN 2 #define PRCM_SECDMACLKGDS_PKA_CLK_EN_M 0x00000004 #define PRCM_SECDMACLKGDS_PKA_CLK_EN_S 2 // Field: [1] TRNG_CLK_EN // // // 0: Disable clock // 1: Enable clock // // SYSBUS clock will always run when enabled // // Can be forced on by SECDMACLKGR.TRNG_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGDS_TRNG_CLK_EN 0x00000002 #define PRCM_SECDMACLKGDS_TRNG_CLK_EN_BITN 1 #define PRCM_SECDMACLKGDS_TRNG_CLK_EN_M 0x00000002 #define PRCM_SECDMACLKGDS_TRNG_CLK_EN_S 1 // Field: [0] CRYPTO_CLK_EN // // // 0: Disable clock // 1: Enable clock // // SYSBUS clock will always run when enabled // // Can be forced on by SECDMACLKGR.CRYPTO_AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_SECDMACLKGDS_CRYPTO_CLK_EN 0x00000001 #define PRCM_SECDMACLKGDS_CRYPTO_CLK_EN_BITN 0 #define PRCM_SECDMACLKGDS_CRYPTO_CLK_EN_M 0x00000001 #define PRCM_SECDMACLKGDS_CRYPTO_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_GPIOCLKGR // //***************************************************************************** // Field: [8] AM_CLK_EN // // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides CLK_EN, GPIOCLKGS.CLK_EN and GPIOCLKGDS.CLK_EN when enabled. // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_GPIOCLKGR_AM_CLK_EN 0x00000100 #define PRCM_GPIOCLKGR_AM_CLK_EN_BITN 8 #define PRCM_GPIOCLKGR_AM_CLK_EN_M 0x00000100 #define PRCM_GPIOCLKGR_AM_CLK_EN_S 8 // Field: [0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_GPIOCLKGR_CLK_EN 0x00000001 #define PRCM_GPIOCLKGR_CLK_EN_BITN 0 #define PRCM_GPIOCLKGR_CLK_EN_M 0x00000001 #define PRCM_GPIOCLKGR_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_GPIOCLKGS // //***************************************************************************** // Field: [0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by GPIOCLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_GPIOCLKGS_CLK_EN 0x00000001 #define PRCM_GPIOCLKGS_CLK_EN_BITN 0 #define PRCM_GPIOCLKGS_CLK_EN_M 0x00000001 #define PRCM_GPIOCLKGS_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_GPIOCLKGDS // //***************************************************************************** // Field: [0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by GPIOCLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_GPIOCLKGDS_CLK_EN 0x00000001 #define PRCM_GPIOCLKGDS_CLK_EN_BITN 0 #define PRCM_GPIOCLKGDS_CLK_EN_M 0x00000001 #define PRCM_GPIOCLKGDS_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_GPTCLKGR // //***************************************************************************** // Field: [11:8] AM_CLK_EN // // Each bit below has the following meaning: // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides CLK_EN, GPTCLKGS.CLK_EN and GPTCLKGDS.CLK_EN when enabled. // // ENUMs can be combined // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // AM_GPT3 Enable clock for GPT3 in all modes // AM_GPT2 Enable clock for GPT2 in all modes // AM_GPT1 Enable clock for GPT1 in all modes // AM_GPT0 Enable clock for GPT0 in all modes #define PRCM_GPTCLKGR_AM_CLK_EN_W 4 #define PRCM_GPTCLKGR_AM_CLK_EN_M 0x00000F00 #define PRCM_GPTCLKGR_AM_CLK_EN_S 8 #define PRCM_GPTCLKGR_AM_CLK_EN_AM_GPT3 0x00000800 #define PRCM_GPTCLKGR_AM_CLK_EN_AM_GPT2 0x00000400 #define PRCM_GPTCLKGR_AM_CLK_EN_AM_GPT1 0x00000200 #define PRCM_GPTCLKGR_AM_CLK_EN_AM_GPT0 0x00000100 // Field: [3:0] CLK_EN // // Each bit below has the following meaning: // // 0: Disable clock // 1: Enable clock // // Can be forced on by AM_CLK_EN // // ENUMs can be combined // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // GPT3 Enable clock for GPT3 // GPT2 Enable clock for GPT2 // GPT1 Enable clock for GPT1 // GPT0 Enable clock for GPT0 #define PRCM_GPTCLKGR_CLK_EN_W 4 #define PRCM_GPTCLKGR_CLK_EN_M 0x0000000F #define PRCM_GPTCLKGR_CLK_EN_S 0 #define PRCM_GPTCLKGR_CLK_EN_GPT3 0x00000008 #define PRCM_GPTCLKGR_CLK_EN_GPT2 0x00000004 #define PRCM_GPTCLKGR_CLK_EN_GPT1 0x00000002 #define PRCM_GPTCLKGR_CLK_EN_GPT0 0x00000001 //***************************************************************************** // // Register: PRCM_O_GPTCLKGS // //***************************************************************************** // Field: [3:0] CLK_EN // // Each bit below has the following meaning: // // 0: Disable clock // 1: Enable clock // // Can be forced on by GPTCLKGR.AM_CLK_EN // // ENUMs can be combined // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // GPT3 Enable clock for GPT3 // GPT2 Enable clock for GPT2 // GPT1 Enable clock for GPT1 // GPT0 Enable clock for GPT0 #define PRCM_GPTCLKGS_CLK_EN_W 4 #define PRCM_GPTCLKGS_CLK_EN_M 0x0000000F #define PRCM_GPTCLKGS_CLK_EN_S 0 #define PRCM_GPTCLKGS_CLK_EN_GPT3 0x00000008 #define PRCM_GPTCLKGS_CLK_EN_GPT2 0x00000004 #define PRCM_GPTCLKGS_CLK_EN_GPT1 0x00000002 #define PRCM_GPTCLKGS_CLK_EN_GPT0 0x00000001 //***************************************************************************** // // Register: PRCM_O_GPTCLKGDS // //***************************************************************************** // Field: [3:0] CLK_EN // // Each bit below has the following meaning: // // 0: Disable clock // 1: Enable clock // // Can be forced on by GPTCLKGR.AM_CLK_EN // // ENUMs can be combined // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // GPT3 Enable clock for GPT3 // GPT2 Enable clock for GPT2 // GPT1 Enable clock for GPT1 // GPT0 Enable clock for GPT0 #define PRCM_GPTCLKGDS_CLK_EN_W 4 #define PRCM_GPTCLKGDS_CLK_EN_M 0x0000000F #define PRCM_GPTCLKGDS_CLK_EN_S 0 #define PRCM_GPTCLKGDS_CLK_EN_GPT3 0x00000008 #define PRCM_GPTCLKGDS_CLK_EN_GPT2 0x00000004 #define PRCM_GPTCLKGDS_CLK_EN_GPT1 0x00000002 #define PRCM_GPTCLKGDS_CLK_EN_GPT0 0x00000001 //***************************************************************************** // // Register: PRCM_O_I2CCLKGR // //***************************************************************************** // Field: [8] AM_CLK_EN // // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides CLK_EN, I2CCLKGS.CLK_EN and I2CCLKGDS.CLK_EN when enabled. // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2CCLKGR_AM_CLK_EN 0x00000100 #define PRCM_I2CCLKGR_AM_CLK_EN_BITN 8 #define PRCM_I2CCLKGR_AM_CLK_EN_M 0x00000100 #define PRCM_I2CCLKGR_AM_CLK_EN_S 8 // Field: [0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2CCLKGR_CLK_EN 0x00000001 #define PRCM_I2CCLKGR_CLK_EN_BITN 0 #define PRCM_I2CCLKGR_CLK_EN_M 0x00000001 #define PRCM_I2CCLKGR_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_I2CCLKGS // //***************************************************************************** // Field: [0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by I2CCLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2CCLKGS_CLK_EN 0x00000001 #define PRCM_I2CCLKGS_CLK_EN_BITN 0 #define PRCM_I2CCLKGS_CLK_EN_M 0x00000001 #define PRCM_I2CCLKGS_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_I2CCLKGDS // //***************************************************************************** // Field: [0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by I2CCLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2CCLKGDS_CLK_EN 0x00000001 #define PRCM_I2CCLKGDS_CLK_EN_BITN 0 #define PRCM_I2CCLKGDS_CLK_EN_M 0x00000001 #define PRCM_I2CCLKGDS_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_UARTCLKGR // //***************************************************************************** // Field: [9:8] AM_CLK_EN // // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides CLK_EN, UARTCLKGS.CLK_EN and UARTCLKGDS.CLK_EN when enabled. // // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // AM_UART1 Enable clock for UART1 // AM_UART0 Enable clock for UART0 #define PRCM_UARTCLKGR_AM_CLK_EN_W 2 #define PRCM_UARTCLKGR_AM_CLK_EN_M 0x00000300 #define PRCM_UARTCLKGR_AM_CLK_EN_S 8 #define PRCM_UARTCLKGR_AM_CLK_EN_AM_UART1 0x00000200 #define PRCM_UARTCLKGR_AM_CLK_EN_AM_UART0 0x00000100 // Field: [1:0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // UART1 Enable clock for UART1 // UART0 Enable clock for UART0 #define PRCM_UARTCLKGR_CLK_EN_W 2 #define PRCM_UARTCLKGR_CLK_EN_M 0x00000003 #define PRCM_UARTCLKGR_CLK_EN_S 0 #define PRCM_UARTCLKGR_CLK_EN_UART1 0x00000002 #define PRCM_UARTCLKGR_CLK_EN_UART0 0x00000001 //***************************************************************************** // // Register: PRCM_O_UARTCLKGS // //***************************************************************************** // Field: [1:0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by UARTCLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // AM_UART1 Enable clock for UART1 // AM_UART0 Enable clock for UART0 #define PRCM_UARTCLKGS_CLK_EN_W 2 #define PRCM_UARTCLKGS_CLK_EN_M 0x00000003 #define PRCM_UARTCLKGS_CLK_EN_S 0 #define PRCM_UARTCLKGS_CLK_EN_AM_UART1 0x00000002 #define PRCM_UARTCLKGS_CLK_EN_AM_UART0 0x00000001 //***************************************************************************** // // Register: PRCM_O_UARTCLKGDS // //***************************************************************************** // Field: [1:0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by UARTCLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // AM_UART1 Enable clock for UART1 // AM_UART0 Enable clock for UART0 #define PRCM_UARTCLKGDS_CLK_EN_W 2 #define PRCM_UARTCLKGDS_CLK_EN_M 0x00000003 #define PRCM_UARTCLKGDS_CLK_EN_S 0 #define PRCM_UARTCLKGDS_CLK_EN_AM_UART1 0x00000002 #define PRCM_UARTCLKGDS_CLK_EN_AM_UART0 0x00000001 //***************************************************************************** // // Register: PRCM_O_SSICLKGR // //***************************************************************************** // Field: [9:8] AM_CLK_EN // // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides CLK_EN, SSICLKGS.CLK_EN and SSICLKGDS.CLK_EN when enabled. // // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // SSI1 Enable clock for SSI1 // SSI0 Enable clock for SSI0 #define PRCM_SSICLKGR_AM_CLK_EN_W 2 #define PRCM_SSICLKGR_AM_CLK_EN_M 0x00000300 #define PRCM_SSICLKGR_AM_CLK_EN_S 8 #define PRCM_SSICLKGR_AM_CLK_EN_SSI1 0x00000200 #define PRCM_SSICLKGR_AM_CLK_EN_SSI0 0x00000100 // Field: [1:0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // SSI1 Enable clock for SSI1 // SSI0 Enable clock for SSI0 #define PRCM_SSICLKGR_CLK_EN_W 2 #define PRCM_SSICLKGR_CLK_EN_M 0x00000003 #define PRCM_SSICLKGR_CLK_EN_S 0 #define PRCM_SSICLKGR_CLK_EN_SSI1 0x00000002 #define PRCM_SSICLKGR_CLK_EN_SSI0 0x00000001 //***************************************************************************** // // Register: PRCM_O_SSICLKGS // //***************************************************************************** // Field: [1:0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by SSICLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // SSI1 Enable clock for SSI1 // SSI0 Enable clock for SSI0 #define PRCM_SSICLKGS_CLK_EN_W 2 #define PRCM_SSICLKGS_CLK_EN_M 0x00000003 #define PRCM_SSICLKGS_CLK_EN_S 0 #define PRCM_SSICLKGS_CLK_EN_SSI1 0x00000002 #define PRCM_SSICLKGS_CLK_EN_SSI0 0x00000001 //***************************************************************************** // // Register: PRCM_O_SSICLKGDS // //***************************************************************************** // Field: [1:0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by SSICLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written // ENUMs: // SSI1 Enable clock for SSI1 // SSI0 Enable clock for SSI0 #define PRCM_SSICLKGDS_CLK_EN_W 2 #define PRCM_SSICLKGDS_CLK_EN_M 0x00000003 #define PRCM_SSICLKGDS_CLK_EN_S 0 #define PRCM_SSICLKGDS_CLK_EN_SSI1 0x00000002 #define PRCM_SSICLKGDS_CLK_EN_SSI0 0x00000001 //***************************************************************************** // // Register: PRCM_O_I2SCLKGR // //***************************************************************************** // Field: [8] AM_CLK_EN // // // 0: No force // 1: Force clock on for all modes (Run, Sleep and Deep Sleep) // // Overrides CLK_EN, I2SCLKGS.CLK_EN and I2SCLKGDS.CLK_EN when enabled. // SYSBUS clock will always run when enabled // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SCLKGR_AM_CLK_EN 0x00000100 #define PRCM_I2SCLKGR_AM_CLK_EN_BITN 8 #define PRCM_I2SCLKGR_AM_CLK_EN_M 0x00000100 #define PRCM_I2SCLKGR_AM_CLK_EN_S 8 // Field: [0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SCLKGR_CLK_EN 0x00000001 #define PRCM_I2SCLKGR_CLK_EN_BITN 0 #define PRCM_I2SCLKGR_CLK_EN_M 0x00000001 #define PRCM_I2SCLKGR_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_I2SCLKGS // //***************************************************************************** // Field: [0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // Can be forced on by I2SCLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SCLKGS_CLK_EN 0x00000001 #define PRCM_I2SCLKGS_CLK_EN_BITN 0 #define PRCM_I2SCLKGS_CLK_EN_M 0x00000001 #define PRCM_I2SCLKGS_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_I2SCLKGDS // //***************************************************************************** // Field: [0] CLK_EN // // // 0: Disable clock // 1: Enable clock // // SYSBUS clock will always run when enabled // // Can be forced on by I2SCLKGR.AM_CLK_EN // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SCLKGDS_CLK_EN 0x00000001 #define PRCM_I2SCLKGDS_CLK_EN_BITN 0 #define PRCM_I2SCLKGDS_CLK_EN_M 0x00000001 #define PRCM_I2SCLKGDS_CLK_EN_S 0 //***************************************************************************** // // Register: PRCM_O_SYSBUSCLKDIV // //***************************************************************************** // Field: [2:0] RATIO // // Internal. Only to be used through TI provided API. // ENUMs: // DIV2 Internal. Only to be used through TI provided API. // DIV1 Internal. Only to be used through TI provided API. #define PRCM_SYSBUSCLKDIV_RATIO_W 3 #define PRCM_SYSBUSCLKDIV_RATIO_M 0x00000007 #define PRCM_SYSBUSCLKDIV_RATIO_S 0 #define PRCM_SYSBUSCLKDIV_RATIO_DIV2 0x00000001 #define PRCM_SYSBUSCLKDIV_RATIO_DIV1 0x00000000 //***************************************************************************** // // Register: PRCM_O_CPUCLKDIV // //***************************************************************************** // Field: [0] RATIO // // Internal. Only to be used through TI provided API. // ENUMs: // DIV2 Internal. Only to be used through TI provided API. // DIV1 Internal. Only to be used through TI provided API. #define PRCM_CPUCLKDIV_RATIO 0x00000001 #define PRCM_CPUCLKDIV_RATIO_BITN 0 #define PRCM_CPUCLKDIV_RATIO_M 0x00000001 #define PRCM_CPUCLKDIV_RATIO_S 0 #define PRCM_CPUCLKDIV_RATIO_DIV2 0x00000001 #define PRCM_CPUCLKDIV_RATIO_DIV1 0x00000000 //***************************************************************************** // // Register: PRCM_O_PERBUSCPUCLKDIV // //***************************************************************************** // Field: [3:0] RATIO // // Internal. Only to be used through TI provided API. // ENUMs: // DIV256 Internal. Only to be used through TI provided API. // DIV128 Internal. Only to be used through TI provided API. // DIV64 Internal. Only to be used through TI provided API. // DIV32 Internal. Only to be used through TI provided API. // DIV16 Internal. Only to be used through TI provided API. // DIV8 Internal. Only to be used through TI provided API. // DIV4 Internal. Only to be used through TI provided API. // DIV2 Internal. Only to be used through TI provided API. // DIV1 Internal. Only to be used through TI provided API. #define PRCM_PERBUSCPUCLKDIV_RATIO_W 4 #define PRCM_PERBUSCPUCLKDIV_RATIO_M 0x0000000F #define PRCM_PERBUSCPUCLKDIV_RATIO_S 0 #define PRCM_PERBUSCPUCLKDIV_RATIO_DIV256 0x00000008 #define PRCM_PERBUSCPUCLKDIV_RATIO_DIV128 0x00000007 #define PRCM_PERBUSCPUCLKDIV_RATIO_DIV64 0x00000006 #define PRCM_PERBUSCPUCLKDIV_RATIO_DIV32 0x00000005 #define PRCM_PERBUSCPUCLKDIV_RATIO_DIV16 0x00000004 #define PRCM_PERBUSCPUCLKDIV_RATIO_DIV8 0x00000003 #define PRCM_PERBUSCPUCLKDIV_RATIO_DIV4 0x00000002 #define PRCM_PERBUSCPUCLKDIV_RATIO_DIV2 0x00000001 #define PRCM_PERBUSCPUCLKDIV_RATIO_DIV1 0x00000000 //***************************************************************************** // // Register: PRCM_O_PERDMACLKDIV // //***************************************************************************** // Field: [3:0] RATIO // // Internal. Only to be used through TI provided API. // ENUMs: // DIV256 Internal. Only to be used through TI provided API. // DIV128 Internal. Only to be used through TI provided API. // DIV64 Internal. Only to be used through TI provided API. // DIV32 Internal. Only to be used through TI provided API. // DIV16 Internal. Only to be used through TI provided API. // DIV8 Internal. Only to be used through TI provided API. // DIV4 Internal. Only to be used through TI provided API. // DIV2 Internal. Only to be used through TI provided API. // DIV1 Internal. Only to be used through TI provided API. #define PRCM_PERDMACLKDIV_RATIO_W 4 #define PRCM_PERDMACLKDIV_RATIO_M 0x0000000F #define PRCM_PERDMACLKDIV_RATIO_S 0 #define PRCM_PERDMACLKDIV_RATIO_DIV256 0x00000008 #define PRCM_PERDMACLKDIV_RATIO_DIV128 0x00000007 #define PRCM_PERDMACLKDIV_RATIO_DIV64 0x00000006 #define PRCM_PERDMACLKDIV_RATIO_DIV32 0x00000005 #define PRCM_PERDMACLKDIV_RATIO_DIV16 0x00000004 #define PRCM_PERDMACLKDIV_RATIO_DIV8 0x00000003 #define PRCM_PERDMACLKDIV_RATIO_DIV4 0x00000002 #define PRCM_PERDMACLKDIV_RATIO_DIV2 0x00000001 #define PRCM_PERDMACLKDIV_RATIO_DIV1 0x00000000 //***************************************************************************** // // Register: PRCM_O_I2SBCLKSEL // //***************************************************************************** // Field: [0] SRC // // BCLK source selector // // 0: Use external BCLK // 1: Use internally generated clock // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SBCLKSEL_SRC 0x00000001 #define PRCM_I2SBCLKSEL_SRC_BITN 0 #define PRCM_I2SBCLKSEL_SRC_M 0x00000001 #define PRCM_I2SBCLKSEL_SRC_S 0 //***************************************************************************** // // Register: PRCM_O_GPTCLKDIV // //***************************************************************************** // Field: [3:0] RATIO // // Scalar used for GPTs. The division rate will be constant and ungated for Run // / Sleep / DeepSleep mode. For changes to take effect, CLKLOADCTL.LOAD // needs to be written Other values are not supported. // 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 // DIV1 Divide by 1 #define PRCM_GPTCLKDIV_RATIO_W 4 #define PRCM_GPTCLKDIV_RATIO_M 0x0000000F #define PRCM_GPTCLKDIV_RATIO_S 0 #define PRCM_GPTCLKDIV_RATIO_DIV256 0x00000008 #define PRCM_GPTCLKDIV_RATIO_DIV128 0x00000007 #define PRCM_GPTCLKDIV_RATIO_DIV64 0x00000006 #define PRCM_GPTCLKDIV_RATIO_DIV32 0x00000005 #define PRCM_GPTCLKDIV_RATIO_DIV16 0x00000004 #define PRCM_GPTCLKDIV_RATIO_DIV8 0x00000003 #define PRCM_GPTCLKDIV_RATIO_DIV4 0x00000002 #define PRCM_GPTCLKDIV_RATIO_DIV2 0x00000001 #define PRCM_GPTCLKDIV_RATIO_DIV1 0x00000000 //***************************************************************************** // // Register: PRCM_O_I2SCLKCTL // //***************************************************************************** // Field: [3] SMPL_ON_POSEDGE // // On the I2S serial interface, data and WCLK is sampled and clocked out on // opposite edges of BCLK. // // 0 - data and WCLK are sampled on the negative edge and clocked out on the // positive edge. // 1 - data and WCLK are sampled on the positive edge and clocked out on the // negative edge. // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SCLKCTL_SMPL_ON_POSEDGE 0x00000008 #define PRCM_I2SCLKCTL_SMPL_ON_POSEDGE_BITN 3 #define PRCM_I2SCLKCTL_SMPL_ON_POSEDGE_M 0x00000008 #define PRCM_I2SCLKCTL_SMPL_ON_POSEDGE_S 3 // Field: [2:1] WCLK_PHASE // // Decides how the WCLK division ratio is calculated and used to generate // different duty cycles (See I2SWCLKDIV.WDIV). // // 0: Single phase // 1: Dual phase // 2: User Defined // 3: Reserved/Undefined // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SCLKCTL_WCLK_PHASE_W 2 #define PRCM_I2SCLKCTL_WCLK_PHASE_M 0x00000006 #define PRCM_I2SCLKCTL_WCLK_PHASE_S 1 // Field: [0] EN // // // 0: MCLK, BCLK and WCLK will be static low // 1: Enables the generation of MCLK, BCLK and WCLK // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SCLKCTL_EN 0x00000001 #define PRCM_I2SCLKCTL_EN_BITN 0 #define PRCM_I2SCLKCTL_EN_M 0x00000001 #define PRCM_I2SCLKCTL_EN_S 0 //***************************************************************************** // // Register: PRCM_O_I2SMCLKDIV // //***************************************************************************** // Field: [9:0] MDIV // // An unsigned factor of the division ratio used to generate MCLK [2-1024]: // // MCLK = MCUCLK/MDIV[Hz] // MCUCLK is 48MHz. // // A value of 0 is interpreted as 1024. // A value of 1 is invalid. // If MDIV is odd the low phase of the clock is one MCUCLK period longer than // the high phase. // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SMCLKDIV_MDIV_W 10 #define PRCM_I2SMCLKDIV_MDIV_M 0x000003FF #define PRCM_I2SMCLKDIV_MDIV_S 0 //***************************************************************************** // // Register: PRCM_O_I2SBCLKDIV // //***************************************************************************** // Field: [9:0] BDIV // // An unsigned factor of the division ratio used to generate I2S BCLK [2-1024]: // // BCLK = MCUCLK/BDIV[Hz] // MCUCLK is 48MHz. // // A value of 0 is interpreted as 1024. // A value of 1 is invalid. // If BDIV is odd and I2SCLKCTL.SMPL_ON_POSEDGE = 0, the low phase of the clock // is one MCUCLK period longer than the high phase. // If BDIV is odd and I2SCLKCTL.SMPL_ON_POSEDGE = 1 , the high phase of the // clock is one MCUCLK period longer than the low phase. // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SBCLKDIV_BDIV_W 10 #define PRCM_I2SBCLKDIV_BDIV_M 0x000003FF #define PRCM_I2SBCLKDIV_BDIV_S 0 //***************************************************************************** // // Register: PRCM_O_I2SWCLKDIV // //***************************************************************************** // Field: [15:0] WDIV // // If I2SCLKCTL.WCLK_PHASE = 0, Single phase. // WCLK is high one BCLK period and low WDIV[9:0] (unsigned, [1-1023]) BCLK // periods. // // WCLK = MCUCLK / BDIV*(WDIV[9:0] + 1) [Hz] // MCUCLK is 48MHz. // // If I2SCLKCTL.WCLK_PHASE = 1, Dual phase. // Each phase on WCLK (50% duty cycle) is WDIV[9:0] (unsigned, [1-1023]) BCLK // periods. // // WCLK = MCUCLK / BDIV*(2*WDIV[9:0]) [Hz] // // If I2SCLKCTL.WCLK_PHASE = 2, User defined. // WCLK is high WDIV[7:0] (unsigned, [1-255]) BCLK periods and low WDIV[15:8] // (unsigned, [1-255]) BCLK periods. // // WCLK = MCUCLK / (BDIV*(WDIV[7:0] + WDIV[15:8]) [Hz] // // For changes to take effect, CLKLOADCTL.LOAD needs to be written #define PRCM_I2SWCLKDIV_WDIV_W 16 #define PRCM_I2SWCLKDIV_WDIV_M 0x0000FFFF #define PRCM_I2SWCLKDIV_WDIV_S 0 //***************************************************************************** // // Register: PRCM_O_RESETSECDMA // //***************************************************************************** // Field: [8] DMA // // Write 1 to reset. HW cleared. // Acess will only have effect when PERIPH power domain is on, // PDSTAT0.PERIPH_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETSECDMA_DMA 0x00000100 #define PRCM_RESETSECDMA_DMA_BITN 8 #define PRCM_RESETSECDMA_DMA_M 0x00000100 #define PRCM_RESETSECDMA_DMA_S 8 // Field: [2] PKA // // Write 1 to reset. HW cleared. // Acess will only have effect when PERIPH power domain is on, // PDSTAT0.PERIPH_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETSECDMA_PKA 0x00000004 #define PRCM_RESETSECDMA_PKA_BITN 2 #define PRCM_RESETSECDMA_PKA_M 0x00000004 #define PRCM_RESETSECDMA_PKA_S 2 // Field: [1] TRNG // // Write 1 to reset. HW cleared. // Acess will only have effect when PERIPH power domain is on, // PDSTAT0.PERIPH_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETSECDMA_TRNG 0x00000002 #define PRCM_RESETSECDMA_TRNG_BITN 1 #define PRCM_RESETSECDMA_TRNG_M 0x00000002 #define PRCM_RESETSECDMA_TRNG_S 1 // Field: [0] CRYPTO // // Write 1 to reset. HW cleared. // Acess will only have effect when PERIPH power domain is on, // PDSTAT0.PERIPH_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETSECDMA_CRYPTO 0x00000001 #define PRCM_RESETSECDMA_CRYPTO_BITN 0 #define PRCM_RESETSECDMA_CRYPTO_M 0x00000001 #define PRCM_RESETSECDMA_CRYPTO_S 0 //***************************************************************************** // // Register: PRCM_O_RESETGPIO // //***************************************************************************** // Field: [0] GPIO // // // 0: No action // 1: Reset GPIO. HW cleared. // // Acess will only have effect when PERIPH power domain is on, // PDSTAT0.PERIPH_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETGPIO_GPIO 0x00000001 #define PRCM_RESETGPIO_GPIO_BITN 0 #define PRCM_RESETGPIO_GPIO_M 0x00000001 #define PRCM_RESETGPIO_GPIO_S 0 //***************************************************************************** // // Register: PRCM_O_RESETGPT // //***************************************************************************** // Field: [0] GPT // // // 0: No action // 1: Reset all GPTs. HW cleared. // // Acess will only have effect when PERIPH power domain is on, // PDSTAT0.PERIPH_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETGPT_GPT 0x00000001 #define PRCM_RESETGPT_GPT_BITN 0 #define PRCM_RESETGPT_GPT_M 0x00000001 #define PRCM_RESETGPT_GPT_S 0 //***************************************************************************** // // Register: PRCM_O_RESETI2C // //***************************************************************************** // Field: [0] I2C // // // 0: No action // 1: Reset I2C. HW cleared. // // Acess will only have effect when SERIAL power domain is on, // PDSTAT0.SERIAL_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETI2C_I2C 0x00000001 #define PRCM_RESETI2C_I2C_BITN 0 #define PRCM_RESETI2C_I2C_M 0x00000001 #define PRCM_RESETI2C_I2C_S 0 //***************************************************************************** // // Register: PRCM_O_RESETUART // //***************************************************************************** // Field: [1] UART1 // // // 0: No action // 1: Reset UART1. HW cleared. // // Acess will only have effect when PERIPH power domain is on, // PDSTAT0.PERIPH_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETUART_UART1 0x00000002 #define PRCM_RESETUART_UART1_BITN 1 #define PRCM_RESETUART_UART1_M 0x00000002 #define PRCM_RESETUART_UART1_S 1 // Field: [0] UART0 // // // 0: No action // 1: Reset UART0. HW cleared. // // Acess will only have effect when SERIAL power domain is on, // PDSTAT0.SERIAL_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETUART_UART0 0x00000001 #define PRCM_RESETUART_UART0_BITN 0 #define PRCM_RESETUART_UART0_M 0x00000001 #define PRCM_RESETUART_UART0_S 0 //***************************************************************************** // // Register: PRCM_O_RESETSSI // //***************************************************************************** // Field: [1:0] SSI // // SSI 0: // // 0: No action // 1: Reset SSI. HW cleared. // // Acess will only have effect when SERIAL power domain is on, // PDSTAT0.SERIAL_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. // // SSI 1: // // 0: No action // 1: Reset SSI. HW cleared. // // Acess will only have effect when PERIPH power domain is on, // PDSTAT0.PERIPH_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETSSI_SSI_W 2 #define PRCM_RESETSSI_SSI_M 0x00000003 #define PRCM_RESETSSI_SSI_S 0 //***************************************************************************** // // Register: PRCM_O_RESETI2S // //***************************************************************************** // Field: [0] I2S // // // 0: No action // 1: Reset module. HW cleared. // // Acess will only have effect when PERIPH power domain is on, // PDSTAT0.PERIPH_ON = 1 // Before writing set FLASH:CFG.DIS_READACCESS = 1 to ensure the reset is not // activated while executing from flash. This means one cannot execute from // flash when using the SW reset. #define PRCM_RESETI2S_I2S 0x00000001 #define PRCM_RESETI2S_I2S_BITN 0 #define PRCM_RESETI2S_I2S_M 0x00000001 #define PRCM_RESETI2S_I2S_S 0 //***************************************************************************** // // Register: PRCM_O_PDCTL0 // //***************************************************************************** // Field: [2] PERIPH_ON // // PERIPH Power domain. // // 0: PERIPH power domain is powered down // 1: PERIPH power domain is powered up #define PRCM_PDCTL0_PERIPH_ON 0x00000004 #define PRCM_PDCTL0_PERIPH_ON_BITN 2 #define PRCM_PDCTL0_PERIPH_ON_M 0x00000004 #define PRCM_PDCTL0_PERIPH_ON_S 2 // Field: [1] SERIAL_ON // // SERIAL Power domain. // // 0: SERIAL power domain is powered down // 1: SERIAL power domain is powered up #define PRCM_PDCTL0_SERIAL_ON 0x00000002 #define PRCM_PDCTL0_SERIAL_ON_BITN 1 #define PRCM_PDCTL0_SERIAL_ON_M 0x00000002 #define PRCM_PDCTL0_SERIAL_ON_S 1 // Field: [0] RFC_ON // // // 0: RFC power domain powered off if also PDCTL1.RFC_ON = 0 // 1: RFC power domain powered on #define PRCM_PDCTL0_RFC_ON 0x00000001 #define PRCM_PDCTL0_RFC_ON_BITN 0 #define PRCM_PDCTL0_RFC_ON_M 0x00000001 #define PRCM_PDCTL0_RFC_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDCTL0RFC // //***************************************************************************** // Field: [0] ON // // Alias for PDCTL0.RFC_ON #define PRCM_PDCTL0RFC_ON 0x00000001 #define PRCM_PDCTL0RFC_ON_BITN 0 #define PRCM_PDCTL0RFC_ON_M 0x00000001 #define PRCM_PDCTL0RFC_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDCTL0SERIAL // //***************************************************************************** // Field: [0] ON // // Alias for PDCTL0.SERIAL_ON #define PRCM_PDCTL0SERIAL_ON 0x00000001 #define PRCM_PDCTL0SERIAL_ON_BITN 0 #define PRCM_PDCTL0SERIAL_ON_M 0x00000001 #define PRCM_PDCTL0SERIAL_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDCTL0PERIPH // //***************************************************************************** // Field: [0] ON // // Alias for PDCTL0.PERIPH_ON #define PRCM_PDCTL0PERIPH_ON 0x00000001 #define PRCM_PDCTL0PERIPH_ON_BITN 0 #define PRCM_PDCTL0PERIPH_ON_M 0x00000001 #define PRCM_PDCTL0PERIPH_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDSTAT0 // //***************************************************************************** // Field: [2] PERIPH_ON // // PERIPH Power domain. // // 0: Domain may be powered down // 1: Domain powered up (guaranteed) #define PRCM_PDSTAT0_PERIPH_ON 0x00000004 #define PRCM_PDSTAT0_PERIPH_ON_BITN 2 #define PRCM_PDSTAT0_PERIPH_ON_M 0x00000004 #define PRCM_PDSTAT0_PERIPH_ON_S 2 // Field: [1] SERIAL_ON // // SERIAL Power domain. // // 0: Domain may be powered down // 1: Domain powered up (guaranteed) #define PRCM_PDSTAT0_SERIAL_ON 0x00000002 #define PRCM_PDSTAT0_SERIAL_ON_BITN 1 #define PRCM_PDSTAT0_SERIAL_ON_M 0x00000002 #define PRCM_PDSTAT0_SERIAL_ON_S 1 // Field: [0] RFC_ON // // RFC Power domain // // 0: Domain may be powered down // 1: Domain powered up (guaranteed) #define PRCM_PDSTAT0_RFC_ON 0x00000001 #define PRCM_PDSTAT0_RFC_ON_BITN 0 #define PRCM_PDSTAT0_RFC_ON_M 0x00000001 #define PRCM_PDSTAT0_RFC_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDSTAT0RFC // //***************************************************************************** // Field: [0] ON // // Alias for PDSTAT0.RFC_ON #define PRCM_PDSTAT0RFC_ON 0x00000001 #define PRCM_PDSTAT0RFC_ON_BITN 0 #define PRCM_PDSTAT0RFC_ON_M 0x00000001 #define PRCM_PDSTAT0RFC_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDSTAT0SERIAL // //***************************************************************************** // Field: [0] ON // // Alias for PDSTAT0.SERIAL_ON #define PRCM_PDSTAT0SERIAL_ON 0x00000001 #define PRCM_PDSTAT0SERIAL_ON_BITN 0 #define PRCM_PDSTAT0SERIAL_ON_M 0x00000001 #define PRCM_PDSTAT0SERIAL_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDSTAT0PERIPH // //***************************************************************************** // Field: [0] ON // // Alias for PDSTAT0.PERIPH_ON #define PRCM_PDSTAT0PERIPH_ON 0x00000001 #define PRCM_PDSTAT0PERIPH_ON_BITN 0 #define PRCM_PDSTAT0PERIPH_ON_M 0x00000001 #define PRCM_PDSTAT0PERIPH_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDCTL1 // //***************************************************************************** // Field: [4:3] VIMS_MODE // // // 00: VIMS power domain is only powered when CPU power domain is powered. // 01: VIMS power domain is powered whenever the BUS power domain is powered. // 1X: Block power up of VIMS power domain at next wake up. This mode only has // effect when VIMS power domain is not powered. Used for Autonomous RF Core. #define PRCM_PDCTL1_VIMS_MODE_W 2 #define PRCM_PDCTL1_VIMS_MODE_M 0x00000018 #define PRCM_PDCTL1_VIMS_MODE_S 3 // Field: [2] RFC_ON // // 0: RFC power domain powered off if also PDCTL0.RFC_ON = 0 1: RFC power // domain powered on Bit shall be used by RFC in autonomous mode but there is // no HW restrictions fom system CPU to access the bit. #define PRCM_PDCTL1_RFC_ON 0x00000004 #define PRCM_PDCTL1_RFC_ON_BITN 2 #define PRCM_PDCTL1_RFC_ON_M 0x00000004 #define PRCM_PDCTL1_RFC_ON_S 2 // Field: [1] CPU_ON // // // 0: Causes a power down of the CPU power domain when system CPU indicates it // is idle. // 1: Initiates power-on of the CPU power domain. // // This bit is automatically set by a WIC power-on event. #define PRCM_PDCTL1_CPU_ON 0x00000002 #define PRCM_PDCTL1_CPU_ON_BITN 1 #define PRCM_PDCTL1_CPU_ON_M 0x00000002 #define PRCM_PDCTL1_CPU_ON_S 1 //***************************************************************************** // // Register: PRCM_O_PDCTL1CPU // //***************************************************************************** // Field: [0] ON // // This is an alias for PDCTL1.CPU_ON #define PRCM_PDCTL1CPU_ON 0x00000001 #define PRCM_PDCTL1CPU_ON_BITN 0 #define PRCM_PDCTL1CPU_ON_M 0x00000001 #define PRCM_PDCTL1CPU_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDCTL1RFC // //***************************************************************************** // Field: [0] ON // // This is an alias for PDCTL1.RFC_ON #define PRCM_PDCTL1RFC_ON 0x00000001 #define PRCM_PDCTL1RFC_ON_BITN 0 #define PRCM_PDCTL1RFC_ON_M 0x00000001 #define PRCM_PDCTL1RFC_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDCTL1VIMS // //***************************************************************************** // Field: [1:0] MODE // // This is an alias for PDCTL1.VIMS_MODE #define PRCM_PDCTL1VIMS_MODE_W 2 #define PRCM_PDCTL1VIMS_MODE_M 0x00000003 #define PRCM_PDCTL1VIMS_MODE_S 0 //***************************************************************************** // // Register: PRCM_O_PDSTAT1 // //***************************************************************************** // Field: [4] BUS_ON // // // 0: BUS domain not accessible // 1: BUS domain is currently accessible #define PRCM_PDSTAT1_BUS_ON 0x00000010 #define PRCM_PDSTAT1_BUS_ON_BITN 4 #define PRCM_PDSTAT1_BUS_ON_M 0x00000010 #define PRCM_PDSTAT1_BUS_ON_S 4 // Field: [3] VIMS_ON // // // 0: VIMS domain not accessible // 1: VIMS domain is currently accessible #define PRCM_PDSTAT1_VIMS_ON 0x00000008 #define PRCM_PDSTAT1_VIMS_ON_BITN 3 #define PRCM_PDSTAT1_VIMS_ON_M 0x00000008 #define PRCM_PDSTAT1_VIMS_ON_S 3 // Field: [2] RFC_ON // // // 0: RFC domain not accessible // 1: RFC domain is currently accessible #define PRCM_PDSTAT1_RFC_ON 0x00000004 #define PRCM_PDSTAT1_RFC_ON_BITN 2 #define PRCM_PDSTAT1_RFC_ON_M 0x00000004 #define PRCM_PDSTAT1_RFC_ON_S 2 // Field: [1] CPU_ON // // // 0: CPU and BUS domain not accessible // 1: CPU and BUS domains are both currently accessible #define PRCM_PDSTAT1_CPU_ON 0x00000002 #define PRCM_PDSTAT1_CPU_ON_BITN 1 #define PRCM_PDSTAT1_CPU_ON_M 0x00000002 #define PRCM_PDSTAT1_CPU_ON_S 1 //***************************************************************************** // // Register: PRCM_O_PDSTAT1BUS // //***************************************************************************** // Field: [0] ON // // This is an alias for PDSTAT1.BUS_ON #define PRCM_PDSTAT1BUS_ON 0x00000001 #define PRCM_PDSTAT1BUS_ON_BITN 0 #define PRCM_PDSTAT1BUS_ON_M 0x00000001 #define PRCM_PDSTAT1BUS_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDSTAT1RFC // //***************************************************************************** // Field: [0] ON // // This is an alias for PDSTAT1.RFC_ON #define PRCM_PDSTAT1RFC_ON 0x00000001 #define PRCM_PDSTAT1RFC_ON_BITN 0 #define PRCM_PDSTAT1RFC_ON_M 0x00000001 #define PRCM_PDSTAT1RFC_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDSTAT1CPU // //***************************************************************************** // Field: [0] ON // // This is an alias for PDSTAT1.CPU_ON #define PRCM_PDSTAT1CPU_ON 0x00000001 #define PRCM_PDSTAT1CPU_ON_BITN 0 #define PRCM_PDSTAT1CPU_ON_M 0x00000001 #define PRCM_PDSTAT1CPU_ON_S 0 //***************************************************************************** // // Register: PRCM_O_PDSTAT1VIMS // //***************************************************************************** // Field: [0] ON // // This is an alias for PDSTAT1.VIMS_ON #define PRCM_PDSTAT1VIMS_ON 0x00000001 #define PRCM_PDSTAT1VIMS_ON_BITN 0 #define PRCM_PDSTAT1VIMS_ON_M 0x00000001 #define PRCM_PDSTAT1VIMS_ON_S 0 //***************************************************************************** // // Register: PRCM_O_RFCBITS // //***************************************************************************** // Field: [31:0] READ // // Control bits for RFC. The RF core CPE processor will automatically check // this register when it boots, and it can be used to immediately instruct CPE // to perform some tasks at its start-up. The supported functionality is // ROM-defined and may vary. See the technical reference manual for more // details. #define PRCM_RFCBITS_READ_W 32 #define PRCM_RFCBITS_READ_M 0xFFFFFFFF #define PRCM_RFCBITS_READ_S 0 //***************************************************************************** // // Register: PRCM_O_RFCMODESEL // //***************************************************************************** // Field: [2:0] CURR // // Selects the set of commands that the RFC will accept. Only modes permitted // by RFCMODEHWOPT.AVAIL are writeable. See the technical reference manual for // details. // ENUMs: // MODE7 Select Mode 7 // MODE6 Select Mode 6 // MODE5 Select Mode 5 // MODE4 Select Mode 4 // MODE3 Select Mode 3 // MODE2 Select Mode 2 // MODE1 Select Mode 1 // MODE0 Select Mode 0 #define PRCM_RFCMODESEL_CURR_W 3 #define PRCM_RFCMODESEL_CURR_M 0x00000007 #define PRCM_RFCMODESEL_CURR_S 0 #define PRCM_RFCMODESEL_CURR_MODE7 0x00000007 #define PRCM_RFCMODESEL_CURR_MODE6 0x00000006 #define PRCM_RFCMODESEL_CURR_MODE5 0x00000005 #define PRCM_RFCMODESEL_CURR_MODE4 0x00000004 #define PRCM_RFCMODESEL_CURR_MODE3 0x00000003 #define PRCM_RFCMODESEL_CURR_MODE2 0x00000002 #define PRCM_RFCMODESEL_CURR_MODE1 0x00000001 #define PRCM_RFCMODESEL_CURR_MODE0 0x00000000 //***************************************************************************** // // Register: PRCM_O_RFCMODEHWOPT // //***************************************************************************** // Field: [7:0] AVAIL // // Permitted RFC modes. More than one mode can be permitted. // ENUMs: // MODE7 Mode 7 permitted // MODE6 Mode 6 permitted // MODE5 Mode 5 permitted // MODE4 Mode 4 permitted // MODE3 Mode 3 permitted // MODE2 Mode 2 permitted // MODE1 Mode 1 permitted // MODE0 Mode 0 permitted #define PRCM_RFCMODEHWOPT_AVAIL_W 8 #define PRCM_RFCMODEHWOPT_AVAIL_M 0x000000FF #define PRCM_RFCMODEHWOPT_AVAIL_S 0 #define PRCM_RFCMODEHWOPT_AVAIL_MODE7 0x00000080 #define PRCM_RFCMODEHWOPT_AVAIL_MODE6 0x00000040 #define PRCM_RFCMODEHWOPT_AVAIL_MODE5 0x00000020 #define PRCM_RFCMODEHWOPT_AVAIL_MODE4 0x00000010 #define PRCM_RFCMODEHWOPT_AVAIL_MODE3 0x00000008 #define PRCM_RFCMODEHWOPT_AVAIL_MODE2 0x00000004 #define PRCM_RFCMODEHWOPT_AVAIL_MODE1 0x00000002 #define PRCM_RFCMODEHWOPT_AVAIL_MODE0 0x00000001 //***************************************************************************** // // Register: PRCM_O_PWRPROFSTAT // //***************************************************************************** // Field: [7:0] VALUE // // SW can use these bits to timestamp the application. These bits are also // available through the testtap and can thus be used by the emulator to // profile in real time. #define PRCM_PWRPROFSTAT_VALUE_W 8 #define PRCM_PWRPROFSTAT_VALUE_M 0x000000FF #define PRCM_PWRPROFSTAT_VALUE_S 0 //***************************************************************************** // // Register: PRCM_O_MCUSRAMCFG // //***************************************************************************** // Field: [5] BM_OFF // // Burst Mode disable // // 0: Burst Mode enabled. // 1: Burst Mode off. #define PRCM_MCUSRAMCFG_BM_OFF 0x00000020 #define PRCM_MCUSRAMCFG_BM_OFF_BITN 5 #define PRCM_MCUSRAMCFG_BM_OFF_M 0x00000020 #define PRCM_MCUSRAMCFG_BM_OFF_S 5 // Field: [4] PAGE // // Page Mode select // // 0: Page Mode disabled. Memory works in standard mode // 1: Page Mode enabled. Only one half of butterfly array selected. Page Mode // will select either LSB half or MSB half of the word based on PGS setting. // // This mode can be used for additional power saving #define PRCM_MCUSRAMCFG_PAGE 0x00000010 #define PRCM_MCUSRAMCFG_PAGE_BITN 4 #define PRCM_MCUSRAMCFG_PAGE_M 0x00000010 #define PRCM_MCUSRAMCFG_PAGE_S 4 // Field: [3] PGS // // 0: Select LSB half of word during Page Mode, PAGE = 1 // 1: Select MSB half of word during Page Mode, PAGE = 1 #define PRCM_MCUSRAMCFG_PGS 0x00000008 #define PRCM_MCUSRAMCFG_PGS_BITN 3 #define PRCM_MCUSRAMCFG_PGS_M 0x00000008 #define PRCM_MCUSRAMCFG_PGS_S 3 // Field: [2] BM // // Burst Mode Enable // // 0: Burst Mode Disable. Memory works in standard mode. // 1: Burst Mode Enable // // When in Burst Mode bitline precharge and wordline firing depends on PCH_F // and PCH_L. // Burst Mode results in reduction in active power. #define PRCM_MCUSRAMCFG_BM 0x00000004 #define PRCM_MCUSRAMCFG_BM_BITN 2 #define PRCM_MCUSRAMCFG_BM_M 0x00000004 #define PRCM_MCUSRAMCFG_BM_S 2 // Field: [1] PCH_F // // 0: No bitline precharge in second half of cycle // 1: Bitline precharge in second half of cycle when in Burst Mode, BM = 1 #define PRCM_MCUSRAMCFG_PCH_F 0x00000002 #define PRCM_MCUSRAMCFG_PCH_F_BITN 1 #define PRCM_MCUSRAMCFG_PCH_F_M 0x00000002 #define PRCM_MCUSRAMCFG_PCH_F_S 1 // Field: [0] PCH_L // // 0: No bitline precharge in first half of cycle // 1: Bitline precharge in first half of cycle when in Burst Mode, BM = 1 #define PRCM_MCUSRAMCFG_PCH_L 0x00000001 #define PRCM_MCUSRAMCFG_PCH_L_BITN 0 #define PRCM_MCUSRAMCFG_PCH_L_M 0x00000001 #define PRCM_MCUSRAMCFG_PCH_L_S 0 //***************************************************************************** // // Register: PRCM_O_RAMRETEN // //***************************************************************************** // Field: [3] RFCULL // // 0: Retention for RFC ULL SRAM disabled // 1: Retention for RFC ULL SRAM enabled // // Memories controlled: // CPEULLRAM #define PRCM_RAMRETEN_RFCULL 0x00000008 #define PRCM_RAMRETEN_RFCULL_BITN 3 #define PRCM_RAMRETEN_RFCULL_M 0x00000008 #define PRCM_RAMRETEN_RFCULL_S 3 // Field: [2] RFC // // 0: Retention for RFC SRAM disabled // 1: Retention for RFC SRAM enabled // // Memories controlled: CPERAM MCERAM RFERAM DSBRAM #define PRCM_RAMRETEN_RFC 0x00000004 #define PRCM_RAMRETEN_RFC_BITN 2 #define PRCM_RAMRETEN_RFC_M 0x00000004 #define PRCM_RAMRETEN_RFC_S 2 // Field: [1:0] VIMS // // // 0: Memory retention disabled // 1: Memory retention enabled // // Bit 0: VIMS_TRAM // Bit 1: VIMS_CRAM // // Legal modes depend on settings in VIMS:CTL.MODE // // 00: VIMS:CTL.MODE must be OFF before DEEPSLEEP is asserted - must be set to // CACHE or SPLIT mode after waking up again // 01: VIMS:CTL.MODE must be GPRAM before DEEPSLEEP is asserted. Must remain in // GPRAM mode after wake up, alternatively select OFF mode first and then CACHE // or SPILT mode. // 10: Illegal mode // 11: No restrictions #define PRCM_RAMRETEN_VIMS_W 2 #define PRCM_RAMRETEN_VIMS_M 0x00000003 #define PRCM_RAMRETEN_VIMS_S 0 //***************************************************************************** // // Register: PRCM_O_OSCIMSC // //***************************************************************************** // Field: [7] HFSRCPENDIM // // 0: Disable interrupt generation when HFSRCPEND is qualified // 1: Enable interrupt generation when HFSRCPEND is qualified #define PRCM_OSCIMSC_HFSRCPENDIM 0x00000080 #define PRCM_OSCIMSC_HFSRCPENDIM_BITN 7 #define PRCM_OSCIMSC_HFSRCPENDIM_M 0x00000080 #define PRCM_OSCIMSC_HFSRCPENDIM_S 7 // Field: [6] LFSRCDONEIM // // 0: Disable interrupt generation when LFSRCDONE is qualified // 1: Enable interrupt generation when LFSRCDONE is qualified #define PRCM_OSCIMSC_LFSRCDONEIM 0x00000040 #define PRCM_OSCIMSC_LFSRCDONEIM_BITN 6 #define PRCM_OSCIMSC_LFSRCDONEIM_M 0x00000040 #define PRCM_OSCIMSC_LFSRCDONEIM_S 6 // Field: [5] XOSCDLFIM // // 0: Disable interrupt generation when XOSCDLF is qualified // 1: Enable interrupt generation when XOSCDLF is qualified #define PRCM_OSCIMSC_XOSCDLFIM 0x00000020 #define PRCM_OSCIMSC_XOSCDLFIM_BITN 5 #define PRCM_OSCIMSC_XOSCDLFIM_M 0x00000020 #define PRCM_OSCIMSC_XOSCDLFIM_S 5 // Field: [4] XOSCLFIM // // 0: Disable interrupt generation when XOSCLF is qualified // 1: Enable interrupt generation when XOSCLF is qualified #define PRCM_OSCIMSC_XOSCLFIM 0x00000010 #define PRCM_OSCIMSC_XOSCLFIM_BITN 4 #define PRCM_OSCIMSC_XOSCLFIM_M 0x00000010 #define PRCM_OSCIMSC_XOSCLFIM_S 4 // Field: [3] RCOSCDLFIM // // 0: Disable interrupt generation when RCOSCDLF is qualified // 1: Enable interrupt generation when RCOSCDLF is qualified #define PRCM_OSCIMSC_RCOSCDLFIM 0x00000008 #define PRCM_OSCIMSC_RCOSCDLFIM_BITN 3 #define PRCM_OSCIMSC_RCOSCDLFIM_M 0x00000008 #define PRCM_OSCIMSC_RCOSCDLFIM_S 3 // Field: [2] RCOSCLFIM // // 0: Disable interrupt generation when RCOSCLF is qualified // 1: Enable interrupt generation when RCOSCLF is qualified #define PRCM_OSCIMSC_RCOSCLFIM 0x00000004 #define PRCM_OSCIMSC_RCOSCLFIM_BITN 2 #define PRCM_OSCIMSC_RCOSCLFIM_M 0x00000004 #define PRCM_OSCIMSC_RCOSCLFIM_S 2 // Field: [1] XOSCHFIM // // 0: Disable interrupt generation when XOSCHF is qualified // 1: Enable interrupt generation when XOSCHF is qualified #define PRCM_OSCIMSC_XOSCHFIM 0x00000002 #define PRCM_OSCIMSC_XOSCHFIM_BITN 1 #define PRCM_OSCIMSC_XOSCHFIM_M 0x00000002 #define PRCM_OSCIMSC_XOSCHFIM_S 1 // Field: [0] RCOSCHFIM // // 0: Disable interrupt generation when RCOSCHF is qualified // 1: Enable interrupt generation when RCOSCHF is qualified #define PRCM_OSCIMSC_RCOSCHFIM 0x00000001 #define PRCM_OSCIMSC_RCOSCHFIM_BITN 0 #define PRCM_OSCIMSC_RCOSCHFIM_M 0x00000001 #define PRCM_OSCIMSC_RCOSCHFIM_S 0 //***************************************************************************** // // Register: PRCM_O_OSCRIS // //***************************************************************************** // Field: [7] HFSRCPENDRIS // // 0: HFSRCPEND has not been qualified // 1: HFSRCPEND has been qualified since last clear // // Interrupt is qualified regardless of OSCIMSC.HFSRCPENDIM setting. The order // of qualifying raw interrupt and enable of interrupt mask is indifferent for // generating an OSC Interrupt. // // Set by HW. Cleared by writing to OSCICR.HFSRCPENDC #define PRCM_OSCRIS_HFSRCPENDRIS 0x00000080 #define PRCM_OSCRIS_HFSRCPENDRIS_BITN 7 #define PRCM_OSCRIS_HFSRCPENDRIS_M 0x00000080 #define PRCM_OSCRIS_HFSRCPENDRIS_S 7 // Field: [6] LFSRCDONERIS // // 0: LFSRCDONE has not been qualified // 1: LFSRCDONE has been qualified since last clear // // Interrupt is qualified regardless of OSCIMSC.LFSRCDONEIM setting. The order // of qualifying raw interrupt and enable of interrupt mask is indifferent for // generating an OSC Interrupt. // // Set by HW. Cleared by writing to OSCICR.LFSRCDONEC #define PRCM_OSCRIS_LFSRCDONERIS 0x00000040 #define PRCM_OSCRIS_LFSRCDONERIS_BITN 6 #define PRCM_OSCRIS_LFSRCDONERIS_M 0x00000040 #define PRCM_OSCRIS_LFSRCDONERIS_S 6 // Field: [5] XOSCDLFRIS // // 0: XOSCDLF has not been qualified // 1: XOSCDLF has been qualified since last clear. // // Interrupt is qualified regardless of OSCIMSC.XOSCDLFIM setting. The order of // qualifying raw interrupt and enable of interrupt mask is indifferent for // generating an OSC Interrupt. // // Set by HW. Cleared by writing to OSCICR.XOSCDLFC #define PRCM_OSCRIS_XOSCDLFRIS 0x00000020 #define PRCM_OSCRIS_XOSCDLFRIS_BITN 5 #define PRCM_OSCRIS_XOSCDLFRIS_M 0x00000020 #define PRCM_OSCRIS_XOSCDLFRIS_S 5 // Field: [4] XOSCLFRIS // // 0: XOSCLF has not been qualified // 1: XOSCLF has been qualified since last clear. // // Interrupt is qualified regardless of OSCIMSC.XOSCLFIM setting. The order of // qualifying raw interrupt and enable of interrupt mask is indifferent for // generating an OSC Interrupt. // // Set by HW. Cleared by writing to OSCICR.XOSCLFC #define PRCM_OSCRIS_XOSCLFRIS 0x00000010 #define PRCM_OSCRIS_XOSCLFRIS_BITN 4 #define PRCM_OSCRIS_XOSCLFRIS_M 0x00000010 #define PRCM_OSCRIS_XOSCLFRIS_S 4 // Field: [3] RCOSCDLFRIS // // 0: RCOSCDLF has not been qualified // 1: RCOSCDLF has been qualified since last clear. // // Interrupt is qualified regardless of OSCIMSC.RCOSCDLFIM setting. The order // of qualifying raw interrupt and enable of interrupt mask is indifferent for // generating an OSC Interrupt. // // Set by HW. Cleared by writing to OSCICR.RCOSCDLFC #define PRCM_OSCRIS_RCOSCDLFRIS 0x00000008 #define PRCM_OSCRIS_RCOSCDLFRIS_BITN 3 #define PRCM_OSCRIS_RCOSCDLFRIS_M 0x00000008 #define PRCM_OSCRIS_RCOSCDLFRIS_S 3 // Field: [2] RCOSCLFRIS // // 0: RCOSCLF has not been qualified // 1: RCOSCLF has been qualified since last clear. // // Interrupt is qualified regardless of OSCIMSC.RCOSCLFIM setting. The order of // qualifying raw interrupt and enable of interrupt mask is indifferent for // generating an OSC Interrupt. // // Set by HW. Cleared by writing to OSCICR.RCOSCLFC #define PRCM_OSCRIS_RCOSCLFRIS 0x00000004 #define PRCM_OSCRIS_RCOSCLFRIS_BITN 2 #define PRCM_OSCRIS_RCOSCLFRIS_M 0x00000004 #define PRCM_OSCRIS_RCOSCLFRIS_S 2 // Field: [1] XOSCHFRIS // // 0: XOSCHF has not been qualified // 1: XOSCHF has been qualified since last clear. // // Interrupt is qualified regardless of OSCIMSC.XOSCHFIM setting. The order of // qualifying raw interrupt and enable of interrupt mask is indifferent for // generating an OSC Interrupt. // // Set by HW. Cleared by writing to OSCICR.XOSCHFC #define PRCM_OSCRIS_XOSCHFRIS 0x00000002 #define PRCM_OSCRIS_XOSCHFRIS_BITN 1 #define PRCM_OSCRIS_XOSCHFRIS_M 0x00000002 #define PRCM_OSCRIS_XOSCHFRIS_S 1 // Field: [0] RCOSCHFRIS // // 0: RCOSCHF has not been qualified // 1: RCOSCHF has been qualified since last clear. // // Interrupt is qualified regardless of OSCIMSC.RCOSCHFIM setting. The order of // qualifying raw interrupt and enable of interrupt mask is indifferent for // generating an OSC Interrupt. // // Set by HW. Cleared by writing to OSCICR.RCOSCHFC #define PRCM_OSCRIS_RCOSCHFRIS 0x00000001 #define PRCM_OSCRIS_RCOSCHFRIS_BITN 0 #define PRCM_OSCRIS_RCOSCHFRIS_M 0x00000001 #define PRCM_OSCRIS_RCOSCHFRIS_S 0 //***************************************************************************** // // Register: PRCM_O_OSCICR // //***************************************************************************** // Field: [7] HFSRCPENDC // // Writing 1 to this field clears the HFSRCPEND raw interrupt status. Writing 0 // has no effect. #define PRCM_OSCICR_HFSRCPENDC 0x00000080 #define PRCM_OSCICR_HFSRCPENDC_BITN 7 #define PRCM_OSCICR_HFSRCPENDC_M 0x00000080 #define PRCM_OSCICR_HFSRCPENDC_S 7 // Field: [6] LFSRCDONEC // // Writing 1 to this field clears the LFSRCDONE raw interrupt status. Writing 0 // has no effect. #define PRCM_OSCICR_LFSRCDONEC 0x00000040 #define PRCM_OSCICR_LFSRCDONEC_BITN 6 #define PRCM_OSCICR_LFSRCDONEC_M 0x00000040 #define PRCM_OSCICR_LFSRCDONEC_S 6 // Field: [5] XOSCDLFC // // Writing 1 to this field clears the XOSCDLF raw interrupt status. Writing 0 // has no effect. #define PRCM_OSCICR_XOSCDLFC 0x00000020 #define PRCM_OSCICR_XOSCDLFC_BITN 5 #define PRCM_OSCICR_XOSCDLFC_M 0x00000020 #define PRCM_OSCICR_XOSCDLFC_S 5 // Field: [4] XOSCLFC // // Writing 1 to this field clears the XOSCLF raw interrupt status. Writing 0 // has no effect. #define PRCM_OSCICR_XOSCLFC 0x00000010 #define PRCM_OSCICR_XOSCLFC_BITN 4 #define PRCM_OSCICR_XOSCLFC_M 0x00000010 #define PRCM_OSCICR_XOSCLFC_S 4 // Field: [3] RCOSCDLFC // // Writing 1 to this field clears the RCOSCDLF raw interrupt status. Writing 0 // has no effect. #define PRCM_OSCICR_RCOSCDLFC 0x00000008 #define PRCM_OSCICR_RCOSCDLFC_BITN 3 #define PRCM_OSCICR_RCOSCDLFC_M 0x00000008 #define PRCM_OSCICR_RCOSCDLFC_S 3 // Field: [2] RCOSCLFC // // Writing 1 to this field clears the RCOSCLF raw interrupt status. Writing 0 // has no effect. #define PRCM_OSCICR_RCOSCLFC 0x00000004 #define PRCM_OSCICR_RCOSCLFC_BITN 2 #define PRCM_OSCICR_RCOSCLFC_M 0x00000004 #define PRCM_OSCICR_RCOSCLFC_S 2 // Field: [1] XOSCHFC // // Writing 1 to this field clears the XOSCHF raw interrupt status. Writing 0 // has no effect. #define PRCM_OSCICR_XOSCHFC 0x00000002 #define PRCM_OSCICR_XOSCHFC_BITN 1 #define PRCM_OSCICR_XOSCHFC_M 0x00000002 #define PRCM_OSCICR_XOSCHFC_S 1 // Field: [0] RCOSCHFC // // Writing 1 to this field clears the RCOSCHF raw interrupt status. Writing 0 // has no effect. #define PRCM_OSCICR_RCOSCHFC 0x00000001 #define PRCM_OSCICR_RCOSCHFC_BITN 0 #define PRCM_OSCICR_RCOSCHFC_M 0x00000001 #define PRCM_OSCICR_RCOSCHFC_S 0 #endif // __PRCM__