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

