summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/avr/avr/iousbxx2.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/cpu/avr/avr/iousbxx2.h')
-rw-r--r--cpukit/score/cpu/avr/avr/iousbxx2.h766
1 files changed, 766 insertions, 0 deletions
diff --git a/cpukit/score/cpu/avr/avr/iousbxx2.h b/cpukit/score/cpu/avr/avr/iousbxx2.h
new file mode 100644
index 0000000000..b989740261
--- /dev/null
+++ b/cpukit/score/cpu/avr/avr/iousbxx2.h
@@ -0,0 +1,766 @@
+/* Copyright (c) 2007 Anatoly Sokolov
+ 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$ */
+
+/* iousbxx2.h - definitions for AT90USB82 and AT90USB162. */
+
+#ifndef _AVR_IOUSBXX2_H_
+#define _AVR_IOUSBXX2_H_ 1
+
+/* This file should only be included from <avr/io.h>, never directly. */
+
+#ifndef _AVR_IO_H_
+# error "Include <avr/io.h> instead of this file."
+#endif
+
+#ifndef _AVR_IOXXX_H_
+# define _AVR_IOXXX_H_ "iousbxx2.h"
+#else
+# error "Attempt to include more than one <avr/ioXXX.h> file."
+#endif
+
+/* Registers and associated bit numbers */
+
+/* Reserved [0x00..0x02] */
+
+#define PINB _SFR_IO8(0X03)
+#define PINB7 7
+#define PINB6 6
+#define PINB5 5
+#define PINB4 4
+#define PINB3 3
+#define PINB2 2
+#define PINB1 1
+#define PINB0 0
+
+#define DDRB _SFR_IO8(0x04)
+#define DDB7 7
+#define DDB6 6
+#define DDB5 5
+#define DDB4 4
+#define DDB3 3
+#define DDB2 2
+#define DDB1 1
+#define DDB0 0
+
+#define PORTB _SFR_IO8(0x05)
+#define PB7 7
+#define PB6 6
+#define PB5 5
+#define PB4 4
+#define PB3 3
+#define PB2 2
+#define PB1 1
+#define PB0 0
+
+#define PINC _SFR_IO8(0x06)
+#define PINC7 7
+#define PINC6 6
+#define PINC5 5
+#define PINC4 4
+#define PINC2 2
+#define PINC1 1
+#define PINC0 0
+
+#define DDRC _SFR_IO8(0x07)
+#define DDC7 7
+#define DDC6 6
+#define DDC5 5
+#define DDC4 4
+#define DDC2 2
+#define DDC1 1
+#define DDC0 0
+
+#define PORTC _SFR_IO8(0x08)
+#define PC7 7
+#define PC6 6
+#define PC5 5
+#define PC4 4
+#define PC2 2
+#define PC1 1
+#define PC0 0
+
+#define PIND _SFR_IO8(0x09)
+#define PIND7 7
+#define PIND6 6
+#define PIND5 5
+#define PIND4 4
+#define PIND3 3
+#define PIND2 2
+#define PIND1 1
+#define PIND0 0
+
+#define DDRD _SFR_IO8(0x0A)
+#define DDD7 7
+#define DDD6 6
+#define DDD5 5
+#define DDD4 4
+#define DDD3 3
+#define DDD2 2
+#define DDD1 1
+#define DDD0 0
+
+#define PORTD _SFR_IO8(0x0B)
+#define PD7 7
+#define PD6 6
+#define PD5 5
+#define PD4 4
+#define PD3 3
+#define PD2 2
+#define PD1 1
+#define PD0 0
+
+/* Reserved [0xC..0x14] */
+
+#define TIFR0 _SFR_IO8(0x15)
+#define OCF0B 2
+#define OCF0A 1
+#define TOV0 0
+
+#define TIFR1 _SFR_IO8(0x16)
+#define ICF1 5
+#define OCF1C 3
+#define OCF1B 2
+#define OCF1A 1
+#define TOV1 0
+
+/* Reserved [0x17..0x1A] */
+
+#define PCIFR _SFR_IO8(0x1B)
+#define PCIF1 1
+#define PCIF0 0
+
+#define EIFR _SFR_IO8(0x1C)
+#define INTF7 7
+#define INTF6 6
+#define INTF5 5
+#define INTF4 4
+#define INTF3 3
+#define INTF2 2
+#define INTF1 1
+#define INTF0 0
+
+#define EIMSK _SFR_IO8(0x1D)
+#define INT7 7
+#define INT6 6
+#define INT5 5
+#define INT4 4
+#define INT3 3
+#define INT2 2
+#define INT1 1
+#define INT0 0
+
+#define GPIOR0 _SFR_IO8(0x1E)
+
+#define EECR _SFR_IO8(0x1F)
+#define EEPM1 5
+#define EEPM0 4
+#define EERIE 3
+#define EEMPE 2
+#define EEPE 1
+#define EERE 0
+
+#define EEDR _SFR_IO8(0x20)
+
+#define EEAR _SFR_IO16(0x21)
+#define EEARL _SFR_IO8(0x21)
+#define EEARH _SFR_IO8(0x22)
+
+/* 6-char sequence denoting where to find the EEPROM registers in memory space.
+ Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
+ subroutines.
+ First two letters: EECR address.
+ Second two letters: EEDR address.
+ Last two letters: EEAR address. */
+#define __EEPROM_REG_LOCATIONS__ 1F2021
+
+#define GTCCR _SFR_IO8(0x23)
+#define TSM 7
+#define PSRASY 1
+#define PSRSYNC 0
+
+#define TCCR0A _SFR_IO8(0x24)
+#define COM0A1 7
+#define COM0A0 6
+#define COM0B1 5
+#define COM0B0 4
+#define WGM01 1
+#define WGM00 0
+
+#define TCCR0B _SFR_IO8(0x25)
+#define FOC0A 7
+#define FOC0B 6
+#define WGM02 3
+#define CS02 2
+#define CS01 1
+#define CS00 0
+
+#define TCNT0 _SFR_IO8(0X26)
+
+#define OCR0A _SFR_IO8(0x27)
+
+#define OCR0B _SFR_IO8(0X28)
+
+#define PLLCSR _SFR_IO8(0x29)
+#define PLLP2 4
+#define PLLP1 3
+#define PLLP0 2
+#define PLLE 1
+#define PLOCK 0
+
+#define GPIOR1 _SFR_IO8(0x2A)
+
+#define GPIOR2 _SFR_IO8(0x2B)
+
+#define SPCR _SFR_IO8(0x2C)
+#define SPIE 7
+#define SPE 6
+#define DORD 5
+#define MSTR 4
+#define CPOL 3
+#define CPHA 2
+#define SPR1 1
+#define SPR0 0
+
+#define SPSR _SFR_IO8(0x2D)
+#define SPIF 7
+#define WCOL 6
+#define SPI2X 0
+
+#define SPDR _SFR_IO8(0x2E)
+
+/* Reserved [0x2F] */
+
+#define ACSR _SFR_IO8(0x30)
+#define ACD 7
+#define ACBG 6
+#define ACO 5
+#define ACI 4
+#define ACIE 3
+#define ACIC 2
+#define ACIS1 1
+#define ACIS0 0
+
+#define DWDR _SFR_IO8(0x31)
+#define IDRD 7
+
+/* Reserved [0x32] */
+
+#define SMCR _SFR_IO8(0x33)
+#define SM2 3
+#define SM1 2
+#define SM0 1
+#define SE 0
+
+#define MCUSR _SFR_IO8(0x34)
+#define USBRF 5
+#define WDRF 3
+#define BORF 2
+#define EXTRF 1
+#define PORF 0
+
+#define MCUCR _SFR_IO8(0x35)
+#define IVSEL 1
+#define IVCE 0
+
+/* Reserved [0x36] */
+
+#define SPMCSR _SFR_IO8(0x37)
+#define SPMIE 7
+#define RWWSB 6
+#define SIGRD 5
+#define RWWSRE 4
+#define BLBSET 3
+#define PGWRT 2
+#define PGERS 1
+#define SPMEN 0
+
+/* Reserved [0x38..0x3C] */
+
+/* SP [0x3D..0x3E] */
+/* SREG [0x3F] */
+
+#define WDTCSR _SFR_MEM8(0x60)
+#define WDIF 7
+#define WDIE 6
+#define WDP3 5
+#define WDCE 4
+#define WDE 3
+#define WDP2 2
+#define WDP1 1
+#define WDP0 0
+
+#define CLKPR _SFR_MEM8(0x61)
+#define CLKPCE 7
+#define CLKPS3 3
+#define CLKPS2 2
+#define CLKPS1 1
+#define CLKPS0 0
+
+#define WDTCKD _SFR_MEM8(0x62)
+#define WDEWIF 3
+#define WDEWIE 2
+#define WCLKD1 1
+#define WCLKD0 0
+
+#define REGCR _SFR_MEM8(0x63)
+#define REGDIS 0
+
+#define PRR0 _SFR_MEM8(0x64)
+#define PRTIM0 5
+#define PRTIM1 3
+#define PRSPI 2
+
+#define PRR1 _SFR_MEM8(0x65)
+#define PRUSB 7
+#define PRUSART1 0
+
+#define OSCCAL _SFR_MEM8(0x66)
+
+/* Reserved [0x67] */
+
+#define PCICR _SFR_MEM8(0x68)
+#define PCIE1 1
+#define PCIE0 0
+
+#define EICRA _SFR_MEM8(0x69)
+#define ISC31 7
+#define ISC30 6
+#define ISC21 5
+#define ISC20 4
+#define ISC11 3
+#define ISC10 2
+#define ISC01 1
+#define ISC00 0
+
+#define EICRB _SFR_MEM8(0x6A)
+#define ISC71 7
+#define ISC70 6
+#define ISC61 5
+#define ISC60 4
+#define ISC51 3
+#define ISC50 2
+#define ISC41 1
+#define ISC40 0
+
+#define PCMSK0 _SFR_MEM8(0x6B)
+#define PCINT7 7
+#define PCINT6 6
+#define PCINT5 5
+#define PCINT4 4
+#define PCINT3 3
+#define PCINT2 2
+#define PCINT1 1
+#define PCINT0 0
+
+#define PCMSK1 _SFR_MEM8(0x6C)
+#define PCINT12 4
+#define PCINT11 3
+#define PCINT10 2
+#define PCINT9 1
+#define PCINT8 0
+
+/* Reserved [0x6D] */
+
+#define TIMSK0 _SFR_MEM8(0x6E)
+#define OCIE0B 2
+#define OCIE0A 1
+#define TOIE0 0
+
+#define TIMSK1 _SFR_MEM8(0x6F)
+#define ICIE1 5
+#define OCIE1C 3
+#define OCIE1B 2
+#define OCIE1A 1
+#define TOIE1 0
+
+/* Reserved [0x70..0x7F] */
+
+#define TCCR1A _SFR_MEM8(0x80)
+#define COM1A1 7
+#define COM1A0 6
+#define COM1B1 5
+#define COM1B0 4
+#define COM1C1 3
+#define COM1C0 2
+#define WGM11 1
+#define WGM10 0
+
+#define TCCR1B _SFR_MEM8(0x81)
+#define ICNC1 7
+#define ICES1 6
+#define WGM13 4
+#define WGM12 3
+#define CS12 2
+#define CS11 1
+#define CS10 0
+
+#define TCCR1C _SFR_MEM8(0x82)
+#define FOC1A 7
+#define FOC1B 6
+#define FOC1C 5
+
+/* Reserved [0x83] */
+
+/* Combine TCNT1L and TCNT1H */
+#define TCNT1 _SFR_MEM16(0x84)
+
+#define TCNT1L _SFR_MEM8(0x84)
+#define TCNT1H _SFR_MEM8(0x85)
+
+/* Combine ICR1L and ICR1H */
+#define ICR1 _SFR_MEM16(0x86)
+
+#define ICR1L _SFR_MEM8(0x86)
+#define ICR1H _SFR_MEM8(0x87)
+
+/* Combine OCR1AL and OCR1AH */
+#define OCR1A _SFR_MEM16(0x88)
+
+#define OCR1AL _SFR_MEM8(0x88)
+#define OCR1AH _SFR_MEM8(0x89)
+
+/* Combine OCR1BL and OCR1BH */
+#define OCR1B _SFR_MEM16(0x8A)
+
+#define OCR1BL _SFR_MEM8(0x8A)
+#define OCR1BH _SFR_MEM8(0x8B)
+
+/* Combine OCR1CL and OCR1CH */
+#define OCR1C _SFR_MEM16(0x8C)
+
+#define OCR1CL _SFR_MEM8(0x8C)
+#define OCR1CH _SFR_MEM8(0x8D)
+
+/* Reserved [0x8E..0xC7] */
+
+#define UCSR1A _SFR_MEM8(0xC8)
+#define RXC1 7
+#define TXC1 6
+#define UDRE1 5
+#define FE1 4
+#define DOR1 3
+#define UPE1 2
+#define U2X1 1
+#define MPCM1 0
+
+#define UCSR1B _SFR_MEM8(0XC9)
+#define RXCIE1 7
+#define TXCIE1 6
+#define UDRIE1 5
+#define RXEN1 4
+#define TXEN1 3
+#define UCSZ12 2
+#define RXB81 1
+#define TXB81 0
+
+#define UCSR1C _SFR_MEM8(0xCA)
+#define UMSEL11 7
+#define UMSEL10 6
+#define UPM11 5
+#define UPM10 4
+#define USBS1 3
+#define UCSZ11 2
+#define UCSZ10 1
+#define UCPOL1 0
+
+#define UCSR1D _SFR_MEM8(0xCB)
+#define CTSEN 1
+#define RTSEN 0
+
+/* Combine UBRR1L and UBRR1H */
+#define UBRR1 _SFR_MEM16(0xCC)
+
+#define UBRR1L _SFR_MEM8(0xCC)
+#define UBRR1H _SFR_MEM8(0xCD)
+
+#define UDR1 _SFR_MEM8(0XCE)
+
+/* Reserved [0xCF] */
+
+#define CKSEL0 _SFR_MEM8(0XD0)
+#define RCSUT1 7
+#define RCSUT0 6
+#define EXSUT1 5
+#define EXSUT0 4
+#define RCE 3
+#define EXTE 2
+#define CLKS 0
+
+#define CKSEL1 _SFR_MEM8(0XD1)
+#define RCCKSEL3 7
+#define RCCKSEL2 6
+#define RCCKSEL1 5
+#define RCCKSEL0 4
+#define EXCKSEL3 3
+#define EXCKSEL2 2
+#define EXCKSEL1 1
+#define EXCKSEL0 0
+
+#define CKSTA _SFR_MEM8(0XD2)
+#define RCON 1
+#define EXTON 0
+
+/* Reserved [0xD3..0xD7] */
+
+#define USBCON _SFR_MEM8(0XD8)
+#define USBE 7
+#define FRZCLK 5
+
+/* Reserved [0xD9..0xDA] */
+
+/* Combine UDPADDL and UDPADDH */
+#define UDPADD _SFR_MEM16(0xDB)
+
+#define UDPADDL _SFR_MEM8(0xDB)
+#define UDPADDH _SFR_MEM8(0xDC)
+#define DPACC 7
+
+/* Reserved [0xDD..0xDF] */
+
+#define UDCON _SFR_MEM8(0XE0)
+#define RSTCPU 2
+#define RMWKUP 1
+#define DETACH 0
+
+#define UDINT _SFR_MEM8(0XE1)
+#define UPRSMI 6
+#define EORSMI 5
+#define WAKEUPI 4
+#define EORSTI 3
+#define SOFI 2
+#define SUSPI 0
+
+#define UDIEN _SFR_MEM8(0XE2)
+#define UPRSME 6
+#define EORSME 5
+#define WAKEUPE 4
+#define EORSTE 3
+#define SOFE 2
+#define SUSPE 0
+
+#define UDADDR _SFR_MEM8(0XE3)
+#define ADDEN 7
+
+/* Combine UDFNUML and UDFNUMH */
+#define UDFNUM _SFR_MEM16(0xE4)
+
+#define UDFNUML _SFR_MEM8(0xE4)
+#define UDFNUMH _SFR_MEM8(0xE5)
+
+#define UDMFN _SFR_MEM8(0XE6)
+#define FNCERR 4
+
+/* Reserved [0xE7] */
+
+#define UEINTX _SFR_MEM8(0XE8)
+#define FIFOCON 7
+#define NAKINI 6
+#define RWAL 5
+#define NAKOUTI 4
+#define RXSTPI 3
+#define RXOUTI 2
+#define STALLEDI 1
+#define TXINI 0
+
+#define UENUM _SFR_MEM8(0XE9)
+#define EPNUM2 2
+#define EPNUM1 1
+#define EPNUM0 0
+
+#define UERST _SFR_MEM8(0XEA)
+#define EPRST4 4
+#define EPRST3 3
+#define EPRST2 2
+#define EPRST1 1
+#define EPRST0 0
+
+#define UECONX _SFR_MEM8(0XEB)
+#define STALLRQ 5
+#define STALLRQC 4
+#define RSTDT 3
+#define EPEN 0
+
+#define UECFG0X _SFR_MEM8(0XEC)
+#define EPTYPE1 7
+#define EPTYPE0 6
+#define EPDIR 0
+
+#define UECFG1X _SFR_MEM8(0XED)
+#define EPSIZE2 6
+#define EPSIZE1 5
+#define EPSIZE0 4
+#define EPBK1 3
+#define EPBK0 2
+#define ALLOC 1
+
+#define UESTA0X _SFR_MEM8(0XEE)
+#define CFGOK 7
+#define OVERFI 6
+#define UNDERFI 5
+#define DTSEQ1 3
+#define DTSEQ0 2
+#define NBUSYBK1 1
+#define NBUSYBK0 0
+
+#define UESTA1X _SFR_MEM8(0XEF)
+#define CTRLDIR 2
+#define CURRBK1 1
+#define CURRBK0 0
+
+#define UEIENX _SFR_MEM8(0XF0)
+#define FLERRE 7
+#define NAKINE 6
+#define NAKOUTE 4
+#define RXSTPE 3
+#define RXOUTE 2
+#define STALLEDE 1
+#define TXINE 0
+
+#define UEDATX _SFR_MEM8(0XF1)
+
+#define UEBCLX _SFR_MEM8(0xF2)
+
+/* Reserved [0xF3] */
+
+#define UEINT _SFR_MEM8(0XF4)
+#define EPINT4 4
+#define EPINT3 3
+#define EPINT2 2
+#define EPINT1 1
+#define EPINT0 0
+
+/* Reserved [0xF5..0xF9] */
+
+#define PS2CON _SFR_MEM8(0XFA)
+#define PS2EN 0
+
+#define UPOE _SFR_MEM8(0XFB)
+#define UPWE1 7
+#define UPWE0 6
+#define UPDRV1 5
+#define UPDRV0 4
+#define SCKI 3
+#define DATAI 2
+#define DPI 1
+#define DMI 0
+
+/* Reserved [0xFC..0xFF] */
+
+/* Interrupt vectors */
+
+/* External Interrupt Request 0 */
+#define INT0_vect _VECTOR(1)
+
+/* External Interrupt Request 1 */
+#define INT1_vect _VECTOR(2)
+
+/* External Interrupt Request 2 */
+#define INT2_vect _VECTOR(3)
+
+/* External Interrupt Request 3 */
+#define INT3_vect _VECTOR(4)
+
+/* External Interrupt Request 4 */
+#define INT4_vect _VECTOR(5)
+
+/* External Interrupt Request 5 */
+#define INT5_vect _VECTOR(6)
+
+/* External Interrupt Request 6 */
+#define INT6_vect _VECTOR(7)
+
+/* External Interrupt Request 7 */
+#define INT7_vect _VECTOR(8)
+
+/* Pin Change Interrupt Request 0 */
+#define PCINT0_vect _VECTOR(9)
+
+/* Pin Change Interrupt Request 1 */
+#define PCINT1_vect _VECTOR(10)
+
+/* USB General Interrupt Request */
+#define USB_GEN_vect _VECTOR(11)
+
+/* USB Endpoint/Pipe Interrupt Communication Request */
+#define USB_COM_vect _VECTOR(12)
+
+/* Watchdog Time-out Interrupt */
+#define WDT_vect _VECTOR(13)
+
+/* Timer/Counter2 Capture Event */
+#define TIMER1_CAPT_vect _VECTOR(14)
+
+/* Timer/Counter2 Compare Match B */
+#define TIMER1_COMPA_vect _VECTOR(15)
+
+/* Timer/Counter2 Compare Match B */
+#define TIMER1_COMPB_vect _VECTOR(16)
+
+/* Timer/Counter2 Compare Match C */
+#define TIMER1_COMPC_vect _VECTOR(17)
+
+/* Timer/Counter1 Overflow */
+#define TIMER1_OVF_vect _VECTOR(18)
+
+/* Timer/Counter0 Compare Match A */
+#define TIMER0_COMPA_vect _VECTOR(19)
+
+/* Timer/Counter0 Compare Match B */
+#define TIMER0_COMPB_vect _VECTOR(20)
+
+/* Timer/Counter0 Overflow */
+#define TIMER0_OVF_vect _VECTOR(21)
+
+/* SPI Serial Transfer Complete */
+#define SPI_STC_vect _VECTOR(22)
+
+/* USART1, Rx Complete */
+#define USART1_RX_vect _VECTOR(23)
+
+/* USART1 Data register Empty */
+#define USART1_UDRE_vect _VECTOR(24)
+
+/* USART1, Tx Complete */
+#define USART1_TX_vect _VECTOR(25)
+
+/* Analog Comparator */
+#define ANALOG_COMP_vect _VECTOR(26)
+
+/* EEPROM Ready */
+#define EE_READY_vect _VECTOR(27)
+
+/* Store Program Memory Read */
+#define SPM_READY_vect _VECTOR(28)
+
+#define _VECTORS_SIZE 116
+
+#endif /* _AVR_IOUSBXX2_H_ */