Current MUSB driver in U-Boot uses old UDC API while new gagdet client drivers need new gadget API. Also current MUSB driver has some significant limitations (like inability to handle tx for endpoints other than ep0). So I think port of new Linux driver is desirable.
This is initial port, performed mostly by putting DM, host and OTG code under #ifndef __UBOOT__ clauses. My intention was to be as close as possible to the original to ease of possible resyncs. Some warnings are suppressed via CFLAGS. There are some style problems but I'm not touching them for now for the above mentioned reason. There is obviously some room for optimisation, some structure fields are unused as well as (probably) some code. This is not a replacement for existing MUSB driver (at least for now), cause host mode is not supported and there are still consumers of the old interface. Host mode, OTG and DMA are not supported. The only ported driver is for TI AM33xx, but others should be easy to port too. Tested it on AM335x EVM and BeagleBone with CDC Ethernet gadget. Ilya Yanok (5): linux/usb/ch9.h: update with the version from Linux tree musb-new: port of Linux musb gadget driver musb-new: dsps backend driver am33xx: init OTG hardware and new musb gadget driver am335x_evm: enable musb gadget on port 0 Makefile | 1 + arch/arm/cpu/armv7/am33xx/board.c | 81 +- arch/arm/cpu/armv7/am33xx/clock.c | 8 + arch/arm/include/asm/arch-am33xx/cpu.h | 11 +- arch/arm/include/asm/arch-am33xx/hardware.h | 4 + arch/arm/include/asm/omap_musb.h | 25 + drivers/usb/gadget/config.c | 1 - drivers/usb/gadget/epautoconf.c | 1 - drivers/usb/gadget/ether.c | 1 - drivers/usb/gadget/gadget_chips.h | 2 + drivers/usb/gadget/s3c_udc_otg.c | 1 - drivers/usb/gadget/usbstring.c | 1 - drivers/usb/musb-new/Makefile | 36 + drivers/usb/musb-new/musb_core.c | 2489 +++++++++++++++++++++++++++ drivers/usb/musb-new/musb_core.h | 611 +++++++ drivers/usb/musb-new/musb_debug.h | 58 + drivers/usb/musb-new/musb_dma.h | 186 ++ drivers/usb/musb-new/musb_dsps.c | 769 +++++++++ drivers/usb/musb-new/musb_gadget.c | 2319 +++++++++++++++++++++++++ drivers/usb/musb-new/musb_gadget.h | 127 ++ drivers/usb/musb-new/musb_gadget_ep0.c | 1089 ++++++++++++ drivers/usb/musb-new/musb_gadget_uboot.c | 72 + drivers/usb/musb-new/musb_io.h | 146 ++ drivers/usb/musb-new/musb_regs.h | 645 +++++++ include/configs/am335x_evm.h | 19 + include/linux/usb/ch9.h | 514 +++++- include/linux/usb/musb.h | 162 ++ include/usb/s3c_udc.h | 1 - 28 files changed, 9355 insertions(+), 25 deletions(-) create mode 100644 arch/arm/include/asm/omap_musb.h create mode 100644 drivers/usb/musb-new/Makefile create mode 100644 drivers/usb/musb-new/musb_core.c create mode 100644 drivers/usb/musb-new/musb_core.h create mode 100644 drivers/usb/musb-new/musb_debug.h create mode 100644 drivers/usb/musb-new/musb_dma.h create mode 100644 drivers/usb/musb-new/musb_dsps.c create mode 100644 drivers/usb/musb-new/musb_gadget.c create mode 100644 drivers/usb/musb-new/musb_gadget.h create mode 100644 drivers/usb/musb-new/musb_gadget_ep0.c create mode 100644 drivers/usb/musb-new/musb_gadget_uboot.c create mode 100644 drivers/usb/musb-new/musb_io.h create mode 100644 drivers/usb/musb-new/musb_regs.h create mode 100644 include/linux/usb/musb.h -- 1.7.9.5 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot