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