AI Trajectory


Trajectory: (Expand/Collapse All)
Seq Timestamp Type Name Duration
0/0 2026/10/27 16:52 flow patch-triage
2m Args:
null

Results:
{
  "EnableConfigs": null,
  "FocusSymbols": [],
  "KMSANReasoning": "",
  "NeedsKMSAN": false,
  "Reasoning": "The patch series adds clock controller and soft-reset driver support for the Rockchip RK3572 SoC (an ARM64 SoC platform), including a new fractional divider implementation. Initialization is handled solely via CLK_OF_DECLARE using Device Tree matching (of_clk_init), which is exclusive to ARM/ARM64 and other non-x86 architectures and does not execute on amd64. Because the target architecture is amd64, the modified code paths are structurally unreachable.",
  "WorthFuzzing": false
}

1/1 2026/10/27 16:52 action read-patch-diff
0m Args:
null

Results:
{
  "PatchDiff": "commit e31add673683cf4562600fe655df7be222c8b5d6\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate:   Tue Oct 27 16:52:01 2026 +0000\n\n    syz-cluster: applied patch under review\n\ndiff --git a/Documentation/devicetree/bindings/clock/rockchip,rk3572-cru.yaml b/Documentation/devicetree/bindings/clock/rockchip,rk3572-cru.yaml\nnew file mode 100644\nindex 00000000000000..fd38009ac31aa6\n--- /dev/null\n+++ b/Documentation/devicetree/bindings/clock/rockchip,rk3572-cru.yaml\n@@ -0,0 +1,57 @@\n+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause\n+%YAML 1.2\n+---\n+$id: http://devicetree.org/schemas/clock/rockchip,rk3572-cru.yaml#\n+$schema: http://devicetree.org/meta-schemas/core.yaml#\n+\n+title: Rockchip RK3572 Family Clock and Reset Control Module\n+\n+maintainers:\n+  - Elaine Zhang \u003czhangqing@rock-chips.com\u003e\n+  - Heiko Stuebner \u003cheiko@sntech.de\u003e\n+\n+description:\n+  The RK3572 CRU supplies peripheral clocks and resets.\n+\n+properties:\n+  compatible:\n+    const: rockchip,rk3572-cru\n+\n+  reg:\n+    maxItems: 1\n+\n+  \"#clock-cells\":\n+    const: 1\n+\n+  \"#reset-cells\":\n+    const: 1\n+\n+  clocks:\n+    maxItems: 1\n+\n+  clock-names:\n+    items:\n+      - const: xin24m\n+\n+  rockchip,grf:\n+    $ref: /schemas/types.yaml#/definitions/phandle\n+    description: PMU0 GRF register block.\n+\n+required:\n+  - compatible\n+  - reg\n+  - \"#clock-cells\"\n+  - \"#reset-cells\"\n+  - rockchip,grf\n+\n+additionalProperties: false\n+\n+examples:\n+  - |\n+    clock-controller@26090000 {\n+        compatible = \"rockchip,rk3572-cru\";\n+        reg = \u003c0x26090000 0x60000\u003e;\n+        #clock-cells = \u003c1\u003e;\n+        #reset-cells = \u003c1\u003e;\n+        rockchip,grf = \u003c\u0026pmu0_grf\u003e;\n+    };\ndiff --git a/drivers/clk/rockchip/Kconfig b/drivers/clk/rockchip/Kconfig\nindex 4b55f48d72c26d..8efd54fd295dd8 100644\n--- a/drivers/clk/rockchip/Kconfig\n+++ b/drivers/clk/rockchip/Kconfig\n@@ -142,6 +142,13 @@ config CLK_RK3568\n \thelp\n \t  Build the driver for RK3568 Clock Driver.\n \n+config CLK_RK3572\n+\tbool \"Rockchip RK3572 clock controller support\"\n+\tdepends on ARM64 || COMPILE_TEST\n+\tdefault y\n+\thelp\n+\t  Build the driver for RK3572 Clock Driver.\n+\n config CLK_RK3576\n \tbool \"Rockchip RK3576 clock controller support\"\n \tdepends on ARM64 || COMPILE_TEST\ndiff --git a/drivers/clk/rockchip/Makefile b/drivers/clk/rockchip/Makefile\nindex 554b7eb83dc914..9141da0eee33c8 100644\n--- a/drivers/clk/rockchip/Makefile\n+++ b/drivers/clk/rockchip/Makefile\n@@ -10,6 +10,7 @@ clk-rockchip-y += clk-pll.o\n clk-rockchip-y += clk-cpu.o\n clk-rockchip-y += clk-gate-grf.o\n clk-rockchip-y += clk-half-divider.o\n+clk-rockchip-y += clk-fractional-divider-v2.o\n clk-rockchip-y += clk-inverter.o\n clk-rockchip-y += clk-mmc-phase.o\n clk-rockchip-y += clk-muxgrf.o\n@@ -36,5 +37,6 @@ obj-$(CONFIG_CLK_RK3506)\t+= clk-rk3506.o rst-rk3506.o\n obj-$(CONFIG_CLK_RK3528)\t+= clk-rk3528.o rst-rk3528.o\n obj-$(CONFIG_CLK_RK3562)\t+= clk-rk3562.o rst-rk3562.o\n obj-$(CONFIG_CLK_RK3568)\t+= clk-rk3568.o\n+obj-$(CONFIG_CLK_RK3572)\t+= clk-rk3572.o rst-rk3572.o\n obj-$(CONFIG_CLK_RK3576)\t+= clk-rk3576.o rst-rk3576.o\n obj-$(CONFIG_CLK_RK3588)\t+= clk-rk3588.o rst-rk3588.o\ndiff --git a/drivers/clk/rockchip/clk-fractional-divider-v2.c b/drivers/clk/rockchip/clk-fractional-divider-v2.c\nnew file mode 100644\nindex 00000000000000..102e03f9d6e60e\n--- /dev/null\n+++ b/drivers/clk/rockchip/clk-fractional-divider-v2.c\n@@ -0,0 +1,354 @@\n+// SPDX-License-Identifier: GPL-2.0\n+/*\n+ * Copyright (c) 2024 Rockchip Electronics Co., Ltd.\n+ *\n+ * Adjustable fractional divider clock implementation.\n+ * Uses rational best approximation algorithm.\n+ *\n+ * Output is calculated as\n+ *\n+ *\trate = (m / n) * parent_rate\t\t\t\t(1)\n+ *\n+ * This is useful when we have a prescaler block which asks for\n+ * m (numerator) and n (denominator) values to be provided to satisfy\n+ * the (1) as much as possible.\n+ *\n+ * Since m and n have the limitation by a range, e.g.\n+ *\n+ *\tn \u003e= 1, n \u003c N_width, where N_width = 2^nwidth\t\t(2)\n+ *\n+ * for some cases the output may be saturated. Hence, from (1) and (2),\n+ * assuming the worst case when m = 1, the inequality\n+ *\n+ *\tfloor(log2(parent_rate / rate)) \u003c= nwidth\t\t(3)\n+ *\n+ * may be derived. Thus, in cases when\n+ *\n+ *\t(parent_rate / rate) \u003e\u003e N_width\t\t\t\t(4)\n+ *\n+ * we might scale up the rate by 2^scale (see the description of\n+ * CLK_FRAC_DIVIDER_POWER_OF_TWO_PS for additional information), where\n+ *\n+ *\tscale = floor(log2(parent_rate / rate)) - nwidth\t(5)\n+ *\n+ * and assume that the IP, that needs m and n, has also its own\n+ * prescaler, which is capable to divide by 2^scale. In this way\n+ * we get the denominator to satisfy the desired range (2) and\n+ * at the same time a much better result of m and n than simple\n+ * saturated values.\n+ */\n+\n+#include \u003clinux/clk-provider.h\u003e\n+#include \u003clinux/io.h\u003e\n+#include \u003clinux/device.h\u003e\n+#include \u003clinux/slab.h\u003e\n+#include \u003clinux/rational.h\u003e\n+#include \"clk.h\"\n+\n+struct clk_fractional_divider_v2 {\n+\tstruct clk_hw\thw;\n+\tvoid __iomem\t*reg;\n+\tvoid __iomem\t*high_reg;\n+\tu8\t\tmshift;\n+\tu8\t\tmwidth;\n+\tu32\t\tmmask;\n+\tu8\t\tnshift;\n+\tu8\t\tnwidth;\n+\tu32\t\tnmask;\n+\tu8\t\thigh_mshift;\n+\tu8\t\thigh_mwidth;\n+\tu32\t\thigh_mmask;\n+\tu8\t\thigh_nshift;\n+\tu8\t\thigh_nwidth;\n+\tu32\t\thigh_nmask;\n+\tu8\t\tflags;\n+\tvoid\t\t(*approximation)(struct clk_hw *hw,\n+\t\t\t\t\t unsigned long rate,\n+\t\t\t\t\t unsigned long *parent_rate,\n+\t\t\t\t\t unsigned long *m, unsigned long *n);\n+\tspinlock_t\t*lock; /* Protects the low and high register pair. */\n+};\n+\n+#define to_clk_fd_v2(_hw) container_of(_hw, struct clk_fractional_divider_v2, hw)\n+\n+static inline u32 clk_fd_v2_readl(struct clk_fractional_divider_v2 *fd,\n+\t\t\t\t  void __iomem *reg)\n+{\n+\treturn readl(reg);\n+}\n+\n+static inline void clk_fd_v2_writel(struct clk_fractional_divider_v2 *fd,\n+\t\t\t\t    void __iomem *reg, u32 val)\n+{\n+\twritel(val, reg);\n+}\n+\n+static unsigned long clk_fd_v2_recalc_rate(struct clk_hw *hw,\n+\t\t\t\t\t   unsigned long parent_rate)\n+{\n+\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\n+\tunsigned long flags = 0;\n+\tunsigned long m_low, n_low, m_high, n_high, m, n;\n+\tu32 val_low, val_high;\n+\tu64 ret;\n+\n+\tif (fd-\u003elock)\n+\t\tspin_lock_irqsave(fd-\u003elock, flags);\n+\telse\n+\t\t__acquire(fd-\u003elock);\n+\n+\tval_low = clk_fd_v2_readl(fd, fd-\u003ereg);\n+\tval_high = clk_fd_v2_readl(fd, fd-\u003ehigh_reg);\n+\n+\tif (fd-\u003elock)\n+\t\tspin_unlock_irqrestore(fd-\u003elock, flags);\n+\telse\n+\t\t__release(fd-\u003elock);\n+\n+\tm_low = (val_low \u0026 fd-\u003emmask) \u003e\u003e fd-\u003emshift;\n+\tn_low = (val_low \u0026 fd-\u003enmask) \u003e\u003e fd-\u003enshift;\n+\tm_high = (val_high \u0026 fd-\u003ehigh_mmask) \u003e\u003e fd-\u003ehigh_mshift;\n+\tn_high = (val_high \u0026 fd-\u003ehigh_nmask) \u003e\u003e fd-\u003ehigh_nshift;\n+\tm = (m_high \u003c\u003c 16) | m_low;\n+\tn = (n_high \u003c\u003c 16) | n_low;\n+\n+\tif (fd-\u003eflags \u0026 CLK_FRAC_DIVIDER_ZERO_BASED) {\n+\t\tm++;\n+\t\tn++;\n+\t}\n+\n+\tif (!n || !m)\n+\t\treturn parent_rate;\n+\n+\tret = (u64)parent_rate * m;\n+\tdo_div(ret, n);\n+\n+\treturn ret;\n+}\n+\n+static void clk_fractional_divider_general_approximation_v2(struct clk_hw *hw,\n+\t\t\t\t\t\t\t    unsigned long rate,\n+\t\t\t\t\t\t\t    unsigned long *parent_rate,\n+\t\t\t\t\t\t\t    unsigned long *m, unsigned long *n)\n+{\n+\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\n+\tunsigned long scale;\n+\n+\t/*\n+\t * Get rate closer to *parent_rate to guarantee there is no overflow\n+\t * for m and n. In the result it will be the nearest rate left shifted\n+\t * by (scale - fd-\u003enwidth) bits.\n+\t *\n+\t * For the detailed explanation see the top comment in this file.\n+\t */\n+\tscale = fls_long(*parent_rate / rate - 1);\n+\tif (scale \u003e fd-\u003enwidth)\n+\t\trate \u003c\u003c= scale - fd-\u003enwidth;\n+\n+\trational_best_approximation(rate, *parent_rate,\n+\t\t\t\t    GENMASK(fd-\u003emwidth - 1, 0),\n+\t\t\t\t    GENMASK(fd-\u003enwidth - 1, 0),\n+\t\t\t\t    m, n);\n+}\n+\n+static int clk_fd_v2_get_divider(struct clk_hw *hw, unsigned long rate,\n+\t\t\t\t unsigned long parent_rate,\n+\t\t\t\t unsigned long *m, unsigned long *n)\n+{\n+\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\n+\tu32 factor;\n+\n+\trational_best_approximation(rate, parent_rate,\n+\t\t\t\t    GENMASK(fd-\u003emwidth - 1, 0),\n+\t\t\t\t    GENMASK(fd-\u003enwidth - 1, 0),\n+\t\t\t\t    m, n);\n+\n+\tif (fd-\u003eflags \u0026 CLK_FRAC_DIVIDER_ZERO_BASED) {\n+\t\t(*m)--;\n+\t\t(*n)--;\n+\t}\n+\t/*\n+\t * When compensation the fractional divider,\n+\t * the [1:0] bits of the numerator register are omitted,\n+\t * which will lead to a large deviation in the result.\n+\t * Therefore, it is required that the numerator must\n+\t * be at least 4.\n+\t *\n+\t * Note that there are some exceptions here:\n+\t * If there is an even frac div, we need to keep the original\n+\t * numerator(\u003c4) and denominator. Otherwise, it may cause the\n+\t * issue that the duty ratio is not 50%.\n+\t */\n+\tif (*m \u003c 4 \u0026\u0026 *m != 0) {\n+\t\tif (*n % 2 == 0)\n+\t\t\tfactor = 1;\n+\t\telse\n+\t\t\tfactor = DIV_ROUND_UP(4, *m);\n+\n+\t\tif (*m \u003e GENMASK(fd-\u003emwidth - 1, 0) / factor ||\n+\t\t    *n \u003e GENMASK(fd-\u003enwidth - 1, 0) / factor)\n+\t\t\treturn -EINVAL;\n+\n+\t\t*n *= factor;\n+\t\t*m *= factor;\n+\t}\n+\n+\treturn 0;\n+}\n+\n+static int clk_fd_v2_determine_rate(struct clk_hw *hw,\n+\t\t\t\t    struct clk_rate_request *req)\n+{\n+\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\n+\tunsigned long m, n;\n+\tu64 ret;\n+\n+\tif (!req-\u003erate || req-\u003erate \u003e= req-\u003ebest_parent_rate) {\n+\t\treq-\u003erate = req-\u003ebest_parent_rate;\n+\t\treturn 0;\n+\t}\n+\n+\tif (fd-\u003eapproximation)\n+\t\tfd-\u003eapproximation(hw, req-\u003erate, \u0026req-\u003ebest_parent_rate, \u0026m, \u0026n);\n+\telse\n+\t\tclk_fractional_divider_general_approximation_v2(hw, req-\u003erate,\n+\t\t\t\t\t\t\t\t\u0026req-\u003ebest_parent_rate,\n+\t\t\t\t\t\t\t\t\u0026m, \u0026n);\n+\n+\tret = (u64)req-\u003ebest_parent_rate * m;\n+\tdo_div(ret, n);\n+\treq-\u003erate = ret;\n+\n+\t/* Validate the rounded rate that set_rate() will receive. */\n+\treturn clk_fd_v2_get_divider(hw, req-\u003erate, req-\u003ebest_parent_rate, \u0026m, \u0026n);\n+}\n+\n+static int clk_fd_v2_set_rate(struct clk_hw *hw, unsigned long rate,\n+\t\t\t      unsigned long parent_rate)\n+{\n+\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\n+\tunsigned long flags = 0;\n+\tunsigned long m, n, m_low, n_low, m_high, n_high;\n+\tu32 val, val_high;\n+\tint ret;\n+\n+\tret = clk_fd_v2_get_divider(hw, rate, parent_rate, \u0026m, \u0026n);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\tif (fd-\u003elock)\n+\t\tspin_lock_irqsave(fd-\u003elock, flags);\n+\telse\n+\t\t__acquire(fd-\u003elock);\n+\n+\tm_low = m \u0026 fd-\u003enmask;\n+\tn_low = n \u0026 fd-\u003enmask;\n+\tm_high = (m \u0026 GENMASK(fd-\u003emwidth - 1, (fd-\u003emwidth - fd-\u003ehigh_mwidth))) \u003e\u003e\n+\t\t (fd-\u003emwidth - fd-\u003ehigh_mwidth);\n+\tn_high = (n \u0026 GENMASK(fd-\u003enwidth - 1, (fd-\u003enwidth - fd-\u003ehigh_nwidth))) \u003e\u003e\n+\t\t (fd-\u003enwidth - fd-\u003ehigh_nwidth);\n+\n+\tval_high = clk_fd_v2_readl(fd, fd-\u003ehigh_reg);\n+\tval_high \u0026= ~(fd-\u003ehigh_mmask | fd-\u003ehigh_nmask);\n+\tval_high |= (m_high \u003c\u003c fd-\u003ehigh_mshift) | (n_high \u003c\u003c fd-\u003ehigh_nshift);\n+\n+\tclk_fd_v2_writel(fd, fd-\u003ehigh_reg, val_high);\n+\n+\tval = clk_fd_v2_readl(fd, fd-\u003ereg);\n+\tval \u0026= ~(fd-\u003emmask | fd-\u003enmask);\n+\tval |= (m_low \u003c\u003c fd-\u003emshift) | (n_low \u003c\u003c fd-\u003enshift);\n+\tclk_fd_v2_writel(fd, fd-\u003ereg, val);\n+\n+\tif (fd-\u003elock)\n+\t\tspin_unlock_irqrestore(fd-\u003elock, flags);\n+\telse\n+\t\t__release(fd-\u003elock);\n+\n+\treturn 0;\n+}\n+\n+static const struct clk_ops clk_fractional_divider_ops_v2 = {\n+\t.recalc_rate = clk_fd_v2_recalc_rate,\n+\t.determine_rate = clk_fd_v2_determine_rate,\n+\t.set_rate = clk_fd_v2_set_rate,\n+};\n+\n+static struct clk_hw *clk_hw_register_fractional_divider_v2(struct device *dev,\n+\t\t\t\t\t\t\t    const char *name,\n+\t\t\t\t\t\t\t    const char *parent_name,\n+\t\t\t\t\t\t\t    unsigned long flags,\n+\t\t\t\t\t\t\t    void __iomem *reg,\n+\t\t\t\t\t\t\t    u8 mshift, u8 mwidth,\n+\t\t\t\t\t\t\t    u8 nshift, u8 nwidth,\n+\t\t\t\t\t\t\t    void __iomem *high_reg,\n+\t\t\t\t\t\t\t    u8 high_mshift, u8 high_mwidth,\n+\t\t\t\t\t\t\t    u8 high_nshift, u8 high_nwidth,\n+\t\t\t\t\t\t\t    u8 clk_divider_flags,\n+\t\t\t\t\t\t\t    spinlock_t *lock)\n+{\n+\tstruct clk_fractional_divider_v2 *fd;\n+\tstruct clk_init_data init;\n+\tstruct clk_hw *hw;\n+\tint ret;\n+\n+\tfd = kzalloc_obj(*fd);\n+\tif (!fd)\n+\t\treturn ERR_PTR(-ENOMEM);\n+\n+\tinit.name = name;\n+\tinit.ops = \u0026clk_fractional_divider_ops_v2;\n+\tinit.flags = flags;\n+\tinit.parent_names = parent_name ? \u0026parent_name : NULL;\n+\tinit.num_parents = parent_name ? 1 : 0;\n+\n+\tfd-\u003ereg = reg;\n+\tfd-\u003emshift = mshift;\n+\tfd-\u003emwidth = mwidth + high_mwidth;\n+\tfd-\u003emmask = GENMASK(mwidth - 1, 0) \u003c\u003c mshift;\n+\tfd-\u003enshift = nshift;\n+\tfd-\u003enwidth = nwidth + high_nwidth;\n+\tfd-\u003enmask = GENMASK(nwidth - 1, 0) \u003c\u003c nshift;\n+\tfd-\u003ehigh_reg = high_reg;\n+\tfd-\u003ehigh_mshift = high_mshift;\n+\tfd-\u003ehigh_mwidth = high_mwidth;\n+\tfd-\u003ehigh_mmask = GENMASK(high_mwidth - 1, 0) \u003c\u003c high_mshift;\n+\tfd-\u003ehigh_nshift = high_nshift;\n+\tfd-\u003ehigh_nwidth = high_nwidth;\n+\tfd-\u003ehigh_nmask = GENMASK(high_nwidth - 1, 0) \u003c\u003c high_nshift;\n+\tfd-\u003eflags = clk_divider_flags;\n+\tfd-\u003elock = lock;\n+\tfd-\u003ehw.init = \u0026init;\n+\n+\thw = \u0026fd-\u003ehw;\n+\tret = clk_hw_register(dev, hw);\n+\tif (ret) {\n+\t\tkfree(fd);\n+\t\thw = ERR_PTR(ret);\n+\t}\n+\n+\treturn hw;\n+}\n+\n+struct clk *rockchip_clk_register_frac_v2(struct device *dev,\n+\t\t\t\t\t  const char *name,\n+\t\t\t\t\t  const char *parent_name,\n+\t\t\t\t\t  unsigned long flags,\n+\t\t\t\t\t  void __iomem *reg,\n+\t\t\t\t\t  u8 mshift, u8 width,\n+\t\t\t\t\t  void __iomem *high_reg,\n+\t\t\t\t\t  u8 high_mshift, u8 high_width,\n+\t\t\t\t\t  u8 clk_divider_flags,\n+\t\t\t\t\t  spinlock_t *lock)\n+{\n+\tstruct clk_hw *hw;\n+\n+\thw = clk_hw_register_fractional_divider_v2(dev, name, parent_name, flags,\n+\t\t\t\t\t\t   reg, mshift, width, 0, width,\n+\t\t\t\t\t\t   high_reg, high_mshift, high_width,\n+\t\t\t\t\t\t   0, high_width,\n+\t\t\t\t\t\t   clk_divider_flags,\n+\t\t\t\t\t\t   lock);\n+\tif (IS_ERR(hw))\n+\t\treturn ERR_CAST(hw);\n+\treturn hw-\u003eclk;\n+}\ndiff --git a/drivers/clk/rockchip/clk-rk3572.c b/drivers/clk/rockchip/clk-rk3572.c\nnew file mode 100644\nindex 00000000000000..487459615db219\n--- /dev/null\n+++ b/drivers/clk/rockchip/clk-rk3572.c\n@@ -0,0 +1,1981 @@\n+// SPDX-License-Identifier: GPL-2.0\n+/*\n+ * Copyright (c) 2025 Rockchip Electronics Co., Ltd.\n+ * Author: Elaine Zhang \u003czhangqing@rock-chips.com\u003e\n+ */\n+\n+#include \u003clinux/clk-provider.h\u003e\n+#include \u003clinux/mfd/syscon.h\u003e\n+#include \u003clinux/of.h\u003e\n+#include \u003clinux/of_address.h\u003e\n+#include \u003clinux/slab.h\u003e\n+#include \u003cdt-bindings/clock/rockchip,rk3572-cru.h\u003e\n+#include \"clk.h\"\n+\n+#define RK3572_FRACDIV_HIGH_AUDIO_0\t0xcd4\n+#define RK3572_FRACDIV_HIGH_AUDIO_1\t0xcd8\n+#define RK3572_FRACDIV_HIGH_AUDIO_2\t0xcdc\n+\n+#define RK3572_GRF_SOC_STATUS0\t\t0x600\n+#define RK3572_PMU0_GRF_OSC_CON6\t0x18\n+\n+enum rk3572_plls {\n+\tbpll, lpll, vpll, aupll, cpll, gpll, ppll,\n+};\n+\n+static struct rockchip_pll_rate_table rk3572_pll_rates[] = {\n+\t/* _mhz, _p, _m, _s, _k */\n+\tRK3588_PLL_RATE(2520000000, 2, 210, 0, 0),\n+\tRK3588_PLL_RATE(2496000000, 2, 208, 0, 0),\n+\tRK3588_PLL_RATE(2472000000, 2, 206, 0, 0),\n+\tRK3588_PLL_RATE(2448000000, 2, 204, 0, 0),\n+\tRK3588_PLL_RATE(2424000000, 2, 202, 0, 0),\n+\tRK3588_PLL_RATE(2400000000, 2, 200, 0, 0),\n+\tRK3588_PLL_RATE(2376000000, 2, 198, 0, 0),\n+\tRK3588_PLL_RATE(2352000000, 2, 196, 0, 0),\n+\tRK3588_PLL_RATE(2328000000, 2, 194, 0, 0),\n+\tRK3588_PLL_RATE(2304000000, 2, 192, 0, 0),\n+\tRK3588_PLL_RATE(2280000000, 2, 190, 0, 0),\n+\tRK3588_PLL_RATE(2256000000, 2, 376, 1, 0),\n+\tRK3588_PLL_RATE(2232000000, 2, 372, 1, 0),\n+\tRK3588_PLL_RATE(2208000000, 2, 368, 1, 0),\n+\tRK3588_PLL_RATE(2184000000, 2, 364, 1, 0),\n+\tRK3588_PLL_RATE(2160000000, 2, 360, 1, 0),\n+\tRK3588_PLL_RATE(2136000000, 2, 356, 1, 0),\n+\tRK3588_PLL_RATE(2112000000, 2, 352, 1, 0),\n+\tRK3588_PLL_RATE(2088000000, 2, 348, 1, 0),\n+\tRK3588_PLL_RATE(2064000000, 2, 344, 1, 0),\n+\tRK3588_PLL_RATE(2040000000, 2, 340, 1, 0),\n+\tRK3588_PLL_RATE(2016000000, 2, 336, 1, 0),\n+\tRK3588_PLL_RATE(1992000000, 2, 332, 1, 0),\n+\tRK3588_PLL_RATE(1968000000, 2, 328, 1, 0),\n+\tRK3588_PLL_RATE(1944000000, 2, 324, 1, 0),\n+\tRK3588_PLL_RATE(1920000000, 2, 320, 1, 0),\n+\tRK3588_PLL_RATE(1896000000, 2, 316, 1, 0),\n+\tRK3588_PLL_RATE(1872000000, 2, 312, 1, 0),\n+\tRK3588_PLL_RATE(1848000000, 2, 308, 1, 0),\n+\tRK3588_PLL_RATE(1824000000, 2, 304, 1, 0),\n+\tRK3588_PLL_RATE(1800000000, 2, 300, 1, 0),\n+\tRK3588_PLL_RATE(1776000000, 2, 296, 1, 0),\n+\tRK3588_PLL_RATE(1752000000, 2, 292, 1, 0),\n+\tRK3588_PLL_RATE(1728000000, 2, 288, 1, 0),\n+\tRK3588_PLL_RATE(1704000000, 2, 284, 1, 0),\n+\tRK3588_PLL_RATE(1680000000, 2, 280, 1, 0),\n+\tRK3588_PLL_RATE(1656000000, 2, 276, 1, 0),\n+\tRK3588_PLL_RATE(1632000000, 2, 272, 1, 0),\n+\tRK3588_PLL_RATE(1608000000, 2, 268, 1, 0),\n+\tRK3588_PLL_RATE(1584000000, 2, 264, 1, 0),\n+\tRK3588_PLL_RATE(1560000000, 2, 260, 1, 0),\n+\tRK3588_PLL_RATE(1536000000, 2, 256, 1, 0),\n+\tRK3588_PLL_RATE(1512000000, 2, 252, 1, 0),\n+\tRK3588_PLL_RATE(1488000000, 2, 248, 1, 0),\n+\tRK3588_PLL_RATE(1464000000, 2, 244, 1, 0),\n+\tRK3588_PLL_RATE(1440000000, 2, 240, 1, 0),\n+\tRK3588_PLL_RATE(1416000000, 2, 236, 1, 0),\n+\tRK3588_PLL_RATE(1392000000, 2, 232, 1, 0),\n+\tRK3588_PLL_RATE(1320000000, 2, 220, 1, 0),\n+\tRK3588_PLL_RATE(1200000000, 2, 200, 1, 0),\n+\tRK3588_PLL_RATE(1188000000, 2, 198, 1, 0),\n+\tRK3588_PLL_RATE(1186814000, 2, 198, 1, -12955),\n+\tRK3588_PLL_RATE(1186812000, 2, 198, 1, -12977),\n+\tRK3588_PLL_RATE(1109000000, 3, 554, 2, 32767),\n+\tRK3588_PLL_RATE(1100000000, 3, 550, 2, 0),\n+\tRK3588_PLL_RATE(1051000000, 3, 525, 2, 32767),\n+\tRK3588_PLL_RATE(1008000000, 2, 336, 2, 0),\n+\tRK3588_PLL_RATE(1000000000, 3, 500, 2, 0),\n+\tRK3588_PLL_RATE(983040000, 4, 655, 2, 23592),\n+\tRK3588_PLL_RATE(955520000, 3, 478, 2, -15730),\n+\tRK3588_PLL_RATE(903168000, 6, 903, 2, 11009),\n+\tRK3588_PLL_RATE(900000000, 2, 300, 2, 0),\n+\tRK3588_PLL_RATE(816000000, 2, 272, 2, 0),\n+\tRK3588_PLL_RATE(786432000, 2, 262, 2, 9437),\n+\tRK3588_PLL_RATE(786000000, 1, 131, 2, 0),\n+\tRK3588_PLL_RATE(785560000, 3, 393, 2, -14419),\n+\tRK3588_PLL_RATE(773000000, 2, 258, 2, -21846),\n+\tRK3588_PLL_RATE(722534400, 8, 963, 2, 24850),\n+\tRK3588_PLL_RATE(697000000, 2, 232, 2, 21845),\n+\tRK3588_PLL_RATE(610400000, 3, 305, 2, 13107),\n+\tRK3588_PLL_RATE(604800000, 1, 101, 2, -13108),\n+\tRK3588_PLL_RATE(600000000, 2, 200, 2, 0),\n+\tRK3588_PLL_RATE(594000000, 2, 198, 2, 0),\n+\tRK3588_PLL_RATE(408000000, 2, 272, 3, 0),\n+\tRK3588_PLL_RATE(312000000, 2, 208, 3, 0),\n+\tRK3588_PLL_RATE(266580000, 1, 178, 4, -18351),\n+\tRK3588_PLL_RATE(216000000, 2, 288, 4, 0),\n+\tRK3588_PLL_RATE(96000000, 2, 256, 5, 0),\n+\t{ /* sentinel */ },\n+};\n+\n+static struct rockchip_pll_rate_table rk3572_ppll_rates[] = {\n+\t/* _mhz, _p, _m, _s, _k */\n+\tRK3588_PLL_RATE(1300000000, 3, 325, 2, 0),\n+\t{ /* sentinel */ },\n+};\n+\n+static struct rockchip_pll_rate_table rk3572_aupll_rates[] = {\n+\tRK3588_PLL_RATE(786000000, 1, 131, 2, 0),\n+\t{ /* sentinel */ },\n+};\n+\n+#define RK3572_ACLK_M_BIGCORE_DIV_MASK\t\t0x1f\n+#define RK3572_ACLK_M_BIGCORE_DIV_SHIFT\t\t9\n+#define RK3572_PCLK_DBG_BIGCORE_DIV_MASK\t0x1f\n+#define RK3572_PCLK_DBG_BIGCORE_DIV_SHIFT\t10\n+#define RK3572_ACLK_M_LITCORE_DIV_MASK\t\t0x1f\n+#define RK3572_ACLK_M_LITCORE_DIV_SHIFT\t\t2\n+#define RK3572_PCLK_DBG_LITCORE_DIV_MASK\t0x1f\n+#define RK3572_PCLK_DBG_LITCORE_DIV_SHIFT\t7\n+#define RK3572_ACLK_CCI_DIV_MASK\t\t0x1f\n+#define RK3572_ACLK_CCI_DIV_SHIFT\t\t7\n+#define RK3572_ACLK_CCI_MUX_MASK\t\t0x3\n+#define RK3572_ACLK_CCI_MUX_SHIFT\t\t12\n+\n+#define RK3572_BIGCORE_CLKSEL1(_amcore)\t\t\t\t\t\t\\\n+{\t\t\t\t\t\t\t\t\t\t\\\n+\t.reg = RK3572_BIGCORE_CLKSEL_CON(1),\t\t\t\t\t\\\n+\t.val = HIWORD_UPDATE((_amcore) - 1, RK3572_ACLK_M_BIGCORE_DIV_MASK,\t\\\n+\t\t\tRK3572_ACLK_M_BIGCORE_DIV_SHIFT),\t\t\t\\\n+}\n+\n+#define RK3572_BIGCORE_CLKSEL2(_pclkdbg)\t\t\t\t\t\\\n+{\t\t\t\t\t\t\t\t\t\t\\\n+\t.reg = RK3572_BIGCORE_CLKSEL_CON(2),\t\t\t\t\t\\\n+\t.val = HIWORD_UPDATE((_pclkdbg) - 1, RK3572_PCLK_DBG_BIGCORE_DIV_MASK,\t\\\n+\t\t\tRK3572_PCLK_DBG_BIGCORE_DIV_SHIFT),\t\t\t\\\n+}\n+\n+#define RK3572_LITCORE0_CLKSEL1(_amcore, _pclkdbg)\t\t\t\t\\\n+{\t\t\t\t\t\t\t\t\t\t\\\n+\t.reg = RK3572_LITCORE0_CLKSEL_CON(1),\t\t\t\t\t\\\n+\t.val = HIWORD_UPDATE((_amcore) - 1, RK3572_ACLK_M_LITCORE_DIV_MASK,\t\\\n+\t\t\tRK3572_ACLK_M_LITCORE_DIV_SHIFT) |\t\t\t\\\n+\t       HIWORD_UPDATE((_pclkdbg) - 1, RK3572_PCLK_DBG_LITCORE_DIV_MASK,\t\\\n+\t\t\tRK3572_PCLK_DBG_LITCORE_DIV_SHIFT),\t\t\t\\\n+}\n+\n+#define RK3572_LITCORE1_CLKSEL1(_amcore, _pclkdbg)\t\t\t\t\\\n+{\t\t\t\t\t\t\t\t\t\t\\\n+\t.reg = RK3572_LITCORE1_CLKSEL_CON(1),\t\t\t\t\t\\\n+\t.val = HIWORD_UPDATE((_amcore) - 1, RK3572_ACLK_M_LITCORE_DIV_MASK,\t\\\n+\t\t\tRK3572_ACLK_M_LITCORE_DIV_SHIFT) |\t\t\t\\\n+\t       HIWORD_UPDATE((_pclkdbg) - 1, RK3572_PCLK_DBG_LITCORE_DIV_MASK,\t\\\n+\t\t\tRK3572_PCLK_DBG_LITCORE_DIV_SHIFT),\t\t\t\\\n+}\n+\n+#define RK3572_CCI_CLKSEL3(_ccisel, _div)\t\t\t\t\t\\\n+{\t\t\t\t\t\t\t\t\t\t\\\n+\t.reg = RK3572_CCI_CLKSEL_CON(3),\t\t\t\t\t\\\n+\t.val = HIWORD_UPDATE(_ccisel, RK3572_ACLK_CCI_MUX_MASK,\t\t\t\\\n+\t\t\tRK3572_ACLK_CCI_MUX_SHIFT) |\t\t\t\t\\\n+\t       HIWORD_UPDATE((_div) - 1, RK3572_ACLK_CCI_DIV_MASK,\t\t\\\n+\t\t\tRK3572_ACLK_CCI_DIV_SHIFT),\t\t\t\t\\\n+}\n+\n+#define RK3572_CPUBCLK_RATE(_prate, _amcore, _pclkdbg)\t\t\t\t\\\n+{\t\t\t\t\t\t\t\t\t\t\\\n+\t.prate = _prate##U,\t\t\t\t\t\t\t\\\n+\t.divs = {\t\t\t\t\t\t\t\t\\\n+\t\tRK3572_BIGCORE_CLKSEL1(_amcore),\t\t\t\t\\\n+\t\tRK3572_BIGCORE_CLKSEL2(_pclkdbg),\t\t\t\t\\\n+\t},\t\t\t\t\t\t\t\t\t\\\n+}\n+\n+#define RK3572_CPUL0CLK_RATE(_prate, _amcore, _pclkdbg, _ccisel)\t\t\\\n+{\t\t\t\t\t\t\t\t\t\t\\\n+\t.prate = _prate##U,\t\t\t\t\t\t\t\\\n+\t.divs = {\t\t\t\t\t\t\t\t\\\n+\t\tRK3572_LITCORE0_CLKSEL1(_amcore, _pclkdbg),\t\t\t\\\n+\t},\t\t\t\t\t\t\t\t\t\\\n+\t.pre_muxs = {\t\t\t\t\t\t\t\t\\\n+\t\tRK3572_CCI_CLKSEL3(1, 2),\t\t\t\t\t\\\n+\t},\t\t\t\t\t\t\t\t\t\\\n+\t.post_muxs = {\t\t\t\t\t\t\t\t\\\n+\t\tRK3572_CCI_CLKSEL3(_ccisel, 2),\t\t\t\t\t\\\n+\t},\t\t\t\t\t\t\t\t\t\\\n+}\n+\n+#define RK3572_CPUL1CLK_RATE(_prate, _amcore, _pclkdbg)\t\t\t\t\\\n+{\t\t\t\t\t\t\t\t\t\t\\\n+\t.prate = _prate##U,\t\t\t\t\t\t\t\\\n+\t.divs = {\t\t\t\t\t\t\t\t\\\n+\t\tRK3572_LITCORE1_CLKSEL1(_amcore, _pclkdbg),\t\t\t\\\n+\t},\t\t\t\t\t\t\t\t\t\\\n+}\n+\n+static struct rockchip_cpuclk_rate_table rk3572_cpubclk_rates[] __initdata = {\n+\tRK3572_CPUBCLK_RATE(2496000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(2400000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(2304000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(2208000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(2184000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(2088000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(2040000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(2016000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1992000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1896000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1800000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1704000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1608000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1584000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1560000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1536000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1512000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1488000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1464000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1440000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1416000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1392000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1368000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1344000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1320000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1296000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1272000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1248000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1224000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1200000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1104000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(1008000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(912000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(816000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(696000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(600000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(408000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(312000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(216000000, 2, 6),\n+\tRK3572_CPUBCLK_RATE(96000000, 2, 6),\n+};\n+\n+static const struct rockchip_cpuclk_reg_data rk3572_cpubclk_data = {\n+\t.core_reg[0] = RK3572_BIGCORE_CLKSEL_CON(1),\n+\t.div_core_shift[0] = 0,\n+\t.div_core_mask[0] = 0x1f,\n+\t.num_cores = 1,\n+\t.mux_core_alt = 1,\n+\t.mux_core_main = 0,\n+\t.mux_core_shift = 5,\n+\t.mux_core_mask = 0x3,\n+};\n+\n+static struct rockchip_cpuclk_rate_table rk3572_cpul0clk_rates[] __initdata = {\n+\tRK3572_CPUL0CLK_RATE(2400000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(2304000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(2208000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(2184000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(2088000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(2040000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(2016000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1992000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1896000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1800000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1704000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1608000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1584000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1560000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1536000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1512000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1488000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1464000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1440000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1416000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1392000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1368000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1344000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1320000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1296000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1272000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1248000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1224000000, 2, 6, 0),\n+\tRK3572_CPUL0CLK_RATE(1200000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(1104000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(1008000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(912000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(816000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(696000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(600000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(408000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(312000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(216000000, 2, 6, 1),\n+\tRK3572_CPUL0CLK_RATE(96000000, 2, 6, 1),\n+};\n+\n+static const struct rockchip_cpuclk_reg_data rk3572_cpul0clk_data = {\n+\t.core_reg[0] = RK3572_LITCORE0_CLKSEL_CON(0),\n+\t.div_core_shift[0] = 3,\n+\t.div_core_mask[0] = 0x1f,\n+\t.num_cores = 1,\n+\t.mux_core_alt = 1,\n+\t.mux_core_main = 0,\n+\t.mux_core_shift = 8,\n+\t.mux_core_mask = 0x3,\n+};\n+\n+static struct rockchip_cpuclk_rate_table rk3572_cpul1clk_rates[] __initdata = {\n+\tRK3572_CPUL1CLK_RATE(2400000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(2304000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(2208000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(2184000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(2088000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(2040000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(2016000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1992000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1896000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1800000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1704000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1608000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1584000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1560000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1536000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1512000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1488000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1464000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1440000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1416000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1392000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1368000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1344000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1320000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1296000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1272000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1248000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1224000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1200000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1188000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1104000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(1008000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(912000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(816000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(696000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(600000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(594000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(408000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(396000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(312000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(216000000, 2, 6),\n+\tRK3572_CPUL1CLK_RATE(96000000, 2, 6),\n+};\n+\n+#define MFLAGS CLK_MUX_HIWORD_MASK\n+#define DFLAGS CLK_DIVIDER_HIWORD_MASK\n+#define GFLAGS (CLK_GATE_HIWORD_MASK | CLK_GATE_SET_TO_DISABLE)\n+\n+PNAME(mux_aupll_ref_p)\t\t\t= { \"xin24m\", \"aupll_ref_io\" };\n+PNAME(mux_pll_p)\t\t\t= { \"xin24m\", \"xin32k\" };\n+PNAME(mux_aupll_p)\t\t\t= { \"aupll_ref\", \"xin32k\" };\n+PNAME(mux_24m_32k_p)\t\t\t= { \"xin24m\", \"clk_32k\" };\n+PNAME(gpll_cpll_p)\t\t\t= { \"gpll\", \"cpll\" };\n+PNAME(gpll_cpll_24m_p)\t\t\t= { \"gpll\", \"cpll\", \"xin24m\" };\n+PNAME(gpll_cpll_aupll_p)\t\t= { \"gpll\", \"cpll\", \"aupll\" };\n+PNAME(gpll_cpll_aupll_24m_p)\t\t= { \"gpll\", \"cpll\", \"aupll\", \"xin24m\" };\n+PNAME(gpll_cpll_spll_aupll_p)\t\t= { \"gpll\", \"cpll\", \"spll\", \"aupll\" };\n+PNAME(gpll_spll_aupll_bpll_p)\t\t= { \"gpll\", \"spll\", \"aupll\", \"bpll_dummy\" };\n+PNAME(gpll_cpll_spll_aupll_bpll_p)\t= { \"gpll\", \"cpll\", \"spll\", \"aupll\", \"bpll_dummy\" };\n+PNAME(gpll_cpll_spll_aupll_bpll_24m_p) = {\n+\t\"gpll\", \"cpll\", \"spll\", \"aupll\", \"bpll_dummy\", \"xin24m\",\n+};\n+\n+PNAME(gpll_cpll_24m_spll_p)\t\t= { \"gpll\", \"cpll\", \"xin24m\", \"spll\" };\n+PNAME(gpll_cpll_bpll_p)\t\t\t= { \"gpll\", \"cpll\", \"bpll_dummy\" };\n+PNAME(gpll_cpll_spll_bpll_p)\t\t= { \"gpll\", \"cpll\", \"spll\", \"bpll_dummy\" };\n+PNAME(gpll_cpll_aupll_spll_p)\t\t= { \"gpll\", \"cpll\", \"aupll\", \"spll\" };\n+PNAME(gpll_cpll_aupll_spll_bpll_p)\t= { \"gpll\", \"cpll\", \"aupll\", \"spll\", \"bpll_dummy\" };\n+PNAME(gpll_cpll_spll_aupll_24m_p)\t= { \"gpll\", \"cpll\", \"spll\", \"aupll\", \"xin24m\" };\n+PNAME(gpll_spll_cpll_bpll_p)\t\t= { \"gpll\", \"spll\", \"cpll\", \"bpll_dummy\" };\n+PNAME(gpll_cpll_vpll_aupll_bpll_24m_p) = {\n+\t\"gpll\", \"cpll\", \"vpll\", \"aupll\", \"bpll_dummy\", \"xin24m\",\n+};\n+\n+PNAME(gpll_spll_isppvtpll_bpll_p)\t= { \"gpll\", \"spll\", \"clk_isp_pvtpll_src\", \"bpll_dummy\" };\n+PNAME(gpll_cpll_vpll_bpll_p)\t\t= { \"gpll\", \"cpll\", \"vpll\", \"bpll_dummy\" };\n+PNAME(gpll_24m_32k_p)\t\t\t= { \"gpll\", \"xin24m\", \"clk_32k\" };\n+PNAME(mux_24m_spll_gpll_cpll_p)\t\t= {\"xin24m\", \"spll\", \"gpll\", \"cpll\" };\n+PNAME(mux_100m_24m_p)\t\t\t= { \"clk_cpll_div10\", \"xin24m\" };\n+PNAME(mux_100m_24m_32k_p)\t\t= { \"clk_cpll_div10\", \"xin24m\", \"clk_32k\" };\n+PNAME(mux_100m_50m_24m_p)\t\t= { \"clk_cpll_div10\", \"clk_cpll_div20\", \"xin24m\" };\n+PNAME(mux_100m_50m_24m_rc_p) = {\n+\t\"clk_cpll_div10\", \"clk_cpll_div20\", \"xin24m\", \"clk_rcosc\",\n+};\n+\n+PNAME(mux_150m_100m_50m_24m_p) = {\n+\t\"clk_gpll_div8\", \"clk_cpll_div10\", \"clk_cpll_div20\", \"xin24m\",\n+};\n+\n+PNAME(mux_200m_100m_50m_24m_p) = {\n+\t\"clk_gpll_div6\", \"clk_cpll_div10\", \"clk_cpll_div20\", \"xin24m\",\n+};\n+\n+PNAME(mux_300m_200m_100m_24m_p) = {\n+\t\"clk_gpll_div4\", \"clk_gpll_div6\", \"clk_cpll_div10\", \"xin24m\",\n+};\n+\n+PNAME(mux_300m_200m_100m_50m_24m_p) = {\n+\t\"clk_gpll_div4\", \"clk_gpll_div6\", \"clk_cpll_div10\", \"clk_cpll_div20\", \"xin24m\",\n+};\n+\n+PNAME(mux_400m_200m_100m_24m_p) = {\n+\t\"clk_gpll_div3\", \"clk_gpll_div6\", \"clk_cpll_div10\", \"xin24m\",\n+};\n+\n+PNAME(mux_600m_400m_300m_24m_p) = {\n+\t\"clk_gpll_div2\", \"clk_gpll_div3\", \"clk_gpll_div4\", \"xin24m\",\n+};\n+\n+PNAME(mux_500m_250m_100m_24m_p) = {\n+\t\"clk_cpll_div2\", \"clk_cpll_div4\", \"clk_cpll_div10\", \"xin24m\",\n+};\n+\n+PNAME(mux_175m_116m_58m_24m_p) = {\n+\t\"clk_spll_div4\", \"clk_spll_div6\", \"clk_spll_div12\", \"xin24m\",\n+};\n+\n+PNAME(mux_116m_58m_24m_p)\t\t= { \"clk_spll_div6\", \"clk_spll_div12\", \"xin24m\" };\n+PNAME(clk_uart_src_p) = {\n+\t\"gpll\", \"cpll\", \"aupll\", \"xin24m\", \"clk_uart_frac_0\", \"clk_uart_frac_1\",\n+\t\"clk_uart_frac_2\",\n+};\n+\n+PNAME(ref_pulse_p) = {\n+\t\"usb0_sof_clk\", \"usb1_sof_clk\", \"gmac0_ptp_pps\", \"gmac1_ptp_pps\", \"asrc_ref_pulse\",\n+};\n+\n+PNAME(lrck_asrc_src_p) = {\n+\t\"asrc_sai0_fs_inter\", \"asrc_sai1_fs_inter\", \"asrc_sai2_fs_inter\", \"asrc_sai3_fs_inter\",\n+\t\"asrc_sai4_fs_inter\", \"asrc_sai5_fs_inter\", \"asrc_pdm0_clk\", \"asrc_spdifrx0_clk\",\n+\t\"asrc_spdifrx1_clk\", \"mclk_asrc0_src_0\", \"mclk_asrc1_src_1\",\n+};\n+\n+PNAME(lrck_asrc_dst_p) = {\n+\t\"asrc_sai0_fs_inter\", \"asrc_sai1_fs_inter\", \"asrc_sai2_fs_inter\", \"asrc_sai3_fs_inter\",\n+\t\"asrc_sai4_fs_inter\", \"asrc_sai5_fs_inter\", \"asrc_pdm0_clk\", \"asrc_spdiftx0_clk\",\n+\t\"asrc_spdiftx1_clk\", \"asrc_spdiftx2_clk\", \"mclk_asrc0_src_0\", \"mclk_asrc1_src_1\",\n+};\n+\n+PNAME(asrc_ref_pulse_p) = {\n+\t\"asrc_sai0_fs_inter\", \"asrc_sai1_fs_inter\", \"asrc_sai2_fs_inter\", \"asrc_sai3_fs_inter\",\n+\t\"asrc_sai4_fs_inter\", \"asrc_sai5_fs_inter\", \"asrc_spdifrx0_clk\", \"asrc_spdifrx1_clk\",\n+};\n+\n+PNAME(clk_freq_pwm1_p) = {\n+\t\"sai0_mclk_in\", \"sai1_mclk_in\", \"sai2_mclk_in\", \"sai3_mclk_in\", \"sai4_mclk_in\",\n+\t\"sai_sclkin_freq\",\n+};\n+\n+PNAME(clk_counter_pwm1_p) = {\n+\t\"sai0_mclk_in\", \"sai1_mclk_in\", \"sai2_mclk_in\", \"sai3_mclk_in\", \"sai4_mclk_in\",\n+\t\"sai_sclkin_counter\",\n+};\n+\n+PNAME(sai_sclkin_freq_p) = {\n+\t\"sai0_sclk_in\", \"sai1_sclk_in\", \"sai2_sclk_in\", \"sai3_sclk_in\", \"sai4_sclk_in\",\n+};\n+\n+PNAME(clk_timer7_p) = {\n+\t\"clk_cpll_div10\", \"xin24m\", \"mclk_asrc0_src_0\", \"mclk_asrc1_src_1\",\n+};\n+\n+PNAME(clk_timer8_p) = {\n+\t\"clk_cpll_div10\", \"xin24m\", \"mclk_asrc0_src_0\", \"mclk_asrc1_src_1\",\n+};\n+\n+PNAME(clk_gmac0_ptp_ref_src_p)\t\t= { \"clk_gmac0_ptp_ref_pre\", \"gmac0_ptp_refclk_in\" };\n+PNAME(clk_gmac1_ptp_ref_p)\t\t= { \"clk_gmac1_ptp_ref_src\", \"gmac1_ptp_refclk_in\" };\n+PNAME(clk_ref_pciephy_p) = {\n+\t\"clk_pcie_100m_src\", \"clk_pcie_100m_nduty_src\", \"xin24m\",\n+};\n+\n+PNAME(dclk_ebc_p)\t\t\t= { \"dclk_ebc_int_src\", \"dclk_ebc_frac_src\" };\n+PNAME(hclk_vi_root_p) = {\n+\t\"clk_gpll_div6\", \"clk_cpll_div10\", \"aclk_vi_root_inter\", \"xin24m\",\n+};\n+\n+PNAME(dclk_vp0_p)\t\t\t= { \"dclk_vp0_src\", \"clk_hdmiphy_pixel0\" };\n+PNAME(dclk_vp1_p)\t\t\t= { \"dclk_vp1_src\", \"clk_hdmiphy_pixel0\" };\n+PNAME(mux_24m_frac_int_mclk4_p) = {\n+\t\"xin24m\", \"clk_audio_frac_0\", \"clk_audio_frac_1\", \"clk_audio_frac_2\",\n+\t\"clk_audio_frac_3\", \"clk_audio_int_0\", \"clk_audio_int_1\", \"clk_audio_int_2\",\n+\t\"sai0_mclk_in\", \"sai1_mclk_in\", \"sai2_mclk_in\", \"sai3_mclk_in\",\n+};\n+\n+PNAME(mclk_sai4_p)\t\t\t= { \"mclk_sai4_src\", \"sai4_mclk_in\" };\n+PNAME(mclk_sai5_p)\t\t\t= { \"mclk_sai5_src\", \"sai4_mclk_in\" };\n+PNAME(mclk_spdif_tx2_p)\t\t\t= { \"mclk_spdif_tx2_src\", \"sai4_mclk_in\" };\n+PNAME(clk_ref_osc_mphy_p)\t\t= { \"xin24m\", \"clk_ref_mphy_26m\" };\n+PNAME(clk_pwm0_osc_p)\t\t\t= { \"xin24m\", \"clk_rcosc\" };\n+PNAME(sclk_uart1_p)\t\t\t= { \"clk_uart1_src_top\", \"xin24m\", \"clk_rcosc\" };\n+PNAME(clk_pdm0_p)\t\t\t= { \"clk_pdm0_src_top\", \"xin24m\", \"clk_rcosc\" };\n+PNAME(mclk_pdm0_p)\t\t\t= { \"mclk_pdm0_src_top\", \"xin24m\", \"clk_rcosc\" };\n+PNAME(pclk_phpsubsys_root_p)\t\t= { \"clk_cpll_div10_phpphy\", \"xin24m\" };\n+PNAME(mux_armclkl0_p)\t\t\t= { \"lpll\", \"gpll\", \"litcore0pvtpll\" };\n+PNAME(mux_armclkb_p)\t\t\t= { \"bpll\", \"gpll\", \"bigcorepvtpll\" };\n+PNAME(mux_armclkl1_p)\t\t\t= { \"lpll_dummy\", \"gpll\", \"litcore1pvtpll\" };\n+PNAME(sclk_apb2asb_src_p) = {\n+\t\"spll\", \"clk_gpll_div2\", \"clk_cpll_div2\", \"clk_gpll_div3\", \"clk_gpll_div4\",\n+};\n+\n+PNAME(sclk_apb2asb_p) = {\n+\t\"sclk_apb2asb_src\", \"clk_gpll_div6\", \"clk_cpll_div10\", \"xin24m\",\n+};\n+\n+PNAME(mux_24m_frac_int_mclki_p) = {\n+\t\"xin24m\", \"clk_audio_int_0\", \"clk_audio_int_1\", \"clk_audio_int_2\", \"clk_audio_frac_0\",\n+\t\"clk_audio_frac_1\", \"clk_audio_frac_2\", \"clk_audio_frac_3\", \"sai0_mclk_in\",\n+\t\"sai1_mclk_in\", \"sai2_mclk_in\", \"sai3_mclk_in\", \"sai4_mclk_in\",\n+};\n+\n+PNAME(mux_24m_frac_int_mclki_sclki_p) = {\n+\t\"xin24m\", \"clk_audio_int_0\", \"clk_audio_int_1\", \"clk_audio_int_2\", \"clk_audio_frac_0\",\n+\t\"clk_audio_frac_1\", \"clk_audio_frac_2\", \"clk_audio_frac_3\", \"sai0_mclk_in\",\n+\t\"sai1_mclk_in\", \"sai2_mclk_in\", \"sai3_mclk_in\", \"sai4_mclk_in\", \"sai0_sclk_in\",\n+\t\"sai1_sclk_in\", \"sai2_sclk_in\", \"sai3_sclk_in\", \"sai4_sclk_in\",\n+};\n+\n+static u32 mux_24m_frac_int_mclki_idx[] = {\n+\t0, 5, 6, 7, 1, 2, 3, 4, 8, 9, 10, 11, 12,\n+};\n+\n+static u32 mux_24m_frac_int_mclki_sclki_idx[] = {\n+\t0, 5, 6, 7, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n+};\n+\n+static struct rockchip_pll_clock rk3572_pll_clks[] __initdata = {\n+\t/* Keep BPLL and LPLL enabled for firmware consumers. */\n+\t[bpll] = PLL(pll_rk3588_core, PLL_BPLL, \"bpll\", mux_pll_p,\n+\t\t     CLK_IGNORE_UNUSED, RK3572_PLL_CON(0),\n+\t\t     RK3572_MODE_CON1, 0, 15, 0, rk3572_pll_rates),\n+\t[lpll] = PLL(pll_rk3588_core, PLL_LPLL, \"lpll\", mux_pll_p,\n+\t\t     CLK_IGNORE_UNUSED, RK3572_LPLL_CON(16),\n+\t\t     RK3572_LPLL_MODE_CON0, 0, 15, 0, rk3572_pll_rates),\n+\t[vpll] = PLL(pll_rk3588, PLL_VPLL, \"vpll\", mux_pll_p,\n+\t\t     0, RK3572_PLL_CON(88),\n+\t\t     RK3572_MODE_CON0, 4, 15, 0, rk3572_pll_rates),\n+\t[aupll] = PLL(pll_rk3588, PLL_AUPLL, \"aupll\", mux_aupll_p,\n+\t\t     0, RK3572_PLL_CON(96),\n+\t\t     RK3572_MODE_CON0, 6, 15, 0, rk3572_aupll_rates),\n+\t[cpll] = PLL(pll_rk3588, PLL_CPLL, \"cpll\", mux_pll_p,\n+\t\t     0, RK3572_PLL_CON(104),\n+\t\t     RK3572_MODE_CON0, 8, 15, 0, rk3572_pll_rates),\n+\t[gpll] = PLL(pll_rk3588, PLL_GPLL, \"gpll\", mux_pll_p,\n+\t\t     CLK_IGNORE_UNUSED, RK3572_PLL_CON(112),\n+\t\t     RK3572_MODE_CON0, 2, 15, 0, rk3572_pll_rates),\n+\t[ppll] = PLL(pll_rk3588_ddr, PLL_PPLL, \"ppll\", mux_pll_p,\n+\t\t     0, RK3572_PPLL_CON(128),\n+\t\t     RK3572_PPLL_CON(134), 15, 15, 0, rk3572_ppll_rates),\n+};\n+\n+static struct rockchip_clk_branch rk3572_clk_branches[] __initdata = {\n+\tCOMPOSITE_FRACMUX(CLK_32K, \"clk_32k\", \"xin24m\", CLK_IS_CRITICAL,\n+\t\t\t  RK3572_PMU_CLKSEL_CON(21), 0,\n+\t\t\tRK3572_PMU_CLKGATE_CON(7), 14, GFLAGS, NULL),\n+\n+\tCOMPOSITE(CLK_CPLL_DIV20, \"clk_cpll_div20\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(0), 5, 1, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 1, GFLAGS),\n+\tCOMPOSITE(CLK_CPLL_DIV10, \"clk_cpll_div10\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(0), 11, 1, MFLAGS, 6, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 2, GFLAGS),\n+\tCOMPOSITE(CLK_GPLL_DIV8, \"clk_gpll_div8\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(1), 5, 1, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 3, GFLAGS),\n+\tCOMPOSITE(CLK_GPLL_DIV6, \"clk_gpll_div6\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(1), 11, 1, MFLAGS, 6, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 4, GFLAGS),\n+\tCOMPOSITE(CLK_CPLL_DIV4, \"clk_cpll_div4\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(2), 5, 1, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 5, GFLAGS),\n+\tCOMPOSITE(CLK_GPLL_DIV4, \"clk_gpll_div4\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(2), 11, 1, MFLAGS, 6, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 6, GFLAGS),\n+\tCOMPOSITE(CLK_GPLL_DIV3, \"clk_gpll_div3\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(3), 12, 1, MFLAGS, 7, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 8, GFLAGS),\n+\tCOMPOSITE(CLK_CPLL_DIV2, \"clk_cpll_div2\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(4), 11, 1, MFLAGS, 6, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 10, GFLAGS),\n+\tCOMPOSITE(CLK_GPLL_DIV2, \"clk_gpll_div2\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(5), 5, 1, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 11, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_SRC, \"sclk_apb2asb_src\", sclk_apb2asb_src_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(6), 13, 3, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(0), 15, GFLAGS),\n+\tCOMPOSITE(CLK_DDRPHY_TOP_SRC, \"clk_ddrphy_top_src\", gpll_cpll_spll_aupll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(8), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(1), 1, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_TOP_ROOT, \"pclk_top_root\", mux_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(8), 7, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(1), 2, GFLAGS),\n+\tCOMPOSITE(ACLK_TOP, \"aclk_top\", gpll_cpll_spll_aupll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(9), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(1), 4, GFLAGS),\n+\tCOMPOSITE(ACLK_TOP_MID, \"aclk_top_mid\", gpll_cpll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(10), 5, 1, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(1), 7, GFLAGS),\n+\tCOMPOSITE(ACLK_SECURE_HIGH, \"aclk_secure_high\", gpll_spll_aupll_bpll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(10), 11, 2, MFLAGS, 6, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(1), 8, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_BPLL_DIV, \"clk_bpll_div\", \"bpll\", 0,\n+\t\t\tRK3572_CLKSEL_CON(11), 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(1), 9, GFLAGS),\n+\n+\tMUX(CLK_AUDIO_FRAC_0_SRC, \"clk_audio_frac_0_src\", gpll_cpll_aupll_24m_p, 0,\n+\t    RK3572_CLKSEL_CON(13), 0, 2, MFLAGS),\n+\tCOMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_0, \"clk_audio_frac_0\", \"clk_audio_frac_0_src\", 0,\n+\t\t\t  RK3572_CLKSEL_CON(12), 16, 16,\n+\t\t\t  RK3572_FRACDIV_HIGH_AUDIO_0, 8, 8, 0),\n+\tMUX(CLK_AUDIO_FRAC_1_SRC, \"clk_audio_frac_1_src\", gpll_cpll_aupll_24m_p, 0,\n+\t    RK3572_CLKSEL_CON(15), 0, 2, MFLAGS),\n+\tCOMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_1, \"clk_audio_frac_1\", \"clk_audio_frac_1_src\", 0,\n+\t\t\t  RK3572_CLKSEL_CON(14), 16, 16,\n+\t\t\t  RK3572_FRACDIV_HIGH_AUDIO_1, 8, 8, 0),\n+\tMUX(CLK_AUDIO_FRAC_2_SRC, \"clk_audio_frac_2_src\", gpll_cpll_aupll_24m_p, 0,\n+\t    RK3572_CLKSEL_CON(17), 0, 2, MFLAGS),\n+\tCOMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_2, \"clk_audio_frac_2\", \"clk_audio_frac_2_src\", 0,\n+\t\t\t  RK3572_CLKSEL_CON(16), 16, 16,\n+\t\t\t  RK3572_FRACDIV_HIGH_AUDIO_2, 8, 8, 0),\n+\tMUX(CLK_AUDIO_FRAC_3_SRC, \"clk_audio_frac_3_src\", gpll_cpll_aupll_24m_p, 0,\n+\t    RK3572_CLKSEL_CON(19), 0, 2, MFLAGS),\n+\tCOMPOSITE_FRAC(CLK_AUDIO_FRAC_3, \"clk_audio_frac_3\", \"clk_audio_frac_3_src\", 0,\n+\t\t       RK3572_CLKSEL_CON(18), 0,\n+\t\t\tRK3572_CLKGATE_CON(1), 14, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_TOP, \"hclk_top\", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(19), 2, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(1), 15, GFLAGS),\n+\tMUX(CLK_UART_FRAC_0_SRC, \"clk_uart_frac_0_src\", gpll_cpll_aupll_24m_p, 0,\n+\t    RK3572_CLKSEL_CON(23), 0, 2, MFLAGS),\n+\tCOMPOSITE_FRAC(CLK_UART_FRAC_0, \"clk_uart_frac_0\", \"clk_uart_frac_0_src\", 0,\n+\t\t       RK3572_CLKSEL_CON(22), 0,\n+\t\t\tRK3572_CLKGATE_CON(2), 6, GFLAGS),\n+\tMUX(CLK_UART_FRAC_1_SRC, \"clk_uart_frac_1_src\", gpll_cpll_aupll_24m_p, 0,\n+\t    RK3572_CLKSEL_CON(25), 0, 2, MFLAGS),\n+\tCOMPOSITE_FRAC(CLK_UART_FRAC_1, \"clk_uart_frac_1\", \"clk_uart_frac_1_src\", 0,\n+\t\t       RK3572_CLKSEL_CON(24), 0,\n+\t\t\tRK3572_CLKGATE_CON(2), 7, GFLAGS),\n+\tMUX(CLK_UART_FRAC_2_SRC, \"clk_uart_frac_2_src\", gpll_cpll_aupll_24m_p, 0,\n+\t    RK3572_CLKSEL_CON(27), 0, 2, MFLAGS),\n+\tCOMPOSITE_FRAC(CLK_UART_FRAC_2, \"clk_uart_frac_2\", \"clk_uart_frac_2_src\", 0,\n+\t\t       RK3572_CLKSEL_CON(26), 0,\n+\t\t\tRK3572_CLKGATE_CON(2), 8, GFLAGS),\n+\tCOMPOSITE(CLK_UART1_SRC_TOP, \"clk_uart1_src_top\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(29), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(2), 14, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_AUDIO_INT_0, \"clk_audio_int_0\", \"aupll\", 0,\n+\t\t\tRK3572_CLKSEL_CON(29), 11, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(2), 15, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_AUDIO_INT_1, \"clk_audio_int_1\", \"aupll\", 0,\n+\t\t\tRK3572_CLKSEL_CON(30), 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(3), 0, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_AUDIO_INT_2, \"clk_audio_int_2\", \"aupll\", 0,\n+\t\t\tRK3572_CLKSEL_CON(30), 5, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(3), 1, GFLAGS),\n+\tCOMPOSITE_MUXTBL(CLK_PDM0_SRC_TOP, \"clk_pdm0_src_top\",\n+\t\t\t mux_24m_frac_int_mclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(31), 9, 4, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_idx, 0, 9, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(3), 3, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_GMAC0_125M_SRC, \"clk_gmac0_125m_src\", \"cpll\", 0,\n+\t\t\tRK3572_CLKSEL_CON(33), 10, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(3), 7, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_GMAC1_125M_SRC, \"clk_gmac1_125m_src\", \"cpll\", 0,\n+\t\t\tRK3572_CLKSEL_CON(34), 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(3), 8, GFLAGS),\n+\tCOMPOSITE_MUXTBL(MCLK_ASRC0_SRC_0, \"mclk_asrc0_src_0\",\n+\t\t\t mux_24m_frac_int_mclki_sclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(34), 10, 5, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_sclki_idx, 5, 5, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(3), 11, GFLAGS),\n+\tCOMPOSITE_MUXTBL(MCLK_ASRC1_SRC_1, \"mclk_asrc1_src_1\",\n+\t\t\t mux_24m_frac_int_mclki_sclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(35), 5, 5, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_sclki_idx, 0, 5, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(3), 12, GFLAGS),\n+\tCOMPOSITE(REF_CLK0_OUT_PLL, \"ref_clk0_out_pll\", gpll_cpll_spll_aupll_bpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(38), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(4), 2, GFLAGS),\n+\tCOMPOSITE(REF_CLK1_OUT_PLL, \"ref_clk1_out_pll\", gpll_cpll_spll_aupll_bpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(39), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(4), 3, GFLAGS),\n+\tCOMPOSITE(REF_CLK2_OUT_PLL, \"ref_clk2_out_pll\", gpll_cpll_spll_aupll_bpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(40), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(4), 4, GFLAGS),\n+\tCOMPOSITE(REFCLKO25M_GMAC0_OUT, \"refclko25m_gmac0_out\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(42), 7, 1, MFLAGS, 0, 7, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(5), 6, GFLAGS),\n+\tCOMPOSITE(REFCLKO25M_GMAC1_OUT, \"refclko25m_gmac1_out\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(42), 15, 1, MFLAGS, 8, 7, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(5), 7, GFLAGS),\n+\tCOMPOSITE(CLK_CIFOUT_OUT, \"clk_cifout_out\", gpll_cpll_24m_spll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(43), 8, 2, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(5), 8, GFLAGS),\n+\tGATE(CLK_GMAC0_RMII_CRU, \"clk_gmac0_rmii_cru\", \"clk_cpll_div20\", 0,\n+\t     RK3572_CLKGATE_CON(5), 9, GFLAGS),\n+\tGATE(CLK_GMAC1_RMII_CRU, \"clk_gmac1_rmii_cru\", \"clk_cpll_div20\", 0,\n+\t     RK3572_CLKGATE_CON(5), 10, GFLAGS),\n+\tGATE(CLK_OTPC_AUTO_RD_G, \"clk_otpc_auto_rd_g\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(5), 11, GFLAGS),\n+\tCOMPOSITE(CAM_CLK0_OUT_IOUT, \"cam_clk0_out_iout\", mux_24m_spll_gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(44), 8, 2, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(5), 15, GFLAGS),\n+\tCOMPOSITE(CAM_CLK1_OUT_IOUT, \"cam_clk1_out_iout\", mux_24m_spll_gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(45), 8, 2, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(6), 0, GFLAGS),\n+\tCOMPOSITE(CAM_CLK2_OUT_IOUT, \"cam_clk2_out_iout\", mux_24m_spll_gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(46), 8, 2, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(6), 1, GFLAGS),\n+\tCOMPOSITE_MUXTBL(MCLK_PDM0_SRC_TOP, \"mclk_pdm0_src_top\",\n+\t\t\t mux_24m_frac_int_mclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(47), 9, 4, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_idx, 0, 9, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(6), 10, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_AUDIO_ROOT, \"hclk_audio_root\", mux_200m_100m_50m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(49), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(7), 1, GFLAGS),\n+\tGATE(HCLK_ASRC_2CH_0, \"hclk_asrc_2ch_0\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(7), 3, GFLAGS),\n+\tGATE(HCLK_ASRC_2CH_1, \"hclk_asrc_2ch_1\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(7), 4, GFLAGS),\n+\tCOMPOSITE(CLK_ASRC_2CH_0, \"clk_asrc_2ch_0\", gpll_cpll_aupll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(49), 7, 2, MFLAGS, 2, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(7), 7, GFLAGS),\n+\tCOMPOSITE(CLK_ASRC_2CH_1, \"clk_asrc_2ch_1\", gpll_cpll_aupll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(49), 14, 2, MFLAGS, 9, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(7), 8, GFLAGS),\n+\tCOMPOSITE_MUXTBL(MCLK_SAI0, \"mclk_sai0\", mux_24m_frac_int_mclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(51), 11, 4, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_idx, 3, 8, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(7), 12, GFLAGS),\n+\tGATE(HCLK_SAI0, \"hclk_sai0\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(7), 13, GFLAGS),\n+\tGATE(HCLK_SPDIF_RX0, \"hclk_spdif_rx0\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(7), 14, GFLAGS),\n+\tCOMPOSITE(MCLK_SPDIF_RX0, \"mclk_spdif_rx0\", gpll_cpll_aupll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(52), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(7), 15, GFLAGS),\n+\tCOMPOSITE_MUXTBL(MCLK_SAI1, \"mclk_sai1\", mux_24m_frac_int_mclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(54), 8, 4, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(8), 5, GFLAGS),\n+\tGATE(HCLK_SAI1, \"hclk_sai1\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(8), 6, GFLAGS),\n+\tCOMPOSITE_MUXTBL(MCLK_SAI2, \"mclk_sai2\", mux_24m_frac_int_mclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(56), 8, 4, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(8), 8, GFLAGS),\n+\tGATE(HCLK_SAI2, \"hclk_sai2\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(8), 10, GFLAGS),\n+\tCOMPOSITE_MUXTBL(MCLK_SAI3, \"mclk_sai3\", mux_24m_frac_int_mclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(58), 8, 4, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(8), 12, GFLAGS),\n+\tGATE(HCLK_SAI3, \"hclk_sai3\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(8), 14, GFLAGS),\n+\tGATE(CLK_SAI1_MCLKOUT, \"clk_sai1_mclkout\", \"mclk_sai1\", 0,\n+\t     RK3572_CLKGATE_CON(4), 10, GFLAGS),\n+\tGATE(CLK_SAI2_MCLKOUT, \"clk_sai2_mclkout\", \"mclk_sai2\", 0,\n+\t     RK3572_CLKGATE_CON(4), 11, GFLAGS),\n+\tGATE(CLK_SAI3_MCLKOUT, \"clk_sai3_mclkout\", \"mclk_sai3\", 0,\n+\t     RK3572_CLKGATE_CON(4), 12, GFLAGS),\n+\tGATE(CLK_SAI0_MCLKOUT, \"clk_sai0_mclkout\", \"mclk_sai0\", 0,\n+\t     RK3572_CLKGATE_CON(4), 14, GFLAGS),\n+\tGATE(HCLK_ACDCDIG_DSM, \"hclk_acdcdig_dsm\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(8), 15, GFLAGS),\n+\tGATE(MCLK_ACDCDIG_DSM, \"mclk_acdcdig_dsm\", \"mclk_sai3\", 0,\n+\t     RK3572_CLKGATE_CON(9), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_AUDIO_ROOT, \"pclk_audio_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(60), 12, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(9), 3, GFLAGS),\n+\tGATE(HCLK_SPDIF_TX0, \"hclk_spdif_tx0\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(9), 6, GFLAGS),\n+\tCOMPOSITE_MUXTBL(MCLK_SPDIF_TX0, \"mclk_spdif_tx0\",\n+\t\t\t mux_24m_frac_int_mclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(61), 8, 4, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(9), 7, GFLAGS),\n+\tGATE(HCLK_SPDIF_TX1, \"hclk_spdif_tx1\", \"hclk_audio_root\", 0,\n+\t     RK3572_CLKGATE_CON(9), 8, GFLAGS),\n+\tCOMPOSITE_MUXTBL(MCLK_SPDIF_TX1, \"mclk_spdif_tx1\",\n+\t\t\t mux_24m_frac_int_mclki_p, 0,\n+\t\t\t RK3572_CLKSEL_CON(62), 8, 4, MFLAGS,\n+\t\t\t mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,\n+\t\t\t RK3572_CLKGATE_CON(9), 9, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_BUS_ROOT, \"hclk_bus_root\", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(64), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(11), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_BUS_ROOT, \"pclk_bus_root\", mux_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(64), 2, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(11), 1, GFLAGS),\n+\tCOMPOSITE(ACLK_BUS_ROOT, \"aclk_bus_root\", gpll_cpll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(64), 9, 1, MFLAGS, 4, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(11), 2, GFLAGS),\n+\tGATE(HCLK_CAN0, \"hclk_can0\", \"hclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(11), 7, GFLAGS),\n+\tCOMPOSITE(CLK_CAN0, \"clk_can0\", gpll_cpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(65), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(11), 8, GFLAGS),\n+\tGATE(HCLK_CAN1, \"hclk_can1\", \"hclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(11), 9, GFLAGS),\n+\tCOMPOSITE(CLK_CAN1, \"clk_can1\", gpll_cpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(65), 12, 2, MFLAGS, 7, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(11), 10, GFLAGS),\n+\tGATE(HCLK_CAN2, \"hclk_can2\", \"hclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(11), 11, GFLAGS),\n+\tCOMPOSITE(CLK_CAN2, \"clk_can2\", gpll_cpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(66), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(11), 12, GFLAGS),\n+\tGATE(HCLK_CAN3, \"hclk_can3\", \"hclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(11), 13, GFLAGS),\n+\tCOMPOSITE(CLK_CAN3, \"clk_can3\", gpll_cpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(66), 12, 2, MFLAGS, 7, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(11), 14, GFLAGS),\n+\tCOMPOSITE(ACLK_DECOM_ROOT, \"aclk_decom_root\", gpll_cpll_spll_bpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(67), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(11), 15, GFLAGS),\n+\tGATE(PCLK_I2C1, \"pclk_i2c1\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 5, GFLAGS),\n+\tGATE(PCLK_I2C2, \"pclk_i2c2\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 6, GFLAGS),\n+\tGATE(PCLK_I2C3, \"pclk_i2c3\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 7, GFLAGS),\n+\tGATE(PCLK_I2C4, \"pclk_i2c4\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 8, GFLAGS),\n+\tGATE(PCLK_I2C5, \"pclk_i2c5\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 9, GFLAGS),\n+\tGATE(PCLK_I2C6, \"pclk_i2c6\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 10, GFLAGS),\n+\tGATE(PCLK_I2C7, \"pclk_i2c7\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 11, GFLAGS),\n+\tGATE(PCLK_I2C8, \"pclk_i2c8\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 12, GFLAGS),\n+\tGATE(PCLK_I2C9, \"pclk_i2c9\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 13, GFLAGS),\n+\tGATE(PCLK_WDT_BUSMCU, \"pclk_wdt_busmcu\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(12), 14, GFLAGS),\n+\tGATE(TCLK_WDT_BUSMCU, \"tclk_wdt_busmcu\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(12), 15, GFLAGS),\n+\tGATE(ACLK_GIC, \"aclk_gic\", \"aclk_bus_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(13), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C1, \"clk_i2c1\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(67), 7, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(13), 5, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C2, \"clk_i2c2\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(67), 9, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(13), 6, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C3, \"clk_i2c3\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(67), 11, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(13), 7, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C4, \"clk_i2c4\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(67), 13, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(13), 8, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C5, \"clk_i2c5\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(68), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(13), 9, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C6, \"clk_i2c6\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(68), 2, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(13), 10, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C7, \"clk_i2c7\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(68), 4, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(13), 11, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C8, \"clk_i2c8\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(68), 6, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(13), 12, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C9, \"clk_i2c9\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(68), 8, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(13), 13, GFLAGS),\n+\tGATE(PCLK_SARADC, \"pclk_saradc\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(13), 15, GFLAGS),\n+\tCOMPOSITE(CLK_SARADC, \"clk_saradc\", gpll_24m_32k_p, 0,\n+\t\t  RK3572_CLKSEL_CON(69), 8, 2, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(14), 0, GFLAGS),\n+\tGATE(PCLK_TSADC, \"pclk_tsadc\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 2, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_TSADC, \"clk_tsadc\", \"xin24m\", 0,\n+\t\t\tRK3572_CLKSEL_CON(70), 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(14), 3, GFLAGS),\n+\tGATE(PCLK_UART0, \"pclk_uart0\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 4, GFLAGS),\n+\tGATE(PCLK_UART2, \"pclk_uart2\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 5, GFLAGS),\n+\tGATE(PCLK_UART3, \"pclk_uart3\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 6, GFLAGS),\n+\tGATE(PCLK_UART4, \"pclk_uart4\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 7, GFLAGS),\n+\tGATE(PCLK_UART5, \"pclk_uart5\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 8, GFLAGS),\n+\tGATE(PCLK_UART6, \"pclk_uart6\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 9, GFLAGS),\n+\tGATE(PCLK_UART7, \"pclk_uart7\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 10, GFLAGS),\n+\tGATE(PCLK_UART8, \"pclk_uart8\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 11, GFLAGS),\n+\tGATE(PCLK_UART9, \"pclk_uart9\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 12, GFLAGS),\n+\tGATE(PCLK_UART10, \"pclk_uart10\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 13, GFLAGS),\n+\tGATE(PCLK_UART11, \"pclk_uart11\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(14), 14, GFLAGS),\n+\tCOMPOSITE(SCLK_UART0, \"sclk_uart0\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(71), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(14), 15, GFLAGS),\n+\tCOMPOSITE(SCLK_UART2, \"sclk_uart2\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(72), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(15), 0, GFLAGS),\n+\tCOMPOSITE(SCLK_UART3, \"sclk_uart3\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(73), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(15), 3, GFLAGS),\n+\tCOMPOSITE(SCLK_UART4, \"sclk_uart4\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(74), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(15), 6, GFLAGS),\n+\tCOMPOSITE(SCLK_UART5, \"sclk_uart5\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(75), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(15), 9, GFLAGS),\n+\tCOMPOSITE(SCLK_UART6, \"sclk_uart6\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(76), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(15), 12, GFLAGS),\n+\tCOMPOSITE(SCLK_UART7, \"sclk_uart7\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(77), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(15), 15, GFLAGS),\n+\tCOMPOSITE(SCLK_UART8, \"sclk_uart8\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(78), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(16), 2, GFLAGS),\n+\tCOMPOSITE(SCLK_UART9, \"sclk_uart9\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(79), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(16), 3, GFLAGS),\n+\tCOMPOSITE(SCLK_UART10, \"sclk_uart10\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(80), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(16), 4, GFLAGS),\n+\tCOMPOSITE(SCLK_UART11, \"sclk_uart11\", clk_uart_src_p, 0,\n+\t\t  RK3572_CLKSEL_CON(81), 8, 3, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(16), 5, GFLAGS),\n+\tGATE(PCLK_SPI0, \"pclk_spi0\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(16), 7, GFLAGS),\n+\tGATE(PCLK_SPI1, \"pclk_spi1\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(16), 8, GFLAGS),\n+\tGATE(PCLK_SPI2, \"pclk_spi2\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(16), 9, GFLAGS),\n+\tGATE(PCLK_SPI3, \"pclk_spi3\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(16), 10, GFLAGS),\n+\tGATE(PCLK_SPI4, \"pclk_spi4\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(16), 11, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_SPI0, \"clk_spi0\", mux_300m_200m_100m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(81), 13, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(16), 12, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_SPI1, \"clk_spi1\", mux_300m_200m_100m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(82), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(16), 13, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_SPI2, \"clk_spi2\", mux_300m_200m_100m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(82), 2, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(16), 14, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_SPI3, \"clk_spi3\", mux_300m_200m_100m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(82), 4, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(16), 15, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_SPI4, \"clk_spi4\", mux_300m_200m_100m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(82), 6, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(17), 0, GFLAGS),\n+\tGATE(PCLK_WDT0, \"pclk_wdt0\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(17), 1, GFLAGS),\n+\tGATE(TCLK_WDT0, \"tclk_wdt0\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(17), 2, GFLAGS),\n+\tGATE(PCLK_PWM1, \"pclk_pwm1\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(17), 4, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_PWM1, \"clk_pwm1\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(82), 8, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(17), 5, GFLAGS),\n+\tGATE(CLK_OSC_PWM1, \"clk_osc_pwm1\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(17), 6, GFLAGS),\n+\tGATE(CLK_RC_PWM1, \"clk_rc_pwm1\", \"clk_rcosc\", 0,\n+\t     RK3572_CLKGATE_CON(17), 7, GFLAGS),\n+\tGATE(PCLK_PWM2, \"pclk_pwm2\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(17), 10, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_PWM2, \"clk_pwm2\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(83), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(17), 11, GFLAGS),\n+\tGATE(CLK_RC_PWM2, \"clk_rc_pwm2\", \"clk_rcosc\", 0,\n+\t     RK3572_CLKGATE_CON(17), 12, GFLAGS),\n+\tGATE(CLK_OSC_PWM2, \"clk_osc_pwm2\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(17), 13, GFLAGS),\n+\tGATE(PCLK_BUSTIMER0, \"pclk_bustimer0\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(18), 4, GFLAGS),\n+\tGATE(PCLK_BUSTIMER1, \"pclk_bustimer1\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(18), 5, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_TIMER0_ROOT, \"clk_timer0_root\", mux_100m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(83), 10, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(18), 6, GFLAGS),\n+\tGATE(CLK_TIMER0, \"clk_timer0\", \"clk_timer0_root\", 0,\n+\t     RK3572_CLKGATE_CON(18), 7, GFLAGS),\n+\tGATE(CLK_TIMER1, \"clk_timer1\", \"clk_timer0_root\", 0,\n+\t     RK3572_CLKGATE_CON(18), 8, GFLAGS),\n+\tGATE(CLK_TIMER2, \"clk_timer2\", \"clk_timer0_root\", 0,\n+\t     RK3572_CLKGATE_CON(18), 9, GFLAGS),\n+\tGATE(CLK_TIMER3, \"clk_timer3\", \"clk_timer0_root\", 0,\n+\t     RK3572_CLKGATE_CON(18), 10, GFLAGS),\n+\tGATE(CLK_TIMER4, \"clk_timer4\", \"clk_timer0_root\", 0,\n+\t     RK3572_CLKGATE_CON(18), 11, GFLAGS),\n+\tGATE(CLK_TIMER5, \"clk_timer5\", \"clk_timer0_root\", 0,\n+\t     RK3572_CLKGATE_CON(18), 12, GFLAGS),\n+\tGATE(PCLK_MAILBOX0, \"pclk_mailbox0\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(18), 14, GFLAGS),\n+\tGATE(PCLK_GPIO1, \"pclk_gpio1\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(19), 0, GFLAGS),\n+\tGATE(DBCLK_GPIO1, \"dbclk_gpio1\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(19), 1, GFLAGS),\n+\tGATE(PCLK_GPIO2, \"pclk_gpio2\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(19), 2, GFLAGS),\n+\tGATE(DBCLK_GPIO2, \"dbclk_gpio2\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(19), 3, GFLAGS),\n+\tGATE(PCLK_GPIO3, \"pclk_gpio3\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(19), 4, GFLAGS),\n+\tGATE(DBCLK_GPIO3, \"dbclk_gpio3\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(19), 5, GFLAGS),\n+\tGATE(PCLK_GPIO4, \"pclk_gpio4\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(19), 6, GFLAGS),\n+\tGATE(DBCLK_GPIO4, \"dbclk_gpio4\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(19), 7, GFLAGS),\n+\tGATE(ACLK_DECOM, \"aclk_decom\", \"aclk_decom_root\", 0,\n+\t     RK3572_CLKGATE_CON(19), 8, GFLAGS),\n+\tGATE(PCLK_DECOM, \"pclk_decom\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(19), 9, GFLAGS),\n+\tCOMPOSITE(DCLK_DECOM, \"dclk_decom\", gpll_cpll_spll_bpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(84), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(19), 10, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_TIMER1_ROOT, \"clk_timer1_root\", mux_100m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(84), 7, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(19), 11, GFLAGS),\n+\tGATE(CLK_TIMER6, \"clk_timer6\", \"clk_timer1_root\", 0,\n+\t     RK3572_CLKGATE_CON(19), 12, GFLAGS),\n+\tCOMPOSITE(CLK_TIMER7, \"clk_timer7\", clk_timer7_p, 0,\n+\t\t  RK3572_CLKSEL_CON(84), 13, 2, MFLAGS, 8, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(19), 13, GFLAGS),\n+\tCOMPOSITE(CLK_TIMER8, \"clk_timer8\", clk_timer8_p, 0,\n+\t\t  RK3572_CLKSEL_CON(85), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(19), 14, GFLAGS),\n+\tGATE(CLK_TIMER9, \"clk_timer9\", \"clk_timer1_root\", 0,\n+\t     RK3572_CLKGATE_CON(19), 15, GFLAGS),\n+\tGATE(CLK_TIMER10, \"clk_timer10\", \"clk_timer1_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 0, GFLAGS),\n+\tGATE(CLK_TIMER11, \"clk_timer11\", \"clk_timer1_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 1, GFLAGS),\n+\tGATE(ACLK_RKDMA0, \"aclk_rkdma0\", \"aclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 2, GFLAGS),\n+\tGATE(PCLK_RKDMA0, \"pclk_rkdma0\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 3, GFLAGS),\n+\tGATE(ACLK_RKDMA1, \"aclk_rkdma1\", \"aclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 4, GFLAGS),\n+\tGATE(PCLK_RKDMA1, \"pclk_rkdma1\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 5, GFLAGS),\n+\tGATE(ACLK_RKDMA2, \"aclk_rkdma2\", \"aclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 6, GFLAGS),\n+\tGATE(PCLK_RKDMA2, \"pclk_rkdma2\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 7, GFLAGS),\n+\tGATE(ACLK_RKDMA3, \"aclk_rkdma3\", \"aclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 8, GFLAGS),\n+\tGATE(PCLK_RKDMA3, \"pclk_rkdma3\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 9, GFLAGS),\n+\tGATE(PCLK_SPINLOCK, \"pclk_spinlock\", \"pclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 10, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I3C, \"clk_i3c\", mux_300m_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(85), 7, 3, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(20), 12, GFLAGS),\n+\tGATE(HCLK_I3C, \"hclk_i3c\", \"hclk_bus_root\", 0,\n+\t     RK3572_CLKGATE_CON(20), 13, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_BUSMCU_ROOT, \"clk_busmcu_root\", mux_400m_200m_100m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(85), 13, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(21), 0, GFLAGS),\n+\tGATE(CLK_BUSMCU_CORE_AON, \"clk_busmcu_core_aon\", \"clk_busmcu_root\", 0,\n+\t     RK3572_CLKGATE_CON(21), 2, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_MTIME_TOGGLE_A, \"clk_mtime_toggle_a\", \"xin24m\", 0,\n+\t\t\tRK3572_CLKSEL_CON(86), 0, 6, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(21), 4, GFLAGS),\n+\tGATE(CLK_DBG_TOGGLE_A, \"clk_dbg_toggle_a\", \"clk_32k\", 0,\n+\t     RK3572_CLKGATE_CON(21), 5, GFLAGS),\n+\tGATE(CLK_MCU_AXI_INTEGRITY, \"clk_mcu_axi_integrity\", \"clk_busmcu_root\", 0,\n+\t     RK3572_CLKGATE_CON(21), 6, GFLAGS),\n+\tGATE(PCLK_PMU2, \"pclk_pmu2\", \"pclk_bus_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(21), 7, GFLAGS),\n+\tGATE(CLK_HDMITXHPD, \"clk_hdmitxhpd\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(21), 14, GFLAGS),\n+\tGATE(PCLK_APB2ASB_HDMITX, \"pclk_apb2asb_hdmitx\", \"pclk_bus_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(22), 2, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_HDMITX, \"sclk_apb2asb_hdmitx\", sclk_apb2asb_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(88), 7, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(22), 3, GFLAGS),\n+\tGATE(PCLK_APB2ASB_MIPICSI, \"pclk_apb2asb_mipicsi\", \"pclk_bus_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(22), 6, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_MIPICSI, \"sclk_apb2asb_mipicsi\", sclk_apb2asb_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(88), 11, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(22), 7, GFLAGS),\n+\tGATE(PCLK_APB2ASB_VCCIO0_3, \"pclk_apb2asb_vccio0_3\", \"pclk_bus_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(22), 8, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_VCCIO0_3, \"sclk_apb2asb_vccio0_3\", sclk_apb2asb_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(88), 13, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(22), 9, GFLAGS),\n+\tGATE(PCLK_APB2ASB_VCCIO1_2_4, \"pclk_apb2asb_vccio1_2_4\", \"pclk_bus_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(22), 10, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_VCCIO1_2_4, \"sclk_apb2asb_vccio1_2_4\", sclk_apb2asb_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(89), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(22), 11, GFLAGS),\n+\tGATE(PCLK_APB2ASB_VCCIO5_6, \"pclk_apb2asb_vccio5_6\", \"pclk_bus_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(22), 12, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_VCCIO5_6, \"sclk_apb2asb_vccio5_6\", sclk_apb2asb_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(89), 2, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(22), 13, GFLAGS),\n+\n+\t/* pd_ddr */\n+\tCOMPOSITE(PCLK_DDR_ROOT, \"pclk_ddr_root\", gpll_cpll_24m_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(90), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(23), 0, GFLAGS),\n+\tCOMPOSITE(ACLK_DDR_ROOT, \"aclk_ddr_root\", gpll_cpll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(90), 12, 1, MFLAGS, 7, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(23), 9, GFLAGS),\n+\tCOMPOSITE_NODIV(LCLK_DDRSCH_BIU, \"lclk_ddrsch_biu\", mux_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(90), 13, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(24), 11, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_DDR_TIMER_ROOT, \"clk_ddr_timer_root\", mux_100m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(90), 15, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(25), 3, GFLAGS),\n+\tGATE(CLK_DDR_TIMER0, \"clk_ddr_timer0\", \"clk_ddr_timer_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(25), 4, GFLAGS),\n+\tGATE(CLK_DDR_TIMER1, \"clk_ddr_timer1\", \"clk_ddr_timer_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(25), 5, GFLAGS),\n+\tGATE(TCLK_DDR_WDT, \"tclk_ddr_wdt\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(25), 6, GFLAGS),\n+\tGATE(PCLK_WDT, \"pclk_wdt\", \"pclk_ddr_root\", 0,\n+\t     RK3572_CLKGATE_CON(25), 7, GFLAGS),\n+\tGATE(PCLK_TIMER, \"pclk_timer\", \"pclk_ddr_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(25), 8, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_DDRMCU_ROOT, \"clk_ddrmcu_root\", mux_400m_200m_100m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(91), 6, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(26), 15, GFLAGS),\n+\tGATE(CLK_DDRMCU_CORE_AON, \"clk_ddrmcu_core_aon\", \"clk_ddrmcu_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(27), 1, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_MTIME_TOGGLE_A_DDR, \"clk_mtime_toggle_a_ddr\", \"xin24m\", 0,\n+\t\t\tRK3572_CLKSEL_CON(91), 8, 6, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(27), 3, GFLAGS),\n+\tGATE(CLK_DBG_TOGGLE_A_DDR, \"clk_dbg_toggle_a_ddr\", \"clk_32k\", 0,\n+\t     RK3572_CLKGATE_CON(27), 4, GFLAGS),\n+\tGATE(PCLK_DDR_MON, \"pclk_ddr_mon\", \"pclk_ddr_root\", 0,\n+\t     RK3572_CLKGATE_CON(23), 1, GFLAGS),\n+\n+\t/* pd_npu */\n+\tCOMPOSITE(ACLK_RKNN_ROOT, \"aclk_rknn_root\", gpll_cpll_aupll_spll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(95), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(31), 0, GFLAGS),\n+\tGATE(ACLK_RKNN, \"aclk_rknn\", \"aclk_rknn_root\", 0,\n+\t     RK3572_CLKGATE_CON(31), 2, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_RKNN_ROOT, \"pclk_rknn_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(95), 8, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(31), 6, GFLAGS),\n+\tGATE(CLK_24M_RKNN, \"clk_24m_rknn\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(31), 11, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_NPUTIMER_ROOT, \"clk_nputimer_root\", mux_100m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(95), 11, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(31), 12, GFLAGS),\n+\tGATE(CLK_NPUTIMER0, \"clk_nputimer0\", \"clk_nputimer_root\", 0,\n+\t     RK3572_CLKGATE_CON(31), 13, GFLAGS),\n+\tGATE(CLK_NPUTIMER1, \"clk_nputimer1\", \"clk_nputimer_root\", 0,\n+\t     RK3572_CLKGATE_CON(31), 14, GFLAGS),\n+\tGATE(PCLK_NPU_TIMER, \"pclk_npu_timer\", \"pclk_rknn_root\", 0,\n+\t     RK3572_CLKGATE_CON(31), 15, GFLAGS),\n+\tGATE(PCLK_NPU_WDT, \"pclk_npu_wdt\", \"pclk_rknn_root\", 0,\n+\t     RK3572_CLKGATE_CON(32), 0, GFLAGS),\n+\tGATE(TCLK_NPU_WDT, \"tclk_npu_wdt\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(32), 1, GFLAGS),\n+\n+\t/* pd_php */\n+\tCOMPOSITE_NODIV(PCLK_PHP0_ROOT, \"pclk_php0_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(97), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(33), 0, GFLAGS),\n+\tCOMPOSITE(ACLK_PHP0_ROOT, \"aclk_php0_root\", gpll_cpll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(97), 7, 1, MFLAGS, 2, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(33), 3, GFLAGS),\n+\tGATE(PCLK_PCIE1, \"pclk_pcie1\", \"pclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(33), 7, GFLAGS),\n+\tGATE(CLK_PCIE1_AUX, \"clk_pcie1_aux\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(33), 8, GFLAGS),\n+\tGATE(ACLK_PCIE1_MSTR, \"aclk_pcie1_mstr\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(33), 9, GFLAGS),\n+\tGATE(ACLK_PCIE1_SLV, \"aclk_pcie1_slv\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(33), 10, GFLAGS),\n+\tGATE(ACLK_PCIE1_DBI, \"aclk_pcie1_dbi\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(33), 11, GFLAGS),\n+\tGATE(PCLK_PCIE0, \"pclk_pcie0\", \"pclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(34), 3, GFLAGS),\n+\tGATE(CLK_PCIE0_AUX, \"clk_pcie0_aux\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(34), 4, GFLAGS),\n+\tGATE(ACLK_PCIE0_MSTR, \"aclk_pcie0_mstr\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(34), 5, GFLAGS),\n+\tGATE(ACLK_PCIE0_SLV, \"aclk_pcie0_slv\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(34), 6, GFLAGS),\n+\tGATE(ACLK_PCIE0_DBI, \"aclk_pcie0_dbi\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(34), 7, GFLAGS),\n+\tGATE(ACLK_USB3OTG1, \"aclk_usb3otg1\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(34), 9, GFLAGS),\n+\tGATE(CLK_REF_USB3OTG1, \"clk_ref_usb3otg1\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(34), 10, GFLAGS),\n+\tGATE(CLK_SUSPEND_USB3OTG1, \"clk_suspend_usb3otg1\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(34), 11, GFLAGS),\n+\tGATE(ACLK_GMAC0, \"aclk_gmac0\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(34), 12, GFLAGS),\n+\tGATE(PCLK_GMAC0, \"pclk_gmac0\", \"pclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(34), 13, GFLAGS),\n+\tCOMPOSITE(ACLK_UFS_ROOT, \"aclk_ufs_root\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(97), 15, 1, MFLAGS, 10, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(34), 14, GFLAGS),\n+\tGATE(ACLK_USB3OTG0, \"aclk_usb3otg0\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(34), 15, GFLAGS),\n+\tGATE(CLK_REF_USB3OTG0, \"clk_ref_usb3otg0\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(35), 0, GFLAGS),\n+\tGATE(CLK_SUSPEND_USB3OTG0, \"clk_suspend_usb3otg0\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(35), 1, GFLAGS),\n+\tGATE(ACLK_UFS_SYS, \"aclk_ufs_sys\", \"aclk_ufs_root\", 0,\n+\t     RK3572_CLKGATE_CON(35), 3, GFLAGS),\n+\tCOMPOSITE(CLK_GMAC0_PTP_REF_PRE, \"clk_gmac0_ptp_ref_pre\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(98), 5, 1, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(35), 5, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_GMAC0_PTP_REF_SRC, \"clk_gmac0_ptp_ref_src\", clk_gmac0_ptp_ref_src_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(98), 6, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(35), 7, GFLAGS),\n+\tCOMPOSITE(CLK_RXOOB0, \"clk_rxoob0\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(100), 7, 1, MFLAGS, 0, 7, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(37), 0, GFLAGS),\n+\tGATE(CLK_PMALIVE0, \"clk_pmalive0\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(37), 1, GFLAGS),\n+\tGATE(ACLK_SATA0, \"aclk_sata0\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(37), 2, GFLAGS),\n+\tCOMPOSITE(CLK_RXOOB1, \"clk_rxoob1\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(100), 15, 1, MFLAGS, 8, 7, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(37), 3, GFLAGS),\n+\tGATE(CLK_PMALIVE1, \"clk_pmalive1\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(37), 4, GFLAGS),\n+\tGATE(ACLK_SATA1, \"aclk_sata1\", \"aclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(37), 5, GFLAGS),\n+\tCOMPOSITE(CLK_EEE_XPCS, \"clk_eee_xpcs\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(101), 7, 1, MFLAGS, 0, 7, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(37), 6, GFLAGS),\n+\tGATE(PCLK_XPCS, \"pclk_xpcs\", \"pclk_php0_root\", 0,\n+\t     RK3572_CLKGATE_CON(37), 7, GFLAGS),\n+\n+\t/* pd_nvm */\n+\tCOMPOSITE_NODIV(HCLK_NVM0_ROOT, \"hclk_nvm0_root\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(113), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(42), 0, GFLAGS),\n+\tCOMPOSITE(ACLK_NVM0_ROOT, \"aclk_nvm0_root\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(113), 7, 1, MFLAGS, 2, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(42), 1, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_NVM0_ROOT, \"pclk_nvm0_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(113), 8, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(42), 2, GFLAGS),\n+\tCOMPOSITE(CCLK_SRC_EMMC, \"cclk_src_emmc\", gpll_cpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(114), 6, 2, MFLAGS, 0, 6, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(42), 7, GFLAGS),\n+\tGATE(HCLK_EMMC, \"hclk_emmc\", \"hclk_nvm0_root\", 0,\n+\t     RK3572_CLKGATE_CON(42), 8, GFLAGS),\n+\tGATE(ACLK_EMMC, \"aclk_emmc\", \"aclk_nvm0_root\", 0,\n+\t     RK3572_CLKGATE_CON(42), 9, GFLAGS),\n+\tCOMPOSITE_NODIV(BCLK_EMMC, \"bclk_emmc\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(114), 8, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(42), 10, GFLAGS),\n+\tGATE(TCLK_EMMC, \"tclk_emmc\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(42), 11, GFLAGS),\n+\tCOMPOSITE(CLK_GMAC1_PTP_REF_SRC, \"clk_gmac1_ptp_ref_src\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(114), 15, 1, MFLAGS, 10, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(42), 12, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_GMAC1_PTP_REF, \"clk_gmac1_ptp_ref\", clk_gmac1_ptp_ref_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(115), 0, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(42), 13, GFLAGS),\n+\tGATE(ACLK_GMAC1, \"aclk_gmac1\", \"aclk_nvm0_root\", 0,\n+\t     RK3572_CLKGATE_CON(42), 14, GFLAGS),\n+\tGATE(PCLK_GMAC1, \"pclk_gmac1\", \"pclk_nvm0_root\", 0,\n+\t     RK3572_CLKGATE_CON(42), 15, GFLAGS),\n+\tCOMPOSITE(SCLK_FSPI0_X2, \"sclk_fspi0_x2\", gpll_cpll_spll_aupll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(115), 7, 3, MFLAGS, 1, 6, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(43), 0, GFLAGS),\n+\tGATE(HCLK_FSPI0, \"hclk_fspi0\", \"hclk_nvm0_root\", 0,\n+\t     RK3572_CLKGATE_CON(43), 1, GFLAGS),\n+\tCOMPOSITE(CCLK_SRC_SDMMC1, \"cclk_src_sdmmc1\", gpll_cpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(116), 6, 2, MFLAGS, 0, 6, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(43), 2, GFLAGS),\n+\tGATE(HCLK_SDMMC1, \"hclk_sdmmc1\", \"hclk_nvm0_root\", 0,\n+\t     RK3572_CLKGATE_CON(43), 3, GFLAGS),\n+\tCOMPOSITE(ACLK_DSMC_ROOT, \"aclk_dsmc_root\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(118), 5, 1, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(44), 0, GFLAGS),\n+\tGATE(ACLK_DSMC, \"aclk_dsmc\", \"aclk_dsmc_root\", 0,\n+\t     RK3572_CLKGATE_CON(44), 2, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_DSMC_ROOT, \"hclk_dsmc_root\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(118), 6, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(44), 3, GFLAGS),\n+\tGATE(HCLK_DSMC, \"hclk_dsmc\", \"hclk_dsmc_root\", 0,\n+\t     RK3572_CLKGATE_CON(44), 5, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_DSMC_ROOT, \"pclk_dsmc_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(118), 8, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(44), 6, GFLAGS),\n+\tGATE(PCLK_DSMC, \"pclk_dsmc\", \"pclk_dsmc_root\", 0,\n+\t     RK3572_CLKGATE_CON(44), 8, GFLAGS),\n+\tCOMPOSITE(CLK_DSMC_SYS, \"clk_dsmc_sys\", gpll_cpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(119), 8, 2, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(44), 9, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_NVM1_ROOT, \"hclk_nvm1_root\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(120), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(45), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_NVM1_ROOT, \"pclk_nvm1_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(120), 8, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(45), 2, GFLAGS),\n+\tCOMPOSITE(CCLK_SRC_SDMMC0, \"cclk_src_sdmmc0\", gpll_cpll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(121), 6, 2, MFLAGS, 0, 6, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(45), 7, GFLAGS),\n+\tGATE(HCLK_SDMMC0, \"hclk_sdmmc0\", \"hclk_nvm1_root\", 0,\n+\t     RK3572_CLKGATE_CON(45), 8, GFLAGS),\n+\tCOMPOSITE(SCLK_FSPI1_X2, \"sclk_fspi1_x2\", gpll_cpll_spll_aupll_24m_p, 0,\n+\t\t  RK3572_CLKSEL_CON(122), 6, 3, MFLAGS, 0, 6, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(45), 11, GFLAGS),\n+\tGATE(HCLK_FSPI1, \"hclk_fspi1\", \"hclk_nvm1_root\", 0,\n+\t     RK3572_CLKGATE_CON(45), 12, GFLAGS),\n+\n+\t/* pd_phpphy */\n+\tCOMPOSITE_NODIV(PCLK_PHPSUBSYS_ROOT, \"pclk_phpsubsys_root\", pclk_phpsubsys_root_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_PHP_CLKSEL_CON(0), 0, 1, MFLAGS,\n+\t\t\tRK3572_PHP_CLKGATE_CON(0), 2, GFLAGS),\n+\tGATE(PCLK_PCIE2_COMBOPHY0, \"pclk_pcie2_combophy0\", \"pclk_phpsubsys_root\", 0,\n+\t     RK3572_PHP_CLKGATE_CON(0), 4, GFLAGS),\n+\tGATE(PCLK_PCIE2_COMBOPHY1, \"pclk_pcie2_combophy1\", \"pclk_phpsubsys_root\", 0,\n+\t     RK3572_PHP_CLKGATE_CON(0), 6, GFLAGS),\n+\tGATE(PCLK_MPHY, \"pclk_mphy\", \"pclk_phpsubsys_root\", 0,\n+\t     RK3572_PHP_CLKGATE_CON(0), 10, GFLAGS),\n+\tGATE(PCLK_PCIEPHY2, \"pclk_pciephy2\", \"pclk_phpsubsys_root\", 0,\n+\t     RK3572_PHP_CLKGATE_CON(0), 14, GFLAGS),\n+\tCOMPOSITE(SCLK_APB2ASB_USBMPHY_PHPPHY, \"sclk_apb2asb_usbmphy_phpphy\", sclk_apb2asb_p,\n+\t\t  CLK_IS_CRITICAL,\n+\t\t  RK3572_PHP_CLKSEL_CON(0), 6, 2, MFLAGS, 1, 5, DFLAGS,\n+\t\t\tRK3572_PHP_CLKGATE_CON(1), 0, GFLAGS),\n+\tGATE(PCLK_APB2ASB_USBMPHY_PHPPHY, \"pclk_apb2asb_usbmphy_phpphy\", \"pclk_phpsubsys_root\",\n+\t     CLK_IS_CRITICAL,\n+\t     RK3572_PHP_CLKGATE_CON(1), 1, GFLAGS),\n+\tFACTOR_GATE(CLK_CPLL_DIV10_PHPPHY, \"clk_cpll_div10_phpphy\", \"clk_gpll_div6\",\n+\t\t    CLK_IS_CRITICAL, 1, 2,\n+\t\t    RK3572_PHP_CLKGATE_CON(1), 2, GFLAGS),\n+\tGATE(CLK_PHPPHY_REF, \"clk_phpphy_ref\", \"xin24m\", 0,\n+\t     RK3572_PHP_CLKGATE_CON(1), 3, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_PCIE_100M_SRC, \"clk_pcie_100m_src\", \"ppll\", 0,\n+\t\t\tRK3572_PHP_CLKSEL_CON(2), 0, 5, DFLAGS,\n+\t\t\tRK3572_PHP_CLKGATE_CON(2), 1, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_PCIE_100M_NDUTY_SRC, \"clk_pcie_100m_nduty_src\", \"ppll\", 0,\n+\t\t\tRK3572_PHP_CLKSEL_CON(2), 5, 5, DFLAGS,\n+\t\t\tRK3572_PHP_CLKGATE_CON(2), 2, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_REF_PCIEPHY2, \"clk_ref_pciephy2\", clk_ref_pciephy_p, 0,\n+\t\t\tRK3572_PHP_CLKSEL_CON(2), 10, 2, MFLAGS,\n+\t\t\tRK3572_PHP_CLKGATE_CON(2), 4, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_REF_PCIE0_INNER_PHY, \"clk_ref_pcie0_inner_phy\", clk_ref_pciephy_p, 0,\n+\t\t\tRK3572_PHP_CLKSEL_CON(2), 12, 2, MFLAGS,\n+\t\t\tRK3572_PHP_CLKGATE_CON(2), 5, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_REF_PCIE1_INNER_PHY, \"clk_ref_pcie1_inner_phy\", clk_ref_pciephy_p, 0,\n+\t\t\tRK3572_PHP_CLKSEL_CON(2), 14, 2, MFLAGS,\n+\t\t\tRK3572_PHP_CLKGATE_CON(2), 8, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_REF_MPHY_26M, \"clk_ref_mphy_26m\", \"ppll\", 0,\n+\t\t\tRK3572_PHP_CLKSEL_CON(3), 0, 8, DFLAGS,\n+\t\t\tRK3572_PHP_CLKGATE_CON(2), 9, GFLAGS),\n+\tCOMPOSITE_NOMUX(REF_CLK_FROM_PPLL, \"ref_clk_from_ppll\", \"ppll\", 0,\n+\t\t\tRK3572_PHP_CLKSEL_CON(3), 8, 8, DFLAGS,\n+\t\t\tRK3572_PHP_CLKGATE_CON(2), 10, GFLAGS),\n+\n+\t/* pd_rkvdec */\n+\tCOMPOSITE_NODIV(HCLK_RKVDEC_ROOT, \"hclk_rkvdec_root\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(130), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(50), 0, GFLAGS),\n+\tGATE(HCLK_RKVDEC, \"hclk_rkvdec\", \"hclk_rkvdec_root\", 0,\n+\t     RK3572_CLKGATE_CON(50), 3, GFLAGS),\n+\tCOMPOSITE(ACLK_RKVDEC_ROOT, \"aclk_rkvdec_root\", gpll_cpll_spll_bpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(131), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(50), 7, GFLAGS),\n+\tCOMPOSITE(CLK_RKVDEC_HEVC_CA, \"clk_rkvdec_hevc_ca\", gpll_cpll_bpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(131), 12, 2, MFLAGS, 7, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(50), 8, GFLAGS),\n+\tGATE(CLK_RKVDEC_CORE, \"clk_rkvdec_core\", \"aclk_rkvdec_root\", 0,\n+\t     RK3572_CLKGATE_CON(50), 9, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_VDEC_ROOT, \"pclk_vdec_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(131), 14, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(50), 13, GFLAGS),\n+\n+\t/* pd_vo */\n+\tCOMPOSITE_NODIV(PCLK_VOSUBSYS_ROOT, \"pclk_vosubsys_root\", mux_100m_50m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(135), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(52), 0, GFLAGS),\n+\tGATE(PCLK_APB2ASB_MIPI_HDMI_SUBVO, \"pclk_apb2asb_mipi_hdmi_subvo\", \"pclk_vosubsys_root\",\n+\t     CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(52), 1, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_MIPI_HDMI_SUBVO, \"sclk_apb2asb_mipi_hdmi_subvo\",\n+\t\t\tsclk_apb2asb_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(135), 2, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(52), 2, GFLAGS),\n+\tGATE(PCLK_APB2ASB_VCCIO0_3_SUBVO, \"pclk_apb2asb_vccio0_3_subvo\", \"pclk_vosubsys_root\",\n+\t     CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(52), 7, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_VCCIO0_3_SUBVO, \"sclk_apb2asb_vccio0_3_subvo\",\n+\t\t\tsclk_apb2asb_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(135), 8, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(52), 8, GFLAGS),\n+\tGATE(PCLK_HDPTXPHY, \"pclk_hdptxphy\", \"pclk_vosubsys_root\", 0,\n+\t     RK3572_CLKGATE_CON(52), 9, GFLAGS),\n+\tGATE(PCLK_MIPI_DPHY0, \"pclk_mipi_dphy0\", \"pclk_vosubsys_root\", 0,\n+\t     RK3572_CLKGATE_CON(52), 11, GFLAGS),\n+\tGATE(CLK_VOSUBSYS_REF, \"clk_vosubsys_ref\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(53), 0, GFLAGS),\n+\tGATE(PCLK_IOC_SUBVO, \"pclk_ioc_subvo\", \"pclk_vosubsys_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(53), 3, GFLAGS),\n+\n+\t/* pd_vi */\n+\tCOMPOSITE_NODIV(PCLK_VISUBSYS_ROOT, \"pclk_visubsys_root\", mux_100m_50m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(137), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(54), 0, GFLAGS),\n+\tGATE(PCLK_APB2ASB_VCCIO1_2_4_SUBVI, \"pclk_apb2asb_vccio1_2_4_subvi\",\n+\t     \"pclk_visubsys_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(54), 1, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_VCCIO1_2_4_SUBVI, \"sclk_apb2asb_vccio1_2_4_subvi\",\n+\t\t\tsclk_apb2asb_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(137), 2, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(54), 2, GFLAGS),\n+\tGATE(PCLK_APB2ASB_CSIPHY_SUBVI, \"pclk_apb2asb_csiphy_subvi\", \"pclk_visubsys_root\",\n+\t     CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(54), 3, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_CSIPHY_SUBVI, \"sclk_apb2asb_csiphy_subvi\", sclk_apb2asb_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(137), 4, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(54), 4, GFLAGS),\n+\tGATE(PCLK_CSIPHY0, \"pclk_csiphy0\", \"pclk_visubsys_root\", 0,\n+\t     RK3572_CLKGATE_CON(54), 5, GFLAGS),\n+\tGATE(PCLK_CSIPHY1, \"pclk_csiphy1\", \"pclk_visubsys_root\", 0,\n+\t     RK3572_CLKGATE_CON(54), 7, GFLAGS),\n+\tGATE(PCLK_IOC_SUBVI, \"pclk_ioc_subvi\", \"pclk_visubsys_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(54), 9, GFLAGS),\n+\tGATE(CLK_SDMMC_SWITCH_24M, \"clk_sdmmc_switch_24m\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(54), 13, GFLAGS),\n+\n+\tCOMPOSITE_NODIV(PCLK_DSMCSUBSYS_ROOT, \"pclk_dsmcsubsys_root\", mux_100m_50m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(139), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(56), 0, GFLAGS),\n+\tGATE(PCLK_APB2ASB_VCCIO5_6_SUBDSMC, \"pclk_apb2asb_vccio5_6_subdsmc\",\n+\t     \"pclk_dsmcsubsys_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(56), 3, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_VCCIO5_6_SUBDSMC, \"sclk_apb2asb_vccio5_6_subdsmc\",\n+\t\t\tsclk_apb2asb_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(139), 9, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(56), 4, GFLAGS),\n+\n+\t/* pd_vpu */\n+\tCOMPOSITE(ACLK_IMG_ROOT, \"aclk_img_root\", gpll_spll_cpll_bpll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(141), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(57), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(ACLK_IMG_MID_ROOT, \"aclk_img_mid_root\", mux_600m_400m_300m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(141), 7, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(57), 1, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_IMG_ROOT, \"hclk_img_root\", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(141), 9, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(57), 2, GFLAGS),\n+\tCOMPOSITE(ACLK_JPEG_ROOT, \"aclk_jpeg_root\", gpll_cpll_aupll_spll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(142), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(57), 3, GFLAGS),\n+\tCOMPOSITE_NODIV(ACLK_IMG_LOW_ROOT, \"aclk_img_low_root\", mux_400m_200m_100m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(142), 7, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(57), 4, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_IMG_ROOT, \"pclk_img_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(142), 9, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(57), 6, GFLAGS),\n+\tGATE(HCLK_RGA2E_0, \"hclk_rga2e_0\", \"hclk_img_root\", 0,\n+\t     RK3572_CLKGATE_CON(58), 0, GFLAGS),\n+\tGATE(ACLK_RGA2E_0, \"aclk_rga2e_0\", \"aclk_img_root\", 0,\n+\t     RK3572_CLKGATE_CON(58), 1, GFLAGS),\n+\tCOMPOSITE(CLK_CORE_RGA2E_0, \"clk_core_rga2e_0\", gpll_spll_cpll_bpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(143), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(58), 2, GFLAGS),\n+\tGATE(ACLK_JPEG, \"aclk_jpeg\", \"aclk_jpeg_root\", 0,\n+\t     RK3572_CLKGATE_CON(58), 3, GFLAGS),\n+\tGATE(HCLK_JPEG, \"hclk_jpeg\", \"hclk_img_root\", 0,\n+\t     RK3572_CLKGATE_CON(58), 4, GFLAGS),\n+\tGATE(HCLK_VDPP, \"hclk_vdpp\", \"hclk_img_root\", 0,\n+\t     RK3572_CLKGATE_CON(58), 5, GFLAGS),\n+\tGATE(ACLK_VDPP, \"aclk_vdpp\", \"aclk_img_mid_root\", 0,\n+\t     RK3572_CLKGATE_CON(58), 6, GFLAGS),\n+\tCOMPOSITE(CLK_CORE_VDPP, \"clk_core_vdpp\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(143), 12, 1, MFLAGS, 7, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(58), 7, GFLAGS),\n+\tCOMPOSITE_NODIV(DCLK_EBC_SRC_TOP, \"dclk_ebc_src_top\", gpll_cpll_vpll_aupll_bpll_24m_p,\n+\t\t\tCLK_SET_RATE_NO_REPARENT,\n+\t\t\tRK3572_CLKSEL_CON(143), 13, 3, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(58), 10, GFLAGS),\n+\tCOMPOSITE_NOMUX(DCLK_EBC_INT_SRC, \"dclk_ebc_int_src\", \"dclk_ebc_src_top\",\n+\t\t\tCLK_SET_RATE_PARENT,\n+\t\t\tRK3572_CLKSEL_CON(144), 0, 9, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(58), 11, GFLAGS),\n+\tCOMPOSITE_FRACMUX(DCLK_EBC_FRAC_SRC, \"dclk_ebc_frac_src\", \"dclk_ebc_src_top\", 0,\n+\t\t\t  RK3572_CLKSEL_CON(145), 0,\n+\t\t\tRK3572_CLKGATE_CON(58), 12, GFLAGS, NULL),\n+\tGATE(HCLK_EBC, \"hclk_ebc\", \"hclk_img_root\", 0,\n+\t     RK3572_CLKGATE_CON(58), 13, GFLAGS),\n+\tGATE(ACLK_EBC, \"aclk_ebc\", \"aclk_img_low_root\", 0,\n+\t     RK3572_CLKGATE_CON(58), 14, GFLAGS),\n+\tCOMPOSITE_NODIV(DCLK_EBC, \"dclk_ebc\", dclk_ebc_p,\n+\t\t\tCLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,\n+\t\t\tRK3572_CLKSEL_CON(146), 0, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(58), 15, GFLAGS),\n+\n+\t/* pd_venc */\n+\tCOMPOSITE_NODIV(HCLK_RKVENC_ROOT, \"hclk_rkvenc_root\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(148), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(60), 0, GFLAGS),\n+\tCOMPOSITE(ACLK_RKVENC_ROOT, \"aclk_rkvenc_root\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(148), 7, 1, MFLAGS, 2, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(60), 1, GFLAGS),\n+\tGATE(HCLK_RKVENC, \"hclk_rkvenc\", \"hclk_rkvenc_root\", 0,\n+\t     RK3572_CLKGATE_CON(60), 4, GFLAGS),\n+\tGATE(ACLK_RKVENC, \"aclk_rkvenc\", \"aclk_rkvenc_root\", 0,\n+\t     RK3572_CLKGATE_CON(60), 5, GFLAGS),\n+\tCOMPOSITE(CLK_RKVENC_CORE, \"clk_rkvenc_core\", gpll_cpll_spll_bpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(148), 13, 2, MFLAGS, 8, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(60), 6, GFLAGS),\n+\n+\t/* pd_vi */\n+\tCOMPOSITE(ACLK_VI_ROOT, \"aclk_vi_root\", gpll_spll_isppvtpll_bpll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(154), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(63), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_VI_ROOT, \"hclk_vi_root\", hclk_vi_root_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(154), 7, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(63), 1, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_VI_ROOT, \"pclk_vi_root\", mux_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(154), 9, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(63), 2, GFLAGS),\n+\tCOMPOSITE(DCLK_VICAP, \"dclk_vicap\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(155), 5, 1, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(63), 6, GFLAGS),\n+\tGATE(ACLK_VICAP, \"aclk_vicap\", \"aclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(63), 7, GFLAGS),\n+\tGATE(HCLK_VICAP, \"hclk_vicap\", \"hclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(63), 8, GFLAGS),\n+\tCOMPOSITE(CLK_ISP_CORE, \"clk_isp_core\", gpll_spll_isppvtpll_bpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(155), 11, 2, MFLAGS, 6, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(63), 9, GFLAGS),\n+\tGATE(CLK_ISP_CORE_MARVIN, \"clk_isp_core_marvin\", \"clk_isp_core\", 0,\n+\t     RK3572_CLKGATE_CON(63), 10, GFLAGS),\n+\tGATE(CLK_ISP_CORE_VICAP, \"clk_isp_core_vicap\", \"clk_isp_core\", 0,\n+\t     RK3572_CLKGATE_CON(63), 11, GFLAGS),\n+\tGATE(ACLK_ISP, \"aclk_isp\", \"aclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(63), 12, GFLAGS),\n+\tGATE(HCLK_ISP, \"hclk_isp\", \"hclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(63), 13, GFLAGS),\n+\tGATE(ACLK_VPSS, \"aclk_vpss\", \"aclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(63), 15, GFLAGS),\n+\tGATE(HCLK_VPSS, \"hclk_vpss\", \"hclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(64), 0, GFLAGS),\n+\tGATE(CLK_CORE_VPSS, \"clk_core_vpss\", \"clk_isp_core\", 0,\n+\t     RK3572_CLKGATE_CON(64), 1, GFLAGS),\n+\tGATE(PCLK_CSI_HOST_0, \"pclk_csi_host_0\", \"pclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(64), 4, GFLAGS),\n+\tGATE(PCLK_CSI_HOST_1, \"pclk_csi_host_1\", \"pclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(64), 5, GFLAGS),\n+\tGATE(PCLK_CSI_HOST_2, \"pclk_csi_host_2\", \"pclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(64), 6, GFLAGS),\n+\tGATE(PCLK_CSI_HOST_3, \"pclk_csi_host_3\", \"pclk_vi_root\", 0,\n+\t     RK3572_CLKGATE_CON(64), 7, GFLAGS),\n+\tGATE(DCLK_VICAP_CSIHOST0, \"dclk_vicap_csihost0\", \"dclk_vicap\", 0,\n+\t     RK3572_CLKGATE_CON(64), 10, GFLAGS),\n+\tGATE(DCLK_VICAP_CSIHOST1, \"dclk_vicap_csihost1\", \"dclk_vicap\", 0,\n+\t     RK3572_CLKGATE_CON(64), 11, GFLAGS),\n+\tGATE(DCLK_VICAP_CSIHOST2, \"dclk_vicap_csihost2\", \"dclk_vicap\", 0,\n+\t     RK3572_CLKGATE_CON(64), 12, GFLAGS),\n+\tGATE(DCLK_VICAP_CSIHOST3, \"dclk_vicap_csihost3\", \"dclk_vicap\", 0,\n+\t     RK3572_CLKGATE_CON(64), 13, GFLAGS),\n+\tCOMPOSITE_NOMUX(ACLK_VI_ROOT_INTER, \"aclk_vi_root_inter\", \"aclk_vi_root\", 0,\n+\t\t\tRK3572_CLKSEL_CON(156), 8, 3, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(65), 4, GFLAGS),\n+\n+\t/* pd_vop */\n+\tCOMPOSITE(ACLK_VOP_ROOT, \"aclk_vop_root\", gpll_cpll_aupll_spll_bpll_p, CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(174), 5, 3, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(74), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_VOP_ROOT, \"hclk_vop_root\", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(174), 10, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(74), 2, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_VOP_ROOT, \"pclk_vop_root\", mux_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(174), 12, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(74), 3, GFLAGS),\n+\tGATE(HCLK_VOP, \"hclk_vop\", \"hclk_vop_root\", 0,\n+\t     RK3572_CLKGATE_CON(74), 8, GFLAGS),\n+\tGATE(ACLK_VOP, \"aclk_vop\", \"aclk_vop_root\", 0,\n+\t     RK3572_CLKGATE_CON(74), 9, GFLAGS),\n+\tCOMPOSITE(DCLK_VP0_SRC, \"dclk_vp0_src\", gpll_cpll_vpll_bpll_p, CLK_SET_RATE_NO_REPARENT,\n+\t\t  RK3572_CLKSEL_CON(175), 8, 2, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(74), 10, GFLAGS),\n+\tCOMPOSITE(DCLK_VP1_SRC, \"dclk_vp1_src\", gpll_cpll_vpll_bpll_p, CLK_SET_RATE_NO_REPARENT,\n+\t\t  RK3572_CLKSEL_CON(176), 8, 2, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(74), 11, GFLAGS),\n+\tCOMPOSITE_NODIV(DCLK_VP0, \"dclk_vp0\", dclk_vp0_p,\n+\t\t\tCLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,\n+\t\t\tRK3572_CLKSEL_CON(177), 11, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(74), 13, GFLAGS),\n+\tCOMPOSITE_NODIV(DCLK_VP1, \"dclk_vp1\", dclk_vp1_p,\n+\t\t\tCLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,\n+\t\t\tRK3572_CLKSEL_CON(177), 12, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(75), 0, GFLAGS),\n+\tGATE(PCLK_DSIHOST0, \"pclk_dsihost0\", \"pclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(78), 1, GFLAGS),\n+\n+\t/* pd_vo */\n+\tCOMPOSITE(ACLK_VO_ROOT, \"aclk_vo_root\", gpll_cpll_bpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(185), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(78), 5, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_VO_ROOT, \"hclk_vo_root\", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(185), 7, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(78), 6, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_VO_ROOT, \"pclk_vo_root\", mux_150m_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(185), 11, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(78), 8, GFLAGS),\n+\tGATE(PCLK_HDCP0_TRNG_NS, \"pclk_hdcp0_trng_ns\", \"pclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(79), 0, GFLAGS),\n+\tGATE(ACLK_HDCP0, \"aclk_hdcp0\", \"aclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(79), 1, GFLAGS),\n+\tGATE(HCLK_HDCP0, \"hclk_hdcp0\", \"hclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(79), 2, GFLAGS),\n+\tGATE(PCLK_HDCP0, \"pclk_hdcp0\", \"pclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(79), 3, GFLAGS),\n+\tGATE(CLK_TRNG0_SKP, \"clk_trng0_skp\", \"aclk_hdcp0\", 0,\n+\t     RK3572_CLKGATE_CON(79), 9, GFLAGS),\n+\tGATE(PCLK_HDMITX0, \"pclk_hdmitx0\", \"pclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(79), 14, GFLAGS),\n+\tCOMPOSITE(CLK_HDMITX0_EARC, \"clk_hdmitx0_earc\", gpll_cpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(188), 15, 1, MFLAGS, 10, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(79), 15, GFLAGS),\n+\tGATE(CLK_HDMITX0_REF, \"clk_hdmitx0_ref\", \"aclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(80), 0, GFLAGS),\n+\tGATE(PCLK_EDP0, \"pclk_edp0\", \"pclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(80), 2, GFLAGS),\n+\tGATE(CLK_EDP0_24M, \"clk_edp0_24m\", \"xin24m\", 0,\n+\t     RK3572_CLKGATE_CON(80), 3, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_EDP0_200M, \"clk_edp0_200m\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(189), 0, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(80), 4, GFLAGS),\n+\tCOMPOSITE(MCLK_SAI4_SRC, \"mclk_sai4_src\", mux_24m_frac_int_mclk4_p, 0,\n+\t\t  RK3572_CLKSEL_CON(189), 10, 4, MFLAGS, 2, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(80), 5, GFLAGS),\n+\tCOMPOSITE_NODIV(MCLK_SAI4, \"mclk_sai4\", mclk_sai4_p, CLK_SET_RATE_PARENT,\n+\t\t\tRK3572_CLKSEL_CON(189), 14, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(80), 6, GFLAGS),\n+\tGATE(HCLK_SAI4, \"hclk_sai4\", \"hclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(80), 7, GFLAGS),\n+\tCOMPOSITE(MCLK_SAI5_SRC, \"mclk_sai5_src\", mux_24m_frac_int_mclk4_p, 0,\n+\t\t  RK3572_CLKSEL_CON(190), 8, 4, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(80), 8, GFLAGS),\n+\tCOMPOSITE_NODIV(MCLK_SAI5, \"mclk_sai5\", mclk_sai5_p, CLK_SET_RATE_PARENT,\n+\t\t\tRK3572_CLKSEL_CON(190), 12, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(80), 9, GFLAGS),\n+\tGATE(HCLK_SAI5, \"hclk_sai5\", \"hclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(80), 10, GFLAGS),\n+\tGATE(HCLK_SPDIF_TX2, \"hclk_spdif_tx2\", \"hclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(80), 11, GFLAGS),\n+\tCOMPOSITE(MCLK_SPDIF_TX2_SRC, \"mclk_spdif_tx2_src\", mux_24m_frac_int_mclk4_p, 0,\n+\t\t  RK3572_CLKSEL_CON(191), 8, 4, MFLAGS, 0, 8, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(80), 12, GFLAGS),\n+\tCOMPOSITE_NODIV(MCLK_SPDIF_TX2, \"mclk_spdif_tx2\", mclk_spdif_tx2_p, CLK_SET_RATE_PARENT,\n+\t\t\tRK3572_CLKSEL_CON(191), 12, 1, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(80), 13, GFLAGS),\n+\tGATE(HCLK_SPDIF_RX1, \"hclk_spdif_rx1\", \"hclk_vo_root\", 0,\n+\t     RK3572_CLKGATE_CON(80), 14, GFLAGS),\n+\tCOMPOSITE(MCLK_SPDIF_RX1, \"mclk_spdif_rx1\", gpll_cpll_aupll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(192), 5, 2, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(80), 15, GFLAGS),\n+\tGATE(CLK_SAI4_MCLKOUT, \"clk_sai4_mclkout\", \"mclk_sai4\", 0,\n+\t     RK3572_CLKGATE_CON(81), 12, GFLAGS),\n+\n+\t/* pd_gpu */\n+\tCOMPOSITE(CLK_GPU_SRC, \"clk_gpu_src\", gpll_cpll_aupll_spll_bpll_p, 0,\n+\t\t  RK3572_CLKSEL_CON(202), 5, 3, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(84), 1, GFLAGS),\n+\tGATE(CLK_GPU, \"clk_gpu\", \"clk_gpu_src\", 0,\n+\t     RK3572_CLKGATE_CON(84), 3, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_GPU_COREGROUP, \"clk_gpu_coregroup\", \"clk_gpu_src\", 0,\n+\t\t\tRK3572_CLKSEL_CON(202), 9, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(84), 5, GFLAGS),\n+\tCOMPOSITE_NOMUX(CLK_GPU_STACKS, \"clk_gpu_stacks\", \"clk_gpu_src\", 0,\n+\t\t\tRK3572_CLKSEL_CON(203), 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(84), 6, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_GPU_ROOT, \"pclk_gpu_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(203), 5, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(84), 7, GFLAGS),\n+\n+\t/* pd_center */\n+\tCOMPOSITE(ACLK_CENTER_ROOT, \"aclk_center_root\", gpll_cpll_spll_aupll_bpll_p,\n+\t\t  CLK_IS_CRITICAL,\n+\t\t  RK3572_CLKSEL_CON(206), 5, 3, MFLAGS, 0, 5, DFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(86), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(ACLK_CENTER_LOW_ROOT, \"aclk_center_low_root\", mux_500m_250m_100m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(206), 8, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(86), 1, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_CENTER_ROOT, \"hclk_center_root\", mux_200m_100m_50m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(206), 10, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(86), 2, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_CENTER_ROOT, \"pclk_center_root\", mux_200m_100m_50m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_CLKSEL_CON(206), 12, 2, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(86), 3, GFLAGS),\n+\tGATE(ACLK_DMA2DDR, \"aclk_dma2ddr\", \"aclk_center_root\", 0,\n+\t     RK3572_CLKGATE_CON(86), 8, GFLAGS),\n+\tGATE(ACLK_DDR_SHAREMEM, \"aclk_ddr_sharemem\", \"aclk_center_low_root\", CLK_IS_CRITICAL,\n+\t     RK3572_CLKGATE_CON(86), 9, GFLAGS),\n+\tGATE(PCLK_DMA2DDR, \"pclk_dma2ddr\", \"pclk_center_root\", 0,\n+\t     RK3572_CLKGATE_CON(86), 15, GFLAGS),\n+\n+\t/* pd_secure */\n+\tCOMPOSITE_NODIV(HCLK_SECURE_NS_ROOT, \"hclk_secure_ns_root\", mux_175m_116m_58m_24m_p,\n+\t\t\tCLK_IS_CRITICAL,\n+\t\t\tRK3572_SECURE_NS_CLKSEL_CON(0), 2, 2, MFLAGS,\n+\t\t\tRK3572_SECURE_NS_CLKGATE_CON(0), 1, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_SECURE_NS_ROOT, \"pclk_secure_ns_root\", mux_116m_58m_24m_p, 0,\n+\t\t\tRK3572_SECURE_NS_CLKSEL_CON(0), 4, 2, MFLAGS,\n+\t\t\tRK3572_SECURE_NS_CLKGATE_CON(0), 2, GFLAGS),\n+\tGATE(HCLK_CRYPTO_NS, \"hclk_crypto_ns\", \"hclk_secure_ns_root\", 0,\n+\t     RK3572_SECURE_NS_CLKGATE_CON(0), 3, GFLAGS),\n+\tGATE(HCLK_TRNG_NS, \"hclk_trng_ns\", \"hclk_secure_ns_root\", 0,\n+\t     RK3572_SECURE_NS_CLKGATE_CON(0), 4, GFLAGS),\n+\tGATE(PCLK_OTPC_NS, \"pclk_otpc_ns\", \"pclk_secure_ns_root\", 0,\n+\t     RK3572_SECURE_NS_CLKGATE_CON(0), 8, GFLAGS),\n+\tGATE(CLK_OTPC_NS, \"clk_otpc_ns\", \"xin24m\", 0,\n+\t     RK3572_SECURE_NS_CLKGATE_CON(0), 9, GFLAGS),\n+\tGATE(ACLK_CRYPTO_NS, \"aclk_crypto_ns\", \"clk_spll_div2\", 0,\n+\t     RK3572_NON_SECURE_GATING_CON00, 2, GFLAGS),\n+\tGATE(CLK_PKA_CRYPTO_NS, \"clk_pka_crypto_ns\", \"clk_spll_div2\", 0,\n+\t     RK3572_NON_SECURE_GATING_CON00, 1, GFLAGS),\n+\n+\t/* pd_pmu */\n+\tMUX(CLK_REF_OSC_MPHY, \"clk_ref_osc_mphy\", clk_ref_osc_mphy_p, 0,\n+\t    RK3572_PMU_CLKSEL_CON(3), 0, 1, MFLAGS),\n+\tGATE(CLK_REF_UFS_CLKOUT, \"clk_ref_ufs_clkout\", \"clk_ref_osc_mphy\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(2), 5, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_PMU1_ROOT, \"hclk_pmu1_root\", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_PMU_CLKSEL_CON(4), 0, 2, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(3), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(HCLK_PMU_CM0_ROOT, \"hclk_pmu_cm0_root\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_PMU_CLKSEL_CON(4), 2, 2, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(3), 1, GFLAGS),\n+\tCOMPOSITE_NODIV(PCLK_PMU0_ROOT, \"pclk_pmu0_root\", mux_100m_50m_24m_p, 0,\n+\t\t\tRK3572_PMU_CLKSEL_CON(20), 0, 2, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(7), 0, GFLAGS),\n+\tGATE(PCLK_PMU1_ROOT, \"pclk_pmu1_root\", \"pclk_pmu0_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(7), 10, GFLAGS),\n+\tGATE(PCLK_APB2ASB_PMU1, \"pclk_apb2asb_pmu1\", \"pclk_pmu1_root\", CLK_IS_CRITICAL,\n+\t     RK3572_PMU_CLKGATE_CON(3), 6, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_APB2ASB_PMU1, \"sclk_apb2asb_pmu1\", sclk_apb2asb_p, CLK_IS_CRITICAL,\n+\t\t\tRK3572_PMU_CLKSEL_CON(4), 4, 2, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(3), 7, GFLAGS),\n+\tGATE(CLK_PMUMCU_CORE_AON, \"clk_pmumcu_core_aon\", \"hclk_pmu_cm0_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(3), 13, GFLAGS),\n+\tCOMPOSITE(CLK_MTIME_TOGGLE_A_PMU, \"clk_mtime_toggle_a_pmu\", mux_24m_32k_p, 0,\n+\t\t  RK3572_PMU_CLKSEL_CON(4), 12, 1, MFLAGS, 6, 6, DFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(3), 15, GFLAGS),\n+\tGATE(PCLK_PMU1, \"pclk_pmu1\", \"pclk_pmu1_root\", CLK_IS_CRITICAL,\n+\t     RK3572_PMU_CLKGATE_CON(4), 0, GFLAGS),\n+\tGATE(CLK_PMU1, \"clk_pmu1\", \"xin24m\", CLK_IS_CRITICAL,\n+\t     RK3572_PMU_CLKGATE_CON(4), 3, GFLAGS),\n+\tGATE(PCLK_PMU1WDT, \"pclk_pmu1wdt\", \"pclk_pmu1_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(4), 6, GFLAGS),\n+\tCOMPOSITE_NODIV(TCLK_PMU1WDT, \"tclk_pmu1wdt\", mux_24m_32k_p, 0,\n+\t\t\tRK3572_PMU_CLKSEL_CON(4), 13, 1, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(4), 7, GFLAGS),\n+\tGATE(PCLK_PMUTIMER, \"pclk_pmutimer\", \"pclk_pmu1_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(4), 8, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_PMUTIMER_ROOT, \"clk_pmutimer_root\", mux_100m_24m_32k_p, 0,\n+\t\t\tRK3572_PMU_CLKSEL_CON(4), 14, 2, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(4), 9, GFLAGS),\n+\tGATE(CLK_PMUTIMER0, \"clk_pmutimer0\", \"clk_pmutimer_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(4), 10, GFLAGS),\n+\tGATE(CLK_PMUTIMER1, \"clk_pmutimer1\", \"clk_pmutimer_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(4), 11, GFLAGS),\n+\tGATE(PCLK_PWM0, \"pclk_pwm0\", \"pclk_pmu1_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(4), 12, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_PWM0, \"clk_pwm0\", mux_100m_50m_24m_rc_p, 0,\n+\t\t\tRK3572_PMU_CLKSEL_CON(5), 0, 2, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(4), 13, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_PWM0_OSC, \"clk_pwm0_osc\", clk_pwm0_osc_p, 0,\n+\t\t\tRK3572_PMU_CLKSEL_CON(5), 2, 1, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(4), 14, GFLAGS),\n+\tGATE(PCLK_PMUPHY_ROOT, \"pclk_pmuphy_root\", \"pclk_pmu1_root\", CLK_IS_CRITICAL,\n+\t     RK3572_PMU_CLKGATE_CON(5), 1, GFLAGS),\n+\tGATE(PCLK_I2C0, \"pclk_i2c0\", \"pclk_pmu1_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(5), 2, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_I2C0, \"clk_i2c0\", mux_200m_100m_50m_24m_p, 0,\n+\t\t\tRK3572_PMU_CLKSEL_CON(6), 7, 2, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(5), 3, GFLAGS),\n+\tCOMPOSITE_NODIV(SCLK_UART1, \"sclk_uart1\", sclk_uart1_p, 0,\n+\t\t\tRK3572_PMU_CLKSEL_CON(8), 0, 2, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(5), 6, GFLAGS),\n+\tGATE(PCLK_UART1, \"pclk_uart1\", \"pclk_pmu1_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(5), 7, GFLAGS),\n+\tGATE(CLK_PWM0_RC, \"clk_pwm0_rc\", \"clk_rcosc\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(5), 8, GFLAGS),\n+\tCOMPOSITE(CLK_PDM0, \"clk_pdm0\", clk_pdm0_p, CLK_SET_RATE_PARENT,\n+\t\t  RK3572_PMU_CLKSEL_CON(8), 14, 2, MFLAGS, 8, 6, DFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(5), 14, GFLAGS),\n+\tGATE(HCLK_PDM0, \"hclk_pdm0\", \"hclk_pmu1_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(6), 0, GFLAGS),\n+\tCOMPOSITE_NODIV(MCLK_PDM0, \"mclk_pdm0\", mclk_pdm0_p, CLK_SET_RATE_PARENT,\n+\t\t\tRK3572_PMU_CLKSEL_CON(9), 0, 2, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(6), 1, GFLAGS),\n+\tGATE(HCLK_VAD, \"hclk_vad\", \"hclk_pmu1_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(6), 2, GFLAGS),\n+\tGATE(CLK_PDM0_OUT, \"clk_pdm0_out\", \"clk_pdm0\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(6), 9, GFLAGS),\n+\tGATE(PCLK_PMU0, \"pclk_pmu0\", \"pclk_pmu0_root\", CLK_IS_CRITICAL,\n+\t     RK3572_PMU_CLKGATE_CON(7), 3, GFLAGS),\n+\tGATE(PCLK_GPIO0, \"pclk_gpio0\", \"pclk_pmu0_root\", 0,\n+\t     RK3572_PMU_CLKGATE_CON(7), 6, GFLAGS),\n+\tCOMPOSITE_NODIV(DBCLK_GPIO0, \"dbclk_gpio0\", mux_24m_32k_p, 0,\n+\t\t\tRK3572_PMU_CLKSEL_CON(20), 2, 1, MFLAGS,\n+\t\t\tRK3572_PMU_CLKGATE_CON(7), 7, GFLAGS),\n+\n+\tCOMPOSITE_NODIV(SAI_SCLKIN_FREQ, \"sai_sclkin_freq\", sai_sclkin_freq_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(83), 4, 3, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(18), 2, GFLAGS),\n+\tCOMPOSITE_NODIV(SAI_SCLKIN_COUNTER, \"sai_sclkin_counter\", sai_sclkin_freq_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(83), 7, 3, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(18), 3, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_FREQ_PWM1, \"clk_freq_pwm1\", clk_freq_pwm1_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(82), 10, 3, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(17), 8, GFLAGS),\n+\tCOMPOSITE_NODIV(CLK_COUNTER_PWM1, \"clk_counter_pwm1\", clk_counter_pwm1_p, 0,\n+\t\t\tRK3572_CLKSEL_CON(82), 13, 3, MFLAGS,\n+\t\t\tRK3572_CLKGATE_CON(17), 9, GFLAGS),\n+\tMUX(ASRC_REF_PULSE, \"asrc_ref_pulse\", asrc_ref_pulse_p, 0,\n+\t    RK3572_CLKSEL_CON(62), 12, 3, MFLAGS),\n+\tMUX(LRCK_ASRC_2CH0_SRC, \"lrck_asrc_2ch0_src\", lrck_asrc_src_p, 0,\n+\t    RK3572_CLKSEL_CON(59), 0, 4, MFLAGS),\n+\tMUX(LRCK_ASRC_2CH0_DST, \"lrck_asrc_2ch0_dst\", lrck_asrc_dst_p, 0,\n+\t    RK3572_CLKSEL_CON(59), 4, 4, MFLAGS),\n+\tMUX(LRCK_ASRC_2CH1_SRC, \"lrck_asrc_2ch1_src\", lrck_asrc_src_p, 0,\n+\t    RK3572_CLKSEL_CON(59), 8, 4, MFLAGS),\n+\tMUX(LRCK_ASRC_2CH1_DST, \"lrck_asrc_2ch1_dst\", lrck_asrc_dst_p, 0,\n+\t    RK3572_CLKSEL_CON(59), 12, 4, MFLAGS),\n+\tMUX(REF_PULSE_CLK_AUDIO_FRAC_0, \"ref_pulse_clk_audio_frac_0\", ref_pulse_p, 0,\n+\t    RK3572_CLKSEL_CON(40), 13, 3, MFLAGS),\n+\tMUX(REF_PULSE_CLK_AUDIO_FRAC_1, \"ref_pulse_clk_audio_frac_1\", ref_pulse_p, 0,\n+\t    RK3572_CLKSEL_CON(41), 0, 3, MFLAGS),\n+\tMUX(REF_PULSE_CLK_AUDIO_FRAC_2, \"ref_pulse_clk_audio_frac_2\", ref_pulse_p, 0,\n+\t    RK3572_CLKSEL_CON(41), 3, 3, MFLAGS),\n+\tMUX(REF_PULSE_FRACDIV_3, \"ref_pulse_fracdiv_3\", ref_pulse_p, 0,\n+\t    RK3572_CLKSEL_CON(41), 6, 3, MFLAGS),\n+\tMUX(REF_PULSE_AUPLL, \"ref_pulse_aupll\", ref_pulse_p, 0,\n+\t    RK3572_CLKSEL_CON(41), 9, 3, MFLAGS),\n+};\n+\n+static struct rockchip_clk_branch rk3572_armclkl1 __initdata =\n+\tCOMPOSITE_NOGATE(ARMCLK_L1, \"armclk_l1\", mux_armclkl1_p, CLK_IS_CRITICAL,\n+\t\t\t RK3572_LITCORE1_CLKSEL_CON(0), 8, 2, MFLAGS, 3, 5, DFLAGS);\n+\n+static struct rockchip_clk_branch rk3572_aupll_ref_branches[] __initdata = {\n+\tMUXGRF(AUPLL_REF, \"aupll_ref\", mux_aupll_ref_p, CLK_IS_CRITICAL,\n+\t       RK3572_PMU0_GRF_OSC_CON6, 0, 1, MFLAGS, grf_type_pmu0),\n+};\n+\n+static void __init rk3572_register_spll_factors(void)\n+{\n+\tstruct rk3572_spll_factor {\n+\t\tconst char *name;\n+\t\tunsigned int div;\n+\t};\n+\tstatic const struct rk3572_spll_factor factors[] __initconst = {\n+\t\t{ \"clk_spll_div12\", 12 },\n+\t\t{ \"clk_spll_div6\", 6 },\n+\t\t{ \"clk_spll_div4\", 4 },\n+\t\t{ \"clk_spll_div2\", 2 },\n+\t};\n+\tstruct clk *clk;\n+\tunsigned int i;\n+\n+\t/* Internal clocks must not replace the binding's PLL_PPLL at ID 0. */\n+\tfor (i = 0; i \u003c ARRAY_SIZE(factors); i++) {\n+\t\tclk = clk_register_fixed_factor(NULL, factors[i].name, \"spll\",\n+\t\t\t\t\t\t0, 1, factors[i].div);\n+\t\tif (IS_ERR(clk))\n+\t\t\tpr_err(\"%s: failed to register %s: %ld\\n\", __func__,\n+\t\t\t       factors[i].name, PTR_ERR(clk));\n+\t}\n+}\n+\n+static void __init rk3572_clk_init(struct device_node *np)\n+{\n+\tstruct rockchip_clk_provider *ctx;\n+\tunsigned long clk_nr_clks;\n+\tvoid __iomem *reg_base;\n+\tstruct regmap *pmu0_grf;\n+\tint ret;\n+\n+\treg_base = of_iomap(np, 0);\n+\tif (!reg_base) {\n+\t\tpr_err(\"%s: could not map cru region\\n\", __func__);\n+\t\treturn;\n+\t}\n+\n+\tclk_nr_clks = rockchip_clk_find_max_clk_id(rk3572_clk_branches,\n+\t\t\t\t\t\t   ARRAY_SIZE(rk3572_clk_branches)) + 1;\n+\tctx = rockchip_clk_init(np, reg_base, clk_nr_clks);\n+\tif (IS_ERR(ctx)) {\n+\t\tpr_err(\"%s: rockchip clk init failed\\n\", __func__);\n+\t\tiounmap(reg_base);\n+\t\treturn;\n+\t}\n+\tpmu0_grf = ctx-\u003egrf;\n+\tif (IS_ERR(pmu0_grf)) {\n+\t\tpr_err(\"%s: could not get PMU0 GRF\\n\", __func__);\n+\t\tgoto err_free;\n+\t}\n+\n+\tret = rockchip_clk_add_grf(ctx, pmu0_grf, grf_type_pmu0);\n+\tif (ret)\n+\t\tgoto err_free;\n+\n+\trockchip_clk_register_branches(ctx, rk3572_aupll_ref_branches,\n+\t\t\t\t       ARRAY_SIZE(rk3572_aupll_ref_branches));\n+\n+\trockchip_clk_register_plls(ctx, rk3572_pll_clks,\n+\t\t\t\t   ARRAY_SIZE(rk3572_pll_clks),\n+\t\t\t\t   RK3572_GRF_SOC_STATUS0);\n+\n+\trockchip_clk_register_armclk(ctx, ARMCLK_L0, \"armclk_l0\",\n+\t\t\t\t     mux_armclkl0_p, ARRAY_SIZE(mux_armclkl0_p),\n+\t\t\t\t     \u0026rk3572_cpul0clk_data, rk3572_cpul0clk_rates,\n+\t\t\t\t     ARRAY_SIZE(rk3572_cpul0clk_rates));\n+\n+\trockchip_clk_register_armclk(ctx, ARMCLK_B, \"armclk_b\",\n+\t\t\t\t     mux_armclkb_p, ARRAY_SIZE(mux_armclkb_p),\n+\t\t\t\t     \u0026rk3572_cpubclk_data, rk3572_cpubclk_rates,\n+\t\t\t\t     ARRAY_SIZE(rk3572_cpubclk_rates));\n+\n+\trk3572_register_spll_factors();\n+\n+\trockchip_clk_register_branches(ctx, rk3572_clk_branches,\n+\t\t\t\t       ARRAY_SIZE(rk3572_clk_branches));\n+\n+\trockchip_clk_register_armclk_multi_pll(ctx, \u0026rk3572_armclkl1,\n+\t\t\t\t\t       rk3572_cpul1clk_rates,\n+\t\t\t\t\tARRAY_SIZE(rk3572_cpul1clk_rates));\n+\n+\trk3572_rst_init(np, reg_base);\n+\n+\trockchip_register_restart_notifier(ctx, RK3572_GLB_SRST_FST, NULL);\n+\n+\trockchip_clk_of_add_provider(np, ctx);\n+\treturn;\n+\n+err_free:\n+\tkfree(ctx-\u003eclk_data.clks);\n+\tkfree(ctx);\n+\tiounmap(reg_base);\n+}\n+\n+CLK_OF_DECLARE(rk3572_cru, \"rockchip,rk3572-cru\", rk3572_clk_init);\ndiff --git a/drivers/clk/rockchip/clk.c b/drivers/clk/rockchip/clk.c\nindex ee8c79b938d3c1..0646a2e6af0a86 100644\n--- a/drivers/clk/rockchip/clk.c\n+++ b/drivers/clk/rockchip/clk.c\n@@ -589,6 +589,16 @@ void rockchip_clk_register_branches(struct rockchip_clk_provider *ctx,\n \t\t\t\tlist-\u003egate_flags, flags, list-\u003echild,\n \t\t\t\t\u0026ctx-\u003elock);\n \t\t\tbreak;\n+\t\tcase branch_fraction_divider_v2:\n+\t\t\tclk = rockchip_clk_register_frac_v2(NULL, list-\u003ename,\n+\t\t\t\t\t\t\t    list-\u003eparent_names[0], flags,\n+\t\t\t\t\t\t\t    ctx-\u003ereg_base + list-\u003emuxdiv_offset,\n+\t\t\t\t\t\t\t    list-\u003emux_shift, list-\u003emux_width,\n+\t\t\t\t\t\t\t    ctx-\u003ereg_base + list-\u003ediv_offset,\n+\t\t\t\t\t\t\t    list-\u003ediv_shift, list-\u003ediv_width,\n+\t\t\t\t\t\t\t    list-\u003ediv_flags,\n+\t\t\t\t\t\t\t    \u0026ctx-\u003elock);\n+\t\t\tbreak;\n \t\tcase branch_half_divider:\n \t\t\tclk = rockchip_clk_register_halfdiv(list-\u003ename,\n \t\t\t\tlist-\u003eparent_names, list-\u003enum_parents,\ndiff --git a/drivers/clk/rockchip/clk.h b/drivers/clk/rockchip/clk.h\nindex 72b36bba315238..c5629805449068 100644\n--- a/drivers/clk/rockchip/clk.h\n+++ b/drivers/clk/rockchip/clk.h\n@@ -426,6 +426,41 @@ struct clk;\n #define RK3568_PMU_CLKGATE_CON(x)\t((x) * 0x4 + 0x180)\n #define RK3568_PMU_SOFTRST_CON(x)\t((x) * 0x4 + 0x200)\n \n+#define RK3572_PHP_CRU_BASE\t\t0x8000\n+#define RK3572_SECURE_NS_CRU_BASE\t0x10000\n+#define RK3572_PMU_CRU_BASE\t\t0x20000\n+#define RK3572_BIGCORE_CRU_BASE\t\t0x40000\n+#define RK3572_LITCORE0_CRU_BASE\t0x48000\n+#define RK3572_LITCORE1_CRU_BASE\t0x50000\n+#define RK3572_CCI_CRU_BASE\t\t0x58000\n+\n+#define RK3572_PLL_CON(x)\t\t(RK2928_PLL_CON(x) + 0x4000)\n+#define RK3572_MODE_CON0\t\t0x4280\n+#define RK3572_MODE_CON1\t\t0x4284\n+#define RK3572_CLKSEL_CON(x)\t\t((x) * 0x4 + 0x300)\n+#define RK3572_CLKGATE_CON(x)\t\t((x) * 0x4 + 0x800)\n+#define RK3572_SOFTRST_CON(x)\t\t((x) * 0x4 + 0xa00)\n+#define RK3572_GLB_SRST_FST\t\t0xc08\n+#define RK3572_NON_SECURE_GATING_CON00\t0xc48\n+\n+#define RK3572_PPLL_CON(x)\t\t((x) * 0x4 + RK3572_PHP_CRU_BASE)\n+#define RK3572_PHP_CLKSEL_CON(x)\t((x) * 0x4 + RK3572_PHP_CRU_BASE + 0x300)\n+#define RK3572_PHP_CLKGATE_CON(x)\t((x) * 0x4 + RK3572_PHP_CRU_BASE + 0x800)\n+\n+#define RK3572_PMU_CLKSEL_CON(x)\t((x) * 0x4 + RK3572_PMU_CRU_BASE + 0x300)\n+#define RK3572_PMU_CLKGATE_CON(x)\t((x) * 0x4 + RK3572_PMU_CRU_BASE + 0x800)\n+\n+#define RK3572_SECURE_NS_CLKSEL_CON(x)\t((x) * 0x4 + RK3572_SECURE_NS_CRU_BASE + 0x300)\n+#define RK3572_SECURE_NS_CLKGATE_CON(x)\t((x) * 0x4 + RK3572_SECURE_NS_CRU_BASE + 0x800)\n+\n+#define RK3572_LPLL_CON(x)\t\t((x) * 0x4 + RK3572_CCI_CRU_BASE)\n+#define RK3572_LPLL_MODE_CON0\t\t(0x280 + RK3572_CCI_CRU_BASE)\n+#define RK3572_CCI_CLKSEL_CON(x)\t((x) * 0x4 + RK3572_CCI_CRU_BASE + 0x300)\n+\n+#define RK3572_BIGCORE_CLKSEL_CON(x)\t((x) * 0x4 + RK3572_BIGCORE_CRU_BASE + 0x300)\n+#define RK3572_LITCORE0_CLKSEL_CON(x)\t((x) * 0x4 + RK3572_LITCORE0_CRU_BASE + 0x300)\n+#define RK3572_LITCORE1_CLKSEL_CON(x)\t((x) * 0x4 + RK3572_LITCORE1_CRU_BASE + 0x300)\n+\n #define RK3576_PHP_CRU_BASE\t\t0x8000\n #define RK3576_SECURE_NS_CRU_BASE\t0x10000\n #define RK3576_PMU_CRU_BASE\t\t0x20000\n@@ -781,6 +816,13 @@ struct clk *rockchip_clk_register_ddrclk(const char *name, int flags,\n \t\t\t\t\t int ddr_flags, void __iomem *reg_base,\n \t\t\t\t\t spinlock_t *lock);\n \n+struct clk *rockchip_clk_register_frac_v2(struct device *dev,\n+\t\t\t\t\t  const char *name, const char *parent_name,\n+\t\t\t\t\t  unsigned long flags, void __iomem *reg,\n+\t\t\t\t\t  u8 mshift, u8 width,\n+\t\t\t\t\t  void __iomem *high_reg, u8 high_mshift, u8 high_width,\n+\t\t\t\t\t  u8 clk_divider_flags, spinlock_t *lock);\n+\n #define ROCKCHIP_INVERTER_HIWORD_MASK\tBIT(0)\n \n struct clk *rockchip_clk_register_inverter(const char *name,\n@@ -806,6 +848,7 @@ enum rockchip_clk_branch_type {\n \tbranch_grf_mux,\n \tbranch_divider,\n \tbranch_fraction_divider,\n+\tbranch_fraction_divider_v2,\n \tbranch_gate,\n \tbranch_grf_gate,\n \tbranch_linked_gate,\n@@ -863,6 +906,28 @@ struct rockchip_clk_branch {\n \t\t.gate_flags\t= gf,\t\t\t\t\\\n \t}\n \n+#define COMPOSITE_MUXTBL(_id, cname, pnames, f, mo, ms, mw, mf,\t\\\n+\t\t\t mt, ds, dw, df, go, gs, gf)\t\t\\\n+\t{\t\t\t\t\t\t\t\\\n+\t\t.id\t\t= _id,\t\t\t\t\\\n+\t\t.branch_type\t= branch_composite,\t\t\\\n+\t\t.name\t\t= cname,\t\t\t\\\n+\t\t.parent_names\t= pnames,\t\t\t\\\n+\t\t.num_parents\t= ARRAY_SIZE(pnames),\t\t\\\n+\t\t.flags\t\t= f,\t\t\t\t\\\n+\t\t.muxdiv_offset\t= mo,\t\t\t\t\\\n+\t\t.mux_shift\t= ms,\t\t\t\t\\\n+\t\t.mux_width\t= mw,\t\t\t\t\\\n+\t\t.mux_flags\t= mf,\t\t\t\t\\\n+\t\t.mux_table\t= mt,\t\t\t\t\\\n+\t\t.div_shift\t= ds,\t\t\t\t\\\n+\t\t.div_width\t= dw,\t\t\t\t\\\n+\t\t.div_flags\t= df,\t\t\t\t\\\n+\t\t.gate_offset\t= go,\t\t\t\t\\\n+\t\t.gate_shift\t= gs,\t\t\t\t\\\n+\t\t.gate_flags\t= gf,\t\t\t\t\\\n+\t}\n+\n #define COMPOSITE_DIV_OFFSET(_id, cname, pnames, f, mo, ms, mw,\t\\\n \t\t\t     mf, do, ds, dw, df, go, gs, gf)\t\\\n \t{\t\t\t\t\t\t\t\\\n@@ -1014,6 +1079,23 @@ struct rockchip_clk_branch {\n \t\t.child\t\t= ch,\t\t\t\t\\\n \t}\n \n+#define COMPOSITE_FRAC_V2(_id, cname, pname, f, mo, ms, mw, do, ds, dw, df)\\\n+\t{\t\t\t\t\t\t\t\\\n+\t\t.id\t\t= _id,\t\t\t\t\\\n+\t\t.branch_type\t= branch_fraction_divider_v2,\t\\\n+\t\t.name\t\t= cname,\t\t\t\\\n+\t\t.parent_names\t= (const char *[]){ pname },\t\\\n+\t\t.num_parents\t= 1,\t\t\t\t\\\n+\t\t.flags\t\t= f,\t\t\t\t\\\n+\t\t.muxdiv_offset\t= mo,\t\t\t\t\\\n+\t\t.mux_shift\t= ms,\t\t\t\t\\\n+\t\t.mux_width\t= mw,\t\t\t\t\\\n+\t\t.div_offset\t= do,\t\t\t\t\\\n+\t\t.div_shift\t= ds,\t\t\t\t\\\n+\t\t.div_width\t= dw,\t\t\t\t\\\n+\t\t.div_flags\t= df,\t\t\t\t\\\n+\t}\n+\n #define COMPOSITE_FRACMUX_NOGATE(_id, cname, pname, f, mo, df, ch) \\\n \t{\t\t\t\t\t\t\t\\\n \t\t.id\t\t= _id,\t\t\t\t\\\n@@ -1396,6 +1478,7 @@ void rv1126b_rst_init(struct device_node *np, void __iomem *reg_base);\n void rk3506_rst_init(struct device_node *np, void __iomem *reg_base);\n void rk3528_rst_init(struct device_node *np, void __iomem *reg_base);\n void rk3562_rst_init(struct device_node *np, void __iomem *reg_base);\n+void rk3572_rst_init(struct device_node *np, void __iomem *reg_base);\n void rk3576_rst_init(struct device_node *np, void __iomem *reg_base);\n void rk3588_rst_init(struct device_node *np, void __iomem *reg_base);\n \ndiff --git a/drivers/clk/rockchip/rst-rk3572.c b/drivers/clk/rockchip/rst-rk3572.c\nnew file mode 100644\nindex 00000000000000..a07f88dadc00f0\n--- /dev/null\n+++ b/drivers/clk/rockchip/rst-rk3572.c\n@@ -0,0 +1,739 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+/*\n+ * Copyright (c) 2025 Rockchip Electronics Co., Ltd.\n+ * Author: Elaine Zhang \u003czhangqing@rock-chips.com\u003e\n+ */\n+\n+#include \u003clinux/module.h\u003e\n+#include \u003clinux/of.h\u003e\n+#include \u003cdt-bindings/reset/rockchip,rk3572-cru.h\u003e\n+#include \"clk.h\"\n+\n+#define CRU_RESET_OFFSET(id, reg, bit)[id] = (0x00000 * 4 + (reg) * 16 + (bit))\n+#define PHPPHY_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x08000 * 4 + (reg) * 16 + (bit))\n+#define SECURE_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x10000 * 4 + (reg) * 16 + (bit))\n+#define PMU1_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x20000 * 4 + (reg) * 16 + (bit))\n+#define DDR0_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x30000 * 4 + (reg) * 16 + (bit))\n+#define BIGCORE_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x40000 * 4 + (reg) * 16 + (bit))\n+#define LITCORE0_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x48000 * 4 + (reg) * 16 + (bit))\n+#define LITCORE1_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x50000 * 4 + (reg) * 16 + (bit))\n+#define CCI_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x58000 * 4 + (reg) * 16 + (bit))\n+\n+static const int rk3572_register_offset[] = {\n+\t/* CRU--\u003eSOFTRST_CON01 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_TOP_BIU, 1, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_TOP_BIU, 1, 6),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_TOP_MID_BIU, 1, 7),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_TOP_BIU, 1, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON02 */\n+\tCRU_RESET_OFFSET(SRST_HRESETN_TOP_FW, 2, 0),\n+\n+\t/* CRU--\u003eSOFTRST_CON06 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_TOP, 6, 2),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_TOP, 6, 3),\n+\n+\t/* CRU--\u003eSOFTRST_CON07 */\n+\tCRU_RESET_OFFSET(SRST_HRESETN_AUDIO_BIU, 7, 2),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_ASRC_2CH_0, 7, 3),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_ASRC_2CH_1, 7, 4),\n+\tCRU_RESET_OFFSET(SRST_RESETN_ASRC_2CH_0, 7, 7),\n+\tCRU_RESET_OFFSET(SRST_RESETN_ASRC_2CH_1, 7, 8),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SAI0, 7, 12),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SAI0, 7, 13),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SPDIF_RX0, 7, 14),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SPDIF_RX0, 7, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON08 */\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SAI1, 8, 5),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SAI1, 8, 6),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SAI2, 8, 8),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SAI2, 8, 10),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SAI3, 8, 12),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SAI3, 8, 14),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_ACDCDIG_DSM, 8, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON09 */\n+\tCRU_RESET_OFFSET(SRST_MRESETN_ACDCDIG_DSM, 9, 0),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_AUDIO_BIU, 9, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_AUDIO_GRF, 9, 5),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SPDIF_TX0, 9, 6),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SPDIF_TX0, 9, 7),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SPDIF_TX1, 9, 8),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SPDIF_TX1, 9, 9),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_AUDIO, 9, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_AUDIO, 9, 11),\n+\n+\t/* CRU--\u003eSOFTRST_CON11 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_BUS_BIU, 11, 3),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_BUS_FW, 11, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_BUS_BIU, 11, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CRU, 11, 6),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_CAN0, 11, 7),\n+\tCRU_RESET_OFFSET(SRST_RESETN_CAN0, 11, 8),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_CAN1, 11, 9),\n+\tCRU_RESET_OFFSET(SRST_RESETN_CAN1, 11, 10),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_CAN2, 11, 11),\n+\tCRU_RESET_OFFSET(SRST_RESETN_CAN2, 11, 12),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_CAN3, 11, 13),\n+\tCRU_RESET_OFFSET(SRST_RESETN_CAN3, 11, 14),\n+\n+\t/* CRU--\u003eSOFTRST_CON12 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DECOM_BIU, 12, 0),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_BUS_BIU, 12, 3),\n+\tCRU_RESET_OFFSET(SRST_RESETN_KEY_SHIFT, 12, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_I2C1, 12, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_I2C2, 12, 6),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_I2C3, 12, 7),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_I2C4, 12, 8),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_I2C5, 12, 9),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_I2C6, 12, 10),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_I2C7, 12, 11),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_I2C8, 12, 12),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_I2C9, 12, 13),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_WDT_BUSMCU, 12, 14),\n+\tCRU_RESET_OFFSET(SRST_TRESETN_WDT_BUSMCU, 12, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON13 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_GIC, 13, 0),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I2C1, 13, 5),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I2C2, 13, 6),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I2C3, 13, 7),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I2C4, 13, 8),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I2C5, 13, 9),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I2C6, 13, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I2C7, 13, 11),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I2C8, 13, 12),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I2C9, 13, 13),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_SARADC, 13, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON14 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_SARADC, 14, 0),\n+\tCRU_RESET_OFFSET(SRST_RESETN_SARADC_32K, 14, 1),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_TSADC, 14, 2),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TSADC, 14, 3),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART0, 14, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART2, 14, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART3, 14, 6),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART4, 14, 7),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART5, 14, 8),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART6, 14, 9),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART7, 14, 10),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART8, 14, 11),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART9, 14, 12),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART10, 14, 13),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UART11, 14, 14),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART0, 14, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON15 */\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART2, 15, 0),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART3, 15, 3),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART4, 15, 6),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART5, 15, 9),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART6, 15, 12),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART7, 15, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON16 */\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART8, 16, 2),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART9, 16, 3),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART10, 16, 4),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_UART11, 16, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_SPI0, 16, 7),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_SPI1, 16, 8),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_SPI2, 16, 9),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_SPI3, 16, 10),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_SPI4, 16, 11),\n+\tCRU_RESET_OFFSET(SRST_RESETN_SPI0, 16, 12),\n+\tCRU_RESET_OFFSET(SRST_RESETN_SPI1, 16, 13),\n+\tCRU_RESET_OFFSET(SRST_RESETN_SPI2, 16, 14),\n+\tCRU_RESET_OFFSET(SRST_RESETN_SPI3, 16, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON17 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_SPI4, 17, 0),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_WDT0, 17, 1),\n+\tCRU_RESET_OFFSET(SRST_TRESETN_WDT0, 17, 2),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_SYS_GRF, 17, 3),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_PWM1, 17, 4),\n+\tCRU_RESET_OFFSET(SRST_RESETN_PWM1, 17, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_PWM2, 17, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_PWM2, 17, 11),\n+\n+\t/* CRU--\u003eSOFTRST_CON18 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_BUSTIMER0, 18, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_BUSTIMER1, 18, 5),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER0, 18, 7),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER1, 18, 8),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER2, 18, 9),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER3, 18, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER4, 18, 11),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER5, 18, 12),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_MAILBOX0, 18, 14),\n+\n+\t/* CRU--\u003eSOFTRST_CON19 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_GPIO1, 19, 0),\n+\tCRU_RESET_OFFSET(SRST_DBRESETN_GPIO1, 19, 1),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_GPIO2, 19, 2),\n+\tCRU_RESET_OFFSET(SRST_DBRESETN_GPIO2, 19, 3),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_GPIO3, 19, 4),\n+\tCRU_RESET_OFFSET(SRST_DBRESETN_GPIO3, 19, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_GPIO4, 19, 6),\n+\tCRU_RESET_OFFSET(SRST_DBRESETN_GPIO4, 19, 7),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DECOM, 19, 8),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DECOM, 19, 9),\n+\tCRU_RESET_OFFSET(SRST_DRESETN_DECOM, 19, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER6, 19, 12),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER7, 19, 13),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER8, 19, 14),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER9, 19, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON20 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER10, 20, 0),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TIMER11, 20, 1),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKDMA0, 20, 2),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_RKDMA0, 20, 3),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKDMA1, 20, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_RKDMA1, 20, 5),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKDMA2, 20, 6),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_RKDMA2, 20, 7),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKDMA3, 20, 8),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_RKDMA3, 20, 9),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_SPINLOCK, 20, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_REF_PVTPLL_BUS, 20, 11),\n+\tCRU_RESET_OFFSET(SRST_RESETN_I3C, 20, 12),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_I3C, 20, 13),\n+\n+\t/* CRU--\u003eSOFTRST_CON21 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_BUSMCU_BIU, 21, 1),\n+\tCRU_RESET_OFFSET(SRST_CORERESETN_N320, 21, 2),\n+\tCRU_RESET_OFFSET(SRST_PORESETN_N320, 21, 3),\n+\tCRU_RESET_OFFSET(SRST_RESETN_MCU_AXI_INTEGRITY, 21, 6),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_INTMUX2PMU, 21, 8),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_INTMUX2DDR, 21, 9),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_BUS, 21, 11),\n+\tCRU_RESET_OFFSET(SRST_RESETN_HDMITXHPD, 21, 14),\n+\n+\t/* CRU--\u003eSOFTRST_CON22 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_HDMITX, 22, 2),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_HDMITX, 22, 3),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_MIPICSI, 22, 6),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_MIPICSI, 22, 7),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO0_3, 22, 8),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO0_3, 22, 9),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO1_2_4, 22, 10),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO1_2_4, 22, 11),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO5_6, 22, 12),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO5_6, 22, 13),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_BUS, 22, 14),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_BUS, 22, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON23 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DDR_MON, 23, 1),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DDR_BIU, 23, 2),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DDR_UPCTL, 23, 3),\n+\tCRU_RESET_OFFSET(SRST_TMRESETN_DDR_MON, 23, 4),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_BIU, 23, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DDR_BIU_FW, 23, 6),\n+\tCRU_RESET_OFFSET(SRST_RESETN_DDR_MON, 23, 10),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DDR_HWLP, 23, 13),\n+\n+\t/* CRU--\u003eSOFTRST_CON24 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_MSCH_BIU, 24, 3),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_MSCH_FW, 24, 4),\n+\tCRU_RESET_OFFSET(SRST_RESETN_DDR_SCRAMBLE, 24, 9),\n+\tCRU_RESET_OFFSET(SRST_LRESETN_DDRSCH_BIU, 24, 11),\n+\n+\t/* CRU--\u003eSOFTRST_CON25 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_DDR_TIMER0, 25, 4),\n+\tCRU_RESET_OFFSET(SRST_RESETN_DDR_TIMER1, 25, 5),\n+\tCRU_RESET_OFFSET(SRST_TRESETN_DDR_WDT, 25, 6),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_WDT, 25, 7),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_TIMER, 25, 8),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DDR_GRF, 25, 11),\n+\n+\t/* CRU--\u003eSOFTRST_CON26 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_DDR_UPCTL, 26, 1),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_0, 26, 2),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_1, 26, 3),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_2, 26, 4),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_3, 26, 5),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_4, 26, 6),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_5, 26, 7),\n+\n+\t/* CRU--\u003eSOFTRST_CON27 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_DDRMCU_BIU, 27, 0),\n+\tCRU_RESET_OFFSET(SRST_CORERESETN_N320_DDR, 27, 1),\n+\tCRU_RESET_OFFSET(SRST_PORESETN_N320_DDR, 27, 2),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_DDR, 27, 6),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_DDR, 27, 7),\n+\n+\t/* CRU--\u003eSOFTRST_CON31 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKNN, 31, 2),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKNN_RV, 31, 3),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKNN_BIU, 31, 4),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKNN_FW, 31, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_RKNN_BIU, 31, 7),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_NPU, 31, 8),\n+\tCRU_RESET_OFFSET(SRST_RESETN_NPU_PVTPLL, 31, 9),\n+\tCRU_RESET_OFFSET(SRST_RESETN_24M_RKNN, 31, 11),\n+\tCRU_RESET_OFFSET(SRST_RESETN_NPUTIMER0, 31, 13),\n+\tCRU_RESET_OFFSET(SRST_RESETN_NPUTIMER1, 31, 14),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_NPU_TIMER, 31, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON32 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_NPU_WDT, 32, 0),\n+\tCRU_RESET_OFFSET(SRST_TRESETN_NPU_WDT, 32, 1),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_RKNN_GRF, 32, 2),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_NPU, 32, 3),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_NPU, 32, 4),\n+\n+\t/* CRU--\u003eSOFTRST_CON33 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_PHP0_GRF, 33, 1),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_PHP0_BIU, 33, 2),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_PHP0_BIU, 33, 5),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_PHP0_FW, 33, 6),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_PCIE1, 33, 7),\n+\tCRU_RESET_OFFSET(SRST_RESETN_PCIE1_POWER_UP, 33, 9),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_PHP0, 33, 14),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_PHP0, 33, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON34 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_PCIE0, 34, 3),\n+\tCRU_RESET_OFFSET(SRST_RESETN_PCIE0_POWER_UP, 34, 5),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_USB3OTG1, 34, 9),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_GMAC0, 34, 12),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_USB3OTG0, 34, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON35 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_UFS_BIU, 35, 2),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_UFS_SYS, 35, 3),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_UFS, 35, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_UFS_GRF, 35, 6),\n+\n+\t/* CRU--\u003eSOFTRST_CON37 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_RXOOB0, 37, 0),\n+\tCRU_RESET_OFFSET(SRST_RESETN_PMALIVE0, 37, 1),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_SATA0, 37, 2),\n+\tCRU_RESET_OFFSET(SRST_RESETN_RXOOB1, 37, 3),\n+\tCRU_RESET_OFFSET(SRST_RESETN_PMALIVE1, 37, 4),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_SATA1, 37, 5),\n+\tCRU_RESET_OFFSET(SRST_RESETN_XPCS_PWR_ON, 37, 6),\n+\tCRU_RESET_OFFSET(SRST_RESETN_ASIC0, 37, 8),\n+\tCRU_RESET_OFFSET(SRST_RESETN_ASIC1, 37, 9),\n+\n+\t/* CRU--\u003eSOFTRST_CON42 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_NVM0_GRF, 42, 3),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_NVM0_BIU, 42, 4),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_NVM0_BIU, 42, 5),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_NVM0_BIU, 42, 6),\n+\tCRU_RESET_OFFSET(SRST_CRESETN_EMMC, 42, 7),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_EMMC, 42, 8),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_EMMC, 42, 9),\n+\tCRU_RESET_OFFSET(SRST_BRESETN_EMMC, 42, 10),\n+\tCRU_RESET_OFFSET(SRST_TRESETN_EMMC, 42, 11),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_GMAC1, 42, 14),\n+\n+\t/* CRU--\u003eSOFTRST_CON43 */\n+\tCRU_RESET_OFFSET(SRST_SRESETN_FSPI0, 43, 0),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_FSPI0, 43, 1),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SDMMC1, 43, 3),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_NVM0, 43, 5),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_NVM0, 43, 6),\n+\n+\t/* CRU--\u003eSOFTRST_CON44 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DSMC_BIU, 44, 1),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DSMC, 44, 2),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_DSMC_BIU, 44, 4),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_DSMC, 44, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DSMC_BIU, 44, 7),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DSMC, 44, 8),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_DSMC, 44, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_DSMC, 44, 11),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DSMC_GRF, 44, 13),\n+\n+\t/* CRU--\u003eSOFTRST_CON45 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_NVM1_GRF, 45, 3),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_NVM1_BIU, 45, 4),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_NVM1_BIU, 45, 6),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SDMMC0, 45, 8),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_FSPI1, 45, 11),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_FSPI1, 45, 12),\n+\n+\t/* CRU--\u003eSOFTRST_CON46 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_NVM1, 46, 4),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_NVM1, 46, 5),\n+\n+\t/* CRU--\u003eSOFTRST_CON50 */\n+\tCRU_RESET_OFFSET(SRST_HRESETN_RKVDEC, 50, 3),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_RKVDEC_BIU, 50, 5),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKVDEC_BIU, 50, 6),\n+\tCRU_RESET_OFFSET(SRST_RESETN_RKVDEC_HEVC_CA, 50, 8),\n+\tCRU_RESET_OFFSET(SRST_RESETN_RKVDEC_CORE, 50, 9),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VDEC, 50, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VDEC, 50, 11),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_VDEC_BIU, 50, 14),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_VDEC_GRF, 50, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON52 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_MIPI_HDMI_SUBVO, 52, 1),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_MIPI_HDMI_SUBVO, 52, 2),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO0_3_SUBVO, 52, 7),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO0_3_SUBVO, 52, 8),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_HDPTXPHY, 52, 9),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_HDPTXPHY_GRF, 52, 10),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_MIPI_DPHY0, 52, 11),\n+\n+\t/* CRU--\u003eSOFTRST_CON53 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_HDPTX_INIT, 53, 0),\n+\tCRU_RESET_OFFSET(SRST_RESETN_HDPTX_CMN, 53, 1),\n+\tCRU_RESET_OFFSET(SRST_RESETN_HDPTX_LANE, 53, 2),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_IOC_SUBVO, 53, 3),\n+\tCRU_RESET_OFFSET(SRST_RESETN_GMAC1_SUBVO_ASYNC, 53, 4),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_SUBSYSVO, 53, 5),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_SUBSYSVO, 53, 6),\n+\n+\t/* CRU--\u003eSOFTRST_CON54 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO1_2_4_SUBVI, 54, 1),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO1_2_4_SUBVI, 54, 2),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_CSIPHY_SUBVI, 54, 3),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_CSIPHY_SUBVI, 54, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CSIPHY0, 54, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CSIPHY0_GRF, 54, 6),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CSIPHY1, 54, 7),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CSIPHY1_GRF, 54, 8),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_IOC_SUBVI, 54, 9),\n+\tCRU_RESET_OFFSET(SRST_RESETN_GMAC0_SUBVI_ASYNC, 54, 10),\n+\tCRU_RESET_OFFSET(SRST_SCAN_RESETN_CSIPHY0, 54, 11),\n+\tCRU_RESET_OFFSET(SRST_SCAN_RESETN_CSIPHY1, 54, 12),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_SUBSYSVI, 54, 14),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_SUBSYSVI, 54, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON56 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO5_6_SUBDSMC, 56, 3),\n+\tCRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO5_6_SUBDSMC, 56, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_VCCIO5_6, 56, 5),\n+\tCRU_RESET_OFFSET(SRST_RESETN_GMAC1_ASYNC, 56, 6),\n+\n+\t/* CRU--\u003eSOFTRST_CON57 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_IMG_BIU, 57, 7),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_IMG_GRF, 57, 8),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_IMG_BIU, 57, 9),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_JPEG_BIU, 57, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_IMG, 57, 11),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_IMG, 57, 12),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RGA_BIU, 57, 13),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_VDPP_BIU, 57, 14),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_EBC_BIU, 57, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON58 */\n+\tCRU_RESET_OFFSET(SRST_HRESETN_RGA2E_0, 58, 0),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RGA2E_0, 58, 1),\n+\tCRU_RESET_OFFSET(SRST_RESETN_CORE_RGA2E_0, 58, 2),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_JPEG, 58, 3),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_JPEG, 58, 4),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_VDPP, 58, 5),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_VDPP, 58, 6),\n+\tCRU_RESET_OFFSET(SRST_RESETN_CORE_VDPP, 58, 7),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_EBC, 58, 13),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_EBC, 58, 14),\n+\tCRU_RESET_OFFSET(SRST_DRESETN_EBC, 58, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON60 */\n+\tCRU_RESET_OFFSET(SRST_HRESETN_RKVENC_BIU, 60, 2),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKVENC_BIU, 60, 3),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_RKVENC, 60, 4),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_RKVENC, 60, 5),\n+\tCRU_RESET_OFFSET(SRST_RESETN_RKVENC_CORE, 60, 6),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VENC, 60, 7),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VENC, 60, 8),\n+\n+\t/* CRU--\u003eSOFTRST_CON63 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_VI_BIU, 63, 3),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_VI_BIU, 63, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_VI_BIU, 63, 5),\n+\tCRU_RESET_OFFSET(SRST_DRESETN_VICAP, 63, 6),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_VICAP, 63, 7),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_VICAP, 63, 8),\n+\tCRU_RESET_OFFSET(SRST_RESETN_ISP, 63, 10),\n+\tCRU_RESET_OFFSET(SRST_RESETN_ISP_VICAP, 63, 11),\n+\n+\t/* CRU--\u003eSOFTRST_CON64 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_CORE_VPSS, 64, 1),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_VI_GRF, 64, 2),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CSI_HOST_0, 64, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CSI_HOST_1, 64, 5),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CSI_HOST_2, 64, 6),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CSI_HOST_3, 64, 7),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VI, 64, 14),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VI, 64, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON72 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_CIFIN, 72, 0),\n+\n+\t/* CRU--\u003eSOFTRST_CON74 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_VOP_BIU, 74, 4),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_VOP_FW, 74, 5),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_VOP_BIU, 74, 6),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_VOP_BIU, 74, 7),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_VOP, 74, 8),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_VOP, 74, 9),\n+\tCRU_RESET_OFFSET(SRST_DRESETN_VP0, 74, 13),\n+\n+\t/* CRU--\u003eSOFTRST_CON75 */\n+\tCRU_RESET_OFFSET(SRST_DRESETN_VP1, 75, 0),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_VOPGRF, 75, 3),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VOP, 75, 4),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VOP, 75, 5),\n+\n+\t/* CRU--\u003eSOFTRST_CON78 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DSIHOST0, 78, 1),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_VO_BIU, 78, 10),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_VO_BIU, 78, 12),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_HDCP0_BIU, 78, 14),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_VO_GRF, 78, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON79 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_HDCP0_TRNG_NS, 79, 0),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_HDCP0, 79, 1),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_HDCP0, 79, 2),\n+\tCRU_RESET_OFFSET(SRST_RESETN_HDCP0, 79, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_HDMITX0, 79, 14),\n+\tCRU_RESET_OFFSET(SRST_RESETN_HDMITX0_EARC, 79, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON80 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_HDMITX0_REF, 80, 0),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_EDP0, 80, 2),\n+\tCRU_RESET_OFFSET(SRST_RESETN_EDP0_24M, 80, 3),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SAI4, 80, 6),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SAI4, 80, 7),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SAI5, 80, 9),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SAI5, 80, 10),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SPDIF_TX2, 80, 11),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SPDIF_TX2, 80, 13),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_SPDIF_RX1, 80, 14),\n+\tCRU_RESET_OFFSET(SRST_MRESETN_SPDIF_RX1, 80, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON81 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_EBC_VOP_DCLK_VO, 81, 2),\n+\n+\t/* CRU--\u003eSOFTRST_CON82 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VO, 82, 9),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VO, 82, 10),\n+\n+\t/* CRU--\u003eSOFTRST_CON84 */\n+\tCRU_RESET_OFFSET(SRST_RESETN_GPU, 84, 3),\n+\tCRU_RESET_OFFSET(SRST_SYSRESETN_GPU, 84, 4),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_GPU_BIU, 84, 8),\n+\tCRU_RESET_OFFSET(SRST_PORESETN_GPU_JTAG, 84, 10),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_GPU_GRF, 84, 12),\n+\tCRU_RESET_OFFSET(SRST_RESETN_GPU_PVTPLL, 84, 13),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_GPU, 84, 14),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_SLV_GPU_BIU, 84, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON85 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_GPU_BIU, 85, 0),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_GPU, 85, 1),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_GPU, 85, 2),\n+\n+\t/* CRU--\u003eSOFTRST_CON86 */\n+\tCRU_RESET_OFFSET(SRST_ARESETN_CENTER_BIU, 86, 4),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_CENTER_FW_DDR, 86, 5),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_CENTER_FW_GPU, 86, 7),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DMA2DDR, 86, 8),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_SHAREMEM, 86, 9),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_SHAREMEM_BIU, 86, 10),\n+\tCRU_RESET_OFFSET(SRST_ARESETN_DDR_SHAREMEM_FW, 86, 11),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_CENTER_BIU, 86, 12),\n+\tCRU_RESET_OFFSET(SRST_HRESETN_CENTER_FW, 86, 13),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CENTER_GRF, 86, 14),\n+\tCRU_RESET_OFFSET(SRST_PRESETN_DMA2DDR, 86, 15),\n+\n+\t/* CRU--\u003eSOFTRST_CON87 */\n+\tCRU_RESET_OFFSET(SRST_PRESETN_CENTER_BIU, 87, 1),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_CENTER, 87, 2),\n+\tCRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_CENTER, 87, 3),\n+\tCRU_RESET_OFFSET(SRST_RESETN_LINKSYM_HDMITXPHY0, 87, 9),\n+\n+\t/* PHPPHY_CRU--\u003eSOFTRST_CON00 */\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PHPPHY_CRU, 0, 1),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIE2_COMBOPHY0, 0, 4),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIE2_COMBOPHY0_GRF, 0, 5),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIE2_COMBOPHY1, 0, 6),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIE2_COMBOPHY1_GRF, 0, 7),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_USBPHY_GRF_0, 0, 8),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_USBPHY_GRF_1, 0, 9),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_RESETN_MPHY_INIT, 0, 10),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_MPHY_GRF, 0, 11),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_VCCIO7_IOC, 0, 12),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_RESETN_USB2DEBUG, 0, 13),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIEPHY2, 0, 14),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIEPHY2_GRF, 0, 15),\n+\n+\t/* PHPPHY_CRU--\u003eSOFTRST_CON01 */\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_USBMPHY_PHPPHY, 1, 0),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_USBMPHY_PHPPHY, 1, 1),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_RESETN_OTGPHY_0, 1, 4),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_RESETN_OTGPHY_1, 1, 5),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_PHPPHY, 1, 6),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_PHPPHY, 1, 7),\n+\n+\t/* PHPPHY_CRU--\u003eSOFTRST_CON02 */\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_RESETN_PCIEPHY2, 2, 4),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_RESETN_PCIE0_PIPE_PHY, 2, 5),\n+\tPHPPHY_CRU_RESET_OFFSET(SRST_RESETN_PCIE1_PIPE_PHY, 2, 8),\n+\n+\t/* SECURE_CRU--\u003eSOFTRST_CON00 */\n+\tSECURE_CRU_RESET_OFFSET(SRST_HRESETN_CRYPTO_NS, 0, 3),\n+\tSECURE_CRU_RESET_OFFSET(SRST_HRESETN_TRNG_NS, 0, 4),\n+\tSECURE_CRU_RESET_OFFSET(SRST_PRESETN_SECURE_NS_BIU, 0, 5),\n+\tSECURE_CRU_RESET_OFFSET(SRST_ARESETN_SECURE_HIGH_BIU, 0, 6),\n+\tSECURE_CRU_RESET_OFFSET(SRST_HRESETN_SECURE_NS_BIU, 0, 7),\n+\tSECURE_CRU_RESET_OFFSET(SRST_PRESETN_OTPC_NS, 0, 8),\n+\tSECURE_CRU_RESET_OFFSET(SRST_RESETN_OTPC_NS, 0, 9),\n+\n+\t/* PMU1_CRU--\u003eSOFTRST_CON03 */\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_PMU1, 3, 6),\n+\tPMU1_CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_PMU1, 3, 7),\n+\tPMU1_CRU_RESET_OFFSET(SRST_HRESETN_PMU1_BIU, 3, 9),\n+\tPMU1_CRU_RESET_OFFSET(SRST_HRESETN_PMU1_FW, 3, 10),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU1_BIU, 3, 11),\n+\tPMU1_CRU_RESET_OFFSET(SRST_HRESETN_PMU_CM0_BIU, 3, 12),\n+\tPMU1_CRU_RESET_OFFSET(SRST_CORERESETN_N100, 3, 13),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PORESETN_N100, 3, 14),\n+\n+\t/* PMU1_CRU--\u003eSOFTRST_CON04 */\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_CRU_PMU1, 4, 2),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU1_GRF, 4, 4),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU1_IOC, 4, 5),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU1WDT, 4, 6),\n+\tPMU1_CRU_RESET_OFFSET(SRST_TRESETN_PMU1WDT, 4, 7),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMUTIMER, 4, 8),\n+\tPMU1_CRU_RESET_OFFSET(SRST_RESETN_PMUTIMER0, 4, 10),\n+\tPMU1_CRU_RESET_OFFSET(SRST_RESETN_PMUTIMER1, 4, 11),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_PWM0, 4, 12),\n+\tPMU1_CRU_RESET_OFFSET(SRST_RESETN_PWM0, 4, 13),\n+\n+\t/* PMU1_CRU--\u003eSOFTRST_CON05 */\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_I2C0, 5, 2),\n+\tPMU1_CRU_RESET_OFFSET(SRST_RESETN_I2C0, 5, 3),\n+\tPMU1_CRU_RESET_OFFSET(SRST_SRESETN_UART1, 5, 6),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_UART1, 5, 7),\n+\tPMU1_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_PMU1, 5, 12),\n+\tPMU1_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_PMU1, 5, 13),\n+\tPMU1_CRU_RESET_OFFSET(SRST_RESETN_PDM0, 5, 14),\n+\n+\t/* PMU1_CRU--\u003eSOFTRST_CON06 */\n+\tPMU1_CRU_RESET_OFFSET(SRST_HRESETN_PDM0, 6, 0),\n+\tPMU1_CRU_RESET_OFFSET(SRST_MRESETN_PDM0, 6, 1),\n+\tPMU1_CRU_RESET_OFFSET(SRST_HRESETN_VAD, 6, 2),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_RCOSC, 6, 10),\n+\tPMU1_CRU_RESET_OFFSET(SRST_RESETN_RCOSC, 6, 11),\n+\n+\t/* PMU1_CRU--\u003eSOFTRST_CON07 */\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU0GRF, 7, 4),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU0IOC, 7, 5),\n+\tPMU1_CRU_RESET_OFFSET(SRST_PRESETN_GPIO0, 7, 6),\n+\tPMU1_CRU_RESET_OFFSET(SRST_DBRESETN_GPIO0, 7, 7),\n+\n+\t/* DDR0_CRU--\u003eSOFTRST_CON00 */\n+\tDDR0_CRU_RESET_OFFSET(SRST_RESETN_DDRPHY1X, 0, 1),\n+\n+\t/* DDR0_CRU--\u003eSOFTRST_CON01 */\n+\tDDR0_CRU_RESET_OFFSET(SRST_PRESETN_DDRPHY_CRU, 1, 3),\n+\tDDR0_CRU_RESET_OFFSET(SRST_PRESETN_DDRPHY, 1, 4),\n+\n+\t/* BIGCORE_CRU--\u003eSOFTRST_CON00 */\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_RESETN_REF_PVTPLL_BIGCORE, 0, 4),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_BIGCORE_BIU, 0, 6),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_BIGCORE_GRF, 0, 7),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_BIGCORE_CRU, 0, 8),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_BIGCORE, 0, 9),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_NBIGCOREPORESET0, 0, 12),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_NBIGCOREPORESET1, 0, 13),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_NBIGCORESET0, 0, 14),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_NBIGCORESET1, 0, 15),\n+\n+\t/* BIGCORE_CRU--\u003eSOFTRST_CON01 */\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_NL2RESET_BIGCORE, 1, 0),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_A73_ACE, 1, 4),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_BIGCORE, 1, 5),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_BIGCORE, 1, 6),\n+\tBIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_DBG_BIGCORE, 1, 7),\n+\n+\t/* LITCORE0_CRU--\u003eSOFTRST_CON00 */\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_RESETN_REF_LITCORE0_PVTPLL, 0, 0),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_NLITCOREPORESET0, 0, 4),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_NLITCOREPORESET1, 0, 5),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_NLITCOREPORESET2, 0, 6),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_NLITCOREPORESET3, 0, 7),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_NLITCORESET0, 0, 8),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_NLITCORESET1, 0, 9),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_NLITCORESET2, 0, 10),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_NLITCORESET3, 0, 11),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_NL2RESET_LITCORE0, 0, 12),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_DBG_LITCORE0, 0, 14),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_A53_ACE_LITCORE0, 0, 15),\n+\n+\t/* LITCORE0_CRU--\u003eSOFTRST_CON01 */\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE0_GRF, 1, 2),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE0_BIU, 1, 3),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_LITCORE0, 1, 4),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE0_CRU, 1, 5),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_LITCORE0, 1, 6),\n+\tLITCORE0_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_LITCORE0, 1, 7),\n+\n+\t/* LITCORE1_CRU--\u003eSOFTRST_CON00 */\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_RESETN_REF_LITCORE1_PVTPLL, 0, 0),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_NLITCOREPORESET4, 0, 4),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_NLITCOREPORESET5, 0, 5),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_NLITCORESET4, 0, 6),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_NLITCORESET5, 0, 7),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_NL2RESET_LITCORE1, 0, 8),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_DBG_LITCORE1, 0, 10),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_A53_ACE_LITCORE1, 0, 11),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE1_GRF, 0, 14),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE1_BIU, 0, 15),\n+\n+\t/* LITCORE1_CRU--\u003eSOFTRST_CON01 */\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_LITCORE1, 1, 0),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE1_CRU, 1, 1),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_LITCORE1, 1, 2),\n+\tLITCORE1_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_LITCORE1, 1, 3),\n+\n+\t/* CCI_CRU--\u003eSOFTRST_CON01 */\n+\tCCI_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_CCI, 1, 7),\n+\tCCI_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_CCI, 1, 8),\n+\tCCI_CRU_RESET_OFFSET(SRST_ARESETN_CPE, 1, 11),\n+\tCCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_BIU, 1, 12),\n+\tCCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_FW, 1, 13),\n+\tCCI_CRU_RESET_OFFSET(SRST_ARESETN_CCI_BIU, 1, 14),\n+\tCCI_CRU_RESET_OFFSET(SRST_ARESETN_CCI_FW, 1, 15),\n+\n+\t/* CCI_CRU--\u003eSOFTRST_CON02 */\n+\tCCI_CRU_RESET_OFFSET(SRST_PRESETN_DBG_SYS, 2, 0),\n+\tCCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_GRF, 2, 1),\n+\tCCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_CRU, 2, 2),\n+\tCCI_CRU_RESET_OFFSET(SRST_ARESETN_CCI, 2, 3),\n+\tCCI_CRU_RESET_OFFSET(SRST_PORESETN_JTAG, 2, 4),\n+\tCCI_CRU_RESET_OFFSET(SRST_PRESETN_DBG_M, 2, 5),\n+\tCCI_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_CCI_A73, 2, 6),\n+\tCCI_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_CCI_A53_0, 2, 7),\n+\tCCI_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_CCI_A53_1, 2, 8),\n+\tCCI_CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_CCI, 2, 9),\n+\tCCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_SPINLOCK, 2, 10),\n+\tCCI_CRU_RESET_OFFSET(SRST_PRESETN_DBG_M_BIU, 2, 11),\n+\tCCI_CRU_RESET_OFFSET(SRST_RESETN_REF_CCI_PVTPLL, 2, 12),\n+};\n+\n+void rk3572_rst_init(struct device_node *np, void __iomem *reg_base)\n+{\n+\trockchip_register_softrst_lut(np,\n+\t\t\t\t      rk3572_register_offset,\n+\t\t\t\t      ARRAY_SIZE(rk3572_register_offset),\n+\t\t\t\t      reg_base + RK3572_SOFTRST_CON(0),\n+\t\t\t\t      ROCKCHIP_SOFTRST_HIWORD_MASK);\n+}\n+EXPORT_SYMBOL_GPL(rk3572_rst_init);\n+\n+MODULE_LICENSE(\"GPL\");\n+MODULE_DESCRIPTION(\"Rockchip RK3572 Soft Reset Driver\");\n+MODULE_AUTHOR(\"Elaine Zhang \u003czhangqing@rock-chips.com\u003e\");\ndiff --git a/include/dt-bindings/clock/rockchip,rk3572-cru.h b/include/dt-bindings/clock/rockchip,rk3572-cru.h\nnew file mode 100644\nindex 00000000000000..1d0e18232e1061\n--- /dev/null\n+++ b/include/dt-bindings/clock/rockchip,rk3572-cru.h\n@@ -0,0 +1,559 @@\n+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */\n+/*\n+ * Copyright (c) 2025 Rockchip Electronics Co., Ltd.\n+ * Author: Elaine Zhang \u003czhangqing@rock-chips.com\u003e\n+ */\n+#ifndef _DT_BINDINGS_CLK_ROCKCHIP_RK3572_H\n+#define _DT_BINDINGS_CLK_ROCKCHIP_RK3572_H\n+\n+/* PLLs */\n+#define PLL_PPLL\t\t\t\t0\n+#define PLL_BPLL\t\t\t\t1\n+#define PLL_LPLL\t\t\t\t2\n+#define PLL_AUPLL\t\t\t\t3\n+#define PLL_CPLL\t\t\t\t4\n+#define PLL_GPLL\t\t\t\t5\n+#define PLL_VPLL\t\t\t\t6\n+#define ARMCLK_L0\t\t\t\t7\n+#define ARMCLK_L1\t\t\t\t8\n+#define ARMCLK_B\t\t\t\t9\n+\n+#define CLK_CPLL_DIV20\t\t\t\t10\n+#define CLK_CPLL_DIV10\t\t\t\t11\n+#define CLK_GPLL_DIV8\t\t\t\t12\n+#define CLK_GPLL_DIV6\t\t\t\t13\n+#define CLK_CPLL_DIV4\t\t\t\t14\n+#define CLK_GPLL_DIV4\t\t\t\t15\n+#define CLK_GPLL_DIV3\t\t\t\t16\n+#define CLK_CPLL_DIV2\t\t\t\t17\n+#define CLK_GPLL_DIV2\t\t\t\t18\n+#define CLK_DDRPHY_TOP_SRC\t\t\t19\n+#define PCLK_TOP_ROOT\t\t\t\t20\n+#define ACLK_TOP\t\t\t\t21\n+#define ACLK_TOP_MID\t\t\t\t22\n+#define ACLK_SECURE_HIGH\t\t\t23\n+#define CLK_BPLL_DIV\t\t\t\t24\n+#define CLK_AUDIO_FRAC_0\t\t\t25\n+#define CLK_AUDIO_FRAC_1\t\t\t26\n+#define CLK_AUDIO_FRAC_2\t\t\t27\n+#define CLK_AUDIO_FRAC_3\t\t\t28\n+#define CLK_AUDIO_FRAC_0_SRC\t\t\t29\n+#define CLK_AUDIO_FRAC_1_SRC\t\t\t30\n+#define CLK_AUDIO_FRAC_2_SRC\t\t\t31\n+#define CLK_AUDIO_FRAC_3_SRC\t\t\t32\n+#define HCLK_TOP\t\t\t\t33\n+#define CLK_UART_FRAC_0\t\t\t\t34\n+#define CLK_UART_FRAC_1\t\t\t\t35\n+#define CLK_UART_FRAC_2\t\t\t\t36\n+#define CLK_UART_FRAC_0_SRC\t\t\t37\n+#define CLK_UART_FRAC_1_SRC\t\t\t38\n+#define CLK_UART_FRAC_2_SRC\t\t\t39\n+\n+#define CLK_UART1_SRC_TOP\t\t\t40\n+#define CLK_AUDIO_INT_0\t\t\t\t41\n+#define CLK_AUDIO_INT_1\t\t\t\t42\n+#define CLK_AUDIO_INT_2\t\t\t\t43\n+#define CLK_PDM0_SRC_TOP\t\t\t44\n+#define CLK_GMAC0_125M_SRC\t\t\t45\n+#define CLK_GMAC1_125M_SRC\t\t\t46\n+#define MCLK_ASRC0_SRC_0\t\t\t47\n+#define MCLK_ASRC1_SRC_1\t\t\t48\n+#define REF_CLK0_OUT_PLL\t\t\t49\n+#define REF_CLK1_OUT_PLL\t\t\t50\n+#define REF_CLK2_OUT_PLL\t\t\t51\n+#define REF_PULSE_CLK_AUDIO_FRAC_0\t\t52\n+#define REF_PULSE_CLK_AUDIO_FRAC_1\t\t53\n+#define REF_PULSE_CLK_AUDIO_FRAC_2\t\t54\n+#define REF_PULSE_FRACDIV_3\t\t\t55\n+#define REF_PULSE_AUPLL\t\t\t\t56\n+#define CLK_SAI1_MCLKOUT\t\t\t57\n+#define CLK_SAI2_MCLKOUT\t\t\t58\n+#define CLK_SAI3_MCLKOUT\t\t\t59\n+#define CLK_SAI0_MCLKOUT\t\t\t60\n+#define REFCLKO25M_GMAC0_OUT\t\t\t61\n+#define REFCLKO25M_GMAC1_OUT\t\t\t62\n+#define CLK_CIFOUT_OUT\t\t\t\t63\n+#define CLK_GMAC0_RMII_CRU\t\t\t64\n+#define CLK_GMAC1_RMII_CRU\t\t\t65\n+#define CLK_OTPC_AUTO_RD_G\t\t\t66\n+#define CAM_CLK0_OUT_IOUT\t\t\t67\n+#define CAM_CLK1_OUT_IOUT\t\t\t68\n+#define CAM_CLK2_OUT_IOUT\t\t\t69\n+#define MCLK_PDM0_SRC_TOP\t\t\t70\n+#define HCLK_AUDIO_ROOT\t\t\t\t71\n+#define HCLK_ASRC_2CH_0\t\t\t\t72\n+#define HCLK_ASRC_2CH_1\t\t\t\t73\n+#define CLK_ASRC_2CH_0\t\t\t\t74\n+#define CLK_ASRC_2CH_1\t\t\t\t75\n+#define MCLK_SAI0\t\t\t\t76\n+#define HCLK_SAI0\t\t\t\t77\n+#define HCLK_SPDIF_RX0\t\t\t\t78\n+#define MCLK_SPDIF_RX0\t\t\t\t79\n+#define MCLK_SAI1\t\t\t\t80\n+#define HCLK_SAI1\t\t\t\t81\n+#define MCLK_SAI2\t\t\t\t82\n+#define HCLK_SAI2\t\t\t\t83\n+#define MCLK_SAI3\t\t\t\t84\n+#define HCLK_SAI3\t\t\t\t85\n+#define LRCK_ASRC_2CH0_SRC\t\t\t86\n+#define LRCK_ASRC_2CH0_DST\t\t\t87\n+#define LRCK_ASRC_2CH1_SRC\t\t\t88\n+#define LRCK_ASRC_2CH1_DST\t\t\t89\n+#define HCLK_ACDCDIG_DSM\t\t\t90\n+#define MCLK_ACDCDIG_DSM\t\t\t91\n+#define PCLK_AUDIO_ROOT\t\t\t\t92\n+#define HCLK_SPDIF_TX0\t\t\t\t93\n+#define MCLK_SPDIF_TX0\t\t\t\t94\n+#define HCLK_SPDIF_TX1\t\t\t\t95\n+#define MCLK_SPDIF_TX1\t\t\t\t96\n+#define ASRC_REF_PULSE\t\t\t\t97\n+#define HCLK_BUS_ROOT\t\t\t\t98\n+#define PCLK_BUS_ROOT\t\t\t\t99\n+#define ACLK_BUS_ROOT\t\t\t\t100\n+#define HCLK_CAN0\t\t\t\t101\n+#define CLK_CAN0\t\t\t\t102\n+#define HCLK_CAN1\t\t\t\t103\n+#define CLK_CAN1\t\t\t\t104\n+#define HCLK_CAN2\t\t\t\t105\n+#define CLK_CAN2\t\t\t\t106\n+#define HCLK_CAN3\t\t\t\t107\n+#define CLK_CAN3\t\t\t\t108\n+#define ACLK_DECOM_ROOT\t\t\t\t109\n+#define AUPLL_REF\t\t\t\t110\n+#define PCLK_I2C1\t\t\t\t111\n+#define PCLK_I2C2\t\t\t\t112\n+#define PCLK_I2C3\t\t\t\t113\n+#define PCLK_I2C4\t\t\t\t114\n+#define PCLK_I2C5\t\t\t\t115\n+#define PCLK_I2C6\t\t\t\t116\n+#define PCLK_I2C7\t\t\t\t117\n+#define PCLK_I2C8\t\t\t\t118\n+#define PCLK_I2C9\t\t\t\t119\n+#define PCLK_WDT_BUSMCU\t\t\t\t120\n+#define TCLK_WDT_BUSMCU\t\t\t\t121\n+#define ACLK_GIC\t\t\t\t122\n+#define CLK_I2C1\t\t\t\t123\n+#define CLK_I2C2\t\t\t\t124\n+#define CLK_I2C3\t\t\t\t125\n+#define CLK_I2C4\t\t\t\t126\n+#define CLK_I2C5\t\t\t\t127\n+#define CLK_I2C6\t\t\t\t128\n+#define CLK_I2C7\t\t\t\t129\n+#define CLK_I2C8\t\t\t\t130\n+#define CLK_I2C9\t\t\t\t131\n+#define PCLK_SARADC\t\t\t\t132\n+#define CLK_SARADC\t\t\t\t133\n+#define PCLK_TSADC\t\t\t\t134\n+#define CLK_TSADC\t\t\t\t135\n+#define PCLK_UART0\t\t\t\t136\n+#define PCLK_UART2\t\t\t\t137\n+#define PCLK_UART3\t\t\t\t138\n+#define PCLK_UART4\t\t\t\t139\n+#define PCLK_UART5\t\t\t\t140\n+#define PCLK_UART6\t\t\t\t141\n+#define PCLK_UART7\t\t\t\t142\n+#define PCLK_UART8\t\t\t\t143\n+#define PCLK_UART9\t\t\t\t144\n+#define PCLK_UART10\t\t\t\t145\n+#define PCLK_UART11\t\t\t\t146\n+#define SCLK_UART0\t\t\t\t147\n+#define SCLK_UART2\t\t\t\t148\n+#define SCLK_UART3\t\t\t\t149\n+#define SCLK_UART4\t\t\t\t150\n+#define SCLK_UART5\t\t\t\t151\n+#define SCLK_UART6\t\t\t\t152\n+#define SCLK_UART7\t\t\t\t153\n+#define SCLK_UART8\t\t\t\t154\n+#define SCLK_UART9\t\t\t\t155\n+#define SCLK_UART10\t\t\t\t156\n+#define SCLK_UART11\t\t\t\t157\n+#define PCLK_SPI0\t\t\t\t158\n+#define PCLK_SPI1\t\t\t\t159\n+#define PCLK_SPI2\t\t\t\t160\n+#define PCLK_SPI3\t\t\t\t161\n+#define PCLK_SPI4\t\t\t\t162\n+#define CLK_SPI0\t\t\t\t163\n+#define CLK_SPI1\t\t\t\t164\n+#define CLK_SPI2\t\t\t\t165\n+#define CLK_SPI3\t\t\t\t166\n+#define CLK_SPI4\t\t\t\t167\n+#define PCLK_WDT0\t\t\t\t168\n+#define TCLK_WDT0\t\t\t\t169\n+#define PCLK_PWM1\t\t\t\t170\n+#define CLK_PWM1\t\t\t\t171\n+#define CLK_OSC_PWM1\t\t\t\t172\n+#define CLK_RC_PWM1\t\t\t\t173\n+#define CLK_FREQ_PWM1\t\t\t\t174\n+#define CLK_COUNTER_PWM1\t\t\t175\n+#define PCLK_PWM2\t\t\t\t176\n+#define CLK_PWM2\t\t\t\t177\n+#define CLK_RC_PWM2\t\t\t\t178\n+#define CLK_OSC_PWM2\t\t\t\t179\n+#define SAI_SCLKIN_FREQ\t\t\t\t180\n+#define SAI_SCLKIN_COUNTER\t\t\t181\n+#define PCLK_BUSTIMER0\t\t\t\t182\n+#define PCLK_BUSTIMER1\t\t\t\t183\n+#define CLK_TIMER0_ROOT\t\t\t\t184\n+#define CLK_TIMER0\t\t\t\t185\n+#define CLK_TIMER1\t\t\t\t186\n+#define CLK_TIMER2\t\t\t\t187\n+#define CLK_TIMER3\t\t\t\t188\n+#define CLK_TIMER4\t\t\t\t189\n+#define CLK_TIMER5\t\t\t\t190\n+#define PCLK_MAILBOX0\t\t\t\t191\n+#define PCLK_GPIO1\t\t\t\t192\n+#define DBCLK_GPIO1\t\t\t\t193\n+#define PCLK_GPIO2\t\t\t\t194\n+#define DBCLK_GPIO2\t\t\t\t195\n+#define PCLK_GPIO3\t\t\t\t196\n+#define DBCLK_GPIO3\t\t\t\t197\n+#define PCLK_GPIO4\t\t\t\t198\n+#define DBCLK_GPIO4\t\t\t\t199\n+#define ACLK_DECOM\t\t\t\t200\n+#define PCLK_DECOM\t\t\t\t201\n+#define DCLK_DECOM\t\t\t\t202\n+#define CLK_TIMER1_ROOT\t\t\t\t203\n+#define CLK_TIMER6\t\t\t\t204\n+#define CLK_TIMER7\t\t\t\t205\n+#define CLK_TIMER8\t\t\t\t206\n+#define CLK_TIMER9\t\t\t\t207\n+#define CLK_TIMER10\t\t\t\t208\n+#define CLK_TIMER11\t\t\t\t209\n+#define ACLK_RKDMA0\t\t\t\t210\n+#define PCLK_RKDMA0\t\t\t\t211\n+#define ACLK_RKDMA1\t\t\t\t212\n+#define PCLK_RKDMA1\t\t\t\t213\n+#define ACLK_RKDMA2\t\t\t\t214\n+#define PCLK_RKDMA2\t\t\t\t215\n+#define ACLK_RKDMA3\t\t\t\t216\n+#define PCLK_RKDMA3\t\t\t\t217\n+#define PCLK_SPINLOCK\t\t\t\t218\n+#define CLK_I3C\t\t\t\t\t219\n+#define HCLK_I3C\t\t\t\t220\n+#define CLK_BUSMCU_ROOT\t\t\t\t221\n+#define CLK_BUSMCU_CORE_AON\t\t\t222\n+#define CLK_MTIME_TOGGLE_A\t\t\t223\n+#define CLK_DBG_TOGGLE_A\t\t\t224\n+#define CLK_MCU_AXI_INTEGRITY\t\t\t225\n+#define PCLK_PMU2\t\t\t\t226\n+#define CLK_HDMITXHPD\t\t\t\t227\n+#define PCLK_APB2ASB_HDMITX\t\t\t228\n+#define SCLK_APB2ASB_HDMITX\t\t\t229\n+#define PCLK_APB2ASB_MIPICSI\t\t\t230\n+#define SCLK_APB2ASB_MIPICSI\t\t\t231\n+#define PCLK_APB2ASB_VCCIO0_3\t\t\t232\n+#define SCLK_APB2ASB_VCCIO0_3\t\t\t233\n+#define PCLK_APB2ASB_VCCIO1_2_4\t\t\t234\n+#define SCLK_APB2ASB_VCCIO1_2_4\t\t\t235\n+#define PCLK_APB2ASB_VCCIO5_6\t\t\t236\n+#define SCLK_APB2ASB_VCCIO5_6\t\t\t237\n+#define PCLK_DDR_ROOT\t\t\t\t238\n+#define ACLK_DDR_ROOT\t\t\t\t239\n+#define LCLK_DDRSCH_BIU\t\t\t\t240\n+#define CLK_DDR_TIMER_ROOT\t\t\t241\n+#define CLK_DDR_TIMER0\t\t\t\t242\n+#define CLK_DDR_TIMER1\t\t\t\t243\n+#define TCLK_DDR_WDT\t\t\t\t244\n+#define PCLK_WDT\t\t\t\t245\n+#define PCLK_TIMER\t\t\t\t246\n+#define CLK_DDRMCU_ROOT\t\t\t\t247\n+#define CLK_DDRMCU_CORE_AON\t\t\t248\n+#define CLK_MTIME_TOGGLE_A_DDR\t\t\t249\n+#define CLK_DBG_TOGGLE_A_DDR\t\t\t250\n+#define ACLK_RKNN_ROOT\t\t\t\t251\n+#define ACLK_RKNN_ROOT_SRC\t\t\t252\n+#define ACLK_RKNN\t\t\t\t253\n+#define PCLK_RKNN_ROOT\t\t\t\t254\n+#define CLK_24M_RKNN\t\t\t\t255\n+#define CLK_NPUTIMER_ROOT\t\t\t256\n+#define CLK_NPUTIMER0\t\t\t\t257\n+#define CLK_NPUTIMER1\t\t\t\t258\n+#define PCLK_NPU_TIMER\t\t\t\t259\n+#define PCLK_NPU_WDT\t\t\t\t260\n+#define TCLK_NPU_WDT\t\t\t\t261\n+#define PCLK_PHP0_ROOT\t\t\t\t262\n+#define ACLK_PHP0_ROOT\t\t\t\t263\n+#define PCLK_PCIE1\t\t\t\t264\n+#define CLK_PCIE1_AUX\t\t\t\t265\n+#define ACLK_PCIE1_MSTR\t\t\t\t266\n+#define ACLK_PCIE1_SLV\t\t\t\t267\n+#define ACLK_PCIE1_DBI\t\t\t\t268\n+#define PCLK_PCIE0\t\t\t\t269\n+#define CLK_PCIE0_AUX\t\t\t\t270\n+#define ACLK_PCIE0_MSTR\t\t\t\t271\n+#define ACLK_PCIE0_SLV\t\t\t\t272\n+#define ACLK_PCIE0_DBI\t\t\t\t273\n+#define ACLK_USB3OTG1\t\t\t\t274\n+#define CLK_REF_USB3OTG1\t\t\t275\n+#define CLK_SUSPEND_USB3OTG1\t\t\t276\n+#define ACLK_GMAC0\t\t\t\t277\n+#define PCLK_GMAC0\t\t\t\t278\n+#define ACLK_UFS_ROOT\t\t\t\t279\n+#define ACLK_USB3OTG0\t\t\t\t280\n+#define CLK_REF_USB3OTG0\t\t\t281\n+#define CLK_SUSPEND_USB3OTG0\t\t\t282\n+#define ACLK_UFS_SYS\t\t\t\t283\n+#define CLK_GMAC0_PTP_REF_PRE\t\t\t284\n+#define CLK_GMAC0_PTP_REF_SRC\t\t\t285\n+#define CLK_RXOOB0\t\t\t\t286\n+#define CLK_PMALIVE0\t\t\t\t287\n+#define ACLK_SATA0\t\t\t\t288\n+#define CLK_RXOOB1\t\t\t\t289\n+#define CLK_PMALIVE1\t\t\t\t290\n+#define ACLK_SATA1\t\t\t\t291\n+#define CLK_EEE_XPCS\t\t\t\t292\n+#define PCLK_XPCS\t\t\t\t293\n+#define CLK_USB3OTG1_PIPE_PCLK\t\t\t294\n+#define CLK_USB3OTG1_UTMI\t\t\t295\n+#define CLK_USB3OTG0_PIPE_PCLK\t\t\t296\n+#define CLK_USB3OTG0_UTMI\t\t\t297\n+#define HCLK_NVM0_ROOT\t\t\t\t298\n+#define ACLK_NVM0_ROOT\t\t\t\t299\n+#define PCLK_NVM0_ROOT\t\t\t\t300\n+#define CCLK_SRC_EMMC\t\t\t\t301\n+#define HCLK_EMMC\t\t\t\t302\n+#define ACLK_EMMC\t\t\t\t303\n+#define BCLK_EMMC\t\t\t\t304\n+#define TCLK_EMMC\t\t\t\t305\n+#define CLK_GMAC1_PTP_REF_SRC\t\t\t306\n+#define CLK_GMAC1_PTP_REF\t\t\t307\n+#define ACLK_GMAC1\t\t\t\t308\n+#define PCLK_GMAC1\t\t\t\t309\n+#define SCLK_FSPI0_X2\t\t\t\t310\n+#define HCLK_FSPI0\t\t\t\t311\n+#define CCLK_SRC_SDMMC1\t\t\t\t312\n+#define HCLK_SDMMC1\t\t\t\t313\n+#define ACLK_DSMC_ROOT\t\t\t\t314\n+#define ACLK_DSMC\t\t\t\t315\n+#define HCLK_DSMC_ROOT\t\t\t\t316\n+#define HCLK_DSMC\t\t\t\t317\n+#define PCLK_DSMC_ROOT\t\t\t\t318\n+#define PCLK_DSMC\t\t\t\t319\n+#define CLK_DSMC_SYS\t\t\t\t320\n+#define HCLK_NVM1_ROOT\t\t\t\t321\n+#define PCLK_NVM1_ROOT\t\t\t\t322\n+#define CCLK_SRC_SDMMC0\t\t\t\t323\n+#define HCLK_SDMMC0\t\t\t\t324\n+#define SCLK_FSPI1_X2\t\t\t\t325\n+#define HCLK_FSPI1\t\t\t\t326\n+#define PCLK_PHPSUBSYS_ROOT\t\t\t327\n+#define PCLK_PCIE2_COMBOPHY0\t\t\t328\n+#define PCLK_PCIE2_COMBOPHY1\t\t\t329\n+#define PCLK_MPHY\t\t\t\t330\n+#define CLK_32K_USB2DEBUG\t\t\t331\n+#define PCLK_PCIEPHY2\t\t\t\t332\n+#define SCLK_APB2ASB_USBMPHY_PHPPHY\t\t333\n+#define PCLK_APB2ASB_USBMPHY_PHPPHY\t\t334\n+#define CLK_CPLL_DIV10_PHPPHY\t\t\t335\n+#define CLK_PHPPHY_REF\t\t\t\t336\n+#define CLK_PCIE_100M_SRC\t\t\t337\n+#define CLK_PCIE_100M_NDUTY_SRC\t\t\t338\n+#define CLK_REF_PCIEPHY2\t\t\t339\n+#define CLK_REF_PCIE0_INNER_PHY\t\t\t340\n+#define CLK_REF_PCIE1_INNER_PHY\t\t\t341\n+#define CLK_REF_MPHY_26M\t\t\t342\n+#define REF_CLK_FROM_PPLL\t\t\t343\n+#define HCLK_RKVDEC_ROOT\t\t\t344\n+#define HCLK_RKVDEC\t\t\t\t345\n+#define ACLK_RKVDEC_ROOT\t\t\t346\n+#define CLK_RKVDEC_HEVC_CA\t\t\t347\n+#define CLK_RKVDEC_CORE\t\t\t\t348\n+#define PCLK_VDEC_ROOT\t\t\t\t349\n+#define PCLK_VOSUBSYS_ROOT\t\t\t350\n+#define PCLK_APB2ASB_MIPI_HDMI_SUBVO\t\t351\n+#define SCLK_APB2ASB_MIPI_HDMI_SUBVO\t\t352\n+#define PCLK_APB2ASB_VCCIO0_3_SUBVO\t\t353\n+#define SCLK_APB2ASB_VCCIO0_3_SUBVO\t\t354\n+#define PCLK_HDPTXPHY\t\t\t\t355\n+#define PCLK_MIPI_DPHY0\t\t\t\t356\n+#define CLK_VOSUBSYS_REF\t\t\t357\n+#define PCLK_IOC_SUBVO\t\t\t\t358\n+#define PCLK_VISUBSYS_ROOT\t\t\t359\n+#define PCLK_APB2ASB_VCCIO1_2_4_SUBVI\t\t360\n+#define SCLK_APB2ASB_VCCIO1_2_4_SUBVI\t\t361\n+#define PCLK_APB2ASB_CSIPHY_SUBVI\t\t362\n+#define SCLK_APB2ASB_CSIPHY_SUBVI\t\t363\n+#define PCLK_CSIPHY0\t\t\t\t364\n+#define PCLK_CSIPHY1\t\t\t\t365\n+#define PCLK_IOC_SUBVI\t\t\t\t366\n+#define CLK_SDMMC_SWITCH_24M\t\t\t367\n+#define PCLK_DSMCSUBSYS_ROOT\t\t\t368\n+#define PCLK_APB2ASB_VCCIO5_6_SUBDSMC\t\t369\n+#define SCLK_APB2ASB_VCCIO5_6_SUBDSMC\t\t370\n+#define ACLK_IMG_ROOT\t\t\t\t371\n+#define ACLK_IMG_MID_ROOT\t\t\t372\n+#define HCLK_IMG_ROOT\t\t\t\t373\n+#define ACLK_JPEG_ROOT\t\t\t\t374\n+#define ACLK_IMG_LOW_ROOT\t\t\t375\n+#define PCLK_IMG_ROOT\t\t\t\t376\n+#define HCLK_RGA2E_0\t\t\t\t377\n+#define ACLK_RGA2E_0\t\t\t\t378\n+#define CLK_CORE_RGA2E_0\t\t\t379\n+#define ACLK_JPEG\t\t\t\t380\n+#define HCLK_JPEG\t\t\t\t381\n+#define HCLK_VDPP\t\t\t\t382\n+#define ACLK_VDPP\t\t\t\t383\n+#define CLK_CORE_VDPP\t\t\t\t384\n+#define DCLK_EBC_SRC_TOP\t\t\t385\n+#define DCLK_EBC_INT_SRC\t\t\t386\n+#define DCLK_EBC_FRAC_SRC\t\t\t387\n+#define HCLK_EBC\t\t\t\t388\n+#define ACLK_EBC\t\t\t\t389\n+#define DCLK_EBC\t\t\t\t390\n+#define HCLK_RKVENC_ROOT\t\t\t391\n+#define ACLK_RKVENC_ROOT\t\t\t392\n+#define HCLK_RKVENC\t\t\t\t393\n+#define ACLK_RKVENC\t\t\t\t394\n+#define CLK_RKVENC_CORE\t\t\t\t395\n+#define ACLK_VI_ROOT\t\t\t\t396\n+#define HCLK_VI_ROOT\t\t\t\t397\n+#define PCLK_VI_ROOT\t\t\t\t398\n+#define DCLK_VICAP\t\t\t\t399\n+#define ACLK_VICAP\t\t\t\t400\n+#define HCLK_VICAP\t\t\t\t401\n+#define CLK_ISP_CORE\t\t\t\t402\n+#define CLK_ISP_CORE_MARVIN\t\t\t403\n+#define CLK_ISP_CORE_VICAP\t\t\t404\n+#define ACLK_ISP\t\t\t\t405\n+#define HCLK_ISP\t\t\t\t406\n+#define ACLK_VPSS\t\t\t\t407\n+#define HCLK_VPSS\t\t\t\t408\n+#define CLK_CORE_VPSS\t\t\t\t409\n+#define PCLK_VI_GRF\t\t\t\t410\n+#define PCLK_CSI_HOST_0\t\t\t\t411\n+#define PCLK_CSI_HOST_1\t\t\t\t412\n+#define PCLK_CSI_HOST_2\t\t\t\t413\n+#define PCLK_CSI_HOST_3\t\t\t\t414\n+#define DCLK_VICAP_CSIHOST0\t\t\t415\n+#define DCLK_VICAP_CSIHOST1\t\t\t416\n+#define DCLK_VICAP_CSIHOST2\t\t\t417\n+#define DCLK_VICAP_CSIHOST3\t\t\t418\n+#define ACLK_VI_ROOT_INTER\t\t\t419\n+#define ACLK_VOP_ROOT\t\t\t\t420\n+#define HCLK_VOP_ROOT\t\t\t\t421\n+#define PCLK_VOP_ROOT\t\t\t\t422\n+#define HCLK_VOP\t\t\t\t423\n+#define ACLK_VOP\t\t\t\t424\n+#define DCLK_VP0_SRC\t\t\t\t425\n+#define DCLK_VP1_SRC\t\t\t\t426\n+#define DCLK_VP0\t\t\t\t427\n+#define DCLK_VP1\t\t\t\t428\n+#define CLK_EBC_VOP_DCLK2DSIHOST_0\t\t429\n+#define PCLK_DSIHOST0\t\t\t\t430\n+#define ACLK_VO_ROOT\t\t\t\t431\n+#define HCLK_VO_ROOT\t\t\t\t432\n+#define PCLK_VO_ROOT\t\t\t\t433\n+#define PCLK_HDCP0_TRNG_NS\t\t\t434\n+#define ACLK_HDCP0\t\t\t\t435\n+#define HCLK_HDCP0\t\t\t\t436\n+#define PCLK_HDCP0\t\t\t\t437\n+#define CLK_TRNG0_SKP\t\t\t\t438\n+#define PCLK_HDMITX0\t\t\t\t439\n+#define CLK_HDMITX0_EARC\t\t\t440\n+#define CLK_HDMITX0_REF\t\t\t\t441\n+#define CLK_EXTREF_TIMEOUT_VO\t\t\t442\n+#define PCLK_EDP0\t\t\t\t443\n+#define CLK_EDP0_24M\t\t\t\t444\n+#define CLK_EDP0_200M\t\t\t\t445\n+#define MCLK_SAI4_SRC\t\t\t\t446\n+#define MCLK_SAI4\t\t\t\t447\n+#define HCLK_SAI4\t\t\t\t448\n+#define MCLK_SAI5_SRC\t\t\t\t449\n+#define MCLK_SAI5\t\t\t\t450\n+#define HCLK_SAI5\t\t\t\t451\n+#define HCLK_SPDIF_TX2\t\t\t\t452\n+#define MCLK_SPDIF_TX2_SRC\t\t\t453\n+#define MCLK_SPDIF_TX2\t\t\t\t454\n+#define HCLK_SPDIF_RX1\t\t\t\t455\n+#define MCLK_SPDIF_RX1\t\t\t\t456\n+#define CLK_EBC_VOP_DCLK2HDMITX\t\t\t457\n+#define CLK_EBC_VOP_DCLK2EDP\t\t\t458\n+#define CLK_EBC_VOP_DCLK_INTER\t\t\t459\n+#define CLK_SAI4_MCLKOUT\t\t\t460\n+#define CLK_GPU_SRC\t\t\t\t461\n+#define CLK_GPU\t\t\t\t\t462\n+#define CLK_GPU_COREGROUP\t\t\t463\n+#define CLK_GPU_STACKS\t\t\t\t464\n+#define PCLK_GPU_ROOT\t\t\t\t465\n+#define ACLK_CENTER_ROOT\t\t\t466\n+#define ACLK_CENTER_LOW_ROOT\t\t\t467\n+#define HCLK_CENTER_ROOT\t\t\t468\n+#define PCLK_CENTER_ROOT\t\t\t469\n+#define ACLK_DMA2DDR\t\t\t\t470\n+#define ACLK_DDR_SHAREMEM\t\t\t471\n+#define PCLK_DMA2DDR\t\t\t\t472\n+#define CLK_LINK_EDP0\t\t\t\t473\n+#define CLK_CHTXD_EDP0\t\t\t\t474\n+#define CLK_DIV2_EDP0\t\t\t\t475\n+#define CLK_VOP2HDCP0_PIX_CLK\t\t\t476\n+#define CLK_LINKSYM_HDMITXPHY0\t\t\t477\n+#define CLK_XGXS_TXDIV20\t\t\t478\n+#define CLK_XGXS_TX\t\t\t\t479\n+#define CLK_XGXS_RXDIV20\t\t\t480\n+#define CLK_XGXS_RX\t\t\t\t481\n+#define HCLK_SECURE_NS_ROOT\t\t\t482\n+#define PCLK_SECURE_NS_ROOT\t\t\t483\n+#define HCLK_CRYPTO_NS\t\t\t\t484\n+#define HCLK_TRNG_NS\t\t\t\t485\n+#define PCLK_OTPC_NS\t\t\t\t486\n+#define CLK_OTPC_NS\t\t\t\t487\n+#define CLK_REF_OSC_MPHY\t\t\t488\n+#define CLK_REF_UFS_CLKOUT\t\t\t489\n+#define HCLK_PMU1_ROOT\t\t\t\t490\n+#define HCLK_PMU_CM0_ROOT\t\t\t491\n+#define PCLK_APB2ASB_PMU1\t\t\t492\n+#define SCLK_APB2ASB_PMU1\t\t\t493\n+#define CLK_PMUMCU_CORE_AON\t\t\t494\n+#define CLK_MTIME_TOGGLE_A_PMU\t\t\t495\n+#define PCLK_PMU1_ROOT\t\t\t\t496\n+#define PCLK_PMU1\t\t\t\t497\n+#define CLK_PMU1\t\t\t\t498\n+#define PCLK_PMU1WDT\t\t\t\t499\n+#define TCLK_PMU1WDT\t\t\t\t500\n+#define PCLK_PMUTIMER\t\t\t\t501\n+#define CLK_PMUTIMER_ROOT\t\t\t502\n+#define CLK_PMUTIMER0\t\t\t\t503\n+#define CLK_PMUTIMER1\t\t\t\t504\n+#define PCLK_PWM0\t\t\t\t505\n+#define CLK_PWM0\t\t\t\t506\n+#define CLK_PWM0_OSC\t\t\t\t507\n+#define PCLK_PMUPHY_ROOT\t\t\t508\n+#define PCLK_I2C0\t\t\t\t509\n+#define CLK_I2C0\t\t\t\t510\n+#define SCLK_UART1\t\t\t\t511\n+#define PCLK_UART1\t\t\t\t512\n+#define CLK_PWM0_RC\t\t\t\t513\n+#define CLK_PDM0\t\t\t\t514\n+#define HCLK_PDM0\t\t\t\t515\n+#define MCLK_PDM0\t\t\t\t516\n+#define HCLK_VAD\t\t\t\t517\n+#define CLK_PDM0_OUT\t\t\t\t518\n+#define PCLK_PMU0_ROOT\t\t\t\t519\n+#define PCLK_PMU0\t\t\t\t520\n+#define PCLK_GPIO0\t\t\t\t521\n+#define DBCLK_GPIO0\t\t\t\t522\n+#define SCLK_APB2ASB_SRC\t\t\t523\n+#define CLK_32K\t\t\t\t\t524\n+#define ACLK_CRYPTO_NS\t\t\t\t525\n+#define CLK_PKA_CRYPTO_NS\t\t\t526\n+#define PCLK_DDR_MON\t\t\t\t527\n+\n+/* Secure clocks */\n+#define ACLK_CCI\t\t\t\t600\n+#define SCLK_DDR\t\t\t\t601\n+#define CLK_STIMER0_ROOT\t\t\t602\n+#define PCLK_SECURE_S\t\t\t\t603\n+#define HCLK_SECURE_S\t\t\t\t604\n+#define ACLK_SECURE_S\t\t\t\t605\n+#define CLK_PKA_CRYPTO_S\t\t\t606\n+#define PCLK_KLAD\t\t\t\t607\n+#define HCLK_CRYPTO_S\t\t\t\t608\n+#define HCLK_KLAD\t\t\t\t609\n+#define ACLK_CRYPTO_S\t\t\t\t610\n+#define PCLK_OTPC_S\t\t\t\t611\n+#define CLK_OTPC_S\t\t\t\t612\n+#define PCLK_WDT_S\t\t\t\t613\n+#define TCLK_WDT_S\t\t\t\t614\n+#define HCLK_TRNG_S\t\t\t\t615\n+\n+#endif\ndiff --git a/include/dt-bindings/reset/rockchip,rk3572-cru.h b/include/dt-bindings/reset/rockchip,rk3572-cru.h\nnew file mode 100644\nindex 00000000000000..a88af7665daef2\n--- /dev/null\n+++ b/include/dt-bindings/reset/rockchip,rk3572-cru.h\n@@ -0,0 +1,713 @@\n+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */\n+/*\n+ * Copyright (c) 2025 Rockchip Electronics Co., Ltd.\n+ * Author: Elaine Zhang \u003czhangqing@rock-chips.com\u003e\n+ */\n+\n+#ifndef _DT_BINDINGS_RESET_ROCKCHIP_RK3572_H\n+#define _DT_BINDINGS_RESET_ROCKCHIP_RK3572_H\n+\n+/* CRU--\u003eSOFTRST_CON01 */\n+#define SRST_ARESETN_TOP_BIU                     0\n+#define SRST_PRESETN_TOP_BIU                     1\n+#define SRST_ARESETN_TOP_MID_BIU                 2\n+#define SRST_HRESETN_TOP_BIU                     3\n+\n+/* CRU--\u003eSOFTRST_CON02 */\n+#define SRST_HRESETN_TOP_FW                      4\n+\n+/* CRU--\u003eSOFTRST_CON06 */\n+#define SRST_RESETN_TEST_JUDGE_24M_TOP           5\n+#define SRST_RESETN_TEST_JUDGE_TOP               6\n+\n+/* CRU--\u003eSOFTRST_CON07 */\n+#define SRST_HRESETN_AUDIO_BIU                   7\n+#define SRST_HRESETN_ASRC_2CH_0                  8\n+#define SRST_HRESETN_ASRC_2CH_1                  9\n+#define SRST_RESETN_ASRC_2CH_0                   10\n+#define SRST_RESETN_ASRC_2CH_1                   11\n+#define SRST_MRESETN_SAI0                        12\n+#define SRST_HRESETN_SAI0                        13\n+#define SRST_HRESETN_SPDIF_RX0                   14\n+#define SRST_MRESETN_SPDIF_RX0                   15\n+\n+/* CRU--\u003eSOFTRST_CON08 */\n+#define SRST_MRESETN_SAI1                        16\n+#define SRST_HRESETN_SAI1                        17\n+#define SRST_MRESETN_SAI2                        18\n+#define SRST_HRESETN_SAI2                        19\n+#define SRST_MRESETN_SAI3                        20\n+#define SRST_HRESETN_SAI3                        21\n+#define SRST_HRESETN_ACDCDIG_DSM                 22\n+\n+/* CRU--\u003eSOFTRST_CON09 */\n+#define SRST_MRESETN_ACDCDIG_DSM                 23\n+#define SRST_PRESETN_AUDIO_BIU                   24\n+#define SRST_PRESETN_AUDIO_GRF                   25\n+#define SRST_HRESETN_SPDIF_TX0                   26\n+#define SRST_MRESETN_SPDIF_TX0                   27\n+#define SRST_HRESETN_SPDIF_TX1                   28\n+#define SRST_MRESETN_SPDIF_TX1                   29\n+#define SRST_RESETN_TEST_JUDGE_24M_AUDIO         30\n+#define SRST_RESETN_TEST_JUDGE_AUDIO             31\n+\n+/* CRU--\u003eSOFTRST_CON11 */\n+#define SRST_ARESETN_BUS_BIU                     32\n+#define SRST_ARESETN_BUS_FW                      33\n+#define SRST_PRESETN_BUS_BIU                     34\n+#define SRST_PRESETN_CRU                         35\n+#define SRST_HRESETN_CAN0                        36\n+#define SRST_RESETN_CAN0                         37\n+#define SRST_HRESETN_CAN1                        38\n+#define SRST_RESETN_CAN1                         39\n+#define SRST_HRESETN_CAN2                        40\n+#define SRST_RESETN_CAN2                         41\n+#define SRST_HRESETN_CAN3                        42\n+#define SRST_RESETN_CAN3                         43\n+\n+/* CRU--\u003eSOFTRST_CON12 */\n+#define SRST_ARESETN_DECOM_BIU                   44\n+#define SRST_HRESETN_BUS_BIU                     45\n+#define SRST_RESETN_KEY_SHIFT                    46\n+#define SRST_PRESETN_I2C1                        47\n+#define SRST_PRESETN_I2C2                        48\n+#define SRST_PRESETN_I2C3                        49\n+#define SRST_PRESETN_I2C4                        50\n+#define SRST_PRESETN_I2C5                        51\n+#define SRST_PRESETN_I2C6                        52\n+#define SRST_PRESETN_I2C7                        53\n+#define SRST_PRESETN_I2C8                        54\n+#define SRST_PRESETN_I2C9                        55\n+#define SRST_PRESETN_WDT_BUSMCU                  56\n+#define SRST_TRESETN_WDT_BUSMCU                  57\n+\n+/* CRU--\u003eSOFTRST_CON13 */\n+#define SRST_ARESETN_GIC                         58\n+#define SRST_RESETN_I2C1                         59\n+#define SRST_RESETN_I2C2                         60\n+#define SRST_RESETN_I2C3                         61\n+#define SRST_RESETN_I2C4                         62\n+#define SRST_RESETN_I2C5                         63\n+#define SRST_RESETN_I2C6                         64\n+#define SRST_RESETN_I2C7                         65\n+#define SRST_RESETN_I2C8                         66\n+#define SRST_RESETN_I2C9                         67\n+#define SRST_PRESETN_SARADC                      68\n+\n+/* CRU--\u003eSOFTRST_CON14 */\n+#define SRST_RESETN_SARADC                       69\n+#define SRST_RESETN_SARADC_32K                   70\n+#define SRST_PRESETN_TSADC                       71\n+#define SRST_RESETN_TSADC                        72\n+#define SRST_PRESETN_UART0                       73\n+#define SRST_PRESETN_UART2                       74\n+#define SRST_PRESETN_UART3                       75\n+#define SRST_PRESETN_UART4                       76\n+#define SRST_PRESETN_UART5                       77\n+#define SRST_PRESETN_UART6                       78\n+#define SRST_PRESETN_UART7                       79\n+#define SRST_PRESETN_UART8                       80\n+#define SRST_PRESETN_UART9                       81\n+#define SRST_PRESETN_UART10                      82\n+#define SRST_PRESETN_UART11                      83\n+#define SRST_SRESETN_UART0                       84\n+\n+/* CRU--\u003eSOFTRST_CON15 */\n+#define SRST_SRESETN_UART2                       85\n+#define SRST_SRESETN_UART3                       86\n+#define SRST_SRESETN_UART4                       87\n+#define SRST_SRESETN_UART5                       88\n+#define SRST_SRESETN_UART6                       89\n+#define SRST_SRESETN_UART7                       90\n+\n+/* CRU--\u003eSOFTRST_CON16 */\n+#define SRST_SRESETN_UART8                       91\n+#define SRST_SRESETN_UART9                       92\n+#define SRST_SRESETN_UART10                      93\n+#define SRST_SRESETN_UART11                      94\n+#define SRST_PRESETN_SPI0                        95\n+#define SRST_PRESETN_SPI1                        96\n+#define SRST_PRESETN_SPI2                        97\n+#define SRST_PRESETN_SPI3                        98\n+#define SRST_PRESETN_SPI4                        99\n+#define SRST_RESETN_SPI0                         100\n+#define SRST_RESETN_SPI1                         101\n+#define SRST_RESETN_SPI2                         102\n+#define SRST_RESETN_SPI3                         103\n+\n+/* CRU--\u003eSOFTRST_CON17 */\n+#define SRST_RESETN_SPI4                         104\n+#define SRST_PRESETN_WDT0                        105\n+#define SRST_TRESETN_WDT0                        106\n+#define SRST_PRESETN_SYS_GRF                     107\n+#define SRST_PRESETN_PWM1                        108\n+#define SRST_RESETN_PWM1                         109\n+#define SRST_PRESETN_PWM2                        110\n+#define SRST_RESETN_PWM2                         111\n+\n+/* CRU--\u003eSOFTRST_CON18 */\n+#define SRST_PRESETN_BUSTIMER0                   112\n+#define SRST_PRESETN_BUSTIMER1                   113\n+#define SRST_RESETN_TIMER0                       114\n+#define SRST_RESETN_TIMER1                       115\n+#define SRST_RESETN_TIMER2                       116\n+#define SRST_RESETN_TIMER3                       117\n+#define SRST_RESETN_TIMER4                       118\n+#define SRST_RESETN_TIMER5                       119\n+#define SRST_PRESETN_MAILBOX0                    120\n+\n+/* CRU--\u003eSOFTRST_CON19 */\n+#define SRST_PRESETN_GPIO1                       121\n+#define SRST_DBRESETN_GPIO1                      122\n+#define SRST_PRESETN_GPIO2                       123\n+#define SRST_DBRESETN_GPIO2                      124\n+#define SRST_PRESETN_GPIO3                       125\n+#define SRST_DBRESETN_GPIO3                      126\n+#define SRST_PRESETN_GPIO4                       127\n+#define SRST_DBRESETN_GPIO4                      128\n+#define SRST_ARESETN_DECOM                       129\n+#define SRST_PRESETN_DECOM                       130\n+#define SRST_DRESETN_DECOM                       131\n+#define SRST_RESETN_TIMER6                       132\n+#define SRST_RESETN_TIMER7                       133\n+#define SRST_RESETN_TIMER8                       134\n+#define SRST_RESETN_TIMER9                       135\n+\n+/* CRU--\u003eSOFTRST_CON20 */\n+#define SRST_RESETN_TIMER10                      136\n+#define SRST_RESETN_TIMER11                      137\n+#define SRST_ARESETN_RKDMA0                      138\n+#define SRST_PRESETN_RKDMA0                      139\n+#define SRST_ARESETN_RKDMA1                      140\n+#define SRST_PRESETN_RKDMA1                      141\n+#define SRST_ARESETN_RKDMA2                      142\n+#define SRST_PRESETN_RKDMA2                      143\n+#define SRST_ARESETN_RKDMA3                      144\n+#define SRST_PRESETN_RKDMA3                      145\n+#define SRST_PRESETN_SPINLOCK                    146\n+#define SRST_RESETN_REF_PVTPLL_BUS               147\n+#define SRST_RESETN_I3C                          148\n+#define SRST_HRESETN_I3C                         149\n+\n+/* CRU--\u003eSOFTRST_CON21 */\n+#define SRST_RESETN_BUSMCU_BIU                   150\n+#define SRST_CORERESETN_N320                     151\n+#define SRST_PORESETN_N320                       152\n+#define SRST_RESETN_MCU_AXI_INTEGRITY            153\n+#define SRST_PRESETN_INTMUX2PMU                  154\n+#define SRST_PRESETN_INTMUX2DDR                  155\n+#define SRST_PRESETN_PVTPLL_BUS                  156\n+#define SRST_RESETN_HDMITXHPD                    157\n+\n+/* CRU--\u003eSOFTRST_CON22 */\n+#define SRST_PRESETN_APB2ASB_HDMITX              158\n+#define SRST_SRESETN_APB2ASB_HDMITX              159\n+#define SRST_PRESETN_APB2ASB_MIPICSI             160\n+#define SRST_SRESETN_APB2ASB_MIPICSI             161\n+#define SRST_PRESETN_APB2ASB_VCCIO0_3            162\n+#define SRST_SRESETN_APB2ASB_VCCIO0_3            163\n+#define SRST_PRESETN_APB2ASB_VCCIO1_2_4          164\n+#define SRST_SRESETN_APB2ASB_VCCIO1_2_4          165\n+#define SRST_PRESETN_APB2ASB_VCCIO5_6            166\n+#define SRST_SRESETN_APB2ASB_VCCIO5_6            167\n+#define SRST_RESETN_TEST_JUDGE_24M_BUS           168\n+#define SRST_RESETN_TEST_JUDGE_BUS               169\n+\n+/* CRU--\u003eSOFTRST_CON23 */\n+#define SRST_PRESETN_DDR_MON                     170\n+#define SRST_PRESETN_DDR_BIU                     171\n+#define SRST_PRESETN_DDR_UPCTL                   172\n+#define SRST_TMRESETN_DDR_MON                    173\n+#define SRST_ARESETN_DDR_BIU                     174\n+#define SRST_PRESETN_DDR_BIU_FW                  175\n+#define SRST_RESETN_DDR_MON                      176\n+#define SRST_PRESETN_DDR_HWLP                    177\n+\n+/* CRU--\u003eSOFTRST_CON24 */\n+#define SRST_ARESETN_DDR_MSCH_BIU                178\n+#define SRST_ARESETN_DDR_MSCH_FW                 179\n+#define SRST_RESETN_DDR_SCRAMBLE                 180\n+#define SRST_LRESETN_DDRSCH_BIU                  181\n+\n+/* CRU--\u003eSOFTRST_CON25 */\n+#define SRST_RESETN_DDR_TIMER0                   182\n+#define SRST_RESETN_DDR_TIMER1                   183\n+#define SRST_TRESETN_DDR_WDT                     184\n+#define SRST_PRESETN_WDT                         185\n+#define SRST_PRESETN_TIMER                       186\n+#define SRST_PRESETN_DDR_GRF                     187\n+\n+/* CRU--\u003eSOFTRST_CON26 */\n+#define SRST_RESETN_DDR_UPCTL                    188\n+#define SRST_ARESETN_DDR_UPCTL_0                 189\n+#define SRST_ARESETN_DDR_UPCTL_1                 190\n+#define SRST_ARESETN_DDR_UPCTL_2                 191\n+#define SRST_ARESETN_DDR_UPCTL_3                 192\n+#define SRST_ARESETN_DDR_UPCTL_4                 193\n+#define SRST_ARESETN_DDR_UPCTL_5                 194\n+\n+/* CRU--\u003eSOFTRST_CON27 */\n+#define SRST_RESETN_DDRMCU_BIU                   195\n+#define SRST_CORERESETN_N320_DDR                 196\n+#define SRST_PORESETN_N320_DDR                   197\n+#define SRST_RESETN_TEST_JUDGE_24M_DDR           198\n+#define SRST_RESETN_TEST_JUDGE_DDR               199\n+\n+/* CRU--\u003eSOFTRST_CON31 */\n+#define SRST_ARESETN_RKNN                        200\n+#define SRST_ARESETN_RKNN_RV                     201\n+#define SRST_ARESETN_RKNN_BIU                    202\n+#define SRST_ARESETN_RKNN_FW                     203\n+#define SRST_PRESETN_RKNN_BIU                    204\n+#define SRST_PRESETN_PVTPLL_NPU                  205\n+#define SRST_RESETN_NPU_PVTPLL                   206\n+#define SRST_RESETN_24M_RKNN                     207\n+#define SRST_RESETN_NPUTIMER0                    208\n+#define SRST_RESETN_NPUTIMER1                    209\n+#define SRST_PRESETN_NPU_TIMER                   210\n+\n+/* CRU--\u003eSOFTRST_CON32 */\n+#define SRST_PRESETN_NPU_WDT                     211\n+#define SRST_TRESETN_NPU_WDT                     212\n+#define SRST_PRESETN_RKNN_GRF                    213\n+#define SRST_RESETN_TEST_JUDGE_24M_NPU           214\n+#define SRST_RESETN_TEST_JUDGE_NPU               215\n+\n+/* CRU--\u003eSOFTRST_CON33 */\n+#define SRST_PRESETN_PHP0_GRF                    216\n+#define SRST_PRESETN_PHP0_BIU                    217\n+#define SRST_ARESETN_PHP0_BIU                    218\n+#define SRST_ARESETN_PHP0_FW                     219\n+#define SRST_PRESETN_PCIE1                       220\n+#define SRST_RESETN_PCIE1_POWER_UP               221\n+#define SRST_RESETN_TEST_JUDGE_24M_PHP0          222\n+#define SRST_RESETN_TEST_JUDGE_PHP0              223\n+\n+/* CRU--\u003eSOFTRST_CON34 */\n+#define SRST_PRESETN_PCIE0                       224\n+#define SRST_RESETN_PCIE0_POWER_UP               225\n+#define SRST_ARESETN_USB3OTG1                    226\n+#define SRST_ARESETN_GMAC0                       227\n+#define SRST_ARESETN_USB3OTG0                    228\n+\n+/* CRU--\u003eSOFTRST_CON35 */\n+#define SRST_ARESETN_UFS_BIU                     229\n+#define SRST_ARESETN_UFS_SYS                     230\n+#define SRST_ARESETN_UFS                         231\n+#define SRST_PRESETN_UFS_GRF                     232\n+\n+/* CRU--\u003eSOFTRST_CON37 */\n+#define SRST_RESETN_RXOOB0                       233\n+#define SRST_RESETN_PMALIVE0                     234\n+#define SRST_ARESETN_SATA0                       235\n+#define SRST_RESETN_RXOOB1                       236\n+#define SRST_RESETN_PMALIVE1                     237\n+#define SRST_ARESETN_SATA1                       238\n+#define SRST_RESETN_XPCS_PWR_ON                  239\n+#define SRST_RESETN_ASIC0                        240\n+#define SRST_RESETN_ASIC1                        241\n+\n+/* CRU--\u003eSOFTRST_CON42 */\n+#define SRST_PRESETN_NVM0_GRF                    242\n+#define SRST_PRESETN_NVM0_BIU                    243\n+#define SRST_ARESETN_NVM0_BIU                    244\n+#define SRST_HRESETN_NVM0_BIU                    245\n+#define SRST_CRESETN_EMMC                        246\n+#define SRST_HRESETN_EMMC                        247\n+#define SRST_ARESETN_EMMC                        248\n+#define SRST_BRESETN_EMMC                        249\n+#define SRST_TRESETN_EMMC                        250\n+#define SRST_ARESETN_GMAC1                       251\n+\n+/* CRU--\u003eSOFTRST_CON43 */\n+#define SRST_SRESETN_FSPI0                       252\n+#define SRST_HRESETN_FSPI0                       253\n+#define SRST_HRESETN_SDMMC1                      254\n+#define SRST_RESETN_TEST_JUDGE_24M_NVM0          255\n+#define SRST_RESETN_TEST_JUDGE_NVM0              256\n+\n+/* CRU--\u003eSOFTRST_CON44 */\n+#define SRST_ARESETN_DSMC_BIU                    257\n+#define SRST_ARESETN_DSMC                        258\n+#define SRST_HRESETN_DSMC_BIU                    259\n+#define SRST_HRESETN_DSMC                        260\n+#define SRST_PRESETN_DSMC_BIU                    261\n+#define SRST_PRESETN_DSMC                        262\n+#define SRST_RESETN_TEST_JUDGE_24M_DSMC          263\n+#define SRST_RESETN_TEST_JUDGE_DSMC              264\n+#define SRST_PRESETN_DSMC_GRF                    265\n+\n+/* CRU--\u003eSOFTRST_CON45 */\n+#define SRST_PRESETN_NVM1_GRF                    266\n+#define SRST_PRESETN_NVM1_BIU                    267\n+#define SRST_HRESETN_NVM1_BIU                    268\n+#define SRST_HRESETN_SDMMC0                      269\n+#define SRST_SRESETN_FSPI1                       270\n+#define SRST_HRESETN_FSPI1                       271\n+\n+/* CRU--\u003eSOFTRST_CON46 */\n+#define SRST_RESETN_TEST_JUDGE_24M_NVM1          272\n+#define SRST_RESETN_TEST_JUDGE_NVM1              273\n+\n+/* CRU--\u003eSOFTRST_CON50 */\n+#define SRST_HRESETN_RKVDEC                      274\n+#define SRST_HRESETN_RKVDEC_BIU                  275\n+#define SRST_ARESETN_RKVDEC_BIU                  276\n+#define SRST_RESETN_RKVDEC_HEVC_CA               277\n+#define SRST_RESETN_RKVDEC_CORE                  278\n+#define SRST_RESETN_TEST_JUDGE_24M_VDEC          279\n+#define SRST_RESETN_TEST_JUDGE_VDEC              280\n+#define SRST_PRESETN_VDEC_BIU                    281\n+#define SRST_PRESETN_VDEC_GRF                    282\n+\n+/* CRU--\u003eSOFTRST_CON52 */\n+#define SRST_PRESETN_APB2ASB_MIPI_HDMI_SUBVO     283\n+#define SRST_SRESETN_APB2ASB_MIPI_HDMI_SUBVO     284\n+#define SRST_PRESETN_APB2ASB_VCCIO0_3_SUBVO      285\n+#define SRST_SRESETN_APB2ASB_VCCIO0_3_SUBVO      286\n+#define SRST_PRESETN_HDPTXPHY                    287\n+#define SRST_PRESETN_HDPTXPHY_GRF                288\n+#define SRST_PRESETN_MIPI_DPHY0                  289\n+\n+/* CRU--\u003eSOFTRST_CON53 */\n+#define SRST_RESETN_HDPTX_INIT                   290\n+#define SRST_RESETN_HDPTX_CMN                    291\n+#define SRST_RESETN_HDPTX_LANE                   292\n+#define SRST_PRESETN_IOC_SUBVO                   293\n+#define SRST_RESETN_GMAC1_SUBVO_ASYNC            294\n+#define SRST_RESETN_TEST_JUDGE_24M_SUBSYSVO      295\n+#define SRST_RESETN_TEST_JUDGE_SUBSYSVO          296\n+\n+/* CRU--\u003eSOFTRST_CON54 */\n+#define SRST_PRESETN_APB2ASB_VCCIO1_2_4_SUBVI    297\n+#define SRST_SRESETN_APB2ASB_VCCIO1_2_4_SUBVI    298\n+#define SRST_PRESETN_APB2ASB_CSIPHY_SUBVI        299\n+#define SRST_SRESETN_APB2ASB_CSIPHY_SUBVI        300\n+#define SRST_PRESETN_CSIPHY0                     301\n+#define SRST_PRESETN_CSIPHY0_GRF                 302\n+#define SRST_PRESETN_CSIPHY1                     303\n+#define SRST_PRESETN_CSIPHY1_GRF                 304\n+#define SRST_PRESETN_IOC_SUBVI                   305\n+#define SRST_RESETN_GMAC0_SUBVI_ASYNC            306\n+#define SRST_SCAN_RESETN_CSIPHY0                 307\n+#define SRST_SCAN_RESETN_CSIPHY1                 308\n+#define SRST_RESETN_TEST_JUDGE_24M_SUBSYSVI      309\n+#define SRST_RESETN_TEST_JUDGE_SUBSYSVI          310\n+\n+/* CRU--\u003eSOFTRST_CON56 */\n+#define SRST_PRESETN_APB2ASB_VCCIO5_6_SUBDSMC    311\n+#define SRST_SRESETN_APB2ASB_VCCIO5_6_SUBDSMC    312\n+#define SRST_PRESETN_VCCIO5_6                    313\n+#define SRST_RESETN_GMAC1_ASYNC                  314\n+\n+/* CRU--\u003eSOFTRST_CON57 */\n+#define SRST_PRESETN_IMG_BIU                     315\n+#define SRST_PRESETN_IMG_GRF                     316\n+#define SRST_HRESETN_IMG_BIU                     317\n+#define SRST_ARESETN_JPEG_BIU                    318\n+#define SRST_RESETN_TEST_JUDGE_24M_IMG           319\n+#define SRST_RESETN_TEST_JUDGE_IMG               320\n+#define SRST_ARESETN_RGA_BIU                     321\n+#define SRST_ARESETN_VDPP_BIU                    322\n+#define SRST_ARESETN_EBC_BIU                     323\n+\n+/* CRU--\u003eSOFTRST_CON58 */\n+#define SRST_HRESETN_RGA2E_0                     324\n+#define SRST_ARESETN_RGA2E_0                     325\n+#define SRST_RESETN_CORE_RGA2E_0                 326\n+#define SRST_ARESETN_JPEG                        327\n+#define SRST_HRESETN_JPEG                        328\n+#define SRST_HRESETN_VDPP                        329\n+#define SRST_ARESETN_VDPP                        330\n+#define SRST_RESETN_CORE_VDPP                    331\n+#define SRST_HRESETN_EBC                         332\n+#define SRST_ARESETN_EBC                         333\n+#define SRST_DRESETN_EBC                         334\n+\n+/* CRU--\u003eSOFTRST_CON60 */\n+#define SRST_HRESETN_RKVENC_BIU                  335\n+#define SRST_ARESETN_RKVENC_BIU                  336\n+#define SRST_HRESETN_RKVENC                      337\n+#define SRST_ARESETN_RKVENC                      338\n+#define SRST_RESETN_RKVENC_CORE                  339\n+#define SRST_RESETN_TEST_JUDGE_24M_VENC          340\n+#define SRST_RESETN_TEST_JUDGE_VENC              341\n+\n+/* CRU--\u003eSOFTRST_CON63 */\n+#define SRST_ARESETN_VI_BIU                      342\n+#define SRST_HRESETN_VI_BIU                      343\n+#define SRST_PRESETN_VI_BIU                      344\n+#define SRST_DRESETN_VICAP                       345\n+#define SRST_ARESETN_VICAP                       346\n+#define SRST_HRESETN_VICAP                       347\n+#define SRST_RESETN_ISP                          348\n+#define SRST_RESETN_ISP_VICAP                    349\n+\n+/* CRU--\u003eSOFTRST_CON64 */\n+#define SRST_RESETN_CORE_VPSS                    350\n+#define SRST_PRESETN_VI_GRF                      351\n+#define SRST_PRESETN_CSI_HOST_0                  352\n+#define SRST_PRESETN_CSI_HOST_1                  353\n+#define SRST_PRESETN_CSI_HOST_2                  354\n+#define SRST_PRESETN_CSI_HOST_3                  355\n+#define SRST_RESETN_TEST_JUDGE_24M_VI            356\n+#define SRST_RESETN_TEST_JUDGE_VI                357\n+\n+/* CRU--\u003eSOFTRST_CON72 */\n+#define SRST_RESETN_CIFIN                        358\n+\n+/* CRU--\u003eSOFTRST_CON74 */\n+#define SRST_ARESETN_VOP_BIU                     359\n+#define SRST_ARESETN_VOP_FW                      360\n+#define SRST_HRESETN_VOP_BIU                     361\n+#define SRST_PRESETN_VOP_BIU                     362\n+#define SRST_HRESETN_VOP                         363\n+#define SRST_ARESETN_VOP                         364\n+#define SRST_DRESETN_VP0                         365\n+\n+/* CRU--\u003eSOFTRST_CON75 */\n+#define SRST_DRESETN_VP1                         366\n+#define SRST_PRESETN_VOPGRF                      367\n+#define SRST_RESETN_TEST_JUDGE_24M_VOP           368\n+#define SRST_RESETN_TEST_JUDGE_VOP               369\n+\n+/* CRU--\u003eSOFTRST_CON78 */\n+#define SRST_PRESETN_DSIHOST0                    370\n+#define SRST_HRESETN_VO_BIU                      371\n+#define SRST_PRESETN_VO_BIU                      372\n+#define SRST_ARESETN_HDCP0_BIU                   373\n+#define SRST_PRESETN_VO_GRF                      374\n+\n+/* CRU--\u003eSOFTRST_CON79 */\n+#define SRST_PRESETN_HDCP0_TRNG_NS               375\n+#define SRST_ARESETN_HDCP0                       376\n+#define SRST_HRESETN_HDCP0                       377\n+#define SRST_RESETN_HDCP0                        378\n+#define SRST_PRESETN_HDMITX0                     379\n+#define SRST_RESETN_HDMITX0_EARC                 380\n+\n+/* CRU--\u003eSOFTRST_CON80 */\n+#define SRST_RESETN_HDMITX0_REF                  381\n+#define SRST_PRESETN_EDP0                        382\n+#define SRST_RESETN_EDP0_24M                     383\n+#define SRST_MRESETN_SAI4                        384\n+#define SRST_HRESETN_SAI4                        385\n+#define SRST_MRESETN_SAI5                        386\n+#define SRST_HRESETN_SAI5                        387\n+#define SRST_HRESETN_SPDIF_TX2                   388\n+#define SRST_MRESETN_SPDIF_TX2                   389\n+#define SRST_HRESETN_SPDIF_RX1                   390\n+#define SRST_MRESETN_SPDIF_RX1                   391\n+\n+/* CRU--\u003eSOFTRST_CON81 */\n+#define SRST_RESETN_EBC_VOP_DCLK_VO              392\n+\n+/* CRU--\u003eSOFTRST_CON82 */\n+#define SRST_RESETN_TEST_JUDGE_24M_VO            393\n+#define SRST_RESETN_TEST_JUDGE_VO                394\n+\n+/* CRU--\u003eSOFTRST_CON84 */\n+#define SRST_RESETN_GPU                          395\n+#define SRST_SYSRESETN_GPU                       396\n+#define SRST_PRESETN_GPU_BIU                     397\n+#define SRST_PORESETN_GPU_JTAG                   398\n+#define SRST_PRESETN_GPU_GRF                     399\n+#define SRST_RESETN_GPU_PVTPLL                   400\n+#define SRST_PRESETN_PVTPLL_GPU                  401\n+#define SRST_ARESETN_SLV_GPU_BIU                 402\n+\n+/* CRU--\u003eSOFTRST_CON85 */\n+#define SRST_ARESETN_GPU_BIU                     403\n+#define SRST_RESETN_TEST_JUDGE_24M_GPU           404\n+#define SRST_RESETN_TEST_JUDGE_GPU               405\n+\n+/* CRU--\u003eSOFTRST_CON86 */\n+#define SRST_ARESETN_CENTER_BIU                  406\n+#define SRST_ARESETN_CENTER_FW_DDR               407\n+#define SRST_ARESETN_CENTER_FW_GPU               408\n+#define SRST_ARESETN_DMA2DDR                     409\n+#define SRST_ARESETN_DDR_SHAREMEM                410\n+#define SRST_ARESETN_DDR_SHAREMEM_BIU            411\n+#define SRST_ARESETN_DDR_SHAREMEM_FW             412\n+#define SRST_HRESETN_CENTER_BIU                  413\n+#define SRST_HRESETN_CENTER_FW                   414\n+#define SRST_PRESETN_CENTER_GRF                  415\n+#define SRST_PRESETN_DMA2DDR                     416\n+\n+/* CRU--\u003eSOFTRST_CON87 */\n+#define SRST_PRESETN_CENTER_BIU                  417\n+#define SRST_RESETN_TEST_JUDGE_24M_CENTER        418\n+#define SRST_RESETN_TEST_JUDGE_CENTER            419\n+#define SRST_RESETN_LINKSYM_HDMITXPHY0           420\n+\n+/* PHPPHY_CRU--\u003eSOFTRST_CON00 */\n+#define SRST_PRESETN_PHPPHY_CRU                  421\n+#define SRST_PRESETN_PCIE2_COMBOPHY0             422\n+#define SRST_PRESETN_PCIE2_COMBOPHY0_GRF         423\n+#define SRST_PRESETN_PCIE2_COMBOPHY1             424\n+#define SRST_PRESETN_PCIE2_COMBOPHY1_GRF         425\n+#define SRST_PRESETN_USBPHY_GRF_0                426\n+#define SRST_PRESETN_USBPHY_GRF_1                427\n+#define SRST_RESETN_MPHY_INIT                    428\n+#define SRST_PRESETN_MPHY_GRF                    429\n+#define SRST_PRESETN_VCCIO7_IOC                  430\n+#define SRST_RESETN_USB2DEBUG                    431\n+#define SRST_PRESETN_PCIEPHY2                    432\n+#define SRST_PRESETN_PCIEPHY2_GRF                433\n+\n+/* PHPPHY_CRU--\u003eSOFTRST_CON01 */\n+#define SRST_SRESETN_APB2ASB_USBMPHY_PHPPHY      434\n+#define SRST_PRESETN_APB2ASB_USBMPHY_PHPPHY      435\n+#define SRST_RESETN_OTGPHY_0                     436\n+#define SRST_RESETN_OTGPHY_1                     437\n+#define SRST_RESETN_TEST_JUDGE_24M_PHPPHY        438\n+#define SRST_RESETN_TEST_JUDGE_PHPPHY            439\n+\n+/* PHPPHY_CRU--\u003eSOFTRST_CON02 */\n+#define SRST_RESETN_PCIEPHY2                     440\n+#define SRST_RESETN_PCIE0_PIPE_PHY               441\n+#define SRST_RESETN_PCIE1_PIPE_PHY               442\n+\n+/* SECURE_CRU--\u003eSOFTRST_CON00 */\n+#define SRST_HRESETN_CRYPTO_NS                   443\n+#define SRST_HRESETN_TRNG_NS                     444\n+#define SRST_PRESETN_SECURE_NS_BIU               445\n+#define SRST_ARESETN_SECURE_HIGH_BIU             446\n+#define SRST_HRESETN_SECURE_NS_BIU               447\n+#define SRST_PRESETN_OTPC_NS                     448\n+#define SRST_RESETN_OTPC_NS                      449\n+\n+/* PMU1_CRU--\u003eSOFTRST_CON03 */\n+#define SRST_PRESETN_APB2ASB_PMU1                450\n+#define SRST_SRESETN_APB2ASB_PMU1                451\n+#define SRST_HRESETN_PMU1_BIU                    452\n+#define SRST_HRESETN_PMU1_FW                     453\n+#define SRST_PRESETN_PMU1_BIU                    454\n+#define SRST_HRESETN_PMU_CM0_BIU                 455\n+#define SRST_CORERESETN_N100                     456\n+#define SRST_PORESETN_N100                       457\n+\n+/* PMU1_CRU--\u003eSOFTRST_CON04 */\n+#define SRST_PRESETN_CRU_PMU1                    458\n+#define SRST_PRESETN_PMU1_GRF                    459\n+#define SRST_PRESETN_PMU1_IOC                    460\n+#define SRST_PRESETN_PMU1WDT                     461\n+#define SRST_TRESETN_PMU1WDT                     462\n+#define SRST_PRESETN_PMUTIMER                    463\n+#define SRST_RESETN_PMUTIMER0                    464\n+#define SRST_RESETN_PMUTIMER1                    465\n+#define SRST_PRESETN_PWM0                        466\n+#define SRST_RESETN_PWM0                         467\n+\n+/* PMU1_CRU--\u003eSOFTRST_CON05 */\n+#define SRST_PRESETN_I2C0                        468\n+#define SRST_RESETN_I2C0                         469\n+#define SRST_SRESETN_UART1                       470\n+#define SRST_PRESETN_UART1                       471\n+#define SRST_RESETN_TEST_JUDGE_24M_PMU1          472\n+#define SRST_RESETN_TEST_JUDGE_PMU1              473\n+#define SRST_RESETN_PDM0                         474\n+\n+/* PMU1_CRU--\u003eSOFTRST_CON06 */\n+#define SRST_HRESETN_PDM0                        475\n+#define SRST_MRESETN_PDM0                        476\n+#define SRST_HRESETN_VAD                         477\n+#define SRST_PRESETN_RCOSC                       478\n+#define SRST_RESETN_RCOSC                        479\n+\n+/* PMU1_CRU--\u003eSOFTRST_CON07 */\n+#define SRST_PRESETN_PMU0GRF                     480\n+#define SRST_PRESETN_PMU0IOC                     481\n+#define SRST_PRESETN_GPIO0                       482\n+#define SRST_DBRESETN_GPIO0                      483\n+\n+/* DDR0_CRU--\u003eSOFTRST_CON00 */\n+#define SRST_RESETN_DDRPHY1X                     484\n+\n+/* DDR0_CRU--\u003eSOFTRST_CON01 */\n+#define SRST_PRESETN_DDRPHY_CRU                  485\n+#define SRST_PRESETN_DDRPHY                      486\n+\n+/* BIGCORE_CRU--\u003eSOFTRST_CON00 */\n+#define SRST_RESETN_REF_PVTPLL_BIGCORE           487\n+#define SRST_PRESETN_BIGCORE_BIU                 488\n+#define SRST_PRESETN_BIGCORE_GRF                 489\n+#define SRST_PRESETN_BIGCORE_CRU                 490\n+#define SRST_PRESETN_PVTPLL_BIGCORE              491\n+#define SRST_NBIGCOREPORESET0                    492\n+#define SRST_NBIGCOREPORESET1                    493\n+#define SRST_NBIGCORESET0                        494\n+#define SRST_NBIGCORESET1                        495\n+\n+/* BIGCORE_CRU--\u003eSOFTRST_CON01 */\n+#define SRST_NL2RESET_BIGCORE                    496\n+#define SRST_ARESETN_ADB400_A73_ACE              497\n+#define SRST_RESETN_TEST_JUDGE_24M_BIGCORE       498\n+#define SRST_RESETN_TEST_JUDGE_BIGCORE           499\n+#define SRST_PRESETN_DBG_BIGCORE                 500\n+\n+/* LITCORE0_CRU--\u003eSOFTRST_CON00 */\n+#define SRST_RESETN_REF_LITCORE0_PVTPLL          501\n+#define SRST_NLITCOREPORESET0                    502\n+#define SRST_NLITCOREPORESET1                    503\n+#define SRST_NLITCOREPORESET2                    504\n+#define SRST_NLITCOREPORESET3                    505\n+#define SRST_NLITCORESET0                        506\n+#define SRST_NLITCORESET1                        507\n+#define SRST_NLITCORESET2                        508\n+#define SRST_NLITCORESET3                        509\n+#define SRST_NL2RESET_LITCORE0                   510\n+#define SRST_PRESETN_DBG_LITCORE0                511\n+#define SRST_ARESETN_ADB400_A53_ACE_LITCORE0     512\n+\n+/* LITCORE0_CRU--\u003eSOFTRST_CON01 */\n+#define SRST_PRESETN_LITCORE0_GRF                513\n+#define SRST_PRESETN_LITCORE0_BIU                514\n+#define SRST_PRESETN_PVTPLL_LITCORE0             515\n+#define SRST_PRESETN_LITCORE0_CRU                516\n+#define SRST_RESETN_TEST_JUDGE_24M_LITCORE0      517\n+#define SRST_RESETN_TEST_JUDGE_LITCORE0          518\n+\n+/* LITCORE1_CRU--\u003eSOFTRST_CON00 */\n+#define SRST_RESETN_REF_LITCORE1_PVTPLL          519\n+#define SRST_NLITCOREPORESET4                    520\n+#define SRST_NLITCOREPORESET5                    521\n+#define SRST_NLITCORESET4                        522\n+#define SRST_NLITCORESET5                        523\n+#define SRST_NL2RESET_LITCORE1                   524\n+#define SRST_PRESETN_DBG_LITCORE1                525\n+#define SRST_ARESETN_ADB400_A53_ACE_LITCORE1     526\n+#define SRST_PRESETN_LITCORE1_GRF                527\n+#define SRST_PRESETN_LITCORE1_BIU                528\n+\n+/* LITCORE1_CRU--\u003eSOFTRST_CON01 */\n+#define SRST_PRESETN_PVTPLL_LITCORE1             529\n+#define SRST_PRESETN_LITCORE1_CRU                530\n+#define SRST_RESETN_TEST_JUDGE_24M_LITCORE1      531\n+#define SRST_RESETN_TEST_JUDGE_LITCORE1          532\n+\n+/* CCI_CRU--\u003eSOFTRST_CON01 */\n+#define SRST_RESETN_TEST_JUDGE_24M_CCI           533\n+#define SRST_RESETN_TEST_JUDGE_CCI               534\n+#define SRST_ARESETN_CPE                         535\n+#define SRST_PRESETN_CCI_BIU                     536\n+#define SRST_PRESETN_CCI_FW                      537\n+#define SRST_ARESETN_CCI_BIU                     538\n+#define SRST_ARESETN_CCI_FW                      539\n+\n+/* CCI_CRU--\u003eSOFTRST_CON02 */\n+#define SRST_PRESETN_DBG_SYS                     540\n+#define SRST_PRESETN_CCI_GRF                     541\n+#define SRST_PRESETN_CCI_CRU                     542\n+#define SRST_ARESETN_CCI                         543\n+#define SRST_PORESETN_JTAG                       544\n+#define SRST_PRESETN_DBG_M                       545\n+#define SRST_ARESETN_ADB400_CCI_A73              546\n+#define SRST_ARESETN_ADB400_CCI_A53_0            547\n+#define SRST_ARESETN_ADB400_CCI_A53_1            548\n+#define SRST_PRESETN_PVTPLL_CCI                  549\n+#define SRST_PRESETN_CCI_SPINLOCK                550\n+#define SRST_PRESETN_DBG_M_BIU                   551\n+#define SRST_RESETN_REF_CCI_PVTPLL               552\n+\n+#endif\n"
}

2/1 2026/10/27 16:52 agent patch-evaluator
2m Model:
core

Args:
null

Results:
{
  "EnableConfigs": null,
  "FocusSymbols": [],
  "Reasoning": "The patch series adds clock controller and soft-reset driver support for the Rockchip RK3572 SoC (an ARM64 SoC platform), including a new fractional divider implementation. Initialization is handled solely via CLK_OF_DECLARE using Device Tree matching (of_clk_init), which is exclusive to ARM/ARM64 and other non-x86 architectures and does not execute on amd64. Because the target architecture is amd64, the modified code paths are structurally unreachable.",
  "WorthFuzzing": false
}

Instruction:
You are an expert Linux kernel maintainer and security engineer.
Your job is to review a provided patch series and evaluate whether it warrants fuzzing with syzkaller.

IMPORTANT: The changes have ALREADY been applied and committed as the HEAD commit in
your workspace. Do NOT rely on internal assumptions. You must actively use your code access
tools to inspect the actual source code, callers, and surrounding context.

================================================================================
1. CORE TRIAGE PHILOSOPHY
================================================================================
The goal of patch fuzzing is to discover crashes, regressions, exposed latent bugs,
and newly triggered assertions introduced by the patch series.

- REACHABILITY IS THE PRIMARY GATE:
  Fuzzing can only discover bugs in code that can actually execute in standard virtualized
  environments (GCE or QEMU, utilizing software-emulated devices like USB gadgets, netdev, tun/tap).
  If the modified code is structurally unreachable (see Section 2), it MUST NOT be fuzzed,
  regardless of whether it adds assertions or complex logic.

- DO NOT BLINDLY TRUST "NO FUNCTIONAL CHANGE" (NFCI) OR "REFACTORING" CLAIMS:
  Patch authors routinely label changes as "cleanups", "refactorings", or state
  "No functional change intended". Do NOT take these claims at face value.
  Code refactorings that rearrange logic, introduce helper functions, or alter state management
  in core subsystems frequently introduce subtle semantic shifts or uncover latent kernel bugs.
  If reachable executable code is modified or refactored, it MUST be fuzzed.

- NEW OR MODIFIED ASSERTIONS IN REACHABLE CODE MUST BE FUZZED:
  When a patch introduces or modifies runtime checks or assertions (e.g., WARN_ON*, VM_WARN_ON*,
  BUG_ON*, lockdep_assert*) in reachable code paths, it enforces new or stricter invariants.
  Even if the author believes the invariant always holds, fuzzing is essential to verify whether
  an unusual sequence of operations can violate it.

================================================================================
2. WHEN TO RETURN WorthFuzzing=false (NEGATIVE CRITERIA)
================================================================================
Return WorthFuzzing=false ONLY IF all modified code falls strictly into one or more of these categories:

- Non-kernel and non-executable changes:
  * Modifications to Documentation/, comments, or spelling fixes.
  * User-space directories, self-tests, samples, or scripts (e.g., tools/, samples/, scripts/, usr/)
    that do not affect the compiled kernel image (vmlinux) or kernel modules.
  * Purely decorative logging (e.g., message strings in pr_err, printk, dev_info) or tracepoints
    that do not alter control flow or data structures.
  * Build system or Kconfig changes that do not alter compiled C logic.
- Structurally unreachable hardware:
  * Vendor-specific PCIe switches, SmartNICs, or GPU drivers (e.g., mlxsw, pds_core, qed,
    ionic, amdgpu) requiring physical ASIC/PCIe cards not emulated in standard QEMU.
- Unreachable execution paths:
  * Driver teardown callbacks (.remove, .shutdown, pci_unregister_driver) executed only during
    physical PCI hot-unplug or manual sysfs driver unbinding.
  * Code paths exclusive to architectures other than the target architecture.

================================================================================
3. WHEN TO RETURN WorthFuzzing=true (POSITIVE CRITERIA)
================================================================================
Return WorthFuzzing=true whenever the patch touches reachable executable code, including:
- Core Subsystems:
  * Any logic modifications in memory management (mm/), synchronization/locking (kernel/locking/),
    BPF, scheduler, core networking, VFS, or syscall handling.
- Refactorings and Code Cleanups:
  * Any restructuring of reachable data structures, helper abstractions, or algorithm flows.
- Runtime Assertions and Defensive Checks:
  * Any introduction or alteration of assertions (WARN_ON*, VM_WARN_ON*, BUG_ON*, etc.) in reachable paths.
- Reachable Drivers and Protocols:
  * Drivers accessible via virtual buses (virtio, USB gadget, loopback, netlink, binder, sockets, etc.).

================================================================================
4. EXTRACTING FocusSymbols (PREVENTING DILUTION)
================================================================================
When WorthFuzzing=true, you must extract specific kernel functions into FocusSymbols to guide the fuzzer:

- AVOID UBIQUITOUS LIFECYCLE HOT-PATHS:
  Do NOT list generic, ubiquitous functions called by almost every program in the corpus
  (including, but not limited to: general memory allocators and deallocators, page fault
  and trap handlers, or core synchronization primitives; this is not an exhaustive list).
  Listing ubiquitous functions causes the fuzzer to classify thousands of unrelated tests as "focused",
  which severely dilutes fuzzing effort away from the actual changes.

- TARGET SPECIFIC FEATURE LOGIC AND ENTRYPOINTS:
  List functions that specifically implement the logic being added or altered, or direct API entrypoints
  for the subsystem feature under review.

- HANDLING STATIC INLINE FUNCTIONS IN HEADERS (.h):
  Compiler-inlined static functions (such as static inlines in mm/*.h or include/linux/*.h) lack
  distinct symbol addresses in vmlinux and cannot be targeted directly by symbol coverage filters.
  If the changes are primarily in static inline helpers, identify non-static, feature-specific caller
  functions in .c files that exercise them (avoiding ubiquitous lifecycle wrappers).

================================================================================
5. IDENTIFYING EnableConfigs
================================================================================
Identify any specific CONFIG_ options required to properly compile and reach the modified code:
- Inspect Kconfig files and #ifdef guards; do not make assumptions.
- Check "depends on" lines in Kconfig to include any non-standard parent subsystem configs needed.
- Strip any 'CONFIG_' prefix (e.g., return "NET_IPV4" instead of "CONFIG_NET_IPV4").
Prefer calling several tools at the same time to save round-trips.


Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.

Prompt:
Target architecture: amd64

For your convenience, here is the diff of the changes:
commit e31add673683cf4562600fe655df7be222c8b5d6
Author: syz-cluster <triage@syzkaller.com>
Date:   Tue Oct 27 16:52:01 2026 +0000

    syz-cluster: applied patch under review

diff --git a/Documentation/devicetree/bindings/clock/rockchip,rk3572-cru.yaml b/Documentation/devicetree/bindings/clock/rockchip,rk3572-cru.yaml
new file mode 100644
index 00000000000000..fd38009ac31aa6
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/rockchip,rk3572-cru.yaml
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/rockchip,rk3572-cru.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip RK3572 Family Clock and Reset Control Module
+
+maintainers:
+  - Elaine Zhang <zhangqing@rock-chips.com>
+  - Heiko Stuebner <heiko@sntech.de>
+
+description:
+  The RK3572 CRU supplies peripheral clocks and resets.
+
+properties:
+  compatible:
+    const: rockchip,rk3572-cru
+
+  reg:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 1
+
+  "#reset-cells":
+    const: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: xin24m
+
+  rockchip,grf:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: PMU0 GRF register block.
+
+required:
+  - compatible
+  - reg
+  - "#clock-cells"
+  - "#reset-cells"
+  - rockchip,grf
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@26090000 {
+        compatible = "rockchip,rk3572-cru";
+        reg = <0x26090000 0x60000>;
+        #clock-cells = <1>;
+        #reset-cells = <1>;
+        rockchip,grf = <&pmu0_grf>;
+    };
diff --git a/drivers/clk/rockchip/Kconfig b/drivers/clk/rockchip/Kconfig
index 4b55f48d72c26d..8efd54fd295dd8 100644
--- a/drivers/clk/rockchip/Kconfig
+++ b/drivers/clk/rockchip/Kconfig
@@ -142,6 +142,13 @@ config CLK_RK3568
 	help
 	  Build the driver for RK3568 Clock Driver.
 
+config CLK_RK3572
+	bool "Rockchip RK3572 clock controller support"
+	depends on ARM64 || COMPILE_TEST
+	default y
+	help
+	  Build the driver for RK3572 Clock Driver.
+
 config CLK_RK3576
 	bool "Rockchip RK3576 clock controller support"
 	depends on ARM64 || COMPILE_TEST
diff --git a/drivers/clk/rockchip/Makefile b/drivers/clk/rockchip/Makefile
index 554b7eb83dc914..9141da0eee33c8 100644
--- a/drivers/clk/rockchip/Makefile
+++ b/drivers/clk/rockchip/Makefile
@@ -10,6 +10,7 @@ clk-rockchip-y += clk-pll.o
 clk-rockchip-y += clk-cpu.o
 clk-rockchip-y += clk-gate-grf.o
 clk-rockchip-y += clk-half-divider.o
+clk-rockchip-y += clk-fractional-divider-v2.o
 clk-rockchip-y += clk-inverter.o
 clk-rockchip-y += clk-mmc-phase.o
 clk-rockchip-y += clk-muxgrf.o
@@ -36,5 +37,6 @@ obj-$(CONFIG_CLK_RK3506)	+= clk-rk3506.o rst-rk3506.o
 obj-$(CONFIG_CLK_RK3528)	+= clk-rk3528.o rst-rk3528.o
 obj-$(CONFIG_CLK_RK3562)	+= clk-rk3562.o rst-rk3562.o
 obj-$(CONFIG_CLK_RK3568)	+= clk-rk3568.o
+obj-$(CONFIG_CLK_RK3572)	+= clk-rk3572.o rst-rk3572.o
 obj-$(CONFIG_CLK_RK3576)	+= clk-rk3576.o rst-rk3576.o
 obj-$(CONFIG_CLK_RK3588)	+= clk-rk3588.o rst-rk3588.o
diff --git a/drivers/clk/rockchip/clk-fractional-divider-v2.c b/drivers/clk/rockchip/clk-fractional-divider-v2.c
new file mode 100644
index 00000000000000..102e03f9d6e60e
--- /dev/null
+++ b/drivers/clk/rockchip/clk-fractional-divider-v2.c
@@ -0,0 +1,354 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
+ *
+ * Adjustable fractional divider clock implementation.
+ * Uses rational best approximation algorithm.
+ *
+ * Output is calculated as
+ *
+ *	rate = (m / n) * parent_rate				(1)
+ *
+ * This is useful when we have a prescaler block which asks for
+ * m (numerator) and n (denominator) values to be provided to satisfy
+ * the (1) as much as possible.
+ *
+ * Since m and n have the limitation by a range, e.g.
+ *
+ *	n >= 1, n < N_width, where N_width = 2^nwidth		(2)
+ *
+ * for some cases the output may be saturated. Hence, from (1) and (2),
+ * assuming the worst case when m = 1, the inequality
+ *
+ *	floor(log2(parent_rate / rate)) <= nwidth		(3)
+ *
+ * may be derived. Thus, in cases when
+ *
+ *	(parent_rate / rate) >> N_width				(4)
+ *
+ * we might scale up the rate by 2^scale (see the description of
+ * CLK_FRAC_DIVIDER_POWER_OF_TWO_PS for additional information), where
+ *
+ *	scale = floor(log2(parent_rate / rate)) - nwidth	(5)
+ *
+ * and assume that the IP, that needs m and n, has also its own
+ * prescaler, which is capable to divide by 2^scale. In this way
+ * we get the denominator to satisfy the desired range (2) and
+ * at the same time a much better result of m and n than simple
+ * saturated values.
+ */
+
+#include <linux/clk-provider.h>
+#include <linux/io.h>
+#include <linux/device.h>
+#include <linux/slab.h>
+#include <linux/rational.h>
+#include "clk.h"
+
+struct clk_fractional_divider_v2 {
+	struct clk_hw	hw;
+	void __iomem	*reg;
+	void __iomem	*high_reg;
+	u8		mshift;
+	u8		mwidth;
+	u32		mmask;
+	u8		nshift;
+	u8		nwidth;
+	u32		nmask;
+	u8		high_mshift;
+	u8		high_mwidth;
+	u32		high_mmask;
+	u8		high_nshift;
+	u8		high_nwidth;
+	u32		high_nmask;
+	u8		flags;
+	void		(*approximation)(struct clk_hw *hw,
+					 unsigned long rate,
+					 unsigned long *parent_rate,
+					 unsigned long *m, unsigned long *n);
+	spinlock_t	*lock; /* Protects the low and high register pair. */
+};
+
+#define to_clk_fd_v2(_hw) container_of(_hw, struct clk_fractional_divider_v2, hw)
+
+static inline u32 clk_fd_v2_readl(struct clk_fractional_divider_v2 *fd,
+				  void __iomem *reg)
+{
+	return readl(reg);
+}
+
+static inline void clk_fd_v2_writel(struct clk_fractional_divider_v2 *fd,
+				    void __iomem *reg, u32 val)
+{
+	writel(val, reg);
+}
+
+static unsigned long clk_fd_v2_recalc_rate(struct clk_hw *hw,
+					   unsigned long parent_rate)
+{
+	struct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);
+	unsigned long flags = 0;
+	unsigned long m_low, n_low, m_high, n_high, m, n;
+	u32 val_low, val_high;
+	u64 ret;
+
+	if (fd->lock)
+		spin_lock_irqsave(fd->lock, flags);
+	else
+		__acquire(fd->lock);
+
+	val_low = clk_fd_v2_readl(fd, fd->reg);
+	val_high = clk_fd_v2_readl(fd, fd->high_reg);
+
+	if (fd->lock)
+		spin_unlock_irqrestore(fd->lock, flags);
+	else
+		__release(fd->lock);
+
+	m_low = (val_low & fd->mmask) >> fd->mshift;
+	n_low = (val_low & fd->nmask) >> fd->nshift;
+	m_high = (val_high & fd->high_mmask) >> fd->high_mshift;
+	n_high = (val_high & fd->high_nmask) >> fd->high_nshift;
+	m = (m_high << 16) | m_low;
+	n = (n_high << 16) | n_low;
+
+	if (fd->flags & CLK_FRAC_DIVIDER_ZERO_BASED) {
+		m++;
+		n++;
+	}
+
+	if (!n || !m)
+		return parent_rate;
+
+	ret = (u64)parent_rate * m;
+	do_div(ret, n);
+
+	return ret;
+}
+
+static void clk_fractional_divider_general_approximation_v2(struct clk_hw *hw,
+							    unsigned long rate,
+							    unsigned long *parent_rate,
+							    unsigned long *m, unsigned long *n)
+{
+	struct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);
+	unsigned long scale;
+
+	/*
+	 * Get rate closer to *parent_rate to guarantee there is no overflow
+	 * for m and n. In the result it will be the nearest rate left shifted
+	 * by (scale - fd->nwidth) bits.
+	 *
+	 * For the detailed explanation see the top comment in this file.
+	 */
+	scale = fls_long(*parent_rate / rate - 1);
+	if (scale > fd->nwidth)
+		rate <<= scale - fd->nwidth;
+
+	rational_best_approximation(rate, *parent_rate,
+				    GENMASK(fd->mwidth - 1, 0),
+				    GENMASK(fd->nwidth - 1, 0),
+				    m, n);
+}
+
+static int clk_fd_v2_get_divider(struct clk_hw *hw, unsigned long rate,
+				 unsigned long parent_rate,
+				 unsigned long *m, unsigned long *n)
+{
+	struct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);
+	u32 factor;
+
+	rational_best_approximation(rate, parent_rate,
+				    GENMASK(fd->mwidth - 1, 0),
+				    GENMASK(fd->nwidth - 1, 0),
+				    m, n);
+
+	if (fd->flags & CLK_FRAC_DIVIDER_ZERO_BASED) {
+		(*m)--;
+		(*n)--;
+	}
+	/*
+	 * When compensation the fractional divider,
+	 * the [1:0] bits of the numerator register are omitted,
+	 * which will lead to a large deviation in the result.
+	 * Therefore, it is required that the numerator must
+	 * be at least 4.
+	 *
+	 * Note that there are some exceptions here:
+	 * If there is an even frac div, we need to keep the original
+	 * numerator(<4) and denominator. Otherwise, it may cause the
+	 * issue that the duty ratio is not 50%.
+	 */
+	if (*m < 4 && *m != 0) {
+		if (*n % 2 == 0)
+			factor = 1;
+		else
+			factor = DIV_ROUND_UP(4, *m);
+
+		if (*m > GENMASK(fd->mwidth - 1, 0) / factor ||
+		    *n > GENMASK(fd->nwidth - 1, 0) / factor)
+			return -EINVAL;
+
+		*n *= factor;
+		*m *= factor;
+	}
+
+	return 0;
+}
+
+static int clk_fd_v2_determine_rate(struct clk_hw *hw,
+				    struct clk_rate_request *req)
+{
+	struct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);
+	unsigned long m, n;
+	u64 ret;
+
+	if (!req->rate || req->rate >= req->best_parent_rate) {
+		req->rate = req->best_parent_rate;
+		return 0;
+	}
+
+	if (fd->approximation)
+		fd->approximation(hw, req->rate, &req->best_parent_rate, &m, &n);
+	else
+		clk_fractional_divider_general_approximation_v2(hw, req->rate,
+								&req->best_parent_rate,
+								&m, &n);
+
+	ret = (u64)req->best_parent_rate * m;
+	do_div(ret, n);
+	req->rate = ret;
+
+	/* Validate the rounded rate that set_rate() will receive. */
+	return clk_fd_v2_get_divider(hw, req->rate, req->best_parent_rate, &m, &n);
+}
+
+static int clk_fd_v2_set_rate(struct clk_hw *hw, unsigned long rate,
+			      unsigned long parent_rate)
+{
+	struct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);
+	unsigned long flags = 0;
+	unsigned long m, n, m_low, n_low, m_high, n_high;
+	u32 val, val_high;
+	int ret;
+
+	ret = clk_fd_v2_get_divider(hw, rate, parent_rate, &m, &n);
+	if (ret)
+		return ret;
+
+	if (fd->lock)
+		spin_lock_irqsave(fd->lock, flags);
+	else
+		__acquire(fd->lock);
+
+	m_low = m & fd->nmask;
+	n_low = n & fd->nmask;
+	m_high = (m & GENMASK(fd->mwidth - 1, (fd->mwidth - fd->high_mwidth))) >>
+		 (fd->mwidth - fd->high_mwidth);
+	n_high = (n & GENMASK(fd->nwidth - 1, (fd->nwidth - fd->high_nwidth))) >>
+		 (fd->nwidth - fd->high_nwidth);
+
+	val_high = clk_fd_v2_readl(fd, fd->high_reg);
+	val_high &= ~(fd->high_mmask | fd->high_nmask);
+	val_high |= (m_high << fd->high_mshift) | (n_high << fd->high_nshift);
+
+	clk_fd_v2_writel(fd, fd->high_reg, val_high);
+
+	val = clk_fd_v2_readl(fd, fd->reg);
+	val &= ~(fd->mmask | fd->nmask);
+	val |= (m_low << fd->mshift) | (n_low << fd->nshift);
+	clk_fd_v2_writel(fd, fd->reg, val);
+
+	if (fd->lock)
+		spin_unlock_irqrestore(fd->lock, flags);
+	else
+		__release(fd->lock);
+
+	return 0;
+}
+
+static const struct clk_ops clk_fractional_divider_ops_v2 = {
+	.recalc_rate = clk_fd_v2_recalc_rate,
+	.determine_rate = clk_fd_v2_determine_rate,
+	.set_rate = clk_fd_v2_set_rate,
+};
+
+static struct clk_hw *clk_hw_register_fractional_divider_v2(struct device *dev,
+							    const char *name,
+							    const char *parent_name,
+							    unsigned long flags,
+							    void __iomem *reg,
+							    u8 mshift, u8 mwidth,
+							    u8 nshift, u8 nwidth,
+							    void __iomem *high_reg,
+							    u8 high_mshift, u8 high_mwidth,
+							    u8 high_nshift, u8 high_nwidth,
+							    u8 clk_divider_flags,
+							    spinlock_t *lock)
+{
+	struct clk_fractional_divider_v2 *fd;
+	struct clk_init_data init;
+	struct clk_hw *hw;
+	int ret;
+
+	fd = kzalloc_obj(*fd);
+	if (!fd)
+		return ERR_PTR(-ENOMEM);
+
+	init.name = name;
+	init.ops = &clk_fractional_divider_ops_v2;
+	init.flags = flags;
+	init.parent_names = parent_name ? &parent_name : NULL;
+	init.num_parents = parent_name ? 1 : 0;
+
+	fd->reg = reg;
+	fd->mshift = mshift;
+	fd->mwidth = mwidth + high_mwidth;
+	fd->mmask = GENMASK(mwidth - 1, 0) << mshift;
+	fd->nshift = nshift;
+	fd->nwidth = nwidth + high_nwidth;
+	fd->nmask = GENMASK(nwidth - 1, 0) << nshift;
+	fd->high_reg = high_reg;
+	fd->high_mshift = high_mshift;
+	fd->high_mwidth = high_mwidth;
+	fd->high_mmask = GENMASK(high_mwidth - 1, 0) << high_mshift;
+	fd->high_nshift = high_nshift;
+	fd->high_nwidth = high_nwidth;
+	fd->high_nmask = GENMASK(high_nwidth - 1, 0) << high_nshift;
+	fd->flags = clk_divider_flags;
+	fd->lock = lock;
+	fd->hw.init = &init;
+
+	hw = &fd->hw;
+	ret = clk_hw_register(dev, hw);
+	if (ret) {
+		kfree(fd);
+		hw = ERR_PTR(ret);
+	}
+
+	return hw;
+}
+
+struct clk *rockchip_clk_register_frac_v2(struct device *dev,
+					  const char *name,
+					  const char *parent_name,
+					  unsigned long flags,
+					  void __iomem *reg,
+					  u8 mshift, u8 width,
+					  void __iomem *high_reg,
+					  u8 high_mshift, u8 high_width,
+					  u8 clk_divider_flags,
+					  spinlock_t *lock)
+{
+	struct clk_hw *hw;
+
+	hw = clk_hw_register_fractional_divider_v2(dev, name, parent_name, flags,
+						   reg, mshift, width, 0, width,
+						   high_reg, high_mshift, high_width,
+						   0, high_width,
+						   clk_divider_flags,
+						   lock);
+	if (IS_ERR(hw))
+		return ERR_CAST(hw);
+	return hw->clk;
+}
diff --git a/drivers/clk/rockchip/clk-rk3572.c b/drivers/clk/rockchip/clk-rk3572.c
new file mode 100644
index 00000000000000..487459615db219
--- /dev/null
+++ b/drivers/clk/rockchip/clk-rk3572.c
@@ -0,0 +1,1981 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
+ * Author: Elaine Zhang <zhangqing@rock-chips.com>
+ */
+
+#include <linux/clk-provider.h>
+#include <linux/mfd/syscon.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/slab.h>
+#include <dt-bindings/clock/rockchip,rk3572-cru.h>
+#include "clk.h"
+
+#define RK3572_FRACDIV_HIGH_AUDIO_0	0xcd4
+#define RK3572_FRACDIV_HIGH_AUDIO_1	0xcd8
+#define RK3572_FRACDIV_HIGH_AUDIO_2	0xcdc
+
+#define RK3572_GRF_SOC_STATUS0		0x600
+#define RK3572_PMU0_GRF_OSC_CON6	0x18
+
+enum rk3572_plls {
+	bpll, lpll, vpll, aupll, cpll, gpll, ppll,
+};
+
+static struct rockchip_pll_rate_table rk3572_pll_rates[] = {
+	/* _mhz, _p, _m, _s, _k */
+	RK3588_PLL_RATE(2520000000, 2, 210, 0, 0),
+	RK3588_PLL_RATE(2496000000, 2, 208, 0, 0),
+	RK3588_PLL_RATE(2472000000, 2, 206, 0, 0),
+	RK3588_PLL_RATE(2448000000, 2, 204, 0, 0),
+	RK3588_PLL_RATE(2424000000, 2, 202, 0, 0),
+	RK3588_PLL_RATE(2400000000, 2, 200, 0, 0),
+	RK3588_PLL_RATE(2376000000, 2, 198, 0, 0),
+	RK3588_PLL_RATE(2352000000, 2, 196, 0, 0),
+	RK3588_PLL_RATE(2328000000, 2, 194, 0, 0),
+	RK3588_PLL_RATE(2304000000, 2, 192, 0, 0),
+	RK3588_PLL_RATE(2280000000, 2, 190, 0, 0),
+	RK3588_PLL_RATE(2256000000, 2, 376, 1, 0),
+	RK3588_PLL_RATE(2232000000, 2, 372, 1, 0),
+	RK3588_PLL_RATE(2208000000, 2, 368, 1, 0),
+	RK3588_PLL_RATE(2184000000, 2, 364, 1, 0),
+	RK3588_PLL_RATE(2160000000, 2, 360, 1, 0),
+	RK3588_PLL_RATE(2136000000, 2, 356, 1, 0),
+	RK3588_PLL_RATE(2112000000, 2, 352, 1, 0),
+	RK3588_PLL_RATE(2088000000, 2, 348, 1, 0),
+	RK3588_PLL_RATE(2064000000, 2, 344, 1, 0),
+	RK3588_PLL_RATE(2040000000, 2, 340, 1, 0),
+	RK3588_PLL_RATE(2016000000, 2, 336, 1, 0),
+	RK3588_PLL_RATE(1992000000, 2, 332, 1, 0),
+	RK3588_PLL_RATE(1968000000, 2, 328, 1, 0),
+	RK3588_PLL_RATE(1944000000, 2, 324, 1, 0),
+	RK3588_PLL_RATE(1920000000, 2, 320, 1, 0),
+	RK3588_PLL_RATE(1896000000, 2, 316, 1, 0),
+	RK3588_PLL_RATE(1872000000, 2, 312, 1, 0),
+	RK3588_PLL_RATE(1848000000, 2, 308, 1, 0),
+	RK3588_PLL_RATE(1824000000, 2, 304, 1, 0),
+	RK3588_PLL_RATE(1800000000, 2, 300, 1, 0),
+	RK3588_PLL_RATE(1776000000, 2, 296, 1, 0),
+	RK3588_PLL_RATE(1752000000, 2, 292, 1, 0),
+	RK3588_PLL_RATE(1728000000, 2, 288, 1, 0),
+	RK3588_PLL_RATE(1704000000, 2, 284, 1, 0),
+	RK3588_PLL_RATE(1680000000, 2, 280, 1, 0),
+	RK3588_PLL_RATE(1656000000, 2, 276, 1, 0),
+	RK3588_PLL_RATE(1632000000, 2, 272, 1, 0),
+	RK3588_PLL_RATE(1608000000, 2, 268, 1, 0),
+	RK3588_PLL_RATE(1584000000, 2, 264, 1, 0),
+	RK3588_PLL_RATE(1560000000, 2, 260, 1, 0),
+	RK3588_PLL_RATE(1536000000, 2, 256, 1, 0),
+	RK3588_PLL_RATE(1512000000, 2, 252, 1, 0),
+	RK3588_PLL_RATE(1488000000, 2, 248, 1, 0),
+	RK3588_PLL_RATE(1464000000, 2, 244, 1, 0),
+	RK3588_PLL_RATE(1440000000, 2, 240, 1, 0),
+	RK3588_PLL_RATE(1416000000, 2, 236, 1, 0),
+	RK3588_PLL_RATE(1392000000, 2, 232, 1, 0),
+	RK3588_PLL_RATE(1320000000, 2, 220, 1, 0),
+	RK3588_PLL_RATE(1200000000, 2, 200, 1, 0),
+	RK3588_PLL_RATE(1188000000, 2, 198, 1, 0),
+	RK3588_PLL_RATE(1186814000, 2, 198, 1, -12955),
+	RK3588_PLL_RATE(1186812000, 2, 198, 1, -12977),
+	RK3588_PLL_RATE(1109000000, 3, 554, 2, 32767),
+	RK3588_PLL_RATE(1100000000, 3, 550, 2, 0),
+	RK3588_PLL_RATE(1051000000, 3, 525, 2, 32767),
+	RK3588_PLL_RATE(1008000000, 2, 336, 2, 0),
+	RK3588_PLL_RATE(1000000000, 3, 500, 2, 0),
+	RK3588_PLL_RATE(983040000, 4, 655, 2, 23592),
+	RK3588_PLL_RATE(955520000, 3, 478, 2, -15730),
+	RK3588_PLL_RATE(903168000, 6, 903, 2, 11009),
+	RK3588_PLL_RATE(900000000, 2, 300, 2, 0),
+	RK3588_PLL_RATE(816000000, 2, 272, 2, 0),
+	RK3588_PLL_RATE(786432000, 2, 262, 2, 9437),
+	RK3588_PLL_RATE(786000000, 1, 131, 2, 0),
+	RK3588_PLL_RATE(785560000, 3, 393, 2, -14419),
+	RK3588_PLL_RATE(773000000, 2, 258, 2, -21846),
+	RK3588_PLL_RATE(722534400, 8, 963, 2, 24850),
+	RK3588_PLL_RATE(697000000, 2, 232, 2, 21845),
+	RK3588_PLL_RATE(610400000, 3, 305, 2, 13107),
+	RK3588_PLL_RATE(604800000, 1, 101, 2, -13108),
+	RK3588_PLL_RATE(600000000, 2, 200, 2, 0),
+	RK3588_PLL_RATE(594000000, 2, 198, 2, 0),
+	RK3588_PLL_RATE(408000000, 2, 272, 3, 0),
+	RK3588_PLL_RATE(312000000, 2, 208, 3, 0),
+	RK3588_PLL_RATE(266580000, 1, 178, 4, -18351),
+	RK3588_PLL_RATE(216000000, 2, 288, 4, 0),
+	RK3588_PLL_RATE(96000000, 2, 256, 5, 0),
+	{ /* sentinel */ },
+};
+
+static struct rockchip_pll_rate_table rk3572_ppll_rates[] = {
+	/* _mhz, _p, _m, _s, _k */
+	RK3588_PLL_RATE(1300000000, 3, 325, 2, 0),
+	{ /* sentinel */ },
+};
+
+static struct rockchip_pll_rate_table rk3572_aupll_rates[] = {
+	RK3588_PLL_RATE(786000000, 1, 131, 2, 0),
+	{ /* sentinel */ },
+};
+
+#define RK3572_ACLK_M_BIGCORE_DIV_MASK		0x1f
+#define RK3572_ACLK_M_BIGCORE_DIV_SHIFT		9
+#define RK3572_PCLK_DBG_BIGCORE_DIV_MASK	0x1f
+#define RK3572_PCLK_DBG_BIGCORE_DIV_SHIFT	10
+#define RK3572_ACLK_M_LITCORE_DIV_MASK		0x1f
+#define RK3572_ACLK_M_LITCORE_DIV_SHIFT		2
+#define RK3572_PCLK_DBG_LITCORE_DIV_MASK	0x1f
+#define RK3572_PCLK_DBG_LITCORE_DIV_SHIFT	7
+#define RK3572_ACLK_CCI_DIV_MASK		0x1f
+#define RK3572_ACLK_CCI_DIV_SHIFT		7
+#define RK3572_ACLK_CCI_MUX_MASK		0x3
+#define RK3572_ACLK_CCI_MUX_SHIFT		12
+
+#define RK3572_BIGCORE_CLKSEL1(_amcore)						\
+{										\
+	.reg = RK3572_BIGCORE_CLKSEL_CON(1),					\
+	.val = HIWORD_UPDATE((_amcore) - 1, RK3572_ACLK_M_BIGCORE_DIV_MASK,	\
+			RK3572_ACLK_M_BIGCORE_DIV_SHIFT),			\
+}
+
+#define RK3572_BIGCORE_CLKSEL2(_pclkdbg)					\
+{										\
+	.reg = RK3572_BIGCORE_CLKSEL_CON(2),					\
+	.val = HIWORD_UPDATE((_pclkdbg) - 1, RK3572_PCLK_DBG_BIGCORE_DIV_MASK,	\
+			RK3572_PCLK_DBG_BIGCORE_DIV_SHIFT),			\
+}
+
+#define RK3572_LITCORE0_CLKSEL1(_amcore, _pclkdbg)				\
+{										\
+	.reg = RK3572_LITCORE0_CLKSEL_CON(1),					\
+	.val = HIWORD_UPDATE((_amcore) - 1, RK3572_ACLK_M_LITCORE_DIV_MASK,	\
+			RK3572_ACLK_M_LITCORE_DIV_SHIFT) |			\
+	       HIWORD_UPDATE((_pclkdbg) - 1, RK3572_PCLK_DBG_LITCORE_DIV_MASK,	\
+			RK3572_PCLK_DBG_LITCORE_DIV_SHIFT),			\
+}
+
+#define RK3572_LITCORE1_CLKSEL1(_amcore, _pclkdbg)				\
+{										\
+	.reg = RK3572_LITCORE1_CLKSEL_CON(1),					\
+	.val = HIWORD_UPDATE((_amcore) - 1, RK3572_ACLK_M_LITCORE_DIV_MASK,	\
+			RK3572_ACLK_M_LITCORE_DIV_SHIFT) |			\
+	       HIWORD_UPDATE((_pclkdbg) - 1, RK3572_PCLK_DBG_LITCORE_DIV_MASK,	\
+			RK3572_PCLK_DBG_LITCORE_DIV_SHIFT),			\
+}
+
+#define RK3572_CCI_CLKSEL3(_ccisel, _div)					\
+{										\
+	.reg = RK3572_CCI_CLKSEL_CON(3),					\
+	.val = HIWORD_UPDATE(_ccisel, RK3572_ACLK_CCI_MUX_MASK,			\
+			RK3572_ACLK_CCI_MUX_SHIFT) |				\
+	       HIWORD_UPDATE((_div) - 1, RK3572_ACLK_CCI_DIV_MASK,		\
+			RK3572_ACLK_CCI_DIV_SHIFT),				\
+}
+
+#define RK3572_CPUBCLK_RATE(_prate, _amcore, _pclkdbg)				\
+{										\
+	.prate = _prate##U,							\
+	.divs = {								\
+		RK3572_BIGCORE_CLKSEL1(_amcore),				\
+		RK3572_BIGCORE_CLKSEL2(_pclkdbg),				\
+	},									\
+}
+
+#define RK3572_CPUL0CLK_RATE(_prate, _amcore, _pclkdbg, _ccisel)		\
+{										\
+	.prate = _prate##U,							\
+	.divs = {								\
+		RK3572_LITCORE0_CLKSEL1(_amcore, _pclkdbg),			\
+	},									\
+	.pre_muxs = {								\
+		RK3572_CCI_CLKSEL3(1, 2),					\
+	},									\
+	.post_muxs = {								\
+		RK3572_CCI_CLKSEL3(_ccisel, 2),					\
+	},									\
+}
+
+#define RK3572_CPUL1CLK_RATE(_prate, _amcore, _pclkdbg)				\
+{										\
+	.prate = _prate##U,							\
+	.divs = {								\
+		RK3572_LITCORE1_CLKSEL1(_amcore, _pclkdbg),			\
+	},									\
+}
+
+static struct rockchip_cpuclk_rate_table rk3572_cpubclk_rates[] __initdata = {
+	RK3572_CPUBCLK_RATE(2496000000, 2, 6),
+	RK3572_CPUBCLK_RATE(2400000000, 2, 6),
+	RK3572_CPUBCLK_RATE(2304000000, 2, 6),
+	RK3572_CPUBCLK_RATE(2208000000, 2, 6),
+	RK3572_CPUBCLK_RATE(2184000000, 2, 6),
+	RK3572_CPUBCLK_RATE(2088000000, 2, 6),
+	RK3572_CPUBCLK_RATE(2040000000, 2, 6),
+	RK3572_CPUBCLK_RATE(2016000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1992000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1896000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1800000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1704000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1608000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1584000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1560000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1536000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1512000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1488000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1464000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1440000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1416000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1392000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1368000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1344000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1320000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1296000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1272000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1248000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1224000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1200000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1104000000, 2, 6),
+	RK3572_CPUBCLK_RATE(1008000000, 2, 6),
+	RK3572_CPUBCLK_RATE(912000000, 2, 6),
+	RK3572_CPUBCLK_RATE(816000000, 2, 6),
+	RK3572_CPUBCLK_RATE(696000000, 2, 6),
+	RK3572_CPUBCLK_RATE(600000000, 2, 6),
+	RK3572_CPUBCLK_RATE(408000000, 2, 6),
+	RK3572_CPUBCLK_RATE(312000000, 2, 6),
+	RK3572_CPUBCLK_RATE(216000000, 2, 6),
+	RK3572_CPUBCLK_RATE(96000000, 2, 6),
+};
+
+static const struct rockchip_cpuclk_reg_data rk3572_cpubclk_data = {
+	.core_reg[0] = RK3572_BIGCORE_CLKSEL_CON(1),
+	.div_core_shift[0] = 0,
+	.div_core_mask[0] = 0x1f,
+	.num_cores = 1,
+	.mux_core_alt = 1,
+	.mux_core_main = 0,
+	.mux_core_shift = 5,
+	.mux_core_mask = 0x3,
+};
+
+static struct rockchip_cpuclk_rate_table rk3572_cpul0clk_rates[] __initdata = {
+	RK3572_CPUL0CLK_RATE(2400000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(2304000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(2208000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(2184000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(2088000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(2040000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(2016000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1992000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1896000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1800000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1704000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1608000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1584000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1560000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1536000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1512000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1488000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1464000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1440000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1416000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1392000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1368000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1344000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1320000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1296000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1272000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1248000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1224000000, 2, 6, 0),
+	RK3572_CPUL0CLK_RATE(1200000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(1104000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(1008000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(912000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(816000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(696000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(600000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(408000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(312000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(216000000, 2, 6, 1),
+	RK3572_CPUL0CLK_RATE(96000000, 2, 6, 1),
+};
+
+static const struct rockchip_cpuclk_reg_data rk3572_cpul0clk_data = {
+	.core_reg[0] = RK3572_LITCORE0_CLKSEL_CON(0),
+	.div_core_shift[0] = 3,
+	.div_core_mask[0] = 0x1f,
+	.num_cores = 1,
+	.mux_core_alt = 1,
+	.mux_core_main = 0,
+	.mux_core_shift = 8,
+	.mux_core_mask = 0x3,
+};
+
+static struct rockchip_cpuclk_rate_table rk3572_cpul1clk_rates[] __initdata = {
+	RK3572_CPUL1CLK_RATE(2400000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(2304000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(2208000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(2184000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(2088000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(2040000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(2016000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1992000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1896000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1800000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1704000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1608000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1584000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1560000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1536000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1512000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1488000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1464000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1440000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1416000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1392000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1368000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1344000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1320000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1296000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1272000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1248000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1224000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1200000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1188000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1104000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(1008000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(912000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(816000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(696000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(600000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(594000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(408000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(396000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(312000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(216000000, 2, 6),
+	RK3572_CPUL1CLK_RATE(96000000, 2, 6),
+};
+
+#define MFLAGS CLK_MUX_HIWORD_MASK
+#define DFLAGS CLK_DIVIDER_HIWORD_MASK
+#define GFLAGS (CLK_GATE_HIWORD_MASK | CLK_GATE_SET_TO_DISABLE)
+
+PNAME(mux_aupll_ref_p)			= { "xin24m", "aupll_ref_io" };
+PNAME(mux_pll_p)			= { "xin24m", "xin32k" };
+PNAME(mux_aupll_p)			= { "aupll_ref", "xin32k" };
+PNAME(mux_24m_32k_p)			= { "xin24m", "clk_32k" };
+PNAME(gpll_cpll_p)			= { "gpll", "cpll" };
+PNAME(gpll_cpll_24m_p)			= { "gpll", "cpll", "xin24m" };
+PNAME(gpll_cpll_aupll_p)		= { "gpll", "cpll", "aupll" };
+PNAME(gpll_cpll_aupll_24m_p)		= { "gpll", "cpll", "aupll", "xin24m" };
+PNAME(gpll_cpll_spll_aupll_p)		= { "gpll", "cpll", "spll", "aupll" };
+PNAME(gpll_spll_aupll_bpll_p)		= { "gpll", "spll", "aupll", "bpll_dummy" };
+PNAME(gpll_cpll_spll_aupll_bpll_p)	= { "gpll", "cpll", "spll", "aupll", "bpll_dummy" };
+PNAME(gpll_cpll_spll_aupll_bpll_24m_p) = {
+	"gpll", "cpll", "spll", "aupll", "bpll_dummy", "xin24m",
+};
+
+PNAME(gpll_cpll_24m_spll_p)		= { "gpll", "cpll", "xin24m", "spll" };
+PNAME(gpll_cpll_bpll_p)			= { "gpll", "cpll", "bpll_dummy" };
+PNAME(gpll_cpll_spll_bpll_p)		= { "gpll", "cpll", "spll", "bpll_dummy" };
+PNAME(gpll_cpll_aupll_spll_p)		= { "gpll", "cpll", "aupll", "spll" };
+PNAME(gpll_cpll_aupll_spll_bpll_p)	= { "gpll", "cpll", "aupll", "spll", "bpll_dummy" };
+PNAME(gpll_cpll_spll_aupll_24m_p)	= { "gpll", "cpll", "spll", "aupll", "xin24m" };
+PNAME(gpll_spll_cpll_bpll_p)		= { "gpll", "spll", "cpll", "bpll_dummy" };
+PNAME(gpll_cpll_vpll_aupll_bpll_24m_p) = {
+	"gpll", "cpll", "vpll", "aupll", "bpll_dummy", "xin24m",
+};
+
+PNAME(gpll_spll_isppvtpll_bpll_p)	= { "gpll", "spll", "clk_isp_pvtpll_src", "bpll_dummy" };
+PNAME(gpll_cpll_vpll_bpll_p)		= { "gpll", "cpll", "vpll", "bpll_dummy" };
+PNAME(gpll_24m_32k_p)			= { "gpll", "xin24m", "clk_32k" };
+PNAME(mux_24m_spll_gpll_cpll_p)		= {"xin24m", "spll", "gpll", "cpll" };
+PNAME(mux_100m_24m_p)			= { "clk_cpll_div10", "xin24m" };
+PNAME(mux_100m_24m_32k_p)		= { "clk_cpll_div10", "xin24m", "clk_32k" };
+PNAME(mux_100m_50m_24m_p)		= { "clk_cpll_div10", "clk_cpll_div20", "xin24m" };
+PNAME(mux_100m_50m_24m_rc_p) = {
+	"clk_cpll_div10", "clk_cpll_div20", "xin24m", "clk_rcosc",
+};
+
+PNAME(mux_150m_100m_50m_24m_p) = {
+	"clk_gpll_div8", "clk_cpll_div10", "clk_cpll_div20", "xin24m",
+};
+
+PNAME(mux_200m_100m_50m_24m_p) = {
+	"clk_gpll_div6", "clk_cpll_div10", "clk_cpll_div20", "xin24m",
+};
+
+PNAME(mux_300m_200m_100m_24m_p) = {
+	"clk_gpll_div4", "clk_gpll_div6", "clk_cpll_div10", "xin24m",
+};
+
+PNAME(mux_300m_200m_100m_50m_24m_p) = {
+	"clk_gpll_div4", "clk_gpll_div6", "clk_cpll_div10", "clk_cpll_div20", "xin24m",
+};
+
+PNAME(mux_400m_200m_100m_24m_p) = {
+	"clk_gpll_div3", "clk_gpll_div6", "clk_cpll_div10", "xin24m",
+};
+
+PNAME(mux_600m_400m_300m_24m_p) = {
+	"clk_gpll_div2", "clk_gpll_div3", "clk_gpll_div4", "xin24m",
+};
+
+PNAME(mux_500m_250m_100m_24m_p) = {
+	"clk_cpll_div2", "clk_cpll_div4", "clk_cpll_div10", "xin24m",
+};
+
+PNAME(mux_175m_116m_58m_24m_p) = {
+	"clk_spll_div4", "clk_spll_div6", "clk_spll_div12", "xin24m",
+};
+
+PNAME(mux_116m_58m_24m_p)		= { "clk_spll_div6", "clk_spll_div12", "xin24m" };
+PNAME(clk_uart_src_p) = {
+	"gpll", "cpll", "aupll", "xin24m", "clk_uart_frac_0", "clk_uart_frac_1",
+	"clk_uart_frac_2",
+};
+
+PNAME(ref_pulse_p) = {
+	"usb0_sof_clk", "usb1_sof_clk", "gmac0_ptp_pps", "gmac1_ptp_pps", "asrc_ref_pulse",
+};
+
+PNAME(lrck_asrc_src_p) = {
+	"asrc_sai0_fs_inter", "asrc_sai1_fs_inter", "asrc_sai2_fs_inter", "asrc_sai3_fs_inter",
+	"asrc_sai4_fs_inter", "asrc_sai5_fs_inter", "asrc_pdm0_clk", "asrc_spdifrx0_clk",
+	"asrc_spdifrx1_clk", "mclk_asrc0_src_0", "mclk_asrc1_src_1",
+};
+
+PNAME(lrck_asrc_dst_p) = {
+	"asrc_sai0_fs_inter", "asrc_sai1_fs_inter", "asrc_sai2_fs_inter", "asrc_sai3_fs_inter",
+	"asrc_sai4_fs_inter", "asrc_sai5_fs_inter", "asrc_pdm0_clk", "asrc_spdiftx0_clk",
+	"asrc_spdiftx1_clk", "asrc_spdiftx2_clk", "mclk_asrc0_src_0", "mclk_asrc1_src_1",
+};
+
+PNAME(asrc_ref_pulse_p) = {
+	"asrc_sai0_fs_inter", "asrc_sai1_fs_inter", "asrc_sai2_fs_inter", "asrc_sai3_fs_inter",
+	"asrc_sai4_fs_inter", "asrc_sai5_fs_inter", "asrc_spdifrx0_clk", "asrc_spdifrx1_clk",
+};
+
+PNAME(clk_freq_pwm1_p) = {
+	"sai0_mclk_in", "sai1_mclk_in", "sai2_mclk_in", "sai3_mclk_in", "sai4_mclk_in",
+	"sai_sclkin_freq",
+};
+
+PNAME(clk_counter_pwm1_p) = {
+	"sai0_mclk_in", "sai1_mclk_in", "sai2_mclk_in", "sai3_mclk_in", "sai4_mclk_in",
+	"sai_sclkin_counter",
+};
+
+PNAME(sai_sclkin_freq_p) = {
+	"sai0_sclk_in", "sai1_sclk_in", "sai2_sclk_in", "sai3_sclk_in", "sai4_sclk_in",
+};
+
+PNAME(clk_timer7_p) = {
+	"clk_cpll_div10", "xin24m", "mclk_asrc0_src_0", "mclk_asrc1_src_1",
+};
+
+PNAME(clk_timer8_p) = {
+	"clk_cpll_div10", "xin24m", "mclk_asrc0_src_0", "mclk_asrc1_src_1",
+};
+
+PNAME(clk_gmac0_ptp_ref_src_p)		= { "clk_gmac0_ptp_ref_pre", "gmac0_ptp_refclk_in" };
+PNAME(clk_gmac1_ptp_ref_p)		= { "clk_gmac1_ptp_ref_src", "gmac1_ptp_refclk_in" };
+PNAME(clk_ref_pciephy_p) = {
+	"clk_pcie_100m_src", "clk_pcie_100m_nduty_src", "xin24m",
+};
+
+PNAME(dclk_ebc_p)			= { "dclk_ebc_int_src", "dclk_ebc_frac_src" };
+PNAME(hclk_vi_root_p) = {
+	"clk_gpll_div6", "clk_cpll_div10", "aclk_vi_root_inter", "xin24m",
+};
+
+PNAME(dclk_vp0_p)			= { "dclk_vp0_src", "clk_hdmiphy_pixel0" };
+PNAME(dclk_vp1_p)			= { "dclk_vp1_src", "clk_hdmiphy_pixel0" };
+PNAME(mux_24m_frac_int_mclk4_p) = {
+	"xin24m", "clk_audio_frac_0", "clk_audio_frac_1", "clk_audio_frac_2",
+	"clk_audio_frac_3", "clk_audio_int_0", "clk_audio_int_1", "clk_audio_int_2",
+	"sai0_mclk_in", "sai1_mclk_in", "sai2_mclk_in", "sai3_mclk_in",
+};
+
+PNAME(mclk_sai4_p)			= { "mclk_sai4_src", "sai4_mclk_in" };
+PNAME(mclk_sai5_p)			= { "mclk_sai5_src", "sai4_mclk_in" };
+PNAME(mclk_spdif_tx2_p)			= { "mclk_spdif_tx2_src", "sai4_mclk_in" };
+PNAME(clk_ref_osc_mphy_p)		= { "xin24m", "clk_ref_mphy_26m" };
+PNAME(clk_pwm0_osc_p)			= { "xin24m", "clk_rcosc" };
+PNAME(sclk_uart1_p)			= { "clk_uart1_src_top", "xin24m", "clk_rcosc" };
+PNAME(clk_pdm0_p)			= { "clk_pdm0_src_top", "xin24m", "clk_rcosc" };
+PNAME(mclk_pdm0_p)			= { "mclk_pdm0_src_top", "xin24m", "clk_rcosc" };
+PNAME(pclk_phpsubsys_root_p)		= { "clk_cpll_div10_phpphy", "xin24m" };
+PNAME(mux_armclkl0_p)			= { "lpll", "gpll", "litcore0pvtpll" };
+PNAME(mux_armclkb_p)			= { "bpll", "gpll", "bigcorepvtpll" };
+PNAME(mux_armclkl1_p)			= { "lpll_dummy", "gpll", "litcore1pvtpll" };
+PNAME(sclk_apb2asb_src_p) = {
+	"spll", "clk_gpll_div2", "clk_cpll_div2", "clk_gpll_div3", "clk_gpll_div4",
+};
+
+PNAME(sclk_apb2asb_p) = {
+	"sclk_apb2asb_src", "clk_gpll_div6", "clk_cpll_div10", "xin24m",
+};
+
+PNAME(mux_24m_frac_int_mclki_p) = {
+	"xin24m", "clk_audio_int_0", "clk_audio_int_1", "clk_audio_int_2", "clk_audio_frac_0",
+	"clk_audio_frac_1", "clk_audio_frac_2", "clk_audio_frac_3", "sai0_mclk_in",
+	"sai1_mclk_in", "sai2_mclk_in", "sai3_mclk_in", "sai4_mclk_in",
+};
+
+PNAME(mux_24m_frac_int_mclki_sclki_p) = {
+	"xin24m", "clk_audio_int_0", "clk_audio_int_1", "clk_audio_int_2", "clk_audio_frac_0",
+	"clk_audio_frac_1", "clk_audio_frac_2", "clk_audio_frac_3", "sai0_mclk_in",
+	"sai1_mclk_in", "sai2_mclk_in", "sai3_mclk_in", "sai4_mclk_in", "sai0_sclk_in",
+	"sai1_sclk_in", "sai2_sclk_in", "sai3_sclk_in", "sai4_sclk_in",
+};
+
+static u32 mux_24m_frac_int_mclki_idx[] = {
+	0, 5, 6, 7, 1, 2, 3, 4, 8, 9, 10, 11, 12,
+};
+
+static u32 mux_24m_frac_int_mclki_sclki_idx[] = {
+	0, 5, 6, 7, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
+};
+
+static struct rockchip_pll_clock rk3572_pll_clks[] __initdata = {
+	/* Keep BPLL and LPLL enabled for firmware consumers. */
+	[bpll] = PLL(pll_rk3588_core, PLL_BPLL, "bpll", mux_pll_p,
+		     CLK_IGNORE_UNUSED, RK3572_PLL_CON(0),
+		     RK3572_MODE_CON1, 0, 15, 0, rk3572_pll_rates),
+	[lpll] = PLL(pll_rk3588_core, PLL_LPLL, "lpll", mux_pll_p,
+		     CLK_IGNORE_UNUSED, RK3572_LPLL_CON(16),
+		     RK3572_LPLL_MODE_CON0, 0, 15, 0, rk3572_pll_rates),
+	[vpll] = PLL(pll_rk3588, PLL_VPLL, "vpll", mux_pll_p,
+		     0, RK3572_PLL_CON(88),
+		     RK3572_MODE_CON0, 4, 15, 0, rk3572_pll_rates),
+	[aupll] = PLL(pll_rk3588, PLL_AUPLL, "aupll", mux_aupll_p,
+		     0, RK3572_PLL_CON(96),
+		     RK3572_MODE_CON0, 6, 15, 0, rk3572_aupll_rates),
+	[cpll] = PLL(pll_rk3588, PLL_CPLL, "cpll", mux_pll_p,
+		     0, RK3572_PLL_CON(104),
+		     RK3572_MODE_CON0, 8, 15, 0, rk3572_pll_rates),
+	[gpll] = PLL(pll_rk3588, PLL_GPLL, "gpll", mux_pll_p,
+		     CLK_IGNORE_UNUSED, RK3572_PLL_CON(112),
+		     RK3572_MODE_CON0, 2, 15, 0, rk3572_pll_rates),
+	[ppll] = PLL(pll_rk3588_ddr, PLL_PPLL, "ppll", mux_pll_p,
+		     0, RK3572_PPLL_CON(128),
+		     RK3572_PPLL_CON(134), 15, 15, 0, rk3572_ppll_rates),
+};
+
+static struct rockchip_clk_branch rk3572_clk_branches[] __initdata = {
+	COMPOSITE_FRACMUX(CLK_32K, "clk_32k", "xin24m", CLK_IS_CRITICAL,
+			  RK3572_PMU_CLKSEL_CON(21), 0,
+			RK3572_PMU_CLKGATE_CON(7), 14, GFLAGS, NULL),
+
+	COMPOSITE(CLK_CPLL_DIV20, "clk_cpll_div20", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(0), 5, 1, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(0), 1, GFLAGS),
+	COMPOSITE(CLK_CPLL_DIV10, "clk_cpll_div10", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(0), 11, 1, MFLAGS, 6, 5, DFLAGS,
+			RK3572_CLKGATE_CON(0), 2, GFLAGS),
+	COMPOSITE(CLK_GPLL_DIV8, "clk_gpll_div8", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(1), 5, 1, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(0), 3, GFLAGS),
+	COMPOSITE(CLK_GPLL_DIV6, "clk_gpll_div6", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(1), 11, 1, MFLAGS, 6, 5, DFLAGS,
+			RK3572_CLKGATE_CON(0), 4, GFLAGS),
+	COMPOSITE(CLK_CPLL_DIV4, "clk_cpll_div4", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(2), 5, 1, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(0), 5, GFLAGS),
+	COMPOSITE(CLK_GPLL_DIV4, "clk_gpll_div4", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(2), 11, 1, MFLAGS, 6, 5, DFLAGS,
+			RK3572_CLKGATE_CON(0), 6, GFLAGS),
+	COMPOSITE(CLK_GPLL_DIV3, "clk_gpll_div3", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(3), 12, 1, MFLAGS, 7, 5, DFLAGS,
+			RK3572_CLKGATE_CON(0), 8, GFLAGS),
+	COMPOSITE(CLK_CPLL_DIV2, "clk_cpll_div2", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(4), 11, 1, MFLAGS, 6, 5, DFLAGS,
+			RK3572_CLKGATE_CON(0), 10, GFLAGS),
+	COMPOSITE(CLK_GPLL_DIV2, "clk_gpll_div2", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(5), 5, 1, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(0), 11, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_SRC, "sclk_apb2asb_src", sclk_apb2asb_src_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(6), 13, 3, MFLAGS,
+			RK3572_CLKGATE_CON(0), 15, GFLAGS),
+	COMPOSITE(CLK_DDRPHY_TOP_SRC, "clk_ddrphy_top_src", gpll_cpll_spll_aupll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(8), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(1), 1, GFLAGS),
+	COMPOSITE_NODIV(PCLK_TOP_ROOT, "pclk_top_root", mux_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(8), 7, 2, MFLAGS,
+			RK3572_CLKGATE_CON(1), 2, GFLAGS),
+	COMPOSITE(ACLK_TOP, "aclk_top", gpll_cpll_spll_aupll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(9), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(1), 4, GFLAGS),
+	COMPOSITE(ACLK_TOP_MID, "aclk_top_mid", gpll_cpll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(10), 5, 1, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(1), 7, GFLAGS),
+	COMPOSITE(ACLK_SECURE_HIGH, "aclk_secure_high", gpll_spll_aupll_bpll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(10), 11, 2, MFLAGS, 6, 5, DFLAGS,
+			RK3572_CLKGATE_CON(1), 8, GFLAGS),
+	COMPOSITE_NOMUX(CLK_BPLL_DIV, "clk_bpll_div", "bpll", 0,
+			RK3572_CLKSEL_CON(11), 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(1), 9, GFLAGS),
+
+	MUX(CLK_AUDIO_FRAC_0_SRC, "clk_audio_frac_0_src", gpll_cpll_aupll_24m_p, 0,
+	    RK3572_CLKSEL_CON(13), 0, 2, MFLAGS),
+	COMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_0, "clk_audio_frac_0", "clk_audio_frac_0_src", 0,
+			  RK3572_CLKSEL_CON(12), 16, 16,
+			  RK3572_FRACDIV_HIGH_AUDIO_0, 8, 8, 0),
+	MUX(CLK_AUDIO_FRAC_1_SRC, "clk_audio_frac_1_src", gpll_cpll_aupll_24m_p, 0,
+	    RK3572_CLKSEL_CON(15), 0, 2, MFLAGS),
+	COMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_1, "clk_audio_frac_1", "clk_audio_frac_1_src", 0,
+			  RK3572_CLKSEL_CON(14), 16, 16,
+			  RK3572_FRACDIV_HIGH_AUDIO_1, 8, 8, 0),
+	MUX(CLK_AUDIO_FRAC_2_SRC, "clk_audio_frac_2_src", gpll_cpll_aupll_24m_p, 0,
+	    RK3572_CLKSEL_CON(17), 0, 2, MFLAGS),
+	COMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_2, "clk_audio_frac_2", "clk_audio_frac_2_src", 0,
+			  RK3572_CLKSEL_CON(16), 16, 16,
+			  RK3572_FRACDIV_HIGH_AUDIO_2, 8, 8, 0),
+	MUX(CLK_AUDIO_FRAC_3_SRC, "clk_audio_frac_3_src", gpll_cpll_aupll_24m_p, 0,
+	    RK3572_CLKSEL_CON(19), 0, 2, MFLAGS),
+	COMPOSITE_FRAC(CLK_AUDIO_FRAC_3, "clk_audio_frac_3", "clk_audio_frac_3_src", 0,
+		       RK3572_CLKSEL_CON(18), 0,
+			RK3572_CLKGATE_CON(1), 14, GFLAGS),
+	COMPOSITE_NODIV(HCLK_TOP, "hclk_top", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(19), 2, 2, MFLAGS,
+			RK3572_CLKGATE_CON(1), 15, GFLAGS),
+	MUX(CLK_UART_FRAC_0_SRC, "clk_uart_frac_0_src", gpll_cpll_aupll_24m_p, 0,
+	    RK3572_CLKSEL_CON(23), 0, 2, MFLAGS),
+	COMPOSITE_FRAC(CLK_UART_FRAC_0, "clk_uart_frac_0", "clk_uart_frac_0_src", 0,
+		       RK3572_CLKSEL_CON(22), 0,
+			RK3572_CLKGATE_CON(2), 6, GFLAGS),
+	MUX(CLK_UART_FRAC_1_SRC, "clk_uart_frac_1_src", gpll_cpll_aupll_24m_p, 0,
+	    RK3572_CLKSEL_CON(25), 0, 2, MFLAGS),
+	COMPOSITE_FRAC(CLK_UART_FRAC_1, "clk_uart_frac_1", "clk_uart_frac_1_src", 0,
+		       RK3572_CLKSEL_CON(24), 0,
+			RK3572_CLKGATE_CON(2), 7, GFLAGS),
+	MUX(CLK_UART_FRAC_2_SRC, "clk_uart_frac_2_src", gpll_cpll_aupll_24m_p, 0,
+	    RK3572_CLKSEL_CON(27), 0, 2, MFLAGS),
+	COMPOSITE_FRAC(CLK_UART_FRAC_2, "clk_uart_frac_2", "clk_uart_frac_2_src", 0,
+		       RK3572_CLKSEL_CON(26), 0,
+			RK3572_CLKGATE_CON(2), 8, GFLAGS),
+	COMPOSITE(CLK_UART1_SRC_TOP, "clk_uart1_src_top", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(29), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(2), 14, GFLAGS),
+	COMPOSITE_NOMUX(CLK_AUDIO_INT_0, "clk_audio_int_0", "aupll", 0,
+			RK3572_CLKSEL_CON(29), 11, 5, DFLAGS,
+			RK3572_CLKGATE_CON(2), 15, GFLAGS),
+	COMPOSITE_NOMUX(CLK_AUDIO_INT_1, "clk_audio_int_1", "aupll", 0,
+			RK3572_CLKSEL_CON(30), 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(3), 0, GFLAGS),
+	COMPOSITE_NOMUX(CLK_AUDIO_INT_2, "clk_audio_int_2", "aupll", 0,
+			RK3572_CLKSEL_CON(30), 5, 5, DFLAGS,
+			RK3572_CLKGATE_CON(3), 1, GFLAGS),
+	COMPOSITE_MUXTBL(CLK_PDM0_SRC_TOP, "clk_pdm0_src_top",
+			 mux_24m_frac_int_mclki_p, 0,
+			 RK3572_CLKSEL_CON(31), 9, 4, MFLAGS,
+			 mux_24m_frac_int_mclki_idx, 0, 9, DFLAGS,
+			 RK3572_CLKGATE_CON(3), 3, GFLAGS),
+	COMPOSITE_NOMUX(CLK_GMAC0_125M_SRC, "clk_gmac0_125m_src", "cpll", 0,
+			RK3572_CLKSEL_CON(33), 10, 5, DFLAGS,
+			RK3572_CLKGATE_CON(3), 7, GFLAGS),
+	COMPOSITE_NOMUX(CLK_GMAC1_125M_SRC, "clk_gmac1_125m_src", "cpll", 0,
+			RK3572_CLKSEL_CON(34), 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(3), 8, GFLAGS),
+	COMPOSITE_MUXTBL(MCLK_ASRC0_SRC_0, "mclk_asrc0_src_0",
+			 mux_24m_frac_int_mclki_sclki_p, 0,
+			 RK3572_CLKSEL_CON(34), 10, 5, MFLAGS,
+			 mux_24m_frac_int_mclki_sclki_idx, 5, 5, DFLAGS,
+			 RK3572_CLKGATE_CON(3), 11, GFLAGS),
+	COMPOSITE_MUXTBL(MCLK_ASRC1_SRC_1, "mclk_asrc1_src_1",
+			 mux_24m_frac_int_mclki_sclki_p, 0,
+			 RK3572_CLKSEL_CON(35), 5, 5, MFLAGS,
+			 mux_24m_frac_int_mclki_sclki_idx, 0, 5, DFLAGS,
+			 RK3572_CLKGATE_CON(3), 12, GFLAGS),
+	COMPOSITE(REF_CLK0_OUT_PLL, "ref_clk0_out_pll", gpll_cpll_spll_aupll_bpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(38), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(4), 2, GFLAGS),
+	COMPOSITE(REF_CLK1_OUT_PLL, "ref_clk1_out_pll", gpll_cpll_spll_aupll_bpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(39), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(4), 3, GFLAGS),
+	COMPOSITE(REF_CLK2_OUT_PLL, "ref_clk2_out_pll", gpll_cpll_spll_aupll_bpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(40), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(4), 4, GFLAGS),
+	COMPOSITE(REFCLKO25M_GMAC0_OUT, "refclko25m_gmac0_out", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(42), 7, 1, MFLAGS, 0, 7, DFLAGS,
+			RK3572_CLKGATE_CON(5), 6, GFLAGS),
+	COMPOSITE(REFCLKO25M_GMAC1_OUT, "refclko25m_gmac1_out", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(42), 15, 1, MFLAGS, 8, 7, DFLAGS,
+			RK3572_CLKGATE_CON(5), 7, GFLAGS),
+	COMPOSITE(CLK_CIFOUT_OUT, "clk_cifout_out", gpll_cpll_24m_spll_p, 0,
+		  RK3572_CLKSEL_CON(43), 8, 2, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(5), 8, GFLAGS),
+	GATE(CLK_GMAC0_RMII_CRU, "clk_gmac0_rmii_cru", "clk_cpll_div20", 0,
+	     RK3572_CLKGATE_CON(5), 9, GFLAGS),
+	GATE(CLK_GMAC1_RMII_CRU, "clk_gmac1_rmii_cru", "clk_cpll_div20", 0,
+	     RK3572_CLKGATE_CON(5), 10, GFLAGS),
+	GATE(CLK_OTPC_AUTO_RD_G, "clk_otpc_auto_rd_g", "xin24m", 0,
+	     RK3572_CLKGATE_CON(5), 11, GFLAGS),
+	COMPOSITE(CAM_CLK0_OUT_IOUT, "cam_clk0_out_iout", mux_24m_spll_gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(44), 8, 2, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(5), 15, GFLAGS),
+	COMPOSITE(CAM_CLK1_OUT_IOUT, "cam_clk1_out_iout", mux_24m_spll_gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(45), 8, 2, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(6), 0, GFLAGS),
+	COMPOSITE(CAM_CLK2_OUT_IOUT, "cam_clk2_out_iout", mux_24m_spll_gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(46), 8, 2, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(6), 1, GFLAGS),
+	COMPOSITE_MUXTBL(MCLK_PDM0_SRC_TOP, "mclk_pdm0_src_top",
+			 mux_24m_frac_int_mclki_p, 0,
+			 RK3572_CLKSEL_CON(47), 9, 4, MFLAGS,
+			 mux_24m_frac_int_mclki_idx, 0, 9, DFLAGS,
+			 RK3572_CLKGATE_CON(6), 10, GFLAGS),
+	COMPOSITE_NODIV(HCLK_AUDIO_ROOT, "hclk_audio_root", mux_200m_100m_50m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(49), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(7), 1, GFLAGS),
+	GATE(HCLK_ASRC_2CH_0, "hclk_asrc_2ch_0", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(7), 3, GFLAGS),
+	GATE(HCLK_ASRC_2CH_1, "hclk_asrc_2ch_1", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(7), 4, GFLAGS),
+	COMPOSITE(CLK_ASRC_2CH_0, "clk_asrc_2ch_0", gpll_cpll_aupll_p, 0,
+		  RK3572_CLKSEL_CON(49), 7, 2, MFLAGS, 2, 5, DFLAGS,
+			RK3572_CLKGATE_CON(7), 7, GFLAGS),
+	COMPOSITE(CLK_ASRC_2CH_1, "clk_asrc_2ch_1", gpll_cpll_aupll_p, 0,
+		  RK3572_CLKSEL_CON(49), 14, 2, MFLAGS, 9, 5, DFLAGS,
+			RK3572_CLKGATE_CON(7), 8, GFLAGS),
+	COMPOSITE_MUXTBL(MCLK_SAI0, "mclk_sai0", mux_24m_frac_int_mclki_p, 0,
+			 RK3572_CLKSEL_CON(51), 11, 4, MFLAGS,
+			 mux_24m_frac_int_mclki_idx, 3, 8, DFLAGS,
+			 RK3572_CLKGATE_CON(7), 12, GFLAGS),
+	GATE(HCLK_SAI0, "hclk_sai0", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(7), 13, GFLAGS),
+	GATE(HCLK_SPDIF_RX0, "hclk_spdif_rx0", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(7), 14, GFLAGS),
+	COMPOSITE(MCLK_SPDIF_RX0, "mclk_spdif_rx0", gpll_cpll_aupll_p, 0,
+		  RK3572_CLKSEL_CON(52), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(7), 15, GFLAGS),
+	COMPOSITE_MUXTBL(MCLK_SAI1, "mclk_sai1", mux_24m_frac_int_mclki_p, 0,
+			 RK3572_CLKSEL_CON(54), 8, 4, MFLAGS,
+			 mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,
+			 RK3572_CLKGATE_CON(8), 5, GFLAGS),
+	GATE(HCLK_SAI1, "hclk_sai1", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(8), 6, GFLAGS),
+	COMPOSITE_MUXTBL(MCLK_SAI2, "mclk_sai2", mux_24m_frac_int_mclki_p, 0,
+			 RK3572_CLKSEL_CON(56), 8, 4, MFLAGS,
+			 mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,
+			 RK3572_CLKGATE_CON(8), 8, GFLAGS),
+	GATE(HCLK_SAI2, "hclk_sai2", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(8), 10, GFLAGS),
+	COMPOSITE_MUXTBL(MCLK_SAI3, "mclk_sai3", mux_24m_frac_int_mclki_p, 0,
+			 RK3572_CLKSEL_CON(58), 8, 4, MFLAGS,
+			 mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,
+			 RK3572_CLKGATE_CON(8), 12, GFLAGS),
+	GATE(HCLK_SAI3, "hclk_sai3", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(8), 14, GFLAGS),
+	GATE(CLK_SAI1_MCLKOUT, "clk_sai1_mclkout", "mclk_sai1", 0,
+	     RK3572_CLKGATE_CON(4), 10, GFLAGS),
+	GATE(CLK_SAI2_MCLKOUT, "clk_sai2_mclkout", "mclk_sai2", 0,
+	     RK3572_CLKGATE_CON(4), 11, GFLAGS),
+	GATE(CLK_SAI3_MCLKOUT, "clk_sai3_mclkout", "mclk_sai3", 0,
+	     RK3572_CLKGATE_CON(4), 12, GFLAGS),
+	GATE(CLK_SAI0_MCLKOUT, "clk_sai0_mclkout", "mclk_sai0", 0,
+	     RK3572_CLKGATE_CON(4), 14, GFLAGS),
+	GATE(HCLK_ACDCDIG_DSM, "hclk_acdcdig_dsm", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(8), 15, GFLAGS),
+	GATE(MCLK_ACDCDIG_DSM, "mclk_acdcdig_dsm", "mclk_sai3", 0,
+	     RK3572_CLKGATE_CON(9), 0, GFLAGS),
+	COMPOSITE_NODIV(PCLK_AUDIO_ROOT, "pclk_audio_root", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(60), 12, 2, MFLAGS,
+			RK3572_CLKGATE_CON(9), 3, GFLAGS),
+	GATE(HCLK_SPDIF_TX0, "hclk_spdif_tx0", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(9), 6, GFLAGS),
+	COMPOSITE_MUXTBL(MCLK_SPDIF_TX0, "mclk_spdif_tx0",
+			 mux_24m_frac_int_mclki_p, 0,
+			 RK3572_CLKSEL_CON(61), 8, 4, MFLAGS,
+			 mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,
+			 RK3572_CLKGATE_CON(9), 7, GFLAGS),
+	GATE(HCLK_SPDIF_TX1, "hclk_spdif_tx1", "hclk_audio_root", 0,
+	     RK3572_CLKGATE_CON(9), 8, GFLAGS),
+	COMPOSITE_MUXTBL(MCLK_SPDIF_TX1, "mclk_spdif_tx1",
+			 mux_24m_frac_int_mclki_p, 0,
+			 RK3572_CLKSEL_CON(62), 8, 4, MFLAGS,
+			 mux_24m_frac_int_mclki_idx, 0, 8, DFLAGS,
+			 RK3572_CLKGATE_CON(9), 9, GFLAGS),
+	COMPOSITE_NODIV(HCLK_BUS_ROOT, "hclk_bus_root", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(64), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(11), 0, GFLAGS),
+	COMPOSITE_NODIV(PCLK_BUS_ROOT, "pclk_bus_root", mux_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(64), 2, 2, MFLAGS,
+			RK3572_CLKGATE_CON(11), 1, GFLAGS),
+	COMPOSITE(ACLK_BUS_ROOT, "aclk_bus_root", gpll_cpll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(64), 9, 1, MFLAGS, 4, 5, DFLAGS,
+			RK3572_CLKGATE_CON(11), 2, GFLAGS),
+	GATE(HCLK_CAN0, "hclk_can0", "hclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(11), 7, GFLAGS),
+	COMPOSITE(CLK_CAN0, "clk_can0", gpll_cpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(65), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(11), 8, GFLAGS),
+	GATE(HCLK_CAN1, "hclk_can1", "hclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(11), 9, GFLAGS),
+	COMPOSITE(CLK_CAN1, "clk_can1", gpll_cpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(65), 12, 2, MFLAGS, 7, 5, DFLAGS,
+			RK3572_CLKGATE_CON(11), 10, GFLAGS),
+	GATE(HCLK_CAN2, "hclk_can2", "hclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(11), 11, GFLAGS),
+	COMPOSITE(CLK_CAN2, "clk_can2", gpll_cpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(66), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(11), 12, GFLAGS),
+	GATE(HCLK_CAN3, "hclk_can3", "hclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(11), 13, GFLAGS),
+	COMPOSITE(CLK_CAN3, "clk_can3", gpll_cpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(66), 12, 2, MFLAGS, 7, 5, DFLAGS,
+			RK3572_CLKGATE_CON(11), 14, GFLAGS),
+	COMPOSITE(ACLK_DECOM_ROOT, "aclk_decom_root", gpll_cpll_spll_bpll_p, 0,
+		  RK3572_CLKSEL_CON(67), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(11), 15, GFLAGS),
+	GATE(PCLK_I2C1, "pclk_i2c1", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 5, GFLAGS),
+	GATE(PCLK_I2C2, "pclk_i2c2", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 6, GFLAGS),
+	GATE(PCLK_I2C3, "pclk_i2c3", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 7, GFLAGS),
+	GATE(PCLK_I2C4, "pclk_i2c4", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 8, GFLAGS),
+	GATE(PCLK_I2C5, "pclk_i2c5", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 9, GFLAGS),
+	GATE(PCLK_I2C6, "pclk_i2c6", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 10, GFLAGS),
+	GATE(PCLK_I2C7, "pclk_i2c7", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 11, GFLAGS),
+	GATE(PCLK_I2C8, "pclk_i2c8", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 12, GFLAGS),
+	GATE(PCLK_I2C9, "pclk_i2c9", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 13, GFLAGS),
+	GATE(PCLK_WDT_BUSMCU, "pclk_wdt_busmcu", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(12), 14, GFLAGS),
+	GATE(TCLK_WDT_BUSMCU, "tclk_wdt_busmcu", "xin24m", 0,
+	     RK3572_CLKGATE_CON(12), 15, GFLAGS),
+	GATE(ACLK_GIC, "aclk_gic", "aclk_bus_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(13), 0, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C1, "clk_i2c1", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(67), 7, 2, MFLAGS,
+			RK3572_CLKGATE_CON(13), 5, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C2, "clk_i2c2", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(67), 9, 2, MFLAGS,
+			RK3572_CLKGATE_CON(13), 6, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C3, "clk_i2c3", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(67), 11, 2, MFLAGS,
+			RK3572_CLKGATE_CON(13), 7, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C4, "clk_i2c4", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(67), 13, 2, MFLAGS,
+			RK3572_CLKGATE_CON(13), 8, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C5, "clk_i2c5", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(68), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(13), 9, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C6, "clk_i2c6", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(68), 2, 2, MFLAGS,
+			RK3572_CLKGATE_CON(13), 10, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C7, "clk_i2c7", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(68), 4, 2, MFLAGS,
+			RK3572_CLKGATE_CON(13), 11, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C8, "clk_i2c8", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(68), 6, 2, MFLAGS,
+			RK3572_CLKGATE_CON(13), 12, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C9, "clk_i2c9", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(68), 8, 2, MFLAGS,
+			RK3572_CLKGATE_CON(13), 13, GFLAGS),
+	GATE(PCLK_SARADC, "pclk_saradc", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(13), 15, GFLAGS),
+	COMPOSITE(CLK_SARADC, "clk_saradc", gpll_24m_32k_p, 0,
+		  RK3572_CLKSEL_CON(69), 8, 2, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(14), 0, GFLAGS),
+	GATE(PCLK_TSADC, "pclk_tsadc", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 2, GFLAGS),
+	COMPOSITE_NOMUX(CLK_TSADC, "clk_tsadc", "xin24m", 0,
+			RK3572_CLKSEL_CON(70), 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(14), 3, GFLAGS),
+	GATE(PCLK_UART0, "pclk_uart0", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 4, GFLAGS),
+	GATE(PCLK_UART2, "pclk_uart2", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 5, GFLAGS),
+	GATE(PCLK_UART3, "pclk_uart3", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 6, GFLAGS),
+	GATE(PCLK_UART4, "pclk_uart4", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 7, GFLAGS),
+	GATE(PCLK_UART5, "pclk_uart5", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 8, GFLAGS),
+	GATE(PCLK_UART6, "pclk_uart6", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 9, GFLAGS),
+	GATE(PCLK_UART7, "pclk_uart7", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 10, GFLAGS),
+	GATE(PCLK_UART8, "pclk_uart8", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 11, GFLAGS),
+	GATE(PCLK_UART9, "pclk_uart9", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 12, GFLAGS),
+	GATE(PCLK_UART10, "pclk_uart10", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 13, GFLAGS),
+	GATE(PCLK_UART11, "pclk_uart11", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(14), 14, GFLAGS),
+	COMPOSITE(SCLK_UART0, "sclk_uart0", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(71), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(14), 15, GFLAGS),
+	COMPOSITE(SCLK_UART2, "sclk_uart2", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(72), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(15), 0, GFLAGS),
+	COMPOSITE(SCLK_UART3, "sclk_uart3", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(73), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(15), 3, GFLAGS),
+	COMPOSITE(SCLK_UART4, "sclk_uart4", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(74), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(15), 6, GFLAGS),
+	COMPOSITE(SCLK_UART5, "sclk_uart5", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(75), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(15), 9, GFLAGS),
+	COMPOSITE(SCLK_UART6, "sclk_uart6", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(76), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(15), 12, GFLAGS),
+	COMPOSITE(SCLK_UART7, "sclk_uart7", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(77), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(15), 15, GFLAGS),
+	COMPOSITE(SCLK_UART8, "sclk_uart8", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(78), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(16), 2, GFLAGS),
+	COMPOSITE(SCLK_UART9, "sclk_uart9", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(79), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(16), 3, GFLAGS),
+	COMPOSITE(SCLK_UART10, "sclk_uart10", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(80), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(16), 4, GFLAGS),
+	COMPOSITE(SCLK_UART11, "sclk_uart11", clk_uart_src_p, 0,
+		  RK3572_CLKSEL_CON(81), 8, 3, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(16), 5, GFLAGS),
+	GATE(PCLK_SPI0, "pclk_spi0", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(16), 7, GFLAGS),
+	GATE(PCLK_SPI1, "pclk_spi1", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(16), 8, GFLAGS),
+	GATE(PCLK_SPI2, "pclk_spi2", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(16), 9, GFLAGS),
+	GATE(PCLK_SPI3, "pclk_spi3", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(16), 10, GFLAGS),
+	GATE(PCLK_SPI4, "pclk_spi4", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(16), 11, GFLAGS),
+	COMPOSITE_NODIV(CLK_SPI0, "clk_spi0", mux_300m_200m_100m_24m_p, 0,
+			RK3572_CLKSEL_CON(81), 13, 2, MFLAGS,
+			RK3572_CLKGATE_CON(16), 12, GFLAGS),
+	COMPOSITE_NODIV(CLK_SPI1, "clk_spi1", mux_300m_200m_100m_24m_p, 0,
+			RK3572_CLKSEL_CON(82), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(16), 13, GFLAGS),
+	COMPOSITE_NODIV(CLK_SPI2, "clk_spi2", mux_300m_200m_100m_24m_p, 0,
+			RK3572_CLKSEL_CON(82), 2, 2, MFLAGS,
+			RK3572_CLKGATE_CON(16), 14, GFLAGS),
+	COMPOSITE_NODIV(CLK_SPI3, "clk_spi3", mux_300m_200m_100m_24m_p, 0,
+			RK3572_CLKSEL_CON(82), 4, 2, MFLAGS,
+			RK3572_CLKGATE_CON(16), 15, GFLAGS),
+	COMPOSITE_NODIV(CLK_SPI4, "clk_spi4", mux_300m_200m_100m_24m_p, 0,
+			RK3572_CLKSEL_CON(82), 6, 2, MFLAGS,
+			RK3572_CLKGATE_CON(17), 0, GFLAGS),
+	GATE(PCLK_WDT0, "pclk_wdt0", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(17), 1, GFLAGS),
+	GATE(TCLK_WDT0, "tclk_wdt0", "xin24m", 0,
+	     RK3572_CLKGATE_CON(17), 2, GFLAGS),
+	GATE(PCLK_PWM1, "pclk_pwm1", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(17), 4, GFLAGS),
+	COMPOSITE_NODIV(CLK_PWM1, "clk_pwm1", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(82), 8, 2, MFLAGS,
+			RK3572_CLKGATE_CON(17), 5, GFLAGS),
+	GATE(CLK_OSC_PWM1, "clk_osc_pwm1", "xin24m", 0,
+	     RK3572_CLKGATE_CON(17), 6, GFLAGS),
+	GATE(CLK_RC_PWM1, "clk_rc_pwm1", "clk_rcosc", 0,
+	     RK3572_CLKGATE_CON(17), 7, GFLAGS),
+	GATE(PCLK_PWM2, "pclk_pwm2", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(17), 10, GFLAGS),
+	COMPOSITE_NODIV(CLK_PWM2, "clk_pwm2", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(83), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(17), 11, GFLAGS),
+	GATE(CLK_RC_PWM2, "clk_rc_pwm2", "clk_rcosc", 0,
+	     RK3572_CLKGATE_CON(17), 12, GFLAGS),
+	GATE(CLK_OSC_PWM2, "clk_osc_pwm2", "xin24m", 0,
+	     RK3572_CLKGATE_CON(17), 13, GFLAGS),
+	GATE(PCLK_BUSTIMER0, "pclk_bustimer0", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(18), 4, GFLAGS),
+	GATE(PCLK_BUSTIMER1, "pclk_bustimer1", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(18), 5, GFLAGS),
+	COMPOSITE_NODIV(CLK_TIMER0_ROOT, "clk_timer0_root", mux_100m_24m_p, 0,
+			RK3572_CLKSEL_CON(83), 10, 1, MFLAGS,
+			RK3572_CLKGATE_CON(18), 6, GFLAGS),
+	GATE(CLK_TIMER0, "clk_timer0", "clk_timer0_root", 0,
+	     RK3572_CLKGATE_CON(18), 7, GFLAGS),
+	GATE(CLK_TIMER1, "clk_timer1", "clk_timer0_root", 0,
+	     RK3572_CLKGATE_CON(18), 8, GFLAGS),
+	GATE(CLK_TIMER2, "clk_timer2", "clk_timer0_root", 0,
+	     RK3572_CLKGATE_CON(18), 9, GFLAGS),
+	GATE(CLK_TIMER3, "clk_timer3", "clk_timer0_root", 0,
+	     RK3572_CLKGATE_CON(18), 10, GFLAGS),
+	GATE(CLK_TIMER4, "clk_timer4", "clk_timer0_root", 0,
+	     RK3572_CLKGATE_CON(18), 11, GFLAGS),
+	GATE(CLK_TIMER5, "clk_timer5", "clk_timer0_root", 0,
+	     RK3572_CLKGATE_CON(18), 12, GFLAGS),
+	GATE(PCLK_MAILBOX0, "pclk_mailbox0", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(18), 14, GFLAGS),
+	GATE(PCLK_GPIO1, "pclk_gpio1", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(19), 0, GFLAGS),
+	GATE(DBCLK_GPIO1, "dbclk_gpio1", "xin24m", 0,
+	     RK3572_CLKGATE_CON(19), 1, GFLAGS),
+	GATE(PCLK_GPIO2, "pclk_gpio2", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(19), 2, GFLAGS),
+	GATE(DBCLK_GPIO2, "dbclk_gpio2", "xin24m", 0,
+	     RK3572_CLKGATE_CON(19), 3, GFLAGS),
+	GATE(PCLK_GPIO3, "pclk_gpio3", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(19), 4, GFLAGS),
+	GATE(DBCLK_GPIO3, "dbclk_gpio3", "xin24m", 0,
+	     RK3572_CLKGATE_CON(19), 5, GFLAGS),
+	GATE(PCLK_GPIO4, "pclk_gpio4", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(19), 6, GFLAGS),
+	GATE(DBCLK_GPIO4, "dbclk_gpio4", "xin24m", 0,
+	     RK3572_CLKGATE_CON(19), 7, GFLAGS),
+	GATE(ACLK_DECOM, "aclk_decom", "aclk_decom_root", 0,
+	     RK3572_CLKGATE_CON(19), 8, GFLAGS),
+	GATE(PCLK_DECOM, "pclk_decom", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(19), 9, GFLAGS),
+	COMPOSITE(DCLK_DECOM, "dclk_decom", gpll_cpll_spll_bpll_p, 0,
+		  RK3572_CLKSEL_CON(84), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(19), 10, GFLAGS),
+	COMPOSITE_NODIV(CLK_TIMER1_ROOT, "clk_timer1_root", mux_100m_24m_p, 0,
+			RK3572_CLKSEL_CON(84), 7, 1, MFLAGS,
+			RK3572_CLKGATE_CON(19), 11, GFLAGS),
+	GATE(CLK_TIMER6, "clk_timer6", "clk_timer1_root", 0,
+	     RK3572_CLKGATE_CON(19), 12, GFLAGS),
+	COMPOSITE(CLK_TIMER7, "clk_timer7", clk_timer7_p, 0,
+		  RK3572_CLKSEL_CON(84), 13, 2, MFLAGS, 8, 5, DFLAGS,
+			RK3572_CLKGATE_CON(19), 13, GFLAGS),
+	COMPOSITE(CLK_TIMER8, "clk_timer8", clk_timer8_p, 0,
+		  RK3572_CLKSEL_CON(85), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(19), 14, GFLAGS),
+	GATE(CLK_TIMER9, "clk_timer9", "clk_timer1_root", 0,
+	     RK3572_CLKGATE_CON(19), 15, GFLAGS),
+	GATE(CLK_TIMER10, "clk_timer10", "clk_timer1_root", 0,
+	     RK3572_CLKGATE_CON(20), 0, GFLAGS),
+	GATE(CLK_TIMER11, "clk_timer11", "clk_timer1_root", 0,
+	     RK3572_CLKGATE_CON(20), 1, GFLAGS),
+	GATE(ACLK_RKDMA0, "aclk_rkdma0", "aclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 2, GFLAGS),
+	GATE(PCLK_RKDMA0, "pclk_rkdma0", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 3, GFLAGS),
+	GATE(ACLK_RKDMA1, "aclk_rkdma1", "aclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 4, GFLAGS),
+	GATE(PCLK_RKDMA1, "pclk_rkdma1", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 5, GFLAGS),
+	GATE(ACLK_RKDMA2, "aclk_rkdma2", "aclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 6, GFLAGS),
+	GATE(PCLK_RKDMA2, "pclk_rkdma2", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 7, GFLAGS),
+	GATE(ACLK_RKDMA3, "aclk_rkdma3", "aclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 8, GFLAGS),
+	GATE(PCLK_RKDMA3, "pclk_rkdma3", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 9, GFLAGS),
+	GATE(PCLK_SPINLOCK, "pclk_spinlock", "pclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 10, GFLAGS),
+	COMPOSITE_NODIV(CLK_I3C, "clk_i3c", mux_300m_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(85), 7, 3, MFLAGS,
+			RK3572_CLKGATE_CON(20), 12, GFLAGS),
+	GATE(HCLK_I3C, "hclk_i3c", "hclk_bus_root", 0,
+	     RK3572_CLKGATE_CON(20), 13, GFLAGS),
+	COMPOSITE_NODIV(CLK_BUSMCU_ROOT, "clk_busmcu_root", mux_400m_200m_100m_24m_p, 0,
+			RK3572_CLKSEL_CON(85), 13, 2, MFLAGS,
+			RK3572_CLKGATE_CON(21), 0, GFLAGS),
+	GATE(CLK_BUSMCU_CORE_AON, "clk_busmcu_core_aon", "clk_busmcu_root", 0,
+	     RK3572_CLKGATE_CON(21), 2, GFLAGS),
+	COMPOSITE_NOMUX(CLK_MTIME_TOGGLE_A, "clk_mtime_toggle_a", "xin24m", 0,
+			RK3572_CLKSEL_CON(86), 0, 6, DFLAGS,
+			RK3572_CLKGATE_CON(21), 4, GFLAGS),
+	GATE(CLK_DBG_TOGGLE_A, "clk_dbg_toggle_a", "clk_32k", 0,
+	     RK3572_CLKGATE_CON(21), 5, GFLAGS),
+	GATE(CLK_MCU_AXI_INTEGRITY, "clk_mcu_axi_integrity", "clk_busmcu_root", 0,
+	     RK3572_CLKGATE_CON(21), 6, GFLAGS),
+	GATE(PCLK_PMU2, "pclk_pmu2", "pclk_bus_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(21), 7, GFLAGS),
+	GATE(CLK_HDMITXHPD, "clk_hdmitxhpd", "xin24m", 0,
+	     RK3572_CLKGATE_CON(21), 14, GFLAGS),
+	GATE(PCLK_APB2ASB_HDMITX, "pclk_apb2asb_hdmitx", "pclk_bus_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(22), 2, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_HDMITX, "sclk_apb2asb_hdmitx", sclk_apb2asb_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(88), 7, 2, MFLAGS,
+			RK3572_CLKGATE_CON(22), 3, GFLAGS),
+	GATE(PCLK_APB2ASB_MIPICSI, "pclk_apb2asb_mipicsi", "pclk_bus_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(22), 6, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_MIPICSI, "sclk_apb2asb_mipicsi", sclk_apb2asb_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(88), 11, 2, MFLAGS,
+			RK3572_CLKGATE_CON(22), 7, GFLAGS),
+	GATE(PCLK_APB2ASB_VCCIO0_3, "pclk_apb2asb_vccio0_3", "pclk_bus_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(22), 8, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_VCCIO0_3, "sclk_apb2asb_vccio0_3", sclk_apb2asb_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(88), 13, 2, MFLAGS,
+			RK3572_CLKGATE_CON(22), 9, GFLAGS),
+	GATE(PCLK_APB2ASB_VCCIO1_2_4, "pclk_apb2asb_vccio1_2_4", "pclk_bus_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(22), 10, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_VCCIO1_2_4, "sclk_apb2asb_vccio1_2_4", sclk_apb2asb_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(89), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(22), 11, GFLAGS),
+	GATE(PCLK_APB2ASB_VCCIO5_6, "pclk_apb2asb_vccio5_6", "pclk_bus_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(22), 12, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_VCCIO5_6, "sclk_apb2asb_vccio5_6", sclk_apb2asb_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(89), 2, 2, MFLAGS,
+			RK3572_CLKGATE_CON(22), 13, GFLAGS),
+
+	/* pd_ddr */
+	COMPOSITE(PCLK_DDR_ROOT, "pclk_ddr_root", gpll_cpll_24m_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(90), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(23), 0, GFLAGS),
+	COMPOSITE(ACLK_DDR_ROOT, "aclk_ddr_root", gpll_cpll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(90), 12, 1, MFLAGS, 7, 5, DFLAGS,
+			RK3572_CLKGATE_CON(23), 9, GFLAGS),
+	COMPOSITE_NODIV(LCLK_DDRSCH_BIU, "lclk_ddrsch_biu", mux_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(90), 13, 2, MFLAGS,
+			RK3572_CLKGATE_CON(24), 11, GFLAGS),
+	COMPOSITE_NODIV(CLK_DDR_TIMER_ROOT, "clk_ddr_timer_root", mux_100m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(90), 15, 1, MFLAGS,
+			RK3572_CLKGATE_CON(25), 3, GFLAGS),
+	GATE(CLK_DDR_TIMER0, "clk_ddr_timer0", "clk_ddr_timer_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(25), 4, GFLAGS),
+	GATE(CLK_DDR_TIMER1, "clk_ddr_timer1", "clk_ddr_timer_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(25), 5, GFLAGS),
+	GATE(TCLK_DDR_WDT, "tclk_ddr_wdt", "xin24m", 0,
+	     RK3572_CLKGATE_CON(25), 6, GFLAGS),
+	GATE(PCLK_WDT, "pclk_wdt", "pclk_ddr_root", 0,
+	     RK3572_CLKGATE_CON(25), 7, GFLAGS),
+	GATE(PCLK_TIMER, "pclk_timer", "pclk_ddr_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(25), 8, GFLAGS),
+	COMPOSITE_NODIV(CLK_DDRMCU_ROOT, "clk_ddrmcu_root", mux_400m_200m_100m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(91), 6, 2, MFLAGS,
+			RK3572_CLKGATE_CON(26), 15, GFLAGS),
+	GATE(CLK_DDRMCU_CORE_AON, "clk_ddrmcu_core_aon", "clk_ddrmcu_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(27), 1, GFLAGS),
+	COMPOSITE_NOMUX(CLK_MTIME_TOGGLE_A_DDR, "clk_mtime_toggle_a_ddr", "xin24m", 0,
+			RK3572_CLKSEL_CON(91), 8, 6, DFLAGS,
+			RK3572_CLKGATE_CON(27), 3, GFLAGS),
+	GATE(CLK_DBG_TOGGLE_A_DDR, "clk_dbg_toggle_a_ddr", "clk_32k", 0,
+	     RK3572_CLKGATE_CON(27), 4, GFLAGS),
+	GATE(PCLK_DDR_MON, "pclk_ddr_mon", "pclk_ddr_root", 0,
+	     RK3572_CLKGATE_CON(23), 1, GFLAGS),
+
+	/* pd_npu */
+	COMPOSITE(ACLK_RKNN_ROOT, "aclk_rknn_root", gpll_cpll_aupll_spll_p, 0,
+		  RK3572_CLKSEL_CON(95), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(31), 0, GFLAGS),
+	GATE(ACLK_RKNN, "aclk_rknn", "aclk_rknn_root", 0,
+	     RK3572_CLKGATE_CON(31), 2, GFLAGS),
+	COMPOSITE_NODIV(PCLK_RKNN_ROOT, "pclk_rknn_root", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(95), 8, 2, MFLAGS,
+			RK3572_CLKGATE_CON(31), 6, GFLAGS),
+	GATE(CLK_24M_RKNN, "clk_24m_rknn", "xin24m", 0,
+	     RK3572_CLKGATE_CON(31), 11, GFLAGS),
+	COMPOSITE_NODIV(CLK_NPUTIMER_ROOT, "clk_nputimer_root", mux_100m_24m_p, 0,
+			RK3572_CLKSEL_CON(95), 11, 1, MFLAGS,
+			RK3572_CLKGATE_CON(31), 12, GFLAGS),
+	GATE(CLK_NPUTIMER0, "clk_nputimer0", "clk_nputimer_root", 0,
+	     RK3572_CLKGATE_CON(31), 13, GFLAGS),
+	GATE(CLK_NPUTIMER1, "clk_nputimer1", "clk_nputimer_root", 0,
+	     RK3572_CLKGATE_CON(31), 14, GFLAGS),
+	GATE(PCLK_NPU_TIMER, "pclk_npu_timer", "pclk_rknn_root", 0,
+	     RK3572_CLKGATE_CON(31), 15, GFLAGS),
+	GATE(PCLK_NPU_WDT, "pclk_npu_wdt", "pclk_rknn_root", 0,
+	     RK3572_CLKGATE_CON(32), 0, GFLAGS),
+	GATE(TCLK_NPU_WDT, "tclk_npu_wdt", "xin24m", 0,
+	     RK3572_CLKGATE_CON(32), 1, GFLAGS),
+
+	/* pd_php */
+	COMPOSITE_NODIV(PCLK_PHP0_ROOT, "pclk_php0_root", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(97), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(33), 0, GFLAGS),
+	COMPOSITE(ACLK_PHP0_ROOT, "aclk_php0_root", gpll_cpll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(97), 7, 1, MFLAGS, 2, 5, DFLAGS,
+			RK3572_CLKGATE_CON(33), 3, GFLAGS),
+	GATE(PCLK_PCIE1, "pclk_pcie1", "pclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(33), 7, GFLAGS),
+	GATE(CLK_PCIE1_AUX, "clk_pcie1_aux", "xin24m", 0,
+	     RK3572_CLKGATE_CON(33), 8, GFLAGS),
+	GATE(ACLK_PCIE1_MSTR, "aclk_pcie1_mstr", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(33), 9, GFLAGS),
+	GATE(ACLK_PCIE1_SLV, "aclk_pcie1_slv", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(33), 10, GFLAGS),
+	GATE(ACLK_PCIE1_DBI, "aclk_pcie1_dbi", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(33), 11, GFLAGS),
+	GATE(PCLK_PCIE0, "pclk_pcie0", "pclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(34), 3, GFLAGS),
+	GATE(CLK_PCIE0_AUX, "clk_pcie0_aux", "xin24m", 0,
+	     RK3572_CLKGATE_CON(34), 4, GFLAGS),
+	GATE(ACLK_PCIE0_MSTR, "aclk_pcie0_mstr", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(34), 5, GFLAGS),
+	GATE(ACLK_PCIE0_SLV, "aclk_pcie0_slv", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(34), 6, GFLAGS),
+	GATE(ACLK_PCIE0_DBI, "aclk_pcie0_dbi", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(34), 7, GFLAGS),
+	GATE(ACLK_USB3OTG1, "aclk_usb3otg1", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(34), 9, GFLAGS),
+	GATE(CLK_REF_USB3OTG1, "clk_ref_usb3otg1", "xin24m", 0,
+	     RK3572_CLKGATE_CON(34), 10, GFLAGS),
+	GATE(CLK_SUSPEND_USB3OTG1, "clk_suspend_usb3otg1", "xin24m", 0,
+	     RK3572_CLKGATE_CON(34), 11, GFLAGS),
+	GATE(ACLK_GMAC0, "aclk_gmac0", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(34), 12, GFLAGS),
+	GATE(PCLK_GMAC0, "pclk_gmac0", "pclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(34), 13, GFLAGS),
+	COMPOSITE(ACLK_UFS_ROOT, "aclk_ufs_root", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(97), 15, 1, MFLAGS, 10, 5, DFLAGS,
+			RK3572_CLKGATE_CON(34), 14, GFLAGS),
+	GATE(ACLK_USB3OTG0, "aclk_usb3otg0", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(34), 15, GFLAGS),
+	GATE(CLK_REF_USB3OTG0, "clk_ref_usb3otg0", "xin24m", 0,
+	     RK3572_CLKGATE_CON(35), 0, GFLAGS),
+	GATE(CLK_SUSPEND_USB3OTG0, "clk_suspend_usb3otg0", "xin24m", 0,
+	     RK3572_CLKGATE_CON(35), 1, GFLAGS),
+	GATE(ACLK_UFS_SYS, "aclk_ufs_sys", "aclk_ufs_root", 0,
+	     RK3572_CLKGATE_CON(35), 3, GFLAGS),
+	COMPOSITE(CLK_GMAC0_PTP_REF_PRE, "clk_gmac0_ptp_ref_pre", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(98), 5, 1, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(35), 5, GFLAGS),
+	COMPOSITE_NODIV(CLK_GMAC0_PTP_REF_SRC, "clk_gmac0_ptp_ref_src", clk_gmac0_ptp_ref_src_p, 0,
+			RK3572_CLKSEL_CON(98), 6, 1, MFLAGS,
+			RK3572_CLKGATE_CON(35), 7, GFLAGS),
+	COMPOSITE(CLK_RXOOB0, "clk_rxoob0", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(100), 7, 1, MFLAGS, 0, 7, DFLAGS,
+			RK3572_CLKGATE_CON(37), 0, GFLAGS),
+	GATE(CLK_PMALIVE0, "clk_pmalive0", "xin24m", 0,
+	     RK3572_CLKGATE_CON(37), 1, GFLAGS),
+	GATE(ACLK_SATA0, "aclk_sata0", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(37), 2, GFLAGS),
+	COMPOSITE(CLK_RXOOB1, "clk_rxoob1", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(100), 15, 1, MFLAGS, 8, 7, DFLAGS,
+			RK3572_CLKGATE_CON(37), 3, GFLAGS),
+	GATE(CLK_PMALIVE1, "clk_pmalive1", "xin24m", 0,
+	     RK3572_CLKGATE_CON(37), 4, GFLAGS),
+	GATE(ACLK_SATA1, "aclk_sata1", "aclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(37), 5, GFLAGS),
+	COMPOSITE(CLK_EEE_XPCS, "clk_eee_xpcs", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(101), 7, 1, MFLAGS, 0, 7, DFLAGS,
+			RK3572_CLKGATE_CON(37), 6, GFLAGS),
+	GATE(PCLK_XPCS, "pclk_xpcs", "pclk_php0_root", 0,
+	     RK3572_CLKGATE_CON(37), 7, GFLAGS),
+
+	/* pd_nvm */
+	COMPOSITE_NODIV(HCLK_NVM0_ROOT, "hclk_nvm0_root", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(113), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(42), 0, GFLAGS),
+	COMPOSITE(ACLK_NVM0_ROOT, "aclk_nvm0_root", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(113), 7, 1, MFLAGS, 2, 5, DFLAGS,
+			RK3572_CLKGATE_CON(42), 1, GFLAGS),
+	COMPOSITE_NODIV(PCLK_NVM0_ROOT, "pclk_nvm0_root", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(113), 8, 2, MFLAGS,
+			RK3572_CLKGATE_CON(42), 2, GFLAGS),
+	COMPOSITE(CCLK_SRC_EMMC, "cclk_src_emmc", gpll_cpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(114), 6, 2, MFLAGS, 0, 6, DFLAGS,
+			RK3572_CLKGATE_CON(42), 7, GFLAGS),
+	GATE(HCLK_EMMC, "hclk_emmc", "hclk_nvm0_root", 0,
+	     RK3572_CLKGATE_CON(42), 8, GFLAGS),
+	GATE(ACLK_EMMC, "aclk_emmc", "aclk_nvm0_root", 0,
+	     RK3572_CLKGATE_CON(42), 9, GFLAGS),
+	COMPOSITE_NODIV(BCLK_EMMC, "bclk_emmc", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(114), 8, 2, MFLAGS,
+			RK3572_CLKGATE_CON(42), 10, GFLAGS),
+	GATE(TCLK_EMMC, "tclk_emmc", "xin24m", 0,
+	     RK3572_CLKGATE_CON(42), 11, GFLAGS),
+	COMPOSITE(CLK_GMAC1_PTP_REF_SRC, "clk_gmac1_ptp_ref_src", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(114), 15, 1, MFLAGS, 10, 5, DFLAGS,
+			RK3572_CLKGATE_CON(42), 12, GFLAGS),
+	COMPOSITE_NODIV(CLK_GMAC1_PTP_REF, "clk_gmac1_ptp_ref", clk_gmac1_ptp_ref_p, 0,
+			RK3572_CLKSEL_CON(115), 0, 1, MFLAGS,
+			RK3572_CLKGATE_CON(42), 13, GFLAGS),
+	GATE(ACLK_GMAC1, "aclk_gmac1", "aclk_nvm0_root", 0,
+	     RK3572_CLKGATE_CON(42), 14, GFLAGS),
+	GATE(PCLK_GMAC1, "pclk_gmac1", "pclk_nvm0_root", 0,
+	     RK3572_CLKGATE_CON(42), 15, GFLAGS),
+	COMPOSITE(SCLK_FSPI0_X2, "sclk_fspi0_x2", gpll_cpll_spll_aupll_24m_p, 0,
+		  RK3572_CLKSEL_CON(115), 7, 3, MFLAGS, 1, 6, DFLAGS,
+			RK3572_CLKGATE_CON(43), 0, GFLAGS),
+	GATE(HCLK_FSPI0, "hclk_fspi0", "hclk_nvm0_root", 0,
+	     RK3572_CLKGATE_CON(43), 1, GFLAGS),
+	COMPOSITE(CCLK_SRC_SDMMC1, "cclk_src_sdmmc1", gpll_cpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(116), 6, 2, MFLAGS, 0, 6, DFLAGS,
+			RK3572_CLKGATE_CON(43), 2, GFLAGS),
+	GATE(HCLK_SDMMC1, "hclk_sdmmc1", "hclk_nvm0_root", 0,
+	     RK3572_CLKGATE_CON(43), 3, GFLAGS),
+	COMPOSITE(ACLK_DSMC_ROOT, "aclk_dsmc_root", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(118), 5, 1, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(44), 0, GFLAGS),
+	GATE(ACLK_DSMC, "aclk_dsmc", "aclk_dsmc_root", 0,
+	     RK3572_CLKGATE_CON(44), 2, GFLAGS),
+	COMPOSITE_NODIV(HCLK_DSMC_ROOT, "hclk_dsmc_root", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(118), 6, 2, MFLAGS,
+			RK3572_CLKGATE_CON(44), 3, GFLAGS),
+	GATE(HCLK_DSMC, "hclk_dsmc", "hclk_dsmc_root", 0,
+	     RK3572_CLKGATE_CON(44), 5, GFLAGS),
+	COMPOSITE_NODIV(PCLK_DSMC_ROOT, "pclk_dsmc_root", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(118), 8, 2, MFLAGS,
+			RK3572_CLKGATE_CON(44), 6, GFLAGS),
+	GATE(PCLK_DSMC, "pclk_dsmc", "pclk_dsmc_root", 0,
+	     RK3572_CLKGATE_CON(44), 8, GFLAGS),
+	COMPOSITE(CLK_DSMC_SYS, "clk_dsmc_sys", gpll_cpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(119), 8, 2, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(44), 9, GFLAGS),
+	COMPOSITE_NODIV(HCLK_NVM1_ROOT, "hclk_nvm1_root", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(120), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(45), 0, GFLAGS),
+	COMPOSITE_NODIV(PCLK_NVM1_ROOT, "pclk_nvm1_root", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(120), 8, 2, MFLAGS,
+			RK3572_CLKGATE_CON(45), 2, GFLAGS),
+	COMPOSITE(CCLK_SRC_SDMMC0, "cclk_src_sdmmc0", gpll_cpll_24m_p, 0,
+		  RK3572_CLKSEL_CON(121), 6, 2, MFLAGS, 0, 6, DFLAGS,
+			RK3572_CLKGATE_CON(45), 7, GFLAGS),
+	GATE(HCLK_SDMMC0, "hclk_sdmmc0", "hclk_nvm1_root", 0,
+	     RK3572_CLKGATE_CON(45), 8, GFLAGS),
+	COMPOSITE(SCLK_FSPI1_X2, "sclk_fspi1_x2", gpll_cpll_spll_aupll_24m_p, 0,
+		  RK3572_CLKSEL_CON(122), 6, 3, MFLAGS, 0, 6, DFLAGS,
+			RK3572_CLKGATE_CON(45), 11, GFLAGS),
+	GATE(HCLK_FSPI1, "hclk_fspi1", "hclk_nvm1_root", 0,
+	     RK3572_CLKGATE_CON(45), 12, GFLAGS),
+
+	/* pd_phpphy */
+	COMPOSITE_NODIV(PCLK_PHPSUBSYS_ROOT, "pclk_phpsubsys_root", pclk_phpsubsys_root_p,
+			CLK_IS_CRITICAL,
+			RK3572_PHP_CLKSEL_CON(0), 0, 1, MFLAGS,
+			RK3572_PHP_CLKGATE_CON(0), 2, GFLAGS),
+	GATE(PCLK_PCIE2_COMBOPHY0, "pclk_pcie2_combophy0", "pclk_phpsubsys_root", 0,
+	     RK3572_PHP_CLKGATE_CON(0), 4, GFLAGS),
+	GATE(PCLK_PCIE2_COMBOPHY1, "pclk_pcie2_combophy1", "pclk_phpsubsys_root", 0,
+	     RK3572_PHP_CLKGATE_CON(0), 6, GFLAGS),
+	GATE(PCLK_MPHY, "pclk_mphy", "pclk_phpsubsys_root", 0,
+	     RK3572_PHP_CLKGATE_CON(0), 10, GFLAGS),
+	GATE(PCLK_PCIEPHY2, "pclk_pciephy2", "pclk_phpsubsys_root", 0,
+	     RK3572_PHP_CLKGATE_CON(0), 14, GFLAGS),
+	COMPOSITE(SCLK_APB2ASB_USBMPHY_PHPPHY, "sclk_apb2asb_usbmphy_phpphy", sclk_apb2asb_p,
+		  CLK_IS_CRITICAL,
+		  RK3572_PHP_CLKSEL_CON(0), 6, 2, MFLAGS, 1, 5, DFLAGS,
+			RK3572_PHP_CLKGATE_CON(1), 0, GFLAGS),
+	GATE(PCLK_APB2ASB_USBMPHY_PHPPHY, "pclk_apb2asb_usbmphy_phpphy", "pclk_phpsubsys_root",
+	     CLK_IS_CRITICAL,
+	     RK3572_PHP_CLKGATE_CON(1), 1, GFLAGS),
+	FACTOR_GATE(CLK_CPLL_DIV10_PHPPHY, "clk_cpll_div10_phpphy", "clk_gpll_div6",
+		    CLK_IS_CRITICAL, 1, 2,
+		    RK3572_PHP_CLKGATE_CON(1), 2, GFLAGS),
+	GATE(CLK_PHPPHY_REF, "clk_phpphy_ref", "xin24m", 0,
+	     RK3572_PHP_CLKGATE_CON(1), 3, GFLAGS),
+	COMPOSITE_NOMUX(CLK_PCIE_100M_SRC, "clk_pcie_100m_src", "ppll", 0,
+			RK3572_PHP_CLKSEL_CON(2), 0, 5, DFLAGS,
+			RK3572_PHP_CLKGATE_CON(2), 1, GFLAGS),
+	COMPOSITE_NOMUX(CLK_PCIE_100M_NDUTY_SRC, "clk_pcie_100m_nduty_src", "ppll", 0,
+			RK3572_PHP_CLKSEL_CON(2), 5, 5, DFLAGS,
+			RK3572_PHP_CLKGATE_CON(2), 2, GFLAGS),
+	COMPOSITE_NODIV(CLK_REF_PCIEPHY2, "clk_ref_pciephy2", clk_ref_pciephy_p, 0,
+			RK3572_PHP_CLKSEL_CON(2), 10, 2, MFLAGS,
+			RK3572_PHP_CLKGATE_CON(2), 4, GFLAGS),
+	COMPOSITE_NODIV(CLK_REF_PCIE0_INNER_PHY, "clk_ref_pcie0_inner_phy", clk_ref_pciephy_p, 0,
+			RK3572_PHP_CLKSEL_CON(2), 12, 2, MFLAGS,
+			RK3572_PHP_CLKGATE_CON(2), 5, GFLAGS),
+	COMPOSITE_NODIV(CLK_REF_PCIE1_INNER_PHY, "clk_ref_pcie1_inner_phy", clk_ref_pciephy_p, 0,
+			RK3572_PHP_CLKSEL_CON(2), 14, 2, MFLAGS,
+			RK3572_PHP_CLKGATE_CON(2), 8, GFLAGS),
+	COMPOSITE_NOMUX(CLK_REF_MPHY_26M, "clk_ref_mphy_26m", "ppll", 0,
+			RK3572_PHP_CLKSEL_CON(3), 0, 8, DFLAGS,
+			RK3572_PHP_CLKGATE_CON(2), 9, GFLAGS),
+	COMPOSITE_NOMUX(REF_CLK_FROM_PPLL, "ref_clk_from_ppll", "ppll", 0,
+			RK3572_PHP_CLKSEL_CON(3), 8, 8, DFLAGS,
+			RK3572_PHP_CLKGATE_CON(2), 10, GFLAGS),
+
+	/* pd_rkvdec */
+	COMPOSITE_NODIV(HCLK_RKVDEC_ROOT, "hclk_rkvdec_root", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(130), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(50), 0, GFLAGS),
+	GATE(HCLK_RKVDEC, "hclk_rkvdec", "hclk_rkvdec_root", 0,
+	     RK3572_CLKGATE_CON(50), 3, GFLAGS),
+	COMPOSITE(ACLK_RKVDEC_ROOT, "aclk_rkvdec_root", gpll_cpll_spll_bpll_p, 0,
+		  RK3572_CLKSEL_CON(131), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(50), 7, GFLAGS),
+	COMPOSITE(CLK_RKVDEC_HEVC_CA, "clk_rkvdec_hevc_ca", gpll_cpll_bpll_p, 0,
+		  RK3572_CLKSEL_CON(131), 12, 2, MFLAGS, 7, 5, DFLAGS,
+			RK3572_CLKGATE_CON(50), 8, GFLAGS),
+	GATE(CLK_RKVDEC_CORE, "clk_rkvdec_core", "aclk_rkvdec_root", 0,
+	     RK3572_CLKGATE_CON(50), 9, GFLAGS),
+	COMPOSITE_NODIV(PCLK_VDEC_ROOT, "pclk_vdec_root", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(131), 14, 2, MFLAGS,
+			RK3572_CLKGATE_CON(50), 13, GFLAGS),
+
+	/* pd_vo */
+	COMPOSITE_NODIV(PCLK_VOSUBSYS_ROOT, "pclk_vosubsys_root", mux_100m_50m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(135), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(52), 0, GFLAGS),
+	GATE(PCLK_APB2ASB_MIPI_HDMI_SUBVO, "pclk_apb2asb_mipi_hdmi_subvo", "pclk_vosubsys_root",
+	     CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(52), 1, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_MIPI_HDMI_SUBVO, "sclk_apb2asb_mipi_hdmi_subvo",
+			sclk_apb2asb_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(135), 2, 2, MFLAGS,
+			RK3572_CLKGATE_CON(52), 2, GFLAGS),
+	GATE(PCLK_APB2ASB_VCCIO0_3_SUBVO, "pclk_apb2asb_vccio0_3_subvo", "pclk_vosubsys_root",
+	     CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(52), 7, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_VCCIO0_3_SUBVO, "sclk_apb2asb_vccio0_3_subvo",
+			sclk_apb2asb_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(135), 8, 2, MFLAGS,
+			RK3572_CLKGATE_CON(52), 8, GFLAGS),
+	GATE(PCLK_HDPTXPHY, "pclk_hdptxphy", "pclk_vosubsys_root", 0,
+	     RK3572_CLKGATE_CON(52), 9, GFLAGS),
+	GATE(PCLK_MIPI_DPHY0, "pclk_mipi_dphy0", "pclk_vosubsys_root", 0,
+	     RK3572_CLKGATE_CON(52), 11, GFLAGS),
+	GATE(CLK_VOSUBSYS_REF, "clk_vosubsys_ref", "xin24m", 0,
+	     RK3572_CLKGATE_CON(53), 0, GFLAGS),
+	GATE(PCLK_IOC_SUBVO, "pclk_ioc_subvo", "pclk_vosubsys_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(53), 3, GFLAGS),
+
+	/* pd_vi */
+	COMPOSITE_NODIV(PCLK_VISUBSYS_ROOT, "pclk_visubsys_root", mux_100m_50m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(137), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(54), 0, GFLAGS),
+	GATE(PCLK_APB2ASB_VCCIO1_2_4_SUBVI, "pclk_apb2asb_vccio1_2_4_subvi",
+	     "pclk_visubsys_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(54), 1, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_VCCIO1_2_4_SUBVI, "sclk_apb2asb_vccio1_2_4_subvi",
+			sclk_apb2asb_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(137), 2, 2, MFLAGS,
+			RK3572_CLKGATE_CON(54), 2, GFLAGS),
+	GATE(PCLK_APB2ASB_CSIPHY_SUBVI, "pclk_apb2asb_csiphy_subvi", "pclk_visubsys_root",
+	     CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(54), 3, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_CSIPHY_SUBVI, "sclk_apb2asb_csiphy_subvi", sclk_apb2asb_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(137), 4, 2, MFLAGS,
+			RK3572_CLKGATE_CON(54), 4, GFLAGS),
+	GATE(PCLK_CSIPHY0, "pclk_csiphy0", "pclk_visubsys_root", 0,
+	     RK3572_CLKGATE_CON(54), 5, GFLAGS),
+	GATE(PCLK_CSIPHY1, "pclk_csiphy1", "pclk_visubsys_root", 0,
+	     RK3572_CLKGATE_CON(54), 7, GFLAGS),
+	GATE(PCLK_IOC_SUBVI, "pclk_ioc_subvi", "pclk_visubsys_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(54), 9, GFLAGS),
+	GATE(CLK_SDMMC_SWITCH_24M, "clk_sdmmc_switch_24m", "xin24m", 0,
+	     RK3572_CLKGATE_CON(54), 13, GFLAGS),
+
+	COMPOSITE_NODIV(PCLK_DSMCSUBSYS_ROOT, "pclk_dsmcsubsys_root", mux_100m_50m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(139), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(56), 0, GFLAGS),
+	GATE(PCLK_APB2ASB_VCCIO5_6_SUBDSMC, "pclk_apb2asb_vccio5_6_subdsmc",
+	     "pclk_dsmcsubsys_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(56), 3, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_VCCIO5_6_SUBDSMC, "sclk_apb2asb_vccio5_6_subdsmc",
+			sclk_apb2asb_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(139), 9, 2, MFLAGS,
+			RK3572_CLKGATE_CON(56), 4, GFLAGS),
+
+	/* pd_vpu */
+	COMPOSITE(ACLK_IMG_ROOT, "aclk_img_root", gpll_spll_cpll_bpll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(141), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(57), 0, GFLAGS),
+	COMPOSITE_NODIV(ACLK_IMG_MID_ROOT, "aclk_img_mid_root", mux_600m_400m_300m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(141), 7, 2, MFLAGS,
+			RK3572_CLKGATE_CON(57), 1, GFLAGS),
+	COMPOSITE_NODIV(HCLK_IMG_ROOT, "hclk_img_root", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(141), 9, 2, MFLAGS,
+			RK3572_CLKGATE_CON(57), 2, GFLAGS),
+	COMPOSITE(ACLK_JPEG_ROOT, "aclk_jpeg_root", gpll_cpll_aupll_spll_p, 0,
+		  RK3572_CLKSEL_CON(142), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(57), 3, GFLAGS),
+	COMPOSITE_NODIV(ACLK_IMG_LOW_ROOT, "aclk_img_low_root", mux_400m_200m_100m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(142), 7, 2, MFLAGS,
+			RK3572_CLKGATE_CON(57), 4, GFLAGS),
+	COMPOSITE_NODIV(PCLK_IMG_ROOT, "pclk_img_root", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(142), 9, 2, MFLAGS,
+			RK3572_CLKGATE_CON(57), 6, GFLAGS),
+	GATE(HCLK_RGA2E_0, "hclk_rga2e_0", "hclk_img_root", 0,
+	     RK3572_CLKGATE_CON(58), 0, GFLAGS),
+	GATE(ACLK_RGA2E_0, "aclk_rga2e_0", "aclk_img_root", 0,
+	     RK3572_CLKGATE_CON(58), 1, GFLAGS),
+	COMPOSITE(CLK_CORE_RGA2E_0, "clk_core_rga2e_0", gpll_spll_cpll_bpll_p, 0,
+		  RK3572_CLKSEL_CON(143), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(58), 2, GFLAGS),
+	GATE(ACLK_JPEG, "aclk_jpeg", "aclk_jpeg_root", 0,
+	     RK3572_CLKGATE_CON(58), 3, GFLAGS),
+	GATE(HCLK_JPEG, "hclk_jpeg", "hclk_img_root", 0,
+	     RK3572_CLKGATE_CON(58), 4, GFLAGS),
+	GATE(HCLK_VDPP, "hclk_vdpp", "hclk_img_root", 0,
+	     RK3572_CLKGATE_CON(58), 5, GFLAGS),
+	GATE(ACLK_VDPP, "aclk_vdpp", "aclk_img_mid_root", 0,
+	     RK3572_CLKGATE_CON(58), 6, GFLAGS),
+	COMPOSITE(CLK_CORE_VDPP, "clk_core_vdpp", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(143), 12, 1, MFLAGS, 7, 5, DFLAGS,
+			RK3572_CLKGATE_CON(58), 7, GFLAGS),
+	COMPOSITE_NODIV(DCLK_EBC_SRC_TOP, "dclk_ebc_src_top", gpll_cpll_vpll_aupll_bpll_24m_p,
+			CLK_SET_RATE_NO_REPARENT,
+			RK3572_CLKSEL_CON(143), 13, 3, MFLAGS,
+			RK3572_CLKGATE_CON(58), 10, GFLAGS),
+	COMPOSITE_NOMUX(DCLK_EBC_INT_SRC, "dclk_ebc_int_src", "dclk_ebc_src_top",
+			CLK_SET_RATE_PARENT,
+			RK3572_CLKSEL_CON(144), 0, 9, DFLAGS,
+			RK3572_CLKGATE_CON(58), 11, GFLAGS),
+	COMPOSITE_FRACMUX(DCLK_EBC_FRAC_SRC, "dclk_ebc_frac_src", "dclk_ebc_src_top", 0,
+			  RK3572_CLKSEL_CON(145), 0,
+			RK3572_CLKGATE_CON(58), 12, GFLAGS, NULL),
+	GATE(HCLK_EBC, "hclk_ebc", "hclk_img_root", 0,
+	     RK3572_CLKGATE_CON(58), 13, GFLAGS),
+	GATE(ACLK_EBC, "aclk_ebc", "aclk_img_low_root", 0,
+	     RK3572_CLKGATE_CON(58), 14, GFLAGS),
+	COMPOSITE_NODIV(DCLK_EBC, "dclk_ebc", dclk_ebc_p,
+			CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,
+			RK3572_CLKSEL_CON(146), 0, 1, MFLAGS,
+			RK3572_CLKGATE_CON(58), 15, GFLAGS),
+
+	/* pd_venc */
+	COMPOSITE_NODIV(HCLK_RKVENC_ROOT, "hclk_rkvenc_root", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(148), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(60), 0, GFLAGS),
+	COMPOSITE(ACLK_RKVENC_ROOT, "aclk_rkvenc_root", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(148), 7, 1, MFLAGS, 2, 5, DFLAGS,
+			RK3572_CLKGATE_CON(60), 1, GFLAGS),
+	GATE(HCLK_RKVENC, "hclk_rkvenc", "hclk_rkvenc_root", 0,
+	     RK3572_CLKGATE_CON(60), 4, GFLAGS),
+	GATE(ACLK_RKVENC, "aclk_rkvenc", "aclk_rkvenc_root", 0,
+	     RK3572_CLKGATE_CON(60), 5, GFLAGS),
+	COMPOSITE(CLK_RKVENC_CORE, "clk_rkvenc_core", gpll_cpll_spll_bpll_p, 0,
+		  RK3572_CLKSEL_CON(148), 13, 2, MFLAGS, 8, 5, DFLAGS,
+			RK3572_CLKGATE_CON(60), 6, GFLAGS),
+
+	/* pd_vi */
+	COMPOSITE(ACLK_VI_ROOT, "aclk_vi_root", gpll_spll_isppvtpll_bpll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(154), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(63), 0, GFLAGS),
+	COMPOSITE_NODIV(HCLK_VI_ROOT, "hclk_vi_root", hclk_vi_root_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(154), 7, 2, MFLAGS,
+			RK3572_CLKGATE_CON(63), 1, GFLAGS),
+	COMPOSITE_NODIV(PCLK_VI_ROOT, "pclk_vi_root", mux_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(154), 9, 2, MFLAGS,
+			RK3572_CLKGATE_CON(63), 2, GFLAGS),
+	COMPOSITE(DCLK_VICAP, "dclk_vicap", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(155), 5, 1, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(63), 6, GFLAGS),
+	GATE(ACLK_VICAP, "aclk_vicap", "aclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(63), 7, GFLAGS),
+	GATE(HCLK_VICAP, "hclk_vicap", "hclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(63), 8, GFLAGS),
+	COMPOSITE(CLK_ISP_CORE, "clk_isp_core", gpll_spll_isppvtpll_bpll_p, 0,
+		  RK3572_CLKSEL_CON(155), 11, 2, MFLAGS, 6, 5, DFLAGS,
+			RK3572_CLKGATE_CON(63), 9, GFLAGS),
+	GATE(CLK_ISP_CORE_MARVIN, "clk_isp_core_marvin", "clk_isp_core", 0,
+	     RK3572_CLKGATE_CON(63), 10, GFLAGS),
+	GATE(CLK_ISP_CORE_VICAP, "clk_isp_core_vicap", "clk_isp_core", 0,
+	     RK3572_CLKGATE_CON(63), 11, GFLAGS),
+	GATE(ACLK_ISP, "aclk_isp", "aclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(63), 12, GFLAGS),
+	GATE(HCLK_ISP, "hclk_isp", "hclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(63), 13, GFLAGS),
+	GATE(ACLK_VPSS, "aclk_vpss", "aclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(63), 15, GFLAGS),
+	GATE(HCLK_VPSS, "hclk_vpss", "hclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(64), 0, GFLAGS),
+	GATE(CLK_CORE_VPSS, "clk_core_vpss", "clk_isp_core", 0,
+	     RK3572_CLKGATE_CON(64), 1, GFLAGS),
+	GATE(PCLK_CSI_HOST_0, "pclk_csi_host_0", "pclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(64), 4, GFLAGS),
+	GATE(PCLK_CSI_HOST_1, "pclk_csi_host_1", "pclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(64), 5, GFLAGS),
+	GATE(PCLK_CSI_HOST_2, "pclk_csi_host_2", "pclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(64), 6, GFLAGS),
+	GATE(PCLK_CSI_HOST_3, "pclk_csi_host_3", "pclk_vi_root", 0,
+	     RK3572_CLKGATE_CON(64), 7, GFLAGS),
+	GATE(DCLK_VICAP_CSIHOST0, "dclk_vicap_csihost0", "dclk_vicap", 0,
+	     RK3572_CLKGATE_CON(64), 10, GFLAGS),
+	GATE(DCLK_VICAP_CSIHOST1, "dclk_vicap_csihost1", "dclk_vicap", 0,
+	     RK3572_CLKGATE_CON(64), 11, GFLAGS),
+	GATE(DCLK_VICAP_CSIHOST2, "dclk_vicap_csihost2", "dclk_vicap", 0,
+	     RK3572_CLKGATE_CON(64), 12, GFLAGS),
+	GATE(DCLK_VICAP_CSIHOST3, "dclk_vicap_csihost3", "dclk_vicap", 0,
+	     RK3572_CLKGATE_CON(64), 13, GFLAGS),
+	COMPOSITE_NOMUX(ACLK_VI_ROOT_INTER, "aclk_vi_root_inter", "aclk_vi_root", 0,
+			RK3572_CLKSEL_CON(156), 8, 3, DFLAGS,
+			RK3572_CLKGATE_CON(65), 4, GFLAGS),
+
+	/* pd_vop */
+	COMPOSITE(ACLK_VOP_ROOT, "aclk_vop_root", gpll_cpll_aupll_spll_bpll_p, CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(174), 5, 3, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(74), 0, GFLAGS),
+	COMPOSITE_NODIV(HCLK_VOP_ROOT, "hclk_vop_root", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(174), 10, 2, MFLAGS,
+			RK3572_CLKGATE_CON(74), 2, GFLAGS),
+	COMPOSITE_NODIV(PCLK_VOP_ROOT, "pclk_vop_root", mux_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(174), 12, 2, MFLAGS,
+			RK3572_CLKGATE_CON(74), 3, GFLAGS),
+	GATE(HCLK_VOP, "hclk_vop", "hclk_vop_root", 0,
+	     RK3572_CLKGATE_CON(74), 8, GFLAGS),
+	GATE(ACLK_VOP, "aclk_vop", "aclk_vop_root", 0,
+	     RK3572_CLKGATE_CON(74), 9, GFLAGS),
+	COMPOSITE(DCLK_VP0_SRC, "dclk_vp0_src", gpll_cpll_vpll_bpll_p, CLK_SET_RATE_NO_REPARENT,
+		  RK3572_CLKSEL_CON(175), 8, 2, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(74), 10, GFLAGS),
+	COMPOSITE(DCLK_VP1_SRC, "dclk_vp1_src", gpll_cpll_vpll_bpll_p, CLK_SET_RATE_NO_REPARENT,
+		  RK3572_CLKSEL_CON(176), 8, 2, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(74), 11, GFLAGS),
+	COMPOSITE_NODIV(DCLK_VP0, "dclk_vp0", dclk_vp0_p,
+			CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,
+			RK3572_CLKSEL_CON(177), 11, 1, MFLAGS,
+			RK3572_CLKGATE_CON(74), 13, GFLAGS),
+	COMPOSITE_NODIV(DCLK_VP1, "dclk_vp1", dclk_vp1_p,
+			CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT,
+			RK3572_CLKSEL_CON(177), 12, 1, MFLAGS,
+			RK3572_CLKGATE_CON(75), 0, GFLAGS),
+	GATE(PCLK_DSIHOST0, "pclk_dsihost0", "pclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(78), 1, GFLAGS),
+
+	/* pd_vo */
+	COMPOSITE(ACLK_VO_ROOT, "aclk_vo_root", gpll_cpll_bpll_p, 0,
+		  RK3572_CLKSEL_CON(185), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(78), 5, GFLAGS),
+	COMPOSITE_NODIV(HCLK_VO_ROOT, "hclk_vo_root", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(185), 7, 2, MFLAGS,
+			RK3572_CLKGATE_CON(78), 6, GFLAGS),
+	COMPOSITE_NODIV(PCLK_VO_ROOT, "pclk_vo_root", mux_150m_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(185), 11, 2, MFLAGS,
+			RK3572_CLKGATE_CON(78), 8, GFLAGS),
+	GATE(PCLK_HDCP0_TRNG_NS, "pclk_hdcp0_trng_ns", "pclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(79), 0, GFLAGS),
+	GATE(ACLK_HDCP0, "aclk_hdcp0", "aclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(79), 1, GFLAGS),
+	GATE(HCLK_HDCP0, "hclk_hdcp0", "hclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(79), 2, GFLAGS),
+	GATE(PCLK_HDCP0, "pclk_hdcp0", "pclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(79), 3, GFLAGS),
+	GATE(CLK_TRNG0_SKP, "clk_trng0_skp", "aclk_hdcp0", 0,
+	     RK3572_CLKGATE_CON(79), 9, GFLAGS),
+	GATE(PCLK_HDMITX0, "pclk_hdmitx0", "pclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(79), 14, GFLAGS),
+	COMPOSITE(CLK_HDMITX0_EARC, "clk_hdmitx0_earc", gpll_cpll_p, 0,
+		  RK3572_CLKSEL_CON(188), 15, 1, MFLAGS, 10, 5, DFLAGS,
+			RK3572_CLKGATE_CON(79), 15, GFLAGS),
+	GATE(CLK_HDMITX0_REF, "clk_hdmitx0_ref", "aclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(80), 0, GFLAGS),
+	GATE(PCLK_EDP0, "pclk_edp0", "pclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(80), 2, GFLAGS),
+	GATE(CLK_EDP0_24M, "clk_edp0_24m", "xin24m", 0,
+	     RK3572_CLKGATE_CON(80), 3, GFLAGS),
+	COMPOSITE_NODIV(CLK_EDP0_200M, "clk_edp0_200m", mux_200m_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(189), 0, 2, MFLAGS,
+			RK3572_CLKGATE_CON(80), 4, GFLAGS),
+	COMPOSITE(MCLK_SAI4_SRC, "mclk_sai4_src", mux_24m_frac_int_mclk4_p, 0,
+		  RK3572_CLKSEL_CON(189), 10, 4, MFLAGS, 2, 8, DFLAGS,
+			RK3572_CLKGATE_CON(80), 5, GFLAGS),
+	COMPOSITE_NODIV(MCLK_SAI4, "mclk_sai4", mclk_sai4_p, CLK_SET_RATE_PARENT,
+			RK3572_CLKSEL_CON(189), 14, 1, MFLAGS,
+			RK3572_CLKGATE_CON(80), 6, GFLAGS),
+	GATE(HCLK_SAI4, "hclk_sai4", "hclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(80), 7, GFLAGS),
+	COMPOSITE(MCLK_SAI5_SRC, "mclk_sai5_src", mux_24m_frac_int_mclk4_p, 0,
+		  RK3572_CLKSEL_CON(190), 8, 4, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(80), 8, GFLAGS),
+	COMPOSITE_NODIV(MCLK_SAI5, "mclk_sai5", mclk_sai5_p, CLK_SET_RATE_PARENT,
+			RK3572_CLKSEL_CON(190), 12, 1, MFLAGS,
+			RK3572_CLKGATE_CON(80), 9, GFLAGS),
+	GATE(HCLK_SAI5, "hclk_sai5", "hclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(80), 10, GFLAGS),
+	GATE(HCLK_SPDIF_TX2, "hclk_spdif_tx2", "hclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(80), 11, GFLAGS),
+	COMPOSITE(MCLK_SPDIF_TX2_SRC, "mclk_spdif_tx2_src", mux_24m_frac_int_mclk4_p, 0,
+		  RK3572_CLKSEL_CON(191), 8, 4, MFLAGS, 0, 8, DFLAGS,
+			RK3572_CLKGATE_CON(80), 12, GFLAGS),
+	COMPOSITE_NODIV(MCLK_SPDIF_TX2, "mclk_spdif_tx2", mclk_spdif_tx2_p, CLK_SET_RATE_PARENT,
+			RK3572_CLKSEL_CON(191), 12, 1, MFLAGS,
+			RK3572_CLKGATE_CON(80), 13, GFLAGS),
+	GATE(HCLK_SPDIF_RX1, "hclk_spdif_rx1", "hclk_vo_root", 0,
+	     RK3572_CLKGATE_CON(80), 14, GFLAGS),
+	COMPOSITE(MCLK_SPDIF_RX1, "mclk_spdif_rx1", gpll_cpll_aupll_p, 0,
+		  RK3572_CLKSEL_CON(192), 5, 2, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(80), 15, GFLAGS),
+	GATE(CLK_SAI4_MCLKOUT, "clk_sai4_mclkout", "mclk_sai4", 0,
+	     RK3572_CLKGATE_CON(81), 12, GFLAGS),
+
+	/* pd_gpu */
+	COMPOSITE(CLK_GPU_SRC, "clk_gpu_src", gpll_cpll_aupll_spll_bpll_p, 0,
+		  RK3572_CLKSEL_CON(202), 5, 3, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(84), 1, GFLAGS),
+	GATE(CLK_GPU, "clk_gpu", "clk_gpu_src", 0,
+	     RK3572_CLKGATE_CON(84), 3, GFLAGS),
+	COMPOSITE_NOMUX(CLK_GPU_COREGROUP, "clk_gpu_coregroup", "clk_gpu_src", 0,
+			RK3572_CLKSEL_CON(202), 9, 5, DFLAGS,
+			RK3572_CLKGATE_CON(84), 5, GFLAGS),
+	COMPOSITE_NOMUX(CLK_GPU_STACKS, "clk_gpu_stacks", "clk_gpu_src", 0,
+			RK3572_CLKSEL_CON(203), 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(84), 6, GFLAGS),
+	COMPOSITE_NODIV(PCLK_GPU_ROOT, "pclk_gpu_root", mux_100m_50m_24m_p, 0,
+			RK3572_CLKSEL_CON(203), 5, 2, MFLAGS,
+			RK3572_CLKGATE_CON(84), 7, GFLAGS),
+
+	/* pd_center */
+	COMPOSITE(ACLK_CENTER_ROOT, "aclk_center_root", gpll_cpll_spll_aupll_bpll_p,
+		  CLK_IS_CRITICAL,
+		  RK3572_CLKSEL_CON(206), 5, 3, MFLAGS, 0, 5, DFLAGS,
+			RK3572_CLKGATE_CON(86), 0, GFLAGS),
+	COMPOSITE_NODIV(ACLK_CENTER_LOW_ROOT, "aclk_center_low_root", mux_500m_250m_100m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(206), 8, 2, MFLAGS,
+			RK3572_CLKGATE_CON(86), 1, GFLAGS),
+	COMPOSITE_NODIV(HCLK_CENTER_ROOT, "hclk_center_root", mux_200m_100m_50m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(206), 10, 2, MFLAGS,
+			RK3572_CLKGATE_CON(86), 2, GFLAGS),
+	COMPOSITE_NODIV(PCLK_CENTER_ROOT, "pclk_center_root", mux_200m_100m_50m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_CLKSEL_CON(206), 12, 2, MFLAGS,
+			RK3572_CLKGATE_CON(86), 3, GFLAGS),
+	GATE(ACLK_DMA2DDR, "aclk_dma2ddr", "aclk_center_root", 0,
+	     RK3572_CLKGATE_CON(86), 8, GFLAGS),
+	GATE(ACLK_DDR_SHAREMEM, "aclk_ddr_sharemem", "aclk_center_low_root", CLK_IS_CRITICAL,
+	     RK3572_CLKGATE_CON(86), 9, GFLAGS),
+	GATE(PCLK_DMA2DDR, "pclk_dma2ddr", "pclk_center_root", 0,
+	     RK3572_CLKGATE_CON(86), 15, GFLAGS),
+
+	/* pd_secure */
+	COMPOSITE_NODIV(HCLK_SECURE_NS_ROOT, "hclk_secure_ns_root", mux_175m_116m_58m_24m_p,
+			CLK_IS_CRITICAL,
+			RK3572_SECURE_NS_CLKSEL_CON(0), 2, 2, MFLAGS,
+			RK3572_SECURE_NS_CLKGATE_CON(0), 1, GFLAGS),
+	COMPOSITE_NODIV(PCLK_SECURE_NS_ROOT, "pclk_secure_ns_root", mux_116m_58m_24m_p, 0,
+			RK3572_SECURE_NS_CLKSEL_CON(0), 4, 2, MFLAGS,
+			RK3572_SECURE_NS_CLKGATE_CON(0), 2, GFLAGS),
+	GATE(HCLK_CRYPTO_NS, "hclk_crypto_ns", "hclk_secure_ns_root", 0,
+	     RK3572_SECURE_NS_CLKGATE_CON(0), 3, GFLAGS),
+	GATE(HCLK_TRNG_NS, "hclk_trng_ns", "hclk_secure_ns_root", 0,
+	     RK3572_SECURE_NS_CLKGATE_CON(0), 4, GFLAGS),
+	GATE(PCLK_OTPC_NS, "pclk_otpc_ns", "pclk_secure_ns_root", 0,
+	     RK3572_SECURE_NS_CLKGATE_CON(0), 8, GFLAGS),
+	GATE(CLK_OTPC_NS, "clk_otpc_ns", "xin24m", 0,
+	     RK3572_SECURE_NS_CLKGATE_CON(0), 9, GFLAGS),
+	GATE(ACLK_CRYPTO_NS, "aclk_crypto_ns", "clk_spll_div2", 0,
+	     RK3572_NON_SECURE_GATING_CON00, 2, GFLAGS),
+	GATE(CLK_PKA_CRYPTO_NS, "clk_pka_crypto_ns", "clk_spll_div2", 0,
+	     RK3572_NON_SECURE_GATING_CON00, 1, GFLAGS),
+
+	/* pd_pmu */
+	MUX(CLK_REF_OSC_MPHY, "clk_ref_osc_mphy", clk_ref_osc_mphy_p, 0,
+	    RK3572_PMU_CLKSEL_CON(3), 0, 1, MFLAGS),
+	GATE(CLK_REF_UFS_CLKOUT, "clk_ref_ufs_clkout", "clk_ref_osc_mphy", 0,
+	     RK3572_PMU_CLKGATE_CON(2), 5, GFLAGS),
+	COMPOSITE_NODIV(HCLK_PMU1_ROOT, "hclk_pmu1_root", mux_200m_100m_50m_24m_p, CLK_IS_CRITICAL,
+			RK3572_PMU_CLKSEL_CON(4), 0, 2, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(3), 0, GFLAGS),
+	COMPOSITE_NODIV(HCLK_PMU_CM0_ROOT, "hclk_pmu_cm0_root", mux_200m_100m_50m_24m_p, 0,
+			RK3572_PMU_CLKSEL_CON(4), 2, 2, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(3), 1, GFLAGS),
+	COMPOSITE_NODIV(PCLK_PMU0_ROOT, "pclk_pmu0_root", mux_100m_50m_24m_p, 0,
+			RK3572_PMU_CLKSEL_CON(20), 0, 2, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(7), 0, GFLAGS),
+	GATE(PCLK_PMU1_ROOT, "pclk_pmu1_root", "pclk_pmu0_root", 0,
+	     RK3572_PMU_CLKGATE_CON(7), 10, GFLAGS),
+	GATE(PCLK_APB2ASB_PMU1, "pclk_apb2asb_pmu1", "pclk_pmu1_root", CLK_IS_CRITICAL,
+	     RK3572_PMU_CLKGATE_CON(3), 6, GFLAGS),
+	COMPOSITE_NODIV(SCLK_APB2ASB_PMU1, "sclk_apb2asb_pmu1", sclk_apb2asb_p, CLK_IS_CRITICAL,
+			RK3572_PMU_CLKSEL_CON(4), 4, 2, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(3), 7, GFLAGS),
+	GATE(CLK_PMUMCU_CORE_AON, "clk_pmumcu_core_aon", "hclk_pmu_cm0_root", 0,
+	     RK3572_PMU_CLKGATE_CON(3), 13, GFLAGS),
+	COMPOSITE(CLK_MTIME_TOGGLE_A_PMU, "clk_mtime_toggle_a_pmu", mux_24m_32k_p, 0,
+		  RK3572_PMU_CLKSEL_CON(4), 12, 1, MFLAGS, 6, 6, DFLAGS,
+			RK3572_PMU_CLKGATE_CON(3), 15, GFLAGS),
+	GATE(PCLK_PMU1, "pclk_pmu1", "pclk_pmu1_root", CLK_IS_CRITICAL,
+	     RK3572_PMU_CLKGATE_CON(4), 0, GFLAGS),
+	GATE(CLK_PMU1, "clk_pmu1", "xin24m", CLK_IS_CRITICAL,
+	     RK3572_PMU_CLKGATE_CON(4), 3, GFLAGS),
+	GATE(PCLK_PMU1WDT, "pclk_pmu1wdt", "pclk_pmu1_root", 0,
+	     RK3572_PMU_CLKGATE_CON(4), 6, GFLAGS),
+	COMPOSITE_NODIV(TCLK_PMU1WDT, "tclk_pmu1wdt", mux_24m_32k_p, 0,
+			RK3572_PMU_CLKSEL_CON(4), 13, 1, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(4), 7, GFLAGS),
+	GATE(PCLK_PMUTIMER, "pclk_pmutimer", "pclk_pmu1_root", 0,
+	     RK3572_PMU_CLKGATE_CON(4), 8, GFLAGS),
+	COMPOSITE_NODIV(CLK_PMUTIMER_ROOT, "clk_pmutimer_root", mux_100m_24m_32k_p, 0,
+			RK3572_PMU_CLKSEL_CON(4), 14, 2, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(4), 9, GFLAGS),
+	GATE(CLK_PMUTIMER0, "clk_pmutimer0", "clk_pmutimer_root", 0,
+	     RK3572_PMU_CLKGATE_CON(4), 10, GFLAGS),
+	GATE(CLK_PMUTIMER1, "clk_pmutimer1", "clk_pmutimer_root", 0,
+	     RK3572_PMU_CLKGATE_CON(4), 11, GFLAGS),
+	GATE(PCLK_PWM0, "pclk_pwm0", "pclk_pmu1_root", 0,
+	     RK3572_PMU_CLKGATE_CON(4), 12, GFLAGS),
+	COMPOSITE_NODIV(CLK_PWM0, "clk_pwm0", mux_100m_50m_24m_rc_p, 0,
+			RK3572_PMU_CLKSEL_CON(5), 0, 2, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(4), 13, GFLAGS),
+	COMPOSITE_NODIV(CLK_PWM0_OSC, "clk_pwm0_osc", clk_pwm0_osc_p, 0,
+			RK3572_PMU_CLKSEL_CON(5), 2, 1, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(4), 14, GFLAGS),
+	GATE(PCLK_PMUPHY_ROOT, "pclk_pmuphy_root", "pclk_pmu1_root", CLK_IS_CRITICAL,
+	     RK3572_PMU_CLKGATE_CON(5), 1, GFLAGS),
+	GATE(PCLK_I2C0, "pclk_i2c0", "pclk_pmu1_root", 0,
+	     RK3572_PMU_CLKGATE_CON(5), 2, GFLAGS),
+	COMPOSITE_NODIV(CLK_I2C0, "clk_i2c0", mux_200m_100m_50m_24m_p, 0,
+			RK3572_PMU_CLKSEL_CON(6), 7, 2, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(5), 3, GFLAGS),
+	COMPOSITE_NODIV(SCLK_UART1, "sclk_uart1", sclk_uart1_p, 0,
+			RK3572_PMU_CLKSEL_CON(8), 0, 2, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(5), 6, GFLAGS),
+	GATE(PCLK_UART1, "pclk_uart1", "pclk_pmu1_root", 0,
+	     RK3572_PMU_CLKGATE_CON(5), 7, GFLAGS),
+	GATE(CLK_PWM0_RC, "clk_pwm0_rc", "clk_rcosc", 0,
+	     RK3572_PMU_CLKGATE_CON(5), 8, GFLAGS),
+	COMPOSITE(CLK_PDM0, "clk_pdm0", clk_pdm0_p, CLK_SET_RATE_PARENT,
+		  RK3572_PMU_CLKSEL_CON(8), 14, 2, MFLAGS, 8, 6, DFLAGS,
+			RK3572_PMU_CLKGATE_CON(5), 14, GFLAGS),
+	GATE(HCLK_PDM0, "hclk_pdm0", "hclk_pmu1_root", 0,
+	     RK3572_PMU_CLKGATE_CON(6), 0, GFLAGS),
+	COMPOSITE_NODIV(MCLK_PDM0, "mclk_pdm0", mclk_pdm0_p, CLK_SET_RATE_PARENT,
+			RK3572_PMU_CLKSEL_CON(9), 0, 2, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(6), 1, GFLAGS),
+	GATE(HCLK_VAD, "hclk_vad", "hclk_pmu1_root", 0,
+	     RK3572_PMU_CLKGATE_CON(6), 2, GFLAGS),
+	GATE(CLK_PDM0_OUT, "clk_pdm0_out", "clk_pdm0", 0,
+	     RK3572_PMU_CLKGATE_CON(6), 9, GFLAGS),
+	GATE(PCLK_PMU0, "pclk_pmu0", "pclk_pmu0_root", CLK_IS_CRITICAL,
+	     RK3572_PMU_CLKGATE_CON(7), 3, GFLAGS),
+	GATE(PCLK_GPIO0, "pclk_gpio0", "pclk_pmu0_root", 0,
+	     RK3572_PMU_CLKGATE_CON(7), 6, GFLAGS),
+	COMPOSITE_NODIV(DBCLK_GPIO0, "dbclk_gpio0", mux_24m_32k_p, 0,
+			RK3572_PMU_CLKSEL_CON(20), 2, 1, MFLAGS,
+			RK3572_PMU_CLKGATE_CON(7), 7, GFLAGS),
+
+	COMPOSITE_NODIV(SAI_SCLKIN_FREQ, "sai_sclkin_freq", sai_sclkin_freq_p, 0,
+			RK3572_CLKSEL_CON(83), 4, 3, MFLAGS,
+			RK3572_CLKGATE_CON(18), 2, GFLAGS),
+	COMPOSITE_NODIV(SAI_SCLKIN_COUNTER, "sai_sclkin_counter", sai_sclkin_freq_p, 0,
+			RK3572_CLKSEL_CON(83), 7, 3, MFLAGS,
+			RK3572_CLKGATE_CON(18), 3, GFLAGS),
+	COMPOSITE_NODIV(CLK_FREQ_PWM1, "clk_freq_pwm1", clk_freq_pwm1_p, 0,
+			RK3572_CLKSEL_CON(82), 10, 3, MFLAGS,
+			RK3572_CLKGATE_CON(17), 8, GFLAGS),
+	COMPOSITE_NODIV(CLK_COUNTER_PWM1, "clk_counter_pwm1", clk_counter_pwm1_p, 0,
+			RK3572_CLKSEL_CON(82), 13, 3, MFLAGS,
+			RK3572_CLKGATE_CON(17), 9, GFLAGS),
+	MUX(ASRC_REF_PULSE, "asrc_ref_pulse", asrc_ref_pulse_p, 0,
+	    RK3572_CLKSEL_CON(62), 12, 3, MFLAGS),
+	MUX(LRCK_ASRC_2CH0_SRC, "lrck_asrc_2ch0_src", lrck_asrc_src_p, 0,
+	    RK3572_CLKSEL_CON(59), 0, 4, MFLAGS),
+	MUX(LRCK_ASRC_2CH0_DST, "lrck_asrc_2ch0_dst", lrck_asrc_dst_p, 0,
+	    RK3572_CLKSEL_CON(59), 4, 4, MFLAGS),
+	MUX(LRCK_ASRC_2CH1_SRC, "lrck_asrc_2ch1_src", lrck_asrc_src_p, 0,
+	    RK3572_CLKSEL_CON(59), 8, 4, MFLAGS),
+	MUX(LRCK_ASRC_2CH1_DST, "lrck_asrc_2ch1_dst", lrck_asrc_dst_p, 0,
+	    RK3572_CLKSEL_CON(59), 12, 4, MFLAGS),
+	MUX(REF_PULSE_CLK_AUDIO_FRAC_0, "ref_pulse_clk_audio_frac_0", ref_pulse_p, 0,
+	    RK3572_CLKSEL_CON(40), 13, 3, MFLAGS),
+	MUX(REF_PULSE_CLK_AUDIO_FRAC_1, "ref_pulse_clk_audio_frac_1", ref_pulse_p, 0,
+	    RK3572_CLKSEL_CON(41), 0, 3, MFLAGS),
+	MUX(REF_PULSE_CLK_AUDIO_FRAC_2, "ref_pulse_clk_audio_frac_2", ref_pulse_p, 0,
+	    RK3572_CLKSEL_CON(41), 3, 3, MFLAGS),
+	MUX(REF_PULSE_FRACDIV_3, "ref_pulse_fracdiv_3", ref_pulse_p, 0,
+	    RK3572_CLKSEL_CON(41), 6, 3, MFLAGS),
+	MUX(REF_PULSE_AUPLL, "ref_pulse_aupll", ref_pulse_p, 0,
+	    RK3572_CLKSEL_CON(41), 9, 3, MFLAGS),
+};
+
+static struct rockchip_clk_branch rk3572_armclkl1 __initdata =
+	COMPOSITE_NOGATE(ARMCLK_L1, "armclk_l1", mux_armclkl1_p, CLK_IS_CRITICAL,
+			 RK3572_LITCORE1_CLKSEL_CON(0), 8, 2, MFLAGS, 3, 5, DFLAGS);
+
+static struct rockchip_clk_branch rk3572_aupll_ref_branches[] __initdata = {
+	MUXGRF(AUPLL_REF, "aupll_ref", mux_aupll_ref_p, CLK_IS_CRITICAL,
+	       RK3572_PMU0_GRF_OSC_CON6, 0, 1, MFLAGS, grf_type_pmu0),
+};
+
+static void __init rk3572_register_spll_factors(void)
+{
+	struct rk3572_spll_factor {
+		const char *name;
+		unsigned int div;
+	};
+	static const struct rk3572_spll_factor factors[] __initconst = {
+		{ "clk_spll_div12", 12 },
+		{ "clk_spll_div6", 6 },
+		{ "clk_spll_div4", 4 },
+		{ "clk_spll_div2", 2 },
+	};
+	struct clk *clk;
+	unsigned int i;
+
+	/* Internal clocks must not replace the binding's PLL_PPLL at ID 0. */
+	for (i = 0; i < ARRAY_SIZE(factors); i++) {
+		clk = clk_register_fixed_factor(NULL, factors[i].name, "spll",
+						0, 1, factors[i].div);
+		if (IS_ERR(clk))
+			pr_err("%s: failed to register %s: %ld\n", __func__,
+			       factors[i].name, PTR_ERR(clk));
+	}
+}
+
+static void __init rk3572_clk_init(struct device_node *np)
+{
+	struct rockchip_clk_provider *ctx;
+	unsigned long clk_nr_clks;
+	void __iomem *reg_base;
+	struct regmap *pmu0_grf;
+	int ret;
+
+	reg_base = of_iomap(np, 0);
+	if (!reg_base) {
+		pr_err("%s: could not map cru region\n", __func__);
+		return;
+	}
+
+	clk_nr_clks = rockchip_clk_find_max_clk_id(rk3572_clk_branches,
+						   ARRAY_SIZE(rk3572_clk_branches)) + 1;
+	ctx = rockchip_clk_init(np, reg_base, clk_nr_clks);
+	if (IS_ERR(ctx)) {
+		pr_err("%s: rockchip clk init failed\n", __func__);
+		iounmap(reg_base);
+		return;
+	}
+	pmu0_grf = ctx->grf;
+	if (IS_ERR(pmu0_grf)) {
+		pr_err("%s: could not get PMU0 GRF\n", __func__);
+		goto err_free;
+	}
+
+	ret = rockchip_clk_add_grf(ctx, pmu0_grf, grf_type_pmu0);
+	if (ret)
+		goto err_free;
+
+	rockchip_clk_register_branches(ctx, rk3572_aupll_ref_branches,
+				       ARRAY_SIZE(rk3572_aupll_ref_branches));
+
+	rockchip_clk_register_plls(ctx, rk3572_pll_clks,
+				   ARRAY_SIZE(rk3572_pll_clks),
+				   RK3572_GRF_SOC_STATUS0);
+
+	rockchip_clk_register_armclk(ctx, ARMCLK_L0, "armclk_l0",
+				     mux_armclkl0_p, ARRAY_SIZE(mux_armclkl0_p),
+				     &rk3572_cpul0clk_data, rk3572_cpul0clk_rates,
+				     ARRAY_SIZE(rk3572_cpul0clk_rates));
+
+	rockchip_clk_register_armclk(ctx, ARMCLK_B, "armclk_b",
+				     mux_armclkb_p, ARRAY_SIZE(mux_armclkb_p),
+				     &rk3572_cpubclk_data, rk3572_cpubclk_rates,
+				     ARRAY_SIZE(rk3572_cpubclk_rates));
+
+	rk3572_register_spll_factors();
+
+	rockchip_clk_register_branches(ctx, rk3572_clk_branches,
+				       ARRAY_SIZE(rk3572_clk_branches));
+
+	rockchip_clk_register_armclk_multi_pll(ctx, &rk3572_armclkl1,
+					       rk3572_cpul1clk_rates,
+					ARRAY_SIZE(rk3572_cpul1clk_rates));
+
+	rk3572_rst_init(np, reg_base);
+
+	rockchip_register_restart_notifier(ctx, RK3572_GLB_SRST_FST, NULL);
+
+	rockchip_clk_of_add_provider(np, ctx);
+	return;
+
+err_free:
+	kfree(ctx->clk_data.clks);
+	kfree(ctx);
+	iounmap(reg_base);
+}
+
+CLK_OF_DECLARE(rk3572_cru, "rockchip,rk3572-cru", rk3572_clk_init);
diff --git a/drivers/clk/rockchip/clk.c b/drivers/clk/rockchip/clk.c
index ee8c79b938d3c1..0646a2e6af0a86 100644
--- a/drivers/clk/rockchip/clk.c
+++ b/drivers/clk/rockchip/clk.c
@@ -589,6 +589,16 @@ void rockchip_clk_register_branches(struct rockchip_clk_provider *ctx,
 				list->gate_flags, flags, list->child,
 				&ctx->lock);
 			break;
+		case branch_fraction_divider_v2:
+			clk = rockchip_clk_register_frac_v2(NULL, list->name,
+							    list->parent_names[0], flags,
+							    ctx->reg_base + list->muxdiv_offset,
+							    list->mux_shift, list->mux_width,
+							    ctx->reg_base + list->div_offset,
+							    list->div_shift, list->div_width,
+							    list->div_flags,
+							    &ctx->lock);
+			break;
 		case branch_half_divider:
 			clk = rockchip_clk_register_halfdiv(list->name,
 				list->parent_names, list->num_parents,
diff --git a/drivers/clk/rockchip/clk.h b/drivers/clk/rockchip/clk.h
index 72b36bba315238..c5629805449068 100644
--- a/drivers/clk/rockchip/clk.h
+++ b/drivers/clk/rockchip/clk.h
@@ -426,6 +426,41 @@ struct clk;
 #define RK3568_PMU_CLKGATE_CON(x)	((x) * 0x4 + 0x180)
 #define RK3568_PMU_SOFTRST_CON(x)	((x) * 0x4 + 0x200)
 
+#define RK3572_PHP_CRU_BASE		0x8000
+#define RK3572_SECURE_NS_CRU_BASE	0x10000
+#define RK3572_PMU_CRU_BASE		0x20000
+#define RK3572_BIGCORE_CRU_BASE		0x40000
+#define RK3572_LITCORE0_CRU_BASE	0x48000
+#define RK3572_LITCORE1_CRU_BASE	0x50000
+#define RK3572_CCI_CRU_BASE		0x58000
+
+#define RK3572_PLL_CON(x)		(RK2928_PLL_CON(x) + 0x4000)
+#define RK3572_MODE_CON0		0x4280
+#define RK3572_MODE_CON1		0x4284
+#define RK3572_CLKSEL_CON(x)		((x) * 0x4 + 0x300)
+#define RK3572_CLKGATE_CON(x)		((x) * 0x4 + 0x800)
+#define RK3572_SOFTRST_CON(x)		((x) * 0x4 + 0xa00)
+#define RK3572_GLB_SRST_FST		0xc08
+#define RK3572_NON_SECURE_GATING_CON00	0xc48
+
+#define RK3572_PPLL_CON(x)		((x) * 0x4 + RK3572_PHP_CRU_BASE)
+#define RK3572_PHP_CLKSEL_CON(x)	((x) * 0x4 + RK3572_PHP_CRU_BASE + 0x300)
+#define RK3572_PHP_CLKGATE_CON(x)	((x) * 0x4 + RK3572_PHP_CRU_BASE + 0x800)
+
+#define RK3572_PMU_CLKSEL_CON(x)	((x) * 0x4 + RK3572_PMU_CRU_BASE + 0x300)
+#define RK3572_PMU_CLKGATE_CON(x)	((x) * 0x4 + RK3572_PMU_CRU_BASE + 0x800)
+
+#define RK3572_SECURE_NS_CLKSEL_CON(x)	((x) * 0x4 + RK3572_SECURE_NS_CRU_BASE + 0x300)
+#define RK3572_SECURE_NS_CLKGATE_CON(x)	((x) * 0x4 + RK3572_SECURE_NS_CRU_BASE + 0x800)
+
+#define RK3572_LPLL_CON(x)		((x) * 0x4 + RK3572_CCI_CRU_BASE)
+#define RK3572_LPLL_MODE_CON0		(0x280 + RK3572_CCI_CRU_BASE)
+#define RK3572_CCI_CLKSEL_CON(x)	((x) * 0x4 + RK3572_CCI_CRU_BASE + 0x300)
+
+#define RK3572_BIGCORE_CLKSEL_CON(x)	((x) * 0x4 + RK3572_BIGCORE_CRU_BASE + 0x300)
+#define RK3572_LITCORE0_CLKSEL_CON(x)	((x) * 0x4 + RK3572_LITCORE0_CRU_BASE + 0x300)
+#define RK3572_LITCORE1_CLKSEL_CON(x)	((x) * 0x4 + RK3572_LITCORE1_CRU_BASE + 0x300)
+
 #define RK3576_PHP_CRU_BASE		0x8000
 #define RK3576_SECURE_NS_CRU_BASE	0x10000
 #define RK3576_PMU_CRU_BASE		0x20000
@@ -781,6 +816,13 @@ struct clk *rockchip_clk_register_ddrclk(const char *name, int flags,
 					 int ddr_flags, void __iomem *reg_base,
 					 spinlock_t *lock);
 
+struct clk *rockchip_clk_register_frac_v2(struct device *dev,
+					  const char *name, const char *parent_name,
+					  unsigned long flags, void __iomem *reg,
+					  u8 mshift, u8 width,
+					  void __iomem *high_reg, u8 high_mshift, u8 high_width,
+					  u8 clk_divider_flags, spinlock_t *lock);
+
 #define ROCKCHIP_INVERTER_HIWORD_MASK	BIT(0)
 
 struct clk *rockchip_clk_register_inverter(const char *name,
@@ -806,6 +848,7 @@ enum rockchip_clk_branch_type {
 	branch_grf_mux,
 	branch_divider,
 	branch_fraction_divider,
+	branch_fraction_divider_v2,
 	branch_gate,
 	branch_grf_gate,
 	branch_linked_gate,
@@ -863,6 +906,28 @@ struct rockchip_clk_branch {
 		.gate_flags	= gf,				\
 	}
 
+#define COMPOSITE_MUXTBL(_id, cname, pnames, f, mo, ms, mw, mf,	\
+			 mt, ds, dw, df, go, gs, gf)		\
+	{							\
+		.id		= _id,				\
+		.branch_type	= branch_composite,		\
+		.name		= cname,			\
+		.parent_names	= pnames,			\
+		.num_parents	= ARRAY_SIZE(pnames),		\
+		.flags		= f,				\
+		.muxdiv_offset	= mo,				\
+		.mux_shift	= ms,				\
+		.mux_width	= mw,				\
+		.mux_flags	= mf,				\
+		.mux_table	= mt,				\
+		.div_shift	= ds,				\
+		.div_width	= dw,				\
+		.div_flags	= df,				\
+		.gate_offset	= go,				\
+		.gate_shift	= gs,				\
+		.gate_flags	= gf,				\
+	}
+
 #define COMPOSITE_DIV_OFFSET(_id, cname, pnames, f, mo, ms, mw,	\
 			     mf, do, ds, dw, df, go, gs, gf)	\
 	{							\
@@ -1014,6 +1079,23 @@ struct rockchip_clk_branch {
 		.child		= ch,				\
 	}
 
+#define COMPOSITE_FRAC_V2(_id, cname, pname, f, mo, ms, mw, do, ds, dw, df)\
+	{							\
+		.id		= _id,				\
+		.branch_type	= branch_fraction_divider_v2,	\
+		.name		= cname,			\
+		.parent_names	= (const char *[]){ pname },	\
+		.num_parents	= 1,				\
+		.flags		= f,				\
+		.muxdiv_offset	= mo,				\
+		.mux_shift	= ms,				\
+		.mux_width	= mw,				\
+		.div_offset	= do,				\
+		.div_shift	= ds,				\
+		.div_width	= dw,				\
+		.div_flags	= df,				\
+	}
+
 #define COMPOSITE_FRACMUX_NOGATE(_id, cname, pname, f, mo, df, ch) \
 	{							\
 		.id		= _id,				\
@@ -1396,6 +1478,7 @@ void rv1126b_rst_init(struct device_node *np, void __iomem *reg_base);
 void rk3506_rst_init(struct device_node *np, void __iomem *reg_base);
 void rk3528_rst_init(struct device_node *np, void __iomem *reg_base);
 void rk3562_rst_init(struct device_node *np, void __iomem *reg_base);
+void rk3572_rst_init(struct device_node *np, void __iomem *reg_base);
 void rk3576_rst_init(struct device_node *np, void __iomem *reg_base);
 void rk3588_rst_init(struct device_node *np, void __iomem *reg_base);
 
diff --git a/drivers/clk/rockchip/rst-rk3572.c b/drivers/clk/rockchip/rst-rk3572.c
new file mode 100644
index 00000000000000..a07f88dadc00f0
--- /dev/null
+++ b/drivers/clk/rockchip/rst-rk3572.c
@@ -0,0 +1,739 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
+ * Author: Elaine Zhang <zhangqing@rock-chips.com>
+ */
+
+#include <linux/module.h>
+#include <linux/of.h>
+#include <dt-bindings/reset/rockchip,rk3572-cru.h>
+#include "clk.h"
+
+#define CRU_RESET_OFFSET(id, reg, bit)[id] = (0x00000 * 4 + (reg) * 16 + (bit))
+#define PHPPHY_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x08000 * 4 + (reg) * 16 + (bit))
+#define SECURE_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x10000 * 4 + (reg) * 16 + (bit))
+#define PMU1_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x20000 * 4 + (reg) * 16 + (bit))
+#define DDR0_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x30000 * 4 + (reg) * 16 + (bit))
+#define BIGCORE_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x40000 * 4 + (reg) * 16 + (bit))
+#define LITCORE0_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x48000 * 4 + (reg) * 16 + (bit))
+#define LITCORE1_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x50000 * 4 + (reg) * 16 + (bit))
+#define CCI_CRU_RESET_OFFSET(id, reg, bit)[id] = (0x58000 * 4 + (reg) * 16 + (bit))
+
+static const int rk3572_register_offset[] = {
+	/* CRU-->SOFTRST_CON01 */
+	CRU_RESET_OFFSET(SRST_ARESETN_TOP_BIU, 1, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_TOP_BIU, 1, 6),
+	CRU_RESET_OFFSET(SRST_ARESETN_TOP_MID_BIU, 1, 7),
+	CRU_RESET_OFFSET(SRST_HRESETN_TOP_BIU, 1, 15),
+
+	/* CRU-->SOFTRST_CON02 */
+	CRU_RESET_OFFSET(SRST_HRESETN_TOP_FW, 2, 0),
+
+	/* CRU-->SOFTRST_CON06 */
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_TOP, 6, 2),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_TOP, 6, 3),
+
+	/* CRU-->SOFTRST_CON07 */
+	CRU_RESET_OFFSET(SRST_HRESETN_AUDIO_BIU, 7, 2),
+	CRU_RESET_OFFSET(SRST_HRESETN_ASRC_2CH_0, 7, 3),
+	CRU_RESET_OFFSET(SRST_HRESETN_ASRC_2CH_1, 7, 4),
+	CRU_RESET_OFFSET(SRST_RESETN_ASRC_2CH_0, 7, 7),
+	CRU_RESET_OFFSET(SRST_RESETN_ASRC_2CH_1, 7, 8),
+	CRU_RESET_OFFSET(SRST_MRESETN_SAI0, 7, 12),
+	CRU_RESET_OFFSET(SRST_HRESETN_SAI0, 7, 13),
+	CRU_RESET_OFFSET(SRST_HRESETN_SPDIF_RX0, 7, 14),
+	CRU_RESET_OFFSET(SRST_MRESETN_SPDIF_RX0, 7, 15),
+
+	/* CRU-->SOFTRST_CON08 */
+	CRU_RESET_OFFSET(SRST_MRESETN_SAI1, 8, 5),
+	CRU_RESET_OFFSET(SRST_HRESETN_SAI1, 8, 6),
+	CRU_RESET_OFFSET(SRST_MRESETN_SAI2, 8, 8),
+	CRU_RESET_OFFSET(SRST_HRESETN_SAI2, 8, 10),
+	CRU_RESET_OFFSET(SRST_MRESETN_SAI3, 8, 12),
+	CRU_RESET_OFFSET(SRST_HRESETN_SAI3, 8, 14),
+	CRU_RESET_OFFSET(SRST_HRESETN_ACDCDIG_DSM, 8, 15),
+
+	/* CRU-->SOFTRST_CON09 */
+	CRU_RESET_OFFSET(SRST_MRESETN_ACDCDIG_DSM, 9, 0),
+	CRU_RESET_OFFSET(SRST_PRESETN_AUDIO_BIU, 9, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_AUDIO_GRF, 9, 5),
+	CRU_RESET_OFFSET(SRST_HRESETN_SPDIF_TX0, 9, 6),
+	CRU_RESET_OFFSET(SRST_MRESETN_SPDIF_TX0, 9, 7),
+	CRU_RESET_OFFSET(SRST_HRESETN_SPDIF_TX1, 9, 8),
+	CRU_RESET_OFFSET(SRST_MRESETN_SPDIF_TX1, 9, 9),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_AUDIO, 9, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_AUDIO, 9, 11),
+
+	/* CRU-->SOFTRST_CON11 */
+	CRU_RESET_OFFSET(SRST_ARESETN_BUS_BIU, 11, 3),
+	CRU_RESET_OFFSET(SRST_ARESETN_BUS_FW, 11, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_BUS_BIU, 11, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_CRU, 11, 6),
+	CRU_RESET_OFFSET(SRST_HRESETN_CAN0, 11, 7),
+	CRU_RESET_OFFSET(SRST_RESETN_CAN0, 11, 8),
+	CRU_RESET_OFFSET(SRST_HRESETN_CAN1, 11, 9),
+	CRU_RESET_OFFSET(SRST_RESETN_CAN1, 11, 10),
+	CRU_RESET_OFFSET(SRST_HRESETN_CAN2, 11, 11),
+	CRU_RESET_OFFSET(SRST_RESETN_CAN2, 11, 12),
+	CRU_RESET_OFFSET(SRST_HRESETN_CAN3, 11, 13),
+	CRU_RESET_OFFSET(SRST_RESETN_CAN3, 11, 14),
+
+	/* CRU-->SOFTRST_CON12 */
+	CRU_RESET_OFFSET(SRST_ARESETN_DECOM_BIU, 12, 0),
+	CRU_RESET_OFFSET(SRST_HRESETN_BUS_BIU, 12, 3),
+	CRU_RESET_OFFSET(SRST_RESETN_KEY_SHIFT, 12, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_I2C1, 12, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_I2C2, 12, 6),
+	CRU_RESET_OFFSET(SRST_PRESETN_I2C3, 12, 7),
+	CRU_RESET_OFFSET(SRST_PRESETN_I2C4, 12, 8),
+	CRU_RESET_OFFSET(SRST_PRESETN_I2C5, 12, 9),
+	CRU_RESET_OFFSET(SRST_PRESETN_I2C6, 12, 10),
+	CRU_RESET_OFFSET(SRST_PRESETN_I2C7, 12, 11),
+	CRU_RESET_OFFSET(SRST_PRESETN_I2C8, 12, 12),
+	CRU_RESET_OFFSET(SRST_PRESETN_I2C9, 12, 13),
+	CRU_RESET_OFFSET(SRST_PRESETN_WDT_BUSMCU, 12, 14),
+	CRU_RESET_OFFSET(SRST_TRESETN_WDT_BUSMCU, 12, 15),
+
+	/* CRU-->SOFTRST_CON13 */
+	CRU_RESET_OFFSET(SRST_ARESETN_GIC, 13, 0),
+	CRU_RESET_OFFSET(SRST_RESETN_I2C1, 13, 5),
+	CRU_RESET_OFFSET(SRST_RESETN_I2C2, 13, 6),
+	CRU_RESET_OFFSET(SRST_RESETN_I2C3, 13, 7),
+	CRU_RESET_OFFSET(SRST_RESETN_I2C4, 13, 8),
+	CRU_RESET_OFFSET(SRST_RESETN_I2C5, 13, 9),
+	CRU_RESET_OFFSET(SRST_RESETN_I2C6, 13, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_I2C7, 13, 11),
+	CRU_RESET_OFFSET(SRST_RESETN_I2C8, 13, 12),
+	CRU_RESET_OFFSET(SRST_RESETN_I2C9, 13, 13),
+	CRU_RESET_OFFSET(SRST_PRESETN_SARADC, 13, 15),
+
+	/* CRU-->SOFTRST_CON14 */
+	CRU_RESET_OFFSET(SRST_RESETN_SARADC, 14, 0),
+	CRU_RESET_OFFSET(SRST_RESETN_SARADC_32K, 14, 1),
+	CRU_RESET_OFFSET(SRST_PRESETN_TSADC, 14, 2),
+	CRU_RESET_OFFSET(SRST_RESETN_TSADC, 14, 3),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART0, 14, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART2, 14, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART3, 14, 6),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART4, 14, 7),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART5, 14, 8),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART6, 14, 9),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART7, 14, 10),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART8, 14, 11),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART9, 14, 12),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART10, 14, 13),
+	CRU_RESET_OFFSET(SRST_PRESETN_UART11, 14, 14),
+	CRU_RESET_OFFSET(SRST_SRESETN_UART0, 14, 15),
+
+	/* CRU-->SOFTRST_CON15 */
+	CRU_RESET_OFFSET(SRST_SRESETN_UART2, 15, 0),
+	CRU_RESET_OFFSET(SRST_SRESETN_UART3, 15, 3),
+	CRU_RESET_OFFSET(SRST_SRESETN_UART4, 15, 6),
+	CRU_RESET_OFFSET(SRST_SRESETN_UART5, 15, 9),
+	CRU_RESET_OFFSET(SRST_SRESETN_UART6, 15, 12),
+	CRU_RESET_OFFSET(SRST_SRESETN_UART7, 15, 15),
+
+	/* CRU-->SOFTRST_CON16 */
+	CRU_RESET_OFFSET(SRST_SRESETN_UART8, 16, 2),
+	CRU_RESET_OFFSET(SRST_SRESETN_UART9, 16, 3),
+	CRU_RESET_OFFSET(SRST_SRESETN_UART10, 16, 4),
+	CRU_RESET_OFFSET(SRST_SRESETN_UART11, 16, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_SPI0, 16, 7),
+	CRU_RESET_OFFSET(SRST_PRESETN_SPI1, 16, 8),
+	CRU_RESET_OFFSET(SRST_PRESETN_SPI2, 16, 9),
+	CRU_RESET_OFFSET(SRST_PRESETN_SPI3, 16, 10),
+	CRU_RESET_OFFSET(SRST_PRESETN_SPI4, 16, 11),
+	CRU_RESET_OFFSET(SRST_RESETN_SPI0, 16, 12),
+	CRU_RESET_OFFSET(SRST_RESETN_SPI1, 16, 13),
+	CRU_RESET_OFFSET(SRST_RESETN_SPI2, 16, 14),
+	CRU_RESET_OFFSET(SRST_RESETN_SPI3, 16, 15),
+
+	/* CRU-->SOFTRST_CON17 */
+	CRU_RESET_OFFSET(SRST_RESETN_SPI4, 17, 0),
+	CRU_RESET_OFFSET(SRST_PRESETN_WDT0, 17, 1),
+	CRU_RESET_OFFSET(SRST_TRESETN_WDT0, 17, 2),
+	CRU_RESET_OFFSET(SRST_PRESETN_SYS_GRF, 17, 3),
+	CRU_RESET_OFFSET(SRST_PRESETN_PWM1, 17, 4),
+	CRU_RESET_OFFSET(SRST_RESETN_PWM1, 17, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_PWM2, 17, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_PWM2, 17, 11),
+
+	/* CRU-->SOFTRST_CON18 */
+	CRU_RESET_OFFSET(SRST_PRESETN_BUSTIMER0, 18, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_BUSTIMER1, 18, 5),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER0, 18, 7),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER1, 18, 8),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER2, 18, 9),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER3, 18, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER4, 18, 11),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER5, 18, 12),
+	CRU_RESET_OFFSET(SRST_PRESETN_MAILBOX0, 18, 14),
+
+	/* CRU-->SOFTRST_CON19 */
+	CRU_RESET_OFFSET(SRST_PRESETN_GPIO1, 19, 0),
+	CRU_RESET_OFFSET(SRST_DBRESETN_GPIO1, 19, 1),
+	CRU_RESET_OFFSET(SRST_PRESETN_GPIO2, 19, 2),
+	CRU_RESET_OFFSET(SRST_DBRESETN_GPIO2, 19, 3),
+	CRU_RESET_OFFSET(SRST_PRESETN_GPIO3, 19, 4),
+	CRU_RESET_OFFSET(SRST_DBRESETN_GPIO3, 19, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_GPIO4, 19, 6),
+	CRU_RESET_OFFSET(SRST_DBRESETN_GPIO4, 19, 7),
+	CRU_RESET_OFFSET(SRST_ARESETN_DECOM, 19, 8),
+	CRU_RESET_OFFSET(SRST_PRESETN_DECOM, 19, 9),
+	CRU_RESET_OFFSET(SRST_DRESETN_DECOM, 19, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER6, 19, 12),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER7, 19, 13),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER8, 19, 14),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER9, 19, 15),
+
+	/* CRU-->SOFTRST_CON20 */
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER10, 20, 0),
+	CRU_RESET_OFFSET(SRST_RESETN_TIMER11, 20, 1),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKDMA0, 20, 2),
+	CRU_RESET_OFFSET(SRST_PRESETN_RKDMA0, 20, 3),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKDMA1, 20, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_RKDMA1, 20, 5),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKDMA2, 20, 6),
+	CRU_RESET_OFFSET(SRST_PRESETN_RKDMA2, 20, 7),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKDMA3, 20, 8),
+	CRU_RESET_OFFSET(SRST_PRESETN_RKDMA3, 20, 9),
+	CRU_RESET_OFFSET(SRST_PRESETN_SPINLOCK, 20, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_REF_PVTPLL_BUS, 20, 11),
+	CRU_RESET_OFFSET(SRST_RESETN_I3C, 20, 12),
+	CRU_RESET_OFFSET(SRST_HRESETN_I3C, 20, 13),
+
+	/* CRU-->SOFTRST_CON21 */
+	CRU_RESET_OFFSET(SRST_RESETN_BUSMCU_BIU, 21, 1),
+	CRU_RESET_OFFSET(SRST_CORERESETN_N320, 21, 2),
+	CRU_RESET_OFFSET(SRST_PORESETN_N320, 21, 3),
+	CRU_RESET_OFFSET(SRST_RESETN_MCU_AXI_INTEGRITY, 21, 6),
+	CRU_RESET_OFFSET(SRST_PRESETN_INTMUX2PMU, 21, 8),
+	CRU_RESET_OFFSET(SRST_PRESETN_INTMUX2DDR, 21, 9),
+	CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_BUS, 21, 11),
+	CRU_RESET_OFFSET(SRST_RESETN_HDMITXHPD, 21, 14),
+
+	/* CRU-->SOFTRST_CON22 */
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_HDMITX, 22, 2),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_HDMITX, 22, 3),
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_MIPICSI, 22, 6),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_MIPICSI, 22, 7),
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO0_3, 22, 8),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO0_3, 22, 9),
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO1_2_4, 22, 10),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO1_2_4, 22, 11),
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO5_6, 22, 12),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO5_6, 22, 13),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_BUS, 22, 14),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_BUS, 22, 15),
+
+	/* CRU-->SOFTRST_CON23 */
+	CRU_RESET_OFFSET(SRST_PRESETN_DDR_MON, 23, 1),
+	CRU_RESET_OFFSET(SRST_PRESETN_DDR_BIU, 23, 2),
+	CRU_RESET_OFFSET(SRST_PRESETN_DDR_UPCTL, 23, 3),
+	CRU_RESET_OFFSET(SRST_TMRESETN_DDR_MON, 23, 4),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_BIU, 23, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_DDR_BIU_FW, 23, 6),
+	CRU_RESET_OFFSET(SRST_RESETN_DDR_MON, 23, 10),
+	CRU_RESET_OFFSET(SRST_PRESETN_DDR_HWLP, 23, 13),
+
+	/* CRU-->SOFTRST_CON24 */
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_MSCH_BIU, 24, 3),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_MSCH_FW, 24, 4),
+	CRU_RESET_OFFSET(SRST_RESETN_DDR_SCRAMBLE, 24, 9),
+	CRU_RESET_OFFSET(SRST_LRESETN_DDRSCH_BIU, 24, 11),
+
+	/* CRU-->SOFTRST_CON25 */
+	CRU_RESET_OFFSET(SRST_RESETN_DDR_TIMER0, 25, 4),
+	CRU_RESET_OFFSET(SRST_RESETN_DDR_TIMER1, 25, 5),
+	CRU_RESET_OFFSET(SRST_TRESETN_DDR_WDT, 25, 6),
+	CRU_RESET_OFFSET(SRST_PRESETN_WDT, 25, 7),
+	CRU_RESET_OFFSET(SRST_PRESETN_TIMER, 25, 8),
+	CRU_RESET_OFFSET(SRST_PRESETN_DDR_GRF, 25, 11),
+
+	/* CRU-->SOFTRST_CON26 */
+	CRU_RESET_OFFSET(SRST_RESETN_DDR_UPCTL, 26, 1),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_0, 26, 2),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_1, 26, 3),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_2, 26, 4),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_3, 26, 5),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_4, 26, 6),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_UPCTL_5, 26, 7),
+
+	/* CRU-->SOFTRST_CON27 */
+	CRU_RESET_OFFSET(SRST_RESETN_DDRMCU_BIU, 27, 0),
+	CRU_RESET_OFFSET(SRST_CORERESETN_N320_DDR, 27, 1),
+	CRU_RESET_OFFSET(SRST_PORESETN_N320_DDR, 27, 2),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_DDR, 27, 6),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_DDR, 27, 7),
+
+	/* CRU-->SOFTRST_CON31 */
+	CRU_RESET_OFFSET(SRST_ARESETN_RKNN, 31, 2),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKNN_RV, 31, 3),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKNN_BIU, 31, 4),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKNN_FW, 31, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_RKNN_BIU, 31, 7),
+	CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_NPU, 31, 8),
+	CRU_RESET_OFFSET(SRST_RESETN_NPU_PVTPLL, 31, 9),
+	CRU_RESET_OFFSET(SRST_RESETN_24M_RKNN, 31, 11),
+	CRU_RESET_OFFSET(SRST_RESETN_NPUTIMER0, 31, 13),
+	CRU_RESET_OFFSET(SRST_RESETN_NPUTIMER1, 31, 14),
+	CRU_RESET_OFFSET(SRST_PRESETN_NPU_TIMER, 31, 15),
+
+	/* CRU-->SOFTRST_CON32 */
+	CRU_RESET_OFFSET(SRST_PRESETN_NPU_WDT, 32, 0),
+	CRU_RESET_OFFSET(SRST_TRESETN_NPU_WDT, 32, 1),
+	CRU_RESET_OFFSET(SRST_PRESETN_RKNN_GRF, 32, 2),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_NPU, 32, 3),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_NPU, 32, 4),
+
+	/* CRU-->SOFTRST_CON33 */
+	CRU_RESET_OFFSET(SRST_PRESETN_PHP0_GRF, 33, 1),
+	CRU_RESET_OFFSET(SRST_PRESETN_PHP0_BIU, 33, 2),
+	CRU_RESET_OFFSET(SRST_ARESETN_PHP0_BIU, 33, 5),
+	CRU_RESET_OFFSET(SRST_ARESETN_PHP0_FW, 33, 6),
+	CRU_RESET_OFFSET(SRST_PRESETN_PCIE1, 33, 7),
+	CRU_RESET_OFFSET(SRST_RESETN_PCIE1_POWER_UP, 33, 9),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_PHP0, 33, 14),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_PHP0, 33, 15),
+
+	/* CRU-->SOFTRST_CON34 */
+	CRU_RESET_OFFSET(SRST_PRESETN_PCIE0, 34, 3),
+	CRU_RESET_OFFSET(SRST_RESETN_PCIE0_POWER_UP, 34, 5),
+	CRU_RESET_OFFSET(SRST_ARESETN_USB3OTG1, 34, 9),
+	CRU_RESET_OFFSET(SRST_ARESETN_GMAC0, 34, 12),
+	CRU_RESET_OFFSET(SRST_ARESETN_USB3OTG0, 34, 15),
+
+	/* CRU-->SOFTRST_CON35 */
+	CRU_RESET_OFFSET(SRST_ARESETN_UFS_BIU, 35, 2),
+	CRU_RESET_OFFSET(SRST_ARESETN_UFS_SYS, 35, 3),
+	CRU_RESET_OFFSET(SRST_ARESETN_UFS, 35, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_UFS_GRF, 35, 6),
+
+	/* CRU-->SOFTRST_CON37 */
+	CRU_RESET_OFFSET(SRST_RESETN_RXOOB0, 37, 0),
+	CRU_RESET_OFFSET(SRST_RESETN_PMALIVE0, 37, 1),
+	CRU_RESET_OFFSET(SRST_ARESETN_SATA0, 37, 2),
+	CRU_RESET_OFFSET(SRST_RESETN_RXOOB1, 37, 3),
+	CRU_RESET_OFFSET(SRST_RESETN_PMALIVE1, 37, 4),
+	CRU_RESET_OFFSET(SRST_ARESETN_SATA1, 37, 5),
+	CRU_RESET_OFFSET(SRST_RESETN_XPCS_PWR_ON, 37, 6),
+	CRU_RESET_OFFSET(SRST_RESETN_ASIC0, 37, 8),
+	CRU_RESET_OFFSET(SRST_RESETN_ASIC1, 37, 9),
+
+	/* CRU-->SOFTRST_CON42 */
+	CRU_RESET_OFFSET(SRST_PRESETN_NVM0_GRF, 42, 3),
+	CRU_RESET_OFFSET(SRST_PRESETN_NVM0_BIU, 42, 4),
+	CRU_RESET_OFFSET(SRST_ARESETN_NVM0_BIU, 42, 5),
+	CRU_RESET_OFFSET(SRST_HRESETN_NVM0_BIU, 42, 6),
+	CRU_RESET_OFFSET(SRST_CRESETN_EMMC, 42, 7),
+	CRU_RESET_OFFSET(SRST_HRESETN_EMMC, 42, 8),
+	CRU_RESET_OFFSET(SRST_ARESETN_EMMC, 42, 9),
+	CRU_RESET_OFFSET(SRST_BRESETN_EMMC, 42, 10),
+	CRU_RESET_OFFSET(SRST_TRESETN_EMMC, 42, 11),
+	CRU_RESET_OFFSET(SRST_ARESETN_GMAC1, 42, 14),
+
+	/* CRU-->SOFTRST_CON43 */
+	CRU_RESET_OFFSET(SRST_SRESETN_FSPI0, 43, 0),
+	CRU_RESET_OFFSET(SRST_HRESETN_FSPI0, 43, 1),
+	CRU_RESET_OFFSET(SRST_HRESETN_SDMMC1, 43, 3),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_NVM0, 43, 5),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_NVM0, 43, 6),
+
+	/* CRU-->SOFTRST_CON44 */
+	CRU_RESET_OFFSET(SRST_ARESETN_DSMC_BIU, 44, 1),
+	CRU_RESET_OFFSET(SRST_ARESETN_DSMC, 44, 2),
+	CRU_RESET_OFFSET(SRST_HRESETN_DSMC_BIU, 44, 4),
+	CRU_RESET_OFFSET(SRST_HRESETN_DSMC, 44, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_DSMC_BIU, 44, 7),
+	CRU_RESET_OFFSET(SRST_PRESETN_DSMC, 44, 8),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_DSMC, 44, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_DSMC, 44, 11),
+	CRU_RESET_OFFSET(SRST_PRESETN_DSMC_GRF, 44, 13),
+
+	/* CRU-->SOFTRST_CON45 */
+	CRU_RESET_OFFSET(SRST_PRESETN_NVM1_GRF, 45, 3),
+	CRU_RESET_OFFSET(SRST_PRESETN_NVM1_BIU, 45, 4),
+	CRU_RESET_OFFSET(SRST_HRESETN_NVM1_BIU, 45, 6),
+	CRU_RESET_OFFSET(SRST_HRESETN_SDMMC0, 45, 8),
+	CRU_RESET_OFFSET(SRST_SRESETN_FSPI1, 45, 11),
+	CRU_RESET_OFFSET(SRST_HRESETN_FSPI1, 45, 12),
+
+	/* CRU-->SOFTRST_CON46 */
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_NVM1, 46, 4),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_NVM1, 46, 5),
+
+	/* CRU-->SOFTRST_CON50 */
+	CRU_RESET_OFFSET(SRST_HRESETN_RKVDEC, 50, 3),
+	CRU_RESET_OFFSET(SRST_HRESETN_RKVDEC_BIU, 50, 5),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKVDEC_BIU, 50, 6),
+	CRU_RESET_OFFSET(SRST_RESETN_RKVDEC_HEVC_CA, 50, 8),
+	CRU_RESET_OFFSET(SRST_RESETN_RKVDEC_CORE, 50, 9),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VDEC, 50, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VDEC, 50, 11),
+	CRU_RESET_OFFSET(SRST_PRESETN_VDEC_BIU, 50, 14),
+	CRU_RESET_OFFSET(SRST_PRESETN_VDEC_GRF, 50, 15),
+
+	/* CRU-->SOFTRST_CON52 */
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_MIPI_HDMI_SUBVO, 52, 1),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_MIPI_HDMI_SUBVO, 52, 2),
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO0_3_SUBVO, 52, 7),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO0_3_SUBVO, 52, 8),
+	CRU_RESET_OFFSET(SRST_PRESETN_HDPTXPHY, 52, 9),
+	CRU_RESET_OFFSET(SRST_PRESETN_HDPTXPHY_GRF, 52, 10),
+	CRU_RESET_OFFSET(SRST_PRESETN_MIPI_DPHY0, 52, 11),
+
+	/* CRU-->SOFTRST_CON53 */
+	CRU_RESET_OFFSET(SRST_RESETN_HDPTX_INIT, 53, 0),
+	CRU_RESET_OFFSET(SRST_RESETN_HDPTX_CMN, 53, 1),
+	CRU_RESET_OFFSET(SRST_RESETN_HDPTX_LANE, 53, 2),
+	CRU_RESET_OFFSET(SRST_PRESETN_IOC_SUBVO, 53, 3),
+	CRU_RESET_OFFSET(SRST_RESETN_GMAC1_SUBVO_ASYNC, 53, 4),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_SUBSYSVO, 53, 5),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_SUBSYSVO, 53, 6),
+
+	/* CRU-->SOFTRST_CON54 */
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO1_2_4_SUBVI, 54, 1),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO1_2_4_SUBVI, 54, 2),
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_CSIPHY_SUBVI, 54, 3),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_CSIPHY_SUBVI, 54, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_CSIPHY0, 54, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_CSIPHY0_GRF, 54, 6),
+	CRU_RESET_OFFSET(SRST_PRESETN_CSIPHY1, 54, 7),
+	CRU_RESET_OFFSET(SRST_PRESETN_CSIPHY1_GRF, 54, 8),
+	CRU_RESET_OFFSET(SRST_PRESETN_IOC_SUBVI, 54, 9),
+	CRU_RESET_OFFSET(SRST_RESETN_GMAC0_SUBVI_ASYNC, 54, 10),
+	CRU_RESET_OFFSET(SRST_SCAN_RESETN_CSIPHY0, 54, 11),
+	CRU_RESET_OFFSET(SRST_SCAN_RESETN_CSIPHY1, 54, 12),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_SUBSYSVI, 54, 14),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_SUBSYSVI, 54, 15),
+
+	/* CRU-->SOFTRST_CON56 */
+	CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_VCCIO5_6_SUBDSMC, 56, 3),
+	CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_VCCIO5_6_SUBDSMC, 56, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_VCCIO5_6, 56, 5),
+	CRU_RESET_OFFSET(SRST_RESETN_GMAC1_ASYNC, 56, 6),
+
+	/* CRU-->SOFTRST_CON57 */
+	CRU_RESET_OFFSET(SRST_PRESETN_IMG_BIU, 57, 7),
+	CRU_RESET_OFFSET(SRST_PRESETN_IMG_GRF, 57, 8),
+	CRU_RESET_OFFSET(SRST_HRESETN_IMG_BIU, 57, 9),
+	CRU_RESET_OFFSET(SRST_ARESETN_JPEG_BIU, 57, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_IMG, 57, 11),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_IMG, 57, 12),
+	CRU_RESET_OFFSET(SRST_ARESETN_RGA_BIU, 57, 13),
+	CRU_RESET_OFFSET(SRST_ARESETN_VDPP_BIU, 57, 14),
+	CRU_RESET_OFFSET(SRST_ARESETN_EBC_BIU, 57, 15),
+
+	/* CRU-->SOFTRST_CON58 */
+	CRU_RESET_OFFSET(SRST_HRESETN_RGA2E_0, 58, 0),
+	CRU_RESET_OFFSET(SRST_ARESETN_RGA2E_0, 58, 1),
+	CRU_RESET_OFFSET(SRST_RESETN_CORE_RGA2E_0, 58, 2),
+	CRU_RESET_OFFSET(SRST_ARESETN_JPEG, 58, 3),
+	CRU_RESET_OFFSET(SRST_HRESETN_JPEG, 58, 4),
+	CRU_RESET_OFFSET(SRST_HRESETN_VDPP, 58, 5),
+	CRU_RESET_OFFSET(SRST_ARESETN_VDPP, 58, 6),
+	CRU_RESET_OFFSET(SRST_RESETN_CORE_VDPP, 58, 7),
+	CRU_RESET_OFFSET(SRST_HRESETN_EBC, 58, 13),
+	CRU_RESET_OFFSET(SRST_ARESETN_EBC, 58, 14),
+	CRU_RESET_OFFSET(SRST_DRESETN_EBC, 58, 15),
+
+	/* CRU-->SOFTRST_CON60 */
+	CRU_RESET_OFFSET(SRST_HRESETN_RKVENC_BIU, 60, 2),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKVENC_BIU, 60, 3),
+	CRU_RESET_OFFSET(SRST_HRESETN_RKVENC, 60, 4),
+	CRU_RESET_OFFSET(SRST_ARESETN_RKVENC, 60, 5),
+	CRU_RESET_OFFSET(SRST_RESETN_RKVENC_CORE, 60, 6),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VENC, 60, 7),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VENC, 60, 8),
+
+	/* CRU-->SOFTRST_CON63 */
+	CRU_RESET_OFFSET(SRST_ARESETN_VI_BIU, 63, 3),
+	CRU_RESET_OFFSET(SRST_HRESETN_VI_BIU, 63, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_VI_BIU, 63, 5),
+	CRU_RESET_OFFSET(SRST_DRESETN_VICAP, 63, 6),
+	CRU_RESET_OFFSET(SRST_ARESETN_VICAP, 63, 7),
+	CRU_RESET_OFFSET(SRST_HRESETN_VICAP, 63, 8),
+	CRU_RESET_OFFSET(SRST_RESETN_ISP, 63, 10),
+	CRU_RESET_OFFSET(SRST_RESETN_ISP_VICAP, 63, 11),
+
+	/* CRU-->SOFTRST_CON64 */
+	CRU_RESET_OFFSET(SRST_RESETN_CORE_VPSS, 64, 1),
+	CRU_RESET_OFFSET(SRST_PRESETN_VI_GRF, 64, 2),
+	CRU_RESET_OFFSET(SRST_PRESETN_CSI_HOST_0, 64, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_CSI_HOST_1, 64, 5),
+	CRU_RESET_OFFSET(SRST_PRESETN_CSI_HOST_2, 64, 6),
+	CRU_RESET_OFFSET(SRST_PRESETN_CSI_HOST_3, 64, 7),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VI, 64, 14),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VI, 64, 15),
+
+	/* CRU-->SOFTRST_CON72 */
+	CRU_RESET_OFFSET(SRST_RESETN_CIFIN, 72, 0),
+
+	/* CRU-->SOFTRST_CON74 */
+	CRU_RESET_OFFSET(SRST_ARESETN_VOP_BIU, 74, 4),
+	CRU_RESET_OFFSET(SRST_ARESETN_VOP_FW, 74, 5),
+	CRU_RESET_OFFSET(SRST_HRESETN_VOP_BIU, 74, 6),
+	CRU_RESET_OFFSET(SRST_PRESETN_VOP_BIU, 74, 7),
+	CRU_RESET_OFFSET(SRST_HRESETN_VOP, 74, 8),
+	CRU_RESET_OFFSET(SRST_ARESETN_VOP, 74, 9),
+	CRU_RESET_OFFSET(SRST_DRESETN_VP0, 74, 13),
+
+	/* CRU-->SOFTRST_CON75 */
+	CRU_RESET_OFFSET(SRST_DRESETN_VP1, 75, 0),
+	CRU_RESET_OFFSET(SRST_PRESETN_VOPGRF, 75, 3),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VOP, 75, 4),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VOP, 75, 5),
+
+	/* CRU-->SOFTRST_CON78 */
+	CRU_RESET_OFFSET(SRST_PRESETN_DSIHOST0, 78, 1),
+	CRU_RESET_OFFSET(SRST_HRESETN_VO_BIU, 78, 10),
+	CRU_RESET_OFFSET(SRST_PRESETN_VO_BIU, 78, 12),
+	CRU_RESET_OFFSET(SRST_ARESETN_HDCP0_BIU, 78, 14),
+	CRU_RESET_OFFSET(SRST_PRESETN_VO_GRF, 78, 15),
+
+	/* CRU-->SOFTRST_CON79 */
+	CRU_RESET_OFFSET(SRST_PRESETN_HDCP0_TRNG_NS, 79, 0),
+	CRU_RESET_OFFSET(SRST_ARESETN_HDCP0, 79, 1),
+	CRU_RESET_OFFSET(SRST_HRESETN_HDCP0, 79, 2),
+	CRU_RESET_OFFSET(SRST_RESETN_HDCP0, 79, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_HDMITX0, 79, 14),
+	CRU_RESET_OFFSET(SRST_RESETN_HDMITX0_EARC, 79, 15),
+
+	/* CRU-->SOFTRST_CON80 */
+	CRU_RESET_OFFSET(SRST_RESETN_HDMITX0_REF, 80, 0),
+	CRU_RESET_OFFSET(SRST_PRESETN_EDP0, 80, 2),
+	CRU_RESET_OFFSET(SRST_RESETN_EDP0_24M, 80, 3),
+	CRU_RESET_OFFSET(SRST_MRESETN_SAI4, 80, 6),
+	CRU_RESET_OFFSET(SRST_HRESETN_SAI4, 80, 7),
+	CRU_RESET_OFFSET(SRST_MRESETN_SAI5, 80, 9),
+	CRU_RESET_OFFSET(SRST_HRESETN_SAI5, 80, 10),
+	CRU_RESET_OFFSET(SRST_HRESETN_SPDIF_TX2, 80, 11),
+	CRU_RESET_OFFSET(SRST_MRESETN_SPDIF_TX2, 80, 13),
+	CRU_RESET_OFFSET(SRST_HRESETN_SPDIF_RX1, 80, 14),
+	CRU_RESET_OFFSET(SRST_MRESETN_SPDIF_RX1, 80, 15),
+
+	/* CRU-->SOFTRST_CON81 */
+	CRU_RESET_OFFSET(SRST_RESETN_EBC_VOP_DCLK_VO, 81, 2),
+
+	/* CRU-->SOFTRST_CON82 */
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_VO, 82, 9),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_VO, 82, 10),
+
+	/* CRU-->SOFTRST_CON84 */
+	CRU_RESET_OFFSET(SRST_RESETN_GPU, 84, 3),
+	CRU_RESET_OFFSET(SRST_SYSRESETN_GPU, 84, 4),
+	CRU_RESET_OFFSET(SRST_PRESETN_GPU_BIU, 84, 8),
+	CRU_RESET_OFFSET(SRST_PORESETN_GPU_JTAG, 84, 10),
+	CRU_RESET_OFFSET(SRST_PRESETN_GPU_GRF, 84, 12),
+	CRU_RESET_OFFSET(SRST_RESETN_GPU_PVTPLL, 84, 13),
+	CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_GPU, 84, 14),
+	CRU_RESET_OFFSET(SRST_ARESETN_SLV_GPU_BIU, 84, 15),
+
+	/* CRU-->SOFTRST_CON85 */
+	CRU_RESET_OFFSET(SRST_ARESETN_GPU_BIU, 85, 0),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_GPU, 85, 1),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_GPU, 85, 2),
+
+	/* CRU-->SOFTRST_CON86 */
+	CRU_RESET_OFFSET(SRST_ARESETN_CENTER_BIU, 86, 4),
+	CRU_RESET_OFFSET(SRST_ARESETN_CENTER_FW_DDR, 86, 5),
+	CRU_RESET_OFFSET(SRST_ARESETN_CENTER_FW_GPU, 86, 7),
+	CRU_RESET_OFFSET(SRST_ARESETN_DMA2DDR, 86, 8),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_SHAREMEM, 86, 9),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_SHAREMEM_BIU, 86, 10),
+	CRU_RESET_OFFSET(SRST_ARESETN_DDR_SHAREMEM_FW, 86, 11),
+	CRU_RESET_OFFSET(SRST_HRESETN_CENTER_BIU, 86, 12),
+	CRU_RESET_OFFSET(SRST_HRESETN_CENTER_FW, 86, 13),
+	CRU_RESET_OFFSET(SRST_PRESETN_CENTER_GRF, 86, 14),
+	CRU_RESET_OFFSET(SRST_PRESETN_DMA2DDR, 86, 15),
+
+	/* CRU-->SOFTRST_CON87 */
+	CRU_RESET_OFFSET(SRST_PRESETN_CENTER_BIU, 87, 1),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_CENTER, 87, 2),
+	CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_CENTER, 87, 3),
+	CRU_RESET_OFFSET(SRST_RESETN_LINKSYM_HDMITXPHY0, 87, 9),
+
+	/* PHPPHY_CRU-->SOFTRST_CON00 */
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PHPPHY_CRU, 0, 1),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIE2_COMBOPHY0, 0, 4),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIE2_COMBOPHY0_GRF, 0, 5),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIE2_COMBOPHY1, 0, 6),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIE2_COMBOPHY1_GRF, 0, 7),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_USBPHY_GRF_0, 0, 8),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_USBPHY_GRF_1, 0, 9),
+	PHPPHY_CRU_RESET_OFFSET(SRST_RESETN_MPHY_INIT, 0, 10),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_MPHY_GRF, 0, 11),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_VCCIO7_IOC, 0, 12),
+	PHPPHY_CRU_RESET_OFFSET(SRST_RESETN_USB2DEBUG, 0, 13),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIEPHY2, 0, 14),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_PCIEPHY2_GRF, 0, 15),
+
+	/* PHPPHY_CRU-->SOFTRST_CON01 */
+	PHPPHY_CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_USBMPHY_PHPPHY, 1, 0),
+	PHPPHY_CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_USBMPHY_PHPPHY, 1, 1),
+	PHPPHY_CRU_RESET_OFFSET(SRST_RESETN_OTGPHY_0, 1, 4),
+	PHPPHY_CRU_RESET_OFFSET(SRST_RESETN_OTGPHY_1, 1, 5),
+	PHPPHY_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_PHPPHY, 1, 6),
+	PHPPHY_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_PHPPHY, 1, 7),
+
+	/* PHPPHY_CRU-->SOFTRST_CON02 */
+	PHPPHY_CRU_RESET_OFFSET(SRST_RESETN_PCIEPHY2, 2, 4),
+	PHPPHY_CRU_RESET_OFFSET(SRST_RESETN_PCIE0_PIPE_PHY, 2, 5),
+	PHPPHY_CRU_RESET_OFFSET(SRST_RESETN_PCIE1_PIPE_PHY, 2, 8),
+
+	/* SECURE_CRU-->SOFTRST_CON00 */
+	SECURE_CRU_RESET_OFFSET(SRST_HRESETN_CRYPTO_NS, 0, 3),
+	SECURE_CRU_RESET_OFFSET(SRST_HRESETN_TRNG_NS, 0, 4),
+	SECURE_CRU_RESET_OFFSET(SRST_PRESETN_SECURE_NS_BIU, 0, 5),
+	SECURE_CRU_RESET_OFFSET(SRST_ARESETN_SECURE_HIGH_BIU, 0, 6),
+	SECURE_CRU_RESET_OFFSET(SRST_HRESETN_SECURE_NS_BIU, 0, 7),
+	SECURE_CRU_RESET_OFFSET(SRST_PRESETN_OTPC_NS, 0, 8),
+	SECURE_CRU_RESET_OFFSET(SRST_RESETN_OTPC_NS, 0, 9),
+
+	/* PMU1_CRU-->SOFTRST_CON03 */
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_APB2ASB_PMU1, 3, 6),
+	PMU1_CRU_RESET_OFFSET(SRST_SRESETN_APB2ASB_PMU1, 3, 7),
+	PMU1_CRU_RESET_OFFSET(SRST_HRESETN_PMU1_BIU, 3, 9),
+	PMU1_CRU_RESET_OFFSET(SRST_HRESETN_PMU1_FW, 3, 10),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU1_BIU, 3, 11),
+	PMU1_CRU_RESET_OFFSET(SRST_HRESETN_PMU_CM0_BIU, 3, 12),
+	PMU1_CRU_RESET_OFFSET(SRST_CORERESETN_N100, 3, 13),
+	PMU1_CRU_RESET_OFFSET(SRST_PORESETN_N100, 3, 14),
+
+	/* PMU1_CRU-->SOFTRST_CON04 */
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_CRU_PMU1, 4, 2),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU1_GRF, 4, 4),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU1_IOC, 4, 5),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU1WDT, 4, 6),
+	PMU1_CRU_RESET_OFFSET(SRST_TRESETN_PMU1WDT, 4, 7),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMUTIMER, 4, 8),
+	PMU1_CRU_RESET_OFFSET(SRST_RESETN_PMUTIMER0, 4, 10),
+	PMU1_CRU_RESET_OFFSET(SRST_RESETN_PMUTIMER1, 4, 11),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_PWM0, 4, 12),
+	PMU1_CRU_RESET_OFFSET(SRST_RESETN_PWM0, 4, 13),
+
+	/* PMU1_CRU-->SOFTRST_CON05 */
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_I2C0, 5, 2),
+	PMU1_CRU_RESET_OFFSET(SRST_RESETN_I2C0, 5, 3),
+	PMU1_CRU_RESET_OFFSET(SRST_SRESETN_UART1, 5, 6),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_UART1, 5, 7),
+	PMU1_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_PMU1, 5, 12),
+	PMU1_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_PMU1, 5, 13),
+	PMU1_CRU_RESET_OFFSET(SRST_RESETN_PDM0, 5, 14),
+
+	/* PMU1_CRU-->SOFTRST_CON06 */
+	PMU1_CRU_RESET_OFFSET(SRST_HRESETN_PDM0, 6, 0),
+	PMU1_CRU_RESET_OFFSET(SRST_MRESETN_PDM0, 6, 1),
+	PMU1_CRU_RESET_OFFSET(SRST_HRESETN_VAD, 6, 2),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_RCOSC, 6, 10),
+	PMU1_CRU_RESET_OFFSET(SRST_RESETN_RCOSC, 6, 11),
+
+	/* PMU1_CRU-->SOFTRST_CON07 */
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU0GRF, 7, 4),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_PMU0IOC, 7, 5),
+	PMU1_CRU_RESET_OFFSET(SRST_PRESETN_GPIO0, 7, 6),
+	PMU1_CRU_RESET_OFFSET(SRST_DBRESETN_GPIO0, 7, 7),
+
+	/* DDR0_CRU-->SOFTRST_CON00 */
+	DDR0_CRU_RESET_OFFSET(SRST_RESETN_DDRPHY1X, 0, 1),
+
+	/* DDR0_CRU-->SOFTRST_CON01 */
+	DDR0_CRU_RESET_OFFSET(SRST_PRESETN_DDRPHY_CRU, 1, 3),
+	DDR0_CRU_RESET_OFFSET(SRST_PRESETN_DDRPHY, 1, 4),
+
+	/* BIGCORE_CRU-->SOFTRST_CON00 */
+	BIGCORE_CRU_RESET_OFFSET(SRST_RESETN_REF_PVTPLL_BIGCORE, 0, 4),
+	BIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_BIGCORE_BIU, 0, 6),
+	BIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_BIGCORE_GRF, 0, 7),
+	BIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_BIGCORE_CRU, 0, 8),
+	BIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_BIGCORE, 0, 9),
+	BIGCORE_CRU_RESET_OFFSET(SRST_NBIGCOREPORESET0, 0, 12),
+	BIGCORE_CRU_RESET_OFFSET(SRST_NBIGCOREPORESET1, 0, 13),
+	BIGCORE_CRU_RESET_OFFSET(SRST_NBIGCORESET0, 0, 14),
+	BIGCORE_CRU_RESET_OFFSET(SRST_NBIGCORESET1, 0, 15),
+
+	/* BIGCORE_CRU-->SOFTRST_CON01 */
+	BIGCORE_CRU_RESET_OFFSET(SRST_NL2RESET_BIGCORE, 1, 0),
+	BIGCORE_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_A73_ACE, 1, 4),
+	BIGCORE_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_BIGCORE, 1, 5),
+	BIGCORE_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_BIGCORE, 1, 6),
+	BIGCORE_CRU_RESET_OFFSET(SRST_PRESETN_DBG_BIGCORE, 1, 7),
+
+	/* LITCORE0_CRU-->SOFTRST_CON00 */
+	LITCORE0_CRU_RESET_OFFSET(SRST_RESETN_REF_LITCORE0_PVTPLL, 0, 0),
+	LITCORE0_CRU_RESET_OFFSET(SRST_NLITCOREPORESET0, 0, 4),
+	LITCORE0_CRU_RESET_OFFSET(SRST_NLITCOREPORESET1, 0, 5),
+	LITCORE0_CRU_RESET_OFFSET(SRST_NLITCOREPORESET2, 0, 6),
+	LITCORE0_CRU_RESET_OFFSET(SRST_NLITCOREPORESET3, 0, 7),
+	LITCORE0_CRU_RESET_OFFSET(SRST_NLITCORESET0, 0, 8),
+	LITCORE0_CRU_RESET_OFFSET(SRST_NLITCORESET1, 0, 9),
+	LITCORE0_CRU_RESET_OFFSET(SRST_NLITCORESET2, 0, 10),
+	LITCORE0_CRU_RESET_OFFSET(SRST_NLITCORESET3, 0, 11),
+	LITCORE0_CRU_RESET_OFFSET(SRST_NL2RESET_LITCORE0, 0, 12),
+	LITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_DBG_LITCORE0, 0, 14),
+	LITCORE0_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_A53_ACE_LITCORE0, 0, 15),
+
+	/* LITCORE0_CRU-->SOFTRST_CON01 */
+	LITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE0_GRF, 1, 2),
+	LITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE0_BIU, 1, 3),
+	LITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_LITCORE0, 1, 4),
+	LITCORE0_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE0_CRU, 1, 5),
+	LITCORE0_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_LITCORE0, 1, 6),
+	LITCORE0_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_LITCORE0, 1, 7),
+
+	/* LITCORE1_CRU-->SOFTRST_CON00 */
+	LITCORE1_CRU_RESET_OFFSET(SRST_RESETN_REF_LITCORE1_PVTPLL, 0, 0),
+	LITCORE1_CRU_RESET_OFFSET(SRST_NLITCOREPORESET4, 0, 4),
+	LITCORE1_CRU_RESET_OFFSET(SRST_NLITCOREPORESET5, 0, 5),
+	LITCORE1_CRU_RESET_OFFSET(SRST_NLITCORESET4, 0, 6),
+	LITCORE1_CRU_RESET_OFFSET(SRST_NLITCORESET5, 0, 7),
+	LITCORE1_CRU_RESET_OFFSET(SRST_NL2RESET_LITCORE1, 0, 8),
+	LITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_DBG_LITCORE1, 0, 10),
+	LITCORE1_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_A53_ACE_LITCORE1, 0, 11),
+	LITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE1_GRF, 0, 14),
+	LITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE1_BIU, 0, 15),
+
+	/* LITCORE1_CRU-->SOFTRST_CON01 */
+	LITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_LITCORE1, 1, 0),
+	LITCORE1_CRU_RESET_OFFSET(SRST_PRESETN_LITCORE1_CRU, 1, 1),
+	LITCORE1_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_LITCORE1, 1, 2),
+	LITCORE1_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_LITCORE1, 1, 3),
+
+	/* CCI_CRU-->SOFTRST_CON01 */
+	CCI_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_24M_CCI, 1, 7),
+	CCI_CRU_RESET_OFFSET(SRST_RESETN_TEST_JUDGE_CCI, 1, 8),
+	CCI_CRU_RESET_OFFSET(SRST_ARESETN_CPE, 1, 11),
+	CCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_BIU, 1, 12),
+	CCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_FW, 1, 13),
+	CCI_CRU_RESET_OFFSET(SRST_ARESETN_CCI_BIU, 1, 14),
+	CCI_CRU_RESET_OFFSET(SRST_ARESETN_CCI_FW, 1, 15),
+
+	/* CCI_CRU-->SOFTRST_CON02 */
+	CCI_CRU_RESET_OFFSET(SRST_PRESETN_DBG_SYS, 2, 0),
+	CCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_GRF, 2, 1),
+	CCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_CRU, 2, 2),
+	CCI_CRU_RESET_OFFSET(SRST_ARESETN_CCI, 2, 3),
+	CCI_CRU_RESET_OFFSET(SRST_PORESETN_JTAG, 2, 4),
+	CCI_CRU_RESET_OFFSET(SRST_PRESETN_DBG_M, 2, 5),
+	CCI_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_CCI_A73, 2, 6),
+	CCI_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_CCI_A53_0, 2, 7),
+	CCI_CRU_RESET_OFFSET(SRST_ARESETN_ADB400_CCI_A53_1, 2, 8),
+	CCI_CRU_RESET_OFFSET(SRST_PRESETN_PVTPLL_CCI, 2, 9),
+	CCI_CRU_RESET_OFFSET(SRST_PRESETN_CCI_SPINLOCK, 2, 10),
+	CCI_CRU_RESET_OFFSET(SRST_PRESETN_DBG_M_BIU, 2, 11),
+	CCI_CRU_RESET_OFFSET(SRST_RESETN_REF_CCI_PVTPLL, 2, 12),
+};
+
+void rk3572_rst_init(struct device_node *np, void __iomem *reg_base)
+{
+	rockchip_register_softrst_lut(np,
+				      rk3572_register_offset,
+				      ARRAY_SIZE(rk3572_register_offset),
+				      reg_base + RK3572_SOFTRST_CON(0),
+				      ROCKCHIP_SOFTRST_HIWORD_MASK);
+}
+EXPORT_SYMBOL_GPL(rk3572_rst_init);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Rockchip RK3572 Soft Reset Driver");
+MODULE_AUTHOR("Elaine Zhang <zhangqing@rock-chips.com>");
diff --git a/include/dt-bindings/clock/rockchip,rk3572-cru.h b/include/dt-bindings/clock/rockchip,rk3572-cru.h
new file mode 100644
index 00000000000000..1d0e18232e1061
--- /dev/null
+++ b/include/dt-bindings/clock/rockchip,rk3572-cru.h
@@ -0,0 +1,559 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
+ * Author: Elaine Zhang <zhangqing@rock-chips.com>
+ */
+#ifndef _DT_BINDINGS_CLK_ROCKCHIP_RK3572_H
+#define _DT_BINDINGS_CLK_ROCKCHIP_RK3572_H
+
+/* PLLs */
+#define PLL_PPLL				0
+#define PLL_BPLL				1
+#define PLL_LPLL				2
+#define PLL_AUPLL				3
+#define PLL_CPLL				4
+#define PLL_GPLL				5
+#define PLL_VPLL				6
+#define ARMCLK_L0				7
+#define ARMCLK_L1				8
+#define ARMCLK_B				9
+
+#define CLK_CPLL_DIV20				10
+#define CLK_CPLL_DIV10				11
+#define CLK_GPLL_DIV8				12
+#define CLK_GPLL_DIV6				13
+#define CLK_CPLL_DIV4				14
+#define CLK_GPLL_DIV4				15
+#define CLK_GPLL_DIV3				16
+#define CLK_CPLL_DIV2				17
+#define CLK_GPLL_DIV2				18
+#define CLK_DDRPHY_TOP_SRC			19
+#define PCLK_TOP_ROOT				20
+#define ACLK_TOP				21
+#define ACLK_TOP_MID				22
+#define ACLK_SECURE_HIGH			23
+#define CLK_BPLL_DIV				24
+#define CLK_AUDIO_FRAC_0			25
+#define CLK_AUDIO_FRAC_1			26
+#define CLK_AUDIO_FRAC_2			27
+#define CLK_AUDIO_FRAC_3			28
+#define CLK_AUDIO_FRAC_0_SRC			29
+#define CLK_AUDIO_FRAC_1_SRC			30
+#define CLK_AUDIO_FRAC_2_SRC			31
+#define CLK_AUDIO_FRAC_3_SRC			32
+#define HCLK_TOP				33
+#define CLK_UART_FRAC_0				34
+#define CLK_UART_FRAC_1				35
+#define CLK_UART_FRAC_2				36
+#define CLK_UART_FRAC_0_SRC			37
+#define CLK_UART_FRAC_1_SRC			38
+#define CLK_UART_FRAC_2_SRC			39
+
+#define CLK_UART1_SRC_TOP			40
+#define CLK_AUDIO_INT_0				41
+#define CLK_AUDIO_INT_1				42
+#define CLK_AUDIO_INT_2				43
+#define CLK_PDM0_SRC_TOP			44
+#define CLK_GMAC0_125M_SRC			45
+#define CLK_GMAC1_125M_SRC			46
+#define MCLK_ASRC0_SRC_0			47
+#define MCLK_ASRC1_SRC_1			48
+#define REF_CLK0_OUT_PLL			49
+#define REF_CLK1_OUT_PLL			50
+#define REF_CLK2_OUT_PLL			51
+#define REF_PULSE_CLK_AUDIO_FRAC_0		52
+#define REF_PULSE_CLK_AUDIO_FRAC_1		53
+#define REF_PULSE_CLK_AUDIO_FRAC_2		54
+#define REF_PULSE_FRACDIV_3			55
+#define REF_PULSE_AUPLL				56
+#define CLK_SAI1_MCLKOUT			57
+#define CLK_SAI2_MCLKOUT			58
+#define CLK_SAI3_MCLKOUT			59
+#define CLK_SAI0_MCLKOUT			60
+#define REFCLKO25M_GMAC0_OUT			61
+#define REFCLKO25M_GMAC1_OUT			62
+#define CLK_CIFOUT_OUT				63
+#define CLK_GMAC0_RMII_CRU			64
+#define CLK_GMAC1_RMII_CRU			65
+#define CLK_OTPC_AUTO_RD_G			66
+#define CAM_CLK0_OUT_IOUT			67
+#define CAM_CLK1_OUT_IOUT			68
+#define CAM_CLK2_OUT_IOUT			69
+#define MCLK_PDM0_SRC_TOP			70
+#define HCLK_AUDIO_ROOT				71
+#define HCLK_ASRC_2CH_0				72
+#define HCLK_ASRC_2CH_1				73
+#define CLK_ASRC_2CH_0				74
+#define CLK_ASRC_2CH_1				75
+#define MCLK_SAI0				76
+#define HCLK_SAI0				77
+#define HCLK_SPDIF_RX0				78
+#define MCLK_SPDIF_RX0				79
+#define MCLK_SAI1				80
+#define HCLK_SAI1				81
+#define MCLK_SAI2				82
+#define HCLK_SAI2				83
+#define MCLK_SAI3				84
+#define HCLK_SAI3				85
+#define LRCK_ASRC_2CH0_SRC			86
+#define LRCK_ASRC_2CH0_DST			87
+#define LRCK_ASRC_2CH1_SRC			88
+#define LRCK_ASRC_2CH1_DST			89
+#define HCLK_ACDCDIG_DSM			90
+#define MCLK_ACDCDIG_DSM			91
+#define PCLK_AUDIO_ROOT				92
+#define HCLK_SPDIF_TX0				93
+#define MCLK_SPDIF_TX0				94
+#define HCLK_SPDIF_TX1				95
+#define MCLK_SPDIF_TX1				96
+#define ASRC_REF_PULSE				97
+#define HCLK_BUS_ROOT				98
+#define PCLK_BUS_ROOT				99
+#define ACLK_BUS_ROOT				100
+#define HCLK_CAN0				101
+#define CLK_CAN0				102
+#define HCLK_CAN1				103
+#define CLK_CAN1				104
+#define HCLK_CAN2				105
+#define CLK_CAN2				106
+#define HCLK_CAN3				107
+#define CLK_CAN3				108
+#define ACLK_DECOM_ROOT				109
+#define AUPLL_REF				110
+#define PCLK_I2C1				111
+#define PCLK_I2C2				112
+#define PCLK_I2C3				113
+#define PCLK_I2C4				114
+#define PCLK_I2C5				115
+#define PCLK_I2C6				116
+#define PCLK_I2C7				117
+#define PCLK_I2C8				118
+#define PCLK_I2C9				119
+#define PCLK_WDT_BUSMCU				120
+#define TCLK_WDT_BUSMCU				121
+#define ACLK_GIC				122
+#define CLK_I2C1				123
+#define CLK_I2C2				124
+#define CLK_I2C3				125
+#define CLK_I2C4				126
+#define CLK_I2C5				127
+#define CLK_I2C6				128
+#define CLK_I2C7				129
+#define CLK_I2C8				130
+#define CLK_I2C9				131
+#define PCLK_SARADC				132
+#define CLK_SARADC				133
+#define PCLK_TSADC				134
+#define CLK_TSADC				135
+#define PCLK_UART0				136
+#define PCLK_UART2				137
+#define PCLK_UART3				138
+#define PCLK_UART4				139
+#define PCLK_UART5				140
+#define PCLK_UART6				141
+#define PCLK_UART7				142
+#define PCLK_UART8				143
+#define PCLK_UART9				144
+#define PCLK_UART10				145
+#define PCLK_UART11				146
+#define SCLK_UART0				147
+#define SCLK_UART2				148
+#define SCLK_UART3				149
+#define SCLK_UART4				150
+#define SCLK_UART5				151
+#define SCLK_UART6				152
+#define SCLK_UART7				153
+#define SCLK_UART8				154
+#define SCLK_UART9				155
+#define SCLK_UART10				156
+#define SCLK_UART11				157
+#define PCLK_SPI0				158
+#define PCLK_SPI1				159
+#define PCLK_SPI2				160
+#define PCLK_SPI3				161
+#define PCLK_SPI4				162
+#define CLK_SPI0				163
+#define CLK_SPI1				164
+#define CLK_SPI2				165
+#define CLK_SPI3				166
+#define CLK_SPI4				167
+#define PCLK_WDT0				168
+#define TCLK_WDT0				169
+#define PCLK_PWM1				170
+#define CLK_PWM1				171
+#define CLK_OSC_PWM1				172
+#define CLK_RC_PWM1				173
+#define CLK_FREQ_PWM1				174
+#define CLK_COUNTER_PWM1			175
+#define PCLK_PWM2				176
+#define CLK_PWM2				177
+#define CLK_RC_PWM2				178
+#define CLK_OSC_PWM2				179
+#define SAI_SCLKIN_FREQ				180
+#define SAI_SCLKIN_COUNTER			181
+#define PCLK_BUSTIMER0				182
+#define PCLK_BUSTIMER1				183
+#define CLK_TIMER0_ROOT				184
+#define CLK_TIMER0				185
+#define CLK_TIMER1				186
+#define CLK_TIMER2				187
+#define CLK_TIMER3				188
+#define CLK_TIMER4				189
+#define CLK_TIMER5				190
+#define PCLK_MAILBOX0				191
+#define PCLK_GPIO1				192
+#define DBCLK_GPIO1				193
+#define PCLK_GPIO2				194
+#define DBCLK_GPIO2				195
+#define PCLK_GPIO3				196
+#define DBCLK_GPIO3				197
+#define PCLK_GPIO4				198
+#define DBCLK_GPIO4				199
+#define ACLK_DECOM				200
+#define PCLK_DECOM				201
+#define DCLK_DECOM				202
+#define CLK_TIMER1_ROOT				203
+#define CLK_TIMER6				204
+#define CLK_TIMER7				205
+#define CLK_TIMER8				206
+#define CLK_TIMER9				207
+#define CLK_TIMER10				208
+#define CLK_TIMER11				209
+#define ACLK_RKDMA0				210
+#define PCLK_RKDMA0				211
+#define ACLK_RKDMA1				212
+#define PCLK_RKDMA1				213
+#define ACLK_RKDMA2				214
+#define PCLK_RKDMA2				215
+#define ACLK_RKDMA3				216
+#define PCLK_RKDMA3				217
+#define PCLK_SPINLOCK				218
+#define CLK_I3C					219
+#define HCLK_I3C				220
+#define CLK_BUSMCU_ROOT				221
+#define CLK_BUSMCU_CORE_AON			222
+#define CLK_MTIME_TOGGLE_A			223
+#define CLK_DBG_TOGGLE_A			224
+#define CLK_MCU_AXI_INTEGRITY			225
+#define PCLK_PMU2				226
+#define CLK_HDMITXHPD				227
+#define PCLK_APB2ASB_HDMITX			228
+#define SCLK_APB2ASB_HDMITX			229
+#define PCLK_APB2ASB_MIPICSI			230
+#define SCLK_APB2ASB_MIPICSI			231
+#define PCLK_APB2ASB_VCCIO0_3			232
+#define SCLK_APB2ASB_VCCIO0_3			233
+#define PCLK_APB2ASB_VCCIO1_2_4			234
+#define SCLK_APB2ASB_VCCIO1_2_4			235
+#define PCLK_APB2ASB_VCCIO5_6			236
+#define SCLK_APB2ASB_VCCIO5_6			237
+#define PCLK_DDR_ROOT				238
+#define ACLK_DDR_ROOT				239
+#define LCLK_DDRSCH_BIU				240
+#define CLK_DDR_TIMER_ROOT			241
+#define CLK_DDR_TIMER0				242
+#define CLK_DDR_TIMER1				243
+#define TCLK_DDR_WDT				244
+#define PCLK_WDT				245
+#define PCLK_TIMER				246
+#define CLK_DDRMCU_ROOT				247
+#define CLK_DDRMCU_CORE_AON			248
+#define CLK_MTIME_TOGGLE_A_DDR			249
+#define CLK_DBG_TOGGLE_A_DDR			250
+#define ACLK_RKNN_ROOT				251
+#define ACLK_RKNN_ROOT_SRC			252
+#define ACLK_RKNN				253
+#define PCLK_RKNN_ROOT				254
+#define CLK_24M_RKNN				255
+#define CLK_NPUTIMER_ROOT			256
+#define CLK_NPUTIMER0				257
+#define CLK_NPUTIMER1				258
+#define PCLK_NPU_TIMER				259
+#define PCLK_NPU_WDT				260
+#define TCLK_NPU_WDT				261
+#define PCLK_PHP0_ROOT				262
+#define ACLK_PHP0_ROOT				263
+#define PCLK_PCIE1				264
+#define CLK_PCIE1_AUX				265
+#define ACLK_PCIE1_MSTR				266
+#define ACLK_PCIE1_SLV				267
+#define ACLK_PCIE1_DBI				268
+#define PCLK_PCIE0				269
+#define CLK_PCIE0_AUX				270
+#define ACLK_PCIE0_MSTR				271
+#define ACLK_PCIE0_SLV				272
+#define ACLK_PCIE0_DBI				273
+#define ACLK_USB3OTG1				274
+#define CLK_REF_USB3OTG1			275
+#define CLK_SUSPEND_USB3OTG1			276
+#define ACLK_GMAC0				277
+#define PCLK_GMAC0				278
+#define ACLK_UFS_ROOT				279
+#define ACLK_USB3OTG0				280
+#define CLK_REF_USB3OTG0			281
+#define CLK_SUSPEND_USB3OTG0			282
+#define ACLK_UFS_SYS				283
+#define CLK_GMAC0_PTP_REF_PRE			284
+#define CLK_GMAC0_PTP_REF_SRC			285
+#define CLK_RXOOB0				286
+#define CLK_PMALIVE0				287
+#define ACLK_SATA0				288
+#define CLK_RXOOB1				289
+#define CLK_PMALIVE1				290
+#define ACLK_SATA1				291
+#define CLK_EEE_XPCS				292
+#define PCLK_XPCS				293
+#define CLK_USB3OTG1_PIPE_PCLK			294
+#define CLK_USB3OTG1_UTMI			295
+#define CLK_USB3OTG0_PIPE_PCLK			296
+#define CLK_USB3OTG0_UTMI			297
+#define HCLK_NVM0_ROOT				298
+#define ACLK_NVM0_ROOT				299
+#define PCLK_NVM0_ROOT				300
+#define CCLK_SRC_EMMC				301
+#define HCLK_EMMC				302
+#define ACLK_EMMC				303
+#define BCLK_EMMC				304
+#define TCLK_EMMC				305
+#define CLK_GMAC1_PTP_REF_SRC			306
+#define CLK_GMAC1_PTP_REF			307
+#define ACLK_GMAC1				308
+#define PCLK_GMAC1				309
+#define SCLK_FSPI0_X2				310
+#define HCLK_FSPI0				311
+#define CCLK_SRC_SDMMC1				312
+#define HCLK_SDMMC1				313
+#define ACLK_DSMC_ROOT				314
+#define ACLK_DSMC				315
+#define HCLK_DSMC_ROOT				316
+#define HCLK_DSMC				317
+#define PCLK_DSMC_ROOT				318
+#define PCLK_DSMC				319
+#define CLK_DSMC_SYS				320
+#define HCLK_NVM1_ROOT				321
+#define PCLK_NVM1_ROOT				322
+#define CCLK_SRC_SDMMC0				323
+#define HCLK_SDMMC0				324
+#define SCLK_FSPI1_X2				325
+#define HCLK_FSPI1				326
+#define PCLK_PHPSUBSYS_ROOT			327
+#define PCLK_PCIE2_COMBOPHY0			328
+#define PCLK_PCIE2_COMBOPHY1			329
+#define PCLK_MPHY				330
+#define CLK_32K_USB2DEBUG			331
+#define PCLK_PCIEPHY2				332
+#define SCLK_APB2ASB_USBMPHY_PHPPHY		333
+#define PCLK_APB2ASB_USBMPHY_PHPPHY		334
+#define CLK_CPLL_DIV10_PHPPHY			335
+#define CLK_PHPPHY_REF				336
+#define CLK_PCIE_100M_SRC			337
+#define CLK_PCIE_100M_NDUTY_SRC			338
+#define CLK_REF_PCIEPHY2			339
+#define CLK_REF_PCIE0_INNER_PHY			340
+#define CLK_REF_PCIE1_INNER_PHY			341
+#define CLK_REF_MPHY_26M			342
+#define REF_CLK_FROM_PPLL			343
+#define HCLK_RKVDEC_ROOT			344
+#define HCLK_RKVDEC				345
+#define ACLK_RKVDEC_ROOT			346
+#define CLK_RKVDEC_HEVC_CA			347
+#define CLK_RKVDEC_CORE				348
+#define PCLK_VDEC_ROOT				349
+#define PCLK_VOSUBSYS_ROOT			350
+#define PCLK_APB2ASB_MIPI_HDMI_SUBVO		351
+#define SCLK_APB2ASB_MIPI_HDMI_SUBVO		352
+#define PCLK_APB2ASB_VCCIO0_3_SUBVO		353
+#define SCLK_APB2ASB_VCCIO0_3_SUBVO		354
+#define PCLK_HDPTXPHY				355
+#define PCLK_MIPI_DPHY0				356
+#define CLK_VOSUBSYS_REF			357
+#define PCLK_IOC_SUBVO				358
+#define PCLK_VISUBSYS_ROOT			359
+#define PCLK_APB2ASB_VCCIO1_2_4_SUBVI		360
+#define SCLK_APB2ASB_VCCIO1_2_4_SUBVI		361
+#define PCLK_APB2ASB_CSIPHY_SUBVI		362
+#define SCLK_APB2ASB_CSIPHY_SUBVI		363
+#define PCLK_CSIPHY0				364
+#define PCLK_CSIPHY1				365
+#define PCLK_IOC_SUBVI				366
+#define CLK_SDMMC_SWITCH_24M			367
+#define PCLK_DSMCSUBSYS_ROOT			368
+#define PCLK_APB2ASB_VCCIO5_6_SUBDSMC		369
+#define SCLK_APB2ASB_VCCIO5_6_SUBDSMC		370
+#define ACLK_IMG_ROOT				371
+#define ACLK_IMG_MID_ROOT			372
+#define HCLK_IMG_ROOT				373
+#define ACLK_JPEG_ROOT				374
+#define ACLK_IMG_LOW_ROOT			375
+#define PCLK_IMG_ROOT				376
+#define HCLK_RGA2E_0				377
+#define ACLK_RGA2E_0				378
+#define CLK_CORE_RGA2E_0			379
+#define ACLK_JPEG				380
+#define HCLK_JPEG				381
+#define HCLK_VDPP				382
+#define ACLK_VDPP				383
+#define CLK_CORE_VDPP				384
+#define DCLK_EBC_SRC_TOP			385
+#define DCLK_EBC_INT_SRC			386
+#define DCLK_EBC_FRAC_SRC			387
+#define HCLK_EBC				388
+#define ACLK_EBC				389
+#define DCLK_EBC				390
+#define HCLK_RKVENC_ROOT			391
+#define ACLK_RKVENC_ROOT			392
+#define HCLK_RKVENC				393
+#define ACLK_RKVENC				394
+#define CLK_RKVENC_CORE				395
+#define ACLK_VI_ROOT				396
+#define HCLK_VI_ROOT				397
+#define PCLK_VI_ROOT				398
+#define DCLK_VICAP				399
+#define ACLK_VICAP				400
+#define HCLK_VICAP				401
+#define CLK_ISP_CORE				402
+#define CLK_ISP_CORE_MARVIN			403
+#define CLK_ISP_CORE_VICAP			404
+#define ACLK_ISP				405
+#define HCLK_ISP				406
+#define ACLK_VPSS				407
+#define HCLK_VPSS				408
+#define CLK_CORE_VPSS				409
+#define PCLK_VI_GRF				410
+#define PCLK_CSI_HOST_0				411
+#define PCLK_CSI_HOST_1				412
+#define PCLK_CSI_HOST_2				413
+#define PCLK_CSI_HOST_3				414
+#define DCLK_VICAP_CSIHOST0			415
+#define DCLK_VICAP_CSIHOST1			416
+#define DCLK_VICAP_CSIHOST2			417
+#define DCLK_VICAP_CSIHOST3			418
+#define ACLK_VI_ROOT_INTER			419
+#define ACLK_VOP_ROOT				420
+#define HCLK_VOP_ROOT				421
+#define PCLK_VOP_ROOT				422
+#define HCLK_VOP				423
+#define ACLK_VOP				424
+#define DCLK_VP0_SRC				425
+#define DCLK_VP1_SRC				426
+#define DCLK_VP0				427
+#define DCLK_VP1				428
+#define CLK_EBC_VOP_DCLK2DSIHOST_0		429
+#define PCLK_DSIHOST0				430
+#define ACLK_VO_ROOT				431
+#define HCLK_VO_ROOT				432
+#define PCLK_VO_ROOT				433
+#define PCLK_HDCP0_TRNG_NS			434
+#define ACLK_HDCP0				435
+#define HCLK_HDCP0				436
+#define PCLK_HDCP0				437
+#define CLK_TRNG0_SKP				438
+#define PCLK_HDMITX0				439
+#define CLK_HDMITX0_EARC			440
+#define CLK_HDMITX0_REF				441
+#define CLK_EXTREF_TIMEOUT_VO			442
+#define PCLK_EDP0				443
+#define CLK_EDP0_24M				444
+#define CLK_EDP0_200M				445
+#define MCLK_SAI4_SRC				446
+#define MCLK_SAI4				447
+#define HCLK_SAI4				448
+#define MCLK_SAI5_SRC				449
+#define MCLK_SAI5				450
+#define HCLK_SAI5				451
+#define HCLK_SPDIF_TX2				452
+#define MCLK_SPDIF_TX2_SRC			453
+#define MCLK_SPDIF_TX2				454
+#define HCLK_SPDIF_RX1				455
+#define MCLK_SPDIF_RX1				456
+#define CLK_EBC_VOP_DCLK2HDMITX			457
+#define CLK_EBC_VOP_DCLK2EDP			458
+#define CLK_EBC_VOP_DCLK_INTER			459
+#define CLK_SAI4_MCLKOUT			460
+#define CLK_GPU_SRC				461
+#define CLK_GPU					462
+#define CLK_GPU_COREGROUP			463
+#define CLK_GPU_STACKS				464
+#define PCLK_GPU_ROOT				465
+#define ACLK_CENTER_ROOT			466
+#define ACLK_CENTER_LOW_ROOT			467
+#define HCLK_CENTER_ROOT			468
+#define PCLK_CENTER_ROOT			469
+#define ACLK_DMA2DDR				470
+#define ACLK_DDR_SHAREMEM			471
+#define PCLK_DMA2DDR				472
+#define CLK_LINK_EDP0				473
+#define CLK_CHTXD_EDP0				474
+#define CLK_DIV2_EDP0				475
+#define CLK_VOP2HDCP0_PIX_CLK			476
+#define CLK_LINKSYM_HDMITXPHY0			477
+#define CLK_XGXS_TXDIV20			478
+#define CLK_XGXS_TX				479
+#define CLK_XGXS_RXDIV20			480
+#define CLK_XGXS_RX				481
+#define HCLK_SECURE_NS_ROOT			482
+#define PCLK_SECURE_NS_ROOT			483
+#define HCLK_CRYPTO_NS				484
+#define HCLK_TRNG_NS				485
+#define PCLK_OTPC_NS				486
+#define CLK_OTPC_NS				487
+#define CLK_REF_OSC_MPHY			488
+#define CLK_REF_UFS_CLKOUT			489
+#define HCLK_PMU1_ROOT				490
+#define HCLK_PMU_CM0_ROOT			491
+#define PCLK_APB2ASB_PMU1			492
+#define SCLK_APB2ASB_PMU1			493
+#define CLK_PMUMCU_CORE_AON			494
+#define CLK_MTIME_TOGGLE_A_PMU			495
+#define PCLK_PMU1_ROOT				496
+#define PCLK_PMU1				497
+#define CLK_PMU1				498
+#define PCLK_PMU1WDT				499
+#define TCLK_PMU1WDT				500
+#define PCLK_PMUTIMER				501
+#define CLK_PMUTIMER_ROOT			502
+#define CLK_PMUTIMER0				503
+#define CLK_PMUTIMER1				504
+#define PCLK_PWM0				505
+#define CLK_PWM0				506
+#define CLK_PWM0_OSC				507
+#define PCLK_PMUPHY_ROOT			508
+#define PCLK_I2C0				509
+#define CLK_I2C0				510
+#define SCLK_UART1				511
+#define PCLK_UART1				512
+#define CLK_PWM0_RC				513
+#define CLK_PDM0				514
+#define HCLK_PDM0				515
+#define MCLK_PDM0				516
+#define HCLK_VAD				517
+#define CLK_PDM0_OUT				518
+#define PCLK_PMU0_ROOT				519
+#define PCLK_PMU0				520
+#define PCLK_GPIO0				521
+#define DBCLK_GPIO0				522
+#define SCLK_APB2ASB_SRC			523
+#define CLK_32K					524
+#define ACLK_CRYPTO_NS				525
+#define CLK_PKA_CRYPTO_NS			526
+#define PCLK_DDR_MON				527
+
+/* Secure clocks */
+#define ACLK_CCI				600
+#define SCLK_DDR				601
+#define CLK_STIMER0_ROOT			602
+#define PCLK_SECURE_S				603
+#define HCLK_SECURE_S				604
+#define ACLK_SECURE_S				605
+#define CLK_PKA_CRYPTO_S			606
+#define PCLK_KLAD				607
+#define HCLK_CRYPTO_S				608
+#define HCLK_KLAD				609
+#define ACLK_CRYPTO_S				610
+#define PCLK_OTPC_S				611
+#define CLK_OTPC_S				612
+#define PCLK_WDT_S				613
+#define TCLK_WDT_S				614
+#define HCLK_TRNG_S				615
+
+#endif
diff --git a/include/dt-bindings/reset/rockchip,rk3572-cru.h b/include/dt-bindings/reset/rockchip,rk3572-cru.h
new file mode 100644
index 00000000000000..a88af7665daef2
--- /dev/null
+++ b/include/dt-bindings/reset/rockchip,rk3572-cru.h
@@ -0,0 +1,713 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
+ * Author: Elaine Zhang <zhangqing@rock-chips.com>
+ */
+
+#ifndef _DT_BINDINGS_RESET_ROCKCHIP_RK3572_H
+#define _DT_BINDINGS_RESET_ROCKCHIP_RK3572_H
+
+/* CRU-->SOFTRST_CON01 */
+#define SRST_ARESETN_TOP_BIU                     0
+#define SRST_PRESETN_TOP_BIU                     1
+#define SRST_ARESETN_TOP_MID_BIU                 2
+#define SRST_HRESETN_TOP_BIU                     3
+
+/* CRU-->SOFTRST_CON02 */
+#define SRST_HRESETN_TOP_FW                      4
+
+/* CRU-->SOFTRST_CON06 */
+#define SRST_RESETN_TEST_JUDGE_24M_TOP           5
+#define SRST_RESETN_TEST_JUDGE_TOP               6
+
+/* CRU-->SOFTRST_CON07 */
+#define SRST_HRESETN_AUDIO_BIU                   7
+#define SRST_HRESETN_ASRC_2CH_0                  8
+#define SRST_HRESETN_ASRC_2CH_1                  9
+#define SRST_RESETN_ASRC_2CH_0                   10
+#define SRST_RESETN_ASRC_2CH_1                   11
+#define SRST_MRESETN_SAI0                        12
+#define SRST_HRESETN_SAI0                        13
+#define SRST_HRESETN_SPDIF_RX0                   14
+#define SRST_MRESETN_SPDIF_RX0                   15
+
+/* CRU-->SOFTRST_CON08 */
+#define SRST_MRESETN_SAI1                        16
+#define SRST_HRESETN_SAI1                        17
+#define SRST_MRESETN_SAI2                        18
+#define SRST_HRESETN_SAI2                        19
+#define SRST_MRESETN_SAI3                        20
+#define SRST_HRESETN_SAI3                        21
+#define SRST_HRESETN_ACDCDIG_DSM                 22
+
+/* CRU-->SOFTRST_CON09 */
+#define SRST_MRESETN_ACDCDIG_DSM                 23
+#define SRST_PRESETN_AUDIO_BIU                   24
+#define SRST_PRESETN_AUDIO_GRF                   25
+#define SRST_HRESETN_SPDIF_TX0                   26
+#define SRST_MRESETN_SPDIF_TX0                   27
+#define SRST_HRESETN_SPDIF_TX1                   28
+#define SRST_MRESETN_SPDIF_TX1                   29
+#define SRST_RESETN_TEST_JUDGE_24M_AUDIO         30
+#define SRST_RESETN_TEST_JUDGE_AUDIO             31
+
+/* CRU-->SOFTRST_CON11 */
+#define SRST_ARESETN_BUS_BIU                     32
+#define SRST_ARESETN_BUS_FW                      33
+#define SRST_PRESETN_BUS_BIU                     34
+#define SRST_PRESETN_CRU                         35
+#define SRST_HRESETN_CAN0                        36
+#define SRST_RESETN_CAN0                         37
+#define SRST_HRESETN_CAN1                        38
+#define SRST_RESETN_CAN1                         39
+#define SRST_HRESETN_CAN2                        40
+#define SRST_RESETN_CAN2                         41
+#define SRST_HRESETN_CAN3                        42
+#define SRST_RESETN_CAN3                         43
+
+/* CRU-->SOFTRST_CON12 */
+#define SRST_ARESETN_DECOM_BIU                   44
+#define SRST_HRESETN_BUS_BIU                     45
+#define SRST_RESETN_KEY_SHIFT                    46
+#define SRST_PRESETN_I2C1                        47
+#define SRST_PRESETN_I2C2                        48
+#define SRST_PRESETN_I2C3                        49
+#define SRST_PRESETN_I2C4                        50
+#define SRST_PRESETN_I2C5                        51
+#define SRST_PRESETN_I2C6                        52
+#define SRST_PRESETN_I2C7                        53
+#define SRST_PRESETN_I2C8                        54
+#define SRST_PRESETN_I2C9                        55
+#define SRST_PRESETN_WDT_BUSMCU                  56
+#define SRST_TRESETN_WDT_BUSMCU                  57
+
+/* CRU-->SOFTRST_CON13 */
+#define SRST_ARESETN_GIC                         58
+#define SRST_RESETN_I2C1                         59
+#define SRST_RESETN_I2C2                         60
+#define SRST_RESETN_I2C3                         61
+#define SRST_RESETN_I2C4                         62
+#define SRST_RESETN_I2C5                         63
+#define SRST_RESETN_I2C6                         64
+#define SRST_RESETN_I2C7                         65
+#define SRST_RESETN_I2C8                         66
+#define SRST_RESETN_I2C9                         67
+#define SRST_PRESETN_SARADC                      68
+
+/* CRU-->SOFTRST_CON14 */
+#define SRST_RESETN_SARADC                       69
+#define SRST_RESETN_SARADC_32K                   70
+#define SRST_PRESETN_TSADC                       71
+#define SRST_RESETN_TSADC                        72
+#define SRST_PRESETN_UART0                       73
+#define SRST_PRESETN_UART2                       74
+#define SRST_PRESETN_UART3                       75
+#define SRST_PRESETN_UART4                       76
+#define SRST_PRESETN_UART5                       77
+#define SRST_PRESETN_UART6                       78
+#define SRST_PRESETN_UART7                       79
+#define SRST_PRESETN_UART8                       80
+#define SRST_PRESETN_UART9                       81
+#define SRST_PRESETN_UART10                      82
+#define SRST_PRESETN_UART11                      83
+#define SRST_SRESETN_UART0                       84
+
+/* CRU-->SOFTRST_CON15 */
+#define SRST_SRESETN_UART2                       85
+#define SRST_SRESETN_UART3                       86
+#define SRST_SRESETN_UART4                       87
+#define SRST_SRESETN_UART5                       88
+#define SRST_SRESETN_UART6                       89
+#define SRST_SRESETN_UART7                       90
+
+/* CRU-->SOFTRST_CON16 */
+#define SRST_SRESETN_UART8                       91
+#define SRST_SRESETN_UART9                       92
+#define SRST_SRESETN_UART10                      93
+#define SRST_SRESETN_UART11                      94
+#define SRST_PRESETN_SPI0                        95
+#define SRST_PRESETN_SPI1                        96
+#define SRST_PRESETN_SPI2                        97
+#define SRST_PRESETN_SPI3                        98
+#define SRST_PRESETN_SPI4                        99
+#define SRST_RESETN_SPI0                         100
+#define SRST_RESETN_SPI1                         101
+#define SRST_RESETN_SPI2                         102
+#define SRST_RESETN_SPI3                         103
+
+/* CRU-->SOFTRST_CON17 */
+#define SRST_RESETN_SPI4                         104
+#define SRST_PRESETN_WDT0                        105
+#define SRST_TRESETN_WDT0                        106
+#define SRST_PRESETN_SYS_GRF                     107
+#define SRST_PRESETN_PWM1                        108
+#define SRST_RESETN_PWM1                         109
+#define SRST_PRESETN_PWM2                        110
+#define SRST_RESETN_PWM2                         111
+
+/* CRU-->SOFTRST_CON18 */
+#define SRST_PRESETN_BUSTIMER0                   112
+#define SRST_PRESETN_BUSTIMER1                   113
+#define SRST_RESETN_TIMER0                       114
+#define SRST_RESETN_TIMER1                       115
+#define SRST_RESETN_TIMER2                       116
+#define SRST_RESETN_TIMER3                       117
+#define SRST_RESETN_TIMER4                       118
+#define SRST_RESETN_TIMER5                       119
+#define SRST_PRESETN_MAILBOX0                    120
+
+/* CRU-->SOFTRST_CON19 */
+#define SRST_PRESETN_GPIO1                       121
+#define SRST_DBRESETN_GPIO1                      122
+#define SRST_PRESETN_GPIO2                       123
+#define SRST_DBRESETN_GPIO2                      124
+#define SRST_PRESETN_GPIO3                       125
+#define SRST_DBRESETN_GPIO3                      126
+#define SRST_PRESETN_GPIO4                       127
+#define SRST_DBRESETN_GPIO4                      128
+#define SRST_ARESETN_DECOM                       129
+#define SRST_PRESETN_DECOM                       130
+#define SRST_DRESETN_DECOM                       131
+#define SRST_RESETN_TIMER6                       132
+#define SRST_RESETN_TIMER7                       133
+#define SRST_RESETN_TIMER8                       134
+#define SRST_RESETN_TIMER9                       135
+
+/* CRU-->SOFTRST_CON20 */
+#define SRST_RESETN_TIMER10                      136
+#define SRST_RESETN_TIMER11                      137
+#define SRST_ARESETN_RKDMA0                      138
+#define SRST_PRESETN_RKDMA0                      139
+#define SRST_ARESETN_RKDMA1                      140
+#define SRST_PRESETN_RKDMA1                      141
+#define SRST_ARESETN_RKDMA2                      142
+#define SRST_PRESETN_RKDMA2                      143
+#define SRST_ARESETN_RKDMA3                      144
+#define SRST_PRESETN_RKDMA3                      145
+#define SRST_PRESETN_SPINLOCK                    146
+#define SRST_RESETN_REF_PVTPLL_BUS               147
+#define SRST_RESETN_I3C                          148
+#define SRST_HRESETN_I3C                         149
+
+/* CRU-->SOFTRST_CON21 */
+#define SRST_RESETN_BUSMCU_BIU                   150
+#define SRST_CORERESETN_N320                     151
+#define SRST_PORESETN_N320                       152
+#define SRST_RESETN_MCU_AXI_INTEGRITY            153
+#define SRST_PRESETN_INTMUX2PMU                  154
+#define SRST_PRESETN_INTMUX2DDR                  155
+#define SRST_PRESETN_PVTPLL_BUS                  156
+#define SRST_RESETN_HDMITXHPD                    157
+
+/* CRU-->SOFTRST_CON22 */
+#define SRST_PRESETN_APB2ASB_HDMITX              158
+#define SRST_SRESETN_APB2ASB_HDMITX              159
+#define SRST_PRESETN_APB2ASB_MIPICSI             160
+#define SRST_SRESETN_APB2ASB_MIPICSI             161
+#define SRST_PRESETN_APB2ASB_VCCIO0_3            162
+#define SRST_SRESETN_APB2ASB_VCCIO0_3            163
+#define SRST_PRESETN_APB2ASB_VCCIO1_2_4          164
+#define SRST_SRESETN_APB2ASB_VCCIO1_2_4          165
+#define SRST_PRESETN_APB2ASB_VCCIO5_6            166
+#define SRST_SRESETN_APB2ASB_VCCIO5_6            167
+#define SRST_RESETN_TEST_JUDGE_24M_BUS           168
+#define SRST_RESETN_TEST_JUDGE_BUS               169
+
+/* CRU-->SOFTRST_CON23 */
+#define SRST_PRESETN_DDR_MON                     170
+#define SRST_PRESETN_DDR_BIU                     171
+#define SRST_PRESETN_DDR_UPCTL                   172
+#define SRST_TMRESETN_DDR_MON                    173
+#define SRST_ARESETN_DDR_BIU                     174
+#define SRST_PRESETN_DDR_BIU_FW                  175
+#define SRST_RESETN_DDR_MON                      176
+#define SRST_PRESETN_DDR_HWLP                    177
+
+/* CRU-->SOFTRST_CON24 */
+#define SRST_ARESETN_DDR_MSCH_BIU                178
+#define SRST_ARESETN_DDR_MSCH_FW                 179
+#define SRST_RESETN_DDR_SCRAMBLE                 180
+#define SRST_LRESETN_DDRSCH_BIU                  181
+
+/* CRU-->SOFTRST_CON25 */
+#define SRST_RESETN_DDR_TIMER0                   182
+#define SRST_RESETN_DDR_TIMER1                   183
+#define SRST_TRESETN_DDR_WDT                     184
+#define SRST_PRESETN_WDT                         185
+#define SRST_PRESETN_TIMER                       186
+#define SRST_PRESETN_DDR_GRF                     187
+
+/* CRU-->SOFTRST_CON26 */
+#define SRST_RESETN_DDR_UPCTL                    188
+#define SRST_ARESETN_DDR_UPCTL_0                 189
+#define SRST_ARESETN_DDR_UPCTL_1                 190
+#define SRST_ARESETN_DDR_UPCTL_2                 191
+#define SRST_ARESETN_DDR_UPCTL_3                 192
+#define SRST_ARESETN_DDR_UPCTL_4                 193
+#define SRST_ARESETN_DDR_UPCTL_5                 194
+
+/* CRU-->SOFTRST_CON27 */
+#define SRST_RESETN_DDRMCU_BIU                   195
+#define SRST_CORERESETN_N320_DDR                 196
+#define SRST_PORESETN_N320_DDR                   197
+#define SRST_RESETN_TEST_JUDGE_24M_DDR           198
+#define SRST_RESETN_TEST_JUDGE_DDR               199
+
+/* CRU-->SOFTRST_CON31 */
+#define SRST_ARESETN_RKNN                        200
+#define SRST_ARESETN_RKNN_RV                     201
+#define SRST_ARESETN_RKNN_BIU                    202
+#define SRST_ARESETN_RKNN_FW                     203
+#define SRST_PRESETN_RKNN_BIU                    204
+#define SRST_PRESETN_PVTPLL_NPU                  205
+#define SRST_RESETN_NPU_PVTPLL                   206
+#define SRST_RESETN_24M_RKNN                     207
+#define SRST_RESETN_NPUTIMER0                    208
+#define SRST_RESETN_NPUTIMER1                    209
+#define SRST_PRESETN_NPU_TIMER                   210
+
+/* CRU-->SOFTRST_CON32 */
+#define SRST_PRESETN_NPU_WDT                     211
+#define SRST_TRESETN_NPU_WDT                     212
+#define SRST_PRESETN_RKNN_GRF                    213
+#define SRST_RESETN_TEST_JUDGE_24M_NPU           214
+#define SRST_RESETN_TEST_JUDGE_NPU               215
+
+/* CRU-->SOFTRST_CON33 */
+#define SRST_PRESETN_PHP0_GRF                    216
+#define SRST_PRESETN_PHP0_BIU                    217
+#define SRST_ARESETN_PHP0_BIU                    218
+#define SRST_ARESETN_PHP0_FW                     219
+#define SRST_PRESETN_PCIE1                       220
+#define SRST_RESETN_PCIE1_POWER_UP               221
+#define SRST_RESETN_TEST_JUDGE_24M_PHP0          222
+#define SRST_RESETN_TEST_JUDGE_PHP0              223
+
+/* CRU-->SOFTRST_CON34 */
+#define SRST_PRESETN_PCIE0                       224
+#define SRST_RESETN_PCIE0_POWER_UP               225
+#define SRST_ARESETN_USB3OTG1                    226
+#define SRST_ARESETN_GMAC0                       227
+#define SRST_ARESETN_USB3OTG0                    228
+
+/* CRU-->SOFTRST_CON35 */
+#define SRST_ARESETN_UFS_BIU                     229
+#define SRST_ARESETN_UFS_SYS                     230
+#define SRST_ARESETN_UFS                         231
+#define SRST_PRESETN_UFS_GRF                     232
+
+/* CRU-->SOFTRST_CON37 */
+#define SRST_RESETN_RXOOB0                       233
+#define SRST_RESETN_PMALIVE0                     234
+#define SRST_ARESETN_SATA0                       235
+#define SRST_RESETN_RXOOB1                       236
+#define SRST_RESETN_PMALIVE1                     237
+#define SRST_ARESETN_SATA1                       238
+#define SRST_RESETN_XPCS_PWR_ON                  239
+#define SRST_RESETN_ASIC0                        240
+#define SRST_RESETN_ASIC1                        241
+
+/* CRU-->SOFTRST_CON42 */
+#define SRST_PRESETN_NVM0_GRF                    242
+#define SRST_PRESETN_NVM0_BIU                    243
+#define SRST_ARESETN_NVM0_BIU                    244
+#define SRST_HRESETN_NVM0_BIU                    245
+#define SRST_CRESETN_EMMC                        246
+#define SRST_HRESETN_EMMC                        247
+#define SRST_ARESETN_EMMC                        248
+#define SRST_BRESETN_EMMC                        249
+#define SRST_TRESETN_EMMC                        250
+#define SRST_ARESETN_GMAC1                       251
+
+/* CRU-->SOFTRST_CON43 */
+#define SRST_SRESETN_FSPI0                       252
+#define SRST_HRESETN_FSPI0                       253
+#define SRST_HRESETN_SDMMC1                      254
+#define SRST_RESETN_TEST_JUDGE_24M_NVM0          255
+#define SRST_RESETN_TEST_JUDGE_NVM0              256
+
+/* CRU-->SOFTRST_CON44 */
+#define SRST_ARESETN_DSMC_BIU                    257
+#define SRST_ARESETN_DSMC                        258
+#define SRST_HRESETN_DSMC_BIU                    259
+#define SRST_HRESETN_DSMC                        260
+#define SRST_PRESETN_DSMC_BIU                    261
+#define SRST_PRESETN_DSMC                        262
+#define SRST_RESETN_TEST_JUDGE_24M_DSMC          263
+#define SRST_RESETN_TEST_JUDGE_DSMC              264
+#define SRST_PRESETN_DSMC_GRF                    265
+
+/* CRU-->SOFTRST_CON45 */
+#define SRST_PRESETN_NVM1_GRF                    266
+#define SRST_PRESETN_NVM1_BIU                    267
+#define SRST_HRESETN_NVM1_BIU                    268
+#define SRST_HRESETN_SDMMC0                      269
+#define SRST_SRESETN_FSPI1                       270
+#define SRST_HRESETN_FSPI1                       271
+
+/* CRU-->SOFTRST_CON46 */
+#define SRST_RESETN_TEST_JUDGE_24M_NVM1          272
+#define SRST_RESETN_TEST_JUDGE_NVM1              273
+
+/* CRU-->SOFTRST_CON50 */
+#define SRST_HRESETN_RKVDEC                      274
+#define SRST_HRESETN_RKVDEC_BIU                  275
+#define SRST_ARESETN_RKVDEC_BIU                  276
+#define SRST_RESETN_RKVDEC_HEVC_CA               277
+#define SRST_RESETN_RKVDEC_CORE                  278
+#define SRST_RESETN_TEST_JUDGE_24M_VDEC          279
+#define SRST_RESETN_TEST_JUDGE_VDEC              280
+#define SRST_PRESETN_VDEC_BIU                    281
+#define SRST_PRESETN_VDEC_GRF                    282
+
+/* CRU-->SOFTRST_CON52 */
+#define SRST_PRESETN_APB2ASB_MIPI_HDMI_SUBVO     283
+#define SRST_SRESETN_APB2ASB_MIPI_HDMI_SUBVO     284
+#define SRST_PRESETN_APB2ASB_VCCIO0_3_SUBVO      285
+#define SRST_SRESETN_APB2ASB_VCCIO0_3_SUBVO      286
+#define SRST_PRESETN_HDPTXPHY                    287
+#define SRST_PRESETN_HDPTXPHY_GRF                288
+#define SRST_PRESETN_MIPI_DPHY0                  289
+
+/* CRU-->SOFTRST_CON53 */
+#define SRST_RESETN_HDPTX_INIT                   290
+#define SRST_RESETN_HDPTX_CMN                    291
+#define SRST_RESETN_HDPTX_LANE                   292
+#define SRST_PRESETN_IOC_SUBVO                   293
+#define SRST_RESETN_GMAC1_SUBVO_ASYNC            294
+#define SRST_RESETN_TEST_JUDGE_24M_SUBSYSVO      295
+#define SRST_RESETN_TEST_JUDGE_SUBSYSVO          296
+
+/* CRU-->SOFTRST_CON54 */
+#define SRST_PRESETN_APB2ASB_VCCIO1_2_4_SUBVI    297
+#define SRST_SRESETN_APB2ASB_VCCIO1_2_4_SUBVI    298
+#define SRST_PRESETN_APB2ASB_CSIPHY_SUBVI        299
+#define SRST_SRESETN_APB2ASB_CSIPHY_SUBVI        300
+#define SRST_PRESETN_CSIPHY0                     301
+#define SRST_PRESETN_CSIPHY0_GRF                 302
+#define SRST_PRESETN_CSIPHY1                     303
+#define SRST_PRESETN_CSIPHY1_GRF                 304
+#define SRST_PRESETN_IOC_SUBVI                   305
+#define SRST_RESETN_GMAC0_SUBVI_ASYNC            306
+#define SRST_SCAN_RESETN_CSIPHY0                 307
+#define SRST_SCAN_RESETN_CSIPHY1                 308
+#define SRST_RESETN_TEST_JUDGE_24M_SUBSYSVI      309
+#define SRST_RESETN_TEST_JUDGE_SUBSYSVI          310
+
+/* CRU-->SOFTRST_CON56 */
+#define SRST_PRESETN_APB2ASB_VCCIO5_6_SUBDSMC    311
+#define SRST_SRESETN_APB2ASB_VCCIO5_6_SUBDSMC    312
+#define SRST_PRESETN_VCCIO5_6                    313
+#define SRST_RESETN_GMAC1_ASYNC                  314
+
+/* CRU-->SOFTRST_CON57 */
+#define SRST_PRESETN_IMG_BIU                     315
+#define SRST_PRESETN_IMG_GRF                     316
+#define SRST_HRESETN_IMG_BIU                     317
+#define SRST_ARESETN_JPEG_BIU                    318
+#define SRST_RESETN_TEST_JUDGE_24M_IMG           319
+#define SRST_RESETN_TEST_JUDGE_IMG               320
+#define SRST_ARESETN_RGA_BIU                     321
+#define SRST_ARESETN_VDPP_BIU                    322
+#define SRST_ARESETN_EBC_BIU                     323
+
+/* CRU-->SOFTRST_CON58 */
+#define SRST_HRESETN_RGA2E_0                     324
+#define SRST_ARESETN_RGA2E_0                     325
+#define SRST_RESETN_CORE_RGA2E_0                 326
+#define SRST_ARESETN_JPEG                        327
+#define SRST_HRESETN_JPEG                        328
+#define SRST_HRESETN_VDPP                        329
+#define SRST_ARESETN_VDPP                        330
+#define SRST_RESETN_CORE_VDPP                    331
+#define SRST_HRESETN_EBC                         332
+#define SRST_ARESETN_EBC                         333
+#define SRST_DRESETN_EBC                         334
+
+/* CRU-->SOFTRST_CON60 */
+#define SRST_HRESETN_RKVENC_BIU                  335
+#define SRST_ARESETN_RKVENC_BIU                  336
+#define SRST_HRESETN_RKVENC                      337
+#define SRST_ARESETN_RKVENC                      338
+#define SRST_RESETN_RKVENC_CORE                  339
+#define SRST_RESETN_TEST_JUDGE_24M_VENC          340
+#define SRST_RESETN_TEST_JUDGE_VENC              341
+
+/* CRU-->SOFTRST_CON63 */
+#define SRST_ARESETN_VI_BIU                      342
+#define SRST_HRESETN_VI_BIU                      343
+#define SRST_PRESETN_VI_BIU                      344
+#define SRST_DRESETN_VICAP                       345
+#define SRST_ARESETN_VICAP                       346
+#define SRST_HRESETN_VICAP                       347
+#define SRST_RESETN_ISP                          348
+#define SRST_RESETN_ISP_VICAP                    349
+
+/* CRU-->SOFTRST_CON64 */
+#define SRST_RESETN_CORE_VPSS                    350
+#define SRST_PRESETN_VI_GRF                      351
+#define SRST_PRESETN_CSI_HOST_0                  352
+#define SRST_PRESETN_CSI_HOST_1                  353
+#define SRST_PRESETN_CSI_HOST_2                  354
+#define SRST_PRESETN_CSI_HOST_3                  355
+#define SRST_RESETN_TEST_JUDGE_24M_VI            356
+#define SRST_RESETN_TEST_JUDGE_VI                357
+
+/* CRU-->SOFTRST_CON72 */
+#define SRST_RESETN_CIFIN                        358
+
+/* CRU-->SOFTRST_CON74 */
+#define SRST_ARESETN_VOP_BIU                     359
+#define SRST_ARESETN_VOP_FW                      360
+#define SRST_HRESETN_VOP_BIU                     361
+#define SRST_PRESETN_VOP_BIU                     362
+#define SRST_HRESETN_VOP                         363
+#define SRST_ARESETN_VOP                         364
+#define SRST_DRESETN_VP0                         365
+
+/* CRU-->SOFTRST_CON75 */
+#define SRST_DRESETN_VP1                         366
+#define SRST_PRESETN_VOPGRF                      367
+#define SRST_RESETN_TEST_JUDGE_24M_VOP           368
+#define SRST_RESETN_TEST_JUDGE_VOP               369
+
+/* CRU-->SOFTRST_CON78 */
+#define SRST_PRESETN_DSIHOST0                    370
+#define SRST_HRESETN_VO_BIU                      371
+#define SRST_PRESETN_VO_BIU                      372
+#define SRST_ARESETN_HDCP0_BIU                   373
+#define SRST_PRESETN_VO_GRF                      374
+
+/* CRU-->SOFTRST_CON79 */
+#define SRST_PRESETN_HDCP0_TRNG_NS               375
+#define SRST_ARESETN_HDCP0                       376
+#define SRST_HRESETN_HDCP0                       377
+#define SRST_RESETN_HDCP0                        378
+#define SRST_PRESETN_HDMITX0                     379
+#define SRST_RESETN_HDMITX0_EARC                 380
+
+/* CRU-->SOFTRST_CON80 */
+#define SRST_RESETN_HDMITX0_REF                  381
+#define SRST_PRESETN_EDP0                        382
+#define SRST_RESETN_EDP0_24M                     383
+#define SRST_MRESETN_SAI4                        384
+#define SRST_HRESETN_SAI4                        385
+#define SRST_MRESETN_SAI5                        386
+#define SRST_HRESETN_SAI5                        387
+#define SRST_HRESETN_SPDIF_TX2                   388
+#define SRST_MRESETN_SPDIF_TX2                   389
+#define SRST_HRESETN_SPDIF_RX1                   390
+#define SRST_MRESETN_SPDIF_RX1                   391
+
+/* CRU-->SOFTRST_CON81 */
+#define SRST_RESETN_EBC_VOP_DCLK_VO              392
+
+/* CRU-->SOFTRST_CON82 */
+#define SRST_RESETN_TEST_JUDGE_24M_VO            393
+#define SRST_RESETN_TEST_JUDGE_VO                394
+
+/* CRU-->SOFTRST_CON84 */
+#define SRST_RESETN_GPU                          395
+#define SRST_SYSRESETN_GPU                       396
+#define SRST_PRESETN_GPU_BIU                     397
+#define SRST_PORESETN_GPU_JTAG                   398
+#define SRST_PRESETN_GPU_GRF                     399
+#define SRST_RESETN_GPU_PVTPLL                   400
+#define SRST_PRESETN_PVTPLL_GPU                  401
+#define SRST_ARESETN_SLV_GPU_BIU                 402
+
+/* CRU-->SOFTRST_CON85 */
+#define SRST_ARESETN_GPU_BIU                     403
+#define SRST_RESETN_TEST_JUDGE_24M_GPU           404
+#define SRST_RESETN_TEST_JUDGE_GPU               405
+
+/* CRU-->SOFTRST_CON86 */
+#define SRST_ARESETN_CENTER_BIU                  406
+#define SRST_ARESETN_CENTER_FW_DDR               407
+#define SRST_ARESETN_CENTER_FW_GPU               408
+#define SRST_ARESETN_DMA2DDR                     409
+#define SRST_ARESETN_DDR_SHAREMEM                410
+#define SRST_ARESETN_DDR_SHAREMEM_BIU            411
+#define SRST_ARESETN_DDR_SHAREMEM_FW             412
+#define SRST_HRESETN_CENTER_BIU                  413
+#define SRST_HRESETN_CENTER_FW                   414
+#define SRST_PRESETN_CENTER_GRF                  415
+#define SRST_PRESETN_DMA2DDR                     416
+
+/* CRU-->SOFTRST_CON87 */
+#define SRST_PRESETN_CENTER_BIU                  417
+#define SRST_RESETN_TEST_JUDGE_24M_CENTER        418
+#define SRST_RESETN_TEST_JUDGE_CENTER            419
+#define SRST_RESETN_LINKSYM_HDMITXPHY0           420
+
+/* PHPPHY_CRU-->SOFTRST_CON00 */
+#define SRST_PRESETN_PHPPHY_CRU                  421
+#define SRST_PRESETN_PCIE2_COMBOPHY0             422
+#define SRST_PRESETN_PCIE2_COMBOPHY0_GRF         423
+#define SRST_PRESETN_PCIE2_COMBOPHY1             424
+#define SRST_PRESETN_PCIE2_COMBOPHY1_GRF         425
+#define SRST_PRESETN_USBPHY_GRF_0                426
+#define SRST_PRESETN_USBPHY_GRF_1                427
+#define SRST_RESETN_MPHY_INIT                    428
+#define SRST_PRESETN_MPHY_GRF                    429
+#define SRST_PRESETN_VCCIO7_IOC                  430
+#define SRST_RESETN_USB2DEBUG                    431
+#define SRST_PRESETN_PCIEPHY2                    432
+#define SRST_PRESETN_PCIEPHY2_GRF                433
+
+/* PHPPHY_CRU-->SOFTRST_CON01 */
+#define SRST_SRESETN_APB2ASB_USBMPHY_PHPPHY      434
+#define SRST_PRESETN_APB2ASB_USBMPHY_PHPPHY      435
+#define SRST_RESETN_OTGPHY_0                     436
+#define SRST_RESETN_OTGPHY_1                     437
+#define SRST_RESETN_TEST_JUDGE_24M_PHPPHY        438
+#define SRST_RESETN_TEST_JUDGE_PHPPHY            439
+
+/* PHPPHY_CRU-->SOFTRST_CON02 */
+#define SRST_RESETN_PCIEPHY2                     440
+#define SRST_RESETN_PCIE0_PIPE_PHY               441
+#define SRST_RESETN_PCIE1_PIPE_PHY               442
+
+/* SECURE_CRU-->SOFTRST_CON00 */
+#define SRST_HRESETN_CRYPTO_NS                   443
+#define SRST_HRESETN_TRNG_NS                     444
+#define SRST_PRESETN_SECURE_NS_BIU               445
+#define SRST_ARESETN_SECURE_HIGH_BIU             446
+#define SRST_HRESETN_SECURE_NS_BIU               447
+#define SRST_PRESETN_OTPC_NS                     448
+#define SRST_RESETN_OTPC_NS                      449
+
+/* PMU1_CRU-->SOFTRST_CON03 */
+#define SRST_PRESETN_APB2ASB_PMU1                450
+#define SRST_SRESETN_APB2ASB_PMU1                451
+#define SRST_HRESETN_PMU1_BIU                    452
+#define SRST_HRESETN_PMU1_FW                     453
+#define SRST_PRESETN_PMU1_BIU                    454
+#define SRST_HRESETN_PMU_CM0_BIU                 455
+#define SRST_CORERESETN_N100                     456
+#define SRST_PORESETN_N100                       457
+
+/* PMU1_CRU-->SOFTRST_CON04 */
+#define SRST_PRESETN_CRU_PMU1                    458
+#define SRST_PRESETN_PMU1_GRF                    459
+#define SRST_PRESETN_PMU1_IOC                    460
+#define SRST_PRESETN_PMU1WDT                     461
+#define SRST_TRESETN_PMU1WDT                     462
+#define SRST_PRESETN_PMUTIMER                    463
+#define SRST_RESETN_PMUTIMER0                    464
+#define SRST_RESETN_PMUTIMER1                    465
+#define SRST_PRESETN_PWM0                        466
+#define SRST_RESETN_PWM0                         467
+
+/* PMU1_CRU-->SOFTRST_CON05 */
+#define SRST_PRESETN_I2C0                        468
+#define SRST_RESETN_I2C0                         469
+#define SRST_SRESETN_UART1                       470
+#define SRST_PRESETN_UART1                       471
+#define SRST_RESETN_TEST_JUDGE_24M_PMU1          472
+#define SRST_RESETN_TEST_JUDGE_PMU1              473
+#define SRST_RESETN_PDM0                         474
+
+/* PMU1_CRU-->SOFTRST_CON06 */
+#define SRST_HRESETN_PDM0                        475
+#define SRST_MRESETN_PDM0                        476
+#define SRST_HRESETN_VAD                         477
+#define SRST_PRESETN_RCOSC                       478
+#define SRST_RESETN_RCOSC                        479
+
+/* PMU1_CRU-->SOFTRST_CON07 */
+#define SRST_PRESETN_PMU0GRF                     480
+#define SRST_PRESETN_PMU0IOC                     481
+#define SRST_PRESETN_GPIO0                       482
+#define SRST_DBRESETN_GPIO0                      483
+
+/* DDR0_CRU-->SOFTRST_CON00 */
+#define SRST_RESETN_DDRPHY1X                     484
+
+/* DDR0_CRU-->SOFTRST_CON01 */
+#define SRST_PRESETN_DDRPHY_CRU                  485
+#define SRST_PRESETN_DDRPHY                      486
+
+/* BIGCORE_CRU-->SOFTRST_CON00 */
+#define SRST_RESETN_REF_PVTPLL_BIGCORE           487
+#define SRST_PRESETN_BIGCORE_BIU                 488
+#define SRST_PRESETN_BIGCORE_GRF                 489
+#define SRST_PRESETN_BIGCORE_CRU                 490
+#define SRST_PRESETN_PVTPLL_BIGCORE              491
+#define SRST_NBIGCOREPORESET0                    492
+#define SRST_NBIGCOREPORESET1                    493
+#define SRST_NBIGCORESET0                        494
+#define SRST_NBIGCORESET1                        495
+
+/* BIGCORE_CRU-->SOFTRST_CON01 */
+#define SRST_NL2RESET_BIGCORE                    496
+#define SRST_ARESETN_ADB400_A73_ACE              497
+#define SRST_RESETN_TEST_JUDGE_24M_BIGCORE       498
+#define SRST_RESETN_TEST_JUDGE_BIGCORE           499
+#define SRST_PRESETN_DBG_BIGCORE                 500
+
+/* LITCORE0_CRU-->SOFTRST_CON00 */
+#define SRST_RESETN_REF_LITCORE0_PVTPLL          501
+#define SRST_NLITCOREPORESET0                    502
+#define SRST_NLITCOREPORESET1                    503
+#define SRST_NLITCOREPORESET2                    504
+#define SRST_NLITCOREPORESET3                    505
+#define SRST_NLITCORESET0                        506
+#define SRST_NLITCORESET1                        507
+#define SRST_NLITCORESET2                        508
+#define SRST_NLITCORESET3                        509
+#define SRST_NL2RESET_LITCORE0                   510
+#define SRST_PRESETN_DBG_LITCORE0                511
+#define SRST_ARESETN_ADB400_A53_ACE_LITCORE0     512
+
+/* LITCORE0_CRU-->SOFTRST_CON01 */
+#define SRST_PRESETN_LITCORE0_GRF                513
+#define SRST_PRESETN_LITCORE0_BIU                514
+#define SRST_PRESETN_PVTPLL_LITCORE0             515
+#define SRST_PRESETN_LITCORE0_CRU                516
+#define SRST_RESETN_TEST_JUDGE_24M_LITCORE0      517
+#define SRST_RESETN_TEST_JUDGE_LITCORE0          518
+
+/* LITCORE1_CRU-->SOFTRST_CON00 */
+#define SRST_RESETN_REF_LITCORE1_PVTPLL          519
+#define SRST_NLITCOREPORESET4                    520
+#define SRST_NLITCOREPORESET5                    521
+#define SRST_NLITCORESET4                        522
+#define SRST_NLITCORESET5                        523
+#define SRST_NL2RESET_LITCORE1                   524
+#define SRST_PRESETN_DBG_LITCORE1                525
+#define SRST_ARESETN_ADB400_A53_ACE_LITCORE1     526
+#define SRST_PRESETN_LITCORE1_GRF                527
+#define SRST_PRESETN_LITCORE1_BIU                528
+
+/* LITCORE1_CRU-->SOFTRST_CON01 */
+#define SRST_PRESETN_PVTPLL_LITCORE1             529
+#define SRST_PRESETN_LITCORE1_CRU                530
+#define SRST_RESETN_TEST_JUDGE_24M_LITCORE1      531
+#define SRST_RESETN_TEST_JUDGE_LITCORE1          532
+
+/* CCI_CRU-->SOFTRST_CON01 */
+#define SRST_RESETN_TEST_JUDGE_24M_CCI           533
+#define SRST_RESETN_TEST_JUDGE_CCI               534
+#define SRST_ARESETN_CPE                         535
+#define SRST_PRESETN_CCI_BIU                     536
+#define SRST_PRESETN_CCI_FW                      537
+#define SRST_ARESETN_CCI_BIU                     538
+#define SRST_ARESETN_CCI_FW                      539
+
+/* CCI_CRU-->SOFTRST_CON02 */
+#define SRST_PRESETN_DBG_SYS                     540
+#define SRST_PRESETN_CCI_GRF                     541
+#define SRST_PRESETN_CCI_CRU                     542
+#define SRST_ARESETN_CCI                         543
+#define SRST_PORESETN_JTAG                       544
+#define SRST_PRESETN_DBG_M                       545
+#define SRST_ARESETN_ADB400_CCI_A73              546
+#define SRST_ARESETN_ADB400_CCI_A53_0            547
+#define SRST_ARESETN_ADB400_CCI_A53_1            548
+#define SRST_PRESETN_PVTPLL_CCI                  549
+#define SRST_PRESETN_CCI_SPINLOCK                550
+#define SRST_PRESETN_DBG_M_BIU                   551
+#define SRST_RESETN_REF_CCI_PVTPLL               552
+
+#endif

3/2 2026/10/27 16:52 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 106066
							output: 44
							thoughts: 621
						

Thoughts:
**Analyzing the Patch for AMD64 Reachability**

Okay, let's break this down. First, I see a patch modifying clock driver code, specifically related to the Rockchip RK3572. The initial changes point to device tree bindings, a new clock controller driver, and some related reset controller code for the RK3572. Immediately, my radar pings: RK3572 is an ARM SoC. The code depends on `ARM64 || COMPILE_TEST`, and it uses device tree clock declaration.

Now, the architecture target is `amd64`. Alarm bells! On a standard x86_64 system, especially in environments like QEMU or GCE, we're typically dealing with ACPI, not device trees. Unless a DTB is explicitly passed, which isn't the norm for the syzkaller QEMU environment, DT-based clock initialization (`CLK_OF_DECLARE`) won't be triggered. The `clk_rk3572.c` file declares a device tree probe. This is an immediate red flag.

My next thought is, can these clock driver files even be reached in an AMD64 environment? Are `clk-rockchip` or `clk-fractional-divider-v2` reachable at all when the target architecture is amd64? I need to check how `CLK_ROCKCHIP` is configured and where `clk-fractional-divider-v2` is actually used. A few quick greps on the codebase are needed to understand the dependencies and build configurations for these files. I need to understand if there is a compile option or build-time configuration that is relevant. This patch likely does not touch anything that is reachable.



4/2 2026/10/27 16:52 tool grepper
0m Args:
{
  "Expression": "CONFIG_COMMON_CLK_ROCKCHIP|COMMON_CLK_ROCKCHIP",
  "PathPrefixes": [
    "drivers/clk/rockchip"
  ]
}

Results:
{
  "Output": "drivers/clk/rockchip/Kconfig-3-\ndrivers/clk/rockchip/Kconfig:4:config COMMON_CLK_ROCKCHIP\ndrivers/clk/rockchip/Kconfig-5-\tbool \"Rockchip clock controller common support\"\n--\ndrivers/clk/rockchip/Kconfig-10-\ndrivers/clk/rockchip/Kconfig:11:if COMMON_CLK_ROCKCHIP\ndrivers/clk/rockchip/Kconfig-12-config CLK_PX30\n--\ndrivers/clk/rockchip/Makefile-5-\ndrivers/clk/rockchip/Makefile:6:obj-$(CONFIG_COMMON_CLK_ROCKCHIP) += clk-rockchip.o\ndrivers/clk/rockchip/Makefile-7-\n"
}

5/2 2026/10/27 16:52 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 107283
							output: 35
							thoughts: 25
						

Thoughts:
Here's a summary of my thought process, as if I were analyzing that Kconfig file:

**Investigating `COMMON_CLK_ROCKCHIP` in `drivers/clk/rockchip/Kconfig`**

Okay, so I need to understand the configuration related to the Rockchip common clock framework. My first step is to dive right into the `drivers/clk/rockchip/Kconfig` file. Specifically, I'm going to look closely around the `COMMON_CLK_ROCKCHIP` symbol. I'm expecting to see its dependencies, any associated help text that explains its purpose, and possibly any conditional logic that controls its inclusion. I want to see what other configurations enable it, or what it enables itself. From there, I'll build a picture of when this common clock support is enabled in the Rockchip system. The goal is a clear understanding of what triggers the inclusion of this common clock configuration, and what dependencies it introduces. This will allow me to consider how to modify it, and whether any dependencies require modification too.



6/2 2026/10/27 16:52 tool read-file
0m Args:
{
  "File": "drivers/clk/rockchip/Kconfig",
  "FirstLine": 1,
  "LineCount": 40
}

Results:
{
  "Contents": "   1:\t# SPDX-License-Identifier: GPL-2.0\n   2:\t# common clock support for ROCKCHIP SoC family.\n   3:\t\n   4:\tconfig COMMON_CLK_ROCKCHIP\n   5:\t\tbool \"Rockchip clock controller common support\"\n   6:\t\tdepends on ARCH_ROCKCHIP || COMPILE_TEST\n   7:\t\tdefault ARCH_ROCKCHIP\n   8:\t\thelp\n   9:\t\t  Say y here to enable common clock controller for Rockchip platforms.\n  10:\t\n  11:\tif COMMON_CLK_ROCKCHIP\n  12:\tconfig CLK_PX30\n  13:\t\tbool \"Rockchip PX30 clock controller support\"\n  14:\t\tdepends on ARM64 || COMPILE_TEST\n  15:\t\tdefault y\n  16:\t\thelp\n  17:\t\t  Build the driver for PX30 Clock Driver.\n  18:\t\n  19:\tconfig CLK_RV1103B\n  20:\t\tbool \"Rockchip RV1103B clock controller support\"\n  21:\t\tdepends on ARM || COMPILE_TEST\n  22:\t\tdefault y\n  23:\t\thelp\n  24:\t\t  Build the driver for RV1103B Clock Driver.\n  25:\t\n  26:\tconfig CLK_RV1106\n  27:\t\tbool \"Rockchip RV1106 clock controller support\"\n  28:\t\tdepends on ARM || COMPILE_TEST\n  29:\t\tdefault y\n  30:\t\thelp\n  31:\t\t  Build the driver for RV1106 Clock Driver.\n  32:\t\n  33:\tconfig CLK_RV110X\n  34:\t\tbool \"Rockchip RV110x clock controller support\"\n  35:\t\tdepends on ARM || COMPILE_TEST\n  36:\t\tdefault y\n  37:\t\thelp\n  38:\t\t  Build the driver for RV110x Clock Driver.\n  39:\t\n  40:\tconfig CLK_RV1126\n"
}

7/2 2026/10/27 16:52 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 108079
							output: 52
							thoughts: 685
						

Thoughts:
**Unreachable Clock Initialization on amd64: A Syzkaller Investigation**

Okay, let's break this down. I'm looking at `drivers/clk/rockchip/Kconfig` and I see `COMMON_CLK_ROCKCHIP` depends on either `ARCH_ROCKCHIP` or `COMPILE_TEST`.  Then `CLK_RK3572` depends on `ARM64` or `COMPILE_TEST`.  The critical question is how `rk3572_clk_init` is even *called*. The answer: `CLK_OF_DECLARE(rk3572_cru, "rockchip,rk3572-cru", rk3572_clk_init);`.

But here's the kicker: Can `CLK_OF_DECLARE` ever trigger on amd64 in a standard virtualized environment like GCE or QEMU? That's the core of the Syzkaller reachability problem. Section 1 of the instructions is clear: reachability is the primary gate. If the code is not reachable in the standard environments, no fuzzing.

Section 2 specifically flags structurally unreachable hardware and execution paths. I need to be careful. The instructions say, "Code paths exclusive to architectures other than the target architecture" are unreachable. The target architecture is amd64.  Rockchip SoCs, and specifically the RK3572, are ARM/ARM64. I know this. I've seen the clock names in `clk-rk3572.c` like `SRST_ARESETN_ADB400_CCI_A73`, `SRST_ARESETN_ADB400_CCI_A53_0`.  That screams ARM. Those names don't map to anything I've seen on any x86 platform.

So, is there ANY chance `rk3572_clk_init` (or `clk_fractional_divider_v2` or anything related to `rst-rk3572`) can execute on amd64? The answer is almost certainly *no*. Could an OF overlay, or something else sneaky, probe it? That's a valid question. The crucial point is that `CLK_OF_DECLARE` is used *not* a platform driver. So it's looking for a device tree match, not a direct probe.  I will have to check if there is a `platform_driver` defined anywhere in `clk-rk3572.c`, but my strong hunch is that this initialization path is fundamentally unreachable on amd64, and therefore shouldn't be fuzzed.



8/2 2026/10/27 16:53 tool grepper
0m Error:
no matches

Args:
{
  "Expression": "platform_driver|module_platform_driver|builtin_platform_driver",
  "PathPrefixes": [
    "drivers/clk/rockchip/clk-rk3572.c"
  ]
}

Results:
{
  "error": "no matches"
}

9/2 2026/10/27 16:53 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 109398
							output: 38
							thoughts: 94
						

Thoughts:
Okay, here's my breakdown of what's going on in this code, from my expert perspective:

**Investigating the Clock Driver Structure**

Alright, so I'm looking at `clk-rk3572.c` and immediately I notice something. There's no `platform_driver` defined here, which is a bit unusual for a clock driver on a Rockchip SoC. I'm used to seeing that structure, which would typically handle device probing and initialization. But it's missing.

Instead, I see `CLK_OF_DECLARE(rk3572_cru, "rockchip,rk3572-cru", rk3572_clk_init);`. That `CLK_OF_DECLARE` macro looks like the key. It's obviously responsible for registering the clock driver with the system somehow, but I need to understand *how* that happens without a typical driver structure.

The function `rk3572_clk_init` is likely the initialization function, but I need to find where `CLK_OF_DECLARE` is actually defined and called to understand the entire driver initialization process. Let's delve into the kernel's header files and macros to see how this particular declaration works. I expect the magic will involve the device tree somehow.



10/2 2026/10/27 16:54 tool grepper
0m Args:
{
  "Expression": "#define CLK_OF_DECLARE",
  "PathPrefixes": [
    "include/linux/clk-provider.h"
  ]
}

Results:
{
  "Output": "include/linux/clk-provider.h=1532=struct clk_hw_onecell_data {\n--\ninclude/linux/clk-provider.h-1536-\ninclude/linux/clk-provider.h:1537:#define CLK_OF_DECLARE(name, compat, fn) \\\ninclude/linux/clk-provider.h-1538-\tstatic void __init __##name##_of_clk_init_declare(struct device_node *np) \\\n--\ninclude/linux/clk-provider.h-1548- */\ninclude/linux/clk-provider.h:1549:#define CLK_OF_DECLARE_DRIVER(name, compat, fn) \\\ninclude/linux/clk-provider.h-1550-\tstatic void __init name##_of_clk_init_driver(struct device_node *np) \\\n"
}

11/2 2026/10/27 16:54 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 110028
							output: 35
							thoughts: 85
						

Thoughts:
Here's my understanding of the situation, pieced together as I delve into this code:

**Analyzing the Clock Initialization Process**

Okay, so I need to figure out the purpose of `CLK_OF_DECLARE`. My initial observation is that it's responsible for populating the `__clk_of_table`. This table, I'm guessing, holds the necessary information for clock-related device tree nodes. Makes sense so far. Then, there's `of_clk_init(NULL)`, which seems to be the boot-time function that processes entries in the `__clk_of_table` to initialize the clocks. That's the core of the clock initialization, as I see it.

The critical piece I'm missing is understanding *when* `of_clk_init` is invoked. It's obviously important for initialization, but I need to know the execution flow to understand the overall process. Time to check the call graph and see who calls `of_clk_init`. This will give me the context I need to properly analyze it.



12/2 2026/10/27 16:54 tool grepper
0m Args:
{
  "Expression": "of_clk_init",
  "PathPrefixes": [
    "arch/",
    "drivers/clk/"
  ]
}

Results:
{
  "Output": "\nFull output is too long, showing 200 out of 214 lines.\nUse more precise expression or PathPrefixes if possible.\n\nNumber of matching lines per file (32 files in total):\narch/arc/kernel/setup.c:1\narch/arm/kernel/time.c:1\narch/arm/mach-mediatek/mediatek.c:1\narch/arm/mach-mmp/mmp-dt.c:1\narch/arm/mach-mmp/mmp2-dt.c:1\narch/arm/mach-omap2/io.c:1\narch/arm/mach-rockchip/rockchip.c:1\narch/arm/mach-shmobile/setup-rcar-gen2.c:1\narch/arm/mach-sunxi/sunxi.c:1\narch/arm/mach-zynq/common.c:1\narch/arm64/kernel/time.c:1\narch/csky/kernel/time.c:1\narch/microblaze/kernel/setup.c:1\narch/mips/ath79/setup.c:1\narch/mips/bmips/setup.c:1\narch/mips/econet/init.c:1\narch/mips/generic/init.c:1\narch/mips/loongson64/time.c:1\narch/mips/pic32/pic32mzda/time.c:1\narch/mips/ralink/clk.c:1\narch/mips/ralink/timer-gic.c:1\narch/nios2/platform/platform.c:1\narch/openrisc/kernel/time.c:1\narch/powerpc/kernel/time.c:1\narch/powerpc/platforms/512x/clock-commonclk.c:1\narch/riscv/kernel/time.c:1\narch/sh/boards/of-generic.c:3\narch/xtensa/kernel/time.c:1\ndrivers/clk/clk-eyeq.c:2\ndrivers/clk/clk.c:2\ndrivers/clk/ti/clk.c:3\ndrivers/clk/ti/clock.h:2\n\narch/arc/kernel/setup.c=540=void __init time_init(void)\narch/arc/kernel/setup.c-541-{\narch/arc/kernel/setup.c:542:\tof_clk_init(NULL);\narch/arc/kernel/setup.c-543-\ttimer_probe();\n--\narch/arm/kernel/time.c=88=void __init time_init(void)\n--\narch/arm/kernel/time.c-93-#ifdef CONFIG_COMMON_CLK\narch/arm/kernel/time.c:94:\t\tof_clk_init(NULL);\narch/arm/kernel/time.c-95-#endif\n--\narch/arm/mach-mediatek/mediatek.c=19=static void __init mediatek_timer_init(void)\n--\narch/arm/mach-mediatek/mediatek.c-34-\narch/arm/mach-mediatek/mediatek.c:35:\tof_clk_init(NULL);\narch/arm/mach-mediatek/mediatek.c-36-\ttimer_probe();\n--\narch/arm/mach-mmp/mmp-dt.c=26=static void __init mmp_init_time(void)\n--\narch/arm/mach-mmp/mmp-dt.c-30-#endif\narch/arm/mach-mmp/mmp-dt.c:31:\tof_clk_init(NULL);\narch/arm/mach-mmp/mmp-dt.c-32-\ttimer_probe();\n--\narch/arm/mach-mmp/mmp2-dt.c=16=static void __init mmp_init_time(void)\n--\narch/arm/mach-mmp/mmp2-dt.c-20-#endif\narch/arm/mach-mmp/mmp2-dt.c:21:\tof_clk_init(NULL);\narch/arm/mach-mmp/mmp2-dt.c-22-\ttimer_probe();\n--\narch/arm/mach-omap2/io.c=675=int __init omap_clk_init(void)\n--\narch/arm/mach-omap2/io.c-693-\narch/arm/mach-omap2/io.c:694:\tof_clk_init(NULL);\narch/arm/mach-omap2/io.c-695-\n--\narch/arm/mach-rockchip/rockchip.c=22=static void __init rockchip_timer_init(void)\n--\narch/arm/mach-rockchip/rockchip.c-44-\narch/arm/mach-rockchip/rockchip.c:45:\tof_clk_init(NULL);\narch/arm/mach-rockchip/rockchip.c-46-\ttimer_probe();\n--\narch/arm/mach-shmobile/setup-rcar-gen2.c=57=static void __init rcar_gen2_timer_init(void)\n--\narch/arm/mach-shmobile/setup-rcar-gen2.c-117-skip_update:\narch/arm/mach-shmobile/setup-rcar-gen2.c:118:\tof_clk_init(NULL);\narch/arm/mach-shmobile/setup-rcar-gen2.c-119-\ttimer_probe();\n--\narch/arm/mach-sunxi/sunxi.c=39=static void __init sun6i_timer_init(void)\narch/arm/mach-sunxi/sunxi.c-40-{\narch/arm/mach-sunxi/sunxi.c:41:\tof_clk_init(NULL);\narch/arm/mach-sunxi/sunxi.c-42-\tif (IS_ENABLED(CONFIG_RESET_CONTROLLER))\n--\narch/arm/mach-zynq/common.c=143=static void __init zynq_timer_init(void)\n--\narch/arm/mach-zynq/common.c-145-\tzynq_clock_init();\narch/arm/mach-zynq/common.c:146:\tof_clk_init(NULL);\narch/arm/mach-zynq/common.c-147-\ttimer_probe();\n--\narch/arm64/kernel/time.c=55=void __init time_init(void)\n--\narch/arm64/kernel/time.c-58-\narch/arm64/kernel/time.c:59:\tof_clk_init(NULL);\narch/arm64/kernel/time.c-60-\ttimer_probe();\n--\narch/csky/kernel/time.c=7=void __init time_init(void)\narch/csky/kernel/time.c-8-{\narch/csky/kernel/time.c:9:\tof_clk_init(NULL);\narch/csky/kernel/time.c-10-\ttimer_probe();\n--\narch/microblaze/kernel/setup.c=176=void __init time_init(void)\narch/microblaze/kernel/setup.c-177-{\narch/microblaze/kernel/setup.c:178:\tof_clk_init(NULL);\narch/microblaze/kernel/setup.c-179-\tsetup_cpuinfo_clk();\n--\narch/mips/ath79/setup.c=238=void __init plat_time_init(void)\n--\narch/mips/ath79/setup.c-243-\narch/mips/ath79/setup.c:244:\tof_clk_init(NULL);\narch/mips/ath79/setup.c-245-\n--\narch/mips/bmips/setup.c=247=static int __init plat_dev_init(void)\narch/mips/bmips/setup.c-248-{\narch/mips/bmips/setup.c:249:\tof_clk_init(NULL);\narch/mips/bmips/setup.c-250-\treturn 0;\n--\narch/mips/econet/init.c=114=void __init plat_time_init(void)\narch/mips/econet/init.c-115-{\narch/mips/econet/init.c:116:\tof_clk_init(NULL);\narch/mips/econet/init.c-117-\ttimer_probe();\n--\narch/mips/generic/init.c=151=void __init plat_time_init(void)\n--\narch/mips/generic/init.c-155-\narch/mips/generic/init.c:156:\tof_clk_init(NULL);\narch/mips/generic/init.c-157-\n--\narch/mips/loongson64/time.c=17=void __init plat_time_init(void)\n--\narch/mips/loongson64/time.c-22-\tif (loongson_sysconf.fw_interface == LOONGSON_DTB) {\narch/mips/loongson64/time.c:23:\t\tof_clk_init(NULL);\narch/mips/loongson64/time.c-24-\n--\narch/mips/pic32/pic32mzda/time.c=53=void __init plat_time_init(void)\n--\narch/mips/pic32/pic32mzda/time.c-56-\narch/mips/pic32/pic32mzda/time.c:57:\tof_clk_init(NULL);\narch/mips/pic32/pic32mzda/time.c-58-\n--\narch/mips/ralink/clk.c=62=void __init plat_time_init(void)\n--\narch/mips/ralink/clk.c-74-\narch/mips/ralink/clk.c:75:\tof_clk_init(NULL);\narch/mips/ralink/clk.c-76-\tclkspec.np = of_find_compatible_node(NULL, NULL, compatible);\n--\narch/mips/ralink/timer-gic.c=18=void __init plat_time_init(void)\n--\narch/mips/ralink/timer-gic.c-21-\narch/mips/ralink/timer-gic.c:22:\tof_clk_init(NULL);\narch/mips/ralink/timer-gic.c-23-\ttimer_probe();\n--\narch/nios2/platform/platform.c=25=static int __init nios2_soc_device_init(void)\n--\narch/nios2/platform/platform.c-46-\narch/nios2/platform/platform.c:47:\tof_clk_init(clk_match);\narch/nios2/platform/platform.c-48-\n--\narch/openrisc/kernel/time.c=166=void __init time_init(void)\n--\narch/openrisc/kernel/time.c-176-\narch/openrisc/kernel/time.c:177:\tof_clk_init(NULL);\narch/openrisc/kernel/time.c-178-\ttimer_probe();\n--\narch/powerpc/kernel/time.c=988=void __init time_init(void)\n--\narch/powerpc/kernel/time.c-1055-\narch/powerpc/kernel/time.c:1056:\tof_clk_init(NULL);\narch/powerpc/kernel/time.c-1057-\tenable_sched_clock_irqtime();\n--\narch/powerpc/platforms/512x/clock-commonclk.c=1014=static void __init mpc5121_clk_provide_backwards_compat(void)\n--\narch/powerpc/platforms/512x/clock-commonclk.c-1174- * The \"fixed-clock\" nodes (which includes the oscillator node if the board's\narch/powerpc/platforms/512x/clock-commonclk.c:1175: * DT provides one) has already been scanned by the of_clk_init() in\narch/powerpc/platforms/512x/clock-commonclk.c-1176- * time_init().\n--\narch/riscv/kernel/time.c=20=void __init time_init(void)\n--\narch/riscv/kernel/time.c-33-\t\triscv_timebase = prop;\narch/riscv/kernel/time.c:34:\t\tof_clk_init(NULL);\narch/riscv/kernel/time.c-35-\t} else {\n--\narch/sh/boards/of-generic.c=139=static void __init sh_of_init_irq(void)\n--\narch/sh/boards/of-generic.c-144-\narch/sh/boards/of-generic.c:145:static int __init sh_of_clk_init(void)\narch/sh/boards/of-generic.c-146-{\n--\narch/sh/boards/of-generic.c-149-\tpr_info(\"SH generic board support: scanning for clk providers\\n\");\narch/sh/boards/of-generic.c:150:\tof_clk_init(NULL);\narch/sh/boards/of-generic.c-151-#endif\n--\narch/sh/boards/of-generic.c=155=static struct sh_machine_vector __initmv sh_of_generic_mv = {\n--\narch/sh/boards/of-generic.c-159-\t.mv_init_irq\t= sh_of_init_irq,\narch/sh/boards/of-generic.c:160:\t.mv_clk_init\t= sh_of_clk_init,\narch/sh/boards/of-generic.c-161-\t.mv_mode_pins\t= noopi,\n--\narch/xtensa/kernel/time.c=175=void __init time_init(void)\n--\narch/xtensa/kernel/time.c-178-\narch/xtensa/kernel/time.c:179:\tof_clk_init(NULL);\narch/xtensa/kernel/time.c-180-#ifdef CONFIG_XTENSA_CALIBRATE_CCOUNT\n--\ndrivers/clk/clk-eyeq.c-11- * shared region called OLB. Some PLLs and fixed-factors are initialised early\ndrivers/clk/clk-eyeq.c:12: * by of_clk_init(); if so, two clk providers are registered.\ndrivers/clk/clk-eyeq.c-13- *\n--\ndrivers/clk/clk-eyeq.c-20- * Set pr_fmt() for printing from eqc_early_init().\ndrivers/clk/clk-eyeq.c:21: * It is called at of_clk_init() stage (read: really early).\ndrivers/clk/clk-eyeq.c-22- */\n--\ndrivers/clk/clk.c=5593=int of_clk_detect_critical(struct device_node *np, int index,\n--\ndrivers/clk/clk.c-5608-/**\ndrivers/clk/clk.c:5609: * of_clk_init() - Scan and init clock providers from the DT\ndrivers/clk/clk.c-5610- * @matches: array of compatible values and init functions for providers.\n--\ndrivers/clk/clk.c-5615- */\ndrivers/clk/clk.c:5616:void __init of_clk_init(const struct of_device_id *matches)\ndrivers/clk/clk.c-5617-{\n--\ndrivers/clk/ti/clk.c=247=struct clk_init_item {\n--\ndrivers/clk/ti/clk.c-249-\tvoid *user;\ndrivers/clk/ti/clk.c:250:\tti_of_clk_init_cb_t func;\ndrivers/clk/ti/clk.c-251-\tstruct list_head link;\n--\ndrivers/clk/ti/clk.c=265=int __init ti_clk_retry_init(struct device_node *node, void *user,\ndrivers/clk/ti/clk.c:266:\t\t\t     ti_of_clk_init_cb_t func)\ndrivers/clk/ti/clk.c-267-{\n--\n\n"
}

13/2 2026/10/27 16:54 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 114549
							output: 31
							thoughts: 108
						

Thoughts:
**My Initial Thoughts on Clock Initialization**

Okay, so `of_clk_init`... it seems pretty widely used across a lot of architectures. I see it's being called in `arch/arc`, `arch/arm`, `arch/arm64`, `arch/csky`, `arch/microblaze`, `arch/mips`, `arch/nios2`, `arch/openrisc`, `arch/powerpc`, `arch/riscv`, `arch/sh`, and `arch/xtensa`. That's a solid cross-section. But wait... is there a pattern? Hold on... it's *not* used in `arch/x86` at all. That’s unusual, and definitely warrants a closer look. I need to figure out why x86 is different. I’ll need to investigate if there are other initialization functions being used in that architecture, or if they handle things in a completely separate way. Let me check if `of_clk_init` is called anywhere at all in that part of the code base.



14/2 2026/10/27 16:54 tool grepper
0m Error:
no matches

Args:
{
  "Expression": "of_clk_init",
  "PathPrefixes": [
    "arch/x86"
  ]
}

Results:
{
  "error": "no matches"
}

15/2 2026/10/27 16:54 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 114930
							output: 45
							thoughts: 415
						

Thoughts:
**Clock Driver Investigation: RK3572 and Fractional Dividers**

Okay, so I'm diving into this clock driver code, and first thing's first: the `arch/x86` architecture isn't calling `of_clk_init` – that's a key initial observation. Now, let's zoom in on `CLK_RK3572` in the Kconfig. It's a boolean option, depends on ARM64 or COMPILE_TEST, and defaults to 'y'. That's a good starting point.

Next, I need to figure out where `clk-fractional-divider-v2.c` fits in. It seems it's only built into `clk-rockchip-y`, which is part of `clk-rockchip.o` when `CONFIG_COMMON_CLK_ROCKCHIP` is enabled. Now, who's actually *using* `rockchip_clk_register_frac_v2`? Looks like only `drivers/clk/rockchip/clk.c`, and only within that `case branch_fraction_divider_v2:` block. And where is `branch_fraction_divider_v2` used? Bingo, only in `clk-rk3572.c`. That's where I see `COMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_0, ...)` being used.

The initialization for `clk-rk3572.c` happens through `CLK_OF_DECLARE(rk3572_cru, "rockchip,rk3572-cru", rk3572_clk_init)`. Interesting, and the related `rst-rk3572.c` calls `rk3572_rst_init`, which appears to only be called by `clk-rk3572.c:rk3572_clk_init()`.

Now, before I make any definitive conclusions, I need to be absolutely sure no other drivers are touching these fractional dividers. Let's do a quick global grep for `clk_fractional_divider_v2`, `rockchip_clk_register_frac_v2`, and even `COMPOSITE_FRAC_V2` across the entire codebase. This should give me a complete picture.



16/2 2026/10/27 16:54 tool grepper
0m Args:
{
  "Expression": "clk_fractional_divider_v2|rockchip_clk_register_frac_v2|COMPOSITE_FRAC_V2"
}

Results:
{
  "Output": "drivers/clk/rockchip/clk-fractional-divider-v2.c-47-\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:48:struct clk_fractional_divider_v2 {\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-49-\tstruct clk_hw\thw;\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-71-\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:72:#define to_clk_fd_v2(_hw) container_of(_hw, struct clk_fractional_divider_v2, hw)\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-73-\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:74:static inline u32 clk_fd_v2_readl(struct clk_fractional_divider_v2 *fd,\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-75-\t\t\t\t  void __iomem *reg)\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-79-\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:80:static inline void clk_fd_v2_writel(struct clk_fractional_divider_v2 *fd,\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-81-\t\t\t\t    void __iomem *reg, u32 val)\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c=86=static unsigned long clk_fd_v2_recalc_rate(struct clk_hw *hw,\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-88-{\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:89:\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-90-\tunsigned long flags = 0;\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c=129=static void clk_fractional_divider_general_approximation_v2(struct clk_hw *hw,\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-133-{\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:134:\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-135-\tunsigned long scale;\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c=154=static int clk_fd_v2_get_divider(struct clk_hw *hw, unsigned long rate,\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-157-{\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:158:\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-159-\tu32 factor;\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c=199=static int clk_fd_v2_determine_rate(struct clk_hw *hw,\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-201-{\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:202:\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-203-\tunsigned long m, n;\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c=226=static int clk_fd_v2_set_rate(struct clk_hw *hw, unsigned long rate,\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-228-{\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:229:\tstruct clk_fractional_divider_v2 *fd = to_clk_fd_v2(hw);\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-230-\tunsigned long flags = 0;\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c=276=static struct clk_hw *clk_hw_register_fractional_divider_v2(struct device *dev,\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-288-{\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:289:\tstruct clk_fractional_divider_v2 *fd;\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-290-\tstruct clk_init_data init;\n--\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-331-\ndrivers/clk/rockchip/clk-fractional-divider-v2.c:332:struct clk *rockchip_clk_register_frac_v2(struct device *dev,\ndrivers/clk/rockchip/clk-fractional-divider-v2.c-333-\t\t\t\t\t  const char *name,\n--\ndrivers/clk/rockchip/clk-rk3572.c=564=static struct rockchip_clk_branch rk3572_clk_branches[] __initdata = {\n--\ndrivers/clk/rockchip/clk-rk3572.c-619-\t    RK3572_CLKSEL_CON(13), 0, 2, MFLAGS),\ndrivers/clk/rockchip/clk-rk3572.c:620:\tCOMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_0, \"clk_audio_frac_0\", \"clk_audio_frac_0_src\", 0,\ndrivers/clk/rockchip/clk-rk3572.c-621-\t\t\t  RK3572_CLKSEL_CON(12), 16, 16,\n--\ndrivers/clk/rockchip/clk-rk3572.c-624-\t    RK3572_CLKSEL_CON(15), 0, 2, MFLAGS),\ndrivers/clk/rockchip/clk-rk3572.c:625:\tCOMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_1, \"clk_audio_frac_1\", \"clk_audio_frac_1_src\", 0,\ndrivers/clk/rockchip/clk-rk3572.c-626-\t\t\t  RK3572_CLKSEL_CON(14), 16, 16,\n--\ndrivers/clk/rockchip/clk-rk3572.c-629-\t    RK3572_CLKSEL_CON(17), 0, 2, MFLAGS),\ndrivers/clk/rockchip/clk-rk3572.c:630:\tCOMPOSITE_FRAC_V2(CLK_AUDIO_FRAC_2, \"clk_audio_frac_2\", \"clk_audio_frac_2_src\", 0,\ndrivers/clk/rockchip/clk-rk3572.c-631-\t\t\t  RK3572_CLKSEL_CON(16), 16, 16,\n--\ndrivers/clk/rockchip/clk.c=515=void rockchip_clk_register_branches(struct rockchip_clk_provider *ctx,\n--\ndrivers/clk/rockchip/clk.c-592-\t\tcase branch_fraction_divider_v2:\ndrivers/clk/rockchip/clk.c:593:\t\t\tclk = rockchip_clk_register_frac_v2(NULL, list-\u003ename,\ndrivers/clk/rockchip/clk.c-594-\t\t\t\t\t\t\t    list-\u003eparent_names[0], flags,\n--\ndrivers/clk/rockchip/clk.h=811=struct clk *rockchip_clk_register_ddrclk(const char *name, int flags,\n--\ndrivers/clk/rockchip/clk.h-818-\ndrivers/clk/rockchip/clk.h:819:struct clk *rockchip_clk_register_frac_v2(struct device *dev,\ndrivers/clk/rockchip/clk.h-820-\t\t\t\t\t  const char *name, const char *parent_name,\n--\ndrivers/clk/rockchip/clk.h=863=struct rockchip_clk_branch {\n--\ndrivers/clk/rockchip/clk.h-1081-\ndrivers/clk/rockchip/clk.h:1082:#define COMPOSITE_FRAC_V2(_id, cname, pname, f, mo, ms, mw, do, ds, dw, df)\\\ndrivers/clk/rockchip/clk.h-1083-\t{\t\t\t\t\t\t\t\\\n"
}

17/2 2026/10/27 16:54 llm patch-evaluator
0m Model:
gemini-3.8-flash

Args:
null

Results:
null

Tokens:
							input: 118235
							output: 133
							thoughts: 942
						

Thoughts:
**Fuzzing Verdict: WorthFuzzing = False**

Okay, let's break this down. My analysis shows that `rockchip_clk_register_frac_v2` is only called within the context of the `rockchip_clk_register_branches` function, and specifically when dealing with `branch_fraction_divider_v2`. This `branch_fraction_divider_v2` is *only* defined within `rk3572_clk_branches` in `clk-rk3572.c`.  Furthermore, `clk-rk3572.c` itself is initialized through `CLK_OF_DECLARE`, which is tied to the Rockchip RK3572 hardware.

Now, considering the target architecture is amd64, we have a problem. The standard QEMU environment for amd64 doesn't utilize Device Tree (`of_clk_init` isn't called).  Thus, this RK3572 code, which is an ARM64 SoC clock controller, simply *doesn't* exist in the amd64 environment.

Looking at Section 2 of the instructions, the negative criteria list seems to be a perfect fit. Specifically, "Code paths exclusive to architectures other than the target architecture." This is precisely what we have. The Rockchip RK3572 is an ARM64-specific SoC. The initialization and related code rely on Device Tree, which is an ARM64 construct. On amd64, this code is *structurally unreachable*.

Therefore, based on the documented criteria, I'm confident in setting `WorthFuzzing = false`.

I'll double-check for any configs or focus symbols, but given the nature of the change, it's highly unlikely that any are relevant in this case. My reasoning is a concise, accurate reflection of the facts: the code is specific to an architecture (ARM64) that is not the target (amd64), and it is unreachable in the target environment.

So, I am ready to call `set-results` with:

*   EnableConfigs: \[ ]
*   FocusSymbols: \[ ]
*   Reasoning: The patch introduces Rockchip RK3572 clock and reset support, an ARM64 SoC platform. Initialization is exclusive to `CLK_OF_DECLARE` within Open Firmware/Device Tree, not used by amd64 platforms. Thus, code is structurally unreachable on the target architecture.
*   WorthFuzzing: false

I've carefully verified my reasoning. It's solid. Time to proceed.



18/2 2026/10/27 16:54 tool set-results
0m Args:
{
  "EnableConfigs": [],
  "FocusSymbols": [],
  "Reasoning": "The patch series adds clock controller and soft-reset driver support for the Rockchip RK3572 SoC (an ARM64 SoC platform), including a new fractional divider implementation. Initialization is handled solely via CLK_OF_DECLARE using Device Tree matching (of_clk_init), which is exclusive to ARM/ARM64 and other non-x86 architectures and does not execute on amd64. Because the target architecture is amd64, the modified code paths are structurally unreachable.",
  "WorthFuzzing": false
}

Results:
{
  "EnableConfigs": null,
  "FocusSymbols": [],
  "Reasoning": "The patch series adds clock controller and soft-reset driver support for the Rockchip RK3572 SoC (an ARM64 SoC platform), including a new fractional divider implementation. Initialization is handled solely via CLK_OF_DECLARE using Device Tree matching (of_clk_init), which is exclusive to ARM/ARM64 and other non-x86 architectures and does not execute on amd64. Because the target architecture is amd64, the modified code paths are structurally unreachable.",
  "WorthFuzzing": false
}

19/1 2026/10/27 16:54 action If
0m Args:
{
  "WorthFuzzing": false
}

Results:
null

LLM Calls Summary:
Total Calls Total Tokens Avg Tokens Total Duration (Seconds) Avg Duration (Seconds)
Tool Calls Summary:
Total Calls Total Duration (Seconds) Avg Duration (Seconds)