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