summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/avr/avr/io.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/cpu/avr/avr/io.h')
-rw-r--r--cpukit/score/cpu/avr/avr/io.h420
1 files changed, 420 insertions, 0 deletions
diff --git a/cpukit/score/cpu/avr/avr/io.h b/cpukit/score/cpu/avr/avr/io.h
new file mode 100644
index 0000000000..98e7a18b6b
--- /dev/null
+++ b/cpukit/score/cpu/avr/avr/io.h
@@ -0,0 +1,420 @@
+/* Copyright (c) 2002,2003,2005,2006,2007 Marek Michalkiewicz, Joerg Wunsch
+ Copyright (c) 2007 Eric B. Weddington
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * Neither the name of the copyright holders nor the names of
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE. */
+
+/* $Id$ */
+
+/** \file */
+/** \defgroup avr_io <avr/io.h>: AVR device-specific IO definitions
+ \code #include <avr/io.h> \endcode
+
+ This header file includes the apropriate IO definitions for the
+ device that has been specified by the <tt>-mmcu=</tt> compiler
+ command-line switch. This is done by diverting to the appropriate
+ file <tt>&lt;avr/io</tt><em>XXXX</em><tt>.h&gt;</tt> which should
+ never be included directly. Some register names common to all
+ AVR devices are defined directly within <tt>&lt;avr/common.h&gt;</tt>,
+ which is included in <tt>&lt;avr/io.h&gt;</tt>,
+ but most of the details come from the respective include file.
+
+ Note that this file always includes the following files:
+ \code
+ #include <avr/sfr_defs.h>
+ #include <avr/portpins.h>
+ #include <avr/common.h>
+ #include <avr/version.h>
+ \endcode
+ See \ref avr_sfr for more details about that header file.
+
+ Included are definitions of the IO register set and their
+ respective bit values as specified in the Atmel documentation.
+ Note that inconsistencies in naming conventions,
+ so even identical functions sometimes get different names on
+ different devices.
+
+ Also included are the specific names useable for interrupt
+ function definitions as documented
+ \ref avr_signames "here".
+
+ Finally, the following macros are defined:
+
+ - \b RAMEND
+ <br>
+ The last on-chip RAM address.
+ <br>
+ - \b XRAMEND
+ <br>
+ The last possible RAM location that is addressable. This is equal to
+ RAMEND for devices that do not allow for external RAM. For devices
+ that allow external RAM, this will be larger than RAMEND.
+ <br>
+ - \b E2END
+ <br>
+ The last EEPROM address.
+ <br>
+ - \b FLASHEND
+ <br>
+ The last byte address in the Flash program space.
+ <br>
+ - \b SPM_PAGESIZE
+ <br>
+ For devices with bootloader support, the flash pagesize
+ (in bytes) to be used for the \c SPM instruction.
+ - \b E2PAGESIZE
+ <br>
+ The size of the EEPROM page.
+
+*/
+
+#ifndef _AVR_IO_H_
+#define _AVR_IO_H_
+
+#include <avr/sfr_defs.h>
+
+#if defined (__AVR_AT94K__)
+# include <avr/ioat94k.h>
+#elif defined (__AVR_AT43USB320__)
+# include <avr/io43u32x.h>
+#elif defined (__AVR_AT43USB355__)
+# include <avr/io43u35x.h>
+#elif defined (__AVR_AT76C711__)
+# include <avr/io76c711.h>
+#elif defined (__AVR_AT86RF401__)
+# include <avr/io86r401.h>
+#elif defined (__AVR_AT90PWM1__)
+# include <avr/io90pwm1.h>
+#elif defined (__AVR_AT90PWM2__)
+# include <avr/io90pwmx.h>
+#elif defined (__AVR_AT90PWM2B__)
+# include <avr/io90pwm2b.h>
+#elif defined (__AVR_AT90PWM3__)
+# include <avr/io90pwmx.h>
+#elif defined (__AVR_AT90PWM3B__)
+# include <avr/io90pwm3b.h>
+#elif defined (__AVR_AT90PWM216__)
+# include <avr/io90pwm216.h>
+#elif defined (__AVR_AT90PWM316__)
+# include <avr/io90pwm316.h>
+#elif defined (__AVR_AT90PWM81__)
+# include <avr/io90pwm81.h>
+#elif defined (__AVR_ATmega8U2__)
+# include <avr/iom8u2.h>
+#elif defined (__AVR_ATmega16M1__)
+# include <avr/iom16m1.h>
+#elif defined (__AVR_ATmega16U2__)
+# include <avr/iom16u2.h>
+#elif defined (__AVR_ATmega16U4__)
+# include <avr/iom16u4.h>
+#elif defined (__AVR_ATmega32C1__)
+# include <avr/iom32c1.h>
+#elif defined (__AVR_ATmega32M1__)
+# include <avr/iom32m1.h>
+#elif defined (__AVR_ATmega32U2__)
+# include <avr/iom32u2.h>
+#elif defined (__AVR_ATmega32U4__)
+# include <avr/iom32u4.h>
+#elif defined (__AVR_ATmega32U6__)
+# include <avr/iom32u6.h>
+#elif defined (__AVR_ATmega64C1__)
+# include <avr/iom64c1.h>
+#elif defined (__AVR_ATmega64M1__)
+# include <avr/iom64m1.h>
+#elif defined (__AVR_ATmega128__)
+# include <avr/iom128.h>
+#elif defined (__AVR_ATmega1280__)
+# include <avr/iom1280.h>
+#elif defined (__AVR_ATmega1281__)
+# include <avr/iom1281.h>
+#elif defined (__AVR_ATmega1284P__)
+# include <avr/iom1284p.h>
+#elif defined (__AVR_ATmega128RFA1__)
+# include <avr/iom128rfa1.h>
+#elif defined (__AVR_ATmega2560__)
+# include <avr/iom2560.h>
+#elif defined (__AVR_ATmega2561__)
+# include <avr/iom2561.h>
+#elif defined (__AVR_AT90CAN32__)
+# include <avr/iocan32.h>
+#elif defined (__AVR_AT90CAN64__)
+# include <avr/iocan64.h>
+#elif defined (__AVR_AT90CAN128__)
+# include <avr/iocan128.h>
+#elif defined (__AVR_AT90USB82__)
+# include <avr/iousb82.h>
+#elif defined (__AVR_AT90USB162__)
+# include <avr/iousb162.h>
+#elif defined (__AVR_AT90USB646__)
+# include <avr/iousb646.h>
+#elif defined (__AVR_AT90USB647__)
+# include <avr/iousb647.h>
+#elif defined (__AVR_AT90USB1286__)
+# include <avr/iousb1286.h>
+#elif defined (__AVR_AT90USB1287__)
+# include <avr/iousb1287.h>
+#elif defined (__AVR_ATmega64__)
+# include <avr/iom64.h>
+#elif defined (__AVR_ATmega640__)
+# include <avr/iom640.h>
+#elif defined (__AVR_ATmega644__) || defined (__AVR_ATmega644A__)
+# include <avr/iom644.h>
+#elif defined (__AVR_ATmega644P__)
+# include <avr/iom644p.h>
+#elif defined (__AVR_ATmega644PA__)
+# include <avr/iom644pa.h>
+#elif defined (__AVR_ATmega645__) || defined (__AVR_ATmega645A__) || defined (__AVR_ATmega645P__)
+# include <avr/iom645.h>
+#elif defined (__AVR_ATmega6450__) || defined (__AVR_ATmega6450A__) || defined (__AVR_ATmega6450P__)
+# include <avr/iom6450.h>
+#elif defined (__AVR_ATmega649__) || defined (__AVR_ATmega649A__)
+# include <avr/iom649.h>
+#elif defined (__AVR_ATmega6490__) || defined (__AVR_ATmega6490A__) || defined (__AVR_ATmega6490P__)
+# include <avr/iom6490.h>
+#elif defined (__AVR_ATmega649P__)
+# include <avr/iom649p.h>
+#elif defined (__AVR_ATmega64HVE__)
+# include <avr/iom64hve.h>
+#elif defined (__AVR_ATmega103__)
+# include <avr/iom103.h>
+#elif defined (__AVR_ATmega32__)
+# include <avr/iom32.h>
+#elif defined (__AVR_ATmega323__)
+# include <avr/iom323.h>
+#elif defined (__AVR_ATmega324P__) || defined (__AVR_ATmega324A__)
+# include <avr/iom324.h>
+#elif defined (__AVR_ATmega324PA__)
+# include <avr/iom324pa.h>
+#elif defined (__AVR_ATmega325__)
+# include <avr/iom325.h>
+#elif defined (__AVR_ATmega325P__)
+# include <avr/iom325.h>
+#elif defined (__AVR_ATmega3250__)
+# include <avr/iom3250.h>
+#elif defined (__AVR_ATmega3250P__)
+# include <avr/iom3250.h>
+#elif defined (__AVR_ATmega328P__) || defined (__AVR_ATmega328__)
+# include <avr/iom328p.h>
+#elif defined (__AVR_ATmega329__)
+# include <avr/iom329.h>
+#elif defined (__AVR_ATmega329P__) || defined (__AVR_ATmega329PA__)
+# include <avr/iom329.h>
+#elif defined (__AVR_ATmega3290__)
+# include <avr/iom3290.h>
+#elif defined (__AVR_ATmega3290P__)
+# include <avr/iom3290.h>
+#elif defined (__AVR_ATmega32HVB__)
+# include <avr/iom32hvb.h>
+#elif defined (__AVR_ATmega406__)
+# include <avr/iom406.h>
+#elif defined (__AVR_ATmega16__)
+# include <avr/iom16.h>
+#elif defined (__AVR_ATmega16A__)
+# include <avr/iom16a.h>
+#elif defined (__AVR_ATmega161__)
+# include <avr/iom161.h>
+#elif defined (__AVR_ATmega162__)
+# include <avr/iom162.h>
+#elif defined (__AVR_ATmega163__)
+# include <avr/iom163.h>
+#elif defined (__AVR_ATmega164P__) || defined (__AVR_ATmega164A__)
+# include <avr/iom164.h>
+#elif defined (__AVR_ATmega165__) || defined (__AVR_ATmega165A__)
+# include <avr/iom165.h>
+#elif defined (__AVR_ATmega165P__)
+# include <avr/iom165p.h>
+#elif defined (__AVR_ATmega168__) || defined (__AVR_ATmega168A__)
+# include <avr/iom168.h>
+#elif defined (__AVR_ATmega168P__)
+# include <avr/iom168p.h>
+#elif defined (__AVR_ATmega169__) || defined (__AVR_ATmega169A__)
+# include <avr/iom169.h>
+#elif defined (__AVR_ATmega169P__)
+# include <avr/iom169p.h>
+#elif defined (__AVR_ATmega169PA__)
+# include <avr/iom169pa.h>
+#elif defined (__AVR_ATmega8HVA__)
+# include <avr/iom8hva.h>
+#elif defined (__AVR_ATmega16HVA__)
+# include <avr/iom16hva.h>
+#elif defined (__AVR_ATmega16HVA2__)
+# include <avr/iom16hva2.h>
+#elif defined (__AVR_ATmega16HVB__)
+# include <avr/iom16hvb.h>
+#elif defined (__AVR_ATmega8__)
+# include <avr/iom8.h>
+#elif defined (__AVR_ATmega48__) || defined (__AVR_ATmega48A__)
+# include <avr/iom48.h>
+#elif defined (__AVR_ATmega48P__)
+# include <avr/iom48p.h>
+#elif defined (__AVR_ATmega88__) || defined (__AVR_ATmega88A__)
+# include <avr/iom88.h>
+#elif defined (__AVR_ATmega88P__)
+# include <avr/iom88p.h>
+#elif defined (__AVR_ATmega88PA__)
+# include <avr/iom88pa.h>
+#elif defined (__AVR_ATmega8515__)
+# include <avr/iom8515.h>
+#elif defined (__AVR_ATmega8535__)
+# include <avr/iom8535.h>
+#elif defined (__AVR_AT90S8535__)
+# include <avr/io8535.h>
+#elif defined (__AVR_AT90C8534__)
+# include <avr/io8534.h>
+#elif defined (__AVR_AT90S8515__)
+# include <avr/io8515.h>
+#elif defined (__AVR_AT90S4434__)
+# include <avr/io4434.h>
+#elif defined (__AVR_AT90S4433__)
+# include <avr/io4433.h>
+#elif defined (__AVR_AT90S4414__)
+# include <avr/io4414.h>
+#elif defined (__AVR_ATtiny22__)
+# include <avr/iotn22.h>
+#elif defined (__AVR_ATtiny26__)
+# include <avr/iotn26.h>
+#elif defined (__AVR_AT90S2343__)
+# include <avr/io2343.h>
+#elif defined (__AVR_AT90S2333__)
+# include <avr/io2333.h>
+#elif defined (__AVR_AT90S2323__)
+# include <avr/io2323.h>
+#elif defined (__AVR_AT90S2313__)
+# include <avr/io2313.h>
+#elif defined (__AVR_ATtiny2313__)
+# include <avr/iotn2313.h>
+#elif defined (__AVR_ATtiny2313A__)
+# include <avr/iotn2313a.h>
+#elif defined (__AVR_ATtiny13__)
+# include <avr/iotn13.h>
+#elif defined (__AVR_ATtiny13A__)
+# include <avr/iotn13a.h>
+#elif defined (__AVR_ATtiny25__)
+# include <avr/iotn25.h>
+#elif defined (__AVR_ATtiny4313__)
+# include <avr/iotn4313.h>
+#elif defined (__AVR_ATtiny45__)
+# include <avr/iotn45.h>
+#elif defined (__AVR_ATtiny85__)
+# include <avr/iotn85.h>
+#elif defined (__AVR_ATtiny24__)
+# include <avr/iotn24.h>
+#elif defined (__AVR_ATtiny24A__)
+# include <avr/iotn24a.h>
+#elif defined (__AVR_ATtiny44__)
+# include <avr/iotn44.h>
+#elif defined (__AVR_ATtiny44A__)
+# include <avr/iotn44a.h>
+#elif defined (__AVR_ATtiny84__)
+# include <avr/iotn84.h>
+#elif defined (__AVR_ATtiny261__)
+# include <avr/iotn261.h>
+#elif defined (__AVR_ATtiny261A__)
+# include <avr/iotn261a.h>
+#elif defined (__AVR_ATtiny461__)
+# include <avr/iotn461.h>
+#elif defined (__AVR_ATtiny461A__)
+# include <avr/iotn461a.h>
+#elif defined (__AVR_ATtiny861__)
+# include <avr/iotn861.h>
+#elif defined (__AVR_ATtiny861A__)
+# include <avr/iotn861a.h>
+#elif defined (__AVR_ATtiny43U__)
+# include <avr/iotn43u.h>
+#elif defined (__AVR_ATtiny48__)
+# include <avr/iotn48.h>
+#elif defined (__AVR_ATtiny88__)
+# include <avr/iotn88.h>
+#elif defined (__AVR_ATtiny87__)
+# include <avr/iotn87.h>
+#elif defined (__AVR_ATtiny167__)
+# include <avr/iotn167.h>
+#elif defined (__AVR_AT90SCR100__)
+# include <avr/io90scr100.h>
+#elif defined (__AVR_ATxmega16A4__)
+# include <avr/iox16a4.h>
+#elif defined (__AVR_ATxmega16D4__)
+# include <avr/iox16d4.h>
+#elif defined (__AVR_ATxmega32A4__)
+# include <avr/iox32a4.h>
+#elif defined (__AVR_ATxmega32D4__)
+# include <avr/iox32d4.h>
+#elif defined (__AVR_ATxmega64A1__)
+# include <avr/iox64a1.h>
+#elif defined (__AVR_ATxmega64A3__)
+# include <avr/iox64a3.h>
+#elif defined (__AVR_ATxmega64D3__)
+# include <avr/iox64d3.h>
+#elif defined (__AVR_ATxmega128A1__)
+# include <avr/iox128a1.h>
+#elif defined (__AVR_ATxmega128A3__)
+# include <avr/iox128a3.h>
+#elif defined (__AVR_ATxmega128D3__)
+# include <avr/iox128d3.h>
+#elif defined (__AVR_ATxmega192A3__)
+# include <avr/iox192a3.h>
+#elif defined (__AVR_ATxmega192D3__)
+# include <avr/iox192d3.h>
+#elif defined (__AVR_ATxmega256A3__)
+# include <avr/iox256a3.h>
+#elif defined (__AVR_ATxmega256A3B__)
+# include <avr/iox256a3b.h>
+#elif defined (__AVR_ATxmega256D3__)
+# include <avr/iox256d3.h>
+#elif defined (__AVR_ATA6289__)
+# include <avr/ioa6289.h>
+/* avr1: the following only supported for assembler programs */
+#elif defined (__AVR_ATtiny28__)
+# include <avr/iotn28.h>
+#elif defined (__AVR_AT90S1200__)
+# include <avr/io1200.h>
+#elif defined (__AVR_ATtiny15__)
+# include <avr/iotn15.h>
+#elif defined (__AVR_ATtiny12__)
+# include <avr/iotn12.h>
+#elif defined (__AVR_ATtiny11__)
+# include <avr/iotn11.h>
+#else
+# if !defined(__COMPILING_AVR_LIBC__)
+# warning "device type not defined"
+# endif
+#endif
+
+#include <avr/portpins.h>
+
+#include <avr/common.h>
+
+#include <avr/version.h>
+
+/* Include fuse.h after individual IO header files. */
+#include <avr/fuse.h>
+
+/* Include lock.h after individual IO header files. */
+#include <avr/lock.h>
+
+#endif /* _AVR_IO_H_ */