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