#ifndef __pllregs_h__
#define __pllregs_h__

/* PLL Control Register */

#define CTRL_PLL_ENABLE   (lpc210x_reg)0x01 // enabled
#define CTRL_PLL_ACTIVATE (lpc210x_reg)0x03 // enabled and connected

/* PLL Config Register */

#define CFG_PSEL_MASK     (lpc210x_reg)0x60
#define CFG_PSEL_DIV1     (lpc210x_reg)0x00
#define CFG_PSEL_DIV2     (lpc210x_reg)0x00
#define CFG_PSEL_DIV4     (lpc210x_reg)0x00
#define CFG_PSEL_DIV8     (lpc210x_reg)0x00

#define CTRL_MASK         (lpc210x_reg)0xF8

#define CTRL_CLK_PHASE    (lpc210x_reg)0x08 // 1=data sampled on trailing clock edge 
#define CTRL_CLK_POLARITY (lpc210x_reg)0x10 // 1=SCK is active low
#define CTRL_MASTER_MODE  (lpc210x_reg)0x20 // 1=master, 0=slave
#define CTRL_LSB_FIRST    (lpc210x_reg)0x40 // 1=data is sent lsb first, 0=msb first
#define CTRL_IRQ_ENABLE   (lpc210x_reg)0x80 // 1=interrupts enabled

/* PLL Status Register */

#define STATUS_MASK       (lpc210x_reg)0xF8

#define STATUS_SLAVE_ABRT (lpc210x_reg)0x08
#define STATUS_MODE_FAULT (lpc210x_reg)0x10
#define STATUS_RD_OVERRUN (lpc210x_reg)0x20 // read overrun
#define STATUS_WRITE_COL  (lpc210x_reg)0x40
#define STATUS_XFER_DONE  (lpc210x_reg)0x80 // data transfer complete

/* SPI Interrupt Register */

#define IRQ_ACKNOWLEDGE   (lpc210x_reg)0x01

#endif /* __pllregs_h__ */

