libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
4l/scif.h File Reference
Include dependency graph for 4l/scif.h:

Go to the source code of this file.

Macros

#define SCIF_IER   MMIO32(SCIF_BASE)
 
#define SCIF_IDR   MMIO32(SCIF_BASE + 0x0004)
 
#define SCIF_IMR   MMIO32(SCIF_BASE + 0x0008)
 
#define SCIF_ISR   MMIO32(SCIF_BASE + 0x000C)
 
#define SCIF_ICR   MMIO32(SCIF_BASE + 0x0010)
 
#define SCIF_PCLKSR   MMIO32(SCIF_BASE + 0x0014)
 
#define SCIF_UNLOCK   MMIO32(SCIF_BASE + 0x0018)
 
#define SCIF_UNLOCK_KEY   (0xaa << 24)
 
#define SCIF_CSCR   MMIO32(SCIF_BASE + 0x001C)
 
#define SCIF_OSCCTRL0   MMIO32(SCIF_BASE + 0x0020)
 
#define SCIF_OSCCTRL0_KEY   (SCIF_UNLOCK_KEY | 0x0020)
 
#define SCIF_PLL0   MMIO32(SCIF_BASE + 0x0024)
 
#define SCIF_PLL0_KEY   (SCIF_UNLOCK_KEY | 0x0024)
 
#define SCIF_DFLL0CONF   MMIO32(SCIF_BASE + 0x0028)
 
#define SCIF_DFLL0VAL   MMIO32(SCIF_BASE + 0x002C)
 
#define SCIF_DFLL0MUL   MMIO32(SCIF_BASE + 0x0030)
 
#define SCIF_DFLL0STEP   MMIO32(SCIF_BASE + 0x0034)
 
#define SCIF_DFLL0SSG   MMIO32(SCIF_BASE + 0x0038)
 
#define SCIF_DFLL0RATIO   MMIO32(SCIF_BASE + 0x003C)
 
#define SCIF_DFLL0SYNC   MMIO32(SCIF_BASE + 0x0040)
 
#define SCIF_RCCR   MMIO32(SCIF_BASE + 0x0044)
 
#define SCIF_RCFASTCFG   MMIO32(SCIF_BASE + 0x0048)
 
#define SCIF_RCFASTSR   MMIO32(SCIF_BASE + 0x004C)
 
#define SCIF_RC80MCR   MMIO32(SCIF_BASE + 0x0050)
 
#define SCIF_HPPCR   MMIO32(SCIF_BASE + 0x0064)
 
#define SCIF_FPCR   MMIO32(SCIF_BASE + 0x0068)
 
#define SCIF_FPMUL   MMIO32(SCIF_BASE + 0x006C)
 
#define SCIF_FPDIV   MMIO32(SCIF_BASE + 0x006C)
 
#define SCIF_GCCTRL0   MMIO32(SCIF_BASE + 0x0074)
 
#define SCIF_GCCTRL1   MMIO32(SCIF_BASE + 0x0078)
 
#define SCIF_GCCTRL2   MMIO32(SCIF_BASE + 0x007C)
 
#define SCIF_GCCTRL3   MMIO32(SCIF_BASE + 0x0080)
 
#define SCIF_GCCTRL4   MMIO32(SCIF_BASE + 0x0084)
 
#define SCIF_GCCTRL5   MMIO32(SCIF_BASE + 0x0088)
 
#define SCIF_GCCTRL6   MMIO32(SCIF_BASE + 0x008C)
 
#define SCIF_GCCTRL7   MMIO32(SCIF_BASE + 0x0090)
 
#define SCIF_GCCTRL8   MMIO32(SCIF_BASE + 0x0094)
 
#define SCIF_GCCTRL9   MMIO32(SCIF_BASE + 0x0098)
 
#define SCIF_GCCTRL10   MMIO32(SCIF_BASE + 0x009C)
 
#define SCIF_GCCTRL11   MMIO32(SCIF_BASE + 0x00A0)
 
#define SCIF_GCTRL(N)   MMIO32(SCIF_BASE + 0x0074 + 0x0004 * (N))
 
#define SCIF_GCLK_MAX_NUM   11
 
#define SCIF_RCFASTVERSION   MMIO32(SCIF_BASE + 0x03D8)
 
#define SCIF_GCLKPRESCVERSION   MMIO32(SCIF_BASE + 0x03DC)
 
#define SCIF_PLLIFAVERSION   MMIO32(SCIF_BASE + 0x03E0)
 
#define SCIF_OSCIFAVERSION   MMIO32(SCIF_BASE + 0x03E4)
 
