Qualcomm devicetrees are moving away from having a glue node with dwc3
as a subnode and now may just have a single flattened node.

Rockchip already have a glue_get_ctrl_dev op which returns the node for
the glue device itself, commonise this and reuse it for the new Qualcomm
node.

Signed-off-by: Casey Connolly <[email protected]>
---
 drivers/usb/dwc3/dwc3-generic.c | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index 02c02b1d80e4..7044696ced0c 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -6,8 +6,10 @@
  *
  * Based on dwc3-omap.c.
  */
 
+#define LOG_DEBUG
+
 #include <dm.h>
 #include <reset.h>
 #include <asm/gpio.h>
 #include <dm/device_compat.h>
@@ -488,23 +490,29 @@ static void dwc3_qcom_glue_configure(struct udevice *dev, 
int index,
        if (mode != USB_DR_MODE_HOST)
                dwc3_qcom_vbus_override_enable(qscratch_base, true);
 }
 
-struct dwc3_glue_ops qcom_ops = {
-       .glue_configure = dwc3_qcom_glue_configure,
-};
-
-static int dwc3_rk_glue_get_ctrl_dev(struct udevice *dev, ofnode *node)
+/* In cases where there is no dwc3 node and it's flattened into the glue node 
*/
+static int dwc3_flat_dt_get_ctrl_dev(struct udevice *dev, ofnode *node)
 {
        *node = dev_ofnode(dev);
        if (!ofnode_valid(*node))
                return -EINVAL;
 
        return 0;
 }
 
+struct dwc3_glue_ops qcom_ops = {
+       .glue_configure = dwc3_qcom_glue_configure,
+};
+
+struct dwc3_glue_ops qcom_flat_dt_ops = {
+       .glue_configure = dwc3_qcom_glue_configure,
+       .glue_get_ctrl_dev = dwc3_flat_dt_get_ctrl_dev,
+};
+
 struct dwc3_glue_ops rk_ops = {
-       .glue_get_ctrl_dev = dwc3_rk_glue_get_ctrl_dev,
+       .glue_get_ctrl_dev = dwc3_flat_dt_get_ctrl_dev,
 };
 
 static int dwc3_glue_bind_common(struct udevice *parent, ofnode node)
 {
@@ -711,8 +719,9 @@ static const struct udevice_id dwc3_glue_ids[] = {
        { .compatible = "rockchip,rk3568-dwc3", .data = (ulong)&rk_ops },
        { .compatible = "rockchip,rk3576-dwc3", .data = (ulong)&rk_ops },
        { .compatible = "rockchip,rk3588-dwc3", .data = (ulong)&rk_ops },
        { .compatible = "qcom,dwc3", .data = (ulong)&qcom_ops },
+       { .compatible = "qcom,snps-dwc3", .data = (ulong)&qcom_flat_dt_ops },
        { .compatible = "fsl,imx8mp-dwc3", .data = (ulong)&imx8mp_ops },
        { .compatible = "fsl,imx8mq-dwc3" },
        { .compatible = "intel,tangier-dwc3" },
        { .compatible = "samsung,exynos7870-dwusb3" },

-- 
2.51.0

Reply via email to