You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2069 lines
189 KiB
2069 lines
189 KiB
/*!
|
|
\file gd32h75e_rcu.h
|
|
\brief definitions for the RCU
|
|
|
|
\version 2025-08-07, V1.2.0, firmware for GD32H75E
|
|
*/
|
|
|
|
/*
|
|
Copyright (c) 2025, GigaDevice Semiconductor Inc.
|
|
|
|
Redistribution and use in source and binary forms, with or without modification,
|
|
are permitted provided that the following conditions are met:
|
|
|
|
1. Redistributions of source code must retain the above copyright notice, this
|
|
list of conditions and the following disclaimer.
|
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
this list of conditions and the following disclaimer in the documentation
|
|
and/or other materials provided with the distribution.
|
|
3. Neither the name of the copyright holder nor the names of its contributors
|
|
may be used to endorse or promote products derived from this software without
|
|
specific prior written permission.
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
|
|
OF SUCH DAMAGE.
|
|
*/
|
|
|
|
#ifndef GD32H75E_RCU_H
|
|
#define GD32H75E_RCU_H
|
|
|
|
#include "gd32h75e.h"
|
|
|
|
/* RCU definitions */
|
|
#define RCU RCU_BASE
|
|
|
|
/* registers definitions */
|
|
#define RCU_CTL REG32(RCU + 0x00000000U) /*!< control register */
|
|
#define RCU_PLL0 REG32(RCU + 0x00000004U) /*!< PLL0 register */
|
|
#define RCU_CFG0 REG32(RCU + 0x00000008U) /*!< clock configuration register 0 */
|
|
#define RCU_INT REG32(RCU + 0x0000000CU) /*!< clock interrupt register */
|
|
#define RCU_AHB1RST REG32(RCU + 0x00000010U) /*!< AHB1 reset register */
|
|
#define RCU_AHB2RST REG32(RCU + 0x00000014U) /*!< AHB2 reset register */
|
|
#define RCU_AHB3RST REG32(RCU + 0x00000018U) /*!< AHB3 reset register */
|
|
#define RCU_AHB4RST REG32(RCU + 0x0000001CU) /*!< AHB4 reset register */
|
|
#define RCU_APB1RST REG32(RCU + 0x00000020U) /*!< APB1 reset register */
|
|
#define RCU_APB2RST REG32(RCU + 0x00000024U) /*!< APB2 reset register */
|
|
#define RCU_APB3RST REG32(RCU + 0x00000028U) /*!< APB3 reset register */
|
|
#define RCU_APB4RST REG32(RCU + 0x0000002CU) /*!< APB4 reset register */
|
|
#define RCU_AHB1EN REG32(RCU + 0x00000030U) /*!< AHB1 enable register */
|
|
#define RCU_AHB2EN REG32(RCU + 0x00000034U) /*!< AHB2 enable register */
|
|
#define RCU_AHB3EN REG32(RCU + 0x00000038U) /*!< AHB3 enable register */
|
|
#define RCU_AHB4EN REG32(RCU + 0x0000003CU) /*!< AHB4 enable register */
|
|
#define RCU_APB1EN REG32(RCU + 0x00000040U) /*!< APB1 enable register */
|
|
#define RCU_APB2EN REG32(RCU + 0x00000044U) /*!< APB2 enable register */
|
|
#define RCU_APB3EN REG32(RCU + 0x00000048U) /*!< APB3 enable register */
|
|
#define RCU_APB4EN REG32(RCU + 0x0000004CU) /*!< APB4 enable register */
|
|
#define RCU_AHB1SPEN REG32(RCU + 0x00000050U) /*!< AHB1 sleep mode enable register */
|
|
#define RCU_AHB2SPEN REG32(RCU + 0x00000054U) /*!< AHB2 sleep mode enable register */
|
|
#define RCU_AHB3SPEN REG32(RCU + 0x00000058U) /*!< AHB3 sleep mode enable register */
|
|
#define RCU_AHB4SPEN REG32(RCU + 0x0000005CU) /*!< AHB4 sleep mode enable register */
|
|
#define RCU_APB1SPEN REG32(RCU + 0x00000060U) /*!< APB1 sleep mode enable register */
|
|
#define RCU_APB2SPEN REG32(RCU + 0x00000064U) /*!< APB2 sleep mode enable register */
|
|
#define RCU_APB3SPEN REG32(RCU + 0x00000068U) /*!< APB3 sleep mode enable register */
|
|
#define RCU_APB4SPEN REG32(RCU + 0x0000006CU) /*!< APB4 sleep mode enable register */
|
|
#define RCU_BDCTL REG32(RCU + 0x00000070U) /*!< backup domain control register */
|
|
#define RCU_RSTSCK REG32(RCU + 0x00000074U) /*!< reset source / clock register */
|
|
#define RCU_PLLADDCTL REG32(RCU + 0x00000080U) /*!< PLL clock additional control register */
|
|
#define RCU_PLL1 REG32(RCU + 0x00000084U) /*!< PLL1 register */
|
|
#define RCU_PLL2 REG32(RCU + 0x00000088U) /*!< PLL2 register */
|
|
#define RCU_CFG1 REG32(RCU + 0x0000008CU) /*!< clock configuration register 1 */
|
|
#define RCU_CFG2 REG32(RCU + 0x00000090U) /*!< clock configuration register 2 */
|
|
#define RCU_CFG3 REG32(RCU + 0x00000094U) /*!< clock configuration register 3 */
|
|
#define RCU_PLLALL REG32(RCU + 0x00000098U) /*!< PLL configuration register */
|
|
#define RCU_PLL0FRA REG32(RCU + 0x0000009CU) /*!< PLL0 fraction configuration register */
|
|
#define RCU_PLL1FRA REG32(RCU + 0x000000A0U) /*!< PLL1 fraction configuration register */
|
|
#define RCU_PLL2FRA REG32(RCU + 0x000000A4U) /*!< PLL2 fraction configuration register */
|
|
#define RCU_ADDCTL0 REG32(RCU + 0x000000C0U) /*!< additional clock control register 0 */
|
|
#define RCU_ADDCTL1 REG32(RCU + 0x000000C4U) /*!< additional clock control register 1 */
|
|
#define RCU_ADDINT REG32(RCU + 0x000000CCU) /*!< additional clock interrupt register */
|
|
#define RCU_CFG4 REG32(RCU + 0x000000D0U) /*!< clock configuration register 4 */
|
|
#define RCU_USBCLKCTL REG32(RCU + 0x000000D4U) /*!< USB clock control register */
|
|
#define RCU_PLLUSBCFG REG32(RCU + 0x000000D8U) /*!< PLLUSB configuration register */
|
|
#define RCU_ADDAPB2RST REG32(RCU + 0x000000E0U) /*!< APB2 additional reset register */
|
|
#define RCU_ADDAPB2EN REG32(RCU + 0x000000E4U) /*!< APB2 additional enable register */
|
|
#define RCU_ADDAPB2SPEN REG32(RCU + 0x000000E8U) /*!< APB2 additional sleep mode enable register */
|
|
#define RCU_CFG5 REG32(RCU + 0x000000F0U) /*!< clock configuration register 5 */
|
|
|
|
/* bits definitions */
|
|
/* RCU_CTL */
|
|
#define RCU_CTL_IRC64MADJ BITS(0,6) /*!< high speed internal oscillator clock trim adjust value */
|
|
#define RCU_CTL_IRC64MCALIB BITS(7,15) /*!< high speed internal oscillator calibration value register */
|
|
#define RCU_CTL_HXTALEN BIT(16) /*!< external high speed oscillator enable */
|
|
#define RCU_CTL_HXTALSTB BIT(17) /*!< external crystal oscillator clock stabilization flag */
|
|
#define RCU_CTL_HXTALBPS BIT(18) /*!< external crystal oscillator clock bypass mode enable */
|
|
#define RCU_CTL_CKMEN BIT(19) /*!< HXTAL clock monitor enable */
|
|
#define RCU_CTL_PLL0EN BIT(24) /*!< PLL0 enable */
|
|
#define RCU_CTL_PLL0STB BIT(25) /*!< PLL0 clock stabilization flag */
|
|
#define RCU_CTL_PLL1EN BIT(26) /*!< PLL1 enable */
|
|
#define RCU_CTL_PLL1STB BIT(27) /*!< PLL1 clock stabilization flag */
|
|
#define RCU_CTL_PLL2EN BIT(28) /*!< PLL2 enable */
|
|
#define RCU_CTL_PLL2STB BIT(29) /*!< PLL2 clock stabilization flag */
|
|
#define RCU_CTL_IRC64MEN BIT(30) /*!< IRC64M high speed oscillator enable */
|
|
#define RCU_CTL_IRC64MSTB BIT(31) /*!< IRC64M high speed internal oscillator stabilization flag */
|
|
|
|
/* RCU_PLL0 */
|
|
#define RCU_PLL0_PLL0PSC BITS(0,5) /*!< The PLL0 VCO source clock prescaler */
|
|
#define RCU_PLL0_PLL0N BITS(6,14) /*!< The PLL0 VCO clock multi factor */
|
|
#define RCU_PLL0_PLL0P BITS(16,22) /*!< The PLL0P output frequency division factor from PLL0 VCO clock */
|
|
#define RCU_PLL0_PLL0R BITS(24,30) /*!< the PLL0R output frequency division factor from PLL0 VCO clock */
|
|
#define RCU_PLL0_PLLSTBSRC BIT(31) /*!< PLLs stabilization signal sources */
|
|
|
|
/* RCU_CFG0 */
|
|
#define RCU_CFG0_SCS BITS(0,1) /*!< system clock switch */
|
|
#define RCU_CFG0_SCSS BITS(2,3) /*!< system clock switch status */
|
|
#define RCU_CFG0_AHBPSC BITS(4,7) /*!< AHB prescaler selection */
|
|
#define RCU_CFG0_APB1PSC BITS(10,12) /*!< APB1 prescaler selection */
|
|
#define RCU_CFG0_APB2PSC BITS(13,15) /*!< APB2 prescaler selection */
|
|
#define RCU_CFG0_RTCDIV BITS(16,21) /*!< RTC clock divider factor */
|
|
#define RCU_CFG0_APB4PSC BITS(24,26) /*!< APB4 prescaler selection */
|
|
#define RCU_CFG0_APB3PSC BITS(27,29) /*!< APB3 prescaler selection */
|
|
#define RCU_CFG0_I2C0SEL BITS(30,31) /*!< I2C0 clock source selection */
|
|
|
|
/* RCU_INT */
|
|
#define RCU_INT_IRC32KSTBIF BIT(0) /*!< IRC32K stabilization interrupt flag */
|
|
#define RCU_INT_LXTALSTBIF BIT(1) /*!< LXTAL stabilization interrupt flag */
|
|
#define RCU_INT_IRC64MSTBIF BIT(2) /*!< IRC64M stabilization interrupt flag */
|
|
#define RCU_INT_HXTALSTBIF BIT(3) /*!< HXTAL stabilization interrupt flag */
|
|
#define RCU_INT_PLL0STBIF BIT(4) /*!< PLL0 stabilization interrupt flag */
|
|
#define RCU_INT_PLL1STBIF BIT(5) /*!< PLL1 stabilization interrupt flag */
|
|
#define RCU_INT_PLL2STBIF BIT(6) /*!< PLL2 stabilization interrupt flag */
|
|
#define RCU_INT_CKMIF BIT(7) /*!< HXTAL clock stuck interrupt flag */
|
|
#define RCU_INT_IRC32KSTBIE BIT(8) /*!< IRC32K stabilization interrupt enable */
|
|
#define RCU_INT_LXTALSTBIE BIT(9) /*!< LXTAL stabilization interrupt enable */
|
|
#define RCU_INT_IRC64MSTBIE BIT(10) /*!< IRC64M stabilization interrupt enable */
|
|
#define RCU_INT_HXTALSTBIE BIT(11) /*!< HXTAL stabilization interrupt enable */
|
|
#define RCU_INT_PLL0STBIE BIT(12) /*!< PLL0 stabilization interrupt enable */
|
|
#define RCU_INT_PLL1STBIE BIT(13) /*!< PLL1 stabilization interrupt enable */
|
|
#define RCU_INT_PLL2STBIE BIT(14) /*!< PLL2 stabilization interrupt enable */
|
|
#define RCU_INT_IRC32KSTBIC BIT(16) /*!< IRC32K stabilization interrupt clear */
|
|
#define RCU_INT_LXTALSTBIC BIT(17) /*!< LXTAL stabilization interrupt clear */
|
|
#define RCU_INT_IRC64MSTBIC BIT(18) /*!< IRC64M stabilization interrupt clear */
|
|
#define RCU_INT_HXTALSTBIC BIT(19) /*!< HXTAL stabilization interrupt clear */
|
|
#define RCU_INT_PLL0STBIC BIT(20) /*!< PLL0 stabilization interrupt clear */
|
|
#define RCU_INT_PLL1STBIC BIT(21) /*!< PLL1 stabilization interrupt clear */
|
|
#define RCU_INT_PLL2STBIC BIT(22) /*!< PLL2 stabilization interrupt clear */
|
|
#define RCU_INT_CKMIC BIT(23) /*!< HXTAL clock stuck interrupt clear */
|
|
#define RCU_INT_LPIRC4MSTBIF BIT(24) /*!< LPIRC4M stabilization interrupt flag */
|
|
#define RCU_INT_LPIRC4MSTBIE BIT(25) /*!< LPIRC4M stabilization interrupt enable */
|
|
#define RCU_INT_LPIRC4MSTBIC BIT(26) /*!< LPIRC4M stabilization interrupt clear */
|
|
#define RCU_INT_LCKMIF BIT(27) /*!< LXTAL clock stuck interrupt flag */
|
|
#define RCU_INT_LCKMIC BIT(28) /*!< LXTAL clock stuck interrupt clear */
|
|
|
|
/* RCU_AHB1RST */
|
|
#define RCU_AHB1RST_USBHS0RST BIT(14) /*!< USBHS0 reset */
|
|
#define RCU_AHB1RST_DMA0RST BIT(21) /*!< DMA0 reset */
|
|
#define RCU_AHB1RST_DMA1RST BIT(22) /*!< DMA1 reset */
|
|
#define RCU_AHB1RST_DMAMUXRST BIT(23) /*!< DMAMUX reset */
|
|
#define RCU_AHB1RST_USBHS1RST BIT(29) /*!< USBHS1 reset */
|
|
|
|
/* RCU_AHB2RST */
|
|
#define RCU_AHB2RST_FACRST BIT(1) /*!< FAC reset */
|
|
#define RCU_AHB2RST_TRNGRST BIT(6) /*!< TRNG reset */
|
|
#define RCU_AHB2RST_TMURST BIT(7) /*!< TMU reset */
|
|
|
|
/* RCU_AHB3RST */
|
|
#define RCU_AHB3RST_EXMCRST BIT(0) /*!< EXMC reset */
|
|
#define RCU_AHB3RST_MDMARST BIT(3) /*!< MDMA reset */
|
|
#define RCU_AHB3RST_OSPIMRST BIT(4) /*!< OSPIM reset */
|
|
#define RCU_AHB3RST_OSPI0RST BIT(5) /*!< OSPI0 reset */
|
|
#define RCU_AHB3RST_OSPI1RST BIT(6) /*!< OSPI1 reset */
|
|
|
|
/* RCU_AHB4RST */
|
|
#define RCU_AHB4RST_PARST BIT(0) /*!< GPIO port A reset */
|
|
#define RCU_AHB4RST_PBRST BIT(1) /*!< GPIO port B reset */
|
|
#define RCU_AHB4RST_PCRST BIT(2) /*!< GPIO port C reset */
|
|
#define RCU_AHB4RST_PDRST BIT(3) /*!< GPIO port D reset */
|
|
#define RCU_AHB4RST_PERST BIT(4) /*!< GPIO port E reset */
|
|
#define RCU_AHB4RST_PFRST BIT(5) /*!< GPIO port F reset */
|
|
#define RCU_AHB4RST_PGRST BIT(6) /*!< GPIO port G reset */
|
|
#define RCU_AHB4RST_PHRST BIT(7) /*!< GPIO port H reset */
|
|
#define RCU_AHB4RST_PJRST BIT(8) /*!< GPIO port J reset */
|
|
#define RCU_AHB4RST_PKRST BIT(9) /*!< GPIO port K reset */
|
|
#define RCU_AHB4RST_CRCRST BIT(14) /*!< CRC reset */
|
|
|
|
/* RCU_APB1RST */
|
|
#define RCU_APB1RST_TIMER1RST BIT(0) /*!< TIMER1 reset */
|
|
#define RCU_APB1RST_TIMER2RST BIT(1) /*!< TIMER2 reset */
|
|
#define RCU_APB1RST_TIMER3RST BIT(2) /*!< TIMER3 reset */
|
|
#define RCU_APB1RST_TIMER4RST BIT(3) /*!< TIMER4 reset */
|
|
#define RCU_APB1RST_TIMER5RST BIT(4) /*!< TIMER5 reset */
|
|
#define RCU_APB1RST_TIMER6RST BIT(5) /*!< TIMER6 reset */
|
|
#define RCU_APB1RST_TIMER22RST BIT(6) /*!< TIMER22 reset */
|
|
#define RCU_APB1RST_TIMER23RST BIT(7) /*!< TIMER23 reset */
|
|
#define RCU_APB1RST_TIMER50RST BIT(10) /*!< TIMER50 reset */
|
|
#define RCU_APB1RST_TIMER51RST BIT(11) /*!< TIMER51 reset */
|
|
#define RCU_APB1RST_SPI1RST BIT(14) /*!< SPI1 reset */
|
|
#define RCU_APB1RST_SPI2RST BIT(15) /*!< SPI2 reset */
|
|
#define RCU_APB1RST_USART1RST BIT(17) /*!< USART1 reset */
|
|
#define RCU_APB1RST_USART2RST BIT(18) /*!< USART2 reset */
|
|
#define RCU_APB1RST_UART3RST BIT(19) /*!< UART3 reset */
|
|
#define RCU_APB1RST_UART4RST BIT(20) /*!< UART4 reset */
|
|
#define RCU_APB1RST_I2C0RST BIT(21) /*!< I2C0 reset */
|
|
#define RCU_APB1RST_I2C1RST BIT(22) /*!< I2C1 reset */
|
|
#define RCU_APB1RST_I2C2RST BIT(23) /*!< I2C2 reset */
|
|
#define RCU_APB1RST_I2C3RST BIT(24) /*!< I2C3 reset */
|
|
#define RCU_APB1RST_CTCRST BIT(27) /*!< CTC reset */
|
|
#define RCU_APB1RST_DACHOLDRST BIT(28) /*!< DAC hold clock reset */
|
|
#define RCU_APB1RST_DACRST BIT(29) /*!< DAC reset */
|
|
#define RCU_APB1RST_UART6RST BIT(30) /*!< UART6 reset */
|
|
#define RCU_APB1RST_UART7RST BIT(31) /*!< UART7 reset */
|
|
|
|
/* RCU_APB2RST */
|
|
#define RCU_APB2RST_TIMER0RST BIT(0) /*!< TIMER0 reset */
|
|
#define RCU_APB2RST_TIMER7RST BIT(1) /*!< TIMER7 reset */
|
|
#define RCU_APB2RST_USART0RST BIT(4) /*!< USART0 reset */
|
|
#define RCU_APB2RST_USART5RST BIT(5) /*!< USART5 reset */
|
|
#define RCU_APB2RST_ADC0RST BIT(8) /*!< ADC0 reset */
|
|
#define RCU_APB2RST_ADC1RST BIT(9) /*!< ADC1 reset */
|
|
#define RCU_APB2RST_ADC2RST BIT(10) /*!< ADC2 reset */
|
|
#define RCU_APB2RST_SPI0RST BIT(12) /*!< SPI0 reset */
|
|
#define RCU_APB2RST_SPI3RST BIT(13) /*!< SPI3 reset */
|
|
#define RCU_APB2RST_TIMER14RST BIT(16) /*!< TIMER14 reset */
|
|
#define RCU_APB2RST_TIMER15RST BIT(17) /*!< TIMER15 reset */
|
|
#define RCU_APB2RST_TIMER16RST BIT(18) /*!< TIMER15 reset */
|
|
#define RCU_APB2RST_HPDFRST BIT(19) /*!< HPDF reset */
|
|
#define RCU_APB2RST_SPI4RST BIT(20) /*!< SPI4 reset */
|
|
#define RCU_APB2RST_SPI5RST BIT(21) /*!< SPI5 reset */
|
|
#define RCU_APB2RST_TIMER40RST BIT(25) /*!< TIMER40 reset */
|
|
#define RCU_APB2RST_TIMER41RST BIT(26) /*!< TIMER41 reset */
|
|
#define RCU_APB2RST_TIMER42RST BIT(27) /*!< TIMER42 reset */
|
|
#define RCU_APB2RST_TIMER43RST BIT(28) /*!< TIMER43 reset */
|
|
#define RCU_APB2RST_TIMER44RST BIT(29) /*!< TIMER44 reset */
|
|
#define RCU_APB2RST_EDOUTRST BIT(30) /*!< EDOUT reset */
|
|
#define RCU_APB2RST_TRIGSELRST BIT(31) /*!< TRIGSEL reset */
|
|
|
|
/* RCU_APB3RST */
|
|
#define RCU_APB3RST_WWDGTRST BIT(1) /*!< WWDGT reset */
|
|
|
|
/* RCU_APB4RST */
|
|
#define RCU_APB4RST_SYSCFGRST BIT(0) /*!< SYSCFG reset */
|
|
#define RCU_APB4RST_CMPRST BIT(1) /*!< CMP reset */
|
|
#define RCU_APB4RST_VREFRST BIT(2) /*!< VREF reset */
|
|
#define RCU_APB4RST_LPDTSRST BIT(3) /*!< LPDTS reset */
|
|
#define RCU_APB4RST_PMURST BIT(4) /*!< PMU reset */
|
|
|
|
/* RCU_AHB1EN */
|
|
#define RCU_AHB1EN_USBHS0EN BIT(14) /*!< USBHS0 clock enable */
|
|
#define RCU_AHB1EN_USBHS0ULPIEN BIT(15) /*!< USBHS0 ULPI clock enable */
|
|
#define RCU_AHB1EN_DMA0EN BIT(21) /*!< DMA0 clock enable */
|
|
#define RCU_AHB1EN_DMA1EN BIT(22) /*!< DMA1 clock enable */
|
|
#define RCU_AHB1EN_DMAMUXEN BIT(23) /*!< DMAMUX clock enable */
|
|
#define RCU_AHB1EN_USBHS1EN BIT(29) /*!< USBHS1 clock enable */
|
|
#define RCU_AHB1EN_USBHS1ULPIEN BIT(30) /*!< USBHS1 ULPI clock enable */
|
|
|
|
/* RCU_AHB2EN */
|
|
#define RCU_AHB2EN_FACEN BIT(1) /*!< FAC clock enable */
|
|
#define RCU_AHB2EN_CAUEN BIT(3) /*!< CAU clock enable */
|
|
#define RCU_AHB2EN_HAUEN BIT(4) /*!< HAU clock enable */
|
|
#define RCU_AHB2EN_TRNGEN BIT(6) /*!< TRNG clock enable */
|
|
#define RCU_AHB2EN_TMUEN BIT(7) /*!< TMU clock enable */
|
|
#define RCU_AHB2EN_RAMECCMU1EN BIT(8) /*!< RAMECCMU1 clock enable */
|
|
|
|
/* RCU_AHB3EN */
|
|
#define RCU_AHB3EN_EXMCEN BIT(0) /*!< EXMC clock enable */
|
|
#define RCU_AHB3EN_MDMAEN BIT(3) /*!< MDMA clock enable */
|
|
#define RCU_AHB3EN_OSPIMEN BIT(4) /*!< OSPIM clock enable */
|
|
#define RCU_AHB3EN_OSPI0EN BIT(5) /*!< OSPI0 clock enable */
|
|
#define RCU_AHB3EN_OSPI1EN BIT(6) /*!< OSPI1 clock enable */
|
|
#define RCU_AHB3EN_RAMECCMU0EN BIT(10) /*!< RAMECCMU0 clock enable */
|
|
#define RCU_AHB3EN_CPUEN BIT(15) /*!< CPU clock enable */
|
|
|
|
/* RCU_AHB4EN */
|
|
#define RCU_AHB4EN_PAEN BIT(0) /*!< GPIO port A enable */
|
|
#define RCU_AHB4EN_PBEN BIT(1) /*!< GPIO port B enable */
|
|
#define RCU_AHB4EN_PCEN BIT(2) /*!< GPIO port C enable */
|
|
#define RCU_AHB4EN_PDEN BIT(3) /*!< GPIO port D enable */
|
|
#define RCU_AHB4EN_PEEN BIT(4) /*!< GPIO port E enable */
|
|
#define RCU_AHB4EN_PFEN BIT(5) /*!< GPIO port F enable */
|
|
#define RCU_AHB4EN_PGEN BIT(6) /*!< GPIO port G enable */
|
|
#define RCU_AHB4EN_PHEN BIT(7) /*!< GPIO port H enable */
|
|
#define RCU_AHB4EN_PJEN BIT(8) /*!< GPIO port J enable */
|
|
#define RCU_AHB4EN_PKEN BIT(9) /*!< GPIO port K enable */
|
|
#define RCU_AHB4EN_BKPSRAMEN BIT(13) /*!< Backup SRAM enable */
|
|
#define RCU_AHB4EN_CRCEN BIT(14) /*!< CRC enable */
|
|
|
|
/* RCU_APB1EN */
|
|
#define RCU_APB1EN_TIMER1EN BIT(0) /*!< TIMER1 enable */
|
|
#define RCU_APB1EN_TIMER2EN BIT(1) /*!< TIMER2 enable */
|
|
#define RCU_APB1EN_TIMER3EN BIT(2) /*!< TIMER3 enable */
|
|
#define RCU_APB1EN_TIMER4EN BIT(3) /*!< TIMER4 enable */
|
|
#define RCU_APB1EN_TIMER5EN BIT(4) /*!< TIMER5 enable */
|
|
#define RCU_APB1EN_TIMER6EN BIT(5) /*!< TIMER6 enable */
|
|
#define RCU_APB1EN_TIMER22EN BIT(6) /*!< TIMER22 enable */
|
|
#define RCU_APB1EN_TIMER23EN BIT(7) /*!< TIMER23 enable */
|
|
#define RCU_APB1EN_TIMER50EN BIT(10) /*!< TIMER50 enable */
|
|
#define RCU_APB1EN_TIMER51EN BIT(11) /*!< TIMER51 enable */
|
|
#define RCU_APB1EN_SPI1EN BIT(14) /*!< SPI1 enable */
|
|
#define RCU_APB1EN_SPI2EN BIT(15) /*!< SPI2 enable */
|
|
#define RCU_APB1EN_USART1EN BIT(17) /*!< USART1 enable */
|
|
#define RCU_APB1EN_USART2EN BIT(18) /*!< USART2 enable */
|
|
#define RCU_APB1EN_UART3EN BIT(19) /*!< UART3 enable */
|
|
#define RCU_APB1EN_UART4EN BIT(20) /*!< UART4 enable */
|
|
#define RCU_APB1EN_I2C0EN BIT(21) /*!< I2C0 enable */
|
|
#define RCU_APB1EN_I2C1EN BIT(22) /*!< I2C1 enable */
|
|
#define RCU_APB1EN_I2C2EN BIT(23) /*!< I2C2 enable */
|
|
#define RCU_APB1EN_I2C3EN BIT(24) /*!< I2C3 enable */
|
|
#define RCU_APB1EN_CTCEN BIT(27) /*!< CTC enable */
|
|
#define RCU_APB1EN_DACHOLDEN BIT(28) /*!< DAC hold clock enable */
|
|
#define RCU_APB1EN_DACEN BIT(29) /*!< DAC enable */
|
|
#define RCU_APB1EN_UART6EN BIT(30) /*!< UART6 enable */
|
|
#define RCU_APB1EN_UART7EN BIT(31) /*!< UART7 enable */
|
|
|
|
/* RCU_APB2EN */
|
|
#define RCU_APB2EN_TIMER0EN BIT(0) /*!< TIMER0 enable */
|
|
#define RCU_APB2EN_TIMER7EN BIT(1) /*!< TIMER7 enable */
|
|
#define RCU_APB2EN_USART0EN BIT(4) /*!< USART0 enable */
|
|
#define RCU_APB2EN_USART5EN BIT(5) /*!< USART5 enable */
|
|
#define RCU_APB2EN_ADC0EN BIT(8) /*!< ADC0 enable */
|
|
#define RCU_APB2EN_ADC1EN BIT(9) /*!< ADC1 enable */
|
|
#define RCU_APB2EN_ADC2EN BIT(10) /*!< ADC2 enable */
|
|
#define RCU_APB2EN_SPI0EN BIT(12) /*!< SPI0 enable */
|
|
#define RCU_APB2EN_SPI3EN BIT(13) /*!< SPI3 enable */
|
|
#define RCU_APB2EN_TIMER14EN BIT(16) /*!< TIMER14 enable */
|
|
#define RCU_APB2EN_TIMER15EN BIT(17) /*!< TIMER15 enable */
|
|
#define RCU_APB2EN_TIMER16EN BIT(18) /*!< TIMER15 enable */
|
|
#define RCU_APB2EN_HPDFEN BIT(19) /*!< HPDF enable */
|
|
#define RCU_APB2EN_SPI4EN BIT(20) /*!< SPI4 enable */
|
|
#define RCU_APB2EN_SPI5EN BIT(21) /*!< SPI5 enable */
|
|
#define RCU_APB2EN_TIMER40EN BIT(25) /*!< TIMER40 enable */
|
|
#define RCU_APB2EN_TIMER41EN BIT(26) /*!< TIMER41 enable */
|
|
#define RCU_APB2EN_TIMER42EN BIT(27) /*!< TIMER42 enable */
|
|
#define RCU_APB2EN_TIMER43EN BIT(28) /*!< TIMER43 enable */
|
|
#define RCU_APB2EN_TIMER44EN BIT(29) /*!< TIMER44 enable */
|
|
#define RCU_APB2EN_EDOUTEN BIT(30) /*!< EDOUT enable */
|
|
#define RCU_APB2EN_TRGSELEN BIT(31) /*!< TRGSEL enable */
|
|
|
|
/* RCU_APB3EN */
|
|
#define RCU_APB3EN_WWDGTEN BIT(1) /*!< WWDGT enable */
|
|
|
|
/* RCU_APB4EN */
|
|
#define RCU_APB4EN_SYSCFGEN BIT(0) /*!< SYSCFG enable */
|
|
#define RCU_APB4EN_CMPEN BIT(1) /*!< CMP enable */
|
|
#define RCU_APB4EN_VREFEN BIT(2) /*!< VREF enable */
|
|
#define RCU_APB4EN_LPDTSEN BIT(3) /*!< LPDTS enable */
|
|
#define RCU_APB4EN_PMUEN BIT(4) /*!< PMU enable */
|
|
|
|
/* RCU_AHB1SPEN */
|
|
#define RCU_AHB1SPEN_USBHS0SPEN BIT(14) /*!< USBHS0 clock enable when sleep mode */
|
|
#define RCU_AHB1SPEN_USBHS0ULPISPEN BIT(15) /*!< USBHS0ULPI clock enable when sleep mode */
|
|
#define RCU_AHB1SPEN_SRAM0SPEN BIT(16) /*!< SRAM0 clock enable when sleep mode */
|
|
#define RCU_AHB1SPEN_SRAM1SPEN BIT(17) /*!< SRAM1 clock enable when sleep mode */
|
|
#define RCU_AHB1SPEN_DMA0SPEN BIT(21) /*!< DMA0 clock enable when sleep mode*/
|
|
#define RCU_AHB1SPEN_DMA1SPEN BIT(22) /*!< DMA1 clock enable when sleep mode*/
|
|
#define RCU_AHB1SPEN_DMAMUXSPEN BIT(23) /*!< DMAMUX clock enable when sleep mode*/
|
|
#define RCU_AHB1SPEN_USBHS1SPEN BIT(29) /*!< USBHS1 clock enable when sleep mode*/
|
|
#define RCU_AHB1SPEN_USBHS1ULPISPEN BIT(30) /*!< USBHS1 ULPI clock enable when sleep mode*/
|
|
|
|
/* RCU_AHB2SPEN */
|
|
#define RCU_AHB2SPEN_FACSPEN BIT(1) /*!< FAC clock enable when sleep mode*/
|
|
#define RCU_AHB2SPEN_CAUSPEN BIT(3) /*!< CAU clock enable when sleep mode*/
|
|
#define RCU_AHB2SPEN_HAUSPEN BIT(4) /*!< HAU clock enable when sleep mode*/
|
|
#define RCU_AHB2SPEN_TRNGSPEN BIT(6) /*!< TRNG clock enable when sleep mode*/
|
|
#define RCU_AHB2SPEN_TMUSPEN BIT(7) /*!< TMU clock enable when sleep mode*/
|
|
#define RCU_AHB2SPEN_RAMECCMU1SPEN BIT(8) /*!< RAMECCMU1 clock enable when sleep mode*/
|
|
|
|
/* RCU_AHB3SPEN */
|
|
#define RCU_AHB3SPEN_EXMCSPEN BIT(0) /*!< EXMC clock enable when sleep mode*/
|
|
#define RCU_AHB3SPEN_MDMASPEN BIT(3) /*!< MDMA clock enable when sleep mode*/
|
|
#define RCU_AHB3SPEN_OSPIMSPEN BIT(4) /*!< OSPIM clock enable when sleep mode*/
|
|
#define RCU_AHB3SPEN_OSPI0SPEN BIT(5) /*!< OSPI0 clock enable when sleep mode*/
|
|
#define RCU_AHB3SPEN_OSPI1SPEN BIT(6) /*!< OSPI1 clock enable when sleep mode*/
|
|
#define RCU_AHB2SPEN_RAMECCMU0SPEN BIT(10) /*!< RAMECCMU0 clock enable when sleep mode*/
|
|
#define RCU_AHB3SPEN_AXISRAMSPEN BIT(14) /*!< AXISRAM clock enable when sleep mode*/
|
|
#define RCU_AHB3SPEN_FMCSPEN BIT(15) /*!< FMC clock enable when sleep mode*/
|
|
|
|
/* RCU_AHB4SPEN */
|
|
#define RCU_AHB4SPEN_PASPEN BIT(0) /*!< GPIO port A clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_PBSPEN BIT(1) /*!< GPIO port B clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_PCSPEN BIT(2) /*!< GPIO port C clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_PDSPEN BIT(3) /*!< GPIO port D clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_PESPEN BIT(4) /*!< GPIO port E clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_PFSPEN BIT(5) /*!< GPIO port F clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_PGSPEN BIT(6) /*!< GPIO port G clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_PHSPEN BIT(7) /*!< GPIO port H clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_PJSPEN BIT(8) /*!< GPIO port J clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_PKSPEN BIT(9) /*!< GPIO port K clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_BKPSRAMSPEN BIT(13) /*!< BKPSRAMEN clock enable when sleep mode*/
|
|
#define RCU_AHB4SPEN_CRCSPEN BIT(14) /*!< CRC clock enable when sleep mode*/
|
|
|
|
/* RCU_APB1SPEN */
|
|
#define RCU_APB1SPEN_TIMER1SPEN BIT(0) /*!< TIMER1 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_TIMER2SPEN BIT(1) /*!< TIMER2 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_TIMER3SPEN BIT(2) /*!< TIMER3 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_TIMER4SPEN BIT(3) /*!< TIMER4 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_TIMER5SPEN BIT(4) /*!< TIMER5 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_TIMER6SPEN BIT(5) /*!< TIMER6 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_TIMER22SPEN BIT(6) /*!< TIMER22 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_TIMER23SPEN BIT(7) /*!< TIMER23 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_TIMER50SPEN BIT(10) /*!< TIMER50 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_TIMER51SPEN BIT(11) /*!< TIMER51 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_SPI1SPEN BIT(14) /*!< SPI1 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_SPI2SPEN BIT(15) /*!< SPI2 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_USART1SPEN BIT(17) /*!< USART1 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_USART2SPEN BIT(18) /*!< USART2 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_UART3SPEN BIT(19) /*!< UART3 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_UART4SPEN BIT(20) /*!< UART4 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_I2C0SPEN BIT(21) /*!< I2C0 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_I2C1SPEN BIT(22) /*!< I2C1 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_I2C2SPEN BIT(23) /*!< I2C2 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_I2C3SPEN BIT(24) /*!< I2C3 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_CTCSPEN BIT(27) /*!< CTC clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_DACHOLDSPEN BIT(28) /*!< DAC hold clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_DACSPEN BIT(29) /*!< DAC clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_UART6SPEN BIT(30) /*!< UART6 clock enable when sleep mode*/
|
|
#define RCU_APB1SPEN_UART7SPEN BIT(31) /*!< UART7 clock enable when sleep mode*/
|
|
|
|
/* RCU_APB2SPEN */
|
|
#define RCU_APB2SPEN_TIMER0SPEN BIT(0) /*!< TIMER0 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TIMER7SPEN BIT(1) /*!< TIMER7 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_USART0SPEN BIT(4) /*!< USART0 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_USART5SPEN BIT(5) /*!< USART5 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_ADC0SPEN BIT(8) /*!< ADC0 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_ADC1SPEN BIT(9) /*!< ADC1 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_ADC2SPEN BIT(10) /*!< ADC2 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_SPI0SPEN BIT(12) /*!< SPI0 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_SPI3SPEN BIT(13) /*!< SPI3 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TIMER14SPEN BIT(16) /*!< TIMER14 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TIMER15SPEN BIT(17) /*!< TIMER15 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TIMER16SPEN BIT(18) /*!< TIMER16 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_HPDFSPEN BIT(19) /*!< HPDF clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_SPI4SPEN BIT(20) /*!< SPI4 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_SPI5SPEN BIT(21) /*!< SPI5 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TIMER40SPEN BIT(25) /*!< TIMER40 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TIMER41SPEN BIT(26) /*!< TIMER41 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TIMER42SPEN BIT(27) /*!< TIMER42 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TIMER43SPEN BIT(28) /*!< TIMER43 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TIMER44SPEN BIT(29) /*!< TIMER44 clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_EDOUTSPEN BIT(30) /*!< EDOUT clock enable when sleep mode*/
|
|
#define RCU_APB2SPEN_TRIGSELSPEN BIT(31) /*!< TRIGSEL clock enable when sleep mode*/
|
|
|
|
/* RCU_APB3SPEN */
|
|
#define RCU_APB3SPEN_WWDGTSPEN BIT(1) /*!< WWDGT clock enable when sleep mode*/
|
|
|
|
/* RCU_APB4SPEN */
|
|
#define RCU_APB4SPEN_SYSCFGSPEN BIT(0) /*!< SYSCFG clock enable when sleep mode*/
|
|
#define RCU_APB4SPEN_CMPSPEN BIT(1) /*!< CMP clock enable when sleep mode*/
|
|
#define RCU_APB4SPEN_VREFSPEN BIT(2) /*!< VREF clock enable when sleep mode*/
|
|
#define RCU_APB4SPEN_LPDTSSPEN BIT(3) /*!< LPDTS clock enable when sleep mode*/
|
|
#define RCU_APB4SPEN_PMUSPEN BIT(4) /*!< PMU clock enable when sleep mode*/
|
|
|
|
/* RCU_BDCTL */
|
|
#define RCU_BDCTL_LXTALEN BIT(0) /*!< LXTAL enable */
|
|
#define RCU_BDCTL_LXTALSTB BIT(1) /*!< low speed crystal oscillator stabilization flag */
|
|
#define RCU_BDCTL_LXTALBPS BIT(2) /*!< LXTAL bypass mode enable */
|
|
#define RCU_BDCTL_LXTALDRI BITS(3,4) /*!< LXTAL drive capability */
|
|
#define RCU_BDCTL_LCKMEN BIT(5) /*!< LXTAL clock monitor enable */
|
|
#define RCU_BDCTL_LCKMD BIT(6) /*!< LXTAL clock failure detection flag */
|
|
#define RCU_BDCTL_RTCSRC BITS(8,9) /*!< RTC clock entry selection */
|
|
#define RCU_BDCTL_RTCEN BIT(15) /*!< RTC clock enable */
|
|
#define RCU_BDCTL_BKPRST BIT(16) /*!< backup domain reset */
|
|
|
|
/* RCU_RSTSCK */
|
|
#define RCU_RSTSCK_IRC32KEN BIT(0) /*!< IRC32K enable */
|
|
#define RCU_RSTSCK_IRC32KSTB BIT(1) /*!< IRC32K stabilization flag */
|
|
#define RCU_RSTSCK_RSTFC BIT(24) /*!< reset flag clear */
|
|
#define RCU_RSTSCK_BORRSTF BIT(25) /*!< BOR reset flag */
|
|
#define RCU_RSTSCK_EPRSTF BIT(26) /*!< external pin reset flag */
|
|
#define RCU_RSTSCK_PORRSTF BIT(27) /*!< power reset flag */
|
|
#define RCU_RSTSCK_SWRSTF BIT(28) /*!< software reset flag */
|
|
#define RCU_RSTSCK_FWDGTRSTF BIT(29) /*!< free watchdog timer reset flag */
|
|
#define RCU_RSTSCK_WWDGTRSTF BIT(30) /*!< window watchdog timer reset flag */
|
|
#define RCU_RSTSCK_LPRSTF BIT(31) /*!< low-power reset flag */
|
|
|
|
/* RCU_PLLADDCTL */
|
|
#define RCU_PLLADDCTL_PLL0Q BITS(0,6) /*!< the PLL0Q output frequency division factor from PLL0 VCO clock */
|
|
#define RCU_PLLADDCTL_PLL1Q BITS(8,14) /*!< the PLL1Q output frequency division factor from PLL1 VCO clock */
|
|
#define RCU_PLLADDCTL_PLL2Q BITS(16,22) /*!< the PLL2Q output frequency division factor from PLL2 VCO clock */
|
|
#define RCU_PLLADDCTL_PLL0QEN BIT(23) /*!< PLL0Q divider output enable */
|
|
#define RCU_PLLADDCTL_PLL0REN BIT(24) /*!< PLL0R divider output enable */
|
|
#define RCU_PLLADDCTL_PLL0PEN BIT(25) /*!< PLL0P divider output enable */
|
|
#define RCU_PLLADDCTL_PLL1QEN BIT(26) /*!< PLL1Q divider output enable */
|
|
#define RCU_PLLADDCTL_PLL1REN BIT(27) /*!< PLL1R divider output enable */
|
|
#define RCU_PLLADDCTL_PLL1PEN BIT(28) /*!< PLL1P divider output enable */
|
|
#define RCU_PLLADDCTL_PLL2QEN BIT(29) /*!< PLL2Q divider output enable */
|
|
#define RCU_PLLADDCTL_PLL2REN BIT(30) /*!< PLL2R divider output enable */
|
|
#define RCU_PLLADDCTL_PLL2PEN BIT(31) /*!< PLL2P divider output enable */
|
|
|
|
/* RCU_PLL1 */
|
|
#define RCU_PLL1_PLL1PSC BITS(0,5) /*!< the PLL1 VCO source clock prescaler */
|
|
#define RCU_PLL1_PLL1N BITS(6,14) /*!< the PLL1 VCO clock multi factor */
|
|
#define RCU_PLL1_PLL1P BITS(16,22) /*!< the PLL1P output frequency division factor from PLL1 VCO clock */
|
|
#define RCU_PLL1_PLL1R BITS(24,30) /*!< the PLL1R output frequency division factor from PLL1 VCO clock */
|
|
|
|
/* RCU_PLL2 */
|
|
#define RCU_PLL2_PLL2PSC BITS(0,5) /*!< the PLL2 VCO source clock prescaler */
|
|
#define RCU_PLL2_PLL2N BITS(6,14) /*!< the PLL2 VCO clock multi factor */
|
|
#define RCU_PLL2_PLL2P BITS(16,22) /*!< the PLL2P output frequency division factor from PLL2 VCO clock */
|
|
#define RCU_PLL2_PLL2R BITS(24,30) /*!< the PLL2R output frequency division factor from PLL2 VCO clock */
|
|
|
|
/* RCU_CFG1 */
|
|
#define RCU_CFG1_USART0SEL BITS(0,1) /*!< USART0 clock source selection */
|
|
#define RCU_CFG1_CAN0SEL BITS(8,9) /*!< CAN0 clock source selection */
|
|
#define RCU_CFG1_CAN1SEL BITS(10,11) /*!< CAN1 clock source selection */
|
|
#define RCU_CFG1_CAN2SEL BITS(12,13) /*!< CAN2 clock source selection */
|
|
#define RCU_CFG1_PERSEL BITS(14,15) /*!< CK_PER clock source selection */
|
|
#define RCU_CFG1_PLL2RDIV BITS(16,17) /*!< the divider factor from PLL2R clock */
|
|
#define RCU_CFG1_USART1SEL BITS(18,19) /*!< USART1 clock source selection */
|
|
#define RCU_CFG1_USART2SEL BITS(20,21) /*!< USART2 clock source selection */
|
|
#define RCU_CFG1_USART5SEL BITS(22,23) /*!< USART5 clock source selection */
|
|
#define RCU_CFG1_TIMERSEL BIT(24) /*!< TIMER clock selection */
|
|
#define RCU_CFG1_HPDFSEL BIT(31) /*!< HPDF clock source selection */
|
|
|
|
/* RCU_CFG2 */
|
|
#define RCU_CFG2_CKOUT0DIV BITS(0,3) /*!< The CK_OUT0 divider which the CK_OUT0 frequency can be reduced */
|
|
#define RCU_CFG2_CKOUT0SEL BITS(4,6) /*!< CKOUT0 clock source selection */
|
|
#define RCU_CFG2_CKOUT1DIV BITS(8,11) /*!< The CK_OUT1 divider which the CK_OUT1 frequency can be reduced */
|
|
#define RCU_CFG2_CKOUT1SEL BITS(12,14) /*!< CKOUT1 clock source selection */
|
|
#define RCU_CFG2_HPDFASEL BITS(16,18) /*!< HPDF audio clock source selection */
|
|
|
|
/* RCU_CFG3 */
|
|
#define RCU_CFG3_I2C1SEL BITS(0,1) /*!< I2C1 clock source selection */
|
|
#define RCU_CFG3_I2C2SEL BITS(2,3) /*!< I2C2 clock source selection */
|
|
#define RCU_CFG3_I2C3SEL BITS(4,5) /*!< I2C3 clock source selection */
|
|
#define RCU_CFG3_DSPWUSSEL BIT(24) /*!< deep-sleep wakeup system clock source selection */
|
|
#define RCU_CFG3_ADC01SEL BITS(26,27) /*!< ADC0 and ADC1 clock source selection */
|
|
#define RCU_CFG3_ADC2SEL BITS(28,29) /*!< ADC2 clock source selection */
|
|
|
|
/* RCU_PLLALL */
|
|
#define RCU_PLLALL_PLL0RNG BITS(0,1) /*!< PLL0 input clock range */
|
|
#define RCU_PLLALL_PLL0VCOSEL BIT(2) /*!< PLL0 VCO selection */
|
|
#define RCU_PLLALL_PLL1RNG BITS(4,5) /*!< PLL1 input clock range */
|
|
#define RCU_PLLALL_PLL1VCOSEL BIT(6) /*!< PLL1 VCO selection */
|
|
#define RCU_PLLALL_PLL2RNG BITS(8,9) /*!< PLL2 input clock range */
|
|
#define RCU_PLLALL_PLL2VCOSEL BIT(10) /*!< PLL2 VCO selection */
|
|
#define RCU_PLLALL_PLLSEL BITS(16,17) /*!< PLLs clock source selection */
|
|
|
|
/* RCU_PLL0FRA */
|
|
#define RCU_PLL0FRA_PLL0FRAN BITS(0,12) /*!< fractional part of the multiplication factor for PLL0 VCO */
|
|
#define RCU_PLL0FRA_PLL0FRAEN BIT(15) /*!< PLL0 fractional latch enable */
|
|
|
|
/* RCU_PLL1FRA */
|
|
#define RCU_PLL1FRA_PLL1FRAN BITS(0,12) /*!< fractional part of the multiplication factor for PLL1 VCO */
|
|
#define RCU_PLL1FRA_PLL1FRAEN BIT(15) /*!< PLL1 fractional latch enable */
|
|
|
|
/* RCU_PLL2FRA */
|
|
#define RCU_PLL2FRA_PLL2FRAN BITS(0,12) /*!< fractional part of the multiplication factor for PLL2 VCO */
|
|
#define RCU_PLL2FRA_PLL2FRAEN BIT(15) /*!< PLL2 fractional latch enable */
|
|
|
|
/* RCU_ADDCTL0 */
|
|
#define RCU_ADDCTL0_CK48MSEL BIT(0) /*!< 48MHz clock selection */
|
|
#define RCU_ADDCTL0_PLL48MSEL BIT(1) /*!< PLL48M clock selection */
|
|
#define RCU_ADDCTL0_IRC48MEN BIT(16) /*!< internal 48MHz RC oscillator enable */
|
|
#define RCU_ADDCTL0_IRC48MSTB BIT(17) /*!< internal 48MHz RC oscillator clock stabilization flag */
|
|
#define RCU_ADDCTL0_IRC48MCALB BITS(24,31) /*!< internal 48MHz RC oscillator calibration value register */
|
|
|
|
/* RCU_ADDCTL1 */
|
|
#define RCU_ADDCTL1_LPIRC4MEN BIT(0) /*!< LPIRC4M clock enable */
|
|
#define RCU_ADDCTL1_LPIRC4MSTB BIT(1) /*!< LPIRC4M clock stabilization flag */
|
|
#define RCU_ADDCTL1_LPIRC4MTRIM BITS(2,7) /*!< LPIRC4M clock trim adjust value */
|
|
#define RCU_ADDCTL1_LPIRC4MCAL BITS(8,15) /*!< LPIRC4M clock calibration value */
|
|
#define RCU_ADDCTL1_IRC64MDIV BITS(16,17) /*!< IRC64M clock divider */
|
|
#define RCU_ADDCTL1_LPIRC4MDSPEN BIT(20) /*!< LPIRC4M clock enable in deepsleep mode */
|
|
#define RCU_ADDCTL1_PLLUSBHS0EN BIT(28) /*!< PLLUSBHS0 clock enable */
|
|
#define RCU_ADDCTL1_PLLUSBHS0STB BIT(29) /*!< PLLUSBHS0 clock stabilization flag */
|
|
#define RCU_ADDCTL1_PLLUSBHS1EN BIT(30) /*!< PLLUSBHS1 clock enable */
|
|
#define RCU_ADDCTL1_PLLUSBHS1STB BIT(31) /*!< PLLUSBHS1 clock stabilization flag */
|
|
|
|
/* RCU_ADDINT */
|
|
#define RCU_ADDINT_PLLUSBHS0STBIF BIT(4) /*!< Internal PLL of USBHS0 stabilization interrupt flag */
|
|
#define RCU_ADDINT_PLLUSBHS1STBIF BIT(5) /*!< Internal PLL of USBHS1 stabilization interrupt flag */
|
|
#define RCU_ADDINT_IRC48MSTBIF BIT(6) /*!< IRC48M stabilization interrupt flag */
|
|
#define RCU_ADDINT_PLLUSBHS0STBIE BIT(12) /*!< Internal PLL of USBHS0 stabilization interrupt enable */
|
|
#define RCU_ADDINT_PLLUSBHS1STBIE BIT(13) /*!< Internal PLL of USBHS1 stabilization interrupt enable */
|
|
#define RCU_ADDINT_IRC48MSTBIE BIT(14) /*!< Internal 48 MHz RC oscillator stabilization interrupt enable */
|
|
#define RCU_ADDINT_PLLUSBHS0STBIC BIT(20) /*!< Internal PLL of USBHS0 stabilization interrupt clear */
|
|
#define RCU_ADDINT_PLLUSBHS1STBIC BIT(21) /*!< Internal PLL of USBHS1 stabilization interrupt clear */
|
|
#define RCU_ADDINT_IRC48MSTBIC BIT(22) /*!< Internal 48 MHz RC oscillator stabilization interrupt clear */
|
|
|
|
/* RCU_CFG4 */
|
|
#define RCU_CFG4_EXMCSEL BITS(8,9) /*!< EXMC clock surce selection */
|
|
|
|
/* RCU_USBCLKCTL*/
|
|
#define RCU_USBCLKCTL_USBHS0SEL BIT(1) /*!< USBHS0 clock selection */
|
|
#define RCU_USBCLKCTL_PLLUSBHS0PRESEL BIT(3) /*!< PLLUSBHS0 clock source selection */
|
|
#define RCU_USBCLKCTL_USBHS0SWEN BIT(4) /*!< USBHS0 clock source selection enable */
|
|
#define RCU_USBCLKCTL_USBHS048MSEL BITS(5,6) /*!< USBHS0 48M clock source selection */
|
|
#define RCU_USBCLKCTL_USBHS1SEL BIT(9) /*!< USBHS1 clock selection */
|
|
#define RCU_USBCLKCTL_PLLUSBHS1PRESEL BIT(11) /*!< PLLUSBHS1 clock source selection */
|
|
#define RCU_USBCLKCTL_USBHS1SWEN BIT(12) /*!< USBHS1 clock source selection enable */
|
|
#define RCU_USBCLKCTL_USBHS148MSEL BITS(13,14) /*!< USBHS1 48M clock source selection */
|
|
#define RCU_USBCLKCTL_USBHS0PSC BITS(16,18) /*!< USBHS0 clock prescaler selection */
|
|
#define RCU_USBCLKCTL_USBHS1PSC BITS(19,21) /*!< USBHS1 clock prescaler selection */
|
|
|
|
/* RCU_PLLUSBCFG*/
|
|
#define RCU_PLLUSBCFG_PLLUSBHS0PREDV BITS(0,3) /*!< the PLLUSBHS0PREDV clock prescaler */
|
|
#define RCU_PLLUSBCFG_USBHS0DV BITS(4,6) /*!< USBHS0 clock divider */
|
|
#define RCU_PLLUSBCFG_PLLUSBHS0MF BITS(8,14) /*!< the PLLUSBHS0 clock multiplication factor */
|
|
#define RCU_PLLUSBCFG_PLLUSBHS1PREDV BITS(16,19) /*!< the PLLUSBHS1PREDV clock prescaler */
|
|
#define RCU_PLLUSBCFG_USBHS1DV BITS(20,22) /*!< USBHS1 clock divider */
|
|
#define RCU_PLLUSBCFG_PLLUSBHS1MF BITS(24,30) /*!< the PLLUSBHS1 clock multiplication factor */
|
|
|
|
/* RCU_ADDAPB2RST */
|
|
#define RCU_ADDAPB2RST_CAN0RST BIT(0) /*!< CAN0 reset */
|
|
#define RCU_ADDAPB2RST_CAN1RST BIT(1) /*!< CAN1 reset */
|
|
#define RCU_ADDAPB2RST_CAN2RST BIT(2) /*!< CAN2 reset */
|
|
|
|
/* RCU_ADDAPB2EN */
|
|
#define RCU_ADDAPB2EN_CAN0EN BIT(0) /*!< CAN0 clock enable */
|
|
#define RCU_ADDAPB2EN_CAN1EN BIT(1) /*!< CAN1 clock enable */
|
|
#define RCU_ADDAPB2EN_CAN2EN BIT(2) /*!< CAN2 clock enable */
|
|
|
|
/* RCU_ADDAPB2SPEN */
|
|
#define RCU_ADDAPB2SPEN_CAN0SPEN BIT(0) /*!< CAN0 clock enable when sleep mode*/
|
|
#define RCU_ADDAPB2SPEN_CAN1SPEN BIT(1) /*!< CAN1 clock enable when sleep mode*/
|
|
#define RCU_ADDAPB2SPEN_CAN2SPEN BIT(2) /*!< CAN2 clock enable when sleep mode*/
|
|
|
|
/* RCU_CFG5 */
|
|
#define RCU_CFG5_SPI0SEL BITS(0,2) /*!< SPI0 and I2S0 clock source selection */
|
|
#define RCU_CFG5_SPI1SEL BITS(4,6) /*!< SPI1 and I2S1 clock source selection */
|
|
#define RCU_CFG5_SPI2SEL BITS(8,10) /*!< SPI2 and I2S2 clock source selection */
|
|
#define RCU_CFG5_SPI3SEL BITS(12,14) /*!< SPI3 clock source selection */
|
|
#define RCU_CFG5_SPI4SEL BITS(16,18) /*!< SPI4 clock source selection */
|
|
#define RCU_CFG5_SPI5SEL BITS(20,22) /*!< SPI5 and I2S5 clock source selection */
|
|
|
|
/* constants definitions */
|
|
/* define the peripheral clock enable bit position and its register index offset */
|
|
#define RCU_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))
|
|
#define RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))
|
|
#define RCU_BIT_POS(val) ((uint32_t)(val) & 0x0000001FU)
|
|
|
|
/* register offset */
|
|
/* peripherals enable */
|
|
#define AHB1EN_REG_OFFSET ((uint32_t)0x00000030U) /*!< AHB1 enable register offset */
|
|
#define AHB2EN_REG_OFFSET ((uint32_t)0x00000034U) /*!< AHB2 enable register offset */
|
|
#define AHB3EN_REG_OFFSET ((uint32_t)0x00000038U) /*!< AHB3 enable register offset */
|
|
#define AHB4EN_REG_OFFSET ((uint32_t)0x0000003CU) /*!< AHB4 enable register offset */
|
|
#define APB1EN_REG_OFFSET ((uint32_t)0x00000040U) /*!< APB1 enable register offset */
|
|
#define APB2EN_REG_OFFSET ((uint32_t)0x00000044U) /*!< APB2 enable register offset */
|
|
#define APB3EN_REG_OFFSET ((uint32_t)0x00000048U) /*!< APB3 enable register offset */
|
|
#define APB4EN_REG_OFFSET ((uint32_t)0x0000004CU) /*!< APB4 enable register offset */
|
|
#define AHB1SPEN_REG_OFFSET ((uint32_t)0x00000050U) /*!< AHB1 sleep mode enable register offset */
|
|
#define AHB2SPEN_REG_OFFSET ((uint32_t)0x00000054U) /*!< AHB2 sleep mode enable register offset */
|
|
#define AHB3SPEN_REG_OFFSET ((uint32_t)0x00000058U) /*!< AHB3 sleep mode enable register offset */
|
|
#define AHB4SPEN_REG_OFFSET ((uint32_t)0x0000005CU) /*!< AHB4 sleep mode enable register offset */
|
|
#define APB1SPEN_REG_OFFSET ((uint32_t)0x00000060U) /*!< APB1 sleep mode enable register offset */
|
|
#define APB2SPEN_REG_OFFSET ((uint32_t)0x00000064U) /*!< APB2 sleep mode enable register offset */
|
|
#define APB3SPEN_REG_OFFSET ((uint32_t)0x00000068U) /*!< APB3 sleep mode enable register offset */
|
|
#define APB4SPEN_REG_OFFSET ((uint32_t)0x0000006CU) /*!< APB4 sleep mode enable register offset */
|
|
#define ADD_APB2EN_REG_OFFSET ((uint32_t)0x000000E4U) /*!< APB2 additional enable register offset */
|
|
#define ADD_APB2SPEN_REG_OFFSET ((uint32_t)0x000000E8U) /*!< APB2 additional sleep mode enable register offset */
|
|
|
|
/* peripherals reset */
|
|
#define AHB1RST_REG_OFFSET ((uint32_t)0x00000010U) /*!< AHB1 reset register offset */
|
|
#define AHB2RST_REG_OFFSET ((uint32_t)0x00000014U) /*!< AHB2 reset register offset */
|
|
#define AHB3RST_REG_OFFSET ((uint32_t)0x00000018U) /*!< AHB3 reset register offset */
|
|
#define AHB4RST_REG_OFFSET ((uint32_t)0x0000001CU) /*!< AHB4 reset register offset */
|
|
#define APB1RST_REG_OFFSET ((uint32_t)0x00000020U) /*!< APB1 reset register offset */
|
|
#define APB2RST_REG_OFFSET ((uint32_t)0x00000024U) /*!< APB2 reset register offset */
|
|
#define APB3RST_REG_OFFSET ((uint32_t)0x00000028U) /*!< APB3 reset register offset */
|
|
#define APB4RST_REG_OFFSET ((uint32_t)0x0000002CU) /*!< APB4 reset register offset */
|
|
#define ADD_APB2RST_REG_OFFSET ((uint32_t)0x000000E0U) /*!< APB2 additional reset register offset */
|
|
#define RSTSCK_REG_OFFSET ((uint32_t)0x00000074U) /*!< reset source/clock register offset */
|
|
|
|
/* clock control */
|
|
#define CTL_REG_OFFSET ((uint32_t)0x00000000U) /*!< control register offset */
|
|
#define BDCTL_REG_OFFSET ((uint32_t)0x00000070U) /*!< backup domain control register offset */
|
|
#define ADDCTL0_REG_OFFSET ((uint32_t)0x000000C0U) /*!< additional clock control register 0 offset */
|
|
#define ADDCTL1_REG_OFFSET ((uint32_t)0x000000C4U) /*!< additional clock control register 1 offset */
|
|
|
|
/* clock stabilization and stuck interrupt */
|
|
#define INT_REG_OFFSET ((uint32_t)0x0000000CU) /*!< clock interrupt register offset */
|
|
#define ADDINT_REG_OFFSET ((uint32_t)0x000000CCU) /*!< additional clock interrupt register offset */
|
|
|
|
/* configuration register */
|
|
#define PLL0_REG_OFFSET ((uint32_t)0x00000004U) /*!< PLL0 register offset */
|
|
#define CFG0_REG_OFFSET ((uint32_t)0x00000008U) /*!< clock configuration register 0 offset */
|
|
#define PLL1_REG_OFFSET ((uint32_t)0x00000084U) /*!< PLL1 register offset */
|
|
#define PLL2_REG_OFFSET ((uint32_t)0x00000088U) /*!< PLL2 register offset */
|
|
#define CFG1_REG_OFFSET ((uint32_t)0x0000008CU) /*!< clock configuration register 1 offset */
|
|
#define CFG2_REG_OFFSET ((uint32_t)0x00000090U) /*!< clock configuration register 2 offset */
|
|
#define CFG3_REG_OFFSET ((uint32_t)0x00000094U) /*!< clock configuration register 3 offset */
|
|
#define PLLALL_REG_OFFSET ((uint32_t)0x00000098U) /*!< PLL configuration register */
|
|
#define PLL0FRA_REG_OFFSET ((uint32_t)0x0000009CU) /*!< PLL0 fraction configuration register */
|
|
#define PLL1FRA_REG_OFFSET ((uint32_t)0x000000A0U) /*!< PLL1 fraction configuration register */
|
|
#define PLL2FRA_REG_OFFSET ((uint32_t)0x000000A4U) /*!< PLL2 fraction configuration register */
|
|
|
|
/* peripheral clock enable */
|
|
typedef enum {
|
|
/* AHB1 peripherals */
|
|
RCU_USBHS0 = RCU_REGIDX_BIT(AHB1EN_REG_OFFSET, 14U), /*!< USBHS0 clock */
|
|
RCU_USBHS0ULPI = RCU_REGIDX_BIT(AHB1EN_REG_OFFSET, 15U), /*!< USBHS0 ULPI clock */
|
|
RCU_DMA0 = RCU_REGIDX_BIT(AHB1EN_REG_OFFSET, 21U), /*!< DMA0 clock */
|
|
RCU_DMA1 = RCU_REGIDX_BIT(AHB1EN_REG_OFFSET, 22U), /*!< DMA1 clock */
|
|
RCU_DMAMUX = RCU_REGIDX_BIT(AHB1EN_REG_OFFSET, 23U), /*!< DMAMUX clock */
|
|
RCU_USBHS1 = RCU_REGIDX_BIT(AHB1EN_REG_OFFSET, 29U), /*!< USBHS1 clock */
|
|
RCU_USBHS1ULPI = RCU_REGIDX_BIT(AHB1EN_REG_OFFSET, 30U), /*!< USBHS1 ULPI clock */
|
|
/* AHB2 peripherals */
|
|
RCU_FAC = RCU_REGIDX_BIT(AHB2EN_REG_OFFSET, 1U), /*!< FAC clock */
|
|
RCU_CAU = RCU_REGIDX_BIT(AHB2EN_REG_OFFSET, 3U), /*!< CAU clock */
|
|
RCU_HAU = RCU_REGIDX_BIT(AHB2EN_REG_OFFSET, 4U), /*!< HAU clock */
|
|
RCU_TRNG = RCU_REGIDX_BIT(AHB2EN_REG_OFFSET, 6U), /*!< TRNG clock */
|
|
RCU_TMU = RCU_REGIDX_BIT(AHB2EN_REG_OFFSET, 7U), /*!< TMU clock */
|
|
RCU_RAMECCMU1 = RCU_REGIDX_BIT(AHB2EN_REG_OFFSET, 8U), /*!< RAMECCMU1 clock */
|
|
/* AHB3 peripherals */
|
|
RCU_EXMC = RCU_REGIDX_BIT(AHB3EN_REG_OFFSET, 0U), /*!< EXMC clock */
|
|
RCU_MDMA = RCU_REGIDX_BIT(AHB3EN_REG_OFFSET, 3U), /*!< MDMMA clock */
|
|
RCU_OSPIM = RCU_REGIDX_BIT(AHB3EN_REG_OFFSET, 4U), /*!< OSPIM clock */
|
|
RCU_OSPI0 = RCU_REGIDX_BIT(AHB3EN_REG_OFFSET, 5U), /*!< OSPI0 clock */
|
|
RCU_OSPI1 = RCU_REGIDX_BIT(AHB3EN_REG_OFFSET, 6U), /*!< OSPI1 clock */
|
|
RCU_RAMECCMU0 = RCU_REGIDX_BIT(AHB3EN_REG_OFFSET, 10U), /*!< RAMECCMU0 clock */
|
|
RCU_CPU = RCU_REGIDX_BIT(AHB3EN_REG_OFFSET, 15U), /*!< CPU clock */
|
|
/* AHB4 peripherals */
|
|
RCU_GPIOA = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 0U), /*!< GPIOA clock */
|
|
RCU_GPIOB = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 1U), /*!< GPIOB clock */
|
|
RCU_GPIOC = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 2U), /*!< GPIOC clock */
|
|
RCU_GPIOD = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 3U), /*!< GPIOD clock */
|
|
RCU_GPIOE = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 4U), /*!< GPIOE clock */
|
|
RCU_GPIOF = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 5U), /*!< GPIOF clock */
|
|
RCU_GPIOG = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 6U), /*!< GPIOG clock */
|
|
RCU_GPIOH = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 7U), /*!< GPIOH clock */
|
|
RCU_GPIOJ = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 8U), /*!< GPIOJ clock */
|
|
RCU_GPIOK = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 9U), /*!< GPIOK clock */
|
|
RCU_BKPSRAM = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 13U), /*!< BKPSRAM clock */
|
|
RCU_CRC = RCU_REGIDX_BIT(AHB4EN_REG_OFFSET, 14U), /*!< CRC clock */
|
|
/* APB1 peripherals */
|
|
RCU_TIMER1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 0U), /*!< TIMER1 clock */
|
|
RCU_TIMER2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 1U), /*!< TIMER2 clock */
|
|
RCU_TIMER3 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 2U), /*!< TIMER3 clock */
|
|
RCU_TIMER4 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 3U), /*!< TIMER4 clock */
|
|
RCU_TIMER5 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 4U), /*!< TIMER5 clock */
|
|
RCU_TIMER6 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 5U), /*!< TIMER6 clock */
|
|
RCU_TIMER22 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 6U), /*!< TIMER22 clock */
|
|
RCU_TIMER23 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 7U), /*!< TIMER23 clock */
|
|
RCU_TIMER50 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 10U), /*!< TIMER50 clock */
|
|
RCU_TIMER51 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 11U), /*!< TIMER51 clock */
|
|
RCU_SPI1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 14U), /*!< SPI1 clock */
|
|
RCU_SPI2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 15U), /*!< SPI2 clock */
|
|
RCU_USART1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 17U), /*!< USART1 clock */
|
|
RCU_USART2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 18U), /*!< USART2 clock */
|
|
RCU_UART3 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 19U), /*!< UART3 clock */
|
|
RCU_UART4 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 20U), /*!< UART4 clock */
|
|
RCU_I2C0 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 21U), /*!< I2C0 clock */
|
|
RCU_I2C1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 22U), /*!< I2C1 clock */
|
|
RCU_I2C2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 23U), /*!< I2C2 clock */
|
|
RCU_I2C3 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 24U), /*!< I2C3 clock */
|
|
RCU_CTC = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 27U), /*!< CTC clock */
|
|
RCU_DACHOLD = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 28U), /*!< DACHOLD clock */
|
|
RCU_DAC = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 29U), /*!< DAC clock */
|
|
RCU_UART6 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 30U), /*!< UART6 clock */
|
|
RCU_UART7 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 31U), /*!< UART7 clock */
|
|
/* APB2 peripherals */
|
|
RCU_TIMER0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 0U), /*!< TIMER0 clock */
|
|
RCU_TIMER7 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 1U), /*!< TIMER7 clock */
|
|
RCU_USART0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 4U), /*!< USART0 clock */
|
|
RCU_USART5 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 5U), /*!< USART5 clock */
|
|
RCU_ADC0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 8U), /*!< ADC0 clock */
|
|
RCU_ADC1 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 9U), /*!< ADC1 clock */
|
|
RCU_ADC2 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 10U), /*!< ADC2 clock */
|
|
RCU_SPI0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 12U), /*!< SPI0 clock */
|
|
RCU_SPI3 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 13U), /*!< SPI3 clock */
|
|
RCU_TIMER14 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 16U), /*!< TIMER14 clock */
|
|
RCU_TIMER15 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 17U), /*!< TIMER15 clock */
|
|
RCU_TIMER16 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 18U), /*!< TIMER16 clock */
|
|
RCU_HPDF = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 19U), /*!< HPDF clock */
|
|
RCU_SPI4 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 20U), /*!< SPI4 clock */
|
|
RCU_SPI5 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 21U), /*!< SPI5 clock */
|
|
RCU_TIMER40 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 25U), /*!< TIMER40 clock */
|
|
RCU_TIMER41 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 26U), /*!< TIMER41 clock */
|
|
RCU_TIMER42 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 27U), /*!< TIMER42 clock */
|
|
RCU_TIMER43 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 28U), /*!< TIMER43 clock */
|
|
RCU_TIMER44 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 29U), /*!< TIMER44 clock */
|
|
RCU_EDOUT = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 30U), /*!< EDOUT clock */
|
|
RCU_TRIGSEL = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 31U), /*!< TRIGSEL clock */
|
|
/* APB3 peripherals */
|
|
RCU_WWDGT = RCU_REGIDX_BIT(APB3EN_REG_OFFSET, 1U), /*!< WWDGT clock */
|
|
/* APB4 peripherals */
|
|
RCU_SYSCFG = RCU_REGIDX_BIT(APB4EN_REG_OFFSET, 0U), /*!< SYSCFG clock */
|
|
RCU_CMP = RCU_REGIDX_BIT(APB4EN_REG_OFFSET, 1U), /*!< CMP clock */
|
|
RCU_VREF = RCU_REGIDX_BIT(APB4EN_REG_OFFSET, 2U), /*!< VREF clock */
|
|
RCU_LPDTS = RCU_REGIDX_BIT(APB4EN_REG_OFFSET, 3U), /*!< LPDTS clock */
|
|
RCU_PMU = RCU_REGIDX_BIT(APB4EN_REG_OFFSET, 4U), /*!< PMU clock */
|
|
RCU_RTC = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 15U), /*!< RTC clock */
|
|
/* APB2 additional peripherals */
|
|
RCU_CAN0 = RCU_REGIDX_BIT(ADD_APB2EN_REG_OFFSET, 0U), /*!< CAN0 clock */
|
|
RCU_CAN1 = RCU_REGIDX_BIT(ADD_APB2EN_REG_OFFSET, 1U), /*!< CAN1 clock */
|
|
RCU_CAN2 = RCU_REGIDX_BIT(ADD_APB2EN_REG_OFFSET, 2U) /*!< CAN2 clock */
|
|
} rcu_periph_enum;
|
|
|
|
/* peripheral clock enable when sleep mode*/
|
|
typedef enum {
|
|
/* AHB1 peripherals */
|
|
RCU_USBHS0_SLP = RCU_REGIDX_BIT(AHB1SPEN_REG_OFFSET, 14U), /*!< USBHS0 clock when sleep mode */
|
|
RCU_USBHS0ULPI_SLP = RCU_REGIDX_BIT(AHB1SPEN_REG_OFFSET, 15U), /*!< USBHS0ULPI clock when sleep mode */
|
|
RCU_SRAM0_SLP = RCU_REGIDX_BIT(AHB1SPEN_REG_OFFSET, 16U), /*!< SRAM0 clock when sleep mode */
|
|
RCU_SRAM1_SLP = RCU_REGIDX_BIT(AHB1SPEN_REG_OFFSET, 17U), /*!< SRAM1 clock when sleep mode */
|
|
RCU_DMA0_SLP = RCU_REGIDX_BIT(AHB1SPEN_REG_OFFSET, 21U), /*!< DMA0 clock when sleep mode */
|
|
RCU_DMA1_SLP = RCU_REGIDX_BIT(AHB1SPEN_REG_OFFSET, 22U), /*!< DMA1 clock when sleep mode */
|
|
RCU_DMAMUX_SLP = RCU_REGIDX_BIT(AHB1SPEN_REG_OFFSET, 23U), /*!< DMAMUX clock when sleep mode */
|
|
RCU_USBHS1_SLP = RCU_REGIDX_BIT(AHB1SPEN_REG_OFFSET, 29U), /*!< USBHS1 clock when sleep mode */
|
|
RCU_USBHS1ULPI_SLP = RCU_REGIDX_BIT(AHB1SPEN_REG_OFFSET, 30U), /*!< USBHS1ULPI clock when sleep mode */
|
|
/* AHB2 peripherals */
|
|
RCU_FAC_SLP = RCU_REGIDX_BIT(AHB2SPEN_REG_OFFSET, 1U), /*!< FAC clock when sleep mode */
|
|
RCU_CAU_SLP = RCU_REGIDX_BIT(AHB2SPEN_REG_OFFSET, 3U), /*!< CAU clock when sleep mode */
|
|
RCU_HAU_SLP = RCU_REGIDX_BIT(AHB2SPEN_REG_OFFSET, 4U), /*!< HAU clock when sleep mode */
|
|
RCU_TRNG_SLP = RCU_REGIDX_BIT(AHB2SPEN_REG_OFFSET, 6U), /*!< TRNG clock when sleep mode */
|
|
RCU_TMU_SLP = RCU_REGIDX_BIT(AHB2SPEN_REG_OFFSET, 7U), /*!< TMU clock when sleep mode */
|
|
RCU_RAMECCMU1_SLP = RCU_REGIDX_BIT(AHB2SPEN_REG_OFFSET, 8U), /*!< RAMECCMU1 clock when sleep mode */
|
|
/* AHB3 peripherals */
|
|
RCU_EXMC_SLP = RCU_REGIDX_BIT(AHB3SPEN_REG_OFFSET, 0U), /*!< EXMC clock when sleep mode */
|
|
RCU_MDMA_SLP = RCU_REGIDX_BIT(AHB3SPEN_REG_OFFSET, 3U), /*!< MDMMA clock when sleep mode */
|
|
RCU_OSPIM_SLP = RCU_REGIDX_BIT(AHB3SPEN_REG_OFFSET, 4U), /*!< OSPIM clock when sleep mode */
|
|
RCU_OSPI0_SLP = RCU_REGIDX_BIT(AHB3SPEN_REG_OFFSET, 5U), /*!< OSPI0 clock when sleep mode */
|
|
RCU_OSPI1_SLP = RCU_REGIDX_BIT(AHB3SPEN_REG_OFFSET, 6U), /*!< OSPI1 clock when sleep mode */
|
|
RCU_RAMECCMU0_SLP = RCU_REGIDX_BIT(AHB3SPEN_REG_OFFSET, 10U), /*!< RAMECCMU0 clock when sleep mode */
|
|
RCU_AXISRAM_SLP = RCU_REGIDX_BIT(AHB3SPEN_REG_OFFSET, 14U), /*!< AXISRAM clock when sleep mode */
|
|
RCU_FMC_SLP = RCU_REGIDX_BIT(AHB3SPEN_REG_OFFSET, 15U), /*!< FMC clock when sleep mode */
|
|
/* AHB4 peripherals */
|
|
RCU_GPIOA_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 0U), /*!< GPIOA clock when sleep mode */
|
|
RCU_GPIOB_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 1U), /*!< GPIOB clock when sleep mode */
|
|
RCU_GPIOC_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 2U), /*!< GPIOC clock when sleep mode */
|
|
RCU_GPIOD_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 3U), /*!< GPIOD clock when sleep mode */
|
|
RCU_GPIOE_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 4U), /*!< GPIOE clock when sleep mode */
|
|
RCU_GPIOF_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 5U), /*!< GPIOF clock when sleep mode */
|
|
RCU_GPIOG_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 6U), /*!< GPIOG clock when sleep mode */
|
|
RCU_GPIOH_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 7U), /*!< GPIOH clock when sleep mode */
|
|
RCU_GPIOJ_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 8U), /*!< GPIOJ clock when sleep mode */
|
|
RCU_GPIOK_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 9U), /*!< GPIOK clock when sleep mode */
|
|
RCU_BKPSRAM_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 13U), /*!< BKPSRAM clock when sleep mode */
|
|
RCU_CRC_SLP = RCU_REGIDX_BIT(AHB4SPEN_REG_OFFSET, 14U), /*!< CRC clock when sleep mode */
|
|
/* APB1 peripherals */
|
|
RCU_TIMER1_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 0U), /*!< TIMER1 clock when sleep mode */
|
|
RCU_TIMER2_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 1U), /*!< TIMER2 clock when sleep mode */
|
|
RCU_TIMER3_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 2U), /*!< TIMER3 clock when sleep mode */
|
|
RCU_TIMER4_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 3U), /*!< TIMER4 clock when sleep mode */
|
|
RCU_TIMER5_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 4U), /*!< TIMER5 clock when sleep mode */
|
|
RCU_TIMER6_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 5U), /*!< TIMER6 clock when sleep mode */
|
|
RCU_TIMER22_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 6U), /*!< TIMER22 clock when sleep mode */
|
|
RCU_TIMER23_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 7U), /*!< TIMER23 clock when sleep mode */
|
|
RCU_TIMER50_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 10U), /*!< TIMER50 clock when sleep mode */
|
|
RCU_TIMER51_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 11U), /*!< TIMER51 clock when sleep mode */
|
|
RCU_SPI1_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 14U), /*!< SPI1 clock when sleep mode */
|
|
RCU_SPI2_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 15U), /*!< SPI2 clock when sleep mode */
|
|
RCU_USART1_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 17U), /*!< USART1 clock when sleep mode */
|
|
RCU_USART2_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 18U), /*!< USART2 clock when sleep mode */
|
|
RCU_UART3_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 19U), /*!< UART3 clock when sleep mode */
|
|
RCU_UART4_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 20U), /*!< UART4 clock when sleep mode */
|
|
RCU_I2C0_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 21U), /*!< I2C0 clock when sleep mode */
|
|
RCU_I2C1_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 22U), /*!< I2C1 clock when sleep mode */
|
|
RCU_I2C2_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 23U), /*!< I2C2 clock when sleep mode */
|
|
RCU_I2C3_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 24U), /*!< I2C3 clock when sleep mode */
|
|
RCU_CTC_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 27U), /*!< CTC clock when sleep mode */
|
|
RCU_DACHOLD_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 28U), /*!< DACHOLD clock when sleep mode */
|
|
RCU_DAC_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 29U), /*!< DAC clock when sleep mode */
|
|
RCU_UART6_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 30U), /*!< UART6 clock when sleep mode */
|
|
RCU_UART7_SLP = RCU_REGIDX_BIT(APB1SPEN_REG_OFFSET, 31U), /*!< UART7 clock when sleep mode */
|
|
/* APB2 peripherals */
|
|
RCU_TIMER0_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 0U), /*!< TIMER0 clock when sleep mode */
|
|
RCU_TIMER7_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 1U), /*!< TIMER7 clock when sleep mode */
|
|
RCU_USART0_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 4U), /*!< USART0 clock when sleep mode */
|
|
RCU_USART5_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 5U), /*!< USART5 clock when sleep mode */
|
|
RCU_ADC0_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 8U), /*!< ADC0 clock when sleep mode */
|
|
RCU_ADC1_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 9U), /*!< ADC1 clock when sleep mode */
|
|
RCU_ADC2_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 10U), /*!< ADC2 clock when sleep mode */
|
|
RCU_SPI0_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 12U), /*!< SPI0 clock when sleep mode */
|
|
RCU_SPI3_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 13U), /*!< SPI3 clock when sleep mode */
|
|
RCU_TIMER14_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 16U), /*!< TIMER14 clock when sleep mode */
|
|
RCU_TIMER15_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 17U), /*!< TIMER15 clock when sleep mode */
|
|
RCU_TIMER16_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 18U), /*!< TIMER16 clock when sleep mode */
|
|
RCU_HPDF_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 19U), /*!< HPDF clock when sleep mode */
|
|
RCU_SPI4_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 20U), /*!< SPI4 clock when sleep mode */
|
|
RCU_SPI5_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 21U), /*!< SPI5 clock when sleep mode */
|
|
RCU_TIMER40_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 25U), /*!< TIMER40 clock when sleep mode */
|
|
RCU_TIMER41_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 26U), /*!< TIMER41 clock when sleep mode */
|
|
RCU_TIMER42_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 27U), /*!< TIMER42 clock when sleep mode */
|
|
RCU_TIMER43_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 28U), /*!< TIMER43 clock when sleep mode */
|
|
RCU_TIMER44_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 29U), /*!< TIMER44 clock when sleep mode */
|
|
RCU_EDOUT_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 30U), /*!< EDOUT clock when sleep mode */
|
|
RCU_TRIGSEL_SLP = RCU_REGIDX_BIT(APB2SPEN_REG_OFFSET, 31U), /*!< TRIGSEL clock when sleep mode */
|
|
/* APB3 peripherals */
|
|
RCU_WWDGT_SLP = RCU_REGIDX_BIT(APB3SPEN_REG_OFFSET, 1U), /*!< WWDGT clock when sleep mode */
|
|
/* APB4 peripherals */
|
|
RCU_SYSCFG_SLP = RCU_REGIDX_BIT(APB4SPEN_REG_OFFSET, 0U), /*!< SYSCFG clock when sleep mode */
|
|
RCU_CMP_SLP = RCU_REGIDX_BIT(APB4SPEN_REG_OFFSET, 1U), /*!< CMP clock when sleep mode */
|
|
RCU_VREF_SLP = RCU_REGIDX_BIT(APB4SPEN_REG_OFFSET, 2U), /*!< VREF clock when sleep mode */
|
|
RCU_LPDTS_SLP = RCU_REGIDX_BIT(APB4SPEN_REG_OFFSET, 3U), /*!< LPDTS clock when sleep mode */
|
|
RCU_PMU_SLP = RCU_REGIDX_BIT(APB4SPEN_REG_OFFSET, 4U), /*!< PMU clock when sleep mode */
|
|
/* APB2 additional peripherals */
|
|
RCU_CAN0_SLP = RCU_REGIDX_BIT(ADD_APB2SPEN_REG_OFFSET, 0U), /*!< CAN0 clock when sleep mode */
|
|
RCU_CAN1_SLP = RCU_REGIDX_BIT(ADD_APB2SPEN_REG_OFFSET, 1U), /*!< CAN1 clock when sleep mode */
|
|
RCU_CAN2_SLP = RCU_REGIDX_BIT(ADD_APB2SPEN_REG_OFFSET, 2U) /*!< CAN2 clock when sleep mode */
|
|
} rcu_periph_sleep_enum;
|
|
|
|
/* peripherals reset */
|
|
typedef enum {
|
|
/* AHB1 peripherals */
|
|
RCU_USBHS0RST = RCU_REGIDX_BIT(AHB1RST_REG_OFFSET, 14U), /*!< USBHS0 clock reset */
|
|
RCU_DMA0RST = RCU_REGIDX_BIT(AHB1RST_REG_OFFSET, 21U), /*!< DMA0 clock reset */
|
|
RCU_DMA1RST = RCU_REGIDX_BIT(AHB1RST_REG_OFFSET, 22U), /*!< DMA1 clock reset */
|
|
RCU_DMAMUXRST = RCU_REGIDX_BIT(AHB1RST_REG_OFFSET, 23U), /*!< DMAMUX clock reset */
|
|
RCU_USBHS1RST = RCU_REGIDX_BIT(AHB1RST_REG_OFFSET, 29U), /*!< USBHS1HS clock reset */
|
|
/* AHB2 peripherals */
|
|
RCU_FACRST = RCU_REGIDX_BIT(AHB2RST_REG_OFFSET, 1U), /*!< FAC clock reset */
|
|
RCU_CAURST = RCU_REGIDX_BIT(AHB2RST_REG_OFFSET, 3U), /*!< CAU clock reset */
|
|
RCU_HAURST = RCU_REGIDX_BIT(AHB2RST_REG_OFFSET, 4U), /*!< HAU clock reset */
|
|
RCU_TRNGRST = RCU_REGIDX_BIT(AHB2RST_REG_OFFSET, 6U), /*!< TRNG clock reset */
|
|
RCU_TMURST = RCU_REGIDX_BIT(AHB2RST_REG_OFFSET, 7U), /*!< TMU clock reset */
|
|
/* AHB3 peripherals */
|
|
RCU_EXMCRST = RCU_REGIDX_BIT(AHB3RST_REG_OFFSET, 0U), /*!< EXMC clock reset */
|
|
RCU_MDMARST = RCU_REGIDX_BIT(AHB3RST_REG_OFFSET, 3U), /*!< MDMMA clock reset */
|
|
RCU_OSPIMRST = RCU_REGIDX_BIT(AHB3RST_REG_OFFSET, 4U), /*!< OSPIM clock reset */
|
|
RCU_OSPI0RST = RCU_REGIDX_BIT(AHB3RST_REG_OFFSET, 5U), /*!< OSPI0 clock reset */
|
|
RCU_OSPI1RST = RCU_REGIDX_BIT(AHB3RST_REG_OFFSET, 6U), /*!< OSPI1 clock reset */
|
|
/* AHB4 peripherals */
|
|
RCU_GPIOARST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 0U), /*!< GPIOA clock reset */
|
|
RCU_GPIOBRST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 1U), /*!< GPIOB clock reset */
|
|
RCU_GPIOCRST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 2U), /*!< GPIOC clock reset */
|
|
RCU_GPIODRST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 3U), /*!< GPIOD clock reset */
|
|
RCU_GPIOERST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 4U), /*!< GPIOE clock reset */
|
|
RCU_GPIOFRST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 5U), /*!< GPIOF clock reset */
|
|
RCU_GPIOGRST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 6U), /*!< GPIOG clock reset */
|
|
RCU_GPIOHRST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 7U), /*!< GPIOH clock reset */
|
|
RCU_GPIOJRST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 8U), /*!< GPIOJ clock reset */
|
|
RCU_GPIOKRST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 9U), /*!< GPIOK clock reset */
|
|
RCU_CRCRST = RCU_REGIDX_BIT(AHB4RST_REG_OFFSET, 14U), /*!< CRC clock reset */
|
|
/* APB1 peripherals */
|
|
RCU_TIMER1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 0U), /*!< TIMER1 clock reset */
|
|
RCU_TIMER2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 1U), /*!< TIMER2 clock reset */
|
|
RCU_TIMER3RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 2U), /*!< TIMER3 clock reset */
|
|
RCU_TIMER4RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 3U), /*!< TIMER4 clock reset */
|
|
RCU_TIMER5RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 4U), /*!< TIMER5 clock reset */
|
|
RCU_TIMER6RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 5U), /*!< TIMER6 clock reset */
|
|
RCU_TIMER22RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 6U), /*!< TIMER22 clock reset */
|
|
RCU_TIMER23RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 7U), /*!< TIMER23 clock reset */
|
|
RCU_TIMER50RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 10U), /*!< TIMER50 clock reset */
|
|
RCU_TIMER51RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 11U), /*!< TIMER51 clock reset */
|
|
RCU_SPI1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 14U), /*!< SPI1 clock reset */
|
|
RCU_SPI2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 15U), /*!< SPI2 clock reset */
|
|
RCU_USART1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 17U), /*!< USART1 clock reset */
|
|
RCU_USART2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 18U), /*!< USART2 clock reset */
|
|
RCU_UART3RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 19U), /*!< UART3 clock reset */
|
|
RCU_UART4RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 20U), /*!< UART4 clock reset */
|
|
RCU_I2C0RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 21U), /*!< I2C0 clock reset */
|
|
RCU_I2C1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 22U), /*!< I2C1 clock reset */
|
|
RCU_I2C2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 23U), /*!< I2C2 clock reset */
|
|
RCU_I2C3RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 24U), /*!< I2C3 clock reset */
|
|
RCU_CTCRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 27U), /*!< CTC clock reset */
|
|
RCU_DACHOLDRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 28U), /*!< DACHOLD clock reset */
|
|
RCU_DACRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 29U), /*!< DAC clock reset */
|
|
RCU_UART6RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 30U), /*!< UART6 clock reset */
|
|
RCU_UART7RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 31U), /*!< UART7 clock reset */
|
|
/* APB2 peripherals */
|
|
RCU_TIMER0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 0U), /*!< TIMER0 clock reset */
|
|
RCU_TIMER7RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 1U), /*!< TIMER7 clock reset */
|
|
RCU_USART0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 4U), /*!< USART0 clock reset */
|
|
RCU_USART5RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 5U), /*!< USART5 clock reset */
|
|
RCU_ADC0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 8U), /*!< ADC0 clock reset */
|
|
RCU_ADC1RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 9U), /*!< ADC1 clock reset */
|
|
RCU_ADC2RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 10U), /*!< ADC2 clock reset */
|
|
RCU_SPI0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 12U), /*!< SPI0 clock reset */
|
|
RCU_SPI3RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 13U), /*!< SPI3 clock reset */
|
|
RCU_TIMER14RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 16U), /*!< TIMER14 clock reset */
|
|
RCU_TIMER15RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 17U), /*!< TIMER15 clock reset */
|
|
RCU_TIMER16RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 18U), /*!< TIMER16 clock reset */
|
|
RCU_HPDFRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 19U), /*!< HPDF clock reset */
|
|
RCU_SPI4RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 20U), /*!< SPI4 clock reset */
|
|
RCU_SPI5RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 21U), /*!< SPI5 clock reset */
|
|
RCU_TIMER40RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 25U), /*!< TIMER40 clock reset */
|
|
RCU_TIMER41RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 26U), /*!< TIMER41 clock reset */
|
|
RCU_TIMER42RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 27U), /*!< TIMER42 clock reset */
|
|
RCU_TIMER43RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 28U), /*!< TIMER43 clock reset */
|
|
RCU_TIMER44RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 29U), /*!< TIMER44 clock reset */
|
|
RCU_EDOUTRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 30U), /*!< EDOUT clock reset */
|
|
RCU_TRIGSELRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 31U), /*!< TRIGSEL clock reset */
|
|
/* APB3 peripherals */
|
|
RCU_WWDGTRST = RCU_REGIDX_BIT(APB3RST_REG_OFFSET, 1U), /*!< WWDGT clock reset */
|
|
/* APB4 peripherals */
|
|
RCU_SYSCFGRST = RCU_REGIDX_BIT(APB4RST_REG_OFFSET, 0U), /*!< SYSCFG clock reset */
|
|
RCU_CMPRST = RCU_REGIDX_BIT(APB4RST_REG_OFFSET, 1U), /*!< CMP clock reset */
|
|
RCU_VREFRST = RCU_REGIDX_BIT(APB4RST_REG_OFFSET, 2U), /*!< VREF clock reset */
|
|
RCU_LPDTSRST = RCU_REGIDX_BIT(APB4RST_REG_OFFSET, 3U), /*!< LPDTS clock reset */
|
|
RCU_PMURST = RCU_REGIDX_BIT(APB4RST_REG_OFFSET, 4U), /*!< PMU clock reset */
|
|
/* APB2 additional peripherals */
|
|
RCU_CAN0RST = RCU_REGIDX_BIT(ADD_APB2RST_REG_OFFSET, 0U), /*!< CAN0 clock reset */
|
|
RCU_CAN1RST = RCU_REGIDX_BIT(ADD_APB2RST_REG_OFFSET, 1U), /*!< CAN1 clock reset */
|
|
RCU_CAN2RST = RCU_REGIDX_BIT(ADD_APB2RST_REG_OFFSET, 2U) /*!< CAN2 clock reset */
|
|
} rcu_periph_reset_enum;
|
|
|
|
/* clock stabilization and failure and peripheral reset flags */
|
|
typedef enum {
|
|
/* clock stabilization flags */
|
|
RCU_FLAG_IRC64MSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 31U), /*!< IRC64M stabilization flags */
|
|
RCU_FLAG_HXTALSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 17U), /*!< HXTAL stabilization flags */
|
|
RCU_FLAG_PLL0STB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 25U), /*!< PLL0 stabilization flags */
|
|
RCU_FLAG_PLL1STB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 27U), /*!< PLL1 stabilization flags */
|
|
RCU_FLAG_PLL2STB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 29U), /*!< PLL2 stabilization flags */
|
|
RCU_FLAG_LXTALSTB = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 1U), /*!< LXTAL stabilization flags */
|
|
RCU_FLAG_IRC32KSTB = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 1U), /*!< IRC32K stabilization flags */
|
|
RCU_FLAG_IRC48MSTB = RCU_REGIDX_BIT(ADDCTL0_REG_OFFSET, 17U), /*!< IRC48M stabilization flags */
|
|
RCU_FLAG_LPIRC4MSTB = RCU_REGIDX_BIT(ADDCTL1_REG_OFFSET, 1U), /*!< LPIRC4M stabilization flags */
|
|
RCU_FLAG_PLLUSBHS0STB = RCU_REGIDX_BIT(ADDCTL1_REG_OFFSET, 29U), /*!< PLLUSBHS0 stabilization flags */
|
|
RCU_FLAG_PLLUSBHS1STB = RCU_REGIDX_BIT(ADDCTL1_REG_OFFSET, 31U), /*!< PLLUSBHS1 stabilization flags */
|
|
/* clock failure flag */
|
|
RCU_FLAG_LCKMD = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 6U), /*!< LXTAL clock failure detection flags */
|
|
/* reset source flags */
|
|
RCU_FLAG_BORRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 25U), /*!< BOR reset flags */
|
|
RCU_FLAG_EPRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 26U), /*!< External PIN reset flags */
|
|
RCU_FLAG_PORRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 27U), /*!< power reset flags */
|
|
RCU_FLAG_SWRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 28U), /*!< Software reset flags */
|
|
RCU_FLAG_FWDGTRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 29U), /*!< FWDGT reset flags */
|
|
RCU_FLAG_WWDGTRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 30U), /*!< WWDGT reset flags */
|
|
RCU_FLAG_LPRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 31U) /*!< low-power reset flags */
|
|
} rcu_flag_enum;
|
|
|
|
/* clock stabilization and stuck interrupt flags */
|
|
typedef enum {
|
|
RCU_INT_FLAG_IRC32KSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 0U), /*!< IRC32K stabilization interrupt flag */
|
|
RCU_INT_FLAG_LXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 1U), /*!< LXTAL stabilization interrupt flag */
|
|
RCU_INT_FLAG_IRC64MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 2U), /*!< IRC64M stabilization interrupt flag */
|
|
RCU_INT_FLAG_HXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 3U), /*!< HXTAL stabilization interrupt flag */
|
|
RCU_INT_FLAG_PLL0STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 4U), /*!< PLL0 stabilization interrupt flag */
|
|
RCU_INT_FLAG_PLL1STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 5U), /*!< PLL1 stabilization interrupt flag */
|
|
RCU_INT_FLAG_PLL2STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 6U), /*!< PLL2 stabilization interrupt flag */
|
|
RCU_INT_FLAG_CKM = RCU_REGIDX_BIT(INT_REG_OFFSET, 7U), /*!< HXTAL clock stuck interrupt flag */
|
|
RCU_INT_FLAG_LCKM = RCU_REGIDX_BIT(INT_REG_OFFSET, 27U), /*!< LXTAL clock stuck interrupt flag */
|
|
RCU_INT_FLAG_LPIRC4MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 24U), /*!< LPIRC4M stabilization interrupt flag */
|
|
RCU_INT_FLAG_IRC48MSTB = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 6U), /*!< IRC48M stabilization interrupt flag */
|
|
RCU_INT_FLAG_PLLUSBHS0STB = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 4U), /*!< PLLUSBHS0 stabilization interrupt flag */
|
|
RCU_INT_FLAG_PLLUSBHS1STB = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 5U) /*!< PLLUSBHS1 stabilization interrupt flag */
|
|
} rcu_int_flag_enum;
|
|
|
|
/* clock stabilization and stuck interrupt flags clear */
|
|
typedef enum {
|
|
RCU_INT_FLAG_IRC32KSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 16U), /*!< IRC32K stabilization interrupt flags clear */
|
|
RCU_INT_FLAG_LXTALSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 17U), /*!< LXTAL stabilization interrupt flags clear */
|
|
RCU_INT_FLAG_IRC64MSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 18U), /*!< IRC64M stabilization interrupt flags clear */
|
|
RCU_INT_FLAG_HXTALSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 19U), /*!< HXTAL stabilization interrupt flags clear */
|
|
RCU_INT_FLAG_PLL0STB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 20U), /*!< PLL0 stabilization interrupt flags clear */
|
|
RCU_INT_FLAG_PLL1STB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 21U), /*!< PLL1 stabilization interrupt flags clear */
|
|
RCU_INT_FLAG_PLL2STB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 22U), /*!< PLL2 stabilization interrupt flags clear */
|
|
RCU_INT_FLAG_CKM_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 23U), /*!< HXTAL clock stuck interrupt flags clear */
|
|
RCU_INT_FLAG_LCKM_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 28U), /*!< LXTAL clock stuck interrupt flags clear */
|
|
RCU_INT_FLAG_LPIRC4MSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 26U), /*!< LPIRC4M stabilization interrupt flag clear */
|
|
RCU_INT_FLAG_IRC48MSTB_CLR = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 22U), /*!< IRC48M stabilization interrupt flag clear */
|
|
RCU_INT_FLAG_PLLUSBHS0STB_CLR = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 20U), /*!< PLLUSBHS0 stabilization interrupt flag clear */
|
|
RCU_INT_FLAG_PLLUSBHS1STB_CLR = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 21U) /*!< PLLUSBHS1 stabilization interrupt flag clear */
|
|
} rcu_int_flag_clear_enum;
|
|
|
|
/* clock stabilization interrupt enable or disable */
|
|
typedef enum {
|
|
RCU_INT_IRC32KSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 8U), /*!< IRC32K stabilization interrupt */
|
|
RCU_INT_LXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 9U), /*!< LXTAL stabilization interrupt */
|
|
RCU_INT_IRC64MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 10U), /*!< IRC64M stabilization interrupt */
|
|
RCU_INT_HXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 11U), /*!< HXTAL stabilization interrupt */
|
|
RCU_INT_PLL0STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 12U), /*!< PLL0 stabilization interrupt */
|
|
RCU_INT_PLL1STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 13U), /*!< PLL1 stabilization interrupt */
|
|
RCU_INT_PLL2STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 14U), /*!< PLL2 stabilization interrupt */
|
|
RCU_INT_IRC48MSTB = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 14U), /*!< internal 48 MHz RC oscillator stabilization interrupt */
|
|
RCU_INT_LPIRC4MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 25U), /*!< LPIRC4M stabilization interrupt */
|
|
RCU_INT_PLLUSBHS0STB = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 12U), /*!< PLLUSBHS0 stabilization interrupt */
|
|
RCU_INT_PLLUSBHS1STB = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 13U) /*!< PLLUSBHS1 stabilization interrupt */
|
|
} rcu_int_enum;
|
|
|
|
/* oscillator types */
|
|
typedef enum {
|
|
RCU_HXTAL = RCU_REGIDX_BIT(CTL_REG_OFFSET, 16U), /*!< HXTAL */
|
|
RCU_LXTAL = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 0U), /*!< LXTAL */
|
|
RCU_IRC64M = RCU_REGIDX_BIT(CTL_REG_OFFSET, 30U), /*!< IRC64M */
|
|
RCU_IRC48M = RCU_REGIDX_BIT(ADDCTL0_REG_OFFSET, 16U), /*!< IRC48M */
|
|
RCU_IRC32K = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 0U), /*!< IRC32K */
|
|
RCU_LPIRC4M = RCU_REGIDX_BIT(ADDCTL1_REG_OFFSET, 0U), /*!< LPIRC4M */
|
|
RCU_PLL0_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 24U), /*!< PLL0 */
|
|
RCU_PLL1_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 26U), /*!< PLL1 */
|
|
RCU_PLL2_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 28U), /*!< PLL2 */
|
|
RCU_PLLUSBHS0_CK = RCU_REGIDX_BIT(ADDCTL1_REG_OFFSET, 28U), /*!< PLLUSBHS0 */
|
|
RCU_PLLUSBHS1_CK = RCU_REGIDX_BIT(ADDCTL1_REG_OFFSET, 30U) /*!< PLLUSBHS1 */
|
|
} rcu_osci_type_enum;
|
|
|
|
/* rcu clock frequency */
|
|
typedef enum {
|
|
CK_SYS = 0U, /*!< system clock */
|
|
CK_AHB, /*!< AHB clock */
|
|
CK_APB1, /*!< APB1 clock */
|
|
CK_APB2, /*!< APB2 clock */
|
|
CK_APB3, /*!< APB3 clock */
|
|
CK_APB4, /*!< APB4 clock */
|
|
CK_PLL0P, /*!< PLL0P clock */
|
|
CK_PLL0Q, /*!< PLL0Q clock */
|
|
CK_PLL0R, /*!< PLL0R clock */
|
|
CK_PLL1P, /*!< PLL1P clock */
|
|
CK_PLL1Q, /*!< PLL1Q clock */
|
|
CK_PLL1R, /*!< PLL1R clock */
|
|
CK_PLL2P, /*!< PLL2P clock */
|
|
CK_PLL2Q, /*!< PLL2Q clock */
|
|
CK_PLL2R, /*!< PLL2R clock */
|
|
CK_PER, /*!< PER clock */
|
|
CK_USART0, /*!< USART0 clock */
|
|
CK_USART1, /*!< USART1 clock */
|
|
CK_USART2, /*!< USART2 clock */
|
|
CK_USART5, /*!< USART5 clock */
|
|
CK_IRC64MDIV, /*!< IRC64MDIV clock */
|
|
CK_HXTAL, /*!< HXTAL clock */
|
|
CK_LPIRC4M /*!< LPIRC4M clock */
|
|
} rcu_clock_freq_enum;
|
|
|
|
typedef enum {
|
|
IDX_USART0 = 0U, /*!< idnex of USART0 */
|
|
IDX_USART1, /*!< idnex of USART1 */
|
|
IDX_USART2, /*!< idnex of USART2 */
|
|
IDX_USART5 /*!< idnex of USART5 */
|
|
} usart_idx_enum;
|
|
|
|
typedef enum {
|
|
IDX_I2C0 = 0U, /*!< idnex of I2C0 */
|
|
IDX_I2C1, /*!< idnex of I2C1 */
|
|
IDX_I2C2, /*!< idnex of I2C2 */
|
|
IDX_I2C3, /*!< idnex of I2C2 */
|
|
} i2c_idx_enum;
|
|
|
|
typedef enum {
|
|
IDX_CAN0 = 0U, /*!< idnex of CAN0 */
|
|
IDX_CAN1, /*!< idnex of CAN1 */
|
|
IDX_CAN2, /*!< idnex of CAN2 */
|
|
} can_idx_enum;
|
|
|
|
typedef enum {
|
|
IDX_ADC0 = 0U, /*!< idnex of ADC0 */
|
|
IDX_ADC1, /*!< idnex of ADC1 */
|
|
IDX_ADC2 /*!< idnex of ADC2 */
|
|
} adc_idx_enum;
|
|
|
|
typedef enum {
|
|
IDX_USBHS0 = 0U, /*!< idnex of USBHS0 */
|
|
IDX_USBHS1 /*!< idnex of USBHS1 */
|
|
} usbhs_idx_enum;
|
|
|
|
typedef enum {
|
|
IDX_PLL0 = 0U, /*!< idnex of PLL0 */
|
|
IDX_PLL1, /*!< idnex of PLL1 */
|
|
IDX_PLL2 /*!< idnex of PLL2 */
|
|
} pll_idx_enum;
|
|
|
|
typedef enum {
|
|
IDX_SPI0 = 0U, /*!< idnex of SPI0 */
|
|
IDX_SPI1, /*!< idnex of SPI1 */
|
|
IDX_SPI2, /*!< idnex of SPI2 */
|
|
IDX_SPI3, /*!< idnex of SPI3 */
|
|
IDX_SPI4, /*!< idnex of SPI4 */
|
|
IDX_SPI5 /*!< idnex of SPI5 */
|
|
} spi_idx_enum;
|
|
|
|
/* RCU_PLLADDCTL register bit define */
|
|
/* PLLs P/Q/R divider output enable */
|
|
#define RCU_PLL0P RCU_PLLADDCTL_PLL0PEN /*!< PLL0P divider output enable */
|
|
#define RCU_PLL0Q RCU_PLLADDCTL_PLL0QEN /*!< PLL0Q divider output enable */
|
|
#define RCU_PLL0R RCU_PLLADDCTL_PLL0REN /*!< PLL0R divider output enable */
|
|
#define RCU_PLL1P RCU_PLLADDCTL_PLL1PEN /*!< PLL1P divider output enable */
|
|
#define RCU_PLL1Q RCU_PLLADDCTL_PLL1QEN /*!< PLL1Q divider output enable */
|
|
#define RCU_PLL1R RCU_PLLADDCTL_PLL1REN /*!< PLL1R divider output enable */
|
|
#define RCU_PLL2P RCU_PLLADDCTL_PLL2PEN /*!< PLL2P divider output enable */
|
|
#define RCU_PLL2Q RCU_PLLADDCTL_PLL2QEN /*!< PLL2Q divider output enable */
|
|
#define RCU_PLL2R RCU_PLLADDCTL_PLL2REN /*!< PLL2R divider output enable */
|
|
|
|
/* RCU_CFG0 register bit define */
|
|
/* USARTx(x=0,1,2,5) clock source selection */
|
|
#define CFG1_USART0SEL(regval) (BITS(0,1) & ((uint32_t)(regval) << 0U))
|
|
#define RCU_USARTSRC_APB CFG1_USART0SEL(0) /*!< CK_USART select CK_APB */
|
|
#define RCU_USARTSRC_AHB CFG1_USART0SEL(1) /*!< CK_USART select CK_AHB */
|
|
#define RCU_USARTSRC_LXTAL CFG1_USART0SEL(2) /*!< CK_USART select CK_LXTAL */
|
|
#define RCU_USARTSRC_IRC64MDIV CFG1_USART0SEL(3) /*!< CK_USART select CK_IRC16MDIV */
|
|
|
|
/* I2Cx(x=0,1,2,3) clock source selection */
|
|
#define CFG3_I2C1SEL(regval) (BITS(0,1) & ((uint32_t)(regval) << 0U))
|
|
#define RCU_I2CSRC_APB1 CFG3_I2C1SEL(0) /*!< CK_I2C select CK_APB1 */
|
|
#define RCU_I2CSRC_PLL2R CFG3_I2C1SEL(1) /*!< CK_I2C select CK_PLL2R */
|
|
#define RCU_I2CSRC_IRC64MDIV CFG3_I2C1SEL(2) /*!< CK_I2C select CK_IRC64MDIV */
|
|
#define RCU_I2CSRC_LPIRC4M CFG3_I2C1SEL(3) /*!< CK_I2C select CK_LPIRC4M */
|
|
|
|
/* CANx(x=0,1,2) clock source selection */
|
|
#define CFG1_CAN0SEL(regval) (BITS(8,9) & ((uint32_t)(regval) << 8U))
|
|
#define RCU_CANSRC_HXTAL CFG1_CAN0SEL(0) /*!< CK_CAN select CK_HXTAL */
|
|
#define RCU_CANSRC_APB2 CFG1_CAN0SEL(1) /*!< CK_CAN select CK_APB2 */
|
|
#define RCU_CANSRC_APB2_DIV2 CFG1_CAN0SEL(2) /*!< CK_CAN select CK_APB2/2 */
|
|
#define RCU_CANSRC_IRC64MDIV CFG1_CAN0SEL(3) /*!< CK_CAN select CK_IRC64MDIV */
|
|
|
|
|
|
/* EXMC clock selection */
|
|
#define CFG4_EXMCSEL(regval) (BITS(8,9) & ((uint32_t)(regval) << 8U))
|
|
#define RCU_EXMCSRC_AHB CFG4_EXMCSEL(0) /*!< CK_EXMC select CK_AHB */
|
|
#define RCU_EXMCSRC_PLL0Q CFG4_EXMCSEL(1) /*!< CK_EXMC select CK_PLL0Q */
|
|
#define RCU_EXMCSRC_PLL1R CFG4_EXMCSEL(2) /*!< CK_EXMC select CK_PLL1R */
|
|
#define RCU_EXMCSRC_PER CFG4_EXMCSEL(3) /*!< CK_EXMC select CK_PER */
|
|
|
|
/* SPIx(x=0,1,2) clock source selecion */
|
|
#define CFG5_SPI0SEL(regval) (BITS(0,2) & ((uint32_t)(regval) << 0U))
|
|
#define RCU_SPISRC_PLL0Q CFG5_SPI0SEL(0) /*!< CK_SPI select CK_PLL0Q */
|
|
#define RCU_SPISRC_PLL1P CFG5_SPI0SEL(1) /*!< CK_SPI select CK_PLL1P */
|
|
#define RCU_SPISRC_PLL2P CFG5_SPI0SEL(2) /*!< CK_SPI select CK_PLL2P */
|
|
#define RCU_SPISRC_I2S_CKIN CFG5_SPI0SEL(3) /*!< CK_SPI select I2S_CKIN */
|
|
#define RCU_SPISRC_PER CFG5_SPI0SEL(4) /*!< CK_SPI select CK_PER */
|
|
|
|
/* SPIx(x=3,4,5) clock source selection */
|
|
#define CFG5_SPI3SEL(regval) (BITS(12,14) & ((uint32_t)(regval) << 12U))
|
|
#define RCU_SPISRC_APB2 CFG5_SPI3SEL(0) /*!< CK_SPI select CK_APB2 */
|
|
#define RCU_SPISRC_PLL1Q CFG5_SPI3SEL(1) /*!< CK_SPI select CK_PLL1Q */
|
|
#define RCU_SPISRC_PLL2Q CFG5_SPI3SEL(2) /*!< CK_SPI select CK_PLL2Q */
|
|
#define RCU_SPISRC_IRC64MDIV CFG5_SPI3SEL(3) /*!< CK_SPI select CK_IRC64MDIV */
|
|
#define RCU_SPISRC_LPIRC4M CFG5_SPI3SEL(4) /*!< CK_SPI select CK_LPIRC4M */
|
|
#define RCU_SPISRC_HXTAL CFG5_SPI3SEL(5) /*!< CK_SPI select CK_HXTAL */
|
|
#define RCU_SPI5SRC_I2S_CKIN CFG5_SPI3SEL(6) /*!< CK_SPI select I2S_CKIN */
|
|
|
|
/* Deep-sleep wakeup system clock source selection */
|
|
#define RCU_DSPWUSSEL_IRC64MDIV (uint32_t)(0X00000000U) /*!< CK_IRC64MDIV is selected as wake up system clock from deep-sleep mode */
|
|
#define RCU_DSPWUSSEL_LPIRC4M RCU_CFG3_DSPWUSSEL /*!< CK_LPIRC4M is selected as wake up system clock from deep-sleep mode */
|
|
|
|
/* ADCx(x=0,1,2) clock source selection */
|
|
#define CFG3_ADC0SEL(regval) (BITS(26,27) & ((uint32_t)(regval) << 26U))
|
|
#define RCU_ADCSRC_PLL1P CFG3_ADC0SEL(0) /*!< CK_ADC select CK_PLL1P */
|
|
#define RCU_ADCSRC_PLL2R CFG3_ADC0SEL(1) /*!< CK_ADC select CK_PLL2R */
|
|
#define RCU_ADCSRC_PER CFG3_ADC0SEL(2) /*!< CK_ADC select CK_PER */
|
|
|
|
/* HPDF audio clock source selection */
|
|
#define CFG2_HPDFASEL(regval) (BITS(16,18) & ((uint32_t)(regval) << 16U))
|
|
#define RCU_HPDFASRC_PLL0Q CFG2_HPDFASEL(0) /*!< CK_HPDFAUDIO select CK_PLL0Q */
|
|
#define RCU_HPDFASRC_PLL1P CFG2_HPDFASEL(1) /*!< CK_HPDFAUDIO select CK_PLL1P */
|
|
#define RCU_HPDFASRC_PLL2P CFG2_HPDFASEL(2) /*!< CK_HPDFAUDIO select CK_PLL2P */
|
|
#define RCU_HPDFASRC_I2S_CKIN CFG2_HPDFASEL(3) /*!< CK_HPDFAUDIO select I2S_CKIN */
|
|
#define RCU_HPDFASRC_PER CFG2_HPDFASEL(4) /*!< CK_HPDFAUDIO select CK_PER */
|
|
|
|
/* HPDF clock source selection */
|
|
#define RCU_HPDFSRC_APB2 (uint32_t)(0X00000000U) /*!< CK_HPDF select CK_APB2 */
|
|
#define RCU_HPDFSRC_AHB RCU_CFG1_HPDFSEL /*!< CK_HPDF select CK_AHB */
|
|
|
|
/* PER clock selection */
|
|
#define CFG1_PERSEL(regval) (BITS(14,15) & ((uint32_t)(regval) << 14U))
|
|
#define RCU_PERSRC_IRC64MDIV CFG1_PERSEL(0) /*!< CK_PER select CK_IRC64MDIV */
|
|
#define RCU_PERSRC_LPIRC4M CFG1_PERSEL(1) /*!< CK_PER select CK_LPIRC4M */
|
|
#define RCU_PERSRC_HXTAL CFG1_PERSEL(2) /*!< CK_PER select CK_HXTAL */
|
|
|
|
/* system clock source select */
|
|
#define CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0U))
|
|
#define RCU_CKSYSSRC_IRC64MDIV CFG0_SCS(0) /*!< system clock source select IRC64MDIV */
|
|
#define RCU_CKSYSSRC_HXTAL CFG0_SCS(1) /*!< system clock source select HXTAL */
|
|
#define RCU_CKSYSSRC_LPIRC4M CFG0_SCS(2) /*!< system clock source select LPIRC4M */
|
|
#define RCU_CKSYSSRC_PLL0P CFG0_SCS(3) /*!< system clock source select PLL0P */
|
|
|
|
/* system clock source select status */
|
|
#define CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2U))
|
|
#define RCU_SCSS_IRC64MDIV CFG0_SCSS(0) /*!< system clock source select CK_IRC64MDIV */
|
|
#define RCU_SCSS_HXTAL CFG0_SCSS(1) /*!< system clock source select CK_HXTAL */
|
|
#define RCU_SCSS_LPIRC4M CFG0_SCSS(2) /*!< system clock source select CK_LPIRC4M */
|
|
#define RCU_SCSS_PLL0P CFG0_SCSS(3) /*!< system clock source select CK_PLL0P */
|
|
|
|
/* IRC64M clock divider */
|
|
#define ADDCTL1_IRC64MDIV(regval) (BITS(16,17) & ((uint32_t)(regval) << 16U))
|
|
#define RCU_IRC64M_DIV1 ADDCTL1_IRC64MDIV(0) /*!< CK_IRC64MDIV is CK_IRC64M / 1 */
|
|
#define RCU_IRC64M_DIV2 ADDCTL1_IRC64MDIV(1) /*!< CK_IRC64MDIV is CK_IRC64M / 2 */
|
|
#define RCU_IRC64M_DIV4 ADDCTL1_IRC64MDIV(2) /*!< CK_IRC64MDIV is CK_IRC64M / 4 */
|
|
#define RCU_IRC64M_DIV8 ADDCTL1_IRC64MDIV(3) /*!< CK_IRC64MDIV is CK_IRC64M / 8 */
|
|
|
|
/* AHB prescaler selection */
|
|
#define CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4U))
|
|
#define RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0) /*!< AHB prescaler select CK_SYS */
|
|
#define RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8) /*!< AHB prescaler select CK_SYS / 2 */
|
|
#define RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9) /*!< AHB prescaler select CK_SYS / 4 */
|
|
#define RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10) /*!< AHB prescaler select CK_SYS / 8 */
|
|
#define RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11) /*!< AHB prescaler select CK_SYS / 16 */
|
|
#define RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12) /*!< AHB prescaler select CK_SYS / 64 */
|
|
#define RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13) /*!< AHB prescaler select CK_SYS / 128 */
|
|
#define RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14) /*!< AHB prescaler select CK_SYS / 256 */
|
|
#define RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15) /*!< AHB prescaler select CK_SYS / 512 */
|
|
|
|
/* APB1 prescaler selection */
|
|
#define CFG0_APB1PSC(regval) (BITS(10,12) & ((uint32_t)(regval) << 10U))
|
|
#define RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0) /*!< APB1 prescaler select CK_AHB */
|
|
#define RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4) /*!< APB1 prescaler select CK_AHB / 2 */
|
|
#define RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5) /*!< APB1 prescaler select CK_AHB / 4 */
|
|
#define RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6) /*!< APB1 prescaler select CK_AHB / 8 */
|
|
#define RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7) /*!< APB1 prescaler select CK_AHB / 16 */
|
|
|
|
/* APB2 prescaler selection */
|
|
#define CFG0_APB2PSC(regval) (BITS(13,15) & ((uint32_t)(regval) << 13U))
|
|
#define RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0) /*!< APB2 prescaler select CK_AHB */
|
|
#define RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4) /*!< APB2 prescaler select CK_AHB / 2 */
|
|
#define RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5) /*!< APB2 prescaler select CK_AHB / 4 */
|
|
#define RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6) /*!< APB2 prescaler select CK_AHB / 8 */
|
|
#define RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7) /*!< APB2 prescaler select CK_AHB / 16 */
|
|
|
|
/* APB3 prescaler selection */
|
|
#define CFG0_APB3PSC(regval) (BITS(27,29) & ((uint32_t)(regval) << 27U))
|
|
#define RCU_APB3_CKAHB_DIV1 CFG0_APB3PSC(0) /*!< APB3 prescaler select CK_AHB */
|
|
#define RCU_APB3_CKAHB_DIV2 CFG0_APB3PSC(4) /*!< APB3 prescaler select CK_AHB / 2 */
|
|
#define RCU_APB3_CKAHB_DIV4 CFG0_APB3PSC(5) /*!< APB3 prescaler select CK_AHB / 4 */
|
|
#define RCU_APB3_CKAHB_DIV8 CFG0_APB3PSC(6) /*!< APB3 prescaler select CK_AHB / 8 */
|
|
#define RCU_APB3_CKAHB_DIV16 CFG0_APB3PSC(7) /*!< APB3 prescaler select CK_AHB / 16 */
|
|
|
|
/* APB4 prescaler selection */
|
|
#define CFG0_APB4PSC(regval) (BITS(24,26) & ((uint32_t)(regval) << 24U))
|
|
#define RCU_APB4_CKAHB_DIV1 CFG0_APB4PSC(0) /*!< APB4 prescaler select CK_AHB */
|
|
#define RCU_APB4_CKAHB_DIV2 CFG0_APB4PSC(4) /*!< APB4 prescaler select CK_AHB / 2 */
|
|
#define RCU_APB4_CKAHB_DIV4 CFG0_APB4PSC(5) /*!< APB4 prescaler select CK_AHB / 4 */
|
|
#define RCU_APB4_CKAHB_DIV8 CFG0_APB4PSC(6) /*!< APB4 prescaler select CK_AHB / 8 */
|
|
#define RCU_APB4_CKAHB_DIV16 CFG0_APB4PSC(7) /*!< APB4 prescaler select CK_AHB / 16 */
|
|
|
|
/* RTC clock divider factor from HXTAL clock */
|
|
#define CFG0_RTCDIV(regval) (BITS(16,21) & ((uint32_t)(regval) << 16U))
|
|
#define RCU_RTC_HXTAL_NONE CFG0_RTCDIV(0) /*!< no clock for RTC */
|
|
#define RCU_RTC_HXTAL_DIV2 CFG0_RTCDIV(2) /*!< RTCDIV clock select CK_HXTAL / 2 */
|
|
#define RCU_RTC_HXTAL_DIV3 CFG0_RTCDIV(3) /*!< RTCDIV clock select CK_HXTAL / 3 */
|
|
#define RCU_RTC_HXTAL_DIV4 CFG0_RTCDIV(4) /*!< RTCDIV clock select CK_HXTAL / 4 */
|
|
#define RCU_RTC_HXTAL_DIV5 CFG0_RTCDIV(5) /*!< RTCDIV clock select CK_HXTAL / 5 */
|
|
#define RCU_RTC_HXTAL_DIV6 CFG0_RTCDIV(6) /*!< RTCDIV clock select CK_HXTAL / 6 */
|
|
#define RCU_RTC_HXTAL_DIV7 CFG0_RTCDIV(7) /*!< RTCDIV clock select CK_HXTAL / 7 */
|
|
#define RCU_RTC_HXTAL_DIV8 CFG0_RTCDIV(8) /*!< RTCDIV clock select CK_HXTAL / 8 */
|
|
#define RCU_RTC_HXTAL_DIV9 CFG0_RTCDIV(9) /*!< RTCDIV clock select CK_HXTAL / 9 */
|
|
#define RCU_RTC_HXTAL_DIV10 CFG0_RTCDIV(10) /*!< RTCDIV clock select CK_HXTAL / 10 */
|
|
#define RCU_RTC_HXTAL_DIV11 CFG0_RTCDIV(11) /*!< RTCDIV clock select CK_HXTAL / 11 */
|
|
#define RCU_RTC_HXTAL_DIV12 CFG0_RTCDIV(12) /*!< RTCDIV clock select CK_HXTAL / 12 */
|
|
#define RCU_RTC_HXTAL_DIV13 CFG0_RTCDIV(13) /*!< RTCDIV clock select CK_HXTAL / 13 */
|
|
#define RCU_RTC_HXTAL_DIV14 CFG0_RTCDIV(14) /*!< RTCDIV clock select CK_HXTAL / 14 */
|
|
#define RCU_RTC_HXTAL_DIV15 CFG0_RTCDIV(15) /*!< RTCDIV clock select CK_HXTAL / 15 */
|
|
#define RCU_RTC_HXTAL_DIV16 CFG0_RTCDIV(16) /*!< RTCDIV clock select CK_HXTAL / 16 */
|
|
#define RCU_RTC_HXTAL_DIV17 CFG0_RTCDIV(17) /*!< RTCDIV clock select CK_HXTAL / 17 */
|
|
#define RCU_RTC_HXTAL_DIV18 CFG0_RTCDIV(18) /*!< RTCDIV clock select CK_HXTAL / 18 */
|
|
#define RCU_RTC_HXTAL_DIV19 CFG0_RTCDIV(19) /*!< RTCDIV clock select CK_HXTAL / 19 */
|
|
#define RCU_RTC_HXTAL_DIV20 CFG0_RTCDIV(20) /*!< RTCDIV clock select CK_HXTAL / 20 */
|
|
#define RCU_RTC_HXTAL_DIV21 CFG0_RTCDIV(21) /*!< RTCDIV clock select CK_HXTAL / 21 */
|
|
#define RCU_RTC_HXTAL_DIV22 CFG0_RTCDIV(22) /*!< RTCDIV clock select CK_HXTAL / 22 */
|
|
#define RCU_RTC_HXTAL_DIV23 CFG0_RTCDIV(23) /*!< RTCDIV clock select CK_HXTAL / 23 */
|
|
#define RCU_RTC_HXTAL_DIV24 CFG0_RTCDIV(24) /*!< RTCDIV clock select CK_HXTAL / 24 */
|
|
#define RCU_RTC_HXTAL_DIV25 CFG0_RTCDIV(25) /*!< RTCDIV clock select CK_HXTAL / 25 */
|
|
#define RCU_RTC_HXTAL_DIV26 CFG0_RTCDIV(26) /*!< RTCDIV clock select CK_HXTAL / 26 */
|
|
#define RCU_RTC_HXTAL_DIV27 CFG0_RTCDIV(27) /*!< RTCDIV clock select CK_HXTAL / 27 */
|
|
#define RCU_RTC_HXTAL_DIV28 CFG0_RTCDIV(28) /*!< RTCDIV clock select CK_HXTAL / 28 */
|
|
#define RCU_RTC_HXTAL_DIV29 CFG0_RTCDIV(29) /*!< RTCDIV clock select CK_HXTAL / 29 */
|
|
#define RCU_RTC_HXTAL_DIV30 CFG0_RTCDIV(30) /*!< RTCDIV clock select CK_HXTAL / 30 */
|
|
#define RCU_RTC_HXTAL_DIV31 CFG0_RTCDIV(31) /*!< RTCDIV clock select CK_HXTAL / 31 */
|
|
#define RCU_RTC_HXTAL_DIV32 CFG0_RTCDIV(32) /*!< RTCDIV clock select CK_HXTAL / 32 */
|
|
#define RCU_RTC_HXTAL_DIV33 CFG0_RTCDIV(33) /*!< RTCDIV clock select CK_HXTAL / 33 */
|
|
#define RCU_RTC_HXTAL_DIV34 CFG0_RTCDIV(34) /*!< RTCDIV clock select CK_HXTAL / 34 */
|
|
#define RCU_RTC_HXTAL_DIV35 CFG0_RTCDIV(35) /*!< RTCDIV clock select CK_HXTAL / 35 */
|
|
#define RCU_RTC_HXTAL_DIV36 CFG0_RTCDIV(36) /*!< RTCDIV clock select CK_HXTAL / 36 */
|
|
#define RCU_RTC_HXTAL_DIV37 CFG0_RTCDIV(37) /*!< RTCDIV clock select CK_HXTAL / 37 */
|
|
#define RCU_RTC_HXTAL_DIV38 CFG0_RTCDIV(38) /*!< RTCDIV clock select CK_HXTAL / 38 */
|
|
#define RCU_RTC_HXTAL_DIV39 CFG0_RTCDIV(39) /*!< RTCDIV clock select CK_HXTAL / 39 */
|
|
#define RCU_RTC_HXTAL_DIV40 CFG0_RTCDIV(40) /*!< RTCDIV clock select CK_HXTAL / 40 */
|
|
#define RCU_RTC_HXTAL_DIV41 CFG0_RTCDIV(41) /*!< RTCDIV clock select CK_HXTAL / 41 */
|
|
#define RCU_RTC_HXTAL_DIV42 CFG0_RTCDIV(42) /*!< RTCDIV clock select CK_HXTAL / 42 */
|
|
#define RCU_RTC_HXTAL_DIV43 CFG0_RTCDIV(43) /*!< RTCDIV clock select CK_HXTAL / 43 */
|
|
#define RCU_RTC_HXTAL_DIV44 CFG0_RTCDIV(44) /*!< RTCDIV clock select CK_HXTAL / 44 */
|
|
#define RCU_RTC_HXTAL_DIV45 CFG0_RTCDIV(45) /*!< RTCDIV clock select CK_HXTAL / 45 */
|
|
#define RCU_RTC_HXTAL_DIV46 CFG0_RTCDIV(46) /*!< RTCDIV clock select CK_HXTAL / 46 */
|
|
#define RCU_RTC_HXTAL_DIV47 CFG0_RTCDIV(47) /*!< RTCDIV clock select CK_HXTAL / 47 */
|
|
#define RCU_RTC_HXTAL_DIV48 CFG0_RTCDIV(48) /*!< RTCDIV clock select CK_HXTAL / 48 */
|
|
#define RCU_RTC_HXTAL_DIV49 CFG0_RTCDIV(49) /*!< RTCDIV clock select CK_HXTAL / 49 */
|
|
#define RCU_RTC_HXTAL_DIV50 CFG0_RTCDIV(50) /*!< RTCDIV clock select CK_HXTAL / 50 */
|
|
#define RCU_RTC_HXTAL_DIV51 CFG0_RTCDIV(51) /*!< RTCDIV clock select CK_HXTAL / 51 */
|
|
#define RCU_RTC_HXTAL_DIV52 CFG0_RTCDIV(52) /*!< RTCDIV clock select CK_HXTAL / 52 */
|
|
#define RCU_RTC_HXTAL_DIV53 CFG0_RTCDIV(53) /*!< RTCDIV clock select CK_HXTAL / 53 */
|
|
#define RCU_RTC_HXTAL_DIV54 CFG0_RTCDIV(54) /*!< RTCDIV clock select CK_HXTAL / 54 */
|
|
#define RCU_RTC_HXTAL_DIV55 CFG0_RTCDIV(55) /*!< RTCDIV clock select CK_HXTAL / 55 */
|
|
#define RCU_RTC_HXTAL_DIV56 CFG0_RTCDIV(56) /*!< RTCDIV clock select CK_HXTAL / 56 */
|
|
#define RCU_RTC_HXTAL_DIV57 CFG0_RTCDIV(57) /*!< RTCDIV clock select CK_HXTAL / 57 */
|
|
#define RCU_RTC_HXTAL_DIV58 CFG0_RTCDIV(58) /*!< RTCDIV clock select CK_HXTAL / 58 */
|
|
#define RCU_RTC_HXTAL_DIV59 CFG0_RTCDIV(59) /*!< RTCDIV clock select CK_HXTAL / 59 */
|
|
#define RCU_RTC_HXTAL_DIV60 CFG0_RTCDIV(60) /*!< RTCDIV clock select CK_HXTAL / 60 */
|
|
#define RCU_RTC_HXTAL_DIV61 CFG0_RTCDIV(61) /*!< RTCDIV clock select CK_HXTAL / 61 */
|
|
#define RCU_RTC_HXTAL_DIV62 CFG0_RTCDIV(62) /*!< RTCDIV clock select CK_HXTAL / 62 */
|
|
#define RCU_RTC_HXTAL_DIV63 CFG0_RTCDIV(63) /*!< RTCDIV clock select CK_HXTAL / 63 */
|
|
|
|
/* The CK_OUT0 divider */
|
|
#define CFG2_CKOUT0DIV(regval) (BITS(0,3) & ((uint32_t)(regval) << 0U))
|
|
#define RCU_CKOUT0_DIV1 CFG2_CKOUT0DIV(1) /*!< CK_OUT0 is divided by 1 */
|
|
#define RCU_CKOUT0_DIV2 CFG2_CKOUT0DIV(2) /*!< CK_OUT0 is divided by 2 */
|
|
#define RCU_CKOUT0_DIV3 CFG2_CKOUT0DIV(3) /*!< CK_OUT0 is divided by 3 */
|
|
#define RCU_CKOUT0_DIV4 CFG2_CKOUT0DIV(4) /*!< CK_OUT0 is divided by 4 */
|
|
#define RCU_CKOUT0_DIV5 CFG2_CKOUT0DIV(5) /*!< CK_OUT0 is divided by 5 */
|
|
#define RCU_CKOUT0_DIV6 CFG2_CKOUT0DIV(6) /*!< CK_OUT0 is divided by 6 */
|
|
#define RCU_CKOUT0_DIV7 CFG2_CKOUT0DIV(7) /*!< CK_OUT0 is divided by 7 */
|
|
#define RCU_CKOUT0_DIV8 CFG2_CKOUT0DIV(8) /*!< CK_OUT0 is divided by 8 */
|
|
#define RCU_CKOUT0_DIV9 CFG2_CKOUT0DIV(9) /*!< CK_OUT0 is divided by 9 */
|
|
#define RCU_CKOUT0_DIV10 CFG2_CKOUT0DIV(10) /*!< CK_OUT0 is divided by 10 */
|
|
#define RCU_CKOUT0_DIV11 CFG2_CKOUT0DIV(11) /*!< CK_OUT0 is divided by 11 */
|
|
#define RCU_CKOUT0_DIV12 CFG2_CKOUT0DIV(12) /*!< CK_OUT0 is divided by 12 */
|
|
#define RCU_CKOUT0_DIV13 CFG2_CKOUT0DIV(13) /*!< CK_OUT0 is divided by 13 */
|
|
#define RCU_CKOUT0_DIV14 CFG2_CKOUT0DIV(14) /*!< CK_OUT0 is divided by 14 */
|
|
#define RCU_CKOUT0_DIV15 CFG2_CKOUT0DIV(15) /*!< CK_OUT0 is divided by 15 */
|
|
|
|
/* CKOUT0 Clock source selection */
|
|
#define CFG2_CKOUT0SEL(regval) (BITS(4,6) & ((uint32_t)(regval) << 4U))
|
|
#define RCU_CKOUT0SRC_IRC64MDIV CFG2_CKOUT0SEL(0) /*!< internal 64MDIV RC oscillator clock selected */
|
|
#define RCU_CKOUT0SRC_LXTAL CFG2_CKOUT0SEL(1) /*!< low speed crystal oscillator clock (LXTAL) selected */
|
|
#define RCU_CKOUT0SRC_HXTAL CFG2_CKOUT0SEL(2) /*!< high speed crystal oscillator clock (HXTAL) selected */
|
|
#define RCU_CKOUT0SRC_PLL0P CFG2_CKOUT0SEL(3) /*!< CK_PLL0P clock selected */
|
|
#define RCU_CKOUT0SRC_IRC48M CFG2_CKOUT0SEL(4) /*!< CK_IRC48M clock selected */
|
|
#define RCU_CKOUT0SRC_PER CFG2_CKOUT0SEL(5) /*!< CK_PER clock selected */
|
|
#define RCU_CKOUT0SRC_USBHS060M CFG2_CKOUT0SEL(6) /*!< USBHS0 60M clock selected */
|
|
#define RCU_CKOUT0SRC_USBHS160M CFG2_CKOUT0SEL(7) /*!< USBHS1 60M clock selected */
|
|
|
|
/* The CK_OUT1 divider */
|
|
#define CFG2_CKOUT1DIV(regval) (BITS(8,11) & ((uint32_t)(regval) << 8U))
|
|
#define RCU_CKOUT1_DIV1 CFG2_CKOUT1DIV(1) /*!< CK_OUT1 is divided by 1 */
|
|
#define RCU_CKOUT1_DIV2 CFG2_CKOUT1DIV(2) /*!< CK_OUT1 is divided by 2 */
|
|
#define RCU_CKOUT1_DIV3 CFG2_CKOUT1DIV(3) /*!< CK_OUT1 is divided by 3 */
|
|
#define RCU_CKOUT1_DIV4 CFG2_CKOUT1DIV(4) /*!< CK_OUT1 is divided by 4 */
|
|
#define RCU_CKOUT1_DIV5 CFG2_CKOUT1DIV(5) /*!< CK_OUT1 is divided by 5 */
|
|
#define RCU_CKOUT1_DIV6 CFG2_CKOUT1DIV(6) /*!< CK_OUT1 is divided by 6 */
|
|
#define RCU_CKOUT1_DIV7 CFG2_CKOUT1DIV(7) /*!< CK_OUT1 is divided by 7 */
|
|
#define RCU_CKOUT1_DIV8 CFG2_CKOUT1DIV(8) /*!< CK_OUT1 is divided by 8 */
|
|
#define RCU_CKOUT1_DIV9 CFG2_CKOUT1DIV(9) /*!< CK_OUT1 is divided by 9 */
|
|
#define RCU_CKOUT1_DIV10 CFG2_CKOUT1DIV(10) /*!< CK_OUT1 is divided by 10 */
|
|
#define RCU_CKOUT1_DIV11 CFG2_CKOUT1DIV(11) /*!< CK_OUT1 is divided by 11 */
|
|
#define RCU_CKOUT1_DIV12 CFG2_CKOUT1DIV(12) /*!< CK_OUT1 is divided by 12 */
|
|
#define RCU_CKOUT1_DIV13 CFG2_CKOUT1DIV(13) /*!< CK_OUT1 is divided by 13 */
|
|
#define RCU_CKOUT1_DIV14 CFG2_CKOUT1DIV(14) /*!< CK_OUT1 is divided by 14 */
|
|
#define RCU_CKOUT1_DIV15 CFG2_CKOUT1DIV(15) /*!< CK_OUT1 is divided by 15 */
|
|
|
|
/* CKOUT1 Clock source selection */
|
|
#define CFG2_CKOUT1SEL(regval) (BITS(12,14) & ((uint32_t)(regval) << 12U))
|
|
#define RCU_CKOUT1SRC_SYSTEMCLOCK CFG2_CKOUT1SEL(0) /*!< system clock selected */
|
|
#define RCU_CKOUT1SRC_PLL1R CFG2_CKOUT1SEL(1) /*!< CK_PLL1R clock selected */
|
|
#define RCU_CKOUT1SRC_HXTAL CFG2_CKOUT1SEL(2) /*!< high speed crystal oscillator clock (HXTAL) selected */
|
|
#define RCU_CKOUT1SRC_PLL0P CFG2_CKOUT1SEL(3) /*!< CK_PLL0P clock selected */
|
|
#define RCU_CKOUT1SRC_LPIRC4M CFG2_CKOUT1SEL(4) /*!< CK_LPIRC4M clock selected */
|
|
#define RCU_CKOUT1SRC_IRC32K CFG2_CKOUT1SEL(5) /*!< CK_IRC32K clock selected */
|
|
#define RCU_CKOUT1SRC_PLL2R CFG2_CKOUT1SEL(6) /*!< CK_PLL2R clock selected */
|
|
|
|
/* the divider factor from PLL2R clock */
|
|
#define CFG1_PLL2RDIV(regval) (BITS(16,17) & ((uint32_t)(regval) << 16U))
|
|
#define RCU_PLL2R_DIV2 CFG1_PLL2RDIV(0) /*!< CK_PLL2RDIV clock select CK_PLL2R / 2 */
|
|
#define RCU_PLL2R_DIV4 CFG1_PLL2RDIV(1) /*!< CK_PLL2RDIV clock select CK_PLL2R / 4 */
|
|
#define RCU_PLL2R_DIV8 CFG1_PLL2RDIV(2) /*!< CK_PLL2RDIV clock select CK_PLL2R / 8 */
|
|
#define RCU_PLL2R_DIV16 CFG1_PLL2RDIV(3) /*!< CK_PLL2RDIV clock select CK_PLL2R / 16 */
|
|
|
|
/* TIMER clock selection */
|
|
#define RCU_TIMER_PSC_MUL2 ((uint32_t)(~RCU_CFG1_TIMERSEL)) /*!< if APB1PSC/APB2PSC in RCU_CFG0 register is 0b0xx(CK_APBx = CK_AHB)
|
|
or 0b100(CK_APBx = CK_AHB/2), the TIMER clock is equal to CK_AHB(CK_TIMERx = CK_AHB).
|
|
or else, the TIMER clock is twice the corresponding APB clock (TIMER in APB1 domain: CK_TIMERx = 2 x CK_APB1;
|
|
TIMER in APB2 domain: CK_TIMERx = 2 x CK_APB2) */
|
|
#define RCU_TIMER_PSC_MUL4 RCU_CFG1_TIMERSEL /*!< if APB1PSC/APB2PSC in RCU_CFG0 register is 0b0xx(CK_APBx = CK_AHB),
|
|
0b100(CK_APBx = CK_AHB/2), or 0b101(CK_APBx = CK_AHB/4), the TIMER clock is equal to CK_AHB(CK_TIMERx = CK_AHB).
|
|
or else, the TIMER clock is four timers the corresponding APB clock (TIMER in APB1 domain: CK_TIMERx = 4 x CK_APB1;
|
|
TIMER in APB2 domain: CK_TIMERx = 4 x CK_APB2) */
|
|
|
|
/* RCU_PLL0 register bit define */
|
|
/* The PLL0 VCO source clock prescaler */
|
|
#define RCU_PLL0PSC_DIV_MIN ((uint32_t)1U) /*!< PLL0PSC_DIV min value */
|
|
#define RCU_PLL0PSC_DIV_MAX ((uint32_t)63U) /*!< PLL0PSC_DIV max value */
|
|
|
|
/* The PLL0 VCO clock multiplication factor */
|
|
#define RCU_PLL0N_MUL_MIN ((uint32_t)9U) /*!< PLL0N_MUL min value */
|
|
#define RCU_PLL0N_MUL_MAX ((uint32_t)512U) /*!< PLL0N_MUL max value */
|
|
|
|
/* The PLL0P output frequency division factor from PLL0 VCO clock */
|
|
#define RCU_PLL0P_DIV_MIN ((uint32_t)1U) /*!< PLL0P_DIV min value */
|
|
#define RCU_PLL0P_DIV_MAX ((uint32_t)128U) /*!< PLL0P_DIV max value */
|
|
|
|
/* The PLL0R output frequency division factor from PLL0 VCO clock */
|
|
#define RCU_PLL0R_DIV_MIN ((uint32_t)1U) /*!< PLL0R_DIV min value */
|
|
#define RCU_PLL0R_DIV_MAX ((uint32_t)128U) /*!< PLL0R_DIV max value */
|
|
|
|
/* The PLL0Q output frequency division factor from PLL0 VCO clock */
|
|
#define RCU_PLL0Q_DIV_MIN ((uint32_t)1U) /*!< PLL0Q_DIV min value */
|
|
#define RCU_PLL0Q_DIV_MAX ((uint32_t)128U) /*!< PLL0Q_DIV max value */
|
|
|
|
/* PLL Clock Source Selection */
|
|
#define PLLALL_PLLSEL(regval) (BITS(16,17) & ((uint32_t)(regval) << 16U))
|
|
#define RCU_PLLSRC_IRC64MDIV PLLALL_PLLSEL(0) /*!< IRC64MDIV clock selected as source clock of PLL0, PLL1, PLL2 */
|
|
#define RCU_PLLSRC_LPIRC4M PLLALL_PLLSEL(1) /*!< LPIRC4M clock selected as source clock of PLL0, PLL1, PLL2 */
|
|
#define RCU_PLLSRC_HXTAL PLLALL_PLLSEL(2) /*!< HXTAL clock selected as source clock of PLL0, PLL1, PLL2 */
|
|
|
|
#define CHECK_PLL0_PSC_VALID(val) (((val) >= RCU_PLL0PSC_DIV_MIN) && ((val) <= RCU_PLL0PSC_DIV_MAX))
|
|
#define CHECK_PLL0_N_VALID(val) (((val) >= RCU_PLL0N_MUL_MIN) && ((val) <= RCU_PLL0N_MUL_MAX))
|
|
#define CHECK_PLL0_P_VALID(val) (((val) >= RCU_PLL0P_DIV_MIN) && ((val) <= RCU_PLL0P_DIV_MAX))
|
|
#define CHECK_PLL0_Q_VALID(val) (((val) >= RCU_PLL0Q_DIV_MIN) && ((val) <= RCU_PLL0Q_DIV_MAX))
|
|
#define CHECK_PLL0_R_VALID(val) (((val) >= RCU_PLL0R_DIV_MIN) && ((val) <= RCU_PLL0R_DIV_MAX))
|
|
|
|
/* RCU_BDCTL register bit define */
|
|
/* LXTAL drive capability */
|
|
#define BDCTL_LXTALDRI(regval) (BITS(3,4) & ((uint32_t)(regval) << 3U))
|
|
#define RCU_LXTAL_LOWDRI BDCTL_LXTALDRI(0) /*!< lower driving capability */
|
|
#define RCU_LXTAL_MED_LOWDRI BDCTL_LXTALDRI(1) /*!< medium low driving capability */
|
|
#define RCU_LXTAL_MED_HIGHDRI BDCTL_LXTALDRI(2) /*!< medium high driving capability */
|
|
#define RCU_LXTAL_HIGHDRI BDCTL_LXTALDRI(3) /*!< higher driving capability */
|
|
|
|
/* RTC clock entry selection */
|
|
#define BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8U))
|
|
#define RCU_RTCSRC_NONE BDCTL_RTCSRC(0) /*!< no clock selected */
|
|
#define RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1) /*!< RTC source clock select LXTAL */
|
|
#define RCU_RTCSRC_IRC32K BDCTL_RTCSRC(2) /*!< RTC source clock select IRC32K */
|
|
#define RCU_RTCSRC_HXTAL_DIV_RTCDIV BDCTL_RTCSRC(3) /*!< RTC source clock select HXTAL/RTCDIV */
|
|
|
|
/* RCU_PLL1 register bit define */
|
|
/* The PLL1 VCO source clock prescaler */
|
|
#define RCU_PLL1PSC_DIV_MIN ((uint32_t)1U) /*!< PLL1PSC_DIV min value */
|
|
#define RCU_PLL1PSC_DIV_MAX ((uint32_t)63U) /*!< PLL1PSC_DIV max value */
|
|
|
|
/* The PLL1 VCO clock multiplication factor */
|
|
#define RCU_PLL1N_MUL_MIN ((uint32_t)9U) /*!< PLL1N_MUL min value */
|
|
#define RCU_PLL1N_MUL_MAX ((uint32_t)512U) /*!< PLL1N_MUL max value */
|
|
|
|
/* The PLL1P output frequency division factor from PLL1 VCO clock */
|
|
#define RCU_PLL1P_DIV_MIN ((uint32_t)1U) /*!< PLL1P_DIV min value */
|
|
#define RCU_PLL1P_DIV_MAX ((uint32_t)128U) /*!< PLL1P_DIV max value */
|
|
|
|
/* The PLL1Q output frequency division factor from PLL1 VCO clock */
|
|
#define RCU_PLL1Q_DIV_MIN ((uint32_t)1U) /*!< PLL1Q_DIV min value */
|
|
#define RCU_PLL1Q_DIV_MAX ((uint32_t)128U) /*!< PLL1Q_DIV max value */
|
|
|
|
/* The PLL1R output frequency division factor from PLL1 VCO clock */
|
|
#define RCU_PLL1R_DIV_MIN ((uint32_t)1U) /*!< PLL1R_DIV min value */
|
|
#define RCU_PLL1R_DIV_MAX ((uint32_t)128U) /*!< PLL1R_DIV max value */
|
|
|
|
/* RCU_PLL2 register bit define */
|
|
/* The PLL2 VCO source clock prescaler */
|
|
#define RCU_PLL2PSC_DIV_MIN ((uint32_t)1U) /*!< PLL2PSC_DIV min value */
|
|
#define RCU_PLL2PSC_DIV_MAX ((uint32_t)63U) /*!< PLL2PSC_DIV max value */
|
|
|
|
/* The PLL2 VCO clock multi factor */
|
|
#define RCU_PLL2N_MUL_MIN ((uint32_t)9U) /*!< PLL2N_MUL min value */
|
|
#define RCU_PLL2N_MUL_MAX ((uint32_t)512U) /*!< PLL2N_MUL max value */
|
|
|
|
/* The PLL2P output frequency division factor from PLL2 VCO clock */
|
|
#define RCU_PLL2P_DIV_MIN ((uint32_t)1U) /*!< PLL2P_DIV min value */
|
|
#define RCU_PLL2P_DIV_MAX ((uint32_t)128U) /*!< PLL2P_DIV max value */
|
|
|
|
/* The PLL2Q output frequency division factor from PLL2 VCO clock */
|
|
#define RCU_PLL2Q_DIV_MIN ((uint32_t)1U) /*!< PLL2Q_DIV min value */
|
|
#define RCU_PLL2Q_DIV_MAX ((uint32_t)128U) /*!< PLL2Q_DIV max value */
|
|
|
|
/* The PLL2R output frequency division factor from PLL2 VCO clock */
|
|
#define RCU_PLL2R_DIV_MIN ((uint32_t)1U) /*!< PLL2R_DIV min value */
|
|
#define RCU_PLL2R_DIV_MAX ((uint32_t)128U) /*!< PLL2R_DIV max value */
|
|
|
|
#define CHECK_PLL1_PSC_VALID(val) (((val) >= RCU_PLL1PSC_DIV_MIN) && ((val) <= RCU_PLL1PSC_DIV_MAX))
|
|
#define CHECK_PLL1_N_VALID(val) (((val) >= RCU_PLL1N_MUL_MIN) && ((val) <= RCU_PLL1N_MUL_MAX))
|
|
#define CHECK_PLL1_P_VALID(val) (((val) >= RCU_PLL1P_DIV_MIN) && ((val) <= RCU_PLL1P_DIV_MAX))
|
|
#define CHECK_PLL1_Q_VALID(val) (((val) >= RCU_PLL1Q_DIV_MIN) && ((val) <= RCU_PLL1Q_DIV_MAX))
|
|
#define CHECK_PLL1_R_VALID(val) (((val) >= RCU_PLL1R_DIV_MIN) && ((val) <= RCU_PLL1R_DIV_MAX))
|
|
|
|
#define CHECK_PLL2_PSC_VALID(val) (((val) >= RCU_PLL2PSC_DIV_MIN) && ((val) <= RCU_PLL2PSC_DIV_MAX))
|
|
#define CHECK_PLL2_N_VALID(val) (((val) >= (RCU_PLL2N_MUL_MIN)) && ((val) <= RCU_PLL2N_MUL_MAX))
|
|
#define CHECK_PLL2_P_VALID(val) (((val) >= RCU_PLL2P_DIV_MIN) && ((val) <= RCU_PLL2P_DIV_MAX))
|
|
#define CHECK_PLL2_Q_VALID(val) (((val) >= RCU_PLL2Q_DIV_MIN) && ((val) <= RCU_PLL2Q_DIV_MAX))
|
|
#define CHECK_PLL2_R_VALID(val) (((val) >= RCU_PLL2R_DIV_MIN) && ((val) <= RCU_PLL2R_DIV_MAX))
|
|
|
|
/* PLL0 input clock range */
|
|
#define PLLALL_PLL0RNG(regval) (BITS(0,1) & ((uint32_t)(regval) << 0U))
|
|
#define RCU_PLL0RNG_1M_2M PLLALL_PLL0RNG(0) /*!< PLL0 input clock frequency: 1-2MHz */
|
|
#define RCU_PLL0RNG_2M_4M PLLALL_PLL0RNG(1) /*!< PLL0 input clock frequency: 2-4MHz */
|
|
#define RCU_PLL0RNG_4M_8M PLLALL_PLL0RNG(2) /*!< PLL0 input clock frequency: 4-8MHz */
|
|
#define RCU_PLL0RNG_8M_16M PLLALL_PLL0RNG(3) /*!< PLL0 input clock frequency: 8-16MHz */
|
|
|
|
/* PLL1 input clock range */
|
|
#define PLLALL_PLL1RNG(regval) (BITS(4,5) & ((uint32_t)(regval) << 4U))
|
|
#define RCU_PLL1RNG_1M_2M PLLALL_PLL1RNG(0) /*!< PLL1 input clock frequency: 1-2MHz */
|
|
#define RCU_PLL1RNG_2M_4M PLLALL_PLL1RNG(1) /*!< PLL1 input clock frequency: 2-4MHz */
|
|
#define RCU_PLL1RNG_4M_8M PLLALL_PLL1RNG(2) /*!< PLL1 input clock frequency: 4-8MHz */
|
|
#define RCU_PLL1RNG_8M_16M PLLALL_PLL1RNG(3) /*!< PLL1 input clock frequency: 8-16MHz */
|
|
|
|
/* PLL2 input clock range */
|
|
#define PLLALL_PLL2RNG(regval) (BITS(8,9) & ((uint32_t)(regval) << 8U))
|
|
#define RCU_PLL2RNG_1M_2M PLLALL_PLL2RNG(0) /*!< PLL2 input clock frequency: 1-2MHz */
|
|
#define RCU_PLL2RNG_2M_4M PLLALL_PLL2RNG(1) /*!< PLL2 input clock frequency: 2-4MHz */
|
|
#define RCU_PLL2RNG_4M_8M PLLALL_PLL2RNG(2) /*!< PLL2 input clock frequency: 4-8MHz */
|
|
#define RCU_PLL2RNG_8M_16M PLLALL_PLL2RNG(3) /*!< PLL2 input clock frequency: 8-16MHz */
|
|
|
|
/* PLL0 VCO selection */
|
|
#define RCU_PLL0VCO_192M_836M ((uint32_t)0x00000000U) /*!< PLL0 select wide VCO, range: 192-836MHz */
|
|
#define RCU_PLL0VCO_150M_420M RCU_PLLALL_PLL0VCOSEL /*!< PLL0 select narrow VCO, range: 150-420MHz */
|
|
|
|
/* PLL1 VCO selection */
|
|
#define RCU_PLL1VCO_192M_836M ((uint32_t)0x00000000U) /*!< PLL1 select wide VCO, range: 192-836MHz */
|
|
#define RCU_PLL1VCO_150M_420M RCU_PLLALL_PLL1VCOSEL /*!< PLL1 select narrow VCO, range: 150-420MHz */
|
|
|
|
/* PLL2 VCO selection */
|
|
#define RCU_PLL2VCO_192M_836M ((uint32_t)0x00000000U) /*!< PLL2 select wide VCO, range: 192-836MHz */
|
|
#define RCU_PLL2VCO_150M_420M RCU_PLLALL_PLL2VCOSEL /*!< PLL2 select narrow VCO, range: 150-420MHz */
|
|
|
|
/* RCU_ADDCTL0 register bit define */
|
|
/* 48MHz clock selection */
|
|
#define RCU_CK48MSRC_PLL48M ((uint32_t)0x00000000U) /*!< CK48M source clock select PLL48M */
|
|
#define RCU_CK48MSRC_IRC48M RCU_ADDCTL0_CK48MSEL /*!< CK48M source clock select IRC48M */
|
|
|
|
/* PLL48M clock selection */
|
|
#define RCU_PLL48MSRC_PLL0Q ((uint32_t)0x00000000U) /*!< PLL48M source clock select PLL0Q */
|
|
#define RCU_PLL48MSRC_PLL2P RCU_ADDCTL0_PLL48MSEL /*!< PLL48M source clock select PLL2P */
|
|
|
|
/* USBHS clock selection */
|
|
#define RCU_USBHSSEL_48M ((uint32_t)0x00000000U) /*!< 48M selected as USBHS source clock */
|
|
#define RCU_USBHSSEL_60M RCU_USBCLKCTL_USBHS0SEL /*!< 60M selected as USBHS source clock */
|
|
|
|
/* PLLUSBHSPRE clock selection */
|
|
#define RCU_PLLUSBHSPRE_HXTAL ((uint32_t)0x00000000U) /*!< CK_HATAL selected as PLLUSBHS source clock */
|
|
#define RCU_PLLUSBHSPRE_IRC48M RCU_USBCLKCTL_PLLUSBHS0PRESEL /*!< CK_IRC48M selected as PLLUSBHS source clock */
|
|
|
|
/* PLLUSBHSPREDV division factor */
|
|
#define PLLUSBCFG_PLLUSBHSPREDV(regval) (BITS(0,3) & ((uint32_t)(regval) << 0U))
|
|
#define RCU_PLLUSBHSPRE_DIV1 PLLUSBCFG_PLLUSBHSPREDV(1) /*!< PLLUSBHSPREDV input source clock divided by 1 */
|
|
#define RCU_PLLUSBHSPRE_DIV2 PLLUSBCFG_PLLUSBHSPREDV(2) /*!< PLLUSBHSPREDV input source clock divided by 2 */
|
|
#define RCU_PLLUSBHSPRE_DIV3 PLLUSBCFG_PLLUSBHSPREDV(3) /*!< PLLUSBHSPREDV input source clock divided by 3 */
|
|
#define RCU_PLLUSBHSPRE_DIV4 PLLUSBCFG_PLLUSBHSPREDV(4) /*!< PLLUSBHSPREDV input source clock divided by 4 */
|
|
#define RCU_PLLUSBHSPRE_DIV5 PLLUSBCFG_PLLUSBHSPREDV(5) /*!< PLLUSBHSPREDV input source clock divided by 5 */
|
|
#define RCU_PLLUSBHSPRE_DIV6 PLLUSBCFG_PLLUSBHSPREDV(6) /*!< PLLUSBHSPREDV input source clock divided by 6 */
|
|
#define RCU_PLLUSBHSPRE_DIV7 PLLUSBCFG_PLLUSBHSPREDV(7) /*!< PLLUSBHSPREDV input source clock divided by 7 */
|
|
#define RCU_PLLUSBHSPRE_DIV8 PLLUSBCFG_PLLUSBHSPREDV(8) /*!< PLLUSBHSPREDV input source clock divided by 8 */
|
|
#define RCU_PLLUSBHSPRE_DIV9 PLLUSBCFG_PLLUSBHSPREDV(9) /*!< PLLUSBHSPREDV input source clock divided by 9 */
|
|
#define RCU_PLLUSBHSPRE_DIV10 PLLUSBCFG_PLLUSBHSPREDV(10) /*!< PLLUSBHSPREDV input source clock divided by 10 */
|
|
#define RCU_PLLUSBHSPRE_DIV11 PLLUSBCFG_PLLUSBHSPREDV(11) /*!< PLLUSBHSPREDV input source clock divided by 11 */
|
|
#define RCU_PLLUSBHSPRE_DIV12 PLLUSBCFG_PLLUSBHSPREDV(12) /*!< PLLUSBHSPREDV input source clock divided by 12 */
|
|
#define RCU_PLLUSBHSPRE_DIV13 PLLUSBCFG_PLLUSBHSPREDV(13) /*!< PLLUSBHSPREDV input source clock divided by 13 */
|
|
#define RCU_PLLUSBHSPRE_DIV14 PLLUSBCFG_PLLUSBHSPREDV(14) /*!< PLLUSBHSPREDV input source clock divided by 14 */
|
|
#define RCU_PLLUSBHSPRE_DIV15 PLLUSBCFG_PLLUSBHSPREDV(15) /*!< PLLUSBHSPREDV input source clock divided by 15 */
|
|
|
|
/* USBHSDV division factor */
|
|
#define PLLUSBCFG_USBHSDV(regval) (BITS(4,6) & ((uint32_t)(regval) << 4U))
|
|
#define RCU_USBHS_DIV2 PLLUSBCFG_USBHSDV(0) /*!< USBHSDV input source clock divided by 2 */
|
|
#define RCU_USBHS_DIV4 PLLUSBCFG_USBHSDV(1) /*!< USBHSDV input source clock divided by 4 */
|
|
#define RCU_USBHS_DIV6 PLLUSBCFG_USBHSDV(2) /*!< USBHSDV input source clock divided by 6 */
|
|
#define RCU_USBHS_DIV8 PLLUSBCFG_USBHSDV(3) /*!< USBHSDV input source clock divided by 8 */
|
|
#define RCU_USBHS_DIV10 PLLUSBCFG_USBHSDV(4) /*!< USBHSDV input source clock divided by 10 */
|
|
#define RCU_USBHS_DIV12 PLLUSBCFG_USBHSDV(5) /*!< USBHSDV input source clock divided by 12 */
|
|
#define RCU_USBHS_DIV14 PLLUSBCFG_USBHSDV(6) /*!< USBHSDV input source clock divided by 14 */
|
|
#define RCU_USBHS_DIV16 PLLUSBCFG_USBHSDV(7) /*!< USBHSDV input source clock divided by 16 */
|
|
|
|
/* PLLUSB clock multiplication factor */
|
|
#define PLLUSBCFG_PLLUSBHSMF(regval) (BITS(8,14) & ((uint32_t)(regval) << 8U))
|
|
#define RCU_PLLUSBHS_MUL16 PLLUSBCFG_PLLUSBHSMF(16) /*!< PLLUSBHS source clock multiply by 16 */
|
|
#define RCU_PLLUSBHS_MUL17 PLLUSBCFG_PLLUSBHSMF(17) /*!< PLLUSBHS source clock multiply by 17 */
|
|
#define RCU_PLLUSBHS_MUL18 PLLUSBCFG_PLLUSBHSMF(18) /*!< PLLUSBHS source clock multiply by 18 */
|
|
#define RCU_PLLUSBHS_MUL19 PLLUSBCFG_PLLUSBHSMF(19) /*!< PLLUSBHS source clock multiply by 19 */
|
|
#define RCU_PLLUSBHS_MUL20 PLLUSBCFG_PLLUSBHSMF(20) /*!< PLLUSBHS source clock multiply by 20 */
|
|
#define RCU_PLLUSBHS_MUL21 PLLUSBCFG_PLLUSBHSMF(21) /*!< PLLUSBHS source clock multiply by 21 */
|
|
#define RCU_PLLUSBHS_MUL22 PLLUSBCFG_PLLUSBHSMF(22) /*!< PLLUSBHS source clock multiply by 22 */
|
|
#define RCU_PLLUSBHS_MUL23 PLLUSBCFG_PLLUSBHSMF(23) /*!< PLLUSBHS source clock multiply by 23 */
|
|
#define RCU_PLLUSBHS_MUL24 PLLUSBCFG_PLLUSBHSMF(24) /*!< PLLUSBHS source clock multiply by 24 */
|
|
#define RCU_PLLUSBHS_MUL25 PLLUSBCFG_PLLUSBHSMF(25) /*!< PLLUSBHS source clock multiply by 25 */
|
|
#define RCU_PLLUSBHS_MUL26 PLLUSBCFG_PLLUSBHSMF(26) /*!< PLLUSBHS source clock multiply by 26 */
|
|
#define RCU_PLLUSBHS_MUL27 PLLUSBCFG_PLLUSBHSMF(27) /*!< PLLUSBHS source clock multiply by 27 */
|
|
#define RCU_PLLUSBHS_MUL28 PLLUSBCFG_PLLUSBHSMF(28) /*!< PLLUSBHS source clock multiply by 28 */
|
|
#define RCU_PLLUSBHS_MUL29 PLLUSBCFG_PLLUSBHSMF(29) /*!< PLLUSBHS source clock multiply by 29 */
|
|
#define RCU_PLLUSBHS_MUL30 PLLUSBCFG_PLLUSBHSMF(30) /*!< PLLUSBHS source clock multiply by 30 */
|
|
#define RCU_PLLUSBHS_MUL31 PLLUSBCFG_PLLUSBHSMF(31) /*!< PLLUSBHS source clock multiply by 31 */
|
|
#define RCU_PLLUSBHS_MUL32 PLLUSBCFG_PLLUSBHSMF(32) /*!< PLLUSBHS source clock multiply by 32 */
|
|
#define RCU_PLLUSBHS_MUL33 PLLUSBCFG_PLLUSBHSMF(33) /*!< PLLUSBHS source clock multiply by 33 */
|
|
#define RCU_PLLUSBHS_MUL34 PLLUSBCFG_PLLUSBHSMF(34) /*!< PLLUSBHS source clock multiply by 34 */
|
|
#define RCU_PLLUSBHS_MUL35 PLLUSBCFG_PLLUSBHSMF(35) /*!< PLLUSBHS source clock multiply by 35 */
|
|
#define RCU_PLLUSBHS_MUL36 PLLUSBCFG_PLLUSBHSMF(36) /*!< PLLUSBHS source clock multiply by 36 */
|
|
#define RCU_PLLUSBHS_MUL37 PLLUSBCFG_PLLUSBHSMF(37) /*!< PLLUSBHS source clock multiply by 37 */
|
|
#define RCU_PLLUSBHS_MUL38 PLLUSBCFG_PLLUSBHSMF(38) /*!< PLLUSBHS source clock multiply by 38 */
|
|
#define RCU_PLLUSBHS_MUL39 PLLUSBCFG_PLLUSBHSMF(39) /*!< PLLUSBHS source clock multiply by 39 */
|
|
#define RCU_PLLUSBHS_MUL40 PLLUSBCFG_PLLUSBHSMF(40) /*!< PLLUSBHS source clock multiply by 40 */
|
|
#define RCU_PLLUSBHS_MUL41 PLLUSBCFG_PLLUSBHSMF(41) /*!< PLLUSBHS source clock multiply by 41 */
|
|
#define RCU_PLLUSBHS_MUL42 PLLUSBCFG_PLLUSBHSMF(42) /*!< PLLUSBHS source clock multiply by 42 */
|
|
#define RCU_PLLUSBHS_MUL43 PLLUSBCFG_PLLUSBHSMF(43) /*!< PLLUSBHS source clock multiply by 43 */
|
|
#define RCU_PLLUSBHS_MUL44 PLLUSBCFG_PLLUSBHSMF(44) /*!< PLLUSBHS source clock multiply by 44 */
|
|
#define RCU_PLLUSBHS_MUL45 PLLUSBCFG_PLLUSBHSMF(45) /*!< PLLUSBHS source clock multiply by 45 */
|
|
#define RCU_PLLUSBHS_MUL46 PLLUSBCFG_PLLUSBHSMF(46) /*!< PLLUSBHS source clock multiply by 46 */
|
|
#define RCU_PLLUSBHS_MUL47 PLLUSBCFG_PLLUSBHSMF(47) /*!< PLLUSBHS source clock multiply by 47 */
|
|
#define RCU_PLLUSBHS_MUL48 PLLUSBCFG_PLLUSBHSMF(48) /*!< PLLUSBHS source clock multiply by 48 */
|
|
#define RCU_PLLUSBHS_MUL49 PLLUSBCFG_PLLUSBHSMF(49) /*!< PLLUSBHS source clock multiply by 49 */
|
|
#define RCU_PLLUSBHS_MUL50 PLLUSBCFG_PLLUSBHSMF(50) /*!< PLLUSBHS source clock multiply by 50 */
|
|
#define RCU_PLLUSBHS_MUL51 PLLUSBCFG_PLLUSBHSMF(51) /*!< PLLUSBHS source clock multiply by 51 */
|
|
#define RCU_PLLUSBHS_MUL52 PLLUSBCFG_PLLUSBHSMF(52) /*!< PLLUSBHS source clock multiply by 52 */
|
|
#define RCU_PLLUSBHS_MUL53 PLLUSBCFG_PLLUSBHSMF(53) /*!< PLLUSBHS source clock multiply by 53 */
|
|
#define RCU_PLLUSBHS_MUL54 PLLUSBCFG_PLLUSBHSMF(54) /*!< PLLUSBHS source clock multiply by 54 */
|
|
#define RCU_PLLUSBHS_MUL55 PLLUSBCFG_PLLUSBHSMF(55) /*!< PLLUSBHS source clock multiply by 55 */
|
|
#define RCU_PLLUSBHS_MUL56 PLLUSBCFG_PLLUSBHSMF(56) /*!< PLLUSBHS source clock multiply by 56 */
|
|
#define RCU_PLLUSBHS_MUL57 PLLUSBCFG_PLLUSBHSMF(57) /*!< PLLUSBHS source clock multiply by 57 */
|
|
#define RCU_PLLUSBHS_MUL58 PLLUSBCFG_PLLUSBHSMF(58) /*!< PLLUSBHS source clock multiply by 58 */
|
|
#define RCU_PLLUSBHS_MUL59 PLLUSBCFG_PLLUSBHSMF(59) /*!< PLLUSBHS source clock multiply by 59 */
|
|
#define RCU_PLLUSBHS_MUL60 PLLUSBCFG_PLLUSBHSMF(60) /*!< PLLUSBHS source clock multiply by 60 */
|
|
#define RCU_PLLUSBHS_MUL61 PLLUSBCFG_PLLUSBHSMF(61) /*!< PLLUSBHS source clock multiply by 61 */
|
|
#define RCU_PLLUSBHS_MUL62 PLLUSBCFG_PLLUSBHSMF(62) /*!< PLLUSBHS source clock multiply by 62 */
|
|
#define RCU_PLLUSBHS_MUL63 PLLUSBCFG_PLLUSBHSMF(63) /*!< PLLUSBHS source clock multiply by 63 */
|
|
#define RCU_PLLUSBHS_MUL64 PLLUSBCFG_PLLUSBHSMF(64) /*!< PLLUSBHS source clock multiply by 64 */
|
|
#define RCU_PLLUSBHS_MUL65 PLLUSBCFG_PLLUSBHSMF(65) /*!< PLLUSBHS source clock multiply by 65 */
|
|
#define RCU_PLLUSBHS_MUL66 PLLUSBCFG_PLLUSBHSMF(66) /*!< PLLUSBHS source clock multiply by 66 */
|
|
#define RCU_PLLUSBHS_MUL67 PLLUSBCFG_PLLUSBHSMF(67) /*!< PLLUSBHS source clock multiply by 67 */
|
|
#define RCU_PLLUSBHS_MUL68 PLLUSBCFG_PLLUSBHSMF(68) /*!< PLLUSBHS source clock multiply by 68 */
|
|
#define RCU_PLLUSBHS_MUL69 PLLUSBCFG_PLLUSBHSMF(69) /*!< PLLUSBHS source clock multiply by 69 */
|
|
#define RCU_PLLUSBHS_MUL70 PLLUSBCFG_PLLUSBHSMF(70) /*!< PLLUSBHS source clock multiply by 70 */
|
|
#define RCU_PLLUSBHS_MUL71 PLLUSBCFG_PLLUSBHSMF(71) /*!< PLLUSBHS source clock multiply by 71 */
|
|
#define RCU_PLLUSBHS_MUL72 PLLUSBCFG_PLLUSBHSMF(72) /*!< PLLUSBHS source clock multiply by 72 */
|
|
#define RCU_PLLUSBHS_MUL73 PLLUSBCFG_PLLUSBHSMF(73) /*!< PLLUSBHS source clock multiply by 73 */
|
|
#define RCU_PLLUSBHS_MUL74 PLLUSBCFG_PLLUSBHSMF(74) /*!< PLLUSBHS source clock multiply by 74 */
|
|
#define RCU_PLLUSBHS_MUL75 PLLUSBCFG_PLLUSBHSMF(75) /*!< PLLUSBHS source clock multiply by 75 */
|
|
#define RCU_PLLUSBHS_MUL76 PLLUSBCFG_PLLUSBHSMF(76) /*!< PLLUSBHS source clock multiply by 76 */
|
|
#define RCU_PLLUSBHS_MUL77 PLLUSBCFG_PLLUSBHSMF(77) /*!< PLLUSBHS source clock multiply by 77 */
|
|
#define RCU_PLLUSBHS_MUL78 PLLUSBCFG_PLLUSBHSMF(78) /*!< PLLUSBHS source clock multiply by 78 */
|
|
#define RCU_PLLUSBHS_MUL79 PLLUSBCFG_PLLUSBHSMF(79) /*!< PLLUSBHS source clock multiply by 79 */
|
|
#define RCU_PLLUSBHS_MUL80 PLLUSBCFG_PLLUSBHSMF(80) /*!< PLLUSBHS source clock multiply by 80 */
|
|
#define RCU_PLLUSBHS_MUL81 PLLUSBCFG_PLLUSBHSMF(81) /*!< PLLUSBHS source clock multiply by 81 */
|
|
#define RCU_PLLUSBHS_MUL82 PLLUSBCFG_PLLUSBHSMF(82) /*!< PLLUSBHS source clock multiply by 82 */
|
|
#define RCU_PLLUSBHS_MUL83 PLLUSBCFG_PLLUSBHSMF(83) /*!< PLLUSBHS source clock multiply by 83 */
|
|
#define RCU_PLLUSBHS_MUL84 PLLUSBCFG_PLLUSBHSMF(84) /*!< PLLUSBHS source clock multiply by 84 */
|
|
#define RCU_PLLUSBHS_MUL85 PLLUSBCFG_PLLUSBHSMF(85) /*!< PLLUSBHS source clock multiply by 85 */
|
|
#define RCU_PLLUSBHS_MUL86 PLLUSBCFG_PLLUSBHSMF(86) /*!< PLLUSBHS source clock multiply by 86 */
|
|
#define RCU_PLLUSBHS_MUL87 PLLUSBCFG_PLLUSBHSMF(87) /*!< PLLUSBHS source clock multiply by 87 */
|
|
#define RCU_PLLUSBHS_MUL88 PLLUSBCFG_PLLUSBHSMF(88) /*!< PLLUSBHS source clock multiply by 88 */
|
|
#define RCU_PLLUSBHS_MUL89 PLLUSBCFG_PLLUSBHSMF(89) /*!< PLLUSBHS source clock multiply by 89 */
|
|
#define RCU_PLLUSBHS_MUL90 PLLUSBCFG_PLLUSBHSMF(90) /*!< PLLUSBHS source clock multiply by 90 */
|
|
#define RCU_PLLUSBHS_MUL91 PLLUSBCFG_PLLUSBHSMF(91) /*!< PLLUSBHS source clock multiply by 91 */
|
|
#define RCU_PLLUSBHS_MUL92 PLLUSBCFG_PLLUSBHSMF(92) /*!< PLLUSBHS source clock multiply by 92 */
|
|
#define RCU_PLLUSBHS_MUL93 PLLUSBCFG_PLLUSBHSMF(93) /*!< PLLUSBHS source clock multiply by 93 */
|
|
#define RCU_PLLUSBHS_MUL94 PLLUSBCFG_PLLUSBHSMF(94) /*!< PLLUSBHS source clock multiply by 94 */
|
|
#define RCU_PLLUSBHS_MUL95 PLLUSBCFG_PLLUSBHSMF(95) /*!< PLLUSBHS source clock multiply by 95 */
|
|
#define RCU_PLLUSBHS_MUL96 PLLUSBCFG_PLLUSBHSMF(96) /*!< PLLUSBHS source clock multiply by 96 */
|
|
#define RCU_PLLUSBHS_MUL97 PLLUSBCFG_PLLUSBHSMF(97) /*!< PLLUSBHS source clock multiply by 97 */
|
|
#define RCU_PLLUSBHS_MUL98 PLLUSBCFG_PLLUSBHSMF(98) /*!< PLLUSBHS source clock multiply by 98 */
|
|
#define RCU_PLLUSBHS_MUL99 PLLUSBCFG_PLLUSBHSMF(99) /*!< PLLUSBHS source clock multiply by 99 */
|
|
#define RCU_PLLUSBHS_MUL100 PLLUSBCFG_PLLUSBHSMF(100) /*!< PLLUSBHS source clock multiply by 100 */
|
|
#define RCU_PLLUSBHS_MUL101 PLLUSBCFG_PLLUSBHSMF(101) /*!< PLLUSBHS source clock multiply by 101 */
|
|
#define RCU_PLLUSBHS_MUL102 PLLUSBCFG_PLLUSBHSMF(102) /*!< PLLUSBHS source clock multiply by 102 */
|
|
#define RCU_PLLUSBHS_MUL103 PLLUSBCFG_PLLUSBHSMF(103) /*!< PLLUSBHS source clock multiply by 103 */
|
|
#define RCU_PLLUSBHS_MUL104 PLLUSBCFG_PLLUSBHSMF(104) /*!< PLLUSBHS source clock multiply by 104 */
|
|
#define RCU_PLLUSBHS_MUL105 PLLUSBCFG_PLLUSBHSMF(105) /*!< PLLUSBHS source clock multiply by 105 */
|
|
#define RCU_PLLUSBHS_MUL106 PLLUSBCFG_PLLUSBHSMF(106) /*!< PLLUSBHS source clock multiply by 106 */
|
|
#define RCU_PLLUSBHS_MUL107 PLLUSBCFG_PLLUSBHSMF(107) /*!< PLLUSBHS source clock multiply by 107 */
|
|
#define RCU_PLLUSBHS_MUL108 PLLUSBCFG_PLLUSBHSMF(108) /*!< PLLUSBHS source clock multiply by 108 */
|
|
#define RCU_PLLUSBHS_MUL109 PLLUSBCFG_PLLUSBHSMF(109) /*!< PLLUSBHS source clock multiply by 109 */
|
|
#define RCU_PLLUSBHS_MUL110 PLLUSBCFG_PLLUSBHSMF(110) /*!< PLLUSBHS source clock multiply by 110 */
|
|
#define RCU_PLLUSBHS_MUL111 PLLUSBCFG_PLLUSBHSMF(111) /*!< PLLUSBHS source clock multiply by 111 */
|
|
#define RCU_PLLUSBHS_MUL112 PLLUSBCFG_PLLUSBHSMF(112) /*!< PLLUSBHS source clock multiply by 112 */
|
|
#define RCU_PLLUSBHS_MUL113 PLLUSBCFG_PLLUSBHSMF(113) /*!< PLLUSBHS source clock multiply by 113 */
|
|
#define RCU_PLLUSBHS_MUL114 PLLUSBCFG_PLLUSBHSMF(114) /*!< PLLUSBHS source clock multiply by 114 */
|
|
#define RCU_PLLUSBHS_MUL115 PLLUSBCFG_PLLUSBHSMF(115) /*!< PLLUSBHS source clock multiply by 115 */
|
|
#define RCU_PLLUSBHS_MUL116 PLLUSBCFG_PLLUSBHSMF(116) /*!< PLLUSBHS source clock multiply by 116 */
|
|
#define RCU_PLLUSBHS_MUL117 PLLUSBCFG_PLLUSBHSMF(117) /*!< PLLUSBHS source clock multiply by 117 */
|
|
#define RCU_PLLUSBHS_MUL118 PLLUSBCFG_PLLUSBHSMF(118) /*!< PLLUSBHS source clock multiply by 118 */
|
|
#define RCU_PLLUSBHS_MUL119 PLLUSBCFG_PLLUSBHSMF(119) /*!< PLLUSBHS source clock multiply by 119 */
|
|
#define RCU_PLLUSBHS_MUL120 PLLUSBCFG_PLLUSBHSMF(120) /*!< PLLUSBHS source clock multiply by 120 */
|
|
#define RCU_PLLUSBHS_MUL121 PLLUSBCFG_PLLUSBHSMF(121) /*!< PLLUSBHS source clock multiply by 121 */
|
|
#define RCU_PLLUSBHS_MUL122 PLLUSBCFG_PLLUSBHSMF(122) /*!< PLLUSBHS source clock multiply by 122 */
|
|
#define RCU_PLLUSBHS_MUL123 PLLUSBCFG_PLLUSBHSMF(123) /*!< PLLUSBHS source clock multiply by 123 */
|
|
#define RCU_PLLUSBHS_MUL124 PLLUSBCFG_PLLUSBHSMF(124) /*!< PLLUSBHS source clock multiply by 124 */
|
|
#define RCU_PLLUSBHS_MUL125 PLLUSBCFG_PLLUSBHSMF(125) /*!< PLLUSBHS source clock multiply by 125 */
|
|
#define RCU_PLLUSBHS_MUL126 PLLUSBCFG_PLLUSBHSMF(126) /*!< PLLUSBHS source clock multiply by 126 */
|
|
#define RCU_PLLUSBHS_MUL127 PLLUSBCFG_PLLUSBHSMF(127) /*!< PLLUSBHS source clock multiply by 127 */
|
|
|
|
/* USBHS prescaler factor */
|
|
#define USBCLKCTL_USBHSPSC(regval) (BITS(16,18) & ((uint32_t)(regval) << 16U))
|
|
#define RCU_USBHSPSC_DIV1 USBCLKCTL_USBHSPSC(0) /*!< USBHS prescaler select CK_PLL1Q / 1 */
|
|
#define RCU_USBHSPSC_DIV2 USBCLKCTL_USBHSPSC(1) /*!< USBHS prescaler select CK_PLL1Q / 2 */
|
|
#define RCU_USBHSPSC_DIV3 USBCLKCTL_USBHSPSC(2) /*!< USBHS prescaler select CK_PLL1Q / 3 */
|
|
#define RCU_USBHSPSC_DIV4 USBCLKCTL_USBHSPSC(3) /*!< USBHS prescaler select CK_PLL1Q / 4 */
|
|
#define RCU_USBHSPSC_DIV5 USBCLKCTL_USBHSPSC(4) /*!< USBHS prescaler select CK_PLL1Q / 5 */
|
|
#define RCU_USBHSPSC_DIV6 USBCLKCTL_USBHSPSC(5) /*!< USBHS prescaler select CK_PLL1Q / 6 */
|
|
#define RCU_USBHSPSC_DIV7 USBCLKCTL_USBHSPSC(6) /*!< USBHS prescaler select CK_PLL1Q / 7 */
|
|
#define RCU_USBHSPSC_DIV8 USBCLKCTL_USBHSPSC(7) /*!< USBHS prescaler select CK_PLL1Q / 8 */
|
|
|
|
/* USBHS 48MHz clock selection */
|
|
#define USBCLKCTL_USB48MSEL(regval) (BITS(5,6) & ((uint32_t)(regval) << 5U))
|
|
#define RCU_USB48MSRC_PLL0R USBCLKCTL_USB48MSEL(0) /*!< select PLL0R as USABHS 48MHz clock source */
|
|
#define RCU_USB48MSRC_PLLUSBHS USBCLKCTL_USB48MSEL(1) /*!< select PLLUSBHS / USBHSDV as USABHS 48MHz clock source */
|
|
#define RCU_USB48MSRC_PLL1Q USBCLKCTL_USB48MSEL(2) /*!< select PLL1Q / USBHSPSC as USABHS 48MHz clock source */
|
|
#define RCU_USB48MSRC_IRC48M USBCLKCTL_USB48MSEL(3) /*!< select IRC48M as USABHS 48MHz clock source */
|
|
|
|
/* parameter check definitions */
|
|
#ifdef FW_DEBUG_ERR_REPORT
|
|
/* check system clock source configuration */
|
|
#define NOT_RCU_SYS_CLOCK_CONFIG(ck_sys) (((ck_sys) != RCU_CKSYSSRC_IRC64MDIV) && ((ck_sys) != RCU_CKSYSSRC_HXTAL) && \
|
|
((ck_sys) != RCU_CKSYSSRC_LPIRC4M) && ((ck_sys) != RCU_CKSYSSRC_PLL0P))
|
|
/* check AHB clock prescaler selection */
|
|
#define NOT_RCU_AHB_CKSYS_DIV(ck_ahb) (((ck_ahb) != RCU_AHB_CKSYS_DIV1) && ((ck_ahb) != RCU_AHB_CKSYS_DIV2) && \
|
|
((ck_ahb) != RCU_AHB_CKSYS_DIV4) && ((ck_ahb) != RCU_AHB_CKSYS_DIV8) && \
|
|
((ck_ahb) != RCU_AHB_CKSYS_DIV16) && ((ck_ahb) != RCU_AHB_CKSYS_DIV64) && \
|
|
((ck_ahb) != RCU_AHB_CKSYS_DIV128) && ((ck_ahb) != RCU_AHB_CKSYS_DIV256) && \
|
|
((ck_ahb) != RCU_AHB_CKSYS_DIV512))
|
|
/* check APB1 clock prescaler selection */
|
|
#define NOT_RCU_APB1_CKAHB_DIV(ck_apb1) (((ck_apb1) != RCU_APB1_CKAHB_DIV1) && ((ck_apb1) != RCU_APB1_CKAHB_DIV2) && \
|
|
((ck_apb1) != RCU_APB1_CKAHB_DIV4) && ((ck_apb1) != RCU_APB1_CKAHB_DIV8) && \
|
|
((ck_apb1) != RCU_APB1_CKAHB_DIV16))
|
|
/* check APB2 clock prescaler selection */
|
|
#define NOT_RCU_APB2_CKAHB_DIV(ck_apb2) (((ck_apb2) != RCU_APB2_CKAHB_DIV1) && ((ck_apb2) != RCU_APB2_CKAHB_DIV2) && \
|
|
((ck_apb2) != RCU_APB2_CKAHB_DIV4) && ((ck_apb2) != RCU_APB2_CKAHB_DIV8) && \
|
|
((ck_apb2) != RCU_APB2_CKAHB_DIV16))
|
|
/* check APB3 clock prescaler selection */
|
|
#define NOT_RCU_APB3_CKAHB_DIV(ck_apb3) (((ck_apb3) != RCU_APB3_CKAHB_DIV1) && ((ck_apb3) != RCU_APB3_CKAHB_DIV2) && \
|
|
((ck_apb3) != RCU_APB3_CKAHB_DIV4) && ((ck_apb3) != RCU_APB3_CKAHB_DIV8) && \
|
|
((ck_apb3) != RCU_APB3_CKAHB_DIV16))
|
|
/* check APB4 clock prescaler selection */
|
|
#define NOT_RCU_APB4_CKAHB_DIV(ck_apb4) (((ck_apb4) != RCU_APB4_CKAHB_DIV1) && ((ck_apb4) != RCU_APB4_CKAHB_DIV2) && \
|
|
((ck_apb4) != RCU_APB4_CKAHB_DIV4) && ((ck_apb4) != RCU_APB4_CKAHB_DIV8) && \
|
|
((ck_apb4) != RCU_APB4_CKAHB_DIV16))
|
|
/* check CK_OUT0 clock source */
|
|
#define NOT_RCU_CKOUT0_SOURCE(ckout0_src) (((ckout0_src) != RCU_CKOUT0SRC_IRC64MDIV) && ((ckout0_src) != RCU_CKOUT0SRC_LXTAL) && \
|
|
((ckout0_src) != RCU_CKOUT0SRC_HXTAL) && ((ckout0_src) != RCU_CKOUT0SRC_PLL0P) && \
|
|
((ckout0_src) != RCU_CKOUT0SRC_IRC48M) && ((ckout0_src) != RCU_CKOUT0SRC_PER) && \
|
|
((ckout0_src) != RCU_CKOUT0SRC_USBHS060M) && ((ckout0_src) != RCU_CKOUT0SRC_USBHS160M))
|
|
/* check CK_OUT0 divider */
|
|
#define RCU_CKOUT0_LOW RCU_CKOUT0_DIV1
|
|
#define RCU_CKOUT0_HIGH RCU_CKOUT0_DIV15
|
|
#define NOT_RCU_CKOUT0_DIVIDER(ckout0_div) (((RCU_CKOUT0_HIGH) < (ckout0_div)) || ((RCU_CKOUT0_LOW) > (ckout0_div)))
|
|
/* check CK_OUT1 clock source */
|
|
#define NOT_RCU_CKOUT1_SOURCE(ckout1_src) (((ckout1_src) != RCU_CKOUT1SRC_SYSTEMCLOCK) && ((ckout1_src) != RCU_CKOUT1SRC_PLL1R) && \
|
|
((ckout1_src) != RCU_CKOUT1SRC_HXTAL) && ((ckout1_src) != RCU_CKOUT1SRC_PLL0P) && \
|
|
((ckout1_src) != RCU_CKOUT1SRC_LPIRC4M) && ((ckout1_src) != RCU_CKOUT1SRC_IRC32K) && \
|
|
((ckout1_src) != RCU_CKOUT1SRC_PLL2R))
|
|
/* check CK_OUT1 divider */
|
|
#define RCU_CKOUT1_LOW RCU_CKOUT1_DIV1
|
|
#define RCU_CKOUT1_HIGH RCU_CKOUT1_DIV15
|
|
#define NOT_RCU_CKOUT1_DIVIDER(ckout1_div) (((RCU_CKOUT1_HIGH) < (ckout1_div)) || ((RCU_CKOUT1_LOW) > (ckout1_div)))
|
|
/* check PLL input clock range */
|
|
#define NOT_RCU_PLL_INPUT_CLOCKK_RANGE(ck_input) (((ck_input) != RCU_PLL0RNG_1M_2M) && ((ck_input) != RCU_PLL0RNG_2M_4M) && \
|
|
((ck_input) != RCU_PLL0RNG_4M_8M) && ((ck_input) != RCU_PLL0RNG_8M_16M) && \
|
|
((ck_input) != RCU_PLL1RNG_1M_2M) && ((ck_input) != RCU_PLL1RNG_2M_4M) && \
|
|
((ck_input) != RCU_PLL1RNG_4M_8M) && ((ck_input) != RCU_PLL1RNG_8M_16M) && \
|
|
((ck_input) != RCU_PLL2RNG_1M_2M) && ((ck_input) != RCU_PLL2RNG_2M_4M) && \
|
|
((ck_input) != RCU_PLL2RNG_4M_8M) && ((ck_input) != RCU_PLL2RNG_8M_16M))
|
|
/* check PLL output clock range */
|
|
#define NOT_RCU_PLL_OUTPUT_CLOCKK_RANGE(ck_output) (((ck_output) != RCU_PLL0VCO_192M_836M) && ((ck_output) != RCU_PLL0VCO_150M_420M) && \
|
|
((ck_output) != RCU_PLL1VCO_192M_836M) && ((ck_output) != RCU_PLL1VCO_150M_420M) && \
|
|
((ck_output) != RCU_PLL2VCO_192M_836M) && ((ck_output) != RCU_PLL2VCO_150M_420M))
|
|
/* check fractional part of the multiplication factor */
|
|
#define RCU_FRACN_HIGH (0x1FFFF)
|
|
#define NOT_RCU_PLL_FRACN(pll_fracn) ((uint32_t)RCU_FRACN_HIGH < ((uint32_t)(pll_fracn)))
|
|
/* check PLL clock source */
|
|
#define NOT_RCU_PLL_SOURCE(pll_src) (((pll_src) != RCU_PLLSRC_IRC64MDIV) && ((pll_src) != RCU_PLLSRC_LPIRC4M) && \
|
|
((pll_src) != RCU_PLLSRC_HXTAL))
|
|
/* check PLLP/PLLQ/PLLR divider */
|
|
#define NOT_RCU_PLLPQR_DIVIDER(pllxy) (((pllxy) != RCU_PLL0P) && ((pllxy) != RCU_PLL0Q) && \
|
|
((pllxy) != RCU_PLL0R) && ((pllxy) != RCU_PLL1P) && \
|
|
((pllxy) != RCU_PLL1Q) && ((pllxy) != RCU_PLL1R) && \
|
|
((pllxy) != RCU_PLL2P) && ((pllxy) != RCU_PLL2Q) && \
|
|
((pllxy) != RCU_PLL2R))
|
|
/* check PLLUSBHSPRE clock selection */
|
|
#define NOT_RCU_PLLUSB_PRESEL(pllusb_presel) (((pllusb_presel) != RCU_PLLUSBHSPRE_HXTAL) && ((pllusb_presel) != RCU_PLLUSBHSPRE_IRC48M))
|
|
/* check PLLUSBHS clock divider */
|
|
#define RCU_PLLUSBHS_DIVIDER_LOW RCU_PLLUSBHSPRE_DIV1
|
|
#define RCU_PLLUSBHS_DIVIDER_HIGH RCU_PLLUSBHSPRE_DIV15
|
|
#define NOT_RCU_PLLUSBHS_DIVIDER(pllusb_predv) (((RCU_PLLUSBHS_DIVIDER_HIGH) < (pllusb_predv)) || ((RCU_PLLUSBHS_DIVIDER_LOW) > (pllusb_predv)))
|
|
/* check PLLUSBHS0 clock multiplication factor */
|
|
#define RCU_PLLUSBHS_MULTI_LOW RCU_PLLUSBHS_MUL16
|
|
#define RCU_PLLUSBHS_MULTI_HIGH RCU_PLLUSBHS_MUL127
|
|
#define NOT_RCU_PLLUSBHS_MULTI(pllusb_mf) (((RCU_PLLUSBHS_MULTI_HIGH) < (pllusb_mf)) || ((RCU_PLLUSBHS_MULTI_LOW) > (pllusb_mf)))
|
|
/* check USBHSDV clock divider */
|
|
#define RCU_USBHS_DIVIDER_HIGH (RCU_USBHS_DIV16 >> 4U)
|
|
#define NOT_RCU_USBHS_DIVIDER(usbhsdv) ((RCU_USBHS_DIVIDER_HIGH) < ((usbhsdv)>> 4U))
|
|
/* check RTC clock source */
|
|
#define NOT_RCU_RTC_CLOCK_SOURCE(rtc_clock_source) (((rtc_clock_source) != RCU_RTCSRC_NONE) && ((rtc_clock_source) != RCU_RTCSRC_LXTAL) && \
|
|
((rtc_clock_source) != RCU_RTCSRC_IRC32K) && ((rtc_clock_source) != RCU_RTCSRC_HXTAL_DIV_RTCDIV))
|
|
/* check RTC clock divider */
|
|
#define RCU_RTC_DIVIDER_HIGH ((RCU_RTC_HXTAL_DIV63) >> 16U)
|
|
#define NOT_RCU_RTC_DIVIDER(rtc_div) (((RCU_RTC_DIVIDER_HIGH) < ((rtc_div) >> 16U)))
|
|
/* check CK48M clock source */
|
|
#define NOT_RCU_CK48M_CLOCK_SOURCE(ck48m_clock_source) (((ck48m_clock_source) != RCU_CK48MSRC_PLL48M) && ((ck48m_clock_source) != RCU_CK48MSRC_IRC48M))
|
|
/* check PLL48M clock source */
|
|
#define NOT_RCU_PLL48M_CLOCK_SOURCE(pll48m_clock_source) (((pll48m_clock_source) != RCU_PLL48MSRC_PLL0Q) && ((pll48m_clock_source) != RCU_PLL48MSRC_PLL2P))
|
|
/* check IRC64M clock divider */
|
|
#define NOT_RCU_IRC64M_CLOCK_DIV(ck_irc64mdiv) (((ck_irc64mdiv) != RCU_IRC64M_DIV1) && ((ck_irc64mdiv) != RCU_IRC64M_DIV2) && \
|
|
((ck_irc64mdiv) != RCU_IRC64M_DIV4) && ((ck_irc64mdiv) != RCU_IRC64M_DIV8))
|
|
/* check TIMER prescaler selection */
|
|
#define NOT_RCU_TIMER_PRE_SEL(timer_clock_prescaler) (((timer_clock_prescaler) != RCU_TIMER_PSC_MUL2) && ((timer_clock_prescaler) != RCU_TIMER_PSC_MUL4))
|
|
/* check SPI clock selection */
|
|
#define NOT_RCU_SPISRC_SEL(ck_spi) (((ck_spi) != RCU_SPISRC_PLL0Q) && ((ck_spi) != RCU_SPISRC_PLL1P) && \
|
|
((ck_spi) != RCU_SPISRC_PLL2P) && ((ck_spi) != RCU_SPISRC_I2S_CKIN) && \
|
|
((ck_spi) != RCU_SPISRC_PER) && ((ck_spi) != RCU_SPISRC_APB2) && \
|
|
((ck_spi) != RCU_SPISRC_PLL1Q) && ((ck_spi) != RCU_SPISRC_PLL2Q) && \
|
|
((ck_spi) != RCU_SPISRC_IRC64MDIV) && ((ck_spi) != RCU_SPISRC_LPIRC4M) && \
|
|
((ck_spi) != RCU_SPISRC_HXTAL) && ((ck_spi) != RCU_SPI5SRC_I2S_CKIN))
|
|
/* check Deep-sleep wakeup system clock source selection */
|
|
#define NOT_RCU_DSPWUSSEL(ck_dspwussel) (((ck_dspwussel) != RCU_DSPWUSSEL_IRC64MDIV) && ((ck_dspwussel) != RCU_DSPWUSSEL_LPIRC4M))
|
|
/* check USART clock selection */
|
|
#define NOT_RCU_USARTSRC_SEL(ck_usart) (((ck_usart) != RCU_USARTSRC_APB) && ((ck_usart) != RCU_USARTSRC_AHB) && \
|
|
((ck_usart) != RCU_USARTSRC_LXTAL) && ((ck_usart) != RCU_USARTSRC_IRC64MDIV))
|
|
/* check I2C clock selection */
|
|
#define NOT_RCU_I2CSRC_SEL(ck_i2c) (((ck_i2c) != RCU_I2CSRC_APB1) && ((ck_i2c) != RCU_I2CSRC_PLL2R) && \
|
|
((ck_i2c) != RCU_I2CSRC_IRC64MDIV) && ((ck_i2c) != RCU_I2CSRC_LPIRC4M))
|
|
/* check CAN clock selection */
|
|
#define NOT_RCU_CANSRC_SEL(ck_can) (((ck_can) != RCU_CANSRC_HXTAL) && ((ck_can) != RCU_CANSRC_APB2) && \
|
|
((ck_can) != RCU_CANSRC_APB2_DIV2) && ((ck_can) != RCU_CANSRC_IRC64MDIV))
|
|
/* check ADC clock selection */
|
|
#define NOT_RCU_ADCSRC_SEL(ck_adc) (((ck_adc) != RCU_ADCSRC_PLL1P) && ((ck_adc) != RCU_ADCSRC_PLL2R) && \
|
|
((ck_adc) != RCU_ADCSRC_PER))
|
|
/* check EXMC clock selection */
|
|
#define NOT_RCU_EXMCSRC_SEL(ck_exmc) (((ck_exmc) != RCU_EXMCSRC_AHB) && ((ck_exmc) != RCU_EXMCSRC_PLL0Q) && \
|
|
((ck_exmc) != RCU_EXMCSRC_PLL1R) && ((ck_exmc) != RCU_EXMCSRC_PER))
|
|
/* check HPDF audio clock selection */
|
|
#define NOT_RCU_HPDFASRC_SEL(ck_hpdfa) (((ck_hpdfa) != RCU_HPDFASRC_PLL0Q) && ((ck_hpdfa) != RCU_HPDFASRC_PLL1P) && \
|
|
((ck_hpdfa) != RCU_HPDFASRC_PLL2P) && ((ck_hpdfa) != RCU_HPDFASRC_I2S_CKIN) && \
|
|
((ck_hpdfa) != RCU_HPDFASRC_PER))
|
|
/* check HPDF clock selection */
|
|
#define NOT_RCU_HPDFSRC_SEL(ck_hpdf) (((ck_hpdf) != RCU_HPDFSRC_APB2) && ((ck_hpdf) != RCU_HPDFSRC_AHB))
|
|
/* check PER clock selection */
|
|
#define NOT_RCU_PERSRC_SEL(ck_per) (((ck_per) != RCU_PERSRC_IRC64MDIV) && ((ck_per) != RCU_PERSRC_LPIRC4M) && \
|
|
((ck_per) != RCU_PERSRC_HXTAL))
|
|
/* check PLL1Q USBHS prescaler divider */
|
|
#define RCU_PLL1Q_USBHS_DIVIDER_HIGH (RCU_USBHSPSC_DIV8 >> 16U)
|
|
#define NOT_RCU_USBHSPSC(ck_usbhspsc) ((RCU_PLL1Q_USBHS_DIVIDER_HIGH) < ((ck_usbhspsc) >> 16U))
|
|
/* check USB48M clock selection */
|
|
#define NOT_RCU_USB48MSRC_SEL(ck_usb48m) (((ck_usb48m) != RCU_USB48MSRC_PLL0R) && ((ck_usb48m) != RCU_USB48MSRC_PLLUSBHS) && \
|
|
((ck_usb48m) != RCU_USB48MSRC_PLL1Q) && ((ck_usb48m) != RCU_USB48MSRC_IRC48M))
|
|
/* check USBHS clock selection */
|
|
#define NOT_RCU_USBHS_SEL(ck_usbhs) (((ck_usbhs) != RCU_USBHSSEL_48M) && ((ck_usbhs) != RCU_USBHSSEL_60M))
|
|
/* check LXTAL drive capability */
|
|
#define NOT_RCU_LXTAL_DRICAP_SEL(lxtal_dricap) (((lxtal_dricap) != RCU_LXTAL_LOWDRI) && ((lxtal_dricap) != RCU_LXTAL_MED_LOWDRI) && \
|
|
((lxtal_dricap) != RCU_LXTAL_MED_HIGHDRI) && ((lxtal_dricap) != RCU_LXTAL_HIGHDRI))
|
|
/* check IRC64M adjust value */
|
|
#define RCU_IRC64M_ADJUST_HIGH (0x7FU)
|
|
#define NOT_RCU_IRC64M_ADJUST_VALUE(irc64m_adjval) (((RCU_IRC64M_ADJUST_HIGH) < (irc64m_adjval)))
|
|
/* check LPIRC4M adjust value */
|
|
#define RCU_LPIRC4M_ADJUST_HIGH (0x3FU)
|
|
#define NOT_RCU_LPIRC4M_ADJUST_VALUE(lpirc4m_adjval) (((RCU_IRC64M_ADJUST_HIGH) < (lpirc4m_adjval)))
|
|
#endif
|
|
|
|
/* function declarations */
|
|
/* peripherals clock configure functions */
|
|
/* deinitialize the RCU */
|
|
void rcu_deinit(void);
|
|
/* enable the peripherals clock */
|
|
void rcu_periph_clock_enable(rcu_periph_enum periph);
|
|
/* disable the peripherals clock */
|
|
void rcu_periph_clock_disable(rcu_periph_enum periph);
|
|
/* enable the peripherals clock when sleep mode */
|
|
void rcu_periph_clock_sleep_enable(rcu_periph_sleep_enum periph);
|
|
/* disable the peripherals clock when sleep mode */
|
|
void rcu_periph_clock_sleep_disable(rcu_periph_sleep_enum periph);
|
|
/* reset the peripherals */
|
|
void rcu_periph_reset_enable(rcu_periph_reset_enum periph_reset);
|
|
/* disable reset the peripheral */
|
|
void rcu_periph_reset_disable(rcu_periph_reset_enum periph_reset);
|
|
/* reset the BKP */
|
|
void rcu_bkp_reset_enable(void);
|
|
/* disable the BKP reset */
|
|
void rcu_bkp_reset_disable(void);
|
|
|
|
/* system and peripherals clock source, system reset configure functions */
|
|
/* configure the system clock source */
|
|
void rcu_system_clock_source_config(uint32_t ck_sys);
|
|
/* get the system clock source */
|
|
uint32_t rcu_system_clock_source_get(void);
|
|
/* configure the AHB prescaler selection */
|
|
void rcu_ahb_clock_config(uint32_t ck_ahb);
|
|
/* configure the APB1 prescaler selection */
|
|
void rcu_apb1_clock_config(uint32_t ck_apb1);
|
|
/* configure the APB2 prescaler selection */
|
|
void rcu_apb2_clock_config(uint32_t ck_apb2);
|
|
/* configure the APB3 prescaler selection */
|
|
void rcu_apb3_clock_config(uint32_t ck_apb3);
|
|
/* configure the APB4 prescaler selection */
|
|
void rcu_apb4_clock_config(uint32_t ck_apb4);
|
|
/* configure the CK_OUT0 clock source and divider */
|
|
void rcu_ckout0_config(uint32_t ckout0_src, uint32_t ckout0_div);
|
|
/* configure the CK_OUT1 clock source and divider */
|
|
void rcu_ckout1_config(uint32_t ckout1_src, uint32_t ckout1_div);
|
|
|
|
/* configure the PLL input and output clock range */
|
|
void rcu_pll_input_output_clock_range_config(pll_idx_enum pll_idx, uint32_t ck_input, uint32_t ck_output);
|
|
/* configure fractional part of the multiplication factor for PLL VCO */
|
|
void rcu_pll_fractional_config(pll_idx_enum pll_idx, uint32_t pll_fracn);
|
|
/* enable PLL fractional latch */
|
|
void rcu_pll_fractional_latch_enable(pll_idx_enum pll_idx);
|
|
/* disable PLL fractional latch */
|
|
void rcu_pll_fractional_latch_disable(pll_idx_enum pll_idx);
|
|
/* configure the PLLs clock source selection */
|
|
void rcu_pll_source_config(uint32_t pll_src);
|
|
/* configure the PLL0 */
|
|
ErrStatus rcu_pll0_config(uint32_t pll0_psc, uint32_t pll0_n, uint32_t pll0_p, uint32_t pll0_q, uint32_t pll0_r);
|
|
/* configure the PLL1 clock */
|
|
ErrStatus rcu_pll1_config(uint32_t pll1_psc, uint32_t pll1_n, uint32_t pll1_p, uint32_t pll1_q, uint32_t pll1_r);
|
|
/* configure the PLL2 clock */
|
|
ErrStatus rcu_pll2_config(uint32_t pll2_psc, uint32_t pll2_n, uint32_t pll2_p, uint32_t pll2_q, uint32_t pll2_r);
|
|
/* enable the pllp pllq pllr divider output */
|
|
void rcu_pll_clock_output_enable(uint32_t pllxy);
|
|
/* disable the pllp pllq pllr divider output */
|
|
void rcu_pll_clock_output_disable(uint32_t pllxy);
|
|
/* configure the PLLUSBHS0 clock */
|
|
void rcu_pllusb0_config(uint32_t pllusb_presel, uint32_t pllusb_predv, uint32_t pllusb_mf, uint32_t usbhsdv);
|
|
/* configure the PLLUSBHS1 clock */
|
|
void rcu_pllusb1_config(uint32_t pllusb_presel, uint32_t pllusb_predv, uint32_t pllusb_mf, uint32_t usbhsdv);
|
|
/* configure the RTC clock source selection */
|
|
void rcu_rtc_clock_config(uint32_t rtc_clock_source);
|
|
/* configure the frequency division of RTC clock when HXTAL was selected as its clock source */
|
|
void rcu_rtc_div_config(uint32_t rtc_div);
|
|
/* configure the CK48M clock selection */
|
|
void rcu_ck48m_clock_config(uint32_t ck48m_clock_source);
|
|
/* configure the PLL48M clock selection */
|
|
void rcu_pll48m_clock_config(uint32_t pll48m_clock_source);
|
|
/* configure the IRC64M clock divider selection */
|
|
void rcu_irc64mdiv_clock_config(uint32_t ck_irc64mdiv);
|
|
/* get the irc64mdiv clock */
|
|
uint32_t rcu_irc64mdiv_freq_get(void);
|
|
/* configure the TIMER clock prescaler selection */
|
|
void rcu_timer_clock_prescaler_config(uint32_t timer_clock_prescaler);
|
|
/* configure the SPI clock source selection */
|
|
void rcu_spi_clock_config(spi_idx_enum spi_idx, uint32_t ck_spi);
|
|
/* configure the Deep-sleep wakeup system clock source selection */
|
|
void rcu_deepsleep_wakeup_sys_clock_config(uint32_t ck_dspwussel);
|
|
/* configure the USARTx(x=0,1,2,5) clock source selection */
|
|
void rcu_usart_clock_config(usart_idx_enum usart_idx, uint32_t ck_usart);
|
|
/* configure the I2Cx(x=0,1,2,3) clock source selection */
|
|
void rcu_i2c_clock_config(i2c_idx_enum i2c_idx, uint32_t ck_i2c);
|
|
/* configure the CANx(x=0,1,2) clock source selection */
|
|
void rcu_can_clock_config(can_idx_enum can_idx, uint32_t ck_can);
|
|
/* configure the ADCx(x=0,1,2) clock source selection */
|
|
void rcu_adc_clock_config(adc_idx_enum adc_idx, uint32_t ck_adc);
|
|
/* configure the EXMC clock source selection */
|
|
void rcu_exmc_clock_config(uint32_t ck_exmc);
|
|
/* configure the HPDF audio clock source selection */
|
|
void rcu_hpdf_audio_clock_config(uint32_t ck_hpdfa);
|
|
/* configure the HPDF clock source selection */
|
|
void rcu_hpdf_clock_config(uint32_t ck_hpdf);
|
|
/* configure the peripheral clock source selection */
|
|
void rcu_per_clock_config(uint32_t ck_per);
|
|
/* configure the PLL1Q prescaler */
|
|
void rcu_usbhs_pll1qpsc_config(usbhs_idx_enum usbhs_idx, uint32_t ck_usbhspsc);
|
|
/* configure the USBHS48M clock source selection */
|
|
void rcu_usb48m_clock_config(usbhs_idx_enum usbhs_idx, uint32_t ck_usb48m);
|
|
/* configure the USBHS clock source selection */
|
|
void rcu_usbhs_clock_config(usbhs_idx_enum usbhs_idx, uint32_t ck_usbhs);
|
|
/* enable the USBHS clock source selection */
|
|
void rcu_usbhs_clock_selection_enable(usbhs_idx_enum usbhs_idx);
|
|
/* disable configure the USBHS clock source selection */
|
|
void rcu_usbhs_clock_selection_disable(usbhs_idx_enum usbhs_idx);
|
|
|
|
/* LXTAL, IRC64M, LPIRC4M, PLLs and other oscillator configure functions */
|
|
/* configure the LXTAL drive capability */
|
|
void rcu_lxtal_drive_capability_config(uint32_t lxtal_dricap);
|
|
/* wait for oscillator stabilization flags is SET or oscillator startup is timeout */
|
|
ErrStatus rcu_osci_stab_wait(rcu_osci_type_enum osci);
|
|
/* turn on the oscillator */
|
|
void rcu_osci_on(rcu_osci_type_enum osci);
|
|
/* turn off the oscillator */
|
|
void rcu_osci_off(rcu_osci_type_enum osci);
|
|
/* enable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it */
|
|
void rcu_osci_bypass_mode_enable(rcu_osci_type_enum osci);
|
|
/* disable the oscillator bypass mode, HXTALEN or LXTALEN must be reset before it */
|
|
void rcu_osci_bypass_mode_disable(rcu_osci_type_enum osci);
|
|
/* set the IRC64M adjust value */
|
|
void rcu_irc64m_adjust_value_set(uint32_t irc64m_adjval);
|
|
/* set the LPIRC4M adjust value */
|
|
void rcu_lpirc4m_adjust_value_set(uint32_t lpirc4m_adjval);
|
|
|
|
/* clock monitor configure functions */
|
|
/* enable the HXTAL clock monitor */
|
|
void rcu_hxtal_clock_monitor_enable(void);
|
|
/* disable the HXTAL clock monitor */
|
|
void rcu_hxtal_clock_monitor_disable(void);
|
|
/* enable the LXTAL clock monitor */
|
|
void rcu_lxtal_clock_monitor_enable(void);
|
|
/* disable the LXTAL clock monitor */
|
|
void rcu_lxtal_clock_monitor_disable(void);
|
|
|
|
/* clock frequency get functions */
|
|
/* get the system clock, bus and peripheral clock frequency */
|
|
uint32_t rcu_clock_freq_get(rcu_clock_freq_enum clock);
|
|
|
|
/* flag & interrupt functions */
|
|
/* get the clock stabilization and periphral reset flags */
|
|
FlagStatus rcu_flag_get(rcu_flag_enum flag);
|
|
/* clear the reset flag */
|
|
void rcu_all_reset_flag_clear(void);
|
|
/* enable the stabilization interrupt */
|
|
void rcu_interrupt_enable(rcu_int_enum interrupt);
|
|
/* disable the stabilization interrupt */
|
|
void rcu_interrupt_disable(rcu_int_enum interrupt);
|
|
/* get the clock stabilization interrupt and ckm flags */
|
|
FlagStatus rcu_interrupt_flag_get(rcu_int_flag_enum int_flag);
|
|
/* clear the interrupt flags */
|
|
void rcu_interrupt_flag_clear(rcu_int_flag_clear_enum int_flag);
|
|
|
|
#endif /* GD32H75E_RCU_H */
|
|
|