]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/usb.c
arm: socfpga: spl: enable sdram, timer and uart
[karo-tx-uboot.git] / common / usb.c
index 5c792173db2d217d04185285d3f7cfa066490680..a4820d3e949a17c15c7deda9a3b0209abd0b3b74 100644 (file)
@@ -28,6 +28,7 @@
  */
 #include <common.h>
 #include <command.h>
+#include <dm.h>
 #include <asm/processor.h>
 #include <linux/compiler.h>
 #include <linux/ctype.h>
 
 #define USB_BUFSIZ     512
 
-static struct usb_device usb_dev[USB_MAX_DEVICE];
-static int dev_index;
 static int asynch_allowed;
-
 char usb_started; /* flag for the started/stopped USB status */
 
+#ifndef CONFIG_DM_USB
+static struct usb_device usb_dev[USB_MAX_DEVICE];
+static int dev_index;
+
 #ifndef CONFIG_USB_MAX_CONTROLLER_COUNT
 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
 #endif
@@ -158,6 +160,7 @@ int usb_disable_asynch(int disable)
        asynch_allowed = !disable;
        return old_value;
 }
+#endif /* !CONFIG_DM_USB */
 
 
 /*-------------------------------------------------------------------
@@ -821,6 +824,7 @@ int usb_string(struct usb_device *dev, int index, char *buf, size_t size)
  * the USB device are static allocated [USB_MAX_DEVICE].
  */
 
+#ifndef CONFIG_DM_USB
 
 /* returns a pointer to the device with the index [index].
  * if the device is not assigned (dev->devnum==-1) returns NULL
@@ -877,7 +881,9 @@ __weak int usb_alloc_device(struct usb_device *udev)
 {
        return 0;
 }
+#endif /* !CONFIG_DM_USB */
 
+#ifndef CONFIG_DM_USB
 int usb_legacy_port_reset(struct usb_device *hub, int portnr)
 {
        if (hub) {
@@ -896,6 +902,7 @@ int usb_legacy_port_reset(struct usb_device *hub, int portnr)
 
        return 0;
 }
+#endif
 
 static int get_descriptor_len(struct usb_device *dev, int len, int expect_len)
 {
@@ -1031,7 +1038,7 @@ static int usb_prepare_device(struct usb_device *dev, int addr, bool do_read,
        return 0;
 }
 
-static int usb_select_config(struct usb_device *dev)
+int usb_select_config(struct usb_device *dev)
 {
        ALLOC_CACHE_ALIGN_BUFFER(unsigned char, tmpbuf, USB_BUFSIZ);
        int err;
@@ -1089,8 +1096,8 @@ static int usb_select_config(struct usb_device *dev)
        return 0;
 }
 
-static int usb_setup_device(struct usb_device *dev, bool do_read,
-                           struct usb_device *parent, int portnr)
+int usb_setup_device(struct usb_device *dev, bool do_read,
+                    struct usb_device *parent, int portnr)
 {
        int addr;
        int ret;
@@ -1107,6 +1114,7 @@ static int usb_setup_device(struct usb_device *dev, bool do_read,
        return ret;
 }
 
+#ifndef CONFIG_DM_USB
 /*
  * By the time we get here, the device has gotten a new device ID
  * and is in the default state. We need to identify the thing and
@@ -1139,6 +1147,7 @@ int usb_new_device(struct usb_device *dev)
 
        return 0;
 }
+#endif
 
 __weak
 int board_usb_init(int index, enum usb_init_type init)
@@ -1151,4 +1160,14 @@ int board_usb_cleanup(int index, enum usb_init_type init)
 {
        return 0;
 }
+
+bool usb_device_has_child_on_port(struct usb_device *parent, int port)
+{
+#ifdef CONFIG_DM_USB
+       return false;
+#else
+       return parent->children[port] != NULL;
+#endif
+}
+
 /* EOF */