* [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.