mirror of https://gerrit.osmocom.org/simtrace2
304 lines
13 KiB
C
304 lines
13 KiB
C
/* ----------------------------------------------------------------------------
|
|
* ATMEL Microcontroller Software Support
|
|
* ----------------------------------------------------------------------------
|
|
* Copyright (c) 2008, Atmel Corporation
|
|
*
|
|
* 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 disclaimer below.
|
|
*
|
|
* Atmel's name may not be used to endorse or promote products derived from
|
|
* this software without specific prior written permission.
|
|
*
|
|
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
|
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
|
|
* DISCLAIMED. IN NO EVENT SHALL ATMEL 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.
|
|
* ----------------------------------------------------------------------------
|
|
*/
|
|
|
|
/**
|
|
* \file
|
|
*
|
|
* USB Device Framework configurations.
|
|
*
|
|
*/
|
|
|
|
#ifndef USBD_CONFIG_H
|
|
#define USBD_CONFIG_H
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* Headers
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_config
|
|
*@{
|
|
*/
|
|
/*----------------------------------------------------------------------------
|
|
* Constants
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_ids USBD Device IDs
|
|
* @{
|
|
*/
|
|
#define USBD_VID_ATMEL 0x03EB /**< Vendor ID: Atmel */
|
|
|
|
#define USBD_PID_ENUM 0x0001 /**< Product ID: Enum (Core) */
|
|
#define USBD_PID_CDCDSERIAL 0x6119 /**< Product ID: CDC Serial */
|
|
#define USBD_PID_HIDKEYBOARD 0x6127 /**< Product ID: HID Keyboard */
|
|
#define USBD_PID_AUDIO 0x6128 /**< Product ID: Audio devices */
|
|
#define USBD_PID_MSD 0x6129 /**< Product ID: Massstorage */
|
|
#define USBD_PID_CDCHID 0x6130 /**< Product ID: composite */
|
|
#define USBD_PID_CDCAUDIO 0x6131 /**< Product ID: composite */
|
|
#define USBD_PID_CDCMSD 0x6132 /**< Product ID: composite */
|
|
#define USBD_PID_CDCCDC 0x6133 /**< Product ID: composite */
|
|
#define USBD_PID_HIDAUDIO 0x6134 /**< Product ID: composite */
|
|
#define USBD_PID_HIDMSD 0x6135 /**< Product ID: composite */
|
|
#define USBD_PID_HIDMOUSE 0x6200 /**< Product ID: HID Mouse */
|
|
#define USBD_PID_HIDTRANSFER 0x6201 /**< Product ID: HID Transfer */
|
|
#define USBD_PID_CCID 0x6203 /**< Product ID: CCID */
|
|
|
|
#define USBD_RELEASE_1_00 0x0100 /**< Release: 1.00 */
|
|
/** @}*/
|
|
|
|
/** \addtogroup usbd_general_config USBD General Configure
|
|
* @{
|
|
* This page lists general configurations for all USB device drivers.
|
|
* - \ref USBD_BMATTRIBUTES
|
|
*/
|
|
/** default USB Device attributes configuration descriptor
|
|
* (bus or self powered, remote wakeup) */
|
|
#define USBD_BMATTRIBUTES BOARD_USB_BMATTRIBUTES
|
|
/** @}*/
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* USB Device - Mass storage
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_msdd_config USB MassStorage Configure
|
|
* @{
|
|
* This page lists the defines used by the Mass Storage driver.
|
|
*
|
|
* \section msd_ep_addr Endpoint Addresses
|
|
* - \ref MSDDriverDescriptors_BULKOUT
|
|
* - \ref MSDDriverDescriptors_BULKIN
|
|
*/
|
|
/** Address of the Mass Storage bulk-out endpoint.*/
|
|
#define MSDDriverDescriptors_BULKOUT 1
|
|
/** Address of the Mass Storage bulk-in endpoint.*/
|
|
#define MSDDriverDescriptors_BULKIN 2
|
|
/** @}*/
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* USB Device - CDC Serial
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_cdc_serial_config USB CDC Serial Configure
|
|
* @{
|
|
* This page lists the defines used by the CDC Serial Device Driver.
|
|
*
|
|
* \section cdcd_ep_addr Endpoint Addresses
|
|
* - \ref CDCDSerialDriverDescriptors_DATAOUT
|
|
* - \ref CDCDSerialDriverDescriptors_DATAIN
|
|
* - \ref CDCDSerialDriverDescriptors_NOTIFICATION
|
|
*/
|
|
/** Data OUT endpoint number */
|
|
#define CDCDSerialDriverDescriptors_DATAOUT 1
|
|
/** Data IN endpoint number */
|
|
#define CDCDSerialDriverDescriptors_DATAIN 2
|
|
/** Notification endpoint number */
|
|
#define CDCDSerialDriverDescriptors_NOTIFICATION 3
|
|
/** @}*/
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* USB Device - Audio
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_audio_config USB Audio General Configure
|
|
* @{
|
|
* This page lists definitions for USB Audio Devices Drivers.
|
|
* - \ref
|
|
*/
|
|
#if defined(at91sam7s) || defined(at91sam9xe)
|
|
/** Sample rate in Hz. */
|
|
#define AUDDevice_SAMPLERATE 32000UL
|
|
/** Number of channels in audio stream. */
|
|
#define AUDDevice_NUMCHANNELS 1
|
|
/** Number of bytes in one sample. */
|
|
#define AUDDevice_BYTESPERSAMPLE 2
|
|
#else
|
|
/** Sample rate in Hz. */
|
|
#define AUDDevice_SAMPLERATE 48000UL
|
|
/** Number of channels in audio stream. */
|
|
#define AUDDevice_NUMCHANNELS 2
|
|
/** Number of bytes in one sample. */
|
|
#define AUDDevice_BYTESPERSAMPLE 2
|
|
#endif
|
|
/** Number of bits in one sample. */
|
|
#define AUDDevice_BITSPERSAMPLE (AUDDevice_BYTESPERSAMPLE * 8)
|
|
/** Number of bytes in one USB subframe. */
|
|
#define AUDDevice_BYTESPERSUBFRAME (AUDDevice_NUMCHANNELS * \
|
|
AUDDevice_BYTESPERSAMPLE)
|
|
/** Number of samples in one USB frame. */
|
|
#define AUDDevice_SAMPLESPERFRAME (AUDDevice_SAMPLERATE / 1000 \
|
|
* AUDDevice_NUMCHANNELS)
|
|
/** Number of bytes in one USB frame. */
|
|
#define AUDDevice_BYTESPERFRAME (AUDDevice_SAMPLESPERFRAME * \
|
|
AUDDevice_BYTESPERSAMPLE)
|
|
/** @}*/
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* USB Device - Audio - Desktop Speaker
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_audio_speaker_config USB Speaker Configure
|
|
* @{
|
|
* This page lists the definitions for USB Audio Speaker Device Driver.
|
|
* - \ref AUDDSpeakerDriverDescriptors_DATAOUT
|
|
* - \ref AUDDSpeakerDriverDescriptors_FS_INTERVAL
|
|
* - \ref AUDDSpeakerDriverDescriptors_HS_INTERVAL
|
|
*
|
|
* \note for UDP, uses IN EPs that support double buffer; for UDPHS, uses
|
|
* IN EPs that support DMA and High bandwidth.
|
|
*/
|
|
/** Data out endpoint number. */
|
|
#define AUDDSpeakerDriverDescriptors_DATAOUT 0x04
|
|
/** Endpoint polling interval 2^(x-1) * 125us */
|
|
#define AUDDSpeakerDriverDescriptors_HS_INTERVAL 0x04
|
|
/** Endpoint polling interval 2^(x-1) * ms */
|
|
#define AUDDSpeakerDriverDescriptors_FS_INTERVAL 0x01
|
|
/** @}*/
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* USB Device - Audio - Speaker Phone
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_audio_speakerphone_config USB Speaker Phone Configure
|
|
* @{
|
|
* This page lists the definitions for USB Audio Speaker Phone Device Driver.
|
|
* - \ref AUDDSpeakerPhoneDriverDescriptors_DATAOUT
|
|
* - \ref AUDDSpeakerPhoneDriverDescriptors_DATAIN
|
|
* - \ref AUDDSpeakerPhoneDriverDescriptors_HS_INTERVAL
|
|
* - \ref AUDDSpeakerPhoneDriverDescriptors_FS_INTERVAL
|
|
*/
|
|
|
|
#if defined(at91sam7s) || defined(at91sam9xe)
|
|
/** Data out endpoint number, size 64B */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_DATAOUT 0x01
|
|
/** Data in endpoint number, size 64B */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_DATAIN 0x02
|
|
#elif defined(CHIP_USB_UDP)
|
|
/** Data out endpoint number, size 192B */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_DATAOUT 0x04
|
|
/** Data in endpoint number, size 192B */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_DATAIN 0x05
|
|
#elif defined(at91sam9m10ek)
|
|
/** Data out endpoint number, size 192B */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_DATAOUT 0x01
|
|
/** Data in endpoint number, size 192B */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_DATAIN 0x06
|
|
#else
|
|
/** Data out endpoint number, size 192B */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_DATAOUT 0x05
|
|
/** Data in endpoint number, size 192B */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_DATAIN 0x06
|
|
#endif
|
|
/** Endpoint polling interval 2^(x-1) * 125us */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_HS_INTERVAL 0x04
|
|
/** Endpoint polling interval 2^(x-1) * ms */
|
|
#define AUDDSpeakerPhoneDriverDescriptors_FS_INTERVAL 0x01
|
|
/** @}*/
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* USB Device - HID - Keyboard
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_hid_keyboard_config USB HID Keyboard Device Configure
|
|
* @{
|
|
* This page lists the defines used by the HID Keyboard Device Driver.
|
|
*
|
|
* \section hidd_k_ep_addr Endpoint Addresses
|
|
* - \ref HIDDKeyboardDriverDescriptors_INTERRUPTIN
|
|
* - \ref HIDDKeyboardDriverDescriptors_INTERRUPTOUT
|
|
* \section hidd_k_ep_polling Endpoint Polling Rate
|
|
* - \ref HIDDKeyboardDriverDescriptors_INTERRUPTIN_POLLING
|
|
* - \ref HIDDKeyboardDriverDescriptors_INTERRUPTOUT_POLLING
|
|
*/
|
|
/** Interrupt IN endpoint number */
|
|
#define HIDDKeyboardDriverDescriptors_INTERRUPTIN 1
|
|
/** Interrupt IN endpoint polling rate (in milliseconds) */
|
|
#define HIDDKeyboardDriverDescriptors_INTERRUPTIN_POLLING 10
|
|
/** Interrupt OUT endpoint number */
|
|
#define HIDDKeyboardDriverDescriptors_INTERRUPTOUT 2
|
|
/** Interrupt OUT endpoint polling rate (in milliseconds) */
|
|
#define HIDDKeyboardDriverDescriptors_INTERRUPTOUT_POLLING 10
|
|
/** @}*/
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* USB Device - HID - Mouse
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_hid_mouse_config USB HID Mouse Device Configure
|
|
* @{
|
|
* This page lists the defines used by the HID Mouse Device Driver.
|
|
*
|
|
* \section hidd_m_ep_addr Endpoint Addresses
|
|
* - \ref HIDDMouseDriverDescriptors_INTERRUPTIN
|
|
* \section hidd_m_ep_polling Endpoint Polling Rate
|
|
* - \ref HIDDMouseDriverDescriptors_INTERRUPTIN_POLLING
|
|
*/
|
|
/** Interrupt IN endpoint number */
|
|
#define HIDDMouseDriverDescriptors_INTERRUPTIN 1
|
|
/** Interrupt IN endpoint polling rate (in milliseconds) */
|
|
#define HIDDMouseDriverDescriptors_INTERRUPTIN_POLLING 10
|
|
/** @}*/
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* USB Device - HID - Transfer (Customize device)
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_hid_xfr_config USB HID Transfer Device Configure
|
|
* @{
|
|
* This page lists the defines used by the HID Transfer Device Driver.
|
|
*
|
|
* \section hidd_t_ep_addr Endpoint Addresses
|
|
* - \ref HIDDTransferDriverDescriptors_INTERRUPTIN
|
|
* - \ref HIDDTransferDriverDescriptors_INTERRUPTOUT
|
|
* \section hidd_t_ep_polling Endpoint Polling Rate
|
|
* - \ref HIDDTransferDriverDescriptors_INTERRUPTIN_POLLING
|
|
* - \ref HIDDTransferDriverDescriptors_INTERRUPTOUT_POLLING
|
|
*/
|
|
/** Interrupt IN endpoint number. */
|
|
#define HIDDTransferDriverDescriptors_INTERRUPTIN 1
|
|
/** Polling rate in ms */
|
|
#define HIDDTransferDriverDescriptors_INTERRUPTIN_POLLING 50
|
|
/** Interrupt IN endpoint polling rate (in milliseconds). */
|
|
#define HIDDTransferDriverDescriptors_INTERRUPTOUT 2
|
|
/** Polling rate in ms */
|
|
#define HIDDTransferDriverDescriptors_INTERRUPTOUT_POLLING 50
|
|
/** @}*/
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* USB Device - Composite
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
/** \addtogroup usbd_composite_config USB Composite Device Configure
|
|
* @{
|
|
*/
|
|
/** @}*/
|
|
|
|
/**@}*/
|
|
#endif //#ifndef USBD_CONFIG_H
|
|
|
|
|