Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
0004  * Copyright (c) 2022, Linaro Ltd.
0005  */
0006 
0007 #include <linux/clk-provider.h>
0008 #include <linux/err.h>
0009 #include <linux/kernel.h>
0010 #include <linux/module.h>
0011 #include <linux/of_device.h>
0012 #include <linux/of.h>
0013 #include <linux/regmap.h>
0014 
0015 #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
0016 
0017 #include "clk-alpha-pll.h"
0018 #include "clk-branch.h"
0019 #include "clk-rcg.h"
0020 #include "clk-regmap.h"
0021 #include "clk-regmap-divider.h"
0022 #include "clk-regmap-mux.h"
0023 #include "clk-regmap-phy-mux.h"
0024 #include "common.h"
0025 #include "gdsc.h"
0026 #include "reset.h"
0027 
0028 /* Need to match the order of clocks in DT binding */
0029 enum {
0030     DT_BI_TCXO,
0031     DT_SLEEP_CLK,
0032     DT_UFS_PHY_RX_SYMBOL_0_CLK,
0033     DT_UFS_PHY_RX_SYMBOL_1_CLK,
0034     DT_UFS_PHY_TX_SYMBOL_0_CLK,
0035     DT_UFS_CARD_RX_SYMBOL_0_CLK,
0036     DT_UFS_CARD_RX_SYMBOL_1_CLK,
0037     DT_UFS_CARD_TX_SYMBOL_0_CLK,
0038     DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
0039     DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC,
0040     DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC,
0041     DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC,
0042     DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK,
0043     DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
0044     DT_QUSB4PHY_GCC_USB4_RX0_CLK,
0045     DT_QUSB4PHY_GCC_USB4_RX1_CLK,
0046     DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK,
0047     DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
0048     DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC,
0049     DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
0050     DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
0051     DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
0052     DT_QUSB4PHY_1_GCC_USB4_RX0_CLK,
0053     DT_QUSB4PHY_1_GCC_USB4_RX1_CLK,
0054     DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
0055     DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
0056     DT_PCIE_2A_PIPE_CLK,
0057     DT_PCIE_2B_PIPE_CLK,
0058     DT_PCIE_3A_PIPE_CLK,
0059     DT_PCIE_3B_PIPE_CLK,
0060     DT_PCIE_4_PIPE_CLK,
0061     DT_RXC0_REF_CLK,
0062     DT_RXC1_REF_CLK,
0063 };
0064 
0065 enum {
0066     P_BI_TCXO,
0067     P_GCC_GPLL0_OUT_EVEN,
0068     P_GCC_GPLL0_OUT_MAIN,
0069     P_GCC_GPLL2_OUT_MAIN,
0070     P_GCC_GPLL4_OUT_MAIN,
0071     P_GCC_GPLL7_OUT_MAIN,
0072     P_GCC_GPLL8_OUT_MAIN,
0073     P_GCC_GPLL9_OUT_MAIN,
0074     P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC,
0075     P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC,
0076     P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC,
0077     P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC,
0078     P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
0079     P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
0080     P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
0081     P_GCC_USB4_PHY_DP_GMUX_CLK_SRC,
0082     P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC,
0083     P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC,
0084     P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC,
0085     P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC,
0086     P_QUSB4PHY_1_GCC_USB4_RX0_CLK,
0087     P_QUSB4PHY_1_GCC_USB4_RX1_CLK,
0088     P_QUSB4PHY_GCC_USB4_RX0_CLK,
0089     P_QUSB4PHY_GCC_USB4_RX1_CLK,
0090     P_RXC0_REF_CLK,
0091     P_RXC1_REF_CLK,
0092     P_SLEEP_CLK,
0093     P_UFS_CARD_RX_SYMBOL_0_CLK,
0094     P_UFS_CARD_RX_SYMBOL_1_CLK,
0095     P_UFS_CARD_TX_SYMBOL_0_CLK,
0096     P_UFS_PHY_RX_SYMBOL_0_CLK,
0097     P_UFS_PHY_RX_SYMBOL_1_CLK,
0098     P_UFS_PHY_TX_SYMBOL_0_CLK,
0099     P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
0100     P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
0101     P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
0102     P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK,
0103     P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
0104     P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
0105     P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK,
0106     P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
0107 };
0108 
0109 static const struct clk_parent_data gcc_parent_data_tcxo = { .index = DT_BI_TCXO };
0110 
0111 static struct clk_alpha_pll gcc_gpll0 = {
0112     .offset = 0x0,
0113     .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
0114     .clkr = {
0115         .enable_reg = 0x52028,
0116         .enable_mask = BIT(0),
0117         .hw.init = &(const struct clk_init_data) {
0118             .name = "gcc_gpll0",
0119             .parent_data = &gcc_parent_data_tcxo,
0120             .num_parents = 1,
0121             .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
0122         },
0123     },
0124 };
0125 
0126 static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
0127     { 0x1, 2 },
0128     { }
0129 };
0130 
0131 static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
0132     .offset = 0x0,
0133     .post_div_shift = 8,
0134     .post_div_table = post_div_table_gcc_gpll0_out_even,
0135     .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
0136     .width = 4,
0137     .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
0138     .clkr.hw.init = &(const struct clk_init_data) {
0139         .name = "gcc_gpll0_out_even",
0140         .parent_hws = (const struct clk_hw*[]){
0141             &gcc_gpll0.clkr.hw,
0142         },
0143         .num_parents = 1,
0144         .ops = &clk_alpha_pll_postdiv_lucid_5lpe_ops,
0145     },
0146 };
0147 
0148 static struct clk_alpha_pll gcc_gpll2 = {
0149     .offset = 0x2000,
0150     .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
0151     .clkr = {
0152         .enable_reg = 0x52028,
0153         .enable_mask = BIT(2),
0154         .hw.init = &(const struct clk_init_data) {
0155             .name = "gcc_gpll2",
0156             .parent_data = &gcc_parent_data_tcxo,
0157             .num_parents = 1,
0158             .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
0159         },
0160     },
0161 };
0162 
0163 static struct clk_alpha_pll gcc_gpll4 = {
0164     .offset = 0x76000,
0165     .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
0166     .clkr = {
0167         .enable_reg = 0x52028,
0168         .enable_mask = BIT(4),
0169         .hw.init = &(const struct clk_init_data) {
0170             .name = "gcc_gpll4",
0171             .parent_data = &gcc_parent_data_tcxo,
0172             .num_parents = 1,
0173             .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
0174         },
0175     },
0176 };
0177 
0178 static struct clk_alpha_pll gcc_gpll7 = {
0179     .offset = 0x1a000,
0180     .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
0181     .clkr = {
0182         .enable_reg = 0x52028,
0183         .enable_mask = BIT(7),
0184         .hw.init = &(const struct clk_init_data) {
0185             .name = "gcc_gpll7",
0186             .parent_data = &gcc_parent_data_tcxo,
0187             .num_parents = 1,
0188             .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
0189         },
0190     },
0191 };
0192 
0193 static struct clk_alpha_pll gcc_gpll8 = {
0194     .offset = 0x1b000,
0195     .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
0196     .clkr = {
0197         .enable_reg = 0x52028,
0198         .enable_mask = BIT(8),
0199         .hw.init = &(const struct clk_init_data) {
0200             .name = "gcc_gpll8",
0201             .parent_data = &gcc_parent_data_tcxo,
0202             .num_parents = 1,
0203             .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
0204         },
0205     },
0206 };
0207 
0208 static struct clk_alpha_pll gcc_gpll9 = {
0209     .offset = 0x1c000,
0210     .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
0211     .clkr = {
0212         .enable_reg = 0x52028,
0213         .enable_mask = BIT(9),
0214         .hw.init = &(const struct clk_init_data) {
0215             .name = "gcc_gpll9",
0216             .parent_data = &gcc_parent_data_tcxo,
0217             .num_parents = 1,
0218             .ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
0219         },
0220     },
0221 };
0222 
0223 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src;
0224 static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src;
0225 
0226 static const struct parent_map gcc_parent_map_0[] = {
0227     { P_BI_TCXO, 0 },
0228     { P_GCC_GPLL0_OUT_MAIN, 1 },
0229     { P_GCC_GPLL0_OUT_EVEN, 6 },
0230 };
0231 
0232 static const struct clk_parent_data gcc_parent_data_0[] = {
0233     { .index = DT_BI_TCXO },
0234     { .hw = &gcc_gpll0.clkr.hw },
0235     { .hw = &gcc_gpll0_out_even.clkr.hw },
0236 };
0237 
0238 static const struct parent_map gcc_parent_map_1[] = {
0239     { P_BI_TCXO, 0 },
0240     { P_SLEEP_CLK, 5 },
0241 };
0242 
0243 static const struct clk_parent_data gcc_parent_data_1[] = {
0244     { .index = DT_BI_TCXO },
0245     { .index = DT_SLEEP_CLK },
0246 };
0247 
0248 static const struct parent_map gcc_parent_map_2[] = {
0249     { P_BI_TCXO, 0 },
0250     { P_GCC_GPLL0_OUT_MAIN, 1 },
0251     { P_SLEEP_CLK, 5 },
0252     { P_GCC_GPLL0_OUT_EVEN, 6 },
0253 };
0254 
0255 static const struct clk_parent_data gcc_parent_data_2[] = {
0256     { .index = DT_BI_TCXO },
0257     { .hw = &gcc_gpll0.clkr.hw },
0258     { .index = DT_SLEEP_CLK },
0259     { .hw = &gcc_gpll0_out_even.clkr.hw },
0260 };
0261 
0262 static const struct parent_map gcc_parent_map_3[] = {
0263     { P_BI_TCXO, 0 },
0264 };
0265 
0266 static const struct clk_parent_data gcc_parent_data_3[] = {
0267     { .index = DT_BI_TCXO },
0268 };
0269 
0270 static const struct parent_map gcc_parent_map_4[] = {
0271     { P_BI_TCXO, 0 },
0272     { P_GCC_GPLL7_OUT_MAIN, 2 },
0273     { P_GCC_GPLL4_OUT_MAIN, 5 },
0274     { P_GCC_GPLL0_OUT_EVEN, 6 },
0275 };
0276 
0277 static const struct clk_parent_data gcc_parent_data_4[] = {
0278     { .index = DT_BI_TCXO },
0279     { .hw = &gcc_gpll7.clkr.hw },
0280     { .hw = &gcc_gpll4.clkr.hw },
0281     { .hw = &gcc_gpll0_out_even.clkr.hw },
0282 };
0283 
0284 static const struct parent_map gcc_parent_map_5[] = {
0285     { P_BI_TCXO, 0 },
0286     { P_GCC_GPLL0_OUT_MAIN, 1 },
0287     { P_GCC_GPLL8_OUT_MAIN, 2 },
0288     { P_GCC_GPLL0_OUT_EVEN, 6 },
0289 };
0290 
0291 static const struct clk_parent_data gcc_parent_data_5[] = {
0292     { .index = DT_BI_TCXO },
0293     { .hw = &gcc_gpll0.clkr.hw },
0294     { .hw = &gcc_gpll8.clkr.hw },
0295     { .hw = &gcc_gpll0_out_even.clkr.hw },
0296 };
0297 
0298 static const struct parent_map gcc_parent_map_6[] = {
0299     { P_BI_TCXO, 0 },
0300     { P_GCC_GPLL0_OUT_MAIN, 1 },
0301     { P_GCC_GPLL7_OUT_MAIN, 2 },
0302 };
0303 
0304 static const struct clk_parent_data gcc_parent_data_6[] = {
0305     { .index = DT_BI_TCXO },
0306     { .hw = &gcc_gpll0.clkr.hw },
0307     { .hw = &gcc_gpll7.clkr.hw },
0308 };
0309 
0310 static const struct parent_map gcc_parent_map_7[] = {
0311     { P_BI_TCXO, 0 },
0312     { P_GCC_GPLL0_OUT_MAIN, 1 },
0313     { P_GCC_GPLL2_OUT_MAIN, 2 },
0314 };
0315 
0316 static const struct clk_parent_data gcc_parent_data_7[] = {
0317     { .index = DT_BI_TCXO },
0318     { .hw = &gcc_gpll0.clkr.hw },
0319     { .hw = &gcc_gpll2.clkr.hw },
0320 };
0321 
0322 static const struct parent_map gcc_parent_map_8[] = {
0323     { P_BI_TCXO, 0 },
0324     { P_GCC_GPLL7_OUT_MAIN, 2 },
0325     { P_RXC0_REF_CLK, 3 },
0326     { P_GCC_GPLL0_OUT_EVEN, 6 },
0327 };
0328 
0329 static const struct clk_parent_data gcc_parent_data_8[] = {
0330     { .index = DT_BI_TCXO },
0331     { .hw = &gcc_gpll7.clkr.hw },
0332     { .index = DT_RXC0_REF_CLK },
0333     { .hw = &gcc_gpll0_out_even.clkr.hw },
0334 };
0335 
0336 static const struct parent_map gcc_parent_map_9[] = {
0337     { P_BI_TCXO, 0 },
0338     { P_GCC_GPLL7_OUT_MAIN, 2 },
0339     { P_RXC1_REF_CLK, 3 },
0340     { P_GCC_GPLL0_OUT_EVEN, 6 },
0341 };
0342 
0343 static const struct clk_parent_data gcc_parent_data_9[] = {
0344     { .index = DT_BI_TCXO },
0345     { .hw = &gcc_gpll7.clkr.hw },
0346     { .index = DT_RXC1_REF_CLK },
0347     { .hw = &gcc_gpll0_out_even.clkr.hw },
0348 };
0349 
0350 static const struct parent_map gcc_parent_map_15[] = {
0351     { P_BI_TCXO, 0 },
0352     { P_GCC_GPLL0_OUT_MAIN, 1 },
0353     { P_GCC_GPLL9_OUT_MAIN, 2 },
0354     { P_GCC_GPLL4_OUT_MAIN, 5 },
0355     { P_GCC_GPLL0_OUT_EVEN, 6 },
0356 };
0357 
0358 static const struct clk_parent_data gcc_parent_data_15[] = {
0359     { .index = DT_BI_TCXO },
0360     { .hw = &gcc_gpll0.clkr.hw },
0361     { .hw = &gcc_gpll9.clkr.hw },
0362     { .hw = &gcc_gpll4.clkr.hw },
0363     { .hw = &gcc_gpll0_out_even.clkr.hw },
0364 };
0365 
0366 static const struct parent_map gcc_parent_map_16[] = {
0367     { P_UFS_CARD_RX_SYMBOL_0_CLK, 0 },
0368     { P_BI_TCXO, 2 },
0369 };
0370 
0371 static const struct clk_parent_data gcc_parent_data_16[] = {
0372     { .index = DT_UFS_CARD_RX_SYMBOL_0_CLK },
0373     { .index = DT_BI_TCXO },
0374 };
0375 
0376 static const struct parent_map gcc_parent_map_17[] = {
0377     { P_UFS_CARD_RX_SYMBOL_1_CLK, 0 },
0378     { P_BI_TCXO, 2 },
0379 };
0380 
0381 static const struct clk_parent_data gcc_parent_data_17[] = {
0382     { .index = DT_UFS_CARD_RX_SYMBOL_1_CLK },
0383     { .index = DT_BI_TCXO },
0384 };
0385 
0386 static const struct parent_map gcc_parent_map_18[] = {
0387     { P_UFS_CARD_TX_SYMBOL_0_CLK, 0 },
0388     { P_BI_TCXO, 2 },
0389 };
0390 
0391 static const struct clk_parent_data gcc_parent_data_18[] = {
0392     { .index = DT_UFS_CARD_TX_SYMBOL_0_CLK },
0393     { .index = DT_BI_TCXO },
0394 };
0395 
0396 static const struct parent_map gcc_parent_map_19[] = {
0397     { P_UFS_PHY_RX_SYMBOL_0_CLK, 0 },
0398     { P_BI_TCXO, 2 },
0399 };
0400 
0401 static const struct clk_parent_data gcc_parent_data_19[] = {
0402     { .index = DT_UFS_PHY_RX_SYMBOL_0_CLK },
0403     { .index = DT_BI_TCXO },
0404 };
0405 
0406 static const struct parent_map gcc_parent_map_20[] = {
0407     { P_UFS_PHY_RX_SYMBOL_1_CLK, 0 },
0408     { P_BI_TCXO, 2 },
0409 };
0410 
0411 static const struct clk_parent_data gcc_parent_data_20[] = {
0412     { .index = DT_UFS_PHY_RX_SYMBOL_1_CLK },
0413     { .index = DT_BI_TCXO },
0414 };
0415 
0416 static const struct parent_map gcc_parent_map_21[] = {
0417     { P_UFS_PHY_TX_SYMBOL_0_CLK, 0 },
0418     { P_BI_TCXO, 2 },
0419 };
0420 
0421 static const struct clk_parent_data gcc_parent_data_21[] = {
0422     { .index = DT_UFS_PHY_TX_SYMBOL_0_CLK },
0423     { .index = DT_BI_TCXO },
0424 };
0425 
0426 static const struct parent_map gcc_parent_map_22[] = {
0427     { P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
0428     { P_BI_TCXO, 2 },
0429 };
0430 
0431 static const struct clk_parent_data gcc_parent_data_22[] = {
0432     { .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK },
0433     { .index = DT_BI_TCXO },
0434 };
0435 
0436 static const struct parent_map gcc_parent_map_23[] = {
0437     { P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK, 0 },
0438     { P_BI_TCXO, 2 },
0439 };
0440 
0441 static const struct clk_parent_data gcc_parent_data_23[] = {
0442     { .index = DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK },
0443     { .index = DT_BI_TCXO },
0444 };
0445 
0446 static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
0447     .reg = 0xf060,
0448     .shift = 0,
0449     .width = 2,
0450     .parent_map = gcc_parent_map_22,
0451     .clkr = {
0452         .hw.init = &(const struct clk_init_data) {
0453             .name = "gcc_usb3_prim_phy_pipe_clk_src",
0454             .parent_data = gcc_parent_data_22,
0455             .num_parents = ARRAY_SIZE(gcc_parent_data_22),
0456             .ops = &clk_regmap_mux_closest_ops,
0457         },
0458     },
0459 };
0460 
0461 static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
0462     .reg = 0x10060,
0463     .shift = 0,
0464     .width = 2,
0465     .parent_map = gcc_parent_map_23,
0466     .clkr = {
0467         .hw.init = &(const struct clk_init_data) {
0468             .name = "gcc_usb3_sec_phy_pipe_clk_src",
0469             .parent_data = gcc_parent_data_23,
0470             .num_parents = ARRAY_SIZE(gcc_parent_data_23),
0471             .ops = &clk_regmap_mux_closest_ops,
0472         },
0473     },
0474 };
0475 
0476 static const struct parent_map gcc_parent_map_24[] = {
0477     { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 0 },
0478     { P_BI_TCXO, 2 },
0479 };
0480 
0481 static const struct clk_parent_data gcc_parent_data_24[] = {
0482     { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK },
0483     { .index = DT_BI_TCXO },
0484 };
0485 
0486 static const struct parent_map gcc_parent_map_25[] = {
0487     { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 0 },
0488     { P_BI_TCXO, 2 },
0489 };
0490 
0491 static const struct clk_parent_data gcc_parent_data_25[] = {
0492     { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK },
0493     { .index = DT_BI_TCXO },
0494 };
0495 
0496 static const struct parent_map gcc_parent_map_26[] = {
0497     { P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 },
0498     { P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
0499     { P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC, 3 },
0500 };
0501 
0502 static const struct clk_parent_data gcc_parent_data_26[] = {
0503     { .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw },
0504     { .index = DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
0505     { .index = DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC },
0506 };
0507 
0508 static const struct parent_map gcc_parent_map_27[] = {
0509     { P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 },
0510     { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
0511     { P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 },
0512 };
0513 
0514 static const struct clk_parent_data gcc_parent_data_27[] = {
0515     { .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw },
0516     { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
0517     { .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC },
0518 };
0519 
0520 static const struct parent_map gcc_parent_map_28[] = {
0521     { P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC, 0 },
0522     { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
0523 };
0524 
0525 static const struct clk_parent_data gcc_parent_data_28[] = {
0526     { .index = DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC },
0527     { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
0528 };
0529 
0530 static const struct parent_map gcc_parent_map_29[] = {
0531     { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
0532     { P_BI_TCXO, 2 },
0533 };
0534 
0535 static const struct clk_parent_data gcc_parent_data_29[] = {
0536     { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
0537     { .index = DT_BI_TCXO },
0538 };
0539 
0540 static const struct parent_map gcc_parent_map_30[] = {
0541     { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
0542     { P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC, 1 },
0543 };
0544 
0545 static const struct clk_parent_data gcc_parent_data_30[] = {
0546     { .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
0547     { .hw = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr.hw },
0548 };
0549 
0550 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipegmux_clk_src = {
0551     .reg = 0xb80dc,
0552     .shift = 0,
0553     .width = 1,
0554     .parent_map = gcc_parent_map_30,
0555     .clkr = {
0556         .hw.init = &(const struct clk_init_data) {
0557             .name = "gcc_usb4_1_phy_pcie_pipegmux_clk_src",
0558             .parent_data = gcc_parent_data_30,
0559             .num_parents = ARRAY_SIZE(gcc_parent_data_30),
0560             .ops = &clk_regmap_mux_closest_ops,
0561         },
0562     },
0563 };
0564 
0565 static const struct parent_map gcc_parent_map_31[] = {
0566     { P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
0567     { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
0568 };
0569 
0570 static const struct clk_parent_data gcc_parent_data_31[] = {
0571     { .hw = &gcc_usb4_1_phy_pcie_pipegmux_clk_src.clkr.hw },
0572     { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
0573 };
0574 
0575 static const struct parent_map gcc_parent_map_32[] = {
0576     { P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
0577     { P_BI_TCXO, 2 },
0578 };
0579 
0580 static const struct clk_parent_data gcc_parent_data_32[] = {
0581     { .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
0582     { .index = DT_BI_TCXO },
0583 };
0584 
0585 static const struct parent_map gcc_parent_map_33[] = {
0586     { P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
0587     { P_BI_TCXO, 2 },
0588 };
0589 
0590 static const struct clk_parent_data gcc_parent_data_33[] = {
0591     { .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
0592     { .index = DT_BI_TCXO },
0593 };
0594 
0595 static const struct parent_map gcc_parent_map_34[] = {
0596     { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
0597     { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
0598 };
0599 
0600 static const struct clk_parent_data gcc_parent_data_34[] = {
0601     { .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
0602     { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
0603 };
0604 
0605 static const struct parent_map gcc_parent_map_35[] = {
0606     { P_GCC_USB4_PHY_DP_GMUX_CLK_SRC, 0 },
0607     { P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
0608 };
0609 
0610 static const struct clk_parent_data gcc_parent_data_35[] = {
0611     { .index = DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC },
0612     { .index = DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
0613 };
0614 
0615 static const struct parent_map gcc_parent_map_36[] = {
0616     { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
0617     { P_BI_TCXO, 2 },
0618 };
0619 
0620 static const struct clk_parent_data gcc_parent_data_36[] = {
0621     { .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
0622     { .index = DT_BI_TCXO },
0623 };
0624 
0625 static const struct parent_map gcc_parent_map_37[] = {
0626     { P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
0627     { P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC, 1 },
0628 };
0629 
0630 static const struct clk_parent_data gcc_parent_data_37[] = {
0631     { .index = DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC },
0632     { .hw = &gcc_usb4_phy_pcie_pipe_clk_src.clkr.hw },
0633 };
0634 
0635 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipegmux_clk_src = {
0636     .reg = 0x2a0dc,
0637     .shift = 0,
0638     .width = 1,
0639     .parent_map = gcc_parent_map_37,
0640     .clkr = {
0641         .hw.init = &(const struct clk_init_data) {
0642             .name = "gcc_usb4_phy_pcie_pipegmux_clk_src",
0643             .parent_data = gcc_parent_data_37,
0644             .num_parents = ARRAY_SIZE(gcc_parent_data_37),
0645             .ops = &clk_regmap_mux_closest_ops,
0646         },
0647     },
0648 };
0649 
0650 static const struct parent_map gcc_parent_map_38[] = {
0651     { P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
0652     { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
0653 };
0654 
0655 static const struct clk_parent_data gcc_parent_data_38[] = {
0656     { .hw = &gcc_usb4_phy_pcie_pipegmux_clk_src.clkr.hw },
0657     { .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
0658 };
0659 
0660 static const struct parent_map gcc_parent_map_39[] = {
0661     { P_QUSB4PHY_GCC_USB4_RX0_CLK, 0 },
0662     { P_BI_TCXO, 2 },
0663 };
0664 
0665 static const struct clk_parent_data gcc_parent_data_39[] = {
0666     { .index = DT_QUSB4PHY_GCC_USB4_RX0_CLK },
0667     { .index = DT_BI_TCXO },
0668 };
0669 
0670 static const struct parent_map gcc_parent_map_40[] = {
0671     { P_QUSB4PHY_GCC_USB4_RX1_CLK, 0 },
0672     { P_BI_TCXO, 2 },
0673 };
0674 
0675 static const struct clk_parent_data gcc_parent_data_40[] = {
0676     { .index = DT_QUSB4PHY_GCC_USB4_RX1_CLK },
0677     { .index = DT_BI_TCXO },
0678 };
0679 
0680 static const struct parent_map gcc_parent_map_41[] = {
0681     { P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
0682     { P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
0683 };
0684 
0685 static const struct clk_parent_data gcc_parent_data_41[] = {
0686     { .index = DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC },
0687     { .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
0688 };
0689 
0690 static struct clk_regmap_phy_mux gcc_pcie_2a_pipe_clk_src = {
0691     .reg = 0x9d05c,
0692     .clkr = {
0693         .hw.init = &(const struct clk_init_data) {
0694             .name = "gcc_pcie_2a_pipe_clk_src",
0695             .parent_data = &(const struct clk_parent_data){
0696                 .index = DT_PCIE_2A_PIPE_CLK,
0697             },
0698             .num_parents = 1,
0699             .ops = &clk_regmap_phy_mux_ops,
0700         },
0701     },
0702 };
0703 
0704 static struct clk_regmap_phy_mux gcc_pcie_2b_pipe_clk_src = {
0705     .reg = 0x9e05c,
0706     .clkr = {
0707         .hw.init = &(const struct clk_init_data) {
0708             .name = "gcc_pcie_2b_pipe_clk_src",
0709             .parent_data = &(const struct clk_parent_data){
0710                 .index = DT_PCIE_2B_PIPE_CLK,
0711             },
0712             .num_parents = 1,
0713             .ops = &clk_regmap_phy_mux_ops,
0714         },
0715     },
0716 };
0717 
0718 static struct clk_regmap_phy_mux gcc_pcie_3a_pipe_clk_src = {
0719     .reg = 0xa005c,
0720     .clkr = {
0721         .hw.init = &(const struct clk_init_data) {
0722             .name = "gcc_pcie_3a_pipe_clk_src",
0723             .parent_data = &(const struct clk_parent_data){
0724                 .index = DT_PCIE_3A_PIPE_CLK,
0725             },
0726             .num_parents = 1,
0727             .ops = &clk_regmap_phy_mux_ops,
0728         },
0729     },
0730 };
0731 
0732 static struct clk_regmap_phy_mux gcc_pcie_3b_pipe_clk_src = {
0733     .reg = 0xa205c,
0734     .clkr = {
0735         .hw.init = &(const struct clk_init_data) {
0736             .name = "gcc_pcie_3b_pipe_clk_src",
0737             .parent_data = &(const struct clk_parent_data){
0738                 .index = DT_PCIE_3B_PIPE_CLK,
0739             },
0740             .num_parents = 1,
0741             .ops = &clk_regmap_phy_mux_ops,
0742         },
0743     },
0744 };
0745 
0746 static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src = {
0747     .reg = 0x6b05c,
0748     .clkr = {
0749         .hw.init = &(const struct clk_init_data) {
0750             .name = "gcc_pcie_4_pipe_clk_src",
0751             .parent_data = &(const struct clk_parent_data){
0752                 .index = DT_PCIE_4_PIPE_CLK,
0753             },
0754             .num_parents = 1,
0755             .ops = &clk_regmap_phy_mux_ops,
0756         },
0757     },
0758 };
0759 
0760 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_0_clk_src = {
0761     .reg = 0x75058,
0762     .shift = 0,
0763     .width = 2,
0764     .parent_map = gcc_parent_map_16,
0765     .clkr = {
0766         .hw.init = &(const struct clk_init_data) {
0767             .name = "gcc_ufs_card_rx_symbol_0_clk_src",
0768             .parent_data = gcc_parent_data_16,
0769             .num_parents = ARRAY_SIZE(gcc_parent_data_16),
0770             .ops = &clk_regmap_mux_closest_ops,
0771         },
0772     },
0773 };
0774 
0775 static struct clk_regmap_mux gcc_ufs_card_rx_symbol_1_clk_src = {
0776     .reg = 0x750c8,
0777     .shift = 0,
0778     .width = 2,
0779     .parent_map = gcc_parent_map_17,
0780     .clkr = {
0781         .hw.init = &(const struct clk_init_data) {
0782             .name = "gcc_ufs_card_rx_symbol_1_clk_src",
0783             .parent_data = gcc_parent_data_17,
0784             .num_parents = ARRAY_SIZE(gcc_parent_data_17),
0785             .ops = &clk_regmap_mux_closest_ops,
0786         },
0787     },
0788 };
0789 
0790 static struct clk_regmap_mux gcc_ufs_card_tx_symbol_0_clk_src = {
0791     .reg = 0x75048,
0792     .shift = 0,
0793     .width = 2,
0794     .parent_map = gcc_parent_map_18,
0795     .clkr = {
0796         .hw.init = &(const struct clk_init_data) {
0797             .name = "gcc_ufs_card_tx_symbol_0_clk_src",
0798             .parent_data = gcc_parent_data_18,
0799             .num_parents = ARRAY_SIZE(gcc_parent_data_18),
0800             .ops = &clk_regmap_mux_closest_ops,
0801         },
0802     },
0803 };
0804 
0805 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
0806     .reg = 0x77058,
0807     .shift = 0,
0808     .width = 2,
0809     .parent_map = gcc_parent_map_19,
0810     .clkr = {
0811         .hw.init = &(const struct clk_init_data) {
0812             .name = "gcc_ufs_phy_rx_symbol_0_clk_src",
0813             .parent_data = gcc_parent_data_19,
0814             .num_parents = ARRAY_SIZE(gcc_parent_data_19),
0815             .ops = &clk_regmap_mux_closest_ops,
0816         },
0817     },
0818 };
0819 
0820 static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
0821     .reg = 0x770c8,
0822     .shift = 0,
0823     .width = 2,
0824     .parent_map = gcc_parent_map_20,
0825     .clkr = {
0826         .hw.init = &(const struct clk_init_data) {
0827             .name = "gcc_ufs_phy_rx_symbol_1_clk_src",
0828             .parent_data = gcc_parent_data_20,
0829             .num_parents = ARRAY_SIZE(gcc_parent_data_20),
0830             .ops = &clk_regmap_mux_closest_ops,
0831         },
0832     },
0833 };
0834 
0835 static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
0836     .reg = 0x77048,
0837     .shift = 0,
0838     .width = 2,
0839     .parent_map = gcc_parent_map_21,
0840     .clkr = {
0841         .hw.init = &(const struct clk_init_data) {
0842             .name = "gcc_ufs_phy_tx_symbol_0_clk_src",
0843             .parent_data = gcc_parent_data_21,
0844             .num_parents = ARRAY_SIZE(gcc_parent_data_21),
0845             .ops = &clk_regmap_mux_closest_ops,
0846         },
0847     },
0848 };
0849 
0850 static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
0851     .reg = 0xf064,
0852     .shift = 0,
0853     .width = 2,
0854     .parent_map = gcc_parent_map_26,
0855     .clkr = {
0856         .hw.init = &(const struct clk_init_data) {
0857             .name = "gcc_usb34_prim_phy_pipe_clk_src",
0858             .parent_data = gcc_parent_data_26,
0859             .num_parents = ARRAY_SIZE(gcc_parent_data_26),
0860             .ops = &clk_regmap_mux_closest_ops,
0861         },
0862     },
0863 };
0864 
0865 static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
0866     .reg = 0x10064,
0867     .shift = 0,
0868     .width = 2,
0869     .parent_map = gcc_parent_map_27,
0870     .clkr = {
0871         .hw.init = &(const struct clk_init_data) {
0872             .name = "gcc_usb34_sec_phy_pipe_clk_src",
0873             .parent_data = gcc_parent_data_27,
0874             .num_parents = ARRAY_SIZE(gcc_parent_data_27),
0875             .ops = &clk_regmap_mux_closest_ops,
0876         },
0877     },
0878 };
0879 
0880 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_0_clk_src = {
0881     .reg = 0xab060,
0882     .shift = 0,
0883     .width = 2,
0884     .parent_map = gcc_parent_map_24,
0885     .clkr = {
0886         .hw.init = &(const struct clk_init_data) {
0887             .name = "gcc_usb3_mp_phy_pipe_0_clk_src",
0888             .parent_data = gcc_parent_data_24,
0889             .num_parents = ARRAY_SIZE(gcc_parent_data_24),
0890             .ops = &clk_regmap_mux_closest_ops,
0891         },
0892     },
0893 };
0894 
0895 static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_1_clk_src = {
0896     .reg = 0xab068,
0897     .shift = 0,
0898     .width = 2,
0899     .parent_map = gcc_parent_map_25,
0900     .clkr = {
0901         .hw.init = &(const struct clk_init_data) {
0902             .name = "gcc_usb3_mp_phy_pipe_1_clk_src",
0903             .parent_data = gcc_parent_data_25,
0904             .num_parents = ARRAY_SIZE(gcc_parent_data_25),
0905             .ops = &clk_regmap_mux_closest_ops,
0906         },
0907     },
0908 };
0909 
0910 static struct clk_regmap_mux gcc_usb4_1_phy_dp_clk_src = {
0911     .reg = 0xb8050,
0912     .shift = 0,
0913     .width = 2,
0914     .parent_map = gcc_parent_map_28,
0915     .clkr = {
0916         .hw.init = &(const struct clk_init_data) {
0917             .name = "gcc_usb4_1_phy_dp_clk_src",
0918             .parent_data = gcc_parent_data_28,
0919             .num_parents = ARRAY_SIZE(gcc_parent_data_28),
0920             .ops = &clk_regmap_mux_closest_ops,
0921         },
0922     },
0923 };
0924 
0925 static struct clk_regmap_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
0926     .reg = 0xb80b0,
0927     .shift = 0,
0928     .width = 2,
0929     .parent_map = gcc_parent_map_29,
0930     .clkr = {
0931         .hw.init = &(const struct clk_init_data) {
0932             .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
0933             .parent_data = gcc_parent_data_29,
0934             .num_parents = ARRAY_SIZE(gcc_parent_data_29),
0935             .ops = &clk_regmap_mux_closest_ops,
0936         },
0937     },
0938 };
0939 
0940 static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
0941     .reg = 0xb80e0,
0942     .shift = 0,
0943     .width = 2,
0944     .parent_map = gcc_parent_map_31,
0945     .clkr = {
0946         .hw.init = &(const struct clk_init_data) {
0947             .name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
0948             .parent_data = gcc_parent_data_31,
0949             .num_parents = ARRAY_SIZE(gcc_parent_data_31),
0950             .ops = &clk_regmap_mux_closest_ops,
0951         },
0952     },
0953 };
0954 
0955 static struct clk_regmap_mux gcc_usb4_1_phy_rx0_clk_src = {
0956     .reg = 0xb8090,
0957     .shift = 0,
0958     .width = 2,
0959     .parent_map = gcc_parent_map_32,
0960     .clkr = {
0961         .hw.init = &(const struct clk_init_data) {
0962             .name = "gcc_usb4_1_phy_rx0_clk_src",
0963             .parent_data = gcc_parent_data_32,
0964             .num_parents = ARRAY_SIZE(gcc_parent_data_32),
0965             .ops = &clk_regmap_mux_closest_ops,
0966         },
0967     },
0968 };
0969 
0970 static struct clk_regmap_mux gcc_usb4_1_phy_rx1_clk_src = {
0971     .reg = 0xb809c,
0972     .shift = 0,
0973     .width = 2,
0974     .parent_map = gcc_parent_map_33,
0975     .clkr = {
0976         .hw.init = &(const struct clk_init_data) {
0977             .name = "gcc_usb4_1_phy_rx1_clk_src",
0978             .parent_data = gcc_parent_data_33,
0979             .num_parents = ARRAY_SIZE(gcc_parent_data_33),
0980             .ops = &clk_regmap_mux_closest_ops,
0981         },
0982     },
0983 };
0984 
0985 static struct clk_regmap_mux gcc_usb4_1_phy_sys_clk_src = {
0986     .reg = 0xb80c0,
0987     .shift = 0,
0988     .width = 2,
0989     .parent_map = gcc_parent_map_34,
0990     .clkr = {
0991         .hw.init = &(const struct clk_init_data) {
0992             .name = "gcc_usb4_1_phy_sys_clk_src",
0993             .parent_data = gcc_parent_data_34,
0994             .num_parents = ARRAY_SIZE(gcc_parent_data_34),
0995             .ops = &clk_regmap_mux_closest_ops,
0996         },
0997     },
0998 };
0999 
1000 static struct clk_regmap_mux gcc_usb4_phy_dp_clk_src = {
1001     .reg = 0x2a050,
1002     .shift = 0,
1003     .width = 2,
1004     .parent_map = gcc_parent_map_35,
1005     .clkr = {
1006         .hw.init = &(const struct clk_init_data) {
1007             .name = "gcc_usb4_phy_dp_clk_src",
1008             .parent_data = gcc_parent_data_35,
1009             .num_parents = ARRAY_SIZE(gcc_parent_data_35),
1010             .ops = &clk_regmap_mux_closest_ops,
1011         },
1012     },
1013 };
1014 
1015 static struct clk_regmap_mux gcc_usb4_phy_p2rr2p_pipe_clk_src = {
1016     .reg = 0x2a0b0,
1017     .shift = 0,
1018     .width = 2,
1019     .parent_map = gcc_parent_map_36,
1020     .clkr = {
1021         .hw.init = &(const struct clk_init_data) {
1022             .name = "gcc_usb4_phy_p2rr2p_pipe_clk_src",
1023             .parent_data = gcc_parent_data_36,
1024             .num_parents = ARRAY_SIZE(gcc_parent_data_36),
1025             .ops = &clk_regmap_mux_closest_ops,
1026         },
1027     },
1028 };
1029 
1030 static struct clk_regmap_mux gcc_usb4_phy_pcie_pipe_mux_clk_src = {
1031     .reg = 0x2a0e0,
1032     .shift = 0,
1033     .width = 2,
1034     .parent_map = gcc_parent_map_38,
1035     .clkr = {
1036         .hw.init = &(const struct clk_init_data) {
1037             .name = "gcc_usb4_phy_pcie_pipe_mux_clk_src",
1038             .parent_data = gcc_parent_data_38,
1039             .num_parents = ARRAY_SIZE(gcc_parent_data_38),
1040             .ops = &clk_regmap_mux_closest_ops,
1041         },
1042     },
1043 };
1044 
1045 static struct clk_regmap_mux gcc_usb4_phy_rx0_clk_src = {
1046     .reg = 0x2a090,
1047     .shift = 0,
1048     .width = 2,
1049     .parent_map = gcc_parent_map_39,
1050     .clkr = {
1051         .hw.init = &(const struct clk_init_data) {
1052             .name = "gcc_usb4_phy_rx0_clk_src",
1053             .parent_data = gcc_parent_data_39,
1054             .num_parents = ARRAY_SIZE(gcc_parent_data_39),
1055             .ops = &clk_regmap_mux_closest_ops,
1056         },
1057     },
1058 };
1059 
1060 static struct clk_regmap_mux gcc_usb4_phy_rx1_clk_src = {
1061     .reg = 0x2a09c,
1062     .shift = 0,
1063     .width = 2,
1064     .parent_map = gcc_parent_map_40,
1065     .clkr = {
1066         .hw.init = &(const struct clk_init_data) {
1067             .name = "gcc_usb4_phy_rx1_clk_src",
1068             .parent_data = gcc_parent_data_40,
1069             .num_parents = ARRAY_SIZE(gcc_parent_data_40),
1070             .ops = &clk_regmap_mux_closest_ops,
1071         },
1072     },
1073 };
1074 
1075 static struct clk_regmap_mux gcc_usb4_phy_sys_clk_src = {
1076     .reg = 0x2a0c0,
1077     .shift = 0,
1078     .width = 2,
1079     .parent_map = gcc_parent_map_41,
1080     .clkr = {
1081         .hw.init = &(const struct clk_init_data) {
1082             .name = "gcc_usb4_phy_sys_clk_src",
1083             .parent_data = gcc_parent_data_41,
1084             .num_parents = ARRAY_SIZE(gcc_parent_data_41),
1085             .ops = &clk_regmap_mux_closest_ops,
1086         },
1087     },
1088 };
1089 
1090 static const struct freq_tbl ftbl_gcc_emac0_ptp_clk_src[] = {
1091     F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1092     F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1093     F(230400000, P_GCC_GPLL4_OUT_MAIN, 3.5, 0, 0),
1094     { }
1095 };
1096 
1097 static struct clk_rcg2 gcc_emac0_ptp_clk_src = {
1098     .cmd_rcgr = 0xaa020,
1099     .mnd_width = 0,
1100     .hid_width = 5,
1101     .parent_map = gcc_parent_map_4,
1102     .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
1103     .clkr.hw.init = &(const struct clk_init_data) {
1104         .name = "gcc_emac0_ptp_clk_src",
1105         .parent_data = gcc_parent_data_4,
1106         .num_parents = ARRAY_SIZE(gcc_parent_data_4),
1107         .ops = &clk_rcg2_shared_ops,
1108     },
1109 };
1110 
1111 static const struct freq_tbl ftbl_gcc_emac0_rgmii_clk_src[] = {
1112     F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1113     F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1114     F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
1115     { }
1116 };
1117 
1118 static struct clk_rcg2 gcc_emac0_rgmii_clk_src = {
1119     .cmd_rcgr = 0xaa040,
1120     .mnd_width = 8,
1121     .hid_width = 5,
1122     .parent_map = gcc_parent_map_8,
1123     .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
1124     .clkr.hw.init = &(const struct clk_init_data) {
1125         .name = "gcc_emac0_rgmii_clk_src",
1126         .parent_data = gcc_parent_data_8,
1127         .num_parents = ARRAY_SIZE(gcc_parent_data_8),
1128         .ops = &clk_rcg2_shared_ops,
1129     },
1130 };
1131 
1132 static struct clk_rcg2 gcc_emac1_ptp_clk_src = {
1133     .cmd_rcgr = 0xba020,
1134     .mnd_width = 0,
1135     .hid_width = 5,
1136     .parent_map = gcc_parent_map_4,
1137     .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
1138     .clkr.hw.init = &(const struct clk_init_data) {
1139         .name = "gcc_emac1_ptp_clk_src",
1140         .parent_data = gcc_parent_data_4,
1141         .num_parents = ARRAY_SIZE(gcc_parent_data_4),
1142         .ops = &clk_rcg2_shared_ops,
1143     },
1144 };
1145 
1146 static struct clk_rcg2 gcc_emac1_rgmii_clk_src = {
1147     .cmd_rcgr = 0xba040,
1148     .mnd_width = 8,
1149     .hid_width = 5,
1150     .parent_map = gcc_parent_map_9,
1151     .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
1152     .clkr.hw.init = &(const struct clk_init_data) {
1153         .name = "gcc_emac1_rgmii_clk_src",
1154         .parent_data = gcc_parent_data_9,
1155         .num_parents = ARRAY_SIZE(gcc_parent_data_9),
1156         .ops = &clk_rcg2_shared_ops,
1157     },
1158 };
1159 
1160 static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
1161     F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1162     F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1163     F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1164     { }
1165 };
1166 
1167 static struct clk_rcg2 gcc_gp1_clk_src = {
1168     .cmd_rcgr = 0x64004,
1169     .mnd_width = 16,
1170     .hid_width = 5,
1171     .parent_map = gcc_parent_map_2,
1172     .freq_tbl = ftbl_gcc_gp1_clk_src,
1173     .clkr.hw.init = &(const struct clk_init_data) {
1174         .name = "gcc_gp1_clk_src",
1175         .parent_data = gcc_parent_data_2,
1176         .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1177         .ops = &clk_rcg2_shared_ops,
1178     },
1179 };
1180 
1181 static struct clk_rcg2 gcc_gp2_clk_src = {
1182     .cmd_rcgr = 0x65004,
1183     .mnd_width = 16,
1184     .hid_width = 5,
1185     .parent_map = gcc_parent_map_2,
1186     .freq_tbl = ftbl_gcc_gp1_clk_src,
1187     .clkr.hw.init = &(const struct clk_init_data) {
1188         .name = "gcc_gp2_clk_src",
1189         .parent_data = gcc_parent_data_2,
1190         .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1191         .ops = &clk_rcg2_shared_ops,
1192     },
1193 };
1194 
1195 static struct clk_rcg2 gcc_gp3_clk_src = {
1196     .cmd_rcgr = 0x66004,
1197     .mnd_width = 16,
1198     .hid_width = 5,
1199     .parent_map = gcc_parent_map_2,
1200     .freq_tbl = ftbl_gcc_gp1_clk_src,
1201     .clkr.hw.init = &(const struct clk_init_data) {
1202         .name = "gcc_gp3_clk_src",
1203         .parent_data = gcc_parent_data_2,
1204         .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1205         .ops = &clk_rcg2_shared_ops,
1206     },
1207 };
1208 
1209 static struct clk_rcg2 gcc_gp4_clk_src = {
1210     .cmd_rcgr = 0xc2004,
1211     .mnd_width = 16,
1212     .hid_width = 5,
1213     .parent_map = gcc_parent_map_2,
1214     .freq_tbl = ftbl_gcc_gp1_clk_src,
1215     .clkr.hw.init = &(const struct clk_init_data) {
1216         .name = "gcc_gp4_clk_src",
1217         .parent_data = gcc_parent_data_2,
1218         .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1219         .ops = &clk_rcg2_shared_ops,
1220     },
1221 };
1222 
1223 static struct clk_rcg2 gcc_gp5_clk_src = {
1224     .cmd_rcgr = 0xc3004,
1225     .mnd_width = 16,
1226     .hid_width = 5,
1227     .parent_map = gcc_parent_map_2,
1228     .freq_tbl = ftbl_gcc_gp1_clk_src,
1229     .clkr.hw.init = &(const struct clk_init_data) {
1230         .name = "gcc_gp5_clk_src",
1231         .parent_data = gcc_parent_data_2,
1232         .num_parents = ARRAY_SIZE(gcc_parent_data_2),
1233         .ops = &clk_rcg2_shared_ops,
1234     },
1235 };
1236 
1237 static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
1238     F(9600000, P_BI_TCXO, 2, 0, 0),
1239     F(19200000, P_BI_TCXO, 1, 0, 0),
1240     { }
1241 };
1242 
1243 static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
1244     .cmd_rcgr = 0xa4054,
1245     .mnd_width = 16,
1246     .hid_width = 5,
1247     .parent_map = gcc_parent_map_1,
1248     .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1249     .clkr.hw.init = &(const struct clk_init_data) {
1250         .name = "gcc_pcie_0_aux_clk_src",
1251         .parent_data = gcc_parent_data_1,
1252         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1253         .ops = &clk_rcg2_shared_ops,
1254     },
1255 };
1256 
1257 static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
1258     F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1259     { }
1260 };
1261 
1262 static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
1263     .cmd_rcgr = 0xa403c,
1264     .mnd_width = 0,
1265     .hid_width = 5,
1266     .parent_map = gcc_parent_map_0,
1267     .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1268     .clkr.hw.init = &(const struct clk_init_data) {
1269         .name = "gcc_pcie_0_phy_rchng_clk_src",
1270         .parent_data = gcc_parent_data_0,
1271         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1272         .ops = &clk_rcg2_shared_ops,
1273     },
1274 };
1275 
1276 static const struct freq_tbl ftbl_gcc_pcie_1_aux_clk_src[] = {
1277     F(19200000, P_BI_TCXO, 1, 0, 0),
1278     { }
1279 };
1280 
1281 static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
1282     .cmd_rcgr = 0x8d054,
1283     .mnd_width = 16,
1284     .hid_width = 5,
1285     .parent_map = gcc_parent_map_1,
1286     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1287     .clkr.hw.init = &(const struct clk_init_data) {
1288         .name = "gcc_pcie_1_aux_clk_src",
1289         .parent_data = gcc_parent_data_1,
1290         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1291         .ops = &clk_rcg2_shared_ops,
1292     },
1293 };
1294 
1295 static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
1296     .cmd_rcgr = 0x8d03c,
1297     .mnd_width = 0,
1298     .hid_width = 5,
1299     .parent_map = gcc_parent_map_0,
1300     .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1301     .clkr.hw.init = &(const struct clk_init_data) {
1302         .name = "gcc_pcie_1_phy_rchng_clk_src",
1303         .parent_data = gcc_parent_data_0,
1304         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1305         .ops = &clk_rcg2_shared_ops,
1306     },
1307 };
1308 
1309 static struct clk_rcg2 gcc_pcie_2a_aux_clk_src = {
1310     .cmd_rcgr = 0x9d064,
1311     .mnd_width = 16,
1312     .hid_width = 5,
1313     .parent_map = gcc_parent_map_1,
1314     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1315     .clkr.hw.init = &(const struct clk_init_data) {
1316         .name = "gcc_pcie_2a_aux_clk_src",
1317         .parent_data = gcc_parent_data_1,
1318         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1319         .ops = &clk_rcg2_shared_ops,
1320     },
1321 };
1322 
1323 static struct clk_rcg2 gcc_pcie_2a_phy_rchng_clk_src = {
1324     .cmd_rcgr = 0x9d044,
1325     .mnd_width = 0,
1326     .hid_width = 5,
1327     .parent_map = gcc_parent_map_0,
1328     .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1329     .clkr.hw.init = &(const struct clk_init_data) {
1330         .name = "gcc_pcie_2a_phy_rchng_clk_src",
1331         .parent_data = gcc_parent_data_0,
1332         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1333         .ops = &clk_rcg2_shared_ops,
1334     },
1335 };
1336 
1337 static struct clk_rcg2 gcc_pcie_2b_aux_clk_src = {
1338     .cmd_rcgr = 0x9e064,
1339     .mnd_width = 16,
1340     .hid_width = 5,
1341     .parent_map = gcc_parent_map_1,
1342     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1343     .clkr.hw.init = &(const struct clk_init_data) {
1344         .name = "gcc_pcie_2b_aux_clk_src",
1345         .parent_data = gcc_parent_data_1,
1346         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1347         .ops = &clk_rcg2_shared_ops,
1348     },
1349 };
1350 
1351 static struct clk_rcg2 gcc_pcie_2b_phy_rchng_clk_src = {
1352     .cmd_rcgr = 0x9e044,
1353     .mnd_width = 0,
1354     .hid_width = 5,
1355     .parent_map = gcc_parent_map_0,
1356     .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1357     .clkr.hw.init = &(const struct clk_init_data) {
1358         .name = "gcc_pcie_2b_phy_rchng_clk_src",
1359         .parent_data = gcc_parent_data_0,
1360         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1361         .ops = &clk_rcg2_shared_ops,
1362     },
1363 };
1364 
1365 static struct clk_rcg2 gcc_pcie_3a_aux_clk_src = {
1366     .cmd_rcgr = 0xa0064,
1367     .mnd_width = 16,
1368     .hid_width = 5,
1369     .parent_map = gcc_parent_map_1,
1370     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1371     .clkr.hw.init = &(const struct clk_init_data) {
1372         .name = "gcc_pcie_3a_aux_clk_src",
1373         .parent_data = gcc_parent_data_1,
1374         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1375         .ops = &clk_rcg2_shared_ops,
1376     },
1377 };
1378 
1379 static struct clk_rcg2 gcc_pcie_3a_phy_rchng_clk_src = {
1380     .cmd_rcgr = 0xa0044,
1381     .mnd_width = 0,
1382     .hid_width = 5,
1383     .parent_map = gcc_parent_map_0,
1384     .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1385     .clkr.hw.init = &(const struct clk_init_data) {
1386         .name = "gcc_pcie_3a_phy_rchng_clk_src",
1387         .parent_data = gcc_parent_data_0,
1388         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1389         .ops = &clk_rcg2_shared_ops,
1390     },
1391 };
1392 
1393 static struct clk_rcg2 gcc_pcie_3b_aux_clk_src = {
1394     .cmd_rcgr = 0xa2064,
1395     .mnd_width = 16,
1396     .hid_width = 5,
1397     .parent_map = gcc_parent_map_1,
1398     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1399     .clkr.hw.init = &(const struct clk_init_data) {
1400         .name = "gcc_pcie_3b_aux_clk_src",
1401         .parent_data = gcc_parent_data_1,
1402         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1403         .ops = &clk_rcg2_shared_ops,
1404     },
1405 };
1406 
1407 static struct clk_rcg2 gcc_pcie_3b_phy_rchng_clk_src = {
1408     .cmd_rcgr = 0xa2044,
1409     .mnd_width = 0,
1410     .hid_width = 5,
1411     .parent_map = gcc_parent_map_0,
1412     .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1413     .clkr.hw.init = &(const struct clk_init_data) {
1414         .name = "gcc_pcie_3b_phy_rchng_clk_src",
1415         .parent_data = gcc_parent_data_0,
1416         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1417         .ops = &clk_rcg2_shared_ops,
1418     },
1419 };
1420 
1421 static struct clk_rcg2 gcc_pcie_4_aux_clk_src = {
1422     .cmd_rcgr = 0x6b064,
1423     .mnd_width = 16,
1424     .hid_width = 5,
1425     .parent_map = gcc_parent_map_1,
1426     .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1427     .clkr.hw.init = &(const struct clk_init_data) {
1428         .name = "gcc_pcie_4_aux_clk_src",
1429         .parent_data = gcc_parent_data_1,
1430         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
1431         .ops = &clk_rcg2_shared_ops,
1432     },
1433 };
1434 
1435 static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = {
1436     .cmd_rcgr = 0x6b044,
1437     .mnd_width = 0,
1438     .hid_width = 5,
1439     .parent_map = gcc_parent_map_0,
1440     .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1441     .clkr.hw.init = &(const struct clk_init_data) {
1442         .name = "gcc_pcie_4_phy_rchng_clk_src",
1443         .parent_data = gcc_parent_data_0,
1444         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1445         .ops = &clk_rcg2_shared_ops,
1446     },
1447 };
1448 
1449 static struct clk_rcg2 gcc_pcie_rscc_xo_clk_src = {
1450     .cmd_rcgr = 0xae00c,
1451     .mnd_width = 0,
1452     .hid_width = 5,
1453     .parent_map = gcc_parent_map_3,
1454     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1455     .clkr.hw.init = &(const struct clk_init_data) {
1456         .name = "gcc_pcie_rscc_xo_clk_src",
1457         .parent_data = gcc_parent_data_3,
1458         .num_parents = ARRAY_SIZE(gcc_parent_data_3),
1459         .ops = &clk_rcg2_shared_ops,
1460     },
1461 };
1462 
1463 static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
1464     F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
1465     { }
1466 };
1467 
1468 static struct clk_rcg2 gcc_pdm2_clk_src = {
1469     .cmd_rcgr = 0x33010,
1470     .mnd_width = 0,
1471     .hid_width = 5,
1472     .parent_map = gcc_parent_map_0,
1473     .freq_tbl = ftbl_gcc_pdm2_clk_src,
1474     .clkr.hw.init = &(const struct clk_init_data) {
1475         .name = "gcc_pdm2_clk_src",
1476         .parent_data = gcc_parent_data_0,
1477         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1478         .ops = &clk_rcg2_shared_ops,
1479     },
1480 };
1481 
1482 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
1483     F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1484     F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1485     F(19200000, P_BI_TCXO, 1, 0, 0),
1486     F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1487     F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1488     F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1489     F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1490     F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1491     F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1492     F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1493     F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1494     { }
1495 };
1496 
1497 static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
1498     .name = "gcc_qupv3_wrap0_s0_clk_src",
1499     .parent_data = gcc_parent_data_0,
1500     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1501     .flags = CLK_SET_RATE_PARENT,
1502     .ops = &clk_rcg2_shared_ops,
1503 };
1504 
1505 static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
1506     .cmd_rcgr = 0x17148,
1507     .mnd_width = 16,
1508     .hid_width = 5,
1509     .parent_map = gcc_parent_map_0,
1510     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1511     .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
1512 };
1513 
1514 static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
1515     .name = "gcc_qupv3_wrap0_s1_clk_src",
1516     .parent_data = gcc_parent_data_0,
1517     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1518     .flags = CLK_SET_RATE_PARENT,
1519     .ops = &clk_rcg2_shared_ops,
1520 };
1521 
1522 static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
1523     .cmd_rcgr = 0x17278,
1524     .mnd_width = 16,
1525     .hid_width = 5,
1526     .parent_map = gcc_parent_map_0,
1527     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1528     .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
1529 };
1530 
1531 static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
1532     .name = "gcc_qupv3_wrap0_s2_clk_src",
1533     .parent_data = gcc_parent_data_0,
1534     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1535     .flags = CLK_SET_RATE_PARENT,
1536     .ops = &clk_rcg2_shared_ops,
1537 };
1538 
1539 static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
1540     .cmd_rcgr = 0x173a8,
1541     .mnd_width = 16,
1542     .hid_width = 5,
1543     .parent_map = gcc_parent_map_0,
1544     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1545     .clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
1546 };
1547 
1548 static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
1549     .name = "gcc_qupv3_wrap0_s3_clk_src",
1550     .parent_data = gcc_parent_data_0,
1551     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1552     .flags = CLK_SET_RATE_PARENT,
1553     .ops = &clk_rcg2_shared_ops,
1554 };
1555 
1556 static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
1557     .cmd_rcgr = 0x174d8,
1558     .mnd_width = 16,
1559     .hid_width = 5,
1560     .parent_map = gcc_parent_map_0,
1561     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1562     .clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
1563 };
1564 
1565 static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
1566     .name = "gcc_qupv3_wrap0_s4_clk_src",
1567     .parent_data = gcc_parent_data_0,
1568     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1569     .flags = CLK_SET_RATE_PARENT,
1570     .ops = &clk_rcg2_shared_ops,
1571 };
1572 
1573 static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
1574     .cmd_rcgr = 0x17608,
1575     .mnd_width = 16,
1576     .hid_width = 5,
1577     .parent_map = gcc_parent_map_0,
1578     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1579     .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
1580 };
1581 
1582 static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
1583     .name = "gcc_qupv3_wrap0_s5_clk_src",
1584     .parent_data = gcc_parent_data_0,
1585     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1586     .flags = CLK_SET_RATE_PARENT,
1587     .ops = &clk_rcg2_shared_ops,
1588 };
1589 
1590 static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
1591     .cmd_rcgr = 0x17738,
1592     .mnd_width = 16,
1593     .hid_width = 5,
1594     .parent_map = gcc_parent_map_0,
1595     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1596     .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
1597 };
1598 
1599 static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s6_clk_src[] = {
1600     F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1601     F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1602     F(19200000, P_BI_TCXO, 1, 0, 0),
1603     F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1604     F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1605     F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1606     F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1607     F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1608     F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1609     F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1610     F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1611     { }
1612 };
1613 
1614 static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
1615     .name = "gcc_qupv3_wrap0_s6_clk_src",
1616     .parent_data = gcc_parent_data_0,
1617     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1618     .flags = CLK_SET_RATE_PARENT,
1619     .ops = &clk_rcg2_shared_ops,
1620 };
1621 
1622 static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
1623     .cmd_rcgr = 0x17868,
1624     .mnd_width = 16,
1625     .hid_width = 5,
1626     .parent_map = gcc_parent_map_0,
1627     .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1628     .clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
1629 };
1630 
1631 static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
1632     .name = "gcc_qupv3_wrap0_s7_clk_src",
1633     .parent_data = gcc_parent_data_0,
1634     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1635     .flags = CLK_SET_RATE_PARENT,
1636     .ops = &clk_rcg2_shared_ops,
1637 };
1638 
1639 static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
1640     .cmd_rcgr = 0x17998,
1641     .mnd_width = 16,
1642     .hid_width = 5,
1643     .parent_map = gcc_parent_map_0,
1644     .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1645     .clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
1646 };
1647 
1648 static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
1649     .name = "gcc_qupv3_wrap1_s0_clk_src",
1650     .parent_data = gcc_parent_data_0,
1651     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1652     .flags = CLK_SET_RATE_PARENT,
1653     .ops = &clk_rcg2_shared_ops,
1654 };
1655 
1656 static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
1657     .cmd_rcgr = 0x18148,
1658     .mnd_width = 16,
1659     .hid_width = 5,
1660     .parent_map = gcc_parent_map_0,
1661     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1662     .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
1663 };
1664 
1665 static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
1666     .name = "gcc_qupv3_wrap1_s1_clk_src",
1667     .parent_data = gcc_parent_data_0,
1668     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1669     .flags = CLK_SET_RATE_PARENT,
1670     .ops = &clk_rcg2_shared_ops,
1671 };
1672 
1673 static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
1674     .cmd_rcgr = 0x18278,
1675     .mnd_width = 16,
1676     .hid_width = 5,
1677     .parent_map = gcc_parent_map_0,
1678     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1679     .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
1680 };
1681 
1682 static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
1683     .name = "gcc_qupv3_wrap1_s2_clk_src",
1684     .parent_data = gcc_parent_data_0,
1685     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1686     .flags = CLK_SET_RATE_PARENT,
1687     .ops = &clk_rcg2_shared_ops,
1688 };
1689 
1690 static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
1691     .cmd_rcgr = 0x183a8,
1692     .mnd_width = 16,
1693     .hid_width = 5,
1694     .parent_map = gcc_parent_map_0,
1695     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1696     .clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
1697 };
1698 
1699 static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
1700     .name = "gcc_qupv3_wrap1_s3_clk_src",
1701     .parent_data = gcc_parent_data_0,
1702     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1703     .flags = CLK_SET_RATE_PARENT,
1704     .ops = &clk_rcg2_shared_ops,
1705 };
1706 
1707 static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
1708     .cmd_rcgr = 0x184d8,
1709     .mnd_width = 16,
1710     .hid_width = 5,
1711     .parent_map = gcc_parent_map_0,
1712     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1713     .clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
1714 };
1715 
1716 static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
1717     .name = "gcc_qupv3_wrap1_s4_clk_src",
1718     .parent_data = gcc_parent_data_0,
1719     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1720     .flags = CLK_SET_RATE_PARENT,
1721     .ops = &clk_rcg2_shared_ops,
1722 };
1723 
1724 static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
1725     .cmd_rcgr = 0x18608,
1726     .mnd_width = 16,
1727     .hid_width = 5,
1728     .parent_map = gcc_parent_map_0,
1729     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1730     .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
1731 };
1732 
1733 static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
1734     .name = "gcc_qupv3_wrap1_s5_clk_src",
1735     .parent_data = gcc_parent_data_0,
1736     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1737     .flags = CLK_SET_RATE_PARENT,
1738     .ops = &clk_rcg2_shared_ops,
1739 };
1740 
1741 static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
1742     .cmd_rcgr = 0x18738,
1743     .mnd_width = 16,
1744     .hid_width = 5,
1745     .parent_map = gcc_parent_map_0,
1746     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1747     .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
1748 };
1749 
1750 static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
1751     .name = "gcc_qupv3_wrap1_s6_clk_src",
1752     .parent_data = gcc_parent_data_0,
1753     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1754     .flags = CLK_SET_RATE_PARENT,
1755     .ops = &clk_rcg2_shared_ops,
1756 };
1757 
1758 static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
1759     .cmd_rcgr = 0x18868,
1760     .mnd_width = 16,
1761     .hid_width = 5,
1762     .parent_map = gcc_parent_map_0,
1763     .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1764     .clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
1765 };
1766 
1767 static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
1768     .name = "gcc_qupv3_wrap1_s7_clk_src",
1769     .parent_data = gcc_parent_data_0,
1770     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1771     .flags = CLK_SET_RATE_PARENT,
1772     .ops = &clk_rcg2_shared_ops,
1773 };
1774 
1775 static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
1776     .cmd_rcgr = 0x18998,
1777     .mnd_width = 16,
1778     .hid_width = 5,
1779     .parent_map = gcc_parent_map_0,
1780     .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1781     .clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
1782 };
1783 
1784 static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
1785     .name = "gcc_qupv3_wrap2_s0_clk_src",
1786     .parent_data = gcc_parent_data_0,
1787     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1788     .flags = CLK_SET_RATE_PARENT,
1789     .ops = &clk_rcg2_shared_ops,
1790 };
1791 
1792 static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
1793     .cmd_rcgr = 0x1e148,
1794     .mnd_width = 16,
1795     .hid_width = 5,
1796     .parent_map = gcc_parent_map_0,
1797     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1798     .clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
1799 };
1800 
1801 static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
1802     .name = "gcc_qupv3_wrap2_s1_clk_src",
1803     .parent_data = gcc_parent_data_0,
1804     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1805     .flags = CLK_SET_RATE_PARENT,
1806     .ops = &clk_rcg2_shared_ops,
1807 };
1808 
1809 static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
1810     .cmd_rcgr = 0x1e278,
1811     .mnd_width = 16,
1812     .hid_width = 5,
1813     .parent_map = gcc_parent_map_0,
1814     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1815     .clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
1816 };
1817 
1818 static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
1819     .name = "gcc_qupv3_wrap2_s2_clk_src",
1820     .parent_data = gcc_parent_data_0,
1821     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1822     .flags = CLK_SET_RATE_PARENT,
1823     .ops = &clk_rcg2_shared_ops,
1824 };
1825 
1826 static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
1827     .cmd_rcgr = 0x1e3a8,
1828     .mnd_width = 16,
1829     .hid_width = 5,
1830     .parent_map = gcc_parent_map_0,
1831     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1832     .clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init,
1833 };
1834 
1835 static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
1836     .name = "gcc_qupv3_wrap2_s3_clk_src",
1837     .parent_data = gcc_parent_data_0,
1838     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1839     .flags = CLK_SET_RATE_PARENT,
1840     .ops = &clk_rcg2_shared_ops,
1841 };
1842 
1843 static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
1844     .cmd_rcgr = 0x1e4d8,
1845     .mnd_width = 16,
1846     .hid_width = 5,
1847     .parent_map = gcc_parent_map_0,
1848     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1849     .clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init,
1850 };
1851 
1852 static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
1853     .name = "gcc_qupv3_wrap2_s4_clk_src",
1854     .parent_data = gcc_parent_data_0,
1855     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1856     .flags = CLK_SET_RATE_PARENT,
1857     .ops = &clk_rcg2_shared_ops,
1858 };
1859 
1860 static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
1861     .cmd_rcgr = 0x1e608,
1862     .mnd_width = 16,
1863     .hid_width = 5,
1864     .parent_map = gcc_parent_map_0,
1865     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1866     .clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
1867 };
1868 
1869 static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
1870     .name = "gcc_qupv3_wrap2_s5_clk_src",
1871     .parent_data = gcc_parent_data_0,
1872     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1873     .flags = CLK_SET_RATE_PARENT,
1874     .ops = &clk_rcg2_shared_ops,
1875 };
1876 
1877 static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
1878     .cmd_rcgr = 0x1e738,
1879     .mnd_width = 16,
1880     .hid_width = 5,
1881     .parent_map = gcc_parent_map_0,
1882     .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1883     .clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
1884 };
1885 
1886 static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = {
1887     .name = "gcc_qupv3_wrap2_s6_clk_src",
1888     .parent_data = gcc_parent_data_0,
1889     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1890     .flags = CLK_SET_RATE_PARENT,
1891     .ops = &clk_rcg2_shared_ops,
1892 };
1893 
1894 static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
1895     .cmd_rcgr = 0x1e868,
1896     .mnd_width = 16,
1897     .hid_width = 5,
1898     .parent_map = gcc_parent_map_0,
1899     .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1900     .clkr.hw.init = &gcc_qupv3_wrap2_s6_clk_src_init,
1901 };
1902 
1903 static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
1904     .name = "gcc_qupv3_wrap2_s7_clk_src",
1905     .parent_data = gcc_parent_data_0,
1906     .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1907     .flags = CLK_SET_RATE_PARENT,
1908     .ops = &clk_rcg2_shared_ops,
1909 };
1910 
1911 static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
1912     .cmd_rcgr = 0x1e998,
1913     .mnd_width = 16,
1914     .hid_width = 5,
1915     .parent_map = gcc_parent_map_0,
1916     .freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1917     .clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init,
1918 };
1919 
1920 static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
1921     F(400000, P_BI_TCXO, 12, 1, 4),
1922     F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1923     F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1924     F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1925     F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
1926     { }
1927 };
1928 
1929 static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
1930     .cmd_rcgr = 0x1400c,
1931     .mnd_width = 8,
1932     .hid_width = 5,
1933     .parent_map = gcc_parent_map_15,
1934     .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
1935     .clkr.hw.init = &(const struct clk_init_data) {
1936         .name = "gcc_sdcc2_apps_clk_src",
1937         .parent_data = gcc_parent_data_15,
1938         .num_parents = ARRAY_SIZE(gcc_parent_data_15),
1939         .ops = &clk_rcg2_shared_ops,
1940     },
1941 };
1942 
1943 static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
1944     F(400000, P_BI_TCXO, 12, 1, 4),
1945     F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1946     F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1947     { }
1948 };
1949 
1950 static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
1951     .cmd_rcgr = 0x1600c,
1952     .mnd_width = 8,
1953     .hid_width = 5,
1954     .parent_map = gcc_parent_map_0,
1955     .freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
1956     .clkr.hw.init = &(const struct clk_init_data) {
1957         .name = "gcc_sdcc4_apps_clk_src",
1958         .parent_data = gcc_parent_data_0,
1959         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1960         .ops = &clk_rcg2_shared_ops,
1961     },
1962 };
1963 
1964 static const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src[] = {
1965     F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1966     F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1967     F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1968     F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1969     { }
1970 };
1971 
1972 static struct clk_rcg2 gcc_ufs_card_axi_clk_src = {
1973     .cmd_rcgr = 0x75024,
1974     .mnd_width = 8,
1975     .hid_width = 5,
1976     .parent_map = gcc_parent_map_0,
1977     .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
1978     .clkr.hw.init = &(const struct clk_init_data) {
1979         .name = "gcc_ufs_card_axi_clk_src",
1980         .parent_data = gcc_parent_data_0,
1981         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
1982         .ops = &clk_rcg2_shared_ops,
1983     },
1984 };
1985 
1986 static const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src[] = {
1987     F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1988     F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1989     F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1990     { }
1991 };
1992 
1993 static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = {
1994     .cmd_rcgr = 0x7506c,
1995     .mnd_width = 0,
1996     .hid_width = 5,
1997     .parent_map = gcc_parent_map_0,
1998     .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
1999     .clkr.hw.init = &(const struct clk_init_data) {
2000         .name = "gcc_ufs_card_ice_core_clk_src",
2001         .parent_data = gcc_parent_data_0,
2002         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2003         .ops = &clk_rcg2_shared_ops,
2004     },
2005 };
2006 
2007 static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = {
2008     .cmd_rcgr = 0x750a0,
2009     .mnd_width = 0,
2010     .hid_width = 5,
2011     .parent_map = gcc_parent_map_3,
2012     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2013     .clkr.hw.init = &(const struct clk_init_data) {
2014         .name = "gcc_ufs_card_phy_aux_clk_src",
2015         .parent_data = gcc_parent_data_3,
2016         .num_parents = ARRAY_SIZE(gcc_parent_data_3),
2017         .ops = &clk_rcg2_shared_ops,
2018     },
2019 };
2020 
2021 static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = {
2022     .cmd_rcgr = 0x75084,
2023     .mnd_width = 0,
2024     .hid_width = 5,
2025     .parent_map = gcc_parent_map_0,
2026     .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2027     .clkr.hw.init = &(const struct clk_init_data) {
2028         .name = "gcc_ufs_card_unipro_core_clk_src",
2029         .parent_data = gcc_parent_data_0,
2030         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2031         .ops = &clk_rcg2_shared_ops,
2032     },
2033 };
2034 
2035 static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
2036     .cmd_rcgr = 0x77024,
2037     .mnd_width = 8,
2038     .hid_width = 5,
2039     .parent_map = gcc_parent_map_0,
2040     .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
2041     .clkr.hw.init = &(const struct clk_init_data) {
2042         .name = "gcc_ufs_phy_axi_clk_src",
2043         .parent_data = gcc_parent_data_0,
2044         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2045         .ops = &clk_rcg2_shared_ops,
2046     },
2047 };
2048 
2049 static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
2050     .cmd_rcgr = 0x7706c,
2051     .mnd_width = 0,
2052     .hid_width = 5,
2053     .parent_map = gcc_parent_map_0,
2054     .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2055     .clkr.hw.init = &(const struct clk_init_data) {
2056         .name = "gcc_ufs_phy_ice_core_clk_src",
2057         .parent_data = gcc_parent_data_0,
2058         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2059         .ops = &clk_rcg2_shared_ops,
2060     },
2061 };
2062 
2063 static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
2064     .cmd_rcgr = 0x770a0,
2065     .mnd_width = 0,
2066     .hid_width = 5,
2067     .parent_map = gcc_parent_map_3,
2068     .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2069     .clkr.hw.init = &(const struct clk_init_data) {
2070         .name = "gcc_ufs_phy_phy_aux_clk_src",
2071         .parent_data = gcc_parent_data_3,
2072         .num_parents = ARRAY_SIZE(gcc_parent_data_3),
2073         .ops = &clk_rcg2_shared_ops,
2074     },
2075 };
2076 
2077 static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
2078     .cmd_rcgr = 0x77084,
2079     .mnd_width = 0,
2080     .hid_width = 5,
2081     .parent_map = gcc_parent_map_0,
2082     .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2083     .clkr.hw.init = &(const struct clk_init_data) {
2084         .name = "gcc_ufs_phy_unipro_core_clk_src",
2085         .parent_data = gcc_parent_data_0,
2086         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2087         .ops = &clk_rcg2_shared_ops,
2088     },
2089 };
2090 
2091 static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = {
2092     F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
2093     F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
2094     F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
2095     F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
2096     { }
2097 };
2098 
2099 static struct clk_rcg2 gcc_usb30_mp_master_clk_src = {
2100     .cmd_rcgr = 0xab020,
2101     .mnd_width = 8,
2102     .hid_width = 5,
2103     .parent_map = gcc_parent_map_0,
2104     .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2105     .clkr.hw.init = &(const struct clk_init_data) {
2106         .name = "gcc_usb30_mp_master_clk_src",
2107         .parent_data = gcc_parent_data_0,
2108         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2109         .ops = &clk_rcg2_shared_ops,
2110     },
2111 };
2112 
2113 static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = {
2114     .cmd_rcgr = 0xab038,
2115     .mnd_width = 0,
2116     .hid_width = 5,
2117     .parent_map = gcc_parent_map_0,
2118     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2119     .clkr.hw.init = &(const struct clk_init_data) {
2120         .name = "gcc_usb30_mp_mock_utmi_clk_src",
2121         .parent_data = gcc_parent_data_0,
2122         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2123         .ops = &clk_rcg2_shared_ops,
2124     },
2125 };
2126 
2127 static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
2128     .cmd_rcgr = 0xf020,
2129     .mnd_width = 8,
2130     .hid_width = 5,
2131     .parent_map = gcc_parent_map_0,
2132     .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2133     .clkr.hw.init = &(const struct clk_init_data) {
2134         .name = "gcc_usb30_prim_master_clk_src",
2135         .parent_data = gcc_parent_data_0,
2136         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2137         .ops = &clk_rcg2_shared_ops,
2138     },
2139 };
2140 
2141 static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
2142     .cmd_rcgr = 0xf038,
2143     .mnd_width = 0,
2144     .hid_width = 5,
2145     .parent_map = gcc_parent_map_0,
2146     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2147     .clkr.hw.init = &(const struct clk_init_data) {
2148         .name = "gcc_usb30_prim_mock_utmi_clk_src",
2149         .parent_data = gcc_parent_data_0,
2150         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2151         .ops = &clk_rcg2_shared_ops,
2152     },
2153 };
2154 
2155 static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
2156     .cmd_rcgr = 0x10020,
2157     .mnd_width = 8,
2158     .hid_width = 5,
2159     .parent_map = gcc_parent_map_0,
2160     .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2161     .clkr.hw.init = &(const struct clk_init_data) {
2162         .name = "gcc_usb30_sec_master_clk_src",
2163         .parent_data = gcc_parent_data_0,
2164         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2165         .ops = &clk_rcg2_shared_ops,
2166     },
2167 };
2168 
2169 static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
2170     .cmd_rcgr = 0x10038,
2171     .mnd_width = 0,
2172     .hid_width = 5,
2173     .parent_map = gcc_parent_map_0,
2174     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2175     .clkr.hw.init = &(const struct clk_init_data) {
2176         .name = "gcc_usb30_sec_mock_utmi_clk_src",
2177         .parent_data = gcc_parent_data_0,
2178         .num_parents = ARRAY_SIZE(gcc_parent_data_0),
2179         .ops = &clk_rcg2_shared_ops,
2180     },
2181 };
2182 
2183 static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = {
2184     .cmd_rcgr = 0xab06c,
2185     .mnd_width = 0,
2186     .hid_width = 5,
2187     .parent_map = gcc_parent_map_1,
2188     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2189     .clkr.hw.init = &(const struct clk_init_data) {
2190         .name = "gcc_usb3_mp_phy_aux_clk_src",
2191         .parent_data = gcc_parent_data_1,
2192         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2193         .ops = &clk_rcg2_shared_ops,
2194     },
2195 };
2196 
2197 static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
2198     .cmd_rcgr = 0xf068,
2199     .mnd_width = 0,
2200     .hid_width = 5,
2201     .parent_map = gcc_parent_map_1,
2202     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2203     .clkr.hw.init = &(const struct clk_init_data) {
2204         .name = "gcc_usb3_prim_phy_aux_clk_src",
2205         .parent_data = gcc_parent_data_1,
2206         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2207         .ops = &clk_rcg2_shared_ops,
2208     },
2209 };
2210 
2211 static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
2212     .cmd_rcgr = 0x10068,
2213     .mnd_width = 0,
2214     .hid_width = 5,
2215     .parent_map = gcc_parent_map_1,
2216     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2217     .clkr.hw.init = &(const struct clk_init_data) {
2218         .name = "gcc_usb3_sec_phy_aux_clk_src",
2219         .parent_data = gcc_parent_data_1,
2220         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2221         .ops = &clk_rcg2_shared_ops,
2222     },
2223 };
2224 
2225 static const struct freq_tbl ftbl_gcc_usb4_1_master_clk_src[] = {
2226     F(85714286, P_GCC_GPLL0_OUT_EVEN, 3.5, 0, 0),
2227     F(175000000, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
2228     F(350000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
2229     { }
2230 };
2231 
2232 static struct clk_rcg2 gcc_usb4_1_master_clk_src = {
2233     .cmd_rcgr = 0xb8018,
2234     .mnd_width = 8,
2235     .hid_width = 5,
2236     .parent_map = gcc_parent_map_5,
2237     .freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2238     .clkr.hw.init = &(const struct clk_init_data) {
2239         .name = "gcc_usb4_1_master_clk_src",
2240         .parent_data = gcc_parent_data_5,
2241         .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2242         .ops = &clk_rcg2_shared_ops,
2243     },
2244 };
2245 
2246 static const struct freq_tbl ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src[] = {
2247     F(19200000, P_BI_TCXO, 1, 0, 0),
2248     F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
2249     F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
2250     { }
2251 };
2252 
2253 static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = {
2254     .cmd_rcgr = 0xb80c4,
2255     .mnd_width = 0,
2256     .hid_width = 5,
2257     .parent_map = gcc_parent_map_6,
2258     .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2259     .clkr.hw.init = &(const struct clk_init_data) {
2260         .name = "gcc_usb4_1_phy_pcie_pipe_clk_src",
2261         .parent_data = gcc_parent_data_6,
2262         .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2263         .ops = &clk_rcg2_shared_ops,
2264     },
2265 };
2266 
2267 static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = {
2268     .cmd_rcgr = 0xb8070,
2269     .mnd_width = 0,
2270     .hid_width = 5,
2271     .parent_map = gcc_parent_map_1,
2272     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2273     .clkr.hw.init = &(const struct clk_init_data) {
2274         .name = "gcc_usb4_1_sb_if_clk_src",
2275         .parent_data = gcc_parent_data_1,
2276         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2277         .ops = &clk_rcg2_shared_ops,
2278     },
2279 };
2280 
2281 static const struct freq_tbl ftbl_gcc_usb4_1_tmu_clk_src[] = {
2282     F(19200000, P_BI_TCXO, 1, 0, 0),
2283     F(250000000, P_GCC_GPLL2_OUT_MAIN, 4, 0, 0),
2284     { }
2285 };
2286 
2287 static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = {
2288     .cmd_rcgr = 0xb8054,
2289     .mnd_width = 0,
2290     .hid_width = 5,
2291     .parent_map = gcc_parent_map_7,
2292     .freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2293     .clkr.hw.init = &(const struct clk_init_data) {
2294         .name = "gcc_usb4_1_tmu_clk_src",
2295         .parent_data = gcc_parent_data_7,
2296         .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2297         .ops = &clk_rcg2_shared_ops,
2298     },
2299 };
2300 
2301 static struct clk_rcg2 gcc_usb4_master_clk_src = {
2302     .cmd_rcgr = 0x2a018,
2303     .mnd_width = 8,
2304     .hid_width = 5,
2305     .parent_map = gcc_parent_map_5,
2306     .freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2307     .clkr.hw.init = &(const struct clk_init_data) {
2308         .name = "gcc_usb4_master_clk_src",
2309         .parent_data = gcc_parent_data_5,
2310         .num_parents = ARRAY_SIZE(gcc_parent_data_5),
2311         .ops = &clk_rcg2_shared_ops,
2312     },
2313 };
2314 
2315 static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src = {
2316     .cmd_rcgr = 0x2a0c4,
2317     .mnd_width = 0,
2318     .hid_width = 5,
2319     .parent_map = gcc_parent_map_6,
2320     .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2321     .clkr.hw.init = &(const struct clk_init_data) {
2322         .name = "gcc_usb4_phy_pcie_pipe_clk_src",
2323         .parent_data = gcc_parent_data_6,
2324         .num_parents = ARRAY_SIZE(gcc_parent_data_6),
2325         .ops = &clk_rcg2_shared_ops,
2326     },
2327 };
2328 
2329 static struct clk_rcg2 gcc_usb4_sb_if_clk_src = {
2330     .cmd_rcgr = 0x2a070,
2331     .mnd_width = 0,
2332     .hid_width = 5,
2333     .parent_map = gcc_parent_map_1,
2334     .freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2335     .clkr.hw.init = &(const struct clk_init_data) {
2336         .name = "gcc_usb4_sb_if_clk_src",
2337         .parent_data = gcc_parent_data_1,
2338         .num_parents = ARRAY_SIZE(gcc_parent_data_1),
2339         .ops = &clk_rcg2_shared_ops,
2340     },
2341 };
2342 
2343 static struct clk_rcg2 gcc_usb4_tmu_clk_src = {
2344     .cmd_rcgr = 0x2a054,
2345     .mnd_width = 0,
2346     .hid_width = 5,
2347     .parent_map = gcc_parent_map_7,
2348     .freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2349     .clkr.hw.init = &(const struct clk_init_data) {
2350         .name = "gcc_usb4_tmu_clk_src",
2351         .parent_data = gcc_parent_data_7,
2352         .num_parents = ARRAY_SIZE(gcc_parent_data_7),
2353         .ops = &clk_rcg2_shared_ops,
2354     },
2355 };
2356 
2357 static struct clk_regmap_div gcc_pcie_2a_pipe_div_clk_src = {
2358     .reg = 0x9d060,
2359     .shift = 0,
2360     .width = 4,
2361     .clkr.hw.init = &(const struct clk_init_data) {
2362         .name = "gcc_pcie_2a_pipe_div_clk_src",
2363         .parent_hws = (const struct clk_hw*[]){
2364             &gcc_pcie_2a_pipe_clk_src.clkr.hw,
2365         },
2366         .num_parents = 1,
2367         .flags = CLK_SET_RATE_PARENT,
2368         .ops = &clk_regmap_div_ro_ops,
2369     },
2370 };
2371 
2372 static struct clk_regmap_div gcc_pcie_2b_pipe_div_clk_src = {
2373     .reg = 0x9e060,
2374     .shift = 0,
2375     .width = 4,
2376     .clkr.hw.init = &(const struct clk_init_data) {
2377         .name = "gcc_pcie_2b_pipe_div_clk_src",
2378         .parent_hws = (const struct clk_hw*[]){
2379             &gcc_pcie_2b_pipe_clk_src.clkr.hw,
2380         },
2381         .num_parents = 1,
2382         .flags = CLK_SET_RATE_PARENT,
2383         .ops = &clk_regmap_div_ro_ops,
2384     },
2385 };
2386 
2387 static struct clk_regmap_div gcc_pcie_3a_pipe_div_clk_src = {
2388     .reg = 0xa0060,
2389     .shift = 0,
2390     .width = 4,
2391     .clkr.hw.init = &(const struct clk_init_data) {
2392         .name = "gcc_pcie_3a_pipe_div_clk_src",
2393         .parent_hws = (const struct clk_hw*[]){
2394             &gcc_pcie_3a_pipe_clk_src.clkr.hw,
2395         },
2396         .num_parents = 1,
2397         .flags = CLK_SET_RATE_PARENT,
2398         .ops = &clk_regmap_div_ro_ops,
2399     },
2400 };
2401 
2402 static struct clk_regmap_div gcc_pcie_3b_pipe_div_clk_src = {
2403     .reg = 0xa2060,
2404     .shift = 0,
2405     .width = 4,
2406     .clkr.hw.init = &(const struct clk_init_data) {
2407         .name = "gcc_pcie_3b_pipe_div_clk_src",
2408         .parent_hws = (const struct clk_hw*[]){
2409             &gcc_pcie_3b_pipe_clk_src.clkr.hw,
2410         },
2411         .num_parents = 1,
2412         .flags = CLK_SET_RATE_PARENT,
2413         .ops = &clk_regmap_div_ro_ops,
2414     },
2415 };
2416 
2417 static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = {
2418     .reg = 0x6b060,
2419     .shift = 0,
2420     .width = 4,
2421     .clkr.hw.init = &(const struct clk_init_data) {
2422         .name = "gcc_pcie_4_pipe_div_clk_src",
2423         .parent_hws = (const struct clk_hw*[]){
2424             &gcc_pcie_4_pipe_clk_src.clkr.hw,
2425         },
2426         .num_parents = 1,
2427         .flags = CLK_SET_RATE_PARENT,
2428         .ops = &clk_regmap_div_ro_ops,
2429     },
2430 };
2431 
2432 static struct clk_regmap_div gcc_qupv3_wrap0_s4_div_clk_src = {
2433     .reg = 0x17ac8,
2434     .shift = 0,
2435     .width = 4,
2436     .clkr.hw.init = &(const struct clk_init_data) {
2437         .name = "gcc_qupv3_wrap0_s4_div_clk_src",
2438         .parent_hws = (const struct clk_hw*[]){
2439             &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
2440         },
2441         .num_parents = 1,
2442         .flags = CLK_SET_RATE_PARENT,
2443         .ops = &clk_regmap_div_ro_ops,
2444     },
2445 };
2446 
2447 static struct clk_regmap_div gcc_qupv3_wrap1_s4_div_clk_src = {
2448     .reg = 0x18ac8,
2449     .shift = 0,
2450     .width = 4,
2451     .clkr.hw.init = &(const struct clk_init_data) {
2452         .name = "gcc_qupv3_wrap1_s4_div_clk_src",
2453         .parent_hws = (const struct clk_hw*[]){
2454             &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
2455         },
2456         .num_parents = 1,
2457         .flags = CLK_SET_RATE_PARENT,
2458         .ops = &clk_regmap_div_ro_ops,
2459     },
2460 };
2461 
2462 static struct clk_regmap_div gcc_qupv3_wrap2_s4_div_clk_src = {
2463     .reg = 0x1eac8,
2464     .shift = 0,
2465     .width = 4,
2466     .clkr.hw.init = &(const struct clk_init_data) {
2467         .name = "gcc_qupv3_wrap2_s4_div_clk_src",
2468         .parent_hws = (const struct clk_hw*[]){
2469             &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
2470         },
2471         .num_parents = 1,
2472         .flags = CLK_SET_RATE_PARENT,
2473         .ops = &clk_regmap_div_ro_ops,
2474     },
2475 };
2476 
2477 static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = {
2478     .reg = 0xab050,
2479     .shift = 0,
2480     .width = 4,
2481     .clkr.hw.init = &(const struct clk_init_data) {
2482         .name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
2483         .parent_hws = (const struct clk_hw*[]){
2484             &gcc_usb30_mp_mock_utmi_clk_src.clkr.hw,
2485         },
2486         .num_parents = 1,
2487         .flags = CLK_SET_RATE_PARENT,
2488         .ops = &clk_regmap_div_ro_ops,
2489     },
2490 };
2491 
2492 static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
2493     .reg = 0xf050,
2494     .shift = 0,
2495     .width = 4,
2496     .clkr.hw.init = &(const struct clk_init_data) {
2497         .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
2498         .parent_hws = (const struct clk_hw*[]){
2499             &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
2500         },
2501         .num_parents = 1,
2502         .flags = CLK_SET_RATE_PARENT,
2503         .ops = &clk_regmap_div_ro_ops,
2504     },
2505 };
2506 
2507 static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
2508     .reg = 0x10050,
2509     .shift = 0,
2510     .width = 4,
2511     .clkr.hw.init = &(const struct clk_init_data) {
2512         .name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
2513         .parent_hws = (const struct clk_hw*[]){
2514             &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
2515         },
2516         .num_parents = 1,
2517         .flags = CLK_SET_RATE_PARENT,
2518         .ops = &clk_regmap_div_ro_ops,
2519     },
2520 };
2521 
2522 static struct clk_branch gcc_aggre_noc_pcie0_tunnel_axi_clk = {
2523     .halt_reg = 0xa41a8,
2524     .halt_check = BRANCH_HALT_SKIP,
2525     .hwcg_reg = 0xa41a8,
2526     .hwcg_bit = 1,
2527     .clkr = {
2528         .enable_reg = 0x52018,
2529         .enable_mask = BIT(14),
2530         .hw.init = &(const struct clk_init_data) {
2531             .name = "gcc_aggre_noc_pcie0_tunnel_axi_clk",
2532             .ops = &clk_branch2_ops,
2533         },
2534     },
2535 };
2536 
2537 static struct clk_branch gcc_aggre_noc_pcie1_tunnel_axi_clk = {
2538     .halt_reg = 0x8d07c,
2539     .halt_check = BRANCH_HALT_SKIP,
2540     .hwcg_reg = 0x8d07c,
2541     .hwcg_bit = 1,
2542     .clkr = {
2543         .enable_reg = 0x52018,
2544         .enable_mask = BIT(21),
2545         .hw.init = &(const struct clk_init_data) {
2546             .name = "gcc_aggre_noc_pcie1_tunnel_axi_clk",
2547             .ops = &clk_branch2_ops,
2548         },
2549     },
2550 };
2551 
2552 static struct clk_branch gcc_aggre_noc_pcie_4_axi_clk = {
2553     .halt_reg = 0x6b1b8,
2554     .halt_check = BRANCH_HALT_SKIP,
2555     .hwcg_reg = 0x6b1b8,
2556     .hwcg_bit = 1,
2557     .clkr = {
2558         .enable_reg = 0x52000,
2559         .enable_mask = BIT(12),
2560         .hw.init = &(const struct clk_init_data) {
2561             .name = "gcc_aggre_noc_pcie_4_axi_clk",
2562             .ops = &clk_branch2_ops,
2563         },
2564     },
2565 };
2566 
2567 static struct clk_branch gcc_aggre_noc_pcie_south_sf_axi_clk = {
2568     .halt_reg = 0xbf13c,
2569     .halt_check = BRANCH_HALT_SKIP,
2570     .hwcg_reg = 0xbf13c,
2571     .hwcg_bit = 1,
2572     .clkr = {
2573         .enable_reg = 0x52018,
2574         .enable_mask = BIT(13),
2575         .hw.init = &(const struct clk_init_data) {
2576             .name = "gcc_aggre_noc_pcie_south_sf_axi_clk",
2577             .ops = &clk_branch2_ops,
2578         },
2579     },
2580 };
2581 
2582 static struct clk_branch gcc_aggre_ufs_card_axi_clk = {
2583     .halt_reg = 0x750cc,
2584     .halt_check = BRANCH_HALT_VOTED,
2585     .hwcg_reg = 0x750cc,
2586     .hwcg_bit = 1,
2587     .clkr = {
2588         .enable_reg = 0x750cc,
2589         .enable_mask = BIT(0),
2590         .hw.init = &(const struct clk_init_data) {
2591             .name = "gcc_aggre_ufs_card_axi_clk",
2592             .parent_hws = (const struct clk_hw*[]){
2593                 &gcc_ufs_card_axi_clk_src.clkr.hw,
2594             },
2595             .num_parents = 1,
2596             .flags = CLK_SET_RATE_PARENT,
2597             .ops = &clk_branch2_ops,
2598         },
2599     },
2600 };
2601 
2602 static struct clk_branch gcc_aggre_ufs_card_axi_hw_ctl_clk = {
2603     .halt_reg = 0x750cc,
2604     .halt_check = BRANCH_HALT_VOTED,
2605     .hwcg_reg = 0x750cc,
2606     .hwcg_bit = 1,
2607     .clkr = {
2608         .enable_reg = 0x750cc,
2609         .enable_mask = BIT(1),
2610         .hw.init = &(const struct clk_init_data) {
2611             .name = "gcc_aggre_ufs_card_axi_hw_ctl_clk",
2612             .parent_hws = (const struct clk_hw*[]){
2613                 &gcc_ufs_card_axi_clk_src.clkr.hw,
2614             },
2615             .num_parents = 1,
2616             .flags = CLK_SET_RATE_PARENT,
2617             .ops = &clk_branch2_ops,
2618         },
2619     },
2620 };
2621 
2622 static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
2623     .halt_reg = 0x770cc,
2624     .halt_check = BRANCH_HALT_VOTED,
2625     .hwcg_reg = 0x770cc,
2626     .hwcg_bit = 1,
2627     .clkr = {
2628         .enable_reg = 0x770cc,
2629         .enable_mask = BIT(0),
2630         .hw.init = &(const struct clk_init_data) {
2631             .name = "gcc_aggre_ufs_phy_axi_clk",
2632             .parent_hws = (const struct clk_hw*[]){
2633                 &gcc_ufs_phy_axi_clk_src.clkr.hw,
2634             },
2635             .num_parents = 1,
2636             .flags = CLK_SET_RATE_PARENT,
2637             .ops = &clk_branch2_ops,
2638         },
2639     },
2640 };
2641 
2642 static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = {
2643     .halt_reg = 0x770cc,
2644     .halt_check = BRANCH_HALT_VOTED,
2645     .hwcg_reg = 0x770cc,
2646     .hwcg_bit = 1,
2647     .clkr = {
2648         .enable_reg = 0x770cc,
2649         .enable_mask = BIT(1),
2650         .hw.init = &(const struct clk_init_data) {
2651             .name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
2652             .parent_hws = (const struct clk_hw*[]){
2653                 &gcc_ufs_phy_axi_clk_src.clkr.hw,
2654             },
2655             .num_parents = 1,
2656             .flags = CLK_SET_RATE_PARENT,
2657             .ops = &clk_branch2_ops,
2658         },
2659     },
2660 };
2661 
2662 static struct clk_branch gcc_aggre_usb3_mp_axi_clk = {
2663     .halt_reg = 0xab084,
2664     .halt_check = BRANCH_HALT_VOTED,
2665     .hwcg_reg = 0xab084,
2666     .hwcg_bit = 1,
2667     .clkr = {
2668         .enable_reg = 0xab084,
2669         .enable_mask = BIT(0),
2670         .hw.init = &(const struct clk_init_data) {
2671             .name = "gcc_aggre_usb3_mp_axi_clk",
2672             .parent_hws = (const struct clk_hw*[]){
2673                 &gcc_usb30_mp_master_clk_src.clkr.hw,
2674             },
2675             .num_parents = 1,
2676             .flags = CLK_SET_RATE_PARENT,
2677             .ops = &clk_branch2_ops,
2678         },
2679     },
2680 };
2681 
2682 static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
2683     .halt_reg = 0xf080,
2684     .halt_check = BRANCH_HALT_VOTED,
2685     .hwcg_reg = 0xf080,
2686     .hwcg_bit = 1,
2687     .clkr = {
2688         .enable_reg = 0xf080,
2689         .enable_mask = BIT(0),
2690         .hw.init = &(const struct clk_init_data) {
2691             .name = "gcc_aggre_usb3_prim_axi_clk",
2692             .parent_hws = (const struct clk_hw*[]){
2693                 &gcc_usb30_prim_master_clk_src.clkr.hw,
2694             },
2695             .num_parents = 1,
2696             .flags = CLK_SET_RATE_PARENT,
2697             .ops = &clk_branch2_ops,
2698         },
2699     },
2700 };
2701 
2702 static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
2703     .halt_reg = 0x10080,
2704     .halt_check = BRANCH_HALT_VOTED,
2705     .hwcg_reg = 0x10080,
2706     .hwcg_bit = 1,
2707     .clkr = {
2708         .enable_reg = 0x10080,
2709         .enable_mask = BIT(0),
2710         .hw.init = &(const struct clk_init_data) {
2711             .name = "gcc_aggre_usb3_sec_axi_clk",
2712             .parent_hws = (const struct clk_hw*[]){
2713                 &gcc_usb30_sec_master_clk_src.clkr.hw,
2714             },
2715             .num_parents = 1,
2716             .flags = CLK_SET_RATE_PARENT,
2717             .ops = &clk_branch2_ops,
2718         },
2719     },
2720 };
2721 
2722 static struct clk_branch gcc_aggre_usb4_1_axi_clk = {
2723     .halt_reg = 0xb80e4,
2724     .halt_check = BRANCH_HALT_VOTED,
2725     .hwcg_reg = 0xb80e4,
2726     .hwcg_bit = 1,
2727     .clkr = {
2728         .enable_reg = 0xb80e4,
2729         .enable_mask = BIT(0),
2730         .hw.init = &(const struct clk_init_data) {
2731             .name = "gcc_aggre_usb4_1_axi_clk",
2732             .parent_hws = (const struct clk_hw*[]){
2733                 &gcc_usb4_1_master_clk_src.clkr.hw,
2734             },
2735             .num_parents = 1,
2736             .flags = CLK_SET_RATE_PARENT,
2737             .ops = &clk_branch2_ops,
2738         },
2739     },
2740 };
2741 
2742 static struct clk_branch gcc_aggre_usb4_axi_clk = {
2743     .halt_reg = 0x2a0e4,
2744     .halt_check = BRANCH_HALT_VOTED,
2745     .hwcg_reg = 0x2a0e4,
2746     .hwcg_bit = 1,
2747     .clkr = {
2748         .enable_reg = 0x2a0e4,
2749         .enable_mask = BIT(0),
2750         .hw.init = &(const struct clk_init_data) {
2751             .name = "gcc_aggre_usb4_axi_clk",
2752             .parent_hws = (const struct clk_hw*[]){
2753                 &gcc_usb4_master_clk_src.clkr.hw,
2754             },
2755             .num_parents = 1,
2756             .flags = CLK_SET_RATE_PARENT,
2757             .ops = &clk_branch2_ops,
2758         },
2759     },
2760 };
2761 
2762 static struct clk_branch gcc_aggre_usb_noc_axi_clk = {
2763     .halt_reg = 0x5d024,
2764     .halt_check = BRANCH_HALT_VOTED,
2765     .hwcg_reg = 0x5d024,
2766     .hwcg_bit = 1,
2767     .clkr = {
2768         .enable_reg = 0x5d024,
2769         .enable_mask = BIT(0),
2770         .hw.init = &(const struct clk_init_data) {
2771             .name = "gcc_aggre_usb_noc_axi_clk",
2772             .ops = &clk_branch2_ops,
2773         },
2774     },
2775 };
2776 
2777 static struct clk_branch gcc_aggre_usb_noc_north_axi_clk = {
2778     .halt_reg = 0x5d020,
2779     .halt_check = BRANCH_HALT_VOTED,
2780     .hwcg_reg = 0x5d020,
2781     .hwcg_bit = 1,
2782     .clkr = {
2783         .enable_reg = 0x5d020,
2784         .enable_mask = BIT(0),
2785         .hw.init = &(const struct clk_init_data) {
2786             .name = "gcc_aggre_usb_noc_north_axi_clk",
2787             .ops = &clk_branch2_ops,
2788         },
2789     },
2790 };
2791 
2792 static struct clk_branch gcc_aggre_usb_noc_south_axi_clk = {
2793     .halt_reg = 0x5d01c,
2794     .halt_check = BRANCH_HALT_VOTED,
2795     .hwcg_reg = 0x5d01c,
2796     .hwcg_bit = 1,
2797     .clkr = {
2798         .enable_reg = 0x5d01c,
2799         .enable_mask = BIT(0),
2800         .hw.init = &(const struct clk_init_data) {
2801             .name = "gcc_aggre_usb_noc_south_axi_clk",
2802             .ops = &clk_branch2_ops,
2803         },
2804     },
2805 };
2806 
2807 static struct clk_branch gcc_ahb2phy0_clk = {
2808     .halt_reg = 0x6a004,
2809     .halt_check = BRANCH_HALT_VOTED,
2810     .hwcg_reg = 0x6a004,
2811     .hwcg_bit = 1,
2812     .clkr = {
2813         .enable_reg = 0x6a004,
2814         .enable_mask = BIT(0),
2815         .hw.init = &(const struct clk_init_data) {
2816             .name = "gcc_ahb2phy0_clk",
2817             .ops = &clk_branch2_ops,
2818         },
2819     },
2820 };
2821 
2822 static struct clk_branch gcc_ahb2phy2_clk = {
2823     .halt_reg = 0x6a008,
2824     .halt_check = BRANCH_HALT_VOTED,
2825     .hwcg_reg = 0x6a008,
2826     .hwcg_bit = 1,
2827     .clkr = {
2828         .enable_reg = 0x6a008,
2829         .enable_mask = BIT(0),
2830         .hw.init = &(const struct clk_init_data) {
2831             .name = "gcc_ahb2phy2_clk",
2832             .ops = &clk_branch2_ops,
2833         },
2834     },
2835 };
2836 
2837 static struct clk_branch gcc_boot_rom_ahb_clk = {
2838     .halt_reg = 0x38004,
2839     .halt_check = BRANCH_HALT_VOTED,
2840     .hwcg_reg = 0x38004,
2841     .hwcg_bit = 1,
2842     .clkr = {
2843         .enable_reg = 0x52000,
2844         .enable_mask = BIT(10),
2845         .hw.init = &(const struct clk_init_data) {
2846             .name = "gcc_boot_rom_ahb_clk",
2847             .ops = &clk_branch2_ops,
2848         },
2849     },
2850 };
2851 
2852 static struct clk_branch gcc_camera_hf_axi_clk = {
2853     .halt_reg = 0x26010,
2854     .halt_check = BRANCH_HALT_SKIP,
2855     .hwcg_reg = 0x26010,
2856     .hwcg_bit = 1,
2857     .clkr = {
2858         .enable_reg = 0x26010,
2859         .enable_mask = BIT(0),
2860         .hw.init = &(const struct clk_init_data) {
2861             .name = "gcc_camera_hf_axi_clk",
2862             .ops = &clk_branch2_ops,
2863         },
2864     },
2865 };
2866 
2867 static struct clk_branch gcc_camera_sf_axi_clk = {
2868     .halt_reg = 0x26014,
2869     .halt_check = BRANCH_HALT_SKIP,
2870     .hwcg_reg = 0x26014,
2871     .hwcg_bit = 1,
2872     .clkr = {
2873         .enable_reg = 0x26014,
2874         .enable_mask = BIT(0),
2875         .hw.init = &(const struct clk_init_data) {
2876             .name = "gcc_camera_sf_axi_clk",
2877             .ops = &clk_branch2_ops,
2878         },
2879     },
2880 };
2881 
2882 static struct clk_branch gcc_camera_throttle_nrt_axi_clk = {
2883     .halt_reg = 0x2601c,
2884     .halt_check = BRANCH_HALT_SKIP,
2885     .hwcg_reg = 0x2601c,
2886     .hwcg_bit = 1,
2887     .clkr = {
2888         .enable_reg = 0x2601c,
2889         .enable_mask = BIT(0),
2890         .hw.init = &(const struct clk_init_data) {
2891             .name = "gcc_camera_throttle_nrt_axi_clk",
2892             .ops = &clk_branch2_ops,
2893         },
2894     },
2895 };
2896 
2897 static struct clk_branch gcc_camera_throttle_rt_axi_clk = {
2898     .halt_reg = 0x26018,
2899     .halt_check = BRANCH_HALT_SKIP,
2900     .hwcg_reg = 0x26018,
2901     .hwcg_bit = 1,
2902     .clkr = {
2903         .enable_reg = 0x26018,
2904         .enable_mask = BIT(0),
2905         .hw.init = &(const struct clk_init_data) {
2906             .name = "gcc_camera_throttle_rt_axi_clk",
2907             .ops = &clk_branch2_ops,
2908         },
2909     },
2910 };
2911 
2912 static struct clk_branch gcc_camera_throttle_xo_clk = {
2913     .halt_reg = 0x26024,
2914     .halt_check = BRANCH_HALT,
2915     .clkr = {
2916         .enable_reg = 0x26024,
2917         .enable_mask = BIT(0),
2918         .hw.init = &(const struct clk_init_data) {
2919             .name = "gcc_camera_throttle_xo_clk",
2920             .ops = &clk_branch2_ops,
2921         },
2922     },
2923 };
2924 
2925 static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = {
2926     .halt_reg = 0xab088,
2927     .halt_check = BRANCH_HALT_VOTED,
2928     .hwcg_reg = 0xab088,
2929     .hwcg_bit = 1,
2930     .clkr = {
2931         .enable_reg = 0xab088,
2932         .enable_mask = BIT(0),
2933         .hw.init = &(const struct clk_init_data) {
2934             .name = "gcc_cfg_noc_usb3_mp_axi_clk",
2935             .parent_hws = (const struct clk_hw*[]){
2936                 &gcc_usb30_mp_master_clk_src.clkr.hw,
2937             },
2938             .num_parents = 1,
2939             .flags = CLK_SET_RATE_PARENT,
2940             .ops = &clk_branch2_ops,
2941         },
2942     },
2943 };
2944 
2945 static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
2946     .halt_reg = 0xf084,
2947     .halt_check = BRANCH_HALT_VOTED,
2948     .hwcg_reg = 0xf084,
2949     .hwcg_bit = 1,
2950     .clkr = {
2951         .enable_reg = 0xf084,
2952         .enable_mask = BIT(0),
2953         .hw.init = &(const struct clk_init_data) {
2954             .name = "gcc_cfg_noc_usb3_prim_axi_clk",
2955             .parent_hws = (const struct clk_hw*[]){
2956                 &gcc_usb30_prim_master_clk_src.clkr.hw,
2957             },
2958             .num_parents = 1,
2959             .flags = CLK_SET_RATE_PARENT,
2960             .ops = &clk_branch2_ops,
2961         },
2962     },
2963 };
2964 
2965 static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
2966     .halt_reg = 0x10084,
2967     .halt_check = BRANCH_HALT_VOTED,
2968     .hwcg_reg = 0x10084,
2969     .hwcg_bit = 1,
2970     .clkr = {
2971         .enable_reg = 0x10084,
2972         .enable_mask = BIT(0),
2973         .hw.init = &(const struct clk_init_data) {
2974             .name = "gcc_cfg_noc_usb3_sec_axi_clk",
2975             .parent_hws = (const struct clk_hw*[]){
2976                 &gcc_usb30_sec_master_clk_src.clkr.hw,
2977             },
2978             .num_parents = 1,
2979             .flags = CLK_SET_RATE_PARENT,
2980             .ops = &clk_branch2_ops,
2981         },
2982     },
2983 };
2984 
2985 static struct clk_branch gcc_cnoc_pcie0_tunnel_clk = {
2986     .halt_reg = 0xa4074,
2987     .halt_check = BRANCH_HALT_VOTED,
2988     .clkr = {
2989         .enable_reg = 0x52020,
2990         .enable_mask = BIT(8),
2991         .hw.init = &(const struct clk_init_data) {
2992             .name = "gcc_cnoc_pcie0_tunnel_clk",
2993             .ops = &clk_branch2_ops,
2994         },
2995     },
2996 };
2997 
2998 static struct clk_branch gcc_cnoc_pcie1_tunnel_clk = {
2999     .halt_reg = 0x8d074,
3000     .halt_check = BRANCH_HALT_VOTED,
3001     .clkr = {
3002         .enable_reg = 0x52020,
3003         .enable_mask = BIT(9),
3004         .hw.init = &(const struct clk_init_data) {
3005             .name = "gcc_cnoc_pcie1_tunnel_clk",
3006             .ops = &clk_branch2_ops,
3007         },
3008     },
3009 };
3010 
3011 static struct clk_branch gcc_cnoc_pcie4_qx_clk = {
3012     .halt_reg = 0x6b084,
3013     .halt_check = BRANCH_HALT_VOTED,
3014     .hwcg_reg = 0x6b084,
3015     .hwcg_bit = 1,
3016     .clkr = {
3017         .enable_reg = 0x52020,
3018         .enable_mask = BIT(10),
3019         .hw.init = &(const struct clk_init_data) {
3020             .name = "gcc_cnoc_pcie4_qx_clk",
3021             .ops = &clk_branch2_ops,
3022         },
3023     },
3024 };
3025 
3026 static struct clk_branch gcc_ddrss_gpu_axi_clk = {
3027     .halt_reg = 0x7115c,
3028     .halt_check = BRANCH_HALT_SKIP,
3029     .hwcg_reg = 0x7115c,
3030     .hwcg_bit = 1,
3031     .clkr = {
3032         .enable_reg = 0x7115c,
3033         .enable_mask = BIT(0),
3034         .hw.init = &(const struct clk_init_data) {
3035             .name = "gcc_ddrss_gpu_axi_clk",
3036             .ops = &clk_branch2_aon_ops,
3037         },
3038     },
3039 };
3040 
3041 static struct clk_branch gcc_ddrss_pcie_sf_tbu_clk = {
3042     .halt_reg = 0xa602c,
3043     .halt_check = BRANCH_HALT_SKIP,
3044     .hwcg_reg = 0xa602c,
3045     .hwcg_bit = 1,
3046     .clkr = {
3047         .enable_reg = 0x52000,
3048         .enable_mask = BIT(19),
3049         .hw.init = &(const struct clk_init_data) {
3050             .name = "gcc_ddrss_pcie_sf_tbu_clk",
3051             .ops = &clk_branch2_ops,
3052         },
3053     },
3054 };
3055 
3056 static struct clk_branch gcc_disp1_hf_axi_clk = {
3057     .halt_reg = 0xbb010,
3058     .halt_check = BRANCH_HALT_SKIP,
3059     .hwcg_reg = 0xbb010,
3060     .hwcg_bit = 1,
3061     .clkr = {
3062         .enable_reg = 0xbb010,
3063         .enable_mask = BIT(0),
3064         .hw.init = &(const struct clk_init_data) {
3065             .name = "gcc_disp1_hf_axi_clk",
3066             .ops = &clk_branch2_ops,
3067         },
3068     },
3069 };
3070 
3071 static struct clk_branch gcc_disp1_sf_axi_clk = {
3072     .halt_reg = 0xbb018,
3073     .halt_check = BRANCH_HALT_SKIP,
3074     .hwcg_reg = 0xbb018,
3075     .hwcg_bit = 1,
3076     .clkr = {
3077         .enable_reg = 0xbb018,
3078         .enable_mask = BIT(0),
3079         .hw.init = &(const struct clk_init_data) {
3080             .name = "gcc_disp1_sf_axi_clk",
3081             .ops = &clk_branch2_ops,
3082         },
3083     },
3084 };
3085 
3086 static struct clk_branch gcc_disp1_throttle_nrt_axi_clk = {
3087     .halt_reg = 0xbb024,
3088     .halt_check = BRANCH_HALT_SKIP,
3089     .hwcg_reg = 0xbb024,
3090     .hwcg_bit = 1,
3091     .clkr = {
3092         .enable_reg = 0xbb024,
3093         .enable_mask = BIT(0),
3094         .hw.init = &(const struct clk_init_data) {
3095             .name = "gcc_disp1_throttle_nrt_axi_clk",
3096             .ops = &clk_branch2_ops,
3097         },
3098     },
3099 };
3100 
3101 static struct clk_branch gcc_disp1_throttle_rt_axi_clk = {
3102     .halt_reg = 0xbb020,
3103     .halt_check = BRANCH_HALT_SKIP,
3104     .hwcg_reg = 0xbb020,
3105     .hwcg_bit = 1,
3106     .clkr = {
3107         .enable_reg = 0xbb020,
3108         .enable_mask = BIT(0),
3109         .hw.init = &(const struct clk_init_data) {
3110             .name = "gcc_disp1_throttle_rt_axi_clk",
3111             .ops = &clk_branch2_ops,
3112         },
3113     },
3114 };
3115 
3116 static struct clk_branch gcc_disp_hf_axi_clk = {
3117     .halt_reg = 0x27010,
3118     .halt_check = BRANCH_HALT_SKIP,
3119     .hwcg_reg = 0x27010,
3120     .hwcg_bit = 1,
3121     .clkr = {
3122         .enable_reg = 0x27010,
3123         .enable_mask = BIT(0),
3124         .hw.init = &(const struct clk_init_data) {
3125             .name = "gcc_disp_hf_axi_clk",
3126             .ops = &clk_branch2_ops,
3127         },
3128     },
3129 };
3130 
3131 static struct clk_branch gcc_disp_sf_axi_clk = {
3132     .halt_reg = 0x27018,
3133     .halt_check = BRANCH_HALT_SKIP,
3134     .hwcg_reg = 0x27018,
3135     .hwcg_bit = 1,
3136     .clkr = {
3137         .enable_reg = 0x27018,
3138         .enable_mask = BIT(0),
3139         .hw.init = &(const struct clk_init_data) {
3140             .name = "gcc_disp_sf_axi_clk",
3141             .ops = &clk_branch2_ops,
3142         },
3143     },
3144 };
3145 
3146 static struct clk_branch gcc_disp_throttle_nrt_axi_clk = {
3147     .halt_reg = 0x27024,
3148     .halt_check = BRANCH_HALT_SKIP,
3149     .hwcg_reg = 0x27024,
3150     .hwcg_bit = 1,
3151     .clkr = {
3152         .enable_reg = 0x27024,
3153         .enable_mask = BIT(0),
3154         .hw.init = &(const struct clk_init_data) {
3155             .name = "gcc_disp_throttle_nrt_axi_clk",
3156             .ops = &clk_branch2_ops,
3157         },
3158     },
3159 };
3160 
3161 static struct clk_branch gcc_disp_throttle_rt_axi_clk = {
3162     .halt_reg = 0x27020,
3163     .halt_check = BRANCH_HALT_SKIP,
3164     .hwcg_reg = 0x27020,
3165     .hwcg_bit = 1,
3166     .clkr = {
3167         .enable_reg = 0x27020,
3168         .enable_mask = BIT(0),
3169         .hw.init = &(const struct clk_init_data) {
3170             .name = "gcc_disp_throttle_rt_axi_clk",
3171             .ops = &clk_branch2_ops,
3172         },
3173     },
3174 };
3175 
3176 static struct clk_branch gcc_emac0_axi_clk = {
3177     .halt_reg = 0xaa010,
3178     .halt_check = BRANCH_HALT_VOTED,
3179     .hwcg_reg = 0xaa010,
3180     .hwcg_bit = 1,
3181     .clkr = {
3182         .enable_reg = 0xaa010,
3183         .enable_mask = BIT(0),
3184         .hw.init = &(const struct clk_init_data) {
3185             .name = "gcc_emac0_axi_clk",
3186             .ops = &clk_branch2_ops,
3187         },
3188     },
3189 };
3190 
3191 static struct clk_branch gcc_emac0_ptp_clk = {
3192     .halt_reg = 0xaa01c,
3193     .halt_check = BRANCH_HALT,
3194     .clkr = {
3195         .enable_reg = 0xaa01c,
3196         .enable_mask = BIT(0),
3197         .hw.init = &(const struct clk_init_data) {
3198             .name = "gcc_emac0_ptp_clk",
3199             .parent_hws = (const struct clk_hw*[]){
3200                 &gcc_emac0_ptp_clk_src.clkr.hw,
3201             },
3202             .num_parents = 1,
3203             .flags = CLK_SET_RATE_PARENT,
3204             .ops = &clk_branch2_ops,
3205         },
3206     },
3207 };
3208 
3209 static struct clk_branch gcc_emac0_rgmii_clk = {
3210     .halt_reg = 0xaa038,
3211     .halt_check = BRANCH_HALT,
3212     .clkr = {
3213         .enable_reg = 0xaa038,
3214         .enable_mask = BIT(0),
3215         .hw.init = &(const struct clk_init_data) {
3216             .name = "gcc_emac0_rgmii_clk",
3217             .parent_hws = (const struct clk_hw*[]){
3218                 &gcc_emac0_rgmii_clk_src.clkr.hw,
3219             },
3220             .num_parents = 1,
3221             .flags = CLK_SET_RATE_PARENT,
3222             .ops = &clk_branch2_ops,
3223         },
3224     },
3225 };
3226 
3227 static struct clk_branch gcc_emac0_slv_ahb_clk = {
3228     .halt_reg = 0xaa018,
3229     .halt_check = BRANCH_HALT_VOTED,
3230     .hwcg_reg = 0xaa018,
3231     .hwcg_bit = 1,
3232     .clkr = {
3233         .enable_reg = 0xaa018,
3234         .enable_mask = BIT(0),
3235         .hw.init = &(const struct clk_init_data) {
3236             .name = "gcc_emac0_slv_ahb_clk",
3237             .ops = &clk_branch2_ops,
3238         },
3239     },
3240 };
3241 
3242 static struct clk_branch gcc_emac1_axi_clk = {
3243     .halt_reg = 0xba010,
3244     .halt_check = BRANCH_HALT_VOTED,
3245     .hwcg_reg = 0xba010,
3246     .hwcg_bit = 1,
3247     .clkr = {
3248         .enable_reg = 0xba010,
3249         .enable_mask = BIT(0),
3250         .hw.init = &(const struct clk_init_data) {
3251             .name = "gcc_emac1_axi_clk",
3252             .ops = &clk_branch2_ops,
3253         },
3254     },
3255 };
3256 
3257 static struct clk_branch gcc_emac1_ptp_clk = {
3258     .halt_reg = 0xba01c,
3259     .halt_check = BRANCH_HALT,
3260     .clkr = {
3261         .enable_reg = 0xba01c,
3262         .enable_mask = BIT(0),
3263         .hw.init = &(const struct clk_init_data) {
3264             .name = "gcc_emac1_ptp_clk",
3265             .parent_hws = (const struct clk_hw*[]){
3266                 &gcc_emac1_ptp_clk_src.clkr.hw,
3267             },
3268             .num_parents = 1,
3269             .flags = CLK_SET_RATE_PARENT,
3270             .ops = &clk_branch2_ops,
3271         },
3272     },
3273 };
3274 
3275 static struct clk_branch gcc_emac1_rgmii_clk = {
3276     .halt_reg = 0xba038,
3277     .halt_check = BRANCH_HALT,
3278     .clkr = {
3279         .enable_reg = 0xba038,
3280         .enable_mask = BIT(0),
3281         .hw.init = &(const struct clk_init_data) {
3282             .name = "gcc_emac1_rgmii_clk",
3283             .parent_hws = (const struct clk_hw*[]){
3284                 &gcc_emac1_rgmii_clk_src.clkr.hw,
3285             },
3286             .num_parents = 1,
3287             .flags = CLK_SET_RATE_PARENT,
3288             .ops = &clk_branch2_ops,
3289         },
3290     },
3291 };
3292 
3293 static struct clk_branch gcc_emac1_slv_ahb_clk = {
3294     .halt_reg = 0xba018,
3295     .halt_check = BRANCH_HALT_VOTED,
3296     .hwcg_reg = 0xba018,
3297     .hwcg_bit = 1,
3298     .clkr = {
3299         .enable_reg = 0xba018,
3300         .enable_mask = BIT(0),
3301         .hw.init = &(const struct clk_init_data) {
3302             .name = "gcc_emac1_slv_ahb_clk",
3303             .ops = &clk_branch2_ops,
3304         },
3305     },
3306 };
3307 
3308 static struct clk_branch gcc_gp1_clk = {
3309     .halt_reg = 0x64000,
3310     .halt_check = BRANCH_HALT,
3311     .clkr = {
3312         .enable_reg = 0x64000,
3313         .enable_mask = BIT(0),
3314         .hw.init = &(const struct clk_init_data) {
3315             .name = "gcc_gp1_clk",
3316             .parent_hws = (const struct clk_hw*[]){
3317                 &gcc_gp1_clk_src.clkr.hw,
3318             },
3319             .num_parents = 1,
3320             .flags = CLK_SET_RATE_PARENT,
3321             .ops = &clk_branch2_ops,
3322         },
3323     },
3324 };
3325 
3326 static struct clk_branch gcc_gp2_clk = {
3327     .halt_reg = 0x65000,
3328     .halt_check = BRANCH_HALT,
3329     .clkr = {
3330         .enable_reg = 0x65000,
3331         .enable_mask = BIT(0),
3332         .hw.init = &(const struct clk_init_data) {
3333             .name = "gcc_gp2_clk",
3334             .parent_hws = (const struct clk_hw*[]){
3335                 &gcc_gp2_clk_src.clkr.hw,
3336             },
3337             .num_parents = 1,
3338             .flags = CLK_SET_RATE_PARENT,
3339             .ops = &clk_branch2_ops,
3340         },
3341     },
3342 };
3343 
3344 static struct clk_branch gcc_gp3_clk = {
3345     .halt_reg = 0x66000,
3346     .halt_check = BRANCH_HALT,
3347     .clkr = {
3348         .enable_reg = 0x66000,
3349         .enable_mask = BIT(0),
3350         .hw.init = &(const struct clk_init_data) {
3351             .name = "gcc_gp3_clk",
3352             .parent_hws = (const struct clk_hw*[]){
3353                 &gcc_gp3_clk_src.clkr.hw,
3354             },
3355             .num_parents = 1,
3356             .flags = CLK_SET_RATE_PARENT,
3357             .ops = &clk_branch2_ops,
3358         },
3359     },
3360 };
3361 
3362 static struct clk_branch gcc_gp4_clk = {
3363     .halt_reg = 0xc2000,
3364     .halt_check = BRANCH_HALT,
3365     .clkr = {
3366         .enable_reg = 0xc2000,
3367         .enable_mask = BIT(0),
3368         .hw.init = &(const struct clk_init_data) {
3369             .name = "gcc_gp4_clk",
3370             .parent_hws = (const struct clk_hw*[]){
3371                 &gcc_gp4_clk_src.clkr.hw,
3372             },
3373             .num_parents = 1,
3374             .flags = CLK_SET_RATE_PARENT,
3375             .ops = &clk_branch2_ops,
3376         },
3377     },
3378 };
3379 
3380 static struct clk_branch gcc_gp5_clk = {
3381     .halt_reg = 0xc3000,
3382     .halt_check = BRANCH_HALT,
3383     .clkr = {
3384         .enable_reg = 0xc3000,
3385         .enable_mask = BIT(0),
3386         .hw.init = &(const struct clk_init_data) {
3387             .name = "gcc_gp5_clk",
3388             .parent_hws = (const struct clk_hw*[]){
3389                 &gcc_gp5_clk_src.clkr.hw,
3390             },
3391             .num_parents = 1,
3392             .flags = CLK_SET_RATE_PARENT,
3393             .ops = &clk_branch2_ops,
3394         },
3395     },
3396 };
3397 
3398 static struct clk_branch gcc_gpu_gpll0_clk_src = {
3399     .halt_check = BRANCH_HALT_DELAY,
3400     .clkr = {
3401         .enable_reg = 0x52000,
3402         .enable_mask = BIT(15),
3403         .hw.init = &(const struct clk_init_data) {
3404             .name = "gcc_gpu_gpll0_clk_src",
3405             .parent_hws = (const struct clk_hw*[]){
3406                 &gcc_gpll0.clkr.hw,
3407             },
3408             .num_parents = 1,
3409             .flags = CLK_SET_RATE_PARENT,
3410             .ops = &clk_branch2_ops,
3411         },
3412     },
3413 };
3414 
3415 static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
3416     .halt_check = BRANCH_HALT_DELAY,
3417     .clkr = {
3418         .enable_reg = 0x52000,
3419         .enable_mask = BIT(16),
3420         .hw.init = &(const struct clk_init_data) {
3421             .name = "gcc_gpu_gpll0_div_clk_src",
3422             .parent_hws = (const struct clk_hw*[]){
3423                 &gcc_gpll0_out_even.clkr.hw,
3424             },
3425             .num_parents = 1,
3426             .flags = CLK_SET_RATE_PARENT,
3427             .ops = &clk_branch2_ops,
3428         },
3429     },
3430 };
3431 
3432 static struct clk_branch gcc_gpu_iref_en = {
3433     .halt_reg = 0x8c014,
3434     .halt_check = BRANCH_HALT,
3435     .clkr = {
3436         .enable_reg = 0x8c014,
3437         .enable_mask = BIT(0),
3438         .hw.init = &(const struct clk_init_data) {
3439             .name = "gcc_gpu_iref_en",
3440             .ops = &clk_branch2_ops,
3441         },
3442     },
3443 };
3444 
3445 static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
3446     .halt_reg = 0x71010,
3447     .halt_check = BRANCH_HALT_VOTED,
3448     .hwcg_reg = 0x71010,
3449     .hwcg_bit = 1,
3450     .clkr = {
3451         .enable_reg = 0x71010,
3452         .enable_mask = BIT(0),
3453         .hw.init = &(const struct clk_init_data) {
3454             .name = "gcc_gpu_memnoc_gfx_clk",
3455             .ops = &clk_branch2_aon_ops,
3456         },
3457     },
3458 };
3459 
3460 static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
3461     .halt_reg = 0x71020,
3462     .halt_check = BRANCH_HALT,
3463     .clkr = {
3464         .enable_reg = 0x71020,
3465         .enable_mask = BIT(0),
3466         .hw.init = &(const struct clk_init_data) {
3467             .name = "gcc_gpu_snoc_dvm_gfx_clk",
3468             .ops = &clk_branch2_aon_ops,
3469         },
3470     },
3471 };
3472 
3473 static struct clk_branch gcc_gpu_tcu_throttle_ahb_clk = {
3474     .halt_reg = 0x71008,
3475     .halt_check = BRANCH_HALT_VOTED,
3476     .hwcg_reg = 0x71008,
3477     .hwcg_bit = 1,
3478     .clkr = {
3479         .enable_reg = 0x71008,
3480         .enable_mask = BIT(0),
3481         .hw.init = &(const struct clk_init_data) {
3482             .name = "gcc_gpu_tcu_throttle_ahb_clk",
3483             .ops = &clk_branch2_ops,
3484         },
3485     },
3486 };
3487 
3488 static struct clk_branch gcc_gpu_tcu_throttle_clk = {
3489     .halt_reg = 0x71018,
3490     .halt_check = BRANCH_HALT_VOTED,
3491     .hwcg_reg = 0x71018,
3492     .hwcg_bit = 1,
3493     .clkr = {
3494         .enable_reg = 0x71018,
3495         .enable_mask = BIT(0),
3496         .hw.init = &(const struct clk_init_data) {
3497             .name = "gcc_gpu_tcu_throttle_clk",
3498             .ops = &clk_branch2_ops,
3499         },
3500     },
3501 };
3502 
3503 static struct clk_branch gcc_pcie0_phy_rchng_clk = {
3504     .halt_reg = 0xa4038,
3505     .halt_check = BRANCH_HALT_VOTED,
3506     .clkr = {
3507         .enable_reg = 0x52018,
3508         .enable_mask = BIT(11),
3509         .hw.init = &(const struct clk_init_data) {
3510             .name = "gcc_pcie0_phy_rchng_clk",
3511             .parent_hws = (const struct clk_hw*[]){
3512                 &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
3513             },
3514             .num_parents = 1,
3515             .flags = CLK_SET_RATE_PARENT,
3516             .ops = &clk_branch2_ops,
3517         },
3518     },
3519 };
3520 
3521 static struct clk_branch gcc_pcie1_phy_rchng_clk = {
3522     .halt_reg = 0x8d038,
3523     .halt_check = BRANCH_HALT_VOTED,
3524     .clkr = {
3525         .enable_reg = 0x52000,
3526         .enable_mask = BIT(23),
3527         .hw.init = &(const struct clk_init_data) {
3528             .name = "gcc_pcie1_phy_rchng_clk",
3529             .parent_hws = (const struct clk_hw*[]){
3530                 &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
3531             },
3532             .num_parents = 1,
3533             .flags = CLK_SET_RATE_PARENT,
3534             .ops = &clk_branch2_ops,
3535         },
3536     },
3537 };
3538 
3539 static struct clk_branch gcc_pcie2a_phy_rchng_clk = {
3540     .halt_reg = 0x9d040,
3541     .halt_check = BRANCH_HALT_VOTED,
3542     .clkr = {
3543         .enable_reg = 0x52010,
3544         .enable_mask = BIT(15),
3545         .hw.init = &(const struct clk_init_data) {
3546             .name = "gcc_pcie2a_phy_rchng_clk",
3547             .parent_hws = (const struct clk_hw*[]){
3548                 &gcc_pcie_2a_phy_rchng_clk_src.clkr.hw,
3549             },
3550             .num_parents = 1,
3551             .flags = CLK_SET_RATE_PARENT,
3552             .ops = &clk_branch2_ops,
3553         },
3554     },
3555 };
3556 
3557 static struct clk_branch gcc_pcie2b_phy_rchng_clk = {
3558     .halt_reg = 0x9e040,
3559     .halt_check = BRANCH_HALT_VOTED,
3560     .clkr = {
3561         .enable_reg = 0x52010,
3562         .enable_mask = BIT(22),
3563         .hw.init = &(const struct clk_init_data) {
3564             .name = "gcc_pcie2b_phy_rchng_clk",
3565             .parent_hws = (const struct clk_hw*[]){
3566                 &gcc_pcie_2b_phy_rchng_clk_src.clkr.hw,
3567             },
3568             .num_parents = 1,
3569             .flags = CLK_SET_RATE_PARENT,
3570             .ops = &clk_branch2_ops,
3571         },
3572     },
3573 };
3574 
3575 static struct clk_branch gcc_pcie3a_phy_rchng_clk = {
3576     .halt_reg = 0xa0040,
3577     .halt_check = BRANCH_HALT_VOTED,
3578     .clkr = {
3579         .enable_reg = 0x52010,
3580         .enable_mask = BIT(29),
3581         .hw.init = &(const struct clk_init_data) {
3582             .name = "gcc_pcie3a_phy_rchng_clk",
3583             .parent_hws = (const struct clk_hw*[]){
3584                 &gcc_pcie_3a_phy_rchng_clk_src.clkr.hw,
3585             },
3586             .num_parents = 1,
3587             .flags = CLK_SET_RATE_PARENT,
3588             .ops = &clk_branch2_ops,
3589         },
3590     },
3591 };
3592 
3593 static struct clk_branch gcc_pcie3b_phy_rchng_clk = {
3594     .halt_reg = 0xa2040,
3595     .halt_check = BRANCH_HALT_VOTED,
3596     .clkr = {
3597         .enable_reg = 0x52018,
3598         .enable_mask = BIT(4),
3599         .hw.init = &(const struct clk_init_data) {
3600             .name = "gcc_pcie3b_phy_rchng_clk",
3601             .parent_hws = (const struct clk_hw*[]){
3602                 &gcc_pcie_3b_phy_rchng_clk_src.clkr.hw,
3603             },
3604             .num_parents = 1,
3605             .flags = CLK_SET_RATE_PARENT,
3606             .ops = &clk_branch2_ops,
3607         },
3608     },
3609 };
3610 
3611 static struct clk_branch gcc_pcie4_phy_rchng_clk = {
3612     .halt_reg = 0x6b040,
3613     .halt_check = BRANCH_HALT_VOTED,
3614     .clkr = {
3615         .enable_reg = 0x52000,
3616         .enable_mask = BIT(22),
3617         .hw.init = &(const struct clk_init_data) {
3618             .name = "gcc_pcie4_phy_rchng_clk",
3619             .parent_hws = (const struct clk_hw*[]){
3620                 &gcc_pcie_4_phy_rchng_clk_src.clkr.hw,
3621             },
3622             .num_parents = 1,
3623             .flags = CLK_SET_RATE_PARENT,
3624             .ops = &clk_branch2_ops,
3625         },
3626     },
3627 };
3628 
3629 static struct clk_branch gcc_pcie_0_aux_clk = {
3630     .halt_reg = 0xa4028,
3631     .halt_check = BRANCH_HALT_VOTED,
3632     .clkr = {
3633         .enable_reg = 0x52018,
3634         .enable_mask = BIT(9),
3635         .hw.init = &(const struct clk_init_data) {
3636             .name = "gcc_pcie_0_aux_clk",
3637             .parent_hws = (const struct clk_hw*[]){
3638                 &gcc_pcie_0_aux_clk_src.clkr.hw,
3639             },
3640             .num_parents = 1,
3641             .flags = CLK_SET_RATE_PARENT,
3642             .ops = &clk_branch2_ops,
3643         },
3644     },
3645 };
3646 
3647 static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
3648     .halt_reg = 0xa4024,
3649     .halt_check = BRANCH_HALT_VOTED,
3650     .hwcg_reg = 0xa4024,
3651     .hwcg_bit = 1,
3652     .clkr = {
3653         .enable_reg = 0x52018,
3654         .enable_mask = BIT(8),
3655         .hw.init = &(const struct clk_init_data) {
3656             .name = "gcc_pcie_0_cfg_ahb_clk",
3657             .ops = &clk_branch2_ops,
3658         },
3659     },
3660 };
3661 
3662 static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
3663     .halt_reg = 0xa401c,
3664     .halt_check = BRANCH_HALT_SKIP,
3665     .hwcg_reg = 0xa401c,
3666     .hwcg_bit = 1,
3667     .clkr = {
3668         .enable_reg = 0x52018,
3669         .enable_mask = BIT(7),
3670         .hw.init = &(const struct clk_init_data) {
3671             .name = "gcc_pcie_0_mstr_axi_clk",
3672             .ops = &clk_branch2_ops,
3673         },
3674     },
3675 };
3676 
3677 static struct clk_branch gcc_pcie_0_pipe_clk = {
3678     .halt_reg = 0xa4030,
3679     .halt_check = BRANCH_HALT_SKIP,
3680     .clkr = {
3681         .enable_reg = 0x52018,
3682         .enable_mask = BIT(10),
3683         .hw.init = &(const struct clk_init_data) {
3684             .name = "gcc_pcie_0_pipe_clk",
3685             .parent_hws = (const struct clk_hw*[]){
3686                 &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
3687             },
3688             .num_parents = 1,
3689             .flags = CLK_SET_RATE_PARENT,
3690             .ops = &clk_branch2_ops,
3691         },
3692     },
3693 };
3694 
3695 static struct clk_branch gcc_pcie_0_slv_axi_clk = {
3696     .halt_reg = 0xa4014,
3697     .halt_check = BRANCH_HALT_VOTED,
3698     .hwcg_reg = 0xa4014,
3699     .hwcg_bit = 1,
3700     .clkr = {
3701         .enable_reg = 0x52018,
3702         .enable_mask = BIT(6),
3703         .hw.init = &(const struct clk_init_data) {
3704             .name = "gcc_pcie_0_slv_axi_clk",
3705             .ops = &clk_branch2_ops,
3706         },
3707     },
3708 };
3709 
3710 static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
3711     .halt_reg = 0xa4010,
3712     .halt_check = BRANCH_HALT_VOTED,
3713     .clkr = {
3714         .enable_reg = 0x52018,
3715         .enable_mask = BIT(5),
3716         .hw.init = &(const struct clk_init_data) {
3717             .name = "gcc_pcie_0_slv_q2a_axi_clk",
3718             .ops = &clk_branch2_ops,
3719         },
3720     },
3721 };
3722 
3723 static struct clk_branch gcc_pcie_1_aux_clk = {
3724     .halt_reg = 0x8d028,
3725     .halt_check = BRANCH_HALT_VOTED,
3726     .clkr = {
3727         .enable_reg = 0x52000,
3728         .enable_mask = BIT(29),
3729         .hw.init = &(const struct clk_init_data) {
3730             .name = "gcc_pcie_1_aux_clk",
3731             .parent_hws = (const struct clk_hw*[]){
3732                 &gcc_pcie_1_aux_clk_src.clkr.hw,
3733             },
3734             .num_parents = 1,
3735             .flags = CLK_SET_RATE_PARENT,
3736             .ops = &clk_branch2_ops,
3737         },
3738     },
3739 };
3740 
3741 static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
3742     .halt_reg = 0x8d024,
3743     .halt_check = BRANCH_HALT_VOTED,
3744     .hwcg_reg = 0x8d024,
3745     .hwcg_bit = 1,
3746     .clkr = {
3747         .enable_reg = 0x52000,
3748         .enable_mask = BIT(28),
3749         .hw.init = &(const struct clk_init_data) {
3750             .name = "gcc_pcie_1_cfg_ahb_clk",
3751             .ops = &clk_branch2_ops,
3752         },
3753     },
3754 };
3755 
3756 static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
3757     .halt_reg = 0x8d01c,
3758     .halt_check = BRANCH_HALT_SKIP,
3759     .hwcg_reg = 0x8d01c,
3760     .hwcg_bit = 1,
3761     .clkr = {
3762         .enable_reg = 0x52000,
3763         .enable_mask = BIT(27),
3764         .hw.init = &(const struct clk_init_data) {
3765             .name = "gcc_pcie_1_mstr_axi_clk",
3766             .ops = &clk_branch2_ops,
3767         },
3768     },
3769 };
3770 
3771 static struct clk_branch gcc_pcie_1_pipe_clk = {
3772     .halt_reg = 0x8d030,
3773     .halt_check = BRANCH_HALT_SKIP,
3774     .clkr = {
3775         .enable_reg = 0x52000,
3776         .enable_mask = BIT(30),
3777         .hw.init = &(const struct clk_init_data) {
3778             .name = "gcc_pcie_1_pipe_clk",
3779             .parent_hws = (const struct clk_hw*[]){
3780                 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
3781             },
3782             .num_parents = 1,
3783             .flags = CLK_SET_RATE_PARENT,
3784             .ops = &clk_branch2_ops,
3785         },
3786     },
3787 };
3788 
3789 static struct clk_branch gcc_pcie_1_slv_axi_clk = {
3790     .halt_reg = 0x8d014,
3791     .halt_check = BRANCH_HALT_VOTED,
3792     .hwcg_reg = 0x8d014,
3793     .hwcg_bit = 1,
3794     .clkr = {
3795         .enable_reg = 0x52000,
3796         .enable_mask = BIT(26),
3797         .hw.init = &(const struct clk_init_data) {
3798             .name = "gcc_pcie_1_slv_axi_clk",
3799             .ops = &clk_branch2_ops,
3800         },
3801     },
3802 };
3803 
3804 static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
3805     .halt_reg = 0x8d010,
3806     .halt_check = BRANCH_HALT_VOTED,
3807     .clkr = {
3808         .enable_reg = 0x52000,
3809         .enable_mask = BIT(25),
3810         .hw.init = &(const struct clk_init_data) {
3811             .name = "gcc_pcie_1_slv_q2a_axi_clk",
3812             .ops = &clk_branch2_ops,
3813         },
3814     },
3815 };
3816 
3817 static struct clk_branch gcc_pcie_2a2b_clkref_clk = {
3818     .halt_reg = 0x8c034,
3819     .halt_check = BRANCH_HALT,
3820     .clkr = {
3821         .enable_reg = 0x8c034,
3822         .enable_mask = BIT(0),
3823         .hw.init = &(const struct clk_init_data) {
3824             .name = "gcc_pcie_2a2b_clkref_clk",
3825             .ops = &clk_branch2_ops,
3826         },
3827     },
3828 };
3829 
3830 static struct clk_branch gcc_pcie_2a_aux_clk = {
3831     .halt_reg = 0x9d028,
3832     .halt_check = BRANCH_HALT_VOTED,
3833     .clkr = {
3834         .enable_reg = 0x52010,
3835         .enable_mask = BIT(13),
3836         .hw.init = &(const struct clk_init_data) {
3837             .name = "gcc_pcie_2a_aux_clk",
3838             .parent_hws = (const struct clk_hw*[]){
3839                 &gcc_pcie_2a_aux_clk_src.clkr.hw,
3840             },
3841             .num_parents = 1,
3842             .flags = CLK_SET_RATE_PARENT,
3843             .ops = &clk_branch2_ops,
3844         },
3845     },
3846 };
3847 
3848 static struct clk_branch gcc_pcie_2a_cfg_ahb_clk = {
3849     .halt_reg = 0x9d024,
3850     .halt_check = BRANCH_HALT_VOTED,
3851     .hwcg_reg = 0x9d024,
3852     .hwcg_bit = 1,
3853     .clkr = {
3854         .enable_reg = 0x52010,
3855         .enable_mask = BIT(12),
3856         .hw.init = &(const struct clk_init_data) {
3857             .name = "gcc_pcie_2a_cfg_ahb_clk",
3858             .ops = &clk_branch2_ops,
3859         },
3860     },
3861 };
3862 
3863 static struct clk_branch gcc_pcie_2a_mstr_axi_clk = {
3864     .halt_reg = 0x9d01c,
3865     .halt_check = BRANCH_HALT_SKIP,
3866     .hwcg_reg = 0x9d01c,
3867     .hwcg_bit = 1,
3868     .clkr = {
3869         .enable_reg = 0x52010,
3870         .enable_mask = BIT(11),
3871         .hw.init = &(const struct clk_init_data) {
3872             .name = "gcc_pcie_2a_mstr_axi_clk",
3873             .ops = &clk_branch2_ops,
3874         },
3875     },
3876 };
3877 
3878 static struct clk_branch gcc_pcie_2a_pipe_clk = {
3879     .halt_reg = 0x9d030,
3880     .halt_check = BRANCH_HALT_SKIP,
3881     .clkr = {
3882         .enable_reg = 0x52010,
3883         .enable_mask = BIT(14),
3884         .hw.init = &(const struct clk_init_data) {
3885             .name = "gcc_pcie_2a_pipe_clk",
3886             .parent_hws = (const struct clk_hw*[]){
3887                 &gcc_pcie_2a_pipe_clk_src.clkr.hw,
3888             },
3889             .num_parents = 1,
3890             .flags = CLK_SET_RATE_PARENT,
3891             .ops = &clk_branch2_ops,
3892         },
3893     },
3894 };
3895 
3896 static struct clk_branch gcc_pcie_2a_pipediv2_clk = {
3897     .halt_reg = 0x9d038,
3898     .halt_check = BRANCH_HALT_SKIP,
3899     .clkr = {
3900         .enable_reg = 0x52018,
3901         .enable_mask = BIT(22),
3902         .hw.init = &(const struct clk_init_data) {
3903             .name = "gcc_pcie_2a_pipediv2_clk",
3904             .parent_hws = (const struct clk_hw*[]){
3905                 &gcc_pcie_2a_pipe_div_clk_src.clkr.hw,
3906             },
3907             .num_parents = 1,
3908             .flags = CLK_SET_RATE_PARENT,
3909             .ops = &clk_branch2_ops,
3910         },
3911     },
3912 };
3913 
3914 static struct clk_branch gcc_pcie_2a_slv_axi_clk = {
3915     .halt_reg = 0x9d014,
3916     .halt_check = BRANCH_HALT_VOTED,
3917     .hwcg_reg = 0x9d014,
3918     .hwcg_bit = 1,
3919     .clkr = {
3920         .enable_reg = 0x52010,
3921         .enable_mask = BIT(10),
3922         .hw.init = &(const struct clk_init_data) {
3923             .name = "gcc_pcie_2a_slv_axi_clk",
3924             .ops = &clk_branch2_ops,
3925         },
3926     },
3927 };
3928 
3929 static struct clk_branch gcc_pcie_2a_slv_q2a_axi_clk = {
3930     .halt_reg = 0x9d010,
3931     .halt_check = BRANCH_HALT_VOTED,
3932     .clkr = {
3933         .enable_reg = 0x52018,
3934         .enable_mask = BIT(12),
3935         .hw.init = &(const struct clk_init_data) {
3936             .name = "gcc_pcie_2a_slv_q2a_axi_clk",
3937             .ops = &clk_branch2_ops,
3938         },
3939     },
3940 };
3941 
3942 static struct clk_branch gcc_pcie_2b_aux_clk = {
3943     .halt_reg = 0x9e028,
3944     .halt_check = BRANCH_HALT_VOTED,
3945     .clkr = {
3946         .enable_reg = 0x52010,
3947         .enable_mask = BIT(20),
3948         .hw.init = &(const struct clk_init_data) {
3949             .name = "gcc_pcie_2b_aux_clk",
3950             .parent_hws = (const struct clk_hw*[]){
3951                 &gcc_pcie_2b_aux_clk_src.clkr.hw,
3952             },
3953             .num_parents = 1,
3954             .flags = CLK_SET_RATE_PARENT,
3955             .ops = &clk_branch2_ops,
3956         },
3957     },
3958 };
3959 
3960 static struct clk_branch gcc_pcie_2b_cfg_ahb_clk = {
3961     .halt_reg = 0x9e024,
3962     .halt_check = BRANCH_HALT_VOTED,
3963     .hwcg_reg = 0x9e024,
3964     .hwcg_bit = 1,
3965     .clkr = {
3966         .enable_reg = 0x52010,
3967         .enable_mask = BIT(19),
3968         .hw.init = &(const struct clk_init_data) {
3969             .name = "gcc_pcie_2b_cfg_ahb_clk",
3970             .ops = &clk_branch2_ops,
3971         },
3972     },
3973 };
3974 
3975 static struct clk_branch gcc_pcie_2b_mstr_axi_clk = {
3976     .halt_reg = 0x9e01c,
3977     .halt_check = BRANCH_HALT_SKIP,
3978     .hwcg_reg = 0x9e01c,
3979     .hwcg_bit = 1,
3980     .clkr = {
3981         .enable_reg = 0x52010,
3982         .enable_mask = BIT(18),
3983         .hw.init = &(const struct clk_init_data) {
3984             .name = "gcc_pcie_2b_mstr_axi_clk",
3985             .ops = &clk_branch2_ops,
3986         },
3987     },
3988 };
3989 
3990 static struct clk_branch gcc_pcie_2b_pipe_clk = {
3991     .halt_reg = 0x9e030,
3992     .halt_check = BRANCH_HALT_SKIP,
3993     .clkr = {
3994         .enable_reg = 0x52010,
3995         .enable_mask = BIT(21),
3996         .hw.init = &(const struct clk_init_data) {
3997             .name = "gcc_pcie_2b_pipe_clk",
3998             .parent_hws = (const struct clk_hw*[]){
3999                 &gcc_pcie_2b_pipe_clk_src.clkr.hw,
4000             },
4001             .num_parents = 1,
4002             .flags = CLK_SET_RATE_PARENT,
4003             .ops = &clk_branch2_ops,
4004         },
4005     },
4006 };
4007 
4008 static struct clk_branch gcc_pcie_2b_pipediv2_clk = {
4009     .halt_reg = 0x9e038,
4010     .halt_check = BRANCH_HALT_SKIP,
4011     .clkr = {
4012         .enable_reg = 0x52018,
4013         .enable_mask = BIT(23),
4014         .hw.init = &(const struct clk_init_data) {
4015             .name = "gcc_pcie_2b_pipediv2_clk",
4016             .parent_hws = (const struct clk_hw*[]){
4017                 &gcc_pcie_2b_pipe_div_clk_src.clkr.hw,
4018             },
4019             .num_parents = 1,
4020             .flags = CLK_SET_RATE_PARENT,
4021             .ops = &clk_branch2_ops,
4022         },
4023     },
4024 };
4025 
4026 static struct clk_branch gcc_pcie_2b_slv_axi_clk = {
4027     .halt_reg = 0x9e014,
4028     .halt_check = BRANCH_HALT_VOTED,
4029     .hwcg_reg = 0x9e014,
4030     .hwcg_bit = 1,
4031     .clkr = {
4032         .enable_reg = 0x52010,
4033         .enable_mask = BIT(17),
4034         .hw.init = &(const struct clk_init_data) {
4035             .name = "gcc_pcie_2b_slv_axi_clk",
4036             .ops = &clk_branch2_ops,
4037         },
4038     },
4039 };
4040 
4041 static struct clk_branch gcc_pcie_2b_slv_q2a_axi_clk = {
4042     .halt_reg = 0x9e010,
4043     .halt_check = BRANCH_HALT_VOTED,
4044     .clkr = {
4045         .enable_reg = 0x52010,
4046         .enable_mask = BIT(16),
4047         .hw.init = &(const struct clk_init_data) {
4048             .name = "gcc_pcie_2b_slv_q2a_axi_clk",
4049             .ops = &clk_branch2_ops,
4050         },
4051     },
4052 };
4053 
4054 static struct clk_branch gcc_pcie_3a3b_clkref_clk = {
4055     .halt_reg = 0x8c038,
4056     .halt_check = BRANCH_HALT,
4057     .clkr = {
4058         .enable_reg = 0x8c038,
4059         .enable_mask = BIT(0),
4060         .hw.init = &(const struct clk_init_data) {
4061             .name = "gcc_pcie_3a3b_clkref_clk",
4062             .ops = &clk_branch2_ops,
4063         },
4064     },
4065 };
4066 
4067 static struct clk_branch gcc_pcie_3a_aux_clk = {
4068     .halt_reg = 0xa0028,
4069     .halt_check = BRANCH_HALT_VOTED,
4070     .clkr = {
4071         .enable_reg = 0x52010,
4072         .enable_mask = BIT(27),
4073         .hw.init = &(const struct clk_init_data) {
4074             .name = "gcc_pcie_3a_aux_clk",
4075             .parent_hws = (const struct clk_hw*[]){
4076                 &gcc_pcie_3a_aux_clk_src.clkr.hw,
4077             },
4078             .num_parents = 1,
4079             .flags = CLK_SET_RATE_PARENT,
4080             .ops = &clk_branch2_ops,
4081         },
4082     },
4083 };
4084 
4085 static struct clk_branch gcc_pcie_3a_cfg_ahb_clk = {
4086     .halt_reg = 0xa0024,
4087     .halt_check = BRANCH_HALT_VOTED,
4088     .hwcg_reg = 0xa0024,
4089     .hwcg_bit = 1,
4090     .clkr = {
4091         .enable_reg = 0x52010,
4092         .enable_mask = BIT(26),
4093         .hw.init = &(const struct clk_init_data) {
4094             .name = "gcc_pcie_3a_cfg_ahb_clk",
4095             .ops = &clk_branch2_ops,
4096         },
4097     },
4098 };
4099 
4100 static struct clk_branch gcc_pcie_3a_mstr_axi_clk = {
4101     .halt_reg = 0xa001c,
4102     .halt_check = BRANCH_HALT_SKIP,
4103     .hwcg_reg = 0xa001c,
4104     .hwcg_bit = 1,
4105     .clkr = {
4106         .enable_reg = 0x52010,
4107         .enable_mask = BIT(25),
4108         .hw.init = &(const struct clk_init_data) {
4109             .name = "gcc_pcie_3a_mstr_axi_clk",
4110             .ops = &clk_branch2_ops,
4111         },
4112     },
4113 };
4114 
4115 static struct clk_branch gcc_pcie_3a_pipe_clk = {
4116     .halt_reg = 0xa0030,
4117     .halt_check = BRANCH_HALT_SKIP,
4118     .clkr = {
4119         .enable_reg = 0x52010,
4120         .enable_mask = BIT(28),
4121         .hw.init = &(const struct clk_init_data) {
4122             .name = "gcc_pcie_3a_pipe_clk",
4123             .parent_hws = (const struct clk_hw*[]){
4124                 &gcc_pcie_3a_pipe_clk_src.clkr.hw,
4125             },
4126             .num_parents = 1,
4127             .flags = CLK_SET_RATE_PARENT,
4128             .ops = &clk_branch2_ops,
4129         },
4130     },
4131 };
4132 
4133 static struct clk_branch gcc_pcie_3a_pipediv2_clk = {
4134     .halt_reg = 0xa0038,
4135     .halt_check = BRANCH_HALT_SKIP,
4136     .clkr = {
4137         .enable_reg = 0x52018,
4138         .enable_mask = BIT(24),
4139         .hw.init = &(const struct clk_init_data) {
4140             .name = "gcc_pcie_3a_pipediv2_clk",
4141             .parent_hws = (const struct clk_hw*[]){
4142                 &gcc_pcie_3a_pipe_div_clk_src.clkr.hw,
4143             },
4144             .num_parents = 1,
4145             .flags = CLK_SET_RATE_PARENT,
4146             .ops = &clk_branch2_ops,
4147         },
4148     },
4149 };
4150 
4151 static struct clk_branch gcc_pcie_3a_slv_axi_clk = {
4152     .halt_reg = 0xa0014,
4153     .halt_check = BRANCH_HALT_VOTED,
4154     .hwcg_reg = 0xa0014,
4155     .hwcg_bit = 1,
4156     .clkr = {
4157         .enable_reg = 0x52010,
4158         .enable_mask = BIT(24),
4159         .hw.init = &(const struct clk_init_data) {
4160             .name = "gcc_pcie_3a_slv_axi_clk",
4161             .ops = &clk_branch2_ops,
4162         },
4163     },
4164 };
4165 
4166 static struct clk_branch gcc_pcie_3a_slv_q2a_axi_clk = {
4167     .halt_reg = 0xa0010,
4168     .halt_check = BRANCH_HALT_VOTED,
4169     .clkr = {
4170         .enable_reg = 0x52010,
4171         .enable_mask = BIT(23),
4172         .hw.init = &(const struct clk_init_data) {
4173             .name = "gcc_pcie_3a_slv_q2a_axi_clk",
4174             .ops = &clk_branch2_ops,
4175         },
4176     },
4177 };
4178 
4179 static struct clk_branch gcc_pcie_3b_aux_clk = {
4180     .halt_reg = 0xa2028,
4181     .halt_check = BRANCH_HALT_VOTED,
4182     .clkr = {
4183         .enable_reg = 0x52018,
4184         .enable_mask = BIT(2),
4185         .hw.init = &(const struct clk_init_data) {
4186             .name = "gcc_pcie_3b_aux_clk",
4187             .parent_hws = (const struct clk_hw*[]){
4188                 &gcc_pcie_3b_aux_clk_src.clkr.hw,
4189             },
4190             .num_parents = 1,
4191             .flags = CLK_SET_RATE_PARENT,
4192             .ops = &clk_branch2_ops,
4193         },
4194     },
4195 };
4196 
4197 static struct clk_branch gcc_pcie_3b_cfg_ahb_clk = {
4198     .halt_reg = 0xa2024,
4199     .halt_check = BRANCH_HALT_VOTED,
4200     .hwcg_reg = 0xa2024,
4201     .hwcg_bit = 1,
4202     .clkr = {
4203         .enable_reg = 0x52018,
4204         .enable_mask = BIT(1),
4205         .hw.init = &(const struct clk_init_data) {
4206             .name = "gcc_pcie_3b_cfg_ahb_clk",
4207             .ops = &clk_branch2_ops,
4208         },
4209     },
4210 };
4211 
4212 static struct clk_branch gcc_pcie_3b_mstr_axi_clk = {
4213     .halt_reg = 0xa201c,
4214     .halt_check = BRANCH_HALT_SKIP,
4215     .hwcg_reg = 0xa201c,
4216     .hwcg_bit = 1,
4217     .clkr = {
4218         .enable_reg = 0x52018,
4219         .enable_mask = BIT(0),
4220         .hw.init = &(const struct clk_init_data) {
4221             .name = "gcc_pcie_3b_mstr_axi_clk",
4222             .ops = &clk_branch2_ops,
4223         },
4224     },
4225 };
4226 
4227 static struct clk_branch gcc_pcie_3b_pipe_clk = {
4228     .halt_reg = 0xa2030,
4229     .halt_check = BRANCH_HALT_SKIP,
4230     .clkr = {
4231         .enable_reg = 0x52018,
4232         .enable_mask = BIT(3),
4233         .hw.init = &(const struct clk_init_data) {
4234             .name = "gcc_pcie_3b_pipe_clk",
4235             .parent_hws = (const struct clk_hw*[]){
4236                 &gcc_pcie_3b_pipe_clk_src.clkr.hw,
4237             },
4238             .num_parents = 1,
4239             .flags = CLK_SET_RATE_PARENT,
4240             .ops = &clk_branch2_ops,
4241         },
4242     },
4243 };
4244 
4245 static struct clk_branch gcc_pcie_3b_pipediv2_clk = {
4246     .halt_reg = 0xa2038,
4247     .halt_check = BRANCH_HALT_SKIP,
4248     .clkr = {
4249         .enable_reg = 0x52018,
4250         .enable_mask = BIT(25),
4251         .hw.init = &(const struct clk_init_data) {
4252             .name = "gcc_pcie_3b_pipediv2_clk",
4253             .parent_hws = (const struct clk_hw*[]){
4254                 &gcc_pcie_3b_pipe_div_clk_src.clkr.hw,
4255             },
4256             .num_parents = 1,
4257             .flags = CLK_SET_RATE_PARENT,
4258             .ops = &clk_branch2_ops,
4259         },
4260     },
4261 };
4262 
4263 static struct clk_branch gcc_pcie_3b_slv_axi_clk = {
4264     .halt_reg = 0xa2014,
4265     .halt_check = BRANCH_HALT_VOTED,
4266     .hwcg_reg = 0xa2014,
4267     .hwcg_bit = 1,
4268     .clkr = {
4269         .enable_reg = 0x52010,
4270         .enable_mask = BIT(31),
4271         .hw.init = &(const struct clk_init_data) {
4272             .name = "gcc_pcie_3b_slv_axi_clk",
4273             .ops = &clk_branch2_ops,
4274         },
4275     },
4276 };
4277 
4278 static struct clk_branch gcc_pcie_3b_slv_q2a_axi_clk = {
4279     .halt_reg = 0xa2010,
4280     .halt_check = BRANCH_HALT_VOTED,
4281     .clkr = {
4282         .enable_reg = 0x52010,
4283         .enable_mask = BIT(30),
4284         .hw.init = &(const struct clk_init_data) {
4285             .name = "gcc_pcie_3b_slv_q2a_axi_clk",
4286             .ops = &clk_branch2_ops,
4287         },
4288     },
4289 };
4290 
4291 static struct clk_branch gcc_pcie_4_aux_clk = {
4292     .halt_reg = 0x6b028,
4293     .halt_check = BRANCH_HALT_VOTED,
4294     .clkr = {
4295         .enable_reg = 0x52008,
4296         .enable_mask = BIT(3),
4297         .hw.init = &(const struct clk_init_data) {
4298             .name = "gcc_pcie_4_aux_clk",
4299             .parent_hws = (const struct clk_hw*[]){
4300                 &gcc_pcie_4_aux_clk_src.clkr.hw,
4301             },
4302             .num_parents = 1,
4303             .flags = CLK_SET_RATE_PARENT,
4304             .ops = &clk_branch2_ops,
4305         },
4306     },
4307 };
4308 
4309 static struct clk_branch gcc_pcie_4_cfg_ahb_clk = {
4310     .halt_reg = 0x6b024,
4311     .halt_check = BRANCH_HALT_VOTED,
4312     .hwcg_reg = 0x6b024,
4313     .hwcg_bit = 1,
4314     .clkr = {
4315         .enable_reg = 0x52008,
4316         .enable_mask = BIT(2),
4317         .hw.init = &(const struct clk_init_data) {
4318             .name = "gcc_pcie_4_cfg_ahb_clk",
4319             .ops = &clk_branch2_ops,
4320         },
4321     },
4322 };
4323 
4324 static struct clk_branch gcc_pcie_4_clkref_clk = {
4325     .halt_reg = 0x8c030,
4326     .halt_check = BRANCH_HALT,
4327     .clkr = {
4328         .enable_reg = 0x8c030,
4329         .enable_mask = BIT(0),
4330         .hw.init = &(const struct clk_init_data) {
4331             .name = "gcc_pcie_4_clkref_clk",
4332             .ops = &clk_branch2_ops,
4333         },
4334     },
4335 };
4336 
4337 static struct clk_branch gcc_pcie_4_mstr_axi_clk = {
4338     .halt_reg = 0x6b01c,
4339     .halt_check = BRANCH_HALT_SKIP,
4340     .hwcg_reg = 0x6b01c,
4341     .hwcg_bit = 1,
4342     .clkr = {
4343         .enable_reg = 0x52008,
4344         .enable_mask = BIT(1),
4345         .hw.init = &(const struct clk_init_data) {
4346             .name = "gcc_pcie_4_mstr_axi_clk",
4347             .ops = &clk_branch2_ops,
4348         },
4349     },
4350 };
4351 
4352 static struct clk_branch gcc_pcie_4_pipe_clk = {
4353     .halt_reg = 0x6b030,
4354     .halt_check = BRANCH_HALT_SKIP,
4355     .clkr = {
4356         .enable_reg = 0x52008,
4357         .enable_mask = BIT(4),
4358         .hw.init = &(const struct clk_init_data) {
4359             .name = "gcc_pcie_4_pipe_clk",
4360             .parent_hws = (const struct clk_hw*[]){
4361                 &gcc_pcie_4_pipe_clk_src.clkr.hw,
4362             },
4363             .num_parents = 1,
4364             .flags = CLK_SET_RATE_PARENT,
4365             .ops = &clk_branch2_ops,
4366         },
4367     },
4368 };
4369 
4370 static struct clk_branch gcc_pcie_4_pipediv2_clk = {
4371     .halt_reg = 0x6b038,
4372     .halt_check = BRANCH_HALT_SKIP,
4373     .clkr = {
4374         .enable_reg = 0x52018,
4375         .enable_mask = BIT(16),
4376         .hw.init = &(const struct clk_init_data) {
4377             .name = "gcc_pcie_4_pipediv2_clk",
4378             .parent_hws = (const struct clk_hw*[]){
4379                 &gcc_pcie_4_pipe_div_clk_src.clkr.hw,
4380             },
4381             .num_parents = 1,
4382             .flags = CLK_SET_RATE_PARENT,
4383             .ops = &clk_branch2_ops,
4384         },
4385     },
4386 };
4387 
4388 static struct clk_branch gcc_pcie_4_slv_axi_clk = {
4389     .halt_reg = 0x6b014,
4390     .halt_check = BRANCH_HALT_VOTED,
4391     .hwcg_reg = 0x6b014,
4392     .hwcg_bit = 1,
4393     .clkr = {
4394         .enable_reg = 0x52008,
4395         .enable_mask = BIT(0),
4396         .hw.init = &(const struct clk_init_data) {
4397             .name = "gcc_pcie_4_slv_axi_clk",
4398             .ops = &clk_branch2_ops,
4399         },
4400     },
4401 };
4402 
4403 static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = {
4404     .halt_reg = 0x6b010,
4405     .halt_check = BRANCH_HALT_VOTED,
4406     .clkr = {
4407         .enable_reg = 0x52008,
4408         .enable_mask = BIT(5),
4409         .hw.init = &(const struct clk_init_data) {
4410             .name = "gcc_pcie_4_slv_q2a_axi_clk",
4411             .ops = &clk_branch2_ops,
4412         },
4413     },
4414 };
4415 
4416 static struct clk_branch gcc_pcie_rscc_ahb_clk = {
4417     .halt_reg = 0xae008,
4418     .halt_check = BRANCH_HALT_VOTED,
4419     .hwcg_reg = 0xae008,
4420     .hwcg_bit = 1,
4421     .clkr = {
4422         .enable_reg = 0x52020,
4423         .enable_mask = BIT(17),
4424         .hw.init = &(const struct clk_init_data) {
4425             .name = "gcc_pcie_rscc_ahb_clk",
4426             .ops = &clk_branch2_ops,
4427         },
4428     },
4429 };
4430 
4431 static struct clk_branch gcc_pcie_rscc_xo_clk = {
4432     .halt_reg = 0xae004,
4433     .halt_check = BRANCH_HALT_VOTED,
4434     .clkr = {
4435         .enable_reg = 0x52020,
4436         .enable_mask = BIT(16),
4437         .hw.init = &(const struct clk_init_data) {
4438             .name = "gcc_pcie_rscc_xo_clk",
4439             .parent_hws = (const struct clk_hw*[]){
4440                 &gcc_pcie_rscc_xo_clk_src.clkr.hw,
4441             },
4442             .num_parents = 1,
4443             .flags = CLK_SET_RATE_PARENT,
4444             .ops = &clk_branch2_ops,
4445         },
4446     },
4447 };
4448 
4449 static struct clk_branch gcc_pcie_throttle_cfg_clk = {
4450     .halt_reg = 0xa6028,
4451     .halt_check = BRANCH_HALT_VOTED,
4452     .clkr = {
4453         .enable_reg = 0x52020,
4454         .enable_mask = BIT(15),
4455         .hw.init = &(const struct clk_init_data) {
4456             .name = "gcc_pcie_throttle_cfg_clk",
4457             .ops = &clk_branch2_ops,
4458         },
4459     },
4460 };
4461 
4462 static struct clk_branch gcc_pdm2_clk = {
4463     .halt_reg = 0x3300c,
4464     .halt_check = BRANCH_HALT,
4465     .clkr = {
4466         .enable_reg = 0x3300c,
4467         .enable_mask = BIT(0),
4468         .hw.init = &(const struct clk_init_data) {
4469             .name = "gcc_pdm2_clk",
4470             .parent_hws = (const struct clk_hw*[]){
4471                 &gcc_pdm2_clk_src.clkr.hw,
4472             },
4473             .num_parents = 1,
4474             .flags = CLK_SET_RATE_PARENT,
4475             .ops = &clk_branch2_ops,
4476         },
4477     },
4478 };
4479 
4480 static struct clk_branch gcc_pdm_ahb_clk = {
4481     .halt_reg = 0x33004,
4482     .halt_check = BRANCH_HALT_VOTED,
4483     .hwcg_reg = 0x33004,
4484     .hwcg_bit = 1,
4485     .clkr = {
4486         .enable_reg = 0x33004,
4487         .enable_mask = BIT(0),
4488         .hw.init = &(const struct clk_init_data) {
4489             .name = "gcc_pdm_ahb_clk",
4490             .ops = &clk_branch2_ops,
4491         },
4492     },
4493 };
4494 
4495 static struct clk_branch gcc_pdm_xo4_clk = {
4496     .halt_reg = 0x33008,
4497     .halt_check = BRANCH_HALT,
4498     .clkr = {
4499         .enable_reg = 0x33008,
4500         .enable_mask = BIT(0),
4501         .hw.init = &(const struct clk_init_data) {
4502             .name = "gcc_pdm_xo4_clk",
4503             .ops = &clk_branch2_ops,
4504         },
4505     },
4506 };
4507 
4508 static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
4509     .halt_reg = 0x26008,
4510     .halt_check = BRANCH_HALT_VOTED,
4511     .hwcg_reg = 0x26008,
4512     .hwcg_bit = 1,
4513     .clkr = {
4514         .enable_reg = 0x26008,
4515         .enable_mask = BIT(0),
4516         .hw.init = &(const struct clk_init_data) {
4517             .name = "gcc_qmip_camera_nrt_ahb_clk",
4518             .ops = &clk_branch2_ops,
4519         },
4520     },
4521 };
4522 
4523 static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
4524     .halt_reg = 0x2600c,
4525     .halt_check = BRANCH_HALT_VOTED,
4526     .hwcg_reg = 0x2600c,
4527     .hwcg_bit = 1,
4528     .clkr = {
4529         .enable_reg = 0x2600c,
4530         .enable_mask = BIT(0),
4531         .hw.init = &(const struct clk_init_data) {
4532             .name = "gcc_qmip_camera_rt_ahb_clk",
4533             .ops = &clk_branch2_ops,
4534         },
4535     },
4536 };
4537 
4538 static struct clk_branch gcc_qmip_disp1_ahb_clk = {
4539     .halt_reg = 0xbb008,
4540     .halt_check = BRANCH_HALT_VOTED,
4541     .hwcg_reg = 0xbb008,
4542     .hwcg_bit = 1,
4543     .clkr = {
4544         .enable_reg = 0xbb008,
4545         .enable_mask = BIT(0),
4546         .hw.init = &(const struct clk_init_data) {
4547             .name = "gcc_qmip_disp1_ahb_clk",
4548             .ops = &clk_branch2_ops,
4549         },
4550     },
4551 };
4552 
4553 static struct clk_branch gcc_qmip_disp1_rot_ahb_clk = {
4554     .halt_reg = 0xbb00c,
4555     .halt_check = BRANCH_HALT_VOTED,
4556     .hwcg_reg = 0xbb00c,
4557     .hwcg_bit = 1,
4558     .clkr = {
4559         .enable_reg = 0xbb00c,
4560         .enable_mask = BIT(0),
4561         .hw.init = &(const struct clk_init_data) {
4562             .name = "gcc_qmip_disp1_rot_ahb_clk",
4563             .ops = &clk_branch2_ops,
4564         },
4565     },
4566 };
4567 
4568 static struct clk_branch gcc_qmip_disp_ahb_clk = {
4569     .halt_reg = 0x27008,
4570     .halt_check = BRANCH_HALT_VOTED,
4571     .hwcg_reg = 0x27008,
4572     .hwcg_bit = 1,
4573     .clkr = {
4574         .enable_reg = 0x27008,
4575         .enable_mask = BIT(0),
4576         .hw.init = &(const struct clk_init_data) {
4577             .name = "gcc_qmip_disp_ahb_clk",
4578             .ops = &clk_branch2_ops,
4579         },
4580     },
4581 };
4582 
4583 static struct clk_branch gcc_qmip_disp_rot_ahb_clk = {
4584     .halt_reg = 0x2700c,
4585     .halt_check = BRANCH_HALT_VOTED,
4586     .hwcg_reg = 0x2700c,
4587     .hwcg_bit = 1,
4588     .clkr = {
4589         .enable_reg = 0x2700c,
4590         .enable_mask = BIT(0),
4591         .hw.init = &(const struct clk_init_data) {
4592             .name = "gcc_qmip_disp_rot_ahb_clk",
4593             .ops = &clk_branch2_ops,
4594         },
4595     },
4596 };
4597 
4598 static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
4599     .halt_reg = 0x28008,
4600     .halt_check = BRANCH_HALT_VOTED,
4601     .hwcg_reg = 0x28008,
4602     .hwcg_bit = 1,
4603     .clkr = {
4604         .enable_reg = 0x28008,
4605         .enable_mask = BIT(0),
4606         .hw.init = &(const struct clk_init_data) {
4607             .name = "gcc_qmip_video_cvp_ahb_clk",
4608             .ops = &clk_branch2_ops,
4609         },
4610     },
4611 };
4612 
4613 static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
4614     .halt_reg = 0x2800c,
4615     .halt_check = BRANCH_HALT_VOTED,
4616     .hwcg_reg = 0x2800c,
4617     .hwcg_bit = 1,
4618     .clkr = {
4619         .enable_reg = 0x2800c,
4620         .enable_mask = BIT(0),
4621         .hw.init = &(const struct clk_init_data) {
4622             .name = "gcc_qmip_video_vcodec_ahb_clk",
4623             .ops = &clk_branch2_ops,
4624         },
4625     },
4626 };
4627 
4628 static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
4629     .halt_reg = 0x17014,
4630     .halt_check = BRANCH_HALT_VOTED,
4631     .clkr = {
4632         .enable_reg = 0x52008,
4633         .enable_mask = BIT(9),
4634         .hw.init = &(const struct clk_init_data) {
4635             .name = "gcc_qupv3_wrap0_core_2x_clk",
4636             .ops = &clk_branch2_ops,
4637         },
4638     },
4639 };
4640 
4641 static struct clk_branch gcc_qupv3_wrap0_core_clk = {
4642     .halt_reg = 0x1700c,
4643     .halt_check = BRANCH_HALT_VOTED,
4644     .clkr = {
4645         .enable_reg = 0x52008,
4646         .enable_mask = BIT(8),
4647         .hw.init = &(const struct clk_init_data) {
4648             .name = "gcc_qupv3_wrap0_core_clk",
4649             .ops = &clk_branch2_ops,
4650         },
4651     },
4652 };
4653 
4654 static struct clk_branch gcc_qupv3_wrap0_qspi0_clk = {
4655     .halt_reg = 0x17ac4,
4656     .halt_check = BRANCH_HALT_VOTED,
4657     .clkr = {
4658         .enable_reg = 0x52020,
4659         .enable_mask = BIT(0),
4660         .hw.init = &(const struct clk_init_data) {
4661             .name = "gcc_qupv3_wrap0_qspi0_clk",
4662             .parent_hws = (const struct clk_hw*[]){
4663                 &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
4664             },
4665             .num_parents = 1,
4666             .flags = CLK_SET_RATE_PARENT,
4667             .ops = &clk_branch2_ops,
4668         },
4669     },
4670 };
4671 
4672 static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
4673     .halt_reg = 0x17144,
4674     .halt_check = BRANCH_HALT_VOTED,
4675     .clkr = {
4676         .enable_reg = 0x52008,
4677         .enable_mask = BIT(10),
4678         .hw.init = &(const struct clk_init_data) {
4679             .name = "gcc_qupv3_wrap0_s0_clk",
4680             .parent_hws = (const struct clk_hw*[]){
4681                 &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
4682             },
4683             .num_parents = 1,
4684             .flags = CLK_SET_RATE_PARENT,
4685             .ops = &clk_branch2_ops,
4686         },
4687     },
4688 };
4689 
4690 static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
4691     .halt_reg = 0x17274,
4692     .halt_check = BRANCH_HALT_VOTED,
4693     .clkr = {
4694         .enable_reg = 0x52008,
4695         .enable_mask = BIT(11),
4696         .hw.init = &(const struct clk_init_data) {
4697             .name = "gcc_qupv3_wrap0_s1_clk",
4698             .parent_hws = (const struct clk_hw*[]){
4699                 &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
4700             },
4701             .num_parents = 1,
4702             .flags = CLK_SET_RATE_PARENT,
4703             .ops = &clk_branch2_ops,
4704         },
4705     },
4706 };
4707 
4708 static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
4709     .halt_reg = 0x173a4,
4710     .halt_check = BRANCH_HALT_VOTED,
4711     .clkr = {
4712         .enable_reg = 0x52008,
4713         .enable_mask = BIT(12),
4714         .hw.init = &(const struct clk_init_data) {
4715             .name = "gcc_qupv3_wrap0_s2_clk",
4716             .parent_hws = (const struct clk_hw*[]){
4717                 &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
4718             },
4719             .num_parents = 1,
4720             .flags = CLK_SET_RATE_PARENT,
4721             .ops = &clk_branch2_ops,
4722         },
4723     },
4724 };
4725 
4726 static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
4727     .halt_reg = 0x174d4,
4728     .halt_check = BRANCH_HALT_VOTED,
4729     .clkr = {
4730         .enable_reg = 0x52008,
4731         .enable_mask = BIT(13),
4732         .hw.init = &(const struct clk_init_data) {
4733             .name = "gcc_qupv3_wrap0_s3_clk",
4734             .parent_hws = (const struct clk_hw*[]){
4735                 &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
4736             },
4737             .num_parents = 1,
4738             .flags = CLK_SET_RATE_PARENT,
4739             .ops = &clk_branch2_ops,
4740         },
4741     },
4742 };
4743 
4744 static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
4745     .halt_reg = 0x17604,
4746     .halt_check = BRANCH_HALT_VOTED,
4747     .clkr = {
4748         .enable_reg = 0x52008,
4749         .enable_mask = BIT(14),
4750         .hw.init = &(const struct clk_init_data) {
4751             .name = "gcc_qupv3_wrap0_s4_clk",
4752             .parent_hws = (const struct clk_hw*[]){
4753                 &gcc_qupv3_wrap0_s4_div_clk_src.clkr.hw,
4754             },
4755             .num_parents = 1,
4756             .flags = CLK_SET_RATE_PARENT,
4757             .ops = &clk_branch2_ops,
4758         },
4759     },
4760 };
4761 
4762 static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
4763     .halt_reg = 0x17734,
4764     .halt_check = BRANCH_HALT_VOTED,
4765     .clkr = {
4766         .enable_reg = 0x52008,
4767         .enable_mask = BIT(15),
4768         .hw.init = &(const struct clk_init_data) {
4769             .name = "gcc_qupv3_wrap0_s5_clk",
4770             .parent_hws = (const struct clk_hw*[]){
4771                 &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
4772             },
4773             .num_parents = 1,
4774             .flags = CLK_SET_RATE_PARENT,
4775             .ops = &clk_branch2_ops,
4776         },
4777     },
4778 };
4779 
4780 static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
4781     .halt_reg = 0x17864,
4782     .halt_check = BRANCH_HALT_VOTED,
4783     .clkr = {
4784         .enable_reg = 0x52008,
4785         .enable_mask = BIT(16),
4786         .hw.init = &(const struct clk_init_data) {
4787             .name = "gcc_qupv3_wrap0_s6_clk",
4788             .parent_hws = (const struct clk_hw*[]){
4789                 &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
4790             },
4791             .num_parents = 1,
4792             .flags = CLK_SET_RATE_PARENT,
4793             .ops = &clk_branch2_ops,
4794         },
4795     },
4796 };
4797 
4798 static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
4799     .halt_reg = 0x17994,
4800     .halt_check = BRANCH_HALT_VOTED,
4801     .clkr = {
4802         .enable_reg = 0x52008,
4803         .enable_mask = BIT(17),
4804         .hw.init = &(const struct clk_init_data) {
4805             .name = "gcc_qupv3_wrap0_s7_clk",
4806             .parent_hws = (const struct clk_hw*[]){
4807                 &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
4808             },
4809             .num_parents = 1,
4810             .flags = CLK_SET_RATE_PARENT,
4811             .ops = &clk_branch2_ops,
4812         },
4813     },
4814 };
4815 
4816 static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
4817     .halt_reg = 0x18014,
4818     .halt_check = BRANCH_HALT_VOTED,
4819     .clkr = {
4820         .enable_reg = 0x52008,
4821         .enable_mask = BIT(18),
4822         .hw.init = &(const struct clk_init_data) {
4823             .name = "gcc_qupv3_wrap1_core_2x_clk",
4824             .ops = &clk_branch2_ops,
4825         },
4826     },
4827 };
4828 
4829 static struct clk_branch gcc_qupv3_wrap1_core_clk = {
4830     .halt_reg = 0x1800c,
4831     .halt_check = BRANCH_HALT_VOTED,
4832     .clkr = {
4833         .enable_reg = 0x52008,
4834         .enable_mask = BIT(19),
4835         .hw.init = &(const struct clk_init_data) {
4836             .name = "gcc_qupv3_wrap1_core_clk",
4837             .ops = &clk_branch2_ops,
4838         },
4839     },
4840 };
4841 
4842 static struct clk_branch gcc_qupv3_wrap1_qspi0_clk = {
4843     .halt_reg = 0x18ac4,
4844     .halt_check = BRANCH_HALT_VOTED,
4845     .clkr = {
4846         .enable_reg = 0x52020,
4847         .enable_mask = BIT(2),
4848         .hw.init = &(const struct clk_init_data) {
4849             .name = "gcc_qupv3_wrap1_qspi0_clk",
4850             .parent_hws = (const struct clk_hw*[]){
4851                 &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
4852             },
4853             .num_parents = 1,
4854             .flags = CLK_SET_RATE_PARENT,
4855             .ops = &clk_branch2_ops,
4856         },
4857     },
4858 };
4859 
4860 static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
4861     .halt_reg = 0x18144,
4862     .halt_check = BRANCH_HALT_VOTED,
4863     .clkr = {
4864         .enable_reg = 0x52008,
4865         .enable_mask = BIT(22),
4866         .hw.init = &(const struct clk_init_data) {
4867             .name = "gcc_qupv3_wrap1_s0_clk",
4868             .parent_hws = (const struct clk_hw*[]){
4869                 &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
4870             },
4871             .num_parents = 1,
4872             .flags = CLK_SET_RATE_PARENT,
4873             .ops = &clk_branch2_ops,
4874         },
4875     },
4876 };
4877 
4878 static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
4879     .halt_reg = 0x18274,
4880     .halt_check = BRANCH_HALT_VOTED,
4881     .clkr = {
4882         .enable_reg = 0x52008,
4883         .enable_mask = BIT(23),
4884         .hw.init = &(const struct clk_init_data) {
4885             .name = "gcc_qupv3_wrap1_s1_clk",
4886             .parent_hws = (const struct clk_hw*[]){
4887                 &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
4888             },
4889             .num_parents = 1,
4890             .flags = CLK_SET_RATE_PARENT,
4891             .ops = &clk_branch2_ops,
4892         },
4893     },
4894 };
4895 
4896 static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
4897     .halt_reg = 0x183a4,
4898     .halt_check = BRANCH_HALT_VOTED,
4899     .clkr = {
4900         .enable_reg = 0x52008,
4901         .enable_mask = BIT(24),
4902         .hw.init = &(const struct clk_init_data) {
4903             .name = "gcc_qupv3_wrap1_s2_clk",
4904             .parent_hws = (const struct clk_hw*[]){
4905                 &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
4906             },
4907             .num_parents = 1,
4908             .flags = CLK_SET_RATE_PARENT,
4909             .ops = &clk_branch2_ops,
4910         },
4911     },
4912 };
4913 
4914 static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
4915     .halt_reg = 0x184d4,
4916     .halt_check = BRANCH_HALT_VOTED,
4917     .clkr = {
4918         .enable_reg = 0x52008,
4919         .enable_mask = BIT(25),
4920         .hw.init = &(const struct clk_init_data) {
4921             .name = "gcc_qupv3_wrap1_s3_clk",
4922             .parent_hws = (const struct clk_hw*[]){
4923                 &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
4924             },
4925             .num_parents = 1,
4926             .flags = CLK_SET_RATE_PARENT,
4927             .ops = &clk_branch2_ops,
4928         },
4929     },
4930 };
4931 
4932 static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
4933     .halt_reg = 0x18604,
4934     .halt_check = BRANCH_HALT_VOTED,
4935     .clkr = {
4936         .enable_reg = 0x52008,
4937         .enable_mask = BIT(26),
4938         .hw.init = &(const struct clk_init_data) {
4939             .name = "gcc_qupv3_wrap1_s4_clk",
4940             .parent_hws = (const struct clk_hw*[]){
4941                 &gcc_qupv3_wrap1_s4_div_clk_src.clkr.hw,
4942             },
4943             .num_parents = 1,
4944             .flags = CLK_SET_RATE_PARENT,
4945             .ops = &clk_branch2_ops,
4946         },
4947     },
4948 };
4949 
4950 static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
4951     .halt_reg = 0x18734,
4952     .halt_check = BRANCH_HALT_VOTED,
4953     .clkr = {
4954         .enable_reg = 0x52008,
4955         .enable_mask = BIT(27),
4956         .hw.init = &(const struct clk_init_data) {
4957             .name = "gcc_qupv3_wrap1_s5_clk",
4958             .parent_hws = (const struct clk_hw*[]){
4959                 &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
4960             },
4961             .num_parents = 1,
4962             .flags = CLK_SET_RATE_PARENT,
4963             .ops = &clk_branch2_ops,
4964         },
4965     },
4966 };
4967 
4968 static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
4969     .halt_reg = 0x18864,
4970     .halt_check = BRANCH_HALT_VOTED,
4971     .clkr = {
4972         .enable_reg = 0x52018,
4973         .enable_mask = BIT(27),
4974         .hw.init = &(const struct clk_init_data) {
4975             .name = "gcc_qupv3_wrap1_s6_clk",
4976             .parent_hws = (const struct clk_hw*[]){
4977                 &gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
4978             },
4979             .num_parents = 1,
4980             .flags = CLK_SET_RATE_PARENT,
4981             .ops = &clk_branch2_ops,
4982         },
4983     },
4984 };
4985 
4986 static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
4987     .halt_reg = 0x18994,
4988     .halt_check = BRANCH_HALT_VOTED,
4989     .clkr = {
4990         .enable_reg = 0x52018,
4991         .enable_mask = BIT(28),
4992         .hw.init = &(const struct clk_init_data) {
4993             .name = "gcc_qupv3_wrap1_s7_clk",
4994             .parent_hws = (const struct clk_hw*[]){
4995                 &gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
4996             },
4997             .num_parents = 1,
4998             .flags = CLK_SET_RATE_PARENT,
4999             .ops = &clk_branch2_ops,
5000         },
5001     },
5002 };
5003 
5004 static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
5005     .halt_reg = 0x1e014,
5006     .halt_check = BRANCH_HALT_VOTED,
5007     .clkr = {
5008         .enable_reg = 0x52010,
5009         .enable_mask = BIT(3),
5010         .hw.init = &(const struct clk_init_data) {
5011             .name = "gcc_qupv3_wrap2_core_2x_clk",
5012             .ops = &clk_branch2_ops,
5013         },
5014     },
5015 };
5016 
5017 static struct clk_branch gcc_qupv3_wrap2_core_clk = {
5018     .halt_reg = 0x1e00c,
5019     .halt_check = BRANCH_HALT_VOTED,
5020     .clkr = {
5021         .enable_reg = 0x52010,
5022         .enable_mask = BIT(0),
5023         .hw.init = &(const struct clk_init_data) {
5024             .name = "gcc_qupv3_wrap2_core_clk",
5025             .ops = &clk_branch2_ops,
5026         },
5027     },
5028 };
5029 
5030 static struct clk_branch gcc_qupv3_wrap2_qspi0_clk = {
5031     .halt_reg = 0x1eac4,
5032     .halt_check = BRANCH_HALT_VOTED,
5033     .clkr = {
5034         .enable_reg = 0x52020,
5035         .enable_mask = BIT(4),
5036         .hw.init = &(const struct clk_init_data) {
5037             .name = "gcc_qupv3_wrap2_qspi0_clk",
5038             .parent_hws = (const struct clk_hw*[]){
5039                 &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
5040             },
5041             .num_parents = 1,
5042             .flags = CLK_SET_RATE_PARENT,
5043             .ops = &clk_branch2_ops,
5044         },
5045     },
5046 };
5047 
5048 static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
5049     .halt_reg = 0x1e144,
5050     .halt_check = BRANCH_HALT_VOTED,
5051     .clkr = {
5052         .enable_reg = 0x52010,
5053         .enable_mask = BIT(4),
5054         .hw.init = &(const struct clk_init_data) {
5055             .name = "gcc_qupv3_wrap2_s0_clk",
5056             .parent_hws = (const struct clk_hw*[]){
5057                 &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
5058             },
5059             .num_parents = 1,
5060             .flags = CLK_SET_RATE_PARENT,
5061             .ops = &clk_branch2_ops,
5062         },
5063     },
5064 };
5065 
5066 static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
5067     .halt_reg = 0x1e274,
5068     .halt_check = BRANCH_HALT_VOTED,
5069     .clkr = {
5070         .enable_reg = 0x52010,
5071         .enable_mask = BIT(5),
5072         .hw.init = &(const struct clk_init_data) {
5073             .name = "gcc_qupv3_wrap2_s1_clk",
5074             .parent_hws = (const struct clk_hw*[]){
5075                 &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
5076             },
5077             .num_parents = 1,
5078             .flags = CLK_SET_RATE_PARENT,
5079             .ops = &clk_branch2_ops,
5080         },
5081     },
5082 };
5083 
5084 static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
5085     .halt_reg = 0x1e3a4,
5086     .halt_check = BRANCH_HALT_VOTED,
5087     .clkr = {
5088         .enable_reg = 0x52010,
5089         .enable_mask = BIT(6),
5090         .hw.init = &(const struct clk_init_data) {
5091             .name = "gcc_qupv3_wrap2_s2_clk",
5092             .parent_hws = (const struct clk_hw*[]){
5093                 &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
5094             },
5095             .num_parents = 1,
5096             .flags = CLK_SET_RATE_PARENT,
5097             .ops = &clk_branch2_ops,
5098         },
5099     },
5100 };
5101 
5102 static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
5103     .halt_reg = 0x1e4d4,
5104     .halt_check = BRANCH_HALT_VOTED,
5105     .clkr = {
5106         .enable_reg = 0x52010,
5107         .enable_mask = BIT(7),
5108         .hw.init = &(const struct clk_init_data) {
5109             .name = "gcc_qupv3_wrap2_s3_clk",
5110             .parent_hws = (const struct clk_hw*[]){
5111                 &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
5112             },
5113             .num_parents = 1,
5114             .flags = CLK_SET_RATE_PARENT,
5115             .ops = &clk_branch2_ops,
5116         },
5117     },
5118 };
5119 
5120 static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
5121     .halt_reg = 0x1e604,
5122     .halt_check = BRANCH_HALT_VOTED,
5123     .clkr = {
5124         .enable_reg = 0x52010,
5125         .enable_mask = BIT(8),
5126         .hw.init = &(const struct clk_init_data) {
5127             .name = "gcc_qupv3_wrap2_s4_clk",
5128             .parent_hws = (const struct clk_hw*[]){
5129                 &gcc_qupv3_wrap2_s4_div_clk_src.clkr.hw,
5130             },
5131             .num_parents = 1,
5132             .flags = CLK_SET_RATE_PARENT,
5133             .ops = &clk_branch2_ops,
5134         },
5135     },
5136 };
5137 
5138 static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
5139     .halt_reg = 0x1e734,
5140     .halt_check = BRANCH_HALT_VOTED,
5141     .clkr = {
5142         .enable_reg = 0x52010,
5143         .enable_mask = BIT(9),
5144         .hw.init = &(const struct clk_init_data) {
5145             .name = "gcc_qupv3_wrap2_s5_clk",
5146             .parent_hws = (const struct clk_hw*[]){
5147                 &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
5148             },
5149             .num_parents = 1,
5150             .flags = CLK_SET_RATE_PARENT,
5151             .ops = &clk_branch2_ops,
5152         },
5153     },
5154 };
5155 
5156 static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
5157     .halt_reg = 0x1e864,
5158     .halt_check = BRANCH_HALT_VOTED,
5159     .clkr = {
5160         .enable_reg = 0x52018,
5161         .enable_mask = BIT(29),
5162         .hw.init = &(const struct clk_init_data) {
5163             .name = "gcc_qupv3_wrap2_s6_clk",
5164             .parent_hws = (const struct clk_hw*[]){
5165                 &gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
5166             },
5167             .num_parents = 1,
5168             .flags = CLK_SET_RATE_PARENT,
5169             .ops = &clk_branch2_ops,
5170         },
5171     },
5172 };
5173 
5174 static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
5175     .halt_reg = 0x1e994,
5176     .halt_check = BRANCH_HALT_VOTED,
5177     .clkr = {
5178         .enable_reg = 0x52018,
5179         .enable_mask = BIT(30),
5180         .hw.init = &(const struct clk_init_data) {
5181             .name = "gcc_qupv3_wrap2_s7_clk",
5182             .parent_hws = (const struct clk_hw*[]){
5183                 &gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
5184             },
5185             .num_parents = 1,
5186             .flags = CLK_SET_RATE_PARENT,
5187             .ops = &clk_branch2_ops,
5188         },
5189     },
5190 };
5191 
5192 static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
5193     .halt_reg = 0x17004,
5194     .halt_check = BRANCH_HALT_VOTED,
5195     .hwcg_reg = 0x17004,
5196     .hwcg_bit = 1,
5197     .clkr = {
5198         .enable_reg = 0x52008,
5199         .enable_mask = BIT(6),
5200         .hw.init = &(const struct clk_init_data) {
5201             .name = "gcc_qupv3_wrap_0_m_ahb_clk",
5202             .ops = &clk_branch2_ops,
5203         },
5204     },
5205 };
5206 
5207 static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
5208     .halt_reg = 0x17008,
5209     .halt_check = BRANCH_HALT_VOTED,
5210     .hwcg_reg = 0x17008,
5211     .hwcg_bit = 1,
5212     .clkr = {
5213         .enable_reg = 0x52008,
5214         .enable_mask = BIT(7),
5215         .hw.init = &(const struct clk_init_data) {
5216             .name = "gcc_qupv3_wrap_0_s_ahb_clk",
5217             .ops = &clk_branch2_ops,
5218         },
5219     },
5220 };
5221 
5222 static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
5223     .halt_reg = 0x18004,
5224     .halt_check = BRANCH_HALT_VOTED,
5225     .hwcg_reg = 0x18004,
5226     .hwcg_bit = 1,
5227     .clkr = {
5228         .enable_reg = 0x52008,
5229         .enable_mask = BIT(20),
5230         .hw.init = &(const struct clk_init_data) {
5231             .name = "gcc_qupv3_wrap_1_m_ahb_clk",
5232             .ops = &clk_branch2_ops,
5233         },
5234     },
5235 };
5236 
5237 static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
5238     .halt_reg = 0x18008,
5239     .halt_check = BRANCH_HALT_VOTED,
5240     .hwcg_reg = 0x18008,
5241     .hwcg_bit = 1,
5242     .clkr = {
5243         .enable_reg = 0x52008,
5244         .enable_mask = BIT(21),
5245         .hw.init = &(const struct clk_init_data) {
5246             .name = "gcc_qupv3_wrap_1_s_ahb_clk",
5247             .ops = &clk_branch2_ops,
5248         },
5249     },
5250 };
5251 
5252 static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
5253     .halt_reg = 0x1e004,
5254     .halt_check = BRANCH_HALT_VOTED,
5255     .hwcg_reg = 0x1e004,
5256     .hwcg_bit = 1,
5257     .clkr = {
5258         .enable_reg = 0x52010,
5259         .enable_mask = BIT(2),
5260         .hw.init = &(const struct clk_init_data) {
5261             .name = "gcc_qupv3_wrap_2_m_ahb_clk",
5262             .ops = &clk_branch2_ops,
5263         },
5264     },
5265 };
5266 
5267 static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
5268     .halt_reg = 0x1e008,
5269     .halt_check = BRANCH_HALT_VOTED,
5270     .hwcg_reg = 0x1e008,
5271     .hwcg_bit = 1,
5272     .clkr = {
5273         .enable_reg = 0x52010,
5274         .enable_mask = BIT(1),
5275         .hw.init = &(const struct clk_init_data) {
5276             .name = "gcc_qupv3_wrap_2_s_ahb_clk",
5277             .ops = &clk_branch2_ops,
5278         },
5279     },
5280 };
5281 
5282 static struct clk_branch gcc_sdcc2_ahb_clk = {
5283     .halt_reg = 0x14008,
5284     .halt_check = BRANCH_HALT,
5285     .clkr = {
5286         .enable_reg = 0x14008,
5287         .enable_mask = BIT(0),
5288         .hw.init = &(const struct clk_init_data) {
5289             .name = "gcc_sdcc2_ahb_clk",
5290             .ops = &clk_branch2_ops,
5291         },
5292     },
5293 };
5294 
5295 static struct clk_branch gcc_sdcc2_apps_clk = {
5296     .halt_reg = 0x14004,
5297     .halt_check = BRANCH_HALT,
5298     .clkr = {
5299         .enable_reg = 0x14004,
5300         .enable_mask = BIT(0),
5301         .hw.init = &(const struct clk_init_data) {
5302             .name = "gcc_sdcc2_apps_clk",
5303             .parent_hws = (const struct clk_hw*[]){
5304                 &gcc_sdcc2_apps_clk_src.clkr.hw,
5305             },
5306             .num_parents = 1,
5307             .flags = CLK_SET_RATE_PARENT,
5308             .ops = &clk_branch2_ops,
5309         },
5310     },
5311 };
5312 
5313 static struct clk_branch gcc_sdcc4_ahb_clk = {
5314     .halt_reg = 0x16008,
5315     .halt_check = BRANCH_HALT,
5316     .clkr = {
5317         .enable_reg = 0x16008,
5318         .enable_mask = BIT(0),
5319         .hw.init = &(const struct clk_init_data) {
5320             .name = "gcc_sdcc4_ahb_clk",
5321             .ops = &clk_branch2_ops,
5322         },
5323     },
5324 };
5325 
5326 static struct clk_branch gcc_sdcc4_apps_clk = {
5327     .halt_reg = 0x16004,
5328     .halt_check = BRANCH_HALT,
5329     .clkr = {
5330         .enable_reg = 0x16004,
5331         .enable_mask = BIT(0),
5332         .hw.init = &(const struct clk_init_data) {
5333             .name = "gcc_sdcc4_apps_clk",
5334             .parent_hws = (const struct clk_hw*[]){
5335                 &gcc_sdcc4_apps_clk_src.clkr.hw,
5336             },
5337             .num_parents = 1,
5338             .flags = CLK_SET_RATE_PARENT,
5339             .ops = &clk_branch2_ops,
5340         },
5341     },
5342 };
5343 
5344 static struct clk_branch gcc_sys_noc_usb_axi_clk = {
5345     .halt_reg = 0x5d000,
5346     .halt_check = BRANCH_HALT_VOTED,
5347     .hwcg_reg = 0x5d000,
5348     .hwcg_bit = 1,
5349     .clkr = {
5350         .enable_reg = 0x5d000,
5351         .enable_mask = BIT(0),
5352         .hw.init = &(const struct clk_init_data) {
5353             .name = "gcc_sys_noc_usb_axi_clk",
5354             .ops = &clk_branch2_ops,
5355         },
5356     },
5357 };
5358 
5359 static struct clk_branch gcc_ufs_1_card_clkref_clk = {
5360     .halt_reg = 0x8c000,
5361     .halt_check = BRANCH_HALT,
5362     .clkr = {
5363         .enable_reg = 0x8c000,
5364         .enable_mask = BIT(0),
5365         .hw.init = &(const struct clk_init_data) {
5366             .name = "gcc_ufs_1_card_clkref_clk",
5367             .ops = &clk_branch2_ops,
5368         },
5369     },
5370 };
5371 
5372 static struct clk_branch gcc_ufs_card_ahb_clk = {
5373     .halt_reg = 0x75018,
5374     .halt_check = BRANCH_HALT_VOTED,
5375     .hwcg_reg = 0x75018,
5376     .hwcg_bit = 1,
5377     .clkr = {
5378         .enable_reg = 0x75018,
5379         .enable_mask = BIT(0),
5380         .hw.init = &(const struct clk_init_data) {
5381             .name = "gcc_ufs_card_ahb_clk",
5382             .ops = &clk_branch2_ops,
5383         },
5384     },
5385 };
5386 
5387 static struct clk_branch gcc_ufs_card_axi_clk = {
5388     .halt_reg = 0x75010,
5389     .halt_check = BRANCH_HALT_VOTED,
5390     .hwcg_reg = 0x75010,
5391     .hwcg_bit = 1,
5392     .clkr = {
5393         .enable_reg = 0x75010,
5394         .enable_mask = BIT(0),
5395         .hw.init = &(const struct clk_init_data) {
5396             .name = "gcc_ufs_card_axi_clk",
5397             .parent_hws = (const struct clk_hw*[]){
5398                 &gcc_ufs_card_axi_clk_src.clkr.hw,
5399             },
5400             .num_parents = 1,
5401             .flags = CLK_SET_RATE_PARENT,
5402             .ops = &clk_branch2_ops,
5403         },
5404     },
5405 };
5406 
5407 static struct clk_branch gcc_ufs_card_axi_hw_ctl_clk = {
5408     .halt_reg = 0x75010,
5409     .halt_check = BRANCH_HALT_VOTED,
5410     .hwcg_reg = 0x75010,
5411     .hwcg_bit = 1,
5412     .clkr = {
5413         .enable_reg = 0x75010,
5414         .enable_mask = BIT(1),
5415         .hw.init = &(const struct clk_init_data) {
5416             .name = "gcc_ufs_card_axi_hw_ctl_clk",
5417             .parent_hws = (const struct clk_hw*[]){
5418                 &gcc_ufs_card_axi_clk_src.clkr.hw,
5419             },
5420             .num_parents = 1,
5421             .flags = CLK_SET_RATE_PARENT,
5422             .ops = &clk_branch2_ops,
5423         },
5424     },
5425 };
5426 
5427 static struct clk_branch gcc_ufs_card_clkref_clk = {
5428     .halt_reg = 0x8c054,
5429     .halt_check = BRANCH_HALT,
5430     .clkr = {
5431         .enable_reg = 0x8c054,
5432         .enable_mask = BIT(0),
5433         .hw.init = &(const struct clk_init_data) {
5434             .name = "gcc_ufs_card_clkref_clk",
5435             .ops = &clk_branch2_ops,
5436         },
5437     },
5438 };
5439 
5440 static struct clk_branch gcc_ufs_card_ice_core_clk = {
5441     .halt_reg = 0x75064,
5442     .halt_check = BRANCH_HALT_VOTED,
5443     .hwcg_reg = 0x75064,
5444     .hwcg_bit = 1,
5445     .clkr = {
5446         .enable_reg = 0x75064,
5447         .enable_mask = BIT(0),
5448         .hw.init = &(const struct clk_init_data) {
5449             .name = "gcc_ufs_card_ice_core_clk",
5450             .parent_hws = (const struct clk_hw*[]){
5451                 &gcc_ufs_card_ice_core_clk_src.clkr.hw,
5452             },
5453             .num_parents = 1,
5454             .flags = CLK_SET_RATE_PARENT,
5455             .ops = &clk_branch2_ops,
5456         },
5457     },
5458 };
5459 
5460 static struct clk_branch gcc_ufs_card_ice_core_hw_ctl_clk = {
5461     .halt_reg = 0x75064,
5462     .halt_check = BRANCH_HALT_VOTED,
5463     .hwcg_reg = 0x75064,
5464     .hwcg_bit = 1,
5465     .clkr = {
5466         .enable_reg = 0x75064,
5467         .enable_mask = BIT(1),
5468         .hw.init = &(const struct clk_init_data) {
5469             .name = "gcc_ufs_card_ice_core_hw_ctl_clk",
5470             .parent_hws = (const struct clk_hw*[]){
5471                 &gcc_ufs_card_ice_core_clk_src.clkr.hw,
5472             },
5473             .num_parents = 1,
5474             .flags = CLK_SET_RATE_PARENT,
5475             .ops = &clk_branch2_ops,
5476         },
5477     },
5478 };
5479 
5480 static struct clk_branch gcc_ufs_card_phy_aux_clk = {
5481     .halt_reg = 0x7509c,
5482     .halt_check = BRANCH_HALT_VOTED,
5483     .hwcg_reg = 0x7509c,
5484     .hwcg_bit = 1,
5485     .clkr = {
5486         .enable_reg = 0x7509c,
5487         .enable_mask = BIT(0),
5488         .hw.init = &(const struct clk_init_data) {
5489             .name = "gcc_ufs_card_phy_aux_clk",
5490             .parent_hws = (const struct clk_hw*[]){
5491                 &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5492             },
5493             .num_parents = 1,
5494             .flags = CLK_SET_RATE_PARENT,
5495             .ops = &clk_branch2_ops,
5496         },
5497     },
5498 };
5499 
5500 static struct clk_branch gcc_ufs_card_phy_aux_hw_ctl_clk = {
5501     .halt_reg = 0x7509c,
5502     .halt_check = BRANCH_HALT_VOTED,
5503     .hwcg_reg = 0x7509c,
5504     .hwcg_bit = 1,
5505     .clkr = {
5506         .enable_reg = 0x7509c,
5507         .enable_mask = BIT(1),
5508         .hw.init = &(const struct clk_init_data) {
5509             .name = "gcc_ufs_card_phy_aux_hw_ctl_clk",
5510             .parent_hws = (const struct clk_hw*[]){
5511                 &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5512             },
5513             .num_parents = 1,
5514             .flags = CLK_SET_RATE_PARENT,
5515             .ops = &clk_branch2_ops,
5516         },
5517     },
5518 };
5519 
5520 static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
5521     .halt_reg = 0x75020,
5522     .halt_check = BRANCH_HALT_DELAY,
5523     .clkr = {
5524         .enable_reg = 0x75020,
5525         .enable_mask = BIT(0),
5526         .hw.init = &(const struct clk_init_data) {
5527             .name = "gcc_ufs_card_rx_symbol_0_clk",
5528             .parent_hws = (const struct clk_hw*[]){
5529                 &gcc_ufs_card_rx_symbol_0_clk_src.clkr.hw,
5530             },
5531             .num_parents = 1,
5532             .flags = CLK_SET_RATE_PARENT,
5533             .ops = &clk_branch2_ops,
5534         },
5535     },
5536 };
5537 
5538 static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
5539     .halt_reg = 0x750b8,
5540     .halt_check = BRANCH_HALT_DELAY,
5541     .clkr = {
5542         .enable_reg = 0x750b8,
5543         .enable_mask = BIT(0),
5544         .hw.init = &(const struct clk_init_data) {
5545             .name = "gcc_ufs_card_rx_symbol_1_clk",
5546             .parent_hws = (const struct clk_hw*[]){
5547                 &gcc_ufs_card_rx_symbol_1_clk_src.clkr.hw,
5548             },
5549             .num_parents = 1,
5550             .flags = CLK_SET_RATE_PARENT,
5551             .ops = &clk_branch2_ops,
5552         },
5553     },
5554 };
5555 
5556 static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
5557     .halt_reg = 0x7501c,
5558     .halt_check = BRANCH_HALT_DELAY,
5559     .clkr = {
5560         .enable_reg = 0x7501c,
5561         .enable_mask = BIT(0),
5562         .hw.init = &(const struct clk_init_data) {
5563             .name = "gcc_ufs_card_tx_symbol_0_clk",
5564             .parent_hws = (const struct clk_hw*[]){
5565                 &gcc_ufs_card_tx_symbol_0_clk_src.clkr.hw,
5566             },
5567             .num_parents = 1,
5568             .flags = CLK_SET_RATE_PARENT,
5569             .ops = &clk_branch2_ops,
5570         },
5571     },
5572 };
5573 
5574 static struct clk_branch gcc_ufs_card_unipro_core_clk = {
5575     .halt_reg = 0x7505c,
5576     .halt_check = BRANCH_HALT_VOTED,
5577     .hwcg_reg = 0x7505c,
5578     .hwcg_bit = 1,
5579     .clkr = {
5580         .enable_reg = 0x7505c,
5581         .enable_mask = BIT(0),
5582         .hw.init = &(const struct clk_init_data) {
5583             .name = "gcc_ufs_card_unipro_core_clk",
5584             .parent_hws = (const struct clk_hw*[]){
5585                 &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5586             },
5587             .num_parents = 1,
5588             .flags = CLK_SET_RATE_PARENT,
5589             .ops = &clk_branch2_ops,
5590         },
5591     },
5592 };
5593 
5594 static struct clk_branch gcc_ufs_card_unipro_core_hw_ctl_clk = {
5595     .halt_reg = 0x7505c,
5596     .halt_check = BRANCH_HALT_VOTED,
5597     .hwcg_reg = 0x7505c,
5598     .hwcg_bit = 1,
5599     .clkr = {
5600         .enable_reg = 0x7505c,
5601         .enable_mask = BIT(1),
5602         .hw.init = &(const struct clk_init_data) {
5603             .name = "gcc_ufs_card_unipro_core_hw_ctl_clk",
5604             .parent_hws = (const struct clk_hw*[]){
5605                 &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5606             },
5607             .num_parents = 1,
5608             .flags = CLK_SET_RATE_PARENT,
5609             .ops = &clk_branch2_ops,
5610         },
5611     },
5612 };
5613 
5614 static struct clk_branch gcc_ufs_phy_ahb_clk = {
5615     .halt_reg = 0x77018,
5616     .halt_check = BRANCH_HALT_VOTED,
5617     .hwcg_reg = 0x77018,
5618     .hwcg_bit = 1,
5619     .clkr = {
5620         .enable_reg = 0x77018,
5621         .enable_mask = BIT(0),
5622         .hw.init = &(const struct clk_init_data) {
5623             .name = "gcc_ufs_phy_ahb_clk",
5624             .ops = &clk_branch2_ops,
5625         },
5626     },
5627 };
5628 
5629 static struct clk_branch gcc_ufs_phy_axi_clk = {
5630     .halt_reg = 0x77010,
5631     .halt_check = BRANCH_HALT_VOTED,
5632     .hwcg_reg = 0x77010,
5633     .hwcg_bit = 1,
5634     .clkr = {
5635         .enable_reg = 0x77010,
5636         .enable_mask = BIT(0),
5637         .hw.init = &(const struct clk_init_data) {
5638             .name = "gcc_ufs_phy_axi_clk",
5639             .parent_hws = (const struct clk_hw*[]){
5640                 &gcc_ufs_phy_axi_clk_src.clkr.hw,
5641             },
5642             .num_parents = 1,
5643             .flags = CLK_SET_RATE_PARENT,
5644             .ops = &clk_branch2_ops,
5645         },
5646     },
5647 };
5648 
5649 static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = {
5650     .halt_reg = 0x77010,
5651     .halt_check = BRANCH_HALT_VOTED,
5652     .hwcg_reg = 0x77010,
5653     .hwcg_bit = 1,
5654     .clkr = {
5655         .enable_reg = 0x77010,
5656         .enable_mask = BIT(1),
5657         .hw.init = &(const struct clk_init_data) {
5658             .name = "gcc_ufs_phy_axi_hw_ctl_clk",
5659             .parent_hws = (const struct clk_hw*[]){
5660                 &gcc_ufs_phy_axi_clk_src.clkr.hw,
5661             },
5662             .num_parents = 1,
5663             .flags = CLK_SET_RATE_PARENT,
5664             .ops = &clk_branch2_ops,
5665         },
5666     },
5667 };
5668 
5669 static struct clk_branch gcc_ufs_phy_ice_core_clk = {
5670     .halt_reg = 0x77064,
5671     .halt_check = BRANCH_HALT_VOTED,
5672     .hwcg_reg = 0x77064,
5673     .hwcg_bit = 1,
5674     .clkr = {
5675         .enable_reg = 0x77064,
5676         .enable_mask = BIT(0),
5677         .hw.init = &(const struct clk_init_data) {
5678             .name = "gcc_ufs_phy_ice_core_clk",
5679             .parent_hws = (const struct clk_hw*[]){
5680                 &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5681             },
5682             .num_parents = 1,
5683             .flags = CLK_SET_RATE_PARENT,
5684             .ops = &clk_branch2_ops,
5685         },
5686     },
5687 };
5688 
5689 static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = {
5690     .halt_reg = 0x77064,
5691     .halt_check = BRANCH_HALT_VOTED,
5692     .hwcg_reg = 0x77064,
5693     .hwcg_bit = 1,
5694     .clkr = {
5695         .enable_reg = 0x77064,
5696         .enable_mask = BIT(1),
5697         .hw.init = &(const struct clk_init_data) {
5698             .name = "gcc_ufs_phy_ice_core_hw_ctl_clk",
5699             .parent_hws = (const struct clk_hw*[]){
5700                 &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5701             },
5702             .num_parents = 1,
5703             .flags = CLK_SET_RATE_PARENT,
5704             .ops = &clk_branch2_ops,
5705         },
5706     },
5707 };
5708 
5709 static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
5710     .halt_reg = 0x7709c,
5711     .halt_check = BRANCH_HALT_VOTED,
5712     .hwcg_reg = 0x7709c,
5713     .hwcg_bit = 1,
5714     .clkr = {
5715         .enable_reg = 0x7709c,
5716         .enable_mask = BIT(0),
5717         .hw.init = &(const struct clk_init_data) {
5718             .name = "gcc_ufs_phy_phy_aux_clk",
5719             .parent_hws = (const struct clk_hw*[]){
5720                 &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5721             },
5722             .num_parents = 1,
5723             .flags = CLK_SET_RATE_PARENT,
5724             .ops = &clk_branch2_ops,
5725         },
5726     },
5727 };
5728 
5729 static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = {
5730     .halt_reg = 0x7709c,
5731     .halt_check = BRANCH_HALT_VOTED,
5732     .hwcg_reg = 0x7709c,
5733     .hwcg_bit = 1,
5734     .clkr = {
5735         .enable_reg = 0x7709c,
5736         .enable_mask = BIT(1),
5737         .hw.init = &(const struct clk_init_data) {
5738             .name = "gcc_ufs_phy_phy_aux_hw_ctl_clk",
5739             .parent_hws = (const struct clk_hw*[]){
5740                 &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5741             },
5742             .num_parents = 1,
5743             .flags = CLK_SET_RATE_PARENT,
5744             .ops = &clk_branch2_ops,
5745         },
5746     },
5747 };
5748 
5749 static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
5750     .halt_reg = 0x77020,
5751     .halt_check = BRANCH_HALT_DELAY,
5752     .clkr = {
5753         .enable_reg = 0x77020,
5754         .enable_mask = BIT(0),
5755         .hw.init = &(const struct clk_init_data) {
5756             .name = "gcc_ufs_phy_rx_symbol_0_clk",
5757             .parent_hws = (const struct clk_hw*[]){
5758                 &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
5759             },
5760             .num_parents = 1,
5761             .flags = CLK_SET_RATE_PARENT,
5762             .ops = &clk_branch2_ops,
5763         },
5764     },
5765 };
5766 
5767 static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
5768     .halt_reg = 0x770b8,
5769     .halt_check = BRANCH_HALT_DELAY,
5770     .clkr = {
5771         .enable_reg = 0x770b8,
5772         .enable_mask = BIT(0),
5773         .hw.init = &(const struct clk_init_data) {
5774             .name = "gcc_ufs_phy_rx_symbol_1_clk",
5775             .parent_hws = (const struct clk_hw*[]){
5776                 &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
5777             },
5778             .num_parents = 1,
5779             .flags = CLK_SET_RATE_PARENT,
5780             .ops = &clk_branch2_ops,
5781         },
5782     },
5783 };
5784 
5785 static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
5786     .halt_reg = 0x7701c,
5787     .halt_check = BRANCH_HALT_DELAY,
5788     .clkr = {
5789         .enable_reg = 0x7701c,
5790         .enable_mask = BIT(0),
5791         .hw.init = &(const struct clk_init_data) {
5792             .name = "gcc_ufs_phy_tx_symbol_0_clk",
5793             .parent_hws = (const struct clk_hw*[]){
5794                 &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
5795             },
5796             .num_parents = 1,
5797             .flags = CLK_SET_RATE_PARENT,
5798             .ops = &clk_branch2_ops,
5799         },
5800     },
5801 };
5802 
5803 static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
5804     .halt_reg = 0x7705c,
5805     .halt_check = BRANCH_HALT_VOTED,
5806     .hwcg_reg = 0x7705c,
5807     .hwcg_bit = 1,
5808     .clkr = {
5809         .enable_reg = 0x7705c,
5810         .enable_mask = BIT(0),
5811         .hw.init = &(const struct clk_init_data) {
5812             .name = "gcc_ufs_phy_unipro_core_clk",
5813             .parent_hws = (const struct clk_hw*[]){
5814                 &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5815             },
5816             .num_parents = 1,
5817             .flags = CLK_SET_RATE_PARENT,
5818             .ops = &clk_branch2_ops,
5819         },
5820     },
5821 };
5822 
5823 static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = {
5824     .halt_reg = 0x7705c,
5825     .halt_check = BRANCH_HALT_VOTED,
5826     .hwcg_reg = 0x7705c,
5827     .hwcg_bit = 1,
5828     .clkr = {
5829         .enable_reg = 0x7705c,
5830         .enable_mask = BIT(1),
5831         .hw.init = &(const struct clk_init_data) {
5832             .name = "gcc_ufs_phy_unipro_core_hw_ctl_clk",
5833             .parent_hws = (const struct clk_hw*[]){
5834                 &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5835             },
5836             .num_parents = 1,
5837             .flags = CLK_SET_RATE_PARENT,
5838             .ops = &clk_branch2_ops,
5839         },
5840     },
5841 };
5842 
5843 static struct clk_branch gcc_ufs_ref_clkref_clk = {
5844     .halt_reg = 0x8c058,
5845     .halt_check = BRANCH_HALT,
5846     .clkr = {
5847         .enable_reg = 0x8c058,
5848         .enable_mask = BIT(0),
5849         .hw.init = &(const struct clk_init_data) {
5850             .name = "gcc_ufs_ref_clkref_clk",
5851             .ops = &clk_branch2_ops,
5852         },
5853     },
5854 };
5855 
5856 static struct clk_branch gcc_usb2_hs0_clkref_clk = {
5857     .halt_reg = 0x8c044,
5858     .halt_check = BRANCH_HALT,
5859     .clkr = {
5860         .enable_reg = 0x8c044,
5861         .enable_mask = BIT(0),
5862         .hw.init = &(const struct clk_init_data) {
5863             .name = "gcc_usb2_hs0_clkref_clk",
5864             .ops = &clk_branch2_ops,
5865         },
5866     },
5867 };
5868 
5869 static struct clk_branch gcc_usb2_hs1_clkref_clk = {
5870     .halt_reg = 0x8c048,
5871     .halt_check = BRANCH_HALT,
5872     .clkr = {
5873         .enable_reg = 0x8c048,
5874         .enable_mask = BIT(0),
5875         .hw.init = &(const struct clk_init_data) {
5876             .name = "gcc_usb2_hs1_clkref_clk",
5877             .ops = &clk_branch2_ops,
5878         },
5879     },
5880 };
5881 
5882 static struct clk_branch gcc_usb2_hs2_clkref_clk = {
5883     .halt_reg = 0x8c04c,
5884     .halt_check = BRANCH_HALT,
5885     .clkr = {
5886         .enable_reg = 0x8c04c,
5887         .enable_mask = BIT(0),
5888         .hw.init = &(const struct clk_init_data) {
5889             .name = "gcc_usb2_hs2_clkref_clk",
5890             .ops = &clk_branch2_ops,
5891         },
5892     },
5893 };
5894 
5895 static struct clk_branch gcc_usb2_hs3_clkref_clk = {
5896     .halt_reg = 0x8c050,
5897     .halt_check = BRANCH_HALT,
5898     .clkr = {
5899         .enable_reg = 0x8c050,
5900         .enable_mask = BIT(0),
5901         .hw.init = &(const struct clk_init_data) {
5902             .name = "gcc_usb2_hs3_clkref_clk",
5903             .ops = &clk_branch2_ops,
5904         },
5905     },
5906 };
5907 
5908 static struct clk_branch gcc_usb30_mp_master_clk = {
5909     .halt_reg = 0xab010,
5910     .halt_check = BRANCH_HALT,
5911     .clkr = {
5912         .enable_reg = 0xab010,
5913         .enable_mask = BIT(0),
5914         .hw.init = &(const struct clk_init_data) {
5915             .name = "gcc_usb30_mp_master_clk",
5916             .parent_hws = (const struct clk_hw*[]){
5917                 &gcc_usb30_mp_master_clk_src.clkr.hw,
5918             },
5919             .num_parents = 1,
5920             .flags = CLK_SET_RATE_PARENT,
5921             .ops = &clk_branch2_ops,
5922         },
5923     },
5924 };
5925 
5926 static struct clk_branch gcc_usb30_mp_mock_utmi_clk = {
5927     .halt_reg = 0xab01c,
5928     .halt_check = BRANCH_HALT,
5929     .clkr = {
5930         .enable_reg = 0xab01c,
5931         .enable_mask = BIT(0),
5932         .hw.init = &(const struct clk_init_data) {
5933             .name = "gcc_usb30_mp_mock_utmi_clk",
5934             .parent_hws = (const struct clk_hw*[]){
5935                 &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr.hw,
5936             },
5937             .num_parents = 1,
5938             .flags = CLK_SET_RATE_PARENT,
5939             .ops = &clk_branch2_ops,
5940         },
5941     },
5942 };
5943 
5944 static struct clk_branch gcc_usb30_mp_sleep_clk = {
5945     .halt_reg = 0xab018,
5946     .halt_check = BRANCH_HALT,
5947     .clkr = {
5948         .enable_reg = 0xab018,
5949         .enable_mask = BIT(0),
5950         .hw.init = &(const struct clk_init_data) {
5951             .name = "gcc_usb30_mp_sleep_clk",
5952             .ops = &clk_branch2_ops,
5953         },
5954     },
5955 };
5956 
5957 static struct clk_branch gcc_usb30_prim_master_clk = {
5958     .halt_reg = 0xf010,
5959     .halt_check = BRANCH_HALT,
5960     .clkr = {
5961         .enable_reg = 0xf010,
5962         .enable_mask = BIT(0),
5963         .hw.init = &(const struct clk_init_data) {
5964             .name = "gcc_usb30_prim_master_clk",
5965             .parent_hws = (const struct clk_hw*[]){
5966                 &gcc_usb30_prim_master_clk_src.clkr.hw,
5967             },
5968             .num_parents = 1,
5969             .flags = CLK_SET_RATE_PARENT,
5970             .ops = &clk_branch2_ops,
5971         },
5972     },
5973 };
5974 
5975 static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
5976     .halt_reg = 0xf01c,
5977     .halt_check = BRANCH_HALT,
5978     .clkr = {
5979         .enable_reg = 0xf01c,
5980         .enable_mask = BIT(0),
5981         .hw.init = &(const struct clk_init_data) {
5982             .name = "gcc_usb30_prim_mock_utmi_clk",
5983             .parent_hws = (const struct clk_hw*[]){
5984                 &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
5985             },
5986             .num_parents = 1,
5987             .flags = CLK_SET_RATE_PARENT,
5988             .ops = &clk_branch2_ops,
5989         },
5990     },
5991 };
5992 
5993 static struct clk_branch gcc_usb30_prim_sleep_clk = {
5994     .halt_reg = 0xf018,
5995     .halt_check = BRANCH_HALT,
5996     .clkr = {
5997         .enable_reg = 0xf018,
5998         .enable_mask = BIT(0),
5999         .hw.init = &(const struct clk_init_data) {
6000             .name = "gcc_usb30_prim_sleep_clk",
6001             .ops = &clk_branch2_ops,
6002         },
6003     },
6004 };
6005 
6006 static struct clk_branch gcc_usb30_sec_master_clk = {
6007     .halt_reg = 0x10010,
6008     .halt_check = BRANCH_HALT,
6009     .clkr = {
6010         .enable_reg = 0x10010,
6011         .enable_mask = BIT(0),
6012         .hw.init = &(const struct clk_init_data) {
6013             .name = "gcc_usb30_sec_master_clk",
6014             .parent_hws = (const struct clk_hw*[]){
6015                 &gcc_usb30_sec_master_clk_src.clkr.hw,
6016             },
6017             .num_parents = 1,
6018             .flags = CLK_SET_RATE_PARENT,
6019             .ops = &clk_branch2_ops,
6020         },
6021     },
6022 };
6023 
6024 static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
6025     .halt_reg = 0x1001c,
6026     .halt_check = BRANCH_HALT,
6027     .clkr = {
6028         .enable_reg = 0x1001c,
6029         .enable_mask = BIT(0),
6030         .hw.init = &(const struct clk_init_data) {
6031             .name = "gcc_usb30_sec_mock_utmi_clk",
6032             .parent_hws = (const struct clk_hw*[]){
6033                 &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
6034             },
6035             .num_parents = 1,
6036             .flags = CLK_SET_RATE_PARENT,
6037             .ops = &clk_branch2_ops,
6038         },
6039     },
6040 };
6041 
6042 static struct clk_branch gcc_usb30_sec_sleep_clk = {
6043     .halt_reg = 0x10018,
6044     .halt_check = BRANCH_HALT,
6045     .clkr = {
6046         .enable_reg = 0x10018,
6047         .enable_mask = BIT(0),
6048         .hw.init = &(const struct clk_init_data) {
6049             .name = "gcc_usb30_sec_sleep_clk",
6050             .ops = &clk_branch2_ops,
6051         },
6052     },
6053 };
6054 
6055 static struct clk_branch gcc_usb3_mp0_clkref_clk = {
6056     .halt_reg = 0x8c03c,
6057     .halt_check = BRANCH_HALT,
6058     .clkr = {
6059         .enable_reg = 0x8c03c,
6060         .enable_mask = BIT(0),
6061         .hw.init = &(const struct clk_init_data) {
6062             .name = "gcc_usb3_mp0_clkref_clk",
6063             .ops = &clk_branch2_ops,
6064         },
6065     },
6066 };
6067 
6068 static struct clk_branch gcc_usb3_mp1_clkref_clk = {
6069     .halt_reg = 0x8c040,
6070     .halt_check = BRANCH_HALT,
6071     .clkr = {
6072         .enable_reg = 0x8c040,
6073         .enable_mask = BIT(0),
6074         .hw.init = &(const struct clk_init_data) {
6075             .name = "gcc_usb3_mp1_clkref_clk",
6076             .ops = &clk_branch2_ops,
6077         },
6078     },
6079 };
6080 
6081 static struct clk_branch gcc_usb3_mp_phy_aux_clk = {
6082     .halt_reg = 0xab054,
6083     .halt_check = BRANCH_HALT,
6084     .clkr = {
6085         .enable_reg = 0xab054,
6086         .enable_mask = BIT(0),
6087         .hw.init = &(const struct clk_init_data) {
6088             .name = "gcc_usb3_mp_phy_aux_clk",
6089             .parent_hws = (const struct clk_hw*[]){
6090                 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6091             },
6092             .num_parents = 1,
6093             .flags = CLK_SET_RATE_PARENT,
6094             .ops = &clk_branch2_ops,
6095         },
6096     },
6097 };
6098 
6099 static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = {
6100     .halt_reg = 0xab058,
6101     .halt_check = BRANCH_HALT,
6102     .clkr = {
6103         .enable_reg = 0xab058,
6104         .enable_mask = BIT(0),
6105         .hw.init = &(const struct clk_init_data) {
6106             .name = "gcc_usb3_mp_phy_com_aux_clk",
6107             .parent_hws = (const struct clk_hw*[]){
6108                 &gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6109             },
6110             .num_parents = 1,
6111             .flags = CLK_SET_RATE_PARENT,
6112             .ops = &clk_branch2_ops,
6113         },
6114     },
6115 };
6116 
6117 static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = {
6118     .halt_reg = 0xab05c,
6119     .halt_check = BRANCH_HALT_DELAY,
6120     .clkr = {
6121         .enable_reg = 0xab05c,
6122         .enable_mask = BIT(0),
6123         .hw.init = &(const struct clk_init_data) {
6124             .name = "gcc_usb3_mp_phy_pipe_0_clk",
6125             .parent_hws = (const struct clk_hw*[]){
6126                 &gcc_usb3_mp_phy_pipe_0_clk_src.clkr.hw,
6127             },
6128             .num_parents = 1,
6129             .flags = CLK_SET_RATE_PARENT,
6130             .ops = &clk_branch2_ops,
6131         },
6132     },
6133 };
6134 
6135 static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = {
6136     .halt_reg = 0xab064,
6137     .halt_check = BRANCH_HALT_DELAY,
6138     .clkr = {
6139         .enable_reg = 0xab064,
6140         .enable_mask = BIT(0),
6141         .hw.init = &(const struct clk_init_data) {
6142             .name = "gcc_usb3_mp_phy_pipe_1_clk",
6143             .parent_hws = (const struct clk_hw*[]){
6144                 &gcc_usb3_mp_phy_pipe_1_clk_src.clkr.hw,
6145             },
6146             .num_parents = 1,
6147             .flags = CLK_SET_RATE_PARENT,
6148             .ops = &clk_branch2_ops,
6149         },
6150     },
6151 };
6152 
6153 static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
6154     .halt_reg = 0xf054,
6155     .halt_check = BRANCH_HALT,
6156     .clkr = {
6157         .enable_reg = 0xf054,
6158         .enable_mask = BIT(0),
6159         .hw.init = &(const struct clk_init_data) {
6160             .name = "gcc_usb3_prim_phy_aux_clk",
6161             .parent_hws = (const struct clk_hw*[]){
6162                 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6163             },
6164             .num_parents = 1,
6165             .flags = CLK_SET_RATE_PARENT,
6166             .ops = &clk_branch2_ops,
6167         },
6168     },
6169 };
6170 
6171 static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
6172     .halt_reg = 0xf058,
6173     .halt_check = BRANCH_HALT,
6174     .clkr = {
6175         .enable_reg = 0xf058,
6176         .enable_mask = BIT(0),
6177         .hw.init = &(const struct clk_init_data) {
6178             .name = "gcc_usb3_prim_phy_com_aux_clk",
6179             .parent_hws = (const struct clk_hw*[]){
6180                 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6181             },
6182             .num_parents = 1,
6183             .flags = CLK_SET_RATE_PARENT,
6184             .ops = &clk_branch2_ops,
6185         },
6186     },
6187 };
6188 
6189 static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
6190     .halt_reg = 0xf05c,
6191     .halt_check = BRANCH_HALT_DELAY,
6192     .hwcg_reg = 0xf05c,
6193     .hwcg_bit = 1,
6194     .clkr = {
6195         .enable_reg = 0xf05c,
6196         .enable_mask = BIT(0),
6197         .hw.init = &(const struct clk_init_data) {
6198             .name = "gcc_usb3_prim_phy_pipe_clk",
6199             .parent_hws = (const struct clk_hw*[]){
6200                 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6201             },
6202             .num_parents = 1,
6203             .flags = CLK_SET_RATE_PARENT,
6204             .ops = &clk_branch2_ops,
6205         },
6206     },
6207 };
6208 
6209 static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
6210     .halt_reg = 0x10054,
6211     .halt_check = BRANCH_HALT,
6212     .clkr = {
6213         .enable_reg = 0x10054,
6214         .enable_mask = BIT(0),
6215         .hw.init = &(const struct clk_init_data) {
6216             .name = "gcc_usb3_sec_phy_aux_clk",
6217             .parent_hws = (const struct clk_hw*[]){
6218                 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6219             },
6220             .num_parents = 1,
6221             .flags = CLK_SET_RATE_PARENT,
6222             .ops = &clk_branch2_ops,
6223         },
6224     },
6225 };
6226 
6227 static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
6228     .halt_reg = 0x10058,
6229     .halt_check = BRANCH_HALT,
6230     .clkr = {
6231         .enable_reg = 0x10058,
6232         .enable_mask = BIT(0),
6233         .hw.init = &(const struct clk_init_data) {
6234             .name = "gcc_usb3_sec_phy_com_aux_clk",
6235             .parent_hws = (const struct clk_hw*[]){
6236                 &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6237             },
6238             .num_parents = 1,
6239             .flags = CLK_SET_RATE_PARENT,
6240             .ops = &clk_branch2_ops,
6241         },
6242     },
6243 };
6244 
6245 static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
6246     .halt_reg = 0x1005c,
6247     .halt_check = BRANCH_HALT_DELAY,
6248     .hwcg_reg = 0x1005c,
6249     .hwcg_bit = 1,
6250     .clkr = {
6251         .enable_reg = 0x1005c,
6252         .enable_mask = BIT(0),
6253         .hw.init = &(const struct clk_init_data) {
6254             .name = "gcc_usb3_sec_phy_pipe_clk",
6255             .parent_hws = (const struct clk_hw*[]){
6256                 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6257             },
6258             .num_parents = 1,
6259             .flags = CLK_SET_RATE_PARENT,
6260             .ops = &clk_branch2_ops,
6261         },
6262     },
6263 };
6264 
6265 static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
6266     .halt_reg = 0xb808c,
6267     .halt_check = BRANCH_HALT_VOTED,
6268     .hwcg_reg = 0xb808c,
6269     .hwcg_bit = 1,
6270     .clkr = {
6271         .enable_reg = 0xb808c,
6272         .enable_mask = BIT(0),
6273         .hw.init = &(const struct clk_init_data) {
6274             .name = "gcc_usb4_1_cfg_ahb_clk",
6275             .ops = &clk_branch2_ops,
6276         },
6277     },
6278 };
6279 
6280 static struct clk_branch gcc_usb4_1_dp_clk = {
6281     .halt_reg = 0xb8048,
6282     .halt_check = BRANCH_HALT,
6283     .clkr = {
6284         .enable_reg = 0xb8048,
6285         .enable_mask = BIT(0),
6286         .hw.init = &(const struct clk_init_data) {
6287             .name = "gcc_usb4_1_dp_clk",
6288             .parent_hws = (const struct clk_hw*[]){
6289                 &gcc_usb4_1_phy_dp_clk_src.clkr.hw,
6290             },
6291             .num_parents = 1,
6292             .flags = CLK_SET_RATE_PARENT,
6293             .ops = &clk_branch2_ops,
6294         },
6295     },
6296 };
6297 
6298 static struct clk_branch gcc_usb4_1_master_clk = {
6299     .halt_reg = 0xb8010,
6300     .halt_check = BRANCH_HALT,
6301     .clkr = {
6302         .enable_reg = 0xb8010,
6303         .enable_mask = BIT(0),
6304         .hw.init = &(const struct clk_init_data) {
6305             .name = "gcc_usb4_1_master_clk",
6306             .parent_hws = (const struct clk_hw*[]){
6307                 &gcc_usb4_1_master_clk_src.clkr.hw,
6308             },
6309             .num_parents = 1,
6310             .flags = CLK_SET_RATE_PARENT,
6311             .ops = &clk_branch2_ops,
6312         },
6313     },
6314 };
6315 
6316 static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
6317     .halt_reg = 0xb80b4,
6318     .halt_check = BRANCH_HALT_DELAY,
6319     .clkr = {
6320         .enable_reg = 0xb80b4,
6321         .enable_mask = BIT(0),
6322         .hw.init = &(const struct clk_init_data) {
6323             .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
6324             .parent_hws = (const struct clk_hw*[]){
6325                 &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
6326             },
6327             .num_parents = 1,
6328             .flags = CLK_SET_RATE_PARENT,
6329             .ops = &clk_branch2_ops,
6330         },
6331     },
6332 };
6333 
6334 static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
6335     .halt_reg = 0xb8038,
6336     .halt_check = BRANCH_HALT_DELAY,
6337     .clkr = {
6338         .enable_reg = 0x52020,
6339         .enable_mask = BIT(19),
6340         .hw.init = &(const struct clk_init_data) {
6341             .name = "gcc_usb4_1_phy_pcie_pipe_clk",
6342             .parent_hws = (const struct clk_hw*[]){
6343                 &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
6344             },
6345             .num_parents = 1,
6346             .flags = CLK_SET_RATE_PARENT,
6347             .ops = &clk_branch2_ops,
6348         },
6349     },
6350 };
6351 
6352 static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
6353     .halt_reg = 0xb8094,
6354     .halt_check = BRANCH_HALT,
6355     .clkr = {
6356         .enable_reg = 0xb8094,
6357         .enable_mask = BIT(0),
6358         .hw.init = &(const struct clk_init_data) {
6359             .name = "gcc_usb4_1_phy_rx0_clk",
6360             .parent_hws = (const struct clk_hw*[]){
6361                 &gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
6362             },
6363             .num_parents = 1,
6364             .flags = CLK_SET_RATE_PARENT,
6365             .ops = &clk_branch2_ops,
6366         },
6367     },
6368 };
6369 
6370 static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
6371     .halt_reg = 0xb80a0,
6372     .halt_check = BRANCH_HALT,
6373     .clkr = {
6374         .enable_reg = 0xb80a0,
6375         .enable_mask = BIT(0),
6376         .hw.init = &(const struct clk_init_data) {
6377             .name = "gcc_usb4_1_phy_rx1_clk",
6378             .parent_hws = (const struct clk_hw*[]){
6379                 &gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
6380             },
6381             .num_parents = 1,
6382             .flags = CLK_SET_RATE_PARENT,
6383             .ops = &clk_branch2_ops,
6384         },
6385     },
6386 };
6387 
6388 static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
6389     .halt_reg = 0xb8088,
6390     .halt_check = BRANCH_HALT_DELAY,
6391     .hwcg_reg = 0xb8088,
6392     .hwcg_bit = 1,
6393     .clkr = {
6394         .enable_reg = 0xb8088,
6395         .enable_mask = BIT(0),
6396         .hw.init = &(const struct clk_init_data) {
6397             .name = "gcc_usb4_1_phy_usb_pipe_clk",
6398             .parent_hws = (const struct clk_hw*[]){
6399                 &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6400             },
6401             .num_parents = 1,
6402             .flags = CLK_SET_RATE_PARENT,
6403             .ops = &clk_branch2_ops,
6404         },
6405     },
6406 };
6407 
6408 static struct clk_branch gcc_usb4_1_sb_if_clk = {
6409     .halt_reg = 0xb8034,
6410     .halt_check = BRANCH_HALT,
6411     .clkr = {
6412         .enable_reg = 0xb8034,
6413         .enable_mask = BIT(0),
6414         .hw.init = &(const struct clk_init_data) {
6415             .name = "gcc_usb4_1_sb_if_clk",
6416             .parent_hws = (const struct clk_hw*[]){
6417                 &gcc_usb4_1_sb_if_clk_src.clkr.hw,
6418             },
6419             .num_parents = 1,
6420             .flags = CLK_SET_RATE_PARENT,
6421             .ops = &clk_branch2_ops,
6422         },
6423     },
6424 };
6425 
6426 static struct clk_branch gcc_usb4_1_sys_clk = {
6427     .halt_reg = 0xb8040,
6428     .halt_check = BRANCH_HALT,
6429     .clkr = {
6430         .enable_reg = 0xb8040,
6431         .enable_mask = BIT(0),
6432         .hw.init = &(const struct clk_init_data) {
6433             .name = "gcc_usb4_1_sys_clk",
6434             .parent_hws = (const struct clk_hw*[]){
6435                 &gcc_usb4_1_phy_sys_clk_src.clkr.hw,
6436             },
6437             .num_parents = 1,
6438             .flags = CLK_SET_RATE_PARENT,
6439             .ops = &clk_branch2_ops,
6440         },
6441     },
6442 };
6443 
6444 static struct clk_branch gcc_usb4_1_tmu_clk = {
6445     .halt_reg = 0xb806c,
6446     .halt_check = BRANCH_HALT_VOTED,
6447     .hwcg_reg = 0xb806c,
6448     .hwcg_bit = 1,
6449     .clkr = {
6450         .enable_reg = 0xb806c,
6451         .enable_mask = BIT(0),
6452         .hw.init = &(const struct clk_init_data) {
6453             .name = "gcc_usb4_1_tmu_clk",
6454             .parent_hws = (const struct clk_hw*[]){
6455                 &gcc_usb4_1_tmu_clk_src.clkr.hw,
6456             },
6457             .num_parents = 1,
6458             .flags = CLK_SET_RATE_PARENT,
6459             .ops = &clk_branch2_ops,
6460         },
6461     },
6462 };
6463 
6464 static struct clk_branch gcc_usb4_cfg_ahb_clk = {
6465     .halt_reg = 0x2a08c,
6466     .halt_check = BRANCH_HALT_VOTED,
6467     .hwcg_reg = 0x2a08c,
6468     .hwcg_bit = 1,
6469     .clkr = {
6470         .enable_reg = 0x2a08c,
6471         .enable_mask = BIT(0),
6472         .hw.init = &(const struct clk_init_data) {
6473             .name = "gcc_usb4_cfg_ahb_clk",
6474             .ops = &clk_branch2_ops,
6475         },
6476     },
6477 };
6478 
6479 static struct clk_branch gcc_usb4_clkref_clk = {
6480     .halt_reg = 0x8c010,
6481     .halt_check = BRANCH_HALT,
6482     .clkr = {
6483         .enable_reg = 0x8c010,
6484         .enable_mask = BIT(0),
6485         .hw.init = &(const struct clk_init_data) {
6486             .name = "gcc_usb4_clkref_clk",
6487             .ops = &clk_branch2_ops,
6488         },
6489     },
6490 };
6491 
6492 static struct clk_branch gcc_usb4_dp_clk = {
6493     .halt_reg = 0x2a048,
6494     .halt_check = BRANCH_HALT,
6495     .clkr = {
6496         .enable_reg = 0x2a048,
6497         .enable_mask = BIT(0),
6498         .hw.init = &(const struct clk_init_data) {
6499             .name = "gcc_usb4_dp_clk",
6500             .parent_hws = (const struct clk_hw*[]){
6501                 &gcc_usb4_phy_dp_clk_src.clkr.hw,
6502             },
6503             .num_parents = 1,
6504             .flags = CLK_SET_RATE_PARENT,
6505             .ops = &clk_branch2_ops,
6506         },
6507     },
6508 };
6509 
6510 static struct clk_branch gcc_usb4_eud_clkref_clk = {
6511     .halt_reg = 0x8c02c,
6512     .halt_check = BRANCH_HALT,
6513     .clkr = {
6514         .enable_reg = 0x8c02c,
6515         .enable_mask = BIT(0),
6516         .hw.init = &(const struct clk_init_data) {
6517             .name = "gcc_usb4_eud_clkref_clk",
6518             .ops = &clk_branch2_ops,
6519         },
6520     },
6521 };
6522 
6523 static struct clk_branch gcc_usb4_master_clk = {
6524     .halt_reg = 0x2a010,
6525     .halt_check = BRANCH_HALT,
6526     .clkr = {
6527         .enable_reg = 0x2a010,
6528         .enable_mask = BIT(0),
6529         .hw.init = &(const struct clk_init_data) {
6530             .name = "gcc_usb4_master_clk",
6531             .parent_hws = (const struct clk_hw*[]){
6532                 &gcc_usb4_master_clk_src.clkr.hw,
6533             },
6534             .num_parents = 1,
6535             .flags = CLK_SET_RATE_PARENT,
6536             .ops = &clk_branch2_ops,
6537         },
6538     },
6539 };
6540 
6541 static struct clk_branch gcc_usb4_phy_p2rr2p_pipe_clk = {
6542     .halt_reg = 0x2a0b4,
6543     .halt_check = BRANCH_HALT_DELAY,
6544     .clkr = {
6545         .enable_reg = 0x2a0b4,
6546         .enable_mask = BIT(0),
6547         .hw.init = &(const struct clk_init_data) {
6548             .name = "gcc_usb4_phy_p2rr2p_pipe_clk",
6549             .parent_hws = (const struct clk_hw*[]){
6550                 &gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr.hw,
6551             },
6552             .num_parents = 1,
6553             .flags = CLK_SET_RATE_PARENT,
6554             .ops = &clk_branch2_ops,
6555         },
6556     },
6557 };
6558 
6559 static struct clk_branch gcc_usb4_phy_pcie_pipe_clk = {
6560     .halt_reg = 0x2a038,
6561     .halt_check = BRANCH_HALT_DELAY,
6562     .clkr = {
6563         .enable_reg = 0x52020,
6564         .enable_mask = BIT(18),
6565         .hw.init = &(const struct clk_init_data) {
6566             .name = "gcc_usb4_phy_pcie_pipe_clk",
6567             .parent_hws = (const struct clk_hw*[]){
6568                 &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
6569             },
6570             .num_parents = 1,
6571             .flags = CLK_SET_RATE_PARENT,
6572             .ops = &clk_branch2_ops,
6573         },
6574     },
6575 };
6576 
6577 static struct clk_branch gcc_usb4_phy_rx0_clk = {
6578     .halt_reg = 0x2a094,
6579     .halt_check = BRANCH_HALT,
6580     .clkr = {
6581         .enable_reg = 0x2a094,
6582         .enable_mask = BIT(0),
6583         .hw.init = &(const struct clk_init_data) {
6584             .name = "gcc_usb4_phy_rx0_clk",
6585             .parent_hws = (const struct clk_hw*[]){
6586                 &gcc_usb4_phy_rx0_clk_src.clkr.hw,
6587             },
6588             .num_parents = 1,
6589             .flags = CLK_SET_RATE_PARENT,
6590             .ops = &clk_branch2_ops,
6591         },
6592     },
6593 };
6594 
6595 static struct clk_branch gcc_usb4_phy_rx1_clk = {
6596     .halt_reg = 0x2a0a0,
6597     .halt_check = BRANCH_HALT,
6598     .clkr = {
6599         .enable_reg = 0x2a0a0,
6600         .enable_mask = BIT(0),
6601         .hw.init = &(const struct clk_init_data) {
6602             .name = "gcc_usb4_phy_rx1_clk",
6603             .parent_hws = (const struct clk_hw*[]){
6604                 &gcc_usb4_phy_rx1_clk_src.clkr.hw,
6605             },
6606             .num_parents = 1,
6607             .flags = CLK_SET_RATE_PARENT,
6608             .ops = &clk_branch2_ops,
6609         },
6610     },
6611 };
6612 
6613 static struct clk_branch gcc_usb4_phy_usb_pipe_clk = {
6614     .halt_reg = 0x2a088,
6615     .halt_check = BRANCH_HALT_DELAY,
6616     .hwcg_reg = 0x2a088,
6617     .hwcg_bit = 1,
6618     .clkr = {
6619         .enable_reg = 0x2a088,
6620         .enable_mask = BIT(0),
6621         .hw.init = &(const struct clk_init_data) {
6622             .name = "gcc_usb4_phy_usb_pipe_clk",
6623             .parent_hws = (const struct clk_hw*[]){
6624                 &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6625             },
6626             .num_parents = 1,
6627             .flags = CLK_SET_RATE_PARENT,
6628             .ops = &clk_branch2_ops,
6629         },
6630     },
6631 };
6632 
6633 static struct clk_branch gcc_usb4_sb_if_clk = {
6634     .halt_reg = 0x2a034,
6635     .halt_check = BRANCH_HALT,
6636     .clkr = {
6637         .enable_reg = 0x2a034,
6638         .enable_mask = BIT(0),
6639         .hw.init = &(const struct clk_init_data) {
6640             .name = "gcc_usb4_sb_if_clk",
6641             .parent_hws = (const struct clk_hw*[]){
6642                 &gcc_usb4_sb_if_clk_src.clkr.hw,
6643             },
6644             .num_parents = 1,
6645             .flags = CLK_SET_RATE_PARENT,
6646             .ops = &clk_branch2_ops,
6647         },
6648     },
6649 };
6650 
6651 static struct clk_branch gcc_usb4_sys_clk = {
6652     .halt_reg = 0x2a040,
6653     .halt_check = BRANCH_HALT,
6654     .clkr = {
6655         .enable_reg = 0x2a040,
6656         .enable_mask = BIT(0),
6657         .hw.init = &(const struct clk_init_data) {
6658             .name = "gcc_usb4_sys_clk",
6659             .parent_hws = (const struct clk_hw*[]){
6660                 &gcc_usb4_phy_sys_clk_src.clkr.hw,
6661             },
6662             .num_parents = 1,
6663             .flags = CLK_SET_RATE_PARENT,
6664             .ops = &clk_branch2_ops,
6665         },
6666     },
6667 };
6668 
6669 static struct clk_branch gcc_usb4_tmu_clk = {
6670     .halt_reg = 0x2a06c,
6671     .halt_check = BRANCH_HALT_VOTED,
6672     .hwcg_reg = 0x2a06c,
6673     .hwcg_bit = 1,
6674     .clkr = {
6675         .enable_reg = 0x2a06c,
6676         .enable_mask = BIT(0),
6677         .hw.init = &(const struct clk_init_data) {
6678             .name = "gcc_usb4_tmu_clk",
6679             .parent_hws = (const struct clk_hw*[]){
6680                 &gcc_usb4_tmu_clk_src.clkr.hw,
6681             },
6682             .num_parents = 1,
6683             .flags = CLK_SET_RATE_PARENT,
6684             .ops = &clk_branch2_ops,
6685         },
6686     },
6687 };
6688 
6689 static struct clk_branch gcc_video_axi0_clk = {
6690     .halt_reg = 0x28010,
6691     .halt_check = BRANCH_HALT_SKIP,
6692     .hwcg_reg = 0x28010,
6693     .hwcg_bit = 1,
6694     .clkr = {
6695         .enable_reg = 0x28010,
6696         .enable_mask = BIT(0),
6697         .hw.init = &(const struct clk_init_data) {
6698             .name = "gcc_video_axi0_clk",
6699             .ops = &clk_branch2_ops,
6700         },
6701     },
6702 };
6703 
6704 static struct clk_branch gcc_video_axi1_clk = {
6705     .halt_reg = 0x28018,
6706     .halt_check = BRANCH_HALT_SKIP,
6707     .hwcg_reg = 0x28018,
6708     .hwcg_bit = 1,
6709     .clkr = {
6710         .enable_reg = 0x28018,
6711         .enable_mask = BIT(0),
6712         .hw.init = &(const struct clk_init_data) {
6713             .name = "gcc_video_axi1_clk",
6714             .ops = &clk_branch2_ops,
6715         },
6716     },
6717 };
6718 
6719 static struct clk_branch gcc_video_cvp_throttle_clk = {
6720     .halt_reg = 0x28024,
6721     .halt_check = BRANCH_HALT_SKIP,
6722     .hwcg_reg = 0x28024,
6723     .hwcg_bit = 1,
6724     .clkr = {
6725         .enable_reg = 0x28024,
6726         .enable_mask = BIT(0),
6727         .hw.init = &(const struct clk_init_data) {
6728             .name = "gcc_video_cvp_throttle_clk",
6729             .ops = &clk_branch2_ops,
6730         },
6731     },
6732 };
6733 
6734 static struct clk_branch gcc_video_vcodec_throttle_clk = {
6735     .halt_reg = 0x28020,
6736     .halt_check = BRANCH_HALT_SKIP,
6737     .hwcg_reg = 0x28020,
6738     .hwcg_bit = 1,
6739     .clkr = {
6740         .enable_reg = 0x28020,
6741         .enable_mask = BIT(0),
6742         .hw.init = &(const struct clk_init_data) {
6743             .name = "gcc_video_vcodec_throttle_clk",
6744             .ops = &clk_branch2_ops,
6745         },
6746     },
6747 };
6748 
6749 static struct gdsc pcie_0_tunnel_gdsc = {
6750     .gdscr = 0xa4004,
6751     .collapse_ctrl = 0x52128,
6752     .collapse_mask = BIT(0),
6753     .pd = {
6754         .name = "pcie_0_tunnel_gdsc",
6755     },
6756     .pwrsts = PWRSTS_OFF_ON,
6757     .flags = VOTABLE,
6758 };
6759 
6760 static struct gdsc pcie_1_tunnel_gdsc = {
6761     .gdscr = 0x8d004,
6762     .collapse_ctrl = 0x52128,
6763     .collapse_mask = BIT(1),
6764     .pd = {
6765         .name = "pcie_1_tunnel_gdsc",
6766     },
6767     .pwrsts = PWRSTS_OFF_ON,
6768     .flags = VOTABLE,
6769 };
6770 
6771 static struct gdsc pcie_2a_gdsc = {
6772     .gdscr = 0x9d004,
6773     .collapse_ctrl = 0x52128,
6774     .collapse_mask = BIT(2),
6775     .pd = {
6776         .name = "pcie_2a_gdsc",
6777     },
6778     .pwrsts = PWRSTS_OFF_ON,
6779     .flags = VOTABLE,
6780 };
6781 
6782 static struct gdsc pcie_2b_gdsc = {
6783     .gdscr = 0x9e004,
6784     .collapse_ctrl = 0x52128,
6785     .collapse_mask = BIT(3),
6786     .pd = {
6787         .name = "pcie_2b_gdsc",
6788     },
6789     .pwrsts = PWRSTS_OFF_ON,
6790     .flags = VOTABLE,
6791 };
6792 
6793 static struct gdsc pcie_3a_gdsc = {
6794     .gdscr = 0xa0004,
6795     .collapse_ctrl = 0x52128,
6796     .collapse_mask = BIT(4),
6797     .pd = {
6798         .name = "pcie_3a_gdsc",
6799     },
6800     .pwrsts = PWRSTS_OFF_ON,
6801     .flags = VOTABLE,
6802 };
6803 
6804 static struct gdsc pcie_3b_gdsc = {
6805     .gdscr = 0xa2004,
6806     .collapse_ctrl = 0x52128,
6807     .collapse_mask = BIT(5),
6808     .pd = {
6809         .name = "pcie_3b_gdsc",
6810     },
6811     .pwrsts = PWRSTS_OFF_ON,
6812     .flags = VOTABLE,
6813 };
6814 
6815 static struct gdsc pcie_4_gdsc = {
6816     .gdscr = 0x6b004,
6817     .collapse_ctrl = 0x52128,
6818     .collapse_mask = BIT(6),
6819     .pd = {
6820         .name = "pcie_4_gdsc",
6821     },
6822     .pwrsts = PWRSTS_OFF_ON,
6823     .flags = VOTABLE,
6824 };
6825 
6826 static struct gdsc ufs_card_gdsc = {
6827     .gdscr = 0x75004,
6828     .pd = {
6829         .name = "ufs_card_gdsc",
6830     },
6831     .pwrsts = PWRSTS_OFF_ON,
6832 };
6833 
6834 static struct gdsc ufs_phy_gdsc = {
6835     .gdscr = 0x77004,
6836     .pd = {
6837         .name = "ufs_phy_gdsc",
6838     },
6839     .pwrsts = PWRSTS_OFF_ON,
6840 };
6841 
6842 static struct gdsc usb30_mp_gdsc = {
6843     .gdscr = 0xab004,
6844     .pd = {
6845         .name = "usb30_mp_gdsc",
6846     },
6847     .pwrsts = PWRSTS_OFF_ON,
6848 };
6849 
6850 static struct gdsc usb30_prim_gdsc = {
6851     .gdscr = 0xf004,
6852     .pd = {
6853         .name = "usb30_prim_gdsc",
6854     },
6855     .pwrsts = PWRSTS_OFF_ON,
6856 };
6857 
6858 static struct gdsc usb30_sec_gdsc = {
6859     .gdscr = 0x10004,
6860     .pd = {
6861         .name = "usb30_sec_gdsc",
6862     },
6863     .pwrsts = PWRSTS_OFF_ON,
6864 };
6865 
6866 static struct clk_regmap *gcc_sc8280xp_clocks[] = {
6867     [GCC_AGGRE_NOC_PCIE0_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie0_tunnel_axi_clk.clkr,
6868     [GCC_AGGRE_NOC_PCIE1_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie1_tunnel_axi_clk.clkr,
6869     [GCC_AGGRE_NOC_PCIE_4_AXI_CLK] = &gcc_aggre_noc_pcie_4_axi_clk.clkr,
6870     [GCC_AGGRE_NOC_PCIE_SOUTH_SF_AXI_CLK] = &gcc_aggre_noc_pcie_south_sf_axi_clk.clkr,
6871     [GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr,
6872     [GCC_AGGRE_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_card_axi_hw_ctl_clk.clkr,
6873     [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
6874     [GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_phy_axi_hw_ctl_clk.clkr,
6875     [GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr,
6876     [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
6877     [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
6878     [GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr,
6879     [GCC_AGGRE_USB4_AXI_CLK] = &gcc_aggre_usb4_axi_clk.clkr,
6880     [GCC_AGGRE_USB_NOC_AXI_CLK] = &gcc_aggre_usb_noc_axi_clk.clkr,
6881     [GCC_AGGRE_USB_NOC_NORTH_AXI_CLK] = &gcc_aggre_usb_noc_north_axi_clk.clkr,
6882     [GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK] = &gcc_aggre_usb_noc_south_axi_clk.clkr,
6883     [GCC_AHB2PHY0_CLK] = &gcc_ahb2phy0_clk.clkr,
6884     [GCC_AHB2PHY2_CLK] = &gcc_ahb2phy2_clk.clkr,
6885     [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
6886     [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
6887     [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
6888     [GCC_CAMERA_THROTTLE_NRT_AXI_CLK] = &gcc_camera_throttle_nrt_axi_clk.clkr,
6889     [GCC_CAMERA_THROTTLE_RT_AXI_CLK] = &gcc_camera_throttle_rt_axi_clk.clkr,
6890     [GCC_CAMERA_THROTTLE_XO_CLK] = &gcc_camera_throttle_xo_clk.clkr,
6891     [GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr,
6892     [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
6893     [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
6894     [GCC_CNOC_PCIE0_TUNNEL_CLK] = &gcc_cnoc_pcie0_tunnel_clk.clkr,
6895     [GCC_CNOC_PCIE1_TUNNEL_CLK] = &gcc_cnoc_pcie1_tunnel_clk.clkr,
6896     [GCC_CNOC_PCIE4_QX_CLK] = &gcc_cnoc_pcie4_qx_clk.clkr,
6897     [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
6898     [GCC_DDRSS_PCIE_SF_TBU_CLK] = &gcc_ddrss_pcie_sf_tbu_clk.clkr,
6899     [GCC_DISP1_HF_AXI_CLK] = &gcc_disp1_hf_axi_clk.clkr,
6900     [GCC_DISP1_SF_AXI_CLK] = &gcc_disp1_sf_axi_clk.clkr,
6901     [GCC_DISP1_THROTTLE_NRT_AXI_CLK] = &gcc_disp1_throttle_nrt_axi_clk.clkr,
6902     [GCC_DISP1_THROTTLE_RT_AXI_CLK] = &gcc_disp1_throttle_rt_axi_clk.clkr,
6903     [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
6904     [GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr,
6905     [GCC_DISP_THROTTLE_NRT_AXI_CLK] = &gcc_disp_throttle_nrt_axi_clk.clkr,
6906     [GCC_DISP_THROTTLE_RT_AXI_CLK] = &gcc_disp_throttle_rt_axi_clk.clkr,
6907     [GCC_EMAC0_AXI_CLK] = &gcc_emac0_axi_clk.clkr,
6908     [GCC_EMAC0_PTP_CLK] = &gcc_emac0_ptp_clk.clkr,
6909     [GCC_EMAC0_PTP_CLK_SRC] = &gcc_emac0_ptp_clk_src.clkr,
6910     [GCC_EMAC0_RGMII_CLK] = &gcc_emac0_rgmii_clk.clkr,
6911     [GCC_EMAC0_RGMII_CLK_SRC] = &gcc_emac0_rgmii_clk_src.clkr,
6912     [GCC_EMAC0_SLV_AHB_CLK] = &gcc_emac0_slv_ahb_clk.clkr,
6913     [GCC_EMAC1_AXI_CLK] = &gcc_emac1_axi_clk.clkr,
6914     [GCC_EMAC1_PTP_CLK] = &gcc_emac1_ptp_clk.clkr,
6915     [GCC_EMAC1_PTP_CLK_SRC] = &gcc_emac1_ptp_clk_src.clkr,
6916     [GCC_EMAC1_RGMII_CLK] = &gcc_emac1_rgmii_clk.clkr,
6917     [GCC_EMAC1_RGMII_CLK_SRC] = &gcc_emac1_rgmii_clk_src.clkr,
6918     [GCC_EMAC1_SLV_AHB_CLK] = &gcc_emac1_slv_ahb_clk.clkr,
6919     [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
6920     [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
6921     [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
6922     [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
6923     [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
6924     [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
6925     [GCC_GP4_CLK] = &gcc_gp4_clk.clkr,
6926     [GCC_GP4_CLK_SRC] = &gcc_gp4_clk_src.clkr,
6927     [GCC_GP5_CLK] = &gcc_gp5_clk.clkr,
6928     [GCC_GP5_CLK_SRC] = &gcc_gp5_clk_src.clkr,
6929     [GCC_GPLL0] = &gcc_gpll0.clkr,
6930     [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
6931     [GCC_GPLL2] = &gcc_gpll2.clkr,
6932     [GCC_GPLL4] = &gcc_gpll4.clkr,
6933     [GCC_GPLL7] = &gcc_gpll7.clkr,
6934     [GCC_GPLL8] = &gcc_gpll8.clkr,
6935     [GCC_GPLL9] = &gcc_gpll9.clkr,
6936     [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
6937     [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
6938     [GCC_GPU_IREF_EN] = &gcc_gpu_iref_en.clkr,
6939     [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
6940     [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
6941     [GCC_GPU_TCU_THROTTLE_AHB_CLK] = &gcc_gpu_tcu_throttle_ahb_clk.clkr,
6942     [GCC_GPU_TCU_THROTTLE_CLK] = &gcc_gpu_tcu_throttle_clk.clkr,
6943     [GCC_PCIE0_PHY_RCHNG_CLK] = &gcc_pcie0_phy_rchng_clk.clkr,
6944     [GCC_PCIE1_PHY_RCHNG_CLK] = &gcc_pcie1_phy_rchng_clk.clkr,
6945     [GCC_PCIE2A_PHY_RCHNG_CLK] = &gcc_pcie2a_phy_rchng_clk.clkr,
6946     [GCC_PCIE2B_PHY_RCHNG_CLK] = &gcc_pcie2b_phy_rchng_clk.clkr,
6947     [GCC_PCIE3A_PHY_RCHNG_CLK] = &gcc_pcie3a_phy_rchng_clk.clkr,
6948     [GCC_PCIE3B_PHY_RCHNG_CLK] = &gcc_pcie3b_phy_rchng_clk.clkr,
6949     [GCC_PCIE4_PHY_RCHNG_CLK] = &gcc_pcie4_phy_rchng_clk.clkr,
6950     [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
6951     [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
6952     [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
6953     [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
6954     [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
6955     [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
6956     [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
6957     [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
6958     [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
6959     [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
6960     [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
6961     [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
6962     [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
6963     [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
6964     [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
6965     [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
6966     [GCC_PCIE_2A2B_CLKREF_CLK] = &gcc_pcie_2a2b_clkref_clk.clkr,
6967     [GCC_PCIE_2A_AUX_CLK] = &gcc_pcie_2a_aux_clk.clkr,
6968     [GCC_PCIE_2A_AUX_CLK_SRC] = &gcc_pcie_2a_aux_clk_src.clkr,
6969     [GCC_PCIE_2A_CFG_AHB_CLK] = &gcc_pcie_2a_cfg_ahb_clk.clkr,
6970     [GCC_PCIE_2A_MSTR_AXI_CLK] = &gcc_pcie_2a_mstr_axi_clk.clkr,
6971     [GCC_PCIE_2A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2a_phy_rchng_clk_src.clkr,
6972     [GCC_PCIE_2A_PIPE_CLK] = &gcc_pcie_2a_pipe_clk.clkr,
6973     [GCC_PCIE_2A_PIPE_CLK_SRC] = &gcc_pcie_2a_pipe_clk_src.clkr,
6974     [GCC_PCIE_2A_PIPE_DIV_CLK_SRC] = &gcc_pcie_2a_pipe_div_clk_src.clkr,
6975     [GCC_PCIE_2A_PIPEDIV2_CLK] = &gcc_pcie_2a_pipediv2_clk.clkr,
6976     [GCC_PCIE_2A_SLV_AXI_CLK] = &gcc_pcie_2a_slv_axi_clk.clkr,
6977     [GCC_PCIE_2A_SLV_Q2A_AXI_CLK] = &gcc_pcie_2a_slv_q2a_axi_clk.clkr,
6978     [GCC_PCIE_2B_AUX_CLK] = &gcc_pcie_2b_aux_clk.clkr,
6979     [GCC_PCIE_2B_AUX_CLK_SRC] = &gcc_pcie_2b_aux_clk_src.clkr,
6980     [GCC_PCIE_2B_CFG_AHB_CLK] = &gcc_pcie_2b_cfg_ahb_clk.clkr,
6981     [GCC_PCIE_2B_MSTR_AXI_CLK] = &gcc_pcie_2b_mstr_axi_clk.clkr,
6982     [GCC_PCIE_2B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2b_phy_rchng_clk_src.clkr,
6983     [GCC_PCIE_2B_PIPE_CLK] = &gcc_pcie_2b_pipe_clk.clkr,
6984     [GCC_PCIE_2B_PIPE_CLK_SRC] = &gcc_pcie_2b_pipe_clk_src.clkr,
6985     [GCC_PCIE_2B_PIPE_DIV_CLK_SRC] = &gcc_pcie_2b_pipe_div_clk_src.clkr,
6986     [GCC_PCIE_2B_PIPEDIV2_CLK] = &gcc_pcie_2b_pipediv2_clk.clkr,
6987     [GCC_PCIE_2B_SLV_AXI_CLK] = &gcc_pcie_2b_slv_axi_clk.clkr,
6988     [GCC_PCIE_2B_SLV_Q2A_AXI_CLK] = &gcc_pcie_2b_slv_q2a_axi_clk.clkr,
6989     [GCC_PCIE_3A3B_CLKREF_CLK] = &gcc_pcie_3a3b_clkref_clk.clkr,
6990     [GCC_PCIE_3A_AUX_CLK] = &gcc_pcie_3a_aux_clk.clkr,
6991     [GCC_PCIE_3A_AUX_CLK_SRC] = &gcc_pcie_3a_aux_clk_src.clkr,
6992     [GCC_PCIE_3A_CFG_AHB_CLK] = &gcc_pcie_3a_cfg_ahb_clk.clkr,
6993     [GCC_PCIE_3A_MSTR_AXI_CLK] = &gcc_pcie_3a_mstr_axi_clk.clkr,
6994     [GCC_PCIE_3A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3a_phy_rchng_clk_src.clkr,
6995     [GCC_PCIE_3A_PIPE_CLK] = &gcc_pcie_3a_pipe_clk.clkr,
6996     [GCC_PCIE_3A_PIPE_CLK_SRC] = &gcc_pcie_3a_pipe_clk_src.clkr,
6997     [GCC_PCIE_3A_PIPE_DIV_CLK_SRC] = &gcc_pcie_3a_pipe_div_clk_src.clkr,
6998     [GCC_PCIE_3A_PIPEDIV2_CLK] = &gcc_pcie_3a_pipediv2_clk.clkr,
6999     [GCC_PCIE_3A_SLV_AXI_CLK] = &gcc_pcie_3a_slv_axi_clk.clkr,
7000     [GCC_PCIE_3A_SLV_Q2A_AXI_CLK] = &gcc_pcie_3a_slv_q2a_axi_clk.clkr,
7001     [GCC_PCIE_3B_AUX_CLK] = &gcc_pcie_3b_aux_clk.clkr,
7002     [GCC_PCIE_3B_AUX_CLK_SRC] = &gcc_pcie_3b_aux_clk_src.clkr,
7003     [GCC_PCIE_3B_CFG_AHB_CLK] = &gcc_pcie_3b_cfg_ahb_clk.clkr,
7004     [GCC_PCIE_3B_MSTR_AXI_CLK] = &gcc_pcie_3b_mstr_axi_clk.clkr,
7005     [GCC_PCIE_3B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3b_phy_rchng_clk_src.clkr,
7006     [GCC_PCIE_3B_PIPE_CLK] = &gcc_pcie_3b_pipe_clk.clkr,
7007     [GCC_PCIE_3B_PIPE_CLK_SRC] = &gcc_pcie_3b_pipe_clk_src.clkr,
7008     [GCC_PCIE_3B_PIPE_DIV_CLK_SRC] = &gcc_pcie_3b_pipe_div_clk_src.clkr,
7009     [GCC_PCIE_3B_PIPEDIV2_CLK] = &gcc_pcie_3b_pipediv2_clk.clkr,
7010     [GCC_PCIE_3B_SLV_AXI_CLK] = &gcc_pcie_3b_slv_axi_clk.clkr,
7011     [GCC_PCIE_3B_SLV_Q2A_AXI_CLK] = &gcc_pcie_3b_slv_q2a_axi_clk.clkr,
7012     [GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr,
7013     [GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr,
7014     [GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr,
7015     [GCC_PCIE_4_CLKREF_CLK] = &gcc_pcie_4_clkref_clk.clkr,
7016     [GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr,
7017     [GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr,
7018     [GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr,
7019     [GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr,
7020     [GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr,
7021     [GCC_PCIE_4_PIPEDIV2_CLK] = &gcc_pcie_4_pipediv2_clk.clkr,
7022     [GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr,
7023     [GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr,
7024     [GCC_PCIE_RSCC_AHB_CLK] = &gcc_pcie_rscc_ahb_clk.clkr,
7025     [GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr,
7026     [GCC_PCIE_RSCC_XO_CLK_SRC] = &gcc_pcie_rscc_xo_clk_src.clkr,
7027     [GCC_PCIE_THROTTLE_CFG_CLK] = &gcc_pcie_throttle_cfg_clk.clkr,
7028     [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
7029     [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
7030     [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
7031     [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
7032     [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
7033     [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
7034     [GCC_QMIP_DISP1_AHB_CLK] = &gcc_qmip_disp1_ahb_clk.clkr,
7035     [GCC_QMIP_DISP1_ROT_AHB_CLK] = &gcc_qmip_disp1_rot_ahb_clk.clkr,
7036     [GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
7037     [GCC_QMIP_DISP_ROT_AHB_CLK] = &gcc_qmip_disp_rot_ahb_clk.clkr,
7038     [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
7039     [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
7040     [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
7041     [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
7042     [GCC_QUPV3_WRAP0_QSPI0_CLK] = &gcc_qupv3_wrap0_qspi0_clk.clkr,
7043     [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
7044     [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
7045     [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
7046     [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
7047     [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
7048     [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
7049     [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
7050     [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
7051     [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
7052     [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
7053     [GCC_QUPV3_WRAP0_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap0_s4_div_clk_src.clkr,
7054     [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
7055     [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
7056     [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
7057     [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
7058     [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
7059     [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
7060     [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
7061     [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
7062     [GCC_QUPV3_WRAP1_QSPI0_CLK] = &gcc_qupv3_wrap1_qspi0_clk.clkr,
7063     [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
7064     [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
7065     [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
7066     [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
7067     [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
7068     [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
7069     [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
7070     [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
7071     [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
7072     [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
7073     [GCC_QUPV3_WRAP1_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap1_s4_div_clk_src.clkr,
7074     [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
7075     [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
7076     [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
7077     [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
7078     [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
7079     [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
7080     [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
7081     [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
7082     [GCC_QUPV3_WRAP2_QSPI0_CLK] = &gcc_qupv3_wrap2_qspi0_clk.clkr,
7083     [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
7084     [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
7085     [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
7086     [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
7087     [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
7088     [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
7089     [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
7090     [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
7091     [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
7092     [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
7093     [GCC_QUPV3_WRAP2_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap2_s4_div_clk_src.clkr,
7094     [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
7095     [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
7096     [GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
7097     [GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
7098     [GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
7099     [GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
7100     [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
7101     [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
7102     [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
7103     [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
7104     [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
7105     [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
7106     [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
7107     [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
7108     [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
7109     [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
7110     [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
7111     [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
7112     [GCC_SYS_NOC_USB_AXI_CLK] = &gcc_sys_noc_usb_axi_clk.clkr,
7113     [GCC_UFS_1_CARD_CLKREF_CLK] = &gcc_ufs_1_card_clkref_clk.clkr,
7114     [GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr,
7115     [GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr,
7116     [GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr,
7117     [GCC_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_ufs_card_axi_hw_ctl_clk.clkr,
7118     [GCC_UFS_CARD_CLKREF_CLK] = &gcc_ufs_card_clkref_clk.clkr,
7119     [GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr,
7120     [GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr,
7121     [GCC_UFS_CARD_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_card_ice_core_hw_ctl_clk.clkr,
7122     [GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr,
7123     [GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
7124     [GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_card_phy_aux_hw_ctl_clk.clkr,
7125     [GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
7126     [GCC_UFS_CARD_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_rx_symbol_0_clk_src.clkr,
7127     [GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
7128     [GCC_UFS_CARD_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_card_rx_symbol_1_clk_src.clkr,
7129     [GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
7130     [GCC_UFS_CARD_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_tx_symbol_0_clk_src.clkr,
7131     [GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
7132     [GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_card_unipro_core_clk_src.clkr,
7133     [GCC_UFS_CARD_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_card_unipro_core_hw_ctl_clk.clkr,
7134     [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
7135     [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
7136     [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
7137     [GCC_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_ufs_phy_axi_hw_ctl_clk.clkr,
7138     [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
7139     [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
7140     [GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_phy_ice_core_hw_ctl_clk.clkr,
7141     [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
7142     [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
7143     [GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr,
7144     [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
7145     [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
7146     [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
7147     [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
7148     [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
7149     [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
7150     [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
7151     [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
7152     [GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_phy_unipro_core_hw_ctl_clk.clkr,
7153     [GCC_UFS_REF_CLKREF_CLK] = &gcc_ufs_ref_clkref_clk.clkr,
7154     [GCC_USB2_HS0_CLKREF_CLK] = &gcc_usb2_hs0_clkref_clk.clkr,
7155     [GCC_USB2_HS1_CLKREF_CLK] = &gcc_usb2_hs1_clkref_clk.clkr,
7156     [GCC_USB2_HS2_CLKREF_CLK] = &gcc_usb2_hs2_clkref_clk.clkr,
7157     [GCC_USB2_HS3_CLKREF_CLK] = &gcc_usb2_hs3_clkref_clk.clkr,
7158     [GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr,
7159     [GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr,
7160     [GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr,
7161     [GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr,
7162     [GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr,
7163     [GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr,
7164     [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
7165     [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
7166     [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
7167     [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
7168     [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
7169     [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
7170     [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
7171     [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
7172     [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
7173     [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
7174     [GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
7175     [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
7176     [GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
7177     [GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
7178     [GCC_USB3_MP0_CLKREF_CLK] = &gcc_usb3_mp0_clkref_clk.clkr,
7179     [GCC_USB3_MP1_CLKREF_CLK] = &gcc_usb3_mp1_clkref_clk.clkr,
7180     [GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
7181     [GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
7182     [GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
7183     [GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr,
7184     [GCC_USB3_MP_PHY_PIPE_0_CLK_SRC] = &gcc_usb3_mp_phy_pipe_0_clk_src.clkr,
7185     [GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr,
7186     [GCC_USB3_MP_PHY_PIPE_1_CLK_SRC] = &gcc_usb3_mp_phy_pipe_1_clk_src.clkr,
7187     [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
7188     [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
7189     [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
7190     [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
7191     [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
7192     [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
7193     [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
7194     [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
7195     [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
7196     [GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
7197     [GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr,
7198     [GCC_USB4_1_DP_CLK] = &gcc_usb4_1_dp_clk.clkr,
7199     [GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
7200     [GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
7201     [GCC_USB4_1_PHY_DP_CLK_SRC] = &gcc_usb4_1_phy_dp_clk_src.clkr,
7202     [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
7203     [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
7204     [GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
7205     [GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
7206     [GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
7207     [GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipegmux_clk_src.clkr,
7208     [GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
7209     [GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
7210     [GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
7211     [GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
7212     [GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
7213     [GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
7214     [GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
7215     [GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
7216     [GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr,
7217     [GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr,
7218     [GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr,
7219     [GCC_USB4_CFG_AHB_CLK] = &gcc_usb4_cfg_ahb_clk.clkr,
7220     [GCC_USB4_CLKREF_CLK] = &gcc_usb4_clkref_clk.clkr,
7221     [GCC_USB4_DP_CLK] = &gcc_usb4_dp_clk.clkr,
7222     [GCC_USB4_EUD_CLKREF_CLK] = &gcc_usb4_eud_clkref_clk.clkr,
7223     [GCC_USB4_MASTER_CLK] = &gcc_usb4_master_clk.clkr,
7224     [GCC_USB4_MASTER_CLK_SRC] = &gcc_usb4_master_clk_src.clkr,
7225     [GCC_USB4_PHY_DP_CLK_SRC] = &gcc_usb4_phy_dp_clk_src.clkr,
7226     [GCC_USB4_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_phy_p2rr2p_pipe_clk.clkr,
7227     [GCC_USB4_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr,
7228     [GCC_USB4_PHY_PCIE_PIPE_CLK] = &gcc_usb4_phy_pcie_pipe_clk.clkr,
7229     [GCC_USB4_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_clk_src.clkr,
7230     [GCC_USB4_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr,
7231     [GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipegmux_clk_src.clkr,
7232     [GCC_USB4_PHY_RX0_CLK] = &gcc_usb4_phy_rx0_clk.clkr,
7233     [GCC_USB4_PHY_RX0_CLK_SRC] = &gcc_usb4_phy_rx0_clk_src.clkr,
7234     [GCC_USB4_PHY_RX1_CLK] = &gcc_usb4_phy_rx1_clk.clkr,
7235     [GCC_USB4_PHY_RX1_CLK_SRC] = &gcc_usb4_phy_rx1_clk_src.clkr,
7236     [GCC_USB4_PHY_SYS_CLK_SRC] = &gcc_usb4_phy_sys_clk_src.clkr,
7237     [GCC_USB4_PHY_USB_PIPE_CLK] = &gcc_usb4_phy_usb_pipe_clk.clkr,
7238     [GCC_USB4_SB_IF_CLK] = &gcc_usb4_sb_if_clk.clkr,
7239     [GCC_USB4_SB_IF_CLK_SRC] = &gcc_usb4_sb_if_clk_src.clkr,
7240     [GCC_USB4_SYS_CLK] = &gcc_usb4_sys_clk.clkr,
7241     [GCC_USB4_TMU_CLK] = &gcc_usb4_tmu_clk.clkr,
7242     [GCC_USB4_TMU_CLK_SRC] = &gcc_usb4_tmu_clk_src.clkr,
7243     [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
7244     [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
7245     [GCC_VIDEO_CVP_THROTTLE_CLK] = &gcc_video_cvp_throttle_clk.clkr,
7246     [GCC_VIDEO_VCODEC_THROTTLE_CLK] = &gcc_video_vcodec_throttle_clk.clkr,
7247 };
7248 
7249 static const struct qcom_reset_map gcc_sc8280xp_resets[] = {
7250     [GCC_EMAC0_BCR] = { 0xaa000 },
7251     [GCC_EMAC1_BCR] = { 0xba000 },
7252     [GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 },
7253     [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 },
7254     [GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
7255     [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 },
7256     [GCC_PCIE_0_TUNNEL_BCR] = { 0xa4000 },
7257     [GCC_PCIE_1_LINK_DOWN_BCR] = { 0x8e014 },
7258     [GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x8e020 },
7259     [GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
7260     [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x8e000 },
7261     [GCC_PCIE_1_TUNNEL_BCR] = { 0x8d000 },
7262     [GCC_PCIE_2A_BCR] = { 0x9d000 },
7263     [GCC_PCIE_2A_LINK_DOWN_BCR] = { 0x9d13c },
7264     [GCC_PCIE_2A_NOCSR_COM_PHY_BCR] = { 0x9d148 },
7265     [GCC_PCIE_2A_PHY_BCR] = { 0x9d144 },
7266     [GCC_PCIE_2A_PHY_NOCSR_COM_PHY_BCR] = { 0x9d14c },
7267     [GCC_PCIE_2B_BCR] = { 0x9e000 },
7268     [GCC_PCIE_2B_LINK_DOWN_BCR] = { 0x9e084 },
7269     [GCC_PCIE_2B_NOCSR_COM_PHY_BCR] = { 0x9e090 },
7270     [GCC_PCIE_2B_PHY_BCR] = { 0x9e08c },
7271     [GCC_PCIE_2B_PHY_NOCSR_COM_PHY_BCR] = { 0x9e094 },
7272     [GCC_PCIE_3A_BCR] = { 0xa0000 },
7273     [GCC_PCIE_3A_LINK_DOWN_BCR] = { 0xa00f0 },
7274     [GCC_PCIE_3A_NOCSR_COM_PHY_BCR] = { 0xa00fc },
7275     [GCC_PCIE_3A_PHY_BCR] = { 0xa00e0 },
7276     [GCC_PCIE_3A_PHY_NOCSR_COM_PHY_BCR] = { 0xa00e4 },
7277     [GCC_PCIE_3B_BCR] = { 0xa2000 },
7278     [GCC_PCIE_3B_LINK_DOWN_BCR] = { 0xa20e0 },
7279     [GCC_PCIE_3B_NOCSR_COM_PHY_BCR] = { 0xa20ec },
7280     [GCC_PCIE_3B_PHY_BCR] = { 0xa20e8 },
7281     [GCC_PCIE_3B_PHY_NOCSR_COM_PHY_BCR] = { 0xa20f0 },
7282     [GCC_PCIE_4_BCR] = { 0x6b000 },
7283     [GCC_PCIE_4_LINK_DOWN_BCR] = { 0x6b300 },
7284     [GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0x6b30c },
7285     [GCC_PCIE_4_PHY_BCR] = { 0x6b308 },
7286     [GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0x6b310 },
7287     [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c },
7288     [GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
7289     [GCC_PCIE_RSCC_BCR] = { 0xae000 },
7290     [GCC_QUSB2PHY_HS0_MP_BCR] = { 0x12008 },
7291     [GCC_QUSB2PHY_HS1_MP_BCR] = { 0x1200c },
7292     [GCC_QUSB2PHY_HS2_MP_BCR] = { 0x12010 },
7293     [GCC_QUSB2PHY_HS3_MP_BCR] = { 0x12014 },
7294     [GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
7295     [GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
7296     [GCC_SDCC2_BCR] = { 0x14000 },
7297     [GCC_SDCC4_BCR] = { 0x16000 },
7298     [GCC_UFS_CARD_BCR] = { 0x75000 },
7299     [GCC_UFS_PHY_BCR] = { 0x77000 },
7300     [GCC_USB2_PHY_PRIM_BCR] = { 0x50028 },
7301     [GCC_USB2_PHY_SEC_BCR] = { 0x5002c },
7302     [GCC_USB30_MP_BCR] = { 0xab000 },
7303     [GCC_USB30_PRIM_BCR] = { 0xf000 },
7304     [GCC_USB30_SEC_BCR] = { 0x10000 },
7305     [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
7306     [GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
7307     [GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
7308     [GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
7309     [GCC_USB3_UNIPHY_MP0_BCR] = { 0x50018 },
7310     [GCC_USB3_UNIPHY_MP1_BCR] = { 0x5001c },
7311     [GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
7312     [GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
7313     [GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x50020 },
7314     [GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x50024 },
7315     [GCC_USB4_1_BCR] = { 0xb8000 },
7316     [GCC_USB4_1_DP_PHY_PRIM_BCR] = { 0xb9020 },
7317     [GCC_USB4_1_DPPHY_AUX_BCR] = { 0xb9024 },
7318     [GCC_USB4_1_PHY_PRIM_BCR] = { 0xb9018 },
7319     [GCC_USB4_BCR] = { 0x2a000 },
7320     [GCC_USB4_DP_PHY_PRIM_BCR] = { 0x4a008 },
7321     [GCC_USB4_DPPHY_AUX_BCR] = { 0x4a00c },
7322     [GCC_USB4_PHY_PRIM_BCR] = { 0x4a000 },
7323     [GCC_USB4PHY_1_PHY_PRIM_BCR] = { 0xb901c },
7324     [GCC_USB4PHY_PHY_PRIM_BCR] = { 0x4a004 },
7325     [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
7326     [GCC_VIDEO_BCR] = { 0x28000 },
7327     [GCC_VIDEO_AXI0_CLK_ARES] = { 0x28010, 2 },
7328     [GCC_VIDEO_AXI1_CLK_ARES] = { 0x28018, 2 },
7329 };
7330 
7331 static struct gdsc *gcc_sc8280xp_gdscs[] = {
7332     [PCIE_0_TUNNEL_GDSC] = &pcie_0_tunnel_gdsc,
7333     [PCIE_1_TUNNEL_GDSC] = &pcie_1_tunnel_gdsc,
7334     [PCIE_2A_GDSC] = &pcie_2a_gdsc,
7335     [PCIE_2B_GDSC] = &pcie_2b_gdsc,
7336     [PCIE_3A_GDSC] = &pcie_3a_gdsc,
7337     [PCIE_3B_GDSC] = &pcie_3b_gdsc,
7338     [PCIE_4_GDSC] = &pcie_4_gdsc,
7339     [UFS_CARD_GDSC] = &ufs_card_gdsc,
7340     [UFS_PHY_GDSC] = &ufs_phy_gdsc,
7341     [USB30_MP_GDSC] = &usb30_mp_gdsc,
7342     [USB30_PRIM_GDSC] = &usb30_prim_gdsc,
7343     [USB30_SEC_GDSC] = &usb30_sec_gdsc,
7344 };
7345 
7346 static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
7347     DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
7348     DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
7349     DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
7350     DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
7351     DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
7352     DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
7353     DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
7354     DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
7355     DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
7356     DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
7357     DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
7358     DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
7359     DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
7360     DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
7361     DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
7362     DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
7363     DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
7364     DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
7365     DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
7366     DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
7367     DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
7368     DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
7369     DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src),
7370     DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
7371 };
7372 
7373 static const struct regmap_config gcc_sc8280xp_regmap_config = {
7374     .reg_bits = 32,
7375     .reg_stride = 4,
7376     .val_bits = 32,
7377     .max_register = 0xc3014,
7378     .fast_io = true,
7379 };
7380 
7381 static const struct qcom_cc_desc gcc_sc8280xp_desc = {
7382     .config = &gcc_sc8280xp_regmap_config,
7383     .clks = gcc_sc8280xp_clocks,
7384     .num_clks = ARRAY_SIZE(gcc_sc8280xp_clocks),
7385     .resets = gcc_sc8280xp_resets,
7386     .num_resets = ARRAY_SIZE(gcc_sc8280xp_resets),
7387     .gdscs = gcc_sc8280xp_gdscs,
7388     .num_gdscs = ARRAY_SIZE(gcc_sc8280xp_gdscs),
7389 };
7390 
7391 static int gcc_sc8280xp_probe(struct platform_device *pdev)
7392 {
7393     struct regmap *regmap;
7394     int ret;
7395 
7396     regmap = qcom_cc_map(pdev, &gcc_sc8280xp_desc);
7397     if (IS_ERR(regmap))
7398         return PTR_ERR(regmap);
7399 
7400     /*
7401      * Keep the clocks always-ON
7402      * GCC_CAMERA_AHB_CLK, GCC_CAMERA_XO_CLK, GCC_DISP_AHB_CLK,
7403      * GCC_DISP_XO_CLK, GCC_GPU_CFG_AHB_CLK, GCC_VIDEO_AHB_CLK,
7404      * GCC_VIDEO_XO_CLK, GCC_DISP1_AHB_CLK, GCC_DISP1_XO_CLK
7405      */
7406     regmap_update_bits(regmap, 0x26004, BIT(0), BIT(0));
7407     regmap_update_bits(regmap, 0x26020, BIT(0), BIT(0));
7408     regmap_update_bits(regmap, 0x27004, BIT(0), BIT(0));
7409     regmap_update_bits(regmap, 0x27028, BIT(0), BIT(0));
7410     regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0));
7411     regmap_update_bits(regmap, 0x28004, BIT(0), BIT(0));
7412     regmap_update_bits(regmap, 0x28028, BIT(0), BIT(0));
7413     regmap_update_bits(regmap, 0xbb004, BIT(0), BIT(0));
7414     regmap_update_bits(regmap, 0xbb028, BIT(0), BIT(0));
7415 
7416     ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, ARRAY_SIZE(gcc_dfs_clocks));
7417     if (ret)
7418         return ret;
7419 
7420     return qcom_cc_really_probe(pdev, &gcc_sc8280xp_desc, regmap);
7421 }
7422 
7423 static const struct of_device_id gcc_sc8280xp_match_table[] = {
7424     { .compatible = "qcom,gcc-sc8280xp" },
7425     { }
7426 };
7427 MODULE_DEVICE_TABLE(of, gcc_sc8280xp_match_table);
7428 
7429 static struct platform_driver gcc_sc8280xp_driver = {
7430     .probe = gcc_sc8280xp_probe,
7431     .driver = {
7432         .name = "gcc-sc8280xp",
7433         .of_match_table = gcc_sc8280xp_match_table,
7434     },
7435 };
7436 
7437 static int __init gcc_sc8280xp_init(void)
7438 {
7439     return platform_driver_register(&gcc_sc8280xp_driver);
7440 }
7441 subsys_initcall(gcc_sc8280xp_init);
7442 
7443 static void __exit gcc_sc8280xp_exit(void)
7444 {
7445     platform_driver_unregister(&gcc_sc8280xp_driver);
7446 }
7447 module_exit(gcc_sc8280xp_exit);
7448 
7449 MODULE_DESCRIPTION("Qualcomm SC8280XP GCC driver");
7450 MODULE_LICENSE("GPL");