All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
@ 2018-09-25  9:03 Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 1/8] usb: gadget: Do not call board_usb_xxx() directly in USB gadget drivers Jean-Jacques Hiblot
                   ` (9 more replies)
  0 siblings, 10 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-09-25  9:03 UTC (permalink / raw)
  To: u-boot


This series aims at bringing improvements to the dwc3_generic driver so
that it can be used by most of the platforms using the dwc3 controller.

I tested this on with DRA7 and AM57x platforms for both Peripheral and Host
operations. The code to enable DM USB host & dev support for those
platforms will be submitted in a separate series.

Michal Simek has tested this series:
" I have tested it on zcu100 with usb stick, usb to ethernet converter and
also dfu.
Tested-by: Michal Simek <michal.simek@xilinx.com>"

Enhancements:
- use separate Kconfig option for DM USB Periphal and DM USB Host. This
allow platforms to keep their non-DM USB peripheral code and use the DM
USB host.
- fixes the bind/probe confusion in dwc3_generic. The probe is done when
the USB device is first needed.
- handles PHYs when in the peripheral mode. The code to handle the PHYs is
shared with the host side
- handles clock and reset
- bind host controller to the more generic driver 'xhci-dwc3'


Changes in v3:
- fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This was
  visible only when the device is removed.
- Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
  This fixes all build issues but one (evb-rk3328).
- Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This has
  little impact on the footprint and should not break the runtime as the
  xhci-rockchip driver has its own probe function.
  Nevertheless this was !!! NOT TESTED !!! by lack of hw

Changes in v2:
- Updated commit log
- Fixed typo in thordown.c
- select DM_USB_DEV by default for zynqmp platforms

Jean-Jacques Hiblot (8):
  usb: gadget: Do not call board_usb_xxx() directly in USB gadget
    drivers
  usb: introduce a separate config option for DM USB device
  usb: udc: implement DM versions of
    usb_gadget_initialize()/_release()/_handle_interrupt()
  dwc3_generic: do not probe the USB device driver when it's bound
  dwc3: move phy operation to core.c
  configs: evb-rk3328: Enable CONFIG_USB_DWC3
  dwc3-generic: Handle the PHYs, the clocks and the reset lines
  dwc3-generic: Add select_dr_mode operation

 arch/arm/Kconfig                  |   2 +
 cmd/fastboot.c                    |   4 +-
 cmd/rockusb.c                     |   4 +-
 cmd/thordown.c                    |   4 +-
 cmd/usb_gadget_sdp.c              |   4 +-
 cmd/usb_mass_storage.c            |   4 +-
 common/dfu.c                      |   6 +-
 configs/evb-rk3328_defconfig      |   1 +
 drivers/usb/Kconfig               |   6 ++
 drivers/usb/dwc3/Kconfig          |   7 +-
 drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
 drivers/usb/dwc3/dwc3-generic.c   | 207 +++++++++++++++++++++++++++++---------
 drivers/usb/dwc3/ep0.c            |   1 -
 drivers/usb/gadget/ether.c        |  38 +------
 drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
 drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
 include/dwc3-uboot.h              |  19 ++++
 include/linux/usb/gadget.h        |  18 ++++
 18 files changed, 367 insertions(+), 186 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 1/8] usb: gadget: Do not call board_usb_xxx() directly in USB gadget drivers
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
@ 2018-09-25  9:03 ` Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 2/8] usb: introduce a separate config option for DM USB device Jean-Jacques Hiblot
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-09-25  9:03 UTC (permalink / raw)
  To: u-boot

Add 2 functions to wrap the calls to board_usb_init() and
board_usb_cleanup().
This is a preparatory work for DM support for UDC drivers (DM_USB_DEV).

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v3: None
Changes in v2:
- Updated commit log
- Fixed typo in thordown.c

 cmd/fastboot.c             |  4 ++--
 cmd/rockusb.c              |  4 ++--
 cmd/thordown.c             |  4 ++--
 cmd/usb_gadget_sdp.c       |  4 ++--
 cmd/usb_mass_storage.c     |  4 ++--
 common/dfu.c               |  6 +++---
 drivers/usb/gadget/ether.c | 38 +++++---------------------------------
 include/linux/usb/gadget.h | 10 ++++++++++
 8 files changed, 28 insertions(+), 46 deletions(-)

diff --git a/cmd/fastboot.c b/cmd/fastboot.c
index ae3a5f6..0be83b7 100644
--- a/cmd/fastboot.c
+++ b/cmd/fastboot.c
@@ -51,7 +51,7 @@ static int do_fastboot_usb(int argc, char *const argv[],
 		return CMD_RET_FAILURE;
 	}
 
