
From: Yang Xiwen forbidden405@outlook.com
child ofnode is more useful and can be used to query a lot of other props of child device. dr_mode can be also queried from it.
Signed-off-by: Yang Xiwen forbidden405@outlook.com --- drivers/usb/dwc3/dwc3-generic.c | 12 ++++-------- drivers/usb/dwc3/dwc3-generic.h | 3 +-- 2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c index 6fb2de8a5a..d892042b91 100644 --- a/drivers/usb/dwc3/dwc3-generic.c +++ b/drivers/usb/dwc3/dwc3-generic.c @@ -272,8 +272,7 @@ U_BOOT_DRIVER(dwc3_generic_host) = { }; #endif
-void dwc3_imx8mp_glue_configure(struct udevice *dev, int index, - enum usb_dr_mode mode) +void dwc3_imx8mp_glue_configure(struct udevice *dev, ofnode child, int index) { /* USB glue registers */ #define USB_CTRL0 0x00 @@ -323,8 +322,7 @@ struct dwc3_glue_ops imx8mp_ops = { .glue_configure = dwc3_imx8mp_glue_configure, };
-void dwc3_ti_glue_configure(struct udevice *dev, int index, - enum usb_dr_mode mode) +void dwc3_ti_glue_configure(struct udevice *dev, ofnode child, int index) { #define USBOTGSS_UTMI_OTG_STATUS 0x0084 #define USBOTGSS_UTMI_OTG_OFFSET 0x0480 @@ -348,6 +346,7 @@ enum dwc3_omap_utmi_mode { u32 reg; u32 utmi_mode; u32 utmi_status_offset = USBOTGSS_UTMI_OTG_STATUS; + enum usb_dr_mode mode = usb_get_dr_mode(child);
struct dwc3_glue_data *glue = dev_get_plat(dev); void *base = map_physmem(glue->regs, 0x10000, MAP_NOCACHE); @@ -577,12 +576,9 @@ int dwc3_glue_probe(struct udevice *dev) }
while (child) { - enum usb_dr_mode dr_mode; - - dr_mode = usb_get_dr_mode(dev_ofnode(child)); device_find_next_child(&child); if (ops && ops->glue_configure) - ops->glue_configure(dev, index, dr_mode); + ops->glue_configure(dev, dev_ofnode(child), index); index++; }
diff --git a/drivers/usb/dwc3/dwc3-generic.h b/drivers/usb/dwc3/dwc3-generic.h index 40902c8923..46c14a338b 100644 --- a/drivers/usb/dwc3/dwc3-generic.h +++ b/drivers/usb/dwc3/dwc3-generic.h @@ -22,8 +22,7 @@ struct dwc3_glue_data {
struct dwc3_glue_ops { int (*glue_get_ctrl_dev)(struct udevice *parent, ofnode *node); - void (*glue_configure)(struct udevice *dev, int index, - enum usb_dr_mode mode); + void (*glue_configure)(struct udevice *parent, ofnode node, int index); };
int dwc3_glue_bind(struct udevice *parent);