ccid.h 787 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. #include <linux/types.h>
  10. #define USB_INTERFACE_CLASS_CCID 0x0b
  11. struct ccid_descriptor {
  12. __u8 bLength;
  13. __u8 bDescriptorType;
  14. __le16 bcdCCID;
  15. __u8 bMaxSlotIndex;
  16. __u8 bVoltageSupport;
  17. __le32 dwProtocols;
  18. __le32 dwDefaultClock;
  19. __le32 dwMaximumClock;
  20. __u8 bNumClockSupported;
  21. __le32 dwDataRate;
  22. __le32 dwMaxDataRate;
  23. __u8 bNumDataRatesSupported;
  24. __le32 dwMaxIFSD;
  25. __le32 dwSynchProtocols;
  26. __le32 dwMechanical;
  27. __le32 dwFeatures;
  28. __le32 dwMaxCCIDMessageLength;
  29. __u8 bClassGetResponse;
  30. __u8 bClassEnvelope;
  31. __le16 wLcdLayout;
  32. __u8 bPINSupport;
  33. __u8 bMaxCCIDBusySlots;
  34. } __attribute__ ((packed));
  35. #endif /* __CCID_H */