[PATCH V2 0/5] DWC2 DesignWare HS OTG driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a host-mode driver for the Synopsys DesignWare HS OTG controller. 
This is the same controller whose peripheral mode is implemented by the
existing s3c-hsotg driver. This controller is also used in host mode in the
Raspberry Pi via a very ugly out-of-tree driver, so this would be a step
toward bringing that platform into mainline.

The idea is to add a dwc2/ directory alongside the existing dwc3/ directory,
initially to contain just this host-mode driver. Once that has been accepted
we would then like to move the s3c-hsotg driver into this directory and
integrate it to make a dual-role driver. Finally we would implement support
for the OTG features of the controller.

This driver is still a work in progress, to wit:

- Only a PCI bus interface has been implemented so far. However the core
  code and the PCI bus glue code are contained in separate modules, so it
  should be fairly easy to add a platform device interface as a third
  module.
- The PCI bus driver has a couple dozen module parameters to control
  various optional features of the controller. I realize module parameters
  are frowned upon these days, so I would appreciate any advice on the
  best way to implement these in an acceptable manner.
- There is no power-management support yet.
- There is some code present to implement DRD and OTG support, but it is
  incomplete due to the missing peripheral-mode code.
- There is quite a bit of debug code included. We would like to keep that
  until the integration with s3c-hsotg is complete, then most of it can be
  stripped out.

Comments? Questions?

-- 
Felipe,

I think I addressed most of the issues you raised. One thing I didn't
understand, you said "you shouldn't have reset the version counter".
Are you talking about the comment "as in OTG version 2.xx or
OTG version 3.xx"? That is referring to the OTG version in the USB
specification, not the version of this driver.

The core code and the PCI bus glue are now separate modules as you
requested, although I didn't make the core code a platform device.
I removed some of the debug messages and converted most of the others
to dev_vdbg, so now the driver is nice and quiet if debug is not
enabled.

And, the RaspberryPi folks have kindly sent me one of their devices,
so I will work on implementing a platform driver for that.

Paul Zimmerman (5):
  Core files for the DWC2 driver
  HCD files for the DWC2 driver
  HCD descriptor DMA support for the DWC2 driver
  PCI bus interface for the DWC2 driver
  Hook the DWC2 driver into the build system

 drivers/usb/Kconfig          |    2 +
 drivers/usb/Makefile         |    2 +
 drivers/usb/dwc2/Kconfig     |   27 +
 drivers/usb/dwc2/Makefile    |   15 +
 drivers/usb/dwc2/core.c      | 2577 +++++++++++++++++++++++++++++++++++
 drivers/usb/dwc2/core.h      |  600 ++++++++
 drivers/usb/dwc2/core_intr.c |  649 +++++++++
 drivers/usb/dwc2/hcd.c       | 3103 ++++++++++++++++++++++++++++++++++++++++++
 drivers/usb/dwc2/hcd.h       |  984 +++++++++++++
 drivers/usb/dwc2/hcd_ddma.c  | 1179 ++++++++++++++++
 drivers/usb/dwc2/hcd_intr.c  | 1993 +++++++++++++++++++++++++++
 drivers/usb/dwc2/hcd_queue.c |  748 ++++++++++
 drivers/usb/dwc2/hw.h        |  805 +++++++++++
 drivers/usb/dwc2/pci.c       |  467 +++++++
 14 files changed, 13151 insertions(+), 0 deletions(-)
 create mode 100644 drivers/usb/dwc2/Kconfig
 create mode 100644 drivers/usb/dwc2/Makefile
 create mode 100644 drivers/usb/dwc2/core.c
 create mode 100644 drivers/usb/dwc2/core.h
 create mode 100644 drivers/usb/dwc2/core_intr.c
 create mode 100644 drivers/usb/dwc2/hcd.c
 create mode 100644 drivers/usb/dwc2/hcd.h
 create mode 100644 drivers/usb/dwc2/hcd_ddma.c
 create mode 100644 drivers/usb/dwc2/hcd_intr.c
 create mode 100644 drivers/usb/dwc2/hcd_queue.c
 create mode 100644 drivers/usb/dwc2/hw.h
 create mode 100644 drivers/usb/dwc2/pci.c

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux