PLLCTL driver APIs. More...
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... | |
PLLCTL driver APIs.
| #define PLLCTL_PLL_LOCK_ALL |
#include <drivers/inc/hpm_pllctl_drv.h>
| #define PLLCTL_PLL_LOCK_POSTDIV1 PLLCTL_PLL_LOCK_LOCK_POSTDIV1_MASK |
#include <drivers/inc/hpm_pllctl_drv.h>
| #define PLLCTL_PLL_LOCK_REFDIV PLLCTL_PLL_LOCK_LOCK_REFDIV_MASK |
#include <drivers/inc/hpm_pllctl_drv.h>
| #define PLLCTL_PLL_LOCK_SS_DIVVAL PLLCTL_PLL_LOCK_LOCK_SS_DIVVAL_MASK |
#include <drivers/inc/hpm_pllctl_drv.h>
| #define PLLCTL_PLL_LOCK_SS_RESET PLLCTL_PLL_LOCK_LOCK_SS_RSTPTR_MASK |
#include <drivers/inc/hpm_pllctl_drv.h>
| #define PLLCTL_PLL_LOCK_SS_SPREAD PLLCTL_PLL_LOCK_LOCK_SS_SPREAD_MASK |
#include <drivers/inc/hpm_pllctl_drv.h>
| #define PLLCTL_PLL_VCO_FREQ_MAX (2200000000U) |
#include <drivers/inc/hpm_pllctl_drv.h>
| #define PLLCTL_PLL_VCO_FREQ_MIN (375000000U) |
#include <drivers/inc/hpm_pllctl_drv.h>
| anonymous enum |
#include <drivers/inc/hpm_pllctl_drv.h>
| Enumerator | |
|---|---|
| status_pllctl_not_enabled | |
| status_pllctl_out_of_range | |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Check if specific PLL DIV is stable.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | div_index | Target DIV to check |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Get PLL divx value.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | div_index | Target DIV to query |
| uint32_t pllctl_get_pll_freq_in_hz | ( | PLLCTL_Type * | ptr, |
| uint8_t | pll | ||
| ) |
#include <drivers/inc/hpm_pllctl_drv.h>
Get frequency of target PLL.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| hpm_stat_t pllctl_init_frac_pll_with_freq | ( | PLLCTL_Type * | ptr, |
| uint8_t | pll, | ||
| uint32_t | freq_in_hz | ||
| ) |
#include <drivers/inc/hpm_pllctl_drv.h>
Initialize PLL working at franction mode with specific frequency.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | freq_in_hz | Target frequency, expected >= 375000000Hz |
| hpm_stat_t pllctl_init_int_pll_with_freq | ( | PLLCTL_Type * | ptr, |
| uint8_t | pll, | ||
| uint32_t | freq_in_hz | ||
| ) |
#include <drivers/inc/hpm_pllctl_drv.h>
Initialize PLL working at integer mode with specific frequency.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | freq_in_hz | Target frequency, expected >= 375000000Hz |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Check if target PLL is enabled.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Lock pll.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | lock_mask | Mask of PLL parts to be locked |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Power down target PLL.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Power on target PLL.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Disable spread spectrum.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Enable spread spectrum mode.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | spread | Spread spectrum depth (1-31, from 0.1% to 3.1%) |
| [in] | div | Spread spectrum divider (1-63, divide by 1 to 63) |
| [in] | down_spread | Set true if need down-spread, otherwise center-spread |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Unlock pll.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | lock_mask | Mask of PLL parts to be unlocked |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Set divider.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | div_index | DIV index |
| [in] | div | Divider value (starting from 1) |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Set fbdiv for PLL fraction mode.
Fout = Fref/refdive * (fbdiv + frac/2^24)/postdiv1
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | fbdiv | Fbdiv value (0x1~0x1000) |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Set fbdiv for PLL integer mode.
Fout = Fref/refdiv * fbdiv / postdiv1
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | fbdiv | Fbdiv value (0x1~0x1000) |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Set fraction for PLL fraction mode.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | frac | 24-bit fixed float point value |
| hpm_stat_t pllctl_set_pll_work_mode | ( | PLLCTL_Type * | ptr, |
| uint8_t | pll, | ||
| bool | int_mode | ||
| ) |
#include <drivers/inc/hpm_pllctl_drv.h>
Set pll work mode.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | int_mode | true: integer mode, false - fraction mode |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Set postdiv1 for PLL.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | div | Postdiv1 value (0x1~0x7) |
| hpm_stat_t pllctl_set_refdiv | ( | PLLCTL_Type * | ptr, |
| uint8_t | pll, | ||
| uint8_t | div | ||
| ) |
#include <drivers/inc/hpm_pllctl_drv.h>
Set refdiv.
| [in] | ptr | PLLCTL base address |
| [in] | pll | Target PLL index |
| [in] | div | Divider value (0x1-0x3F) |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Check if XTAL is enabled.
| [in] | ptr | PLLCTL base address |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>
Check if XTAL is stable.
| [in] | ptr | PLLCTL base address |
|
inlinestatic |
#include <drivers/inc/hpm_pllctl_drv.h>