1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  *  Copyright (c) 2018  Vincent Pelletier
4  */
5 /*
6  */
7 #ifndef __CCID_H
8 #define __CCID_H
9 
10 #include <linux/types.h>
11 
12 #define USB_INTERFACE_CLASS_CCID 0x0b
13 
14 struct ccid_descriptor {
15 	__u8  bLength;
16 	__u8  bDescriptorType;
17 	__le16 bcdCCID;
18 	__u8  bMaxSlotIndex;
19 	__u8  bVoltageSupport;
20 	__le32 dwProtocols;
21 	__le32 dwDefaultClock;
22 	__le32 dwMaximumClock;
23 	__u8  bNumClockSupported;
24 	__le32 dwDataRate;
25 	__le32 dwMaxDataRate;
26 	__u8  bNumDataRatesSupported;
27 	__le32 dwMaxIFSD;
28 	__le32 dwSynchProtocols;
29 	__le32 dwMechanical;
30 	__le32 dwFeatures;
31 	__le32 dwMaxCCIDMessageLength;
32 	__u8  bClassGetResponse;
33 	__u8  bClassEnvelope;
34 	__le16 wLcdLayout;
35 	__u8  bPINSupport;
36 	__u8  bMaxCCIDBusySlots;
37 } __attribute__ ((packed));
38 
39 #endif /* __CCID_H */
40