SAM C2x Clock Driver.
Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
Data Structures | |
struct | _system_clock_dpll_config |
DPLL-specific data container. More... | |
struct | _system_clock_module |
System clock module data container. More... | |
struct | _system_clock_xosc_config |
XOSC-specific data container. More... | |
Functions | |
static void | _system_osc32k_wait_for_sync (void) |
Wait for sync to the OSC32K control registers. More... | |
void | system_clock_init (void) |
Initialize clock system based on the configuration in conf_clocks.h. More... | |
enum status_code | system_clock_source_disable (const enum system_clock_source clock_source) |
Disables a clock source. More... | |
void | system_clock_source_dpll_set_config (struct system_clock_source_dpll_config *const config) |
Configure the DPLL clock source. More... | |
enum status_code | system_clock_source_enable (const enum system_clock_source clock_source) |
Enables a clock source. More... | |
uint32_t | system_clock_source_get_hz (const enum system_clock_source clock_source) |
Retrieve the frequency of a clock source. More... | |
bool | system_clock_source_is_ready (const enum system_clock_source clock_source) |
Checks if a clock source is ready. More... | |
void | system_clock_source_osc32k_set_config (struct system_clock_source_osc32k_config *const config) |
Configure the internal OSC32K oscillator clock source. More... | |
void | system_clock_source_osc48m_set_config (struct system_clock_source_osc48m_config *const config) |
Configure the internal OSC48M oscillator clock source. More... | |
void | system_clock_source_osculp32k_set_config (struct system_clock_source_osculp32k_config *const config) |
Configure the internal OSCULP32K oscillator clock source. More... | |
enum status_code | system_clock_source_write_calibration (const enum system_clock_source clock_source, const uint16_t calibration_value, const uint8_t freq_select) |
Writes the calibration values for a given oscillator clock source. More... | |
void | system_clock_source_xosc32k_set_config (struct system_clock_source_xosc32k_config *const config) |
Configure the XOSC32K external 32KHz oscillator clock source. More... | |
void | system_clock_source_xosc_set_config (struct system_clock_source_xosc_config *const config) |
Configure the external oscillator clock source. More... | |
Variables | |
static struct _system_clock_module | _system_clock_inst |
Internal module instance to cache configuration values. More... | |
|
inlinestatic |
Wait for sync to the OSC32K control registers.
Referenced by system_clock_source_write_calibration().
enum status_code system_clock_source_enable | ( | const enum system_clock_source | clock_source | ) |
Enables a clock source.
Enables a clock source which has been previously configured.
[in] | clock_source | Clock source to enable |
STATUS_OK | Clock source was enabled successfully and is ready |
STATUS_ERR_INVALID_ARG | The clock source is not available on this device |
References Assert, STATUS_ERR_INVALID_ARG, STATUS_OK, SYSTEM_CLOCK_SOURCE_DPLL, SYSTEM_CLOCK_SOURCE_OSC32K, SYSTEM_CLOCK_SOURCE_OSC48M, SYSTEM_CLOCK_SOURCE_ULP32K, SYSTEM_CLOCK_SOURCE_XOSC, and SYSTEM_CLOCK_SOURCE_XOSC32K.
Referenced by init_osculp32k(), init_xosc32k(), and system_clock_init().
enum status_code system_clock_source_write_calibration | ( | const enum system_clock_source | clock_source, |
const uint16_t | calibration_value, | ||
const uint8_t | freq_select | ||
) |
Writes the calibration values for a given oscillator clock source.
Writes an oscillator calibration value to the given oscillator control registers. The acceptable ranges are:
For OSC32K:
[in] | clock_source | Clock source to calibrate |
[in] | calibration_value | Calibration value to write |
[in] | freq_range | Frequency range (8MHz oscillator only) |
STATUS_OK | The calibration value was written successfully. |
STATUS_ERR_INVALID_ARG | The setting is not valid for selected clock source. |
References _system_osc32k_wait_for_sync(), Assert, STATUS_ERR_INVALID_ARG, STATUS_OK, SYSTEM_CLOCK_SOURCE_OSC32K, SYSTEM_CLOCK_SOURCE_OSC48M, and SYSTEM_CLOCK_SOURCE_ULP32K.
|
static |
Internal module instance to cache configuration values.