libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
ccs.c File Reference
Include dependency graph for ccs.c:

Go to the source code of this file.

Functions

void ccs_frclkmux_select (uint32_t sel)
 Select the source for FRCLK. More...
 
void ccs_rosc_enable (void)
 Enable the 16MHz Ring oscillator. More...
 
void ccs_rosc_disable (void)
 Disable the 16MHz Ring oscillator. More...
 
void ccs_sclkmux_select_frclk (void)
 Select FRCLK for SCLK. More...
 
void ccs_sclkmux_select_pllclk (void)
 Select PLLCLK for SCLK. More...
 
void ccs_clkfail_enable (void)
 Enable Clock Fail Detection. More...
 
void ccs_clkfail_disable (void)
 Disable Clock Fail Detection. More...
 
void ccs_clkfailmux_select_frclk (void)
 Select FRCLK for Clock Fail Detection. More...
 
void ccs_clkfailmux_select_pllclk (void)
 Select PLLCLK for Clock Fail Detection. More...
 
void ccs_ldo_enable (void)
 Enable the LDO. More...
 
void ccs_ldo_disable (void)
 Disable the LDO. More...
 
void ccs_pclk_enable (void)
 Enable the Peripheral Clock. More...
 
void ccs_pclk_disable (void)
 Disable the Peripheral Clock. More...
 
void ccs_aclk_enable (void)
 Enable the Auxiliary Clock. More...
 
void ccs_aclk_disable (void)
 Disable the Auxiliary Clock. More...
 
void ccs_adcclk_enable (void)
 Enable the ADC Clock. More...
 
void ccs_adcclk_disable (void)
 Disable the ADC Clock. More...
 
void ccs_stclk_sleep_enable (void)
 Enable SysTick clock gating in deep sleep mode. More...
 
void ccs_stclk_sleep_disable (void)
 Disable SysTick clock gating in deep sleep mode. More...
 
void ccs_set_pclkdiv (uint32_t div)
 Set the divisor for the Peripheral Clock. More...
 
void ccs_set_aclkdiv (uint32_t div)
 Set the divisor for the Auxiliary Clock. More...
 
void ccs_set_hclkdiv (uint32_t div)
 Set the divisor for the AHB Clock. More...
 
void ccs_pll_enable (void)
 Enable the PLL. More...
 
void ccs_pll_disable (void)
 Disable the PLL. More...
 
bool ccs_pll_locked (void)
 Check if the PLL is locked. More...
 
void ccs_pll_bypass_enable (void)
 Enable the PLL bypass. More...
 
void ccs_pll_bypass_disable (void)
 Disable the PLL bypass. More...
 
void ccs_pll_set_outdiv (uint32_t div)
 Set the output divisor. More...
 
void ccs_pll_set_indiv (uint32_t div)
 Set the PLL input divisor. More...
 
void ccs_pll_set_fbdiv (uint32_t div)
 Set the PLL feedback divisor. More...
 
void css_pll_config_enable (uint32_t indiv, uint32_t fbdiv, uint32_t outdiv)
 Configure the CCS PLL, enable it, and wait for lock. More...
 
uint32_t ccs_get_peripheral_clk_freq (uint32_t periph, uint32_t select)
 Get the clock rate (in Hz) of the specified peripheral. More...
 
void ccs_reset_clocks (void)
 Restores CCSCTL and CCSPLLCTL registers to default/safe values. More...
 
void ccs_configure_clocks (const struct ccs_clk_config *config)
 Setup the PAC55xx clocks with the given struct. More...
 

Variables

static volatile uint32_t ccs_extclk_frequency = 0
 PAC55xxxx CCS Driver More...
 
static volatile uint32_t ccs_frclk_frequency = CCS_ROSC_FREQ
 
static volatile uint32_t ccs_sclk_frequency = CCS_ROSC_FREQ
 
static volatile uint32_t ccs_pll_clk_frequency = 0
 
static volatile uint32_t ccs_hclk_frequency = CCS_ROSC_FREQ
 
static volatile uint32_t ccs_aclk_frequency = CCS_ROSC_FREQ
 
static volatile uint32_t ccs_pclk_frequency = CCS_ROSC_FREQ
 

Variable Documentation

◆ ccs_aclk_frequency

volatile uint32_t ccs_aclk_frequency = CCS_ROSC_FREQ
static

Definition at line 36 of file ccs.c.

Referenced by ccs_configure_clocks(), and ccs_get_peripheral_clk_freq().

◆ ccs_extclk_frequency

volatile uint32_t ccs_extclk_frequency = 0
static

PAC55xxxx CCS Driver

Author
© 2020 Kevin Stefanik kevin.nosp@m.@all.nosp@m.ocor..nosp@m.tech
Date
March 7, 2020

This library supports the CCS module in the PAC55xx SoC from Qorvo.

LGPL License Terms libopencm3 License

Definition at line 31 of file ccs.c.

Referenced by ccs_configure_clocks().

◆ ccs_frclk_frequency

volatile uint32_t ccs_frclk_frequency = CCS_ROSC_FREQ
static

Definition at line 32 of file ccs.c.

Referenced by ccs_configure_clocks(), and ccs_get_peripheral_clk_freq().

◆ ccs_hclk_frequency

volatile uint32_t ccs_hclk_frequency = CCS_ROSC_FREQ
static

Definition at line 35 of file ccs.c.

Referenced by ccs_configure_clocks(), and ccs_get_peripheral_clk_freq().

◆ ccs_pclk_frequency

volatile uint32_t ccs_pclk_frequency = CCS_ROSC_FREQ
static

Definition at line 37 of file ccs.c.

Referenced by ccs_configure_clocks(), and ccs_get_peripheral_clk_freq().

◆ ccs_pll_clk_frequency

volatile uint32_t ccs_pll_clk_frequency = 0
static

Definition at line 34 of file ccs.c.

Referenced by ccs_configure_clocks().

◆ ccs_sclk_frequency

volatile uint32_t ccs_sclk_frequency = CCS_ROSC_FREQ
static

Definition at line 33 of file ccs.c.

Referenced by ccs_configure_clocks(), and ccs_get_peripheral_clk_freq().