Merge https://gitlab.denx.de/u-boot/custodians/u-boot-usb
diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index 6cf844c..6e1a1d0 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -14,6 +14,7 @@
 #include <dm/device-internal.h>
 #include <dm/lists.h>
 #include <dwc3-uboot.h>
+#include <generic-phy.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/usb/ch9.h>
@@ -460,6 +461,17 @@
 	struct udevice *child = NULL;
 	int index = 0;
 	int ret;
+	struct phy phy;
+
+	ret = generic_phy_get_by_name(dev, "usb3-phy", &phy);
+	if (!ret) {
+		ret = generic_phy_init(&phy);
+		if (ret)
+			return ret;
+	} else if (ret != -ENOENT) {
+		debug("could not get phy (err %d)\n", ret);
+		return ret;
+	}
 
 	glue->regs = dev_read_addr(dev);
 
@@ -471,6 +483,12 @@
 	if (ret)
 		return ret;
 
+	if (phy.dev) {
+		ret = generic_phy_power_on(&phy);
+		if (ret)
+			return ret;
+	}
+
 	ret = device_find_first_child(dev, &child);
 	if (ret)
 		return ret;
diff --git a/drivers/usb/eth/r8152.c b/drivers/usb/eth/r8152.c
index d21fc68..1aaa5a7 100644
--- a/drivers/usb/eth/r8152.c
+++ b/drivers/usb/eth/r8152.c
@@ -48,6 +48,7 @@
 
 	/* TP-LINK */
 	{ 0x2357, 0x0601 },
+	{ 0x2357, 0x0602 },
 
 	/* Nvidia */
 	{ 0x0955, 0x09ff },
@@ -1885,6 +1886,7 @@
 
 	/* TP-LINK */
 	{ USB_DEVICE(0x2357, 0x0601) },
+	{ USB_DEVICE(0x2357, 0x0602) },
 
 	/* Nvidia */
 	{ USB_DEVICE(0x0955, 0x09ff) },
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
index 542684c..d9a89a1 100644
--- a/drivers/usb/gadget/ci_udc.c
+++ b/drivers/usb/gadget/ci_udc.c
@@ -94,11 +94,11 @@
 ci_ep_alloc_request(struct usb_ep *ep, unsigned int gfp_flags);
 static void ci_ep_free_request(struct usb_ep *ep, struct usb_request *_req);
 
-static struct usb_gadget_ops ci_udc_ops = {
+static const struct usb_gadget_ops ci_udc_ops = {
 	.pullup = ci_pullup,
 };
 
-static struct usb_ep_ops ci_ep_ops = {
+static const struct usb_ep_ops ci_ep_ops = {
 	.enable         = ci_ep_enable,
 	.disable        = ci_ep_disable,
 	.queue          = ci_ep_queue,
diff --git a/include/generic-phy.h b/include/generic-phy.h
index ff48b37..d40ce58 100644
--- a/include/generic-phy.h
+++ b/include/generic-phy.h
@@ -155,7 +155,7 @@
 	unsigned int count;
 };
 
-#ifdef CONFIG_PHY
+#if CONFIG_IS_ENABLED(PHY)
 
 /**
  * generic_phy_init() - initialize the PHY port