-	ret = board_usb_init(controller_index, USB_INIT_DEVICE);
+	ret = usb_gadget_initialize(controller_index);
 	if (ret) {
 		pr_err("USB init failed: %d\n", ret);
 		return CMD_RET_FAILURE;
@@ -82,7 +82,7 @@ static int do_fastboot_usb(int argc, char *const argv[],
 exit:
 	g_dnl_unregister();
 	g_dnl_clear_detach();
-	board_usb_cleanup(controller_index, USB_INIT_DEVICE);
+	usb_gadget_release(controller_index);
 
 	return ret;
 #else
diff --git a/cmd/rockusb.c b/cmd/rockusb.c
index 8206643..e0c1480 100644
--- a/cmd/rockusb.c
+++ b/cmd/rockusb.c
@@ -33,7 +33,7 @@ static int do_rockusb(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
 	dev_index = simple_strtoul(devnum, NULL, 0);
 	rockusb_dev_init(devtype, dev_index);
 
-	ret = board_usb_init(controller_index, USB_INIT_DEVICE);
+	ret = usb_gadget_initialize(controller_index);
 	if (ret) {
 		printf("USB init failed: %d\n", ret);
 		return CMD_RET_FAILURE;
@@ -62,7 +62,7 @@ static int do_rockusb(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
 exit:
 	g_dnl_unregister();
 	g_dnl_clear_detach();
-	board_usb_cleanup(controller_index, USB_INIT_DEVICE);
+	usb_gadget_release(controller_index);
 
 	return ret;
 }
diff --git a/cmd/thordown.c b/cmd/thordown.c
index 2615ada..ce3660d 100644
--- a/cmd/thordown.c
+++ b/cmd/thordown.c
@@ -30,7 +30,7 @@ int do_thor_down(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 		goto done;
 
 	int controller_index = simple_strtoul(usb_controller, NULL, 0);
-	ret = board_usb_init(controller_index, USB_INIT_DEVICE);
+	ret = usb_gadget_initialize(controller_index);
 	if (ret) {
 		pr_err("USB init failed: %d\n", ret);
 		ret = CMD_RET_FAILURE;
@@ -55,7 +55,7 @@ int do_thor_down(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 exit:
 	g_dnl_unregister();
-	board_usb_cleanup(controller_index, USB_INIT_DEVICE);
+	usb_gadget_release(controller_index);
 done:
 	dfu_free_entities();
 
diff --git a/cmd/usb_gadget_sdp.c b/cmd/usb_gadget_sdp.c
index ba1f66a..808ed97 100644
--- a/cmd/usb_gadget_sdp.c
+++ b/cmd/usb_gadget_sdp.c
@@ -20,7 +20,7 @@ static int do_sdp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 	char *usb_controller = argv[1];
 	int controller_index = simple_strtoul(usb_controller, NULL, 0);
-	board_usb_init(controller_index, USB_INIT_DEVICE);
+	usb_gadget_initialize(controller_index);
 
 	g_dnl_clear_detach();
 	g_dnl_register("usb_dnl_sdp");
@@ -37,7 +37,7 @@ static int do_sdp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 exit:
 	g_dnl_unregister();
-	board_usb_cleanup(controller_index, USB_INIT_DEVICE);
+	usb_gadget_release(controller_index);
 
 	return ret;
 }
diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c
index 0d55114..753ae4f 100644
--- a/cmd/usb_mass_storage.c
+++ b/cmd/usb_mass_storage.c
@@ -160,7 +160,7 @@ static int do_usb_mass_storage(cmd_tbl_t *cmdtp, int flag,
 
 	controller_index = (unsigned int)(simple_strtoul(
 				usb_controller,	NULL, 0));
-	if (board_usb_init(controller_index, USB_INIT_DEVICE)) {
+	if (usb_gadget_initialize(controller_index)) {
 		pr_err("Couldn't init USB controller.\n");
 		rc = CMD_RET_FAILURE;
 		goto cleanup_ums_init;
@@ -231,7 +231,7 @@ static int do_usb_mass_storage(cmd_tbl_t *cmdtp, int flag,
 cleanup_register:
 	g_dnl_unregister();
 cleanup_board:
-	board_usb_cleanup(controller_index, USB_INIT_DEVICE);
+	usb_gadget_release(controller_index);
 cleanup_ums_init:
 	ums_fini();
 
diff --git a/common/dfu.c b/common/dfu.c
index 2620d32..44d1484 100644
--- a/common/dfu.c
+++ b/common/dfu.c
@@ -23,9 +23,9 @@ int run_usb_dnl_gadget(int usbctrl_index, char *usb_dnl_gadget)
 	bool dfu_reset = false;
 	int ret, i = 0;
 
-	ret = board_usb_init(usbctrl_index, USB_INIT_DEVICE);
+	ret = usb_gadget_initialize(usbctrl_index);
 	if (ret) {
-		pr_err("board usb init failed\n");
+		pr_err("usb_gadget_initialize failed\n");
 		return CMD_RET_FAILURE;
 	}
 	g_dnl_clear_detach();
@@ -84,7 +84,7 @@ int run_usb_dnl_gadget(int usbctrl_index, char *usb_dnl_gadget)
 	}
 exit:
 	g_dnl_unregister();
-	board_usb_cleanup(usbctrl_index, USB_INIT_DEVICE);
+	usb_gadget_release(usbctrl_index);
 
 	if (dfu_reset)
 		do_reset(NULL, 0, 0, NULL);
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 8ab9b9f..1c438c3 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -105,9 +105,6 @@ struct eth_dev {
 	struct usb_gadget	*gadget;
 	struct usb_request	*req;		/* for control responses */
 	struct usb_request	*stat_req;	/* for cdc & rndis status */
-#ifdef CONFIG_DM_USB
-	struct udevice		*usb_udev;
-#endif
 
 	u8			config;
 	struct usb_ep		*in_ep, *out_ep, *status_ep;
@@ -2341,40 +2338,17 @@ fail:
 }
 
 /*-------------------------------------------------------------------------*/
-
-#ifdef CONFIG_DM_USB
-int dm_usb_init(struct eth_dev *e_dev)
-{
-	struct udevice *dev = NULL;
-	int ret;
-
-	ret = uclass_first_device(UCLASS_USB_DEV_GENERIC, &dev);
-	if (!dev || ret) {
-		pr_err("No USB device found\n");
-		return -ENODEV;
-	}
-
-	e_dev->usb_udev = dev;
-
-	return ret;
-}
-#endif
-
 static int _usb_eth_init(struct ether_priv *priv)
 {
 	struct eth_dev *dev = &priv->ethdev;
 	struct usb_gadget *gadget;
 	unsigned long ts;
+	int ret;
 	unsigned long timeout = USB_CONNECT_TIMEOUT;
 
-#ifdef CONFIG_DM_USB
-	if (dm_usb_init(dev)) {
-		pr_err("USB ether not found\n");
-		return -ENODEV;
-	}
-#else
-	board_usb_init(0, USB_INIT_DEVICE);
-#endif
+	ret = usb_gadget_initialize(0);
+	if (ret)
+		return ret;
 
 	/* Configure default mac-addresses for the USB ethernet device */
 #ifdef CONFIG_USBNET_DEV_ADDR
@@ -2546,9 +2520,7 @@ void _usb_eth_halt(struct ether_priv *priv)
 	}
 
 	usb_gadget_unregister_driver(&priv->eth_driver);
-#ifndef CONFIG_DM_USB
-	board_usb_cleanup(0, USB_INIT_DEVICE);
-#endif
+	usb_gadget_release(0);
 }
 
 #ifndef CONFIG_DM_ETH
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index b824f13..40ca2d3 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -19,6 +19,7 @@
 #define __LINUX_USB_GADGET_H
 
 #include <errno.h>
+#include <usb.h>
 #include <linux/compat.h>
 #include <linux/list.h>
 
@@ -926,4 +927,13 @@ extern void usb_ep_autoconfig_reset(struct usb_gadget *);
 
 extern int usb_gadget_handle_interrupts(int index);
 
+static inline int usb_gadget_initialize(int index)
+{
+	return board_usb_init(index, USB_INIT_DEVICE);
+}
+
+static inline int usb_gadget_release(int index)
+{
+	return board_usb_cleanup(index, USB_INIT_DEVICE);
+}
 #endif	/* __LINUX_USB_GADGET_H */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 2/8] usb: introduce a separate config option for DM USB device
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 1/8] usb: gadget: Do not call board_usb_xxx() directly in USB gadget drivers Jean-Jacques Hiblot
@ 2018-09-25  9:03 ` Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 3/8] usb: udc: implement DM versions of usb_gadget_initialize()/_release()/_handle_interrupt() Jean-Jacques Hiblot
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-09-25  9:03 UTC (permalink / raw)
  To: u-boot

Using CONFIG_DM_USB for this purpose prevents using DM_USB for host and not
for device.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>

---

Changes in v3: None
Changes in v2:
- select DM_USB_DEV by default for zynqmp platforms

 arch/arm/Kconfig                | 2 ++
 drivers/usb/Kconfig             | 6 ++++++
 drivers/usb/dwc3/core.c         | 2 +-
 drivers/usb/dwc3/dwc3-generic.c | 4 +++-
 4 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0f8dd32..cc515e3 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -894,6 +894,7 @@ config ARCH_ZYNQMP_R5
 	select DM_SERIAL
 	select OF_CONTROL
 	imply CMD_DM
+	imply DM_USB_DEV
 
 config ARCH_ZYNQMP
 	bool "Xilinx ZynqMP based platform"
@@ -909,6 +910,7 @@ config ARCH_ZYNQMP
 	select SUPPORT_SPL
 	imply CMD_DM
 	imply FAT_WRITE
+	imply DM_USB_DEV
 
 config TEGRA
 	bool "NVIDIA Tegra"
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index 4fbe172..3587ba4 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -47,6 +47,12 @@ config DM_USB
 	  declared with the U_BOOT_USB_DEVICE() macro and will be
 	  automatically probed when found on the bus.
 
+config DM_USB_DEV
+	bool "Enable driver model for USB (Peripheral mode)"
+	depends on DM_USB
+	help
+	  Enable driver model for USB (Peripheral mode).
+
 source "drivers/usb/host/Kconfig"
 
 source "drivers/usb/dwc3/Kconfig"
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 1ab5cee..d5ee6d9 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -789,7 +789,7 @@ MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>");
 MODULE_LICENSE("GPL v2");
 MODULE_DESCRIPTION("DesignWare USB3 DRD Controller Driver");
 
-#ifdef CONFIG_DM_USB
+#ifdef CONFIG_DM_USB_DEV
 
 int dwc3_init(struct dwc3 *dwc)
 {
diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index ca63eac..2c1e696 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -21,7 +21,7 @@
 #include "gadget.h"
 #include "linux-compat.h"
 
-DECLARE_GLOBAL_DATA_PTR;
+#ifdef CONFIG_DM_USB_DEV
 
 int usb_gadget_handle_interrupts(int index)
 {
@@ -98,6 +98,8 @@ U_BOOT_DRIVER(dwc3_generic_peripheral) = {
 	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
 
+#endif
+
 static int dwc3_generic_bind(struct udevice *parent)
 {
 	const void *fdt = gd->fdt_blob;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 3/8] usb: udc: implement DM versions of usb_gadget_initialize()/_release()/_handle_interrupt()
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 1/8] usb: gadget: Do not call board_usb_xxx() directly in USB gadget drivers Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 2/8] usb: introduce a separate config option for DM USB device Jean-Jacques Hiblot
@ 2018-09-25  9:03 ` Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 4/8] dwc3_generic: do not probe the USB device driver when it's bound Jean-Jacques Hiblot
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-09-25  9:03 UTC (permalink / raw)
  To: u-boot

When DM_USB_DEV the platform code for the USB device must be replaced by
calls to a USB device driver.

usb_gadget_initialize() probes the USB device driver.
usb_gadget_release() removes the USB device driver.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
---

Changes in v3: None
Changes in v2: None

 drivers/usb/dwc3/dwc3-generic.c   | 14 ++-----------
 drivers/usb/gadget/udc/udc-core.c | 44 ++++++++++++++++++++++++++++++++++++++-
 include/linux/usb/gadget.h        |  8 +++++++
 3 files changed, 53 insertions(+), 13 deletions(-)

diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index 2c1e696..43e97be 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -23,19 +23,9 @@
 
 #ifdef CONFIG_DM_USB_DEV
 
-int usb_gadget_handle_interrupts(int index)
+int dm_usb_gadget_handle_interrupts(struct udevice *dev)
 {
-	struct dwc3 *priv;
-	struct udevice *dev;
-	int ret;
-
-	ret = uclass_first_device(UCLASS_USB_DEV_GENERIC, &dev);
-	if (!dev || ret) {
-		pr_err("No USB device found\n");
-		return -ENODEV;
-	}
-
-	priv = dev_get_priv(dev);
+	struct dwc3 *priv = dev_get_priv(dev);
 
 	dwc3_gadget_uboot_handle_interrupt(priv);
 
diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
index f5c30dd..42c9ea9 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -18,7 +18,8 @@
 #include <asm/cache.h>
 #include <asm/dma-mapping.h>
 #include <common.h>
-
+#include <dm.h>
+#include <dm/device-internal.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 
@@ -351,3 +352,44 @@ EXPORT_SYMBOL_GPL(usb_gadget_unregister_driver);
 MODULE_DESCRIPTION("UDC Framework");
 MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>");
 MODULE_LICENSE("GPL v2");
+
+#ifdef CONFIG_DM_USB_DEV
+#define MAX_UDC_DEVICES 4
+static struct udevice *dev_array[MAX_UDC_DEVICES];
+int usb_gadget_initialize(int index)
+{
+	int ret;
+	struct udevice *dev = NULL;
+
+	if (index < 0 || index >= ARRAY_SIZE(dev_array))
+		return -EINVAL;
+	if (dev_array[index])
+		return 0;
+	ret = uclass_get_device(UCLASS_USB_DEV_GENERIC, index, &dev);
+	if (!dev || ret) {
+		pr_err("No USB device found\n");
+		return -ENODEV;
+	}
+	dev_array[index] = dev;
+	return 0;
+}
+
+int usb_gadget_release(int index)
+{
+	int ret;
+
+	if (index < 0 || index >= ARRAY_SIZE(dev_array))
+		return -EINVAL;
+	ret = device_remove(dev_array[index], DM_REMOVE_NORMAL);
+	if (!ret)
+		dev_array[index] = NULL;
+	return ret;
+}
+
+int usb_gadget_handle_interrupts(int index)
+{
+	if (index < 0 || index >= ARRAY_SIZE(dev_array))
+		return -EINVAL;
+	return dm_usb_gadget_handle_interrupts(dev_array[index]);
+}
+#endif
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 40ca2d3..a094e31 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -927,6 +927,12 @@ extern void usb_ep_autoconfig_reset(struct usb_gadget *);
 
 extern int usb_gadget_handle_interrupts(int index);
 
+#ifdef CONFIG_DM_USB_DEV
+int usb_gadget_initialize(int index);
+int usb_gadget_release(int index);
+int dm_usb_gadget_handle_interrupts(struct udevice *dev);
+#else
+#include <usb.h>
 static inline int usb_gadget_initialize(int index)
 {
 	return board_usb_init(index, USB_INIT_DEVICE);
@@ -936,4 +942,6 @@ static inline int usb_gadget_release(int index)
 {
 	return board_usb_cleanup(index, USB_INIT_DEVICE);
 }
+#endif
+
 #endif	/* __LINUX_USB_GADGET_H */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 4/8] dwc3_generic: do not probe the USB device driver when it's bound
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
                   ` (2 preceding siblings ...)
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 3/8] usb: udc: implement DM versions of usb_gadget_initialize()/_release()/_handle_interrupt() Jean-Jacques Hiblot
@ 2018-09-25  9:03 ` Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 5/8] dwc3: move phy operation to core.c Jean-Jacques Hiblot
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-09-25  9:03 UTC (permalink / raw)
  To: u-boot

The driver will be probed when usb_gadget_initialize() is called.

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

Changes in v3: None
Changes in v2: None

 drivers/usb/dwc3/dwc3-generic.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index 43e97be..3ec0c0e 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -71,21 +71,14 @@ static int dwc3_generic_peripheral_ofdata_to_platdata(struct udevice *dev)
 	return 0;
 }
 
-static int dwc3_generic_peripheral_bind(struct udevice *dev)
-{
-	return device_probe(dev);
-}
-
 U_BOOT_DRIVER(dwc3_generic_peripheral) = {
 	.name	= "dwc3-generic-peripheral",
 	.id	= UCLASS_USB_DEV_GENERIC,
 	.ofdata_to_platdata = dwc3_generic_peripheral_ofdata_to_platdata,
 	.probe = dwc3_generic_peripheral_probe,
 	.remove = dwc3_generic_peripheral_remove,
-	.bind = dwc3_generic_peripheral_bind,
 	.platdata_auto_alloc_size = sizeof(struct usb_platdata),
 	.priv_auto_alloc_size = sizeof(struct dwc3),
-	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
 };
 
 #endif
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 5/8] dwc3: move phy operation to core.c
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
                   ` (3 preceding siblings ...)
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 4/8] dwc3_generic: do not probe the USB device driver when it's bound Jean-Jacques Hiblot
@ 2018-09-25  9:03 ` Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 6/8] configs: evb-rk3328: Enable CONFIG_USB_DWC3 Jean-Jacques Hiblot
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-09-25  9:03 UTC (permalink / raw)
  To: u-boot

Those operations can be used for peripheral operation as well as host
operation.

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

---

Changes in v3:
- fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This was
  visible only when the device is removed.
- Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
  This fixes all build issues but one (evb-rk3328).

Changes in v2: None

 drivers/usb/dwc3/core.c      | 89 ++++++++++++++++++++++++++++++++++++++++-
 drivers/usb/dwc3/ep0.c       |  1 -
 drivers/usb/host/xhci-dwc3.c | 95 ++++----------------------------------------
 include/dwc3-uboot.h         | 19 +++++++++
 4 files changed, 113 insertions(+), 91 deletions(-)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index d5ee6d9..325fe8c 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -19,7 +19,7 @@
 #include <asm/dma-mapping.h>
 #include <linux/ioport.h>
 #include <dm.h>
-
+#include <generic-phy.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 
@@ -789,8 +789,93 @@ MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>");
 MODULE_LICENSE("GPL v2");
 MODULE_DESCRIPTION("DesignWare USB3 DRD Controller Driver");
 
-#ifdef CONFIG_DM_USB_DEV
+#if CONFIG_IS_ENABLED(PHY) && defined(CONFIG_DM_USB)
+int dwc3_setup_phy(struct udevice *dev, struct phy **array, int *num_phys)
+{
+	int i, ret, count;
+	struct phy *usb_phys;
+
+	/* Return if no phy declared */
+	if (!dev_read_prop(dev, "phys", NULL))
+		return 0;
+
+	count = dev_count_phandle_with_args(dev, "phys", "#phy-cells");
+	if (count <= 0)
+		return count;
+
+	usb_phys = devm_kcalloc(dev, count, sizeof(struct phy),
+				GFP_KERNEL);
+	if (!usb_phys)
+		return -ENOMEM;
+
+	for (i = 0; i < count; i++) {
+		ret = generic_phy_get_by_index(dev, i, &usb_phys[i]);
+		if (ret && ret != -ENOENT) {
+			pr_err("Failed to get USB PHY%d for %s\n",
+			       i, dev->name);
+			return ret;
+		}
+	}
+
+	for (i = 0; i < count; i++) {
+		ret = generic_phy_init(&usb_phys[i]);
+		if (ret) {
+			pr_err("Can't init USB PHY%d for %s\n",
+			       i, dev->name);
+			goto phys_init_err;
+		}
+	}
+
+	for (i = 0; i < count; i++) {
+		ret = generic_phy_power_on(&usb_phys[i]);
+		if (ret) {
+			pr_err("Can't power USB PHY%d for %s\n",
+			       i, dev->name);
+			goto phys_poweron_err;
+		}
+	}
+
+	*array = usb_phys;
+	*num_phys =  count;
+	return 0;
 
+phys_poweron_err:
+	for (i = count - 1; i >= 0; i--)
+		generic_phy_power_off(&usb_phys[i]);
+
+	for (i = 0; i < count; i++)
+		generic_phy_exit(&usb_phys[i]);
+
+	return ret;
+
+phys_init_err:
+	for (; i >= 0; i--)
+		generic_phy_exit(&usb_phys[i]);
+
+	return ret;
+}
+
+int dwc3_shutdown_phy(struct udevice *dev, struct phy *usb_phys, int num_phys)
+{
+	int i, ret;
+
+	for (i = 0; i < num_phys; i++) {
+		if (!generic_phy_valid(&usb_phys[i]))
+			continue;
+
+		ret = generic_phy_power_off(&usb_phys[i]);
+		ret |= generic_phy_exit(&usb_phys[i]);
+		if (ret) {
+			pr_err("Can't shutdown USB PHY%d for %s\n",
+			       i, dev->name);
+		}
+	}
+
+	return 0;
+}
+#endif
+
+#ifdef CONFIG_DM_USB_DEV
 int dwc3_init(struct dwc3 *dwc)
 {
 	int ret;
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 4f68887..433e5f6 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -19,7 +19,6 @@
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/composite.h>
-
 #include "core.h"
 #include "gadget.h"
 #include "io.h"
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index 80754d7..9bc38e2 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -12,6 +12,7 @@
 #include <fdtdec.h>
 #include <generic-phy.h>
 #include <usb.h>
+#include <dwc3-uboot.h>
 
 #include "xhci.h"
 #include <asm/io.h>
@@ -110,105 +111,21 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
 }
 
 #ifdef CONFIG_DM_USB
-static int xhci_dwc3_setup_phy(struct udevice *dev)
-{
-	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
-	int i, ret, count;
-
-	/* Return if no phy declared */
-	if (!dev_read_prop(dev, "phys", NULL))
-		return 0;
-
-	count = dev_count_phandle_with_args(dev, "phys", "#phy-cells");
-	if (count <= 0)
-		return count;
-
-	plat->usb_phys = devm_kcalloc(dev, count, sizeof(struct phy),
-				      GFP_KERNEL);
-	if (!plat->usb_phys)
-		return -ENOMEM;
-
-	for (i = 0; i < count; i++) {
-		ret = generic_phy_get_by_index(dev, i, &plat->usb_phys[i]);
-		if (ret && ret != -ENOENT) {
-			pr_err("Failed to get USB PHY%d for %s\n",
-			       i, dev->name);
-			return ret;
-		}
-
-		++plat->num_phys;
-	}
-
-	for (i = 0; i < plat->num_phys; i++) {
-		ret = generic_phy_init(&plat->usb_phys[i]);
-		if (ret) {
-			pr_err("Can't init USB PHY%d for %s\n",
-			       i, dev->name);
-			goto phys_init_err;
-		}
-	}
-
-	for (i = 0; i < plat->num_phys; i++) {
-		ret = generic_phy_power_on(&plat->usb_phys[i]);
-		if (ret) {
-			pr_err("Can't power USB PHY%d for %s\n",
-			       i, dev->name);
-			goto phys_poweron_err;
-		}
-	}
-
-	return 0;
-
-phys_poweron_err:
-	for (; i >= 0; i--)
-		generic_phy_power_off(&plat->usb_phys[i]);
-
-	for (i = 0; i < plat->num_phys; i++)
-		generic_phy_exit(&plat->usb_phys[i]);
-
-	return ret;
-
-phys_init_err:
-	for (; i >= 0; i--)
-		generic_phy_exit(&plat->usb_phys[i]);
-
-	return ret;
-}
-
-static int xhci_dwc3_shutdown_phy(struct udevice *dev)
-{
-	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
-	int i, ret;
-
-	for (i = 0; i < plat->num_phys; i++) {
-		if (!generic_phy_valid(&plat->usb_phys[i]))
-			continue;
-
-		ret = generic_phy_power_off(&plat->usb_phys[i]);
-		ret |= generic_phy_exit(&plat->usb_phys[i]);
-		if (ret) {
-			pr_err("Can't shutdown USB PHY%d for %s\n",
-			       i, dev->name);
-		}
-	}
-
-	return 0;
-}
-
 static int xhci_dwc3_probe(struct udevice *dev)
 {
 	struct xhci_hcor *hcor;
 	struct xhci_hccr *hccr;
 	struct dwc3 *dwc3_reg;
 	enum usb_dr_mode dr_mode;
+	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
 	int ret;
 
 	hccr = (struct xhci_hccr *)((uintptr_t)dev_read_addr(dev));
 	hcor = (struct xhci_hcor *)((uintptr_t)hccr +
 			HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
 
-	ret = xhci_dwc3_setup_phy(dev);
-	if (ret)
+	ret = dwc3_setup_phy(dev, &plat->usb_phys, &plat->num_phys);
+	if (ret && (ret != -ENOTSUPP))
 		return ret;
 
 	dwc3_reg = (struct dwc3 *)((char *)(hccr) + DWC3_REG_OFFSET);
@@ -227,7 +144,9 @@ static int xhci_dwc3_probe(struct udevice *dev)
 
 static int xhci_dwc3_remove(struct udevice *dev)
 {
-	xhci_dwc3_shutdown_phy(dev);
+	struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
+
+	dwc3_shutdown_phy(dev, plat->usb_phys, plat->num_phys);
 
 	return xhci_deregister(dev);
 }
diff --git a/include/dwc3-uboot.h b/include/dwc3-uboot.h
index 228ab3b..50a8c70 100644
--- a/include/dwc3-uboot.h
+++ b/include/dwc3-uboot.h
@@ -38,4 +38,23 @@ struct dwc3_device {
 int dwc3_uboot_init(struct dwc3_device *dev);
 void dwc3_uboot_exit(int index);
 void dwc3_uboot_handle_interrupt(int index);
+
+struct phy;
+#if CONFIG_IS_ENABLED(PHY) && defined(CONFIG_DM_USB)
+int dwc3_setup_phy(struct udevice *dev, struct phy **array, int *num_phys);
+int dwc3_shutdown_phy(struct udevice *dev, struct phy *usb_phys, int num_phys);
+#else
+static inline int dwc3_setup_phy(struct udevice *dev, struct phy **array,
+				 int *num_phys)
+{
+	return -ENOTSUPP;
+}
+
+static inline int dwc3_shutdown_phy(struct udevice *dev, struct phy *usb_phys,
+				    int num_phys)
+{
+	return -ENOTSUPP;
+}
+#endif
+
 #endif /* __DWC3_UBOOT_H_ */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 6/8] configs: evb-rk3328: Enable CONFIG_USB_DWC3
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
                   ` (4 preceding siblings ...)
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 5/8] dwc3: move phy operation to core.c Jean-Jacques Hiblot
@ 2018-09-25  9:03 ` Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 7/8] dwc3-generic: Handle the PHYs, the clocks and the reset lines Jean-Jacques Hiblot
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-09-25  9:03 UTC (permalink / raw)
  To: u-boot

This is now required because the PHY operations used by xhci-dwc3 are part
of the dwc3 core.

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

---

Changes in v3:
- Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This has
  little impact on the footprint and should not break the runtime as the
  xhci-rockchip driver has its own probe function.
  Nevertheless this was !!! NOT TESTED !!! by lack of hw

Changes in v2: None

 configs/evb-rk3328_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/evb-rk3328_defconfig b/configs/evb-rk3328_defconfig
index 5b3bb8e..f022163 100644
--- a/configs/evb-rk3328_defconfig
+++ b/configs/evb-rk3328_defconfig
@@ -49,6 +49,7 @@ CONFIG_BAUDRATE=1500000
 CONFIG_DEBUG_UART_SHIFT=2
 CONFIG_SYSRESET=y
 CONFIG_USB=y
+CONFIG_USB_DWC3=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
 CONFIG_USB_EHCI_HCD=y
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 7/8] dwc3-generic: Handle the PHYs, the clocks and the reset lines
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
                   ` (5 preceding siblings ...)
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 6/8] configs: evb-rk3328: Enable CONFIG_USB_DWC3 Jean-Jacques Hiblot
@ 2018-09-25  9:03 ` Jean-Jacques Hiblot
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 8/8] dwc3-generic: Add select_dr_mode operation Jean-Jacques Hiblot
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-09-25  9:03 UTC (permalink / raw)
  To: u-boot

This make the driver more generic. At this point this driver can replace
the dwc3-of-simple implementation.
Make the description in the Kconfig more generic too.

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

Changes in v3: None
Changes in v2: None

 drivers/usb/dwc3/Kconfig        |   7 +-
 drivers/usb/dwc3/dwc3-generic.c | 160 +++++++++++++++++++++++++++++++++-------
 2 files changed, 137 insertions(+), 30 deletions(-)

diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
index 943b763..bbd8105 100644
--- a/drivers/usb/dwc3/Kconfig
+++ b/drivers/usb/dwc3/Kconfig
@@ -38,10 +38,11 @@ config USB_DWC3_OMAP
 	  Say 'Y' here if you have one such device
 
 config USB_DWC3_GENERIC
-	bool "Xilinx ZynqMP and similar Platforms"
-	depends on DM_USB && USB_DWC3
+	bool "Generic implementation of a DWC3 wrapper (aka dwc3 glue)"
+	depends on DM_USB && USB_DWC3 && MISC
 	help
-	  Some platforms can reuse this DWC3 generic implementation.
+	  Select this for Xilinx ZynqMP and similar Platforms.
+	  This wrapper supports Host and Peripheral operation modes.
 
 config USB_DWC3_UNIPHIER
 	bool "DesignWare USB3 Host Support on UniPhier Platforms"
diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index 3ec0c0e..2c27dbc 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -11,59 +11,86 @@
 #include <dm.h>
 #include <dm/device-internal.h>
 #include <dm/lists.h>
-#include <linux/usb/otg.h>
-#include <linux/compat.h>
+#include <dwc3-uboot.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <malloc.h>
 #include <usb.h>
 #include "core.h"
 #include "gadget.h"
-#include "linux-compat.h"
+#include <reset.h>
+#include <clk.h>
 
 #ifdef CONFIG_DM_USB_DEV
 
+struct dwc3_generic_peripheral {
+	struct dwc3 dwc3;
+	struct phy *phys;
+	int num_phys;
+	fdt_addr_t base;
+};
+
 int dm_usb_gadget_handle_interrupts(struct udevice *dev)
 {
-	struct dwc3 *priv = dev_get_priv(dev);
+	struct dwc3_generic_peripheral *priv = dev_get_priv(dev);
+	struct dwc3 *dwc3 = &priv->dwc3;
 
-	dwc3_gadget_uboot_handle_interrupt(priv);
+	dwc3_gadget_uboot_handle_interrupt(dwc3);
 
 	return 0;
 }
 
 static int dwc3_generic_peripheral_probe(struct udevice *dev)
 {
-	struct dwc3 *priv = dev_get_priv(dev);
+	int rc;
+	struct dwc3_generic_peripheral *priv = dev_get_priv(dev);
+	struct dwc3 *dwc3 = &priv->dwc3;
+
+	rc = dwc3_setup_phy(dev, &priv->phys, &priv->num_phys);
+	if (rc)
+		return rc;
+
+	dwc3->regs = map_physmem(priv->base, DWC3_OTG_REGS_END, MAP_NOCACHE);
+	dwc3->regs += DWC3_GLOBALS_REGS_START;
+	dwc3->dev = dev;
+
+	rc =  dwc3_init(dwc3);
+	if (rc) {
+		unmap_physmem(dwc3->regs, MAP_NOCACHE);
+		return rc;
+	}
 
-	return dwc3_init(priv);
+	return 0;
 }
 
 static int dwc3_generic_peripheral_remove(struct udevice *dev)
 {
-	struct dwc3 *priv = dev_get_priv(dev);
+	struct dwc3_generic_peripheral *priv = dev_get_priv(dev);
+	struct dwc3 *dwc3 = &priv->dwc3;
 
-	dwc3_remove(priv);
+	dwc3_remove(dwc3);
+	dwc3_shutdown_phy(dev, priv->phys, priv->num_phys);
+	unmap_physmem(dwc3->regs, MAP_NOCACHE);
 
 	return 0;
 }
 
 static int dwc3_generic_peripheral_ofdata_to_platdata(struct udevice *dev)
 {
-	struct dwc3 *priv = dev_get_priv(dev);
+	struct dwc3_generic_peripheral *priv = dev_get_priv(dev);
+	struct dwc3 *dwc3 = &priv->dwc3;
 	int node = dev_of_offset(dev);
 
-	priv->regs = (void *)devfdt_get_addr(dev);
-	priv->regs += DWC3_GLOBALS_REGS_START;
+	priv->base = devfdt_get_addr(dev);
 
-	priv->maximum_speed = usb_get_maximum_speed(node);
-	if (priv->maximum_speed == USB_SPEED_UNKNOWN) {
+	dwc3->maximum_speed = usb_get_maximum_speed(node);
+	if (dwc3->maximum_speed == USB_SPEED_UNKNOWN) {
 		pr_err("Invalid usb maximum speed\n");
 		return -ENODEV;
 	}
 
-	priv->dr_mode = usb_get_dr_mode(node);
-	if (priv->dr_mode == USB_DR_MODE_UNKNOWN) {
+	dwc3->dr_mode = usb_get_dr_mode(node);
+	if (dwc3->dr_mode == USB_DR_MODE_UNKNOWN) {
 		pr_err("Invalid usb mode setup\n");
 		return -ENODEV;
 	}
@@ -77,13 +104,16 @@ U_BOOT_DRIVER(dwc3_generic_peripheral) = {
 	.ofdata_to_platdata = dwc3_generic_peripheral_ofdata_to_platdata,
 	.probe = dwc3_generic_peripheral_probe,
 	.remove = dwc3_generic_peripheral_remove,
-	.platdata_auto_alloc_size = sizeof(struct usb_platdata),
-	.priv_auto_alloc_size = sizeof(struct dwc3),
+	.priv_auto_alloc_size = sizeof(struct dwc3_generic_peripheral),
 };
-
 #endif
 
-static int dwc3_generic_bind(struct udevice *parent)
+struct dwc3_glue_data {
+	struct clk_bulk		clks;
+	struct reset_ctl_bulk	resets;
+};
+
+static int dwc3_glue_bind(struct udevice *parent)
 {
 	const void *fdt = gd->fdt_blob;
 	int node;
@@ -94,29 +124,32 @@ static int dwc3_generic_bind(struct udevice *parent)
 		const char *name = fdt_get_name(fdt, node, NULL);
 		enum usb_dr_mode dr_mode;
 		struct udevice *dev;
-		const char *driver;
+		const char *driver = NULL;
 
 		debug("%s: subnode name: %s\n", __func__, name);
-		if (strncmp(name, "dwc3@", 4))
-			continue;
 
 		dr_mode = usb_get_dr_mode(node);
 
 		switch (dr_mode) {
 		case USB_DR_MODE_PERIPHERAL:
 		case USB_DR_MODE_OTG:
+#ifdef CONFIG_DM_USB_DEV
 			debug("%s: dr_mode: OTG or Peripheral\n", __func__);
 			driver = "dwc3-generic-peripheral";
+#endif
 			break;
 		case USB_DR_MODE_HOST:
 			debug("%s: dr_mode: HOST\n", __func__);
-			driver = "dwc3-generic-host";
+			driver = "xhci-dwc3";
 			break;
 		default:
 			debug("%s: unsupported dr_mode\n", __func__);
 			return -ENODEV;
 		};
 
+		if (!driver)
+			continue;
+
 		ret = device_bind_driver_to_node(parent, driver, name,
 						 offset_to_ofnode(node), &dev);
 		if (ret) {
@@ -129,7 +162,76 @@ static int dwc3_generic_bind(struct udevice *parent)
 	return 0;
 }
 
-static const struct udevice_id dwc3_generic_ids[] = {
+static int dwc3_glue_reset_init(struct udevice *dev,
+				struct dwc3_glue_data *glue)
+{
+	int ret;
+
+	ret = reset_get_bulk(dev, &glue->resets);
+	if (ret == -ENOTSUPP)
+		return 0;
+	else if (ret)
+		return ret;
+
+	ret = reset_deassert_bulk(&glue->resets);
+	if (ret) {
+		reset_release_bulk(&glue->resets);
+		return ret;
+	}
+
+	return 0;
+}
+
+static int dwc3_glue_clk_init(struct udevice *dev,
+			      struct dwc3_glue_data *glue)
+{
+	int ret;
+
+	ret = clk_get_bulk(dev, &glue->clks);
+	if (ret == -ENOSYS)
+		return 0;
+	if (ret)
+		return ret;
+
+#if CONFIG_IS_ENABLED(CLK)
+	ret = clk_enable_bulk(&glue->clks);
+	if (ret) {
+		clk_release_bulk(&glue->clks);
+		return ret;
+	}
+#endif
+
+	return 0;
+}
+
+static int dwc3_glue_probe(struct udevice *dev)
+{
+	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+	int ret;
+
+	ret = dwc3_glue_clk_init(dev, glue);
+	if (ret)
+		return ret;
+
+	ret = dwc3_glue_reset_init(dev, glue);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+static int dwc3_glue_remove(struct udevice *dev)
+{
+	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+
+	reset_release_bulk(&glue->resets);
+
+	clk_release_bulk(&glue->clks);
+
+	return dm_scan_fdt_dev(dev);
+}
+
+static const struct udevice_id dwc3_glue_ids[] = {
 	{ .compatible = "xlnx,zynqmp-dwc3" },
 	{ }
 };
@@ -137,6 +239,10 @@ static const struct udevice_id dwc3_generic_ids[] = {
 U_BOOT_DRIVER(dwc3_generic_wrapper) = {
 	.name	= "dwc3-generic-wrapper",
 	.id	= UCLASS_MISC,
-	.of_match = dwc3_generic_ids,
-	.bind = dwc3_generic_bind,
+	.of_match = dwc3_glue_ids,
+	.bind = dwc3_glue_bind,
+	.probe = dwc3_glue_probe,
+	.remove = dwc3_glue_remove,
+	.platdata_auto_alloc_size = sizeof(struct dwc3_glue_data),
+
 };
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 8/8] dwc3-generic: Add select_dr_mode operation
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
                   ` (6 preceding siblings ...)
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 7/8] dwc3-generic: Handle the PHYs, the clocks and the reset lines Jean-Jacques Hiblot
@ 2018-09-25  9:03 ` Jean-Jacques Hiblot
  2018-09-25 11:28 ` [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Lukasz Majewski
  2018-10-09 14:29 ` Loic Devulder
  9 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-09-25  9:03 UTC (permalink / raw)
  To: u-boot

The select_dr_mode operation is executed when the glue driver is probed.
The role of this optional function is to configure the operating mode
of the controller at the glue level.

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

---

Changes in v3: None
Changes in v2: None

 drivers/usb/dwc3/dwc3-generic.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index 2c27dbc..169188c 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -8,6 +8,7 @@
  */
 
 #include <common.h>
+#include <asm-generic/io.h>
 #include <dm.h>
 #include <dm/device-internal.h>
 #include <dm/lists.h>
@@ -111,6 +112,12 @@ U_BOOT_DRIVER(dwc3_generic_peripheral) = {
 struct dwc3_glue_data {
 	struct clk_bulk		clks;
 	struct reset_ctl_bulk	resets;
+	fdt_addr_t regs;
+};
+
+struct dwc3_glue_ops {
+	void (*select_dr_mode)(struct udevice *dev, int index,
+			       enum usb_dr_mode mode);
 };
 
 static int dwc3_glue_bind(struct udevice *parent)
@@ -206,9 +213,14 @@ static int dwc3_glue_clk_init(struct udevice *dev,
 
 static int dwc3_glue_probe(struct udevice *dev)
 {
+	struct dwc3_glue_ops *ops = (struct dwc3_glue_ops *)dev_get_driver_data(dev);
 	struct dwc3_glue_data *glue = dev_get_platdata(dev);
+	struct udevice *child = NULL;
+	int index = 0;
 	int ret;
 
+	glue->regs = dev_read_addr(dev);
+
 	ret = dwc3_glue_clk_init(dev, glue);
 	if (ret)
 		return ret;
@@ -217,6 +229,20 @@ static int dwc3_glue_probe(struct udevice *dev)
 	if (ret)
 		return ret;
 
+	ret = device_find_first_child(dev, &child);
+	if (ret)
+		return ret;
+
+	while (child) {
+		enum usb_dr_mode dr_mode;
+
+		dr_mode = usb_get_dr_mode(dev_of_offset(child));
+		device_find_next_child(&child);
+		if (ops && ops->select_dr_mode)
+			ops->select_dr_mode(dev, index, dr_mode);
+		index++;
+	}
+
 	return 0;
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
                   ` (7 preceding siblings ...)
  2018-09-25  9:03 ` [U-Boot] [PATCH v3 8/8] dwc3-generic: Add select_dr_mode operation Jean-Jacques Hiblot
@ 2018-09-25 11:28 ` Lukasz Majewski
  2018-10-01 12:51   ` Lukasz Majewski
  2018-10-09 14:29 ` Loic Devulder
  9 siblings, 1 reply; 25+ messages in thread
From: Lukasz Majewski @ 2018-09-25 11:28 UTC (permalink / raw)
  To: u-boot

Dear All,

> This series aims at bringing improvements to the dwc3_generic driver
> so that it can be used by most of the platforms using the dwc3
> controller.
> 
> I tested this on with DRA7 and AM57x platforms for both Peripheral
> and Host operations. The code to enable DM USB host & dev support for
> those platforms will be submitted in a separate series.
> 
> Michal Simek has tested this series:
> " I have tested it on zcu100 with usb stick, usb to ethernet
> converter and also dfu.
> Tested-by: Michal Simek <michal.simek@xilinx.com>"
> 
> Enhancements:
> - use separate Kconfig option for DM USB Periphal and DM USB Host.
> This allow platforms to keep their non-DM USB peripheral code and use
> the DM USB host.
> - fixes the bind/probe confusion in dwc3_generic. The probe is done
> when the USB device is first needed.
> - handles PHYs when in the peripheral mode. The code to handle the
> PHYs is shared with the host side
> - handles clock and reset
> - bind host controller to the more generic driver 'xhci-dwc3'
> 
> 
> Changes in v3:
> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This was
>   visible only when the device is removed.
> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
>   This fixes all build issues but one (evb-rk3328).
> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This
> has little impact on the footprint and should not break the runtime
> as the xhci-rockchip driver has its own probe function.
>   Nevertheless this was !!! NOT TESTED !!! by lack of hw

Can somebody test this patch set on rk3328 and provide Tested-by tag?

> 
> Changes in v2:
> - Updated commit log
> - Fixed typo in thordown.c
> - select DM_USB_DEV by default for zynqmp platforms
> 
> Jean-Jacques Hiblot (8):
>   usb: gadget: Do not call board_usb_xxx() directly in USB gadget
>     drivers
>   usb: introduce a separate config option for DM USB device
>   usb: udc: implement DM versions of
>     usb_gadget_initialize()/_release()/_handle_interrupt()
>   dwc3_generic: do not probe the USB device driver when it's bound
>   dwc3: move phy operation to core.c
>   configs: evb-rk3328: Enable CONFIG_USB_DWC3
>   dwc3-generic: Handle the PHYs, the clocks and the reset lines
>   dwc3-generic: Add select_dr_mode operation
> 
>  arch/arm/Kconfig                  |   2 +
>  cmd/fastboot.c                    |   4 +-
>  cmd/rockusb.c                     |   4 +-
>  cmd/thordown.c                    |   4 +-
>  cmd/usb_gadget_sdp.c              |   4 +-
>  cmd/usb_mass_storage.c            |   4 +-
>  common/dfu.c                      |   6 +-
>  configs/evb-rk3328_defconfig      |   1 +
>  drivers/usb/Kconfig               |   6 ++
>  drivers/usb/dwc3/Kconfig          |   7 +-
>  drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
>  drivers/usb/dwc3/dwc3-generic.c   | 207
> +++++++++++++++++++++++++++++---------
> drivers/usb/dwc3/ep0.c            |   1 -
> drivers/usb/gadget/ether.c        |  38 +------
> drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
> drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
> include/dwc3-uboot.h              |  19 ++++
> include/linux/usb/gadget.h        |  18 ++++ 18 files changed, 367
> insertions(+), 186 deletions(-)
> 




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180925/79b10720/attachment.sig>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-09-25 11:28 ` [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Lukasz Majewski
@ 2018-10-01 12:51   ` Lukasz Majewski
  2018-10-01 13:26     ` Philipp Tomsich
  0 siblings, 1 reply; 25+ messages in thread
From: Lukasz Majewski @ 2018-10-01 12:51 UTC (permalink / raw)
  To: u-boot

On Tue, 25 Sep 2018 13:28:14 +0200
Lukasz Majewski <lukma@denx.de> wrote:

> Dear All,
> 
> > This series aims at bringing improvements to the dwc3_generic driver
> > so that it can be used by most of the platforms using the dwc3
> > controller.
> > 
> > I tested this on with DRA7 and AM57x platforms for both Peripheral
> > and Host operations. The code to enable DM USB host & dev support
> > for those platforms will be submitted in a separate series.
> > 
> > Michal Simek has tested this series:
> > " I have tested it on zcu100 with usb stick, usb to ethernet
> > converter and also dfu.
> > Tested-by: Michal Simek <michal.simek@xilinx.com>"
> > 
> > Enhancements:
> > - use separate Kconfig option for DM USB Periphal and DM USB Host.
> > This allow platforms to keep their non-DM USB peripheral code and
> > use the DM USB host.
> > - fixes the bind/probe confusion in dwc3_generic. The probe is done
> > when the USB device is first needed.
> > - handles PHYs when in the peripheral mode. The code to handle the
> > PHYs is shared with the host side
> > - handles clock and reset
> > - bind host controller to the more generic driver 'xhci-dwc3'
> > 
> > 
> > Changes in v3:
> > - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This
> > was visible only when the device is removed.
> > - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
> >   This fixes all build issues but one (evb-rk3328).
> > - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This
> > has little impact on the footprint and should not break the runtime
> > as the xhci-rockchip driver has its own probe function.
> >   Nevertheless this was !!! NOT TESTED !!! by lack of hw  
> 
> Can somebody test this patch set on rk3328 and provide Tested-by tag?

Anyone could test this patch series?

Thanks in advance :-)

> 
> > 
> > Changes in v2:
> > - Updated commit log
> > - Fixed typo in thordown.c
> > - select DM_USB_DEV by default for zynqmp platforms
> > 
> > Jean-Jacques Hiblot (8):
> >   usb: gadget: Do not call board_usb_xxx() directly in USB gadget
> >     drivers
> >   usb: introduce a separate config option for DM USB device
> >   usb: udc: implement DM versions of
> >     usb_gadget_initialize()/_release()/_handle_interrupt()
> >   dwc3_generic: do not probe the USB device driver when it's bound
> >   dwc3: move phy operation to core.c
> >   configs: evb-rk3328: Enable CONFIG_USB_DWC3
> >   dwc3-generic: Handle the PHYs, the clocks and the reset lines
> >   dwc3-generic: Add select_dr_mode operation
> > 
> >  arch/arm/Kconfig                  |   2 +
> >  cmd/fastboot.c                    |   4 +-
> >  cmd/rockusb.c                     |   4 +-
> >  cmd/thordown.c                    |   4 +-
> >  cmd/usb_gadget_sdp.c              |   4 +-
> >  cmd/usb_mass_storage.c            |   4 +-
> >  common/dfu.c                      |   6 +-
> >  configs/evb-rk3328_defconfig      |   1 +
> >  drivers/usb/Kconfig               |   6 ++
> >  drivers/usb/dwc3/Kconfig          |   7 +-
> >  drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
> >  drivers/usb/dwc3/dwc3-generic.c   | 207
> > +++++++++++++++++++++++++++++---------
> > drivers/usb/dwc3/ep0.c            |   1 -
> > drivers/usb/gadget/ether.c        |  38 +------
> > drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
> > drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
> > include/dwc3-uboot.h              |  19 ++++
> > include/linux/usb/gadget.h        |  18 ++++ 18 files changed, 367
> > insertions(+), 186 deletions(-)
> >   
> 
> 
> 
> 
> Best regards,
> 
> Lukasz Majewski
> 
> --
> 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181001/45474b43/attachment.sig>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-10-01 12:51   ` Lukasz Majewski
@ 2018-10-01 13:26     ` Philipp Tomsich
  2018-10-08  2:07       ` Kever Yang
  0 siblings, 1 reply; 25+ messages in thread
From: Philipp Tomsich @ 2018-10-01 13:26 UTC (permalink / raw)
  To: u-boot

Kever,

Could you test this?
I assume you have the board, as the evb-rk3328 has you listed as a maintainer...

Thanks,
Philipp.

> On 01.10.2018, at 14:51, Lukasz Majewski <lukma@denx.de> wrote:
> 
> On Tue, 25 Sep 2018 13:28:14 +0200
> Lukasz Majewski <lukma at denx.de <mailto:lukma@denx.de>> wrote:
> 
>> Dear All,
>> 
>>> This series aims at bringing improvements to the dwc3_generic driver
>>> so that it can be used by most of the platforms using the dwc3
>>> controller.
>>> 
>>> I tested this on with DRA7 and AM57x platforms for both Peripheral
>>> and Host operations. The code to enable DM USB host & dev support
>>> for those platforms will be submitted in a separate series.
>>> 
>>> Michal Simek has tested this series:
>>> " I have tested it on zcu100 with usb stick, usb to ethernet
>>> converter and also dfu.
>>> Tested-by: Michal Simek <michal.simek@xilinx.com>"
>>> 
>>> Enhancements:
>>> - use separate Kconfig option for DM USB Periphal and DM USB Host.
>>> This allow platforms to keep their non-DM USB peripheral code and
>>> use the DM USB host.
>>> - fixes the bind/probe confusion in dwc3_generic. The probe is done
>>> when the USB device is first needed.
>>> - handles PHYs when in the peripheral mode. The code to handle the
>>> PHYs is shared with the host side
>>> - handles clock and reset
>>> - bind host controller to the more generic driver 'xhci-dwc3'
>>> 
>>> 
>>> Changes in v3:
>>> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This
>>> was visible only when the device is removed.
>>> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
>>>  This fixes all build issues but one (evb-rk3328).
>>> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This
>>> has little impact on the footprint and should not break the runtime
>>> as the xhci-rockchip driver has its own probe function.
>>>  Nevertheless this was !!! NOT TESTED !!! by lack of hw  
>> 
>> Can somebody test this patch set on rk3328 and provide Tested-by tag?
> 
> Anyone could test this patch series?
> 
> Thanks in advance :-)
> 
>> 
>>> 
>>> Changes in v2:
>>> - Updated commit log
>>> - Fixed typo in thordown.c
>>> - select DM_USB_DEV by default for zynqmp platforms
>>> 
>>> Jean-Jacques Hiblot (8):
>>>  usb: gadget: Do not call board_usb_xxx() directly in USB gadget
>>>    drivers
>>>  usb: introduce a separate config option for DM USB device
>>>  usb: udc: implement DM versions of
>>>    usb_gadget_initialize()/_release()/_handle_interrupt()
>>>  dwc3_generic: do not probe the USB device driver when it's bound
>>>  dwc3: move phy operation to core.c
>>>  configs: evb-rk3328: Enable CONFIG_USB_DWC3
>>>  dwc3-generic: Handle the PHYs, the clocks and the reset lines
>>>  dwc3-generic: Add select_dr_mode operation
>>> 
>>> arch/arm/Kconfig                  |   2 +
>>> cmd/fastboot.c                    |   4 +-
>>> cmd/rockusb.c                     |   4 +-
>>> cmd/thordown.c                    |   4 +-
>>> cmd/usb_gadget_sdp.c              |   4 +-
>>> cmd/usb_mass_storage.c            |   4 +-
>>> common/dfu.c                      |   6 +-
>>> configs/evb-rk3328_defconfig      |   1 +
>>> drivers/usb/Kconfig               |   6 ++
>>> drivers/usb/dwc3/Kconfig          |   7 +-
>>> drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
>>> drivers/usb/dwc3/dwc3-generic.c   | 207
>>> +++++++++++++++++++++++++++++---------
>>> drivers/usb/dwc3/ep0.c            |   1 -
>>> drivers/usb/gadget/ether.c        |  38 +------
>>> drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
>>> drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
>>> include/dwc3-uboot.h              |  19 ++++
>>> include/linux/usb/gadget.h        |  18 ++++ 18 files changed, 367
>>> insertions(+), 186 deletions(-)
>>> 
>> 
>> 
>> 
>> 
>> Best regards,
>> 
>> Lukasz Majewski
>> 
>> --
>> 
>> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> 
> 
> 
> 
> Best regards,
> 
> Lukasz Majewski
> 
> --
> 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de <mailto:wd@denx.de>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-10-01 13:26     ` Philipp Tomsich
@ 2018-10-08  2:07       ` Kever Yang
  2018-10-22 10:45         ` Jean-Jacques Hiblot
  0 siblings, 1 reply; 25+ messages in thread
From: Kever Yang @ 2018-10-08  2:07 UTC (permalink / raw)
  To: u-boot

Hi Philipp,


On 10/01/2018 09:26 PM, Philipp Tomsich wrote:
> Kever,
>
> Could you test this?
> I assume you have the board, as the evb-rk3328 has you listed as a
> maintainer...

Sure, I can do it.
Sorry for reply late, I just come back to work from Chinese National Day
holiday.

Thanks,
- Kever
>
> Thanks,
> Philipp.
>
>> On 01.10.2018, at 14:51, Lukasz Majewski <lukma@denx.de
>> <mailto:lukma@denx.de>> wrote:
>>
>> On Tue, 25 Sep 2018 13:28:14 +0200
>> Lukasz Majewski <lukma at denx.de <mailto:lukma@denx.de>> wrote:
>>
>>> Dear All,
>>>
>>>> This series aims at bringing improvements to the dwc3_generic driver
>>>> so that it can be used by most of the platforms using the dwc3
>>>> controller.
>>>>
>>>> I tested this on with DRA7 and AM57x platforms for both Peripheral
>>>> and Host operations. The code to enable DM USB host & dev support
>>>> for those platforms will be submitted in a separate series.
>>>>
>>>> Michal Simek has tested this series:
>>>> " I have tested it on zcu100 with usb stick, usb to ethernet
>>>> converter and also dfu.
>>>> Tested-by: Michal Simek <michal.simek@xilinx.com
>>>> <mailto:michal.simek@xilinx.com>>"
>>>>
>>>> Enhancements:
>>>> - use separate Kconfig option for DM USB Periphal and DM USB Host.
>>>> This allow platforms to keep their non-DM USB peripheral code and
>>>> use the DM USB host.
>>>> - fixes the bind/probe confusion in dwc3_generic. The probe is done
>>>> when the USB device is first needed.
>>>> - handles PHYs when in the peripheral mode. The code to handle the
>>>> PHYs is shared with the host side
>>>> - handles clock and reset
>>>> - bind host controller to the more generic driver 'xhci-dwc3'
>>>>
>>>>
>>>> Changes in v3:
>>>> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This
>>>> was visible only when the device is removed.
>>>> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
>>>>  This fixes all build issues but one (evb-rk3328).
>>>> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This
>>>> has little impact on the footprint and should not break the runtime
>>>> as the xhci-rockchip driver has its own probe function.
>>>>  Nevertheless this was !!! NOT TESTED !!! by lack of hw  
>>>
>>> Can somebody test this patch set on rk3328 and provide Tested-by tag?
>>
>> Anyone could test this patch series?
>>
>> Thanks in advance :-)
>>
>>>
>>>>
>>>> Changes in v2:
>>>> - Updated commit log
>>>> - Fixed typo in thordown.c
>>>> - select DM_USB_DEV by default for zynqmp platforms
>>>>
>>>> Jean-Jacques Hiblot (8):
>>>>  usb: gadget: Do not call board_usb_xxx() directly in USB gadget
>>>>    drivers
>>>>  usb: introduce a separate config option for DM USB device
>>>>  usb: udc: implement DM versions of
>>>>    usb_gadget_initialize()/_release()/_handle_interrupt()
>>>>  dwc3_generic: do not probe the USB device driver when it's bound
>>>>  dwc3: move phy operation to core.c
>>>>  configs: evb-rk3328: Enable CONFIG_USB_DWC3
>>>>  dwc3-generic: Handle the PHYs, the clocks and the reset lines
>>>>  dwc3-generic: Add select_dr_mode operation
>>>>
>>>> arch/arm/Kconfig                  |   2 +
>>>> cmd/fastboot.c                    |   4 +-
>>>> cmd/rockusb.c                     |   4 +-
>>>> cmd/thordown.c                    |   4 +-
>>>> cmd/usb_gadget_sdp.c              |   4 +-
>>>> cmd/usb_mass_storage.c            |   4 +-
>>>> common/dfu.c                      |   6 +-
>>>> configs/evb-rk3328_defconfig      |   1 +
>>>> drivers/usb/Kconfig               |   6 ++
>>>> drivers/usb/dwc3/Kconfig          |   7 +-
>>>> drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
>>>> drivers/usb/dwc3/dwc3-generic.c   | 207
>>>> +++++++++++++++++++++++++++++---------
>>>> drivers/usb/dwc3/ep0.c            |   1 -
>>>> drivers/usb/gadget/ether.c        |  38 +------
>>>> drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
>>>> drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
>>>> include/dwc3-uboot.h              |  19 ++++
>>>> include/linux/usb/gadget.h        |  18 ++++ 18 files changed, 367
>>>> insertions(+), 186 deletions(-)
>>>>
>>>
>>>
>>>
>>>
>>> Best regards,
>>>
>>> Lukasz Majewski
>>>
>>> --
>>>
>>> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>>> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email:
>>> wd at denx.de <mailto:wd@denx.de>
>>
>>
>>
>>
>> Best regards,
>>
>> Lukasz Majewski
>>
>> --
>>
>> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
>> <mailto:wd@denx.de>
>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
                   ` (8 preceding siblings ...)
  2018-09-25 11:28 ` [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Lukasz Majewski
@ 2018-10-09 14:29 ` Loic Devulder
  2018-10-22 15:55   ` Jean-Jacques Hiblot
  9 siblings, 1 reply; 25+ messages in thread
From: Loic Devulder @ 2018-10-09 14:29 UTC (permalink / raw)
  To: u-boot



On 9/25/18 11:03 AM, Jean-Jacques Hiblot wrote:
> 
> This series aims at bringing improvements to the dwc3_generic driver so
> that it can be used by most of the platforms using the dwc3 controller.
> 
> I tested this on with DRA7 and AM57x platforms for both Peripheral and Host
> operations. The code to enable DM USB host & dev support for those
> platforms will be submitted in a separate series.
> 
> Michal Simek has tested this series:
> " I have tested it on zcu100 with usb stick, usb to ethernet converter and
> also dfu.
> Tested-by: Michal Simek <michal.simek@xilinx.com>"
> 

Tested-by: Loic Devulder <ldevulder@suse.de>

I tested this series of patches on Khadas VIM as well as Libretech-cc
board and it resolved this issue ("USB0:   "Synchronous Abort" handler,
esr 0x96000210") I had on both cards (I think on all s905x Amlogic SBC)!

> Enhancements:
> - use separate Kconfig option for DM USB Periphal and DM USB Host. This
> allow platforms to keep their non-DM USB peripheral code and use the DM
> USB host.
> - fixes the bind/probe confusion in dwc3_generic. The probe is done when
> the USB device is first needed.
> - handles PHYs when in the peripheral mode. The code to handle the PHYs is
> shared with the host side
> - handles clock and reset
> - bind host controller to the more generic driver 'xhci-dwc3'
> 
> 
> Changes in v3:
> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This was
>   visible only when the device is removed.
> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
>   This fixes all build issues but one (evb-rk3328).
> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This has
>   little impact on the footprint and should not break the runtime as the
>   xhci-rockchip driver has its own probe function.
>   Nevertheless this was !!! NOT TESTED !!! by lack of hw
> 
> Changes in v2:
> - Updated commit log
> - Fixed typo in thordown.c
> - select DM_USB_DEV by default for zynqmp platforms
> 
> Jean-Jacques Hiblot (8):
>   usb: gadget: Do not call board_usb_xxx() directly in USB gadget
>     drivers
>   usb: introduce a separate config option for DM USB device
>   usb: udc: implement DM versions of
>     usb_gadget_initialize()/_release()/_handle_interrupt()
>   dwc3_generic: do not probe the USB device driver when it's bound
>   dwc3: move phy operation to core.c
>   configs: evb-rk3328: Enable CONFIG_USB_DWC3
>   dwc3-generic: Handle the PHYs, the clocks and the reset lines
>   dwc3-generic: Add select_dr_mode operation
> 
>  arch/arm/Kconfig                  |   2 +
>  cmd/fastboot.c                    |   4 +-
>  cmd/rockusb.c                     |   4 +-
>  cmd/thordown.c                    |   4 +-
>  cmd/usb_gadget_sdp.c              |   4 +-
>  cmd/usb_mass_storage.c            |   4 +-
>  common/dfu.c                      |   6 +-
>  configs/evb-rk3328_defconfig      |   1 +
>  drivers/usb/Kconfig               |   6 ++
>  drivers/usb/dwc3/Kconfig          |   7 +-
>  drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
>  drivers/usb/dwc3/dwc3-generic.c   | 207 +++++++++++++++++++++++++++++---------
>  drivers/usb/dwc3/ep0.c            |   1 -
>  drivers/usb/gadget/ether.c        |  38 +------
>  drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
>  drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
>  include/dwc3-uboot.h              |  19 ++++
>  include/linux/usb/gadget.h        |  18 ++++
>  18 files changed, 367 insertions(+), 186 deletions(-)
> 

-- 
Loic Devulder <ldevulder@suse.com> | ldevulder at irc
0x175A963893C85F55 | D220 DEF5 56A3 DE00 9DAA 78BA 175A 9638 93C8 5F55
Senior QA Engineer | Container & Storage Solutions Quality Assurance
team (qa-css)
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB,
21284 (AG Nuernberg)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181009/ef3f9a77/attachment.sig>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-10-08  2:07       ` Kever Yang
@ 2018-10-22 10:45         ` Jean-Jacques Hiblot
  0 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-10-22 10:45 UTC (permalink / raw)
  To: u-boot

Hi Kever,

have you been able to run the tests on evb-rk3328 ?

Thanks,

JJ



On 08/10/2018 04:07, Kever Yang wrote:
>
> Hi Philipp,
>
>
> On 10/01/2018 09:26 PM, Philipp Tomsich wrote:
>> Kever,
>>
>> Could you test this?
>> I assume you have the board, as the evb-rk3328 has you listed as a 
>> maintainer...
>
> Sure, I can do it.
> Sorry for reply late, I just come back to work from Chinese National 
> Day holiday.
>
> Thanks,
> - Kever
>>
>> Thanks,
>> Philipp.
>>
>>> On 01.10.2018, at 14:51, Lukasz Majewski <lukma@denx.de 
>>> <mailto:lukma@denx.de>> wrote:
>>>
>>> On Tue, 25 Sep 2018 13:28:14 +0200
>>> Lukasz Majewski <lukma at denx.de <mailto:lukma@denx.de>> wrote:
>>>
>>>> Dear All,
>>>>
>>>>> This series aims at bringing improvements to the dwc3_generic driver
>>>>> so that it can be used by most of the platforms using the dwc3
>>>>> controller.
>>>>>
>>>>> I tested this on with DRA7 and AM57x platforms for both Peripheral
>>>>> and Host operations. The code to enable DM USB host & dev support
>>>>> for those platforms will be submitted in a separate series.
>>>>>
>>>>> Michal Simek has tested this series:
>>>>> " I have tested it on zcu100 with usb stick, usb to ethernet
>>>>> converter and also dfu.
>>>>> Tested-by: Michal Simek <michal.simek@xilinx.com 
>>>>> <mailto:michal.simek@xilinx.com>>"
>>>>>
>>>>> Enhancements:
>>>>> - use separate Kconfig option for DM USB Periphal and DM USB Host.
>>>>> This allow platforms to keep their non-DM USB peripheral code and
>>>>> use the DM USB host.
>>>>> - fixes the bind/probe confusion in dwc3_generic. The probe is done
>>>>> when the USB device is first needed.
>>>>> - handles PHYs when in the peripheral mode. The code to handle the
>>>>> PHYs is shared with the host side
>>>>> - handles clock and reset
>>>>> - bind host controller to the more generic driver 'xhci-dwc3'
>>>>>
>>>>>
>>>>> Changes in v3:
>>>>> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This
>>>>> was visible only when the device is removed.
>>>>> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
>>>>>  This fixes all build issues but one (evb-rk3328).
>>>>> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This
>>>>> has little impact on the footprint and should not break the runtime
>>>>> as the xhci-rockchip driver has its own probe function.
>>>>>  Nevertheless this was !!! NOT TESTED !!! by lack of hw
>>>>
>>>> Can somebody test this patch set on rk3328 and provide Tested-by tag?
>>>
>>> Anyone could test this patch series?
>>>
>>> Thanks in advance :-)
>>>
>>>>
>>>>>
>>>>> Changes in v2:
>>>>> - Updated commit log
>>>>> - Fixed typo in thordown.c
>>>>> - select DM_USB_DEV by default for zynqmp platforms
>>>>>
>>>>> Jean-Jacques Hiblot (8):
>>>>>  usb: gadget: Do not call board_usb_xxx() directly in USB gadget
>>>>>    drivers
>>>>>  usb: introduce a separate config option for DM USB device
>>>>>  usb: udc: implement DM versions of
>>>>>    usb_gadget_initialize()/_release()/_handle_interrupt()
>>>>>  dwc3_generic: do not probe the USB device driver when it's bound
>>>>>  dwc3: move phy operation to core.c
>>>>>  configs: evb-rk3328: Enable CONFIG_USB_DWC3
>>>>>  dwc3-generic: Handle the PHYs, the clocks and the reset lines
>>>>>  dwc3-generic: Add select_dr_mode operation
>>>>>
>>>>> arch/arm/Kconfig                  |   2 +
>>>>> cmd/fastboot.c                    |   4 +-
>>>>> cmd/rockusb.c                     |   4 +-
>>>>> cmd/thordown.c                    |   4 +-
>>>>> cmd/usb_gadget_sdp.c              |   4 +-
>>>>> cmd/usb_mass_storage.c            |   4 +-
>>>>> common/dfu.c                      |   6 +-
>>>>> configs/evb-rk3328_defconfig      |   1 +
>>>>> drivers/usb/Kconfig               |   6 ++
>>>>> drivers/usb/dwc3/Kconfig          |   7 +-
>>>>> drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
>>>>> drivers/usb/dwc3/dwc3-generic.c   | 207
>>>>> +++++++++++++++++++++++++++++---------
>>>>> drivers/usb/dwc3/ep0.c            |   1 -
>>>>> drivers/usb/gadget/ether.c        |  38 +------
>>>>> drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
>>>>> drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
>>>>> include/dwc3-uboot.h              |  19 ++++
>>>>> include/linux/usb/gadget.h        |  18 ++++ 18 files changed, 367
>>>>> insertions(+), 186 deletions(-)
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Best regards,
>>>>
>>>> Lukasz Majewski
>>>>
>>>> --
>>>>
>>>> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>>>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>>>> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: 
>>>> wd at denx.de <mailto:wd@denx.de>
>>>
>>>
>>>
>>>
>>> Best regards,
>>>
>>> Lukasz Majewski
>>>
>>> --
>>>
>>> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>>> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email:wd at denx.de 
>>> <mailto:wd@denx.de>
>>
>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-10-09 14:29 ` Loic Devulder
@ 2018-10-22 15:55   ` Jean-Jacques Hiblot
  2018-10-22 16:16     ` Lukasz Majewski
  0 siblings, 1 reply; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-10-22 15:55 UTC (permalink / raw)
  To: u-boot

Hi Lukasz,

gentle ping on the status on this series.

JJ


On 09/10/2018 16:29, Loic Devulder wrote:
>
> On 9/25/18 11:03 AM, Jean-Jacques Hiblot wrote:
>> This series aims at bringing improvements to the dwc3_generic driver so
>> that it can be used by most of the platforms using the dwc3 controller.
>>
>> I tested this on with DRA7 and AM57x platforms for both Peripheral and Host
>> operations. The code to enable DM USB host & dev support for those
>> platforms will be submitted in a separate series.
>>
>> Michal Simek has tested this series:
>> " I have tested it on zcu100 with usb stick, usb to ethernet converter and
>> also dfu.
>> Tested-by: Michal Simek <michal.simek@xilinx.com>"
>>
> Tested-by: Loic Devulder <ldevulder@suse.de>
>
> I tested this series of patches on Khadas VIM as well as Libretech-cc
> board and it resolved this issue ("USB0:   "Synchronous Abort" handler,
> esr 0x96000210") I had on both cards (I think on all s905x Amlogic SBC)!
>
>> Enhancements:
>> - use separate Kconfig option for DM USB Periphal and DM USB Host. This
>> allow platforms to keep their non-DM USB peripheral code and use the DM
>> USB host.
>> - fixes the bind/probe confusion in dwc3_generic. The probe is done when
>> the USB device is first needed.
>> - handles PHYs when in the peripheral mode. The code to handle the PHYs is
>> shared with the host side
>> - handles clock and reset
>> - bind host controller to the more generic driver 'xhci-dwc3'
>>
>>
>> Changes in v3:
>> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This was
>>    visible only when the device is removed.
>> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
>>    This fixes all build issues but one (evb-rk3328).
>> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This has
>>    little impact on the footprint and should not break the runtime as the
>>    xhci-rockchip driver has its own probe function.
>>    Nevertheless this was !!! NOT TESTED !!! by lack of hw
>>
>> Changes in v2:
>> - Updated commit log
>> - Fixed typo in thordown.c
>> - select DM_USB_DEV by default for zynqmp platforms
>>
>> Jean-Jacques Hiblot (8):
>>    usb: gadget: Do not call board_usb_xxx() directly in USB gadget
>>      drivers
>>    usb: introduce a separate config option for DM USB device
>>    usb: udc: implement DM versions of
>>      usb_gadget_initialize()/_release()/_handle_interrupt()
>>    dwc3_generic: do not probe the USB device driver when it's bound
>>    dwc3: move phy operation to core.c
>>    configs: evb-rk3328: Enable CONFIG_USB_DWC3
>>    dwc3-generic: Handle the PHYs, the clocks and the reset lines
>>    dwc3-generic: Add select_dr_mode operation
>>
>>   arch/arm/Kconfig                  |   2 +
>>   cmd/fastboot.c                    |   4 +-
>>   cmd/rockusb.c                     |   4 +-
>>   cmd/thordown.c                    |   4 +-
>>   cmd/usb_gadget_sdp.c              |   4 +-
>>   cmd/usb_mass_storage.c            |   4 +-
>>   common/dfu.c                      |   6 +-
>>   configs/evb-rk3328_defconfig      |   1 +
>>   drivers/usb/Kconfig               |   6 ++
>>   drivers/usb/dwc3/Kconfig          |   7 +-
>>   drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
>>   drivers/usb/dwc3/dwc3-generic.c   | 207 +++++++++++++++++++++++++++++---------
>>   drivers/usb/dwc3/ep0.c            |   1 -
>>   drivers/usb/gadget/ether.c        |  38 +------
>>   drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
>>   drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
>>   include/dwc3-uboot.h              |  19 ++++
>>   include/linux/usb/gadget.h        |  18 ++++
>>   18 files changed, 367 insertions(+), 186 deletions(-)
>>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-10-22 15:55   ` Jean-Jacques Hiblot
@ 2018-10-22 16:16     ` Lukasz Majewski
  2018-10-22 16:24       ` Jean-Jacques Hiblot
  0 siblings, 1 reply; 25+ messages in thread
From: Lukasz Majewski @ 2018-10-22 16:16 UTC (permalink / raw)
  To: u-boot

Hi Jean-Jacques,

> Hi Lukasz,
> 
> gentle ping on the status on this series.

Do we have tested by from somebody from RockChip community?

> 
> JJ
> 
> 
> On 09/10/2018 16:29, Loic Devulder wrote:
> >
> > On 9/25/18 11:03 AM, Jean-Jacques Hiblot wrote:  
> >> This series aims at bringing improvements to the dwc3_generic
> >> driver so that it can be used by most of the platforms using the
> >> dwc3 controller.
> >>
> >> I tested this on with DRA7 and AM57x platforms for both Peripheral
> >> and Host operations. The code to enable DM USB host & dev support
> >> for those platforms will be submitted in a separate series.
> >>
> >> Michal Simek has tested this series:
> >> " I have tested it on zcu100 with usb stick, usb to ethernet
> >> converter and also dfu.
> >> Tested-by: Michal Simek <michal.simek@xilinx.com>"
> >>  
> > Tested-by: Loic Devulder <ldevulder@suse.de>
> >
> > I tested this series of patches on Khadas VIM as well as
> > Libretech-cc board and it resolved this issue ("USB0:
> > "Synchronous Abort" handler, esr 0x96000210") I had on both cards
> > (I think on all s905x Amlogic SBC)! 
> >> Enhancements:
> >> - use separate Kconfig option for DM USB Periphal and DM USB Host.
> >> This allow platforms to keep their non-DM USB peripheral code and
> >> use the DM USB host.
> >> - fixes the bind/probe confusion in dwc3_generic. The probe is
> >> done when the USB device is first needed.
> >> - handles PHYs when in the peripheral mode. The code to handle the
> >> PHYs is shared with the host side
> >> - handles clock and reset
> >> - bind host controller to the more generic driver 'xhci-dwc3'
> >>
> >>
> >> Changes in v3:
> >> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This
> >> was visible only when the device is removed.
> >> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
> >>    This fixes all build issues but one (evb-rk3328).
> >> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3.
> >> This has little impact on the footprint and should not break the
> >> runtime as the xhci-rockchip driver has its own probe function.
> >>    Nevertheless this was !!! NOT TESTED !!! by lack of hw
> >>
> >> Changes in v2:
> >> - Updated commit log
> >> - Fixed typo in thordown.c
> >> - select DM_USB_DEV by default for zynqmp platforms
> >>
> >> Jean-Jacques Hiblot (8):
> >>    usb: gadget: Do not call board_usb_xxx() directly in USB gadget
> >>      drivers
> >>    usb: introduce a separate config option for DM USB device
> >>    usb: udc: implement DM versions of
> >>      usb_gadget_initialize()/_release()/_handle_interrupt()
> >>    dwc3_generic: do not probe the USB device driver when it's bound
> >>    dwc3: move phy operation to core.c
> >>    configs: evb-rk3328: Enable CONFIG_USB_DWC3
> >>    dwc3-generic: Handle the PHYs, the clocks and the reset lines
> >>    dwc3-generic: Add select_dr_mode operation
> >>
> >>   arch/arm/Kconfig                  |   2 +
> >>   cmd/fastboot.c                    |   4 +-
> >>   cmd/rockusb.c                     |   4 +-
> >>   cmd/thordown.c                    |   4 +-
> >>   cmd/usb_gadget_sdp.c              |   4 +-
> >>   cmd/usb_mass_storage.c            |   4 +-
> >>   common/dfu.c                      |   6 +-
> >>   configs/evb-rk3328_defconfig      |   1 +
> >>   drivers/usb/Kconfig               |   6 ++
> >>   drivers/usb/dwc3/Kconfig          |   7 +-
> >>   drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
> >>   drivers/usb/dwc3/dwc3-generic.c   | 207
> >> +++++++++++++++++++++++++++++---------
> >> drivers/usb/dwc3/ep0.c            |   1 -
> >> drivers/usb/gadget/ether.c        |  38 +------
> >> drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
> >> drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
> >> include/dwc3-uboot.h              |  19 ++++
> >> include/linux/usb/gadget.h        |  18 ++++ 18 files changed, 367
> >> insertions(+), 186 deletions(-) 
> 




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181022/8491e11d/attachment.sig>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-10-22 16:16     ` Lukasz Majewski
@ 2018-10-22 16:24       ` Jean-Jacques Hiblot
  2018-10-26 10:25         ` Jean-Jacques Hiblot
  0 siblings, 1 reply; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-10-22 16:24 UTC (permalink / raw)
  To: u-boot



On 22/10/2018 18:16, Lukasz Majewski wrote:
> Hi Jean-Jacques,
>
>> Hi Lukasz,
>>
>> gentle ping on the status on this series.
> Do we have tested by from somebody from RockChip community?
I haven't seen anything on the ML. I pinged Kever Yang earlier today 
about it.

JJ
>
>> JJ
>>
>>
>> On 09/10/2018 16:29, Loic Devulder wrote:
>>> On 9/25/18 11:03 AM, Jean-Jacques Hiblot wrote:
>>>> This series aims at bringing improvements to the dwc3_generic
>>>> driver so that it can be used by most of the platforms using the
>>>> dwc3 controller.
>>>>
>>>> I tested this on with DRA7 and AM57x platforms for both Peripheral
>>>> and Host operations. The code to enable DM USB host & dev support
>>>> for those platforms will be submitted in a separate series.
>>>>
>>>> Michal Simek has tested this series:
>>>> " I have tested it on zcu100 with usb stick, usb to ethernet
>>>> converter and also dfu.
>>>> Tested-by: Michal Simek <michal.simek@xilinx.com>"
>>>>   
>>> Tested-by: Loic Devulder <ldevulder@suse.de>
>>>
>>> I tested this series of patches on Khadas VIM as well as
>>> Libretech-cc board and it resolved this issue ("USB0:
>>> "Synchronous Abort" handler, esr 0x96000210") I had on both cards
>>> (I think on all s905x Amlogic SBC)!
>>>> Enhancements:
>>>> - use separate Kconfig option for DM USB Periphal and DM USB Host.
>>>> This allow platforms to keep their non-DM USB peripheral code and
>>>> use the DM USB host.
>>>> - fixes the bind/probe confusion in dwc3_generic. The probe is
>>>> done when the USB device is first needed.
>>>> - handles PHYs when in the peripheral mode. The code to handle the
>>>> PHYs is shared with the host side
>>>> - handles clock and reset
>>>> - bind host controller to the more generic driver 'xhci-dwc3'
>>>>
>>>>
>>>> Changes in v3:
>>>> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This
>>>> was visible only when the device is removed.
>>>> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
>>>>     This fixes all build issues but one (evb-rk3328).
>>>> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3.
>>>> This has little impact on the footprint and should not break the
>>>> runtime as the xhci-rockchip driver has its own probe function.
>>>>     Nevertheless this was !!! NOT TESTED !!! by lack of hw
>>>>
>>>> Changes in v2:
>>>> - Updated commit log
>>>> - Fixed typo in thordown.c
>>>> - select DM_USB_DEV by default for zynqmp platforms
>>>>
>>>> Jean-Jacques Hiblot (8):
>>>>     usb: gadget: Do not call board_usb_xxx() directly in USB gadget
>>>>       drivers
>>>>     usb: introduce a separate config option for DM USB device
>>>>     usb: udc: implement DM versions of
>>>>       usb_gadget_initialize()/_release()/_handle_interrupt()
>>>>     dwc3_generic: do not probe the USB device driver when it's bound
>>>>     dwc3: move phy operation to core.c
>>>>     configs: evb-rk3328: Enable CONFIG_USB_DWC3
>>>>     dwc3-generic: Handle the PHYs, the clocks and the reset lines
>>>>     dwc3-generic: Add select_dr_mode operation
>>>>
>>>>    arch/arm/Kconfig                  |   2 +
>>>>    cmd/fastboot.c                    |   4 +-
>>>>    cmd/rockusb.c                     |   4 +-
>>>>    cmd/thordown.c                    |   4 +-
>>>>    cmd/usb_gadget_sdp.c              |   4 +-
>>>>    cmd/usb_mass_storage.c            |   4 +-
>>>>    common/dfu.c                      |   6 +-
>>>>    configs/evb-rk3328_defconfig      |   1 +
>>>>    drivers/usb/Kconfig               |   6 ++
>>>>    drivers/usb/dwc3/Kconfig          |   7 +-
>>>>    drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
>>>>    drivers/usb/dwc3/dwc3-generic.c   | 207
>>>> +++++++++++++++++++++++++++++---------
>>>> drivers/usb/dwc3/ep0.c            |   1 -
>>>> drivers/usb/gadget/ether.c        |  38 +------
>>>> drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
>>>> drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
>>>> include/dwc3-uboot.h              |  19 ++++
>>>> include/linux/usb/gadget.h        |  18 ++++ 18 files changed, 367
>>>> insertions(+), 186 deletions(-)
>
>
>
> Best regards,
>
> Lukasz Majewski
>
> --
>
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-10-22 16:24       ` Jean-Jacques Hiblot
@ 2018-10-26 10:25         ` Jean-Jacques Hiblot
  2018-10-28 20:50           ` Lukasz Majewski
  0 siblings, 1 reply; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-10-26 10:25 UTC (permalink / raw)
  To: u-boot

Andy, Kerver, Lin,

could you give a try to this series on evb-rk3328 please ? This has been 
blocked for a long time already.

Thanks,

JJ

On 22/10/2018 18:24, Jean-Jacques Hiblot wrote:
>
>
> On 22/10/2018 18:16, Lukasz Majewski wrote:
>> Hi Jean-Jacques,
>>
>>> Hi Lukasz,
>>>
>>> gentle ping on the status on this series.
>> Do we have tested by from somebody from RockChip community?
> I haven't seen anything on the ML. I pinged Kever Yang earlier today 
> about it.
>
> JJ
>>
>>> JJ
>>>
>>>
>>> On 09/10/2018 16:29, Loic Devulder wrote:
>>>> On 9/25/18 11:03 AM, Jean-Jacques Hiblot wrote:
>>>>> This series aims at bringing improvements to the dwc3_generic
>>>>> driver so that it can be used by most of the platforms using the
>>>>> dwc3 controller.
>>>>>
>>>>> I tested this on with DRA7 and AM57x platforms for both Peripheral
>>>>> and Host operations. The code to enable DM USB host & dev support
>>>>> for those platforms will be submitted in a separate series.
>>>>>
>>>>> Michal Simek has tested this series:
>>>>> " I have tested it on zcu100 with usb stick, usb to ethernet
>>>>> converter and also dfu.
>>>>> Tested-by: Michal Simek <michal.simek@xilinx.com>"
>>>> Tested-by: Loic Devulder <ldevulder@suse.de>
>>>>
>>>> I tested this series of patches on Khadas VIM as well as
>>>> Libretech-cc board and it resolved this issue ("USB0:
>>>> "Synchronous Abort" handler, esr 0x96000210") I had on both cards
>>>> (I think on all s905x Amlogic SBC)!
>>>>> Enhancements:
>>>>> - use separate Kconfig option for DM USB Periphal and DM USB Host.
>>>>> This allow platforms to keep their non-DM USB peripheral code and
>>>>> use the DM USB host.
>>>>> - fixes the bind/probe confusion in dwc3_generic. The probe is
>>>>> done when the USB device is first needed.
>>>>> - handles PHYs when in the peripheral mode. The code to handle the
>>>>> PHYs is shared with the host side
>>>>> - handles clock and reset
>>>>> - bind host controller to the more generic driver 'xhci-dwc3'
>>>>>
>>>>>
>>>>> Changes in v3:
>>>>> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This
>>>>> was visible only when the device is removed.
>>>>> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false.
>>>>>     This fixes all build issues but one (evb-rk3328).
>>>>> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3.
>>>>> This has little impact on the footprint and should not break the
>>>>> runtime as the xhci-rockchip driver has its own probe function.
>>>>>     Nevertheless this was !!! NOT TESTED !!! by lack of hw
>>>>>
>>>>> Changes in v2:
>>>>> - Updated commit log
>>>>> - Fixed typo in thordown.c
>>>>> - select DM_USB_DEV by default for zynqmp platforms
>>>>>
>>>>> Jean-Jacques Hiblot (8):
>>>>>     usb: gadget: Do not call board_usb_xxx() directly in USB gadget
>>>>>       drivers
>>>>>     usb: introduce a separate config option for DM USB device
>>>>>     usb: udc: implement DM versions of
>>>>> usb_gadget_initialize()/_release()/_handle_interrupt()
>>>>>     dwc3_generic: do not probe the USB device driver when it's bound
>>>>>     dwc3: move phy operation to core.c
>>>>>     configs: evb-rk3328: Enable CONFIG_USB_DWC3
>>>>>     dwc3-generic: Handle the PHYs, the clocks and the reset lines
>>>>>     dwc3-generic: Add select_dr_mode operation
>>>>>
>>>>>    arch/arm/Kconfig                  |   2 +
>>>>>    cmd/fastboot.c                    |   4 +-
>>>>>    cmd/rockusb.c                     |   4 +-
>>>>>    cmd/thordown.c                    |   4 +-
>>>>>    cmd/usb_gadget_sdp.c              |   4 +-
>>>>>    cmd/usb_mass_storage.c            |   4 +-
>>>>>    common/dfu.c                      |   6 +-
>>>>>    configs/evb-rk3328_defconfig      |   1 +
>>>>>    drivers/usb/Kconfig               |   6 ++
>>>>>    drivers/usb/dwc3/Kconfig          |   7 +-
>>>>>    drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
>>>>>    drivers/usb/dwc3/dwc3-generic.c   | 207
>>>>> +++++++++++++++++++++++++++++---------
>>>>> drivers/usb/dwc3/ep0.c            |   1 -
>>>>> drivers/usb/gadget/ether.c        |  38 +------
>>>>> drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
>>>>> drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
>>>>> include/dwc3-uboot.h              |  19 ++++
>>>>> include/linux/usb/gadget.h        |  18 ++++ 18 files changed, 367
>>>>> insertions(+), 186 deletions(-)
>>
>>
>>
>> Best regards,
>>
>> Lukasz Majewski
>>
>> -- 
>>
>> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-10-26 10:25         ` Jean-Jacques Hiblot
@ 2018-10-28 20:50           ` Lukasz Majewski
  2018-11-01  9:27             ` Michal Simek
  0 siblings, 1 reply; 25+ messages in thread
From: Lukasz Majewski @ 2018-10-28 20:50 UTC (permalink / raw)
  To: u-boot

Dear All,

> Andy, Kerver, Lin,
> 
> could you give a try to this series on evb-rk3328 please ? This has
> been blocked for a long time already.

Yes, agree. Could somebody (who has this SoC) test this patch set?

Thanks in advance,
Łukasz

> 
> Thanks,
> 
> JJ
> 
> On 22/10/2018 18:24, Jean-Jacques Hiblot wrote:
> >
> >
> > On 22/10/2018 18:16, Lukasz Majewski wrote:  
> >> Hi Jean-Jacques,
> >>  
> >>> Hi Lukasz,
> >>>
> >>> gentle ping on the status on this series.  
> >> Do we have tested by from somebody from RockChip community?  
> > I haven't seen anything on the ML. I pinged Kever Yang earlier
> > today about it.
> >
> > JJ  
> >>  
> >>> JJ
> >>>
> >>>
> >>> On 09/10/2018 16:29, Loic Devulder wrote:  
> >>>> On 9/25/18 11:03 AM, Jean-Jacques Hiblot wrote:  
> >>>>> This series aims at bringing improvements to the dwc3_generic
> >>>>> driver so that it can be used by most of the platforms using the
> >>>>> dwc3 controller.
> >>>>>
> >>>>> I tested this on with DRA7 and AM57x platforms for both
> >>>>> Peripheral and Host operations. The code to enable DM USB host
> >>>>> & dev support for those platforms will be submitted in a
> >>>>> separate series.
> >>>>>
> >>>>> Michal Simek has tested this series:
> >>>>> " I have tested it on zcu100 with usb stick, usb to ethernet
> >>>>> converter and also dfu.
> >>>>> Tested-by: Michal Simek <michal.simek@xilinx.com>"  
> >>>> Tested-by: Loic Devulder <ldevulder@suse.de>
> >>>>
> >>>> I tested this series of patches on Khadas VIM as well as
> >>>> Libretech-cc board and it resolved this issue ("USB0:
> >>>> "Synchronous Abort" handler, esr 0x96000210") I had on both cards
> >>>> (I think on all s905x Amlogic SBC)!  
> >>>>> Enhancements:
> >>>>> - use separate Kconfig option for DM USB Periphal and DM USB
> >>>>> Host. This allow platforms to keep their non-DM USB peripheral
> >>>>> code and use the DM USB host.
> >>>>> - fixes the bind/probe confusion in dwc3_generic. The probe is
> >>>>> done when the USB device is first needed.
> >>>>> - handles PHYs when in the peripheral mode. The code to handle
> >>>>> the PHYs is shared with the host side
> >>>>> - handles clock and reset
> >>>>> - bind host controller to the more generic driver 'xhci-dwc3'
> >>>>>
> >>>>>
> >>>>> Changes in v3:
> >>>>> - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned.
> >>>>> This was visible only when the device is removed.
> >>>>> - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is
> >>>>> false. This fixes all build issues but one (evb-rk3328).
> >>>>> - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3.
> >>>>> This has little impact on the footprint and should not break the
> >>>>> runtime as the xhci-rockchip driver has its own probe function.
> >>>>>     Nevertheless this was !!! NOT TESTED !!! by lack of hw
> >>>>>
> >>>>> Changes in v2:
> >>>>> - Updated commit log
> >>>>> - Fixed typo in thordown.c
> >>>>> - select DM_USB_DEV by default for zynqmp platforms
> >>>>>
> >>>>> Jean-Jacques Hiblot (8):
> >>>>>     usb: gadget: Do not call board_usb_xxx() directly in USB
> >>>>> gadget drivers
> >>>>>     usb: introduce a separate config option for DM USB device
> >>>>>     usb: udc: implement DM versions of
> >>>>> usb_gadget_initialize()/_release()/_handle_interrupt()
> >>>>>     dwc3_generic: do not probe the USB device driver when it's
> >>>>> bound dwc3: move phy operation to core.c
> >>>>>     configs: evb-rk3328: Enable CONFIG_USB_DWC3
> >>>>>     dwc3-generic: Handle the PHYs, the clocks and the reset
> >>>>> lines dwc3-generic: Add select_dr_mode operation
> >>>>>
> >>>>>    arch/arm/Kconfig                  |   2 +
> >>>>>    cmd/fastboot.c                    |   4 +-
> >>>>>    cmd/rockusb.c                     |   4 +-
> >>>>>    cmd/thordown.c                    |   4 +-
> >>>>>    cmd/usb_gadget_sdp.c              |   4 +-
> >>>>>    cmd/usb_mass_storage.c            |   4 +-
> >>>>>    common/dfu.c                      |   6 +-
> >>>>>    configs/evb-rk3328_defconfig      |   1 +
> >>>>>    drivers/usb/Kconfig               |   6 ++
> >>>>>    drivers/usb/dwc3/Kconfig          |   7 +-
> >>>>>    drivers/usb/dwc3/core.c           |  89 +++++++++++++++-
> >>>>>    drivers/usb/dwc3/dwc3-generic.c   | 207
> >>>>> +++++++++++++++++++++++++++++---------
> >>>>> drivers/usb/dwc3/ep0.c            |   1 -
> >>>>> drivers/usb/gadget/ether.c        |  38 +------
> >>>>> drivers/usb/gadget/udc/udc-core.c |  44 +++++++-
> >>>>> drivers/usb/host/xhci-dwc3.c      |  95 ++---------------
> >>>>> include/dwc3-uboot.h              |  19 ++++
> >>>>> include/linux/usb/gadget.h        |  18 ++++ 18 files changed,
> >>>>> 367 insertions(+), 186 deletions(-)  
> >>
> >>
> >>
> >> Best regards,
> >>
> >> Lukasz Majewski
> >>
> >> -- 
> >>
> >> DENX Software Engineering GmbH,      Managing Director: Wolfgang
> >> Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell,
> >> Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email:
> >> wd at denx.de  
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot  




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181028/66769704/attachment.sig>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-10-28 20:50           ` Lukasz Majewski
@ 2018-11-01  9:27             ` Michal Simek
  2018-11-01 15:56               ` Lukasz Majewski
  0 siblings, 1 reply; 25+ messages in thread
From: Michal Simek @ 2018-11-01  9:27 UTC (permalink / raw)
  To: u-boot

On 28. 10. 18 21:50, Lukasz Majewski wrote:
> Dear All,
> 
>> Andy, Kerver, Lin,
>>
>> could you give a try to this series on evb-rk3328 please ? This has
>> been blocked for a long time already.
> 
> Yes, agree. Could somebody (who has this SoC) test this patch set?

TBH if there is no reaction after gentle asking you should queue these
patches for next u-boot version. If this patchset breaks anybody they
can fix in RC phase.

Thanks,
Michal

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-11-01  9:27             ` Michal Simek
@ 2018-11-01 15:56               ` Lukasz Majewski
  2018-11-01 16:06                 ` Tom Rini
  0 siblings, 1 reply; 25+ messages in thread
From: Lukasz Majewski @ 2018-11-01 15:56 UTC (permalink / raw)
  To: u-boot

Hi Michal,

> On 28. 10. 18 21:50, Lukasz Majewski wrote:
> > Dear All,
> >   
> >> Andy, Kerver, Lin,
> >>
> >> could you give a try to this series on evb-rk3328 please ? This has
> >> been blocked for a long time already.  
> > 
> > Yes, agree. Could somebody (who has this SoC) test this patch set?  
> 
> TBH if there is no reaction after gentle asking you should queue these
> patches for next u-boot version. If this patchset breaks anybody they
> can fix in RC phase.

Yes, I do agree...

I've added Tom to CC so he would know the circumstances.

> 
> Thanks,
> Michal




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181101/cf9060cf/attachment.sig>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-11-01 15:56               ` Lukasz Majewski
@ 2018-11-01 16:06                 ` Tom Rini
  2018-11-01 16:55                   ` Lukasz Majewski
  0 siblings, 1 reply; 25+ messages in thread
From: Tom Rini @ 2018-11-01 16:06 UTC (permalink / raw)
  To: u-boot

On Thu, Nov 01, 2018 at 04:56:46PM +0100, Lukasz Majewski wrote:
> Hi Michal,
> 
> > On 28. 10. 18 21:50, Lukasz Majewski wrote:
> > > Dear All,
> > >   
> > >> Andy, Kerver, Lin,
> > >>
> > >> could you give a try to this series on evb-rk3328 please ? This has
> > >> been blocked for a long time already.  
> > > 
> > > Yes, agree. Could somebody (who has this SoC) test this patch set?  
> > 
> > TBH if there is no reaction after gentle asking you should queue these
> > patches for next u-boot version. If this patchset breaks anybody they
> > can fix in RC phase.
> 
> Yes, I do agree...
> 
> I've added Tom to CC so he would know the circumstances.

So I should expect Marek to be pulling this in, post v2018.11 right?
Thanks!
-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181101/1f8771aa/attachment.sig>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-11-01 16:06                 ` Tom Rini
@ 2018-11-01 16:55                   ` Lukasz Majewski
  2018-11-16 14:49                     ` Jean-Jacques Hiblot
  0 siblings, 1 reply; 25+ messages in thread
From: Lukasz Majewski @ 2018-11-01 16:55 UTC (permalink / raw)
  To: u-boot

Hi Tom,

> On Thu, Nov 01, 2018 at 04:56:46PM +0100, Lukasz Majewski wrote:
> > Hi Michal,
> >   
> > > On 28. 10. 18 21:50, Lukasz Majewski wrote:  
> > > > Dear All,
> > > >     
> > > >> Andy, Kerver, Lin,
> > > >>
> > > >> could you give a try to this series on evb-rk3328 please ?
> > > >> This has been blocked for a long time already.    
> > > > 
> > > > Yes, agree. Could somebody (who has this SoC) test this patch
> > > > set?    
> > > 
> > > TBH if there is no reaction after gentle asking you should queue
> > > these patches for next u-boot version. If this patchset breaks
> > > anybody they can fix in RC phase.  
> > 
> > Yes, I do agree...
> > 
> > I've added Tom to CC so he would know the circumstances.  
> 
> So I should expect Marek to be pulling this in, post v2018.11 right?

Yes, I will prepare PR to Marek, and he will send PR to you.

> Thanks!




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20181101/1650dfcc/attachment.sig>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver
  2018-11-01 16:55                   ` Lukasz Majewski
@ 2018-11-16 14:49                     ` Jean-Jacques Hiblot
  0 siblings, 0 replies; 25+ messages in thread
From: Jean-Jacques Hiblot @ 2018-11-16 14:49 UTC (permalink / raw)
  To: u-boot

On 01/11/2018 17:55, Lukasz Majewski wrote:
> Hi Tom,
>
>> On Thu, Nov 01, 2018 at 04:56:46PM +0100, Lukasz Majewski wrote:
>>> Hi Michal,
>>>    
>>>> On 28. 10. 18 21:50, Lukasz Majewski wrote:
>>>>> Dear All,
>>>>>      
>>>>>> Andy, Kerver, Lin,
>>>>>>
>>>>>> could you give a try to this series on evb-rk3328 please ?
>>>>>> This has been blocked for a long time already.
>>>>> Yes, agree. Could somebody (who has this SoC) test this patch
>>>>> set?
>>>> TBH if there is no reaction after gentle asking you should queue
>>>> these patches for next u-boot version. If this patchset breaks
>>>> anybody they can fix in RC phase.
>>> Yes, I do agree...
>>>
>>> I've added Tom to CC so he would know the circumstances.
>> So I should expect Marek to be pulling this in, post v2018.11 right?
> Yes, I will prepare PR to Marek, and he will send PR to you.

Thanks Lukasz

I hope it will hit the tree soon. I have a few other series ready that 
rely on this one.

JJ

>
>> Thanks!
>
>
>
> Best regards,
>
> Lukasz Majewski
>
> --
>
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2018-11-16 14:49 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-25  9:03 [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Jean-Jacques Hiblot
2018-09-25  9:03 ` [U-Boot] [PATCH v3 1/8] usb: gadget: Do not call board_usb_xxx() directly in USB gadget drivers Jean-Jacques Hiblot
2018-09-25  9:03 ` [U-Boot] [PATCH v3 2/8] usb: introduce a separate config option for DM USB device Jean-Jacques Hiblot
2018-09-25  9:03 ` [U-Boot] [PATCH v3 3/8] usb: udc: implement DM versions of usb_gadget_initialize()/_release()/_handle_interrupt() Jean-Jacques Hiblot
2018-09-25  9:03 ` [U-Boot] [PATCH v3 4/8] dwc3_generic: do not probe the USB device driver when it's bound Jean-Jacques Hiblot
2018-09-25  9:03 ` [U-Boot] [PATCH v3 5/8] dwc3: move phy operation to core.c Jean-Jacques Hiblot
2018-09-25  9:03 ` [U-Boot] [PATCH v3 6/8] configs: evb-rk3328: Enable CONFIG_USB_DWC3 Jean-Jacques Hiblot
2018-09-25  9:03 ` [U-Boot] [PATCH v3 7/8] dwc3-generic: Handle the PHYs, the clocks and the reset lines Jean-Jacques Hiblot
2018-09-25  9:03 ` [U-Boot] [PATCH v3 8/8] dwc3-generic: Add select_dr_mode operation Jean-Jacques Hiblot
2018-09-25 11:28 ` [U-Boot] [PATCH v3 0/8] Improvements for the dwc3_generic driver Lukasz Majewski
2018-10-01 12:51   ` Lukasz Majewski
2018-10-01 13:26     ` Philipp Tomsich
2018-10-08  2:07       ` Kever Yang
2018-10-22 10:45         ` Jean-Jacques Hiblot
2018-10-09 14:29 ` Loic Devulder
2018-10-22 15:55   ` Jean-Jacques Hiblot
2018-10-22 16:16     ` Lukasz Majewski
2018-10-22 16:24       ` Jean-Jacques Hiblot
2018-10-26 10:25         ` Jean-Jacques Hiblot
2018-10-28 20:50           ` Lukasz Majewski
2018-11-01  9:27             ` Michal Simek
2018-11-01 15:56               ` Lukasz Majewski
2018-11-01 16:06                 ` Tom Rini
2018-11-01 16:55                   ` Lukasz Majewski
2018-11-16 14:49                     ` Jean-Jacques Hiblot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.