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>
master
Simon Glass 9 years ago
parent 0ed27905ce
commit 95fbfe4298
  1. 31
      common/usb.c

@ -28,6 +28,7 @@
*/ */
#include <common.h> #include <common.h>
#include <command.h> #include <command.h>
#include <dm.h>
#include <asm/processor.h> #include <asm/processor.h>
#include <linux/compiler.h> #include <linux/compiler.h>
#include <linux/ctype.h> #include <linux/ctype.h>
@ -41,12 +42,13 @@
#define USB_BUFSIZ 512 #define USB_BUFSIZ 512
static struct usb_device usb_dev[USB_MAX_DEVICE];
static int dev_index;
static int asynch_allowed; static int asynch_allowed;
char usb_started; /* flag for the started/stopped USB status */ 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 #ifndef CONFIG_USB_MAX_CONTROLLER_COUNT
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
#endif #endif
@ -158,6 +160,7 @@ int usb_disable_asynch(int disable)
asynch_allowed = !disable; asynch_allowed = !disable;
return old_value; 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]. * the USB device are static allocated [USB_MAX_DEVICE].
*/ */
#ifndef CONFIG_DM_USB
/* returns a pointer to the device with the index [index]. /* returns a pointer to the device with the index [index].
* if the device is not assigned (dev->devnum==-1) returns NULL * 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; return 0;
} }
#endif /* !CONFIG_DM_USB */
#ifndef CONFIG_DM_USB
int usb_legacy_port_reset(struct usb_device *hub, int portnr) int usb_legacy_port_reset(struct usb_device *hub, int portnr)
{ {
if (hub) { if (hub) {
@ -896,6 +902,7 @@ int usb_legacy_port_reset(struct usb_device *hub, int portnr)
return 0; return 0;
} }
#endif
static int get_descriptor_len(struct usb_device *dev, int len, int expect_len) 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; 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); ALLOC_CACHE_ALIGN_BUFFER(unsigned char, tmpbuf, USB_BUFSIZ);
int err; int err;
@ -1089,8 +1096,8 @@ static int usb_select_config(struct usb_device *dev)
return 0; return 0;
} }
static int usb_setup_device(struct usb_device *dev, bool do_read, int usb_setup_device(struct usb_device *dev, bool do_read,
struct usb_device *parent, int portnr) struct usb_device *parent, int portnr)
{ {
int addr; int addr;
int ret; int ret;
@ -1107,6 +1114,7 @@ static int usb_setup_device(struct usb_device *dev, bool do_read,
return ret; return ret;
} }
#ifndef CONFIG_DM_USB
/* /*
* By the time we get here, the device has gotten a new device ID * 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 * 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; return 0;
} }
#endif
__weak __weak
int board_usb_init(int index, enum usb_init_type init) 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; 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 */ /* EOF */

Loading…
Cancel
Save