Hi Casey, Thank you for the patch.
On Wed, Jan 14, 2026 at 15:13, Casey Connolly <[email protected]> wrote: > Qualcomm devicetrees are moving away from having a glue node with dwc3 > as a subnode and now may just have a single flattened node. In the commit message, could you provide a link to an example dt who has this 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 > + Debug leftover? Please drop for v2. > #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

