Nut/OS  4.10.3
API Reference
at91_aic.h
Go to the documentation of this file.
00001 #ifndef _ARCH_ARM_AT91_AIC_H_
00002 #define _ARCH_ARM_AT91_AIC_H_
00003 
00004 /*
00005  * Copyright (C) 2005-2006 by egnite Software GmbH. All rights reserved.
00006  *
00007  * Redistribution and use in source and binary forms, with or without
00008  * modification, are permitted provided that the following conditions
00009  * are met:
00010  *
00011  * 1. Redistributions of source code must retain the above copyright
00012  *    notice, this list of conditions and the following disclaimer.
00013  * 2. Redistributions in binary form must reproduce the above copyright
00014  *    notice, this list of conditions and the following disclaimer in the
00015  *    documentation and/or other materials provided with the distribution.
00016  * 3. Neither the name of the copyright holders nor the names of
00017  *    contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY EGNITE SOFTWARE GMBH AND CONTRIBUTORS
00021  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00022  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00023  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL EGNITE
00024  * SOFTWARE GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00025  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00026  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
00027  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
00028  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00029  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
00030  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00031  * SUCH DAMAGE.
00032  *
00033  * For additional information see http://www.ethernut.de/
00034  */
00035 
00057 
00062 #define AIC_SMR(i)  (AIC_BASE + i * 4)
00063 
00068 #define AIC_PRIOR                       0x00000007
00069 
00077 #define AIC_SRCTYPE                     0x00000060
00078 
00079 #define AIC_SRCTYPE_INT_LEVEL_SENSITIVE 0x00000000      
00080 #define AIC_SRCTYPE_INT_EDGE_TRIGGERED  0x00000020      
00081 #define AIC_SRCTYPE_EXT_LOW_LEVEL       0x00000000      
00082 #define AIC_SRCTYPE_EXT_NEGATIVE_EDGE   0x00000020      
00083 #define AIC_SRCTYPE_EXT_HIGH_LEVEL      0x00000040      
00084 #define AIC_SRCTYPE_EXT_POSITIVE_EDGE   0x00000060      
00086 
00087 
00093 #define AIC_SVR(i)  (AIC_BASE + 0x80 + i * 4)
00094 
00098 #define AIC_IVR_OFF                 0x00000100  
00099 #define AIC_IVR     (AIC_BASE + AIC_IVR_OFF)    
00101 
00102 
00104 #define AIC_FVR_OFF                 0x00000104  
00105 #define AIC_FVR     (AIC_BASE + AIC_FVR_OFF)    
00107 
00108 
00110 #define AIC_ISR_OFF                 0x00000108  
00111 #define AIC_ISR     (AIC_BASE + AIC_ISR_OFF)    
00112 #define AIC_IRQID                   0x0000001F  
00114 
00115 
00117 #define AIC_IPR_OFF                 0x0000010C  
00118 #define AIC_IPR     (AIC_BASE + AIC_IPR_OFF)    
00120 
00121 
00123 #define AIC_IMR_OFF                 0x00000110  
00124 #define AIC_IMR     (AIC_BASE + AIC_IMR_OFF)    
00126 
00127 
00129 #define AIC_CISR_OFF                0x00000114  
00130 #define AIC_CISR    (AIC_BASE + AIC_CISR_OFF)   
00131 #define AIC_NFIQ                    0x00000001  
00132 #define AIC_NIRQ                    0x00000002  
00134 
00135 
00137 #define AIC_IECR_OFF                0x00000120  
00138 #define AIC_IECR    (AIC_BASE + AIC_IECR_OFF)   
00140 
00141 
00143 #define AIC_IDCR_OFF                0x00000124  
00144 #define AIC_IDCR    (AIC_BASE + AIC_IDCR_OFF)   
00146 
00147 
00149 #define AIC_ICCR_OFF                0x00000128  
00150 #define AIC_ICCR    (AIC_BASE + AIC_ICCR_OFF)   
00152 
00153 
00155 #define AIC_ISCR_OFF                0x0000012C  
00156 #define AIC_ISCR    (AIC_BASE + AIC_ISCR_OFF)   
00158 
00159 
00161 #define AIC_EOICR_OFF               0x00000130  
00162 #define AIC_EOICR   (AIC_BASE + AIC_EOICR_OFF)  
00164 
00165 
00167 #define AIC_SPU_OFF                 0x00000134  
00168 #define AIC_SPU     (AIC_BASE + AIC_SPU_OFF)    
00170 
00171 
00173 #define AIC_DCR_OFF                 0x0000138   
00174 #define AIC_DCR     (AIC_BASE + AIC_DCR_OFF)    
00176 
00177 
00179 #define AIC_FFER_OFF                0x00000140  
00180 #define AIC_FFER    (AIC_BASE + AIC_FFER_OFF)   
00182 
00183 
00185 #define AIC_FFDR_OFF                0x00000144  
00186 #define AIC_FFDR    (AIC_BASE + AIC_FFDR_OFF)   
00188 
00189 
00191 #define AIC_FFSR_OFF                0x00000148  
00192 #define AIC_FFSR    (AIC_BASE + AIC_FFSR_OFF)   
00194 
00195 
00197 #endif                          /* _ARCH_ARM_AT91_AIC_H_ */