#define SCIF_DFLLIFBVERSION   MMIO32(SCIF_BASE + 0x03E8)
 
#define SCIF_RCOSCIFAVERSION   MMIO32(SCIF_BASE + 0x03EC)
 
#define SCIF_RC80MVERSION   MMIO32(SCIF_BASE + 0x03F4)
 
#define SCIF_GCLKVERSION   MMIO32(SCIF_BASE + 0x03F8)
 
#define SCIF_VERSION   MMIO32(SCIF_BASE + 0x03FC)
 
#define SCIF_OSC0RDY   (1 << 0)
 
#define SCIF_DFLL0LOCKC   (1 << 1)
 
#define SCIF_DFLL0LOCKF   (1 << 2)
 
#define SCIF_DFLL0RDY   (1 << 3)
 
#define SCIF_DFLL0RCS   (1 << 4)
 
#define SCIF_PLL0LOCK   (1 << 6)
 
#define SCIF_PLL0LOCKLOST   (1 << 7)
 
#define SCIF_RCFASTLOCK   (1 << 13)
 
#define SCIF_RCFASTLOCKLOST   (1 << 14)
 
#define SCIF_OSCCTRL_MODE   (1 << 0)
 
#define SCIF_OSCCTRL_GAIN_SHIFT   1
 
#define SCIF_OSCCTRL_GAIN_MASK   (3 << SCIF_OSCCTRL_GAIN_SHIFT)
 
#define SCIF_OSCCTRL_AGC   (1 << 3)
 
#define SCIF_OSCCTRL_STARTUP_SHIFT   8
 
#define SCIF_OSCCTRL_STARTUP_MASK   (0xf << SCIF_OSCCTRL_STARTUP_SHIFT)
 
#define SCIF_OSCCTRL_OSCEN   (1 << 16)
 
#define _MASKED_VALUE(V, S, M)   (((V) << (S)) & (M))
 
#define SCIF_PLL0_PLLEN   (1 << 0)
 
#define SCIF_PLL0_PLLOSC_SHIFT   1
 
#define SCIF_PLL0_PLLOSC_MASK   (3 << SCIF_PLL0_PLLOSC_SHIFT)
 
#define SCIF_PLL0_PLLOSC_MASKED(V)   _MASKED_VALUE((V), SCIF_PLL0_PLLOSC_SHIFT, SCIF_PLL0_PLLOSC_MASK)
 
#define SCIF_PLL0_PLLOPT_SHIFT   3
 
#define SCIF_PLL0_PLLOPT_MASK   (7 << SCIF_PLL0_PLLOPT_SHIFT)
 
#define SCIF_PLL0_PLLOPT_MASKED(V)   _MASKED_VALUE((V), SCIF_PLL0_PLLOPT_SHIFT, SCIF_PLL0_PLLOPT_MASK)
 
#define SCIF_PLL0_PLLDIV_SHIFT   8
 
#define SCIF_PLL0_PLLDIV_MASK   (0xf << SCIF_PLL0_PLLDIV_SHIFT)
 
#define SCIF_PLL0_PLLDIV_MASKED(V)   _MASKED_VALUE((V), SCIF_PLL0_PLLDIV_SHIFT, SCIF_PLL0_PLLDIV_MASK)
 
#define SCIF_PLL0_PLLMUL_SHIFT   16
 
#define SCIF_PLL0_PLLMUL_MASK   (0xf << SCIF_PLL0_PLLMUL_SHIFT)
 
#define SCIF_PLL0_PLLMUL_MASKED(V)   _MASKED_VALUE((V), SCIF_PLL0_PLLMUL_SHIFT, SCIF_PLL0_PLLMUL_MASK)
 
#define SCIF_PLL0_PLLCOUNT_SHIFT   24
 
#define SCIF_PLL0_PLLCOUNT_MASK   (0x3f << SCIF_PLL0_PLLCOUNT_SHIFT)
 
#define SCIF_PLL0_PLLCOUNT_MASKED(V)   _MASKED_VALUE((V), SCIF_PLL0_PLLCOUNT_SHIFT, SCIF_PLL0_PLLCOUNT_MASK)
 
#define SCIF_GCCTRL_CEN   (1 << 0)
 
#define SCIF_GCCTRL_DIVEN   (1 << 1)
 
#define SCIF_GCCTRL_OSCSEL_SHIFT   8
 
#define SCIF_GCCTRL_OSCSEL_MASK   (0x1f << SCIF_GCCTRL_OSCSEL_SHIFT)
 
