Index: uspace/lib/usb/src/dump.c
===================================================================
--- uspace/lib/usb/src/dump.c	(revision 820d9bc525f17534acb8f4e1819bbbd3b60536e9)
+++ uspace/lib/usb/src/dump.c	(revision bd1fab905db16e6d737be9ed4df3aa55a91d42c0)
@@ -61,4 +61,6 @@
 static void usb_dump_descriptor_endpoint(FILE *, const char *, const char *,
     const uint8_t *, size_t);
+static void usb_dump_descriptor_superspeed_endpoint_companion(FILE *, const char *, const char *,
+    const uint8_t *, size_t);
 static void usb_dump_descriptor_hid(FILE *, const char *, const char *,
     const uint8_t *, size_t);
@@ -75,4 +77,5 @@
 	{ USB_DESCTYPE_INTERFACE, usb_dump_descriptor_interface },
 	{ USB_DESCTYPE_ENDPOINT, usb_dump_descriptor_endpoint },
+	{ USB_DESCTYPE_SSPEED_EP_COMPANION, usb_dump_descriptor_superspeed_endpoint_companion },
 	{ USB_DESCTYPE_HID, usb_dump_descriptor_hid },
 	{ USB_DESCTYPE_HUB, usb_dump_descriptor_hub },
@@ -238,4 +241,21 @@
 	PRINTLINE("wMaxPacketSize = %d", d->max_packet_size);
 	PRINTLINE("bInterval = %dms", d->poll_interval);
+}
+
+static void usb_dump_descriptor_superspeed_endpoint_companion(FILE *output,
+    const char *line_prefix, const char *line_suffix,
+    const uint8_t *descriptor, size_t descriptor_length)
+{
+	usb_superspeed_endpoint_companion_descriptor_t *d
+	   = (usb_superspeed_endpoint_companion_descriptor_t *) descriptor;
+	if (descriptor_length < sizeof(*d)) {
+		return;
+	}
+
+	PRINTLINE("bLength = %u", d->length);
+	PRINTLINE("bDescriptorType = 0x%02X", d->descriptor_type);
+	PRINTLINE("bMaxBurst = %u", d->max_burst);
+	PRINTLINE("bmAttributes = %d", d->attributes);
+	PRINTLINE("wBytesPerInterval = %u", d->bytes_per_interval);
 }
 
