clk: imx: keep hsio bus clock always on
authorJacky Bai <ping.bai@nxp.com>
Fri, 28 Oct 2022 09:52:10 +0000 (17:52 +0800)
committerAbel Vesa <abel.vesa@linaro.org>
Mon, 21 Nov 2022 22:04:49 +0000 (00:04 +0200)
During Linux System suspend/resume stress test after System Sleep
enabled, system will stuck sometimes. It is because NICMIX is powered
down, which HSIOMIX(always on) is not powered down. When NICMIX
powering down, HSIOMIX will get a hardware handshake, without HSIO ROOT clk,
the handshake will lose. Then after NICMIX power on when system resume,
the access to HSIOMIX through NICMIX would be broken. So keep HSIO ROOT
always on.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Link: https://lore.kernel.org/r/20221028095211.2598312-6-peng.fan@oss.nxp.com
drivers/clk/imx/clk-imx93.c

index 87c414d76370025a9d691bf4df1578515243fec7..20cedff8b0a62e5d8b27c0790a0a9d0d9a2140cd 100644 (file)
@@ -109,7 +109,11 @@ static const struct imx93_clk_root {
        { IMX93_CLK_CCM_CKO2,           "ccm_cko2_root",        0x1d00, CKO2_SEL, },
        { IMX93_CLK_CCM_CKO3,           "ccm_cko3_root",        0x1d80, CKO1_SEL, },
        { IMX93_CLK_CCM_CKO4,           "ccm_cko4_root",        0x1e00, CKO2_SEL, },
-       { IMX93_CLK_HSIO,               "hsio_root",            0x1e80, LOW_SPEED_IO_SEL, },
+       /*
+        * Critical because clk is used for handshake between HSIOMIX and NICMIX when
+        * NICMIX power down/on during system suspend/resume
+        */
+       { IMX93_CLK_HSIO,               "hsio_root",            0x1e80, LOW_SPEED_IO_SEL, CLK_IS_CRITICAL},
        { IMX93_CLK_HSIO_USB_TEST_60M,  "hsio_usb_test_60m_root", 0x1f00, LOW_SPEED_IO_SEL, },
        { IMX93_CLK_HSIO_ACSCAN_80M,    "hsio_acscan_80m_root", 0x1f80, LOW_SPEED_IO_SEL, },
        { IMX93_CLK_HSIO_ACSCAN_480M,   "hsio_acscan_480m_root", 0x2000, MISC_SEL, },