#define SCIF_GCCTRL_OSCSEL_MASKED(V)   _MASKED_VALUE(V, SCIF_GCCTRL_OSCSEL_SHIFT, SCIF_GCCTRL_OSCSEL_MASK)
 
#define SCIF_GCCTRL_DIV_SHIFT   16
 
#define SCIF_GCCTRL_DIV_MASK   (0xffff << SCIF_GCCTRL_DIV_SHIFT)
 
#define SCIF_GCCTRL_DIV_MASKED(V)   _MASKED_VALUE(V, SCIF_GCCTRL_DIV_SHIFT, SCIF_GCCTRL_DIV_MASK)
 

Enumerations

enum  osc_mode { OSC_MODE_XIN = 0 , OSC_MODE_XIN_XOUT }
 
enum  osc_startup {
  OSC_STARTUP_0 = 0 , OSC_STARTUP_4 = 8 , OSC_STARTUP_8 = 9 , OSC_STARTUP_16 = 10 ,
  OSC_STARTUP_32 = 11 , OSC_STARTUP_64 = 1 , OSC_STARTUP_128 = 2 , OSC_STARTUP_256 = 12 ,
  OSC_STARTUP_512 = 13 , OSC_STARTUP_1K = 14 , OSC_STARTUP_2K = 3 , OSC_STARTUP_4K = 4 ,
  OSC_STARTUP_8K = 5 , OSC_STARTUP_16K = 6 , OSC_STARTUP_32K = 7
}
 
enum  pll_clk_src { PLL_CLK_SRC_OSC0 = 0 , PLL_CLK_SRC_GCLK9 }
 
enum  gclk_src {
  GCLK_SRC_RCSYS , GCLK_SRC_OSC32K , GCLK_SRC_DFLL0 , GCLK_SRC_OSC0 ,
  GCLK_SRC_RC80M , GCLK_SRC_RCFAST , GCLK_SRC_RC1M , GCLK_SRC_CLK_CPU ,
  GCLK_SRC_CLK_HSB , GCLK_SRC_CLK_PBA , GCLK_SRC_CLK_PBB , GCLK_SRC_CLK_PBC ,
  GCLK_SRC_CLK_PBD , GCLK_SRC_RC32K , GCLK_SRC_RESERVED_ , GCLK_SRC_CLK_1K ,
  GCLK_SRC_PLL0 , GCLK_SRC_HRP , GCLK_SRC_FP , GCLK_SRC_GCLK_IN0 ,
  GCLK_SRC_GCLK_IN1 , GCLK_SRC_GCLK11
}
 
enum  generic_clock {
  GENERIC_CLOCK0 , GENERIC_CLOCK1 , GENERIC_CLOCK2 , GENERIC_CLOCK3 ,
  GENERIC_CLOCK4 , GENERIC_CLOCK5 , GENERIC_CLOCK6 , GENERIC_CLOCK7 ,
  GENERIC_CLOCK8 , GENERIC_CLOCK9 , GENERIC_CLOCK10 , GENERIC_CLOCK_ADCIFE = GENERIC_CLOCK10 ,
  GENERIC_CLOCK11
}
 

Functions

int scif_osc_enable (enum osc_mode mode, uint32_t freq, enum osc_startup startup)
 Enable external oscillator. More...
 
int scif_enable_pll (uint8_t delay, uint8_t mul, uint8_t div, uint8_t pll_opt, enum pll_clk_src source_clock)
 Configure and enable PLL clock. More...
 
void scif_enable_gclk (enum generic_clock gclk, enum gclk_src source_clock, uint16_t div)
 Configure and enable Generic Clock. More...
 

Macro Definition Documentation

◆ _MASKED_VALUE

#define _MASKED_VALUE (   V,
  S,
 
)    (((V) << (S)) & (M))

Definition at line 193 of file 4l/scif.h.

◆ SCIF_CSCR

#define SCIF_CSCR   MMIO32(SCIF_BASE + 0x001C)

Definition at line 49 of file 4l/scif.h.

◆ SCIF_DFLL0CONF

#define SCIF_DFLL0CONF   MMIO32(SCIF_BASE + 0x0028)

Definition at line 60 of file 4l/scif.h.

◆ SCIF_DFLL0LOCKC

#define SCIF_DFLL0LOCKC   (1 << 1)

Definition at line 176 of file 4l/scif.h.

◆ SCIF_DFLL0LOCKF

#define SCIF_DFLL0LOCKF   (1 << 2)

Definition at line 177 of file 4l/scif.h.

◆ SCIF_DFLL0MUL

#define SCIF_DFLL0MUL   MMIO32(SCIF_BASE + 0x0030)

Definition at line 66 of file 4l/scif.h.

