Microchip® Advanced Software Framework

gclk.c File Reference

SAM D21/R21/DA/HA Generic Clock Driver.

Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.

#include <gclk.h>
#include <clock.h>
#include <system_interrupt.h>

Functions

void system_gclk_chan_disable (const uint8_t channel)
 Disables a Generic Clock that was previously enabled. More...
 
void system_gclk_chan_enable (const uint8_t channel)
 Enables a Generic Clock that was previously configured. More...
 
uint32_t system_gclk_chan_get_hz (const uint8_t channel)
 Retrieves the clock frequency of a Generic Clock channel. More...
 
bool system_gclk_chan_is_enabled (const uint8_t channel)
 Determins if the specified Generic Clock channel is enabled. More...
 
bool system_gclk_chan_is_locked (const uint8_t channel)
 Determins if the specified Generic Clock channel is locked. More...
 
void system_gclk_chan_lock (const uint8_t channel)
 Locks a Generic Clock channel from further configuration writes. More...
 
void system_gclk_chan_set_config (const uint8_t channel, struct system_gclk_chan_config *const config)
 Writes a Generic Clock configuration to the hardware module. More...
 
void system_gclk_gen_disable (const uint8_t generator)
 Disables a Generic Clock Generator that was previously enabled. More...
 
void system_gclk_gen_enable (const uint8_t generator)
 Enables a Generic Clock Generator that was previously configured. More...
 
uint32_t system_gclk_gen_get_hz (const uint8_t generator)
 Retrieves the clock frequency of a Generic Clock generator. More...
 
bool system_gclk_gen_is_enabled (const uint8_t generator)
 Determins if the specified Generic Clock Generator is enabled. More...
 
void system_gclk_gen_set_config (const uint8_t generator, struct system_gclk_gen_config *const config)
 Writes a Generic Clock Generator configuration to the hardware module. More...
 
void system_gclk_init (void)
 Initializes the GCLK driver. More...
 
static bool system_gclk_is_syncing (void)
 Determines if the hardware module(s) are currently synchronizing to the bus. More...
 

static bool system_gclk_is_syncing ( void  )
inlinestatic

Determines if the hardware module(s) are currently synchronizing to the bus.

Checks to see if the underlying hardware peripheral module(s) are currently synchronizing across multiple clock domains to the hardware bus, This function can be used to delay further operations on a module until such time that it is ready, to prevent blocking delays for synchronization in the user application.

Returns
Synchronization status of the underlying hardware module(s).
Return values
falseif the module has completed synchronization
trueif the module synchronization is ongoing

Referenced by system_gclk_gen_disable(), system_gclk_gen_enable(), system_gclk_gen_get_hz(), and system_gclk_gen_set_config().