00001 /*This file is prepared for Doxygen automatic documentation generation.*/ 00013 00014 /* Copyright (c) 2009 Atmel Corporation. All rights reserved. 00015 * 00016 * Redistribution and use in source and binary forms, with or without 00017 * modification, are permitted provided that the following conditions are met: 00018 * 00019 * 1. Redistributions of source code must retain the above copyright notice, 00020 * this list of conditions and the following disclaimer. 00021 * 00022 * 2. Redistributions in binary form must reproduce the above copyright notice, 00023 * this list of conditions and the following disclaimer in the documentation 00024 * and/or other materials provided with the distribution. 00025 * 00026 * 3. The name of Atmel may not be used to endorse or promote products derived 00027 * from this software without specific prior written permission. 00028 * 00029 * 4. This software may only be redistributed and used in connection with an Atmel 00030 * AVR product. 00031 * 00032 * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED 00033 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00034 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY AND 00035 * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, 00036 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00037 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00038 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00039 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00040 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00041 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00042 */ 00043 00044 #ifndef _USB_SPECIFIC_REQUEST_H_ 00045 #define _USB_SPECIFIC_REQUEST_H_ 00046 00047 //_____ I N C L U D E S ____________________________________________________ 00048 00049 #include "config.h" 00050 00051 00052 //_____ M A C R O S ________________________________________________________ 00053 00054 extern code S_usb_device_descriptor usb_dev_desc; 00055 extern code S_usb_user_configuration_descriptor usb_conf_desc; 00056 extern code S_usb_manufacturer_string_descriptor usb_user_manufacturer_string_descriptor; 00057 extern code S_usb_product_string_descriptor usb_user_product_string_descriptor; 00058 #if (USB_DEVICE_SN_USE==ENABLE) 00059 extern code S_usb_serial_number usb_user_serial_number; 00060 #endif 00061 extern code S_usb_language_id usb_user_language_id; 00062 00063 00064 //_____ D E F I N I T I O N ________________________________________________ 00065 00066 Bool usb_user_read_request ( U8, U8 ); 00067 void usb_user_endpoint_init ( U8 ); 00068 U8 usb_user_interface_get ( U16 wInterface ); 00069 void usb_user_interface_reset ( U16 wInterface, U8 alternate_setting ); 00070 Bool usb_user_get_descriptor ( U8 , U8 ); 00071 void cdc_get_line_coding(); 00072 void cdc_set_line_coding(); 00073 void cdc_set_control_line_state(U16); 00074 void cdc_send_break(U16); 00075 Bool cdc_update_serial_state(); 00076 00077 // ____ T Y P E D E F I N I T I O N _______________________________________ 00078 00079 typedef struct 00080 { 00081 U32 dwDTERate; 00082 U8 bCharFormat; 00083 U8 bParityType; 00084 U8 bDataBits; 00085 }S_line_coding; 00086 00087 // type for set control line state message 00088 // cdc spec 1.1 chapter 6.2.14 00089 typedef union 00090 { 00091 U8 all; 00092 struct { 00093 U8 DTR:1; 00094 U8 RTS:1; 00095 U8 unused:6; 00096 }; 00097 }S_line_status; 00098 00099 // type for hardware handshake support 00100 // cdc spec 1.1 chapter 6.3.5 00101 typedef union 00102 { 00103 U16 all; 00104 struct { 00105 U16 bDCD:1; 00106 U16 bDSR:1; 00107 U16 bBreak:1; 00108 U16 bRing:1; 00109 U16 bFraming:1; 00110 U16 bParity:1; 00111 U16 bOverRun:1; 00112 U16 reserved:9; 00113 }; 00114 }S_serial_state; 00115 00116 00117 #endif 00118