◆ SCIF_DFLL0RATIO

#define SCIF_DFLL0RATIO   MMIO32(SCIF_BASE + 0x003C)

Definition at line 75 of file 4l/scif.h.

◆ SCIF_DFLL0RCS

#define SCIF_DFLL0RCS   (1 << 4)

Definition at line 179 of file 4l/scif.h.

◆ SCIF_DFLL0RDY

#define SCIF_DFLL0RDY   (1 << 3)

Definition at line 178 of file 4l/scif.h.

◆ SCIF_DFLL0SSG

#define SCIF_DFLL0SSG   MMIO32(SCIF_BASE + 0x0038)

Definition at line 72 of file 4l/scif.h.

◆ SCIF_DFLL0STEP

#define SCIF_DFLL0STEP   MMIO32(SCIF_BASE + 0x0034)

Definition at line 69 of file 4l/scif.h.

◆ SCIF_DFLL0SYNC

#define SCIF_DFLL0SYNC   MMIO32(SCIF_BASE + 0x0040)

Definition at line 78 of file 4l/scif.h.

◆ SCIF_DFLL0VAL

#define SCIF_DFLL0VAL   MMIO32(SCIF_BASE + 0x002C)

Definition at line 63 of file 4l/scif.h.

◆ SCIF_DFLLIFBVERSION

#define SCIF_DFLLIFBVERSION   MMIO32(SCIF_BASE + 0x03E8)

Definition at line 156 of file 4l/scif.h.

◆ SCIF_FPCR

#define SCIF_FPCR   MMIO32(SCIF_BASE + 0x0068)

Definition at line 96 of file 4l/scif.h.

◆ SCIF_FPDIV

#define SCIF_FPDIV   MMIO32(SCIF_BASE + 0x006C)

Definition at line 102 of file 4l/scif.h.

◆ SCIF_FPMUL

#define SCIF_FPMUL   MMIO32(SCIF_BASE + 0x006C)

Definition at line 99 of file 4l/scif.h.

◆ SCIF_GCCTRL0

#define SCIF_GCCTRL0   MMIO32(SCIF_BASE + 0x0074)

Definition at line 105 of file 4l/scif.h.

◆ SCIF_GCCTRL1

#define SCIF_GCCTRL1   MMIO32(SCIF_BASE + 0x0078)

Definition at line 108 of file 4l/scif.h.

◆ SCIF_GCCTRL10

#define SCIF_GCCTRL10   MMIO32(SCIF_BASE + 0x009C)

Definition at line 135 of file 4l/scif.h.

◆ SCIF_GCCTRL11

#define SCIF_GCCTRL11   MMIO32(SCIF_BASE + 0x00A0)

Definition at line 138 of file 4l/scif.h.

◆ SCIF_GCCTRL2

#define SCIF_GCCTRL2   MMIO32(SCIF_BASE + 0x007C)

Definition at line 111 of file 4l/scif.h.

◆ SCIF_GCCTRL3

#define SCIF_GCCTRL3   MMIO32(SCIF_BASE + 0x0080)

Definition at line 114 of file 4l/scif.h.

◆ SCIF_GCCTRL4

#define SCIF_GCCTRL4   MMIO32(SCIF_BASE + 0x0084)

Definition at line 117 of file 4l/scif.h.

◆ SCIF_GCCTRL5

#define SCIF_GCCTRL5   MMIO32(SCIF_BASE + 0x0088)

Definition at line 120 of file 4l/scif.h.

◆ SCIF_GCCTRL6

#define SCIF_GCCTRL6   MMIO32(SCIF_BASE + 0x008C)

Definition at line 123 of file 4l/scif.h.

◆ SCIF_GCCTRL7

#define SCIF_GCCTRL7   MMIO32(SCIF_BASE + 0x0090)

Definition at line 126 of file 4l/scif.h.

◆ SCIF_GCCTRL8

#define SCIF_GCCTRL8   MMIO32(SCIF_BASE + 0x0094)

Definition at line 129 of file 4l/scif.h.

◆ SCIF_GCCTRL9

#define SCIF_GCCTRL9   MMIO32(SCIF_BASE + 0x0098)

Definition at line 132 of file 4l/scif.h.

◆ SCIF_GCCTRL_CEN

#define SCIF_GCCTRL_CEN   (1 << 0)

Definition at line 217 of file 4l/scif.h.

◆ SCIF_GCCTRL_DIV_MASK

#define SCIF_GCCTRL_DIV_MASK   (0xffff << SCIF_GCCTRL_DIV_SHIFT)

Definition at line 223 of file 4l/scif.h.

