113 #ifndef HW_USB_STRING_MAX_LENGTH 114 #define HW_USB_STRING_MAX_LENGTH 63 124 #ifndef HW_USB_INTERFACE_MAX_COUNT 125 #define HW_USB_INTERFACE_MAX_COUNT 8 148 hw_usb_device_class_per_interface = 0x00,
149 hw_usb_device_class_audio = 0x01,
150 hw_usb_device_class_communications = 0x02,
151 hw_usb_device_class_hid = 0x03,
152 hw_usb_device_class_physical = 0x05,
153 hw_usb_device_class_image = 0x06,
154 hw_usb_device_class_printer = 0x07,
155 hw_usb_device_class_mass_storage = 0x08,
156 hw_usb_device_class_hub = 0x09,
157 hw_usb_device_class_cdc_data = 0x0A,
158 hw_usb_device_class_smart_card = 0x0B,
159 hw_usb_device_class_content_security = 0x0D,
160 hw_usb_device_class_video = 0x0E,
161 hw_usb_device_class_personal_healthcare = 0x0F,
162 hw_usb_device_class_audio_video = 0x10,
163 hw_usb_device_class_bluetooth = 0xE0,
164 hw_usb_device_class_miscellaneous = 0xEF,
165 hw_usb_device_class_application_specific = 0xFE,
166 hw_usb_device_class_vendor_specific = 0xFF,
191 hw_usb_device_subclass_none = 0x00,
192 hw_usb_device_subclass_boot_interface = 0x01,
193 hw_usb_device_subclass_abstract_control_model = 0x02,
194 hw_usb_device_subclass_vendor_specific = 0xFF,
219 hw_usb_device_protocol_none = 0x00,
220 hw_usb_device_protocol_keyboard = 0x01,
221 hw_usb_device_protocol_mouse = 0x02,
hw_usb_device_subclass_t
USB device subclass codes.
hw_usb_device_class_t
USB device class codes.
hid_device_t * hw_usb_register_hid(hid_t *instance, hw_usb_t *usb)
Register a USB host hotplug observer as a HID source.
hw_usb_device_protocol_t device_protocol
USB device protocol code.
uint32_t device_id
Opaque identifier, stable across every interface event belonging to one physical attach/detach - disa...
hw_usb_device_subclass_t device_subclass
USB device subclass code.
#define HW_USB_STRING_MAX_LENGTH
Maximum length of USB string descriptor fields, excluding the null terminator.
hw_usb_device_protocol_t
USB device protocol codes.
void(* hw_usb_callback_t)(hw_usb_t *usb, hw_usb_event_t event, const hw_usb_device_t *device, void *userdata)
Callback invoked on USB hotplug events.
void hw_usb_set_callback(hw_usb_t *usb, hw_usb_callback_t callback, void *userdata)
Attach or detach the USB hotplug callback.
const char * hw_usb_device_class_to_string(hw_usb_device_class_t device_class)
Convert a USB device class code to a display string.
hw_usb_device_class_t device_class
USB device class code.
uint16_t pid
USB Product ID.
hw_usb_device_protocol_t interface_protocol
USB interface protocol.
struct hid_device_t hid_device_t
HID child-device descriptor tracked by a HID instance.
void hw_usb_deinit(hw_usb_t *usb)
Deinitialize the USB host subsystem.
struct hw_usb_t hw_usb_t
Opaque USB host handle.
uint8_t interface_number
This interface's number, or 0xFF if interface information wasn't available (see this file's own top-l...
struct hid_t hid_t
Opaque HID instance handle.
Describes one interface of a USB device observed by the host.
const char * hw_usb_device_protocol_to_string(hw_usb_device_protocol_t device_protocol)
Convert a USB device protocol code to a display string.
A device has been detached.
hw_usb_event_t
USB hotplug event type.
A device has been attached.
hw_usb_device_subclass_t interface_subclass
USB interface subclass.
hw_usb_t * hw_usb_init(void)
Initialize the USB host subsystem.