diff --git a/common/usb.c b/common/usb.c
index 8407974f773c69173354463ac24108a083bc5439..3a96a3423097fa059c2806df0fe3850e9c5326bf 100644
--- a/common/usb.c
+++ b/common/usb.c
@@ -879,6 +879,11 @@ int usb_new_device(struct usb_device *dev)
 	}
 
 	dev->descriptor.bMaxPacketSize0 = desc->bMaxPacketSize0;
+	/*
+	 * Fetch the device class, driver can use this info
+	 * to differentiate between HUB and DEVICE.
+	 */
+	dev->descriptor.bDeviceClass = desc->bDeviceClass;
 
 	/* find the port number we're at */
 	if (parent) {