◆ SCIF_GCCTRL_DIV_MASKED

#define SCIF_GCCTRL_DIV_MASKED (   V)    _MASKED_VALUE(V, SCIF_GCCTRL_DIV_SHIFT, SCIF_GCCTRL_DIV_MASK)

Definition at line 224 of file 4l/scif.h.

◆ SCIF_GCCTRL_DIV_SHIFT

#define SCIF_GCCTRL_DIV_SHIFT   16

Definition at line 222 of file 4l/scif.h.

◆ SCIF_GCCTRL_DIVEN

#define SCIF_GCCTRL_DIVEN   (1 << 1)

Definition at line 218 of file 4l/scif.h.

◆ SCIF_GCCTRL_OSCSEL_MASK

#define SCIF_GCCTRL_OSCSEL_MASK   (0x1f << SCIF_GCCTRL_OSCSEL_SHIFT)

Definition at line 220 of file 4l/scif.h.

◆ SCIF_GCCTRL_OSCSEL_MASKED

#define SCIF_GCCTRL_OSCSEL_MASKED (   V)    _MASKED_VALUE(V, SCIF_GCCTRL_OSCSEL_SHIFT, SCIF_GCCTRL_OSCSEL_MASK)

Definition at line 221 of file 4l/scif.h.

◆ SCIF_GCCTRL_OSCSEL_SHIFT

#define SCIF_GCCTRL_OSCSEL_SHIFT   8

Definition at line 219 of file 4l/scif.h.

◆ SCIF_GCLK_MAX_NUM

#define SCIF_GCLK_MAX_NUM   11

Definition at line 141 of file 4l/scif.h.

◆ SCIF_GCLKPRESCVERSION

#define SCIF_GCLKPRESCVERSION   MMIO32(SCIF_BASE + 0x03DC)

Definition at line 147 of file 4l/scif.h.

◆ SCIF_GCLKVERSION

#define SCIF_GCLKVERSION   MMIO32(SCIF_BASE + 0x03F8)

Definition at line 165 of file 4l/scif.h.

◆ SCIF_GCTRL

#define SCIF_GCTRL (   N)    MMIO32(SCIF_BASE + 0x0074 + 0x0004 * (N))

Definition at line 140 of file 4l/scif.h.

◆ SCIF_HPPCR

#define SCIF_HPPCR   MMIO32(SCIF_BASE + 0x0064)

Definition at line 93 of file 4l/scif.h.

◆ SCIF_ICR

#define SCIF_ICR   MMIO32(SCIF_BASE + 0x0010)

Definition at line 39 of file 4l/scif.h.

◆ SCIF_IDR

#define SCIF_IDR   MMIO32(SCIF_BASE + 0x0004)

Definition at line 30 of file 4l/scif.h.

◆ SCIF_IER

#define SCIF_IER   MMIO32(SCIF_BASE)

Definition at line 27 of file 4l/scif.h.

◆ SCIF_IMR

#define SCIF_IMR   MMIO32(SCIF_BASE + 0x0008)

Definition at line 33 of file 4l/scif.h.

◆ SCIF_ISR

#define SCIF_ISR   MMIO32(SCIF_BASE + 0x000C)

Definition at line 36 of file 4l/scif.h.

◆ SCIF_OSC0RDY

#define SCIF_OSC0RDY   (1 << 0)

Definition at line 175 of file 4l/scif.h.

◆ SCIF_OSCCTRL0

#define SCIF_OSCCTRL0   MMIO32(SCIF_BASE + 0x0020)

Definition at line 52 of file 4l/scif.h.

◆ SCIF_OSCCTRL0_KEY

#define SCIF_OSCCTRL0_KEY   (SCIF_UNLOCK_KEY | 0x0020)

Definition at line 53 of file 4l/scif.h.

◆ SCIF_OSCCTRL_AGC

#define SCIF_OSCCTRL_AGC   (1 << 3)

Definition at line 188 of file 4l/scif.h.

◆ SCIF_OSCCTRL_GAIN_MASK

#define SCIF_OSCCTRL_GAIN_MASK   (3 << SCIF_OSCCTRL_GAIN_SHIFT)

Definition at line 187 of file 4l/scif.h.

◆ SCIF_OSCCTRL_GAIN_SHIFT

#define SCIF_OSCCTRL_GAIN_SHIFT   1

Definition at line 186 of file 4l/scif.h.

◆ SCIF_OSCCTRL_MODE

#define SCIF_OSCCTRL_MODE   (1 << 0)

Definition at line 185 of file 4l/scif.h.

◆ SCIF_OSCCTRL_OSCEN

