diff --git a/Makefile b/Makefile index 49b83c0c4906371a7ff15d63ba2c8fcbc47935cb..e91c051f5e6f0b2091366acb3a32218badf6f1c9 100644 --- a/Makefile +++ b/Makefile @@ -263,7 +263,9 @@ endif LIBS += drivers/rtc/librtc.a LIBS += drivers/serial/libserial.a LIBS += drivers/twserial/libtws.a -LIBS += drivers/usb/libusb.a +LIBS += drivers/usb/gadget/libusb_gadget.a +LIBS += drivers/usb/host/libusb_host.a +LIBS += drivers/usb/musb/libusb_musb.a LIBS += drivers/video/libvideo.a LIBS += drivers/watchdog/libwatchdog.a LIBS += common/libcommon.a diff --git a/drivers/serial/usbtty.c b/drivers/serial/usbtty.c index d8b13879176491c7ede5eb46e10d7a18f5174a5b..f711d0b18b1a967877698d271bd5a4fff915fab6 100644 --- a/drivers/serial/usbtty.c +++ b/drivers/serial/usbtty.c @@ -94,7 +94,7 @@ static char serial_number[16]; * Descriptors, Strings, Local variables. */ -/* defined and used by usbdcore_ep0.c */ +/* defined and used by gadget/ep0.c */ extern struct usb_string_descriptor **usb_strings; /* Indicies, References */ diff --git a/drivers/serial/usbtty.h b/drivers/serial/usbtty.h index ecefde549208abfaf7e05b7cea4b141b3402e7e0..77db972b8765294088e35674036fc2dc330b912e 100644 --- a/drivers/serial/usbtty.h +++ b/drivers/serial/usbtty.h @@ -24,11 +24,11 @@ #ifndef __USB_TTY_H__ #define __USB_TTY_H__ -#include <usbdcore.h> +#include <usbdevice.h> #if defined(CONFIG_PPC) -#include <usbdcore_mpc8xx.h> +#include <usb/mpc8xx_udc.h> #elif defined(CONFIG_ARM) -#include <usbdcore_omap1510.h> +#include <usb/omap1510_udc.h> #endif #include <version_autogenerated.h> diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..251724f92b7dcb5a36fcfbb4db175c9f31566647 --- /dev/null +++ b/drivers/usb/gadget/Makefile @@ -0,0 +1,52 @@ +# +# (C) Copyright 2000-2007 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB := $(obj)libusb_gadget.a + +ifdef CONFIG_USB_DEVICE +COBJS-y += core.o +COBJS-y += ep0.o +COBJS-$(CONFIG_OMAP1510) += omap1510_udc.o +COBJS-$(CONFIG_OMAP1610) += omap1510_udc.o +COBJS-$(CONFIG_MPC885_FAMILY) += mpc8xx_udc.o +endif + +COBJS := $(COBJS-y) +SRCS := $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) + +all: $(LIB) + +$(LIB): $(obj).depend $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +######################################################################### diff --git a/drivers/usb/usbdcore.c b/drivers/usb/gadget/core.c similarity index 99% rename from drivers/usb/usbdcore.c rename to drivers/usb/gadget/core.c index 53ed669e971580ff249019d9197aee114c94c15a..67b6681a6cce225ffefc49bfa64d10e910915fb5 100644 --- a/drivers/usb/usbdcore.c +++ b/drivers/usb/gadget/core.c @@ -30,7 +30,7 @@ */ #include <malloc.h> -#include "usbdcore.h" +#include <usbdevice.h> #define MAX_INTERFACES 2 diff --git a/drivers/usb/usbdcore_ep0.c b/drivers/usb/gadget/ep0.c similarity index 99% rename from drivers/usb/usbdcore_ep0.c rename to drivers/usb/gadget/ep0.c index f6e017df1804dc9409fc774cec36031d3318c4df..2b4ec44e161768b2e6e5fb3eeccda344ae524325 100644 --- a/drivers/usb/usbdcore_ep0.c +++ b/drivers/usb/gadget/ep0.c @@ -51,7 +51,7 @@ */ #include <common.h> -#include "usbdcore.h" +#include <usbdevice.h> #if 0 #define dbg_ep0(lvl,fmt,args...) serial_printf("[%s] %s:%d: "fmt"\n",__FILE__,__FUNCTION__,__LINE__,##args) diff --git a/include/usbdcore_ep0.h b/drivers/usb/gadget/ep0.h similarity index 100% rename from include/usbdcore_ep0.h rename to drivers/usb/gadget/ep0.h diff --git a/drivers/usb/usbdcore_mpc8xx.c b/drivers/usb/gadget/mpc8xx_udc.c similarity index 99% rename from drivers/usb/usbdcore_mpc8xx.c rename to drivers/usb/gadget/mpc8xx_udc.c index 0e311ada156045c6e60b58328cd1997abad7dc16..da3fbba72204564e7ca6a82fc7e560a36034cb41 100644 --- a/drivers/usb/usbdcore_mpc8xx.c +++ b/drivers/usb/gadget/mpc8xx_udc.c @@ -3,7 +3,7 @@ * bodonoghue@CodeHermit.ie * * References - * DasUBoot/drivers/usb/usbdcore_omap1510.c, for design and implementation + * DasUBoot/drivers/usb/gadget/omap1510_udc.c, for design and implementation * ideas. * * This program is free software; you can redistribute it and/or modify @@ -59,9 +59,10 @@ #include <common.h> #include <config.h> #include <commproc.h> -#include "usbdcore.h" -#include "usbdcore_mpc8xx.h" -#include "usbdcore_ep0.h" +#include <usbdevice.h> +#include <usb/mpc8xx_udc.h> + +#include "ep0.h" DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/usb/usbdcore_omap1510.c b/drivers/usb/gadget/omap1510_udc.c similarity index 99% rename from drivers/usb/usbdcore_omap1510.c rename to drivers/usb/gadget/omap1510_udc.c index 6b7b61b3216a6fc4415eb81650f5a5a403763542..90f79070da53fa74941ede6b9f97fed4fbcd48a2 100644 --- a/drivers/usb/usbdcore_omap1510.c +++ b/drivers/usb/gadget/omap1510_udc.c @@ -31,10 +31,10 @@ #ifdef CONFIG_OMAP_SX1 #include <i2c.h> #endif +#include <usbdevice.h> +#include <usb/omap1510_udc.h> -#include "usbdcore.h" -#include "usbdcore_omap1510.h" -#include "usbdcore_ep0.h" +#include "ep0.h" #define UDC_INIT_MDELAY 80 /* Device settle delay */ diff --git a/drivers/usb/Makefile b/drivers/usb/host/Makefile similarity index 64% rename from drivers/usb/Makefile rename to drivers/usb/host/Makefile index 5523cbdd67a41331a6ab9ce9792fa0e69fda3b4c..ec1d689b3558f3f54b2269da3158c8baa6d749b2 100644 --- a/drivers/usb/Makefile +++ b/drivers/usb/host/Makefile @@ -23,33 +23,22 @@ include $(TOPDIR)/config.mk -LIB := $(obj)libusb.a +LIB := $(obj)libusb_host.a -# core -COBJS-y += usbdcore.o -COBJS-$(CONFIG_USB_OHCI_NEW) += usb_ohci.o -COBJS-$(CONFIG_USB_EHCI) += usb_ehci_core.o - -# host -COBJS-$(CONFIG_USB_ATMEL) += atmel_usb.o +# ohci +COBJS-$(CONFIG_USB_OHCI_NEW) += ohci-hcd.o +COBJS-$(CONFIG_USB_ATMEL) += ohci-at91.o COBJS-$(CONFIG_USB_ISP116X_HCD) += isp116x-hcd.o COBJS-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o -COBJS-$(CONFIG_USB_S3C64XX) += s3c64xx_usb.o -COBJS-$(CONFIG_USB_SL811HS) += sl811_usb.o -COBJS-$(CONFIG_USB_EHCI_FSL) += usb_ehci_fsl.o -COBJS-$(CONFIG_USB_EHCI_PCI) += usb_ehci_pci.o -COBJS-$(CONFIG_USB_EHCI_IXP4XX) += usb_ehci_ixp.o -COBJS-$(CONFIG_MUSB_HCD) += musb_hcd.o musb_core.o -COBJS-$(CONFIG_USB_DAVINCI) += davinci_usb.o -COBJS-$(CONFIG_USB_EHCI_VCT) += usb_ehci_vct.o - -# device -ifdef CONFIG_USB_DEVICE -COBJS-y += usbdcore_ep0.o -COBJS-$(CONFIG_OMAP1510) += usbdcore_omap1510.o -COBJS-$(CONFIG_OMAP1610) += usbdcore_omap1510.o -COBJS-$(CONFIG_MPC885_FAMILY) += usbdcore_mpc8xx.o -endif +COBJS-$(CONFIG_USB_S3C64XX) += s3c64xx-hcd.o +COBJS-$(CONFIG_USB_SL811HS) += sl811-hcd.o + +# echi +COBJS-$(CONFIG_USB_EHCI) += ehci-hcd.o +COBJS-$(CONFIG_USB_EHCI_FSL) += ehci-fsl.o +COBJS-$(CONFIG_USB_EHCI_IXP4XX) += ehci-ixp.o +COBJS-$(CONFIG_USB_EHCI_PCI) += ehci-pci.o +COBJS-$(CONFIG_USB_EHCI_VCT) += ehci-vct.o COBJS := $(COBJS-y) SRCS := $(COBJS:.o=.c) diff --git a/drivers/usb/usb_ehci_core.h b/drivers/usb/host/ehci-core.h similarity index 100% rename from drivers/usb/usb_ehci_core.h rename to drivers/usb/host/ehci-core.h diff --git a/drivers/usb/usb_ehci_fsl.c b/drivers/usb/host/ehci-fsl.c similarity index 97% rename from drivers/usb/usb_ehci_fsl.c rename to drivers/usb/host/ehci-fsl.c index 81d5d21657a5296438a1720c28974d995d4f0ff8..86ee1d57173ca88a01156eecbd87aba4119688a6 100644 --- a/drivers/usb/usb_ehci_fsl.c +++ b/drivers/usb/host/ehci-fsl.c @@ -26,9 +26,9 @@ #include <asm/io.h> #include <asm/bitops.h> -#include "usb_ehci.h" -#include "usb_ehci_fsl.h" -#include "usb_ehci_core.h" +#include "ehci.h" +#include "ehci-fsl.h" +#include "ehci-core.h" /* * Create the appropriate control structures to manage diff --git a/drivers/usb/usb_ehci_fsl.h b/drivers/usb/host/ehci-fsl.h similarity index 100% rename from drivers/usb/usb_ehci_fsl.h rename to drivers/usb/host/ehci-fsl.h diff --git a/drivers/usb/usb_ehci_core.c b/drivers/usb/host/ehci-hcd.c similarity index 99% rename from drivers/usb/usb_ehci_core.c rename to drivers/usb/host/ehci-hcd.c index 4dbfb6688fa17cae34460f2aaebbf9f8bffcbbab..bbd547b3e357fb8011702d34d9a26c9b546e5a27 100644 --- a/drivers/usb/usb_ehci_core.c +++ b/drivers/usb/host/ehci-hcd.c @@ -25,7 +25,8 @@ #include <usb.h> #include <asm/io.h> #include <malloc.h> -#include "usb_ehci.h" + +#include "ehci.h" int rootdev; struct ehci_hccr *hccr; /* R/O registers, not need for volatile */ diff --git a/drivers/usb/usb_ehci_ixp.c b/drivers/usb/host/ehci-ixp4xx.c similarity index 96% rename from drivers/usb/usb_ehci_ixp.c rename to drivers/usb/host/ehci-ixp4xx.c index 25c18c104e27b0ed0f674ac342dec3c1c8cafd63..b8f15ae52a79edf3aece0ed6e79ffef3b29e2e4b 100644 --- a/drivers/usb/usb_ehci_ixp.c +++ b/drivers/usb/host/ehci-ixp4xx.c @@ -21,8 +21,9 @@ */ #include <common.h> #include <usb.h> -#include "usb_ehci.h" -#include "usb_ehci_core.h" + +#include "ehci.h" +#include "ehci-core.h" /* * Create the appropriate control structures to manage * a new EHCI host controller. diff --git a/drivers/usb/usb_ehci_pci.c b/drivers/usb/host/ehci-pci.c similarity index 97% rename from drivers/usb/usb_ehci_pci.c rename to drivers/usb/host/ehci-pci.c index 3e7143cd91dd44e600552d823cb4ec27d964900e..441b1a271439580d3b6e7388817e7a2ac7a9418f 100644 --- a/drivers/usb/usb_ehci_pci.c +++ b/drivers/usb/host/ehci-pci.c @@ -21,8 +21,9 @@ #include <common.h> #include <pci.h> #include <usb.h> -#include "usb_ehci.h" -#include "usb_ehci_core.h" + +#include "ehci.h" +#include "ehci-core.h" #ifdef CONFIG_PCI_EHCI_DEVICE static struct pci_device_id ehci_pci_ids[] = { diff --git a/drivers/usb/usb_ehci_vct.c b/drivers/usb/host/ehci-vct.c similarity index 96% rename from drivers/usb/usb_ehci_vct.c rename to drivers/usb/host/ehci-vct.c index 89daaaf26df8338209dc4bc104d8bb55f8cdb82f..3063dd172f510d11197f9113f9e324c40282d05f 100644 --- a/drivers/usb/usb_ehci_vct.c +++ b/drivers/usb/host/ehci-vct.c @@ -20,8 +20,8 @@ #include <common.h> #include <usb.h> -#include "usb_ehci.h" -#include "usb_ehci_core.h" +#include "ehci.h" +#include "ehci-core.h" int vct_ehci_hcd_init(u32 *hccr, u32 *hcor); diff --git a/drivers/usb/usb_ehci.h b/drivers/usb/host/ehci.h similarity index 100% rename from drivers/usb/usb_ehci.h rename to drivers/usb/host/ehci.h diff --git a/drivers/usb/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c similarity index 100% rename from drivers/usb/isp116x-hcd.c rename to drivers/usb/host/isp116x-hcd.c diff --git a/drivers/usb/isp116x.h b/drivers/usb/host/isp116x.h similarity index 100% rename from drivers/usb/isp116x.h rename to drivers/usb/host/isp116x.h diff --git a/drivers/usb/atmel_usb.c b/drivers/usb/host/ohci-at91.c similarity index 100% rename from drivers/usb/atmel_usb.c rename to drivers/usb/host/ohci-at91.c diff --git a/drivers/usb/usb_ohci.c b/drivers/usb/host/ohci-hcd.c similarity index 99% rename from drivers/usb/usb_ohci.c rename to drivers/usb/host/ohci-hcd.c index 0bbee0f47b7f66e27e03ca96ef2ac8165fa94bfc..e2f289e6d6892ad5b8adaea16a0d1a5a76e0585f 100644 --- a/drivers/usb/usb_ohci.c +++ b/drivers/usb/host/ohci-hcd.c @@ -57,7 +57,8 @@ #include <malloc.h> #include <usb.h> -#include "usb_ohci.h" + +#include "ohci.h" #ifdef CONFIG_AT91RM9200 #include <asm/arch/hardware.h> /* needed for AT91_USB_HOST_BASE */ diff --git a/drivers/usb/usb_ohci.h b/drivers/usb/host/ohci.h similarity index 100% rename from drivers/usb/usb_ohci.h rename to drivers/usb/host/ohci.h diff --git a/drivers/usb/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c similarity index 100% rename from drivers/usb/r8a66597-hcd.c rename to drivers/usb/host/r8a66597-hcd.c diff --git a/drivers/usb/r8a66597.h b/drivers/usb/host/r8a66597.h similarity index 100% rename from drivers/usb/r8a66597.h rename to drivers/usb/host/r8a66597.h diff --git a/drivers/usb/s3c64xx_usb.c b/drivers/usb/host/s3c64xx-hcd.c similarity index 100% rename from drivers/usb/s3c64xx_usb.c rename to drivers/usb/host/s3c64xx-hcd.c diff --git a/drivers/usb/sl811_usb.c b/drivers/usb/host/sl811-hcd.c similarity index 99% rename from drivers/usb/sl811_usb.c rename to drivers/usb/host/sl811-hcd.c index a03e469d1e744313be10d85a5160f043871e29d0..82a8b365f4e67343e07fb604cf63482b024e5497 100644 --- a/drivers/usb/sl811_usb.c +++ b/drivers/usb/host/sl811-hcd.c @@ -40,7 +40,7 @@ #include <usb.h> #include "sl811.h" -#include "../../board/kup/common/kup.h" +#include "../../../board/kup/common/kup.h" #ifdef __PPC__ # define EIEIO __asm__ volatile ("eieio") diff --git a/drivers/usb/sl811.h b/drivers/usb/host/sl811.h similarity index 100% rename from drivers/usb/sl811.h rename to drivers/usb/host/sl811.h diff --git a/drivers/usb/musb/Makefile b/drivers/usb/musb/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..09e0a5f32fa655604aa2000092e80eddfe43cf6d --- /dev/null +++ b/drivers/usb/musb/Makefile @@ -0,0 +1,47 @@ +# +# (C) Copyright 2000-2007 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# + +include $(TOPDIR)/config.mk + +LIB := $(obj)libusb_musb.a + +COBJS-$(CONFIG_MUSB_HCD) += musb_hcd.o musb_core.o +COBJS-$(CONFIG_USB_DAVINCI) += davinci.o + +COBJS := $(COBJS-y) +SRCS := $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) + +all: $(LIB) + +$(LIB): $(obj).depend $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +######################################################################### diff --git a/drivers/usb/davinci_usb.c b/drivers/usb/musb/davinci.c similarity index 99% rename from drivers/usb/davinci_usb.c rename to drivers/usb/musb/davinci.c index e66f660feefa536fe3b5be09b2421fbdc41655c2..a7648fc452be64f80867636f4214c7b7fa4f9e55 100644 --- a/drivers/usb/davinci_usb.c +++ b/drivers/usb/musb/davinci.c @@ -23,7 +23,7 @@ #include <common.h> #include <asm/io.h> -#include "davinci_usb.h" +#include "davinci.h" /* MUSB platform configuration */ struct musb_config musb_cfg = { diff --git a/drivers/usb/davinci_usb.h b/drivers/usb/musb/davinci.h similarity index 100% rename from drivers/usb/davinci_usb.h rename to drivers/usb/musb/davinci.h diff --git a/drivers/usb/musb_core.c b/drivers/usb/musb/musb_core.c similarity index 100% rename from drivers/usb/musb_core.c rename to drivers/usb/musb/musb_core.c diff --git a/drivers/usb/musb_core.h b/drivers/usb/musb/musb_core.h similarity index 100% rename from drivers/usb/musb_core.h rename to drivers/usb/musb/musb_core.h diff --git a/drivers/usb/musb_hcd.c b/drivers/usb/musb/musb_hcd.c similarity index 100% rename from drivers/usb/musb_hcd.c rename to drivers/usb/musb/musb_hcd.c diff --git a/drivers/usb/musb_hcd.h b/drivers/usb/musb/musb_hcd.h similarity index 100% rename from drivers/usb/musb_hcd.h rename to drivers/usb/musb/musb_hcd.h diff --git a/include/usbdcore_mpc8xx.h b/include/usb/mpc8xx_udc.h similarity index 100% rename from include/usbdcore_mpc8xx.h rename to include/usb/mpc8xx_udc.h diff --git a/include/usbdcore_omap1510.h b/include/usb/omap1510_udc.h similarity index 100% rename from include/usbdcore_omap1510.h rename to include/usb/omap1510_udc.h diff --git a/include/usbdcore.h b/include/usbdevice.h similarity index 100% rename from include/usbdcore.h rename to include/usbdevice.h