bf0_hal_rcc.h
Defines
-
RCC_MOD_TYPE_HPSYS
-
RCC_MOD_TYPE_LPSYS
-
RCC_MOD_TYPE_SECU1
-
RCC_MOD_TYPE_OFF_POS
-
RCC_MOD_TYPE_OFF_MSK
-
RCC_MOD_TYPE_GROUP_POS
-
RCC_MOD_TYPE_GROUP_MSK
-
RCC_MOD_TYPE_SUBSYS_POS
-
RCC_MOD_TYPE_SUBSYS_MSK
-
RCC_MAKE_MOD_TYPE(subsys, group, off)
-
RCC_GET_OFF_FROM_MOD_TYPE(type)
-
RCC_GET_GROUP_FROM_MOD_TYPE(type)
-
RCC_GET_SUBSYS_FROM_MOD_TYPE(type)
-
CORE_ID_DEFAULT
-
CORE_ID_HCPU
HCPU
-
CORE_ID_LCPU
LCPU
-
CORE_ID_CURRENT
-
RCC_SYSCLK_HRC48
-
RCC_SYSCLK_HXT48
-
RCC_SYSCLK_CLK_HRC100
-
RCC_SYSCLK_DBL96
-
RCC_SYSCLK_DLL1
-
RCC_CLK_FLASH_SYSCLK
-
RCC_CLK_SRC_SYS
-
RCC_CLK_SRC_DLL1
-
RCC_CLK_SRC_DLL2
-
RCC_CLK_SRC_DLL3
-
RCC_CLK_FLASH_DLL2
-
RCC_CLK_FLASH_DLL3
-
RCC_CLK_PSRAM_SYSCLK
-
RCC_CLK_PSRAM_DLL2
-
RCC_CLK_PSRAM_DLL3
-
RCC_CLK_PERI_HRC48
-
RCC_CLK_PERI_HXT48
-
RCC_CLK_I2S_SYSCLK
-
RCC_CLK_I2S_DLL2
-
RCC_CLK_MPI_SD_SYSCLK
-
RCC_CLK_MPI_SD_DLL2
-
RCC_CLK_MPI_SD_DLL3
-
RCC_CLK_MOD_SYS
-
RCC_CLK_MOD_FLASH1
-
RCC_CLK_MOD_FLASH2
-
RCC_CLK_MOD_FLASH3
-
RCC_CLK_MOD_PSRAM1
-
RCC_CLK_MOD_PSRAM2
-
RCC_CLK_MOD_PSRAM
-
RCC_CLK_MOD_SDMMC
-
RCC_CLK_MOD_HP_PERI
-
RCC_CLK_MOD_LP_PERI
-
RCC_CLK_TICK_CLK_LP
-
RCC_CLK_TICK_HRC48
-
RCC_CLK_TICK_HXT48
-
RCC_MOD_I2S_ALL
-
HAL_RCC_HCPU_reset(modules, reset)
Reset RCC module for HCPU.
- Parameters:
modules – modules to be reset, defined in hpsys_rcc.h, HPSYS_RCC_RSTR_XXX
reset – 1: reset(bit set), 0:Release reset(bit clear).
- Return values:
None –
-
HAL_RCC_HCPU_reset2(modules, reset)
-
HAL_RCC_HCPU_enable(modules, enabled)
enable/disable RCC module for HCPU.
- Parameters:
modules – modules to be enabled/disabled. defined in hpsys_rcc.h, HPSYS_RCC_ENR_XXX
enabled – 1: enable(bit set), 0:disable(bit clear).
- Return values:
None –
-
HAL_RCC_HCPU_enable2(modules, enabled)
-
HAL_RCC_HCPU_RELEASE_ALL()
Release all HPSYS modules.
- Return values:
None –
-
HAL_RCC_LCPU_reset(modules, reset)
Reset RCC module for LCPU.
- Parameters:
modules – modules to be reset, defined in lpsys_rcc.h, LPSYS_RCC_RSTR_XXX
reset – 1: reset(bit set), 0:Release reset(bit clear).
- Return values:
None –
-
HAL_RCC_LCPU_RELEASE_ALL()
Release all LPSYS modules.
- Return values:
void –
-
HAL_RCC_LCPU_enable(modules, enabled)
enable/disable RCC module for LCPU.
- Parameters:
modules – modules to be enabled/disabled. defined in lpsys_rcc.h, LPSYS_RCC_ENR_XXX
enabled – 1: enable(bit set), 0:disable(bit clear).
- Return values:
None –
-
HAL_RCC_LCPU_enable2(modules, enabled)
-
HAL_RCC_LCPU_ClockSelectDBL96()
LPSYS clock source switch to DBL96.
- Return values:
None –
-
HAL_RCC_BCPU_reset(modules)
Reset RCC module for BCPU.
- Parameters:
modules – modules to be reset, defined in ble_rcc.h, BLE_RCC_RSTR_XXX
- Return values:
None –
-
HAL_RCC_BCPU_enable(modules, enabled)
enable/disable RCC module for BCPU.
- Parameters:
modules – modules to be enabled/disabled. defined in ble_rcc.h, BLE_RCC_ENR_XXX
enabled – 1: enable(bit set), 0:disable(bit clear).
- Return values:
None –
-
HAL_RCC_BCPU_ClockSelect(clk_module, src)
Select clock source for BCPU HW module.
- Parameters:
clk_module – module for clock
src – clock 0:RCC_SYSCLK_HRC48, 1:RCC_SYSCLK_HXT48
- Return values:
None –
Functions
-
void HAL_RCC_HCPU_ClockSelect(int clk_module, int src)
Select clock source for HCPU HW module.
- Parameters:
clk_module – module for clock, RCC_CLK_MOD_XXX
src – clock source.
- Return values:
None –
-
int HAL_RCC_HCPU_GetClockSrc(int clk_module)
Get clock source of HCPU HW module.
- Parameters:
clk_module – module for clock, RCC_CLK_MOD_XXX
- Return values:
clock – source,
-
void HAL_RCC_HCPU_SetDiv(int div, int pdiv1, int pdiv2)
Set divider for clock of HCPU.
- Parameters:
div – main divider HCLK=HPCLK/div
pdiv1 – divider for pclk1= HCLK/ (2^PDIV1) default 1
pdiv2 – divider for pclk2= HCLK/ (2^PDIV2) default 5
- Return values:
None –
-
void HAL_RCC_HCPU_GetDiv(int *div, int *pdiv1, int *pdiv2)
Get divider for clock of HCPU.
- Parameters:
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
- Return values:
None –
-
HAL_StatusTypeDef HAL_RCC_HCPU_EnableDLL1(uint32_t freq)
Enable DLL1.
- Parameters:
freq – Freqency of DLL1
- Return values:
HAL_OK – if successful, Otherwise HAL_ERROR
-
HAL_StatusTypeDef HAL_RCC_HCPU_DisableDLL1(void)
Disable DLL1.
- Return values:
HAL_OK – if successful, Otherwise HAL_ERROR
-
uint32_t HAL_RCC_HCPU_GetDLL1Freq(void)
Get DLL1 freqency.
- Return values:
Frequency – of DLL1, 0 if not enabled
-
HAL_StatusTypeDef HAL_RCC_HCPU_EnableDLL2(uint32_t freq)
Enable DLL2.
- Parameters:
freq – Freqency of DLL2
- Return values:
HAL_OK – if successful, Otherwise HAL_ERROR
-
HAL_StatusTypeDef HAL_RCC_HCPU_DisableDLL2(void)
Disable DLL2.
- Return values:
HAL_OK – if successful, Otherwise HAL_ERROR
-
uint32_t HAL_RCC_HCPU_GetDLL2Freq(void)
Get DLL2 freqency.
- Return values:
Frequency – of DLL2, 0 if not enabled
-
uint32_t HAL_RCC_HCPU_GetDLL3Freq(void)
-
HAL_StatusTypeDef HAL_RCC_HCPU_EnableDLL3(uint32_t freq)
Enable DLL3.
- Parameters:
freq – Freqency of DLL3
- Return values:
HAL_OK – if successful, Otherwise HAL_ERROR
-
HAL_StatusTypeDef HAL_RCC_HCPU_DisableDLL3(void)
Disable DLL3.
- Return values:
HAL_OK – if successful, Otherwise HAL_ERROR
-
void HAL_RCC_LCPU_ClockSelect(int clk_module, int src)
Select clock source for LCPU HW module.
- Parameters:
clk_module – module for clock, RCC_CLK_MOD_XXX
src – clock 0:RCC_SYSCLK_HRC48, 1:RCC_SYSCLK_HXT48
- Return values:
None –
-
int HAL_RCC_LCPU_GetClockSrc(int clk_module)
Get clock source of LCPU HW module.
- Parameters:
clk_module – module for clock, RCC_CLK_MOD_XXX
- Return values:
clock – source,
-
void HAL_RCC_LCPU_SetDiv(int div, int pdiv1, int pdiv2)
Set divider for clock of LCPU.
- Parameters:
div – main divider HCLK=LPCLK/div
pdiv1 – divider for pclk1= HCLK/ (2^PDIV1) default 1
pdiv2 – divider for pclk2= HCLK/ (2^PDIV2) default 3
- Return values:
None –
-
void HAL_RCC_LCPU_GetDiv(int *div, int *pdiv1, int *pdiv2)
Get divider for clock of LCPU.
- Parameters:
div – pointer to hclk divider
pdiv1 – pointer to pclk1 divider
pdiv2 – pointer to pclk2 divider
- Return values:
None –
-
void HAL_RCC_BCPU_SetDiv(int div, int pdiv, int macdiv, int macfreq)
Set divider for clock of BCPU.
- Parameters:
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
- Return values:
None –
-
uint32_t HAL_RCC_GetHCLKFreq(int core_id)
Get HCLK freq.
- Parameters:
core_id – Core ID
- Return values:
HCLK – Frequency for Core ID
-
uint32_t HAL_RCC_GetSysCLKFreq(int core_id)
Get SYSCLK freq.
- Parameters:
core_id – Core ID,
- Return values:
SYSCLK – Frequency for Core ID
-
uint32_t HAL_RCC_GetPCLKFreq(int core_id, int is_pclk1)
Get PCLK freq.
- Parameters:
core_id – Core ID
is_pclk1 – 1: Get pclk1, 0: not PCLK1
- Return values:
PCLK – freq for specific CORE.
-
void HAL_RCC_ReleaseLCPU(void)
Release LCPU.
- Return values:
void –
-
void HAL_RCC_ResetLCPU(void)
Reset LCPU.
- Return values:
void –
-
void HAL_RCC_Reset_and_Halt_LCPU(uint8_t is_init)
Reset and halt LCPU.
- Parameters:
is_init – Is in init state.
- Return values:
void –
-
void HAL_RCC_ResetBluetoothRF(void)
Reset BLE RF.
- Return values:
void –
-
void HAL_RCC_SetMacFreq(void)
Set Mac freq.
- Return values:
void –
-
void HAL_RCC_ResetModule(RCC_MODULE_TYPE module)
Reset module.
- Parameters:
module – module name
- Return values:
void –
-
void HAL_RCC_EnableModule(RCC_MODULE_TYPE module)
Enable module if it’s disabled.
If module is already enabled, it has no effect
- Parameters:
module – module name
- Return values:
void –
-
void HAL_RCC_DisableModule(RCC_MODULE_TYPE module)
Disable module.
If module is already disabled, it has no effect
- Parameters:
module – module name
- Return values:
void –
-
bool HAL_RCC_IsModuleEnabled(RCC_MODULE_TYPE module)
Check if module is enabled.
- Parameters:
module – module name
- Return values:
true – module is enabled
false – module is not enabled
- Returns:
whether module is enabled
-
HAL_StatusTypeDef HAL_RCC_CalibrateRC48(void)
Calibrate RC48.
Must be called after XTAL48 is ready
- Return values:
HAL_OK – if successful, Otherwise HAL_ERROR
-
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.
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.
- Returns:
void
-
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.
- Returns:
void
-
void HAL_RCC_HCPU_SetDeepWFIDiv(int8_t div, int8_t pdiv1, int8_t pdiv2)
Set divider for clock of HCPU in deep WFI mode.
- Parameters:
div – main divider HCLK=HPCLK/div
pdiv1 – divider for pclk1= HCLK/ (2^PDIV1) default 1
pdiv2 – divider for pclk2= HCLK/ (2^PDIV2) default 5
- Return values:
None –
-
void HAL_RCC_HCPU_GetDeepWFIDiv(int *div, int *pdiv1, int *pdiv2)
Get deepWFI divider for HCPU clock.
- Parameters:
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
- Return values:
None –
-
void HAL_RCC_HCPU_DeepWFIClockSelect(bool sys_clk, uint32_t sys_clk_src)
Select clock source for HCPU in deep WFI mode.
- Parameters:
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
- Return values:
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.
- Parameters:
freq_in_mhz – Frequency in MHz
- Return values:
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.
- Parameters:
freq_in_mhz – Frequency in MHz
mode – DVFS mode
- Return values:
HAL_OK – if successful, Otherwise HAL_ERROR
-
HPSYS_DvfsModeTypeDef HAL_RCC_HCPU_GetCurrentDvfsMode(void)
Get HPSYS current DVFS mode.
- Returns:
dvfs mode