#define SCIF_OSCCTRL_OSCEN   (1 << 16)

Definition at line 191 of file 4l/scif.h.

◆ SCIF_OSCCTRL_STARTUP_MASK

#define SCIF_OSCCTRL_STARTUP_MASK   (0xf << SCIF_OSCCTRL_STARTUP_SHIFT)

Definition at line 190 of file 4l/scif.h.

◆ SCIF_OSCCTRL_STARTUP_SHIFT

#define SCIF_OSCCTRL_STARTUP_SHIFT   8

Definition at line 189 of file 4l/scif.h.

◆ SCIF_OSCIFAVERSION

#define SCIF_OSCIFAVERSION   MMIO32(SCIF_BASE + 0x03E4)

Definition at line 153 of file 4l/scif.h.

◆ SCIF_PCLKSR

#define SCIF_PCLKSR   MMIO32(SCIF_BASE + 0x0014)

Definition at line 42 of file 4l/scif.h.

◆ SCIF_PLL0

#define SCIF_PLL0   MMIO32(SCIF_BASE + 0x0024)

Definition at line 56 of file 4l/scif.h.

◆ SCIF_PLL0_KEY

#define SCIF_PLL0_KEY   (SCIF_UNLOCK_KEY | 0x0024)

Definition at line 57 of file 4l/scif.h.

◆ SCIF_PLL0_PLLCOUNT_MASK

#define SCIF_PLL0_PLLCOUNT_MASK   (0x3f << SCIF_PLL0_PLLCOUNT_SHIFT)

Definition at line 213 of file 4l/scif.h.

◆ SCIF_PLL0_PLLCOUNT_MASKED

#define SCIF_PLL0_PLLCOUNT_MASKED (   V)    _MASKED_VALUE((V), SCIF_PLL0_PLLCOUNT_SHIFT, SCIF_PLL0_PLLCOUNT_MASK)

Definition at line 214 of file 4l/scif.h.

◆ SCIF_PLL0_PLLCOUNT_SHIFT

#define SCIF_PLL0_PLLCOUNT_SHIFT   24

Definition at line 212 of file 4l/scif.h.

◆ SCIF_PLL0_PLLDIV_MASK

#define SCIF_PLL0_PLLDIV_MASK   (0xf << SCIF_PLL0_PLLDIV_SHIFT)

Definition at line 205 of file 4l/scif.h.

◆ SCIF_PLL0_PLLDIV_MASKED

#define SCIF_PLL0_PLLDIV_MASKED (   V)    _MASKED_VALUE((V), SCIF_PLL0_PLLDIV_SHIFT, SCIF_PLL0_PLLDIV_MASK)

Definition at line 206 of file 4l/scif.h.

◆ SCIF_PLL0_PLLDIV_SHIFT

#define SCIF_PLL0_PLLDIV_SHIFT   8

Definition at line 204 of file 4l/scif.h.

◆ SCIF_PLL0_PLLEN

#define SCIF_PLL0_PLLEN   (1 << 0)

Definition at line 195 of file 4l/scif.h.

◆ SCIF_PLL0_PLLMUL_MASK

#define SCIF_PLL0_PLLMUL_MASK   (0xf << SCIF_PLL0_PLLMUL_SHIFT)

Definition at line 209 of file 4l/scif.h.

◆ SCIF_PLL0_PLLMUL_MASKED

#define SCIF_PLL0_PLLMUL_MASKED (   V)    _MASKED_VALUE((V), SCIF_PLL0_PLLMUL_SHIFT, SCIF_PLL0_PLLMUL_MASK)

Definition at line 210 of file 4l/scif.h.

◆ SCIF_PLL0_PLLMUL_SHIFT

#define SCIF_PLL0_PLLMUL_SHIFT   16

Definition at line 208 of file 4l/scif.h.

◆ SCIF_PLL0_PLLOPT_MASK

#define SCIF_PLL0_PLLOPT_MASK   (7 << SCIF_PLL0_PLLOPT_SHIFT)

Definition at line 201 of file 4l/scif.h.

◆ SCIF_PLL0_PLLOPT_MASKED

#define SCIF_PLL0_PLLOPT_MASKED (   V)    _MASKED_VALUE((V), SCIF_PLL0_PLLOPT_SHIFT, SCIF_PLL0_PLLOPT_MASK)

Definition at line 202 of file 4l/scif.h.

◆ SCIF_PLL0_PLLOPT_SHIFT

#define SCIF_PLL0_PLLOPT_SHIFT   3

Definition at line 200 of file 4l/scif.h.

