diff options
author | Simon Glass <sjg@chromium.org> | 2015-03-25 12:22:08 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-04-18 11:11:21 -0600 |
commit | 95fbfe42980ea75c7955a6ddf4f28be1a6407920 (patch) | |
tree | d63aa11bc3f61609d20c8495ba65d23346e6f5f8 | |
parent | 0ed27905ceb82d5dc9aafd249ccbb8ff6081c7ca (diff) | |
download | u-boot-imx-95fbfe42980ea75c7955a6ddf4f28be1a6407920.zip u-boot-imx-95fbfe42980ea75c7955a6ddf4f28be1a6407920.tar.gz u-boot-imx-95fbfe42980ea75c7955a6ddf4f28be1a6407920.tar.bz2 |
dm: usb: Convert core usb.c file to support driver model
Add the required #ifdefs and remove unwanted data structures so that the
USB uclass will be able to use this file.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Marek Vasut <marex@denx.de>
-rw-r--r-- | common/usb.c | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/common/usb.c b/common/usb.c index 5c79217..a4820d3 100644 --- a/common/usb.c +++ b/common/usb.c @@ -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> @@ -41,12 +42,13 @@ #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 */ |