Revert changes made for the partial port to the AVR32 architecture.

This commit is contained in:
Dean Camera 2010-02-24 06:58:23 +00:00
parent a7aaa45ec4
commit 071fd8ce53
79 changed files with 739 additions and 1727 deletions

View file

@ -74,19 +74,12 @@
#define __PIPE_H__
/* Includes: */
#if defined(__AVR32__)
#include <avr32/io.h>
#include <stdint.h>
#include <stdbool.h>
#elif defined(__AVR__)
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include <stdbool.h>
#endif
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include <stdbool.h>
#include "../../../Common/Common.h"
#include "LowLevel.h"
#include "../HighLevel/USBTask.h"
#if !defined(NO_STREAM_CALLBACKS) || defined(__DOXYGEN__)
@ -100,13 +93,9 @@
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
#error Do not include this file directly. Include LUFA/Drivers/USB.h instead.
#endif
#if defined(__AVR32__) && !defined(__AVR32_EPREG_X)
#define __AVR32_EPREG_X(x) ((volatile uint32_t*)AVR32_USBB_ ## x)[USB_SelectedEPNumber]
#endif
/* Public Interface - May be used in end-application: */
/* Macros: */
/** Mask for \ref Pipe_GetErrorFlags(), indicating that an overflow error occurred in the pipe on the received data. */
@ -558,11 +547,7 @@
static inline uint8_t Pipe_Read_Byte(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint8_t Pipe_Read_Byte(void)
{
#if defined(__AVR32__)
return __AVR32_EPREG_X(UEDAT0);
#elif defined(__AVR__)
return UPDATX;
#endif
}
/** Writes one byte from the currently selected pipe's bank, for IN direction pipes.
@ -574,11 +559,7 @@
static inline void Pipe_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_Byte(const uint8_t Byte)
{
#if defined(__AVR32__)
__AVR32_EPREG_X(UEDAT0) = Byte;
#elif defined(__AVR__)
UPDATX = Byte;
#endif
}
/** Discards one byte from the currently selected pipe's bank, for OUT direction pipes.
@ -590,11 +571,7 @@
{
uint8_t Dummy;
#if defined(__AVR32__)
Dummy = __AVR32_EPREG_X(UEDAT0);
#elif defined(__AVR__)
Dummy = UPDATX;
#endif
}
/** Reads two bytes from the currently selected pipe's bank in little endian format, for OUT
@ -613,13 +590,8 @@
uint8_t Bytes[2];
} Data;
#if defined(__AVR32__)
Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);
Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);
#elif defined(__AVR__)
Data.Bytes[0] = UPDATX;
Data.Bytes[1] = UPDATX;
#endif
return Data.Word;
}
@ -640,13 +612,8 @@
uint8_t Bytes[2];
} Data;
#if defined(__AVR32__)
Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);
Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);
#elif defined(__AVR__)
Data.Bytes[1] = UPDATX;
Data.Bytes[0] = UPDATX;
#endif
return Data.Word;
}
@ -661,13 +628,8 @@
static inline void Pipe_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_Word_LE(const uint16_t Word)
{
#if defined(__AVR32__)
__AVR32_EPREG_X(UEDAT0) = (Word & 0xFF);
__AVR32_EPREG_X(UEDAT0) = (Word >> 8);
#elif defined(__AVR__)
UPDATX = (Word & 0xFF);
UPDATX = (Word >> 8);
#endif
}
/** Writes two bytes to the currently selected pipe's bank in big endian format, for IN
@ -680,13 +642,8 @@
static inline void Pipe_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_Word_BE(const uint16_t Word)
{
#if defined(__AVR32__)
__AVR32_EPREG_X(UEDAT0) = (Word >> 8);
__AVR32_EPREG_X(UEDAT0) = (Word & 0xFF);
#elif defined(__AVR__)
UPDATX = (Word >> 8);
UPDATX = (Word & 0xFF);
#endif
}
/** Discards two bytes from the currently selected pipe's bank, for OUT direction pipes.
@ -698,13 +655,8 @@
{
uint8_t Dummy;
#if defined(__AVR32__)
Dummy = __AVR32_EPREG_X(UEDAT0);
Dummy = __AVR32_EPREG_X(UEDAT0);
#elif defined(__AVR__)
Dummy = UPDATX;
Dummy = UPDATX;
#endif
}
/** Reads four bytes from the currently selected pipe's bank in little endian format, for OUT
@ -723,17 +675,10 @@
uint8_t Bytes[4];
} Data;
#if defined(__AVR32__)
Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);
Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);
Data.Bytes[2] = __AVR32_EPREG_X(UEDAT0);
Data.Bytes[3] = __AVR32_EPREG_X(UEDAT0);
#elif defined(__AVR__)
Data.Bytes[0] = UPDATX;
Data.Bytes[1] = UPDATX;
Data.Bytes[2] = UPDATX;
Data.Bytes[3] = UPDATX;
#endif
return Data.DWord;
}
@ -754,17 +699,10 @@
uint8_t Bytes[4];
} Data;
#if defined(__AVR32__)
Data.Bytes[3] = __AVR32_EPREG_X(UEDAT0);
Data.Bytes[2] = __AVR32_EPREG_X(UEDAT0);
Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);
Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);
#elif defined(__AVR__)
Data.Bytes[3] = UPDATX;
Data.Bytes[2] = UPDATX;
Data.Bytes[1] = UPDATX;
Data.Bytes[0] = UPDATX;
#endif
return Data.DWord;
}
@ -779,17 +717,10 @@
static inline void Pipe_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_DWord_LE(const uint32_t DWord)
{
#if defined(__AVR32__)
__AVR32_EPREG_X(UEDAT0) = (DWord & 0xFF);
__AVR32_EPREG_X(UEDAT0) = (DWord >> 8);
__AVR32_EPREG_X(UEDAT0) = (DWord >> 16);
__AVR32_EPREG_X(UEDAT0) = (DWord >> 24);
#elif defined(__AVR__)
UPDATX = (DWord & 0xFF);
UPDATX = (DWord >> 8);
UPDATX = (DWord >> 16);
UPDATX = (DWord >> 24);
#endif
}
/** Writes four bytes to the currently selected pipe's bank in big endian format, for IN
@ -802,17 +733,10 @@
static inline void Pipe_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_DWord_BE(const uint32_t DWord)
{
#if defined(__AVR32__)
__AVR32_EPREG_X(UEDAT0) = (DWord >> 24);
__AVR32_EPREG_X(UEDAT0) = (DWord >> 16);
__AVR32_EPREG_X(UEDAT0) = (DWord >> 8);
__AVR32_EPREG_X(UEDAT0) = (DWord & 0xFF);
#elif defined(__AVR__)
UPDATX = (DWord >> 24);
UPDATX = (DWord >> 16);
UPDATX = (DWord >> 8);
UPDATX = (DWord & 0xFF);
#endif
}
/** Discards four bytes from the currently selected pipe's bank, for OUT direction pipes.
@ -824,17 +748,10 @@
{
uint8_t Dummy;
#if defined(__AVR32__)
Dummy = __AVR32_EPREG_X(UEDAT0);
Dummy = __AVR32_EPREG_X(UEDAT0);
Dummy = __AVR32_EPREG_X(UEDAT0);
Dummy = __AVR32_EPREG_X(UEDAT0);
#elif defined(__AVR__)
Dummy = UPDATX;
Dummy = UPDATX;
Dummy = UPDATX;
Dummy = UPDATX;
#endif
}
/* External Variables: */
@ -958,8 +875,6 @@
* \param[in] Length Number of bytes to read for the currently selected pipe into the buffer.
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \note Not available on AVR32 UC3B targets.
*
* \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
*/
uint8_t Pipe_Write_EStream_LE(const void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
@ -1009,8 +924,6 @@
* \param[in] Length Number of bytes to read for the currently selected pipe into the buffer.
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \note Not available on AVR32 UC3B targets.
*
* \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
*/
uint8_t Pipe_Write_EStream_BE(const void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
@ -1060,8 +973,6 @@
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \note Not available on AVR32 UC3B targets.
*
* \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
*/
uint8_t Pipe_Read_EStream_LE(void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
@ -1097,8 +1008,6 @@
* \param[in] Length Number of bytes to read for the currently selected pipe to read from.
* \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \note Not available on AVR32 UC3B targets.
*
* \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
*/
uint8_t Pipe_Read_EStream_BE(void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);
@ -1119,13 +1028,9 @@
void Pipe_ClearPipes(void);
/* Inline Functions: */
static inline uintN_t Pipe_BytesToEPSizeMask(uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST ATTR_ALWAYS_INLINE;
static inline uintN_t Pipe_BytesToEPSizeMask(uint16_t Bytes)
static inline uint8_t Pipe_BytesToEPSizeMask(uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST ATTR_ALWAYS_INLINE;
static inline uint8_t Pipe_BytesToEPSizeMask(uint16_t Bytes)
{
#if defined(__AVR32__)
// TODO
return 0;
#elif defined(__AVR__)
if (Bytes <= 8)
return (0 << EPSIZE0);
else if (Bytes <= 16)
@ -1138,7 +1043,6 @@
return (4 << EPSIZE0);
else
return (5 << EPSIZE0);
#endif
}
#endif