Hi Vadivel, On Wed, 2020-06-17 at 11:58 +0800, Ramuthevar,Vadivel MuruganX wrote: > From: Ramuthevar Vadivel Murugan <vadivel.muruganx.ramuthevar@xxxxxxxxxxxxxxx> > > Add support for USB PHY on Intel LGM SoC. > > Signed-off-by: Ramuthevar Vadivel Murugan <vadivel.muruganx.ramuthevar@xxxxxxxxxxxxxxx> > --- > drivers/usb/phy/Kconfig | 11 ++ > drivers/usb/phy/Makefile | 1 + > drivers/usb/phy/phy-lgm-usb.c | 275 ++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 287 insertions(+) > create mode 100644 drivers/usb/phy/phy-lgm-usb.c > [...] > diff --git a/drivers/usb/phy/phy-lgm-usb.c b/drivers/usb/phy/phy-lgm-usb.c > new file mode 100644 > index 000000000000..3da772dfd736 > --- /dev/null > +++ b/drivers/usb/phy/phy-lgm-usb.c > @@ -0,0 +1,275 @@ [...] > + for (i = 0; i < ARRAY_SIZE(CTL_RESETS); i++) { > + resets[i] = devm_reset_control_get_exclusive(dev, CTL_RESETS[i]); > + if (IS_ERR(resets[i])) { > + dev_err(dev, "%s reset not found\n", CTL_RESETS[i]); > + return PTR_ERR(resets[i]); > + } > + } > + > + for (i = 0; i < ARRAY_SIZE(PHY_RESETS); i++) { > + ta->resets[i] = devm_reset_control_get_exclusive(dev, PHY_RESETS[i]); > + if (IS_ERR(ta->resets[i])) { > + dev_err(dev, "%s reset not found\n", PHY_RESETS[i]); > + return PTR_ERR(ta->resets[i]); > + } > + } > + > + for (i = 0; i < ARRAY_SIZE(CTL_RESETS); i++) > + reset_control_assert(resets[i]); > + > + for (i = 0; i < ARRAY_SIZE(PHY_RESETS); i++) > + reset_control_assert(ta->resets[i]); > + /* > + * Out-of-band reset of the controller after PHY reset will cause > + * controller malfunctioning, so we should use in-band controller > + * reset only and leave the controller de-asserted here. > + */ > + for (i = 0; i < ARRAY_SIZE(CTL_RESETS); i++) > + reset_control_deassert(resets[i]); This driver could probably benefit from a reset_bulk API similar to the clk_bulk and regulator_bulk APIs, but that doesn't exist yet. For the reset handling in this driver, Reviewed-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> regards Philipp