| /* ---------------------------------------------------------------------------- |
| * 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 |
| |
| |