
Hi Kishon,
Ported DWC3 driver from linux kernel v3.16 to uboot and enabled DFU in DRA7xx. Tested only with DFU ram.
I'm afraid that only testing the code with DFU ram is not enough.
I'd _appreciate_ if you had CCed other people involved in DFU/UDC/USB development to this RFC. I've CCed Marek Vasut - the USB custodian.
The whole series seems like a huge improvement from the base code - which is 2.6.36 based one...
While I kept the dwc3 driver pretty much the same from linux kernel, I have created a single driver for both USB2 and USB3 PHY programming.
I concern about driver model compliance. Simon Glass has put a lot of effort to convert Exynos' UART and GPIO to it. Hence, I believe that potential UDC/PHY rework shall comply with Simon's device model work.
Therefore, I've CC'ed Simon as well.
I have also adapted udc-core from linux kernel so that we can cleanly link the gadet driver with the controller driver.
This series was created on top of commit 61e76f53708cf082ef9061a140b57df3513b8ba1 Merge: 76b2102 3d83e67 Author: Tom Rini trini@ti.com Date: Tue Jun 10 20:37:00 2014 -0400
Merge branch 'master' of git://git.denx.de/u-boot-usb
Let me know of any feedback and suggestions.
Known Issues: DWC3 is not enumerating consistently.
Kishon Vijay Abraham I (13): include: linux: preparation for porting dwc3 from linux kernel usb: gadget: udc-core: Add minimal udc-core from linux kernel ARM: DRA7: Enable clocks for USB OTGSS and USB PHY usb: dwc3: Add dwc3 driver usb: dwc3-omap: Add dwc3 glue driver for OMAP usb: dwc3: TI PHY: PHY driver for dwc3 in TI platforms usb: gadget: g_dnl: Explicitly set the max packet size in descriptor common: cmd_dfu: invoke board_usb_cleanup() for cleaning up common: cmd_dfu: add an API that takes controller index for handling interrupts board: ti: DRA7: added USB initializtion code commom: usb: implement "__weak" functions to make compiler happy include: configs: Enable DWC3 and DFU in DRA7xx dwc3: core: Change the bounce buffer size to 4096
Makefile | 1 + arch/arm/cpu/armv7/omap5/hw_data.c | 14 + arch/arm/cpu/armv7/omap5/prcm-regs.c | 6 +- arch/arm/include/asm/arch-omap5/omap.h | 12 + arch/arm/include/asm/omap_common.h | 4 +- board/ti/dra7xx/evm.c | 106 ++ common/cmd_dfu.c | 2 + common/usb.c | 18 + drivers/usb/dwc3/Makefile | 10 + drivers/usb/dwc3/core.c | 640 +++++++ drivers/usb/dwc3/core.h | 961 +++++++++++ drivers/usb/dwc3/dwc3-omap.c | 447 +++++ drivers/usb/dwc3/ep0.c | 1045 ++++++++++++ drivers/usb/dwc3/gadget.c | 2841 ++++++++++++++++++++++++++++++++ drivers/usb/dwc3/gadget.h | 163 ++ drivers/usb/dwc3/io.h | 52 + drivers/usb/dwc3/linux-compat.h | 132 ++ drivers/usb/dwc3/ti_usb_phy.c | 269 +++ drivers/usb/gadget/Makefile | 1 + drivers/usb/gadget/composite.c | 3 +- drivers/usb/gadget/g_dnl.c | 1 + drivers/usb/gadget/udc-core.c | 229 +++ include/configs/dra7xx_evm.h | 59 + include/configs/ti_omap5_common.h | 1 + include/dwc3-omap-uboot.h | 32 + include/dwc3-uboot.h | 26 + include/linux/compat.h | 12 +- include/linux/usb/composite.h | 12 + include/linux/usb/dwc3-omap.h | 19 + include/linux/usb/gadget.h | 75 +- include/linux/usb/otg.h | 20 + include/ti-usb-phy-uboot.h | 22 + include/usb.h | 7 + include/usb/lin_gadget_compat.h | 8 +- 34 files changed, 7236 insertions(+), 14 deletions(-) create mode 100644 drivers/usb/dwc3/Makefile create mode 100644 drivers/usb/dwc3/core.c create mode 100644 drivers/usb/dwc3/core.h create mode 100644 drivers/usb/dwc3/dwc3-omap.c create mode 100644 drivers/usb/dwc3/ep0.c create mode 100644 drivers/usb/dwc3/gadget.c create mode 100644 drivers/usb/dwc3/gadget.h create mode 100644 drivers/usb/dwc3/io.h create mode 100644 drivers/usb/dwc3/linux-compat.h create mode 100644 drivers/usb/dwc3/ti_usb_phy.c create mode 100644 drivers/usb/gadget/udc-core.c create mode 100644 include/dwc3-omap-uboot.h create mode 100644 include/dwc3-uboot.h create mode 100644 include/linux/usb/dwc3-omap.h create mode 100644 include/linux/usb/otg.h create mode 100644 include/ti-usb-phy-uboot.h