[PATCH v4 00/26] Add UDC support to the isp1760 driver

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

 



Hello,

This patch set adds UDC support to the isp1760 driver, to be used with the
ISP1761 dual-role USB controller.

The first 21 patches rework the isp1760 driver to prepare it for UDC support.
In particular they removes the direct HCD dependencies from the glue code
(01/26 to 08/26), creates core initialization code shared by the HCD and UDC
(18/26) and move common initialization code to the core (19/26 to 21/26).

Patch 22/26 adds UDC support, patch 23/26 moves the driver to
drivers/usb/isp1760/, and patches 24/26 to 26/26 make HCD support optional.

The ISP1761 has three USB ports, with port 1 configurable in host or peripheral
mode with OTG support, and ports 2 and 3 supporting host mode only. OTG
support is not implemented yet, port 1 can thus be configured in host or
peripheral mode only.

The UDC driver has been successfully tested with the g_zero and g_mass_storage
gadgets.

Felipe, I've tested compilation with all possible options of CONFIG_USB,
CONFIG_USB_STORAGE, CONFIG_USB_ISP1760 and CONFIG_USB_ISP1760_*_ROLE.

Changes compared to v3:

- Fix compilation breakage due to isp1760 leftovers in
  drivers/usb/host/Makefile
- Add patches 01/26 to 04/16 that have been dropped from the USB gadget
  master branch
- Add patches 25/26 and 26/26

Global changes compared to v2:

- Rebase on top of Felipe's testing/next branch
- Drop patches that have been merged already
- Add patch 19/20 and 20/20

Global changes compared to v1:

- Replace GPIO request move by patch 01/22
- Split PORT1 configuration to separate patch
- Drop the shutdown implementation patch
- Add patches 02/22, 04/22, 05/22, 13/22, 14/22

See individual patches for details.

Laurent Pinchart (26):
  usb: isp1760: Use the gpio descriptor API
  usb: isp1760: Remove isp1760 glue structure
  usb: isp1760: Retrieve pdev memory resource from hcd at remove time
  usb: isp1760: Unmap I/O registers at platform device removal
  usb: isp1760: Merge platform and OF glue codes
  usb: isp1760: Move removal cleanup code to isp1760-hcd.c
  usb: isp1760: Manage device driver data in common code
  usb: isp1760: Don't expose hcd to glue code from isp1760_register
  usb: isp1760: Fix indentation in probe error path
  usb: isp1760: Prefix init_kmem_once and deinit_kmem_cache with
    isp1760_
  usb: isp1760: Remove busname argument to isp1760_register
  usb: isp1760: Pass resource pointer to isp1760_register
  usb: isp1760: Use the managed devm_ioremap_resource() API
  usb: isp1760: Refactor PCI initialization code
  usb: isp1760: Decouple usb_hdc and isp1760_priv
  usb: isp1760: Prefix driver data structures with isp1760_
  usb: isp1760: Reorganize header files
  usb: isp1760: Move core code to isp1760-core.c
  usb: isp1760: Set IRQF_SHARED flag in core code
  usb: isp1760: Initialize the bus interface in core code
  usb: isp1760: Move PORT1 configuration to core code
  usb: isp1760: Add device controller support
  usb: isp1760: Move driver from drivers/usb/host/ to
    drivers/usb/isp1760/
  usb: isp1760: Make HCD support optional
  usb: isp1760: Remove duplicate usb_disabled() check
  usb: isp1760: Fix USB disabled check

 drivers/usb/Kconfig                |    2 +
 drivers/usb/Makefile               |    2 +-
 drivers/usb/host/Kconfig           |   14 -
 drivers/usb/host/Makefile          |    3 -
 drivers/usb/host/isp1760-hcd.c     | 2268 ------------------------------------
 drivers/usb/host/isp1760-hcd.h     |  208 ----
 drivers/usb/host/isp1760-if.c      |  477 --------
 drivers/usb/isp1760/Kconfig        |   59 +
 drivers/usb/isp1760/Makefile       |    5 +
 drivers/usb/isp1760/isp1760-core.c |  177 +++
 drivers/usb/isp1760/isp1760-core.h |   68 ++
 drivers/usb/isp1760/isp1760-hcd.c  | 2234 +++++++++++++++++++++++++++++++++++
 drivers/usb/isp1760/isp1760-hcd.h  |  102 ++
 drivers/usb/isp1760/isp1760-if.c   |  309 +++++
 drivers/usb/isp1760/isp1760-regs.h |  230 ++++
 drivers/usb/isp1760/isp1760-udc.c  | 1498 ++++++++++++++++++++++++
 drivers/usb/isp1760/isp1760-udc.h  |  106 ++
 17 files changed, 4791 insertions(+), 2971 deletions(-)
 delete mode 100644 drivers/usb/host/isp1760-hcd.c
 delete mode 100644 drivers/usb/host/isp1760-hcd.h
 delete mode 100644 drivers/usb/host/isp1760-if.c
 create mode 100644 drivers/usb/isp1760/Kconfig
 create mode 100644 drivers/usb/isp1760/Makefile
 create mode 100644 drivers/usb/isp1760/isp1760-core.c
 create mode 100644 drivers/usb/isp1760/isp1760-core.h
 create mode 100644 drivers/usb/isp1760/isp1760-hcd.c
 create mode 100644 drivers/usb/isp1760/isp1760-hcd.h
 create mode 100644 drivers/usb/isp1760/isp1760-if.c
 create mode 100644 drivers/usb/isp1760/isp1760-regs.h
 create mode 100644 drivers/usb/isp1760/isp1760-udc.c
 create mode 100644 drivers/usb/isp1760/isp1760-udc.h

-- 
Regards,

Laurent Pinchart

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