Skip to content

RFC DRA7xx: Add DWC3 USB driver and enable DFU

Lukasz Majewski u-boot 1 version New

Get series with b4
b4 am 20140819105641.30eeee65@amdc2363

Versions newest first

  1. v1 RFC Latest11 of 13 patches 0 repliesNew

11 of 13 patches are in this archive. The cover letter announces 13.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
2/13usb: gadget: udc-core: Add minimal udc-core from linux kernel+0 -04 replies
2/13usb: gadget: udc-core: Add minimal udc-core from linux kernel+0 -00 replies
2/13usb: gadget: udc-core: Add minimal udc-core from linux kernel+0 -00 replies
7/13usb: gadget: g_dnl: Explicitly set the max packet size in descriptor+0 -00 replies
7/13usb: gadget: g_dnl: Explicitly set the max packet size in descriptor+0 -02 replies
7/13usb: gadget: g_dnl: Explicitly set the max packet size in descriptor+0 -00 replies
7/13usb: gadget: g_dnl: Explicitly set the max packet size in descriptor+0 -01 reply
7/13usb: gadget: g_dnl: Explicitly set the max packet size in descriptor+0 -01 reply
9/13common: cmd_dfu: add an API that takes controller index for handling interrupts+0 -01 reply
9/13common: cmd_dfu: add an API that takes controller index for handling interrupts+0 -00 replies
11/13commom: usb: implement "__weak" functions to make compiler happy+0 -02 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [U-Boot] [UBOOT RFC PATCH 00/13] DRA7xx: Add DWC3 USB driver and enable DFU

Hi Kishon,

Quoted 2 lines

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...

Quoted 4 lines

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.

Quoted 84 lines

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 <[email protected]>
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
Signature · 5 lines
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group