HPM SDK
HPMicro Software Development Kit
hpm_pllctl_drv.h File Reference
#include "hpm_common.h"
#include "hpm_soc_feature.h"
#include "hpm_pllctl_regs.h"

Go to the source code of this file.

Macros

#define PLLCTL_PLL_VCO_FREQ_MIN   (375000000U)
 
#define PLLCTL_PLL_VCO_FREQ_MAX   (2200000000U)
 
#define PLLCTL_PLL_LOCK_SS_RESET   PLLCTL_PLL_LOCK_LOCK_SS_RSTPTR_MASK
 
#define PLLCTL_PLL_LOCK_REFDIV   PLLCTL_PLL_LOCK_LOCK_REFDIV_MASK
 
#define PLLCTL_PLL_LOCK_POSTDIV1   PLLCTL_PLL_LOCK_LOCK_POSTDIV1_MASK
 
#define PLLCTL_PLL_LOCK_SS_SPREAD   PLLCTL_PLL_LOCK_LOCK_SS_SPREAD_MASK
 
#define PLLCTL_PLL_LOCK_SS_DIVVAL   PLLCTL_PLL_LOCK_LOCK_SS_DIVVAL_MASK
 
#define PLLCTL_PLL_LOCK_ALL
 

Enumerations

enum  { status_pllctl_not_enabled = ((uint32_t)( status_group_pllctl )*1000U + (uint32_t)( 1 )) , status_pllctl_out_of_range = ((uint32_t)( status_group_pllctl )*1000U + (uint32_t)( 2 )) }
 

Functions

static void pllctl_pll_unlock (PLLCTL_Type *ptr, uint8_t pll, uint32_t lock_mask)
 Unlock pll. More...
 
static void pllctl_pll_lock (PLLCTL_Type *ptr, uint8_t pll, uint32_t lock_mask)
 Lock pll. More...
 
static hpm_stat_t pllctl_pll_ss_disable (PLLCTL_Type *ptr, uint8_t pll)
 Disable spread spectrum. More...
 
static hpm_stat_t pllctl_pll_powerdown (PLLCTL_Type *ptr, uint8_t pll)
 Power down target PLL. More...
 
static hpm_stat_t pllctl_pll_poweron (PLLCTL_Type *ptr, uint8_t pll)
 Power on target PLL. More...
 
static hpm_stat_t pllctl_pll_ss_enable (PLLCTL_Type *ptr, uint8_t pll, uint8_t spread, uint8_t div, bool down_spread)
 Enable spread spectrum mode. More...
 
static hpm_stat_t pllctl_set_postdiv1 (PLLCTL_Type *ptr, uint8_t pll, uint8_t div)
 Set postdiv1 for PLL. More...
 
static hpm_stat_t pllctl_set_fbdiv_int (PLLCTL_Type *ptr, uint8_t pll, uint16_t fbdiv)
 Set fbdiv for PLL integer mode. More...
 
static hpm_stat_t pllctl_set_fbdiv_frac (PLLCTL_Type *ptr, uint8_t pll, uint16_t fbdiv)
 Set fbdiv for PLL fraction mode. More...
 
static hpm_stat_t pllctl_set_frac (PLLCTL_Type *ptr, uint8_t pll, uint32_t frac)
 Set fraction for PLL fraction mode. More...
 
static hpm_stat_t pllctl_get_div (PLLCTL_Type *ptr, uint8_t pll, uint8_t div_index)
 Get PLL divx value. More...
 
static hpm_stat_t pllctl_set_div (PLLCTL_Type *ptr, uint8_t pll, uint8_t div_index, uint16_t div)
 Set divider. More...
 
static bool pllctl_div_is_stable (PLLCTL_Type *ptr, uint8_t pll, uint8_t div_index)
 Check if specific PLL DIV is stable. More...
 
static bool pllctl_pll_is_enabled (PLLCTL_Type *ptr, uint8_t pll)
 Check if target PLL is enabled. More...
 
static bool pllctl_xtal_is_stable (PLLCTL_Type *ptr)
 Check if XTAL is stable. More...
 
static bool pllctl_xtal_is_enabled (PLLCTL_Type *ptr)
 Check if XTAL is enabled. More...
 
static void pllctl_xtal_set_rampup_time (PLLCTL_Type *ptr, uint32_t cycles)
 
hpm_stat_t pllctl_set_pll_work_mode (PLLCTL_Type *ptr, uint8_t pll, bool int_mode)
 Set pll work mode. More...
 
hpm_stat_t pllctl_set_refdiv (PLLCTL_Type *ptr, uint8_t pll, uint8_t div)
 Set refdiv. More...
 
hpm_stat_t pllctl_init_int_pll_with_freq (PLLCTL_Type *ptr, uint8_t pll, uint32_t freq_in_hz)
 Initialize PLL working at integer mode with specific frequency. More...
 
hpm_stat_t pllctl_init_frac_pll_with_freq (PLLCTL_Type *ptr, uint8_t pll, uint32_t freq_in_hz)
 Initialize PLL working at franction mode with specific frequency. More...
 
uint32_t pllctl_get_pll_freq_in_hz (PLLCTL_Type *ptr, uint8_t pll)
 Get frequency of target PLL. More...