| 1 |
577 |
jeremybenn |
//*----------------------------------------------------------------------------
|
| 2 |
|
|
//* ATMEL Microcontroller Software Support - ROUSSET -
|
| 3 |
|
|
//*----------------------------------------------------------------------------
|
| 4 |
|
|
//* The software is delivered "AS IS" without warranty or condition of any
|
| 5 |
|
|
//* kind, either express, implied or statutory. This includes without
|
| 6 |
|
|
//* limitation any warranty or condition with respect to merchantability or
|
| 7 |
|
|
//* fitness for any particular purpose, or against the infringements of
|
| 8 |
|
|
//* intellectual property rights of others.
|
| 9 |
|
|
//*----------------------------------------------------------------------------
|
| 10 |
|
|
//* File Name : aic.h
|
| 11 |
|
|
//* Object : Advanced Interrupt Controller Definition File.
|
| 12 |
|
|
//*
|
| 13 |
|
|
//* 1.0 01/04/00 JCZ : Creation
|
| 14 |
|
|
//*----------------------------------------------------------------------------
|
| 15 |
|
|
|
| 16 |
|
|
#ifndef aic_h
|
| 17 |
|
|
#define aic_h
|
| 18 |
|
|
|
| 19 |
|
|
//#include "periph/stdc/std_c.h"
|
| 20 |
|
|
|
| 21 |
|
|
/*-----------------------------------------*/
|
| 22 |
|
|
/* AIC User Interface Structure Definition */
|
| 23 |
|
|
/*-----------------------------------------*/
|
| 24 |
|
|
|
| 25 |
|
|
typedef struct
|
| 26 |
|
|
{
|
| 27 |
|
|
at91_reg AIC_SMR[32] ; /* Source Mode Register */
|
| 28 |
|
|
at91_reg AIC_SVR[32] ; /* Source Vector Register */
|
| 29 |
|
|
at91_reg AIC_IVR ; /* IRQ Vector Register */
|
| 30 |
|
|
at91_reg AIC_FVR ; /* FIQ Vector Register */
|
| 31 |
|
|
at91_reg AIC_ISR ; /* Interrupt Status Register */
|
| 32 |
|
|
at91_reg AIC_IPR ; /* Interrupt Pending Register */
|
| 33 |
|
|
at91_reg AIC_IMR ; /* Interrupt Mask Register */
|
| 34 |
|
|
at91_reg AIC_CISR ; /* Core Interrupt Status Register */
|
| 35 |
|
|
at91_reg reserved0 ;
|
| 36 |
|
|
at91_reg reserved1 ;
|
| 37 |
|
|
at91_reg AIC_IECR ; /* Interrupt Enable Command Register */
|
| 38 |
|
|
at91_reg AIC_IDCR ; /* Interrupt Disable Command Register */
|
| 39 |
|
|
at91_reg AIC_ICCR ; /* Interrupt Clear Command Register */
|
| 40 |
|
|
at91_reg AIC_ISCR ; /* Interrupt Set Command Register */
|
| 41 |
|
|
at91_reg AIC_EOICR ; /* End of Interrupt Command Register */
|
| 42 |
|
|
at91_reg AIC_SPU ; /* Spurious Vector Register */
|
| 43 |
|
|
} StructAIC ;
|
| 44 |
|
|
|
| 45 |
|
|
/*--------------------------------------------*/
|
| 46 |
|
|
/* AIC_SMR[]: Interrupt Source Mode Registers */
|
| 47 |
|
|
/*--------------------------------------------*/
|
| 48 |
|
|
|
| 49 |
|
|
#define AIC_PRIOR 0x07 /* Priority */
|
| 50 |
|
|
|
| 51 |
|
|
#define AIC_SRCTYPE 0x60 /* Source Type Definition */
|
| 52 |
|
|
|
| 53 |
|
|
/* Internal Interrupts */
|
| 54 |
|
|
#define AIC_SRCTYPE_INT_LEVEL_SENSITIVE 0x00 /* Level Sensitive */
|
| 55 |
|
|
#define AIC_SRCTYPE_INT_EDGE_TRIGGERED 0x20 /* Edge Triggered */
|
| 56 |
|
|
|
| 57 |
|
|
/* External Interrupts */
|
| 58 |
|
|
#define AIC_SRCTYPE_EXT_LOW_LEVEL 0x00 /* Low Level */
|
| 59 |
|
|
#define AIC_SRCTYPE_EXT_NEGATIVE_EDGE 0x20 /* Negative Edge */
|
| 60 |
|
|
#define AIC_SRCTYPE_EXT_HIGH_LEVEL 0x40 /* High Level */
|
| 61 |
|
|
#define AIC_SRCTYPE_EXT_POSITIVE_EDGE 0x60 /* Positive Edge */
|
| 62 |
|
|
|
| 63 |
|
|
/*------------------------------------*/
|
| 64 |
|
|
/* AIC_ISR: Interrupt Status Register */
|
| 65 |
|
|
/*------------------------------------*/
|
| 66 |
|
|
|
| 67 |
|
|
#define AIC_IRQID 0x1F /* Current source interrupt */
|
| 68 |
|
|
|
| 69 |
|
|
/*------------------------------------------*/
|
| 70 |
|
|
/* AIC_CISR: Interrupt Core Status Register */
|
| 71 |
|
|
/*------------------------------------------*/
|
| 72 |
|
|
|
| 73 |
|
|
#define AIC_NFIQ 0x01 /* Core FIQ Status */
|
| 74 |
|
|
#define AIC_NIRQ 0x02 /* Core IRQ Status */
|
| 75 |
|
|
|
| 76 |
|
|
/*-------------------------------*/
|
| 77 |
|
|
/* Advanced Interrupt Controller */
|
| 78 |
|
|
/*-------------------------------*/
|
| 79 |
|
|
#define AIC_BASE ((StructAIC *)0xFFFFF000)
|
| 80 |
|
|
|
| 81 |
|
|
#endif /* aic_h */
|