Modules | |
RCC Exported Types | |
RCC System, lock configuration definition. | |
Macros | |
#define | HAL_RCC_HCPU_reset(modules, reset) |
Reset RCC module for HCPU. More... | |
#define | HAL_RCC_HCPU_reset2(modules, reset) |
#define | HAL_RCC_HCPU_enable(modules, enabled) |
enable/disable RCC module for HCPU. More... | |
#define | HAL_RCC_HCPU_enable2(modules, enabled) |
#define | HAL_RCC_HCPU_RELEASE_ALL() |
Release all HPSYS modules. More... | |
#define | HAL_RCC_LCPU_reset(modules, reset) |
Reset RCC module for LCPU. More... | |
#define | HAL_RCC_LCPU_RELEASE_ALL() (hwp_lpsys_rcc->RSTR1 = 0) |
Release all LPSYS modules. More... | |
#define | HAL_RCC_LCPU_enable(modules, enabled) |
enable/disable RCC module for LCPU. More... | |
#define | HAL_RCC_LCPU_enable2(modules, enabled) |
#define | HAL_RCC_LCPU_ClockSelectDBL96() MODIFY_REG(hwp_lpsys_rcc->CSR, LPSYS_RCC_CSR_SEL_SYS_Msk, MAKE_REG_VAL(RCC_SYSCLK_DBL96, LPSYS_RCC_CSR_SEL_SYS_Msk, LPSYS_RCC_CSR_SEL_SYS_Pos)); |
LPSYS clock source switch to DBL96. More... | |
#define | HAL_RCC_BCPU_reset(modules) hwp_ble_rcc->RSTR|=(modules) |
Reset RCC module for BCPU. More... | |
#define | HAL_RCC_BCPU_enable(modules, enabled) |
enable/disable RCC module for BCPU. More... | |
#define | HAL_RCC_BCPU_ClockSelect(clk_module, src) hwp_ble_rcc->CSR=src |
Select clock source for BCPU HW module. More... | |
Functions | |
void | HAL_RCC_HCPU_ClockSelect (int clk_module, int src) |
Select clock source for HCPU HW module. More... | |
int | HAL_RCC_HCPU_GetClockSrc (int clk_module) |
Get clock source of HCPU HW module. More... | |
void | HAL_RCC_HCPU_SetDiv (int div, int pdiv1, int pdiv2) |
Set divider for clock of HCPU. More... | |
void | HAL_RCC_HCPU_GetDiv (int *div, int *pdiv1, int *pdiv2) |
Get divider for clock of HCPU. More... | |
HAL_StatusTypeDef | HAL_RCC_HCPU_EnableDLL1 (uint32_t freq) |
Enable DLL1. More... | |
HAL_StatusTypeDef | HAL_RCC_HCPU_DisableDLL1 (void) |
Disable DLL1. More... | |
uint32_t | HAL_RCC_HCPU_GetDLL1Freq (void) |
Get DLL1 freqency. More... | |
HAL_StatusTypeDef | HAL_RCC_HCPU_EnableDLL2 (uint32_t freq) |
Enable DLL2. More... | |
HAL_StatusTypeDef | HAL_RCC_HCPU_DisableDLL2 (void) |
Disable DLL2. More... | |
uint32_t | HAL_RCC_HCPU_GetDLL2Freq (void) |
Get DLL2 freqency. More... | |
uint32_t | HAL_RCC_HCPU_GetDLL3Freq (void) |
HAL_StatusTypeDef | HAL_RCC_HCPU_EnableDLL3 (uint32_t freq) |
Enable DLL3. More... | |
HAL_StatusTypeDef | HAL_RCC_HCPU_DisableDLL3 (void) |
Disable DLL3. More... | |
__STATIC_INLINE void | HAL_RCC_LCPU_ClockSelect (int clk_module, int src) |
Select clock source for LCPU HW module. More... | |
int | HAL_RCC_LCPU_GetClockSrc (int clk_module) |
Get clock source of LCPU HW module. More... | |
void | HAL_RCC_LCPU_SetDiv (int div, int pdiv1, int pdiv2) |
Set divider for clock of LCPU. More... | |
void | HAL_RCC_LCPU_GetDiv (int *div, int *pdiv1, int *pdiv2) |
Get divider for clock of LCPU. More... | |
void | HAL_RCC_BCPU_SetDiv (int div, int pdiv, int macdiv, int macfreq) |
Set divider for clock of BCPU. More... | |
uint32_t | HAL_RCC_GetHCLKFreq (int core_id) |
Get HCLK freq. More... | |
uint32_t | HAL_RCC_GetSysCLKFreq (int core_id) |
Get SYSCLK freq. More... | |
uint32_t | HAL_RCC_GetPCLKFreq (int core_id, int is_pclk1) |
Get PCLK freq. More... | |
void | HAL_RCC_ReleaseLCPU (void) |
Release LCPU. More... | |
void | HAL_RCC_ResetLCPU (void) |
Reset LCPU. More... | |
void | HAL_RCC_Reset_and_Halt_LCPU (uint8_t is_init) |
Reset and halt LCPU. More... | |
void | HAL_RCC_ResetBluetoothRF (void) |
Reset BLE RF. More... | |
void | HAL_RCC_SetMacFreq (void) |
Set Mac freq. More... | |
void | HAL_RCC_ResetModule (RCC_MODULE_TYPE module) |
Reset module. More... | |
void | HAL_RCC_EnableModule (RCC_MODULE_TYPE module) |
Enable module if it's disabled. More... | |
void | HAL_RCC_DisableModule (RCC_MODULE_TYPE module) |
Disable module. More... | |
HAL_StatusTypeDef | HAL_RCC_CalibrateRC48 (void) |
Calibrate RC48. More... | |
HAL_StatusTypeDef | HAL_RCC_SetModuleFreq (RCC_MODULE_TYPE module, uint32_t freq) |
uint32_t | HAL_RCC_GetModuleFreq (RCC_MODULE_TYPE module) |
void | HAL_RCC_Init (void) |
RCC Init. More... | |
void | HAL_RCC_MspInit (void) |
Chip specific RCC initialization function. More... | |
void | HAL_RCC_HCPU_SetDeepWFIDiv (int8_t div, int8_t pdiv1, int8_t pdiv2) |
Set divider for clock of HCPU in deep WFI mode. More... | |
void | HAL_RCC_HCPU_GetDeepWFIDiv (int *div, int *pdiv1, int *pdiv2) |
Get deepWFI divider for HCPU clock. More... | |
void | HAL_RCC_HCPU_DeepWFIClockSelect (bool sys_clk, uint32_t sys_clk_src) |
Select clock source for HCPU in deep WFI mode. More... | |
HAL_StatusTypeDef | HAL_RCC_HCPU_ConfigHCLK (uint32_t freq_in_mhz) |
Config HPSYS HCLK. More... | |
HAL_StatusTypeDef | HAL_RCC_HCPU_ConfigHCLKByMode (uint32_t freq_in_mhz, HPSYS_DvfsModeTypeDef mode) |
Config HPSYS HCLK by DVFS mode. More... | |
HPSYS_DvfsModeTypeDef | HAL_RCC_HCPU_GetCurrentDvfsMode (void) |
Get HPSYS current DVFS mode. More... | |
#define HAL_RCC_BCPU_ClockSelect | ( | clk_module, | |
src | |||
) | hwp_ble_rcc->CSR=src |
Select clock source for BCPU HW module.
clk_module | module for clock |
src | clock 0:RCC_SYSCLK_HRC48, 1:RCC_SYSCLK_HXT48 |
None |
#define HAL_RCC_BCPU_enable | ( | modules, | |
enabled | |||
) |
enable/disable RCC module for BCPU.
modules | modules to be enabled/disabled. defined in ble_rcc.h, BLE_RCC_ENR_XXX |
enabled | 1: enable(bit set), 0:disable(bit clear). |
None |
#define HAL_RCC_BCPU_reset | ( | modules | ) | hwp_ble_rcc->RSTR|=(modules) |
Reset RCC module for BCPU.
modules | modules to be reset, defined in ble_rcc.h, BLE_RCC_RSTR_XXX |
None |
#define HAL_RCC_HCPU_enable | ( | modules, | |
enabled | |||
) |
enable/disable RCC module for HCPU.
modules | modules to be enabled/disabled. defined in hpsys_rcc.h, HPSYS_RCC_ENR_XXX |
enabled | 1: enable(bit set), 0:disable(bit clear). |
None |
#define HAL_RCC_HCPU_enable2 | ( | modules, | |
enabled | |||
) |
#define HAL_RCC_HCPU_RELEASE_ALL | ( | ) |
Release all HPSYS modules.
None |
#define HAL_RCC_HCPU_reset | ( | modules, | |
reset | |||
) |
Reset RCC module for HCPU.
modules | modules to be reset, defined in hpsys_rcc.h, HPSYS_RCC_RSTR_XXX |
reset | 1: reset(bit set), 0:Release reset(bit clear). |
None |
#define HAL_RCC_HCPU_reset2 | ( | modules, | |
reset | |||
) |
#define HAL_RCC_LCPU_ClockSelectDBL96 | ( | ) | MODIFY_REG(hwp_lpsys_rcc->CSR, LPSYS_RCC_CSR_SEL_SYS_Msk, MAKE_REG_VAL(RCC_SYSCLK_DBL96, LPSYS_RCC_CSR_SEL_SYS_Msk, LPSYS_RCC_CSR_SEL_SYS_Pos)); |
LPSYS clock source switch to DBL96.
None |
#define HAL_RCC_LCPU_enable | ( | modules, | |
enabled | |||
) |
enable/disable RCC module for LCPU.
modules | modules to be enabled/disabled. defined in lpsys_rcc.h, LPSYS_RCC_ENR_XXX |
enabled | 1: enable(bit set), 0:disable(bit clear). |
None |
#define HAL_RCC_LCPU_enable2 | ( | modules, | |
enabled | |||
) |
#define HAL_RCC_LCPU_RELEASE_ALL | ( | ) | (hwp_lpsys_rcc->RSTR1 = 0) |
Release all LPSYS modules.
void |
#define HAL_RCC_LCPU_reset | ( | modules, | |
reset | |||
) |
Reset RCC module for LCPU.
modules | modules to be reset, defined in lpsys_rcc.h, LPSYS_RCC_RSTR_XXX |
reset | 1: reset(bit set), 0:Release reset(bit clear). |
None |
void HAL_RCC_BCPU_SetDiv | ( | int | div, |
int | pdiv, | ||
int | macdiv, | ||
int | macfreq | ||
) |
Set divider for clock of BCPU.
div | main divider HCLK=BLECLK(48M)/div |
pdiv | divider for pclk, HCLK not divided; 100 - HCLK divided by 2; 101 - divided by 4; 110 - divided by 8; 111 - divided by 16 |
macdiv | divider for MACCLK = HCLK / MACDIV |
macfreq | frequency of BLE MAC master clock |
None |
HAL_StatusTypeDef HAL_RCC_CalibrateRC48 | ( | void | ) |
Calibrate RC48.
Must be called after XTAL48 is ready
HAL_OK | if successful, Otherwise HAL_ERROR |
void HAL_RCC_DisableModule | ( | RCC_MODULE_TYPE | module | ) |
Disable module.
If module is already disabled, it has no effect
module | module name |
void |
void HAL_RCC_EnableModule | ( | RCC_MODULE_TYPE | module | ) |
Enable module if it's disabled.
If module is already enabled, it has no effect
module | module name |
void |
uint32_t HAL_RCC_GetHCLKFreq | ( | int | core_id | ) |
Get HCLK freq.
core_id | Core ID |
HCLK | Frequency for Core ID |
uint32_t HAL_RCC_GetPCLKFreq | ( | int | core_id, |
int | is_pclk1 | ||
) |
Get PCLK freq.
core_id | Core ID |
is_pclk1 | 1: Get pclk1, 0: not PCLK1 |
PCLK | freq for specific CORE. |
uint32_t HAL_RCC_GetSysCLKFreq | ( | int | core_id | ) |
Get SYSCLK freq.
core_id | Core ID, |
SYSCLK | Frequency for Core ID |
void HAL_RCC_HCPU_ClockSelect | ( | int | clk_module, |
int | src | ||
) |
Select clock source for HCPU HW module.
clk_module | module for clock, RCC_CLK_MOD_XXX |
src | clock source. |
None |
HAL_StatusTypeDef HAL_RCC_HCPU_ConfigHCLK | ( | uint32_t | freq_in_mhz | ) |
Config HPSYS HCLK.
If freq is greater than 48MHz, DLL1 would be used as SYSCLK. If freq is less than or equal to 48MHz, all DLLs except DLL1 should be disabled before calling this function, DLL1 would be disabled in this function automatically.
freq_in_mhz | Frequency in MHz |
HAL_OK | if successful, Otherwise HAL_ERROR |
HAL_StatusTypeDef HAL_RCC_HCPU_ConfigHCLKByMode | ( | uint32_t | freq_in_mhz, |
HPSYS_DvfsModeTypeDef | mode | ||
) |
Config HPSYS HCLK by DVFS mode.
freq_in_mhz | Frequency in MHz |
mode | DVFS mode |
HAL_OK | if successful, Otherwise HAL_ERROR |
void HAL_RCC_HCPU_DeepWFIClockSelect | ( | bool | sys_clk, |
uint32_t | sys_clk_src | ||
) |
Select clock source for HCPU in deep WFI mode.
sys_clk | whether use sys clock, true: use sys clock, false: use LP clock |
sys_clk_src | sys clock source, such as RCC_SYSCLK_HXT48 |
None |
HAL_StatusTypeDef HAL_RCC_HCPU_DisableDLL1 | ( | void | ) |
Disable DLL1.
HAL_OK | if successful, Otherwise HAL_ERROR |
HAL_StatusTypeDef HAL_RCC_HCPU_DisableDLL2 | ( | void | ) |
Disable DLL2.
HAL_OK | if successful, Otherwise HAL_ERROR |
HAL_StatusTypeDef HAL_RCC_HCPU_DisableDLL3 | ( | void | ) |
Disable DLL3.
HAL_OK | if successful, Otherwise HAL_ERROR |
HAL_StatusTypeDef HAL_RCC_HCPU_EnableDLL1 | ( | uint32_t | freq | ) |
Enable DLL1.
freq | Freqency of DLL1 |
HAL_OK | if successful, Otherwise HAL_ERROR |
HAL_StatusTypeDef HAL_RCC_HCPU_EnableDLL2 | ( | uint32_t | freq | ) |
Enable DLL2.
freq | Freqency of DLL2 |
HAL_OK | if successful, Otherwise HAL_ERROR |
HAL_StatusTypeDef HAL_RCC_HCPU_EnableDLL3 | ( | uint32_t | freq | ) |
Enable DLL3.
freq | Freqency of DLL3 |
HAL_OK | if successful, Otherwise HAL_ERROR |
int HAL_RCC_HCPU_GetClockSrc | ( | int | clk_module | ) |
Get clock source of HCPU HW module.
clk_module | module for clock, RCC_CLK_MOD_XXX |
clock | source, |
HPSYS_DvfsModeTypeDef HAL_RCC_HCPU_GetCurrentDvfsMode | ( | void | ) |
Get HPSYS current DVFS mode.
void HAL_RCC_HCPU_GetDeepWFIDiv | ( | int * | div, |
int * | pdiv1, | ||
int * | pdiv2 | ||
) |
Get deepWFI divider for HCPU clock.
div | pointer to main divider, HCLK=HPCLK/div |
pdiv1 | pointer to divider for pclk1= HCLK/ (2^PDIV1) default 1 |
pdiv2 | pointer to divider for pclk2= HCLK/ (2^PDIV2) default 5 |
None |
void HAL_RCC_HCPU_GetDiv | ( | int * | div, |
int * | pdiv1, | ||
int * | pdiv2 | ||
) |
Get divider for clock of HCPU.
div | pointer to main divider, HCLK=HPCLK/div |
pdiv1 | pointer to divider for pclk1= HCLK/ (2^PDIV1) default 1 |
pdiv2 | pointer to divider for pclk2= HCLK/ (2^PDIV2) default 5 |
None |
uint32_t HAL_RCC_HCPU_GetDLL1Freq | ( | void | ) |
Get DLL1 freqency.
Frequency | of DLL1, 0 if not enabled |
uint32_t HAL_RCC_HCPU_GetDLL2Freq | ( | void | ) |
Get DLL2 freqency.
Frequency | of DLL2, 0 if not enabled |
void HAL_RCC_HCPU_SetDeepWFIDiv | ( | int8_t | div, |
int8_t | pdiv1, | ||
int8_t | pdiv2 | ||
) |
Set divider for clock of HCPU in deep WFI mode.
div | main divider HCLK=HPCLK/div |
pdiv1 | divider for pclk1= HCLK/ (2^PDIV1) default 1 |
pdiv2 | divider for pclk2= HCLK/ (2^PDIV2) default 5 |
None |
void HAL_RCC_HCPU_SetDiv | ( | int | div, |
int | pdiv1, | ||
int | pdiv2 | ||
) |
Set divider for clock of HCPU.
div | main divider HCLK=HPCLK/div |
pdiv1 | divider for pclk1= HCLK/ (2^PDIV1) default 1 |
pdiv2 | divider for pclk2= HCLK/ (2^PDIV2) default 5 |
None |
void HAL_RCC_Init | ( | void | ) |
RCC Init.
Disable some modules by default. If the function is called by HCPU, HPSYS_RCC is configured and HPSYS modules are disabled. If the function is called by LCPU, LPSYS_RCC is configured and LPSYS modules are disabled.
__STATIC_INLINE void HAL_RCC_LCPU_ClockSelect | ( | int | clk_module, |
int | src | ||
) |
Select clock source for LCPU HW module.
clk_module | module for clock, RCC_CLK_MOD_XXX |
src | clock 0:RCC_SYSCLK_HRC48, 1:RCC_SYSCLK_HXT48 |
None |
int HAL_RCC_LCPU_GetClockSrc | ( | int | clk_module | ) |
Get clock source of LCPU HW module.
clk_module | module for clock, RCC_CLK_MOD_XXX |
clock | source, |
void HAL_RCC_LCPU_GetDiv | ( | int * | div, |
int * | pdiv1, | ||
int * | pdiv2 | ||
) |
Get divider for clock of LCPU.
div | pointer to hclk divider |
pdiv1 | pointer to pclk1 divider |
pdiv2 | pointer to pclk2 divider |
None |
void HAL_RCC_LCPU_SetDiv | ( | int | div, |
int | pdiv1, | ||
int | pdiv2 | ||
) |
Set divider for clock of LCPU.
div | main divider HCLK=LPCLK/div |
pdiv1 | divider for pclk1= HCLK/ (2^PDIV1) default 1 |
pdiv2 | divider for pclk2= HCLK/ (2^PDIV2) default 3 |
None |
void HAL_RCC_MspInit | ( | void | ) |
Chip specific RCC initialization function.
It's called by HAL_RCC_Init. It's implemented as weak symbol internally, so can be re-implemented by user as required.
void HAL_RCC_ReleaseLCPU | ( | void | ) |
Release LCPU.
void |
void HAL_RCC_Reset_and_Halt_LCPU | ( | uint8_t | is_init | ) |
Reset and halt LCPU.
is_init | Is in init state. |
void |
void HAL_RCC_ResetBluetoothRF | ( | void | ) |
Reset BLE RF.
void |
void HAL_RCC_ResetLCPU | ( | void | ) |
Reset LCPU.
void |
void HAL_RCC_ResetModule | ( | RCC_MODULE_TYPE | module | ) |
Reset module.
module | module name |
void |
void HAL_RCC_SetMacFreq | ( | void | ) |
Set Mac freq.
void |