Hi, John Stultz writes: > The dwc3 core binding specifies three clocks: > ref, bus_early, and suspend > > which are all controlled in the driver together. > > However some variants of the hardware my not have all three clks ^^ may In fact *all* platforms have all three clocks. It's just that in some cases clock pins are shorted together (or take input from same clock). > So this patch reworks the reading of the clks from the dts to > use devm_clk_bulk_get_all() will will fetch all the clocks ^^^^ which? > specified in the dts together. > > This patch was reccomended by Rob Herring > as an alternative to creating multiple bindings for each variant > of hardware when the only unique bits were clocks and resets. > > Cc: Greg Kroah-Hartman > Cc: Rob Herring > Cc: Mark Rutland > CC: ShuFan Lee > Cc: Heikki Krogerus > Cc: Suzuki K Poulose > Cc: Chunfeng Yun > Cc: Yu Chen > Cc: Felipe Balbi > Cc: Hans de Goede > Cc: Andy Shevchenko > Cc: Jun Li > Cc: Valentin Schneider > Cc: Jack Pham > Cc: linux-usb@vger.kernel.org > Cc: devicetree@vger.kernel.org > Suggested-by: Rob Herring > Signed-off-by: John Stultz > --- > v3: Rework dwc3 core rather then adding another dwc-of-simple > binding. > --- > drivers/usb/dwc3/core.c | 20 +++++--------------- > 1 file changed, 5 insertions(+), 15 deletions(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index a039e35ec7ad..4d4f1836b62c 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -305,12 +305,6 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc) > return 0; > } > > -static const struct clk_bulk_data dwc3_core_clks[] = { > - { .id = "ref" }, > - { .id = "bus_early" }, > - { .id = "suspend" }, > -}; another option would be to pass three clocks with the same phandle. That would even make sure that clock usage counts are correct, no? -- balbi