usb: dwc2: disable platform lowlevel hw resources during shutdown
Subsystems (2)
PATCH 1/1 usb: dwc2: disable platform lowlevel hw resources during shutdown
On some SoC platforms, in shutdown stage, most components' power is cut off, but there's still power supply to the so called always-on domain, so if the dwc2's regulator is from the always-on domain, we need to explicitly disable it to save power.
Disable platform lowlevel hw resources such as phy, clock and regulators etc. in device shutdown hook to reduce non-necessary power consumption when the platform enters shutdown stage.
--- drivers/usb/dwc2/platform.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/usb/dwc2/platform.c +3 -0
@@ -371,6 +371,9 @@ static void dwc2_driver_shutdown(struct platform_device *dev)dwc2_disable_global_interrupts (hsotg);synchronize_irq (hsotg->irq); + +if (hsotg->ll_hw_enabled) +dwc2_lowlevel_hw_disable (hsotg); }/**
Signature · 1 line
2.49.0
Quoted 10 lines · Jisheng Zhang
On some SoC platforms, in shutdown stage, most components' power is cut off, but there's still power supply to the so called always-on domain, so if the dwc2's regulator is from the always-on domain, we need to explicitly disable it to save power.
Disable platform lowlevel hw resources such as phy, clock and regulators etc. in device shutdown hook to reduce non-necessary power consumption when the platform enters shutdown stage.
Signed-off-by Jisheng Zhang <[email protected]>
Quoted 18 lines
--- drivers/usb/dwc2/platform.c | 3 +++ 1 file changed, 3 insertions(+)drivers/usb/dwc2/platform.c +3
-0@@ -371,6 +371,9 @@ static void dwc2_driver_shutdown(struct platform_device *dev)dwc2_disable_global_interrupts (hsotg);synchronize_irq (hsotg->irq); + +if (hsotg->ll_hw_enabled) +dwc2_lowlevel_hw_disable (hsotg); }/**