Microchip® Advanced Software Framework

pmic.h File Reference

Programmable Multilevel Interrupt Controller driver.

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

#include <compiler.h>
#include <ccp.h>

Enumerations

enum  pmic_level {
  PMIC_LVL_LOW = PMIC_LOLVLEN_bm,
  PMIC_LVL_MEDIUM = PMIC_MEDLVLEN_bm,
  PMIC_LVL_HIGH = PMIC_HILVLEN_bm,
  PMIC_LVL_NMI = PMIC_NMIEX_bp
}
 Interrupt level bitmasks. More...
 
enum  pmic_schedule {
  PMIC_SCH_FIXED_PRIORITY,
  PMIC_SCH_ROUND_ROBIN,
  PMIC_NR_OF_SCHEDULES
}
 Interrupt scheduling schemes. More...
 
enum  pmic_vector {
  PMIC_VEC_APPLICATION,
  PMIC_VEC_BOOT,
  PMIC_NR_OF_VECTORS
}
 Interrupt vector locations. More...
 

Functions

static void pmic_disable_level (enum pmic_level level)
 Disable interrupts with specified level(s). More...
 
static void pmic_enable_level (enum pmic_level level)
 Enable interrupts with specified level(s). More...
 
static enum pmic_level pmic_get_enabled_levels (void)
 Get currently enabled level(s) More...
 
static void pmic_init (void)
 Initialize the PMIC. More...
 
static bool pmic_level_is_enabled (enum pmic_level level)
 Check if specified interrupt level(s) is enabled. More...
 
static bool pmic_level_is_executing (enum pmic_level level)
 Check if an interrupt level(s) is currently executing. More...
 
static void pmic_set_scheduling (enum pmic_schedule schedule)
 Set interrupt scheduling for low-level interrupts. More...
 
static void pmic_set_vector_location (enum pmic_vector vector)
 Set location of interrupt vectors. More...