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 | |