[U-Boot,0/8] usb: Add support for Cadence USB controller driver
mbox series

Message ID 20191001115636.21052-1-vigneshr@ti.com
Headers show
Series
  • usb: Add support for Cadence USB controller driver
Related show

Message

Vignesh Raghavendra Oct. 1, 2019, 11:56 a.m. UTC
This series adds support for Cadence USB Host and Gadget controller
drivers. This is borrowed directly from Linux kernel v5.4-rc1.
Driver as such supports both 3.0 and 2.0 speeds. But USB 3.0 requires a
PHY driver which will be added in a separate follow series

Patch 7 adds TI wrapper driver for Cadence USB controller.

Both host and device mode has been tested on TI's J721e SoC. DFU, UMS
and fastboot gadgets have been tested.

Complete series (+ DT nodes required for J721e) can be found here:
https://github.com/r-vignesh/u-boot.git branch: usb

Regards
Vignesh

Sherry Sun (1):
  usb: udc: Introduce ->udc_set_speed() method

Vignesh Raghavendra (7):
  list: import list_first_entry_or_null()
  bitmaps: import for_each_set_bit() macro
  usb: gadget: Add match_ep() op to usb_gadget_ops
  usb: Add Cadence USB3 host and gadget driver
  usb: cdns3: gadget: Implement udc_set_speed() callback
  usb: cdns3: Add TI wrapper driver for CDNS USB3 controller
  usb: gadget: Add gadget_is_cdns3() macro

 Makefile                          |    1 +
 drivers/usb/Kconfig               |    2 +
 drivers/usb/cdns3/Kconfig         |   58 +
 drivers/usb/cdns3/Makefile        |   11 +
 drivers/usb/cdns3/cdns3-ti.c      |  193 ++
 drivers/usb/cdns3/core.c          |  498 ++++++
 drivers/usb/cdns3/core.h          |  108 ++
 drivers/usb/cdns3/debug.h         |  162 ++
 drivers/usb/cdns3/drd.c           |  301 ++++
 drivers/usb/cdns3/drd.h           |  166 ++
 drivers/usb/cdns3/ep0.c           |  910 ++++++++++
 drivers/usb/cdns3/gadget-export.h |   28 +
 drivers/usb/cdns3/gadget.c        | 2760 +++++++++++++++++++++++++++++
 drivers/usb/cdns3/gadget.h        | 1338 ++++++++++++++
 drivers/usb/cdns3/host-export.h   |   28 +
 drivers/usb/cdns3/host.c          |   55 +
 drivers/usb/cdns3/trace.c         |   11 +
 drivers/usb/cdns3/trace.h         |   26 +
 drivers/usb/gadget/epautoconf.c   |    3 +
 drivers/usb/gadget/gadget_chips.h |    8 +
 drivers/usb/gadget/udc/udc-core.c |   23 +
 include/linux/bitmap.h            |   61 +
 include/linux/list.h              |   14 +
 include/linux/usb/gadget.h        |   25 +
 scripts/Makefile.spl              |    1 +
 25 files changed, 6791 insertions(+)
 create mode 100644 drivers/usb/cdns3/Kconfig
 create mode 100644 drivers/usb/cdns3/Makefile
 create mode 100644 drivers/usb/cdns3/cdns3-ti.c
 create mode 100644 drivers/usb/cdns3/core.c
 create mode 100644 drivers/usb/cdns3/core.h
 create mode 100644 drivers/usb/cdns3/debug.h
 create mode 100644 drivers/usb/cdns3/drd.c
 create mode 100644 drivers/usb/cdns3/drd.h
 create mode 100644 drivers/usb/cdns3/ep0.c
 create mode 100644 drivers/usb/cdns3/gadget-export.h
 create mode 100644 drivers/usb/cdns3/gadget.c
 create mode 100644 drivers/usb/cdns3/gadget.h
 create mode 100644 drivers/usb/cdns3/host-export.h
 create mode 100644 drivers/usb/cdns3/host.c
 create mode 100644 drivers/usb/cdns3/trace.c
 create mode 100644 drivers/usb/cdns3/trace.h

Comments

