board.h

Go to the documentation of this file.
00001 #ifndef _DEV_BOARD_H_
00002 #define _DEV_BOARD_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$
00038  * Revision 1.20  2009/09/20 13:24:58  ulrichprinz
00039  * Added limited USART support for DBGU.
00040  *
00041  * Revision 1.19  2009/03/08 20:19:34  haraldkipp
00042  * Fixed missing UART device for AVR.
00043  *
00044  * Revision 1.18  2009/03/05 22:16:57  freckle
00045  * use __NUT_EMULATION instead of __APPLE__, __linux__, or __CYGWIN__
00046  *
00047  * Revision 1.17  2009/01/09 17:54:28  haraldkipp
00048  * Added SPI bus controller for AVR and AT91.
00049  *
00050  * Revision 1.16  2008/10/23 08:56:56  haraldkipp
00051  * Added default MMC interfaces.
00052  *
00053  * Revision 1.15  2008/08/27 07:01:10  thornen
00054  * Added:
00055  *  - RTL          support for MMnet01..04
00056  *  - LANC111 support for MMnet101..104
00057  *  - RTC         support for MMnet02..04 and MMnet102..104
00058  *
00059  * Revision 1.14  2008/08/26 17:36:45  haraldkipp
00060  * Revoked changes 2008/08/26 by thornen.
00061  *
00062  * Revision 1.12  2008/08/06 12:51:12  haraldkipp
00063  * Added support for Ethernut 5 (AT91SAM9XE reference design).
00064  *
00065  * Revision 1.11  2008/02/15 17:09:44  haraldkipp
00066  * Added support for the Elektor Internet Radio.
00067  *
00068  * Revision 1.10  2007/10/08 06:37:51  hwmaier
00069  * Added RTC DS1307 for XNUT-100 and XNUT-105 units
00070  *
00071  * Revision 1.9  2007/10/04 20:32:24  olereinhardt
00072  * Support for SAM7S256 added
00073  *
00074  * Revision 1.8  2007/06/03 08:51:30  haraldkipp
00075  * RTC_CHIP definition now visible for ETHERNUT3 and MMNET02 only.
00076  *
00077  * Revision 1.7  2006/10/05 17:18:49  haraldkipp
00078  * Hardware independant RTC layer added.
00079  *
00080  * Revision 1.6  2006/08/31 19:01:08  haraldkipp
00081  * Using devDebug2 for the DBGU output was a bad idea. Some AT91 chips
00082  * provide more than two UARTs. We now use devDebug to specify the DBGU
00083  * device. Baudrate calculations failed on CPUs running on a processor
00084  * clock, which differs from a futher divided main clock. This had been
00085  * fixed.
00086  *
00087  * Revision 1.5  2006/07/05 07:45:29  haraldkipp
00088  * Split on-chip interface definitions.
00089  *
00090  * Revision 1.4  2006/06/28 17:17:50  haraldkipp
00091  * Added initial support for Atmel's AT91SAM7X-EK.
00092  *
00093  * Revision 1.3  2006/02/23 15:34:00  haraldkipp
00094  * Support for Philips LPC2xxx Family and LPC-E2294 Board from Olimex added.
00095  * Many thanks to Michael Fischer for this port.
00096  *
00097  * Revision 1.2  2005/11/22 09:19:03  haraldkipp
00098  * Include condition corrected.
00099  *
00100  * Revision 1.1  2005/11/20 14:43:38  haraldkipp
00101  * First check-in
00102  *
00103  */
00104 
00105 #include <cfg/arch.h>
00106 
00107 #if defined(ETHERNUT5)
00108 #include <arch/arm/board/ethernut5.h>
00109 #endif
00110 
00111 /*
00112  * Debug device.
00113  */
00114 #include <dev/debug.h>
00115 
00116 #ifndef DEV_DEBUG
00117 #if defined(OLIMEX_LPCE2294) || defined(HHOPEN_63F) || defined(EVK1104)
00118 #define DEV_DEBUG       devDebug1
00119 #elif defined(DBGU_BASE)
00120 #define DEV_DEBUG       devDebug
00121 #else
00122 #define DEV_DEBUG       devDebug0
00123 #endif
00124 #endif
00125 
00126 #ifndef DEV_DEBUG_NAME
00127 #if defined(GBAXPORT2)
00128 #define DEV_DEBUG_NAME  "con"
00129 #elif defined(OLIMEX_LPCE2294) || defined(HHOPEN_63F) || defined(EVK1104)
00130 #define DEV_DEBUG_NAME  "uart1"
00131 #elif defined(DBGU_BASE)
00132 #define DEV_DEBUG_NAME  "dbgu"
00133 #else
00134 #define DEV_DEBUG_NAME  "uart0"
00135 #endif
00136 #endif
00137 
00138 /*
00139  * UART device.
00140  */
00141 #if defined(__AVR__) || defined(__NUT_EMULATION__)
00142 
00143 #include <dev/usartavr.h>
00144 
00145 #ifndef DEV_UART0
00146 #define DEV_UART0       devUsartAvr0
00147 #endif
00148 
00149 #ifndef DEV_UART1
00150 #define DEV_UART1       devUsartAvr1
00151 #endif
00152 
00153 #define DEV_UART1_NAME  "uart1"
00154 
00155 #elif defined(MCU_AT91)
00156 
00157 #include <dev/usartat91.h>
00158 
00159 #ifndef DEV_UART0
00160 #define DEV_UART0       devUsartAt910
00161 #endif
00162 
00163 #ifndef DEV_UART1
00164 #define DEV_UART1       devUsartAt911
00165 #endif
00166 
00167 #ifndef DEV_UARTD
00168 #define DEV_UARTD       devDbguAt91
00169 #endif
00170 
00171 #elif defined(__AVR32__)
00172 
00173 #include <dev/usartavr32.h>
00174 
00175 #ifndef DEV_UART0
00176 #define DEV_UART0       devUsartAvr320
00177 #endif
00178 
00179 #ifndef DEV_UART1
00180 #define DEV_UART1       devUsartAvr321
00181 #endif
00182 
00183 #ifndef DEV_UART2
00184 #define DEV_UART2       devUsartAvr322
00185 #endif
00186 
00187 #if defined(EVK1104) && !defined(DEV_UART)
00188 #define DEV_UART        DEV_UART1
00189 #define DEV_UART_NAME   DEV_UART1_NAME
00190 #endif
00191 
00192 #elif defined(GBAXPORT2)
00193 
00194 #define DEV_UART        DEV_DEBUG
00195 #define DEV_UART_NAME   DEV_DEBUG_NAME
00196 
00197 #endif
00198 
00199 #ifndef DEV_UART0
00200 #define DEV_UART0       devUart0
00201 #endif
00202 #ifndef DEV_UART0_NAME
00203 #define DEV_UART0_NAME  "uart0"
00204 #endif
00205 
00206 #if defined(DEV_UART1) && !defined(DEV_UART1_NAME)
00207 #define DEV_UART1_NAME  "uart1"
00208 #endif
00209 
00210 #if defined(DEV_UART2) && !defined(DEV_UART2_NAME)
00211 #define DEV_UART2_NAME  "uart2"
00212 #endif
00213 
00214 #if defined(DEV_UARTD) && !defined(DEV_UARTD_NAME)
00215 #define DEV_UARTD_NAME  "uartd"
00216 #endif
00217 
00218 #ifndef DEV_UART
00219 #define DEV_UART        DEV_UART0
00220 #endif
00221 #ifndef DEV_UART_NAME
00222 #define DEV_UART_NAME   DEV_UART0_NAME
00223 #endif
00224 
00225 /*
00226  * Ethernet device.
00227  */
00228 #if defined(ETHERNUT1) || defined(CHARON2) || defined(XNUT_100) || defined(XNUT_105) ||\
00229     defined(MMNET01) || defined(MMNET02) || defined(MMNET03) || defined(MMNET04) ||\
00230     defined(ARTHERNET1)
00231 #include <dev/nicrtl.h>
00232 #elif defined(ETHERNUT2)||\
00233       defined(MMNET101) || defined(MMNET102) || defined(MMNET103) || defined(MMNET104)
00234 #include <dev/lanc111.h>
00235 #elif defined(ETHERNUT3) || defined(ELEKTOR_IR1)
00236 #include <dev/dm9000e.h>
00237 #elif defined(WOLF)
00238 #include <dev/ax88796.h>
00239 #elif defined(OLIMEX_LPCE2294)
00240 #include <dev/cs8900a.h>
00241 #elif defined(AT91SAM7X_EK) || defined(AT91SAM9260_EK) || defined(ETHERNUT5) || defined(MORPHOQ1)
00242 #include <dev/at91sam7x_emac.h>
00243 #elif defined(EVK1100)
00244 #include <dev/avr32_macb.h>
00245 #endif
00246 
00247 #ifndef DEV_ETHER
00248 #include <dev/null_ether.h>
00249 #endif
00250 #ifndef DEV_ETHER_NAME
00251 #define DEV_ETHER_NAME  "eth0"
00252 #endif
00253 
00254 /*
00255  * SPI bus.
00256  */
00257 #ifndef DEV_SPIBUS
00258 #if defined(ETHERNUT3)
00259 #include <dev/spibus_npl.h>
00260 #define DEV_SPIBUS      spiBusNpl
00261 #elif defined(__AVR__)
00262 #include <dev/spibus_avr.h>
00263 #define DEV_SPIBUS      spiBus0Avr
00264 #elif defined(MCU_AT91) && defined(SPI0_BASE)
00265 #include <dev/spibus_at91.h>
00266 #define DEV_SPIBUS      spiBus0At91
00267 #define DEV_SPIBUS0     spiBus0At91
00268 #elif defined(__AVR32__)
00269 #include <dev/spibus_avr32.h>
00270 #define DEV_SPIBUS      spiBus0Avr32
00271 #define DEV_SPIBUS0     spiBus0Avr32
00272 #define DEV_SPIBUS1     spiBus1Avr32
00273 #endif
00274 #endif /* DEV_SPIBUS */
00275 
00276 /*
00277  * RTC chip.
00278  */
00279 #if defined(ETHERNUT3)
00280 #ifndef RTC_CHIP
00281 #include <cfg/eeprom.h>
00282 #ifdef NUT_CONFIG_AT45D
00283 /* Ethernut 3.1 */
00284 #define RTC_CHIP rtcPcf8563
00285 #else
00286 /* Ethernut 3.0 */
00287 #define RTC_CHIP rtcX12x6
00288 #endif
00289 #endif /* RTC_CHIP */
00290 #include <dev/x12rtc.h>
00291 #include <dev/pcf8563.h>
00292 #elif defined(XNUT_100) || defined(XNUT_105) ||\
00293       defined(MMNET102) || defined(MMNET103) || defined(MMNET104) ||\
00294       defined(MMNET02)  || defined(MMNET03)  || defined(MMNET04)
00295 #define RTC_CHIP rtcDs1307
00296 #include <dev/ds1307rtc.h>
00297 #elif defined(ELEKTOR_IR1)
00298 #define RTC_CHIP rtcPcf8563
00299 #include <dev/pcf8563.h>
00300 #endif
00301 
00302 /*
00303  * MultiMedia Card.
00304  */
00305 #if defined(ETHERNUT3)
00306 #define DEV_MMCARD0         devNplMmc0
00307 #include <dev/nplmmc.h>
00308 #elif defined(AT91SAM7X_EK)
00309 #define DEV_MMCARD0         devAt91SpiMmc0
00310 #include <dev/spimmc_at91.h>
00311 #elif defined(AT91SAM9260_EK)
00312 #define DEV_MMCARD0         devAt91Mci0
00313 #define DEV_MMCARD0_NAME    "MCI0"
00314 #include <dev/at91_mci.h>
00315 #elif defined(ELEKTOR_IR1)
00316 #define DEV_MMCARD0         devSbi0MmCard0
00317 #include <dev/sbi_mmc.h>
00318 #endif
00319 
00320 #if defined(DEV_MMCARD0)
00321 #ifndef DEV_MMCARD
00322 #define DEV_MMCARD          DEV_MMCARD0
00323 #endif
00324 #ifndef DEV_MMCARD0_NAME
00325 #define DEV_MMCARD0_NAME    "MMC0"
00326 #endif
00327 #ifndef DEV_MMCARD_NAME
00328 #define DEV_MMCARD_NAME     DEV_MMCARD0_NAME
00329 #endif
00330 #endif
00331 
00332 __BEGIN_DECLS
00333 /* Prototypes */
00334 
00335 extern void NutBoardInit(void);
00336 extern void NutIdleInit(void);
00337 extern void NutMainInit(void);
00338 
00339 __END_DECLS
00340 /* End of prototypes */
00341 
00342 #endif
00343 

© 2000-2010 by contributors - visit http://www.ethernut.de/