rt-thread/bsp/imx6ul/platform/include/mx6ul/registers/regsccm.h

8597 lines
359 KiB
C
Raw Normal View History

2017-11-01 13:30:17 +08:00
/*
* Copyright (c) 2012, Freescale Semiconductor, Inc.
* All rights reserved.
*
* THIS SOFTWARE IS PROVIDED BY FREESCALE "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 FREESCALE 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.
*/
/*
* WARNING! DO NOT EDIT THIS FILE DIRECTLY!
*
* This file was generated automatically and any changes may be lost.
*/
#ifndef __HW_CCM_REGISTERS_H__
#define __HW_CCM_REGISTERS_H__
#include "regs.h"
/*
* i.MX6UL CCM
*
* CCM
*
* Registers defined in this header file:
* - HW_CCM_CCR - CCM Control Register
* - HW_CCM_CCDR - CCM Control Divider Register
* - HW_CCM_CSR - CCM Status Register
* - HW_CCM_CCSR - CCM Clock Swither Register
* - HW_CCM_CACRR - CCM Arm Clock Root Register
* - HW_CCM_CBCDR - CCM Bus Clock Divider Register
* - HW_CCM_CBCMR - CCM Bus Clock Multiplexer Register
* - HW_CCM_CSCMR1 - CCM Serial Clock Multiplexer Register 1
* - HW_CCM_CSCMR2 - CCM Serial Clock Multiplexer Register 2
* - HW_CCM_CSCDR1 - CCM Serial Clock Divider Register 1
* - HW_CCM_CS1CDR - CCM SSI1 Clock Divider Register
* - HW_CCM_CS2CDR - CCM SSI2 Clock Divider Register
* - HW_CCM_CDCDR - CCM D1 Clock Divider Register
* - HW_CCM_CHSCCDR - CCM HSC Clock Divider Register
* - HW_CCM_CSCDR2 - CCM Serial Clock Divider Register 2
* - HW_CCM_CSCDR3 - CCM Serial Clock Divider Register 3
* - HW_CCM_CWDR - CCM Wakeup Detector Register
* - HW_CCM_CDHIPR - CCM Divider Handshake In-Process Register
* - HW_CCM_CTOR - CCM Testing Observability Register
* - HW_CCM_CLPCR - CCM Low Power Control Register
* - HW_CCM_CISR - CCM Interrupt Status Register
* - HW_CCM_CIMR - CCM Interrupt Mask Register
* - HW_CCM_CCOSR - CCM Clock Output Source Register
* - HW_CCM_CGPR - CCM General Purpose Register
* - HW_CCM_CCGR0 - CCM Clock Gating Register 0
* - HW_CCM_CCGR1 - CCM Clock Gating Register 1
* - HW_CCM_CCGR2 - CCM Clock Gating Register 2
* - HW_CCM_CCGR3 - CCM Clock Gating Register 3
* - HW_CCM_CCGR4 - CCM Clock Gating Register 4
* - HW_CCM_CCGR5 - CCM Clock Gating Register 5
* - HW_CCM_CCGR6 - CCM Clock Gating Register 6
* - HW_CCM_CMEOR - CCM Module Enable Overide Register
*
* - hw_ccm_t - Struct containing all module registers.
*/
//! @name Module base addresses
//@{
#ifndef REGS_CCM_BASE
#define HW_CCM_INSTANCE_COUNT (1) //!< Number of instances of the CCM module.
#define REGS_CCM_BASE (0x020c4000) //!< Base address for CCM.
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCR - CCM Control Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCR - CCM Control Register (RW)
*
* Reset value: 0x040116ff
*
* The figure below represents the CCM Control Register (CCR), which contains bits to control
* general operation of CCM. The table below provides its field descriptions.
*/
typedef union _hw_ccm_ccr
{
reg32_t U;
struct _hw_ccm_ccr_bitfields
{
unsigned OSCNT : 8; //!< [7:0] Oscillator ready counter value.
unsigned RESERVED0 : 4; //!< [11:8] Reserved
unsigned COSC_EN : 1; //!< [12] On chip oscillator enable bit - this bit value is reflected on the output cosc_en.
unsigned RESERVED1 : 3; //!< [15:13] Reserved
unsigned WB_COUNT : 3; //!< [18:16] Well Bias counter.
unsigned RESERVED2 : 2; //!< [20:19] Reserved
unsigned REG_BYPASS_COUNT : 6; //!< [26:21] Counter for analog_reg_bypass signal assertion after standby voltage request by pmic_vstby_req.
unsigned RBC_EN : 1; //!< [27] Enable for REG_BYPASS_COUNTER.
unsigned RESERVED3 : 4; //!< [31:28] Reserved
} B;
} hw_ccm_ccr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCR register
*/
//@{
#define HW_CCM_CCR_ADDR (REGS_CCM_BASE + 0x0)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCR (*(volatile hw_ccm_ccr_t *) HW_CCM_CCR_ADDR)
#define HW_CCM_CCR_RD() (HW_CCM_CCR.U)
#define HW_CCM_CCR_WR(v) (HW_CCM_CCR.U = (v))
#define HW_CCM_CCR_SET(v) (HW_CCM_CCR_WR(HW_CCM_CCR_RD() | (v)))
#define HW_CCM_CCR_CLR(v) (HW_CCM_CCR_WR(HW_CCM_CCR_RD() & ~(v)))
#define HW_CCM_CCR_TOG(v) (HW_CCM_CCR_WR(HW_CCM_CCR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCR bitfields
*/
/*! @name Register CCM_CCR, field OSCNT[7:0] (RW)
*
* Oscillator ready counter value. These bits define value of 32KHz counter, that serve as counter
* for oscillator lock time. This is used for oscillator lock time. Current estimation is ~5ms. This
* counter will be used in ignition sequence and in wake from stop sequence if sbyos bit was
* defined, to notify that on chip oscillator output is ready for the dpll_ip to use and only then
* the gate in dpll_ip can be opened.
*
* Values:
* - 00000000 - count 1 ckil
* - 11111111 - count 256 ckil's (default)
*/
//@{
#define BP_CCM_CCR_OSCNT (0) //!< Bit position for CCM_CCR_OSCNT.
#define BM_CCM_CCR_OSCNT (0x0000007f) //!< Bit mask for CCM_CCR_OSCNT.
//! @brief Get value of CCM_CCR_OSCNT from a register value.
#define BG_CCM_CCR_OSCNT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCR_OSCNT) >> BP_CCM_CCR_OSCNT)
//! @brief Format value for bitfield CCM_CCR_OSCNT.
#define BF_CCM_CCR_OSCNT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCR_OSCNT) & BM_CCM_CCR_OSCNT)
#ifndef __LANGUAGE_ASM__
//! @brief Set the OSCNT field to a new value.
#define BW_CCM_CCR_OSCNT(v) (HW_CCM_CCR_WR((HW_CCM_CCR_RD() & ~BM_CCM_CCR_OSCNT) | BF_CCM_CCR_OSCNT(v)))
#endif
//@}
/*! @name Register CCM_CCR, field COSC_EN[12] (RW)
*
* On chip oscillator enable bit - this bit value is reflected on the output cosc_en. The system
* will start with on chip oscillator enabled to supply source for the PLL's. Software can change
* this bit if a transition to the bypass PLL clocks was performed for all the PLLs. In cases that
* this bit is changed from '0' to '1' then CCM will enable the on chip oscillator and after
* counting oscnt ckil clock cycles it will notify that on chip oscillator is ready by a interrupt
* cosc_ready and by status bit cosc_ready. The cosc_en bit should be changed only when on chip
* oscillator is not chosen as the clock source.
*
* Values:
* - 0 - disable on chip oscillator
* - 1 - enable on chip oscillator
*/
//@{
#define BP_CCM_CCR_COSC_EN (12) //!< Bit position for CCM_CCR_COSC_EN.
#define BM_CCM_CCR_COSC_EN (0x00001000) //!< Bit mask for CCM_CCR_COSC_EN.
//! @brief Get value of CCM_CCR_COSC_EN from a register value.
#define BG_CCM_CCR_COSC_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCR_COSC_EN) >> BP_CCM_CCR_COSC_EN)
//! @brief Format value for bitfield CCM_CCR_COSC_EN.
#define BF_CCM_CCR_COSC_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCR_COSC_EN) & BM_CCM_CCR_COSC_EN)
#ifndef __LANGUAGE_ASM__
//! @brief Set the COSC_EN field to a new value.
#define BW_CCM_CCR_COSC_EN(v) (HW_CCM_CCR_WR((HW_CCM_CCR_RD() & ~BM_CCM_CCR_COSC_EN) | BF_CCM_CCR_COSC_EN(v)))
#endif
//@}
/*! @name Register CCM_CCR, field WB_COUNT[18:16] (RW)
*
* Well Bias counter. Delay, defined by this value, counted by CKIL clock will be applied till well
* bias is enabled at exit from wait or stop low power mode. Counter will be used if wb_core_at_lpm
* or wb_per_at_lpm bits are set. Should be zeroed and reconfigured after exit from low power mode.
*
* Values:
* - 000 - no delay
* - 001 - 1 CKIL clock delay
* - 111 - 7 CKIL clocks delay
*/
//@{
#define BP_CCM_CCR_WB_COUNT (16) //!< Bit position for CCM_CCR_WB_COUNT.
#define BM_CCM_CCR_WB_COUNT (0x00070000) //!< Bit mask for CCM_CCR_WB_COUNT.
//! @brief Get value of CCM_CCR_WB_COUNT from a register value.
#define BG_CCM_CCR_WB_COUNT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCR_WB_COUNT) >> BP_CCM_CCR_WB_COUNT)
//! @brief Format value for bitfield CCM_CCR_WB_COUNT.
#define BF_CCM_CCR_WB_COUNT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCR_WB_COUNT) & BM_CCM_CCR_WB_COUNT)
#ifndef __LANGUAGE_ASM__
//! @brief Set the WB_COUNT field to a new value.
#define BW_CCM_CCR_WB_COUNT(v) (HW_CCM_CCR_WR((HW_CCM_CCR_RD() & ~BM_CCM_CCR_WB_COUNT) | BF_CCM_CCR_WB_COUNT(v)))
#endif
//@}
/*! @name Register CCM_CCR, field REG_BYPASS_COUNT[26:21] (RW)
*
* Counter for analog_reg_bypass signal assertion after standby voltage request by pmic_vstby_req.
* Should be zeroed and reconfigured after exit from low power mode.
*
* Values:
* - 000000 - no delay
* - 000001 - 1 CKIL clock period delay
* - 111111 - 63 CKIL clock periods delay
*/
//@{
#define BP_CCM_CCR_REG_BYPASS_COUNT (21) //!< Bit position for CCM_CCR_REG_BYPASS_COUNT.
#define BM_CCM_CCR_REG_BYPASS_COUNT (0x07e00000) //!< Bit mask for CCM_CCR_REG_BYPASS_COUNT.
//! @brief Get value of CCM_CCR_REG_BYPASS_COUNT from a register value.
#define BG_CCM_CCR_REG_BYPASS_COUNT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCR_REG_BYPASS_COUNT) >> BP_CCM_CCR_REG_BYPASS_COUNT)
//! @brief Format value for bitfield CCM_CCR_REG_BYPASS_COUNT.
#define BF_CCM_CCR_REG_BYPASS_COUNT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCR_REG_BYPASS_COUNT) & BM_CCM_CCR_REG_BYPASS_COUNT)
#ifndef __LANGUAGE_ASM__
//! @brief Set the REG_BYPASS_COUNT field to a new value.
#define BW_CCM_CCR_REG_BYPASS_COUNT(v) (HW_CCM_CCR_WR((HW_CCM_CCR_RD() & ~BM_CCM_CCR_REG_BYPASS_COUNT) | BF_CCM_CCR_REG_BYPASS_COUNT(v)))
#endif
//@}
/*! @name Register CCM_CCR, field RBC_EN[27] (RW)
*
* Enable for REG_BYPASS_COUNTER. If enabled, analog_reg_bypass signal will be asserted after
* REG_BYPASS_COUNT clocks of CKIL, after standby voltage is requested. If standby voltage is not
* requested analog_reg_bypass won't be asserted, event if counter is enabled.
*
* Values:
* - 0 - REG_BYPASS_COUNTER disabled
* - 1 - REG_BYPASS_COUNTER enabled.
*/
//@{
#define BP_CCM_CCR_RBC_EN (27) //!< Bit position for CCM_CCR_RBC_EN.
#define BM_CCM_CCR_RBC_EN (0x08000000) //!< Bit mask for CCM_CCR_RBC_EN.
//! @brief Get value of CCM_CCR_RBC_EN from a register value.
#define BG_CCM_CCR_RBC_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCR_RBC_EN) >> BP_CCM_CCR_RBC_EN)
//! @brief Format value for bitfield CCM_CCR_RBC_EN.
#define BF_CCM_CCR_RBC_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCR_RBC_EN) & BM_CCM_CCR_RBC_EN)
#ifndef __LANGUAGE_ASM__
//! @brief Set the RBC_EN field to a new value.
#define BW_CCM_CCR_RBC_EN(v) (HW_CCM_CCR_WR((HW_CCM_CCR_RD() & ~BM_CCM_CCR_RBC_EN) | BF_CCM_CCR_RBC_EN(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCDR - CCM Control Divider Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCDR - CCM Control Divider Register (RW)
*
* Reset value: 0x00000000
*
* The figure below represents the CCM Control Divider Register (CCDR), which contains bits that
* control the loading of the dividers that need handshake with the modules they affect. The table
* below provides its field descriptions.
*/
typedef union _hw_ccm_ccdr
{
reg32_t U;
struct _hw_ccm_ccdr_bitfields
{
unsigned RESERVED0 : 16; //!< [15:0] Reserved
unsigned MMDC_CH1_MASK : 1; //!< [16] During divider ratio mmdc_ch1_axi_podf change or sync mux periph2_clk_sel change (but not jtag) or SRC request during warm reset, mask handshake with mmdc_ch1 module.
unsigned MMDC_CH0_MASK : 1; //!< [17] During divider ratio mmdc_ch0_axi_podf change or sync mux periph_clk_sel change (but not jtag) or SRC request during warm reset, mask handshake with mmdc_ch0 module.
unsigned RESERVED1 : 14; //!< [31:18] Reserved
} B;
} hw_ccm_ccdr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCDR register
*/
//@{
#define HW_CCM_CCDR_ADDR (REGS_CCM_BASE + 0x4)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCDR (*(volatile hw_ccm_ccdr_t *) HW_CCM_CCDR_ADDR)
#define HW_CCM_CCDR_RD() (HW_CCM_CCDR.U)
#define HW_CCM_CCDR_WR(v) (HW_CCM_CCDR.U = (v))
#define HW_CCM_CCDR_SET(v) (HW_CCM_CCDR_WR(HW_CCM_CCDR_RD() | (v)))
#define HW_CCM_CCDR_CLR(v) (HW_CCM_CCDR_WR(HW_CCM_CCDR_RD() & ~(v)))
#define HW_CCM_CCDR_TOG(v) (HW_CCM_CCDR_WR(HW_CCM_CCDR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCDR bitfields
*/
/*! @name Register CCM_CCDR, field MMDC_CH1_MASK[16] (RW)
*
* During divider ratio mmdc_ch1_axi_podf change or sync mux periph2_clk_sel change (but not jtag)
* or SRC request during warm reset, mask handshake with mmdc_ch1 module.
*
* Values:
* - 0 - allow handshake with mmdc_ch1 module
* - 1 - mask handshake with mmdc_ch1. Request signal will not be generated.
*/
//@{
#define BP_CCM_CCDR_MMDC_CH1_MASK (16) //!< Bit position for CCM_CCDR_MMDC_CH1_MASK.
#define BM_CCM_CCDR_MMDC_CH1_MASK (0x00010000) //!< Bit mask for CCM_CCDR_MMDC_CH1_MASK.
//! @brief Get value of CCM_CCDR_MMDC_CH1_MASK from a register value.
#define BG_CCM_CCDR_MMDC_CH1_MASK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCDR_MMDC_CH1_MASK) >> BP_CCM_CCDR_MMDC_CH1_MASK)
//! @brief Format value for bitfield CCM_CCDR_MMDC_CH1_MASK.
#define BF_CCM_CCDR_MMDC_CH1_MASK(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCDR_MMDC_CH1_MASK) & BM_CCM_CCDR_MMDC_CH1_MASK)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MMDC_CH1_MASK field to a new value.
#define BW_CCM_CCDR_MMDC_CH1_MASK(v) (HW_CCM_CCDR_WR((HW_CCM_CCDR_RD() & ~BM_CCM_CCDR_MMDC_CH1_MASK) | BF_CCM_CCDR_MMDC_CH1_MASK(v)))
#endif
//@}
/*! @name Register CCM_CCDR, field MMDC_CH0_MASK[17] (RW)
*
* During divider ratio mmdc_ch0_axi_podf change or sync mux periph_clk_sel change (but not jtag) or
* SRC request during warm reset, mask handshake with mmdc_ch0 module.
*
* Values:
* - 0 - allow handshake with mmdc_ch0 module
* - 1 - mask handshake with mmdc_ch0. Request signal will not be generated.
*/
//@{
#define BP_CCM_CCDR_MMDC_CH0_MASK (17) //!< Bit position for CCM_CCDR_MMDC_CH0_MASK.
#define BM_CCM_CCDR_MMDC_CH0_MASK (0x00020000) //!< Bit mask for CCM_CCDR_MMDC_CH0_MASK.
//! @brief Get value of CCM_CCDR_MMDC_CH0_MASK from a register value.
#define BG_CCM_CCDR_MMDC_CH0_MASK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCDR_MMDC_CH0_MASK) >> BP_CCM_CCDR_MMDC_CH0_MASK)
//! @brief Format value for bitfield CCM_CCDR_MMDC_CH0_MASK.
#define BF_CCM_CCDR_MMDC_CH0_MASK(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCDR_MMDC_CH0_MASK) & BM_CCM_CCDR_MMDC_CH0_MASK)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MMDC_CH0_MASK field to a new value.
#define BW_CCM_CCDR_MMDC_CH0_MASK(v) (HW_CCM_CCDR_WR((HW_CCM_CCDR_RD() & ~BM_CCM_CCDR_MMDC_CH0_MASK) | BF_CCM_CCDR_MMDC_CH0_MASK(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CSR - CCM Status Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CSR - CCM Status Register (RO)
*
* Reset value: 0x00000010
*
* The figure below represents the CCM status Register (CSR). The status bits are read only bits.
* The table below provides its field descriptions.
*/
typedef union _hw_ccm_csr
{
reg32_t U;
struct _hw_ccm_csr_bitfields
{
unsigned REF_EN_B : 1; //!< [0] Status of the value of CCM_REF_EN_B output of ccm
unsigned RESERVED0 : 4; //!< [4:1] Reserved.
unsigned COSC_READY : 1; //!< [5] Status indication of on board oscillator.
unsigned RESERVED1 : 26; //!< [31:6] Reserved
} B;
} hw_ccm_csr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CSR register
*/
//@{
#define HW_CCM_CSR_ADDR (REGS_CCM_BASE + 0x8)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CSR (*(volatile hw_ccm_csr_t *) HW_CCM_CSR_ADDR)
#define HW_CCM_CSR_RD() (HW_CCM_CSR.U)
#endif
//@}
/*
* constants & macros for individual CCM_CSR bitfields
*/
/*! @name Register CCM_CSR, field REF_EN_B[0] (RO)
*
* Status of the value of CCM_REF_EN_B output of ccm
*
* Values:
* - 0 - value of CCM_REF_EN_B is '0'
* - 1 - value of CCM_REF_EN_B is '1'
*/
//@{
#define BP_CCM_CSR_REF_EN_B (0) //!< Bit position for CCM_CSR_REF_EN_B.
#define BM_CCM_CSR_REF_EN_B (0x00000001) //!< Bit mask for CCM_CSR_REF_EN_B.
//! @brief Get value of CCM_CSR_REF_EN_B from a register value.
#define BG_CCM_CSR_REF_EN_B(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSR_REF_EN_B) >> BP_CCM_CSR_REF_EN_B)
//@}
/*! @name Register CCM_CSR, field COSC_READY[5] (RO)
*
* Status indication of on board oscillator. This bit will be asserted if on chip oscillator is
* enabled and on chip oscillator is not powered down, and if oscnt counter has finished counting.
*
* Values:
* - 0 - on board oscillator is not ready.
* - 1 - on board oscillator is ready.
*/
//@{
#define BP_CCM_CSR_COSC_READY (5) //!< Bit position for CCM_CSR_COSC_READY.
#define BM_CCM_CSR_COSC_READY (0x00000020) //!< Bit mask for CCM_CSR_COSC_READY.
//! @brief Get value of CCM_CSR_COSC_READY from a register value.
#define BG_CCM_CSR_COSC_READY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSR_COSC_READY) >> BP_CCM_CSR_COSC_READY)
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCSR - CCM Clock Swither Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCSR - CCM Clock Swither Register (RW)
*
* Reset value: 0x00000100
*
* The figure below represents the CCM Clock Switcher register (CCSR). The CCSR register contains
* bits to control the switcher sub module dividers and multiplexers. The table below provides its
* field descriptions.
*/
typedef union _hw_ccm_ccsr
{
reg32_t U;
struct _hw_ccm_ccsr_bitfields
{
unsigned PLL3_SW_CLK_SEL : 1; //!< [0] Selects source to generate pll3_sw_clk.
unsigned PLL2_SW_CLK_SEL : 1; //!< [1] Selects source to generate pll2_sw_clk.
unsigned PLL1_SW_CLK_SEL : 1; //!< [2] Selects source to generate pll1_sw_clk.
unsigned RESERVED0 : 5; //!< [7:3] Reserved
unsigned STEP_SEL : 1; //!< [8] Selects the option to be chosen for the step frequency when shifting ARM frequency.
unsigned PDF_396M_DIS_MASK : 1; //!< [9] Mask of 396M PFD auto-disable.
unsigned PDF_307M_DIS_MASK : 1; //!< [10] Mask of 307M PFD auto-disable.
unsigned PDF_528M_DIS_MASK : 1; //!< [11] Mask of 528M PFD auto-disable.
unsigned PDF_508M_DIS_MASK : 1; //!< [12] Mask of 508M PFD auto-disable.
unsigned RESERVED1 : 2; //!< [14:13] Reserved.
unsigned PDF_540M_DIS_MASK : 1; //!< [15] Mask of 540M PFD auto-disable.
unsigned RESERVED2 : 16; //!< [31:16] Reserved
} B;
} hw_ccm_ccsr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCSR register
*/
//@{
#define HW_CCM_CCSR_ADDR (REGS_CCM_BASE + 0xc)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCSR (*(volatile hw_ccm_ccsr_t *) HW_CCM_CCSR_ADDR)
#define HW_CCM_CCSR_RD() (HW_CCM_CCSR.U)
#define HW_CCM_CCSR_WR(v) (HW_CCM_CCSR.U = (v))
#define HW_CCM_CCSR_SET(v) (HW_CCM_CCSR_WR(HW_CCM_CCSR_RD() | (v)))
#define HW_CCM_CCSR_CLR(v) (HW_CCM_CCSR_WR(HW_CCM_CCSR_RD() & ~(v)))
#define HW_CCM_CCSR_TOG(v) (HW_CCM_CCSR_WR(HW_CCM_CCSR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCSR bitfields
*/
/*! @name Register CCM_CCSR, field PLL3_SW_CLK_SEL[0] (RW)
*
* Selects source to generate pll3_sw_clk. This bit should only be used for testing purposes. Note:
* this bit will be ored with pll_bypass_en3 signal. If one of the sources requests to move to pll3
* bypass clk (pll3_sw_clk=1 or pll_bypass_en3=1) then the pll3_sw_clk will be pll3 bypass clk. Only
* if both sources request pll3_main_clk (pll3_sw_clk=0 and pll_bypass_en3=0) then the pll3_sw_clk
* will be pll3_main_clk.
*
* Values:
* - 0 - pll3_main_clk(default)
* - 1 - pll3 bypass clock
*/
//@{
#define BP_CCM_CCSR_PLL3_SW_CLK_SEL (0) //!< Bit position for CCM_CCSR_PLL3_SW_CLK_SEL.
#define BM_CCM_CCSR_PLL3_SW_CLK_SEL (0x00000001) //!< Bit mask for CCM_CCSR_PLL3_SW_CLK_SEL.
//! @brief Get value of CCM_CCSR_PLL3_SW_CLK_SEL from a register value.
#define BG_CCM_CCSR_PLL3_SW_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCSR_PLL3_SW_CLK_SEL) >> BP_CCM_CCSR_PLL3_SW_CLK_SEL)
//! @brief Format value for bitfield CCM_CCSR_PLL3_SW_CLK_SEL.
#define BF_CCM_CCSR_PLL3_SW_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCSR_PLL3_SW_CLK_SEL) & BM_CCM_CCSR_PLL3_SW_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PLL3_SW_CLK_SEL field to a new value.
#define BW_CCM_CCSR_PLL3_SW_CLK_SEL(v) (HW_CCM_CCSR_WR((HW_CCM_CCSR_RD() & ~BM_CCM_CCSR_PLL3_SW_CLK_SEL) | BF_CCM_CCSR_PLL3_SW_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CCSR, field PLL2_SW_CLK_SEL[1] (RW)
*
* Selects source to generate pll2_sw_clk. This bit should only be used for testing purposes. Note:
* this bit will be ored with pll_bypass_en2 signal. If one of the sources requests to move to pll2
* bypass clk (pll2_sw_clk=1 or pll_bypass_en2=1) then the pll2_sw_clk will be pll2 bypass clk. Only
* if both sources request pll2_main_clk (pll2_sw_clk=0 and pll_bypass_en2=0) then the pll2_sw_clk
* will be pll2_main_clk.
*
* Values:
* - 0 - pll2_main_clk(default)
* - 1 - pll2 bypass clock
*/
//@{
#define BP_CCM_CCSR_PLL2_SW_CLK_SEL (1) //!< Bit position for CCM_CCSR_PLL2_SW_CLK_SEL.
#define BM_CCM_CCSR_PLL2_SW_CLK_SEL (0x00000002) //!< Bit mask for CCM_CCSR_PLL2_SW_CLK_SEL.
//! @brief Get value of CCM_CCSR_PLL2_SW_CLK_SEL from a register value.
#define BG_CCM_CCSR_PLL2_SW_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCSR_PLL2_SW_CLK_SEL) >> BP_CCM_CCSR_PLL2_SW_CLK_SEL)
//! @brief Format value for bitfield CCM_CCSR_PLL2_SW_CLK_SEL.
#define BF_CCM_CCSR_PLL2_SW_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCSR_PLL2_SW_CLK_SEL) & BM_CCM_CCSR_PLL2_SW_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PLL2_SW_CLK_SEL field to a new value.
#define BW_CCM_CCSR_PLL2_SW_CLK_SEL(v) (HW_CCM_CCSR_WR((HW_CCM_CCSR_RD() & ~BM_CCM_CCSR_PLL2_SW_CLK_SEL) | BF_CCM_CCSR_PLL2_SW_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CCSR, field PLL1_SW_CLK_SEL[2] (RW)
*
* Selects source to generate pll1_sw_clk. Note: this bit will be ored with pll_bypass_en1 signal
* and dvfs_control signal. If one of the sources requests to move to step_clk (pll1_sw_clk=1 or
* pll_bypass_en1=1 or dvfs_control=1) then the pll1_sw_clk will be step_clk. Only if both sources
* request pll1_main_clk (pll1_sw_clk=0 and pll_bypass_en1=0 and dvfs_control=0) then the
* pll1_sw_clk will be pll1_main_clk.
*
* Values:
* - 0 - pll1_main_clk(default)
* - 1 - step_clk
*/
//@{
#define BP_CCM_CCSR_PLL1_SW_CLK_SEL (2) //!< Bit position for CCM_CCSR_PLL1_SW_CLK_SEL.
#define BM_CCM_CCSR_PLL1_SW_CLK_SEL (0x00000004) //!< Bit mask for CCM_CCSR_PLL1_SW_CLK_SEL.
//! @brief Get value of CCM_CCSR_PLL1_SW_CLK_SEL from a register value.
#define BG_CCM_CCSR_PLL1_SW_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCSR_PLL1_SW_CLK_SEL) >> BP_CCM_CCSR_PLL1_SW_CLK_SEL)
//! @brief Format value for bitfield CCM_CCSR_PLL1_SW_CLK_SEL.
#define BF_CCM_CCSR_PLL1_SW_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCSR_PLL1_SW_CLK_SEL) & BM_CCM_CCSR_PLL1_SW_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PLL1_SW_CLK_SEL field to a new value.
#define BW_CCM_CCSR_PLL1_SW_CLK_SEL(v) (HW_CCM_CCSR_WR((HW_CCM_CCSR_RD() & ~BM_CCM_CCSR_PLL1_SW_CLK_SEL) | BF_CCM_CCSR_PLL1_SW_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CCSR, field STEP_SEL[8] (RW)
*
* Selects the option to be chosen for the step frequency when shifting ARM frequency. this will
* control the step_clk. Note: this mux is allowed to be changed only if its output is not used,
* i.e. ARM uses the output of pll1, and step_clk is not used.
*
* Values:
* - 0 - clock source 4 - source for lp_apm. (default)
* - 1 - pll2 PDF clock
*/
//@{
#define BP_CCM_CCSR_STEP_SEL (8) //!< Bit position for CCM_CCSR_STEP_SEL.
#define BM_CCM_CCSR_STEP_SEL (0x00000100) //!< Bit mask for CCM_CCSR_STEP_SEL.
//! @brief Get value of CCM_CCSR_STEP_SEL from a register value.
#define BG_CCM_CCSR_STEP_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCSR_STEP_SEL) >> BP_CCM_CCSR_STEP_SEL)
//! @brief Format value for bitfield CCM_CCSR_STEP_SEL.
#define BF_CCM_CCSR_STEP_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCSR_STEP_SEL) & BM_CCM_CCSR_STEP_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the STEP_SEL field to a new value.
#define BW_CCM_CCSR_STEP_SEL(v) (HW_CCM_CCSR_WR((HW_CCM_CCSR_RD() & ~BM_CCM_CCSR_STEP_SEL) | BF_CCM_CCSR_STEP_SEL(v)))
#endif
//@}
/*! @name Register CCM_CCSR, field PDF_396M_DIS_MASK[9] (RW)
*
* Mask of 396M PFD auto-disable.
*
* Values:
* - 0 - 396M PFD disable=0 (PFD always on)
* - 1 - 396M PFD disable is managed by associated dividers disable. If all 396M-driven dividers are closed,
* PDF is disabled.
*/
//@{
#define BP_CCM_CCSR_PDF_396M_DIS_MASK (9) //!< Bit position for CCM_CCSR_PDF_396M_DIS_MASK.
#define BM_CCM_CCSR_PDF_396M_DIS_MASK (0x00000200) //!< Bit mask for CCM_CCSR_PDF_396M_DIS_MASK.
//! @brief Get value of CCM_CCSR_PDF_396M_DIS_MASK from a register value.
#define BG_CCM_CCSR_PDF_396M_DIS_MASK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCSR_PDF_396M_DIS_MASK) >> BP_CCM_CCSR_PDF_396M_DIS_MASK)
//! @brief Format value for bitfield CCM_CCSR_PDF_396M_DIS_MASK.
#define BF_CCM_CCSR_PDF_396M_DIS_MASK(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCSR_PDF_396M_DIS_MASK) & BM_CCM_CCSR_PDF_396M_DIS_MASK)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PDF_396M_DIS_MASK field to a new value.
#define BW_CCM_CCSR_PDF_396M_DIS_MASK(v) (HW_CCM_CCSR_WR((HW_CCM_CCSR_RD() & ~BM_CCM_CCSR_PDF_396M_DIS_MASK) | BF_CCM_CCSR_PDF_396M_DIS_MASK(v)))
#endif
//@}
/*! @name Register CCM_CCSR, field PDF_307M_DIS_MASK[10] (RW)
*
* Mask of 307M PFD auto-disable.
*
* Values:
* - 0 - 307M PFD disable=0 (PFD always on)
* - 1 - 307M PFD disable is managed by associated dividers disable. If all 307M-driven dividers are closed,
* PDF is disabled.
*/
//@{
#define BP_CCM_CCSR_PDF_307M_DIS_MASK (10) //!< Bit position for CCM_CCSR_PDF_307M_DIS_MASK.
#define BM_CCM_CCSR_PDF_307M_DIS_MASK (0x00000400) //!< Bit mask for CCM_CCSR_PDF_307M_DIS_MASK.
//! @brief Get value of CCM_CCSR_PDF_307M_DIS_MASK from a register value.
#define BG_CCM_CCSR_PDF_307M_DIS_MASK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCSR_PDF_307M_DIS_MASK) >> BP_CCM_CCSR_PDF_307M_DIS_MASK)
//! @brief Format value for bitfield CCM_CCSR_PDF_307M_DIS_MASK.
#define BF_CCM_CCSR_PDF_307M_DIS_MASK(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCSR_PDF_307M_DIS_MASK) & BM_CCM_CCSR_PDF_307M_DIS_MASK)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PDF_307M_DIS_MASK field to a new value.
#define BW_CCM_CCSR_PDF_307M_DIS_MASK(v) (HW_CCM_CCSR_WR((HW_CCM_CCSR_RD() & ~BM_CCM_CCSR_PDF_307M_DIS_MASK) | BF_CCM_CCSR_PDF_307M_DIS_MASK(v)))
#endif
//@}
/*! @name Register CCM_CCSR, field PDF_528M_DIS_MASK[11] (RW)
*
* Mask of 528M PFD auto-disable.
*
* Values:
* - 0 - 528M PFD disable=0 (PFD always on)
* - 1 - 528M PFD disable is managed by associated dividers disable. If all 528M-driven dividers are closed,
* PDF is disabled.
*/
//@{
#define BP_CCM_CCSR_PDF_528M_DIS_MASK (11) //!< Bit position for CCM_CCSR_PDF_528M_DIS_MASK.
#define BM_CCM_CCSR_PDF_528M_DIS_MASK (0x00000800) //!< Bit mask for CCM_CCSR_PDF_528M_DIS_MASK.
//! @brief Get value of CCM_CCSR_PDF_528M_DIS_MASK from a register value.
#define BG_CCM_CCSR_PDF_528M_DIS_MASK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCSR_PDF_528M_DIS_MASK) >> BP_CCM_CCSR_PDF_528M_DIS_MASK)
//! @brief Format value for bitfield CCM_CCSR_PDF_528M_DIS_MASK.
#define BF_CCM_CCSR_PDF_528M_DIS_MASK(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCSR_PDF_528M_DIS_MASK) & BM_CCM_CCSR_PDF_528M_DIS_MASK)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PDF_528M_DIS_MASK field to a new value.
#define BW_CCM_CCSR_PDF_528M_DIS_MASK(v) (HW_CCM_CCSR_WR((HW_CCM_CCSR_RD() & ~BM_CCM_CCSR_PDF_528M_DIS_MASK) | BF_CCM_CCSR_PDF_528M_DIS_MASK(v)))
#endif
//@}
/*! @name Register CCM_CCSR, field PDF_508M_DIS_MASK[12] (RW)
*
* Mask of 508M PFD auto-disable.
*
* Values:
* - 0 - 508M PFD disable=0 (PFD always on)
* - 1 - 508M PFD disable is managed by associated dividers disable. If all 508M-driven dividers are closed,
* PDF is disabled.
*/
//@{
#define BP_CCM_CCSR_PDF_508M_DIS_MASK (12) //!< Bit position for CCM_CCSR_PDF_508M_DIS_MASK.
#define BM_CCM_CCSR_PDF_508M_DIS_MASK (0x00001000) //!< Bit mask for CCM_CCSR_PDF_508M_DIS_MASK.
//! @brief Get value of CCM_CCSR_PDF_508M_DIS_MASK from a register value.
#define BG_CCM_CCSR_PDF_508M_DIS_MASK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCSR_PDF_508M_DIS_MASK) >> BP_CCM_CCSR_PDF_508M_DIS_MASK)
//! @brief Format value for bitfield CCM_CCSR_PDF_508M_DIS_MASK.
#define BF_CCM_CCSR_PDF_508M_DIS_MASK(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCSR_PDF_508M_DIS_MASK) & BM_CCM_CCSR_PDF_508M_DIS_MASK)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PDF_508M_DIS_MASK field to a new value.
#define BW_CCM_CCSR_PDF_508M_DIS_MASK(v) (HW_CCM_CCSR_WR((HW_CCM_CCSR_RD() & ~BM_CCM_CCSR_PDF_508M_DIS_MASK) | BF_CCM_CCSR_PDF_508M_DIS_MASK(v)))
#endif
//@}
/*! @name Register CCM_CCSR, field PDF_540M_DIS_MASK[15] (RW)
*
* Mask of 540M PFD auto-disable.
*
* Values:
* - 0 - - 540M PFD disable=0 (PFD always on)
* - 1 - 540M PFD disable is managed by associated dividers disable. If all 540M-driven dividers are closed,
* PDF is disabled.
*/
//@{
#define BP_CCM_CCSR_PDF_540M_DIS_MASK (15) //!< Bit position for CCM_CCSR_PDF_540M_DIS_MASK.
#define BM_CCM_CCSR_PDF_540M_DIS_MASK (0x00008000) //!< Bit mask for CCM_CCSR_PDF_540M_DIS_MASK.
//! @brief Get value of CCM_CCSR_PDF_540M_DIS_MASK from a register value.
#define BG_CCM_CCSR_PDF_540M_DIS_MASK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCSR_PDF_540M_DIS_MASK) >> BP_CCM_CCSR_PDF_540M_DIS_MASK)
//! @brief Format value for bitfield CCM_CCSR_PDF_540M_DIS_MASK.
#define BF_CCM_CCSR_PDF_540M_DIS_MASK(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCSR_PDF_540M_DIS_MASK) & BM_CCM_CCSR_PDF_540M_DIS_MASK)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PDF_540M_DIS_MASK field to a new value.
#define BW_CCM_CCSR_PDF_540M_DIS_MASK(v) (HW_CCM_CCSR_WR((HW_CCM_CCSR_RD() & ~BM_CCM_CCSR_PDF_540M_DIS_MASK) | BF_CCM_CCSR_PDF_540M_DIS_MASK(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CACRR - CCM Arm Clock Root Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CACRR - CCM Arm Clock Root Register (RW)
*
* Reset value: 0x00000000
*
* The figure below represents the CCM Arm Clock Root register (CACRR). The CACRR register contains
* bits to control the ARM clock root generation. The table below provides its field descriptions.
*/
typedef union _hw_ccm_cacrr
{
reg32_t U;
struct _hw_ccm_cacrr_bitfields
{
unsigned ARM_PODF : 3; //!< [2:0] Divider for ARM clock root.
unsigned RESERVED0 : 29; //!< [31:3] Reserved
} B;
} hw_ccm_cacrr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CACRR register
*/
//@{
#define HW_CCM_CACRR_ADDR (REGS_CCM_BASE + 0x10)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CACRR (*(volatile hw_ccm_cacrr_t *) HW_CCM_CACRR_ADDR)
#define HW_CCM_CACRR_RD() (HW_CCM_CACRR.U)
#define HW_CCM_CACRR_WR(v) (HW_CCM_CACRR.U = (v))
#define HW_CCM_CACRR_SET(v) (HW_CCM_CACRR_WR(HW_CCM_CACRR_RD() | (v)))
#define HW_CCM_CACRR_CLR(v) (HW_CCM_CACRR_WR(HW_CCM_CACRR_RD() & ~(v)))
#define HW_CCM_CACRR_TOG(v) (HW_CCM_CACRR_WR(HW_CCM_CACRR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CACRR bitfields
*/
/*! @name Register CCM_CACRR, field ARM_PODF[2:0] (RW)
*
* Divider for ARM clock root. Note: if arm_freq_shift_divider is set to '1' then any new write to
* arm_podf will be held until arm_clk_switch_req signal is asserted.
*
* Values:
* - 000 - divide by 1(default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CACRR_ARM_PODF (0) //!< Bit position for CCM_CACRR_ARM_PODF.
#define BM_CCM_CACRR_ARM_PODF (0x00000007) //!< Bit mask for CCM_CACRR_ARM_PODF.
//! @brief Get value of CCM_CACRR_ARM_PODF from a register value.
#define BG_CCM_CACRR_ARM_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CACRR_ARM_PODF) >> BP_CCM_CACRR_ARM_PODF)
//! @brief Format value for bitfield CCM_CACRR_ARM_PODF.
#define BF_CCM_CACRR_ARM_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CACRR_ARM_PODF) & BM_CCM_CACRR_ARM_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ARM_PODF field to a new value.
#define BW_CCM_CACRR_ARM_PODF(v) (HW_CCM_CACRR_WR((HW_CCM_CACRR_RD() & ~BM_CCM_CACRR_ARM_PODF) | BF_CCM_CACRR_ARM_PODF(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CBCDR - CCM Bus Clock Divider Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CBCDR - CCM Bus Clock Divider Register (RW)
*
* Reset value: 0x00018d40
*
* The figure below represents the CCM Bus Clock Divider Register (CBCDR). The CBCDR register
* contains bits to control the clock generation sub module dividers. The table below provides its
* field descriptions.
*/
typedef union _hw_ccm_cbcdr
{
reg32_t U;
struct _hw_ccm_cbcdr_bitfields
{
unsigned PERIPH2_CLK2_PODF : 3; //!< [2:0] Divider for periph2_clk2 podf.
unsigned MMDC_CH1_AXI_PODF : 3; //!< [5:3] Divider for mmdc_ch1_axi podf.
unsigned AXI_SEL : 1; //!< [6] AXI clock source select
unsigned AXI_ALT_SEL : 1; //!< [7] AXI alternative clock select
unsigned IPG_PODF : 2; //!< [9:8] Divider for ipg podf.
unsigned AHB_PODF : 3; //!< [12:10] Divider for ahb podf.
unsigned RESERVED0 : 3; //!< [15:13] Reserved
unsigned AXI_PODF : 3; //!< [18:16] Divider for axi podf.
unsigned MMDC_CH0_AXI_PODF : 3; //!< [21:19] Divider for mmdc_ch0_axi podf.
unsigned RESERVED1 : 3; //!< [24:22] Reserved
unsigned PERIPH_CLK_SEL : 1; //!< [25] Selector for peripheral main clock (source of mmdc_ch0_axi_clk_root).
unsigned PERIPH2_CLK_SEL : 1; //!< [26] Selector for peripheral2 main clock (source of mmdc_ch1_axi_clk_root ).
unsigned PERIPH_CLK2_PODF : 3; //!< [29:27] Divider for periph2 clock podf.
unsigned RESERVED2 : 2; //!< [31:30] Reserved
} B;
} hw_ccm_cbcdr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CBCDR register
*/
//@{
#define HW_CCM_CBCDR_ADDR (REGS_CCM_BASE + 0x14)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CBCDR (*(volatile hw_ccm_cbcdr_t *) HW_CCM_CBCDR_ADDR)
#define HW_CCM_CBCDR_RD() (HW_CCM_CBCDR.U)
#define HW_CCM_CBCDR_WR(v) (HW_CCM_CBCDR.U = (v))
#define HW_CCM_CBCDR_SET(v) (HW_CCM_CBCDR_WR(HW_CCM_CBCDR_RD() | (v)))
#define HW_CCM_CBCDR_CLR(v) (HW_CCM_CBCDR_WR(HW_CCM_CBCDR_RD() & ~(v)))
#define HW_CCM_CBCDR_TOG(v) (HW_CCM_CBCDR_WR(HW_CCM_CBCDR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CBCDR bitfields
*/
/*! @name Register CCM_CBCDR, field PERIPH2_CLK2_PODF[2:0] (RW)
*
* Divider for periph2_clk2 podf. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1 (default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CBCDR_PERIPH2_CLK2_PODF (0) //!< Bit position for CCM_CBCDR_PERIPH2_CLK2_PODF.
#define BM_CCM_CBCDR_PERIPH2_CLK2_PODF (0x00000007) //!< Bit mask for CCM_CBCDR_PERIPH2_CLK2_PODF.
//! @brief Get value of CCM_CBCDR_PERIPH2_CLK2_PODF from a register value.
#define BG_CCM_CBCDR_PERIPH2_CLK2_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_PERIPH2_CLK2_PODF) >> BP_CCM_CBCDR_PERIPH2_CLK2_PODF)
//! @brief Format value for bitfield CCM_CBCDR_PERIPH2_CLK2_PODF.
#define BF_CCM_CBCDR_PERIPH2_CLK2_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_PERIPH2_CLK2_PODF) & BM_CCM_CBCDR_PERIPH2_CLK2_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PERIPH2_CLK2_PODF field to a new value.
#define BW_CCM_CBCDR_PERIPH2_CLK2_PODF(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_PERIPH2_CLK2_PODF) | BF_CCM_CBCDR_PERIPH2_CLK2_PODF(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field MMDC_CH1_AXI_PODF[5:3] (RW)
*
* Divider for mmdc_ch1_axi podf. Note: This design implementation does not use
* MMDC_CH1_AXI_CLK_ROOT as a clock source to the MMDC. Only MMDC_CH0_AXI_CLK_ROOT is used.
*
* Values:
* - 000 - divide by 1 (default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CBCDR_MMDC_CH1_AXI_PODF (3) //!< Bit position for CCM_CBCDR_MMDC_CH1_AXI_PODF.
#define BM_CCM_CBCDR_MMDC_CH1_AXI_PODF (0x00000038) //!< Bit mask for CCM_CBCDR_MMDC_CH1_AXI_PODF.
//! @brief Get value of CCM_CBCDR_MMDC_CH1_AXI_PODF from a register value.
#define BG_CCM_CBCDR_MMDC_CH1_AXI_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_MMDC_CH1_AXI_PODF) >> BP_CCM_CBCDR_MMDC_CH1_AXI_PODF)
//! @brief Format value for bitfield CCM_CBCDR_MMDC_CH1_AXI_PODF.
#define BF_CCM_CBCDR_MMDC_CH1_AXI_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_MMDC_CH1_AXI_PODF) & BM_CCM_CBCDR_MMDC_CH1_AXI_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MMDC_CH1_AXI_PODF field to a new value.
#define BW_CCM_CBCDR_MMDC_CH1_AXI_PODF(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_MMDC_CH1_AXI_PODF) | BF_CCM_CBCDR_MMDC_CH1_AXI_PODF(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field AXI_SEL[6] (RW)
*
* AXI clock source select
*
* Values:
* - 0 - Periph_clk output will be used as AXI clock root
* - 1 - AXI alternative clock will be used as AXI clock root
*/
//@{
#define BP_CCM_CBCDR_AXI_SEL (6) //!< Bit position for CCM_CBCDR_AXI_SEL.
#define BM_CCM_CBCDR_AXI_SEL (0x00000040) //!< Bit mask for CCM_CBCDR_AXI_SEL.
//! @brief Get value of CCM_CBCDR_AXI_SEL from a register value.
#define BG_CCM_CBCDR_AXI_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_AXI_SEL) >> BP_CCM_CBCDR_AXI_SEL)
//! @brief Format value for bitfield CCM_CBCDR_AXI_SEL.
#define BF_CCM_CBCDR_AXI_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_AXI_SEL) & BM_CCM_CBCDR_AXI_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the AXI_SEL field to a new value.
#define BW_CCM_CBCDR_AXI_SEL(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_AXI_SEL) | BF_CCM_CBCDR_AXI_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field AXI_ALT_SEL[7] (RW)
*
* AXI alternative clock select
*
* Values:
* - 0 - pll2 396MHz PFD will be selected as alternative clock for AXI root clock
* - 1 - pll3 540MHz PFD will be selected as alternative clock for AXI root clock
*/
//@{
#define BP_CCM_CBCDR_AXI_ALT_SEL (7) //!< Bit position for CCM_CBCDR_AXI_ALT_SEL.
#define BM_CCM_CBCDR_AXI_ALT_SEL (0x00000080) //!< Bit mask for CCM_CBCDR_AXI_ALT_SEL.
//! @brief Get value of CCM_CBCDR_AXI_ALT_SEL from a register value.
#define BG_CCM_CBCDR_AXI_ALT_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_AXI_ALT_SEL) >> BP_CCM_CBCDR_AXI_ALT_SEL)
//! @brief Format value for bitfield CCM_CBCDR_AXI_ALT_SEL.
#define BF_CCM_CBCDR_AXI_ALT_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_AXI_ALT_SEL) & BM_CCM_CBCDR_AXI_ALT_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the AXI_ALT_SEL field to a new value.
#define BW_CCM_CBCDR_AXI_ALT_SEL(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_AXI_ALT_SEL) | BF_CCM_CBCDR_AXI_ALT_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field IPG_PODF[9:8] (RW)
*
* Divider for ipg podf. Note: IEEE_RTC module will not support ratio of 1:3 for ahb_clk:ipg_clk. In
* case IEEE_RTC is used, then those ratios should not be used. Note: SDMA module will not support
* ratio of 1:3 and 1:4 for ahb_clk:ipg_clk. In case SDMA is used, then those ratios should not be
* used.
*
* Values:
* - 00 - divide by 1
* - 01 - divide by 2 (default)
* - 10 - divide by 3
* - 11 - divide by 4
*/
//@{
#define BP_CCM_CBCDR_IPG_PODF (8) //!< Bit position for CCM_CBCDR_IPG_PODF.
#define BM_CCM_CBCDR_IPG_PODF (0x00000300) //!< Bit mask for CCM_CBCDR_IPG_PODF.
//! @brief Get value of CCM_CBCDR_IPG_PODF from a register value.
#define BG_CCM_CBCDR_IPG_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_IPG_PODF) >> BP_CCM_CBCDR_IPG_PODF)
//! @brief Format value for bitfield CCM_CBCDR_IPG_PODF.
#define BF_CCM_CBCDR_IPG_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_IPG_PODF) & BM_CCM_CBCDR_IPG_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the IPG_PODF field to a new value.
#define BW_CCM_CBCDR_IPG_PODF(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_IPG_PODF) | BF_CCM_CBCDR_IPG_PODF(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field AHB_PODF[12:10] (RW)
*
* Divider for ahb podf. Note: any change of this divider might involve handshake with EMI and IPU.
* See CDHIPR register for the handshake busy bits.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3 (default)
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CBCDR_AHB_PODF (10) //!< Bit position for CCM_CBCDR_AHB_PODF.
#define BM_CCM_CBCDR_AHB_PODF (0x00001c00) //!< Bit mask for CCM_CBCDR_AHB_PODF.
//! @brief Get value of CCM_CBCDR_AHB_PODF from a register value.
#define BG_CCM_CBCDR_AHB_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_AHB_PODF) >> BP_CCM_CBCDR_AHB_PODF)
//! @brief Format value for bitfield CCM_CBCDR_AHB_PODF.
#define BF_CCM_CBCDR_AHB_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_AHB_PODF) & BM_CCM_CBCDR_AHB_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the AHB_PODF field to a new value.
#define BW_CCM_CBCDR_AHB_PODF(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_AHB_PODF) | BF_CCM_CBCDR_AHB_PODF(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field AXI_PODF[18:16] (RW)
*
* Divider for axi podf. Note: any change of this divider might involve handshake with EMI and IPU.
* See CDHIPR register for the handshake busy bits.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CBCDR_AXI_PODF (16) //!< Bit position for CCM_CBCDR_AXI_PODF.
#define BM_CCM_CBCDR_AXI_PODF (0x00070000) //!< Bit mask for CCM_CBCDR_AXI_PODF.
//! @brief Get value of CCM_CBCDR_AXI_PODF from a register value.
#define BG_CCM_CBCDR_AXI_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_AXI_PODF) >> BP_CCM_CBCDR_AXI_PODF)
//! @brief Format value for bitfield CCM_CBCDR_AXI_PODF.
#define BF_CCM_CBCDR_AXI_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_AXI_PODF) & BM_CCM_CBCDR_AXI_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the AXI_PODF field to a new value.
#define BW_CCM_CBCDR_AXI_PODF(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_AXI_PODF) | BF_CCM_CBCDR_AXI_PODF(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field MMDC_CH0_AXI_PODF[21:19] (RW)
*
* Divider for mmdc_ch0_axi podf.
*
* Values:
* - 000 - divide by 1 (default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CBCDR_MMDC_CH0_AXI_PODF (19) //!< Bit position for CCM_CBCDR_MMDC_CH0_AXI_PODF.
#define BM_CCM_CBCDR_MMDC_CH0_AXI_PODF (0x00380000) //!< Bit mask for CCM_CBCDR_MMDC_CH0_AXI_PODF.
//! @brief Get value of CCM_CBCDR_MMDC_CH0_AXI_PODF from a register value.
#define BG_CCM_CBCDR_MMDC_CH0_AXI_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_MMDC_CH0_AXI_PODF) >> BP_CCM_CBCDR_MMDC_CH0_AXI_PODF)
//! @brief Format value for bitfield CCM_CBCDR_MMDC_CH0_AXI_PODF.
#define BF_CCM_CBCDR_MMDC_CH0_AXI_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_MMDC_CH0_AXI_PODF) & BM_CCM_CBCDR_MMDC_CH0_AXI_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MMDC_CH0_AXI_PODF field to a new value.
#define BW_CCM_CBCDR_MMDC_CH0_AXI_PODF(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_MMDC_CH0_AXI_PODF) | BF_CCM_CBCDR_MMDC_CH0_AXI_PODF(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field PERIPH_CLK_SEL[25] (RW)
*
* Selector for peripheral main clock (source of mmdc_ch0_axi_clk_root). Note: alternative clock
* source should be used when PLL is relocked. For PLL relock procedure pls refer PLL chapter
*
* Values:
* - 0 - derive clock from pll2_sw_clk muxed clock source.
* - 1 - derive clock from periph_clk2_clk clock source.
*/
//@{
#define BP_CCM_CBCDR_PERIPH_CLK_SEL (25) //!< Bit position for CCM_CBCDR_PERIPH_CLK_SEL.
#define BM_CCM_CBCDR_PERIPH_CLK_SEL (0x02000000) //!< Bit mask for CCM_CBCDR_PERIPH_CLK_SEL.
//! @brief Get value of CCM_CBCDR_PERIPH_CLK_SEL from a register value.
#define BG_CCM_CBCDR_PERIPH_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_PERIPH_CLK_SEL) >> BP_CCM_CBCDR_PERIPH_CLK_SEL)
//! @brief Format value for bitfield CCM_CBCDR_PERIPH_CLK_SEL.
#define BF_CCM_CBCDR_PERIPH_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_PERIPH_CLK_SEL) & BM_CCM_CBCDR_PERIPH_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PERIPH_CLK_SEL field to a new value.
#define BW_CCM_CBCDR_PERIPH_CLK_SEL(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_PERIPH_CLK_SEL) | BF_CCM_CBCDR_PERIPH_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field PERIPH2_CLK_SEL[26] (RW)
*
* Selector for peripheral2 main clock (source of mmdc_ch1_axi_clk_root ).
*
* Values:
* - 0 - derive clock from pll2_sw_clk muxed clock source.
* - 1 - derive clock from periph_clk2_clk clock source.
*/
//@{
#define BP_CCM_CBCDR_PERIPH2_CLK_SEL (26) //!< Bit position for CCM_CBCDR_PERIPH2_CLK_SEL.
#define BM_CCM_CBCDR_PERIPH2_CLK_SEL (0x04000000) //!< Bit mask for CCM_CBCDR_PERIPH2_CLK_SEL.
//! @brief Get value of CCM_CBCDR_PERIPH2_CLK_SEL from a register value.
#define BG_CCM_CBCDR_PERIPH2_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_PERIPH2_CLK_SEL) >> BP_CCM_CBCDR_PERIPH2_CLK_SEL)
//! @brief Format value for bitfield CCM_CBCDR_PERIPH2_CLK_SEL.
#define BF_CCM_CBCDR_PERIPH2_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_PERIPH2_CLK_SEL) & BM_CCM_CBCDR_PERIPH2_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PERIPH2_CLK_SEL field to a new value.
#define BW_CCM_CBCDR_PERIPH2_CLK_SEL(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_PERIPH2_CLK_SEL) | BF_CCM_CBCDR_PERIPH2_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCDR, field PERIPH_CLK2_PODF[29:27] (RW)
*
* Divider for periph2 clock podf.
*
* Values:
* - 000 - divide by 1 (default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CBCDR_PERIPH_CLK2_PODF (27) //!< Bit position for CCM_CBCDR_PERIPH_CLK2_PODF.
#define BM_CCM_CBCDR_PERIPH_CLK2_PODF (0x38000000) //!< Bit mask for CCM_CBCDR_PERIPH_CLK2_PODF.
//! @brief Get value of CCM_CBCDR_PERIPH_CLK2_PODF from a register value.
#define BG_CCM_CBCDR_PERIPH_CLK2_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCDR_PERIPH_CLK2_PODF) >> BP_CCM_CBCDR_PERIPH_CLK2_PODF)
//! @brief Format value for bitfield CCM_CBCDR_PERIPH_CLK2_PODF.
#define BF_CCM_CBCDR_PERIPH_CLK2_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCDR_PERIPH_CLK2_PODF) & BM_CCM_CBCDR_PERIPH_CLK2_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PERIPH_CLK2_PODF field to a new value.
#define BW_CCM_CBCDR_PERIPH_CLK2_PODF(v) (HW_CCM_CBCDR_WR((HW_CCM_CBCDR_RD() & ~BM_CCM_CBCDR_PERIPH_CLK2_PODF) | BF_CCM_CBCDR_PERIPH_CLK2_PODF(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CBCMR - CCM Bus Clock Multiplexer Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CBCMR - CCM Bus Clock Multiplexer Register (RW)
*
* Reset value: 0x00820224
*
* The figure below represents the CCM Bus Clock Multiplexer Register (CBCMR). The CBCMR register
* contains bits to control the multiplexers that generate the bus clocks. The table below provides
* its field descriptions. Note: Any change on the above multiplexer will have to be done while the
* module that its clock is affected is not functional and the respective clock is gated in LPCG. If
* the change will be done during operation of the module, then it is not guaranteed that the
* modules operation will not be harmed. The change for arm_axi_clk_sel should be done through sdma
* so that ARM will not use this clock during the change and the clock will be gated in LPCG.
*/
typedef union _hw_ccm_cbcmr
{
reg32_t U;
struct _hw_ccm_cbcmr_bitfields
{
unsigned RESERVED1 : 4; //!< [3:0] Reserved.
unsigned GPU3D_CORE_CLK_SEL : 2; //!< [5:4] Selector for gpu3d_core clock multiplexer
unsigned RESERVED2 : 2; //!< [7:6] Reserved
unsigned GPU2D_CORE_SEL : 2; //!< [9:8] Selector for gpu2d_core clock multiplexer
unsigned PCIE_AXI_CLK_SEL : 1; //!< [10] Selector for pcie_axi clock multiplexer
unsigned VDOAXI_CLK_SEL : 1; //!< [11] Selector for vdoaxi clock multiplexer
unsigned PERIPH_CLK2_SEL : 2; //!< [13:12] Selector for peripheral clk2 clock multiplexer
unsigned VPU_AXI_CLK_SEL : 2; //!< [15:14] Selector for VPU axi clock multiplexer
unsigned GPU2D_CLK_SEL : 2; //!< [17:16] Selector for open vg clock multiplexer
unsigned PRE_PERIPH_CLK_SEL : 2; //!< [19:18] Selector for pre_periph clock multiplexer
unsigned PERIPH2_CLK2_SEL : 1; //!< [20] Selector for periph2_clk2 clock multiplexer
unsigned PRE_PERIPH2_CLK_SEL : 2; //!< [22:21] Selector for pre_periph2 clock multiplexer
unsigned MLB_SYS_CLK_PODF : 3; //!< [25:23] Divider for mlb_sys clock.
unsigned GPU3D_CORE_PODF : 3; //!< [28:26] Divider for gpu3d_core_podf.
unsigned GPU2D_CORE_PODF : 3; //!< [31:29] Divider for gpu2d_core clock.
} B;
} hw_ccm_cbcmr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CBCMR register
*/
//@{
#define HW_CCM_CBCMR_ADDR (REGS_CCM_BASE + 0x18)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CBCMR (*(volatile hw_ccm_cbcmr_t *) HW_CCM_CBCMR_ADDR)
#define HW_CCM_CBCMR_RD() (HW_CCM_CBCMR.U)
#define HW_CCM_CBCMR_WR(v) (HW_CCM_CBCMR.U = (v))
#define HW_CCM_CBCMR_SET(v) (HW_CCM_CBCMR_WR(HW_CCM_CBCMR_RD() | (v)))
#define HW_CCM_CBCMR_CLR(v) (HW_CCM_CBCMR_WR(HW_CCM_CBCMR_RD() & ~(v)))
#define HW_CCM_CBCMR_TOG(v) (HW_CCM_CBCMR_WR(HW_CCM_CBCMR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CBCMR bitfields
*/
/*! @name Register CCM_CBCMR, field GPU3D_CORE_CLK_SEL[5:4] (RW)
*
* Selector for gpu3d_core clock multiplexer
*
* Values:
* - 00 - derive clock from mmdc_ch0
* - 01 - derive clock from pll3
* - 10 - derive clock from 528M PFD (default)
* - 11 - derive clock from 396M PFD
*/
//@{
#define BP_CCM_CBCMR_GPU3D_CORE_CLK_SEL (4) //!< Bit position for CCM_CBCMR_GPU3D_CORE_CLK_SEL.
#define BM_CCM_CBCMR_GPU3D_CORE_CLK_SEL (0x00000030) //!< Bit mask for CCM_CBCMR_GPU3D_CORE_CLK_SEL.
//! @brief Get value of CCM_CBCMR_GPU3D_CORE_CLK_SEL from a register value.
#define BG_CCM_CBCMR_GPU3D_CORE_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_GPU3D_CORE_CLK_SEL) >> BP_CCM_CBCMR_GPU3D_CORE_CLK_SEL)
//! @brief Format value for bitfield CCM_CBCMR_GPU3D_CORE_CLK_SEL.
#define BF_CCM_CBCMR_GPU3D_CORE_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_GPU3D_CORE_CLK_SEL) & BM_CCM_CBCMR_GPU3D_CORE_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the GPU3D_CORE_CLK_SEL field to a new value.
#define BW_CCM_CBCMR_GPU3D_CORE_CLK_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_GPU3D_CORE_CLK_SEL) | BF_CCM_CBCMR_GPU3D_CORE_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field GPU2D_CORE_SEL[9:8] (RW)
*
* Selector for gpu2d_core clock multiplexer
*
* Values:
* - 00 - derive clock from mmdc_ch0 clk
* - 01 - derive clock from pll3
* - 10 - derive clock from 528M PFD (default)
* - 11 - derive clock from Reserved PFD
*/
//@{
#define BP_CCM_CBCMR_GPU2D_CORE_SEL (8) //!< Bit position for CCM_CBCMR_GPU2D_CORE_SEL.
#define BM_CCM_CBCMR_GPU2D_CORE_SEL (0x00000300) //!< Bit mask for CCM_CBCMR_GPU2D_CORE_SEL.
//! @brief Get value of CCM_CBCMR_GPU2D_CORE_SEL from a register value.
#define BG_CCM_CBCMR_GPU2D_CORE_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_GPU2D_CORE_SEL) >> BP_CCM_CBCMR_GPU2D_CORE_SEL)
//! @brief Format value for bitfield CCM_CBCMR_GPU2D_CORE_SEL.
#define BF_CCM_CBCMR_GPU2D_CORE_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_GPU2D_CORE_SEL) & BM_CCM_CBCMR_GPU2D_CORE_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the GPU2D_CORE_SEL field to a new value.
#define BW_CCM_CBCMR_GPU2D_CORE_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_GPU2D_CORE_SEL) | BF_CCM_CBCMR_GPU2D_CORE_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field PCIE_AXI_CLK_SEL[10] (RW)
*
* Selector for pcie_axi clock multiplexer
*
* Values:
* - 0 - derive clock from axi clk (default)
* - 1 - derive clock from system_133M clk
*/
//@{
#define BP_CCM_CBCMR_PCIE_AXI_CLK_SEL (10) //!< Bit position for CCM_CBCMR_PCIE_AXI_CLK_SEL.
#define BM_CCM_CBCMR_PCIE_AXI_CLK_SEL (0x00000400) //!< Bit mask for CCM_CBCMR_PCIE_AXI_CLK_SEL.
//! @brief Get value of CCM_CBCMR_PCIE_AXI_CLK_SEL from a register value.
#define BG_CCM_CBCMR_PCIE_AXI_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_PCIE_AXI_CLK_SEL) >> BP_CCM_CBCMR_PCIE_AXI_CLK_SEL)
//! @brief Format value for bitfield CCM_CBCMR_PCIE_AXI_CLK_SEL.
#define BF_CCM_CBCMR_PCIE_AXI_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_PCIE_AXI_CLK_SEL) & BM_CCM_CBCMR_PCIE_AXI_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PCIE_AXI_CLK_SEL field to a new value.
#define BW_CCM_CBCMR_PCIE_AXI_CLK_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_PCIE_AXI_CLK_SEL) | BF_CCM_CBCMR_PCIE_AXI_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field VDOAXI_CLK_SEL[11] (RW)
*
* Selector for vdoaxi clock multiplexer
*
* Values:
* - 0 - derive clock from axi clk (default)
* - 1 - derive clock from 132M clock
*/
//@{
#define BP_CCM_CBCMR_VDOAXI_CLK_SEL (11) //!< Bit position for CCM_CBCMR_VDOAXI_CLK_SEL.
#define BM_CCM_CBCMR_VDOAXI_CLK_SEL (0x00000800) //!< Bit mask for CCM_CBCMR_VDOAXI_CLK_SEL.
//! @brief Get value of CCM_CBCMR_VDOAXI_CLK_SEL from a register value.
#define BG_CCM_CBCMR_VDOAXI_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_VDOAXI_CLK_SEL) >> BP_CCM_CBCMR_VDOAXI_CLK_SEL)
//! @brief Format value for bitfield CCM_CBCMR_VDOAXI_CLK_SEL.
#define BF_CCM_CBCMR_VDOAXI_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_VDOAXI_CLK_SEL) & BM_CCM_CBCMR_VDOAXI_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the VDOAXI_CLK_SEL field to a new value.
#define BW_CCM_CBCMR_VDOAXI_CLK_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_VDOAXI_CLK_SEL) | BF_CCM_CBCMR_VDOAXI_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field PERIPH_CLK2_SEL[13:12] (RW)
*
* Selector for peripheral clk2 clock multiplexer
*
* Values:
* - 00 - derive clock from pll3_sw_clk
* - 01 - derive clock from pll1_ref_clk
* - 10 - derive clock from pll2_burn_in_clk (default)
* - 11 - reserved
*/
//@{
#define BP_CCM_CBCMR_PERIPH_CLK2_SEL (12) //!< Bit position for CCM_CBCMR_PERIPH_CLK2_SEL.
#define BM_CCM_CBCMR_PERIPH_CLK2_SEL (0x00003000) //!< Bit mask for CCM_CBCMR_PERIPH_CLK2_SEL.
//! @brief Get value of CCM_CBCMR_PERIPH_CLK2_SEL from a register value.
#define BG_CCM_CBCMR_PERIPH_CLK2_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_PERIPH_CLK2_SEL) >> BP_CCM_CBCMR_PERIPH_CLK2_SEL)
//! @brief Format value for bitfield CCM_CBCMR_PERIPH_CLK2_SEL.
#define BF_CCM_CBCMR_PERIPH_CLK2_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_PERIPH_CLK2_SEL) & BM_CCM_CBCMR_PERIPH_CLK2_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PERIPH_CLK2_SEL field to a new value.
#define BW_CCM_CBCMR_PERIPH_CLK2_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_PERIPH_CLK2_SEL) | BF_CCM_CBCMR_PERIPH_CLK2_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field VPU_AXI_CLK_SEL[15:14] (RW)
*
* Selector for VPU axi clock multiplexer
*
* Values:
* - 00 - derive clock from AXI (default)
* - 01 - derive clock from 396M PFD
* - 10 - derive clock from 307M PFD (default)
* - 11 - Restricted
*/
//@{
#define BP_CCM_CBCMR_VPU_AXI_CLK_SEL (14) //!< Bit position for CCM_CBCMR_VPU_AXI_CLK_SEL.
#define BM_CCM_CBCMR_VPU_AXI_CLK_SEL (0x0000c000) //!< Bit mask for CCM_CBCMR_VPU_AXI_CLK_SEL.
//! @brief Get value of CCM_CBCMR_VPU_AXI_CLK_SEL from a register value.
#define BG_CCM_CBCMR_VPU_AXI_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_VPU_AXI_CLK_SEL) >> BP_CCM_CBCMR_VPU_AXI_CLK_SEL)
//! @brief Format value for bitfield CCM_CBCMR_VPU_AXI_CLK_SEL.
#define BF_CCM_CBCMR_VPU_AXI_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_VPU_AXI_CLK_SEL) & BM_CCM_CBCMR_VPU_AXI_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the VPU_AXI_CLK_SEL field to a new value.
#define BW_CCM_CBCMR_VPU_AXI_CLK_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_VPU_AXI_CLK_SEL) | BF_CCM_CBCMR_VPU_AXI_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field GPU2D_CLK_SEL[17:16] (RW)
*
* Selector for open vg clock multiplexer
*
* Values:
* - 00 - derive clock from axi
* - 01 - derive clock from pll3
* - 10 - 307M PFD
* - 11 - derive clock from 396M PFD
*/
//@{
#define BP_CCM_CBCMR_GPU2D_CLK_SEL (16) //!< Bit position for CCM_CBCMR_GPU2D_CLK_SEL.
#define BM_CCM_CBCMR_GPU2D_CLK_SEL (0x00030000) //!< Bit mask for CCM_CBCMR_GPU2D_CLK_SEL.
//! @brief Get value of CCM_CBCMR_GPU2D_CLK_SEL from a register value.
#define BG_CCM_CBCMR_GPU2D_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_GPU2D_CLK_SEL) >> BP_CCM_CBCMR_GPU2D_CLK_SEL)
//! @brief Format value for bitfield CCM_CBCMR_GPU2D_CLK_SEL.
#define BF_CCM_CBCMR_GPU2D_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_GPU2D_CLK_SEL) & BM_CCM_CBCMR_GPU2D_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the GPU2D_CLK_SEL field to a new value.
#define BW_CCM_CBCMR_GPU2D_CLK_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_GPU2D_CLK_SEL) | BF_CCM_CBCMR_GPU2D_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field PRE_PERIPH_CLK_SEL[19:18] (RW)
*
* Selector for pre_periph clock multiplexer
*
* Values:
* - 00 - derive clock from PLL2 main 528MHz clock
* - 01 - derive clock from 396MHz PLL2 PFD (default)
* - 10 - derive clock from 307M PFD
* - 11 - derive clock from 198MHz clock (divided 396MHz PLL2 PFD)
*/
//@{
#define BP_CCM_CBCMR_PRE_PERIPH_CLK_SEL (18) //!< Bit position for CCM_CBCMR_PRE_PERIPH_CLK_SEL.
#define BM_CCM_CBCMR_PRE_PERIPH_CLK_SEL (0x000c0000) //!< Bit mask for CCM_CBCMR_PRE_PERIPH_CLK_SEL.
//! @brief Get value of CCM_CBCMR_PRE_PERIPH_CLK_SEL from a register value.
#define BG_CCM_CBCMR_PRE_PERIPH_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_PRE_PERIPH_CLK_SEL) >> BP_CCM_CBCMR_PRE_PERIPH_CLK_SEL)
//! @brief Format value for bitfield CCM_CBCMR_PRE_PERIPH_CLK_SEL.
#define BF_CCM_CBCMR_PRE_PERIPH_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_PRE_PERIPH_CLK_SEL) & BM_CCM_CBCMR_PRE_PERIPH_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PRE_PERIPH_CLK_SEL field to a new value.
#define BW_CCM_CBCMR_PRE_PERIPH_CLK_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_PRE_PERIPH_CLK_SEL) | BF_CCM_CBCMR_PRE_PERIPH_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field PERIPH2_CLK2_SEL[20] (RW)
*
* Selector for periph2_clk2 clock multiplexer
*
* Values:
* - 0 - derive clock from pll3_sw_clk
* - 1 - derive clock from PLL2 Main
*/
//@{
#define BP_CCM_CBCMR_PERIPH2_CLK2_SEL (20) //!< Bit position for CCM_CBCMR_PERIPH2_CLK2_SEL.
#define BM_CCM_CBCMR_PERIPH2_CLK2_SEL (0x00100000) //!< Bit mask for CCM_CBCMR_PERIPH2_CLK2_SEL.
//! @brief Get value of CCM_CBCMR_PERIPH2_CLK2_SEL from a register value.
#define BG_CCM_CBCMR_PERIPH2_CLK2_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_PERIPH2_CLK2_SEL) >> BP_CCM_CBCMR_PERIPH2_CLK2_SEL)
//! @brief Format value for bitfield CCM_CBCMR_PERIPH2_CLK2_SEL.
#define BF_CCM_CBCMR_PERIPH2_CLK2_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_PERIPH2_CLK2_SEL) & BM_CCM_CBCMR_PERIPH2_CLK2_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PERIPH2_CLK2_SEL field to a new value.
#define BW_CCM_CBCMR_PERIPH2_CLK2_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_PERIPH2_CLK2_SEL) | BF_CCM_CBCMR_PERIPH2_CLK2_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field PRE_PERIPH2_CLK_SEL[22:21] (RW)
*
* Selector for pre_periph2 clock multiplexer
*
* Values:
* - 00 - derive clock from PLL2 main 528MHz clock
* - 01 - derive clock from 396MHz PLL2 PFD (default)
* - 10 - derive clock from 307M PFD
* - 11 - derive clock from 198MHz clock (divided 396MHz PLL2 PFD)
*/
//@{
#define BP_CCM_CBCMR_PRE_PERIPH2_CLK_SEL (21) //!< Bit position for CCM_CBCMR_PRE_PERIPH2_CLK_SEL.
#define BM_CCM_CBCMR_PRE_PERIPH2_CLK_SEL (0x00600000) //!< Bit mask for CCM_CBCMR_PRE_PERIPH2_CLK_SEL.
//! @brief Get value of CCM_CBCMR_PRE_PERIPH2_CLK_SEL from a register value.
#define BG_CCM_CBCMR_PRE_PERIPH2_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_PRE_PERIPH2_CLK_SEL) >> BP_CCM_CBCMR_PRE_PERIPH2_CLK_SEL)
//! @brief Format value for bitfield CCM_CBCMR_PRE_PERIPH2_CLK_SEL.
#define BF_CCM_CBCMR_PRE_PERIPH2_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_PRE_PERIPH2_CLK_SEL) & BM_CCM_CBCMR_PRE_PERIPH2_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PRE_PERIPH2_CLK_SEL field to a new value.
#define BW_CCM_CBCMR_PRE_PERIPH2_CLK_SEL(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_PRE_PERIPH2_CLK_SEL) | BF_CCM_CBCMR_PRE_PERIPH2_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field MLB_SYS_CLK_PODF[25:23] (RW)
*
* Divider for mlb_sys clock. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CBCMR_MLB_SYS_CLK_PODF (23) //!< Bit position for CCM_CBCMR_MLB_SYS_CLK_PODF.
#define BM_CCM_CBCMR_MLB_SYS_CLK_PODF (0x03800000) //!< Bit mask for CCM_CBCMR_MLB_SYS_CLK_PODF.
//! @brief Get value of CCM_CBCMR_MLB_SYS_CLK_PODF from a register value.
#define BG_CCM_CBCMR_MLB_SYS_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_MLB_SYS_CLK_PODF) >> BP_CCM_CBCMR_MLB_SYS_CLK_PODF)
//! @brief Format value for bitfield CCM_CBCMR_MLB_SYS_CLK_PODF.
#define BF_CCM_CBCMR_MLB_SYS_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_MLB_SYS_CLK_PODF) & BM_CCM_CBCMR_MLB_SYS_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MLB_SYS_CLK_PODF field to a new value.
#define BW_CCM_CBCMR_MLB_SYS_CLK_PODF(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_MLB_SYS_CLK_PODF) | BF_CCM_CBCMR_MLB_SYS_CLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field GPU3D_CORE_PODF[28:26] (RW)
*
* Divider for gpu3d_core_podf. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CBCMR_GPU3D_CORE_PODF (26) //!< Bit position for CCM_CBCMR_GPU3D_CORE_PODF.
#define BM_CCM_CBCMR_GPU3D_CORE_PODF (0x1c000000) //!< Bit mask for CCM_CBCMR_GPU3D_CORE_PODF.
//! @brief Get value of CCM_CBCMR_GPU3D_CORE_PODF from a register value.
#define BG_CCM_CBCMR_GPU3D_CORE_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_GPU3D_CORE_PODF) >> BP_CCM_CBCMR_GPU3D_CORE_PODF)
//! @brief Format value for bitfield CCM_CBCMR_GPU3D_CORE_PODF.
#define BF_CCM_CBCMR_GPU3D_CORE_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_GPU3D_CORE_PODF) & BM_CCM_CBCMR_GPU3D_CORE_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the GPU3D_CORE_PODF field to a new value.
#define BW_CCM_CBCMR_GPU3D_CORE_PODF(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_GPU3D_CORE_PODF) | BF_CCM_CBCMR_GPU3D_CORE_PODF(v)))
#endif
//@}
/*! @name Register CCM_CBCMR, field GPU2D_CORE_PODF[31:29] (RW)
*
* Divider for gpu2d_core clock. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1 (default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CBCMR_GPU2D_CORE_PODF (29) //!< Bit position for CCM_CBCMR_GPU2D_CORE_PODF.
#define BM_CCM_CBCMR_GPU2D_CORE_PODF (0xe0000000) //!< Bit mask for CCM_CBCMR_GPU2D_CORE_PODF.
//! @brief Get value of CCM_CBCMR_GPU2D_CORE_PODF from a register value.
#define BG_CCM_CBCMR_GPU2D_CORE_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CBCMR_GPU2D_CORE_PODF) >> BP_CCM_CBCMR_GPU2D_CORE_PODF)
//! @brief Format value for bitfield CCM_CBCMR_GPU2D_CORE_PODF.
#define BF_CCM_CBCMR_GPU2D_CORE_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CBCMR_GPU2D_CORE_PODF) & BM_CCM_CBCMR_GPU2D_CORE_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the GPU2D_CORE_PODF field to a new value.
#define BW_CCM_CBCMR_GPU2D_CORE_PODF(v) (HW_CCM_CBCMR_WR((HW_CCM_CBCMR_RD() & ~BM_CCM_CBCMR_GPU2D_CORE_PODF) | BF_CCM_CBCMR_GPU2D_CORE_PODF(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CSCMR1 - CCM Serial Clock Multiplexer Register 1
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CSCMR1 - CCM Serial Clock Multiplexer Register 1 (RW)
*
* Reset value: 0x00f00000
*
* The figure below represents the CCM Serial Clock Multiplexer Register 1 (CSCMR1). The CSCMR1
* register contains bits to control the multiplexers that generate the serial clocks. The table
* below provides its field descriptions. Note: Any change on the above multiplexer will have to be
* done while the module that its clock is affected is not functional and the clock is gated. If the
* change will be done during operation of the module, then it is not guaranteed that the modules
* operation will not be harmed.
*/
typedef union _hw_ccm_cscmr1
{
reg32_t U;
struct _hw_ccm_cscmr1_bitfields
{
unsigned PERCLK_PODF : 6; //!< [5:0] Divider for perclk podf.
unsigned RESERVED0 : 4; //!< [9:6] Reserved
unsigned SSI1_CLK_SEL : 2; //!< [11:10] Selector for ssi1 clock multiplexer
unsigned SSI2_CLK_SEL : 2; //!< [13:12] Selector for ssi2 clock multiplexer
unsigned SSI3_CLK_SEL : 2; //!< [15:14] Selector for ssi3 clock multiplexer
unsigned USDHC1_CLK_SEL : 1; //!< [16] Selector for usdhc1 clock multiplexer
unsigned USDHC2_CLK_SEL : 1; //!< [17] Selector for usdhc2 clock multiplexer
unsigned USDHC3_CLK_SEL : 1; //!< [18] Selector for usdhc3 clock multiplexer
unsigned USDHC4_CLK_SEL : 1; //!< [19] Selector for usdhc4 clock multiplexer
unsigned ACLK_PODF : 3; //!< [22:20] Divider for aclk clock root.
unsigned ACLK_EIM_SLOW_PODF : 3; //!< [25:23] Divider for aclk_eim_slow clock root.
unsigned RESERVED1 : 1; //!< [26] Reserved
unsigned ACLK_SEL : 2; //!< [28:27] Selector for aclk root clock multiplexer
unsigned ACLK_EIM_SLOW_SEL : 2; //!< [30:29] Selector for aclk_eim_slow root clock multiplexer
unsigned RESERVED2 : 1; //!< [31] Reserved.
} B;
} hw_ccm_cscmr1_t;
#endif
/*!
* @name Constants and macros for entire CCM_CSCMR1 register
*/
//@{
#define HW_CCM_CSCMR1_ADDR (REGS_CCM_BASE + 0x1c)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CSCMR1 (*(volatile hw_ccm_cscmr1_t *) HW_CCM_CSCMR1_ADDR)
#define HW_CCM_CSCMR1_RD() (HW_CCM_CSCMR1.U)
#define HW_CCM_CSCMR1_WR(v) (HW_CCM_CSCMR1.U = (v))
#define HW_CCM_CSCMR1_SET(v) (HW_CCM_CSCMR1_WR(HW_CCM_CSCMR1_RD() | (v)))
#define HW_CCM_CSCMR1_CLR(v) (HW_CCM_CSCMR1_WR(HW_CCM_CSCMR1_RD() & ~(v)))
#define HW_CCM_CSCMR1_TOG(v) (HW_CCM_CSCMR1_WR(HW_CCM_CSCMR1_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CSCMR1 bitfields
*/
/*! @name Register CCM_CSCMR1, field PERCLK_PODF[5:0] (RW)
*
* Divider for perclk podf.
*
* Values:
* - 000 - divide by 1 (default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CSCMR1_PERCLK_PODF (0) //!< Bit position for CCM_CSCMR1_PERCLK_PODF.
#define BM_CCM_CSCMR1_PERCLK_PODF (0x0000003f) //!< Bit mask for CCM_CSCMR1_PERCLK_PODF.
//! @brief Get value of CCM_CSCMR1_PERCLK_PODF from a register value.
#define BG_CCM_CSCMR1_PERCLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_PERCLK_PODF) >> BP_CCM_CSCMR1_PERCLK_PODF)
//! @brief Format value for bitfield CCM_CSCMR1_PERCLK_PODF.
#define BF_CCM_CSCMR1_PERCLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_PERCLK_PODF) & BM_CCM_CSCMR1_PERCLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PERCLK_PODF field to a new value.
#define BW_CCM_CSCMR1_PERCLK_PODF(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_PERCLK_PODF) | BF_CCM_CSCMR1_PERCLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field SSI1_CLK_SEL[11:10] (RW)
*
* Selector for ssi1 clock multiplexer
*
* Values:
* - 00 - derive clock from 508.2M PFD (default)
* - 10 - derive clock from pll4
* - 11 - Restricted
*/
//@{
#define BP_CCM_CSCMR1_SSI1_CLK_SEL (10) //!< Bit position for CCM_CSCMR1_SSI1_CLK_SEL.
#define BM_CCM_CSCMR1_SSI1_CLK_SEL (0x00000c00) //!< Bit mask for CCM_CSCMR1_SSI1_CLK_SEL.
//! @brief Get value of CCM_CSCMR1_SSI1_CLK_SEL from a register value.
#define BG_CCM_CSCMR1_SSI1_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_SSI1_CLK_SEL) >> BP_CCM_CSCMR1_SSI1_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCMR1_SSI1_CLK_SEL.
#define BF_CCM_CSCMR1_SSI1_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_SSI1_CLK_SEL) & BM_CCM_CSCMR1_SSI1_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SSI1_CLK_SEL field to a new value.
#define BW_CCM_CSCMR1_SSI1_CLK_SEL(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_SSI1_CLK_SEL) | BF_CCM_CSCMR1_SSI1_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field SSI2_CLK_SEL[13:12] (RW)
*
* Selector for ssi2 clock multiplexer
*
* Values:
* - 00 - derive clock from 508.2M PFD (default)
* - 10 - derive clock from pll4
* - 11 - Restricted
*/
//@{
#define BP_CCM_CSCMR1_SSI2_CLK_SEL (12) //!< Bit position for CCM_CSCMR1_SSI2_CLK_SEL.
#define BM_CCM_CSCMR1_SSI2_CLK_SEL (0x00003000) //!< Bit mask for CCM_CSCMR1_SSI2_CLK_SEL.
//! @brief Get value of CCM_CSCMR1_SSI2_CLK_SEL from a register value.
#define BG_CCM_CSCMR1_SSI2_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_SSI2_CLK_SEL) >> BP_CCM_CSCMR1_SSI2_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCMR1_SSI2_CLK_SEL.
#define BF_CCM_CSCMR1_SSI2_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_SSI2_CLK_SEL) & BM_CCM_CSCMR1_SSI2_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SSI2_CLK_SEL field to a new value.
#define BW_CCM_CSCMR1_SSI2_CLK_SEL(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_SSI2_CLK_SEL) | BF_CCM_CSCMR1_SSI2_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field SSI3_CLK_SEL[15:14] (RW)
*
* Selector for ssi3 clock multiplexer
*
* Values:
* - 00 - derive clock from 508.2M PFD (default)
* - 10 - derive clock from pll4
* - 11 - Restricted
*/
//@{
#define BP_CCM_CSCMR1_SSI3_CLK_SEL (14) //!< Bit position for CCM_CSCMR1_SSI3_CLK_SEL.
#define BM_CCM_CSCMR1_SSI3_CLK_SEL (0x0000c000) //!< Bit mask for CCM_CSCMR1_SSI3_CLK_SEL.
//! @brief Get value of CCM_CSCMR1_SSI3_CLK_SEL from a register value.
#define BG_CCM_CSCMR1_SSI3_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_SSI3_CLK_SEL) >> BP_CCM_CSCMR1_SSI3_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCMR1_SSI3_CLK_SEL.
#define BF_CCM_CSCMR1_SSI3_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_SSI3_CLK_SEL) & BM_CCM_CSCMR1_SSI3_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SSI3_CLK_SEL field to a new value.
#define BW_CCM_CSCMR1_SSI3_CLK_SEL(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_SSI3_CLK_SEL) | BF_CCM_CSCMR1_SSI3_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field USDHC1_CLK_SEL[16] (RW)
*
* Selector for usdhc1 clock multiplexer
*
* Values:
* - 0 - derive clock from 396M PFD
* - 1 - derive clock from 307M PFD
*/
//@{
#define BP_CCM_CSCMR1_USDHC1_CLK_SEL (16) //!< Bit position for CCM_CSCMR1_USDHC1_CLK_SEL.
#define BM_CCM_CSCMR1_USDHC1_CLK_SEL (0x00010000) //!< Bit mask for CCM_CSCMR1_USDHC1_CLK_SEL.
//! @brief Get value of CCM_CSCMR1_USDHC1_CLK_SEL from a register value.
#define BG_CCM_CSCMR1_USDHC1_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_USDHC1_CLK_SEL) >> BP_CCM_CSCMR1_USDHC1_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCMR1_USDHC1_CLK_SEL.
#define BF_CCM_CSCMR1_USDHC1_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_USDHC1_CLK_SEL) & BM_CCM_CSCMR1_USDHC1_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the USDHC1_CLK_SEL field to a new value.
#define BW_CCM_CSCMR1_USDHC1_CLK_SEL(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_USDHC1_CLK_SEL) | BF_CCM_CSCMR1_USDHC1_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field USDHC2_CLK_SEL[17] (RW)
*
* Selector for usdhc2 clock multiplexer
*
* Values:
* - 0 - derive clock from 396M PFD
* - 1 - derive clock from 307M PFD
*/
//@{
#define BP_CCM_CSCMR1_USDHC2_CLK_SEL (17) //!< Bit position for CCM_CSCMR1_USDHC2_CLK_SEL.
#define BM_CCM_CSCMR1_USDHC2_CLK_SEL (0x00020000) //!< Bit mask for CCM_CSCMR1_USDHC2_CLK_SEL.
//! @brief Get value of CCM_CSCMR1_USDHC2_CLK_SEL from a register value.
#define BG_CCM_CSCMR1_USDHC2_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_USDHC2_CLK_SEL) >> BP_CCM_CSCMR1_USDHC2_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCMR1_USDHC2_CLK_SEL.
#define BF_CCM_CSCMR1_USDHC2_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_USDHC2_CLK_SEL) & BM_CCM_CSCMR1_USDHC2_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the USDHC2_CLK_SEL field to a new value.
#define BW_CCM_CSCMR1_USDHC2_CLK_SEL(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_USDHC2_CLK_SEL) | BF_CCM_CSCMR1_USDHC2_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field USDHC3_CLK_SEL[18] (RW)
*
* Selector for usdhc3 clock multiplexer
*
* Values:
* - 0 - derive clock from 396M PFD
* - 1 - derive clock from 307M PFD
*/
//@{
#define BP_CCM_CSCMR1_USDHC3_CLK_SEL (18) //!< Bit position for CCM_CSCMR1_USDHC3_CLK_SEL.
#define BM_CCM_CSCMR1_USDHC3_CLK_SEL (0x00040000) //!< Bit mask for CCM_CSCMR1_USDHC3_CLK_SEL.
//! @brief Get value of CCM_CSCMR1_USDHC3_CLK_SEL from a register value.
#define BG_CCM_CSCMR1_USDHC3_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_USDHC3_CLK_SEL) >> BP_CCM_CSCMR1_USDHC3_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCMR1_USDHC3_CLK_SEL.
#define BF_CCM_CSCMR1_USDHC3_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_USDHC3_CLK_SEL) & BM_CCM_CSCMR1_USDHC3_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the USDHC3_CLK_SEL field to a new value.
#define BW_CCM_CSCMR1_USDHC3_CLK_SEL(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_USDHC3_CLK_SEL) | BF_CCM_CSCMR1_USDHC3_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field USDHC4_CLK_SEL[19] (RW)
*
* Selector for usdhc4 clock multiplexer
*
* Values:
* - 0 - derive clock from 396M PFD
* - 1 - derive clock from 307M PFD
*/
//@{
#define BP_CCM_CSCMR1_USDHC4_CLK_SEL (19) //!< Bit position for CCM_CSCMR1_USDHC4_CLK_SEL.
#define BM_CCM_CSCMR1_USDHC4_CLK_SEL (0x00080000) //!< Bit mask for CCM_CSCMR1_USDHC4_CLK_SEL.
//! @brief Get value of CCM_CSCMR1_USDHC4_CLK_SEL from a register value.
#define BG_CCM_CSCMR1_USDHC4_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_USDHC4_CLK_SEL) >> BP_CCM_CSCMR1_USDHC4_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCMR1_USDHC4_CLK_SEL.
#define BF_CCM_CSCMR1_USDHC4_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_USDHC4_CLK_SEL) & BM_CCM_CSCMR1_USDHC4_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the USDHC4_CLK_SEL field to a new value.
#define BW_CCM_CSCMR1_USDHC4_CLK_SEL(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_USDHC4_CLK_SEL) | BF_CCM_CSCMR1_USDHC4_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field ACLK_PODF[22:20] (RW)
*
* Divider for aclk clock root.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 111 - divide by 8 (default)
*/
//@{
#define BP_CCM_CSCMR1_ACLK_PODF (20) //!< Bit position for CCM_CSCMR1_ACLK_PODF.
#define BM_CCM_CSCMR1_ACLK_PODF (0x00700000) //!< Bit mask for CCM_CSCMR1_ACLK_PODF.
//! @brief Get value of CCM_CSCMR1_ACLK_PODF from a register value.
#define BG_CCM_CSCMR1_ACLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_ACLK_PODF) >> BP_CCM_CSCMR1_ACLK_PODF)
//! @brief Format value for bitfield CCM_CSCMR1_ACLK_PODF.
#define BF_CCM_CSCMR1_ACLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_ACLK_PODF) & BM_CCM_CSCMR1_ACLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ACLK_PODF field to a new value.
#define BW_CCM_CSCMR1_ACLK_PODF(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_ACLK_PODF) | BF_CCM_CSCMR1_ACLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field ACLK_EIM_SLOW_PODF[25:23] (RW)
*
* Divider for aclk_eim_slow clock root.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CSCMR1_ACLK_EIM_SLOW_PODF (23) //!< Bit position for CCM_CSCMR1_ACLK_EIM_SLOW_PODF.
#define BM_CCM_CSCMR1_ACLK_EIM_SLOW_PODF (0x03800000) //!< Bit mask for CCM_CSCMR1_ACLK_EIM_SLOW_PODF.
//! @brief Get value of CCM_CSCMR1_ACLK_EIM_SLOW_PODF from a register value.
#define BG_CCM_CSCMR1_ACLK_EIM_SLOW_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_ACLK_EIM_SLOW_PODF) >> BP_CCM_CSCMR1_ACLK_EIM_SLOW_PODF)
//! @brief Format value for bitfield CCM_CSCMR1_ACLK_EIM_SLOW_PODF.
#define BF_CCM_CSCMR1_ACLK_EIM_SLOW_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_ACLK_EIM_SLOW_PODF) & BM_CCM_CSCMR1_ACLK_EIM_SLOW_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ACLK_EIM_SLOW_PODF field to a new value.
#define BW_CCM_CSCMR1_ACLK_EIM_SLOW_PODF(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_ACLK_EIM_SLOW_PODF) | BF_CCM_CSCMR1_ACLK_EIM_SLOW_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field ACLK_SEL[28:27] (RW)
*
* Selector for aclk root clock multiplexer
*
* Values:
* - 00 - derive clock from 396M PFD (default)
* - 01 - derive clock from PLL3
* - 10 - derive clock from AXI clk root
* - 11 - derive clock from 307M PFD
*/
//@{
#define BP_CCM_CSCMR1_ACLK_SEL (27) //!< Bit position for CCM_CSCMR1_ACLK_SEL.
#define BM_CCM_CSCMR1_ACLK_SEL (0x18000000) //!< Bit mask for CCM_CSCMR1_ACLK_SEL.
//! @brief Get value of CCM_CSCMR1_ACLK_SEL from a register value.
#define BG_CCM_CSCMR1_ACLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_ACLK_SEL) >> BP_CCM_CSCMR1_ACLK_SEL)
//! @brief Format value for bitfield CCM_CSCMR1_ACLK_SEL.
#define BF_CCM_CSCMR1_ACLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_ACLK_SEL) & BM_CCM_CSCMR1_ACLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ACLK_SEL field to a new value.
#define BW_CCM_CSCMR1_ACLK_SEL(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_ACLK_SEL) | BF_CCM_CSCMR1_ACLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCMR1, field ACLK_EIM_SLOW_SEL[30:29] (RW)
*
* Selector for aclk_eim_slow root clock multiplexer
*
* Values:
* - 00 - derive clock from AXI clk root (default)
* - 01 - derive clock from PLL3
* - 10 - derive clock from 396M PFD
* - 11 - derive clock from 307M PFD
*/
//@{
#define BP_CCM_CSCMR1_ACLK_EIM_SLOW_SEL (29) //!< Bit position for CCM_CSCMR1_ACLK_EIM_SLOW_SEL.
#define BM_CCM_CSCMR1_ACLK_EIM_SLOW_SEL (0x60000000) //!< Bit mask for CCM_CSCMR1_ACLK_EIM_SLOW_SEL.
//! @brief Get value of CCM_CSCMR1_ACLK_EIM_SLOW_SEL from a register value.
#define BG_CCM_CSCMR1_ACLK_EIM_SLOW_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR1_ACLK_EIM_SLOW_SEL) >> BP_CCM_CSCMR1_ACLK_EIM_SLOW_SEL)
//! @brief Format value for bitfield CCM_CSCMR1_ACLK_EIM_SLOW_SEL.
#define BF_CCM_CSCMR1_ACLK_EIM_SLOW_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR1_ACLK_EIM_SLOW_SEL) & BM_CCM_CSCMR1_ACLK_EIM_SLOW_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ACLK_EIM_SLOW_SEL field to a new value.
#define BW_CCM_CSCMR1_ACLK_EIM_SLOW_SEL(v) (HW_CCM_CSCMR1_WR((HW_CCM_CSCMR1_RD() & ~BM_CCM_CSCMR1_ACLK_EIM_SLOW_SEL) | BF_CCM_CSCMR1_ACLK_EIM_SLOW_SEL(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CSCMR2 - CCM Serial Clock Multiplexer Register 2
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CSCMR2 - CCM Serial Clock Multiplexer Register 2 (RW)
*
* Reset value: 0x02b92f06
*
* The figure below represents the CCM Serial Clock Multiplexer Register 2 (CSCMR2). The CSCMR2
* register contains bits to control the multiplexers that generate the serial clocks. The table
* below provides its field descriptions. Note: Any change on the above multiplexer will have to be
* done while the module that its clock is affected is not functional and the clock is gated. If the
* change will be done during operation of the module, then it is not guaranteed that the modules
* operation will not be harmed.
*/
typedef union _hw_ccm_cscmr2
{
reg32_t U;
struct _hw_ccm_cscmr2_bitfields
{
unsigned RESERVED0 : 2; //!< [1:0] Reserved
unsigned CAN_CLK_PODF : 6; //!< [7:2] Divider for can clock podf.
unsigned RESERVED1 : 2; //!< [9:8] Reserved
unsigned LDB_DI0_IPU_DIV : 1; //!< [10] Control for divider of ldb clock for IPU di0
unsigned LDB_DI1_IPU_DIV : 1; //!< [11] Control for divider of ldb clock for IPU di1
unsigned RESERVED2 : 7; //!< [18:12] Reserved
unsigned ESAI_CLK_SEL : 2; //!< [20:19] Selector for esai clock multiplexer
unsigned RESERVED3 : 11; //!< [31:21] Reserved
} B;
} hw_ccm_cscmr2_t;
#endif
/*!
* @name Constants and macros for entire CCM_CSCMR2 register
*/
//@{
#define HW_CCM_CSCMR2_ADDR (REGS_CCM_BASE + 0x20)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CSCMR2 (*(volatile hw_ccm_cscmr2_t *) HW_CCM_CSCMR2_ADDR)
#define HW_CCM_CSCMR2_RD() (HW_CCM_CSCMR2.U)
#define HW_CCM_CSCMR2_WR(v) (HW_CCM_CSCMR2.U = (v))
#define HW_CCM_CSCMR2_SET(v) (HW_CCM_CSCMR2_WR(HW_CCM_CSCMR2_RD() | (v)))
#define HW_CCM_CSCMR2_CLR(v) (HW_CCM_CSCMR2_WR(HW_CCM_CSCMR2_RD() & ~(v)))
#define HW_CCM_CSCMR2_TOG(v) (HW_CCM_CSCMR2_WR(HW_CCM_CSCMR2_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CSCMR2 bitfields
*/
/*! @name Register CCM_CSCMR2, field CAN_CLK_PODF[7:2] (RW)
*
* Divider for can clock podf.
*
* Values:
* - 000000 - divide by 1
* - 000111 - divide by 8
* - 111111 - divide by 2^6
*/
//@{
#define BP_CCM_CSCMR2_CAN_CLK_PODF (2) //!< Bit position for CCM_CSCMR2_CAN_CLK_PODF.
#define BM_CCM_CSCMR2_CAN_CLK_PODF (0x000000fc) //!< Bit mask for CCM_CSCMR2_CAN_CLK_PODF.
//! @brief Get value of CCM_CSCMR2_CAN_CLK_PODF from a register value.
#define BG_CCM_CSCMR2_CAN_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR2_CAN_CLK_PODF) >> BP_CCM_CSCMR2_CAN_CLK_PODF)
//! @brief Format value for bitfield CCM_CSCMR2_CAN_CLK_PODF.
#define BF_CCM_CSCMR2_CAN_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR2_CAN_CLK_PODF) & BM_CCM_CSCMR2_CAN_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CAN_CLK_PODF field to a new value.
#define BW_CCM_CSCMR2_CAN_CLK_PODF(v) (HW_CCM_CSCMR2_WR((HW_CCM_CSCMR2_RD() & ~BM_CCM_CSCMR2_CAN_CLK_PODF) | BF_CCM_CSCMR2_CAN_CLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCMR2, field LDB_DI0_IPU_DIV[10] (RW)
*
* Control for divider of ldb clock for IPU di0
*
* Values:
* - 0 - divide by 3.5
* - 1 - divide by 7(default)
*/
//@{
#define BP_CCM_CSCMR2_LDB_DI0_IPU_DIV (10) //!< Bit position for CCM_CSCMR2_LDB_DI0_IPU_DIV.
#define BM_CCM_CSCMR2_LDB_DI0_IPU_DIV (0x00000400) //!< Bit mask for CCM_CSCMR2_LDB_DI0_IPU_DIV.
//! @brief Get value of CCM_CSCMR2_LDB_DI0_IPU_DIV from a register value.
#define BG_CCM_CSCMR2_LDB_DI0_IPU_DIV(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR2_LDB_DI0_IPU_DIV) >> BP_CCM_CSCMR2_LDB_DI0_IPU_DIV)
//! @brief Format value for bitfield CCM_CSCMR2_LDB_DI0_IPU_DIV.
#define BF_CCM_CSCMR2_LDB_DI0_IPU_DIV(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR2_LDB_DI0_IPU_DIV) & BM_CCM_CSCMR2_LDB_DI0_IPU_DIV)
#ifndef __LANGUAGE_ASM__
//! @brief Set the LDB_DI0_IPU_DIV field to a new value.
#define BW_CCM_CSCMR2_LDB_DI0_IPU_DIV(v) (HW_CCM_CSCMR2_WR((HW_CCM_CSCMR2_RD() & ~BM_CCM_CSCMR2_LDB_DI0_IPU_DIV) | BF_CCM_CSCMR2_LDB_DI0_IPU_DIV(v)))
#endif
//@}
/*! @name Register CCM_CSCMR2, field LDB_DI1_IPU_DIV[11] (RW)
*
* Control for divider of ldb clock for IPU di1
*
* Values:
* - 0 - divide by 3.5
* - 1 - divide by 7(default)
*/
//@{
#define BP_CCM_CSCMR2_LDB_DI1_IPU_DIV (11) //!< Bit position for CCM_CSCMR2_LDB_DI1_IPU_DIV.
#define BM_CCM_CSCMR2_LDB_DI1_IPU_DIV (0x00000800) //!< Bit mask for CCM_CSCMR2_LDB_DI1_IPU_DIV.
//! @brief Get value of CCM_CSCMR2_LDB_DI1_IPU_DIV from a register value.
#define BG_CCM_CSCMR2_LDB_DI1_IPU_DIV(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR2_LDB_DI1_IPU_DIV) >> BP_CCM_CSCMR2_LDB_DI1_IPU_DIV)
//! @brief Format value for bitfield CCM_CSCMR2_LDB_DI1_IPU_DIV.
#define BF_CCM_CSCMR2_LDB_DI1_IPU_DIV(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR2_LDB_DI1_IPU_DIV) & BM_CCM_CSCMR2_LDB_DI1_IPU_DIV)
#ifndef __LANGUAGE_ASM__
//! @brief Set the LDB_DI1_IPU_DIV field to a new value.
#define BW_CCM_CSCMR2_LDB_DI1_IPU_DIV(v) (HW_CCM_CSCMR2_WR((HW_CCM_CSCMR2_RD() & ~BM_CCM_CSCMR2_LDB_DI1_IPU_DIV) | BF_CCM_CSCMR2_LDB_DI1_IPU_DIV(v)))
#endif
//@}
/*! @name Register CCM_CSCMR2, field ESAI_CLK_SEL[20:19] (RW)
*
* Selector for esai clock multiplexer
*
* Values:
* - 00 - derive clock from pll4 divided clock
* - 01 - derive clock from 508M PFD clock
* - 11 - derive clock from pll3 clock
*/
//@{
#define BP_CCM_CSCMR2_ESAI_CLK_SEL (19) //!< Bit position for CCM_CSCMR2_ESAI_CLK_SEL.
#define BM_CCM_CSCMR2_ESAI_CLK_SEL (0x00180000) //!< Bit mask for CCM_CSCMR2_ESAI_CLK_SEL.
//! @brief Get value of CCM_CSCMR2_ESAI_CLK_SEL from a register value.
#define BG_CCM_CSCMR2_ESAI_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCMR2_ESAI_CLK_SEL) >> BP_CCM_CSCMR2_ESAI_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCMR2_ESAI_CLK_SEL.
#define BF_CCM_CSCMR2_ESAI_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCMR2_ESAI_CLK_SEL) & BM_CCM_CSCMR2_ESAI_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ESAI_CLK_SEL field to a new value.
#define BW_CCM_CSCMR2_ESAI_CLK_SEL(v) (HW_CCM_CSCMR2_WR((HW_CCM_CSCMR2_RD() & ~BM_CCM_CSCMR2_ESAI_CLK_SEL) | BF_CCM_CSCMR2_ESAI_CLK_SEL(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CSCDR1 - CCM Serial Clock Divider Register 1
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CSCDR1 - CCM Serial Clock Divider Register 1 (RW)
*
* Reset value: 0x00490b00
*
* The figure below represents the CCM Serial Clock Divider Register 1 (CSCDR1). The CSCDR1 register
* contains bits to control the clock generation sub module dividers. The table below provides its
* field descriptions. Note: Any change on the above dividers will have to be done while the module
* that its clock is affected is not functional and the affected clock is gated. If the change will
* be done during operation of the module, then it is not guaranteed that the modules operation will
* not be harmed.
*/
typedef union _hw_ccm_cscdr1
{
reg32_t U;
struct _hw_ccm_cscdr1_bitfields
{
unsigned UART_CLK_PODF : 6; //!< [5:0] Divider for uart clock podf.
unsigned RESERVED0 : 5; //!< [10:6] Reserved.
unsigned USDHC1_PODF : 3; //!< [13:11] Divider for usdhc1 clock podf.
unsigned RESERVED1 : 2; //!< [15:14] Reserved
unsigned USDHC2_PODF : 3; //!< [18:16] Divider for usdhc2 clock.
unsigned USDHC3_PODF : 3; //!< [21:19] Divider for usdhc3 clock podf.
unsigned USDHC4_PODF : 3; //!< [24:22] Divider for esdhc4 clock pred.
unsigned VPU_AXI_PODF : 3; //!< [27:25] Divider for vpu axi clock podf.
unsigned RESERVED2 : 4; //!< [31:28] Reserved
} B;
} hw_ccm_cscdr1_t;
#endif
/*!
* @name Constants and macros for entire CCM_CSCDR1 register
*/
//@{
#define HW_CCM_CSCDR1_ADDR (REGS_CCM_BASE + 0x24)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CSCDR1 (*(volatile hw_ccm_cscdr1_t *) HW_CCM_CSCDR1_ADDR)
#define HW_CCM_CSCDR1_RD() (HW_CCM_CSCDR1.U)
#define HW_CCM_CSCDR1_WR(v) (HW_CCM_CSCDR1.U = (v))
#define HW_CCM_CSCDR1_SET(v) (HW_CCM_CSCDR1_WR(HW_CCM_CSCDR1_RD() | (v)))
#define HW_CCM_CSCDR1_CLR(v) (HW_CCM_CSCDR1_WR(HW_CCM_CSCDR1_RD() & ~(v)))
#define HW_CCM_CSCDR1_TOG(v) (HW_CCM_CSCDR1_WR(HW_CCM_CSCDR1_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CSCDR1 bitfields
*/
/*! @name Register CCM_CSCDR1, field UART_CLK_PODF[5:0] (RW)
*
* Divider for uart clock podf.
*
* Values:
* - 000000 - divide by 1 (default)
* - 111111 - divide by 2^6
*/
//@{
#define BP_CCM_CSCDR1_UART_CLK_PODF (0) //!< Bit position for CCM_CSCDR1_UART_CLK_PODF.
#define BM_CCM_CSCDR1_UART_CLK_PODF (0x0000003f) //!< Bit mask for CCM_CSCDR1_UART_CLK_PODF.
//! @brief Get value of CCM_CSCDR1_UART_CLK_PODF from a register value.
#define BG_CCM_CSCDR1_UART_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR1_UART_CLK_PODF) >> BP_CCM_CSCDR1_UART_CLK_PODF)
//! @brief Format value for bitfield CCM_CSCDR1_UART_CLK_PODF.
#define BF_CCM_CSCDR1_UART_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR1_UART_CLK_PODF) & BM_CCM_CSCDR1_UART_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the UART_CLK_PODF field to a new value.
#define BW_CCM_CSCDR1_UART_CLK_PODF(v) (HW_CCM_CSCDR1_WR((HW_CCM_CSCDR1_RD() & ~BM_CCM_CSCDR1_UART_CLK_PODF) | BF_CCM_CSCDR1_UART_CLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCDR1, field USDHC1_PODF[13:11] (RW)
*
* Divider for usdhc1 clock podf. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CSCDR1_USDHC1_PODF (11) //!< Bit position for CCM_CSCDR1_USDHC1_PODF.
#define BM_CCM_CSCDR1_USDHC1_PODF (0x00003800) //!< Bit mask for CCM_CSCDR1_USDHC1_PODF.
//! @brief Get value of CCM_CSCDR1_USDHC1_PODF from a register value.
#define BG_CCM_CSCDR1_USDHC1_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR1_USDHC1_PODF) >> BP_CCM_CSCDR1_USDHC1_PODF)
//! @brief Format value for bitfield CCM_CSCDR1_USDHC1_PODF.
#define BF_CCM_CSCDR1_USDHC1_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR1_USDHC1_PODF) & BM_CCM_CSCDR1_USDHC1_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the USDHC1_PODF field to a new value.
#define BW_CCM_CSCDR1_USDHC1_PODF(v) (HW_CCM_CSCDR1_WR((HW_CCM_CSCDR1_RD() & ~BM_CCM_CSCDR1_USDHC1_PODF) | BF_CCM_CSCDR1_USDHC1_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCDR1, field USDHC2_PODF[18:16] (RW)
*
* Divider for usdhc2 clock. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CSCDR1_USDHC2_PODF (16) //!< Bit position for CCM_CSCDR1_USDHC2_PODF.
#define BM_CCM_CSCDR1_USDHC2_PODF (0x00070000) //!< Bit mask for CCM_CSCDR1_USDHC2_PODF.
//! @brief Get value of CCM_CSCDR1_USDHC2_PODF from a register value.
#define BG_CCM_CSCDR1_USDHC2_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR1_USDHC2_PODF) >> BP_CCM_CSCDR1_USDHC2_PODF)
//! @brief Format value for bitfield CCM_CSCDR1_USDHC2_PODF.
#define BF_CCM_CSCDR1_USDHC2_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR1_USDHC2_PODF) & BM_CCM_CSCDR1_USDHC2_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the USDHC2_PODF field to a new value.
#define BW_CCM_CSCDR1_USDHC2_PODF(v) (HW_CCM_CSCDR1_WR((HW_CCM_CSCDR1_RD() & ~BM_CCM_CSCDR1_USDHC2_PODF) | BF_CCM_CSCDR1_USDHC2_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCDR1, field USDHC3_PODF[21:19] (RW)
*
* Divider for usdhc3 clock podf. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CSCDR1_USDHC3_PODF (19) //!< Bit position for CCM_CSCDR1_USDHC3_PODF.
#define BM_CCM_CSCDR1_USDHC3_PODF (0x00380000) //!< Bit mask for CCM_CSCDR1_USDHC3_PODF.
//! @brief Get value of CCM_CSCDR1_USDHC3_PODF from a register value.
#define BG_CCM_CSCDR1_USDHC3_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR1_USDHC3_PODF) >> BP_CCM_CSCDR1_USDHC3_PODF)
//! @brief Format value for bitfield CCM_CSCDR1_USDHC3_PODF.
#define BF_CCM_CSCDR1_USDHC3_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR1_USDHC3_PODF) & BM_CCM_CSCDR1_USDHC3_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the USDHC3_PODF field to a new value.
#define BW_CCM_CSCDR1_USDHC3_PODF(v) (HW_CCM_CSCDR1_WR((HW_CCM_CSCDR1_RD() & ~BM_CCM_CSCDR1_USDHC3_PODF) | BF_CCM_CSCDR1_USDHC3_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCDR1, field USDHC4_PODF[24:22] (RW)
*
* Divider for esdhc4 clock pred. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CSCDR1_USDHC4_PODF (22) //!< Bit position for CCM_CSCDR1_USDHC4_PODF.
#define BM_CCM_CSCDR1_USDHC4_PODF (0x01c00000) //!< Bit mask for CCM_CSCDR1_USDHC4_PODF.
//! @brief Get value of CCM_CSCDR1_USDHC4_PODF from a register value.
#define BG_CCM_CSCDR1_USDHC4_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR1_USDHC4_PODF) >> BP_CCM_CSCDR1_USDHC4_PODF)
//! @brief Format value for bitfield CCM_CSCDR1_USDHC4_PODF.
#define BF_CCM_CSCDR1_USDHC4_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR1_USDHC4_PODF) & BM_CCM_CSCDR1_USDHC4_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the USDHC4_PODF field to a new value.
#define BW_CCM_CSCDR1_USDHC4_PODF(v) (HW_CCM_CSCDR1_WR((HW_CCM_CSCDR1_RD() & ~BM_CCM_CSCDR1_USDHC4_PODF) | BF_CCM_CSCDR1_USDHC4_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCDR1, field VPU_AXI_PODF[27:25] (RW)
*
* Divider for vpu axi clock podf. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1 (default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CSCDR1_VPU_AXI_PODF (25) //!< Bit position for CCM_CSCDR1_VPU_AXI_PODF.
#define BM_CCM_CSCDR1_VPU_AXI_PODF (0x0e000000) //!< Bit mask for CCM_CSCDR1_VPU_AXI_PODF.
//! @brief Get value of CCM_CSCDR1_VPU_AXI_PODF from a register value.
#define BG_CCM_CSCDR1_VPU_AXI_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR1_VPU_AXI_PODF) >> BP_CCM_CSCDR1_VPU_AXI_PODF)
//! @brief Format value for bitfield CCM_CSCDR1_VPU_AXI_PODF.
#define BF_CCM_CSCDR1_VPU_AXI_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR1_VPU_AXI_PODF) & BM_CCM_CSCDR1_VPU_AXI_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the VPU_AXI_PODF field to a new value.
#define BW_CCM_CSCDR1_VPU_AXI_PODF(v) (HW_CCM_CSCDR1_WR((HW_CCM_CSCDR1_RD() & ~BM_CCM_CSCDR1_VPU_AXI_PODF) | BF_CCM_CSCDR1_VPU_AXI_PODF(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CS1CDR - CCM SSI1 Clock Divider Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CS1CDR - CCM SSI1 Clock Divider Register (RW)
*
* Reset value: 0x0ec102c1
*
* The figure below represents the CCM SSI1, SSI3, ESAI Clock Divider Register (CS1CDR). The CS1CDR
* register contains bits to control the ssi1 clock generation dividers. The table below provides
* its field descriptions.
*/
typedef union _hw_ccm_cs1cdr
{
reg32_t U;
struct _hw_ccm_cs1cdr_bitfields
{
unsigned SSI1_CLK_PODF : 6; //!< [5:0] Divider for ssi1 clock podf.
unsigned SSI1_CLK_PRED : 3; //!< [8:6] Divider for ssi1 clock pred.
unsigned ESAI_CLK_PRED : 3; //!< [11:9] Divider for esai clock pred.
unsigned RESERVED0 : 4; //!< [15:12] Reserved
unsigned SSI3_CLK_PODF : 6; //!< [21:16] Divider for ssi3 clock podf.
unsigned SSI3_CLK_PRED : 3; //!< [24:22] Divider for ssi3 clock pred.
unsigned ESAI_CLK_PODF : 3; //!< [27:25] Divider for esai clock podf.
unsigned RESERVED1 : 4; //!< [31:28] Reserved
} B;
} hw_ccm_cs1cdr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CS1CDR register
*/
//@{
#define HW_CCM_CS1CDR_ADDR (REGS_CCM_BASE + 0x28)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CS1CDR (*(volatile hw_ccm_cs1cdr_t *) HW_CCM_CS1CDR_ADDR)
#define HW_CCM_CS1CDR_RD() (HW_CCM_CS1CDR.U)
#define HW_CCM_CS1CDR_WR(v) (HW_CCM_CS1CDR.U = (v))
#define HW_CCM_CS1CDR_SET(v) (HW_CCM_CS1CDR_WR(HW_CCM_CS1CDR_RD() | (v)))
#define HW_CCM_CS1CDR_CLR(v) (HW_CCM_CS1CDR_WR(HW_CCM_CS1CDR_RD() & ~(v)))
#define HW_CCM_CS1CDR_TOG(v) (HW_CCM_CS1CDR_WR(HW_CCM_CS1CDR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CS1CDR bitfields
*/
/*! @name Register CCM_CS1CDR, field SSI1_CLK_PODF[5:0] (RW)
*
* Divider for ssi1 clock podf. The input clock to this divider should be lower than 300Mhz, the
* predivider can be used to achieve this.
*
* Values:
* - 000000 - divide by 1
* - 111111 - divide by 2^6
*/
//@{
#define BP_CCM_CS1CDR_SSI1_CLK_PODF (0) //!< Bit position for CCM_CS1CDR_SSI1_CLK_PODF.
#define BM_CCM_CS1CDR_SSI1_CLK_PODF (0x0000003f) //!< Bit mask for CCM_CS1CDR_SSI1_CLK_PODF.
//! @brief Get value of CCM_CS1CDR_SSI1_CLK_PODF from a register value.
#define BG_CCM_CS1CDR_SSI1_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS1CDR_SSI1_CLK_PODF) >> BP_CCM_CS1CDR_SSI1_CLK_PODF)
//! @brief Format value for bitfield CCM_CS1CDR_SSI1_CLK_PODF.
#define BF_CCM_CS1CDR_SSI1_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS1CDR_SSI1_CLK_PODF) & BM_CCM_CS1CDR_SSI1_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SSI1_CLK_PODF field to a new value.
#define BW_CCM_CS1CDR_SSI1_CLK_PODF(v) (HW_CCM_CS1CDR_WR((HW_CCM_CS1CDR_RD() & ~BM_CCM_CS1CDR_SSI1_CLK_PODF) | BF_CCM_CS1CDR_SSI1_CLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CS1CDR, field SSI1_CLK_PRED[8:6] (RW)
*
* Divider for ssi1 clock pred.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CS1CDR_SSI1_CLK_PRED (6) //!< Bit position for CCM_CS1CDR_SSI1_CLK_PRED.
#define BM_CCM_CS1CDR_SSI1_CLK_PRED (0x000001c0) //!< Bit mask for CCM_CS1CDR_SSI1_CLK_PRED.
//! @brief Get value of CCM_CS1CDR_SSI1_CLK_PRED from a register value.
#define BG_CCM_CS1CDR_SSI1_CLK_PRED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS1CDR_SSI1_CLK_PRED) >> BP_CCM_CS1CDR_SSI1_CLK_PRED)
//! @brief Format value for bitfield CCM_CS1CDR_SSI1_CLK_PRED.
#define BF_CCM_CS1CDR_SSI1_CLK_PRED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS1CDR_SSI1_CLK_PRED) & BM_CCM_CS1CDR_SSI1_CLK_PRED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SSI1_CLK_PRED field to a new value.
#define BW_CCM_CS1CDR_SSI1_CLK_PRED(v) (HW_CCM_CS1CDR_WR((HW_CCM_CS1CDR_RD() & ~BM_CCM_CS1CDR_SSI1_CLK_PRED) | BF_CCM_CS1CDR_SSI1_CLK_PRED(v)))
#endif
//@}
/*! @name Register CCM_CS1CDR, field ESAI_CLK_PRED[11:9] (RW)
*
* Divider for esai clock pred.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CS1CDR_ESAI_CLK_PRED (9) //!< Bit position for CCM_CS1CDR_ESAI_CLK_PRED.
#define BM_CCM_CS1CDR_ESAI_CLK_PRED (0x00000e00) //!< Bit mask for CCM_CS1CDR_ESAI_CLK_PRED.
//! @brief Get value of CCM_CS1CDR_ESAI_CLK_PRED from a register value.
#define BG_CCM_CS1CDR_ESAI_CLK_PRED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS1CDR_ESAI_CLK_PRED) >> BP_CCM_CS1CDR_ESAI_CLK_PRED)
//! @brief Format value for bitfield CCM_CS1CDR_ESAI_CLK_PRED.
#define BF_CCM_CS1CDR_ESAI_CLK_PRED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS1CDR_ESAI_CLK_PRED) & BM_CCM_CS1CDR_ESAI_CLK_PRED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ESAI_CLK_PRED field to a new value.
#define BW_CCM_CS1CDR_ESAI_CLK_PRED(v) (HW_CCM_CS1CDR_WR((HW_CCM_CS1CDR_RD() & ~BM_CCM_CS1CDR_ESAI_CLK_PRED) | BF_CCM_CS1CDR_ESAI_CLK_PRED(v)))
#endif
//@}
/*! @name Register CCM_CS1CDR, field SSI3_CLK_PODF[21:16] (RW)
*
* Divider for ssi3 clock podf. The input clock to this divider should be lower than 300Mhz, the
* predivider can be used to achieve this.
*
* Values:
* - 000000 - divide by 1
* - 111111 - divide by 2^6
*/
//@{
#define BP_CCM_CS1CDR_SSI3_CLK_PODF (16) //!< Bit position for CCM_CS1CDR_SSI3_CLK_PODF.
#define BM_CCM_CS1CDR_SSI3_CLK_PODF (0x003f0000) //!< Bit mask for CCM_CS1CDR_SSI3_CLK_PODF.
//! @brief Get value of CCM_CS1CDR_SSI3_CLK_PODF from a register value.
#define BG_CCM_CS1CDR_SSI3_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS1CDR_SSI3_CLK_PODF) >> BP_CCM_CS1CDR_SSI3_CLK_PODF)
//! @brief Format value for bitfield CCM_CS1CDR_SSI3_CLK_PODF.
#define BF_CCM_CS1CDR_SSI3_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS1CDR_SSI3_CLK_PODF) & BM_CCM_CS1CDR_SSI3_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SSI3_CLK_PODF field to a new value.
#define BW_CCM_CS1CDR_SSI3_CLK_PODF(v) (HW_CCM_CS1CDR_WR((HW_CCM_CS1CDR_RD() & ~BM_CCM_CS1CDR_SSI3_CLK_PODF) | BF_CCM_CS1CDR_SSI3_CLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CS1CDR, field SSI3_CLK_PRED[24:22] (RW)
*
* Divider for ssi3 clock pred.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CS1CDR_SSI3_CLK_PRED (22) //!< Bit position for CCM_CS1CDR_SSI3_CLK_PRED.
#define BM_CCM_CS1CDR_SSI3_CLK_PRED (0x01c00000) //!< Bit mask for CCM_CS1CDR_SSI3_CLK_PRED.
//! @brief Get value of CCM_CS1CDR_SSI3_CLK_PRED from a register value.
#define BG_CCM_CS1CDR_SSI3_CLK_PRED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS1CDR_SSI3_CLK_PRED) >> BP_CCM_CS1CDR_SSI3_CLK_PRED)
//! @brief Format value for bitfield CCM_CS1CDR_SSI3_CLK_PRED.
#define BF_CCM_CS1CDR_SSI3_CLK_PRED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS1CDR_SSI3_CLK_PRED) & BM_CCM_CS1CDR_SSI3_CLK_PRED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SSI3_CLK_PRED field to a new value.
#define BW_CCM_CS1CDR_SSI3_CLK_PRED(v) (HW_CCM_CS1CDR_WR((HW_CCM_CS1CDR_RD() & ~BM_CCM_CS1CDR_SSI3_CLK_PRED) | BF_CCM_CS1CDR_SSI3_CLK_PRED(v)))
#endif
//@}
/*! @name Register CCM_CS1CDR, field ESAI_CLK_PODF[27:25] (RW)
*
* Divider for esai clock podf.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CS1CDR_ESAI_CLK_PODF (25) //!< Bit position for CCM_CS1CDR_ESAI_CLK_PODF.
#define BM_CCM_CS1CDR_ESAI_CLK_PODF (0x0e000000) //!< Bit mask for CCM_CS1CDR_ESAI_CLK_PODF.
//! @brief Get value of CCM_CS1CDR_ESAI_CLK_PODF from a register value.
#define BG_CCM_CS1CDR_ESAI_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS1CDR_ESAI_CLK_PODF) >> BP_CCM_CS1CDR_ESAI_CLK_PODF)
//! @brief Format value for bitfield CCM_CS1CDR_ESAI_CLK_PODF.
#define BF_CCM_CS1CDR_ESAI_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS1CDR_ESAI_CLK_PODF) & BM_CCM_CS1CDR_ESAI_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ESAI_CLK_PODF field to a new value.
#define BW_CCM_CS1CDR_ESAI_CLK_PODF(v) (HW_CCM_CS1CDR_WR((HW_CCM_CS1CDR_RD() & ~BM_CCM_CS1CDR_ESAI_CLK_PODF) | BF_CCM_CS1CDR_ESAI_CLK_PODF(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CS2CDR - CCM SSI2 Clock Divider Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CS2CDR - CCM SSI2 Clock Divider Register (RW)
*
* Reset value: 0x000736c1
*
* The figure below represents the CCM SSI2, LDB Clock Divider Register (CS2CDR). The CS2CDR
* register contains bits to control the ssi2 clock generation dividers, and ldb serial clocks
* select. The table below provides its field descriptions.
*/
typedef union _hw_ccm_cs2cdr
{
reg32_t U;
struct _hw_ccm_cs2cdr_bitfields
{
unsigned SSI2_CLK_PODF : 6; //!< [5:0] Divider for ssi2 clock podf.
unsigned SSI2_CLK_PRED : 3; //!< [8:6] Divider for ssi2 clock pred.
unsigned LDB_DI0_CLK_SEL : 3; //!< [11:9] Selector for ldb_di1 clock multiplexer
unsigned LDB_DI1_CLK_SEL : 3; //!< [14:12] Selector for ldb_di1 clock multiplexer
unsigned RESERVED0 : 1; //!< [15] Reserved
unsigned ENFC_CLK_SEL : 2; //!< [17:16] Selector for enfc clock multiplexer
unsigned ENFC_CLK_PRED : 3; //!< [20:18] Divider for enfc clock pred divider.
unsigned ENFC_CLK_PODF : 6; //!< [26:21] Divider for enfc clock divider.
unsigned RESERVED1 : 5; //!< [31:27] Reserved
} B;
} hw_ccm_cs2cdr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CS2CDR register
*/
//@{
#define HW_CCM_CS2CDR_ADDR (REGS_CCM_BASE + 0x2c)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CS2CDR (*(volatile hw_ccm_cs2cdr_t *) HW_CCM_CS2CDR_ADDR)
#define HW_CCM_CS2CDR_RD() (HW_CCM_CS2CDR.U)
#define HW_CCM_CS2CDR_WR(v) (HW_CCM_CS2CDR.U = (v))
#define HW_CCM_CS2CDR_SET(v) (HW_CCM_CS2CDR_WR(HW_CCM_CS2CDR_RD() | (v)))
#define HW_CCM_CS2CDR_CLR(v) (HW_CCM_CS2CDR_WR(HW_CCM_CS2CDR_RD() & ~(v)))
#define HW_CCM_CS2CDR_TOG(v) (HW_CCM_CS2CDR_WR(HW_CCM_CS2CDR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CS2CDR bitfields
*/
/*! @name Register CCM_CS2CDR, field SSI2_CLK_PODF[5:0] (RW)
*
* Divider for ssi2 clock podf. The input clock to this divider should be lower than 300Mhz, the
* predivider can be used to achieve this.
*
* Values:
* - 000000 - divide by 1
* - 111111 - divide by 2^6
*/
//@{
#define BP_CCM_CS2CDR_SSI2_CLK_PODF (0) //!< Bit position for CCM_CS2CDR_SSI2_CLK_PODF.
#define BM_CCM_CS2CDR_SSI2_CLK_PODF (0x0000003f) //!< Bit mask for CCM_CS2CDR_SSI2_CLK_PODF.
//! @brief Get value of CCM_CS2CDR_SSI2_CLK_PODF from a register value.
#define BG_CCM_CS2CDR_SSI2_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS2CDR_SSI2_CLK_PODF) >> BP_CCM_CS2CDR_SSI2_CLK_PODF)
//! @brief Format value for bitfield CCM_CS2CDR_SSI2_CLK_PODF.
#define BF_CCM_CS2CDR_SSI2_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS2CDR_SSI2_CLK_PODF) & BM_CCM_CS2CDR_SSI2_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SSI2_CLK_PODF field to a new value.
#define BW_CCM_CS2CDR_SSI2_CLK_PODF(v) (HW_CCM_CS2CDR_WR((HW_CCM_CS2CDR_RD() & ~BM_CCM_CS2CDR_SSI2_CLK_PODF) | BF_CCM_CS2CDR_SSI2_CLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CS2CDR, field SSI2_CLK_PRED[8:6] (RW)
*
* Divider for ssi2 clock pred.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CS2CDR_SSI2_CLK_PRED (6) //!< Bit position for CCM_CS2CDR_SSI2_CLK_PRED.
#define BM_CCM_CS2CDR_SSI2_CLK_PRED (0x000001c0) //!< Bit mask for CCM_CS2CDR_SSI2_CLK_PRED.
//! @brief Get value of CCM_CS2CDR_SSI2_CLK_PRED from a register value.
#define BG_CCM_CS2CDR_SSI2_CLK_PRED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS2CDR_SSI2_CLK_PRED) >> BP_CCM_CS2CDR_SSI2_CLK_PRED)
//! @brief Format value for bitfield CCM_CS2CDR_SSI2_CLK_PRED.
#define BF_CCM_CS2CDR_SSI2_CLK_PRED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS2CDR_SSI2_CLK_PRED) & BM_CCM_CS2CDR_SSI2_CLK_PRED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SSI2_CLK_PRED field to a new value.
#define BW_CCM_CS2CDR_SSI2_CLK_PRED(v) (HW_CCM_CS2CDR_WR((HW_CCM_CS2CDR_RD() & ~BM_CCM_CS2CDR_SSI2_CLK_PRED) | BF_CCM_CS2CDR_SSI2_CLK_PRED(v)))
#endif
//@}
/*! @name Register CCM_CS2CDR, field LDB_DI0_CLK_SEL[11:9] (RW)
*
* Selector for ldb_di1 clock multiplexer
*
* Values:
* - 000 - pll5 clock
* - 001 - pll2 307M PFD (default)
* - 010 - pll2 396M PFD
* - 011 - MMDC_CH1 clock
* - 100 - pll3 clock
* - 101 - 111 Resrticted
*/
//@{
#define BP_CCM_CS2CDR_LDB_DI0_CLK_SEL (9) //!< Bit position for CCM_CS2CDR_LDB_DI0_CLK_SEL.
#define BM_CCM_CS2CDR_LDB_DI0_CLK_SEL (0x00000e00) //!< Bit mask for CCM_CS2CDR_LDB_DI0_CLK_SEL.
//! @brief Get value of CCM_CS2CDR_LDB_DI0_CLK_SEL from a register value.
#define BG_CCM_CS2CDR_LDB_DI0_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS2CDR_LDB_DI0_CLK_SEL) >> BP_CCM_CS2CDR_LDB_DI0_CLK_SEL)
//! @brief Format value for bitfield CCM_CS2CDR_LDB_DI0_CLK_SEL.
#define BF_CCM_CS2CDR_LDB_DI0_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS2CDR_LDB_DI0_CLK_SEL) & BM_CCM_CS2CDR_LDB_DI0_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the LDB_DI0_CLK_SEL field to a new value.
#define BW_CCM_CS2CDR_LDB_DI0_CLK_SEL(v) (HW_CCM_CS2CDR_WR((HW_CCM_CS2CDR_RD() & ~BM_CCM_CS2CDR_LDB_DI0_CLK_SEL) | BF_CCM_CS2CDR_LDB_DI0_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CS2CDR, field LDB_DI1_CLK_SEL[14:12] (RW)
*
* Selector for ldb_di1 clock multiplexer
*
* Values:
* - 000 - pll5 clock
* - 001 - pll2 307M PFD (default)
* - 010 - pll2 396M PFD
* - 011 - MMDC_CH1 clock
* - 100 - pll3 clock
* - 101 - 111 Resrticted
*/
//@{
#define BP_CCM_CS2CDR_LDB_DI1_CLK_SEL (12) //!< Bit position for CCM_CS2CDR_LDB_DI1_CLK_SEL.
#define BM_CCM_CS2CDR_LDB_DI1_CLK_SEL (0x00007000) //!< Bit mask for CCM_CS2CDR_LDB_DI1_CLK_SEL.
//! @brief Get value of CCM_CS2CDR_LDB_DI1_CLK_SEL from a register value.
#define BG_CCM_CS2CDR_LDB_DI1_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS2CDR_LDB_DI1_CLK_SEL) >> BP_CCM_CS2CDR_LDB_DI1_CLK_SEL)
//! @brief Format value for bitfield CCM_CS2CDR_LDB_DI1_CLK_SEL.
#define BF_CCM_CS2CDR_LDB_DI1_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS2CDR_LDB_DI1_CLK_SEL) & BM_CCM_CS2CDR_LDB_DI1_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the LDB_DI1_CLK_SEL field to a new value.
#define BW_CCM_CS2CDR_LDB_DI1_CLK_SEL(v) (HW_CCM_CS2CDR_WR((HW_CCM_CS2CDR_RD() & ~BM_CCM_CS2CDR_LDB_DI1_CLK_SEL) | BF_CCM_CS2CDR_LDB_DI1_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CS2CDR, field ENFC_CLK_SEL[17:16] (RW)
*
* Selector for enfc clock multiplexer
*
* Values:
* - 00 - pll2 307M PDF (default)
* - 01 - pll2 clock
* - 10 - pll3 clock
* - 11 - pll2 396M PFD
*/
//@{
#define BP_CCM_CS2CDR_ENFC_CLK_SEL (16) //!< Bit position for CCM_CS2CDR_ENFC_CLK_SEL.
#define BM_CCM_CS2CDR_ENFC_CLK_SEL (0x00030000) //!< Bit mask for CCM_CS2CDR_ENFC_CLK_SEL.
//! @brief Get value of CCM_CS2CDR_ENFC_CLK_SEL from a register value.
#define BG_CCM_CS2CDR_ENFC_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS2CDR_ENFC_CLK_SEL) >> BP_CCM_CS2CDR_ENFC_CLK_SEL)
//! @brief Format value for bitfield CCM_CS2CDR_ENFC_CLK_SEL.
#define BF_CCM_CS2CDR_ENFC_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS2CDR_ENFC_CLK_SEL) & BM_CCM_CS2CDR_ENFC_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ENFC_CLK_SEL field to a new value.
#define BW_CCM_CS2CDR_ENFC_CLK_SEL(v) (HW_CCM_CS2CDR_WR((HW_CCM_CS2CDR_RD() & ~BM_CCM_CS2CDR_ENFC_CLK_SEL) | BF_CCM_CS2CDR_ENFC_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CS2CDR, field ENFC_CLK_PRED[20:18] (RW)
*
* Divider for enfc clock pred divider.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CS2CDR_ENFC_CLK_PRED (18) //!< Bit position for CCM_CS2CDR_ENFC_CLK_PRED.
#define BM_CCM_CS2CDR_ENFC_CLK_PRED (0x001c0000) //!< Bit mask for CCM_CS2CDR_ENFC_CLK_PRED.
//! @brief Get value of CCM_CS2CDR_ENFC_CLK_PRED from a register value.
#define BG_CCM_CS2CDR_ENFC_CLK_PRED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS2CDR_ENFC_CLK_PRED) >> BP_CCM_CS2CDR_ENFC_CLK_PRED)
//! @brief Format value for bitfield CCM_CS2CDR_ENFC_CLK_PRED.
#define BF_CCM_CS2CDR_ENFC_CLK_PRED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS2CDR_ENFC_CLK_PRED) & BM_CCM_CS2CDR_ENFC_CLK_PRED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ENFC_CLK_PRED field to a new value.
#define BW_CCM_CS2CDR_ENFC_CLK_PRED(v) (HW_CCM_CS2CDR_WR((HW_CCM_CS2CDR_RD() & ~BM_CCM_CS2CDR_ENFC_CLK_PRED) | BF_CCM_CS2CDR_ENFC_CLK_PRED(v)))
#endif
//@}
/*! @name Register CCM_CS2CDR, field ENFC_CLK_PODF[26:21] (RW)
*
* Divider for enfc clock divider.
*
* Values:
* - 000000 - divide by 1
* - 000001 - divide by 2 (default)
* - 111111 - divide by 2^6
*/
//@{
#define BP_CCM_CS2CDR_ENFC_CLK_PODF (21) //!< Bit position for CCM_CS2CDR_ENFC_CLK_PODF.
#define BM_CCM_CS2CDR_ENFC_CLK_PODF (0x07e00000) //!< Bit mask for CCM_CS2CDR_ENFC_CLK_PODF.
//! @brief Get value of CCM_CS2CDR_ENFC_CLK_PODF from a register value.
#define BG_CCM_CS2CDR_ENFC_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CS2CDR_ENFC_CLK_PODF) >> BP_CCM_CS2CDR_ENFC_CLK_PODF)
//! @brief Format value for bitfield CCM_CS2CDR_ENFC_CLK_PODF.
#define BF_CCM_CS2CDR_ENFC_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CS2CDR_ENFC_CLK_PODF) & BM_CCM_CS2CDR_ENFC_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ENFC_CLK_PODF field to a new value.
#define BW_CCM_CS2CDR_ENFC_CLK_PODF(v) (HW_CCM_CS2CDR_WR((HW_CCM_CS2CDR_RD() & ~BM_CCM_CS2CDR_ENFC_CLK_PODF) | BF_CCM_CS2CDR_ENFC_CLK_PODF(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CDCDR - CCM D1 Clock Divider Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CDCDR - CCM D1 Clock Divider Register (RW)
*
* Reset value: 0x33f71f92
*
* The figure below represents the CCM DI Clock Divider Register (CDCDR). The table below provides
* its field descriptions.
*/
typedef union _hw_ccm_cdcdr
{
reg32_t U;
struct _hw_ccm_cdcdr_bitfields
{
unsigned RESERVED0 : 7; //!< [6:0] Reserved
unsigned SPDIF1_CLK_SEL : 2; //!< [8:7] Selector for spdif1 clock multiplexer
unsigned SPDIF1_CLK_PODF : 3; //!< [11:9] Divider for spdif1 clock podf.
unsigned SPDIF1_CLK_PRED : 3; //!< [14:12] Divider for spdif1 clock pred.
unsigned RESERVED1 : 5; //!< [19:15] Reserved.
unsigned SPDIF0_CLK_SEL : 2; //!< [21:20] Selector for spdif0 clock multiplexer
unsigned SPDIF0_CLK_PODF : 3; //!< [24:22] Divider for spdif0 clock podf.
unsigned SPDIF0_CLK_PRED : 3; //!< [27:25] Divider for spdif0 clock pred.
unsigned HSI_TX_CLK_SEL : 1; //!< [28] Selector for hsi_tx clock multiplexer
unsigned HSI_TX_PODF : 3; //!< [31:29] Divider for hsi_tx clock podf.
} B;
} hw_ccm_cdcdr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CDCDR register
*/
//@{
#define HW_CCM_CDCDR_ADDR (REGS_CCM_BASE + 0x30)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CDCDR (*(volatile hw_ccm_cdcdr_t *) HW_CCM_CDCDR_ADDR)
#define HW_CCM_CDCDR_RD() (HW_CCM_CDCDR.U)
#define HW_CCM_CDCDR_WR(v) (HW_CCM_CDCDR.U = (v))
#define HW_CCM_CDCDR_SET(v) (HW_CCM_CDCDR_WR(HW_CCM_CDCDR_RD() | (v)))
#define HW_CCM_CDCDR_CLR(v) (HW_CCM_CDCDR_WR(HW_CCM_CDCDR_RD() & ~(v)))
#define HW_CCM_CDCDR_TOG(v) (HW_CCM_CDCDR_WR(HW_CCM_CDCDR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CDCDR bitfields
*/
/*! @name Register CCM_CDCDR, field SPDIF1_CLK_SEL[8:7] (RW)
*
* Selector for spdif1 clock multiplexer
*
* Values:
* - 00 - derive clock from pll4 divided clock
* - 01 - derive clock from 508M PFD clock
* - 11 - derive clock from pll3 clock
*/
//@{
#define BP_CCM_CDCDR_SPDIF1_CLK_SEL (7) //!< Bit position for CCM_CDCDR_SPDIF1_CLK_SEL.
#define BM_CCM_CDCDR_SPDIF1_CLK_SEL (0x00000180) //!< Bit mask for CCM_CDCDR_SPDIF1_CLK_SEL.
//! @brief Get value of CCM_CDCDR_SPDIF1_CLK_SEL from a register value.
#define BG_CCM_CDCDR_SPDIF1_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDCDR_SPDIF1_CLK_SEL) >> BP_CCM_CDCDR_SPDIF1_CLK_SEL)
//! @brief Format value for bitfield CCM_CDCDR_SPDIF1_CLK_SEL.
#define BF_CCM_CDCDR_SPDIF1_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CDCDR_SPDIF1_CLK_SEL) & BM_CCM_CDCDR_SPDIF1_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SPDIF1_CLK_SEL field to a new value.
#define BW_CCM_CDCDR_SPDIF1_CLK_SEL(v) (HW_CCM_CDCDR_WR((HW_CCM_CDCDR_RD() & ~BM_CCM_CDCDR_SPDIF1_CLK_SEL) | BF_CCM_CDCDR_SPDIF1_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CDCDR, field SPDIF1_CLK_PODF[11:9] (RW)
*
* Divider for spdif1 clock podf. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CDCDR_SPDIF1_CLK_PODF (9) //!< Bit position for CCM_CDCDR_SPDIF1_CLK_PODF.
#define BM_CCM_CDCDR_SPDIF1_CLK_PODF (0x00000e00) //!< Bit mask for CCM_CDCDR_SPDIF1_CLK_PODF.
//! @brief Get value of CCM_CDCDR_SPDIF1_CLK_PODF from a register value.
#define BG_CCM_CDCDR_SPDIF1_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDCDR_SPDIF1_CLK_PODF) >> BP_CCM_CDCDR_SPDIF1_CLK_PODF)
//! @brief Format value for bitfield CCM_CDCDR_SPDIF1_CLK_PODF.
#define BF_CCM_CDCDR_SPDIF1_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CDCDR_SPDIF1_CLK_PODF) & BM_CCM_CDCDR_SPDIF1_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SPDIF1_CLK_PODF field to a new value.
#define BW_CCM_CDCDR_SPDIF1_CLK_PODF(v) (HW_CCM_CDCDR_WR((HW_CCM_CDCDR_RD() & ~BM_CCM_CDCDR_SPDIF1_CLK_PODF) | BF_CCM_CDCDR_SPDIF1_CLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CDCDR, field SPDIF1_CLK_PRED[14:12] (RW)
*
* Divider for spdif1 clock pred. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1 (do not use with high input frequencies)
* - 001 - divide by 2
* - 010 - divide by 3 (default)
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CDCDR_SPDIF1_CLK_PRED (12) //!< Bit position for CCM_CDCDR_SPDIF1_CLK_PRED.
#define BM_CCM_CDCDR_SPDIF1_CLK_PRED (0x00007000) //!< Bit mask for CCM_CDCDR_SPDIF1_CLK_PRED.
//! @brief Get value of CCM_CDCDR_SPDIF1_CLK_PRED from a register value.
#define BG_CCM_CDCDR_SPDIF1_CLK_PRED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDCDR_SPDIF1_CLK_PRED) >> BP_CCM_CDCDR_SPDIF1_CLK_PRED)
//! @brief Format value for bitfield CCM_CDCDR_SPDIF1_CLK_PRED.
#define BF_CCM_CDCDR_SPDIF1_CLK_PRED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CDCDR_SPDIF1_CLK_PRED) & BM_CCM_CDCDR_SPDIF1_CLK_PRED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SPDIF1_CLK_PRED field to a new value.
#define BW_CCM_CDCDR_SPDIF1_CLK_PRED(v) (HW_CCM_CDCDR_WR((HW_CCM_CDCDR_RD() & ~BM_CCM_CDCDR_SPDIF1_CLK_PRED) | BF_CCM_CDCDR_SPDIF1_CLK_PRED(v)))
#endif
//@}
/*! @name Register CCM_CDCDR, field SPDIF0_CLK_SEL[21:20] (RW)
*
* Selector for spdif0 clock multiplexer
*
* Values:
* - 00 - derive clock from pll4 divided clock
* - 01 - derive clock from 508M PFD clock
* - 11 - derive clock from pll3 clock
*/
//@{
#define BP_CCM_CDCDR_SPDIF0_CLK_SEL (20) //!< Bit position for CCM_CDCDR_SPDIF0_CLK_SEL.
#define BM_CCM_CDCDR_SPDIF0_CLK_SEL (0x00300000) //!< Bit mask for CCM_CDCDR_SPDIF0_CLK_SEL.
//! @brief Get value of CCM_CDCDR_SPDIF0_CLK_SEL from a register value.
#define BG_CCM_CDCDR_SPDIF0_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDCDR_SPDIF0_CLK_SEL) >> BP_CCM_CDCDR_SPDIF0_CLK_SEL)
//! @brief Format value for bitfield CCM_CDCDR_SPDIF0_CLK_SEL.
#define BF_CCM_CDCDR_SPDIF0_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CDCDR_SPDIF0_CLK_SEL) & BM_CCM_CDCDR_SPDIF0_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SPDIF0_CLK_SEL field to a new value.
#define BW_CCM_CDCDR_SPDIF0_CLK_SEL(v) (HW_CCM_CDCDR_WR((HW_CCM_CDCDR_RD() & ~BM_CCM_CDCDR_SPDIF0_CLK_SEL) | BF_CCM_CDCDR_SPDIF0_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CDCDR, field SPDIF0_CLK_PODF[24:22] (RW)
*
* Divider for spdif0 clock podf. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CDCDR_SPDIF0_CLK_PODF (22) //!< Bit position for CCM_CDCDR_SPDIF0_CLK_PODF.
#define BM_CCM_CDCDR_SPDIF0_CLK_PODF (0x01c00000) //!< Bit mask for CCM_CDCDR_SPDIF0_CLK_PODF.
//! @brief Get value of CCM_CDCDR_SPDIF0_CLK_PODF from a register value.
#define BG_CCM_CDCDR_SPDIF0_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDCDR_SPDIF0_CLK_PODF) >> BP_CCM_CDCDR_SPDIF0_CLK_PODF)
//! @brief Format value for bitfield CCM_CDCDR_SPDIF0_CLK_PODF.
#define BF_CCM_CDCDR_SPDIF0_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CDCDR_SPDIF0_CLK_PODF) & BM_CCM_CDCDR_SPDIF0_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SPDIF0_CLK_PODF field to a new value.
#define BW_CCM_CDCDR_SPDIF0_CLK_PODF(v) (HW_CCM_CDCDR_WR((HW_CCM_CDCDR_RD() & ~BM_CCM_CDCDR_SPDIF0_CLK_PODF) | BF_CCM_CDCDR_SPDIF0_CLK_PODF(v)))
#endif
//@}
/*! @name Register CCM_CDCDR, field SPDIF0_CLK_PRED[27:25] (RW)
*
* Divider for spdif0 clock pred. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1 (do not use with high input frequencies)
* - 001 - divide by 2
* - 010 - divide by 3 (default)
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CDCDR_SPDIF0_CLK_PRED (25) //!< Bit position for CCM_CDCDR_SPDIF0_CLK_PRED.
#define BM_CCM_CDCDR_SPDIF0_CLK_PRED (0x0e000000) //!< Bit mask for CCM_CDCDR_SPDIF0_CLK_PRED.
//! @brief Get value of CCM_CDCDR_SPDIF0_CLK_PRED from a register value.
#define BG_CCM_CDCDR_SPDIF0_CLK_PRED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDCDR_SPDIF0_CLK_PRED) >> BP_CCM_CDCDR_SPDIF0_CLK_PRED)
//! @brief Format value for bitfield CCM_CDCDR_SPDIF0_CLK_PRED.
#define BF_CCM_CDCDR_SPDIF0_CLK_PRED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CDCDR_SPDIF0_CLK_PRED) & BM_CCM_CDCDR_SPDIF0_CLK_PRED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SPDIF0_CLK_PRED field to a new value.
#define BW_CCM_CDCDR_SPDIF0_CLK_PRED(v) (HW_CCM_CDCDR_WR((HW_CCM_CDCDR_RD() & ~BM_CCM_CDCDR_SPDIF0_CLK_PRED) | BF_CCM_CDCDR_SPDIF0_CLK_PRED(v)))
#endif
//@}
/*! @name Register CCM_CDCDR, field HSI_TX_CLK_SEL[28] (RW)
*
* Selector for hsi_tx clock multiplexer
*
* Values:
* - 0 - derive from pll3 120M clock (default)
* - 1 - derive from pll2 396M PDF
*/
//@{
#define BP_CCM_CDCDR_HSI_TX_CLK_SEL (28) //!< Bit position for CCM_CDCDR_HSI_TX_CLK_SEL.
#define BM_CCM_CDCDR_HSI_TX_CLK_SEL (0x10000000) //!< Bit mask for CCM_CDCDR_HSI_TX_CLK_SEL.
//! @brief Get value of CCM_CDCDR_HSI_TX_CLK_SEL from a register value.
#define BG_CCM_CDCDR_HSI_TX_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDCDR_HSI_TX_CLK_SEL) >> BP_CCM_CDCDR_HSI_TX_CLK_SEL)
//! @brief Format value for bitfield CCM_CDCDR_HSI_TX_CLK_SEL.
#define BF_CCM_CDCDR_HSI_TX_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CDCDR_HSI_TX_CLK_SEL) & BM_CCM_CDCDR_HSI_TX_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the HSI_TX_CLK_SEL field to a new value.
#define BW_CCM_CDCDR_HSI_TX_CLK_SEL(v) (HW_CCM_CDCDR_WR((HW_CCM_CDCDR_RD() & ~BM_CCM_CDCDR_HSI_TX_CLK_SEL) | BF_CCM_CDCDR_HSI_TX_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CDCDR, field HSI_TX_PODF[31:29] (RW)
*
* Divider for hsi_tx clock podf. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4 (default)
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CDCDR_HSI_TX_PODF (29) //!< Bit position for CCM_CDCDR_HSI_TX_PODF.
#define BM_CCM_CDCDR_HSI_TX_PODF (0xe0000000) //!< Bit mask for CCM_CDCDR_HSI_TX_PODF.
//! @brief Get value of CCM_CDCDR_HSI_TX_PODF from a register value.
#define BG_CCM_CDCDR_HSI_TX_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDCDR_HSI_TX_PODF) >> BP_CCM_CDCDR_HSI_TX_PODF)
//! @brief Format value for bitfield CCM_CDCDR_HSI_TX_PODF.
#define BF_CCM_CDCDR_HSI_TX_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CDCDR_HSI_TX_PODF) & BM_CCM_CDCDR_HSI_TX_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the HSI_TX_PODF field to a new value.
#define BW_CCM_CDCDR_HSI_TX_PODF(v) (HW_CCM_CDCDR_WR((HW_CCM_CDCDR_RD() & ~BM_CCM_CDCDR_HSI_TX_PODF) | BF_CCM_CDCDR_HSI_TX_PODF(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CHSCCDR - CCM HSC Clock Divider Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CHSCCDR - CCM HSC Clock Divider Register (RW)
*
* Reset value: 0x0002a150
*
* The figure below represents the CCM IPU1 DI Clock Divider Register (CHSCCDR). The CHSCCDR
* register contains bits to control the ipu di clock generation dividers. The table below provides
* its field descriptions.
*/
typedef union _hw_ccm_chsccdr
{
reg32_t U;
struct _hw_ccm_chsccdr_bitfields
{
unsigned IPU1_DI0_CLK_SEL : 3; //!< [2:0] Selector for ipu1 di0 root clock multiplexer
unsigned IPU1_DI0_PODF : 3; //!< [5:3] Divider for ipu1_di0 clock divider.
unsigned IPU1_DI0_PRE_CLK_SEL : 3; //!< [8:6] Selector for ipu1 di0 root clock pre-multiplexer
unsigned IPU1_DI1_CLK_SEL : 3; //!< [11:9] Selector for ipu1 di1 root clock multiplexer
unsigned IPU1_DI1_PODF : 3; //!< [14:12] Divider for ipu1_di clock divider.
unsigned IPU1_DI1_PRE_CLK_SEL : 3; //!< [17:15] Selector for ipu1 di1 root clock pre-multiplexer
unsigned RESERVED0 : 14; //!< [31:18] Reserved
} B;
} hw_ccm_chsccdr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CHSCCDR register
*/
//@{
#define HW_CCM_CHSCCDR_ADDR (REGS_CCM_BASE + 0x34)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CHSCCDR (*(volatile hw_ccm_chsccdr_t *) HW_CCM_CHSCCDR_ADDR)
#define HW_CCM_CHSCCDR_RD() (HW_CCM_CHSCCDR.U)
#define HW_CCM_CHSCCDR_WR(v) (HW_CCM_CHSCCDR.U = (v))
#define HW_CCM_CHSCCDR_SET(v) (HW_CCM_CHSCCDR_WR(HW_CCM_CHSCCDR_RD() | (v)))
#define HW_CCM_CHSCCDR_CLR(v) (HW_CCM_CHSCCDR_WR(HW_CCM_CHSCCDR_RD() & ~(v)))
#define HW_CCM_CHSCCDR_TOG(v) (HW_CCM_CHSCCDR_WR(HW_CCM_CHSCCDR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CHSCCDR bitfields
*/
/*! @name Register CCM_CHSCCDR, field IPU1_DI0_CLK_SEL[2:0] (RW)
*
* Selector for ipu1 di0 root clock multiplexer
*
* Values:
* - 000 - derive clock from divided pre-muxed ipu1 di0 clock (default)
* - 001 - derive clock from ipp_di0_clk
* - 010 - derive clock from ipp_di1_clk
* - 011 - derive clock from ldb_di0_clk
* - 100 - derive clock from ldb_di1_clk
* - 101-111 - Restricted
*/
//@{
#define BP_CCM_CHSCCDR_IPU1_DI0_CLK_SEL (0) //!< Bit position for CCM_CHSCCDR_IPU1_DI0_CLK_SEL.
#define BM_CCM_CHSCCDR_IPU1_DI0_CLK_SEL (0x00000007) //!< Bit mask for CCM_CHSCCDR_IPU1_DI0_CLK_SEL.
//! @brief Get value of CCM_CHSCCDR_IPU1_DI0_CLK_SEL from a register value.
#define BG_CCM_CHSCCDR_IPU1_DI0_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CHSCCDR_IPU1_DI0_CLK_SEL) >> BP_CCM_CHSCCDR_IPU1_DI0_CLK_SEL)
//! @brief Format value for bitfield CCM_CHSCCDR_IPU1_DI0_CLK_SEL.
#define BF_CCM_CHSCCDR_IPU1_DI0_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CHSCCDR_IPU1_DI0_CLK_SEL) & BM_CCM_CHSCCDR_IPU1_DI0_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the IPU1_DI0_CLK_SEL field to a new value.
#define BW_CCM_CHSCCDR_IPU1_DI0_CLK_SEL(v) (HW_CCM_CHSCCDR_WR((HW_CCM_CHSCCDR_RD() & ~BM_CCM_CHSCCDR_IPU1_DI0_CLK_SEL) | BF_CCM_CHSCCDR_IPU1_DI0_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CHSCCDR, field IPU1_DI0_PODF[5:3] (RW)
*
* Divider for ipu1_di0 clock divider. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3 (default)
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CHSCCDR_IPU1_DI0_PODF (3) //!< Bit position for CCM_CHSCCDR_IPU1_DI0_PODF.
#define BM_CCM_CHSCCDR_IPU1_DI0_PODF (0x00000038) //!< Bit mask for CCM_CHSCCDR_IPU1_DI0_PODF.
//! @brief Get value of CCM_CHSCCDR_IPU1_DI0_PODF from a register value.
#define BG_CCM_CHSCCDR_IPU1_DI0_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CHSCCDR_IPU1_DI0_PODF) >> BP_CCM_CHSCCDR_IPU1_DI0_PODF)
//! @brief Format value for bitfield CCM_CHSCCDR_IPU1_DI0_PODF.
#define BF_CCM_CHSCCDR_IPU1_DI0_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CHSCCDR_IPU1_DI0_PODF) & BM_CCM_CHSCCDR_IPU1_DI0_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the IPU1_DI0_PODF field to a new value.
#define BW_CCM_CHSCCDR_IPU1_DI0_PODF(v) (HW_CCM_CHSCCDR_WR((HW_CCM_CHSCCDR_RD() & ~BM_CCM_CHSCCDR_IPU1_DI0_PODF) | BF_CCM_CHSCCDR_IPU1_DI0_PODF(v)))
#endif
//@}
/*! @name Register CCM_CHSCCDR, field IPU1_DI0_PRE_CLK_SEL[8:6] (RW)
*
* Selector for ipu1 di0 root clock pre-multiplexer
*
* Values:
* - 000 - derive clock from mmdc_ch0 clock
* - 001 - derive clock from pll3
* - 010 - derive clock from pll5
* - 011 - derive clock from 307M PFD
* - 100 - derive clock from 396M PFD
* - 101 - derive clock from 540M PFD
* - 110-111 - Restricted
*/
//@{
#define BP_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL (6) //!< Bit position for CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL.
#define BM_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL (0x000001c0) //!< Bit mask for CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL.
//! @brief Get value of CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL from a register value.
#define BG_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL) >> BP_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL)
//! @brief Format value for bitfield CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL.
#define BF_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL) & BM_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the IPU1_DI0_PRE_CLK_SEL field to a new value.
#define BW_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL(v) (HW_CCM_CHSCCDR_WR((HW_CCM_CHSCCDR_RD() & ~BM_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL) | BF_CCM_CHSCCDR_IPU1_DI0_PRE_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CHSCCDR, field IPU1_DI1_CLK_SEL[11:9] (RW)
*
* Selector for ipu1 di1 root clock multiplexer
*
* Values:
* - 000 - derive clock from divided pre-muxed ipu1 di1 clock (default)
* - 001 - derive clock from ipp_di0_clk
* - 010 - derive clock from ipp_di1_clk
* - 011 - derive clock from ldb_di0_clk
* - 100 - derive clock from ldb_di1_clk
* - 101-111 - Restricted
*/
//@{
#define BP_CCM_CHSCCDR_IPU1_DI1_CLK_SEL (9) //!< Bit position for CCM_CHSCCDR_IPU1_DI1_CLK_SEL.
#define BM_CCM_CHSCCDR_IPU1_DI1_CLK_SEL (0x00000e00) //!< Bit mask for CCM_CHSCCDR_IPU1_DI1_CLK_SEL.
//! @brief Get value of CCM_CHSCCDR_IPU1_DI1_CLK_SEL from a register value.
#define BG_CCM_CHSCCDR_IPU1_DI1_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CHSCCDR_IPU1_DI1_CLK_SEL) >> BP_CCM_CHSCCDR_IPU1_DI1_CLK_SEL)
//! @brief Format value for bitfield CCM_CHSCCDR_IPU1_DI1_CLK_SEL.
#define BF_CCM_CHSCCDR_IPU1_DI1_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CHSCCDR_IPU1_DI1_CLK_SEL) & BM_CCM_CHSCCDR_IPU1_DI1_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the IPU1_DI1_CLK_SEL field to a new value.
#define BW_CCM_CHSCCDR_IPU1_DI1_CLK_SEL(v) (HW_CCM_CHSCCDR_WR((HW_CCM_CHSCCDR_RD() & ~BM_CCM_CHSCCDR_IPU1_DI1_CLK_SEL) | BF_CCM_CHSCCDR_IPU1_DI1_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CHSCCDR, field IPU1_DI1_PODF[14:12] (RW)
*
* Divider for ipu1_di clock divider. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3 (default)
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CHSCCDR_IPU1_DI1_PODF (12) //!< Bit position for CCM_CHSCCDR_IPU1_DI1_PODF.
#define BM_CCM_CHSCCDR_IPU1_DI1_PODF (0x00007000) //!< Bit mask for CCM_CHSCCDR_IPU1_DI1_PODF.
//! @brief Get value of CCM_CHSCCDR_IPU1_DI1_PODF from a register value.
#define BG_CCM_CHSCCDR_IPU1_DI1_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CHSCCDR_IPU1_DI1_PODF) >> BP_CCM_CHSCCDR_IPU1_DI1_PODF)
//! @brief Format value for bitfield CCM_CHSCCDR_IPU1_DI1_PODF.
#define BF_CCM_CHSCCDR_IPU1_DI1_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CHSCCDR_IPU1_DI1_PODF) & BM_CCM_CHSCCDR_IPU1_DI1_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the IPU1_DI1_PODF field to a new value.
#define BW_CCM_CHSCCDR_IPU1_DI1_PODF(v) (HW_CCM_CHSCCDR_WR((HW_CCM_CHSCCDR_RD() & ~BM_CCM_CHSCCDR_IPU1_DI1_PODF) | BF_CCM_CHSCCDR_IPU1_DI1_PODF(v)))
#endif
//@}
/*! @name Register CCM_CHSCCDR, field IPU1_DI1_PRE_CLK_SEL[17:15] (RW)
*
* Selector for ipu1 di1 root clock pre-multiplexer
*
* Values:
* - 000 - derive clock from mmdc_ch0 clock
* - 001 - derive clock from pll3
* - 010 - derive clock from pll5
* - 011 - derive clock from 307M PFD
* - 100 - derive clock from 396M PFD
* - 101 - derive clock from 540M PFD
* - 110-111 - Restricted
*/
//@{
#define BP_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL (15) //!< Bit position for CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL.
#define BM_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL (0x00038000) //!< Bit mask for CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL.
//! @brief Get value of CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL from a register value.
#define BG_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL) >> BP_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL)
//! @brief Format value for bitfield CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL.
#define BF_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL) & BM_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the IPU1_DI1_PRE_CLK_SEL field to a new value.
#define BW_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL(v) (HW_CCM_CHSCCDR_WR((HW_CCM_CHSCCDR_RD() & ~BM_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL) | BF_CCM_CHSCCDR_IPU1_DI1_PRE_CLK_SEL(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CSCDR2 - CCM Serial Clock Divider Register 2
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CSCDR2 - CCM Serial Clock Divider Register 2 (RW)
*
* Reset value: 0x00029b48
*
* The figure below represents the CCM Serial Clock Divider Register 2(CSCDR2). The CSCDR2 register
* contains bits to control the clock generation sub module dividers. The table below provides its
* field descriptions.
*/
typedef union _hw_ccm_cscdr2
{
reg32_t U;
struct _hw_ccm_cscdr2_bitfields
{
unsigned LCDIF_PIX_CLK_SEL : 3; //!< [2:0] Selector for lcdif_pix root clock multiplexer
unsigned LCDIF_PIX_PODF : 3; //!< [5:3] Divider for lcdif_pix clock divider.
unsigned LCDIF_PIX_PRE_CLK_SEL : 3; //!< [8:6] Selector for lcdif_pix root clock pre-multiplexer
unsigned EPDC_PIX_CLK_SEL : 3; //!< [11:9] Selector for epdc_pix root clock multiplexer
unsigned EPDC_PIX_PODF : 3; //!< [14:12] Divider for epdc_pix clock divider.
unsigned EPDC_PIX_PRE_CLK_SEL : 3; //!< [17:15] Selector for epdc_pix root clock pre-multiplexer
unsigned RESERVED0 : 1; //!< [18] Reserved
unsigned ECSPI_CLK_PODF : 6; //!< [24:19] Divider for ecspi clock podf.
unsigned RESERVED1 : 7; //!< [31:25] Reserved.
} B;
} hw_ccm_cscdr2_t;
#endif
/*!
* @name Constants and macros for entire CCM_CSCDR2 register
*/
//@{
#define HW_CCM_CSCDR2_ADDR (REGS_CCM_BASE + 0x38)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CSCDR2 (*(volatile hw_ccm_cscdr2_t *) HW_CCM_CSCDR2_ADDR)
#define HW_CCM_CSCDR2_RD() (HW_CCM_CSCDR2.U)
#define HW_CCM_CSCDR2_WR(v) (HW_CCM_CSCDR2.U = (v))
#define HW_CCM_CSCDR2_SET(v) (HW_CCM_CSCDR2_WR(HW_CCM_CSCDR2_RD() | (v)))
#define HW_CCM_CSCDR2_CLR(v) (HW_CCM_CSCDR2_WR(HW_CCM_CSCDR2_RD() & ~(v)))
#define HW_CCM_CSCDR2_TOG(v) (HW_CCM_CSCDR2_WR(HW_CCM_CSCDR2_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CSCDR2 bitfields
*/
/*! @name Register CCM_CSCDR2, field LCDIF_PIX_CLK_SEL[2:0] (RW)
*
* Selector for lcdif_pix root clock multiplexer
*
* Values:
* - 000 - derive clock from divided pre-muxed lcdif_pix clock (default)
* - 001 - derive clock from ipp_di0_clk
* - 010 - derive clock from ipp_di1_clk
* - 011 - derive clock from ldb_di0_clk
* - 100 - derive clock from ldb_di1_clk
* - 101-111 - Restricted
*/
//@{
#define BP_CCM_CSCDR2_LCDIF_PIX_CLK_SEL (0) //!< Bit position for CCM_CSCDR2_LCDIF_PIX_CLK_SEL.
#define BM_CCM_CSCDR2_LCDIF_PIX_CLK_SEL (0x00000007) //!< Bit mask for CCM_CSCDR2_LCDIF_PIX_CLK_SEL.
//! @brief Get value of CCM_CSCDR2_LCDIF_PIX_CLK_SEL from a register value.
#define BG_CCM_CSCDR2_LCDIF_PIX_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR2_LCDIF_PIX_CLK_SEL) >> BP_CCM_CSCDR2_LCDIF_PIX_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCDR2_LCDIF_PIX_CLK_SEL.
#define BF_CCM_CSCDR2_LCDIF_PIX_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR2_LCDIF_PIX_CLK_SEL) & BM_CCM_CSCDR2_LCDIF_PIX_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the LCDIF_PIX_CLK_SEL field to a new value.
#define BW_CCM_CSCDR2_LCDIF_PIX_CLK_SEL(v) (HW_CCM_CSCDR2_WR((HW_CCM_CSCDR2_RD() & ~BM_CCM_CSCDR2_LCDIF_PIX_CLK_SEL) | BF_CCM_CSCDR2_LCDIF_PIX_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCDR2, field LCDIF_PIX_PODF[5:3] (RW)
*
* Divider for lcdif_pix clock divider. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8 (default)
*/
//@{
#define BP_CCM_CSCDR2_LCDIF_PIX_PODF (3) //!< Bit position for CCM_CSCDR2_LCDIF_PIX_PODF.
#define BM_CCM_CSCDR2_LCDIF_PIX_PODF (0x00000038) //!< Bit mask for CCM_CSCDR2_LCDIF_PIX_PODF.
//! @brief Get value of CCM_CSCDR2_LCDIF_PIX_PODF from a register value.
#define BG_CCM_CSCDR2_LCDIF_PIX_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR2_LCDIF_PIX_PODF) >> BP_CCM_CSCDR2_LCDIF_PIX_PODF)
//! @brief Format value for bitfield CCM_CSCDR2_LCDIF_PIX_PODF.
#define BF_CCM_CSCDR2_LCDIF_PIX_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR2_LCDIF_PIX_PODF) & BM_CCM_CSCDR2_LCDIF_PIX_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the LCDIF_PIX_PODF field to a new value.
#define BW_CCM_CSCDR2_LCDIF_PIX_PODF(v) (HW_CCM_CSCDR2_WR((HW_CCM_CSCDR2_RD() & ~BM_CCM_CSCDR2_LCDIF_PIX_PODF) | BF_CCM_CSCDR2_LCDIF_PIX_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCDR2, field LCDIF_PIX_PRE_CLK_SEL[8:6] (RW)
*
* Selector for lcdif_pix root clock pre-multiplexer
*
* Values:
* - 000 - derive clock from mmdc_ch0 clock
* - 001 - derive clock from pll3 (default)
* - 010 - derive clock from pll5
* - 011 - derive clock from 307M PFD
* - 100 - derive clock from 396M PFD
* - 101 - derive clock from 540M PFD
* - 110-111 - Restricted
*/
//@{
#define BP_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL (6) //!< Bit position for CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL.
#define BM_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL (0x000001c0) //!< Bit mask for CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL.
//! @brief Get value of CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL from a register value.
#define BG_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL) >> BP_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL.
#define BF_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL) & BM_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the LCDIF_PIX_PRE_CLK_SEL field to a new value.
#define BW_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL(v) (HW_CCM_CSCDR2_WR((HW_CCM_CSCDR2_RD() & ~BM_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL) | BF_CCM_CSCDR2_LCDIF_PIX_PRE_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCDR2, field EPDC_PIX_CLK_SEL[11:9] (RW)
*
* Selector for epdc_pix root clock multiplexer
*
* Values:
* - 000 - derive clock from divided pre-muxed epdc_pix clock (default)
* - 001 - derive clock from ipp_di0_clk
* - 010 - derive clock from ipp_di1_clk
* - 011 - derive clock from ldb_di0_clk
* - 100 - derive clock from ldb_di1_clk
* - 101-111 - Restricted
*/
//@{
#define BP_CCM_CSCDR2_EPDC_PIX_CLK_SEL (9) //!< Bit position for CCM_CSCDR2_EPDC_PIX_CLK_SEL.
#define BM_CCM_CSCDR2_EPDC_PIX_CLK_SEL (0x00000e00) //!< Bit mask for CCM_CSCDR2_EPDC_PIX_CLK_SEL.
//! @brief Get value of CCM_CSCDR2_EPDC_PIX_CLK_SEL from a register value.
#define BG_CCM_CSCDR2_EPDC_PIX_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR2_EPDC_PIX_CLK_SEL) >> BP_CCM_CSCDR2_EPDC_PIX_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCDR2_EPDC_PIX_CLK_SEL.
#define BF_CCM_CSCDR2_EPDC_PIX_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR2_EPDC_PIX_CLK_SEL) & BM_CCM_CSCDR2_EPDC_PIX_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the EPDC_PIX_CLK_SEL field to a new value.
#define BW_CCM_CSCDR2_EPDC_PIX_CLK_SEL(v) (HW_CCM_CSCDR2_WR((HW_CCM_CSCDR2_RD() & ~BM_CCM_CSCDR2_EPDC_PIX_CLK_SEL) | BF_CCM_CSCDR2_EPDC_PIX_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCDR2, field EPDC_PIX_PODF[14:12] (RW)
*
* Divider for epdc_pix clock divider. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8 (default)
*/
//@{
#define BP_CCM_CSCDR2_EPDC_PIX_PODF (12) //!< Bit position for CCM_CSCDR2_EPDC_PIX_PODF.
#define BM_CCM_CSCDR2_EPDC_PIX_PODF (0x00007000) //!< Bit mask for CCM_CSCDR2_EPDC_PIX_PODF.
//! @brief Get value of CCM_CSCDR2_EPDC_PIX_PODF from a register value.
#define BG_CCM_CSCDR2_EPDC_PIX_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR2_EPDC_PIX_PODF) >> BP_CCM_CSCDR2_EPDC_PIX_PODF)
//! @brief Format value for bitfield CCM_CSCDR2_EPDC_PIX_PODF.
#define BF_CCM_CSCDR2_EPDC_PIX_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR2_EPDC_PIX_PODF) & BM_CCM_CSCDR2_EPDC_PIX_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the EPDC_PIX_PODF field to a new value.
#define BW_CCM_CSCDR2_EPDC_PIX_PODF(v) (HW_CCM_CSCDR2_WR((HW_CCM_CSCDR2_RD() & ~BM_CCM_CSCDR2_EPDC_PIX_PODF) | BF_CCM_CSCDR2_EPDC_PIX_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCDR2, field EPDC_PIX_PRE_CLK_SEL[17:15] (RW)
*
* Selector for epdc_pix root clock pre-multiplexer
*
* Values:
* - 000 - derive clock from mmdc_ch0 clock
* - 001 - derive clock from pll3
* - 010 - derive clock from pll5
* - 011 - derive clock from 307M PFD
* - 100 - derive clock from 396M PFD
* - 101 - derive clock from 540M PFD
* - 110-111 - Restricted
*/
//@{
#define BP_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL (15) //!< Bit position for CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL.
#define BM_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL (0x00038000) //!< Bit mask for CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL.
//! @brief Get value of CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL from a register value.
#define BG_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL) >> BP_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL.
#define BF_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL) & BM_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the EPDC_PIX_PRE_CLK_SEL field to a new value.
#define BW_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL(v) (HW_CCM_CSCDR2_WR((HW_CCM_CSCDR2_RD() & ~BM_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL) | BF_CCM_CSCDR2_EPDC_PIX_PRE_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCDR2, field ECSPI_CLK_PODF[24:19] (RW)
*
* Divider for ecspi clock podf. Note: Divider should be updated when output clock is gated. Note:
* The input clock to this divider should be lower than 300Mhz, the predivider can be used to
* achieve this.
*
* Values:
* - 000000 - divide by 1
* - 111111 - divide by 2^6
*/
//@{
#define BP_CCM_CSCDR2_ECSPI_CLK_PODF (19) //!< Bit position for CCM_CSCDR2_ECSPI_CLK_PODF.
#define BM_CCM_CSCDR2_ECSPI_CLK_PODF (0x01f80000) //!< Bit mask for CCM_CSCDR2_ECSPI_CLK_PODF.
//! @brief Get value of CCM_CSCDR2_ECSPI_CLK_PODF from a register value.
#define BG_CCM_CSCDR2_ECSPI_CLK_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR2_ECSPI_CLK_PODF) >> BP_CCM_CSCDR2_ECSPI_CLK_PODF)
//! @brief Format value for bitfield CCM_CSCDR2_ECSPI_CLK_PODF.
#define BF_CCM_CSCDR2_ECSPI_CLK_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR2_ECSPI_CLK_PODF) & BM_CCM_CSCDR2_ECSPI_CLK_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ECSPI_CLK_PODF field to a new value.
#define BW_CCM_CSCDR2_ECSPI_CLK_PODF(v) (HW_CCM_CSCDR2_WR((HW_CCM_CSCDR2_RD() & ~BM_CCM_CSCDR2_ECSPI_CLK_PODF) | BF_CCM_CSCDR2_ECSPI_CLK_PODF(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CSCDR3 - CCM Serial Clock Divider Register 3
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CSCDR3 - CCM Serial Clock Divider Register 3 (RW)
*
* Reset value: 0x00014841
*
* The figure below represents the CCM Serial Clock Divider Register 3(CSCDR3). The CSCDR3 register
* contains bits to control the clock generation sub module dividers. The table below provides its
* field descriptions.
*/
typedef union _hw_ccm_cscdr3
{
reg32_t U;
struct _hw_ccm_cscdr3_bitfields
{
unsigned RESERVED0 : 9; //!< [8:0] Reserved
unsigned IPU1_HSP_CLK_SEL : 2; //!< [10:9] Selector for ipu1_hsp clock multiplexer
unsigned IPU1_HSP_PODF : 3; //!< [13:11] Divider for ipu1_hsp clock.
unsigned EPDC_CLK_SEL : 2; //!< [15:14] Selector for epdc_axi, lcdif_axi, and pxp_axi clock multiplexer
unsigned EPDC_PODF : 3; //!< [18:16] Divider for epdc_axi, lcdif_axi, and pxp_axi clock.
unsigned RESERVED1 : 13; //!< [31:19] Reserved
} B;
} hw_ccm_cscdr3_t;
#endif
/*!
* @name Constants and macros for entire CCM_CSCDR3 register
*/
//@{
#define HW_CCM_CSCDR3_ADDR (REGS_CCM_BASE + 0x3c)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CSCDR3 (*(volatile hw_ccm_cscdr3_t *) HW_CCM_CSCDR3_ADDR)
#define HW_CCM_CSCDR3_RD() (HW_CCM_CSCDR3.U)
#define HW_CCM_CSCDR3_WR(v) (HW_CCM_CSCDR3.U = (v))
#define HW_CCM_CSCDR3_SET(v) (HW_CCM_CSCDR3_WR(HW_CCM_CSCDR3_RD() | (v)))
#define HW_CCM_CSCDR3_CLR(v) (HW_CCM_CSCDR3_WR(HW_CCM_CSCDR3_RD() & ~(v)))
#define HW_CCM_CSCDR3_TOG(v) (HW_CCM_CSCDR3_WR(HW_CCM_CSCDR3_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CSCDR3 bitfields
*/
/*! @name Register CCM_CSCDR3, field IPU1_HSP_CLK_SEL[10:9] (RW)
*
* Selector for ipu1_hsp clock multiplexer
*
* Values:
* - 00 - derive clock from mmdc_ch0 clock (default)
* - 01 - derive clock from 396M PFD
* - 10 - derive clock from 120M
* - 11 - derive clock from 540M PFD
*/
//@{
#define BP_CCM_CSCDR3_IPU1_HSP_CLK_SEL (9) //!< Bit position for CCM_CSCDR3_IPU1_HSP_CLK_SEL.
#define BM_CCM_CSCDR3_IPU1_HSP_CLK_SEL (0x00000600) //!< Bit mask for CCM_CSCDR3_IPU1_HSP_CLK_SEL.
//! @brief Get value of CCM_CSCDR3_IPU1_HSP_CLK_SEL from a register value.
#define BG_CCM_CSCDR3_IPU1_HSP_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR3_IPU1_HSP_CLK_SEL) >> BP_CCM_CSCDR3_IPU1_HSP_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCDR3_IPU1_HSP_CLK_SEL.
#define BF_CCM_CSCDR3_IPU1_HSP_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR3_IPU1_HSP_CLK_SEL) & BM_CCM_CSCDR3_IPU1_HSP_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the IPU1_HSP_CLK_SEL field to a new value.
#define BW_CCM_CSCDR3_IPU1_HSP_CLK_SEL(v) (HW_CCM_CSCDR3_WR((HW_CCM_CSCDR3_RD() & ~BM_CCM_CSCDR3_IPU1_HSP_CLK_SEL) | BF_CCM_CSCDR3_IPU1_HSP_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCDR3, field IPU1_HSP_PODF[13:11] (RW)
*
* Divider for ipu1_hsp clock. Note: Divider should be updated when output clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CSCDR3_IPU1_HSP_PODF (11) //!< Bit position for CCM_CSCDR3_IPU1_HSP_PODF.
#define BM_CCM_CSCDR3_IPU1_HSP_PODF (0x00003800) //!< Bit mask for CCM_CSCDR3_IPU1_HSP_PODF.
//! @brief Get value of CCM_CSCDR3_IPU1_HSP_PODF from a register value.
#define BG_CCM_CSCDR3_IPU1_HSP_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR3_IPU1_HSP_PODF) >> BP_CCM_CSCDR3_IPU1_HSP_PODF)
//! @brief Format value for bitfield CCM_CSCDR3_IPU1_HSP_PODF.
#define BF_CCM_CSCDR3_IPU1_HSP_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR3_IPU1_HSP_PODF) & BM_CCM_CSCDR3_IPU1_HSP_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the IPU1_HSP_PODF field to a new value.
#define BW_CCM_CSCDR3_IPU1_HSP_PODF(v) (HW_CCM_CSCDR3_WR((HW_CCM_CSCDR3_RD() & ~BM_CCM_CSCDR3_IPU1_HSP_PODF) | BF_CCM_CSCDR3_IPU1_HSP_PODF(v)))
#endif
//@}
/*! @name Register CCM_CSCDR3, field EPDC_CLK_SEL[15:14] (RW)
*
* Selector for epdc_axi, lcdif_axi, and pxp_axi clock multiplexer
*
* Values:
* - 00 - derive clock from mmdc_ch0 clock
* - 01 - derive clock from 396M PFD (default)
* - 10 - derive clock from 120M
* - 11 - derive clock from 540M PFD
*/
//@{
#define BP_CCM_CSCDR3_EPDC_CLK_SEL (14) //!< Bit position for CCM_CSCDR3_EPDC_CLK_SEL.
#define BM_CCM_CSCDR3_EPDC_CLK_SEL (0x0000c000) //!< Bit mask for CCM_CSCDR3_EPDC_CLK_SEL.
//! @brief Get value of CCM_CSCDR3_EPDC_CLK_SEL from a register value.
#define BG_CCM_CSCDR3_EPDC_CLK_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR3_EPDC_CLK_SEL) >> BP_CCM_CSCDR3_EPDC_CLK_SEL)
//! @brief Format value for bitfield CCM_CSCDR3_EPDC_CLK_SEL.
#define BF_CCM_CSCDR3_EPDC_CLK_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR3_EPDC_CLK_SEL) & BM_CCM_CSCDR3_EPDC_CLK_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the EPDC_CLK_SEL field to a new value.
#define BW_CCM_CSCDR3_EPDC_CLK_SEL(v) (HW_CCM_CSCDR3_WR((HW_CCM_CSCDR3_RD() & ~BM_CCM_CSCDR3_EPDC_CLK_SEL) | BF_CCM_CSCDR3_EPDC_CLK_SEL(v)))
#endif
//@}
/*! @name Register CCM_CSCDR3, field EPDC_PODF[18:16] (RW)
*
* Divider for epdc_axi, lcdif_axi, and pxp_axi clock. Note: Divider should be updated when output
* clock is gated.
*
* Values:
* - 000 - divide by 1
* - 001 - divide by 2 (default)
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CSCDR3_EPDC_PODF (16) //!< Bit position for CCM_CSCDR3_EPDC_PODF.
#define BM_CCM_CSCDR3_EPDC_PODF (0x00070000) //!< Bit mask for CCM_CSCDR3_EPDC_PODF.
//! @brief Get value of CCM_CSCDR3_EPDC_PODF from a register value.
#define BG_CCM_CSCDR3_EPDC_PODF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CSCDR3_EPDC_PODF) >> BP_CCM_CSCDR3_EPDC_PODF)
//! @brief Format value for bitfield CCM_CSCDR3_EPDC_PODF.
#define BF_CCM_CSCDR3_EPDC_PODF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CSCDR3_EPDC_PODF) & BM_CCM_CSCDR3_EPDC_PODF)
#ifndef __LANGUAGE_ASM__
//! @brief Set the EPDC_PODF field to a new value.
#define BW_CCM_CSCDR3_EPDC_PODF(v) (HW_CCM_CSCDR3_WR((HW_CCM_CSCDR3_RD() & ~BM_CCM_CSCDR3_EPDC_PODF) | BF_CCM_CSCDR3_EPDC_PODF(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CWDR - CCM Wakeup Detector Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CWDR - CCM Wakeup Detector Register (RW)
*
* Reset value: 0x00000000
*
* The figure below represents the CCM Wakeup Detector Register (CWDR). The CWDR register contains
* reserved, read-only bits.The table below provides its field descriptions.
*/
typedef union _hw_ccm_cwdr
{
reg32_t U;
struct _hw_ccm_cwdr_bitfields
{
unsigned RESERVED0 : 32; //!< [31:0] Reserved
} B;
} hw_ccm_cwdr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CWDR register
*/
//@{
#define HW_CCM_CWDR_ADDR (REGS_CCM_BASE + 0x44)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CWDR (*(volatile hw_ccm_cwdr_t *) HW_CCM_CWDR_ADDR)
#define HW_CCM_CWDR_RD() (HW_CCM_CWDR.U)
#define HW_CCM_CWDR_WR(v) (HW_CCM_CWDR.U = (v))
#define HW_CCM_CWDR_SET(v) (HW_CCM_CWDR_WR(HW_CCM_CWDR_RD() | (v)))
#define HW_CCM_CWDR_CLR(v) (HW_CCM_CWDR_WR(HW_CCM_CWDR_RD() & ~(v)))
#define HW_CCM_CWDR_TOG(v) (HW_CCM_CWDR_WR(HW_CCM_CWDR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CWDR bitfields
*/
//-------------------------------------------------------------------------------------------
// HW_CCM_CDHIPR - CCM Divider Handshake In-Process Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CDHIPR - CCM Divider Handshake In-Process Register (RO)
*
* Reset value: 0x00000000
*
* The figure below represents the CCM Divider Handshake In-Process Register (CDHIPR). The CDHIPR
* register contains read only bits that indicate that CCM is in the process of updating dividers or
* muxes that might need handshake with modules.
*/
typedef union _hw_ccm_cdhipr
{
reg32_t U;
struct _hw_ccm_cdhipr_bitfields
{
unsigned AXI_PODF_BUSY : 1; //!< [0] Busy indicator for axi_podf.
unsigned AHB_PODF_BUSY : 1; //!< [1] Busy indicator for ahb_podf.
unsigned MMDC_CH1_PODF_BUSY : 1; //!< [2] Busy indicator for mmdc_ch1_axi_podf.
unsigned PERIPH2_CLK_SEL_BUSY : 1; //!< [3] Busy indicator for periph2_clk_sel mux control.
unsigned MMDC_CH0_PODF_BUSY : 1; //!< [4] Busy indicator for mmdc_ch0_axi_podf.
unsigned PERIPH_CLK_SEL_BUSY : 1; //!< [5] Busy indicator for periph_clk_sel mux control.
unsigned RESERVED0 : 10; //!< [15:6] Reserved
unsigned ARM_PODF_BUSY : 1; //!< [16] Busy indicator for arm_podf.
unsigned RESERVED1 : 15; //!< [31:17] Reserved
} B;
} hw_ccm_cdhipr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CDHIPR register
*/
//@{
#define HW_CCM_CDHIPR_ADDR (REGS_CCM_BASE + 0x48)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CDHIPR (*(volatile hw_ccm_cdhipr_t *) HW_CCM_CDHIPR_ADDR)
#define HW_CCM_CDHIPR_RD() (HW_CCM_CDHIPR.U)
#endif
//@}
/*
* constants & macros for individual CCM_CDHIPR bitfields
*/
/*! @name Register CCM_CDHIPR, field AXI_PODF_BUSY[0] (RO)
*
* Busy indicator for axi_podf.
*
* Values:
* - 0 - divider is not busy and its value represents the actual division.
* - 1 - divider is busy with handshake process with module. The value read in the divider represents the
* previous value odivision factor, and after the handshake the written value of the axi_podf
* will be applied.
*/
//@{
#define BP_CCM_CDHIPR_AXI_PODF_BUSY (0) //!< Bit position for CCM_CDHIPR_AXI_PODF_BUSY.
#define BM_CCM_CDHIPR_AXI_PODF_BUSY (0x00000001) //!< Bit mask for CCM_CDHIPR_AXI_PODF_BUSY.
//! @brief Get value of CCM_CDHIPR_AXI_PODF_BUSY from a register value.
#define BG_CCM_CDHIPR_AXI_PODF_BUSY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDHIPR_AXI_PODF_BUSY) >> BP_CCM_CDHIPR_AXI_PODF_BUSY)
//@}
/*! @name Register CCM_CDHIPR, field AHB_PODF_BUSY[1] (RO)
*
* Busy indicator for ahb_podf.
*
* Values:
* - 0 - divider is not busy and its value represents the actual division.
* - 1 - divider is busy with handshake process with module. The value read in the divider represents the
* previous value odivision factor, and after the handshake the written value of the ahb_podf
* will be applied.
*/
//@{
#define BP_CCM_CDHIPR_AHB_PODF_BUSY (1) //!< Bit position for CCM_CDHIPR_AHB_PODF_BUSY.
#define BM_CCM_CDHIPR_AHB_PODF_BUSY (0x00000002) //!< Bit mask for CCM_CDHIPR_AHB_PODF_BUSY.
//! @brief Get value of CCM_CDHIPR_AHB_PODF_BUSY from a register value.
#define BG_CCM_CDHIPR_AHB_PODF_BUSY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDHIPR_AHB_PODF_BUSY) >> BP_CCM_CDHIPR_AHB_PODF_BUSY)
//@}
/*! @name Register CCM_CDHIPR, field MMDC_CH1_PODF_BUSY[2] (RO)
*
* Busy indicator for mmdc_ch1_axi_podf.
*
* Values:
* - 0 - divider is not busy and its value represents the actual division.
* - 1 - divider is busy with handshake process with module. The value read in the divider represents the
* previous value odivision factor, and after the handshake the written value of the
* mmdc_ch1_axi_podf will be applied.
*/
//@{
#define BP_CCM_CDHIPR_MMDC_CH1_PODF_BUSY (2) //!< Bit position for CCM_CDHIPR_MMDC_CH1_PODF_BUSY.
#define BM_CCM_CDHIPR_MMDC_CH1_PODF_BUSY (0x00000004) //!< Bit mask for CCM_CDHIPR_MMDC_CH1_PODF_BUSY.
//! @brief Get value of CCM_CDHIPR_MMDC_CH1_PODF_BUSY from a register value.
#define BG_CCM_CDHIPR_MMDC_CH1_PODF_BUSY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDHIPR_MMDC_CH1_PODF_BUSY) >> BP_CCM_CDHIPR_MMDC_CH1_PODF_BUSY)
//@}
/*! @name Register CCM_CDHIPR, field PERIPH2_CLK_SEL_BUSY[3] (RO)
*
* Busy indicator for periph2_clk_sel mux control.
*
* Values:
* - 0 - mux is not busy and its value represents the actual division.
* - 1 - mux is busy with handshake process with module. The value read in the periph2_clk_sel represents the
* previous value of select, and after the handshake periph2_clk_sel value will be applied.
*/
//@{
#define BP_CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY (3) //!< Bit position for CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY.
#define BM_CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY (0x00000008) //!< Bit mask for CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY.
//! @brief Get value of CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY from a register value.
#define BG_CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY) >> BP_CCM_CDHIPR_PERIPH2_CLK_SEL_BUSY)
//@}
/*! @name Register CCM_CDHIPR, field MMDC_CH0_PODF_BUSY[4] (RO)
*
* Busy indicator for mmdc_ch0_axi_podf.
*
* Values:
* - 0 - divider is not busy and its value represents the actual division.
* - 1 - divider is busy with handshake process with module. The value read in the divider represents the
* previous value odivision factor, and after the handshake the written value of the
* mmdc_ch0_axi_podf will be applied.
*/
//@{
#define BP_CCM_CDHIPR_MMDC_CH0_PODF_BUSY (4) //!< Bit position for CCM_CDHIPR_MMDC_CH0_PODF_BUSY.
#define BM_CCM_CDHIPR_MMDC_CH0_PODF_BUSY (0x00000010) //!< Bit mask for CCM_CDHIPR_MMDC_CH0_PODF_BUSY.
//! @brief Get value of CCM_CDHIPR_MMDC_CH0_PODF_BUSY from a register value.
#define BG_CCM_CDHIPR_MMDC_CH0_PODF_BUSY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDHIPR_MMDC_CH0_PODF_BUSY) >> BP_CCM_CDHIPR_MMDC_CH0_PODF_BUSY)
//@}
/*! @name Register CCM_CDHIPR, field PERIPH_CLK_SEL_BUSY[5] (RO)
*
* Busy indicator for periph_clk_sel mux control.
*
* Values:
* - 0 - mux is not busy and its value represents the actual division.
* - 1 - mux is busy with handshake process with module. The value read in the periph_clk_sel represents the
* previous value of select, and after the handshake periph_clk_sel value will be applied.
*/
//@{
#define BP_CCM_CDHIPR_PERIPH_CLK_SEL_BUSY (5) //!< Bit position for CCM_CDHIPR_PERIPH_CLK_SEL_BUSY.
#define BM_CCM_CDHIPR_PERIPH_CLK_SEL_BUSY (0x00000020) //!< Bit mask for CCM_CDHIPR_PERIPH_CLK_SEL_BUSY.
//! @brief Get value of CCM_CDHIPR_PERIPH_CLK_SEL_BUSY from a register value.
#define BG_CCM_CDHIPR_PERIPH_CLK_SEL_BUSY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDHIPR_PERIPH_CLK_SEL_BUSY) >> BP_CCM_CDHIPR_PERIPH_CLK_SEL_BUSY)
//@}
/*! @name Register CCM_CDHIPR, field ARM_PODF_BUSY[16] (RO)
*
* Busy indicator for arm_podf.
*
* Values:
* - 0 - divider is not busy and its value represents the actual division.
* - 1 - divider is busy with handshake process with module. The value read in the divider represents the
* previous value odivision factor, and after the handshake the written value of the arm_podf
* will be applied.
*/
//@{
#define BP_CCM_CDHIPR_ARM_PODF_BUSY (16) //!< Bit position for CCM_CDHIPR_ARM_PODF_BUSY.
#define BM_CCM_CDHIPR_ARM_PODF_BUSY (0x00010000) //!< Bit mask for CCM_CDHIPR_ARM_PODF_BUSY.
//! @brief Get value of CCM_CDHIPR_ARM_PODF_BUSY from a register value.
#define BG_CCM_CDHIPR_ARM_PODF_BUSY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CDHIPR_ARM_PODF_BUSY) >> BP_CCM_CDHIPR_ARM_PODF_BUSY)
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CTOR - CCM Testing Observability Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CTOR - CCM Testing Observability Register (RW)
*
* Reset value: 0x00000000
*
* The figure below represents the CCM Testing Observability Register (CTOR). CCM includes three
* muxes to mux between different critical signals for testing observability. The output of the
* three muxes is generated on the three output signals obs_output_0, obs_output_1 and obs_output_2.
* Those three output signals can be generated on the IC pads by configuring the IOMUXC. The CTOR
* register contains bits to control the data generated for observability on the three output
* signals above. The table below provides its field descriptions.
*/
typedef union _hw_ccm_ctor
{
reg32_t U;
struct _hw_ccm_ctor_bitfields
{
unsigned OBS_SPARE_OUTPUT_2_SEL : 4; //!< [3:0] Selection of the signal to be generated on obs_output_2 (output of CCM) for observability on the pads.
unsigned OBS_SPARE_OUTPUT_1_SEL : 4; //!< [7:4] Selection of the signal to be generated on obs_output_1 (output of CCM) for observability on the pads.
unsigned OBS_SPARE_OUTPUT_0_SEL : 5; //!< [12:8] Selection of the signal to be generated on obs_output_0 (output of CCM) for observability on the pads.
unsigned OBS_EN : 1; //!< [13] observability enable bit.
unsigned RESERVED0 : 18; //!< [31:14] Reserved
} B;
} hw_ccm_ctor_t;
#endif
/*!
* @name Constants and macros for entire CCM_CTOR register
*/
//@{
#define HW_CCM_CTOR_ADDR (REGS_CCM_BASE + 0x50)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CTOR (*(volatile hw_ccm_ctor_t *) HW_CCM_CTOR_ADDR)
#define HW_CCM_CTOR_RD() (HW_CCM_CTOR.U)
#define HW_CCM_CTOR_WR(v) (HW_CCM_CTOR.U = (v))
#define HW_CCM_CTOR_SET(v) (HW_CCM_CTOR_WR(HW_CCM_CTOR_RD() | (v)))
#define HW_CCM_CTOR_CLR(v) (HW_CCM_CTOR_WR(HW_CCM_CTOR_RD() & ~(v)))
#define HW_CCM_CTOR_TOG(v) (HW_CCM_CTOR_WR(HW_CCM_CTOR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CTOR bitfields
*/
/*! @name Register CCM_CTOR, field OBS_SPARE_OUTPUT_2_SEL[3:0] (RW)
*
* Selection of the signal to be generated on obs_output_2 (output of CCM) for observability on the
* pads.
*
* Values:
* - 0000 - ccm_int_mem_ipg_stop
* - 0001 - lpm_current_state[2]
* - 0010 - hndsk_current_state[2]
* - 0011 - shd_current_state[1]
* - 0100 - Reserved
* - 0101 - src_clock_ready
* - 0110 - ref_clk_en_dpllip
* - 0111 - ccm_pup_req
* - 1000 - mmdc_ch0_stop_ack (lpack)
* - 1001 - mmdc_ch1_stop_ack (lpack):
* - 1010 - Reserved
* - 1011 - Reserved
* - 1100 - src_power_gating_reset_done
* - 1101 - tzic_dsm_wakeup
* - 1110 - gpc_pdn_ack
* - 1111 - pll_lrf_sticky3
*/
//@{
#define BP_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL (0) //!< Bit position for CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL.
#define BM_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL (0x0000000f) //!< Bit mask for CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL.
//! @brief Get value of CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL from a register value.
#define BG_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL) >> BP_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL)
//! @brief Format value for bitfield CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL.
#define BF_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL) & BM_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the OBS_SPARE_OUTPUT_2_SEL field to a new value.
#define BW_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL(v) (HW_CCM_CTOR_WR((HW_CCM_CTOR_RD() & ~BM_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL) | BF_CCM_CTOR_OBS_SPARE_OUTPUT_2_SEL(v)))
#endif
//@}
/*! @name Register CCM_CTOR, field OBS_SPARE_OUTPUT_1_SEL[7:4] (RW)
*
* Selection of the signal to be generated on obs_output_1 (output of CCM) for observability on the
* pads.
*
* Values:
* - 0000 - ccm_system_in_wait_mode
* - 0001 - lpm_current_state[1]
* - 0010 - hndsk_current_state[1]
* - 0011 - Reserved
* - 0100 - ccm_ipg_wait
* - 0101 - Reserved
* - 0110 - dpll_en_dpllip
* - 0111 - ccm_pdn_4all_req
* - 1000 - eim_freq_change_ack
* - 1001 - ipu_freq_change_ack
* - 1010 - pll_lrf_sticky4
* - 1011 - Reserved
* - 1100 - arm_dsm_request
* - 1101 - Reserved
* - 1110 - gpc_pup_ack
* - 1111 - pll_lrf_sticky2
*/
//@{
#define BP_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL (4) //!< Bit position for CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL.
#define BM_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL (0x000000f0) //!< Bit mask for CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL.
//! @brief Get value of CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL from a register value.
#define BG_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL) >> BP_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL)
//! @brief Format value for bitfield CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL.
#define BF_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL) & BM_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the OBS_SPARE_OUTPUT_1_SEL field to a new value.
#define BW_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL(v) (HW_CCM_CTOR_WR((HW_CCM_CTOR_RD() & ~BM_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL) | BF_CCM_CTOR_OBS_SPARE_OUTPUT_1_SEL(v)))
#endif
//@}
/*! @name Register CCM_CTOR, field OBS_SPARE_OUTPUT_0_SEL[12:8] (RW)
*
* Selection of the signal to be generated on obs_output_0 (output of CCM) for observability on the
* pads.
*
* Values:
* - 00000 - ccm_system_in_stop_mode
* - 00001 - lpm_current_state[0]
* - 00010 - hndsk_current_state[0]
* - 00011 - shd_current_state[0]
* - 00100 - ccm_ipg_stop
* - 00101 - ccm_pdn_4arm_req
* - 00110 - mmdc_ch0_clk_change_req
* - 00111 - mmdc_ch1_clk_change_req
* - 01000 - Reserved
* - 01001 - Reserved
* - 01010 - pll_lrf_sticky1
* - 01011 - Reserved
* - 01100 - clk_src_on
* - 01101 - ipu_lpsr_wakeup_ack
* - 01110 - src_warm_dvfs_req
* - 01111 - Reserved
* - 10000 - Reserved
* - 10001 - Reserved
* - 10010 - Reserved
* - 10011 - mmdc_ch0/1_lpmd
* - 10100 - Reserved
* - 10101 - Reserved
* - 10110 - Reserved
* - 10111 - Reserved
* - 11000 - Reserved
* - 11001 - obs_input_6
* - 11010 - obs_input_0
* - 11011 - obs_input_1
* - 11100 - obs_input_2
* - 11101 - obs_input_3
* - 11110 - obs_input_4
* - 11111 - obs_input_5
*/
//@{
#define BP_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL (8) //!< Bit position for CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL.
#define BM_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL (0x00001f00) //!< Bit mask for CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL.
//! @brief Get value of CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL from a register value.
#define BG_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL) >> BP_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL)
//! @brief Format value for bitfield CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL.
#define BF_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL) & BM_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the OBS_SPARE_OUTPUT_0_SEL field to a new value.
#define BW_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL(v) (HW_CCM_CTOR_WR((HW_CCM_CTOR_RD() & ~BM_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL) | BF_CCM_CTOR_OBS_SPARE_OUTPUT_0_SEL(v)))
#endif
//@}
/*! @name Register CCM_CTOR, field OBS_EN[13] (RW)
*
* observability enable bit. this bit enables the output of the three observability muxes.
*
* Values:
* - 0 - Observability mux disabled.
* - 1 - Observability mux enabled.
*/
//@{
#define BP_CCM_CTOR_OBS_EN (13) //!< Bit position for CCM_CTOR_OBS_EN.
#define BM_CCM_CTOR_OBS_EN (0x00002000) //!< Bit mask for CCM_CTOR_OBS_EN.
//! @brief Get value of CCM_CTOR_OBS_EN from a register value.
#define BG_CCM_CTOR_OBS_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CTOR_OBS_EN) >> BP_CCM_CTOR_OBS_EN)
//! @brief Format value for bitfield CCM_CTOR_OBS_EN.
#define BF_CCM_CTOR_OBS_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CTOR_OBS_EN) & BM_CCM_CTOR_OBS_EN)
#ifndef __LANGUAGE_ASM__
//! @brief Set the OBS_EN field to a new value.
#define BW_CCM_CTOR_OBS_EN(v) (HW_CCM_CTOR_WR((HW_CCM_CTOR_RD() & ~BM_CCM_CTOR_OBS_EN) | BF_CCM_CTOR_OBS_EN(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CLPCR - CCM Low Power Control Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CLPCR - CCM Low Power Control Register (RW)
*
* Reset value: 0x00000079
*
* The figure below represents the CCM Low Power Control Register (CLPCR). The CLPCR register
* contains bits to control the low power modes operation.The table below provides its field
* descriptions.
*/
typedef union _hw_ccm_clpcr
{
reg32_t U;
struct _hw_ccm_clpcr_bitfields
{
unsigned LPM : 2; //!< [1:0] Setting the low power mode that system will enter on next assertion of dsm_request signal.
unsigned BYPASS_PMIC_VFUNCTIONAL_READY : 1; //!< [2] By asserting this bit CCM will bypass waiting for pmic_vfunctional_ready signal when coming out of STOP mode.
unsigned RESERVED0 : 2; //!< [4:3] Reserved
unsigned ARM_CLK_DIS_ON_LPM : 1; //!< [5] Define if ARM clocks (arm_clk, soc_mxclk, soc_pclk, soc_dbg_pclk, vl_wrck) will be disabled on wait mode.
unsigned SBYOS : 1; //!< [6] Standby clock oscillator bit.
unsigned DIS_REF_OSC : 1; //!< [7] dis_ref_osc - in run mode, software can manually control closing of external reference oscillator clock, i.e.
unsigned VSTBY : 1; //!< [8] Voltage standby request bit.
unsigned STBY_COUNT : 2; //!< [10:9] Standby counter definition.
unsigned COSC_PWRDOWN : 1; //!< [11] In run mode, software can manually control powering down of on chip oscillator, i.e.
unsigned RESERVED1 : 4; //!< [15:12] Reserved
unsigned WB_PER_AT_LPM : 1; //!< [16] Enable periphery charge pump for well biasing at low power mode (stop or wait)
unsigned RESERVED2 : 2; //!< [18:17] Reserved.
unsigned BYPASS_MMDC_CH0_LPM_HS : 1; //!< [19] Bypass handshake with mmdc_ch0 on next entrance to low power mode (wait or stop mode).
unsigned RESERVED3 : 1; //!< [20] Reserved
unsigned BYPASS_MMDC_CH1_LPM_HS : 1; //!< [21] Bypass handshake with mmdc_ch1 on next entrance to low power mode (wait or stop mode).
unsigned MASK_CORE0_WFI : 1; //!< [22] Mask WFI of core0 for entering low power mode
unsigned MASK_CORE1_WFI : 1; //!< [23] Mask WFI of core1 for entering low power mode
unsigned RESERVED4 : 2; //!< [25:24] Reserved
unsigned MASK_SCU_IDLE : 1; //!< [26] Mask SCU IDLE for entering low power mode
unsigned MASK_L2CC_IDLE : 1; //!< [27] Mask L2CC IDLE for entering low power mode.
unsigned RESERVED5 : 4; //!< [31:28] Reserved
} B;
} hw_ccm_clpcr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CLPCR register
*/
//@{
#define HW_CCM_CLPCR_ADDR (REGS_CCM_BASE + 0x54)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CLPCR (*(volatile hw_ccm_clpcr_t *) HW_CCM_CLPCR_ADDR)
#define HW_CCM_CLPCR_RD() (HW_CCM_CLPCR.U)
#define HW_CCM_CLPCR_WR(v) (HW_CCM_CLPCR.U = (v))
#define HW_CCM_CLPCR_SET(v) (HW_CCM_CLPCR_WR(HW_CCM_CLPCR_RD() | (v)))
#define HW_CCM_CLPCR_CLR(v) (HW_CCM_CLPCR_WR(HW_CCM_CLPCR_RD() & ~(v)))
#define HW_CCM_CLPCR_TOG(v) (HW_CCM_CLPCR_WR(HW_CCM_CLPCR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CLPCR bitfields
*/
/*! @name Register CCM_CLPCR, field LPM[1:0] (RW)
*
* Setting the low power mode that system will enter on next assertion of dsm_request signal.
*
* Values:
* - 00 - Remain in run mode
* - 01 - Transfer to wait mode
* - 10 - Transfer to stop mode
* - 11 - Reserved
*/
//@{
#define BP_CCM_CLPCR_LPM (0) //!< Bit position for CCM_CLPCR_LPM.
#define BM_CCM_CLPCR_LPM (0x00000003) //!< Bit mask for CCM_CLPCR_LPM.
//! @brief Get value of CCM_CLPCR_LPM from a register value.
#define BG_CCM_CLPCR_LPM(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_LPM) >> BP_CCM_CLPCR_LPM)
//! @brief Format value for bitfield CCM_CLPCR_LPM.
#define BF_CCM_CLPCR_LPM(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_LPM) & BM_CCM_CLPCR_LPM)
#ifndef __LANGUAGE_ASM__
//! @brief Set the LPM field to a new value.
#define BW_CCM_CLPCR_LPM(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_LPM) | BF_CCM_CLPCR_LPM(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field BYPASS_PMIC_VFUNCTIONAL_READY[2] (RW)
*
* By asserting this bit CCM will bypass waiting for pmic_vfunctional_ready signal when coming out
* of STOP mode. This should be used for PMIC's that don't support the pmic_vfunctional_ready
* signal.
*
* Values:
* - 0 - Don't bypass the pmic_vfunctional_ready signal - CCM will wait for it's assertion during exit of low
* power mode if standby voltage was enabled.
* - 1 - bypass the pmic_vfunctional_ready signal - CCM will not wait for it's assertion during exit of low
* power mode if standby voltage was enabled.
*/
//@{
#define BP_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY (2) //!< Bit position for CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY.
#define BM_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY (0x00000004) //!< Bit mask for CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY.
//! @brief Get value of CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY from a register value.
#define BG_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY) >> BP_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY)
//! @brief Format value for bitfield CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY.
#define BF_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY) & BM_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY)
#ifndef __LANGUAGE_ASM__
//! @brief Set the BYPASS_PMIC_VFUNCTIONAL_READY field to a new value.
#define BW_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY) | BF_CCM_CLPCR_BYPASS_PMIC_VFUNCTIONAL_READY(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field ARM_CLK_DIS_ON_LPM[5] (RW)
*
* Define if ARM clocks (arm_clk, soc_mxclk, soc_pclk, soc_dbg_pclk, vl_wrck) will be disabled on
* wait mode. This is useful for debug mode, when the user still wants to simulate entering wait
* mode and still keep ARM clock functioning. Note: software should not enable ARM power gating in
* wait mode if this bit is cleared.
*
* Values:
* - 0 - ARM clock enabled on wait mode.
* - 1 - ARM clock disabled on wait mode. (default).
*/
//@{
#define BP_CCM_CLPCR_ARM_CLK_DIS_ON_LPM (5) //!< Bit position for CCM_CLPCR_ARM_CLK_DIS_ON_LPM.
#define BM_CCM_CLPCR_ARM_CLK_DIS_ON_LPM (0x00000020) //!< Bit mask for CCM_CLPCR_ARM_CLK_DIS_ON_LPM.
//! @brief Get value of CCM_CLPCR_ARM_CLK_DIS_ON_LPM from a register value.
#define BG_CCM_CLPCR_ARM_CLK_DIS_ON_LPM(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_ARM_CLK_DIS_ON_LPM) >> BP_CCM_CLPCR_ARM_CLK_DIS_ON_LPM)
//! @brief Format value for bitfield CCM_CLPCR_ARM_CLK_DIS_ON_LPM.
#define BF_CCM_CLPCR_ARM_CLK_DIS_ON_LPM(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_ARM_CLK_DIS_ON_LPM) & BM_CCM_CLPCR_ARM_CLK_DIS_ON_LPM)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ARM_CLK_DIS_ON_LPM field to a new value.
#define BW_CCM_CLPCR_ARM_CLK_DIS_ON_LPM(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_ARM_CLK_DIS_ON_LPM) | BF_CCM_CLPCR_ARM_CLK_DIS_ON_LPM(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field SBYOS[6] (RW)
*
* Standby clock oscillator bit. This bit defines if cosc_pwrdown, which power down the on chip
* oscillator, will be asserted in stop mode. This bit is discarded if cosc_pwrdown='1' for the on
* chip oscillator.
*
* Values:
* - 0 - on chip oscillator will not be powered down, after next entrance to stop mode. (CCM_REF_EN_B will
* remain asserted - '0' and cosc_pwrdown will remain de asserted - '0')
* - 1 - on chip oscillator will be powered down, after next entrance to stop mode. (CCM_REF_EN_B will be
* deasserted - '1' and cosc_pwrdown will be asserted - '1'). (default). When returning from
* stop mode, external oscillator will be enabled again, on chip oscillator will return to
* oscillator mode , and after oscnt count ccm will continue with the exit from stop mode
* process.
*/
//@{
#define BP_CCM_CLPCR_SBYOS (6) //!< Bit position for CCM_CLPCR_SBYOS.
#define BM_CCM_CLPCR_SBYOS (0x00000040) //!< Bit mask for CCM_CLPCR_SBYOS.
//! @brief Get value of CCM_CLPCR_SBYOS from a register value.
#define BG_CCM_CLPCR_SBYOS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_SBYOS) >> BP_CCM_CLPCR_SBYOS)
//! @brief Format value for bitfield CCM_CLPCR_SBYOS.
#define BF_CCM_CLPCR_SBYOS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_SBYOS) & BM_CCM_CLPCR_SBYOS)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SBYOS field to a new value.
#define BW_CCM_CLPCR_SBYOS(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_SBYOS) | BF_CCM_CLPCR_SBYOS(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field DIS_REF_OSC[7] (RW)
*
* dis_ref_osc - in run mode, software can manually control closing of external reference oscillator
* clock, i.e. generating '1' on CCM_REF_EN_B signal. If software closed manually the external
* reference clock, then sbyos functionality will be bypassed. The manual closing of external
* reference oscilator should be performed only in case the reference oscilator is not the source of
* any clock generation. Note: When returning from stop mode, the PMIC_VSTBY_REQ will be deasserted
* (if it was asserted when entering stop mode), and CCM will wait for indication that functional
* voltage is ready (by sampling the assertion of pmic_vfuncional_ready) before continuing the
* process of exiting from stop mode. Please refer to stby_count bits.
*
* Values:
* - 0 - external high frequency oscillator will be enabled, i.e. CCM_REF_EN_B = '0'.(default)
* - 1 - external high frequency oscillator will be disabled, i.e. CCM_REF_EN_B = '1'
*/
//@{
#define BP_CCM_CLPCR_DIS_REF_OSC (7) //!< Bit position for CCM_CLPCR_DIS_REF_OSC.
#define BM_CCM_CLPCR_DIS_REF_OSC (0x00000080) //!< Bit mask for CCM_CLPCR_DIS_REF_OSC.
//! @brief Get value of CCM_CLPCR_DIS_REF_OSC from a register value.
#define BG_CCM_CLPCR_DIS_REF_OSC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_DIS_REF_OSC) >> BP_CCM_CLPCR_DIS_REF_OSC)
//! @brief Format value for bitfield CCM_CLPCR_DIS_REF_OSC.
#define BF_CCM_CLPCR_DIS_REF_OSC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_DIS_REF_OSC) & BM_CCM_CLPCR_DIS_REF_OSC)
#ifndef __LANGUAGE_ASM__
//! @brief Set the DIS_REF_OSC field to a new value.
#define BW_CCM_CLPCR_DIS_REF_OSC(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_DIS_REF_OSC) | BF_CCM_CLPCR_DIS_REF_OSC(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field VSTBY[8] (RW)
*
* Voltage standby request bit. This bit defines if PMIC_VSTBY_REQ pin, which notifies external
* power management IC to move from functional voltage to standby voltage, will be asserted in stop
* mode.
*
* Values:
* - 0 - voltage will not be changed to standby voltage after next entrance to stop mode. ( PMIC_VSTBY_REQ
* will remain negated - '0')
* - 1 - voltage will be requested to change to standby voltage after next entrance to stop mode. (
* PMIC_VSTBY_REQ will be asserted - '1').
*/
//@{
#define BP_CCM_CLPCR_VSTBY (8) //!< Bit position for CCM_CLPCR_VSTBY.
#define BM_CCM_CLPCR_VSTBY (0x00000100) //!< Bit mask for CCM_CLPCR_VSTBY.
//! @brief Get value of CCM_CLPCR_VSTBY from a register value.
#define BG_CCM_CLPCR_VSTBY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_VSTBY) >> BP_CCM_CLPCR_VSTBY)
//! @brief Format value for bitfield CCM_CLPCR_VSTBY.
#define BF_CCM_CLPCR_VSTBY(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_VSTBY) & BM_CCM_CLPCR_VSTBY)
#ifndef __LANGUAGE_ASM__
//! @brief Set the VSTBY field to a new value.
#define BW_CCM_CLPCR_VSTBY(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_VSTBY) | BF_CCM_CLPCR_VSTBY(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field STBY_COUNT[10:9] (RW)
*
* Standby counter definition. These two bits define, in the case of stop exit (if vstby bit was
* set), the amount of time CCM will wait between PMIC_VSTBY_REQ negation and the check of assertion
* of PMIC_VFUNCTIONAL_READY . *NOTE: clock cycles ratio depends on pmic_delay_scaler, defined by
* CGPR[0] bit.
*
* Values:
* - 00 - CCM will wait (1*pmic_delay_scaler)+1 ckil clock cycles
* - 01 - CCM will wait (3*pmic_delay_scaler)+1 ckil clock cycles
* - 10 - CCM will wait (7*pmic_delay_scaler)+1 ckil clock cycles
* - 11 - CCM will wait (15*pmic_delay_scaler)+1 ckil clock cycles
*/
//@{
#define BP_CCM_CLPCR_STBY_COUNT (9) //!< Bit position for CCM_CLPCR_STBY_COUNT.
#define BM_CCM_CLPCR_STBY_COUNT (0x00000600) //!< Bit mask for CCM_CLPCR_STBY_COUNT.
//! @brief Get value of CCM_CLPCR_STBY_COUNT from a register value.
#define BG_CCM_CLPCR_STBY_COUNT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_STBY_COUNT) >> BP_CCM_CLPCR_STBY_COUNT)
//! @brief Format value for bitfield CCM_CLPCR_STBY_COUNT.
#define BF_CCM_CLPCR_STBY_COUNT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_STBY_COUNT) & BM_CCM_CLPCR_STBY_COUNT)
#ifndef __LANGUAGE_ASM__
//! @brief Set the STBY_COUNT field to a new value.
#define BW_CCM_CLPCR_STBY_COUNT(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_STBY_COUNT) | BF_CCM_CLPCR_STBY_COUNT(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field COSC_PWRDOWN[11] (RW)
*
* In run mode, software can manually control powering down of on chip oscillator, i.e. generating
* '1' on cosc_pwrdown signal. If software manually powered down the on chip oscillator, then sbyos
* functionality for on chip oscillator will be bypassed. The manual closing of onchip oscillator
* should be performed only in case the reference oscilator is not the source of all the clocks
* generation.
*
* Values:
* - 0 - On chip oscillator will not be powered down, i.e. cosc_pwrdown = '0'.(default)
* - 1 - On chip oscillator will be powered down, i.e. cosc_pwrdown = '1'.
*/
//@{
#define BP_CCM_CLPCR_COSC_PWRDOWN (11) //!< Bit position for CCM_CLPCR_COSC_PWRDOWN.
#define BM_CCM_CLPCR_COSC_PWRDOWN (0x00000800) //!< Bit mask for CCM_CLPCR_COSC_PWRDOWN.
//! @brief Get value of CCM_CLPCR_COSC_PWRDOWN from a register value.
#define BG_CCM_CLPCR_COSC_PWRDOWN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_COSC_PWRDOWN) >> BP_CCM_CLPCR_COSC_PWRDOWN)
//! @brief Format value for bitfield CCM_CLPCR_COSC_PWRDOWN.
#define BF_CCM_CLPCR_COSC_PWRDOWN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_COSC_PWRDOWN) & BM_CCM_CLPCR_COSC_PWRDOWN)
#ifndef __LANGUAGE_ASM__
//! @brief Set the COSC_PWRDOWN field to a new value.
#define BW_CCM_CLPCR_COSC_PWRDOWN(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_COSC_PWRDOWN) | BF_CCM_CLPCR_COSC_PWRDOWN(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field WB_PER_AT_LPM[16] (RW)
*
* Enable periphery charge pump for well biasing at low power mode (stop or wait)
*
* Values:
* - 0 - Periphery charge pump won't be enabled at stop or wait low power mode
* - 1 - Periphery charge pump will be enabled at stop or wait low power mode
*/
//@{
#define BP_CCM_CLPCR_WB_PER_AT_LPM (16) //!< Bit position for CCM_CLPCR_WB_PER_AT_LPM.
#define BM_CCM_CLPCR_WB_PER_AT_LPM (0x00010000) //!< Bit mask for CCM_CLPCR_WB_PER_AT_LPM.
//! @brief Get value of CCM_CLPCR_WB_PER_AT_LPM from a register value.
#define BG_CCM_CLPCR_WB_PER_AT_LPM(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_WB_PER_AT_LPM) >> BP_CCM_CLPCR_WB_PER_AT_LPM)
//! @brief Format value for bitfield CCM_CLPCR_WB_PER_AT_LPM.
#define BF_CCM_CLPCR_WB_PER_AT_LPM(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_WB_PER_AT_LPM) & BM_CCM_CLPCR_WB_PER_AT_LPM)
#ifndef __LANGUAGE_ASM__
//! @brief Set the WB_PER_AT_LPM field to a new value.
#define BW_CCM_CLPCR_WB_PER_AT_LPM(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_WB_PER_AT_LPM) | BF_CCM_CLPCR_WB_PER_AT_LPM(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field BYPASS_MMDC_CH0_LPM_HS[19] (RW)
*
* Bypass handshake with mmdc_ch0 on next entrance to low power mode (wait or stop mode). CCM does
* not wait for the module's acknowledge. Handshake also will be bypassed, if CGR3 CG10 is set to
* gate fast mmdc_ch0 clock.
*
* Values:
* - 0 - handshake with mmdc_ch0 on next entrance to low power mode will be performed. (default).
* - 1 - handshake with mmdc_ch0 on next entrance to low power mode will be bypassed.
*/
//@{
#define BP_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS (19) //!< Bit position for CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS.
#define BM_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS (0x00080000) //!< Bit mask for CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS.
//! @brief Get value of CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS from a register value.
#define BG_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS) >> BP_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS)
//! @brief Format value for bitfield CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS.
#define BF_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS) & BM_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS)
#ifndef __LANGUAGE_ASM__
//! @brief Set the BYPASS_MMDC_CH0_LPM_HS field to a new value.
#define BW_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS) | BF_CCM_CLPCR_BYPASS_MMDC_CH0_LPM_HS(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field BYPASS_MMDC_CH1_LPM_HS[21] (RW)
*
* Bypass handshake with mmdc_ch1 on next entrance to low power mode (wait or stop mode). CCM does
* not wait for the module's acknowledge. Handshake also will be bypassed, if CGR3 CG10 is set to
* gate fast mmdc_ch1 clock.
*
* Values:
* - 0 - handshake with mmdc_ch1 on next entrance to low power mode will be performed. (default).
* - 1 - handshake with mmdc_ch1 on next entrance to low power mode will be bypassed.
*/
//@{
#define BP_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS (21) //!< Bit position for CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS.
#define BM_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS (0x00200000) //!< Bit mask for CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS.
//! @brief Get value of CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS from a register value.
#define BG_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS) >> BP_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS)
//! @brief Format value for bitfield CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS.
#define BF_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS) & BM_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS)
#ifndef __LANGUAGE_ASM__
//! @brief Set the BYPASS_MMDC_CH1_LPM_HS field to a new value.
#define BW_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS) | BF_CCM_CLPCR_BYPASS_MMDC_CH1_LPM_HS(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field MASK_CORE0_WFI[22] (RW)
*
* Mask WFI of core0 for entering low power mode Note: assertion of all bits[27:22] will generate
* low power mode request
*
* Values:
* - 0 - WFI of core0 is not masked
* - 1 - WFI of core0 is masked
*/
//@{
#define BP_CCM_CLPCR_MASK_CORE0_WFI (22) //!< Bit position for CCM_CLPCR_MASK_CORE0_WFI.
#define BM_CCM_CLPCR_MASK_CORE0_WFI (0x00400000) //!< Bit mask for CCM_CLPCR_MASK_CORE0_WFI.
//! @brief Get value of CCM_CLPCR_MASK_CORE0_WFI from a register value.
#define BG_CCM_CLPCR_MASK_CORE0_WFI(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_MASK_CORE0_WFI) >> BP_CCM_CLPCR_MASK_CORE0_WFI)
//! @brief Format value for bitfield CCM_CLPCR_MASK_CORE0_WFI.
#define BF_CCM_CLPCR_MASK_CORE0_WFI(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_MASK_CORE0_WFI) & BM_CCM_CLPCR_MASK_CORE0_WFI)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_CORE0_WFI field to a new value.
#define BW_CCM_CLPCR_MASK_CORE0_WFI(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_MASK_CORE0_WFI) | BF_CCM_CLPCR_MASK_CORE0_WFI(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field MASK_CORE1_WFI[23] (RW)
*
* Mask WFI of core1 for entering low power mode Note: assertion of all bits[27:22] will generate
* low power mode request
*
* Values:
* - 0 - WFI of core1 is not masked
* - 1 - WFI of core1 is masked
*/
//@{
#define BP_CCM_CLPCR_MASK_CORE1_WFI (23) //!< Bit position for CCM_CLPCR_MASK_CORE1_WFI.
#define BM_CCM_CLPCR_MASK_CORE1_WFI (0x00800000) //!< Bit mask for CCM_CLPCR_MASK_CORE1_WFI.
//! @brief Get value of CCM_CLPCR_MASK_CORE1_WFI from a register value.
#define BG_CCM_CLPCR_MASK_CORE1_WFI(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_MASK_CORE1_WFI) >> BP_CCM_CLPCR_MASK_CORE1_WFI)
//! @brief Format value for bitfield CCM_CLPCR_MASK_CORE1_WFI.
#define BF_CCM_CLPCR_MASK_CORE1_WFI(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_MASK_CORE1_WFI) & BM_CCM_CLPCR_MASK_CORE1_WFI)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_CORE1_WFI field to a new value.
#define BW_CCM_CLPCR_MASK_CORE1_WFI(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_MASK_CORE1_WFI) | BF_CCM_CLPCR_MASK_CORE1_WFI(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field MASK_SCU_IDLE[26] (RW)
*
* Mask SCU IDLE for entering low power mode Note: assertion of all bits[27:22] will generate low
* power mode request
*
* Values:
* - 0 - SCU IDLE is not masked
* - 1 - SCU IDLE is masked
*/
//@{
#define BP_CCM_CLPCR_MASK_SCU_IDLE (26) //!< Bit position for CCM_CLPCR_MASK_SCU_IDLE.
#define BM_CCM_CLPCR_MASK_SCU_IDLE (0x04000000) //!< Bit mask for CCM_CLPCR_MASK_SCU_IDLE.
//! @brief Get value of CCM_CLPCR_MASK_SCU_IDLE from a register value.
#define BG_CCM_CLPCR_MASK_SCU_IDLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_MASK_SCU_IDLE) >> BP_CCM_CLPCR_MASK_SCU_IDLE)
//! @brief Format value for bitfield CCM_CLPCR_MASK_SCU_IDLE.
#define BF_CCM_CLPCR_MASK_SCU_IDLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_MASK_SCU_IDLE) & BM_CCM_CLPCR_MASK_SCU_IDLE)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_SCU_IDLE field to a new value.
#define BW_CCM_CLPCR_MASK_SCU_IDLE(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_MASK_SCU_IDLE) | BF_CCM_CLPCR_MASK_SCU_IDLE(v)))
#endif
//@}
/*! @name Register CCM_CLPCR, field MASK_L2CC_IDLE[27] (RW)
*
* Mask L2CC IDLE for entering low power mode. Note: assertion of all bits[27:22] will generate low
* power mode request
*
* Values:
* - 0 - L2CC IDLE is not masked
* - 1 - L2CC IDLE is masked
*/
//@{
#define BP_CCM_CLPCR_MASK_L2CC_IDLE (27) //!< Bit position for CCM_CLPCR_MASK_L2CC_IDLE.
#define BM_CCM_CLPCR_MASK_L2CC_IDLE (0x08000000) //!< Bit mask for CCM_CLPCR_MASK_L2CC_IDLE.
//! @brief Get value of CCM_CLPCR_MASK_L2CC_IDLE from a register value.
#define BG_CCM_CLPCR_MASK_L2CC_IDLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CLPCR_MASK_L2CC_IDLE) >> BP_CCM_CLPCR_MASK_L2CC_IDLE)
//! @brief Format value for bitfield CCM_CLPCR_MASK_L2CC_IDLE.
#define BF_CCM_CLPCR_MASK_L2CC_IDLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CLPCR_MASK_L2CC_IDLE) & BM_CCM_CLPCR_MASK_L2CC_IDLE)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_L2CC_IDLE field to a new value.
#define BW_CCM_CLPCR_MASK_L2CC_IDLE(v) (HW_CCM_CLPCR_WR((HW_CCM_CLPCR_RD() & ~BM_CCM_CLPCR_MASK_L2CC_IDLE) | BF_CCM_CLPCR_MASK_L2CC_IDLE(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CISR - CCM Interrupt Status Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CISR - CCM Interrupt Status Register (W1C)
*
* Reset value: 0x00000000
*
* The figure below represents the CCM Interrupt Status Register (CISR). This is a write one to
* clear register. Once a interrupt is generated, software should write one to clear it. The table
* below provides its field descriptions. * Note: ipi_int_1 can be masked by ipi_int_1_mask bit.
* ipi_int_2 can be masked by ipi_int_2_mask bit.
*/
typedef union _hw_ccm_cisr
{
reg32_t U;
struct _hw_ccm_cisr_bitfields
{
unsigned LRF_PLL : 1; //!< [0] Interrupt ipi_int_2 generated due to lock of all enabled and not bypaseed pll's
unsigned RESERVED0 : 5; //!< [5:1] Reserved
unsigned COSC_READY : 1; //!< [6] Interrupt ipi_int_2 generated due to on board oscillator ready, i.e.
unsigned RESERVED1 : 10; //!< [16:7] Reserved
unsigned AXI_PODF_LOADED : 1; //!< [17] Interrupt ipi_int_1 generated due to frequency change of axi_a_podf
unsigned AXI_B_PODF_LOADED : 1; //!< [18] Interrupt ipi_int_1 generated due to frequency change of axi_b_podf
unsigned PERIPH2_CLK_SEL_LOADED : 1; //!< [19] Interrupt ipi_int_1 generated due to frequency change of periph2_clk_sel
unsigned AHB_PODF_LOADED : 1; //!< [20] Interrupt ipi_int_1 generated due to frequency change of ahb_podf
unsigned MMDC_CH1_PODF_LOADED : 1; //!< [21] Interrupt ipi_int_1 generated due to frequency change of mmdc_ch0_podf_ loaded
unsigned PERIPH_CLK_SEL_LOADED : 1; //!< [22] Interrupt ipi_int_1 generated due to update of periph_clk_sel.
unsigned MMDC_CH0_PODF_LOADED : 1; //!< [23] Interrupt ipi_int_1 generated due to update of mmdc_ch0_axi_podf.
unsigned RESERVED2 : 2; //!< [25:24] Reserved
unsigned ARM_PODF_LOADED : 1; //!< [26] Interrupt ipi_int_1 generated due to frequency change of arm_podf.
unsigned RESERVED3 : 5; //!< [31:27] Reserved
} B;
} hw_ccm_cisr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CISR register
*/
//@{
#define HW_CCM_CISR_ADDR (REGS_CCM_BASE + 0x58)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CISR (*(volatile hw_ccm_cisr_t *) HW_CCM_CISR_ADDR)
#define HW_CCM_CISR_RD() (HW_CCM_CISR.U)
#define HW_CCM_CISR_WR(v) (HW_CCM_CISR.U = (v))
#define HW_CCM_CISR_SET(v) (HW_CCM_CISR_WR(HW_CCM_CISR_RD() | (v)))
#define HW_CCM_CISR_CLR(v) (HW_CCM_CISR_WR(HW_CCM_CISR_RD() & ~(v)))
#define HW_CCM_CISR_TOG(v) (HW_CCM_CISR_WR(HW_CCM_CISR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CISR bitfields
*/
/*! @name Register CCM_CISR, field LRF_PLL[0] (W1C)
*
* Interrupt ipi_int_2 generated due to lock of all enabled and not bypaseed pll's
*
* Values:
* - 0 - interrupt is not genrerated due to lock ready of all enabled and not bypaseed pll's
* - 1 - interrupt genrerated due to lock ready of all enabled and not bypaseed pll's
*/
//@{
#define BP_CCM_CISR_LRF_PLL (0) //!< Bit position for CCM_CISR_LRF_PLL.
#define BM_CCM_CISR_LRF_PLL (0x00000001) //!< Bit mask for CCM_CISR_LRF_PLL.
//! @brief Get value of CCM_CISR_LRF_PLL from a register value.
#define BG_CCM_CISR_LRF_PLL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_LRF_PLL) >> BP_CCM_CISR_LRF_PLL)
//! @brief Format value for bitfield CCM_CISR_LRF_PLL.
#define BF_CCM_CISR_LRF_PLL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CISR_LRF_PLL) & BM_CCM_CISR_LRF_PLL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the LRF_PLL field to a new value.
#define BW_CCM_CISR_LRF_PLL(v) (HW_CCM_CISR_WR((HW_CCM_CISR_RD() & ~BM_CCM_CISR_LRF_PLL) | BF_CCM_CISR_LRF_PLL(v)))
#endif
//@}
/*! @name Register CCM_CISR, field COSC_READY[6] (W1C)
*
* Interrupt ipi_int_2 generated due to on board oscillator ready, i.e. oscnt has finished counting.
*
* Values:
* - 0 - interrupt is not genrerated due to on board oscillator ready
* - 1 - interrupt genrerated due to on board oscillator ready
*/
//@{
#define BP_CCM_CISR_COSC_READY (6) //!< Bit position for CCM_CISR_COSC_READY.
#define BM_CCM_CISR_COSC_READY (0x00000040) //!< Bit mask for CCM_CISR_COSC_READY.
//! @brief Get value of CCM_CISR_COSC_READY from a register value.
#define BG_CCM_CISR_COSC_READY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_COSC_READY) >> BP_CCM_CISR_COSC_READY)
//! @brief Format value for bitfield CCM_CISR_COSC_READY.
#define BF_CCM_CISR_COSC_READY(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CISR_COSC_READY) & BM_CCM_CISR_COSC_READY)
#ifndef __LANGUAGE_ASM__
//! @brief Set the COSC_READY field to a new value.
#define BW_CCM_CISR_COSC_READY(v) (HW_CCM_CISR_WR((HW_CCM_CISR_RD() & ~BM_CCM_CISR_COSC_READY) | BF_CCM_CISR_COSC_READY(v)))
#endif
//@}
/*! @name Register CCM_CISR, field AXI_PODF_LOADED[17] (W1C)
*
* Interrupt ipi_int_1 generated due to frequency change of axi_a_podf
*
* Values:
* - 0 - interrupt is not genrerated due to frequency change of axi_a_podf
* - 1 - interrupt genrerated due to frequency change of axi_a_podf
*/
//@{
#define BP_CCM_CISR_AXI_PODF_LOADED (17) //!< Bit position for CCM_CISR_AXI_PODF_LOADED.
#define BM_CCM_CISR_AXI_PODF_LOADED (0x00020000) //!< Bit mask for CCM_CISR_AXI_PODF_LOADED.
//! @brief Get value of CCM_CISR_AXI_PODF_LOADED from a register value.
#define BG_CCM_CISR_AXI_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_AXI_PODF_LOADED) >> BP_CCM_CISR_AXI_PODF_LOADED)
//! @brief Format value for bitfield CCM_CISR_AXI_PODF_LOADED.
#define BF_CCM_CISR_AXI_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CISR_AXI_PODF_LOADED) & BM_CCM_CISR_AXI_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the AXI_PODF_LOADED field to a new value.
#define BW_CCM_CISR_AXI_PODF_LOADED(v) (HW_CCM_CISR_WR((HW_CCM_CISR_RD() & ~BM_CCM_CISR_AXI_PODF_LOADED) | BF_CCM_CISR_AXI_PODF_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CISR, field AXI_B_PODF_LOADED[18] (ROZ)
*
* Interrupt ipi_int_1 generated due to frequency change of axi_b_podf
*
* Values:
* - 0 - interrupt is not genrerated due to frequency change of axi_b_podf
* - 1 - interrupt genrerated due to frequency change of axi_b_podf
*/
//@{
#define BP_CCM_CISR_AXI_B_PODF_LOADED (18) //!< Bit position for CCM_CISR_AXI_B_PODF_LOADED.
#define BM_CCM_CISR_AXI_B_PODF_LOADED (0x00040000) //!< Bit mask for CCM_CISR_AXI_B_PODF_LOADED.
//! @brief Get value of CCM_CISR_AXI_B_PODF_LOADED from a register value.
#define BG_CCM_CISR_AXI_B_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_AXI_B_PODF_LOADED) >> BP_CCM_CISR_AXI_B_PODF_LOADED)
//@}
/*! @name Register CCM_CISR, field PERIPH2_CLK_SEL_LOADED[19] (W1C)
*
* Interrupt ipi_int_1 generated due to frequency change of periph2_clk_sel
*
* Values:
* - 0 - interrupt is not genrerated due to frequency change of periph2_clk_sel
* - 1 - interrupt genrerated due to frequency change of periph2_clk_sel
*/
//@{
#define BP_CCM_CISR_PERIPH2_CLK_SEL_LOADED (19) //!< Bit position for CCM_CISR_PERIPH2_CLK_SEL_LOADED.
#define BM_CCM_CISR_PERIPH2_CLK_SEL_LOADED (0x00080000) //!< Bit mask for CCM_CISR_PERIPH2_CLK_SEL_LOADED.
//! @brief Get value of CCM_CISR_PERIPH2_CLK_SEL_LOADED from a register value.
#define BG_CCM_CISR_PERIPH2_CLK_SEL_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_PERIPH2_CLK_SEL_LOADED) >> BP_CCM_CISR_PERIPH2_CLK_SEL_LOADED)
//! @brief Format value for bitfield CCM_CISR_PERIPH2_CLK_SEL_LOADED.
#define BF_CCM_CISR_PERIPH2_CLK_SEL_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CISR_PERIPH2_CLK_SEL_LOADED) & BM_CCM_CISR_PERIPH2_CLK_SEL_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PERIPH2_CLK_SEL_LOADED field to a new value.
#define BW_CCM_CISR_PERIPH2_CLK_SEL_LOADED(v) (HW_CCM_CISR_WR((HW_CCM_CISR_RD() & ~BM_CCM_CISR_PERIPH2_CLK_SEL_LOADED) | BF_CCM_CISR_PERIPH2_CLK_SEL_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CISR, field AHB_PODF_LOADED[20] (W1C)
*
* Interrupt ipi_int_1 generated due to frequency change of ahb_podf
*
* Values:
* - 0 - interrupt is not genrerated due to frequency change of ahb_podf
* - 1 - interrupt genrerated due to frequency change of ahb_podf
*/
//@{
#define BP_CCM_CISR_AHB_PODF_LOADED (20) //!< Bit position for CCM_CISR_AHB_PODF_LOADED.
#define BM_CCM_CISR_AHB_PODF_LOADED (0x00100000) //!< Bit mask for CCM_CISR_AHB_PODF_LOADED.
//! @brief Get value of CCM_CISR_AHB_PODF_LOADED from a register value.
#define BG_CCM_CISR_AHB_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_AHB_PODF_LOADED) >> BP_CCM_CISR_AHB_PODF_LOADED)
//! @brief Format value for bitfield CCM_CISR_AHB_PODF_LOADED.
#define BF_CCM_CISR_AHB_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CISR_AHB_PODF_LOADED) & BM_CCM_CISR_AHB_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the AHB_PODF_LOADED field to a new value.
#define BW_CCM_CISR_AHB_PODF_LOADED(v) (HW_CCM_CISR_WR((HW_CCM_CISR_RD() & ~BM_CCM_CISR_AHB_PODF_LOADED) | BF_CCM_CISR_AHB_PODF_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CISR, field MMDC_CH1_PODF_LOADED[21] (W1C)
*
* Interrupt ipi_int_1 generated due to frequency change of mmdc_ch0_podf_ loaded
*
* Values:
* - 0 - interrupt is not genrerated due to frequency change of mmdc_ch0_podf_ loaded
* - 1 - interrupt genrerated due to frequency change of mmdc_ch0_podf_ loaded
*/
//@{
#define BP_CCM_CISR_MMDC_CH1_PODF_LOADED (21) //!< Bit position for CCM_CISR_MMDC_CH1_PODF_LOADED.
#define BM_CCM_CISR_MMDC_CH1_PODF_LOADED (0x00200000) //!< Bit mask for CCM_CISR_MMDC_CH1_PODF_LOADED.
//! @brief Get value of CCM_CISR_MMDC_CH1_PODF_LOADED from a register value.
#define BG_CCM_CISR_MMDC_CH1_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_MMDC_CH1_PODF_LOADED) >> BP_CCM_CISR_MMDC_CH1_PODF_LOADED)
//! @brief Format value for bitfield CCM_CISR_MMDC_CH1_PODF_LOADED.
#define BF_CCM_CISR_MMDC_CH1_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CISR_MMDC_CH1_PODF_LOADED) & BM_CCM_CISR_MMDC_CH1_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MMDC_CH1_PODF_LOADED field to a new value.
#define BW_CCM_CISR_MMDC_CH1_PODF_LOADED(v) (HW_CCM_CISR_WR((HW_CCM_CISR_RD() & ~BM_CCM_CISR_MMDC_CH1_PODF_LOADED) | BF_CCM_CISR_MMDC_CH1_PODF_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CISR, field PERIPH_CLK_SEL_LOADED[22] (W1C)
*
* Interrupt ipi_int_1 generated due to update of periph_clk_sel.
*
* Values:
* - 0 - interrupt is not genrerated due to update of periph_clk_sel.
* - 1 - interrupt genrerated due to update of periph_clk_sel.
*/
//@{
#define BP_CCM_CISR_PERIPH_CLK_SEL_LOADED (22) //!< Bit position for CCM_CISR_PERIPH_CLK_SEL_LOADED.
#define BM_CCM_CISR_PERIPH_CLK_SEL_LOADED (0x00400000) //!< Bit mask for CCM_CISR_PERIPH_CLK_SEL_LOADED.
//! @brief Get value of CCM_CISR_PERIPH_CLK_SEL_LOADED from a register value.
#define BG_CCM_CISR_PERIPH_CLK_SEL_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_PERIPH_CLK_SEL_LOADED) >> BP_CCM_CISR_PERIPH_CLK_SEL_LOADED)
//! @brief Format value for bitfield CCM_CISR_PERIPH_CLK_SEL_LOADED.
#define BF_CCM_CISR_PERIPH_CLK_SEL_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CISR_PERIPH_CLK_SEL_LOADED) & BM_CCM_CISR_PERIPH_CLK_SEL_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PERIPH_CLK_SEL_LOADED field to a new value.
#define BW_CCM_CISR_PERIPH_CLK_SEL_LOADED(v) (HW_CCM_CISR_WR((HW_CCM_CISR_RD() & ~BM_CCM_CISR_PERIPH_CLK_SEL_LOADED) | BF_CCM_CISR_PERIPH_CLK_SEL_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CISR, field MMDC_CH0_PODF_LOADED[23] (W1C)
*
* Interrupt ipi_int_1 generated due to update of mmdc_ch0_axi_podf.
*
* Values:
* - 0 - interrupt is not genrerated due to update of mmdc_ch0_axi_podf.
* - 1 - interrupt genrerated due to update of mmdc_ch0_axi_podf*
*/
//@{
#define BP_CCM_CISR_MMDC_CH0_PODF_LOADED (23) //!< Bit position for CCM_CISR_MMDC_CH0_PODF_LOADED.
#define BM_CCM_CISR_MMDC_CH0_PODF_LOADED (0x00800000) //!< Bit mask for CCM_CISR_MMDC_CH0_PODF_LOADED.
//! @brief Get value of CCM_CISR_MMDC_CH0_PODF_LOADED from a register value.
#define BG_CCM_CISR_MMDC_CH0_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_MMDC_CH0_PODF_LOADED) >> BP_CCM_CISR_MMDC_CH0_PODF_LOADED)
//! @brief Format value for bitfield CCM_CISR_MMDC_CH0_PODF_LOADED.
#define BF_CCM_CISR_MMDC_CH0_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CISR_MMDC_CH0_PODF_LOADED) & BM_CCM_CISR_MMDC_CH0_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MMDC_CH0_PODF_LOADED field to a new value.
#define BW_CCM_CISR_MMDC_CH0_PODF_LOADED(v) (HW_CCM_CISR_WR((HW_CCM_CISR_RD() & ~BM_CCM_CISR_MMDC_CH0_PODF_LOADED) | BF_CCM_CISR_MMDC_CH0_PODF_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CISR, field ARM_PODF_LOADED[26] (W1C)
*
* Interrupt ipi_int_1 generated due to frequency change of arm_podf. The interrupt will commence
* only if arm_podf is loaded during a arm dvfs operation.
*
* Values:
* - 0 - interrupt is not genrerated due to frequency change of arm_podf
* - 1 - interrupt genrerated due to frequency change of arm_podf
*/
//@{
#define BP_CCM_CISR_ARM_PODF_LOADED (26) //!< Bit position for CCM_CISR_ARM_PODF_LOADED.
#define BM_CCM_CISR_ARM_PODF_LOADED (0x04000000) //!< Bit mask for CCM_CISR_ARM_PODF_LOADED.
//! @brief Get value of CCM_CISR_ARM_PODF_LOADED from a register value.
#define BG_CCM_CISR_ARM_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CISR_ARM_PODF_LOADED) >> BP_CCM_CISR_ARM_PODF_LOADED)
//! @brief Format value for bitfield CCM_CISR_ARM_PODF_LOADED.
#define BF_CCM_CISR_ARM_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CISR_ARM_PODF_LOADED) & BM_CCM_CISR_ARM_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ARM_PODF_LOADED field to a new value.
#define BW_CCM_CISR_ARM_PODF_LOADED(v) (HW_CCM_CISR_WR((HW_CCM_CISR_RD() & ~BM_CCM_CISR_ARM_PODF_LOADED) | BF_CCM_CISR_ARM_PODF_LOADED(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CIMR - CCM Interrupt Mask Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CIMR - CCM Interrupt Mask Register (RW)
*
* Reset value: 0xffffffff
*
* The figure below represents the CCM Interrupt Mask Register (CIMR). The table below provides its
* field descriptions.
*/
typedef union _hw_ccm_cimr
{
reg32_t U;
struct _hw_ccm_cimr_bitfields
{
unsigned MASK_LRF_PLL : 1; //!< [0] mask interrupt generation due to lrf of pll's
unsigned RESERVED0 : 5; //!< [5:1] Reserved
unsigned MASK_COSC_READY : 1; //!< [6] mask interrupt generation due to on board oscillator ready
unsigned RESERVED1 : 10; //!< [16:7] Reserved
unsigned MASK_AXI_PODF_LOADED : 1; //!< [17] mask interrupt generation due to frequency change of axi_podf
unsigned MASK_AXI_B_PODF_LOADED : 1; //!< [18] mask interrupt generation due to frequency change of axi_b_podf
unsigned MASK_PERIPH2_CLK_SEL_LOADED : 1; //!< [19] mask interrupt generation due to update of periph2_clk_sel.
unsigned MASK_AHB_PODF_LOADED : 1; //!< [20] mask interrupt generation due to frequency change of ahb_podf
unsigned MASK_MMDC_CH1_PODF_LOADED : 1; //!< [21] mask interrupt generation due to update of mask_mmdc_ch1_podf
unsigned MASK_PERIPH_CLK_SEL_LOADED : 1; //!< [22] mask interrupt generation due to update of periph_clk_sel.
unsigned MASK_MMDC_CH0_PODF_LOADED : 1; //!< [23] mask interrupt generation due to update of mask_mmdc_ch0_podf
unsigned RESERVED2 : 2; //!< [25:24] Reserved
unsigned ARM_PODF_LOADED : 1; //!< [26] mask interrupt generation due to frequency change of arm_podf
unsigned RESERVED3 : 5; //!< [31:27] Reserved
} B;
} hw_ccm_cimr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CIMR register
*/
//@{
#define HW_CCM_CIMR_ADDR (REGS_CCM_BASE + 0x5c)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CIMR (*(volatile hw_ccm_cimr_t *) HW_CCM_CIMR_ADDR)
#define HW_CCM_CIMR_RD() (HW_CCM_CIMR.U)
#define HW_CCM_CIMR_WR(v) (HW_CCM_CIMR.U = (v))
#define HW_CCM_CIMR_SET(v) (HW_CCM_CIMR_WR(HW_CCM_CIMR_RD() | (v)))
#define HW_CCM_CIMR_CLR(v) (HW_CCM_CIMR_WR(HW_CCM_CIMR_RD() & ~(v)))
#define HW_CCM_CIMR_TOG(v) (HW_CCM_CIMR_WR(HW_CCM_CIMR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CIMR bitfields
*/
/*! @name Register CCM_CIMR, field MASK_LRF_PLL[0] (RW)
*
* mask interrupt generation due to lrf of pll's
*
* Values:
* - 0 - don't mask interrupt due to lrf of pll's - interrupt will be created
* - 1 - mask interrupt due to lrf of pll's
*/
//@{
#define BP_CCM_CIMR_MASK_LRF_PLL (0) //!< Bit position for CCM_CIMR_MASK_LRF_PLL.
#define BM_CCM_CIMR_MASK_LRF_PLL (0x00000001) //!< Bit mask for CCM_CIMR_MASK_LRF_PLL.
//! @brief Get value of CCM_CIMR_MASK_LRF_PLL from a register value.
#define BG_CCM_CIMR_MASK_LRF_PLL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_MASK_LRF_PLL) >> BP_CCM_CIMR_MASK_LRF_PLL)
//! @brief Format value for bitfield CCM_CIMR_MASK_LRF_PLL.
#define BF_CCM_CIMR_MASK_LRF_PLL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CIMR_MASK_LRF_PLL) & BM_CCM_CIMR_MASK_LRF_PLL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_LRF_PLL field to a new value.
#define BW_CCM_CIMR_MASK_LRF_PLL(v) (HW_CCM_CIMR_WR((HW_CCM_CIMR_RD() & ~BM_CCM_CIMR_MASK_LRF_PLL) | BF_CCM_CIMR_MASK_LRF_PLL(v)))
#endif
//@}
/*! @name Register CCM_CIMR, field MASK_COSC_READY[6] (RW)
*
* mask interrupt generation due to on board oscillator ready
*
* Values:
* - 0 - don't mask interrupt due to on board oscillator ready - interrupt will be created
* - 1 - mask interrupt due to on board oscillator ready
*/
//@{
#define BP_CCM_CIMR_MASK_COSC_READY (6) //!< Bit position for CCM_CIMR_MASK_COSC_READY.
#define BM_CCM_CIMR_MASK_COSC_READY (0x00000040) //!< Bit mask for CCM_CIMR_MASK_COSC_READY.
//! @brief Get value of CCM_CIMR_MASK_COSC_READY from a register value.
#define BG_CCM_CIMR_MASK_COSC_READY(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_MASK_COSC_READY) >> BP_CCM_CIMR_MASK_COSC_READY)
//! @brief Format value for bitfield CCM_CIMR_MASK_COSC_READY.
#define BF_CCM_CIMR_MASK_COSC_READY(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CIMR_MASK_COSC_READY) & BM_CCM_CIMR_MASK_COSC_READY)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_COSC_READY field to a new value.
#define BW_CCM_CIMR_MASK_COSC_READY(v) (HW_CCM_CIMR_WR((HW_CCM_CIMR_RD() & ~BM_CCM_CIMR_MASK_COSC_READY) | BF_CCM_CIMR_MASK_COSC_READY(v)))
#endif
//@}
/*! @name Register CCM_CIMR, field MASK_AXI_PODF_LOADED[17] (RW)
*
* mask interrupt generation due to frequency change of axi_podf
*
* Values:
* - 0 - don't mask interrupt due to frequency change of axi_podf - interrupt will be created
* - 1 - mask interrupt due to frequency change of axi_podf
*/
//@{
#define BP_CCM_CIMR_MASK_AXI_PODF_LOADED (17) //!< Bit position for CCM_CIMR_MASK_AXI_PODF_LOADED.
#define BM_CCM_CIMR_MASK_AXI_PODF_LOADED (0x00020000) //!< Bit mask for CCM_CIMR_MASK_AXI_PODF_LOADED.
//! @brief Get value of CCM_CIMR_MASK_AXI_PODF_LOADED from a register value.
#define BG_CCM_CIMR_MASK_AXI_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_MASK_AXI_PODF_LOADED) >> BP_CCM_CIMR_MASK_AXI_PODF_LOADED)
//! @brief Format value for bitfield CCM_CIMR_MASK_AXI_PODF_LOADED.
#define BF_CCM_CIMR_MASK_AXI_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CIMR_MASK_AXI_PODF_LOADED) & BM_CCM_CIMR_MASK_AXI_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_AXI_PODF_LOADED field to a new value.
#define BW_CCM_CIMR_MASK_AXI_PODF_LOADED(v) (HW_CCM_CIMR_WR((HW_CCM_CIMR_RD() & ~BM_CCM_CIMR_MASK_AXI_PODF_LOADED) | BF_CCM_CIMR_MASK_AXI_PODF_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CIMR, field MASK_AXI_B_PODF_LOADED[18] (RO)
*
* mask interrupt generation due to frequency change of axi_b_podf
*
* Values:
* - 0 - don't mask interrupt due to frequency change of axi_b_podf - interrupt will be created
* - 1 - mask interrupt due to frequency change of axi_b_podf
*/
//@{
#define BP_CCM_CIMR_MASK_AXI_B_PODF_LOADED (18) //!< Bit position for CCM_CIMR_MASK_AXI_B_PODF_LOADED.
#define BM_CCM_CIMR_MASK_AXI_B_PODF_LOADED (0x00040000) //!< Bit mask for CCM_CIMR_MASK_AXI_B_PODF_LOADED.
//! @brief Get value of CCM_CIMR_MASK_AXI_B_PODF_LOADED from a register value.
#define BG_CCM_CIMR_MASK_AXI_B_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_MASK_AXI_B_PODF_LOADED) >> BP_CCM_CIMR_MASK_AXI_B_PODF_LOADED)
//@}
/*! @name Register CCM_CIMR, field MASK_PERIPH2_CLK_SEL_LOADED[19] (RW)
*
* mask interrupt generation due to update of periph2_clk_sel.
*
* Values:
* - 0 - don't mask interrupt due to update of periph2_clk_sel - interrupt will be created
* - 1 - mask interrupt due to update of periph2_clk_sel
*/
//@{
#define BP_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED (19) //!< Bit position for CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED.
#define BM_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED (0x00080000) //!< Bit mask for CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED.
//! @brief Get value of CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED from a register value.
#define BG_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED) >> BP_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED)
//! @brief Format value for bitfield CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED.
#define BF_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED) & BM_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_PERIPH2_CLK_SEL_LOADED field to a new value.
#define BW_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED(v) (HW_CCM_CIMR_WR((HW_CCM_CIMR_RD() & ~BM_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED) | BF_CCM_CIMR_MASK_PERIPH2_CLK_SEL_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CIMR, field MASK_AHB_PODF_LOADED[20] (RW)
*
* mask interrupt generation due to frequency change of ahb_podf
*
* Values:
* - 0 - don't mask interrupt due to frequency change of ahb_podf - interrupt will be created
* - 1 - mask interrupt due to frequency change of ahb_podf
*/
//@{
#define BP_CCM_CIMR_MASK_AHB_PODF_LOADED (20) //!< Bit position for CCM_CIMR_MASK_AHB_PODF_LOADED.
#define BM_CCM_CIMR_MASK_AHB_PODF_LOADED (0x00100000) //!< Bit mask for CCM_CIMR_MASK_AHB_PODF_LOADED.
//! @brief Get value of CCM_CIMR_MASK_AHB_PODF_LOADED from a register value.
#define BG_CCM_CIMR_MASK_AHB_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_MASK_AHB_PODF_LOADED) >> BP_CCM_CIMR_MASK_AHB_PODF_LOADED)
//! @brief Format value for bitfield CCM_CIMR_MASK_AHB_PODF_LOADED.
#define BF_CCM_CIMR_MASK_AHB_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CIMR_MASK_AHB_PODF_LOADED) & BM_CCM_CIMR_MASK_AHB_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_AHB_PODF_LOADED field to a new value.
#define BW_CCM_CIMR_MASK_AHB_PODF_LOADED(v) (HW_CCM_CIMR_WR((HW_CCM_CIMR_RD() & ~BM_CCM_CIMR_MASK_AHB_PODF_LOADED) | BF_CCM_CIMR_MASK_AHB_PODF_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CIMR, field MASK_MMDC_CH1_PODF_LOADED[21] (RW)
*
* mask interrupt generation due to update of mask_mmdc_ch1_podf
*
* Values:
* - 0 - don't mask interrupt due to update of mask_mmdc_ch1_podf - interrupt will be created
* - 1 - mask interrupt due to update of mask_mmdc_ch1_podf
*/
//@{
#define BP_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED (21) //!< Bit position for CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED.
#define BM_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED (0x00200000) //!< Bit mask for CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED.
//! @brief Get value of CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED from a register value.
#define BG_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED) >> BP_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED)
//! @brief Format value for bitfield CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED.
#define BF_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED) & BM_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_MMDC_CH1_PODF_LOADED field to a new value.
#define BW_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED(v) (HW_CCM_CIMR_WR((HW_CCM_CIMR_RD() & ~BM_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED) | BF_CCM_CIMR_MASK_MMDC_CH1_PODF_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CIMR, field MASK_PERIPH_CLK_SEL_LOADED[22] (RW)
*
* mask interrupt generation due to update of periph_clk_sel.
*
* Values:
* - 0 - don't mask interrupt due to update of periph_clk_sel - interrupt will be created
* - 1 - mask interrupt due to update of periph_clk_sel
*/
//@{
#define BP_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED (22) //!< Bit position for CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED.
#define BM_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED (0x00400000) //!< Bit mask for CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED.
//! @brief Get value of CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED from a register value.
#define BG_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED) >> BP_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED)
//! @brief Format value for bitfield CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED.
#define BF_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED) & BM_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_PERIPH_CLK_SEL_LOADED field to a new value.
#define BW_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED(v) (HW_CCM_CIMR_WR((HW_CCM_CIMR_RD() & ~BM_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED) | BF_CCM_CIMR_MASK_PERIPH_CLK_SEL_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CIMR, field MASK_MMDC_CH0_PODF_LOADED[23] (RW)
*
* mask interrupt generation due to update of mask_mmdc_ch0_podf
*
* Values:
* - 0 - don't mask interrupt due to update of mask_mmdc_ch0_podf - interrupt will be created
* - 1 - mask interrupt due to update of mask_mmdc_ch0_podf
*/
//@{
#define BP_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED (23) //!< Bit position for CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED.
#define BM_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED (0x00800000) //!< Bit mask for CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED.
//! @brief Get value of CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED from a register value.
#define BG_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED) >> BP_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED)
//! @brief Format value for bitfield CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED.
#define BF_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED) & BM_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MASK_MMDC_CH0_PODF_LOADED field to a new value.
#define BW_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED(v) (HW_CCM_CIMR_WR((HW_CCM_CIMR_RD() & ~BM_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED) | BF_CCM_CIMR_MASK_MMDC_CH0_PODF_LOADED(v)))
#endif
//@}
/*! @name Register CCM_CIMR, field ARM_PODF_LOADED[26] (RW)
*
* mask interrupt generation due to frequency change of arm_podf
*
* Values:
* - 0 - don't mask interrupt due to frequency change of arm_podf - interrupt will be created
* - 1 - mask interrupt due to frequency change of arm_podf
*/
//@{
#define BP_CCM_CIMR_ARM_PODF_LOADED (26) //!< Bit position for CCM_CIMR_ARM_PODF_LOADED.
#define BM_CCM_CIMR_ARM_PODF_LOADED (0x04000000) //!< Bit mask for CCM_CIMR_ARM_PODF_LOADED.
//! @brief Get value of CCM_CIMR_ARM_PODF_LOADED from a register value.
#define BG_CCM_CIMR_ARM_PODF_LOADED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CIMR_ARM_PODF_LOADED) >> BP_CCM_CIMR_ARM_PODF_LOADED)
//! @brief Format value for bitfield CCM_CIMR_ARM_PODF_LOADED.
#define BF_CCM_CIMR_ARM_PODF_LOADED(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CIMR_ARM_PODF_LOADED) & BM_CCM_CIMR_ARM_PODF_LOADED)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ARM_PODF_LOADED field to a new value.
#define BW_CCM_CIMR_ARM_PODF_LOADED(v) (HW_CCM_CIMR_WR((HW_CCM_CIMR_RD() & ~BM_CCM_CIMR_ARM_PODF_LOADED) | BF_CCM_CIMR_ARM_PODF_LOADED(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCOSR - CCM Clock Output Source Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCOSR - CCM Clock Output Source Register (RW)
*
* Reset value: 0x000a0001
*
* The figure below represents the CCM Clock Output Source Register (CCOSR). The CCOSR register
* contains bits to control the clock s that will be generated on the output ipp_do_clko1
* (CCM_CLKO1) and ipp_do_clko2 (CCM_CLKO2) .The table below provides its field descriptions.
*/
typedef union _hw_ccm_ccosr
{
reg32_t U;
struct _hw_ccm_ccosr_bitfields
{
unsigned CLKO1_SEL : 4; //!< [3:0] Selection of the clock to be generated on CCM_CLKO1
unsigned CLKO1_DIV : 3; //!< [6:4] Setting the divider of CCM_CLKO1
unsigned CLKO1_EN : 1; //!< [7] Enable of CCM_CLKO1 clock
unsigned CLKO_SEL : 1; //!< [8] CCM_CLKO1 output to reflect CCM_CLKO1 or CCM_CLKO2 clocks
unsigned RESERVED0 : 7; //!< [15:9] Reserved
unsigned CLKO2_SEL : 5; //!< [20:16] Selection of the clock to be generated on CCM_CLKO2
unsigned CLKO2_DIV : 3; //!< [23:21] Setting the divider of CCM_CLKO2
unsigned CLKO2_EN : 1; //!< [24] Enable of CCM_CLKO2 clock
unsigned RESERVED1 : 7; //!< [31:25] Reserved
} B;
} hw_ccm_ccosr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCOSR register
*/
//@{
#define HW_CCM_CCOSR_ADDR (REGS_CCM_BASE + 0x60)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCOSR (*(volatile hw_ccm_ccosr_t *) HW_CCM_CCOSR_ADDR)
#define HW_CCM_CCOSR_RD() (HW_CCM_CCOSR.U)
#define HW_CCM_CCOSR_WR(v) (HW_CCM_CCOSR.U = (v))
#define HW_CCM_CCOSR_SET(v) (HW_CCM_CCOSR_WR(HW_CCM_CCOSR_RD() | (v)))
#define HW_CCM_CCOSR_CLR(v) (HW_CCM_CCOSR_WR(HW_CCM_CCOSR_RD() & ~(v)))
#define HW_CCM_CCOSR_TOG(v) (HW_CCM_CCOSR_WR(HW_CCM_CCOSR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCOSR bitfields
*/
/*! @name Register CCM_CCOSR, field CLKO1_SEL[3:0] (RW)
*
* Selection of the clock to be generated on CCM_CLKO1
*
* Values:
* - 0000 - pll3_sw_clk (this inputs has additional constant division /2)
* - 0001 - pll2_main_clk (default) (this inputs has additional constant division /2)
* - 0010 - pll1_main_clk (this inputs has additional constant division /2)
* - 0011 - pll5_main_clk (this inputs has additional constant division /2)
* - 0100 - video_27M_clk_root
* - 0101 - dtcp_clk_root
* - 0110 - enfc_clk_root
* - 0111 - ipu1_di0_clk_root
* - 1000 - ipu1_di1_clk_root
* - 1001 - lcdif_pix_clk_root
* - 1010 - epdc_pix_clk_root
* - 1011 - ahb_clk_root
* - 1100 - ipg_clk_root
* - 1101 - perclk_root
* - 1110 - ckil_sync_clk_root
* - 1111 - pll4_main_clk
*/
//@{
#define BP_CCM_CCOSR_CLKO1_SEL (0) //!< Bit position for CCM_CCOSR_CLKO1_SEL.
#define BM_CCM_CCOSR_CLKO1_SEL (0x0000000f) //!< Bit mask for CCM_CCOSR_CLKO1_SEL.
//! @brief Get value of CCM_CCOSR_CLKO1_SEL from a register value.
#define BG_CCM_CCOSR_CLKO1_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCOSR_CLKO1_SEL) >> BP_CCM_CCOSR_CLKO1_SEL)
//! @brief Format value for bitfield CCM_CCOSR_CLKO1_SEL.
#define BF_CCM_CCOSR_CLKO1_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCOSR_CLKO1_SEL) & BM_CCM_CCOSR_CLKO1_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CLKO1_SEL field to a new value.
#define BW_CCM_CCOSR_CLKO1_SEL(v) (HW_CCM_CCOSR_WR((HW_CCM_CCOSR_RD() & ~BM_CCM_CCOSR_CLKO1_SEL) | BF_CCM_CCOSR_CLKO1_SEL(v)))
#endif
//@}
/*! @name Register CCM_CCOSR, field CLKO1_DIV[6:4] (RW)
*
* Setting the divider of CCM_CLKO1
*
* Values:
* - 000 - divide by 1(default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CCOSR_CLKO1_DIV (4) //!< Bit position for CCM_CCOSR_CLKO1_DIV.
#define BM_CCM_CCOSR_CLKO1_DIV (0x00000070) //!< Bit mask for CCM_CCOSR_CLKO1_DIV.
//! @brief Get value of CCM_CCOSR_CLKO1_DIV from a register value.
#define BG_CCM_CCOSR_CLKO1_DIV(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCOSR_CLKO1_DIV) >> BP_CCM_CCOSR_CLKO1_DIV)
//! @brief Format value for bitfield CCM_CCOSR_CLKO1_DIV.
#define BF_CCM_CCOSR_CLKO1_DIV(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCOSR_CLKO1_DIV) & BM_CCM_CCOSR_CLKO1_DIV)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CLKO1_DIV field to a new value.
#define BW_CCM_CCOSR_CLKO1_DIV(v) (HW_CCM_CCOSR_WR((HW_CCM_CCOSR_RD() & ~BM_CCM_CCOSR_CLKO1_DIV) | BF_CCM_CCOSR_CLKO1_DIV(v)))
#endif
//@}
/*! @name Register CCM_CCOSR, field CLKO1_EN[7] (RW)
*
* Enable of CCM_CLKO1 clock
*
* Values:
* - 0 - CCM_CLKO1 disabled.
* - 1 - CCM_CLKO1 enabled.
*/
//@{
#define BP_CCM_CCOSR_CLKO1_EN (7) //!< Bit position for CCM_CCOSR_CLKO1_EN.
#define BM_CCM_CCOSR_CLKO1_EN (0x00000080) //!< Bit mask for CCM_CCOSR_CLKO1_EN.
//! @brief Get value of CCM_CCOSR_CLKO1_EN from a register value.
#define BG_CCM_CCOSR_CLKO1_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCOSR_CLKO1_EN) >> BP_CCM_CCOSR_CLKO1_EN)
//! @brief Format value for bitfield CCM_CCOSR_CLKO1_EN.
#define BF_CCM_CCOSR_CLKO1_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCOSR_CLKO1_EN) & BM_CCM_CCOSR_CLKO1_EN)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CLKO1_EN field to a new value.
#define BW_CCM_CCOSR_CLKO1_EN(v) (HW_CCM_CCOSR_WR((HW_CCM_CCOSR_RD() & ~BM_CCM_CCOSR_CLKO1_EN) | BF_CCM_CCOSR_CLKO1_EN(v)))
#endif
//@}
/*! @name Register CCM_CCOSR, field CLKO_SEL[8] (RW)
*
* CCM_CLKO1 output to reflect CCM_CLKO1 or CCM_CLKO2 clocks
*
* Values:
* - 0 - CCM_CLKO1 output drives CCM_CLKO1 clock
* - 1 - CCM_CLKO1 output drives CCM_CLKO2 clock
*/
//@{
#define BP_CCM_CCOSR_CLKO_SEL (8) //!< Bit position for CCM_CCOSR_CLKO_SEL.
#define BM_CCM_CCOSR_CLKO_SEL (0x00000100) //!< Bit mask for CCM_CCOSR_CLKO_SEL.
//! @brief Get value of CCM_CCOSR_CLKO_SEL from a register value.
#define BG_CCM_CCOSR_CLKO_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCOSR_CLKO_SEL) >> BP_CCM_CCOSR_CLKO_SEL)
//! @brief Format value for bitfield CCM_CCOSR_CLKO_SEL.
#define BF_CCM_CCOSR_CLKO_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCOSR_CLKO_SEL) & BM_CCM_CCOSR_CLKO_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CLKO_SEL field to a new value.
#define BW_CCM_CCOSR_CLKO_SEL(v) (HW_CCM_CCOSR_WR((HW_CCM_CCOSR_RD() & ~BM_CCM_CCOSR_CLKO_SEL) | BF_CCM_CCOSR_CLKO_SEL(v)))
#endif
//@}
/*! @name Register CCM_CCOSR, field CLKO2_SEL[20:16] (RW)
*
* Selection of the clock to be generated on CCM_CLKO2
*
* Values:
* - 00000 - mmdc_ch0_axi_clk_root
* - 00001 - mmdc_ch1_axi_clk_root
* - 00010 - usdhc4_clk_root
* - 00011 - usdhc1_clk_root
* - 00101 - wrck_clk_root
* - 00110 - ecspi_clk_root
* - 01000 - usdhc3_clk_root
* - 01001 - pcie_clk_root
* - 01010 - arm_axi_clk_root (default)
* - 01011 - ipu1_hsp_clk_root
* - 01100 - epdc_axi_clk_root, lcdif_axi_clk_root, pxp_axi_clk_root
* - 01101 - vdo_axi_clk_root
* - 01110 - osc_clk
* - 01111 - mlb_sys_clk_root
* - 10000 - gpu3d_core_clk_root
* - 10001 - usdhc2_clk_root
* - 10010 - ssi1_clk_root
* - 10011 - ssi2_clk_root
* - 10100 - ssi3_clk_root
* - 10101 - gpu2d_core_clk_root
* - 10110 - vpu_axi_clk_root
* - 10111 - can_clk_root
* - 11000 - ldb_di0_serial_clk_root
* - 11001 - ldb_di1_serial_clk_root
* - 11010 - esai_clk_root
* - 11011 - aclk_eim_slow_clk_root
* - 11100 - uart_clk_root
* - 11101 - spdif0_clk_root
* - 11110 - spdif1_clk_root
* - 11111 - hsi_tx_clk_root
*/
//@{
#define BP_CCM_CCOSR_CLKO2_SEL (16) //!< Bit position for CCM_CCOSR_CLKO2_SEL.
#define BM_CCM_CCOSR_CLKO2_SEL (0x001f0000) //!< Bit mask for CCM_CCOSR_CLKO2_SEL.
//! @brief Get value of CCM_CCOSR_CLKO2_SEL from a register value.
#define BG_CCM_CCOSR_CLKO2_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCOSR_CLKO2_SEL) >> BP_CCM_CCOSR_CLKO2_SEL)
//! @brief Format value for bitfield CCM_CCOSR_CLKO2_SEL.
#define BF_CCM_CCOSR_CLKO2_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCOSR_CLKO2_SEL) & BM_CCM_CCOSR_CLKO2_SEL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CLKO2_SEL field to a new value.
#define BW_CCM_CCOSR_CLKO2_SEL(v) (HW_CCM_CCOSR_WR((HW_CCM_CCOSR_RD() & ~BM_CCM_CCOSR_CLKO2_SEL) | BF_CCM_CCOSR_CLKO2_SEL(v)))
#endif
//@}
/*! @name Register CCM_CCOSR, field CLKO2_DIV[23:21] (RW)
*
* Setting the divider of CCM_CLKO2
*
* Values:
* - 000 - divide by 1 (default)
* - 001 - divide by 2
* - 010 - divide by 3
* - 011 - divide by 4
* - 100 - divide by 5
* - 101 - divide by 6
* - 110 - divide by 7
* - 111 - divide by 8
*/
//@{
#define BP_CCM_CCOSR_CLKO2_DIV (21) //!< Bit position for CCM_CCOSR_CLKO2_DIV.
#define BM_CCM_CCOSR_CLKO2_DIV (0x00e00000) //!< Bit mask for CCM_CCOSR_CLKO2_DIV.
//! @brief Get value of CCM_CCOSR_CLKO2_DIV from a register value.
#define BG_CCM_CCOSR_CLKO2_DIV(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCOSR_CLKO2_DIV) >> BP_CCM_CCOSR_CLKO2_DIV)
//! @brief Format value for bitfield CCM_CCOSR_CLKO2_DIV.
#define BF_CCM_CCOSR_CLKO2_DIV(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCOSR_CLKO2_DIV) & BM_CCM_CCOSR_CLKO2_DIV)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CLKO2_DIV field to a new value.
#define BW_CCM_CCOSR_CLKO2_DIV(v) (HW_CCM_CCOSR_WR((HW_CCM_CCOSR_RD() & ~BM_CCM_CCOSR_CLKO2_DIV) | BF_CCM_CCOSR_CLKO2_DIV(v)))
#endif
//@}
/*! @name Register CCM_CCOSR, field CLKO2_EN[24] (RW)
*
* Enable of CCM_CLKO2 clock
*
* Values:
* - 0 - CCM_CLKO2 disabled.
* - 1 - CCM_CLKO2 enabled.
*/
//@{
#define BP_CCM_CCOSR_CLKO2_EN (24) //!< Bit position for CCM_CCOSR_CLKO2_EN.
#define BM_CCM_CCOSR_CLKO2_EN (0x01000000) //!< Bit mask for CCM_CCOSR_CLKO2_EN.
//! @brief Get value of CCM_CCOSR_CLKO2_EN from a register value.
#define BG_CCM_CCOSR_CLKO2_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCOSR_CLKO2_EN) >> BP_CCM_CCOSR_CLKO2_EN)
//! @brief Format value for bitfield CCM_CCOSR_CLKO2_EN.
#define BF_CCM_CCOSR_CLKO2_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCOSR_CLKO2_EN) & BM_CCM_CCOSR_CLKO2_EN)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CLKO2_EN field to a new value.
#define BW_CCM_CCOSR_CLKO2_EN(v) (HW_CCM_CCOSR_WR((HW_CCM_CCOSR_RD() & ~BM_CCM_CCOSR_CLKO2_EN) | BF_CCM_CCOSR_CLKO2_EN(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CGPR - CCM General Purpose Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CGPR - CCM General Purpose Register (RW)
*
* Reset value: 0x0000fe62
*
* Fast PLL enable. Can be used to engage PLL faster after STOP mode, if 24MHz OSC was active
*/
typedef union _hw_ccm_cgpr
{
reg32_t U;
struct _hw_ccm_cgpr_bitfields
{
unsigned PMIC_DELAY_SCALER : 1; //!< [0] Defines clock dividion of clock for stby_count (pmic delay counter)
unsigned RESERVED0 : 1; //!< [1] Reserved
unsigned MMDC_EXT_CLK_DIS : 1; //!< [2] Disable external clock driver of MMDC during STOP mode
unsigned RESERVED1 : 1; //!< [3] Reserved
unsigned EFUSE_PROG_SUPPLY_GATE : 1; //!< [4] Defines the value of the output signal cgpr_dout[4].
unsigned RESERVED3 : 11; //!< [15:5] Reserved.
unsigned FPL : 1; //!< [16] Fast PLL enable.
unsigned RESERVED4 : 15; //!< [31:17] Reserved
} B;
} hw_ccm_cgpr_t;
#endif
/*!
* @name Constants and macros for entire CCM_CGPR register
*/
//@{
#define HW_CCM_CGPR_ADDR (REGS_CCM_BASE + 0x64)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CGPR (*(volatile hw_ccm_cgpr_t *) HW_CCM_CGPR_ADDR)
#define HW_CCM_CGPR_RD() (HW_CCM_CGPR.U)
#define HW_CCM_CGPR_WR(v) (HW_CCM_CGPR.U = (v))
#define HW_CCM_CGPR_SET(v) (HW_CCM_CGPR_WR(HW_CCM_CGPR_RD() | (v)))
#define HW_CCM_CGPR_CLR(v) (HW_CCM_CGPR_WR(HW_CCM_CGPR_RD() & ~(v)))
#define HW_CCM_CGPR_TOG(v) (HW_CCM_CGPR_WR(HW_CCM_CGPR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CGPR bitfields
*/
/*! @name Register CCM_CGPR, field PMIC_DELAY_SCALER[0] (RW)
*
* Defines clock dividion of clock for stby_count (pmic delay counter)
*
* Values:
* - 0 - clock is not divided
* - 1 - clock is divided /8
*/
//@{
#define BP_CCM_CGPR_PMIC_DELAY_SCALER (0) //!< Bit position for CCM_CGPR_PMIC_DELAY_SCALER.
#define BM_CCM_CGPR_PMIC_DELAY_SCALER (0x00000001) //!< Bit mask for CCM_CGPR_PMIC_DELAY_SCALER.
//! @brief Get value of CCM_CGPR_PMIC_DELAY_SCALER from a register value.
#define BG_CCM_CGPR_PMIC_DELAY_SCALER(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CGPR_PMIC_DELAY_SCALER) >> BP_CCM_CGPR_PMIC_DELAY_SCALER)
//! @brief Format value for bitfield CCM_CGPR_PMIC_DELAY_SCALER.
#define BF_CCM_CGPR_PMIC_DELAY_SCALER(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CGPR_PMIC_DELAY_SCALER) & BM_CCM_CGPR_PMIC_DELAY_SCALER)
#ifndef __LANGUAGE_ASM__
//! @brief Set the PMIC_DELAY_SCALER field to a new value.
#define BW_CCM_CGPR_PMIC_DELAY_SCALER(v) (HW_CCM_CGPR_WR((HW_CCM_CGPR_RD() & ~BM_CCM_CGPR_PMIC_DELAY_SCALER) | BF_CCM_CGPR_PMIC_DELAY_SCALER(v)))
#endif
//@}
/*! @name Register CCM_CGPR, field MMDC_EXT_CLK_DIS[2] (RW)
*
* Disable external clock driver of MMDC during STOP mode
*
* Values:
* - 0 - don't disable during stop mode.
* - 1 - disable during stop mode
*/
//@{
#define BP_CCM_CGPR_MMDC_EXT_CLK_DIS (2) //!< Bit position for CCM_CGPR_MMDC_EXT_CLK_DIS.
#define BM_CCM_CGPR_MMDC_EXT_CLK_DIS (0x00000004) //!< Bit mask for CCM_CGPR_MMDC_EXT_CLK_DIS.
//! @brief Get value of CCM_CGPR_MMDC_EXT_CLK_DIS from a register value.
#define BG_CCM_CGPR_MMDC_EXT_CLK_DIS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CGPR_MMDC_EXT_CLK_DIS) >> BP_CCM_CGPR_MMDC_EXT_CLK_DIS)
//! @brief Format value for bitfield CCM_CGPR_MMDC_EXT_CLK_DIS.
#define BF_CCM_CGPR_MMDC_EXT_CLK_DIS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CGPR_MMDC_EXT_CLK_DIS) & BM_CCM_CGPR_MMDC_EXT_CLK_DIS)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MMDC_EXT_CLK_DIS field to a new value.
#define BW_CCM_CGPR_MMDC_EXT_CLK_DIS(v) (HW_CCM_CGPR_WR((HW_CCM_CGPR_RD() & ~BM_CCM_CGPR_MMDC_EXT_CLK_DIS) | BF_CCM_CGPR_MMDC_EXT_CLK_DIS(v)))
#endif
//@}
/*! @name Register CCM_CGPR, field EFUSE_PROG_SUPPLY_GATE[4] (RW)
*
* Defines the value of the output signal cgpr_dout[4]. Gate of program supply for efuse programing
*
* Values:
* - 0 - fuse programing supply voltage is gated off to the efuse module
* - 1 - allow fuse programing.
*/
//@{
#define BP_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE (4) //!< Bit position for CCM_CGPR_EFUSE_PROG_SUPPLY_GATE.
#define BM_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE (0x00000010) //!< Bit mask for CCM_CGPR_EFUSE_PROG_SUPPLY_GATE.
//! @brief Get value of CCM_CGPR_EFUSE_PROG_SUPPLY_GATE from a register value.
#define BG_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE) >> BP_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE)
//! @brief Format value for bitfield CCM_CGPR_EFUSE_PROG_SUPPLY_GATE.
#define BF_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE) & BM_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE)
#ifndef __LANGUAGE_ASM__
//! @brief Set the EFUSE_PROG_SUPPLY_GATE field to a new value.
#define BW_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE(v) (HW_CCM_CGPR_WR((HW_CCM_CGPR_RD() & ~BM_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE) | BF_CCM_CGPR_EFUSE_PROG_SUPPLY_GATE(v)))
#endif
//@}
/*! @name Register CCM_CGPR, field FPL[16] (RW)
*
* Values:
* - 0 - Engage PLL enable default way.
* - 1 - Engage PLL enable 3 CKIL clocks earlier at exiting low power mode (STOP). Should be used only if
* 24MHz OSC was active in low power mode.
*/
//@{
#define BP_CCM_CGPR_FPL (16) //!< Bit position for CCM_CGPR_FPL.
#define BM_CCM_CGPR_FPL (0x00010000) //!< Bit mask for CCM_CGPR_FPL.
//! @brief Get value of CCM_CGPR_FPL from a register value.
#define BG_CCM_CGPR_FPL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CGPR_FPL) >> BP_CCM_CGPR_FPL)
//! @brief Format value for bitfield CCM_CGPR_FPL.
#define BF_CCM_CGPR_FPL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CGPR_FPL) & BM_CCM_CGPR_FPL)
#ifndef __LANGUAGE_ASM__
//! @brief Set the FPL field to a new value.
#define BW_CCM_CGPR_FPL(v) (HW_CCM_CGPR_WR((HW_CCM_CGPR_RD() & ~BM_CCM_CGPR_FPL) | BF_CCM_CGPR_FPL(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCGR0 - CCM Clock Gating Register 0
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCGR0 - CCM Clock Gating Register 0 (RW)
*
* Reset value: 0xffffffff
*
* CG(i) bits CCGR 0- 6 These bits are used to turn on/off the clock to each module
* independently.The following table details the possible clock activity conditions for each module
* CGR value Clock Activity Description 00 clock is off during all modes. stop enter hardware
* handshake is disabled. 01 clock is on in run mode, but off in wait and stop modes 10 Not
* applicable (Reserved). 11 clock is on during all modes, except stop mode. Module should be
* stopped, before set it's bits to "0", since clocks to the module will be stopped immediately. The
* tables above show the register mapings for the different CGR's. The clock connectivity table
* should be used to match the "CCM output affected" to the actual clocks going into the modules.
* The figure below represents the CCM Clock Gating Register 0 (CCM_CCGR0). The clock gating
* Registers define the clock gating for power reduction of each clock (CG(i) bits). There are 7 CGR
* registers. The number of registers required is according to the number of peripherals in the
* system.
*/
typedef union _hw_ccm_ccgr0
{
reg32_t U;
struct _hw_ccm_ccgr0_bitfields
{
unsigned CG0 : 2; //!< [1:0] aips_tz1 clocks (aips_tz1_clk_enable)
unsigned CG1 : 2; //!< [3:2] aips_tz2 clocks (aips_tz2_clk_enable)
unsigned CG2 : 2; //!< [5:4] apbhdma hclk clock (apbhdma_hclk_enable)
unsigned CG3 : 2; //!< [7:6] asrc clock (asrc_clk_enable)
unsigned CG4 : 2; //!< [9:8] caam_secure_mem clock (caam_secure_mem_clk_enable)
unsigned CG5 : 2; //!< [11:10] caam_wrapper_aclk clock (caam_wrapper_aclk_enable)
unsigned CG6 : 2; //!< [13:12] caam_wrapper_ipg clock (caam_wrapper_ipg_enable)
unsigned CG7 : 2; //!< [15:14] can1 clock (can1_clk_enable)
unsigned CG8 : 2; //!< [17:16] can1_serial clock (can1_serial_clk_enable)
unsigned CG9 : 2; //!< [19:18] can2 clock (can2_clk_enable)
unsigned CG10 : 2; //!< [21:20] can2_serial clock (can2_serial_clk_enable)
unsigned CG11 : 2; //!< [23:22] CPU debug clocks (arm_dbg_clk_enable)
unsigned CG12 : 2; //!< [25:24] dcic 1 clocks (dcic1_clk_enable)
unsigned CG13 : 2; //!< [27:26] dcic2 clocks (dcic2_clk_enable)
unsigned CG14 : 2; //!< [29:28] dtcp clocks (dtcp_dtcp_clk_enable)
unsigned CG15 : 2; //!< [31:30] Reserved
} B;
} hw_ccm_ccgr0_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCGR0 register
*/
//@{
#define HW_CCM_CCGR0_ADDR (REGS_CCM_BASE + 0x68)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCGR0 (*(volatile hw_ccm_ccgr0_t *) HW_CCM_CCGR0_ADDR)
#define HW_CCM_CCGR0_RD() (HW_CCM_CCGR0.U)
#define HW_CCM_CCGR0_WR(v) (HW_CCM_CCGR0.U = (v))
#define HW_CCM_CCGR0_SET(v) (HW_CCM_CCGR0_WR(HW_CCM_CCGR0_RD() | (v)))
#define HW_CCM_CCGR0_CLR(v) (HW_CCM_CCGR0_WR(HW_CCM_CCGR0_RD() & ~(v)))
#define HW_CCM_CCGR0_TOG(v) (HW_CCM_CCGR0_WR(HW_CCM_CCGR0_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCGR0 bitfields
*/
/*! @name Register CCM_CCGR0, field CG0[1:0] (RW)
*
* aips_tz1 clocks (aips_tz1_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG0 (0) //!< Bit position for CCM_CCGR0_CG0.
#define BM_CCM_CCGR0_CG0 (0x00000003) //!< Bit mask for CCM_CCGR0_CG0.
//! @brief Get value of CCM_CCGR0_CG0 from a register value.
#define BG_CCM_CCGR0_CG0(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG0) >> BP_CCM_CCGR0_CG0)
//! @brief Format value for bitfield CCM_CCGR0_CG0.
#define BF_CCM_CCGR0_CG0(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG0) & BM_CCM_CCGR0_CG0)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG0 field to a new value.
#define BW_CCM_CCGR0_CG0(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG0) | BF_CCM_CCGR0_CG0(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG1[3:2] (RW)
*
* aips_tz2 clocks (aips_tz2_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG1 (2) //!< Bit position for CCM_CCGR0_CG1.
#define BM_CCM_CCGR0_CG1 (0x0000000c) //!< Bit mask for CCM_CCGR0_CG1.
//! @brief Get value of CCM_CCGR0_CG1 from a register value.
#define BG_CCM_CCGR0_CG1(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG1) >> BP_CCM_CCGR0_CG1)
//! @brief Format value for bitfield CCM_CCGR0_CG1.
#define BF_CCM_CCGR0_CG1(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG1) & BM_CCM_CCGR0_CG1)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG1 field to a new value.
#define BW_CCM_CCGR0_CG1(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG1) | BF_CCM_CCGR0_CG1(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG2[5:4] (RW)
*
* apbhdma hclk clock (apbhdma_hclk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG2 (4) //!< Bit position for CCM_CCGR0_CG2.
#define BM_CCM_CCGR0_CG2 (0x00000030) //!< Bit mask for CCM_CCGR0_CG2.
//! @brief Get value of CCM_CCGR0_CG2 from a register value.
#define BG_CCM_CCGR0_CG2(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG2) >> BP_CCM_CCGR0_CG2)
//! @brief Format value for bitfield CCM_CCGR0_CG2.
#define BF_CCM_CCGR0_CG2(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG2) & BM_CCM_CCGR0_CG2)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG2 field to a new value.
#define BW_CCM_CCGR0_CG2(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG2) | BF_CCM_CCGR0_CG2(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG3[7:6] (RW)
*
* asrc clock (asrc_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG3 (6) //!< Bit position for CCM_CCGR0_CG3.
#define BM_CCM_CCGR0_CG3 (0x000000c0) //!< Bit mask for CCM_CCGR0_CG3.
//! @brief Get value of CCM_CCGR0_CG3 from a register value.
#define BG_CCM_CCGR0_CG3(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG3) >> BP_CCM_CCGR0_CG3)
//! @brief Format value for bitfield CCM_CCGR0_CG3.
#define BF_CCM_CCGR0_CG3(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG3) & BM_CCM_CCGR0_CG3)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG3 field to a new value.
#define BW_CCM_CCGR0_CG3(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG3) | BF_CCM_CCGR0_CG3(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG4[9:8] (RW)
*
* caam_secure_mem clock (caam_secure_mem_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG4 (8) //!< Bit position for CCM_CCGR0_CG4.
#define BM_CCM_CCGR0_CG4 (0x00000300) //!< Bit mask for CCM_CCGR0_CG4.
//! @brief Get value of CCM_CCGR0_CG4 from a register value.
#define BG_CCM_CCGR0_CG4(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG4) >> BP_CCM_CCGR0_CG4)
//! @brief Format value for bitfield CCM_CCGR0_CG4.
#define BF_CCM_CCGR0_CG4(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG4) & BM_CCM_CCGR0_CG4)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG4 field to a new value.
#define BW_CCM_CCGR0_CG4(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG4) | BF_CCM_CCGR0_CG4(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG5[11:10] (RW)
*
* caam_wrapper_aclk clock (caam_wrapper_aclk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG5 (10) //!< Bit position for CCM_CCGR0_CG5.
#define BM_CCM_CCGR0_CG5 (0x00000c00) //!< Bit mask for CCM_CCGR0_CG5.
//! @brief Get value of CCM_CCGR0_CG5 from a register value.
#define BG_CCM_CCGR0_CG5(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG5) >> BP_CCM_CCGR0_CG5)
//! @brief Format value for bitfield CCM_CCGR0_CG5.
#define BF_CCM_CCGR0_CG5(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG5) & BM_CCM_CCGR0_CG5)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG5 field to a new value.
#define BW_CCM_CCGR0_CG5(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG5) | BF_CCM_CCGR0_CG5(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG6[13:12] (RW)
*
* caam_wrapper_ipg clock (caam_wrapper_ipg_enable)
*/
//@{
#define BP_CCM_CCGR0_CG6 (12) //!< Bit position for CCM_CCGR0_CG6.
#define BM_CCM_CCGR0_CG6 (0x00003000) //!< Bit mask for CCM_CCGR0_CG6.
//! @brief Get value of CCM_CCGR0_CG6 from a register value.
#define BG_CCM_CCGR0_CG6(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG6) >> BP_CCM_CCGR0_CG6)
//! @brief Format value for bitfield CCM_CCGR0_CG6.
#define BF_CCM_CCGR0_CG6(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG6) & BM_CCM_CCGR0_CG6)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG6 field to a new value.
#define BW_CCM_CCGR0_CG6(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG6) | BF_CCM_CCGR0_CG6(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG7[15:14] (RW)
*
* can1 clock (can1_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG7 (14) //!< Bit position for CCM_CCGR0_CG7.
#define BM_CCM_CCGR0_CG7 (0x0000c000) //!< Bit mask for CCM_CCGR0_CG7.
//! @brief Get value of CCM_CCGR0_CG7 from a register value.
#define BG_CCM_CCGR0_CG7(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG7) >> BP_CCM_CCGR0_CG7)
//! @brief Format value for bitfield CCM_CCGR0_CG7.
#define BF_CCM_CCGR0_CG7(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG7) & BM_CCM_CCGR0_CG7)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG7 field to a new value.
#define BW_CCM_CCGR0_CG7(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG7) | BF_CCM_CCGR0_CG7(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG8[17:16] (RW)
*
* can1_serial clock (can1_serial_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG8 (16) //!< Bit position for CCM_CCGR0_CG8.
#define BM_CCM_CCGR0_CG8 (0x00030000) //!< Bit mask for CCM_CCGR0_CG8.
//! @brief Get value of CCM_CCGR0_CG8 from a register value.
#define BG_CCM_CCGR0_CG8(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG8) >> BP_CCM_CCGR0_CG8)
//! @brief Format value for bitfield CCM_CCGR0_CG8.
#define BF_CCM_CCGR0_CG8(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG8) & BM_CCM_CCGR0_CG8)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG8 field to a new value.
#define BW_CCM_CCGR0_CG8(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG8) | BF_CCM_CCGR0_CG8(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG9[19:18] (RW)
*
* can2 clock (can2_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG9 (18) //!< Bit position for CCM_CCGR0_CG9.
#define BM_CCM_CCGR0_CG9 (0x000c0000) //!< Bit mask for CCM_CCGR0_CG9.
//! @brief Get value of CCM_CCGR0_CG9 from a register value.
#define BG_CCM_CCGR0_CG9(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG9) >> BP_CCM_CCGR0_CG9)
//! @brief Format value for bitfield CCM_CCGR0_CG9.
#define BF_CCM_CCGR0_CG9(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG9) & BM_CCM_CCGR0_CG9)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG9 field to a new value.
#define BW_CCM_CCGR0_CG9(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG9) | BF_CCM_CCGR0_CG9(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG10[21:20] (RW)
*
* can2_serial clock (can2_serial_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG10 (20) //!< Bit position for CCM_CCGR0_CG10.
#define BM_CCM_CCGR0_CG10 (0x00300000) //!< Bit mask for CCM_CCGR0_CG10.
//! @brief Get value of CCM_CCGR0_CG10 from a register value.
#define BG_CCM_CCGR0_CG10(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG10) >> BP_CCM_CCGR0_CG10)
//! @brief Format value for bitfield CCM_CCGR0_CG10.
#define BF_CCM_CCGR0_CG10(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG10) & BM_CCM_CCGR0_CG10)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG10 field to a new value.
#define BW_CCM_CCGR0_CG10(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG10) | BF_CCM_CCGR0_CG10(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG11[23:22] (RW)
*
* CPU debug clocks (arm_dbg_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG11 (22) //!< Bit position for CCM_CCGR0_CG11.
#define BM_CCM_CCGR0_CG11 (0x00c00000) //!< Bit mask for CCM_CCGR0_CG11.
//! @brief Get value of CCM_CCGR0_CG11 from a register value.
#define BG_CCM_CCGR0_CG11(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG11) >> BP_CCM_CCGR0_CG11)
//! @brief Format value for bitfield CCM_CCGR0_CG11.
#define BF_CCM_CCGR0_CG11(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG11) & BM_CCM_CCGR0_CG11)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG11 field to a new value.
#define BW_CCM_CCGR0_CG11(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG11) | BF_CCM_CCGR0_CG11(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG12[25:24] (RW)
*
* dcic 1 clocks (dcic1_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG12 (24) //!< Bit position for CCM_CCGR0_CG12.
#define BM_CCM_CCGR0_CG12 (0x03000000) //!< Bit mask for CCM_CCGR0_CG12.
//! @brief Get value of CCM_CCGR0_CG12 from a register value.
#define BG_CCM_CCGR0_CG12(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG12) >> BP_CCM_CCGR0_CG12)
//! @brief Format value for bitfield CCM_CCGR0_CG12.
#define BF_CCM_CCGR0_CG12(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG12) & BM_CCM_CCGR0_CG12)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG12 field to a new value.
#define BW_CCM_CCGR0_CG12(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG12) | BF_CCM_CCGR0_CG12(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG13[27:26] (RW)
*
* dcic2 clocks (dcic2_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG13 (26) //!< Bit position for CCM_CCGR0_CG13.
#define BM_CCM_CCGR0_CG13 (0x0c000000) //!< Bit mask for CCM_CCGR0_CG13.
//! @brief Get value of CCM_CCGR0_CG13 from a register value.
#define BG_CCM_CCGR0_CG13(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG13) >> BP_CCM_CCGR0_CG13)
//! @brief Format value for bitfield CCM_CCGR0_CG13.
#define BF_CCM_CCGR0_CG13(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG13) & BM_CCM_CCGR0_CG13)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG13 field to a new value.
#define BW_CCM_CCGR0_CG13(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG13) | BF_CCM_CCGR0_CG13(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG14[29:28] (RW)
*
* dtcp clocks (dtcp_dtcp_clk_enable)
*/
//@{
#define BP_CCM_CCGR0_CG14 (28) //!< Bit position for CCM_CCGR0_CG14.
#define BM_CCM_CCGR0_CG14 (0x30000000) //!< Bit mask for CCM_CCGR0_CG14.
//! @brief Get value of CCM_CCGR0_CG14 from a register value.
#define BG_CCM_CCGR0_CG14(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG14) >> BP_CCM_CCGR0_CG14)
//! @brief Format value for bitfield CCM_CCGR0_CG14.
#define BF_CCM_CCGR0_CG14(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG14) & BM_CCM_CCGR0_CG14)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG14 field to a new value.
#define BW_CCM_CCGR0_CG14(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG14) | BF_CCM_CCGR0_CG14(v)))
#endif
//@}
/*! @name Register CCM_CCGR0, field CG15[31:30] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR0_CG15 (30) //!< Bit position for CCM_CCGR0_CG15.
#define BM_CCM_CCGR0_CG15 (0xc0000000) //!< Bit mask for CCM_CCGR0_CG15.
//! @brief Get value of CCM_CCGR0_CG15 from a register value.
#define BG_CCM_CCGR0_CG15(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR0_CG15) >> BP_CCM_CCGR0_CG15)
//! @brief Format value for bitfield CCM_CCGR0_CG15.
#define BF_CCM_CCGR0_CG15(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR0_CG15) & BM_CCM_CCGR0_CG15)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG15 field to a new value.
#define BW_CCM_CCGR0_CG15(v) (HW_CCM_CCGR0_WR((HW_CCM_CCGR0_RD() & ~BM_CCM_CCGR0_CG15) | BF_CCM_CCGR0_CG15(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCGR1 - CCM Clock Gating Register 1
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCGR1 - CCM Clock Gating Register 1 (RW)
*
* Reset value: 0xffffffff
*
* The figure below represents the CCM Clock Gating Register 1(CCM_CCGR1). The clock gating
* Registers define the clock gating for power reduction of each clock (CG(i) bits). There are 8 CGR
* registers. The number of registers required is according to the number of peripherals in the
* system.
*/
typedef union _hw_ccm_ccgr1
{
reg32_t U;
struct _hw_ccm_ccgr1_bitfields
{
unsigned CG0 : 2; //!< [1:0] ecspi1 clocks (ecspi1_clk_enable)
unsigned CG1 : 2; //!< [3:2] ecspi2 clocks (ecspi2_clk_enable)
unsigned CG2 : 2; //!< [5:4] ecspi3 clocks (ecspi3_clk_enable)
unsigned CG3 : 2; //!< [7:6] ecspi4 clocks (ecspi4_clk_enable)
unsigned CG4 : 2; //!< [9:8] ecspi5 clocks (ecspi5_clk_enable)
unsigned CG5 : 2; //!< [11:10] clock (enet_clk_enable)
unsigned CG6 : 2; //!< [13:12] epit1 clocks (epit1_clk_enable)
unsigned CG7 : 2; //!< [15:14] epit2 clocks (epit2_clk_enable)
unsigned CG8 : 2; //!< [17:16] esai clocks (esai_clk_enable)
unsigned CG9 : 2; //!< [19:18] Reserved
unsigned CG10 : 2; //!< [21:20] gpt bus clock (gpt_clk_enable)
unsigned CG11 : 2; //!< [23:22] gpt serial clock (gpt_serial_clk_enable)
unsigned CG12 : 2; //!< [25:24] gpu2d clock (gpu2d_clk_enable)
unsigned CG13 : 2; //!< [27:26] gpu3d clock (gpu3d_clk_enable)
unsigned CG14 : 2; //!< [29:28] Reserved
unsigned CG15 : 2; //!< [31:30] Reserved
} B;
} hw_ccm_ccgr1_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCGR1 register
*/
//@{
#define HW_CCM_CCGR1_ADDR (REGS_CCM_BASE + 0x6c)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCGR1 (*(volatile hw_ccm_ccgr1_t *) HW_CCM_CCGR1_ADDR)
#define HW_CCM_CCGR1_RD() (HW_CCM_CCGR1.U)
#define HW_CCM_CCGR1_WR(v) (HW_CCM_CCGR1.U = (v))
#define HW_CCM_CCGR1_SET(v) (HW_CCM_CCGR1_WR(HW_CCM_CCGR1_RD() | (v)))
#define HW_CCM_CCGR1_CLR(v) (HW_CCM_CCGR1_WR(HW_CCM_CCGR1_RD() & ~(v)))
#define HW_CCM_CCGR1_TOG(v) (HW_CCM_CCGR1_WR(HW_CCM_CCGR1_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCGR1 bitfields
*/
/*! @name Register CCM_CCGR1, field CG0[1:0] (RW)
*
* ecspi1 clocks (ecspi1_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG0 (0) //!< Bit position for CCM_CCGR1_CG0.
#define BM_CCM_CCGR1_CG0 (0x00000003) //!< Bit mask for CCM_CCGR1_CG0.
//! @brief Get value of CCM_CCGR1_CG0 from a register value.
#define BG_CCM_CCGR1_CG0(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG0) >> BP_CCM_CCGR1_CG0)
//! @brief Format value for bitfield CCM_CCGR1_CG0.
#define BF_CCM_CCGR1_CG0(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG0) & BM_CCM_CCGR1_CG0)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG0 field to a new value.
#define BW_CCM_CCGR1_CG0(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG0) | BF_CCM_CCGR1_CG0(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG1[3:2] (RW)
*
* ecspi2 clocks (ecspi2_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG1 (2) //!< Bit position for CCM_CCGR1_CG1.
#define BM_CCM_CCGR1_CG1 (0x0000000c) //!< Bit mask for CCM_CCGR1_CG1.
//! @brief Get value of CCM_CCGR1_CG1 from a register value.
#define BG_CCM_CCGR1_CG1(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG1) >> BP_CCM_CCGR1_CG1)
//! @brief Format value for bitfield CCM_CCGR1_CG1.
#define BF_CCM_CCGR1_CG1(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG1) & BM_CCM_CCGR1_CG1)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG1 field to a new value.
#define BW_CCM_CCGR1_CG1(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG1) | BF_CCM_CCGR1_CG1(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG2[5:4] (RW)
*
* ecspi3 clocks (ecspi3_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG2 (4) //!< Bit position for CCM_CCGR1_CG2.
#define BM_CCM_CCGR1_CG2 (0x00000030) //!< Bit mask for CCM_CCGR1_CG2.
//! @brief Get value of CCM_CCGR1_CG2 from a register value.
#define BG_CCM_CCGR1_CG2(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG2) >> BP_CCM_CCGR1_CG2)
//! @brief Format value for bitfield CCM_CCGR1_CG2.
#define BF_CCM_CCGR1_CG2(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG2) & BM_CCM_CCGR1_CG2)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG2 field to a new value.
#define BW_CCM_CCGR1_CG2(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG2) | BF_CCM_CCGR1_CG2(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG3[7:6] (RW)
*
* ecspi4 clocks (ecspi4_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG3 (6) //!< Bit position for CCM_CCGR1_CG3.
#define BM_CCM_CCGR1_CG3 (0x000000c0) //!< Bit mask for CCM_CCGR1_CG3.
//! @brief Get value of CCM_CCGR1_CG3 from a register value.
#define BG_CCM_CCGR1_CG3(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG3) >> BP_CCM_CCGR1_CG3)
//! @brief Format value for bitfield CCM_CCGR1_CG3.
#define BF_CCM_CCGR1_CG3(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG3) & BM_CCM_CCGR1_CG3)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG3 field to a new value.
#define BW_CCM_CCGR1_CG3(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG3) | BF_CCM_CCGR1_CG3(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG4[9:8] (RW)
*
* ecspi5 clocks (ecspi5_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG4 (8) //!< Bit position for CCM_CCGR1_CG4.
#define BM_CCM_CCGR1_CG4 (0x00000300) //!< Bit mask for CCM_CCGR1_CG4.
//! @brief Get value of CCM_CCGR1_CG4 from a register value.
#define BG_CCM_CCGR1_CG4(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG4) >> BP_CCM_CCGR1_CG4)
//! @brief Format value for bitfield CCM_CCGR1_CG4.
#define BF_CCM_CCGR1_CG4(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG4) & BM_CCM_CCGR1_CG4)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG4 field to a new value.
#define BW_CCM_CCGR1_CG4(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG4) | BF_CCM_CCGR1_CG4(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG5[11:10] (RW)
*
* clock (enet_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG5 (10) //!< Bit position for CCM_CCGR1_CG5.
#define BM_CCM_CCGR1_CG5 (0x00000c00) //!< Bit mask for CCM_CCGR1_CG5.
//! @brief Get value of CCM_CCGR1_CG5 from a register value.
#define BG_CCM_CCGR1_CG5(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG5) >> BP_CCM_CCGR1_CG5)
//! @brief Format value for bitfield CCM_CCGR1_CG5.
#define BF_CCM_CCGR1_CG5(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG5) & BM_CCM_CCGR1_CG5)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG5 field to a new value.
#define BW_CCM_CCGR1_CG5(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG5) | BF_CCM_CCGR1_CG5(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG6[13:12] (RW)
*
* epit1 clocks (epit1_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG6 (12) //!< Bit position for CCM_CCGR1_CG6.
#define BM_CCM_CCGR1_CG6 (0x00003000) //!< Bit mask for CCM_CCGR1_CG6.
//! @brief Get value of CCM_CCGR1_CG6 from a register value.
#define BG_CCM_CCGR1_CG6(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG6) >> BP_CCM_CCGR1_CG6)
//! @brief Format value for bitfield CCM_CCGR1_CG6.
#define BF_CCM_CCGR1_CG6(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG6) & BM_CCM_CCGR1_CG6)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG6 field to a new value.
#define BW_CCM_CCGR1_CG6(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG6) | BF_CCM_CCGR1_CG6(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG7[15:14] (RW)
*
* epit2 clocks (epit2_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG7 (14) //!< Bit position for CCM_CCGR1_CG7.
#define BM_CCM_CCGR1_CG7 (0x0000c000) //!< Bit mask for CCM_CCGR1_CG7.
//! @brief Get value of CCM_CCGR1_CG7 from a register value.
#define BG_CCM_CCGR1_CG7(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG7) >> BP_CCM_CCGR1_CG7)
//! @brief Format value for bitfield CCM_CCGR1_CG7.
#define BF_CCM_CCGR1_CG7(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG7) & BM_CCM_CCGR1_CG7)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG7 field to a new value.
#define BW_CCM_CCGR1_CG7(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG7) | BF_CCM_CCGR1_CG7(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG8[17:16] (RW)
*
* esai clocks (esai_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG8 (16) //!< Bit position for CCM_CCGR1_CG8.
#define BM_CCM_CCGR1_CG8 (0x00030000) //!< Bit mask for CCM_CCGR1_CG8.
//! @brief Get value of CCM_CCGR1_CG8 from a register value.
#define BG_CCM_CCGR1_CG8(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG8) >> BP_CCM_CCGR1_CG8)
//! @brief Format value for bitfield CCM_CCGR1_CG8.
#define BF_CCM_CCGR1_CG8(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG8) & BM_CCM_CCGR1_CG8)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG8 field to a new value.
#define BW_CCM_CCGR1_CG8(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG8) | BF_CCM_CCGR1_CG8(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG9[19:18] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR1_CG9 (18) //!< Bit position for CCM_CCGR1_CG9.
#define BM_CCM_CCGR1_CG9 (0x000c0000) //!< Bit mask for CCM_CCGR1_CG9.
//! @brief Get value of CCM_CCGR1_CG9 from a register value.
#define BG_CCM_CCGR1_CG9(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG9) >> BP_CCM_CCGR1_CG9)
//! @brief Format value for bitfield CCM_CCGR1_CG9.
#define BF_CCM_CCGR1_CG9(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG9) & BM_CCM_CCGR1_CG9)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG9 field to a new value.
#define BW_CCM_CCGR1_CG9(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG9) | BF_CCM_CCGR1_CG9(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG10[21:20] (RW)
*
* gpt bus clock (gpt_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG10 (20) //!< Bit position for CCM_CCGR1_CG10.
#define BM_CCM_CCGR1_CG10 (0x00300000) //!< Bit mask for CCM_CCGR1_CG10.
//! @brief Get value of CCM_CCGR1_CG10 from a register value.
#define BG_CCM_CCGR1_CG10(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG10) >> BP_CCM_CCGR1_CG10)
//! @brief Format value for bitfield CCM_CCGR1_CG10.
#define BF_CCM_CCGR1_CG10(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG10) & BM_CCM_CCGR1_CG10)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG10 field to a new value.
#define BW_CCM_CCGR1_CG10(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG10) | BF_CCM_CCGR1_CG10(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG11[23:22] (RW)
*
* gpt serial clock (gpt_serial_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG11 (22) //!< Bit position for CCM_CCGR1_CG11.
#define BM_CCM_CCGR1_CG11 (0x00c00000) //!< Bit mask for CCM_CCGR1_CG11.
//! @brief Get value of CCM_CCGR1_CG11 from a register value.
#define BG_CCM_CCGR1_CG11(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG11) >> BP_CCM_CCGR1_CG11)
//! @brief Format value for bitfield CCM_CCGR1_CG11.
#define BF_CCM_CCGR1_CG11(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG11) & BM_CCM_CCGR1_CG11)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG11 field to a new value.
#define BW_CCM_CCGR1_CG11(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG11) | BF_CCM_CCGR1_CG11(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG12[25:24] (RW)
*
* gpu2d clock (gpu2d_clk_enable) GPU2D clock cannot be gated without gating OPENVG clock as well.
* Please configure both CG bits (CCM_ANALOG_CCGR1[CG12] and CCM_ANALOG_CCGR3[CG15]), to gate GPU2D.
*/
//@{
#define BP_CCM_CCGR1_CG12 (24) //!< Bit position for CCM_CCGR1_CG12.
#define BM_CCM_CCGR1_CG12 (0x03000000) //!< Bit mask for CCM_CCGR1_CG12.
//! @brief Get value of CCM_CCGR1_CG12 from a register value.
#define BG_CCM_CCGR1_CG12(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG12) >> BP_CCM_CCGR1_CG12)
//! @brief Format value for bitfield CCM_CCGR1_CG12.
#define BF_CCM_CCGR1_CG12(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG12) & BM_CCM_CCGR1_CG12)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG12 field to a new value.
#define BW_CCM_CCGR1_CG12(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG12) | BF_CCM_CCGR1_CG12(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG13[27:26] (RW)
*
* gpu3d clock (gpu3d_clk_enable)
*/
//@{
#define BP_CCM_CCGR1_CG13 (26) //!< Bit position for CCM_CCGR1_CG13.
#define BM_CCM_CCGR1_CG13 (0x0c000000) //!< Bit mask for CCM_CCGR1_CG13.
//! @brief Get value of CCM_CCGR1_CG13 from a register value.
#define BG_CCM_CCGR1_CG13(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG13) >> BP_CCM_CCGR1_CG13)
//! @brief Format value for bitfield CCM_CCGR1_CG13.
#define BF_CCM_CCGR1_CG13(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG13) & BM_CCM_CCGR1_CG13)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG13 field to a new value.
#define BW_CCM_CCGR1_CG13(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG13) | BF_CCM_CCGR1_CG13(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG14[29:28] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR1_CG14 (28) //!< Bit position for CCM_CCGR1_CG14.
#define BM_CCM_CCGR1_CG14 (0x30000000) //!< Bit mask for CCM_CCGR1_CG14.
//! @brief Get value of CCM_CCGR1_CG14 from a register value.
#define BG_CCM_CCGR1_CG14(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG14) >> BP_CCM_CCGR1_CG14)
//! @brief Format value for bitfield CCM_CCGR1_CG14.
#define BF_CCM_CCGR1_CG14(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG14) & BM_CCM_CCGR1_CG14)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG14 field to a new value.
#define BW_CCM_CCGR1_CG14(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG14) | BF_CCM_CCGR1_CG14(v)))
#endif
//@}
/*! @name Register CCM_CCGR1, field CG15[31:30] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR1_CG15 (30) //!< Bit position for CCM_CCGR1_CG15.
#define BM_CCM_CCGR1_CG15 (0xc0000000) //!< Bit mask for CCM_CCGR1_CG15.
//! @brief Get value of CCM_CCGR1_CG15 from a register value.
#define BG_CCM_CCGR1_CG15(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR1_CG15) >> BP_CCM_CCGR1_CG15)
//! @brief Format value for bitfield CCM_CCGR1_CG15.
#define BF_CCM_CCGR1_CG15(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR1_CG15) & BM_CCM_CCGR1_CG15)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG15 field to a new value.
#define BW_CCM_CCGR1_CG15(v) (HW_CCM_CCGR1_WR((HW_CCM_CCGR1_RD() & ~BM_CCM_CCGR1_CG15) | BF_CCM_CCGR1_CG15(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCGR2 - CCM Clock Gating Register 2
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCGR2 - CCM Clock Gating Register 2 (RW)
*
* Reset value: 0xfc3fffff
*
* The figure below represents the CCM Clock Gating Register 2 (CCM_CCGR2). The clock gating
* Registers define the clock gating for power reduction of each clock (CG(i) bits). There are 8 CGR
* registers. The number of registers required is according to the number of peripherals in the
* system.
*/
typedef union _hw_ccm_ccgr2
{
reg32_t U;
struct _hw_ccm_ccgr2_bitfields
{
unsigned CG0 : 2; //!< [1:0] hdmi_tx_iahbclk, hdmi_tx_ihclk clock (hdmi_tx_iahbclk_enable)
unsigned CG1 : 2; //!< [3:2] Reserved
unsigned CG2 : 2; //!< [5:4] hdmi_tx_isfrclk clock (hdmi_tx_isfrclk_enable)
unsigned CG3 : 2; //!< [7:6] i2c1_serial clock (i2c1_serial_clk_enable)
unsigned CG4 : 2; //!< [9:8] i2c2_serial clock (i2c2_serial_clk_enable)
unsigned CG5 : 2; //!< [11:10] i2c3_serial clock (i2c3_serial_clk_enable)
unsigned CG6 : 2; //!< [13:12] OCOTP_CTRL clock (iim_clk_enable)
unsigned CG7 : 2; //!< [15:14] iomux_ipt_clk_io clock (iomux_ipt_clk_io_enable)
unsigned CG8 : 2; //!< [17:16] ipmux1 clock (ipmux1_clk_enable)
unsigned CG9 : 2; //!< [19:18] ipmux2 clock (ipmux2_clk_enable)
unsigned CG10 : 2; //!< [21:20] ipmux3 clock (ipmux3_clk_enable)
unsigned CG11 : 2; //!< [23:22] ipsync_ip2apb_tzasc1_ipg clocks (ipsync_ip2apb_tzasc1_ipg_master_clk_enable)
unsigned CG12 : 2; //!< [25:24] ipsync_vdoa_ipg clocks (ipsync_ip2apb_tzasc2_ipg clocks)
unsigned CG13 : 2; //!< [27:26] ipsync_vdoa_ipg clocks (ipsync_vdoa_ipg_master_clk_enable)
unsigned CG14 : 2; //!< [29:28] Reserved
unsigned CG15 : 2; //!< [31:30] Reserved
} B;
} hw_ccm_ccgr2_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCGR2 register
*/
//@{
#define HW_CCM_CCGR2_ADDR (REGS_CCM_BASE + 0x70)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCGR2 (*(volatile hw_ccm_ccgr2_t *) HW_CCM_CCGR2_ADDR)
#define HW_CCM_CCGR2_RD() (HW_CCM_CCGR2.U)
#define HW_CCM_CCGR2_WR(v) (HW_CCM_CCGR2.U = (v))
#define HW_CCM_CCGR2_SET(v) (HW_CCM_CCGR2_WR(HW_CCM_CCGR2_RD() | (v)))
#define HW_CCM_CCGR2_CLR(v) (HW_CCM_CCGR2_WR(HW_CCM_CCGR2_RD() & ~(v)))
#define HW_CCM_CCGR2_TOG(v) (HW_CCM_CCGR2_WR(HW_CCM_CCGR2_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCGR2 bitfields
*/
/*! @name Register CCM_CCGR2, field CG0[1:0] (RW)
*
* hdmi_tx_iahbclk, hdmi_tx_ihclk clock (hdmi_tx_iahbclk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG0 (0) //!< Bit position for CCM_CCGR2_CG0.
#define BM_CCM_CCGR2_CG0 (0x00000003) //!< Bit mask for CCM_CCGR2_CG0.
//! @brief Get value of CCM_CCGR2_CG0 from a register value.
#define BG_CCM_CCGR2_CG0(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG0) >> BP_CCM_CCGR2_CG0)
//! @brief Format value for bitfield CCM_CCGR2_CG0.
#define BF_CCM_CCGR2_CG0(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG0) & BM_CCM_CCGR2_CG0)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG0 field to a new value.
#define BW_CCM_CCGR2_CG0(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG0) | BF_CCM_CCGR2_CG0(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG1[3:2] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR2_CG1 (2) //!< Bit position for CCM_CCGR2_CG1.
#define BM_CCM_CCGR2_CG1 (0x0000000c) //!< Bit mask for CCM_CCGR2_CG1.
//! @brief Get value of CCM_CCGR2_CG1 from a register value.
#define BG_CCM_CCGR2_CG1(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG1) >> BP_CCM_CCGR2_CG1)
//! @brief Format value for bitfield CCM_CCGR2_CG1.
#define BF_CCM_CCGR2_CG1(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG1) & BM_CCM_CCGR2_CG1)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG1 field to a new value.
#define BW_CCM_CCGR2_CG1(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG1) | BF_CCM_CCGR2_CG1(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG2[5:4] (RW)
*
* hdmi_tx_isfrclk clock (hdmi_tx_isfrclk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG2 (4) //!< Bit position for CCM_CCGR2_CG2.
#define BM_CCM_CCGR2_CG2 (0x00000030) //!< Bit mask for CCM_CCGR2_CG2.
//! @brief Get value of CCM_CCGR2_CG2 from a register value.
#define BG_CCM_CCGR2_CG2(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG2) >> BP_CCM_CCGR2_CG2)
//! @brief Format value for bitfield CCM_CCGR2_CG2.
#define BF_CCM_CCGR2_CG2(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG2) & BM_CCM_CCGR2_CG2)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG2 field to a new value.
#define BW_CCM_CCGR2_CG2(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG2) | BF_CCM_CCGR2_CG2(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG3[7:6] (RW)
*
* i2c1_serial clock (i2c1_serial_clk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG3 (6) //!< Bit position for CCM_CCGR2_CG3.
#define BM_CCM_CCGR2_CG3 (0x000000c0) //!< Bit mask for CCM_CCGR2_CG3.
//! @brief Get value of CCM_CCGR2_CG3 from a register value.
#define BG_CCM_CCGR2_CG3(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG3) >> BP_CCM_CCGR2_CG3)
//! @brief Format value for bitfield CCM_CCGR2_CG3.
#define BF_CCM_CCGR2_CG3(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG3) & BM_CCM_CCGR2_CG3)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG3 field to a new value.
#define BW_CCM_CCGR2_CG3(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG3) | BF_CCM_CCGR2_CG3(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG4[9:8] (RW)
*
* i2c2_serial clock (i2c2_serial_clk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG4 (8) //!< Bit position for CCM_CCGR2_CG4.
#define BM_CCM_CCGR2_CG4 (0x00000300) //!< Bit mask for CCM_CCGR2_CG4.
//! @brief Get value of CCM_CCGR2_CG4 from a register value.
#define BG_CCM_CCGR2_CG4(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG4) >> BP_CCM_CCGR2_CG4)
//! @brief Format value for bitfield CCM_CCGR2_CG4.
#define BF_CCM_CCGR2_CG4(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG4) & BM_CCM_CCGR2_CG4)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG4 field to a new value.
#define BW_CCM_CCGR2_CG4(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG4) | BF_CCM_CCGR2_CG4(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG5[11:10] (RW)
*
* i2c3_serial clock (i2c3_serial_clk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG5 (10) //!< Bit position for CCM_CCGR2_CG5.
#define BM_CCM_CCGR2_CG5 (0x00000c00) //!< Bit mask for CCM_CCGR2_CG5.
//! @brief Get value of CCM_CCGR2_CG5 from a register value.
#define BG_CCM_CCGR2_CG5(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG5) >> BP_CCM_CCGR2_CG5)
//! @brief Format value for bitfield CCM_CCGR2_CG5.
#define BF_CCM_CCGR2_CG5(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG5) & BM_CCM_CCGR2_CG5)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG5 field to a new value.
#define BW_CCM_CCGR2_CG5(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG5) | BF_CCM_CCGR2_CG5(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG6[13:12] (RW)
*
* OCOTP_CTRL clock (iim_clk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG6 (12) //!< Bit position for CCM_CCGR2_CG6.
#define BM_CCM_CCGR2_CG6 (0x00003000) //!< Bit mask for CCM_CCGR2_CG6.
//! @brief Get value of CCM_CCGR2_CG6 from a register value.
#define BG_CCM_CCGR2_CG6(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG6) >> BP_CCM_CCGR2_CG6)
//! @brief Format value for bitfield CCM_CCGR2_CG6.
#define BF_CCM_CCGR2_CG6(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG6) & BM_CCM_CCGR2_CG6)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG6 field to a new value.
#define BW_CCM_CCGR2_CG6(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG6) | BF_CCM_CCGR2_CG6(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG7[15:14] (RW)
*
* iomux_ipt_clk_io clock (iomux_ipt_clk_io_enable)
*/
//@{
#define BP_CCM_CCGR2_CG7 (14) //!< Bit position for CCM_CCGR2_CG7.
#define BM_CCM_CCGR2_CG7 (0x0000c000) //!< Bit mask for CCM_CCGR2_CG7.
//! @brief Get value of CCM_CCGR2_CG7 from a register value.
#define BG_CCM_CCGR2_CG7(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG7) >> BP_CCM_CCGR2_CG7)
//! @brief Format value for bitfield CCM_CCGR2_CG7.
#define BF_CCM_CCGR2_CG7(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG7) & BM_CCM_CCGR2_CG7)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG7 field to a new value.
#define BW_CCM_CCGR2_CG7(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG7) | BF_CCM_CCGR2_CG7(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG8[17:16] (RW)
*
* ipmux1 clock (ipmux1_clk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG8 (16) //!< Bit position for CCM_CCGR2_CG8.
#define BM_CCM_CCGR2_CG8 (0x00030000) //!< Bit mask for CCM_CCGR2_CG8.
//! @brief Get value of CCM_CCGR2_CG8 from a register value.
#define BG_CCM_CCGR2_CG8(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG8) >> BP_CCM_CCGR2_CG8)
//! @brief Format value for bitfield CCM_CCGR2_CG8.
#define BF_CCM_CCGR2_CG8(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG8) & BM_CCM_CCGR2_CG8)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG8 field to a new value.
#define BW_CCM_CCGR2_CG8(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG8) | BF_CCM_CCGR2_CG8(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG9[19:18] (RW)
*
* ipmux2 clock (ipmux2_clk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG9 (18) //!< Bit position for CCM_CCGR2_CG9.
#define BM_CCM_CCGR2_CG9 (0x000c0000) //!< Bit mask for CCM_CCGR2_CG9.
//! @brief Get value of CCM_CCGR2_CG9 from a register value.
#define BG_CCM_CCGR2_CG9(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG9) >> BP_CCM_CCGR2_CG9)
//! @brief Format value for bitfield CCM_CCGR2_CG9.
#define BF_CCM_CCGR2_CG9(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG9) & BM_CCM_CCGR2_CG9)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG9 field to a new value.
#define BW_CCM_CCGR2_CG9(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG9) | BF_CCM_CCGR2_CG9(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG10[21:20] (RW)
*
* ipmux3 clock (ipmux3_clk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG10 (20) //!< Bit position for CCM_CCGR2_CG10.
#define BM_CCM_CCGR2_CG10 (0x00300000) //!< Bit mask for CCM_CCGR2_CG10.
//! @brief Get value of CCM_CCGR2_CG10 from a register value.
#define BG_CCM_CCGR2_CG10(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG10) >> BP_CCM_CCGR2_CG10)
//! @brief Format value for bitfield CCM_CCGR2_CG10.
#define BF_CCM_CCGR2_CG10(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG10) & BM_CCM_CCGR2_CG10)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG10 field to a new value.
#define BW_CCM_CCGR2_CG10(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG10) | BF_CCM_CCGR2_CG10(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG11[23:22] (RW)
*
* ipsync_ip2apb_tzasc1_ipg clocks (ipsync_ip2apb_tzasc1_ipg_master_clk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG11 (22) //!< Bit position for CCM_CCGR2_CG11.
#define BM_CCM_CCGR2_CG11 (0x00c00000) //!< Bit mask for CCM_CCGR2_CG11.
//! @brief Get value of CCM_CCGR2_CG11 from a register value.
#define BG_CCM_CCGR2_CG11(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG11) >> BP_CCM_CCGR2_CG11)
//! @brief Format value for bitfield CCM_CCGR2_CG11.
#define BF_CCM_CCGR2_CG11(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG11) & BM_CCM_CCGR2_CG11)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG11 field to a new value.
#define BW_CCM_CCGR2_CG11(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG11) | BF_CCM_CCGR2_CG11(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG12[25:24] (RW)
*
* ipsync_vdoa_ipg clocks (ipsync_ip2apb_tzasc2_ipg clocks)
*/
//@{
#define BP_CCM_CCGR2_CG12 (24) //!< Bit position for CCM_CCGR2_CG12.
#define BM_CCM_CCGR2_CG12 (0x03000000) //!< Bit mask for CCM_CCGR2_CG12.
//! @brief Get value of CCM_CCGR2_CG12 from a register value.
#define BG_CCM_CCGR2_CG12(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG12) >> BP_CCM_CCGR2_CG12)
//! @brief Format value for bitfield CCM_CCGR2_CG12.
#define BF_CCM_CCGR2_CG12(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG12) & BM_CCM_CCGR2_CG12)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG12 field to a new value.
#define BW_CCM_CCGR2_CG12(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG12) | BF_CCM_CCGR2_CG12(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG13[27:26] (RW)
*
* ipsync_vdoa_ipg clocks (ipsync_vdoa_ipg_master_clk_enable)
*/
//@{
#define BP_CCM_CCGR2_CG13 (26) //!< Bit position for CCM_CCGR2_CG13.
#define BM_CCM_CCGR2_CG13 (0x0c000000) //!< Bit mask for CCM_CCGR2_CG13.
//! @brief Get value of CCM_CCGR2_CG13 from a register value.
#define BG_CCM_CCGR2_CG13(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG13) >> BP_CCM_CCGR2_CG13)
//! @brief Format value for bitfield CCM_CCGR2_CG13.
#define BF_CCM_CCGR2_CG13(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG13) & BM_CCM_CCGR2_CG13)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG13 field to a new value.
#define BW_CCM_CCGR2_CG13(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG13) | BF_CCM_CCGR2_CG13(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG14[29:28] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR2_CG14 (28) //!< Bit position for CCM_CCGR2_CG14.
#define BM_CCM_CCGR2_CG14 (0x30000000) //!< Bit mask for CCM_CCGR2_CG14.
//! @brief Get value of CCM_CCGR2_CG14 from a register value.
#define BG_CCM_CCGR2_CG14(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG14) >> BP_CCM_CCGR2_CG14)
//! @brief Format value for bitfield CCM_CCGR2_CG14.
#define BF_CCM_CCGR2_CG14(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG14) & BM_CCM_CCGR2_CG14)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG14 field to a new value.
#define BW_CCM_CCGR2_CG14(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG14) | BF_CCM_CCGR2_CG14(v)))
#endif
//@}
/*! @name Register CCM_CCGR2, field CG15[31:30] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR2_CG15 (30) //!< Bit position for CCM_CCGR2_CG15.
#define BM_CCM_CCGR2_CG15 (0xc0000000) //!< Bit mask for CCM_CCGR2_CG15.
//! @brief Get value of CCM_CCGR2_CG15 from a register value.
#define BG_CCM_CCGR2_CG15(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR2_CG15) >> BP_CCM_CCGR2_CG15)
//! @brief Format value for bitfield CCM_CCGR2_CG15.
#define BF_CCM_CCGR2_CG15(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR2_CG15) & BM_CCM_CCGR2_CG15)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG15 field to a new value.
#define BW_CCM_CCGR2_CG15(v) (HW_CCM_CCGR2_WR((HW_CCM_CCGR2_RD() & ~BM_CCM_CCGR2_CG15) | BF_CCM_CCGR2_CG15(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCGR3 - CCM Clock Gating Register 3
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCGR3 - CCM Clock Gating Register 3 (RW)
*
* Reset value: 0xffffffff
*
* The figure below represents the CCM Clock Gating Register 3 (CCM_CCGR3). The clock gating
* Registers define the clock gating for power reduction of each clock (CG(i) bits). There are 8 CGR
* registers. The number of registers required is according to the number of peripherals in the
* system.
*/
typedef union _hw_ccm_ccgr3
{
reg32_t U;
struct _hw_ccm_ccgr3_bitfields
{
unsigned CG0 : 2; //!< [1:0] ipu1_ipu clock (ipu1_ipu_clk_enable)
unsigned CG1 : 2; //!< [3:2] ipu1_ipu_di0 clock (ipu1_ipu_di0_clk_enable)
unsigned CG2 : 2; //!< [5:4] ipu1_ipu_di1 clock (ipu1_ipu_di1_clk_enable)
unsigned CG3 : 2; //!< [7:6] epdc/lcdif/pxp clock (epdc_axi_clk_enable)
unsigned CG4 : 2; //!< [9:8] lcdif_pix clock (lcdif_pix_clk_enable)
unsigned CG5 : 2; //!< [11:10] epdc_pix clock (epdc_pix_clk_enable)
unsigned CG6 : 2; //!< [13:12] ldb_di0 clock (ldb_di0_clk_enable)
unsigned CG7 : 2; //!< [15:14] ldb_di1 clock (ldb_di1_clk_enable)
unsigned CG8 : 2; //!< [17:16] mipi_core_cfg clock (mipi_core_cfg_clk_enable)
unsigned CG9 : 2; //!< [19:18] mlb clock (mlb_clk_enable)
unsigned CG10 : 2; //!< [21:20] mmdc_core_aclk_fast_core_p0 clock (mmdc_core_aclk_fast_core_p0_enable)
unsigned CG11 : 2; //!< [23:22] mmdc_core_aclk_fast_core_p1 clock (mmdc_core_aclk_fast_core_p1_enable)
unsigned CG12 : 2; //!< [25:24] mmdc_core_ipg_clk_p0 clock (mmdc_core_ipg_clk_p0_enable)
unsigned CG13 : 2; //!< [27:26] mmdc_core_ipg_clk_p1 clock (mmdc_core_ipg_clk_p1_enable)
unsigned CG14 : 2; //!< [29:28] ocram clock (ocram_clk_enable)
unsigned CG15 : 2; //!< [31:30] openvgaxiclk clock (openvgaxiclk_clk_root_enable)
} B;
} hw_ccm_ccgr3_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCGR3 register
*/
//@{
#define HW_CCM_CCGR3_ADDR (REGS_CCM_BASE + 0x74)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCGR3 (*(volatile hw_ccm_ccgr3_t *) HW_CCM_CCGR3_ADDR)
#define HW_CCM_CCGR3_RD() (HW_CCM_CCGR3.U)
#define HW_CCM_CCGR3_WR(v) (HW_CCM_CCGR3.U = (v))
#define HW_CCM_CCGR3_SET(v) (HW_CCM_CCGR3_WR(HW_CCM_CCGR3_RD() | (v)))
#define HW_CCM_CCGR3_CLR(v) (HW_CCM_CCGR3_WR(HW_CCM_CCGR3_RD() & ~(v)))
#define HW_CCM_CCGR3_TOG(v) (HW_CCM_CCGR3_WR(HW_CCM_CCGR3_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCGR3 bitfields
*/
/*! @name Register CCM_CCGR3, field CG0[1:0] (RW)
*
* ipu1_ipu clock (ipu1_ipu_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG0 (0) //!< Bit position for CCM_CCGR3_CG0.
#define BM_CCM_CCGR3_CG0 (0x00000003) //!< Bit mask for CCM_CCGR3_CG0.
//! @brief Get value of CCM_CCGR3_CG0 from a register value.
#define BG_CCM_CCGR3_CG0(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG0) >> BP_CCM_CCGR3_CG0)
//! @brief Format value for bitfield CCM_CCGR3_CG0.
#define BF_CCM_CCGR3_CG0(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG0) & BM_CCM_CCGR3_CG0)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG0 field to a new value.
#define BW_CCM_CCGR3_CG0(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG0) | BF_CCM_CCGR3_CG0(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG1[3:2] (RW)
*
* ipu1_ipu_di0 clock (ipu1_ipu_di0_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG1 (2) //!< Bit position for CCM_CCGR3_CG1.
#define BM_CCM_CCGR3_CG1 (0x0000000c) //!< Bit mask for CCM_CCGR3_CG1.
//! @brief Get value of CCM_CCGR3_CG1 from a register value.
#define BG_CCM_CCGR3_CG1(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG1) >> BP_CCM_CCGR3_CG1)
//! @brief Format value for bitfield CCM_CCGR3_CG1.
#define BF_CCM_CCGR3_CG1(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG1) & BM_CCM_CCGR3_CG1)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG1 field to a new value.
#define BW_CCM_CCGR3_CG1(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG1) | BF_CCM_CCGR3_CG1(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG2[5:4] (RW)
*
* ipu1_ipu_di1 clock (ipu1_ipu_di1_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG2 (4) //!< Bit position for CCM_CCGR3_CG2.
#define BM_CCM_CCGR3_CG2 (0x00000030) //!< Bit mask for CCM_CCGR3_CG2.
//! @brief Get value of CCM_CCGR3_CG2 from a register value.
#define BG_CCM_CCGR3_CG2(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG2) >> BP_CCM_CCGR3_CG2)
//! @brief Format value for bitfield CCM_CCGR3_CG2.
#define BF_CCM_CCGR3_CG2(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG2) & BM_CCM_CCGR3_CG2)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG2 field to a new value.
#define BW_CCM_CCGR3_CG2(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG2) | BF_CCM_CCGR3_CG2(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG3[7:6] (RW)
*
* epdc/lcdif/pxp clock (epdc_axi_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG3 (6) //!< Bit position for CCM_CCGR3_CG3.
#define BM_CCM_CCGR3_CG3 (0x000000c0) //!< Bit mask for CCM_CCGR3_CG3.
//! @brief Get value of CCM_CCGR3_CG3 from a register value.
#define BG_CCM_CCGR3_CG3(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG3) >> BP_CCM_CCGR3_CG3)
//! @brief Format value for bitfield CCM_CCGR3_CG3.
#define BF_CCM_CCGR3_CG3(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG3) & BM_CCM_CCGR3_CG3)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG3 field to a new value.
#define BW_CCM_CCGR3_CG3(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG3) | BF_CCM_CCGR3_CG3(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG4[9:8] (RW)
*
* lcdif_pix clock (lcdif_pix_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG4 (8) //!< Bit position for CCM_CCGR3_CG4.
#define BM_CCM_CCGR3_CG4 (0x00000300) //!< Bit mask for CCM_CCGR3_CG4.
//! @brief Get value of CCM_CCGR3_CG4 from a register value.
#define BG_CCM_CCGR3_CG4(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG4) >> BP_CCM_CCGR3_CG4)
//! @brief Format value for bitfield CCM_CCGR3_CG4.
#define BF_CCM_CCGR3_CG4(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG4) & BM_CCM_CCGR3_CG4)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG4 field to a new value.
#define BW_CCM_CCGR3_CG4(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG4) | BF_CCM_CCGR3_CG4(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG5[11:10] (RW)
*
* epdc_pix clock (epdc_pix_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG5 (10) //!< Bit position for CCM_CCGR3_CG5.
#define BM_CCM_CCGR3_CG5 (0x00000c00) //!< Bit mask for CCM_CCGR3_CG5.
//! @brief Get value of CCM_CCGR3_CG5 from a register value.
#define BG_CCM_CCGR3_CG5(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG5) >> BP_CCM_CCGR3_CG5)
//! @brief Format value for bitfield CCM_CCGR3_CG5.
#define BF_CCM_CCGR3_CG5(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG5) & BM_CCM_CCGR3_CG5)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG5 field to a new value.
#define BW_CCM_CCGR3_CG5(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG5) | BF_CCM_CCGR3_CG5(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG6[13:12] (RW)
*
* ldb_di0 clock (ldb_di0_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG6 (12) //!< Bit position for CCM_CCGR3_CG6.
#define BM_CCM_CCGR3_CG6 (0x00003000) //!< Bit mask for CCM_CCGR3_CG6.
//! @brief Get value of CCM_CCGR3_CG6 from a register value.
#define BG_CCM_CCGR3_CG6(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG6) >> BP_CCM_CCGR3_CG6)
//! @brief Format value for bitfield CCM_CCGR3_CG6.
#define BF_CCM_CCGR3_CG6(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG6) & BM_CCM_CCGR3_CG6)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG6 field to a new value.
#define BW_CCM_CCGR3_CG6(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG6) | BF_CCM_CCGR3_CG6(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG7[15:14] (RW)
*
* ldb_di1 clock (ldb_di1_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG7 (14) //!< Bit position for CCM_CCGR3_CG7.
#define BM_CCM_CCGR3_CG7 (0x0000c000) //!< Bit mask for CCM_CCGR3_CG7.
//! @brief Get value of CCM_CCGR3_CG7 from a register value.
#define BG_CCM_CCGR3_CG7(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG7) >> BP_CCM_CCGR3_CG7)
//! @brief Format value for bitfield CCM_CCGR3_CG7.
#define BF_CCM_CCGR3_CG7(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG7) & BM_CCM_CCGR3_CG7)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG7 field to a new value.
#define BW_CCM_CCGR3_CG7(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG7) | BF_CCM_CCGR3_CG7(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG8[17:16] (RW)
*
* mipi_core_cfg clock (mipi_core_cfg_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG8 (16) //!< Bit position for CCM_CCGR3_CG8.
#define BM_CCM_CCGR3_CG8 (0x00030000) //!< Bit mask for CCM_CCGR3_CG8.
//! @brief Get value of CCM_CCGR3_CG8 from a register value.
#define BG_CCM_CCGR3_CG8(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG8) >> BP_CCM_CCGR3_CG8)
//! @brief Format value for bitfield CCM_CCGR3_CG8.
#define BF_CCM_CCGR3_CG8(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG8) & BM_CCM_CCGR3_CG8)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG8 field to a new value.
#define BW_CCM_CCGR3_CG8(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG8) | BF_CCM_CCGR3_CG8(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG9[19:18] (RW)
*
* mlb clock (mlb_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG9 (18) //!< Bit position for CCM_CCGR3_CG9.
#define BM_CCM_CCGR3_CG9 (0x000c0000) //!< Bit mask for CCM_CCGR3_CG9.
//! @brief Get value of CCM_CCGR3_CG9 from a register value.
#define BG_CCM_CCGR3_CG9(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG9) >> BP_CCM_CCGR3_CG9)
//! @brief Format value for bitfield CCM_CCGR3_CG9.
#define BF_CCM_CCGR3_CG9(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG9) & BM_CCM_CCGR3_CG9)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG9 field to a new value.
#define BW_CCM_CCGR3_CG9(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG9) | BF_CCM_CCGR3_CG9(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG10[21:20] (RW)
*
* mmdc_core_aclk_fast_core_p0 clock (mmdc_core_aclk_fast_core_p0_enable)
*/
//@{
#define BP_CCM_CCGR3_CG10 (20) //!< Bit position for CCM_CCGR3_CG10.
#define BM_CCM_CCGR3_CG10 (0x00300000) //!< Bit mask for CCM_CCGR3_CG10.
//! @brief Get value of CCM_CCGR3_CG10 from a register value.
#define BG_CCM_CCGR3_CG10(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG10) >> BP_CCM_CCGR3_CG10)
//! @brief Format value for bitfield CCM_CCGR3_CG10.
#define BF_CCM_CCGR3_CG10(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG10) & BM_CCM_CCGR3_CG10)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG10 field to a new value.
#define BW_CCM_CCGR3_CG10(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG10) | BF_CCM_CCGR3_CG10(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG11[23:22] (RW)
*
* mmdc_core_aclk_fast_core_p1 clock (mmdc_core_aclk_fast_core_p1_enable)
*/
//@{
#define BP_CCM_CCGR3_CG11 (22) //!< Bit position for CCM_CCGR3_CG11.
#define BM_CCM_CCGR3_CG11 (0x00c00000) //!< Bit mask for CCM_CCGR3_CG11.
//! @brief Get value of CCM_CCGR3_CG11 from a register value.
#define BG_CCM_CCGR3_CG11(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG11) >> BP_CCM_CCGR3_CG11)
//! @brief Format value for bitfield CCM_CCGR3_CG11.
#define BF_CCM_CCGR3_CG11(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG11) & BM_CCM_CCGR3_CG11)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG11 field to a new value.
#define BW_CCM_CCGR3_CG11(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG11) | BF_CCM_CCGR3_CG11(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG12[25:24] (RW)
*
* mmdc_core_ipg_clk_p0 clock (mmdc_core_ipg_clk_p0_enable)
*/
//@{
#define BP_CCM_CCGR3_CG12 (24) //!< Bit position for CCM_CCGR3_CG12.
#define BM_CCM_CCGR3_CG12 (0x03000000) //!< Bit mask for CCM_CCGR3_CG12.
//! @brief Get value of CCM_CCGR3_CG12 from a register value.
#define BG_CCM_CCGR3_CG12(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG12) >> BP_CCM_CCGR3_CG12)
//! @brief Format value for bitfield CCM_CCGR3_CG12.
#define BF_CCM_CCGR3_CG12(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG12) & BM_CCM_CCGR3_CG12)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG12 field to a new value.
#define BW_CCM_CCGR3_CG12(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG12) | BF_CCM_CCGR3_CG12(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG13[27:26] (RW)
*
* mmdc_core_ipg_clk_p1 clock (mmdc_core_ipg_clk_p1_enable)
*/
//@{
#define BP_CCM_CCGR3_CG13 (26) //!< Bit position for CCM_CCGR3_CG13.
#define BM_CCM_CCGR3_CG13 (0x0c000000) //!< Bit mask for CCM_CCGR3_CG13.
//! @brief Get value of CCM_CCGR3_CG13 from a register value.
#define BG_CCM_CCGR3_CG13(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG13) >> BP_CCM_CCGR3_CG13)
//! @brief Format value for bitfield CCM_CCGR3_CG13.
#define BF_CCM_CCGR3_CG13(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG13) & BM_CCM_CCGR3_CG13)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG13 field to a new value.
#define BW_CCM_CCGR3_CG13(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG13) | BF_CCM_CCGR3_CG13(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG14[29:28] (RW)
*
* ocram clock (ocram_clk_enable)
*/
//@{
#define BP_CCM_CCGR3_CG14 (28) //!< Bit position for CCM_CCGR3_CG14.
#define BM_CCM_CCGR3_CG14 (0x30000000) //!< Bit mask for CCM_CCGR3_CG14.
//! @brief Get value of CCM_CCGR3_CG14 from a register value.
#define BG_CCM_CCGR3_CG14(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG14) >> BP_CCM_CCGR3_CG14)
//! @brief Format value for bitfield CCM_CCGR3_CG14.
#define BF_CCM_CCGR3_CG14(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG14) & BM_CCM_CCGR3_CG14)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG14 field to a new value.
#define BW_CCM_CCGR3_CG14(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG14) | BF_CCM_CCGR3_CG14(v)))
#endif
//@}
/*! @name Register CCM_CCGR3, field CG15[31:30] (RW)
*
* openvgaxiclk clock (openvgaxiclk_clk_root_enable) OPENVG clock cannot be gated without gating
* GPU2D clock as well. Please configure both CG bits (CCM_ANALOG_CCGR1[CG12] and
* CCM_ANALOG_CCGR3[CG15]) to gate OPENVG.
*/
//@{
#define BP_CCM_CCGR3_CG15 (30) //!< Bit position for CCM_CCGR3_CG15.
#define BM_CCM_CCGR3_CG15 (0xc0000000) //!< Bit mask for CCM_CCGR3_CG15.
//! @brief Get value of CCM_CCGR3_CG15 from a register value.
#define BG_CCM_CCGR3_CG15(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR3_CG15) >> BP_CCM_CCGR3_CG15)
//! @brief Format value for bitfield CCM_CCGR3_CG15.
#define BF_CCM_CCGR3_CG15(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR3_CG15) & BM_CCM_CCGR3_CG15)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG15 field to a new value.
#define BW_CCM_CCGR3_CG15(v) (HW_CCM_CCGR3_WR((HW_CCM_CCGR3_RD() & ~BM_CCM_CCGR3_CG15) | BF_CCM_CCGR3_CG15(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCGR4 - CCM Clock Gating Register 4
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCGR4 - CCM Clock Gating Register 4 (RW)
*
* Reset value: 0xffffffff
*
* The figure below represents the CCM Clock Gating Register 4 (CCM_CCGR4). The clock gating
* Registers define the clock gating for power reduction of each clock (CG(i) bits). There are 8 CGR
* registers. The number of registers required is according to the number of peripherals in the
* system.
*/
typedef union _hw_ccm_ccgr4
{
reg32_t U;
struct _hw_ccm_ccgr4_bitfields
{
unsigned CG0 : 2; //!< [1:0] 125M clocks (125M_root_enable)
unsigned CG1 : 2; //!< [3:2] Reserved.
unsigned CG2 : 2; //!< [5:4] Reserved.
unsigned CG3 : 2; //!< [7:6] Reserved.
unsigned CG4 : 2; //!< [9:8] pl301_mx6qfast1_s133 clock (pl301_mx6qfast1_s133clk_enable)
unsigned CG5 : 2; //!< [11:10] Reserved
unsigned CG6 : 2; //!< [13:12] pl301_mx6qper1_bch clocks (pl301_mx6qper1_bchclk_enable)
unsigned CG7 : 2; //!< [15:14] pl301_mx6qper2_mainclk_enable (pl301_mx6qper2_mainclk_enable)
unsigned CG8 : 2; //!< [17:16] pwm1 clocks (pwm1_clk_enable)
unsigned CG9 : 2; //!< [19:18] pwm2 clocks (pwm2_clk_enable)
unsigned CG10 : 2; //!< [21:20] pwm3 clocks (pwm3_clk_enable)
unsigned CG11 : 2; //!< [23:22] pwm4 clocks (pwm4_clk_enable)
unsigned CG12 : 2; //!< [25:24] rawnand_u_bch_input_apb clock (rawnand_u_bch_input_apb_clk_enable)
unsigned CG13 : 2; //!< [27:26] rawnand_u_gpmi_bch_input_bch clock (rawnand_u_gpmi_bch_input_bch_clk_enable)
unsigned CG14 : 2; //!< [29:28] rawnand_u_gpmi_bch_input_gpmi_io clock (rawnand_u_gpmi_bch_input_gpmi_io_clk_enable)
unsigned CG15 : 2; //!< [31:30] rawnand_u_gpmi_input_apb clock rawnand_u_gpmi_input_apb_clk_enable)
} B;
} hw_ccm_ccgr4_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCGR4 register
*/
//@{
#define HW_CCM_CCGR4_ADDR (REGS_CCM_BASE + 0x78)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCGR4 (*(volatile hw_ccm_ccgr4_t *) HW_CCM_CCGR4_ADDR)
#define HW_CCM_CCGR4_RD() (HW_CCM_CCGR4.U)
#define HW_CCM_CCGR4_WR(v) (HW_CCM_CCGR4.U = (v))
#define HW_CCM_CCGR4_SET(v) (HW_CCM_CCGR4_WR(HW_CCM_CCGR4_RD() | (v)))
#define HW_CCM_CCGR4_CLR(v) (HW_CCM_CCGR4_WR(HW_CCM_CCGR4_RD() & ~(v)))
#define HW_CCM_CCGR4_TOG(v) (HW_CCM_CCGR4_WR(HW_CCM_CCGR4_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCGR4 bitfields
*/
/*! @name Register CCM_CCGR4, field CG0[1:0] (RW)
*
* 125M clocks (125M_root_enable)
*/
//@{
#define BP_CCM_CCGR4_CG0 (0) //!< Bit position for CCM_CCGR4_CG0.
#define BM_CCM_CCGR4_CG0 (0x00000003) //!< Bit mask for CCM_CCGR4_CG0.
//! @brief Get value of CCM_CCGR4_CG0 from a register value.
#define BG_CCM_CCGR4_CG0(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG0) >> BP_CCM_CCGR4_CG0)
//! @brief Format value for bitfield CCM_CCGR4_CG0.
#define BF_CCM_CCGR4_CG0(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG0) & BM_CCM_CCGR4_CG0)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG0 field to a new value.
#define BW_CCM_CCGR4_CG0(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG0) | BF_CCM_CCGR4_CG0(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG1[3:2] (RW)
*
* Reserved.
*/
//@{
#define BP_CCM_CCGR4_CG1 (2) //!< Bit position for CCM_CCGR4_CG1.
#define BM_CCM_CCGR4_CG1 (0x0000000c) //!< Bit mask for CCM_CCGR4_CG1.
//! @brief Get value of CCM_CCGR4_CG1 from a register value.
#define BG_CCM_CCGR4_CG1(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG1) >> BP_CCM_CCGR4_CG1)
//! @brief Format value for bitfield CCM_CCGR4_CG1.
#define BF_CCM_CCGR4_CG1(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG1) & BM_CCM_CCGR4_CG1)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG1 field to a new value.
#define BW_CCM_CCGR4_CG1(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG1) | BF_CCM_CCGR4_CG1(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG2[5:4] (RW)
*
* Reserved.
*/
//@{
#define BP_CCM_CCGR4_CG2 (4) //!< Bit position for CCM_CCGR4_CG2.
#define BM_CCM_CCGR4_CG2 (0x00000030) //!< Bit mask for CCM_CCGR4_CG2.
//! @brief Get value of CCM_CCGR4_CG2 from a register value.
#define BG_CCM_CCGR4_CG2(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG2) >> BP_CCM_CCGR4_CG2)
//! @brief Format value for bitfield CCM_CCGR4_CG2.
#define BF_CCM_CCGR4_CG2(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG2) & BM_CCM_CCGR4_CG2)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG2 field to a new value.
#define BW_CCM_CCGR4_CG2(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG2) | BF_CCM_CCGR4_CG2(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG3[7:6] (RW)
*
* Reserved.
*/
//@{
#define BP_CCM_CCGR4_CG3 (6) //!< Bit position for CCM_CCGR4_CG3.
#define BM_CCM_CCGR4_CG3 (0x000000c0) //!< Bit mask for CCM_CCGR4_CG3.
//! @brief Get value of CCM_CCGR4_CG3 from a register value.
#define BG_CCM_CCGR4_CG3(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG3) >> BP_CCM_CCGR4_CG3)
//! @brief Format value for bitfield CCM_CCGR4_CG3.
#define BF_CCM_CCGR4_CG3(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG3) & BM_CCM_CCGR4_CG3)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG3 field to a new value.
#define BW_CCM_CCGR4_CG3(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG3) | BF_CCM_CCGR4_CG3(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG4[9:8] (RW)
*
* pl301_mx6qfast1_s133 clock (pl301_mx6qfast1_s133clk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG4 (8) //!< Bit position for CCM_CCGR4_CG4.
#define BM_CCM_CCGR4_CG4 (0x00000300) //!< Bit mask for CCM_CCGR4_CG4.
//! @brief Get value of CCM_CCGR4_CG4 from a register value.
#define BG_CCM_CCGR4_CG4(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG4) >> BP_CCM_CCGR4_CG4)
//! @brief Format value for bitfield CCM_CCGR4_CG4.
#define BF_CCM_CCGR4_CG4(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG4) & BM_CCM_CCGR4_CG4)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG4 field to a new value.
#define BW_CCM_CCGR4_CG4(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG4) | BF_CCM_CCGR4_CG4(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG5[11:10] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR4_CG5 (10) //!< Bit position for CCM_CCGR4_CG5.
#define BM_CCM_CCGR4_CG5 (0x00000c00) //!< Bit mask for CCM_CCGR4_CG5.
//! @brief Get value of CCM_CCGR4_CG5 from a register value.
#define BG_CCM_CCGR4_CG5(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG5) >> BP_CCM_CCGR4_CG5)
//! @brief Format value for bitfield CCM_CCGR4_CG5.
#define BF_CCM_CCGR4_CG5(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG5) & BM_CCM_CCGR4_CG5)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG5 field to a new value.
#define BW_CCM_CCGR4_CG5(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG5) | BF_CCM_CCGR4_CG5(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG6[13:12] (RW)
*
* pl301_mx6qper1_bch clocks (pl301_mx6qper1_bchclk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG6 (12) //!< Bit position for CCM_CCGR4_CG6.
#define BM_CCM_CCGR4_CG6 (0x00003000) //!< Bit mask for CCM_CCGR4_CG6.
//! @brief Get value of CCM_CCGR4_CG6 from a register value.
#define BG_CCM_CCGR4_CG6(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG6) >> BP_CCM_CCGR4_CG6)
//! @brief Format value for bitfield CCM_CCGR4_CG6.
#define BF_CCM_CCGR4_CG6(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG6) & BM_CCM_CCGR4_CG6)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG6 field to a new value.
#define BW_CCM_CCGR4_CG6(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG6) | BF_CCM_CCGR4_CG6(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG7[15:14] (RW)
*
* pl301_mx6qper2_mainclk_enable (pl301_mx6qper2_mainclk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG7 (14) //!< Bit position for CCM_CCGR4_CG7.
#define BM_CCM_CCGR4_CG7 (0x0000c000) //!< Bit mask for CCM_CCGR4_CG7.
//! @brief Get value of CCM_CCGR4_CG7 from a register value.
#define BG_CCM_CCGR4_CG7(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG7) >> BP_CCM_CCGR4_CG7)
//! @brief Format value for bitfield CCM_CCGR4_CG7.
#define BF_CCM_CCGR4_CG7(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG7) & BM_CCM_CCGR4_CG7)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG7 field to a new value.
#define BW_CCM_CCGR4_CG7(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG7) | BF_CCM_CCGR4_CG7(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG8[17:16] (RW)
*
* pwm1 clocks (pwm1_clk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG8 (16) //!< Bit position for CCM_CCGR4_CG8.
#define BM_CCM_CCGR4_CG8 (0x00030000) //!< Bit mask for CCM_CCGR4_CG8.
//! @brief Get value of CCM_CCGR4_CG8 from a register value.
#define BG_CCM_CCGR4_CG8(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG8) >> BP_CCM_CCGR4_CG8)
//! @brief Format value for bitfield CCM_CCGR4_CG8.
#define BF_CCM_CCGR4_CG8(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG8) & BM_CCM_CCGR4_CG8)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG8 field to a new value.
#define BW_CCM_CCGR4_CG8(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG8) | BF_CCM_CCGR4_CG8(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG9[19:18] (RW)
*
* pwm2 clocks (pwm2_clk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG9 (18) //!< Bit position for CCM_CCGR4_CG9.
#define BM_CCM_CCGR4_CG9 (0x000c0000) //!< Bit mask for CCM_CCGR4_CG9.
//! @brief Get value of CCM_CCGR4_CG9 from a register value.
#define BG_CCM_CCGR4_CG9(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG9) >> BP_CCM_CCGR4_CG9)
//! @brief Format value for bitfield CCM_CCGR4_CG9.
#define BF_CCM_CCGR4_CG9(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG9) & BM_CCM_CCGR4_CG9)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG9 field to a new value.
#define BW_CCM_CCGR4_CG9(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG9) | BF_CCM_CCGR4_CG9(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG10[21:20] (RW)
*
* pwm3 clocks (pwm3_clk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG10 (20) //!< Bit position for CCM_CCGR4_CG10.
#define BM_CCM_CCGR4_CG10 (0x00300000) //!< Bit mask for CCM_CCGR4_CG10.
//! @brief Get value of CCM_CCGR4_CG10 from a register value.
#define BG_CCM_CCGR4_CG10(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG10) >> BP_CCM_CCGR4_CG10)
//! @brief Format value for bitfield CCM_CCGR4_CG10.
#define BF_CCM_CCGR4_CG10(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG10) & BM_CCM_CCGR4_CG10)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG10 field to a new value.
#define BW_CCM_CCGR4_CG10(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG10) | BF_CCM_CCGR4_CG10(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG11[23:22] (RW)
*
* pwm4 clocks (pwm4_clk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG11 (22) //!< Bit position for CCM_CCGR4_CG11.
#define BM_CCM_CCGR4_CG11 (0x00c00000) //!< Bit mask for CCM_CCGR4_CG11.
//! @brief Get value of CCM_CCGR4_CG11 from a register value.
#define BG_CCM_CCGR4_CG11(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG11) >> BP_CCM_CCGR4_CG11)
//! @brief Format value for bitfield CCM_CCGR4_CG11.
#define BF_CCM_CCGR4_CG11(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG11) & BM_CCM_CCGR4_CG11)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG11 field to a new value.
#define BW_CCM_CCGR4_CG11(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG11) | BF_CCM_CCGR4_CG11(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG12[25:24] (RW)
*
* rawnand_u_bch_input_apb clock (rawnand_u_bch_input_apb_clk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG12 (24) //!< Bit position for CCM_CCGR4_CG12.
#define BM_CCM_CCGR4_CG12 (0x03000000) //!< Bit mask for CCM_CCGR4_CG12.
//! @brief Get value of CCM_CCGR4_CG12 from a register value.
#define BG_CCM_CCGR4_CG12(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG12) >> BP_CCM_CCGR4_CG12)
//! @brief Format value for bitfield CCM_CCGR4_CG12.
#define BF_CCM_CCGR4_CG12(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG12) & BM_CCM_CCGR4_CG12)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG12 field to a new value.
#define BW_CCM_CCGR4_CG12(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG12) | BF_CCM_CCGR4_CG12(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG13[27:26] (RW)
*
* rawnand_u_gpmi_bch_input_bch clock (rawnand_u_gpmi_bch_input_bch_clk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG13 (26) //!< Bit position for CCM_CCGR4_CG13.
#define BM_CCM_CCGR4_CG13 (0x0c000000) //!< Bit mask for CCM_CCGR4_CG13.
//! @brief Get value of CCM_CCGR4_CG13 from a register value.
#define BG_CCM_CCGR4_CG13(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG13) >> BP_CCM_CCGR4_CG13)
//! @brief Format value for bitfield CCM_CCGR4_CG13.
#define BF_CCM_CCGR4_CG13(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG13) & BM_CCM_CCGR4_CG13)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG13 field to a new value.
#define BW_CCM_CCGR4_CG13(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG13) | BF_CCM_CCGR4_CG13(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG14[29:28] (RW)
*
* rawnand_u_gpmi_bch_input_gpmi_io clock (rawnand_u_gpmi_bch_input_gpmi_io_clk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG14 (28) //!< Bit position for CCM_CCGR4_CG14.
#define BM_CCM_CCGR4_CG14 (0x30000000) //!< Bit mask for CCM_CCGR4_CG14.
//! @brief Get value of CCM_CCGR4_CG14 from a register value.
#define BG_CCM_CCGR4_CG14(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG14) >> BP_CCM_CCGR4_CG14)
//! @brief Format value for bitfield CCM_CCGR4_CG14.
#define BF_CCM_CCGR4_CG14(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG14) & BM_CCM_CCGR4_CG14)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG14 field to a new value.
#define BW_CCM_CCGR4_CG14(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG14) | BF_CCM_CCGR4_CG14(v)))
#endif
//@}
/*! @name Register CCM_CCGR4, field CG15[31:30] (RW)
*
* rawnand_u_gpmi_input_apb clock rawnand_u_gpmi_input_apb_clk_enable)
*/
//@{
#define BP_CCM_CCGR4_CG15 (30) //!< Bit position for CCM_CCGR4_CG15.
#define BM_CCM_CCGR4_CG15 (0xc0000000) //!< Bit mask for CCM_CCGR4_CG15.
//! @brief Get value of CCM_CCGR4_CG15 from a register value.
#define BG_CCM_CCGR4_CG15(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR4_CG15) >> BP_CCM_CCGR4_CG15)
//! @brief Format value for bitfield CCM_CCGR4_CG15.
#define BF_CCM_CCGR4_CG15(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR4_CG15) & BM_CCM_CCGR4_CG15)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG15 field to a new value.
#define BW_CCM_CCGR4_CG15(v) (HW_CCM_CCGR4_WR((HW_CCM_CCGR4_RD() & ~BM_CCM_CCGR4_CG15) | BF_CCM_CCGR4_CG15(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCGR5 - CCM Clock Gating Register 5
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCGR5 - CCM Clock Gating Register 5 (RW)
*
* Reset value: 0xffffffff
*
* The figure below represents the CCM Clock Gating Register 5 (CCM_CCGR5). The clock gating
* Registers define the clock gating for power reduction of each clock (CG(i) bits). There are 8 CGR
* registers. The number of registers required is according to the number of peripherals in the
* system.
*/
typedef union _hw_ccm_ccgr5
{
reg32_t U;
struct _hw_ccm_ccgr5_bitfields
{
unsigned CG0 : 2; //!< [1:0] rom clock (rom_clk_enable)
unsigned CG1 : 2; //!< [3:2] Reserved
unsigned CG2 : 2; //!< [5:4] 100M clock (100M_clk_enable)
unsigned CG3 : 2; //!< [7:6] sdma clock (sdma_clk_enable)
unsigned CG4 : 2; //!< [9:8] Reserved
unsigned CG5 : 2; //!< [11:10] Reserved
unsigned CG6 : 2; //!< [13:12] spba clock (spba_clk_enable)
unsigned CG7 : 2; //!< [15:14] spdif clock (spdif_clk_enable)
unsigned CG8 : 2; //!< [17:16] Reserved
unsigned CG9 : 2; //!< [19:18] ssi1 clocks (ssi1_clk_enable)
unsigned CG10 : 2; //!< [21:20] ssi2 clocks (ssi2_clk_enable)
unsigned CG11 : 2; //!< [23:22] ssi3 clocks (ssi3_clk_enable)
unsigned CG12 : 2; //!< [25:24] uart clock (uart_clk_enable)
unsigned CG13 : 2; //!< [27:26] uart_serial clock (uart_serial_clk_enable)
unsigned CG14 : 2; //!< [29:28] Reserved
unsigned CG15 : 2; //!< [31:30] Reserved
} B;
} hw_ccm_ccgr5_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCGR5 register
*/
//@{
#define HW_CCM_CCGR5_ADDR (REGS_CCM_BASE + 0x7c)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCGR5 (*(volatile hw_ccm_ccgr5_t *) HW_CCM_CCGR5_ADDR)
#define HW_CCM_CCGR5_RD() (HW_CCM_CCGR5.U)
#define HW_CCM_CCGR5_WR(v) (HW_CCM_CCGR5.U = (v))
#define HW_CCM_CCGR5_SET(v) (HW_CCM_CCGR5_WR(HW_CCM_CCGR5_RD() | (v)))
#define HW_CCM_CCGR5_CLR(v) (HW_CCM_CCGR5_WR(HW_CCM_CCGR5_RD() & ~(v)))
#define HW_CCM_CCGR5_TOG(v) (HW_CCM_CCGR5_WR(HW_CCM_CCGR5_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCGR5 bitfields
*/
/*! @name Register CCM_CCGR5, field CG0[1:0] (RW)
*
* rom clock (rom_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG0 (0) //!< Bit position for CCM_CCGR5_CG0.
#define BM_CCM_CCGR5_CG0 (0x00000003) //!< Bit mask for CCM_CCGR5_CG0.
//! @brief Get value of CCM_CCGR5_CG0 from a register value.
#define BG_CCM_CCGR5_CG0(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG0) >> BP_CCM_CCGR5_CG0)
//! @brief Format value for bitfield CCM_CCGR5_CG0.
#define BF_CCM_CCGR5_CG0(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG0) & BM_CCM_CCGR5_CG0)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG0 field to a new value.
#define BW_CCM_CCGR5_CG0(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG0) | BF_CCM_CCGR5_CG0(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG1[3:2] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR5_CG1 (2) //!< Bit position for CCM_CCGR5_CG1.
#define BM_CCM_CCGR5_CG1 (0x0000000c) //!< Bit mask for CCM_CCGR5_CG1.
//! @brief Get value of CCM_CCGR5_CG1 from a register value.
#define BG_CCM_CCGR5_CG1(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG1) >> BP_CCM_CCGR5_CG1)
//! @brief Format value for bitfield CCM_CCGR5_CG1.
#define BF_CCM_CCGR5_CG1(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG1) & BM_CCM_CCGR5_CG1)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG1 field to a new value.
#define BW_CCM_CCGR5_CG1(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG1) | BF_CCM_CCGR5_CG1(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG2[5:4] (RW)
*
* 100M clock (100M_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG2 (4) //!< Bit position for CCM_CCGR5_CG2.
#define BM_CCM_CCGR5_CG2 (0x00000030) //!< Bit mask for CCM_CCGR5_CG2.
//! @brief Get value of CCM_CCGR5_CG2 from a register value.
#define BG_CCM_CCGR5_CG2(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG2) >> BP_CCM_CCGR5_CG2)
//! @brief Format value for bitfield CCM_CCGR5_CG2.
#define BF_CCM_CCGR5_CG2(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG2) & BM_CCM_CCGR5_CG2)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG2 field to a new value.
#define BW_CCM_CCGR5_CG2(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG2) | BF_CCM_CCGR5_CG2(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG3[7:6] (RW)
*
* sdma clock (sdma_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG3 (6) //!< Bit position for CCM_CCGR5_CG3.
#define BM_CCM_CCGR5_CG3 (0x000000c0) //!< Bit mask for CCM_CCGR5_CG3.
//! @brief Get value of CCM_CCGR5_CG3 from a register value.
#define BG_CCM_CCGR5_CG3(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG3) >> BP_CCM_CCGR5_CG3)
//! @brief Format value for bitfield CCM_CCGR5_CG3.
#define BF_CCM_CCGR5_CG3(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG3) & BM_CCM_CCGR5_CG3)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG3 field to a new value.
#define BW_CCM_CCGR5_CG3(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG3) | BF_CCM_CCGR5_CG3(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG4[9:8] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR5_CG4 (8) //!< Bit position for CCM_CCGR5_CG4.
#define BM_CCM_CCGR5_CG4 (0x00000300) //!< Bit mask for CCM_CCGR5_CG4.
//! @brief Get value of CCM_CCGR5_CG4 from a register value.
#define BG_CCM_CCGR5_CG4(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG4) >> BP_CCM_CCGR5_CG4)
//! @brief Format value for bitfield CCM_CCGR5_CG4.
#define BF_CCM_CCGR5_CG4(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG4) & BM_CCM_CCGR5_CG4)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG4 field to a new value.
#define BW_CCM_CCGR5_CG4(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG4) | BF_CCM_CCGR5_CG4(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG5[11:10] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR5_CG5 (10) //!< Bit position for CCM_CCGR5_CG5.
#define BM_CCM_CCGR5_CG5 (0x00000c00) //!< Bit mask for CCM_CCGR5_CG5.
//! @brief Get value of CCM_CCGR5_CG5 from a register value.
#define BG_CCM_CCGR5_CG5(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG5) >> BP_CCM_CCGR5_CG5)
//! @brief Format value for bitfield CCM_CCGR5_CG5.
#define BF_CCM_CCGR5_CG5(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG5) & BM_CCM_CCGR5_CG5)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG5 field to a new value.
#define BW_CCM_CCGR5_CG5(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG5) | BF_CCM_CCGR5_CG5(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG6[13:12] (RW)
*
* spba clock (spba_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG6 (12) //!< Bit position for CCM_CCGR5_CG6.
#define BM_CCM_CCGR5_CG6 (0x00003000) //!< Bit mask for CCM_CCGR5_CG6.
//! @brief Get value of CCM_CCGR5_CG6 from a register value.
#define BG_CCM_CCGR5_CG6(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG6) >> BP_CCM_CCGR5_CG6)
//! @brief Format value for bitfield CCM_CCGR5_CG6.
#define BF_CCM_CCGR5_CG6(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG6) & BM_CCM_CCGR5_CG6)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG6 field to a new value.
#define BW_CCM_CCGR5_CG6(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG6) | BF_CCM_CCGR5_CG6(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG7[15:14] (RW)
*
* spdif clock (spdif_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG7 (14) //!< Bit position for CCM_CCGR5_CG7.
#define BM_CCM_CCGR5_CG7 (0x0000c000) //!< Bit mask for CCM_CCGR5_CG7.
//! @brief Get value of CCM_CCGR5_CG7 from a register value.
#define BG_CCM_CCGR5_CG7(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG7) >> BP_CCM_CCGR5_CG7)
//! @brief Format value for bitfield CCM_CCGR5_CG7.
#define BF_CCM_CCGR5_CG7(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG7) & BM_CCM_CCGR5_CG7)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG7 field to a new value.
#define BW_CCM_CCGR5_CG7(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG7) | BF_CCM_CCGR5_CG7(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG8[17:16] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR5_CG8 (16) //!< Bit position for CCM_CCGR5_CG8.
#define BM_CCM_CCGR5_CG8 (0x00030000) //!< Bit mask for CCM_CCGR5_CG8.
//! @brief Get value of CCM_CCGR5_CG8 from a register value.
#define BG_CCM_CCGR5_CG8(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG8) >> BP_CCM_CCGR5_CG8)
//! @brief Format value for bitfield CCM_CCGR5_CG8.
#define BF_CCM_CCGR5_CG8(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG8) & BM_CCM_CCGR5_CG8)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG8 field to a new value.
#define BW_CCM_CCGR5_CG8(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG8) | BF_CCM_CCGR5_CG8(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG9[19:18] (RW)
*
* ssi1 clocks (ssi1_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG9 (18) //!< Bit position for CCM_CCGR5_CG9.
#define BM_CCM_CCGR5_CG9 (0x000c0000) //!< Bit mask for CCM_CCGR5_CG9.
//! @brief Get value of CCM_CCGR5_CG9 from a register value.
#define BG_CCM_CCGR5_CG9(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG9) >> BP_CCM_CCGR5_CG9)
//! @brief Format value for bitfield CCM_CCGR5_CG9.
#define BF_CCM_CCGR5_CG9(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG9) & BM_CCM_CCGR5_CG9)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG9 field to a new value.
#define BW_CCM_CCGR5_CG9(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG9) | BF_CCM_CCGR5_CG9(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG10[21:20] (RW)
*
* ssi2 clocks (ssi2_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG10 (20) //!< Bit position for CCM_CCGR5_CG10.
#define BM_CCM_CCGR5_CG10 (0x00300000) //!< Bit mask for CCM_CCGR5_CG10.
//! @brief Get value of CCM_CCGR5_CG10 from a register value.
#define BG_CCM_CCGR5_CG10(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG10) >> BP_CCM_CCGR5_CG10)
//! @brief Format value for bitfield CCM_CCGR5_CG10.
#define BF_CCM_CCGR5_CG10(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG10) & BM_CCM_CCGR5_CG10)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG10 field to a new value.
#define BW_CCM_CCGR5_CG10(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG10) | BF_CCM_CCGR5_CG10(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG11[23:22] (RW)
*
* ssi3 clocks (ssi3_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG11 (22) //!< Bit position for CCM_CCGR5_CG11.
#define BM_CCM_CCGR5_CG11 (0x00c00000) //!< Bit mask for CCM_CCGR5_CG11.
//! @brief Get value of CCM_CCGR5_CG11 from a register value.
#define BG_CCM_CCGR5_CG11(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG11) >> BP_CCM_CCGR5_CG11)
//! @brief Format value for bitfield CCM_CCGR5_CG11.
#define BF_CCM_CCGR5_CG11(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG11) & BM_CCM_CCGR5_CG11)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG11 field to a new value.
#define BW_CCM_CCGR5_CG11(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG11) | BF_CCM_CCGR5_CG11(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG12[25:24] (RW)
*
* uart clock (uart_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG12 (24) //!< Bit position for CCM_CCGR5_CG12.
#define BM_CCM_CCGR5_CG12 (0x03000000) //!< Bit mask for CCM_CCGR5_CG12.
//! @brief Get value of CCM_CCGR5_CG12 from a register value.
#define BG_CCM_CCGR5_CG12(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG12) >> BP_CCM_CCGR5_CG12)
//! @brief Format value for bitfield CCM_CCGR5_CG12.
#define BF_CCM_CCGR5_CG12(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG12) & BM_CCM_CCGR5_CG12)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG12 field to a new value.
#define BW_CCM_CCGR5_CG12(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG12) | BF_CCM_CCGR5_CG12(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG13[27:26] (RW)
*
* uart_serial clock (uart_serial_clk_enable)
*/
//@{
#define BP_CCM_CCGR5_CG13 (26) //!< Bit position for CCM_CCGR5_CG13.
#define BM_CCM_CCGR5_CG13 (0x0c000000) //!< Bit mask for CCM_CCGR5_CG13.
//! @brief Get value of CCM_CCGR5_CG13 from a register value.
#define BG_CCM_CCGR5_CG13(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG13) >> BP_CCM_CCGR5_CG13)
//! @brief Format value for bitfield CCM_CCGR5_CG13.
#define BF_CCM_CCGR5_CG13(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG13) & BM_CCM_CCGR5_CG13)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG13 field to a new value.
#define BW_CCM_CCGR5_CG13(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG13) | BF_CCM_CCGR5_CG13(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG14[29:28] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR5_CG14 (28) //!< Bit position for CCM_CCGR5_CG14.
#define BM_CCM_CCGR5_CG14 (0x30000000) //!< Bit mask for CCM_CCGR5_CG14.
//! @brief Get value of CCM_CCGR5_CG14 from a register value.
#define BG_CCM_CCGR5_CG14(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG14) >> BP_CCM_CCGR5_CG14)
//! @brief Format value for bitfield CCM_CCGR5_CG14.
#define BF_CCM_CCGR5_CG14(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG14) & BM_CCM_CCGR5_CG14)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG14 field to a new value.
#define BW_CCM_CCGR5_CG14(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG14) | BF_CCM_CCGR5_CG14(v)))
#endif
//@}
/*! @name Register CCM_CCGR5, field CG15[31:30] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR5_CG15 (30) //!< Bit position for CCM_CCGR5_CG15.
#define BM_CCM_CCGR5_CG15 (0xc0000000) //!< Bit mask for CCM_CCGR5_CG15.
//! @brief Get value of CCM_CCGR5_CG15 from a register value.
#define BG_CCM_CCGR5_CG15(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR5_CG15) >> BP_CCM_CCGR5_CG15)
//! @brief Format value for bitfield CCM_CCGR5_CG15.
#define BF_CCM_CCGR5_CG15(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR5_CG15) & BM_CCM_CCGR5_CG15)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG15 field to a new value.
#define BW_CCM_CCGR5_CG15(v) (HW_CCM_CCGR5_WR((HW_CCM_CCGR5_RD() & ~BM_CCM_CCGR5_CG15) | BF_CCM_CCGR5_CG15(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CCGR6 - CCM Clock Gating Register 6
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CCGR6 - CCM Clock Gating Register 6 (RW)
*
* Reset value: 0xffffffff
*
* The figure below represents the CCM Clock Gating Register 6 (CCM_CCGR6). The clock gating
* Registers define the clock gating for power reduction of each clock (CG(i) bits). There are 8 CGR
* registers. The number of registers required is according to the number of peripherals in the
* system.
*/
typedef union _hw_ccm_ccgr6
{
reg32_t U;
struct _hw_ccm_ccgr6_bitfields
{
unsigned CG0 : 2; //!< [1:0] usboh3 clock (usboh3_clk_enable)
unsigned CG1 : 2; //!< [3:2] usdhc1 clocks (usdhc1_clk_enable)
unsigned CG2 : 2; //!< [5:4] usdhc2 clocks (usdhc2_clk_enable)
unsigned CG3 : 2; //!< [7:6] usdhc3 clocks (usdhc3_clk_enable)
unsigned CG4 : 2; //!< [9:8] usdhc4 clocks (usdhc4_clk_enable)
unsigned CG5 : 2; //!< [11:10] eim_slow clocks (eim_slow_clk_enable)
unsigned CG6 : 2; //!< [13:12] vdoaxiclk root clock (vdoaxiclk_clk_enable)
unsigned CG7 : 2; //!< [15:14] vpu clocks (vpu_clk_enable)
unsigned CG8 : 2; //!< [17:16] Reserved
unsigned CG9 : 2; //!< [19:18] Reserved
unsigned CG10 : 2; //!< [21:20] Reserved
unsigned CG11 : 2; //!< [23:22] Reserved
unsigned CG12 : 2; //!< [25:24] Reserved
unsigned CG13 : 2; //!< [27:26] Reserved
unsigned CG14 : 2; //!< [29:28] Reserved
unsigned CG15 : 2; //!< [31:30] Reserved
} B;
} hw_ccm_ccgr6_t;
#endif
/*!
* @name Constants and macros for entire CCM_CCGR6 register
*/
//@{
#define HW_CCM_CCGR6_ADDR (REGS_CCM_BASE + 0x80)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CCGR6 (*(volatile hw_ccm_ccgr6_t *) HW_CCM_CCGR6_ADDR)
#define HW_CCM_CCGR6_RD() (HW_CCM_CCGR6.U)
#define HW_CCM_CCGR6_WR(v) (HW_CCM_CCGR6.U = (v))
#define HW_CCM_CCGR6_SET(v) (HW_CCM_CCGR6_WR(HW_CCM_CCGR6_RD() | (v)))
#define HW_CCM_CCGR6_CLR(v) (HW_CCM_CCGR6_WR(HW_CCM_CCGR6_RD() & ~(v)))
#define HW_CCM_CCGR6_TOG(v) (HW_CCM_CCGR6_WR(HW_CCM_CCGR6_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CCGR6 bitfields
*/
/*! @name Register CCM_CCGR6, field CG0[1:0] (RW)
*
* usboh3 clock (usboh3_clk_enable)
*/
//@{
#define BP_CCM_CCGR6_CG0 (0) //!< Bit position for CCM_CCGR6_CG0.
#define BM_CCM_CCGR6_CG0 (0x00000003) //!< Bit mask for CCM_CCGR6_CG0.
//! @brief Get value of CCM_CCGR6_CG0 from a register value.
#define BG_CCM_CCGR6_CG0(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG0) >> BP_CCM_CCGR6_CG0)
//! @brief Format value for bitfield CCM_CCGR6_CG0.
#define BF_CCM_CCGR6_CG0(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG0) & BM_CCM_CCGR6_CG0)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG0 field to a new value.
#define BW_CCM_CCGR6_CG0(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG0) | BF_CCM_CCGR6_CG0(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG1[3:2] (RW)
*
* usdhc1 clocks (usdhc1_clk_enable)
*/
//@{
#define BP_CCM_CCGR6_CG1 (2) //!< Bit position for CCM_CCGR6_CG1.
#define BM_CCM_CCGR6_CG1 (0x0000000c) //!< Bit mask for CCM_CCGR6_CG1.
//! @brief Get value of CCM_CCGR6_CG1 from a register value.
#define BG_CCM_CCGR6_CG1(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG1) >> BP_CCM_CCGR6_CG1)
//! @brief Format value for bitfield CCM_CCGR6_CG1.
#define BF_CCM_CCGR6_CG1(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG1) & BM_CCM_CCGR6_CG1)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG1 field to a new value.
#define BW_CCM_CCGR6_CG1(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG1) | BF_CCM_CCGR6_CG1(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG2[5:4] (RW)
*
* usdhc2 clocks (usdhc2_clk_enable)
*/
//@{
#define BP_CCM_CCGR6_CG2 (4) //!< Bit position for CCM_CCGR6_CG2.
#define BM_CCM_CCGR6_CG2 (0x00000030) //!< Bit mask for CCM_CCGR6_CG2.
//! @brief Get value of CCM_CCGR6_CG2 from a register value.
#define BG_CCM_CCGR6_CG2(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG2) >> BP_CCM_CCGR6_CG2)
//! @brief Format value for bitfield CCM_CCGR6_CG2.
#define BF_CCM_CCGR6_CG2(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG2) & BM_CCM_CCGR6_CG2)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG2 field to a new value.
#define BW_CCM_CCGR6_CG2(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG2) | BF_CCM_CCGR6_CG2(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG3[7:6] (RW)
*
* usdhc3 clocks (usdhc3_clk_enable)
*/
//@{
#define BP_CCM_CCGR6_CG3 (6) //!< Bit position for CCM_CCGR6_CG3.
#define BM_CCM_CCGR6_CG3 (0x000000c0) //!< Bit mask for CCM_CCGR6_CG3.
//! @brief Get value of CCM_CCGR6_CG3 from a register value.
#define BG_CCM_CCGR6_CG3(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG3) >> BP_CCM_CCGR6_CG3)
//! @brief Format value for bitfield CCM_CCGR6_CG3.
#define BF_CCM_CCGR6_CG3(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG3) & BM_CCM_CCGR6_CG3)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG3 field to a new value.
#define BW_CCM_CCGR6_CG3(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG3) | BF_CCM_CCGR6_CG3(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG4[9:8] (RW)
*
* usdhc4 clocks (usdhc4_clk_enable)
*/
//@{
#define BP_CCM_CCGR6_CG4 (8) //!< Bit position for CCM_CCGR6_CG4.
#define BM_CCM_CCGR6_CG4 (0x00000300) //!< Bit mask for CCM_CCGR6_CG4.
//! @brief Get value of CCM_CCGR6_CG4 from a register value.
#define BG_CCM_CCGR6_CG4(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG4) >> BP_CCM_CCGR6_CG4)
//! @brief Format value for bitfield CCM_CCGR6_CG4.
#define BF_CCM_CCGR6_CG4(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG4) & BM_CCM_CCGR6_CG4)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG4 field to a new value.
#define BW_CCM_CCGR6_CG4(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG4) | BF_CCM_CCGR6_CG4(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG5[11:10] (RW)
*
* eim_slow clocks (eim_slow_clk_enable)
*/
//@{
#define BP_CCM_CCGR6_CG5 (10) //!< Bit position for CCM_CCGR6_CG5.
#define BM_CCM_CCGR6_CG5 (0x00000c00) //!< Bit mask for CCM_CCGR6_CG5.
//! @brief Get value of CCM_CCGR6_CG5 from a register value.
#define BG_CCM_CCGR6_CG5(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG5) >> BP_CCM_CCGR6_CG5)
//! @brief Format value for bitfield CCM_CCGR6_CG5.
#define BF_CCM_CCGR6_CG5(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG5) & BM_CCM_CCGR6_CG5)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG5 field to a new value.
#define BW_CCM_CCGR6_CG5(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG5) | BF_CCM_CCGR6_CG5(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG6[13:12] (RW)
*
* vdoaxiclk root clock (vdoaxiclk_clk_enable)
*/
//@{
#define BP_CCM_CCGR6_CG6 (12) //!< Bit position for CCM_CCGR6_CG6.
#define BM_CCM_CCGR6_CG6 (0x00003000) //!< Bit mask for CCM_CCGR6_CG6.
//! @brief Get value of CCM_CCGR6_CG6 from a register value.
#define BG_CCM_CCGR6_CG6(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG6) >> BP_CCM_CCGR6_CG6)
//! @brief Format value for bitfield CCM_CCGR6_CG6.
#define BF_CCM_CCGR6_CG6(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG6) & BM_CCM_CCGR6_CG6)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG6 field to a new value.
#define BW_CCM_CCGR6_CG6(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG6) | BF_CCM_CCGR6_CG6(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG7[15:14] (RW)
*
* vpu clocks (vpu_clk_enable)
*/
//@{
#define BP_CCM_CCGR6_CG7 (14) //!< Bit position for CCM_CCGR6_CG7.
#define BM_CCM_CCGR6_CG7 (0x0000c000) //!< Bit mask for CCM_CCGR6_CG7.
//! @brief Get value of CCM_CCGR6_CG7 from a register value.
#define BG_CCM_CCGR6_CG7(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG7) >> BP_CCM_CCGR6_CG7)
//! @brief Format value for bitfield CCM_CCGR6_CG7.
#define BF_CCM_CCGR6_CG7(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG7) & BM_CCM_CCGR6_CG7)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG7 field to a new value.
#define BW_CCM_CCGR6_CG7(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG7) | BF_CCM_CCGR6_CG7(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG8[17:16] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR6_CG8 (16) //!< Bit position for CCM_CCGR6_CG8.
#define BM_CCM_CCGR6_CG8 (0x00030000) //!< Bit mask for CCM_CCGR6_CG8.
//! @brief Get value of CCM_CCGR6_CG8 from a register value.
#define BG_CCM_CCGR6_CG8(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG8) >> BP_CCM_CCGR6_CG8)
//! @brief Format value for bitfield CCM_CCGR6_CG8.
#define BF_CCM_CCGR6_CG8(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG8) & BM_CCM_CCGR6_CG8)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG8 field to a new value.
#define BW_CCM_CCGR6_CG8(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG8) | BF_CCM_CCGR6_CG8(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG9[19:18] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR6_CG9 (18) //!< Bit position for CCM_CCGR6_CG9.
#define BM_CCM_CCGR6_CG9 (0x000c0000) //!< Bit mask for CCM_CCGR6_CG9.
//! @brief Get value of CCM_CCGR6_CG9 from a register value.
#define BG_CCM_CCGR6_CG9(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG9) >> BP_CCM_CCGR6_CG9)
//! @brief Format value for bitfield CCM_CCGR6_CG9.
#define BF_CCM_CCGR6_CG9(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG9) & BM_CCM_CCGR6_CG9)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG9 field to a new value.
#define BW_CCM_CCGR6_CG9(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG9) | BF_CCM_CCGR6_CG9(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG10[21:20] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR6_CG10 (20) //!< Bit position for CCM_CCGR6_CG10.
#define BM_CCM_CCGR6_CG10 (0x00300000) //!< Bit mask for CCM_CCGR6_CG10.
//! @brief Get value of CCM_CCGR6_CG10 from a register value.
#define BG_CCM_CCGR6_CG10(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG10) >> BP_CCM_CCGR6_CG10)
//! @brief Format value for bitfield CCM_CCGR6_CG10.
#define BF_CCM_CCGR6_CG10(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG10) & BM_CCM_CCGR6_CG10)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG10 field to a new value.
#define BW_CCM_CCGR6_CG10(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG10) | BF_CCM_CCGR6_CG10(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG11[23:22] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR6_CG11 (22) //!< Bit position for CCM_CCGR6_CG11.
#define BM_CCM_CCGR6_CG11 (0x00c00000) //!< Bit mask for CCM_CCGR6_CG11.
//! @brief Get value of CCM_CCGR6_CG11 from a register value.
#define BG_CCM_CCGR6_CG11(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG11) >> BP_CCM_CCGR6_CG11)
//! @brief Format value for bitfield CCM_CCGR6_CG11.
#define BF_CCM_CCGR6_CG11(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG11) & BM_CCM_CCGR6_CG11)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG11 field to a new value.
#define BW_CCM_CCGR6_CG11(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG11) | BF_CCM_CCGR6_CG11(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG12[25:24] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR6_CG12 (24) //!< Bit position for CCM_CCGR6_CG12.
#define BM_CCM_CCGR6_CG12 (0x03000000) //!< Bit mask for CCM_CCGR6_CG12.
//! @brief Get value of CCM_CCGR6_CG12 from a register value.
#define BG_CCM_CCGR6_CG12(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG12) >> BP_CCM_CCGR6_CG12)
//! @brief Format value for bitfield CCM_CCGR6_CG12.
#define BF_CCM_CCGR6_CG12(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG12) & BM_CCM_CCGR6_CG12)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG12 field to a new value.
#define BW_CCM_CCGR6_CG12(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG12) | BF_CCM_CCGR6_CG12(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG13[27:26] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR6_CG13 (26) //!< Bit position for CCM_CCGR6_CG13.
#define BM_CCM_CCGR6_CG13 (0x0c000000) //!< Bit mask for CCM_CCGR6_CG13.
//! @brief Get value of CCM_CCGR6_CG13 from a register value.
#define BG_CCM_CCGR6_CG13(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG13) >> BP_CCM_CCGR6_CG13)
//! @brief Format value for bitfield CCM_CCGR6_CG13.
#define BF_CCM_CCGR6_CG13(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG13) & BM_CCM_CCGR6_CG13)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG13 field to a new value.
#define BW_CCM_CCGR6_CG13(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG13) | BF_CCM_CCGR6_CG13(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG14[29:28] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR6_CG14 (28) //!< Bit position for CCM_CCGR6_CG14.
#define BM_CCM_CCGR6_CG14 (0x30000000) //!< Bit mask for CCM_CCGR6_CG14.
//! @brief Get value of CCM_CCGR6_CG14 from a register value.
#define BG_CCM_CCGR6_CG14(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG14) >> BP_CCM_CCGR6_CG14)
//! @brief Format value for bitfield CCM_CCGR6_CG14.
#define BF_CCM_CCGR6_CG14(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG14) & BM_CCM_CCGR6_CG14)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG14 field to a new value.
#define BW_CCM_CCGR6_CG14(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG14) | BF_CCM_CCGR6_CG14(v)))
#endif
//@}
/*! @name Register CCM_CCGR6, field CG15[31:30] (RW)
*
* Reserved
*/
//@{
#define BP_CCM_CCGR6_CG15 (30) //!< Bit position for CCM_CCGR6_CG15.
#define BM_CCM_CCGR6_CG15 (0xc0000000) //!< Bit mask for CCM_CCGR6_CG15.
//! @brief Get value of CCM_CCGR6_CG15 from a register value.
#define BG_CCM_CCGR6_CG15(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CCGR6_CG15) >> BP_CCM_CCGR6_CG15)
//! @brief Format value for bitfield CCM_CCGR6_CG15.
#define BF_CCM_CCGR6_CG15(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CCGR6_CG15) & BM_CCM_CCGR6_CG15)
#ifndef __LANGUAGE_ASM__
//! @brief Set the CG15 field to a new value.
#define BW_CCM_CCGR6_CG15(v) (HW_CCM_CCGR6_WR((HW_CCM_CCGR6_RD() & ~BM_CCM_CCGR6_CG15) | BF_CCM_CCGR6_CG15(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_CCM_CMEOR - CCM Module Enable Overide Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_CCM_CMEOR - CCM Module Enable Overide Register (RW)
*
* Reset value: 0xffffffff
*
* The follow figure represents the CCM Module Enable Override Register (CMEOR). The CMEOR register
* contains bits to override the clock enable signal from the module. This should be used in case
* that it is decided to bypass the clock enable signals from the modules. This bit will be
* applicable only for module that their clock enable signal is used. The following table provides
* its field descriptions.
*/
typedef union _hw_ccm_cmeor
{
reg32_t U;
struct _hw_ccm_cmeor_bitfields
{
unsigned RESERVED0 : 4; //!< [3:0] Reserved
unsigned MOD_EN_OV_VDOA : 1; //!< [4] overide clock enable signal from vdoa - clock will not be gated based on vdoa signal.
unsigned MOD_EN_OV_GPT : 1; //!< [5] overide clock enable signal from gpt - clock will not be gated based on gpt's signal 'ipg_enable_clk' .
unsigned MOD_EN_OV_EPIT : 1; //!< [6] overide clock enable signal from epit - clock will not be gated based on epit's signal 'ipg_enable_clk' .
unsigned MOD_EN_USDHC : 1; //!< [7] overide clock enable signal from usdhc.
unsigned MOD_EN_OV_DAP : 1; //!< [8] overide clock enable signal from dap- clock will not be gated based on dap's signal 'dap_dbgen' .
unsigned MOD_EN_OV_VPU : 1; //!< [9] overide clock enable signal from vpu- clock will not be gated based on vpu's signal 'vpu_idle' .
unsigned MOD_EN_OV_GPU2D : 1; //!< [10] overide clock enable signal from gpu2d - clock will not be gated based on gpu2d's signal 'gpu2d_busy' .
unsigned MOD_EN_OV_GPU3D : 1; //!< [11] overide clock enable signal from gpu3d - clock will not be gated based on gpu3d's signal.
unsigned RESERVED1 : 16; //!< [27:12] Reserved
unsigned MOD_EN_OV_CAN2_CPI : 1; //!< [28] overide clock enable signal from can2 - clock will not be gated based on can's signal 'enable_clk_cpi'.
unsigned RESERVED2 : 1; //!< [29] Reserved
unsigned MOD_EN_OV_CAN1_CPI : 1; //!< [30] overide clock enable signal from can1 - clock will not be gated based on can's signal 'enable_clk_cpi'.
unsigned RESERVED3 : 1; //!< [31] Reserved
} B;
} hw_ccm_cmeor_t;
#endif
/*!
* @name Constants and macros for entire CCM_CMEOR register
*/
//@{
#define HW_CCM_CMEOR_ADDR (REGS_CCM_BASE + 0x88)
#ifndef __LANGUAGE_ASM__
#define HW_CCM_CMEOR (*(volatile hw_ccm_cmeor_t *) HW_CCM_CMEOR_ADDR)
#define HW_CCM_CMEOR_RD() (HW_CCM_CMEOR.U)
#define HW_CCM_CMEOR_WR(v) (HW_CCM_CMEOR.U = (v))
#define HW_CCM_CMEOR_SET(v) (HW_CCM_CMEOR_WR(HW_CCM_CMEOR_RD() | (v)))
#define HW_CCM_CMEOR_CLR(v) (HW_CCM_CMEOR_WR(HW_CCM_CMEOR_RD() & ~(v)))
#define HW_CCM_CMEOR_TOG(v) (HW_CCM_CMEOR_WR(HW_CCM_CMEOR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual CCM_CMEOR bitfields
*/
/*! @name Register CCM_CMEOR, field MOD_EN_OV_VDOA[4] (RW)
*
* overide clock enable signal from vdoa - clock will not be gated based on vdoa signal.
*
* Values:
* - 0 - dont override module enable signal
* - 1 - override module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_OV_VDOA (4) //!< Bit position for CCM_CMEOR_MOD_EN_OV_VDOA.
#define BM_CCM_CMEOR_MOD_EN_OV_VDOA (0x00000010) //!< Bit mask for CCM_CMEOR_MOD_EN_OV_VDOA.
//! @brief Get value of CCM_CMEOR_MOD_EN_OV_VDOA from a register value.
#define BG_CCM_CMEOR_MOD_EN_OV_VDOA(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_OV_VDOA) >> BP_CCM_CMEOR_MOD_EN_OV_VDOA)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_OV_VDOA.
#define BF_CCM_CMEOR_MOD_EN_OV_VDOA(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_OV_VDOA) & BM_CCM_CMEOR_MOD_EN_OV_VDOA)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_OV_VDOA field to a new value.
#define BW_CCM_CMEOR_MOD_EN_OV_VDOA(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_OV_VDOA) | BF_CCM_CMEOR_MOD_EN_OV_VDOA(v)))
#endif
//@}
/*! @name Register CCM_CMEOR, field MOD_EN_OV_GPT[5] (RW)
*
* overide clock enable signal from gpt - clock will not be gated based on gpt's signal
* 'ipg_enable_clk' .
*
* Values:
* - 0 - dont override module enable signal
* - 1 - override module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_OV_GPT (5) //!< Bit position for CCM_CMEOR_MOD_EN_OV_GPT.
#define BM_CCM_CMEOR_MOD_EN_OV_GPT (0x00000020) //!< Bit mask for CCM_CMEOR_MOD_EN_OV_GPT.
//! @brief Get value of CCM_CMEOR_MOD_EN_OV_GPT from a register value.
#define BG_CCM_CMEOR_MOD_EN_OV_GPT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_OV_GPT) >> BP_CCM_CMEOR_MOD_EN_OV_GPT)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_OV_GPT.
#define BF_CCM_CMEOR_MOD_EN_OV_GPT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_OV_GPT) & BM_CCM_CMEOR_MOD_EN_OV_GPT)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_OV_GPT field to a new value.
#define BW_CCM_CMEOR_MOD_EN_OV_GPT(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_OV_GPT) | BF_CCM_CMEOR_MOD_EN_OV_GPT(v)))
#endif
//@}
/*! @name Register CCM_CMEOR, field MOD_EN_OV_EPIT[6] (RW)
*
* overide clock enable signal from epit - clock will not be gated based on epit's signal
* 'ipg_enable_clk' .
*
* Values:
* - 0 - dont override module enable signal
* - 1 - override module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_OV_EPIT (6) //!< Bit position for CCM_CMEOR_MOD_EN_OV_EPIT.
#define BM_CCM_CMEOR_MOD_EN_OV_EPIT (0x00000040) //!< Bit mask for CCM_CMEOR_MOD_EN_OV_EPIT.
//! @brief Get value of CCM_CMEOR_MOD_EN_OV_EPIT from a register value.
#define BG_CCM_CMEOR_MOD_EN_OV_EPIT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_OV_EPIT) >> BP_CCM_CMEOR_MOD_EN_OV_EPIT)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_OV_EPIT.
#define BF_CCM_CMEOR_MOD_EN_OV_EPIT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_OV_EPIT) & BM_CCM_CMEOR_MOD_EN_OV_EPIT)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_OV_EPIT field to a new value.
#define BW_CCM_CMEOR_MOD_EN_OV_EPIT(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_OV_EPIT) | BF_CCM_CMEOR_MOD_EN_OV_EPIT(v)))
#endif
//@}
/*! @name Register CCM_CMEOR, field MOD_EN_USDHC[7] (RW)
*
* overide clock enable signal from usdhc.
*
* Values:
* - 0 - dont override module enable signal
* - 1 - override module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_USDHC (7) //!< Bit position for CCM_CMEOR_MOD_EN_USDHC.
#define BM_CCM_CMEOR_MOD_EN_USDHC (0x00000080) //!< Bit mask for CCM_CMEOR_MOD_EN_USDHC.
//! @brief Get value of CCM_CMEOR_MOD_EN_USDHC from a register value.
#define BG_CCM_CMEOR_MOD_EN_USDHC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_USDHC) >> BP_CCM_CMEOR_MOD_EN_USDHC)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_USDHC.
#define BF_CCM_CMEOR_MOD_EN_USDHC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_USDHC) & BM_CCM_CMEOR_MOD_EN_USDHC)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_USDHC field to a new value.
#define BW_CCM_CMEOR_MOD_EN_USDHC(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_USDHC) | BF_CCM_CMEOR_MOD_EN_USDHC(v)))
#endif
//@}
/*! @name Register CCM_CMEOR, field MOD_EN_OV_DAP[8] (RW)
*
* overide clock enable signal from dap- clock will not be gated based on dap's signal 'dap_dbgen' .
*
* Values:
* - 0 - dont override module enable signal
* - 1 - override module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_OV_DAP (8) //!< Bit position for CCM_CMEOR_MOD_EN_OV_DAP.
#define BM_CCM_CMEOR_MOD_EN_OV_DAP (0x00000100) //!< Bit mask for CCM_CMEOR_MOD_EN_OV_DAP.
//! @brief Get value of CCM_CMEOR_MOD_EN_OV_DAP from a register value.
#define BG_CCM_CMEOR_MOD_EN_OV_DAP(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_OV_DAP) >> BP_CCM_CMEOR_MOD_EN_OV_DAP)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_OV_DAP.
#define BF_CCM_CMEOR_MOD_EN_OV_DAP(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_OV_DAP) & BM_CCM_CMEOR_MOD_EN_OV_DAP)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_OV_DAP field to a new value.
#define BW_CCM_CMEOR_MOD_EN_OV_DAP(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_OV_DAP) | BF_CCM_CMEOR_MOD_EN_OV_DAP(v)))
#endif
//@}
/*! @name Register CCM_CMEOR, field MOD_EN_OV_VPU[9] (RW)
*
* overide clock enable signal from vpu- clock will not be gated based on vpu's signal 'vpu_idle' .
*
* Values:
* - 0 - dont override module enable signal
* - 1 - override module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_OV_VPU (9) //!< Bit position for CCM_CMEOR_MOD_EN_OV_VPU.
#define BM_CCM_CMEOR_MOD_EN_OV_VPU (0x00000200) //!< Bit mask for CCM_CMEOR_MOD_EN_OV_VPU.
//! @brief Get value of CCM_CMEOR_MOD_EN_OV_VPU from a register value.
#define BG_CCM_CMEOR_MOD_EN_OV_VPU(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_OV_VPU) >> BP_CCM_CMEOR_MOD_EN_OV_VPU)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_OV_VPU.
#define BF_CCM_CMEOR_MOD_EN_OV_VPU(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_OV_VPU) & BM_CCM_CMEOR_MOD_EN_OV_VPU)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_OV_VPU field to a new value.
#define BW_CCM_CMEOR_MOD_EN_OV_VPU(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_OV_VPU) | BF_CCM_CMEOR_MOD_EN_OV_VPU(v)))
#endif
//@}
/*! @name Register CCM_CMEOR, field MOD_EN_OV_GPU2D[10] (RW)
*
* overide clock enable signal from gpu2d - clock will not be gated based on gpu2d's signal
* 'gpu2d_busy' .
*
* Values:
* - 0 - dont override module enable signal
* - 1 - override module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_OV_GPU2D (10) //!< Bit position for CCM_CMEOR_MOD_EN_OV_GPU2D.
#define BM_CCM_CMEOR_MOD_EN_OV_GPU2D (0x00000400) //!< Bit mask for CCM_CMEOR_MOD_EN_OV_GPU2D.
//! @brief Get value of CCM_CMEOR_MOD_EN_OV_GPU2D from a register value.
#define BG_CCM_CMEOR_MOD_EN_OV_GPU2D(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_OV_GPU2D) >> BP_CCM_CMEOR_MOD_EN_OV_GPU2D)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_OV_GPU2D.
#define BF_CCM_CMEOR_MOD_EN_OV_GPU2D(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_OV_GPU2D) & BM_CCM_CMEOR_MOD_EN_OV_GPU2D)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_OV_GPU2D field to a new value.
#define BW_CCM_CMEOR_MOD_EN_OV_GPU2D(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_OV_GPU2D) | BF_CCM_CMEOR_MOD_EN_OV_GPU2D(v)))
#endif
//@}
/*! @name Register CCM_CMEOR, field MOD_EN_OV_GPU3D[11] (RW)
*
* overide clock enable signal from gpu3d - clock will not be gated based on gpu3d's signal.
*
* Values:
* - 0 - dont override module enable signal
* - 1 - override module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_OV_GPU3D (11) //!< Bit position for CCM_CMEOR_MOD_EN_OV_GPU3D.
#define BM_CCM_CMEOR_MOD_EN_OV_GPU3D (0x00000800) //!< Bit mask for CCM_CMEOR_MOD_EN_OV_GPU3D.
//! @brief Get value of CCM_CMEOR_MOD_EN_OV_GPU3D from a register value.
#define BG_CCM_CMEOR_MOD_EN_OV_GPU3D(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_OV_GPU3D) >> BP_CCM_CMEOR_MOD_EN_OV_GPU3D)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_OV_GPU3D.
#define BF_CCM_CMEOR_MOD_EN_OV_GPU3D(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_OV_GPU3D) & BM_CCM_CMEOR_MOD_EN_OV_GPU3D)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_OV_GPU3D field to a new value.
#define BW_CCM_CMEOR_MOD_EN_OV_GPU3D(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_OV_GPU3D) | BF_CCM_CMEOR_MOD_EN_OV_GPU3D(v)))
#endif
//@}
/*! @name Register CCM_CMEOR, field MOD_EN_OV_CAN2_CPI[28] (RW)
*
* overide clock enable signal from can2 - clock will not be gated based on can's signal
* 'enable_clk_cpi'.
*
* Values:
* - 0 - dont override module enable signal
* - 1 - override module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_OV_CAN2_CPI (28) //!< Bit position for CCM_CMEOR_MOD_EN_OV_CAN2_CPI.
#define BM_CCM_CMEOR_MOD_EN_OV_CAN2_CPI (0x10000000) //!< Bit mask for CCM_CMEOR_MOD_EN_OV_CAN2_CPI.
//! @brief Get value of CCM_CMEOR_MOD_EN_OV_CAN2_CPI from a register value.
#define BG_CCM_CMEOR_MOD_EN_OV_CAN2_CPI(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_OV_CAN2_CPI) >> BP_CCM_CMEOR_MOD_EN_OV_CAN2_CPI)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_OV_CAN2_CPI.
#define BF_CCM_CMEOR_MOD_EN_OV_CAN2_CPI(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_OV_CAN2_CPI) & BM_CCM_CMEOR_MOD_EN_OV_CAN2_CPI)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_OV_CAN2_CPI field to a new value.
#define BW_CCM_CMEOR_MOD_EN_OV_CAN2_CPI(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_OV_CAN2_CPI) | BF_CCM_CMEOR_MOD_EN_OV_CAN2_CPI(v)))
#endif
//@}
/*! @name Register CCM_CMEOR, field MOD_EN_OV_CAN1_CPI[30] (RW)
*
* overide clock enable signal from can1 - clock will not be gated based on can's signal
* 'enable_clk_cpi'.
*
* Values:
* - 0 - dont overide module enable signal
* - 1 - overide module enable signal
*/
//@{
#define BP_CCM_CMEOR_MOD_EN_OV_CAN1_CPI (30) //!< Bit position for CCM_CMEOR_MOD_EN_OV_CAN1_CPI.
#define BM_CCM_CMEOR_MOD_EN_OV_CAN1_CPI (0x40000000) //!< Bit mask for CCM_CMEOR_MOD_EN_OV_CAN1_CPI.
//! @brief Get value of CCM_CMEOR_MOD_EN_OV_CAN1_CPI from a register value.
#define BG_CCM_CMEOR_MOD_EN_OV_CAN1_CPI(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_CMEOR_MOD_EN_OV_CAN1_CPI) >> BP_CCM_CMEOR_MOD_EN_OV_CAN1_CPI)
//! @brief Format value for bitfield CCM_CMEOR_MOD_EN_OV_CAN1_CPI.
#define BF_CCM_CMEOR_MOD_EN_OV_CAN1_CPI(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_CMEOR_MOD_EN_OV_CAN1_CPI) & BM_CCM_CMEOR_MOD_EN_OV_CAN1_CPI)
#ifndef __LANGUAGE_ASM__
//! @brief Set the MOD_EN_OV_CAN1_CPI field to a new value.
#define BW_CCM_CMEOR_MOD_EN_OV_CAN1_CPI(v) (HW_CCM_CMEOR_WR((HW_CCM_CMEOR_RD() & ~BM_CCM_CMEOR_MOD_EN_OV_CAN1_CPI) | BF_CCM_CMEOR_MOD_EN_OV_CAN1_CPI(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// hw_ccm_t - module struct
//-------------------------------------------------------------------------------------------
/*!
* @brief All CCM module registers.
*/
#ifndef __LANGUAGE_ASM__
#pragma pack(1)
typedef struct _hw_ccm
{
volatile hw_ccm_ccr_t CCR; //!< CCM Control Register
volatile hw_ccm_ccdr_t CCDR; //!< CCM Control Divider Register
volatile hw_ccm_csr_t CSR; //!< CCM Status Register
volatile hw_ccm_ccsr_t CCSR; //!< CCM Clock Swither Register
volatile hw_ccm_cacrr_t CACRR; //!< CCM Arm Clock Root Register
volatile hw_ccm_cbcdr_t CBCDR; //!< CCM Bus Clock Divider Register
volatile hw_ccm_cbcmr_t CBCMR; //!< CCM Bus Clock Multiplexer Register
volatile hw_ccm_cscmr1_t CSCMR1; //!< CCM Serial Clock Multiplexer Register 1
volatile hw_ccm_cscmr2_t CSCMR2; //!< CCM Serial Clock Multiplexer Register 2
volatile hw_ccm_cscdr1_t CSCDR1; //!< CCM Serial Clock Divider Register 1
volatile hw_ccm_cs1cdr_t CS1CDR; //!< CCM SSI1 Clock Divider Register
volatile hw_ccm_cs2cdr_t CS2CDR; //!< CCM SSI2 Clock Divider Register
volatile hw_ccm_cdcdr_t CDCDR; //!< CCM D1 Clock Divider Register
volatile hw_ccm_chsccdr_t CHSCCDR; //!< CCM HSC Clock Divider Register
volatile hw_ccm_cscdr2_t CSCDR2; //!< CCM Serial Clock Divider Register 2
volatile hw_ccm_cscdr3_t CSCDR3; //!< CCM Serial Clock Divider Register 3
reg32_t _reserved0;
volatile hw_ccm_cwdr_t CWDR; //!< CCM Wakeup Detector Register
volatile hw_ccm_cdhipr_t CDHIPR; //!< CCM Divider Handshake In-Process Register
reg32_t _reserved1;
volatile hw_ccm_ctor_t CTOR; //!< CCM Testing Observability Register
volatile hw_ccm_clpcr_t CLPCR; //!< CCM Low Power Control Register
volatile hw_ccm_cisr_t CISR; //!< CCM Interrupt Status Register
volatile hw_ccm_cimr_t CIMR; //!< CCM Interrupt Mask Register
volatile hw_ccm_ccosr_t CCOSR; //!< CCM Clock Output Source Register
volatile hw_ccm_cgpr_t CGPR; //!< CCM General Purpose Register
volatile hw_ccm_ccgr0_t CCGR0; //!< CCM Clock Gating Register 0
volatile hw_ccm_ccgr1_t CCGR1; //!< CCM Clock Gating Register 1
volatile hw_ccm_ccgr2_t CCGR2; //!< CCM Clock Gating Register 2
volatile hw_ccm_ccgr3_t CCGR3; //!< CCM Clock Gating Register 3
volatile hw_ccm_ccgr4_t CCGR4; //!< CCM Clock Gating Register 4
volatile hw_ccm_ccgr5_t CCGR5; //!< CCM Clock Gating Register 5
volatile hw_ccm_ccgr6_t CCGR6; //!< CCM Clock Gating Register 6
reg32_t _reserved2;
volatile hw_ccm_cmeor_t CMEOR; //!< CCM Module Enable Overide Register
} hw_ccm_t;
#pragma pack()
//! @brief Macro to access all CCM registers.
//! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct,
//! use the '&' operator, like <code>&HW_CCM</code>.
#define HW_CCM (*(hw_ccm_t *) REGS_CCM_BASE)
#endif
#endif // __HW_CCM_REGISTERS_H__
// v18/121106/1.2.2
// EOF