Hi Patrick On 9/20/22 13:39, Patrick Delaunay wrote: > Use regulator_set_enable_if_allowed() api instead of regulator_set_enable() > while disabling vbus supply. This way the driver doesn't see an error > when it disable an always-on regulator for VBUS. > > This patch is needed for STM32MP157C-DK2 board when the regulator > v3v3: buck4 used as the phy vbus supply in kernel device tree > is always on with the next hack for low power use-case: > > &usbphyc_port0 { > ... > /* > * Hack to keep hub active until all connected devices are suspended > * otherwise the hub will be powered off as soon as the v3v3 is disabled > * and it can disturb connected devices. > */ > connector { > compatible = "usb-a-connector"; > vbus-supply = <&v3v3>; > }; > }; > > Without this patch and the previous update in DT the command > "usb stop" failed and the next command "usb start" cause a crash. > > Signed-off-by: Patrick Delaunay <patrick.delau...@foss.st.com> > --- > > drivers/phy/phy-stm32-usbphyc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/phy/phy-stm32-usbphyc.c b/drivers/phy/phy-stm32-usbphyc.c > index 9f0b7d71187..dcf2194e9a7 100644 > --- a/drivers/phy/phy-stm32-usbphyc.c > +++ b/drivers/phy/phy-stm32-usbphyc.c > @@ -375,7 +375,7 @@ static int stm32_usbphyc_phy_power_off(struct phy *phy) > return 0; > > if (usbphyc_phy->vbus) { > - ret = regulator_set_enable(usbphyc_phy->vbus, false); > + ret = regulator_set_enable_if_allowed(usbphyc_phy->vbus, false); > if (ret) > return ret; > } Reviewed-by: Patrice Chotard <patrice.chot...@foss.st.com>
Thanks Patrice