usb: dwc3: imx8mp: Set out of band wakeup for i.MX95
authorPeng Fan <peng.fan@nxp.com>
Mon, 22 Sep 2025 02:21:10 +0000 (10:21 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 19 Nov 2025 17:06:49 +0000 (18:06 +0100)
i.MX95 DWC3 inside HSIOMIX could still wakeup Linux, even if HSIOMIX
power domain(Digital logic) is off. There is still always on logic
have the wakeup capability which is out band wakeup capbility.

So use device_set_out_band_wakeup for i.MX95 to make sure DWC3 could
wakeup system even if HSIOMIX power domain is in off state.

Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Tested-by: Xu Yang <xu.yang_2@nxp.com>
Reviewed-by: Xu Yang <xu.yang_2@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/usb/dwc3/dwc3-imx8mp.c

index bce6af8..225d59e 100644 (file)
@@ -334,10 +334,15 @@ static int dwc3_imx8mp_pm_suspend(struct device *dev)
 
        ret = dwc3_imx8mp_suspend(dwc3_imx, PMSG_SUSPEND);
 
-       if (device_may_wakeup(dwc3_imx->dev))
+       if (device_may_wakeup(dwc3_imx->dev)) {
                enable_irq_wake(dwc3_imx->irq);
-       else
+
+               if (device_is_compatible(dev, "fsl,imx95-dwc3"))
+                       device_set_out_band_wakeup(dev);
+
+       } else {
                clk_disable_unprepare(dwc3_imx->suspend_clk);
+       }
 
        clk_disable_unprepare(dwc3_imx->hsio_clk);
        dev_dbg(dev, "dwc3 imx8mp pm suspend.\n");