usb: lowlevel interface change to support multiple controllers

Carry an index in the lowlevel usb functions to make specify the
respective usb controller.

Also pass through an controller struct from lowlevel_init to the
creation of the root usb device of this controller.

Signed-off-by: Lucas Stach <dev@lynxeye.de>
Reviewed-by: Marek Vasut <marex@denx.de>
diff --git a/common/usb_hub.c b/common/usb_hub.c
index 32750e8..e4a1201 100644
--- a/common/usb_hub.c
+++ b/common/usb_hub.c
@@ -244,7 +244,7 @@
 	mdelay(200);
 
 	/* Allocate a new device struct for it */
-	usb = usb_alloc_new_device();
+	usb = usb_alloc_new_device(dev->controller);
 
 	if (portstatus & USB_PORT_STAT_HIGH_SPEED)
 		usb->speed = USB_SPEED_HIGH;