Microchip® Advanced Software Framework

ccl.h File Reference

SAM Configurable Custom Logic (CCL) Driver.

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

#include <compiler.h>
#include <system.h>

Data Structures

struct  ccl_config
 CCL module configuration structure. More...
 
struct  ccl_lut_config
 CCL LUT 0 to 3 configuration structure. More...
 

Enumerations

enum  ccl_lut_filter_sel {
  CCL_LUT_FILTER_DISABLE = CCL_LUTCTRL_FILTSEL_DISABLE,
  CCL_LUT_FILTER_SYNC = CCL_LUTCTRL_FILTSEL_SYNCH,
  CCL_LUT_FILTER_ENABLE = CCL_LUTCTRL_FILTSEL_FILTER
}
 Select the LUT output filter options enum. More...
 
enum  ccl_lut_id {
  CCL_LUT_0 = 0,
  CCL_LUT_1 = 1,
  CCL_LUT_2 = 2,
  CCL_LUT_3 = 3
}
 CCL LUT(look up table) ID number enum. More...
 
enum  ccl_lut_input_src_sel {
  CCL_LUT_INPUT_SRC_MASK = 0,
  CCL_LUT_INPUT_SRC_FEEDBACK = 1,
  CCL_LUT_INPUT_SRC_LINK = 2,
  CCL_LUT_INPUT_SRC_EVENT = 3,
  CCL_LUT_INPUT_SRC_IO = 4,
  CCL_LUT_INPUT_SRC_AC = 5,
  CCL_LUT_INPUT_SRC_TC = 6,
  CCL_LUT_INPUT_SRC_ALTTC = 7,
  CCL_LUT_INPUT_SRC_TCC = 8,
  CCL_LUT_INPUT_SRC_SERCOM = 9
}
 LUT Input source selection configuration enum. More...
 
enum  ccl_seq_id {
  CCL_SEQ_0 = 0,
  CCL_SEQ_1 = 1
}
 CCL sequential module ID number enum. More...
 
enum  ccl_seq_selection {
  CCL_SEQ_DISABLED = CCL_SEQCTRL_SEQSEL_DISABLE,
  CCL_SEQ_D_FLIP_FLOP = CCL_SEQCTRL_SEQSEL_DFF,
  CCL_SEQ_JK_FLIP_FLOP = CCL_SEQCTRL_SEQSEL_JK,
  CCL_SEQ_D_LATCH = CCL_SEQCTRL_SEQSEL_LATCH,
  CCL_SEQ_RS_LATCH = CCL_SEQCTRL_SEQSEL_RS
}
 Sequential selection enum. More...
 

Functions

Initialize and Reset CCL Module
void ccl_init (struct ccl_config *const config)
 Initializes CCL module. More...
 
static void ccl_get_config_defaults (struct ccl_config *const config)
 Initializes all members of a CCL configuration structure to safe defaults. More...
 
static void ccl_module_reset (void)
 Resets CCL module. More...
 
Enable and Disable CCL Module
static void ccl_module_enable (void)
 Enables CCL module. More...
 
static void ccl_module_disable (void)
 Disables CCL module. More...
 
Configure LUT
enum status_code ccl_seq_config (const enum ccl_seq_id number, const enum ccl_seq_selection seq_selection)
 Writes sequential selection to the hardware module. More...
 
void ccl_lut_get_config_defaults (struct ccl_lut_config *const config)
 Initializes all members of LUT configuration structure to safe defaults. More...
 
enum status_code ccl_lut_set_config (const enum ccl_lut_id number, struct ccl_lut_config *const config)
 Writes LUT configuration to the hardware module. More...
 
Enable and Disable LUT
void ccl_lut_enable (const enum ccl_lut_id number)
 Enables an LUT that was previously configured. More...
 
void ccl_lut_disable (const enum ccl_lut_id number)
 Disables an LUT that was previously enabled. More...