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