◆ SCIF_PLL0_PLLOSC_MASK

#define SCIF_PLL0_PLLOSC_MASK   (3 << SCIF_PLL0_PLLOSC_SHIFT)

Definition at line 197 of file 4l/scif.h.

◆ SCIF_PLL0_PLLOSC_MASKED

#define SCIF_PLL0_PLLOSC_MASKED (   V)    _MASKED_VALUE((V), SCIF_PLL0_PLLOSC_SHIFT, SCIF_PLL0_PLLOSC_MASK)

Definition at line 198 of file 4l/scif.h.

◆ SCIF_PLL0_PLLOSC_SHIFT

#define SCIF_PLL0_PLLOSC_SHIFT   1

Definition at line 196 of file 4l/scif.h.

◆ SCIF_PLL0LOCK

#define SCIF_PLL0LOCK   (1 << 6)

Definition at line 180 of file 4l/scif.h.

◆ SCIF_PLL0LOCKLOST

#define SCIF_PLL0LOCKLOST   (1 << 7)

Definition at line 181 of file 4l/scif.h.

◆ SCIF_PLLIFAVERSION

#define SCIF_PLLIFAVERSION   MMIO32(SCIF_BASE + 0x03E0)

Definition at line 150 of file 4l/scif.h.

◆ SCIF_RC80MCR

#define SCIF_RC80MCR   MMIO32(SCIF_BASE + 0x0050)

Definition at line 90 of file 4l/scif.h.

◆ SCIF_RC80MVERSION

#define SCIF_RC80MVERSION   MMIO32(SCIF_BASE + 0x03F4)

Definition at line 162 of file 4l/scif.h.

◆ SCIF_RCCR

#define SCIF_RCCR   MMIO32(SCIF_BASE + 0x0044)

Definition at line 81 of file 4l/scif.h.

◆ SCIF_RCFASTCFG

#define SCIF_RCFASTCFG   MMIO32(SCIF_BASE + 0x0048)

Definition at line 84 of file 4l/scif.h.

◆ SCIF_RCFASTLOCK

#define SCIF_RCFASTLOCK   (1 << 13)

Definition at line 182 of file 4l/scif.h.

◆ SCIF_RCFASTLOCKLOST

#define SCIF_RCFASTLOCKLOST   (1 << 14)

Definition at line 183 of file 4l/scif.h.

◆ SCIF_RCFASTSR

#define SCIF_RCFASTSR   MMIO32(SCIF_BASE + 0x004C)

Definition at line 87 of file 4l/scif.h.

◆ SCIF_RCFASTVERSION

#define SCIF_RCFASTVERSION   MMIO32(SCIF_BASE + 0x03D8)

Definition at line 144 of file 4l/scif.h.

◆ SCIF_RCOSCIFAVERSION

#define SCIF_RCOSCIFAVERSION   MMIO32(SCIF_BASE + 0x03EC)

Definition at line 159 of file 4l/scif.h.

◆ SCIF_UNLOCK

#define SCIF_UNLOCK   MMIO32(SCIF_BASE + 0x0018)

Definition at line 45 of file 4l/scif.h.

◆ SCIF_UNLOCK_KEY

#define SCIF_UNLOCK_KEY   (0xaa << 24)

Definition at line 46 of file 4l/scif.h.

◆ SCIF_VERSION

#define SCIF_VERSION   MMIO32(SCIF_BASE + 0x03FC)

Definition at line 168 of file 4l/scif.h.

Enumeration Type Documentation

◆ gclk_src

enum gclk_src
Enumerator
GCLK_SRC_RCSYS 
GCLK_SRC_OSC32K 
GCLK_SRC_DFLL0 
GCLK_SRC_OSC0 
GCLK_SRC_RC80M 
GCLK_SRC_RCFAST 
GCLK_SRC_RC1M 
GCLK_SRC_CLK_CPU 
GCLK_SRC_CLK_HSB 
GCLK_SRC_CLK_PBA 
GCLK_SRC_CLK_PBB 
GCLK_SRC_CLK_PBC 
GCLK_SRC_CLK_PBD 
GCLK_SRC_RC32K 
GCLK_SRC_RESERVED_ 
GCLK_SRC_CLK_1K 
GCLK_SRC_PLL0 
GCLK_SRC_HRP 
GCLK_SRC_FP 
GCLK_SRC_GCLK_IN0 
GCLK_SRC_GCLK_IN1 
GCLK_SRC_GCLK11 

Definition at line 278 of file 4l/scif.h.

◆ generic_clock

