/* SAM3X/A Header File */
#ifndef _SAM3XA_H_
#define _SAM3XA_H_

#include <stdint.h>

/* General Types */
typedef volatile uint32_t reg32_ro;
typedef volatile uint32_t reg32_rw;
typedef volatile uint32_t reg32_wo;
typedef volatile uint32_t reg32_und;

/* Exception Vector Table */
extern void* vector_table[];

/* Device Register Descriptions */
#include "devices/pmc.h"
#include "devices/pio.h"
#include "devices/supc.h"
#include "devices/wdt.h"

/* Device Instances */
#define PMC  ((regs_pmc*) 0x400E0600)
#define PIOA ((regs_pio*) 0x400E0E00)
#define PIOB ((regs_pio*) 0x400E1000)
#define PIOC ((regs_pio*) 0x400E1200)
#define PIOD ((regs_pio*) 0x400E1400)
#define PIOE ((regs_pio*) 0x400E1600)
#define PIOF ((regs_pio*) 0x400E1800)
#define SUPC ((regs_supc*)0x400E1A10)
#define WDT  ((regs_wdt*) 0x400E1A50)

#endif /* _SAM3XA_H_ */
