usb.h 752 B

12345678910111213141516171819202122232425
  1. #pragma once
  2. // usb设备在pci总线上的class
  3. #define USB_CLASS 0xC
  4. #define USB_SUBCLASS 0x3
  5. // 不同的usb设备在pci总线上的prog IF
  6. #define USB_TYPE_UHCI 0x0
  7. #define USB_TYPE_OHCI 0x10
  8. #define USB_TYPE_EHCI 0x20
  9. #define USB_TYPE_XHCI 0x30
  10. #define USB_TYPE_UNSPEC 0x80 // Unspecified
  11. #define USB_TYPE_DEVICE 0xfe // USB Device(Not controller)
  12. // Reset wait times(milliseconds) ,USB 2.0 specs, page 153, section 7.1.7.5, paragraph 3
  13. #define USB_TIME_RST_RH 50 // reset on a root hub
  14. #define USB_TIME_RST_MIN 10 // minimum delay for a reset
  15. #define USB_TIME_RST_NOMORE 3 // No more than this between resets for root hubs
  16. #define USB_TIME_RST_REC 10 // reset recovery
  17. /**
  18. * @brief 初始化usb驱动程序
  19. *
  20. */
  21. void usb_init();