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