Enumerator
GENERIC_CLOCK0 
GENERIC_CLOCK1 
GENERIC_CLOCK2 
GENERIC_CLOCK3 
GENERIC_CLOCK4 
GENERIC_CLOCK5 
GENERIC_CLOCK6 
GENERIC_CLOCK7 
GENERIC_CLOCK8 
GENERIC_CLOCK9 
GENERIC_CLOCK10 
GENERIC_CLOCK_ADCIFE 
GENERIC_CLOCK11 

Definition at line 303 of file 4l/scif.h.

◆ osc_mode

enum osc_mode
Enumerator
OSC_MODE_XIN 
OSC_MODE_XIN_XOUT 

Definition at line 227 of file 4l/scif.h.

◆ osc_startup

Enumerator
OSC_STARTUP_0 
OSC_STARTUP_4 
OSC_STARTUP_8 
OSC_STARTUP_16 
OSC_STARTUP_32 
OSC_STARTUP_64 
OSC_STARTUP_128 
OSC_STARTUP_256 
OSC_STARTUP_512 
OSC_STARTUP_1K 
OSC_STARTUP_2K 
OSC_STARTUP_4K 
OSC_STARTUP_8K 
OSC_STARTUP_16K 
OSC_STARTUP_32K 

Definition at line 232 of file 4l/scif.h.

◆ pll_clk_src

Enumerator
PLL_CLK_SRC_OSC0 
PLL_CLK_SRC_GCLK9 

Definition at line 250 of file 4l/scif.h.

Function Documentation

◆ scif_enable_gclk()

void scif_enable_gclk ( enum generic_clock  gclk,
enum gclk_src  source_clock,
uint16_t  div 
)

Configure and enable Generic Clock.

@param[in] gclk enum generic_clock: Generic Clock to configure and enable.
@param[in] source_clock enum gclk_src: Source Clock for this Generic Clock.
@param[in] div uint16_t: Division Factor. Upper 8 bits only used for Generic Clock 11,
    If 0, clock is undivided.

Definition at line 120 of file scif.c.

References GENERIC_CLOCK11, SCIF_GCCTRL_CEN, SCIF_GCCTRL_DIV_MASKED, SCIF_GCCTRL_DIVEN, SCIF_GCCTRL_OSCSEL_MASKED, and SCIF_GCTRL.

◆ scif_enable_pll()

int scif_enable_pll ( uint8_t  delay,
uint8_t  mul,
uint8_t  div,
uint8_t  pll_opt,
enum pll_clk_src  source_clock 
)

Configure and enable PLL clock.

Parameters
[in]delayuint8_t: Specifies the number of RCSYS clock cycles before ISR.PLLLOCKn will be set after PLL has been written, or after PLL has been automatically re-enabled after exiting a sleep mode.
[in]muluint8_t: Multiply factor.
[in]divuint8_t: Division factor.These fields determine the ratio of the PLL output frequency to the source oscillator frequency: f_vco = (PLLMUL+1)/PLLDIV * f_ref if PLLDIV >0 f_vco = 2*(PLLMUL+1) * f_ref if PLLDIV = 0 Note that the PLLMUL field should always be greater than 1 or the behavior of the PLL will be undefined.
[in]pll_optuint8_t: PLL Options.
Returns
zero upon success.

Definition at line 82 of file scif.c.

References SCIF_PCLKSR, SCIF_PLL0, SCIF_PLL0_KEY, SCIF_PLL0_PLLCOUNT_MASKED, SCIF_PLL0_PLLDIV_MASKED, SCIF_PLL0_PLLEN, SCIF_PLL0_PLLMUL_MASKED, SCIF_PLL0_PLLOPT_MASKED, SCIF_PLL0_PLLOSC_MASKED, SCIF_PLL0LOCK, and SCIF_UNLOCK.

◆ scif_osc_enable()

int scif_osc_enable ( enum osc_mode  mode,
uint32_t  freq,
enum osc_startup  startup 
)

Enable external oscillator.

Parameters
[in]modeenum osc_mode: Oscillator mode (which pins oscillator connected to).
[in]frequint32_t: External Oscillator frequency, in Hertz. Must be 0.6MHz - 30MHz
[in]startupenum osc_startup: Oscillator start time in RCSYS clock cycles.
Returns
zero upon success.

Definition at line 38 of file scif.c.

References SCIF_OSC0RDY, SCIF_OSCCTRL0, SCIF_OSCCTRL0_KEY, SCIF_OSCCTRL_GAIN_SHIFT, SCIF_OSCCTRL_OSCEN, SCIF_OSCCTRL_STARTUP_SHIFT, SCIF_PCLKSR, and SCIF_UNLOCK.