Jean-Jacques Hiblot Oct. 11, 2019, 8:59 a.m. UTC | #1
On 01/10/2019 13:56, Vignesh Raghavendra wrote:
> This series adds support for Cadence USB Host and Gadget controller
> drivers. This is borrowed directly from Linux kernel v5.4-rc1.
> Driver as such supports both 3.0 and 2.0 speeds. But USB 3.0 requires a
> PHY driver which will be added in a separate follow series
>
> Patch 7 adds TI wrapper driver for Cadence USB controller.
>
> Both host and device mode has been tested on TI's J721e SoC. DFU, UMS
> and fastboot gadgets have been tested.
>
> Complete series (+ DT nodes required for J721e) can be found here:
> https://github.com/r-vignesh/u-boot.git branch: usb
>
> Regards
> Vignesh
>
> Sherry Sun (1):
>    usb: udc: Introduce ->udc_set_speed() method
>
> Vignesh Raghavendra (7):
>    list: import list_first_entry_or_null()
>    bitmaps: import for_each_set_bit() macro
>    usb: gadget: Add match_ep() op to usb_gadget_ops
>    usb: Add Cadence USB3 host and gadget driver
>    usb: cdns3: gadget: Implement udc_set_speed() callback
>    usb: cdns3: Add TI wrapper driver for CDNS USB3 controller
>    usb: gadget: Add gadget_is_cdns3() macro
>
>   Makefile                          |    1 +
>   drivers/usb/Kconfig               |    2 +
>   drivers/usb/cdns3/Kconfig         |   58 +
>   drivers/usb/cdns3/Makefile        |   11 +
>   drivers/usb/cdns3/cdns3-ti.c      |  193 ++
>   drivers/usb/cdns3/core.c          |  498 ++++++
>   drivers/usb/cdns3/core.h          |  108 ++
>   drivers/usb/cdns3/debug.h         |  162 ++
>   drivers/usb/cdns3/drd.c           |  301 ++++
>   drivers/usb/cdns3/drd.h           |  166 ++
>   drivers/usb/cdns3/ep0.c           |  910 ++++++++++
>   drivers/usb/cdns3/gadget-export.h |   28 +
>   drivers/usb/cdns3/gadget.c        | 2760 +++++++++++++++++++++++++++++
>   drivers/usb/cdns3/gadget.h        | 1338 ++++++++++++++
>   drivers/usb/cdns3/host-export.h   |   28 +
>   drivers/usb/cdns3/host.c          |   55 +
>   drivers/usb/cdns3/trace.c         |   11 +
>   drivers/usb/cdns3/trace.h         |   26 +
>   drivers/usb/gadget/epautoconf.c   |    3 +
>   drivers/usb/gadget/gadget_chips.h |    8 +
>   drivers/usb/gadget/udc/udc-core.c |   23 +
>   include/linux/bitmap.h            |   61 +
>   include/linux/list.h              |   14 +
>   include/linux/usb/gadget.h        |   25 +
>   scripts/Makefile.spl              |    1 +
>   25 files changed, 6791 insertions(+)
>   create mode 100644 drivers/usb/cdns3/Kconfig
>   create mode 100644 drivers/usb/cdns3/Makefile
>   create mode 100644 drivers/usb/cdns3/cdns3-ti.c
>   create mode 100644 drivers/usb/cdns3/core.c
>   create mode 100644 drivers/usb/cdns3/core.h
>   create mode 100644 drivers/usb/cdns3/debug.h
>   create mode 100644 drivers/usb/cdns3/drd.c
>   create mode 100644 drivers/usb/cdns3/drd.h
>   create mode 100644 drivers/usb/cdns3/ep0.c
>   create mode 100644 drivers/usb/cdns3/gadget-export.h
>   create mode 100644 drivers/usb/cdns3/gadget.c
>   create mode 100644 drivers/usb/cdns3/gadget.h
>   create mode 100644 drivers/usb/cdns3/host-export.h
>   create mode 100644 drivers/usb/cdns3/host.c
>   create mode 100644 drivers/usb/cdns3/trace.c
>   create mode 100644 drivers/usb/cdns3/trace.h

I tested the series for Host and device operations onĀ  with a J721e-evm.

As expected, USB3 is not yet supported on the J721e because the driver 
for the USB3 phy is not there yet.

Tested-by: Jean-Jacques Hiblot <jjhiblot@ti.com>