00001 #ifndef _DEV_IRQREG_ARM_H_ 00002 #define _DEV_IRQREG_ARM_H_ 00003 00004 /* 00005 * Copyright (C) 2001-2007 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 00036 /* 00037 * $Log: irqreg.h,v $ 00038 * Revision 1.15 2008/02/15 17:00:08 haraldkipp 00039 * Spport for AT91SAM7SE512 added. 00040 * 00041 * Revision 1.14 2008/01/31 09:22:32 haraldkipp 00042 * Added first version of platform independent GPIO routines. Consider the 00043 * AVR version untested. 00044 * 00045 * Revision 1.13 2007/12/09 21:29:33 olereinhardt 00046 * Added adc support 00047 * 00048 * Revision 1.12 2007/10/04 20:27:58 olereinhardt 00049 * Support for SAM7S256 added 00050 * 00051 * Revision 1.11 2007/09/06 19:46:47 olereinhardt 00052 * Added interrupt definitions for SPI/TWI 00053 * 00054 * Revision 1.10 2007/02/15 16:29:23 haraldkipp 00055 * Support for system controller interrupts added. 00056 * 00057 * Revision 1.9 2006/09/29 12:34:59 haraldkipp 00058 * Basic AT91 SPI support added. 00059 * 00060 * Revision 1.8 2006/09/08 16:47:49 haraldkipp 00061 * For some reason the SSC driver for SAM7X had not been included. 00062 * 00063 * Revision 1.7 2006/09/05 12:33:45 haraldkipp 00064 * SSC interrupt handler added. 00065 * 00066 * Revision 1.6 2006/08/31 19:04:08 haraldkipp 00067 * Added support for the AT91SAM9260 and Atmel's AT91SAM9260 Evaluation Kit. 00068 * 00069 * Revision 1.5 2006/07/05 07:45:28 haraldkipp 00070 * Split on-chip interface definitions. 00071 * 00072 * Revision 1.4 2006/06/28 17:22:34 haraldkipp 00073 * Make it compile for AT91SAM7X256. 00074 * 00075 * Revision 1.3 2006/02/23 15:33:59 haraldkipp 00076 * Support for Philips LPC2xxx Family and LPC-E2294 Board from Olimex added. 00077 * Many thanks to Michael Fischer for this port. 00078 * 00079 * Revision 1.2 2005/10/24 10:26:21 haraldkipp 00080 * AT91 handlers added. 00081 * 00082 * Revision 1.1 2005/07/26 18:35:09 haraldkipp 00083 * First check in 00084 * 00085 * Revision 1.3 2005/04/05 17:52:40 haraldkipp 00086 * Much better implementation of GBA interrupt registration. 00087 * 00088 * Revision 1.2 2004/09/08 10:52:31 haraldkipp 00089 * Tyou's support for the SAMSUNG S3C45 00090 * 00091 * Revision 1.1 2004/03/16 16:48:28 haraldkipp 00092 * Added Jan Dubiec's H8/300 port. 00093 * 00094 * 00095 */ 00096 00097 #ifdef S3C4510B 00098 #include "s3c4510b_irqreg.h" 00099 00100 #elif defined(MCU_GBA) 00101 00102 extern IRQ_HANDLER sig_VBLANK; 00103 extern IRQ_HANDLER sig_HBLANK; 00104 extern IRQ_HANDLER sig_VCOUNT; 00105 extern IRQ_HANDLER sig_TMR0; 00106 extern IRQ_HANDLER sig_TMR1; 00107 extern IRQ_HANDLER sig_TMR2; 00108 extern IRQ_HANDLER sig_TMR3; 00109 extern IRQ_HANDLER sig_SIO; 00110 extern IRQ_HANDLER sig_DMA0; 00111 extern IRQ_HANDLER sig_DMA1; 00112 extern IRQ_HANDLER sig_DMA2; 00113 extern IRQ_HANDLER sig_DMA3; 00114 extern IRQ_HANDLER sig_KEYPAD; 00115 extern IRQ_HANDLER sig_GAMEPAK; 00116 00117 extern void InitIrqHandler(void); 00118 00119 #elif defined(MCU_AT91R40008) 00120 00121 extern IRQ_HANDLER sig_FIQ; 00122 extern IRQ_HANDLER sig_SWIRQ; 00123 extern IRQ_HANDLER sig_UART0; 00124 extern IRQ_HANDLER sig_UART1; 00125 extern IRQ_HANDLER sig_TC0; 00126 extern IRQ_HANDLER sig_TC1; 00127 extern IRQ_HANDLER sig_TC2; 00128 extern IRQ_HANDLER sig_WDI; 00129 extern IRQ_HANDLER sig_PIO; 00130 extern IRQ_HANDLER sig_INTERRUPT0; 00131 extern IRQ_HANDLER sig_INTERRUPT1; 00132 extern IRQ_HANDLER sig_INTERRUPT2; 00133 00134 #elif defined(MCU_LPC2XXX) 00135 00136 extern IRQ_HANDLER sig_UART0; 00137 extern IRQ_HANDLER sig_UART1; 00138 extern IRQ_HANDLER sig_TC0; 00139 extern IRQ_HANDLER sig_TC1; 00140 extern IRQ_HANDLER sig_WDI; 00141 extern IRQ_HANDLER sig_INTERRUPT0; 00142 extern IRQ_HANDLER sig_INTERRUPT1; 00143 extern IRQ_HANDLER sig_INTERRUPT2; 00144 extern IRQ_HANDLER sig_INTERRUPT2; 00145 00146 #elif defined(MCU_AT91SAM7X256) 00147 00148 extern IRQ_HANDLER sig_FIQ; 00149 extern IRQ_HANDLER sig_SYS; 00150 extern IRQ_HANDLER sig_UART0; 00151 extern IRQ_HANDLER sig_UART1; 00152 extern IRQ_HANDLER sig_TC0; 00153 extern IRQ_HANDLER sig_TC1; 00154 extern IRQ_HANDLER sig_TC2; 00155 extern IRQ_HANDLER sig_INTERRUPT0; 00156 extern IRQ_HANDLER sig_INTERRUPT1; 00157 extern IRQ_HANDLER sig_EMAC; 00158 extern IRQ_HANDLER sig_PIOA; 00159 extern IRQ_HANDLER sig_PIOB; 00160 extern IRQ_HANDLER sig_PIOC; 00161 extern IRQ_HANDLER sig_SWIRQ; 00162 extern IRQ_HANDLER sig_SSC; 00163 extern IRQ_HANDLER sig_SPI0; 00164 extern IRQ_HANDLER sig_SPI1; 00165 extern IRQ_HANDLER sig_TWI; 00166 extern IRQ_HANDLER sig_ADC; 00167 00168 /* 00169 * Registered system interrupt handler information structure. 00170 */ 00171 typedef struct { 00172 void *sir_arg; 00173 void (*sir_handler) (void *); 00174 int sir_enabled; 00175 } SYSIRQ_HANDLER; 00176 00177 extern SYSIRQ_HANDLER syssig_DBGU; 00178 extern SYSIRQ_HANDLER syssig_MC; 00179 extern SYSIRQ_HANDLER syssig_PIT; 00180 extern SYSIRQ_HANDLER syssig_PMC; 00181 extern SYSIRQ_HANDLER syssig_RSTC; 00182 extern SYSIRQ_HANDLER syssig_RTT; 00183 extern SYSIRQ_HANDLER syssig_WDT; 00184 00185 extern int NutRegisterSysIrqHandler(SYSIRQ_HANDLER * sysirq, void (*handler) (void *), void *arg); 00186 extern int NutSysIrqEnable(SYSIRQ_HANDLER * sysirq); 00187 extern int NutSysIrqDisable(SYSIRQ_HANDLER * sysirq); 00188 00189 #elif defined(MCU_AT91SAM7S256) || defined(MCU_AT91SAM7SE512) 00190 00191 extern IRQ_HANDLER sig_FIQ; 00192 extern IRQ_HANDLER sig_SYS; 00193 extern IRQ_HANDLER sig_UART0; 00194 extern IRQ_HANDLER sig_UART1; 00195 extern IRQ_HANDLER sig_TC0; 00196 extern IRQ_HANDLER sig_TC1; 00197 extern IRQ_HANDLER sig_TC2; 00198 extern IRQ_HANDLER sig_INTERRUPT0; 00199 extern IRQ_HANDLER sig_INTERRUPT1; 00200 extern IRQ_HANDLER sig_PIOA; 00201 extern IRQ_HANDLER sig_PIOB; 00202 extern IRQ_HANDLER sig_PIOC; 00203 extern IRQ_HANDLER sig_SWIRQ; 00204 extern IRQ_HANDLER sig_SSC; 00205 extern IRQ_HANDLER sig_SPI0; 00206 extern IRQ_HANDLER sig_TWI; 00207 00208 /* 00209 * Registered system interrupt handler information structure. 00210 */ 00211 typedef struct { 00212 void *sir_arg; 00213 void (*sir_handler) (void *); 00214 int sir_enabled; 00215 } SYSIRQ_HANDLER; 00216 00217 extern SYSIRQ_HANDLER syssig_DBGU; 00218 extern SYSIRQ_HANDLER syssig_MC; 00219 extern SYSIRQ_HANDLER syssig_PIT; 00220 extern SYSIRQ_HANDLER syssig_PMC; 00221 extern SYSIRQ_HANDLER syssig_RSTC; 00222 extern SYSIRQ_HANDLER syssig_RTT; 00223 extern SYSIRQ_HANDLER syssig_WDT; 00224 00225 extern int NutRegisterSysIrqHandler(SYSIRQ_HANDLER * sysirq, void (*handler) (void *), void *arg); 00226 extern int NutSysIrqEnable(SYSIRQ_HANDLER * sysirq); 00227 extern int NutSysIrqDisable(SYSIRQ_HANDLER * sysirq); 00228 00229 #elif defined(MCU_AT91SAM9260) 00230 00231 extern IRQ_HANDLER sig_FIQ; 00232 extern IRQ_HANDLER sig_UART0; 00233 extern IRQ_HANDLER sig_UART1; 00234 extern IRQ_HANDLER sig_TC0; 00235 extern IRQ_HANDLER sig_TC1; 00236 extern IRQ_HANDLER sig_TC2; 00237 extern IRQ_HANDLER sig_INTERRUPT0; 00238 extern IRQ_HANDLER sig_INTERRUPT1; 00239 extern IRQ_HANDLER sig_EMAC; 00240 extern IRQ_HANDLER sig_PIOA; 00241 extern IRQ_HANDLER sig_PIOB; 00242 extern IRQ_HANDLER sig_PIOC; 00243 extern IRQ_HANDLER sig_SWIRQ; 00244 extern IRQ_HANDLER sig_SSC; 00245 extern IRQ_HANDLER sig_SPI0; 00246 extern IRQ_HANDLER sig_SPI1; 00247 00248 #else 00249 #warning "No MCU defined" 00250 #endif 00251 00252 #endif