SAMV71 Xplained Ultra Software Package 1.4

cciddriverdescriptors.h

Go to the documentation of this file.
00001 /* ----------------------------------------------------------------------------
00002  *         ATMEL Microcontroller Software Support
00003  * ----------------------------------------------------------------------------
00004  * Copyright (c) 2008, Atmel Corporation
00005  *
00006  * All rights reserved.
00007  *
00008  * Redistribution and use in source and binary forms, with or without
00009  * modification, are permitted provided that the following conditions are met:
00010  *
00011  * - Redistributions of source code must retain the above copyright notice,
00012  * this list of conditions and the disclaimer below.
00013  *
00014  * Atmel's name may not be used to endorse or promote products derived from
00015  * this software without specific prior written permission.
00016  *
00017  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
00018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00019  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
00020  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
00021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00022  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
00023  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00024  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00025  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00026  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027  * ----------------------------------------------------------------------------
00028  */
00029 
00030 /** \file
00031  *  Title: cciddriverdescriptors.h
00032  *
00033  *  \section Purpose
00034  *      Definitions of the descriptors required by the ccid device driver.
00035  *      DWG_Smart-Card_CCID_Rev110.pdf
00036  *
00037  */
00038 
00039 #ifndef CCID_DRIVER_DESCRIPTORS_H
00040 #define CCID_DRIVER_DESCRIPTORS_H
00041 
00042 /** \addtogroup usbd_ccid
00043  *@{
00044  */
00045 
00046 /*------------------------------------------------------------------------------
00047  *         Definitions
00048  *------------------------------------------------------------------------------*/
00049 
00050 /*------------------------------------------------------------------------------
00051  * Constants: Endpoints
00052  *   CCID_EPT_DATA_OUT endpoint data out bulk     1
00053  *   CCID_EPT_DATA_IN endpoint data in bulk       2
00054  *   CCID_EPT_NOTIFICATION endpoint data interupt 3
00055  *------------------------------------------------------------------------------*/
00056 #define CCID_EPT_DATA_OUT       1
00057 #define CCID_EPT_DATA_IN        2
00058 #define CCID_EPT_NOTIFICATION   3
00059 
00060 /*------------------------------------------------------------------------------
00061  * USB-ICC protocol
00062  *------------------------------------------------------------------------------*/
00063 /* CCID specification version 1.10 */
00064 
00065 #define CCID1_10                               0x0110
00066 
00067 #define SMART_CARD_DEVICE_CLASS                0x0B
00068 /* Smart Card Device Class Descriptor Type */
00069 
00070 #define CCID_DECRIPTOR_TYPE                    0x21
00071 
00072 /* Table 5.3-1 Summary of CCID Class Specific Request */
00073 
00074 #define CCIDGenericRequest_ABORT                 0x01
00075 #define CCIDGenericRequest_GET_CLOCK_FREQUENCIES 0x02
00076 #define CCIDGenericRequest_GET_DATA_RATES        0x03
00077 
00078 /* 6.1 Command Pipe, Bulk-OUT Messages */
00079 
00080 #define PC_TO_RDR_ICCPOWERON                   0x62
00081 #define PC_TO_RDR_ICCPOWEROFF                  0x63
00082 #define PC_TO_RDR_GETSLOTSTATUS                0x65
00083 #define PC_TO_RDR_XFRBLOCK                     0x6F
00084 #define PC_TO_RDR_GETPARAMETERS                0x6C
00085 #define PC_TO_RDR_RESETPARAMETERS              0x6D
00086 #define PC_TO_RDR_SETPARAMETERS                0x61
00087 #define PC_TO_RDR_ESCAPE                       0x6B
00088 #define PC_TO_RDR_ICCCLOCK                     0x6E
00089 #define PC_TO_RDR_T0APDU                       0x6A
00090 #define PC_TO_RDR_SECURE                       0x69
00091 #define PC_TO_RDR_MECHANICAL                   0x71
00092 #define PC_TO_RDR_ABORT                        0x72
00093 #define PC_TO_RDR_SETDATARATEANDCLOCKFREQUENCY 0x73
00094 
00095 /* 6.2 Response Pipe, Bulk-IN Messages */
00096 
00097 #define RDR_TO_PC_DATABLOCK                    0x80
00098 #define RDR_TO_PC_SLOTSTATUS                   0x81
00099 #define RDR_TO_PC_PARAMETERS                   0x82
00100 #define RDR_TO_PC_ESCAPE                       0x83
00101 #define RDR_TO_PC_DATARATEANDCLOCKFREQUENCY    0x84
00102 
00103 /* 6.3 Interrupt-IN Messages */
00104 
00105 #define RDR_TO_PC_NOTIFYSLOTCHANGE             0x50
00106 #define RDR_TO_PC_HARDWAREERROR                0x51
00107 
00108 /* Table 6.2-2 Slot error register when bmCommandStatus = 1 */
00109 
00110 #define CMD_ABORTED                                   0xFF
00111 #define ICC_MUTE                                      0xFE
00112 #define XFR_PARITY_ERROR                              0xFD
00113 #define XFR_OVERRUN                                   0xFC
00114 #define HW_ERROR                                      0xFB
00115 #define BAD_ATR_TS                                    0xF8
00116 #define BAD_ATR_TCK                                   0xF7
00117 #define ICC_PROTOCOL_NOT_SUPPORTED                    0xF6
00118 #define ICC_CLASS_NOT_SUPPORTED                       0xF5
00119 #define PROCEDURE_BYTE_CONFLICT                       0xF4
00120 #define DEACTIVATED_PROTOCOL                          0xF3
00121 #define BUSY_WITH_AUTO_SEQUENCE                       0xF2
00122 #define PIN_TIMEOUT                                   0xF0
00123 #define PIN_CANCELLED                                 0xEF
00124 #define CMD_SLOT_BUSY                                 0xE0
00125 /*      User defined                              0xC0 to 0x81 */
00126 
00127 /*      Reserved for futur use                        0x80 */
00128 
00129 /*      not supported incorrect message parameter 0x7F to 0x01 */
00130 
00131 /*      Command not supported                         0x00 */
00132 
00133 
00134 /* CCID rev 1.1, p.27 */
00135 
00136 #define VOLTS_AUTO                            0x00
00137 #define VOLTS_5_0                             0x01
00138 #define VOLTS_3_0                             0x02
00139 #define VOLTS_1_8                             0x03
00140 
00141 /* 6.3.1 RDR_to_PC_NotifySlotChange */
00142 
00143 #define ICC_NOT_PRESENT                       0x00
00144 #define ICC_PRESENT                           0x01
00145 #define ICC_CHANGE                            0x02
00146 #define ICC_INSERTED_EVENT                    ICC_PRESENT+ICC_CHANGE
00147 
00148 /* ICCD: Table 6.1-8 Bitmap for bStatus field */
00149 
00150 #define ICC_BS_PRESENT_ACTIVATED     0x00 /* USB-ICC is present and activated */
00151 
00152 #define ICC_BS_PRESENT_NOTACTIVATED  0x01 /* USB-ICC is present but not activated */
00153 
00154 #define ICC_BS_NOTPRESENT            0x02 /* USB-ICC is virtually not present */
00155 
00156 #define ICC_BS_RFU                   0x03 /* RFU */
00157 
00158 #define ICC_CS_NO_ERROR           (0x00<<6) /* Processed without error */
00159 
00160 #define ICC_CS_FAILED             (0x01<<6) /* Failed, error condition given by bError */
00161 
00162 #define ICC_CS_TIME_EXT           (0x02<<6) /* Time extension is requested */
00163 
00164 #define ICC_CS_RFU                (0x03<<6) /* RFU */
00165 
00166 
00167 /*
00168  * #define NO_ERROR                               0x00
00169  * #define NO_EXTRA_BYTES                         0x00
00170  * #define CCID_FLAG_INITIAL_VALUE                0x05
00171  * #define CCID_EVENT_SIZE                        0x02
00172  * #define STATUS_MASK                            0x41
00173  */
00174 /*------------------------------------------------------------------------------
00175  *      Structures
00176  *------------------------------------------------------------------------------*/
00177 
00178 /**@}*/
00179 
00180 #endif /*#ifndef CCID_DRIVER_DESCRIPTORS_H */
00181 
00182 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines