|
@@ -0,0 +1,112 @@
|
|
|
+From e9cdd7d6cf2a5031a968dc21f4f566101b602150 Mon Sep 17 00:00:00 2001
|
|
|
+From: Sebastian Reichel <[email protected]>
|
|
|
+Date: Wed, 11 Dec 2024 17:58:54 +0100
|
|
|
+Subject: [PATCH] clk: rockchip: rk3588: drop RK3588_LINKED_CLK
|
|
|
+
|
|
|
+With the proper GATE_LINK support, we no longer need to keep the
|
|
|
+linked clocks always on. Thus it's time to drop the CLK_IS_CRITICAL
|
|
|
+flag for them.
|
|
|
+
|
|
|
+Signed-off-by: Sebastian Reichel <[email protected]>
|
|
|
+Link: https://lore.kernel.org/r/[email protected]
|
|
|
+Signed-off-by: Heiko Stuebner <[email protected]>
|
|
|
+---
|
|
|
+ drivers/clk/rockchip/clk-rk3588.c | 27 ++++++++++++---------------
|
|
|
+ 1 file changed, 12 insertions(+), 15 deletions(-)
|
|
|
+
|
|
|
+--- a/drivers/clk/rockchip/clk-rk3588.c
|
|
|
++++ b/drivers/clk/rockchip/clk-rk3588.c
|
|
|
+@@ -12,9 +12,6 @@
|
|
|
+ #include <dt-bindings/clock/rockchip,rk3588-cru.h>
|
|
|
+ #include "clk.h"
|
|
|
+
|
|
|
+-#define RK3588_LINKED_CLK CLK_IS_CRITICAL
|
|
|
+-
|
|
|
+-
|
|
|
+ #define RK3588_GRF_SOC_STATUS0 0x600
|
|
|
+ #define RK3588_PHYREF_ALT_GATE 0xc38
|
|
|
+
|
|
|
+@@ -1439,7 +1436,7 @@ static struct rockchip_clk_branch rk3588
|
|
|
+ COMPOSITE_NODIV(HCLK_NVM_ROOT, "hclk_nvm_root", mux_200m_100m_50m_24m_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(77), 0, 2, MFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(31), 0, GFLAGS),
|
|
|
+- COMPOSITE(ACLK_NVM_ROOT, "aclk_nvm_root", gpll_cpll_p, RK3588_LINKED_CLK,
|
|
|
++ COMPOSITE(ACLK_NVM_ROOT, "aclk_nvm_root", gpll_cpll_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(77), 7, 1, MFLAGS, 2, 5, DFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(31), 1, GFLAGS),
|
|
|
+ GATE(ACLK_EMMC, "aclk_emmc", "aclk_nvm_root", 0,
|
|
|
+@@ -1668,13 +1665,13 @@ static struct rockchip_clk_branch rk3588
|
|
|
+ RK3588_CLKGATE_CON(42), 9, GFLAGS),
|
|
|
+
|
|
|
+ /* vdpu */
|
|
|
+- COMPOSITE(ACLK_VDPU_ROOT, "aclk_vdpu_root", gpll_cpll_aupll_p, RK3588_LINKED_CLK,
|
|
|
++ COMPOSITE(ACLK_VDPU_ROOT, "aclk_vdpu_root", gpll_cpll_aupll_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(98), 5, 2, MFLAGS, 0, 5, DFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(44), 0, GFLAGS),
|
|
|
+ COMPOSITE_NODIV(ACLK_VDPU_LOW_ROOT, "aclk_vdpu_low_root", mux_400m_200m_100m_24m_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(98), 7, 2, MFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(44), 1, GFLAGS),
|
|
|
+- COMPOSITE_NODIV(HCLK_VDPU_ROOT, "hclk_vdpu_root", mux_200m_100m_50m_24m_p, RK3588_LINKED_CLK,
|
|
|
++ COMPOSITE_NODIV(HCLK_VDPU_ROOT, "hclk_vdpu_root", mux_200m_100m_50m_24m_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(98), 9, 2, MFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(44), 2, GFLAGS),
|
|
|
+ COMPOSITE(ACLK_JPEG_DECODER_ROOT, "aclk_jpeg_decoder_root", gpll_cpll_aupll_spll_p, 0,
|
|
|
+@@ -1725,9 +1722,9 @@ static struct rockchip_clk_branch rk3588
|
|
|
+ COMPOSITE(ACLK_RKVENC0_ROOT, "aclk_rkvenc0_root", gpll_cpll_npll_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(102), 7, 2, MFLAGS, 2, 5, DFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(47), 1, GFLAGS),
|
|
|
+- GATE(HCLK_RKVENC0, "hclk_rkvenc0", "hclk_rkvenc0_root", RK3588_LINKED_CLK,
|
|
|
++ GATE(HCLK_RKVENC0, "hclk_rkvenc0", "hclk_rkvenc0_root", 0,
|
|
|
+ RK3588_CLKGATE_CON(47), 4, GFLAGS),
|
|
|
+- GATE(ACLK_RKVENC0, "aclk_rkvenc0", "aclk_rkvenc0_root", RK3588_LINKED_CLK,
|
|
|
++ GATE(ACLK_RKVENC0, "aclk_rkvenc0", "aclk_rkvenc0_root", 0,
|
|
|
+ RK3588_CLKGATE_CON(47), 5, GFLAGS),
|
|
|
+ COMPOSITE(CLK_RKVENC0_CORE, "clk_rkvenc0_core", gpll_cpll_aupll_npll_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(102), 14, 2, MFLAGS, 9, 5, DFLAGS,
|
|
|
+@@ -1737,10 +1734,10 @@ static struct rockchip_clk_branch rk3588
|
|
|
+ RK3588_CLKGATE_CON(48), 6, GFLAGS),
|
|
|
+
|
|
|
+ /* vi */
|
|
|
+- COMPOSITE(ACLK_VI_ROOT, "aclk_vi_root", gpll_cpll_npll_aupll_spll_p, RK3588_LINKED_CLK,
|
|
|
++ COMPOSITE(ACLK_VI_ROOT, "aclk_vi_root", gpll_cpll_npll_aupll_spll_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(106), 5, 3, MFLAGS, 0, 5, DFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(49), 0, GFLAGS),
|
|
|
+- COMPOSITE_NODIV(HCLK_VI_ROOT, "hclk_vi_root", mux_200m_100m_50m_24m_p, RK3588_LINKED_CLK,
|
|
|
++ COMPOSITE_NODIV(HCLK_VI_ROOT, "hclk_vi_root", mux_200m_100m_50m_24m_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(106), 8, 2, MFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(49), 1, GFLAGS),
|
|
|
+ COMPOSITE_NODIV(PCLK_VI_ROOT, "pclk_vi_root", mux_100m_50m_24m_p, 0,
|
|
|
+@@ -1910,10 +1907,10 @@ static struct rockchip_clk_branch rk3588
|
|
|
+ COMPOSITE(ACLK_VOP_ROOT, "aclk_vop_root", gpll_cpll_dmyaupll_npll_spll_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(110), 5, 3, MFLAGS, 0, 5, DFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(52), 0, GFLAGS),
|
|
|
+- COMPOSITE_NODIV(ACLK_VOP_LOW_ROOT, "aclk_vop_low_root", mux_400m_200m_100m_24m_p, RK3588_LINKED_CLK,
|
|
|
++ COMPOSITE_NODIV(ACLK_VOP_LOW_ROOT, "aclk_vop_low_root", mux_400m_200m_100m_24m_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(110), 8, 2, MFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(52), 1, GFLAGS),
|
|
|
+- COMPOSITE_NODIV(HCLK_VOP_ROOT, "hclk_vop_root", mux_200m_100m_50m_24m_p, RK3588_LINKED_CLK,
|
|
|
++ COMPOSITE_NODIV(HCLK_VOP_ROOT, "hclk_vop_root", mux_200m_100m_50m_24m_p, 0,
|
|
|
+ RK3588_CLKSEL_CON(110), 10, 2, MFLAGS,
|
|
|
+ RK3588_CLKGATE_CON(52), 2, GFLAGS),
|
|
|
+ COMPOSITE_NODIV(PCLK_VOP_ROOT, "pclk_vop_root", mux_100m_50m_24m_p, 0,
|
|
|
+@@ -2416,7 +2413,7 @@ static struct rockchip_clk_branch rk3588
|
|
|
+ static struct rockchip_clk_branch rk3588_clk_branches[] = {
|
|
|
+ GATE_LINK(ACLK_ISP1_PRE, "aclk_isp1_pre", "aclk_isp1_root", ACLK_VI_ROOT, 0, RK3588_CLKGATE_CON(26), 6, GFLAGS),
|
|
|
+ GATE_LINK(HCLK_ISP1_PRE, "hclk_isp1_pre", "hclk_isp1_root", HCLK_VI_ROOT, 0, RK3588_CLKGATE_CON(26), 8, GFLAGS),
|
|
|
+- GATE_LINK(HCLK_NVM, "hclk_nvm", "hclk_nvm_root", ACLK_NVM_ROOT, RK3588_LINKED_CLK, RK3588_CLKGATE_CON(31), 2, GFLAGS),
|
|
|
++ GATE_LINK(HCLK_NVM, "hclk_nvm", "hclk_nvm_root", ACLK_NVM_ROOT, 0, RK3588_CLKGATE_CON(31), 2, GFLAGS),
|
|
|
+ GATE_LINK(ACLK_USB, "aclk_usb", "aclk_usb_root", ACLK_VO1USB_TOP_ROOT, 0, RK3588_CLKGATE_CON(42), 2, GFLAGS),
|
|
|
+ GATE_LINK(HCLK_USB, "hclk_usb", "hclk_usb_root", HCLK_VO1USB_TOP_ROOT, 0, RK3588_CLKGATE_CON(42), 3, GFLAGS),
|
|
|
+ GATE_LINK(ACLK_JPEG_DECODER_PRE, "aclk_jpeg_decoder_pre", "aclk_jpeg_decoder_root", ACLK_VDPU_ROOT, 0, RK3588_CLKGATE_CON(44), 7, GFLAGS),
|
|
|
+@@ -2428,9 +2425,9 @@ static struct rockchip_clk_branch rk3588
|
|
|
+ GATE_LINK(HCLK_RKVDEC1_PRE, "hclk_rkvdec1_pre", "hclk_rkvdec1_root", HCLK_VDPU_ROOT, 0, RK3588_CLKGATE_CON(41), 4, GFLAGS),
|
|
|
+ GATE_LINK(ACLK_RKVDEC1_PRE, "aclk_rkvdec1_pre", "aclk_rkvdec1_root", ACLK_VDPU_ROOT, 0, RK3588_CLKGATE_CON(41), 5, GFLAGS),
|
|
|
+ GATE_LINK(ACLK_HDCP0_PRE, "aclk_hdcp0_pre", "aclk_vo0_root", ACLK_VOP_LOW_ROOT, 0, RK3588_CLKGATE_CON(55), 9, GFLAGS),
|
|
|
+- GATE_LINK(HCLK_VO0, "hclk_vo0", "hclk_vo0_root", HCLK_VOP_ROOT, RK3588_LINKED_CLK, RK3588_CLKGATE_CON(55), 5, GFLAGS),
|
|
|
++ GATE_LINK(HCLK_VO0, "hclk_vo0", "hclk_vo0_root", HCLK_VOP_ROOT, 0, RK3588_CLKGATE_CON(55), 5, GFLAGS),
|
|
|
+ GATE_LINK(ACLK_HDCP1_PRE, "aclk_hdcp1_pre", "aclk_hdcp1_root", ACLK_VO1USB_TOP_ROOT, 0, RK3588_CLKGATE_CON(59), 6, GFLAGS),
|
|
|
+- GATE_LINK(HCLK_VO1, "hclk_vo1", "hclk_vo1_root", HCLK_VO1USB_TOP_ROOT, RK3588_LINKED_CLK, RK3588_CLKGATE_CON(59), 9, GFLAGS),
|
|
|
++ GATE_LINK(HCLK_VO1, "hclk_vo1", "hclk_vo1_root", HCLK_VO1USB_TOP_ROOT, 0, RK3588_CLKGATE_CON(59), 9, GFLAGS),
|
|
|
+ GATE_LINK(ACLK_AV1_PRE, "aclk_av1_pre", "aclk_av1_root", ACLK_VDPU_ROOT, 0, RK3588_CLKGATE_CON(68), 1, GFLAGS),
|
|
|
+ GATE_LINK(PCLK_AV1_PRE, "pclk_av1_pre", "pclk_av1_root", HCLK_VDPU_ROOT, 0, RK3588_CLKGATE_CON(68), 4, GFLAGS),
|
|
|
+ GATE_LINK(HCLK_SDIO_PRE, "hclk_sdio_pre", "hclk_sdio_root", HCLK_NVM, 0, RK3588_CLKGATE_CON(75), 1, GFLAGS),
|