On Wed, Feb 26, 2025 at 04:17:50PM -0800, Bjorn Andersson wrote: > When the core is integrated with glue, it's reasonable to assume that > the glue driver will have to touch the IP before/after the core takes > the hardware out and into reset. As such the glue must own these > resources and be allowed to turn them on/off outside the core's > handling. > > Allow the platform or glue layer to indicate if the core logic for > clocks and resets should be skipped to deal with this. > > Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxxxx> > --- > drivers/usb/dwc3/core.c | 19 +++++++++++-------- > drivers/usb/dwc3/glue.h | 1 + > 2 files changed, 12 insertions(+), 8 deletions(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index d9f0a6782d36..aecdde8dc999 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -2328,6 +2330,7 @@ static int dwc3_probe(struct platform_device *pdev) > > probe_data.dwc = dwc; > probe_data.res = res; > + probe_data.ignore_clocks_and_resets = false; Isn't it a default value? > > return dwc3_core_probe(&probe_data); > } > diff --git a/drivers/usb/dwc3/glue.h b/drivers/usb/dwc3/glue.h > index e73cfc466012..1ddb451bdbd0 100644 > --- a/drivers/usb/dwc3/glue.h > +++ b/drivers/usb/dwc3/glue.h > @@ -17,6 +17,7 @@ > struct dwc3_probe_data { > struct dwc3 *dwc; > struct resource *res; > + bool ignore_clocks_and_resets; > }; > > int dwc3_core_probe(const struct dwc3_probe_data *data); > > -- > 2.45.2 > -- With best wishes Dmitry