Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: qcom: gcc: Add support for Global Clock Controller

Add support for Global clock controller for Glymur SoC which would
enable the consumers to enable/disable the required clocks.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250825-glymur-clock-controller-v5-v5-7-01b8c8681bcd@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Taniya Das and committed by
Bjorn Andersson
efe50430 ee2d9670

+8626
+9
drivers/clk/qcom/Kconfig
··· 29 29 Say Y if you want to support display devices and functionality such as 30 30 splash screen. 31 31 32 + config CLK_GLYMUR_GCC 33 + tristate "GLYMUR Global Clock Controller" 34 + depends on ARM64 || COMPILE_TEST 35 + select QCOM_GDSC 36 + help 37 + Support for the global clock controller on GLYMUR devices. 38 + Say Y if you want to use peripheral devices such as UART, SPI, 39 + I2C, USB, UFS, SDCC, etc. 40 + 32 41 config CLK_GLYMUR_TCSRCC 33 42 tristate "GLYMUR TCSR Clock Controller" 34 43 depends on ARM64 || COMPILE_TEST
+1
drivers/clk/qcom/Makefile
··· 22 22 obj-$(CONFIG_APQ_MMCC_8084) += mmcc-apq8084.o 23 23 obj-$(CONFIG_CLK_GFM_LPASS_SM8250) += lpass-gfm-sm8250.o 24 24 obj-$(CONFIG_CLK_GLYMUR_DISPCC) += dispcc-glymur.o 25 + obj-$(CONFIG_CLK_GLYMUR_GCC) += gcc-glymur.o 25 26 obj-$(CONFIG_CLK_GLYMUR_TCSRCC) += tcsrcc-glymur.o 26 27 obj-$(CONFIG_CLK_X1E80100_CAMCC) += camcc-x1e80100.o 27 28 obj-$(CONFIG_CLK_X1E80100_DISPCC) += dispcc-x1e80100.o
+8616
drivers/clk/qcom/gcc-glymur.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + /* 3 + * Copyright (c) 2025, Qualcomm Technologies, Inc. and/or its subsidiaries. 4 + */ 5 + 6 + #include <linux/clk-provider.h> 7 + #include <linux/mod_devicetable.h> 8 + #include <linux/module.h> 9 + #include <linux/of.h> 10 + #include <linux/platform_device.h> 11 + #include <linux/regmap.h> 12 + 13 + #include <dt-bindings/clock/qcom,glymur-gcc.h> 14 + 15 + #include "clk-alpha-pll.h" 16 + #include "clk-branch.h" 17 + #include "clk-pll.h" 18 + #include "clk-rcg.h" 19 + #include "clk-regmap.h" 20 + #include "clk-regmap-divider.h" 21 + #include "clk-regmap-mux.h" 22 + #include "clk-regmap-phy-mux.h" 23 + #include "common.h" 24 + #include "gdsc.h" 25 + #include "reset.h" 26 + 27 + enum { 28 + DT_BI_TCXO, 29 + DT_BI_TCXO_AO, 30 + DT_SLEEP_CLK, 31 + DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC, 32 + DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC, 33 + DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC, 34 + DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC, 35 + DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC, 36 + DT_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC, 37 + DT_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC, 38 + DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 39 + DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 40 + DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 41 + DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC, 42 + DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC, 43 + DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC, 44 + DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC, 45 + DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC, 46 + DT_PCIE_3A_PIPE_CLK, 47 + DT_PCIE_3B_PIPE_CLK, 48 + DT_PCIE_4_PIPE_CLK, 49 + DT_PCIE_5_PIPE_CLK, 50 + DT_PCIE_6_PIPE_CLK, 51 + DT_QUSB4PHY_0_GCC_USB4_RX0_CLK, 52 + DT_QUSB4PHY_0_GCC_USB4_RX1_CLK, 53 + DT_QUSB4PHY_1_GCC_USB4_RX0_CLK, 54 + DT_QUSB4PHY_1_GCC_USB4_RX1_CLK, 55 + DT_QUSB4PHY_2_GCC_USB4_RX0_CLK, 56 + DT_QUSB4PHY_2_GCC_USB4_RX1_CLK, 57 + DT_UFS_PHY_RX_SYMBOL_0_CLK, 58 + DT_UFS_PHY_RX_SYMBOL_1_CLK, 59 + DT_UFS_PHY_TX_SYMBOL_0_CLK, 60 + DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK, 61 + DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK, 62 + DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK, 63 + DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 64 + DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 65 + DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 66 + DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 67 + DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 68 + DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 69 + DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 70 + DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 71 + }; 72 + 73 + enum { 74 + P_BI_TCXO, 75 + P_GCC_GPLL0_OUT_EVEN, 76 + P_GCC_GPLL0_OUT_MAIN, 77 + P_GCC_GPLL14_OUT_EVEN, 78 + P_GCC_GPLL14_OUT_MAIN, 79 + P_GCC_GPLL1_OUT_MAIN, 80 + P_GCC_GPLL4_OUT_MAIN, 81 + P_GCC_GPLL5_OUT_MAIN, 82 + P_GCC_GPLL7_OUT_MAIN, 83 + P_GCC_GPLL8_OUT_MAIN, 84 + P_GCC_GPLL9_OUT_MAIN, 85 + P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 86 + P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 87 + P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC, 88 + P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC, 89 + P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC, 90 + P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC, 91 + P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC, 92 + P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC, 93 + P_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC, 94 + P_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC, 95 + P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 96 + P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 97 + P_GCC_USB4_1_PHY_PLL_PIPE_CLK_SRC, 98 + P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 99 + P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC, 100 + P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC, 101 + P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC, 102 + P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC, 103 + P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC, 104 + P_PCIE_3A_PIPE_CLK, 105 + P_PCIE_3B_PIPE_CLK, 106 + P_PCIE_4_PIPE_CLK, 107 + P_PCIE_5_PIPE_CLK, 108 + P_PCIE_6_PIPE_CLK, 109 + P_QUSB4PHY_0_GCC_USB4_RX0_CLK, 110 + P_QUSB4PHY_0_GCC_USB4_RX1_CLK, 111 + P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 112 + P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 113 + P_QUSB4PHY_2_GCC_USB4_RX0_CLK, 114 + P_QUSB4PHY_2_GCC_USB4_RX1_CLK, 115 + P_SLEEP_CLK, 116 + P_UFS_PHY_RX_SYMBOL_0_CLK, 117 + P_UFS_PHY_RX_SYMBOL_1_CLK, 118 + P_UFS_PHY_TX_SYMBOL_0_CLK, 119 + P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK, 120 + P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK, 121 + P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK, 122 + P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 123 + P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 124 + P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 125 + P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 126 + P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 127 + P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 128 + P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 129 + P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 130 + }; 131 + 132 + static struct clk_alpha_pll gcc_gpll0 = { 133 + .offset = 0x0, 134 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 135 + .clkr = { 136 + .enable_reg = 0x62040, 137 + .enable_mask = BIT(0), 138 + .hw.init = &(const struct clk_init_data) { 139 + .name = "gcc_gpll0", 140 + .parent_data = &(const struct clk_parent_data) { 141 + .index = DT_BI_TCXO, 142 + }, 143 + .num_parents = 1, 144 + .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 145 + }, 146 + }, 147 + }; 148 + 149 + static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = { 150 + { 0x1, 2 }, 151 + { } 152 + }; 153 + 154 + static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = { 155 + .offset = 0x0, 156 + .post_div_shift = 10, 157 + .post_div_table = post_div_table_gcc_gpll0_out_even, 158 + .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even), 159 + .width = 4, 160 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 161 + .clkr.hw.init = &(const struct clk_init_data) { 162 + .name = "gcc_gpll0_out_even", 163 + .parent_hws = (const struct clk_hw*[]) { 164 + &gcc_gpll0.clkr.hw, 165 + }, 166 + .num_parents = 1, 167 + .ops = &clk_alpha_pll_postdiv_taycan_eko_t_ops, 168 + }, 169 + }; 170 + 171 + static struct clk_alpha_pll gcc_gpll1 = { 172 + .offset = 0x1000, 173 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 174 + .clkr = { 175 + .enable_reg = 0x62040, 176 + .enable_mask = BIT(1), 177 + .hw.init = &(const struct clk_init_data) { 178 + .name = "gcc_gpll1", 179 + .parent_data = &(const struct clk_parent_data) { 180 + .index = DT_BI_TCXO, 181 + }, 182 + .num_parents = 1, 183 + .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 184 + }, 185 + }, 186 + }; 187 + 188 + static struct clk_alpha_pll gcc_gpll14 = { 189 + .offset = 0xe000, 190 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 191 + .clkr = { 192 + .enable_reg = 0x62040, 193 + .enable_mask = BIT(14), 194 + .hw.init = &(const struct clk_init_data) { 195 + .name = "gcc_gpll14", 196 + .parent_data = &(const struct clk_parent_data) { 197 + .index = DT_BI_TCXO, 198 + }, 199 + .num_parents = 1, 200 + .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 201 + }, 202 + }, 203 + }; 204 + 205 + static const struct clk_div_table post_div_table_gcc_gpll14_out_even[] = { 206 + { 0x1, 2 }, 207 + { } 208 + }; 209 + 210 + static struct clk_alpha_pll_postdiv gcc_gpll14_out_even = { 211 + .offset = 0xe000, 212 + .post_div_shift = 10, 213 + .post_div_table = post_div_table_gcc_gpll14_out_even, 214 + .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll14_out_even), 215 + .width = 4, 216 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 217 + .clkr.hw.init = &(const struct clk_init_data) { 218 + .name = "gcc_gpll14_out_even", 219 + .parent_hws = (const struct clk_hw*[]) { 220 + &gcc_gpll14.clkr.hw, 221 + }, 222 + .num_parents = 1, 223 + .ops = &clk_alpha_pll_postdiv_taycan_eko_t_ops, 224 + }, 225 + }; 226 + 227 + static struct clk_alpha_pll gcc_gpll4 = { 228 + .offset = 0x4000, 229 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 230 + .clkr = { 231 + .enable_reg = 0x62040, 232 + .enable_mask = BIT(4), 233 + .hw.init = &(const struct clk_init_data) { 234 + .name = "gcc_gpll4", 235 + .parent_data = &(const struct clk_parent_data) { 236 + .index = DT_BI_TCXO, 237 + }, 238 + .num_parents = 1, 239 + .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 240 + }, 241 + }, 242 + }; 243 + 244 + static struct clk_alpha_pll gcc_gpll5 = { 245 + .offset = 0x5000, 246 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 247 + .clkr = { 248 + .enable_reg = 0x62040, 249 + .enable_mask = BIT(5), 250 + .hw.init = &(const struct clk_init_data) { 251 + .name = "gcc_gpll5", 252 + .parent_data = &(const struct clk_parent_data) { 253 + .index = DT_BI_TCXO, 254 + }, 255 + .num_parents = 1, 256 + .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 257 + }, 258 + }, 259 + }; 260 + 261 + static struct clk_alpha_pll gcc_gpll7 = { 262 + .offset = 0x7000, 263 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 264 + .clkr = { 265 + .enable_reg = 0x62040, 266 + .enable_mask = BIT(7), 267 + .hw.init = &(const struct clk_init_data) { 268 + .name = "gcc_gpll7", 269 + .parent_data = &(const struct clk_parent_data) { 270 + .index = DT_BI_TCXO, 271 + }, 272 + .num_parents = 1, 273 + .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 274 + }, 275 + }, 276 + }; 277 + 278 + static struct clk_alpha_pll gcc_gpll8 = { 279 + .offset = 0x8000, 280 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 281 + .clkr = { 282 + .enable_reg = 0x62040, 283 + .enable_mask = BIT(8), 284 + .hw.init = &(const struct clk_init_data) { 285 + .name = "gcc_gpll8", 286 + .parent_data = &(const struct clk_parent_data) { 287 + .index = DT_BI_TCXO, 288 + }, 289 + .num_parents = 1, 290 + .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 291 + }, 292 + }, 293 + }; 294 + 295 + static struct clk_alpha_pll gcc_gpll9 = { 296 + .offset = 0x9000, 297 + .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 298 + .clkr = { 299 + .enable_reg = 0x62040, 300 + .enable_mask = BIT(9), 301 + .hw.init = &(const struct clk_init_data) { 302 + .name = "gcc_gpll9", 303 + .parent_data = &(const struct clk_parent_data) { 304 + .index = DT_BI_TCXO, 305 + }, 306 + .num_parents = 1, 307 + .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 308 + }, 309 + }, 310 + }; 311 + 312 + static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src; 313 + static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src; 314 + static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src; 315 + 316 + static struct clk_rcg2 gcc_usb4_1_phy_pll_pipe_clk_src; 317 + 318 + static const struct parent_map gcc_parent_map_0[] = { 319 + { P_BI_TCXO, 0 }, 320 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 321 + { P_GCC_GPLL0_OUT_EVEN, 6 }, 322 + }; 323 + 324 + static const struct clk_parent_data gcc_parent_data_0[] = { 325 + { .index = DT_BI_TCXO }, 326 + { .hw = &gcc_gpll0.clkr.hw }, 327 + { .hw = &gcc_gpll0_out_even.clkr.hw }, 328 + }; 329 + 330 + static const struct parent_map gcc_parent_map_1[] = { 331 + { P_BI_TCXO, 0 }, 332 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 333 + { P_GCC_GPLL1_OUT_MAIN, 4 }, 334 + { P_GCC_GPLL0_OUT_EVEN, 6 }, 335 + }; 336 + 337 + static const struct clk_parent_data gcc_parent_data_1[] = { 338 + { .index = DT_BI_TCXO }, 339 + { .hw = &gcc_gpll0.clkr.hw }, 340 + { .hw = &gcc_gpll1.clkr.hw }, 341 + { .hw = &gcc_gpll0_out_even.clkr.hw }, 342 + }; 343 + 344 + static const struct parent_map gcc_parent_map_2[] = { 345 + { P_BI_TCXO, 0 }, 346 + { P_SLEEP_CLK, 5 }, 347 + }; 348 + 349 + static const struct clk_parent_data gcc_parent_data_2[] = { 350 + { .index = DT_BI_TCXO }, 351 + { .index = DT_SLEEP_CLK }, 352 + }; 353 + 354 + static const struct parent_map gcc_parent_map_3[] = { 355 + { P_BI_TCXO, 0 }, 356 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 357 + { P_GCC_GPLL1_OUT_MAIN, 4 }, 358 + { P_GCC_GPLL4_OUT_MAIN, 5 }, 359 + { P_GCC_GPLL0_OUT_EVEN, 6 }, 360 + }; 361 + 362 + static const struct clk_parent_data gcc_parent_data_3[] = { 363 + { .index = DT_BI_TCXO }, 364 + { .hw = &gcc_gpll0.clkr.hw }, 365 + { .hw = &gcc_gpll1.clkr.hw }, 366 + { .hw = &gcc_gpll4.clkr.hw }, 367 + { .hw = &gcc_gpll0_out_even.clkr.hw }, 368 + }; 369 + 370 + static const struct parent_map gcc_parent_map_4[] = { 371 + { P_BI_TCXO, 0 }, 372 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 373 + { P_SLEEP_CLK, 5 }, 374 + { P_GCC_GPLL0_OUT_EVEN, 6 }, 375 + }; 376 + 377 + static const struct clk_parent_data gcc_parent_data_4[] = { 378 + { .index = DT_BI_TCXO }, 379 + { .hw = &gcc_gpll0.clkr.hw }, 380 + { .index = DT_SLEEP_CLK }, 381 + { .hw = &gcc_gpll0_out_even.clkr.hw }, 382 + }; 383 + 384 + static const struct parent_map gcc_parent_map_5[] = { 385 + { P_BI_TCXO, 0 }, 386 + }; 387 + 388 + static const struct clk_parent_data gcc_parent_data_5[] = { 389 + { .index = DT_BI_TCXO }, 390 + }; 391 + 392 + static const struct parent_map gcc_parent_map_6[] = { 393 + { P_BI_TCXO, 0 }, 394 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 395 + { P_GCC_GPLL4_OUT_MAIN, 5 }, 396 + { P_GCC_GPLL0_OUT_EVEN, 6 }, 397 + }; 398 + 399 + static const struct clk_parent_data gcc_parent_data_6[] = { 400 + { .index = DT_BI_TCXO }, 401 + { .hw = &gcc_gpll0.clkr.hw }, 402 + { .hw = &gcc_gpll4.clkr.hw }, 403 + { .hw = &gcc_gpll0_out_even.clkr.hw }, 404 + }; 405 + 406 + static const struct parent_map gcc_parent_map_7[] = { 407 + { P_BI_TCXO, 0 }, 408 + { P_GCC_GPLL14_OUT_MAIN, 1 }, 409 + { P_GCC_GPLL14_OUT_EVEN, 6 }, 410 + }; 411 + 412 + static const struct clk_parent_data gcc_parent_data_7[] = { 413 + { .index = DT_BI_TCXO }, 414 + { .hw = &gcc_gpll14.clkr.hw }, 415 + { .hw = &gcc_gpll14_out_even.clkr.hw }, 416 + }; 417 + 418 + static const struct parent_map gcc_parent_map_8[] = { 419 + { P_BI_TCXO, 0 }, 420 + { P_GCC_GPLL4_OUT_MAIN, 5 }, 421 + }; 422 + 423 + static const struct clk_parent_data gcc_parent_data_8[] = { 424 + { .index = DT_BI_TCXO }, 425 + { .hw = &gcc_gpll4.clkr.hw }, 426 + }; 427 + 428 + static const struct parent_map gcc_parent_map_9[] = { 429 + { P_BI_TCXO, 0 }, 430 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 431 + { P_GCC_GPLL8_OUT_MAIN, 2 }, 432 + { P_GCC_GPLL0_OUT_EVEN, 6 }, 433 + }; 434 + 435 + static const struct clk_parent_data gcc_parent_data_9[] = { 436 + { .index = DT_BI_TCXO }, 437 + { .hw = &gcc_gpll0.clkr.hw }, 438 + { .hw = &gcc_gpll8.clkr.hw }, 439 + { .hw = &gcc_gpll0_out_even.clkr.hw }, 440 + }; 441 + 442 + static const struct parent_map gcc_parent_map_10[] = { 443 + { P_BI_TCXO, 0 }, 444 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 445 + { P_GCC_GPLL7_OUT_MAIN, 2 }, 446 + }; 447 + 448 + static const struct clk_parent_data gcc_parent_data_10[] = { 449 + { .index = DT_BI_TCXO }, 450 + { .hw = &gcc_gpll0.clkr.hw }, 451 + { .hw = &gcc_gpll7.clkr.hw }, 452 + }; 453 + 454 + static const struct parent_map gcc_parent_map_11[] = { 455 + { P_BI_TCXO, 0 }, 456 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 457 + { P_GCC_GPLL7_OUT_MAIN, 2 }, 458 + { P_GCC_GPLL8_OUT_MAIN, 3 }, 459 + { P_SLEEP_CLK, 5 }, 460 + }; 461 + 462 + static const struct clk_parent_data gcc_parent_data_11[] = { 463 + { .index = DT_BI_TCXO }, 464 + { .hw = &gcc_gpll0.clkr.hw }, 465 + { .hw = &gcc_gpll7.clkr.hw }, 466 + { .hw = &gcc_gpll8.clkr.hw }, 467 + { .index = DT_SLEEP_CLK }, 468 + }; 469 + 470 + static const struct parent_map gcc_parent_map_17[] = { 471 + { P_BI_TCXO, 0 }, 472 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 473 + { P_GCC_GPLL9_OUT_MAIN, 2 }, 474 + { P_GCC_GPLL4_OUT_MAIN, 5 }, 475 + { P_GCC_GPLL0_OUT_EVEN, 6 }, 476 + }; 477 + 478 + static const struct clk_parent_data gcc_parent_data_17[] = { 479 + { .index = DT_BI_TCXO }, 480 + { .hw = &gcc_gpll0.clkr.hw }, 481 + { .hw = &gcc_gpll9.clkr.hw }, 482 + { .hw = &gcc_gpll4.clkr.hw }, 483 + { .hw = &gcc_gpll0_out_even.clkr.hw }, 484 + }; 485 + 486 + static const struct parent_map gcc_parent_map_18[] = { 487 + { P_UFS_PHY_RX_SYMBOL_0_CLK, 0 }, 488 + { P_BI_TCXO, 2 }, 489 + }; 490 + 491 + static const struct clk_parent_data gcc_parent_data_18[] = { 492 + { .index = DT_UFS_PHY_RX_SYMBOL_0_CLK }, 493 + { .index = DT_BI_TCXO }, 494 + }; 495 + 496 + static const struct parent_map gcc_parent_map_19[] = { 497 + { P_UFS_PHY_RX_SYMBOL_1_CLK, 0 }, 498 + { P_BI_TCXO, 2 }, 499 + }; 500 + 501 + static const struct clk_parent_data gcc_parent_data_19[] = { 502 + { .index = DT_UFS_PHY_RX_SYMBOL_1_CLK }, 503 + { .index = DT_BI_TCXO }, 504 + }; 505 + 506 + static const struct parent_map gcc_parent_map_20[] = { 507 + { P_UFS_PHY_TX_SYMBOL_0_CLK, 0 }, 508 + { P_BI_TCXO, 2 }, 509 + }; 510 + 511 + static const struct clk_parent_data gcc_parent_data_20[] = { 512 + { .index = DT_UFS_PHY_TX_SYMBOL_0_CLK }, 513 + { .index = DT_BI_TCXO }, 514 + }; 515 + 516 + static const struct parent_map gcc_parent_map_21[] = { 517 + { P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 }, 518 + { P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 }, 519 + { P_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC, 3 }, 520 + }; 521 + 522 + static const struct clk_parent_data gcc_parent_data_21[] = { 523 + { .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw }, 524 + { .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK }, 525 + { .index = DT_GCC_USB4_0_PHY_PIPEGMUX_CLK_SRC }, 526 + }; 527 + 528 + static const struct parent_map gcc_parent_map_22[] = { 529 + { P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 }, 530 + { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 }, 531 + { P_GCC_USB4_1_PHY_PLL_PIPE_CLK_SRC, 2 }, 532 + { P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 }, 533 + }; 534 + 535 + static const struct clk_parent_data gcc_parent_data_22[] = { 536 + { .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw }, 537 + { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK }, 538 + { .hw = &gcc_usb4_1_phy_pll_pipe_clk_src.clkr.hw }, 539 + { .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC }, 540 + }; 541 + 542 + static const struct parent_map gcc_parent_map_23[] = { 543 + { P_GCC_USB3_TERT_PHY_PIPE_CLK_SRC, 0 }, 544 + { P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 }, 545 + { P_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC, 3 }, 546 + }; 547 + 548 + static const struct clk_parent_data gcc_parent_data_23[] = { 549 + { .hw = &gcc_usb3_tert_phy_pipe_clk_src.clkr.hw }, 550 + { .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK }, 551 + { .index = DT_GCC_USB4_2_PHY_PIPEGMUX_CLK_SRC }, 552 + }; 553 + 554 + static const struct parent_map gcc_parent_map_24[] = { 555 + { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 0 }, 556 + { P_BI_TCXO, 2 }, 557 + }; 558 + 559 + static const struct clk_parent_data gcc_parent_data_24[] = { 560 + { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK }, 561 + { .index = DT_BI_TCXO }, 562 + }; 563 + 564 + static const struct parent_map gcc_parent_map_25[] = { 565 + { P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 0 }, 566 + { P_BI_TCXO, 2 }, 567 + }; 568 + 569 + static const struct clk_parent_data gcc_parent_data_25[] = { 570 + { .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK }, 571 + { .index = DT_BI_TCXO }, 572 + }; 573 + 574 + static const struct parent_map gcc_parent_map_26[] = { 575 + { P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK, 0 }, 576 + { P_BI_TCXO, 2 }, 577 + }; 578 + 579 + static const struct clk_parent_data gcc_parent_data_26[] = { 580 + { .index = DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK }, 581 + { .index = DT_BI_TCXO }, 582 + }; 583 + 584 + static const struct parent_map gcc_parent_map_27[] = { 585 + { P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK, 0 }, 586 + { P_BI_TCXO, 2 }, 587 + }; 588 + 589 + static const struct clk_parent_data gcc_parent_data_27[] = { 590 + { .index = DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK }, 591 + { .index = DT_BI_TCXO }, 592 + }; 593 + 594 + static const struct parent_map gcc_parent_map_28[] = { 595 + { P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK, 0 }, 596 + { P_BI_TCXO, 2 }, 597 + }; 598 + 599 + static const struct clk_parent_data gcc_parent_data_28[] = { 600 + { .index = DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK }, 601 + { .index = DT_BI_TCXO }, 602 + }; 603 + 604 + static const struct parent_map gcc_parent_map_29[] = { 605 + { P_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC, 0 }, 606 + { P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 }, 607 + }; 608 + 609 + static const struct clk_parent_data gcc_parent_data_29[] = { 610 + { .index = DT_GCC_USB4_0_PHY_DP0_GMUX_CLK_SRC }, 611 + { .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK }, 612 + }; 613 + 614 + static const struct parent_map gcc_parent_map_30[] = { 615 + { P_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC, 0 }, 616 + { P_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 }, 617 + }; 618 + 619 + static const struct clk_parent_data gcc_parent_data_30[] = { 620 + { .index = DT_GCC_USB4_0_PHY_DP1_GMUX_CLK_SRC }, 621 + { .index = DT_USB4_0_PHY_GCC_USB4RTR_MAX_PIPE_CLK }, 622 + }; 623 + 624 + static const struct parent_map gcc_parent_map_31[] = { 625 + { P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 }, 626 + { P_BI_TCXO, 2 }, 627 + }; 628 + 629 + static const struct clk_parent_data gcc_parent_data_31[] = { 630 + { .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK }, 631 + { .index = DT_BI_TCXO }, 632 + }; 633 + 634 + static const struct parent_map gcc_parent_map_32[] = { 635 + { P_BI_TCXO, 0 }, 636 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 637 + { P_GCC_GPLL7_OUT_MAIN, 2 }, 638 + { P_SLEEP_CLK, 5 }, 639 + }; 640 + 641 + static const struct clk_parent_data gcc_parent_data_32[] = { 642 + { .index = DT_BI_TCXO }, 643 + { .hw = &gcc_gpll0.clkr.hw }, 644 + { .hw = &gcc_gpll7.clkr.hw }, 645 + { .index = DT_SLEEP_CLK }, 646 + }; 647 + 648 + static const struct parent_map gcc_parent_map_33[] = { 649 + { P_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 }, 650 + { P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 }, 651 + }; 652 + 653 + static const struct clk_parent_data gcc_parent_data_33[] = { 654 + { .index = DT_GCC_USB4_0_PHY_PCIE_PIPEGMUX_CLK_SRC }, 655 + { .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK }, 656 + }; 657 + 658 + static const struct parent_map gcc_parent_map_34[] = { 659 + { P_QUSB4PHY_0_GCC_USB4_RX0_CLK, 0 }, 660 + { P_BI_TCXO, 2 }, 661 + }; 662 + 663 + static const struct clk_parent_data gcc_parent_data_34[] = { 664 + { .index = DT_QUSB4PHY_0_GCC_USB4_RX0_CLK }, 665 + { .index = DT_BI_TCXO }, 666 + }; 667 + 668 + static const struct parent_map gcc_parent_map_35[] = { 669 + { P_QUSB4PHY_0_GCC_USB4_RX1_CLK, 0 }, 670 + { P_BI_TCXO, 2 }, 671 + }; 672 + 673 + static const struct clk_parent_data gcc_parent_data_35[] = { 674 + { .index = DT_QUSB4PHY_0_GCC_USB4_RX1_CLK }, 675 + { .index = DT_BI_TCXO }, 676 + }; 677 + 678 + static const struct parent_map gcc_parent_map_36[] = { 679 + { P_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC, 0 }, 680 + { P_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 }, 681 + }; 682 + 683 + static const struct clk_parent_data gcc_parent_data_36[] = { 684 + { .index = DT_GCC_USB4_0_PHY_SYS_PIPEGMUX_CLK_SRC }, 685 + { .index = DT_USB4_0_PHY_GCC_USB4_PCIE_PIPE_CLK }, 686 + }; 687 + 688 + static const struct parent_map gcc_parent_map_37[] = { 689 + { P_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC, 0 }, 690 + { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 }, 691 + }; 692 + 693 + static const struct clk_parent_data gcc_parent_data_37[] = { 694 + { .index = DT_GCC_USB4_1_PHY_DP0_GMUX_2_CLK_SRC }, 695 + { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK }, 696 + }; 697 + 698 + static const struct parent_map gcc_parent_map_38[] = { 699 + { P_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC, 0 }, 700 + { P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 }, 701 + }; 702 + 703 + static const struct clk_parent_data gcc_parent_data_38[] = { 704 + { .index = DT_GCC_USB4_1_PHY_DP1_GMUX_2_CLK_SRC }, 705 + { .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK }, 706 + }; 707 + 708 + static const struct parent_map gcc_parent_map_39[] = { 709 + { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 }, 710 + { P_BI_TCXO, 2 }, 711 + }; 712 + 713 + static const struct clk_parent_data gcc_parent_data_39[] = { 714 + { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK }, 715 + { .index = DT_BI_TCXO }, 716 + }; 717 + 718 + static const struct parent_map gcc_parent_map_40[] = { 719 + { P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 }, 720 + { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 }, 721 + }; 722 + 723 + static const struct clk_parent_data gcc_parent_data_40[] = { 724 + { .index = DT_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC }, 725 + { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK }, 726 + }; 727 + 728 + static const struct parent_map gcc_parent_map_41[] = { 729 + { P_BI_TCXO, 0 }, 730 + { P_GCC_GPLL0_OUT_MAIN, 1 }, 731 + { P_GCC_GPLL5_OUT_MAIN, 3 }, 732 + { P_GCC_GPLL0_OUT_EVEN, 6 }, 733 + }; 734 + 735 + static const struct clk_parent_data gcc_parent_data_41[] = { 736 + { .index = DT_BI_TCXO }, 737 + { .hw = &gcc_gpll0.clkr.hw }, 738 + { .hw = &gcc_gpll5.clkr.hw }, 739 + { .hw = &gcc_gpll0_out_even.clkr.hw }, 740 + }; 741 + 742 + static const struct parent_map gcc_parent_map_42[] = { 743 + { P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 }, 744 + { P_BI_TCXO, 2 }, 745 + }; 746 + 747 + static const struct clk_parent_data gcc_parent_data_42[] = { 748 + { .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK }, 749 + { .index = DT_BI_TCXO }, 750 + }; 751 + 752 + static const struct parent_map gcc_parent_map_43[] = { 753 + { P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 }, 754 + { P_BI_TCXO, 2 }, 755 + }; 756 + 757 + static const struct clk_parent_data gcc_parent_data_43[] = { 758 + { .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK }, 759 + { .index = DT_BI_TCXO }, 760 + }; 761 + 762 + static const struct parent_map gcc_parent_map_44[] = { 763 + { P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 }, 764 + { P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 }, 765 + }; 766 + 767 + static const struct clk_parent_data gcc_parent_data_44[] = { 768 + { .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC }, 769 + { .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK }, 770 + }; 771 + 772 + static const struct parent_map gcc_parent_map_45[] = { 773 + { P_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC, 0 }, 774 + { P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 }, 775 + }; 776 + 777 + static const struct clk_parent_data gcc_parent_data_45[] = { 778 + { .index = DT_GCC_USB4_2_PHY_DP0_GMUX_CLK_SRC }, 779 + { .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK }, 780 + }; 781 + 782 + static const struct parent_map gcc_parent_map_46[] = { 783 + { P_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC, 0 }, 784 + { P_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 }, 785 + }; 786 + 787 + static const struct clk_parent_data gcc_parent_data_46[] = { 788 + { .index = DT_GCC_USB4_2_PHY_DP1_GMUX_CLK_SRC }, 789 + { .index = DT_USB4_2_PHY_GCC_USB4RTR_MAX_PIPE_CLK }, 790 + }; 791 + 792 + static const struct parent_map gcc_parent_map_47[] = { 793 + { P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 }, 794 + { P_BI_TCXO, 2 }, 795 + }; 796 + 797 + static const struct clk_parent_data gcc_parent_data_47[] = { 798 + { .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK }, 799 + { .index = DT_BI_TCXO }, 800 + }; 801 + 802 + static const struct parent_map gcc_parent_map_48[] = { 803 + { P_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 }, 804 + { P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 1 }, 805 + }; 806 + 807 + static const struct clk_parent_data gcc_parent_data_48[] = { 808 + { .index = DT_GCC_USB4_2_PHY_PCIE_PIPEGMUX_CLK_SRC }, 809 + { .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK }, 810 + }; 811 + 812 + static const struct parent_map gcc_parent_map_49[] = { 813 + { P_QUSB4PHY_2_GCC_USB4_RX0_CLK, 0 }, 814 + { P_BI_TCXO, 2 }, 815 + }; 816 + 817 + static const struct clk_parent_data gcc_parent_data_49[] = { 818 + { .index = DT_QUSB4PHY_2_GCC_USB4_RX0_CLK }, 819 + { .index = DT_BI_TCXO }, 820 + }; 821 + 822 + static const struct parent_map gcc_parent_map_50[] = { 823 + { P_QUSB4PHY_2_GCC_USB4_RX1_CLK, 0 }, 824 + { P_BI_TCXO, 2 }, 825 + }; 826 + 827 + static const struct clk_parent_data gcc_parent_data_50[] = { 828 + { .index = DT_QUSB4PHY_2_GCC_USB4_RX1_CLK }, 829 + { .index = DT_BI_TCXO }, 830 + }; 831 + 832 + static const struct parent_map gcc_parent_map_51[] = { 833 + { P_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC, 0 }, 834 + { P_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 }, 835 + }; 836 + 837 + static const struct clk_parent_data gcc_parent_data_51[] = { 838 + { .index = DT_GCC_USB4_2_PHY_SYS_PIPEGMUX_CLK_SRC }, 839 + { .index = DT_USB4_2_PHY_GCC_USB4_PCIE_PIPE_CLK }, 840 + }; 841 + 842 + static struct clk_regmap_phy_mux gcc_pcie_3a_pipe_clk_src = { 843 + .reg = 0xdc088, 844 + .clkr = { 845 + .hw.init = &(const struct clk_init_data) { 846 + .name = "gcc_pcie_3a_pipe_clk_src", 847 + .parent_data = &(const struct clk_parent_data){ 848 + .index = DT_PCIE_3A_PIPE_CLK, 849 + }, 850 + .num_parents = 1, 851 + .ops = &clk_regmap_phy_mux_ops, 852 + }, 853 + }, 854 + }; 855 + 856 + static struct clk_regmap_phy_mux gcc_pcie_3b_pipe_clk_src = { 857 + .reg = 0x941b4, 858 + .clkr = { 859 + .hw.init = &(const struct clk_init_data) { 860 + .name = "gcc_pcie_3b_pipe_clk_src", 861 + .parent_data = &(const struct clk_parent_data){ 862 + .index = DT_PCIE_3B_PIPE_CLK, 863 + }, 864 + .num_parents = 1, 865 + .ops = &clk_regmap_phy_mux_ops, 866 + }, 867 + }, 868 + }; 869 + 870 + static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src = { 871 + .reg = 0x881a4, 872 + .clkr = { 873 + .hw.init = &(const struct clk_init_data) { 874 + .name = "gcc_pcie_4_pipe_clk_src", 875 + .parent_data = &(const struct clk_parent_data){ 876 + .index = DT_PCIE_4_PIPE_CLK, 877 + }, 878 + .num_parents = 1, 879 + .ops = &clk_regmap_phy_mux_ops, 880 + }, 881 + }, 882 + }; 883 + 884 + static struct clk_regmap_phy_mux gcc_pcie_5_pipe_clk_src = { 885 + .reg = 0xc309c, 886 + .clkr = { 887 + .hw.init = &(const struct clk_init_data) { 888 + .name = "gcc_pcie_5_pipe_clk_src", 889 + .parent_data = &(const struct clk_parent_data){ 890 + .index = DT_PCIE_5_PIPE_CLK, 891 + }, 892 + .num_parents = 1, 893 + .ops = &clk_regmap_phy_mux_ops, 894 + }, 895 + }, 896 + }; 897 + 898 + static struct clk_regmap_phy_mux gcc_pcie_6_pipe_clk_src = { 899 + .reg = 0x8a1a4, 900 + .clkr = { 901 + .hw.init = &(const struct clk_init_data) { 902 + .name = "gcc_pcie_6_pipe_clk_src", 903 + .parent_data = &(const struct clk_parent_data){ 904 + .index = DT_PCIE_6_PIPE_CLK, 905 + }, 906 + .num_parents = 1, 907 + .ops = &clk_regmap_phy_mux_ops, 908 + }, 909 + }, 910 + }; 911 + 912 + static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = { 913 + .reg = 0x7706c, 914 + .shift = 0, 915 + .width = 2, 916 + .parent_map = gcc_parent_map_18, 917 + .clkr = { 918 + .hw.init = &(const struct clk_init_data) { 919 + .name = "gcc_ufs_phy_rx_symbol_0_clk_src", 920 + .parent_data = gcc_parent_data_18, 921 + .num_parents = ARRAY_SIZE(gcc_parent_data_18), 922 + .ops = &clk_regmap_mux_closest_ops, 923 + }, 924 + }, 925 + }; 926 + 927 + static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = { 928 + .reg = 0x770f0, 929 + .shift = 0, 930 + .width = 2, 931 + .parent_map = gcc_parent_map_19, 932 + .clkr = { 933 + .hw.init = &(const struct clk_init_data) { 934 + .name = "gcc_ufs_phy_rx_symbol_1_clk_src", 935 + .parent_data = gcc_parent_data_19, 936 + .num_parents = ARRAY_SIZE(gcc_parent_data_19), 937 + .ops = &clk_regmap_mux_closest_ops, 938 + }, 939 + }, 940 + }; 941 + 942 + static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = { 943 + .reg = 0x7705c, 944 + .shift = 0, 945 + .width = 2, 946 + .parent_map = gcc_parent_map_20, 947 + .clkr = { 948 + .hw.init = &(const struct clk_init_data) { 949 + .name = "gcc_ufs_phy_tx_symbol_0_clk_src", 950 + .parent_data = gcc_parent_data_20, 951 + .num_parents = ARRAY_SIZE(gcc_parent_data_20), 952 + .ops = &clk_regmap_mux_closest_ops, 953 + }, 954 + }, 955 + }; 956 + 957 + static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = { 958 + .reg = 0x2b0b8, 959 + .shift = 0, 960 + .width = 2, 961 + .parent_map = gcc_parent_map_21, 962 + .clkr = { 963 + .hw.init = &(const struct clk_init_data) { 964 + .name = "gcc_usb34_prim_phy_pipe_clk_src", 965 + .parent_data = gcc_parent_data_21, 966 + .num_parents = ARRAY_SIZE(gcc_parent_data_21), 967 + .ops = &clk_regmap_mux_closest_ops, 968 + }, 969 + }, 970 + }; 971 + 972 + static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = { 973 + .reg = 0x2d0c4, 974 + .shift = 0, 975 + .width = 2, 976 + .parent_map = gcc_parent_map_22, 977 + .clkr = { 978 + .hw.init = &(const struct clk_init_data) { 979 + .name = "gcc_usb34_sec_phy_pipe_clk_src", 980 + .parent_data = gcc_parent_data_22, 981 + .num_parents = ARRAY_SIZE(gcc_parent_data_22), 982 + .ops = &clk_regmap_mux_closest_ops, 983 + }, 984 + }, 985 + }; 986 + 987 + static struct clk_regmap_mux gcc_usb34_tert_phy_pipe_clk_src = { 988 + .reg = 0xe00bc, 989 + .shift = 0, 990 + .width = 2, 991 + .parent_map = gcc_parent_map_23, 992 + .clkr = { 993 + .hw.init = &(const struct clk_init_data) { 994 + .name = "gcc_usb34_tert_phy_pipe_clk_src", 995 + .parent_data = gcc_parent_data_23, 996 + .num_parents = ARRAY_SIZE(gcc_parent_data_23), 997 + .ops = &clk_regmap_mux_closest_ops, 998 + }, 999 + }, 1000 + }; 1001 + 1002 + static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_0_clk_src = { 1003 + .reg = 0x9a07c, 1004 + .shift = 0, 1005 + .width = 2, 1006 + .parent_map = gcc_parent_map_24, 1007 + .clkr = { 1008 + .hw.init = &(const struct clk_init_data) { 1009 + .name = "gcc_usb3_mp_phy_pipe_0_clk_src", 1010 + .parent_data = gcc_parent_data_24, 1011 + .num_parents = ARRAY_SIZE(gcc_parent_data_24), 1012 + .ops = &clk_regmap_mux_closest_ops, 1013 + }, 1014 + }, 1015 + }; 1016 + 1017 + static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_1_clk_src = { 1018 + .reg = 0x9a084, 1019 + .shift = 0, 1020 + .width = 2, 1021 + .parent_map = gcc_parent_map_25, 1022 + .clkr = { 1023 + .hw.init = &(const struct clk_init_data) { 1024 + .name = "gcc_usb3_mp_phy_pipe_1_clk_src", 1025 + .parent_data = gcc_parent_data_25, 1026 + .num_parents = ARRAY_SIZE(gcc_parent_data_25), 1027 + .ops = &clk_regmap_mux_closest_ops, 1028 + }, 1029 + }, 1030 + }; 1031 + 1032 + static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = { 1033 + .reg = 0x3f08c, 1034 + .shift = 0, 1035 + .width = 2, 1036 + .parent_map = gcc_parent_map_26, 1037 + .clkr = { 1038 + .hw.init = &(const struct clk_init_data) { 1039 + .name = "gcc_usb3_prim_phy_pipe_clk_src", 1040 + .parent_data = gcc_parent_data_26, 1041 + .num_parents = ARRAY_SIZE(gcc_parent_data_26), 1042 + .ops = &clk_regmap_mux_closest_ops, 1043 + }, 1044 + }, 1045 + }; 1046 + 1047 + static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = { 1048 + .reg = 0xe207c, 1049 + .shift = 0, 1050 + .width = 2, 1051 + .parent_map = gcc_parent_map_27, 1052 + .clkr = { 1053 + .hw.init = &(const struct clk_init_data) { 1054 + .name = "gcc_usb3_sec_phy_pipe_clk_src", 1055 + .parent_data = gcc_parent_data_27, 1056 + .num_parents = ARRAY_SIZE(gcc_parent_data_27), 1057 + .ops = &clk_regmap_mux_closest_ops, 1058 + }, 1059 + }, 1060 + }; 1061 + 1062 + static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src = { 1063 + .reg = 0xe107c, 1064 + .shift = 0, 1065 + .width = 2, 1066 + .parent_map = gcc_parent_map_28, 1067 + .clkr = { 1068 + .hw.init = &(const struct clk_init_data) { 1069 + .name = "gcc_usb3_tert_phy_pipe_clk_src", 1070 + .parent_data = gcc_parent_data_28, 1071 + .num_parents = ARRAY_SIZE(gcc_parent_data_28), 1072 + .ops = &clk_regmap_mux_closest_ops, 1073 + }, 1074 + }, 1075 + }; 1076 + 1077 + static struct clk_regmap_mux gcc_usb4_0_phy_dp0_clk_src = { 1078 + .reg = 0x2b080, 1079 + .shift = 0, 1080 + .width = 2, 1081 + .parent_map = gcc_parent_map_29, 1082 + .clkr = { 1083 + .hw.init = &(const struct clk_init_data) { 1084 + .name = "gcc_usb4_0_phy_dp0_clk_src", 1085 + .parent_data = gcc_parent_data_29, 1086 + .num_parents = ARRAY_SIZE(gcc_parent_data_29), 1087 + .ops = &clk_regmap_mux_closest_ops, 1088 + }, 1089 + }, 1090 + }; 1091 + 1092 + static struct clk_regmap_mux gcc_usb4_0_phy_dp1_clk_src = { 1093 + .reg = 0x2b134, 1094 + .shift = 0, 1095 + .width = 2, 1096 + .parent_map = gcc_parent_map_30, 1097 + .clkr = { 1098 + .hw.init = &(const struct clk_init_data) { 1099 + .name = "gcc_usb4_0_phy_dp1_clk_src", 1100 + .parent_data = gcc_parent_data_30, 1101 + .num_parents = ARRAY_SIZE(gcc_parent_data_30), 1102 + .ops = &clk_regmap_mux_closest_ops, 1103 + }, 1104 + }, 1105 + }; 1106 + 1107 + static struct clk_regmap_mux gcc_usb4_0_phy_p2rr2p_pipe_clk_src = { 1108 + .reg = 0x2b0f0, 1109 + .shift = 0, 1110 + .width = 2, 1111 + .parent_map = gcc_parent_map_31, 1112 + .clkr = { 1113 + .hw.init = &(const struct clk_init_data) { 1114 + .name = "gcc_usb4_0_phy_p2rr2p_pipe_clk_src", 1115 + .parent_data = gcc_parent_data_31, 1116 + .num_parents = ARRAY_SIZE(gcc_parent_data_31), 1117 + .ops = &clk_regmap_mux_closest_ops, 1118 + }, 1119 + }, 1120 + }; 1121 + 1122 + static struct clk_regmap_mux gcc_usb4_0_phy_pcie_pipe_mux_clk_src = { 1123 + .reg = 0x2b120, 1124 + .shift = 0, 1125 + .width = 1, 1126 + .parent_map = gcc_parent_map_33, 1127 + .clkr = { 1128 + .hw.init = &(const struct clk_init_data) { 1129 + .name = "gcc_usb4_0_phy_pcie_pipe_mux_clk_src", 1130 + .parent_data = gcc_parent_data_33, 1131 + .num_parents = ARRAY_SIZE(gcc_parent_data_33), 1132 + .ops = &clk_regmap_mux_closest_ops, 1133 + }, 1134 + }, 1135 + }; 1136 + 1137 + static struct clk_regmap_mux gcc_usb4_0_phy_rx0_clk_src = { 1138 + .reg = 0x2b0c0, 1139 + .shift = 0, 1140 + .width = 2, 1141 + .parent_map = gcc_parent_map_34, 1142 + .clkr = { 1143 + .hw.init = &(const struct clk_init_data) { 1144 + .name = "gcc_usb4_0_phy_rx0_clk_src", 1145 + .parent_data = gcc_parent_data_34, 1146 + .num_parents = ARRAY_SIZE(gcc_parent_data_34), 1147 + .ops = &clk_regmap_mux_closest_ops, 1148 + }, 1149 + }, 1150 + }; 1151 + 1152 + static struct clk_regmap_mux gcc_usb4_0_phy_rx1_clk_src = { 1153 + .reg = 0x2b0d4, 1154 + .shift = 0, 1155 + .width = 2, 1156 + .parent_map = gcc_parent_map_35, 1157 + .clkr = { 1158 + .hw.init = &(const struct clk_init_data) { 1159 + .name = "gcc_usb4_0_phy_rx1_clk_src", 1160 + .parent_data = gcc_parent_data_35, 1161 + .num_parents = ARRAY_SIZE(gcc_parent_data_35), 1162 + .ops = &clk_regmap_mux_closest_ops, 1163 + }, 1164 + }, 1165 + }; 1166 + 1167 + static struct clk_regmap_mux gcc_usb4_0_phy_sys_clk_src = { 1168 + .reg = 0x2b100, 1169 + .shift = 0, 1170 + .width = 2, 1171 + .parent_map = gcc_parent_map_36, 1172 + .clkr = { 1173 + .hw.init = &(const struct clk_init_data) { 1174 + .name = "gcc_usb4_0_phy_sys_clk_src", 1175 + .parent_data = gcc_parent_data_36, 1176 + .num_parents = ARRAY_SIZE(gcc_parent_data_36), 1177 + .ops = &clk_regmap_mux_closest_ops, 1178 + }, 1179 + }, 1180 + }; 1181 + 1182 + static struct clk_regmap_mux gcc_usb4_1_phy_dp0_clk_src = { 1183 + .reg = 0x2d08c, 1184 + .shift = 0, 1185 + .width = 2, 1186 + .parent_map = gcc_parent_map_37, 1187 + .clkr = { 1188 + .hw.init = &(const struct clk_init_data) { 1189 + .name = "gcc_usb4_1_phy_dp0_clk_src", 1190 + .parent_data = gcc_parent_data_37, 1191 + .num_parents = ARRAY_SIZE(gcc_parent_data_37), 1192 + .ops = &clk_regmap_mux_closest_ops, 1193 + }, 1194 + }, 1195 + }; 1196 + 1197 + static struct clk_regmap_mux gcc_usb4_1_phy_dp1_clk_src = { 1198 + .reg = 0x2d154, 1199 + .shift = 0, 1200 + .width = 2, 1201 + .parent_map = gcc_parent_map_38, 1202 + .clkr = { 1203 + .hw.init = &(const struct clk_init_data) { 1204 + .name = "gcc_usb4_1_phy_dp1_clk_src", 1205 + .parent_data = gcc_parent_data_38, 1206 + .num_parents = ARRAY_SIZE(gcc_parent_data_38), 1207 + .ops = &clk_regmap_mux_closest_ops, 1208 + }, 1209 + }, 1210 + }; 1211 + 1212 + static struct clk_regmap_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = { 1213 + .reg = 0x2d114, 1214 + .shift = 0, 1215 + .width = 2, 1216 + .parent_map = gcc_parent_map_39, 1217 + .clkr = { 1218 + .hw.init = &(const struct clk_init_data) { 1219 + .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src", 1220 + .parent_data = gcc_parent_data_39, 1221 + .num_parents = ARRAY_SIZE(gcc_parent_data_39), 1222 + .ops = &clk_regmap_mux_closest_ops, 1223 + }, 1224 + }, 1225 + }; 1226 + 1227 + static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = { 1228 + .reg = 0x2d140, 1229 + .shift = 0, 1230 + .width = 1, 1231 + .parent_map = gcc_parent_map_40, 1232 + .clkr = { 1233 + .hw.init = &(const struct clk_init_data) { 1234 + .name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src", 1235 + .parent_data = gcc_parent_data_40, 1236 + .num_parents = ARRAY_SIZE(gcc_parent_data_40), 1237 + .ops = &clk_regmap_mux_closest_ops, 1238 + }, 1239 + }, 1240 + }; 1241 + 1242 + static struct clk_regmap_mux gcc_usb4_1_phy_rx0_clk_src = { 1243 + .reg = 0x2d0e4, 1244 + .shift = 0, 1245 + .width = 2, 1246 + .parent_map = gcc_parent_map_42, 1247 + .clkr = { 1248 + .hw.init = &(const struct clk_init_data) { 1249 + .name = "gcc_usb4_1_phy_rx0_clk_src", 1250 + .parent_data = gcc_parent_data_42, 1251 + .num_parents = ARRAY_SIZE(gcc_parent_data_42), 1252 + .ops = &clk_regmap_mux_closest_ops, 1253 + }, 1254 + }, 1255 + }; 1256 + 1257 + static struct clk_regmap_mux gcc_usb4_1_phy_rx1_clk_src = { 1258 + .reg = 0x2d0f8, 1259 + .shift = 0, 1260 + .width = 2, 1261 + .parent_map = gcc_parent_map_43, 1262 + .clkr = { 1263 + .hw.init = &(const struct clk_init_data) { 1264 + .name = "gcc_usb4_1_phy_rx1_clk_src", 1265 + .parent_data = gcc_parent_data_43, 1266 + .num_parents = ARRAY_SIZE(gcc_parent_data_43), 1267 + .ops = &clk_regmap_mux_closest_ops, 1268 + }, 1269 + }, 1270 + }; 1271 + 1272 + static struct clk_regmap_mux gcc_usb4_1_phy_sys_clk_src = { 1273 + .reg = 0x2d124, 1274 + .shift = 0, 1275 + .width = 2, 1276 + .parent_map = gcc_parent_map_44, 1277 + .clkr = { 1278 + .hw.init = &(const struct clk_init_data) { 1279 + .name = "gcc_usb4_1_phy_sys_clk_src", 1280 + .parent_data = gcc_parent_data_44, 1281 + .num_parents = ARRAY_SIZE(gcc_parent_data_44), 1282 + .ops = &clk_regmap_mux_closest_ops, 1283 + }, 1284 + }, 1285 + }; 1286 + 1287 + static struct clk_regmap_mux gcc_usb4_2_phy_dp0_clk_src = { 1288 + .reg = 0xe0084, 1289 + .shift = 0, 1290 + .width = 2, 1291 + .parent_map = gcc_parent_map_45, 1292 + .clkr = { 1293 + .hw.init = &(const struct clk_init_data) { 1294 + .name = "gcc_usb4_2_phy_dp0_clk_src", 1295 + .parent_data = gcc_parent_data_45, 1296 + .num_parents = ARRAY_SIZE(gcc_parent_data_45), 1297 + .ops = &clk_regmap_mux_closest_ops, 1298 + }, 1299 + }, 1300 + }; 1301 + 1302 + static struct clk_regmap_mux gcc_usb4_2_phy_dp1_clk_src = { 1303 + .reg = 0xe013c, 1304 + .shift = 0, 1305 + .width = 2, 1306 + .parent_map = gcc_parent_map_46, 1307 + .clkr = { 1308 + .hw.init = &(const struct clk_init_data) { 1309 + .name = "gcc_usb4_2_phy_dp1_clk_src", 1310 + .parent_data = gcc_parent_data_46, 1311 + .num_parents = ARRAY_SIZE(gcc_parent_data_46), 1312 + .ops = &clk_regmap_mux_closest_ops, 1313 + }, 1314 + }, 1315 + }; 1316 + 1317 + static struct clk_regmap_mux gcc_usb4_2_phy_p2rr2p_pipe_clk_src = { 1318 + .reg = 0xe00f4, 1319 + .shift = 0, 1320 + .width = 2, 1321 + .parent_map = gcc_parent_map_47, 1322 + .clkr = { 1323 + .hw.init = &(const struct clk_init_data) { 1324 + .name = "gcc_usb4_2_phy_p2rr2p_pipe_clk_src", 1325 + .parent_data = gcc_parent_data_47, 1326 + .num_parents = ARRAY_SIZE(gcc_parent_data_47), 1327 + .ops = &clk_regmap_mux_closest_ops, 1328 + }, 1329 + }, 1330 + }; 1331 + 1332 + static struct clk_regmap_mux gcc_usb4_2_phy_pcie_pipe_mux_clk_src = { 1333 + .reg = 0xe0124, 1334 + .shift = 0, 1335 + .width = 1, 1336 + .parent_map = gcc_parent_map_48, 1337 + .clkr = { 1338 + .hw.init = &(const struct clk_init_data) { 1339 + .name = "gcc_usb4_2_phy_pcie_pipe_mux_clk_src", 1340 + .parent_data = gcc_parent_data_48, 1341 + .num_parents = ARRAY_SIZE(gcc_parent_data_48), 1342 + .ops = &clk_regmap_mux_closest_ops, 1343 + }, 1344 + }, 1345 + }; 1346 + 1347 + static struct clk_regmap_mux gcc_usb4_2_phy_rx0_clk_src = { 1348 + .reg = 0xe00c4, 1349 + .shift = 0, 1350 + .width = 2, 1351 + .parent_map = gcc_parent_map_49, 1352 + .clkr = { 1353 + .hw.init = &(const struct clk_init_data) { 1354 + .name = "gcc_usb4_2_phy_rx0_clk_src", 1355 + .parent_data = gcc_parent_data_49, 1356 + .num_parents = ARRAY_SIZE(gcc_parent_data_49), 1357 + .ops = &clk_regmap_mux_closest_ops, 1358 + }, 1359 + }, 1360 + }; 1361 + 1362 + static struct clk_regmap_mux gcc_usb4_2_phy_rx1_clk_src = { 1363 + .reg = 0xe00d8, 1364 + .shift = 0, 1365 + .width = 2, 1366 + .parent_map = gcc_parent_map_50, 1367 + .clkr = { 1368 + .hw.init = &(const struct clk_init_data) { 1369 + .name = "gcc_usb4_2_phy_rx1_clk_src", 1370 + .parent_data = gcc_parent_data_50, 1371 + .num_parents = ARRAY_SIZE(gcc_parent_data_50), 1372 + .ops = &clk_regmap_mux_closest_ops, 1373 + }, 1374 + }, 1375 + }; 1376 + 1377 + static struct clk_regmap_mux gcc_usb4_2_phy_sys_clk_src = { 1378 + .reg = 0xe0104, 1379 + .shift = 0, 1380 + .width = 2, 1381 + .parent_map = gcc_parent_map_51, 1382 + .clkr = { 1383 + .hw.init = &(const struct clk_init_data) { 1384 + .name = "gcc_usb4_2_phy_sys_clk_src", 1385 + .parent_data = gcc_parent_data_51, 1386 + .num_parents = ARRAY_SIZE(gcc_parent_data_51), 1387 + .ops = &clk_regmap_mux_closest_ops, 1388 + }, 1389 + }, 1390 + }; 1391 + 1392 + static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = { 1393 + F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0), 1394 + F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 1395 + F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 1396 + { } 1397 + }; 1398 + 1399 + static struct clk_rcg2 gcc_gp1_clk_src = { 1400 + .cmd_rcgr = 0x64004, 1401 + .mnd_width = 16, 1402 + .hid_width = 5, 1403 + .parent_map = gcc_parent_map_4, 1404 + .freq_tbl = ftbl_gcc_gp1_clk_src, 1405 + .clkr.hw.init = &(const struct clk_init_data) { 1406 + .name = "gcc_gp1_clk_src", 1407 + .parent_data = gcc_parent_data_4, 1408 + .num_parents = ARRAY_SIZE(gcc_parent_data_4), 1409 + .flags = CLK_SET_RATE_PARENT, 1410 + .ops = &clk_rcg2_shared_no_init_park_ops, 1411 + }, 1412 + }; 1413 + 1414 + static struct clk_rcg2 gcc_gp2_clk_src = { 1415 + .cmd_rcgr = 0x92004, 1416 + .mnd_width = 16, 1417 + .hid_width = 5, 1418 + .parent_map = gcc_parent_map_4, 1419 + .freq_tbl = ftbl_gcc_gp1_clk_src, 1420 + .clkr.hw.init = &(const struct clk_init_data) { 1421 + .name = "gcc_gp2_clk_src", 1422 + .parent_data = gcc_parent_data_4, 1423 + .num_parents = ARRAY_SIZE(gcc_parent_data_4), 1424 + .flags = CLK_SET_RATE_PARENT, 1425 + .ops = &clk_rcg2_shared_no_init_park_ops, 1426 + }, 1427 + }; 1428 + 1429 + static struct clk_rcg2 gcc_gp3_clk_src = { 1430 + .cmd_rcgr = 0x93004, 1431 + .mnd_width = 16, 1432 + .hid_width = 5, 1433 + .parent_map = gcc_parent_map_4, 1434 + .freq_tbl = ftbl_gcc_gp1_clk_src, 1435 + .clkr.hw.init = &(const struct clk_init_data) { 1436 + .name = "gcc_gp3_clk_src", 1437 + .parent_data = gcc_parent_data_4, 1438 + .num_parents = ARRAY_SIZE(gcc_parent_data_4), 1439 + .flags = CLK_SET_RATE_PARENT, 1440 + .ops = &clk_rcg2_shared_no_init_park_ops, 1441 + }, 1442 + }; 1443 + 1444 + static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = { 1445 + F(19200000, P_BI_TCXO, 1, 0, 0), 1446 + { } 1447 + }; 1448 + 1449 + static struct clk_rcg2 gcc_pcie_0_aux_clk_src = { 1450 + .cmd_rcgr = 0xc8168, 1451 + .mnd_width = 16, 1452 + .hid_width = 5, 1453 + .parent_map = gcc_parent_map_2, 1454 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1455 + .clkr.hw.init = &(const struct clk_init_data) { 1456 + .name = "gcc_pcie_0_aux_clk_src", 1457 + .parent_data = gcc_parent_data_2, 1458 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1459 + .flags = CLK_SET_RATE_PARENT, 1460 + .ops = &clk_rcg2_shared_no_init_park_ops, 1461 + }, 1462 + }; 1463 + 1464 + static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = { 1465 + F(19200000, P_BI_TCXO, 1, 0, 0), 1466 + F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 1467 + { } 1468 + }; 1469 + 1470 + static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = { 1471 + .cmd_rcgr = 0xc803c, 1472 + .mnd_width = 0, 1473 + .hid_width = 5, 1474 + .parent_map = gcc_parent_map_0, 1475 + .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 1476 + .clkr.hw.init = &(const struct clk_init_data) { 1477 + .name = "gcc_pcie_0_phy_rchng_clk_src", 1478 + .parent_data = gcc_parent_data_0, 1479 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1480 + .flags = CLK_SET_RATE_PARENT, 1481 + .ops = &clk_rcg2_shared_no_init_park_ops, 1482 + }, 1483 + }; 1484 + 1485 + static struct clk_rcg2 gcc_pcie_1_aux_clk_src = { 1486 + .cmd_rcgr = 0x2e168, 1487 + .mnd_width = 16, 1488 + .hid_width = 5, 1489 + .parent_map = gcc_parent_map_2, 1490 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1491 + .clkr.hw.init = &(const struct clk_init_data) { 1492 + .name = "gcc_pcie_1_aux_clk_src", 1493 + .parent_data = gcc_parent_data_2, 1494 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1495 + .flags = CLK_SET_RATE_PARENT, 1496 + .ops = &clk_rcg2_shared_no_init_park_ops, 1497 + }, 1498 + }; 1499 + 1500 + static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = { 1501 + .cmd_rcgr = 0x2e03c, 1502 + .mnd_width = 0, 1503 + .hid_width = 5, 1504 + .parent_map = gcc_parent_map_0, 1505 + .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 1506 + .clkr.hw.init = &(const struct clk_init_data) { 1507 + .name = "gcc_pcie_1_phy_rchng_clk_src", 1508 + .parent_data = gcc_parent_data_0, 1509 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1510 + .flags = CLK_SET_RATE_PARENT, 1511 + .ops = &clk_rcg2_shared_no_init_park_ops, 1512 + }, 1513 + }; 1514 + 1515 + static struct clk_rcg2 gcc_pcie_2_aux_clk_src = { 1516 + .cmd_rcgr = 0xc0168, 1517 + .mnd_width = 16, 1518 + .hid_width = 5, 1519 + .parent_map = gcc_parent_map_2, 1520 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1521 + .clkr.hw.init = &(const struct clk_init_data) { 1522 + .name = "gcc_pcie_2_aux_clk_src", 1523 + .parent_data = gcc_parent_data_2, 1524 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1525 + .flags = CLK_SET_RATE_PARENT, 1526 + .ops = &clk_rcg2_shared_no_init_park_ops, 1527 + }, 1528 + }; 1529 + 1530 + static struct clk_rcg2 gcc_pcie_2_phy_rchng_clk_src = { 1531 + .cmd_rcgr = 0xc003c, 1532 + .mnd_width = 0, 1533 + .hid_width = 5, 1534 + .parent_map = gcc_parent_map_0, 1535 + .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 1536 + .clkr.hw.init = &(const struct clk_init_data) { 1537 + .name = "gcc_pcie_2_phy_rchng_clk_src", 1538 + .parent_data = gcc_parent_data_0, 1539 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1540 + .flags = CLK_SET_RATE_PARENT, 1541 + .ops = &clk_rcg2_shared_no_init_park_ops, 1542 + }, 1543 + }; 1544 + 1545 + static struct clk_rcg2 gcc_pcie_3a_aux_clk_src = { 1546 + .cmd_rcgr = 0xdc08c, 1547 + .mnd_width = 16, 1548 + .hid_width = 5, 1549 + .parent_map = gcc_parent_map_2, 1550 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1551 + .clkr.hw.init = &(const struct clk_init_data) { 1552 + .name = "gcc_pcie_3a_aux_clk_src", 1553 + .parent_data = gcc_parent_data_2, 1554 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1555 + .flags = CLK_SET_RATE_PARENT, 1556 + .ops = &clk_rcg2_shared_no_init_park_ops, 1557 + }, 1558 + }; 1559 + 1560 + static struct clk_rcg2 gcc_pcie_3a_phy_rchng_clk_src = { 1561 + .cmd_rcgr = 0xdc070, 1562 + .mnd_width = 0, 1563 + .hid_width = 5, 1564 + .parent_map = gcc_parent_map_0, 1565 + .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 1566 + .clkr.hw.init = &(const struct clk_init_data) { 1567 + .name = "gcc_pcie_3a_phy_rchng_clk_src", 1568 + .parent_data = gcc_parent_data_0, 1569 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1570 + .flags = CLK_SET_RATE_PARENT, 1571 + .ops = &clk_rcg2_shared_no_init_park_ops, 1572 + }, 1573 + }; 1574 + 1575 + static struct clk_rcg2 gcc_pcie_3b_aux_clk_src = { 1576 + .cmd_rcgr = 0x941b8, 1577 + .mnd_width = 16, 1578 + .hid_width = 5, 1579 + .parent_map = gcc_parent_map_2, 1580 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1581 + .clkr.hw.init = &(const struct clk_init_data) { 1582 + .name = "gcc_pcie_3b_aux_clk_src", 1583 + .parent_data = gcc_parent_data_2, 1584 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1585 + .flags = CLK_SET_RATE_PARENT, 1586 + .ops = &clk_rcg2_shared_no_init_park_ops, 1587 + }, 1588 + }; 1589 + 1590 + static struct clk_rcg2 gcc_pcie_3b_phy_rchng_clk_src = { 1591 + .cmd_rcgr = 0x94088, 1592 + .mnd_width = 0, 1593 + .hid_width = 5, 1594 + .parent_map = gcc_parent_map_0, 1595 + .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 1596 + .clkr.hw.init = &(const struct clk_init_data) { 1597 + .name = "gcc_pcie_3b_phy_rchng_clk_src", 1598 + .parent_data = gcc_parent_data_0, 1599 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1600 + .flags = CLK_SET_RATE_PARENT, 1601 + .ops = &clk_rcg2_shared_no_init_park_ops, 1602 + }, 1603 + }; 1604 + 1605 + static struct clk_rcg2 gcc_pcie_4_aux_clk_src = { 1606 + .cmd_rcgr = 0x881a8, 1607 + .mnd_width = 16, 1608 + .hid_width = 5, 1609 + .parent_map = gcc_parent_map_2, 1610 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1611 + .clkr.hw.init = &(const struct clk_init_data) { 1612 + .name = "gcc_pcie_4_aux_clk_src", 1613 + .parent_data = gcc_parent_data_2, 1614 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1615 + .flags = CLK_SET_RATE_PARENT, 1616 + .ops = &clk_rcg2_shared_no_init_park_ops, 1617 + }, 1618 + }; 1619 + 1620 + static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = { 1621 + .cmd_rcgr = 0x88078, 1622 + .mnd_width = 0, 1623 + .hid_width = 5, 1624 + .parent_map = gcc_parent_map_0, 1625 + .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 1626 + .clkr.hw.init = &(const struct clk_init_data) { 1627 + .name = "gcc_pcie_4_phy_rchng_clk_src", 1628 + .parent_data = gcc_parent_data_0, 1629 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1630 + .flags = CLK_SET_RATE_PARENT, 1631 + .ops = &clk_rcg2_shared_no_init_park_ops, 1632 + }, 1633 + }; 1634 + 1635 + static struct clk_rcg2 gcc_pcie_5_aux_clk_src = { 1636 + .cmd_rcgr = 0xc30a0, 1637 + .mnd_width = 16, 1638 + .hid_width = 5, 1639 + .parent_map = gcc_parent_map_2, 1640 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1641 + .clkr.hw.init = &(const struct clk_init_data) { 1642 + .name = "gcc_pcie_5_aux_clk_src", 1643 + .parent_data = gcc_parent_data_2, 1644 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1645 + .flags = CLK_SET_RATE_PARENT, 1646 + .ops = &clk_rcg2_shared_no_init_park_ops, 1647 + }, 1648 + }; 1649 + 1650 + static struct clk_rcg2 gcc_pcie_5_phy_rchng_clk_src = { 1651 + .cmd_rcgr = 0xc3084, 1652 + .mnd_width = 0, 1653 + .hid_width = 5, 1654 + .parent_map = gcc_parent_map_0, 1655 + .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 1656 + .clkr.hw.init = &(const struct clk_init_data) { 1657 + .name = "gcc_pcie_5_phy_rchng_clk_src", 1658 + .parent_data = gcc_parent_data_0, 1659 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1660 + .flags = CLK_SET_RATE_PARENT, 1661 + .ops = &clk_rcg2_shared_no_init_park_ops, 1662 + }, 1663 + }; 1664 + 1665 + static struct clk_rcg2 gcc_pcie_6_aux_clk_src = { 1666 + .cmd_rcgr = 0x8a1a8, 1667 + .mnd_width = 16, 1668 + .hid_width = 5, 1669 + .parent_map = gcc_parent_map_2, 1670 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1671 + .clkr.hw.init = &(const struct clk_init_data) { 1672 + .name = "gcc_pcie_6_aux_clk_src", 1673 + .parent_data = gcc_parent_data_2, 1674 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1675 + .flags = CLK_SET_RATE_PARENT, 1676 + .ops = &clk_rcg2_shared_no_init_park_ops, 1677 + }, 1678 + }; 1679 + 1680 + static struct clk_rcg2 gcc_pcie_6_phy_rchng_clk_src = { 1681 + .cmd_rcgr = 0x8a078, 1682 + .mnd_width = 0, 1683 + .hid_width = 5, 1684 + .parent_map = gcc_parent_map_0, 1685 + .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 1686 + .clkr.hw.init = &(const struct clk_init_data) { 1687 + .name = "gcc_pcie_6_phy_rchng_clk_src", 1688 + .parent_data = gcc_parent_data_0, 1689 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1690 + .flags = CLK_SET_RATE_PARENT, 1691 + .ops = &clk_rcg2_shared_no_init_park_ops, 1692 + }, 1693 + }; 1694 + 1695 + static struct clk_rcg2 gcc_pcie_phy_3a_aux_clk_src = { 1696 + .cmd_rcgr = 0x6c01c, 1697 + .mnd_width = 16, 1698 + .hid_width = 5, 1699 + .parent_map = gcc_parent_map_2, 1700 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1701 + .clkr.hw.init = &(const struct clk_init_data) { 1702 + .name = "gcc_pcie_phy_3a_aux_clk_src", 1703 + .parent_data = gcc_parent_data_2, 1704 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1705 + .flags = CLK_SET_RATE_PARENT, 1706 + .ops = &clk_rcg2_shared_no_init_park_ops, 1707 + }, 1708 + }; 1709 + 1710 + static struct clk_rcg2 gcc_pcie_phy_3b_aux_clk_src = { 1711 + .cmd_rcgr = 0x7501c, 1712 + .mnd_width = 16, 1713 + .hid_width = 5, 1714 + .parent_map = gcc_parent_map_2, 1715 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1716 + .clkr.hw.init = &(const struct clk_init_data) { 1717 + .name = "gcc_pcie_phy_3b_aux_clk_src", 1718 + .parent_data = gcc_parent_data_2, 1719 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1720 + .flags = CLK_SET_RATE_PARENT, 1721 + .ops = &clk_rcg2_shared_no_init_park_ops, 1722 + }, 1723 + }; 1724 + 1725 + static struct clk_rcg2 gcc_pcie_phy_4_aux_clk_src = { 1726 + .cmd_rcgr = 0xd3018, 1727 + .mnd_width = 16, 1728 + .hid_width = 5, 1729 + .parent_map = gcc_parent_map_2, 1730 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1731 + .clkr.hw.init = &(const struct clk_init_data) { 1732 + .name = "gcc_pcie_phy_4_aux_clk_src", 1733 + .parent_data = gcc_parent_data_2, 1734 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1735 + .flags = CLK_SET_RATE_PARENT, 1736 + .ops = &clk_rcg2_shared_no_init_park_ops, 1737 + }, 1738 + }; 1739 + 1740 + static struct clk_rcg2 gcc_pcie_phy_5_aux_clk_src = { 1741 + .cmd_rcgr = 0xd2018, 1742 + .mnd_width = 16, 1743 + .hid_width = 5, 1744 + .parent_map = gcc_parent_map_2, 1745 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1746 + .clkr.hw.init = &(const struct clk_init_data) { 1747 + .name = "gcc_pcie_phy_5_aux_clk_src", 1748 + .parent_data = gcc_parent_data_2, 1749 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1750 + .flags = CLK_SET_RATE_PARENT, 1751 + .ops = &clk_rcg2_shared_no_init_park_ops, 1752 + }, 1753 + }; 1754 + 1755 + static struct clk_rcg2 gcc_pcie_phy_6_aux_clk_src = { 1756 + .cmd_rcgr = 0xd4018, 1757 + .mnd_width = 16, 1758 + .hid_width = 5, 1759 + .parent_map = gcc_parent_map_2, 1760 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1761 + .clkr.hw.init = &(const struct clk_init_data) { 1762 + .name = "gcc_pcie_phy_6_aux_clk_src", 1763 + .parent_data = gcc_parent_data_2, 1764 + .num_parents = ARRAY_SIZE(gcc_parent_data_2), 1765 + .flags = CLK_SET_RATE_PARENT, 1766 + .ops = &clk_rcg2_shared_no_init_park_ops, 1767 + }, 1768 + }; 1769 + 1770 + static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = { 1771 + F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0), 1772 + { } 1773 + }; 1774 + 1775 + static struct clk_rcg2 gcc_pdm2_clk_src = { 1776 + .cmd_rcgr = 0x33010, 1777 + .mnd_width = 0, 1778 + .hid_width = 5, 1779 + .parent_map = gcc_parent_map_0, 1780 + .freq_tbl = ftbl_gcc_pdm2_clk_src, 1781 + .clkr.hw.init = &(const struct clk_init_data) { 1782 + .name = "gcc_pdm2_clk_src", 1783 + .parent_data = gcc_parent_data_0, 1784 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1785 + .flags = CLK_SET_RATE_PARENT, 1786 + .ops = &clk_rcg2_shared_no_init_park_ops, 1787 + }, 1788 + }; 1789 + 1790 + static const struct freq_tbl ftbl_gcc_qupv3_oob_qspi_s0_clk_src[] = { 1791 + F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 1792 + F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 1793 + F(19200000, P_BI_TCXO, 1, 0, 0), 1794 + F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 1795 + F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 1796 + F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 1797 + F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 1798 + F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 1799 + F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 1800 + F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 1801 + F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 1802 + F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0), 1803 + F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0), 1804 + F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 1805 + F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0), 1806 + { } 1807 + }; 1808 + 1809 + static struct clk_init_data gcc_qupv3_oob_qspi_s0_clk_src_init = { 1810 + .name = "gcc_qupv3_oob_qspi_s0_clk_src", 1811 + .parent_data = gcc_parent_data_3, 1812 + .num_parents = ARRAY_SIZE(gcc_parent_data_3), 1813 + .flags = CLK_SET_RATE_PARENT, 1814 + .ops = &clk_rcg2_shared_no_init_park_ops, 1815 + }; 1816 + 1817 + static struct clk_rcg2 gcc_qupv3_oob_qspi_s0_clk_src = { 1818 + .cmd_rcgr = 0xe7044, 1819 + .mnd_width = 16, 1820 + .hid_width = 5, 1821 + .parent_map = gcc_parent_map_3, 1822 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s0_clk_src, 1823 + .clkr.hw.init = &gcc_qupv3_oob_qspi_s0_clk_src_init, 1824 + }; 1825 + 1826 + static const struct freq_tbl ftbl_gcc_qupv3_oob_qspi_s1_clk_src[] = { 1827 + F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 1828 + F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 1829 + F(19200000, P_BI_TCXO, 1, 0, 0), 1830 + F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 1831 + F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 1832 + F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 1833 + F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 1834 + F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 1835 + F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 1836 + F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 1837 + F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 1838 + F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0), 1839 + F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0), 1840 + F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 1841 + { } 1842 + }; 1843 + 1844 + static struct clk_init_data gcc_qupv3_oob_qspi_s1_clk_src_init = { 1845 + .name = "gcc_qupv3_oob_qspi_s1_clk_src", 1846 + .parent_data = gcc_parent_data_1, 1847 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 1848 + .flags = CLK_SET_RATE_PARENT, 1849 + .ops = &clk_rcg2_shared_no_init_park_ops, 1850 + }; 1851 + 1852 + static struct clk_rcg2 gcc_qupv3_oob_qspi_s1_clk_src = { 1853 + .cmd_rcgr = 0xe7170, 1854 + .mnd_width = 16, 1855 + .hid_width = 5, 1856 + .parent_map = gcc_parent_map_1, 1857 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 1858 + .clkr.hw.init = &gcc_qupv3_oob_qspi_s1_clk_src_init, 1859 + }; 1860 + 1861 + static struct clk_init_data gcc_qupv3_wrap0_qspi_s2_clk_src_init = { 1862 + .name = "gcc_qupv3_wrap0_qspi_s2_clk_src", 1863 + .parent_data = gcc_parent_data_1, 1864 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 1865 + .flags = CLK_SET_RATE_PARENT, 1866 + .ops = &clk_rcg2_shared_no_init_park_ops, 1867 + }; 1868 + 1869 + static struct clk_rcg2 gcc_qupv3_wrap0_qspi_s2_clk_src = { 1870 + .cmd_rcgr = 0x287a0, 1871 + .mnd_width = 16, 1872 + .hid_width = 5, 1873 + .parent_map = gcc_parent_map_1, 1874 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 1875 + .clkr.hw.init = &gcc_qupv3_wrap0_qspi_s2_clk_src_init, 1876 + }; 1877 + 1878 + static struct clk_init_data gcc_qupv3_wrap0_qspi_s3_clk_src_init = { 1879 + .name = "gcc_qupv3_wrap0_qspi_s3_clk_src", 1880 + .parent_data = gcc_parent_data_1, 1881 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 1882 + .flags = CLK_SET_RATE_PARENT, 1883 + .ops = &clk_rcg2_shared_no_init_park_ops, 1884 + }; 1885 + 1886 + static struct clk_rcg2 gcc_qupv3_wrap0_qspi_s3_clk_src = { 1887 + .cmd_rcgr = 0x288d0, 1888 + .mnd_width = 16, 1889 + .hid_width = 5, 1890 + .parent_map = gcc_parent_map_1, 1891 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 1892 + .clkr.hw.init = &gcc_qupv3_wrap0_qspi_s3_clk_src_init, 1893 + }; 1894 + 1895 + static struct clk_init_data gcc_qupv3_wrap0_qspi_s6_clk_src_init = { 1896 + .name = "gcc_qupv3_wrap0_qspi_s6_clk_src", 1897 + .parent_data = gcc_parent_data_1, 1898 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 1899 + .flags = CLK_SET_RATE_PARENT, 1900 + .ops = &clk_rcg2_shared_no_init_park_ops, 1901 + }; 1902 + 1903 + static struct clk_rcg2 gcc_qupv3_wrap0_qspi_s6_clk_src = { 1904 + .cmd_rcgr = 0x2866c, 1905 + .mnd_width = 16, 1906 + .hid_width = 5, 1907 + .parent_map = gcc_parent_map_1, 1908 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 1909 + .clkr.hw.init = &gcc_qupv3_wrap0_qspi_s6_clk_src_init, 1910 + }; 1911 + 1912 + static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = { 1913 + F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 1914 + F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 1915 + F(19200000, P_BI_TCXO, 1, 0, 0), 1916 + F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 1917 + F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 1918 + F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 1919 + F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 1920 + F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 1921 + F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 1922 + F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 1923 + F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 1924 + F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0), 1925 + { } 1926 + }; 1927 + 1928 + static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = { 1929 + .name = "gcc_qupv3_wrap0_s0_clk_src", 1930 + .parent_data = gcc_parent_data_1, 1931 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 1932 + .flags = CLK_SET_RATE_PARENT, 1933 + .ops = &clk_rcg2_shared_no_init_park_ops, 1934 + }; 1935 + 1936 + static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = { 1937 + .cmd_rcgr = 0x28014, 1938 + .mnd_width = 16, 1939 + .hid_width = 5, 1940 + .parent_map = gcc_parent_map_1, 1941 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 1942 + .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init, 1943 + }; 1944 + 1945 + static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = { 1946 + .name = "gcc_qupv3_wrap0_s1_clk_src", 1947 + .parent_data = gcc_parent_data_1, 1948 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 1949 + .flags = CLK_SET_RATE_PARENT, 1950 + .ops = &clk_rcg2_shared_no_init_park_ops, 1951 + }; 1952 + 1953 + static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = { 1954 + .cmd_rcgr = 0x28150, 1955 + .mnd_width = 16, 1956 + .hid_width = 5, 1957 + .parent_map = gcc_parent_map_1, 1958 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 1959 + .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init, 1960 + }; 1961 + 1962 + static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s4_clk_src[] = { 1963 + F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 1964 + F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 1965 + F(19200000, P_BI_TCXO, 1, 0, 0), 1966 + F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 1967 + F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 1968 + F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 1969 + F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 1970 + F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 1971 + F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 1972 + F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 1973 + F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 1974 + { } 1975 + }; 1976 + 1977 + static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = { 1978 + .name = "gcc_qupv3_wrap0_s4_clk_src", 1979 + .parent_data = gcc_parent_data_1, 1980 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 1981 + .flags = CLK_SET_RATE_PARENT, 1982 + .ops = &clk_rcg2_shared_no_init_park_ops, 1983 + }; 1984 + 1985 + static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = { 1986 + .cmd_rcgr = 0x282b4, 1987 + .mnd_width = 16, 1988 + .hid_width = 5, 1989 + .parent_map = gcc_parent_map_1, 1990 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src, 1991 + .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init, 1992 + }; 1993 + 1994 + static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = { 1995 + .name = "gcc_qupv3_wrap0_s5_clk_src", 1996 + .parent_data = gcc_parent_data_1, 1997 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 1998 + .flags = CLK_SET_RATE_PARENT, 1999 + .ops = &clk_rcg2_shared_no_init_park_ops, 2000 + }; 2001 + 2002 + static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = { 2003 + .cmd_rcgr = 0x283f0, 2004 + .mnd_width = 16, 2005 + .hid_width = 5, 2006 + .parent_map = gcc_parent_map_1, 2007 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src, 2008 + .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init, 2009 + }; 2010 + 2011 + static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = { 2012 + .name = "gcc_qupv3_wrap0_s7_clk_src", 2013 + .parent_data = gcc_parent_data_1, 2014 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2015 + .flags = CLK_SET_RATE_PARENT, 2016 + .ops = &clk_rcg2_shared_no_init_park_ops, 2017 + }; 2018 + 2019 + static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = { 2020 + .cmd_rcgr = 0x28540, 2021 + .mnd_width = 16, 2022 + .hid_width = 5, 2023 + .parent_map = gcc_parent_map_1, 2024 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src, 2025 + .clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init, 2026 + }; 2027 + 2028 + static struct clk_init_data gcc_qupv3_wrap1_qspi_s2_clk_src_init = { 2029 + .name = "gcc_qupv3_wrap1_qspi_s2_clk_src", 2030 + .parent_data = gcc_parent_data_1, 2031 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2032 + .flags = CLK_SET_RATE_PARENT, 2033 + .ops = &clk_rcg2_shared_no_init_park_ops, 2034 + }; 2035 + 2036 + static struct clk_rcg2 gcc_qupv3_wrap1_qspi_s2_clk_src = { 2037 + .cmd_rcgr = 0xb37a0, 2038 + .mnd_width = 16, 2039 + .hid_width = 5, 2040 + .parent_map = gcc_parent_map_1, 2041 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 2042 + .clkr.hw.init = &gcc_qupv3_wrap1_qspi_s2_clk_src_init, 2043 + }; 2044 + 2045 + static struct clk_init_data gcc_qupv3_wrap1_qspi_s3_clk_src_init = { 2046 + .name = "gcc_qupv3_wrap1_qspi_s3_clk_src", 2047 + .parent_data = gcc_parent_data_1, 2048 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2049 + .flags = CLK_SET_RATE_PARENT, 2050 + .ops = &clk_rcg2_shared_no_init_park_ops, 2051 + }; 2052 + 2053 + static struct clk_rcg2 gcc_qupv3_wrap1_qspi_s3_clk_src = { 2054 + .cmd_rcgr = 0xb38d0, 2055 + .mnd_width = 16, 2056 + .hid_width = 5, 2057 + .parent_map = gcc_parent_map_1, 2058 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 2059 + .clkr.hw.init = &gcc_qupv3_wrap1_qspi_s3_clk_src_init, 2060 + }; 2061 + 2062 + static struct clk_init_data gcc_qupv3_wrap1_qspi_s6_clk_src_init = { 2063 + .name = "gcc_qupv3_wrap1_qspi_s6_clk_src", 2064 + .parent_data = gcc_parent_data_1, 2065 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2066 + .flags = CLK_SET_RATE_PARENT, 2067 + .ops = &clk_rcg2_shared_no_init_park_ops, 2068 + }; 2069 + 2070 + static struct clk_rcg2 gcc_qupv3_wrap1_qspi_s6_clk_src = { 2071 + .cmd_rcgr = 0xb366c, 2072 + .mnd_width = 16, 2073 + .hid_width = 5, 2074 + .parent_map = gcc_parent_map_1, 2075 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 2076 + .clkr.hw.init = &gcc_qupv3_wrap1_qspi_s6_clk_src_init, 2077 + }; 2078 + 2079 + static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = { 2080 + .name = "gcc_qupv3_wrap1_s0_clk_src", 2081 + .parent_data = gcc_parent_data_1, 2082 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2083 + .flags = CLK_SET_RATE_PARENT, 2084 + .ops = &clk_rcg2_shared_no_init_park_ops, 2085 + }; 2086 + 2087 + static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = { 2088 + .cmd_rcgr = 0xb3014, 2089 + .mnd_width = 16, 2090 + .hid_width = 5, 2091 + .parent_map = gcc_parent_map_1, 2092 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 2093 + .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init, 2094 + }; 2095 + 2096 + static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = { 2097 + .name = "gcc_qupv3_wrap1_s1_clk_src", 2098 + .parent_data = gcc_parent_data_1, 2099 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2100 + .flags = CLK_SET_RATE_PARENT, 2101 + .ops = &clk_rcg2_shared_no_init_park_ops, 2102 + }; 2103 + 2104 + static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = { 2105 + .cmd_rcgr = 0xb3150, 2106 + .mnd_width = 16, 2107 + .hid_width = 5, 2108 + .parent_map = gcc_parent_map_1, 2109 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 2110 + .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init, 2111 + }; 2112 + 2113 + static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = { 2114 + .name = "gcc_qupv3_wrap1_s4_clk_src", 2115 + .parent_data = gcc_parent_data_1, 2116 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2117 + .flags = CLK_SET_RATE_PARENT, 2118 + .ops = &clk_rcg2_shared_no_init_park_ops, 2119 + }; 2120 + 2121 + static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = { 2122 + .cmd_rcgr = 0xb32b4, 2123 + .mnd_width = 16, 2124 + .hid_width = 5, 2125 + .parent_map = gcc_parent_map_1, 2126 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src, 2127 + .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init, 2128 + }; 2129 + 2130 + static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = { 2131 + .name = "gcc_qupv3_wrap1_s5_clk_src", 2132 + .parent_data = gcc_parent_data_1, 2133 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2134 + .flags = CLK_SET_RATE_PARENT, 2135 + .ops = &clk_rcg2_shared_no_init_park_ops, 2136 + }; 2137 + 2138 + static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = { 2139 + .cmd_rcgr = 0xb33f0, 2140 + .mnd_width = 16, 2141 + .hid_width = 5, 2142 + .parent_map = gcc_parent_map_1, 2143 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src, 2144 + .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init, 2145 + }; 2146 + 2147 + static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = { 2148 + .name = "gcc_qupv3_wrap1_s7_clk_src", 2149 + .parent_data = gcc_parent_data_1, 2150 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2151 + .flags = CLK_SET_RATE_PARENT, 2152 + .ops = &clk_rcg2_shared_no_init_park_ops, 2153 + }; 2154 + 2155 + static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = { 2156 + .cmd_rcgr = 0xb3540, 2157 + .mnd_width = 16, 2158 + .hid_width = 5, 2159 + .parent_map = gcc_parent_map_1, 2160 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src, 2161 + .clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init, 2162 + }; 2163 + 2164 + static struct clk_init_data gcc_qupv3_wrap2_qspi_s2_clk_src_init = { 2165 + .name = "gcc_qupv3_wrap2_qspi_s2_clk_src", 2166 + .parent_data = gcc_parent_data_1, 2167 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2168 + .flags = CLK_SET_RATE_PARENT, 2169 + .ops = &clk_rcg2_shared_no_init_park_ops, 2170 + }; 2171 + 2172 + static struct clk_rcg2 gcc_qupv3_wrap2_qspi_s2_clk_src = { 2173 + .cmd_rcgr = 0xb47a0, 2174 + .mnd_width = 16, 2175 + .hid_width = 5, 2176 + .parent_map = gcc_parent_map_1, 2177 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 2178 + .clkr.hw.init = &gcc_qupv3_wrap2_qspi_s2_clk_src_init, 2179 + }; 2180 + 2181 + static struct clk_init_data gcc_qupv3_wrap2_qspi_s3_clk_src_init = { 2182 + .name = "gcc_qupv3_wrap2_qspi_s3_clk_src", 2183 + .parent_data = gcc_parent_data_1, 2184 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2185 + .flags = CLK_SET_RATE_PARENT, 2186 + .ops = &clk_rcg2_shared_no_init_park_ops, 2187 + }; 2188 + 2189 + static struct clk_rcg2 gcc_qupv3_wrap2_qspi_s3_clk_src = { 2190 + .cmd_rcgr = 0xb48d0, 2191 + .mnd_width = 16, 2192 + .hid_width = 5, 2193 + .parent_map = gcc_parent_map_1, 2194 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 2195 + .clkr.hw.init = &gcc_qupv3_wrap2_qspi_s3_clk_src_init, 2196 + }; 2197 + 2198 + static struct clk_init_data gcc_qupv3_wrap2_qspi_s6_clk_src_init = { 2199 + .name = "gcc_qupv3_wrap2_qspi_s6_clk_src", 2200 + .parent_data = gcc_parent_data_1, 2201 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2202 + .flags = CLK_SET_RATE_PARENT, 2203 + .ops = &clk_rcg2_shared_no_init_park_ops, 2204 + }; 2205 + 2206 + static struct clk_rcg2 gcc_qupv3_wrap2_qspi_s6_clk_src = { 2207 + .cmd_rcgr = 0xb466c, 2208 + .mnd_width = 16, 2209 + .hid_width = 5, 2210 + .parent_map = gcc_parent_map_1, 2211 + .freq_tbl = ftbl_gcc_qupv3_oob_qspi_s1_clk_src, 2212 + .clkr.hw.init = &gcc_qupv3_wrap2_qspi_s6_clk_src_init, 2213 + }; 2214 + 2215 + static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = { 2216 + .name = "gcc_qupv3_wrap2_s0_clk_src", 2217 + .parent_data = gcc_parent_data_1, 2218 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2219 + .flags = CLK_SET_RATE_PARENT, 2220 + .ops = &clk_rcg2_shared_no_init_park_ops, 2221 + }; 2222 + 2223 + static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = { 2224 + .cmd_rcgr = 0xb4014, 2225 + .mnd_width = 16, 2226 + .hid_width = 5, 2227 + .parent_map = gcc_parent_map_1, 2228 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 2229 + .clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init, 2230 + }; 2231 + 2232 + static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = { 2233 + .name = "gcc_qupv3_wrap2_s1_clk_src", 2234 + .parent_data = gcc_parent_data_1, 2235 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2236 + .flags = CLK_SET_RATE_PARENT, 2237 + .ops = &clk_rcg2_shared_no_init_park_ops, 2238 + }; 2239 + 2240 + static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = { 2241 + .cmd_rcgr = 0xb4150, 2242 + .mnd_width = 16, 2243 + .hid_width = 5, 2244 + .parent_map = gcc_parent_map_1, 2245 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 2246 + .clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init, 2247 + }; 2248 + 2249 + static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = { 2250 + .name = "gcc_qupv3_wrap2_s4_clk_src", 2251 + .parent_data = gcc_parent_data_1, 2252 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2253 + .flags = CLK_SET_RATE_PARENT, 2254 + .ops = &clk_rcg2_shared_no_init_park_ops, 2255 + }; 2256 + 2257 + static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = { 2258 + .cmd_rcgr = 0xb42b4, 2259 + .mnd_width = 16, 2260 + .hid_width = 5, 2261 + .parent_map = gcc_parent_map_1, 2262 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src, 2263 + .clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init, 2264 + }; 2265 + 2266 + static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = { 2267 + .name = "gcc_qupv3_wrap2_s5_clk_src", 2268 + .parent_data = gcc_parent_data_1, 2269 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2270 + .flags = CLK_SET_RATE_PARENT, 2271 + .ops = &clk_rcg2_shared_no_init_park_ops, 2272 + }; 2273 + 2274 + static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = { 2275 + .cmd_rcgr = 0xb43f0, 2276 + .mnd_width = 16, 2277 + .hid_width = 5, 2278 + .parent_map = gcc_parent_map_1, 2279 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src, 2280 + .clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init, 2281 + }; 2282 + 2283 + static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = { 2284 + .name = "gcc_qupv3_wrap2_s7_clk_src", 2285 + .parent_data = gcc_parent_data_1, 2286 + .num_parents = ARRAY_SIZE(gcc_parent_data_1), 2287 + .flags = CLK_SET_RATE_PARENT, 2288 + .ops = &clk_rcg2_shared_no_init_park_ops, 2289 + }; 2290 + 2291 + static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = { 2292 + .cmd_rcgr = 0xb4540, 2293 + .mnd_width = 16, 2294 + .hid_width = 5, 2295 + .parent_map = gcc_parent_map_1, 2296 + .freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src, 2297 + .clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init, 2298 + }; 2299 + 2300 + static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = { 2301 + F(400000, P_BI_TCXO, 12, 1, 4), 2302 + F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), 2303 + F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0), 2304 + F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 2305 + F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0), 2306 + { } 2307 + }; 2308 + 2309 + static struct clk_rcg2 gcc_sdcc2_apps_clk_src = { 2310 + .cmd_rcgr = 0xb001c, 2311 + .mnd_width = 8, 2312 + .hid_width = 5, 2313 + .parent_map = gcc_parent_map_17, 2314 + .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src, 2315 + .clkr.hw.init = &(const struct clk_init_data) { 2316 + .name = "gcc_sdcc2_apps_clk_src", 2317 + .parent_data = gcc_parent_data_17, 2318 + .num_parents = ARRAY_SIZE(gcc_parent_data_17), 2319 + .flags = CLK_SET_RATE_PARENT, 2320 + .ops = &clk_rcg2_floor_ops, 2321 + }, 2322 + }; 2323 + 2324 + static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = { 2325 + F(400000, P_BI_TCXO, 12, 1, 4), 2326 + F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), 2327 + F(75000000, P_GCC_GPLL0_OUT_MAIN, 8, 0, 0), 2328 + { } 2329 + }; 2330 + 2331 + static struct clk_rcg2 gcc_sdcc4_apps_clk_src = { 2332 + .cmd_rcgr = 0xdf01c, 2333 + .mnd_width = 8, 2334 + .hid_width = 5, 2335 + .parent_map = gcc_parent_map_3, 2336 + .freq_tbl = ftbl_gcc_sdcc4_apps_clk_src, 2337 + .clkr.hw.init = &(const struct clk_init_data) { 2338 + .name = "gcc_sdcc4_apps_clk_src", 2339 + .parent_data = gcc_parent_data_3, 2340 + .num_parents = ARRAY_SIZE(gcc_parent_data_3), 2341 + .flags = CLK_SET_RATE_PARENT, 2342 + .ops = &clk_rcg2_floor_ops, 2343 + }, 2344 + }; 2345 + 2346 + static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = { 2347 + F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), 2348 + F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 2349 + F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0), 2350 + F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0), 2351 + { } 2352 + }; 2353 + 2354 + static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = { 2355 + .cmd_rcgr = 0x77038, 2356 + .mnd_width = 8, 2357 + .hid_width = 5, 2358 + .parent_map = gcc_parent_map_6, 2359 + .freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src, 2360 + .clkr.hw.init = &(const struct clk_init_data) { 2361 + .name = "gcc_ufs_phy_axi_clk_src", 2362 + .parent_data = gcc_parent_data_6, 2363 + .num_parents = ARRAY_SIZE(gcc_parent_data_6), 2364 + .flags = CLK_SET_RATE_PARENT, 2365 + .ops = &clk_rcg2_shared_no_init_park_ops, 2366 + }, 2367 + }; 2368 + 2369 + static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = { 2370 + F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 2371 + F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0), 2372 + F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0), 2373 + { } 2374 + }; 2375 + 2376 + static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = { 2377 + .cmd_rcgr = 0x77090, 2378 + .mnd_width = 0, 2379 + .hid_width = 5, 2380 + .parent_map = gcc_parent_map_6, 2381 + .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src, 2382 + .clkr.hw.init = &(const struct clk_init_data) { 2383 + .name = "gcc_ufs_phy_ice_core_clk_src", 2384 + .parent_data = gcc_parent_data_6, 2385 + .num_parents = ARRAY_SIZE(gcc_parent_data_6), 2386 + .flags = CLK_SET_RATE_PARENT, 2387 + .ops = &clk_rcg2_shared_no_init_park_ops, 2388 + }, 2389 + }; 2390 + 2391 + static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = { 2392 + .cmd_rcgr = 0x770c4, 2393 + .mnd_width = 0, 2394 + .hid_width = 5, 2395 + .parent_map = gcc_parent_map_5, 2396 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2397 + .clkr.hw.init = &(const struct clk_init_data) { 2398 + .name = "gcc_ufs_phy_phy_aux_clk_src", 2399 + .parent_data = gcc_parent_data_5, 2400 + .num_parents = ARRAY_SIZE(gcc_parent_data_5), 2401 + .flags = CLK_SET_RATE_PARENT, 2402 + .ops = &clk_rcg2_shared_no_init_park_ops, 2403 + }, 2404 + }; 2405 + 2406 + static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = { 2407 + .cmd_rcgr = 0x770a8, 2408 + .mnd_width = 0, 2409 + .hid_width = 5, 2410 + .parent_map = gcc_parent_map_6, 2411 + .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src, 2412 + .clkr.hw.init = &(const struct clk_init_data) { 2413 + .name = "gcc_ufs_phy_unipro_core_clk_src", 2414 + .parent_data = gcc_parent_data_6, 2415 + .num_parents = ARRAY_SIZE(gcc_parent_data_6), 2416 + .flags = CLK_SET_RATE_PARENT, 2417 + .ops = &clk_rcg2_shared_no_init_park_ops, 2418 + }, 2419 + }; 2420 + 2421 + static const struct freq_tbl ftbl_gcc_usb20_master_clk_src[] = { 2422 + F(60000000, P_GCC_GPLL14_OUT_MAIN, 10, 0, 0), 2423 + F(120000000, P_GCC_GPLL14_OUT_MAIN, 5, 0, 0), 2424 + { } 2425 + }; 2426 + 2427 + static struct clk_rcg2 gcc_usb20_master_clk_src = { 2428 + .cmd_rcgr = 0xbc030, 2429 + .mnd_width = 8, 2430 + .hid_width = 5, 2431 + .parent_map = gcc_parent_map_7, 2432 + .freq_tbl = ftbl_gcc_usb20_master_clk_src, 2433 + .clkr.hw.init = &(const struct clk_init_data) { 2434 + .name = "gcc_usb20_master_clk_src", 2435 + .parent_data = gcc_parent_data_7, 2436 + .num_parents = ARRAY_SIZE(gcc_parent_data_7), 2437 + .flags = CLK_SET_RATE_PARENT, 2438 + .ops = &clk_rcg2_shared_no_init_park_ops, 2439 + }, 2440 + }; 2441 + 2442 + static struct clk_rcg2 gcc_usb20_mock_utmi_clk_src = { 2443 + .cmd_rcgr = 0xbc048, 2444 + .mnd_width = 0, 2445 + .hid_width = 5, 2446 + .parent_map = gcc_parent_map_7, 2447 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2448 + .clkr.hw.init = &(const struct clk_init_data) { 2449 + .name = "gcc_usb20_mock_utmi_clk_src", 2450 + .parent_data = gcc_parent_data_7, 2451 + .num_parents = ARRAY_SIZE(gcc_parent_data_7), 2452 + .flags = CLK_SET_RATE_PARENT, 2453 + .ops = &clk_rcg2_shared_no_init_park_ops, 2454 + }, 2455 + }; 2456 + 2457 + static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = { 2458 + F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0), 2459 + F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0), 2460 + F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 2461 + F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0), 2462 + { } 2463 + }; 2464 + 2465 + static struct clk_rcg2 gcc_usb30_mp_master_clk_src = { 2466 + .cmd_rcgr = 0x9a03c, 2467 + .mnd_width = 8, 2468 + .hid_width = 5, 2469 + .parent_map = gcc_parent_map_0, 2470 + .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src, 2471 + .clkr.hw.init = &(const struct clk_init_data) { 2472 + .name = "gcc_usb30_mp_master_clk_src", 2473 + .parent_data = gcc_parent_data_0, 2474 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 2475 + .flags = CLK_SET_RATE_PARENT, 2476 + .ops = &clk_rcg2_shared_no_init_park_ops, 2477 + }, 2478 + }; 2479 + 2480 + static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = { 2481 + .cmd_rcgr = 0x9a054, 2482 + .mnd_width = 0, 2483 + .hid_width = 5, 2484 + .parent_map = gcc_parent_map_0, 2485 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2486 + .clkr.hw.init = &(const struct clk_init_data) { 2487 + .name = "gcc_usb30_mp_mock_utmi_clk_src", 2488 + .parent_data = gcc_parent_data_0, 2489 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 2490 + .flags = CLK_SET_RATE_PARENT, 2491 + .ops = &clk_rcg2_shared_no_init_park_ops, 2492 + }, 2493 + }; 2494 + 2495 + static struct clk_rcg2 gcc_usb30_prim_master_clk_src = { 2496 + .cmd_rcgr = 0x3f04c, 2497 + .mnd_width = 8, 2498 + .hid_width = 5, 2499 + .parent_map = gcc_parent_map_0, 2500 + .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src, 2501 + .clkr.hw.init = &(const struct clk_init_data) { 2502 + .name = "gcc_usb30_prim_master_clk_src", 2503 + .parent_data = gcc_parent_data_0, 2504 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 2505 + .flags = CLK_SET_RATE_PARENT, 2506 + .ops = &clk_rcg2_shared_no_init_park_ops, 2507 + }, 2508 + }; 2509 + 2510 + static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = { 2511 + .cmd_rcgr = 0x3f064, 2512 + .mnd_width = 0, 2513 + .hid_width = 5, 2514 + .parent_map = gcc_parent_map_0, 2515 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2516 + .clkr.hw.init = &(const struct clk_init_data) { 2517 + .name = "gcc_usb30_prim_mock_utmi_clk_src", 2518 + .parent_data = gcc_parent_data_0, 2519 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 2520 + .flags = CLK_SET_RATE_PARENT, 2521 + .ops = &clk_rcg2_shared_no_init_park_ops, 2522 + }, 2523 + }; 2524 + 2525 + static struct clk_rcg2 gcc_usb30_sec_master_clk_src = { 2526 + .cmd_rcgr = 0xe203c, 2527 + .mnd_width = 8, 2528 + .hid_width = 5, 2529 + .parent_map = gcc_parent_map_0, 2530 + .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src, 2531 + .clkr.hw.init = &(const struct clk_init_data) { 2532 + .name = "gcc_usb30_sec_master_clk_src", 2533 + .parent_data = gcc_parent_data_0, 2534 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 2535 + .flags = CLK_SET_RATE_PARENT, 2536 + .ops = &clk_rcg2_shared_no_init_park_ops, 2537 + }, 2538 + }; 2539 + 2540 + static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = { 2541 + .cmd_rcgr = 0xe2054, 2542 + .mnd_width = 0, 2543 + .hid_width = 5, 2544 + .parent_map = gcc_parent_map_0, 2545 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2546 + .clkr.hw.init = &(const struct clk_init_data) { 2547 + .name = "gcc_usb30_sec_mock_utmi_clk_src", 2548 + .parent_data = gcc_parent_data_0, 2549 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 2550 + .flags = CLK_SET_RATE_PARENT, 2551 + .ops = &clk_rcg2_shared_no_init_park_ops, 2552 + }, 2553 + }; 2554 + 2555 + static struct clk_rcg2 gcc_usb30_tert_master_clk_src = { 2556 + .cmd_rcgr = 0xe103c, 2557 + .mnd_width = 8, 2558 + .hid_width = 5, 2559 + .parent_map = gcc_parent_map_0, 2560 + .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src, 2561 + .clkr.hw.init = &(const struct clk_init_data) { 2562 + .name = "gcc_usb30_tert_master_clk_src", 2563 + .parent_data = gcc_parent_data_0, 2564 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 2565 + .flags = CLK_SET_RATE_PARENT, 2566 + .ops = &clk_rcg2_shared_no_init_park_ops, 2567 + }, 2568 + }; 2569 + 2570 + static struct clk_rcg2 gcc_usb30_tert_mock_utmi_clk_src = { 2571 + .cmd_rcgr = 0xe1054, 2572 + .mnd_width = 0, 2573 + .hid_width = 5, 2574 + .parent_map = gcc_parent_map_0, 2575 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2576 + .clkr.hw.init = &(const struct clk_init_data) { 2577 + .name = "gcc_usb30_tert_mock_utmi_clk_src", 2578 + .parent_data = gcc_parent_data_0, 2579 + .num_parents = ARRAY_SIZE(gcc_parent_data_0), 2580 + .flags = CLK_SET_RATE_PARENT, 2581 + .ops = &clk_rcg2_shared_no_init_park_ops, 2582 + }, 2583 + }; 2584 + 2585 + static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = { 2586 + .cmd_rcgr = 0x9a088, 2587 + .mnd_width = 0, 2588 + .hid_width = 5, 2589 + .parent_map = gcc_parent_map_8, 2590 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2591 + .clkr.hw.init = &(const struct clk_init_data) { 2592 + .name = "gcc_usb3_mp_phy_aux_clk_src", 2593 + .parent_data = gcc_parent_data_8, 2594 + .num_parents = ARRAY_SIZE(gcc_parent_data_8), 2595 + .flags = CLK_SET_RATE_PARENT, 2596 + .ops = &clk_rcg2_shared_no_init_park_ops, 2597 + }, 2598 + }; 2599 + 2600 + static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = { 2601 + .cmd_rcgr = 0x3f090, 2602 + .mnd_width = 0, 2603 + .hid_width = 5, 2604 + .parent_map = gcc_parent_map_8, 2605 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2606 + .clkr.hw.init = &(const struct clk_init_data) { 2607 + .name = "gcc_usb3_prim_phy_aux_clk_src", 2608 + .parent_data = gcc_parent_data_8, 2609 + .num_parents = ARRAY_SIZE(gcc_parent_data_8), 2610 + .flags = CLK_SET_RATE_PARENT, 2611 + .ops = &clk_rcg2_shared_no_init_park_ops, 2612 + }, 2613 + }; 2614 + 2615 + static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = { 2616 + .cmd_rcgr = 0xe2080, 2617 + .mnd_width = 0, 2618 + .hid_width = 5, 2619 + .parent_map = gcc_parent_map_8, 2620 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2621 + .clkr.hw.init = &(const struct clk_init_data) { 2622 + .name = "gcc_usb3_sec_phy_aux_clk_src", 2623 + .parent_data = gcc_parent_data_8, 2624 + .num_parents = ARRAY_SIZE(gcc_parent_data_8), 2625 + .flags = CLK_SET_RATE_PARENT, 2626 + .ops = &clk_rcg2_shared_no_init_park_ops, 2627 + }, 2628 + }; 2629 + 2630 + static struct clk_rcg2 gcc_usb3_tert_phy_aux_clk_src = { 2631 + .cmd_rcgr = 0xe1080, 2632 + .mnd_width = 0, 2633 + .hid_width = 5, 2634 + .parent_map = gcc_parent_map_8, 2635 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2636 + .clkr.hw.init = &(const struct clk_init_data) { 2637 + .name = "gcc_usb3_tert_phy_aux_clk_src", 2638 + .parent_data = gcc_parent_data_8, 2639 + .num_parents = ARRAY_SIZE(gcc_parent_data_8), 2640 + .flags = CLK_SET_RATE_PARENT, 2641 + .ops = &clk_rcg2_shared_no_init_park_ops, 2642 + }, 2643 + }; 2644 + 2645 + static const struct freq_tbl ftbl_gcc_usb4_0_master_clk_src[] = { 2646 + F(85714286, P_GCC_GPLL0_OUT_EVEN, 3.5, 0, 0), 2647 + F(177666750, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0), 2648 + F(355333500, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0), 2649 + { } 2650 + }; 2651 + 2652 + static struct clk_rcg2 gcc_usb4_0_master_clk_src = { 2653 + .cmd_rcgr = 0x2b02c, 2654 + .mnd_width = 8, 2655 + .hid_width = 5, 2656 + .parent_map = gcc_parent_map_9, 2657 + .freq_tbl = ftbl_gcc_usb4_0_master_clk_src, 2658 + .clkr.hw.init = &(const struct clk_init_data) { 2659 + .name = "gcc_usb4_0_master_clk_src", 2660 + .parent_data = gcc_parent_data_9, 2661 + .num_parents = ARRAY_SIZE(gcc_parent_data_9), 2662 + .flags = CLK_SET_RATE_PARENT, 2663 + .ops = &clk_rcg2_shared_no_init_park_ops, 2664 + }, 2665 + }; 2666 + 2667 + static const struct freq_tbl ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src[] = { 2668 + F(19200000, P_BI_TCXO, 1, 0, 0), 2669 + F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0), 2670 + F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0), 2671 + { } 2672 + }; 2673 + 2674 + static struct clk_rcg2 gcc_usb4_0_phy_pcie_pipe_clk_src = { 2675 + .cmd_rcgr = 0x2b104, 2676 + .mnd_width = 0, 2677 + .hid_width = 5, 2678 + .parent_map = gcc_parent_map_32, 2679 + .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src, 2680 + .clkr.hw.init = &(const struct clk_init_data) { 2681 + .name = "gcc_usb4_0_phy_pcie_pipe_clk_src", 2682 + .parent_data = gcc_parent_data_32, 2683 + .num_parents = ARRAY_SIZE(gcc_parent_data_32), 2684 + .flags = CLK_SET_RATE_PARENT, 2685 + .ops = &clk_rcg2_shared_no_init_park_ops, 2686 + }, 2687 + }; 2688 + 2689 + static struct clk_rcg2 gcc_usb4_0_sb_if_clk_src = { 2690 + .cmd_rcgr = 0x2b0a0, 2691 + .mnd_width = 0, 2692 + .hid_width = 5, 2693 + .parent_map = gcc_parent_map_5, 2694 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2695 + .clkr.hw.init = &(const struct clk_init_data) { 2696 + .name = "gcc_usb4_0_sb_if_clk_src", 2697 + .parent_data = gcc_parent_data_5, 2698 + .num_parents = ARRAY_SIZE(gcc_parent_data_5), 2699 + .flags = CLK_SET_RATE_PARENT, 2700 + .ops = &clk_rcg2_shared_no_init_park_ops, 2701 + }, 2702 + }; 2703 + 2704 + static struct clk_rcg2 gcc_usb4_0_tmu_clk_src = { 2705 + .cmd_rcgr = 0x2b084, 2706 + .mnd_width = 0, 2707 + .hid_width = 5, 2708 + .parent_map = gcc_parent_map_10, 2709 + .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src, 2710 + .clkr.hw.init = &(const struct clk_init_data) { 2711 + .name = "gcc_usb4_0_tmu_clk_src", 2712 + .parent_data = gcc_parent_data_10, 2713 + .num_parents = ARRAY_SIZE(gcc_parent_data_10), 2714 + .flags = CLK_SET_RATE_PARENT, 2715 + .ops = &clk_rcg2_shared_no_init_park_ops, 2716 + }, 2717 + }; 2718 + 2719 + static struct clk_rcg2 gcc_usb4_1_master_clk_src = { 2720 + .cmd_rcgr = 0x2d02c, 2721 + .mnd_width = 8, 2722 + .hid_width = 5, 2723 + .parent_map = gcc_parent_map_9, 2724 + .freq_tbl = ftbl_gcc_usb4_0_master_clk_src, 2725 + .clkr.hw.init = &(const struct clk_init_data) { 2726 + .name = "gcc_usb4_1_master_clk_src", 2727 + .parent_data = gcc_parent_data_9, 2728 + .num_parents = ARRAY_SIZE(gcc_parent_data_9), 2729 + .flags = CLK_SET_RATE_PARENT, 2730 + .ops = &clk_rcg2_shared_no_init_park_ops, 2731 + }, 2732 + }; 2733 + 2734 + static const struct freq_tbl ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src[] = { 2735 + F(19200000, P_BI_TCXO, 1, 0, 0), 2736 + F(177666750, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0), 2737 + F(355333500, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0), 2738 + { } 2739 + }; 2740 + 2741 + static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = { 2742 + .cmd_rcgr = 0x2d128, 2743 + .mnd_width = 0, 2744 + .hid_width = 5, 2745 + .parent_map = gcc_parent_map_11, 2746 + .freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src, 2747 + .clkr.hw.init = &(const struct clk_init_data) { 2748 + .name = "gcc_usb4_1_phy_pcie_pipe_clk_src", 2749 + .parent_data = gcc_parent_data_11, 2750 + .num_parents = ARRAY_SIZE(gcc_parent_data_11), 2751 + .flags = CLK_SET_RATE_PARENT, 2752 + .ops = &clk_rcg2_shared_no_init_park_ops, 2753 + }, 2754 + }; 2755 + 2756 + static const struct freq_tbl ftbl_gcc_usb4_1_phy_pll_pipe_clk_src[] = { 2757 + F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 2758 + F(311000000, P_GCC_GPLL5_OUT_MAIN, 3, 0, 0), 2759 + { } 2760 + }; 2761 + 2762 + static struct clk_rcg2 gcc_usb4_1_phy_pll_pipe_clk_src = { 2763 + .cmd_rcgr = 0x2d0c8, 2764 + .mnd_width = 0, 2765 + .hid_width = 5, 2766 + .parent_map = gcc_parent_map_41, 2767 + .freq_tbl = ftbl_gcc_usb4_1_phy_pll_pipe_clk_src, 2768 + .clkr.hw.init = &(const struct clk_init_data) { 2769 + .name = "gcc_usb4_1_phy_pll_pipe_clk_src", 2770 + .parent_data = gcc_parent_data_41, 2771 + .num_parents = ARRAY_SIZE(gcc_parent_data_41), 2772 + .flags = CLK_SET_RATE_PARENT, 2773 + .ops = &clk_rcg2_shared_no_init_park_ops, 2774 + }, 2775 + }; 2776 + 2777 + static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = { 2778 + .cmd_rcgr = 0x2d0ac, 2779 + .mnd_width = 0, 2780 + .hid_width = 5, 2781 + .parent_map = gcc_parent_map_5, 2782 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2783 + .clkr.hw.init = &(const struct clk_init_data) { 2784 + .name = "gcc_usb4_1_sb_if_clk_src", 2785 + .parent_data = gcc_parent_data_5, 2786 + .num_parents = ARRAY_SIZE(gcc_parent_data_5), 2787 + .flags = CLK_SET_RATE_PARENT, 2788 + .ops = &clk_rcg2_shared_no_init_park_ops, 2789 + }, 2790 + }; 2791 + 2792 + static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = { 2793 + .cmd_rcgr = 0x2d090, 2794 + .mnd_width = 0, 2795 + .hid_width = 5, 2796 + .parent_map = gcc_parent_map_10, 2797 + .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src, 2798 + .clkr.hw.init = &(const struct clk_init_data) { 2799 + .name = "gcc_usb4_1_tmu_clk_src", 2800 + .parent_data = gcc_parent_data_10, 2801 + .num_parents = ARRAY_SIZE(gcc_parent_data_10), 2802 + .flags = CLK_SET_RATE_PARENT, 2803 + .ops = &clk_rcg2_shared_no_init_park_ops, 2804 + }, 2805 + }; 2806 + 2807 + static struct clk_rcg2 gcc_usb4_2_master_clk_src = { 2808 + .cmd_rcgr = 0xe002c, 2809 + .mnd_width = 8, 2810 + .hid_width = 5, 2811 + .parent_map = gcc_parent_map_9, 2812 + .freq_tbl = ftbl_gcc_usb4_0_master_clk_src, 2813 + .clkr.hw.init = &(const struct clk_init_data) { 2814 + .name = "gcc_usb4_2_master_clk_src", 2815 + .parent_data = gcc_parent_data_9, 2816 + .num_parents = ARRAY_SIZE(gcc_parent_data_9), 2817 + .flags = CLK_SET_RATE_PARENT, 2818 + .ops = &clk_rcg2_shared_no_init_park_ops, 2819 + }, 2820 + }; 2821 + 2822 + static struct clk_rcg2 gcc_usb4_2_phy_pcie_pipe_clk_src = { 2823 + .cmd_rcgr = 0xe0108, 2824 + .mnd_width = 0, 2825 + .hid_width = 5, 2826 + .parent_map = gcc_parent_map_11, 2827 + .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src, 2828 + .clkr.hw.init = &(const struct clk_init_data) { 2829 + .name = "gcc_usb4_2_phy_pcie_pipe_clk_src", 2830 + .parent_data = gcc_parent_data_11, 2831 + .num_parents = ARRAY_SIZE(gcc_parent_data_11), 2832 + .flags = CLK_SET_RATE_PARENT, 2833 + .ops = &clk_rcg2_shared_no_init_park_ops, 2834 + }, 2835 + }; 2836 + 2837 + static struct clk_rcg2 gcc_usb4_2_sb_if_clk_src = { 2838 + .cmd_rcgr = 0xe00a4, 2839 + .mnd_width = 0, 2840 + .hid_width = 5, 2841 + .parent_map = gcc_parent_map_5, 2842 + .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 2843 + .clkr.hw.init = &(const struct clk_init_data) { 2844 + .name = "gcc_usb4_2_sb_if_clk_src", 2845 + .parent_data = gcc_parent_data_5, 2846 + .num_parents = ARRAY_SIZE(gcc_parent_data_5), 2847 + .flags = CLK_SET_RATE_PARENT, 2848 + .ops = &clk_rcg2_shared_no_init_park_ops, 2849 + }, 2850 + }; 2851 + 2852 + static struct clk_rcg2 gcc_usb4_2_tmu_clk_src = { 2853 + .cmd_rcgr = 0xe0088, 2854 + .mnd_width = 0, 2855 + .hid_width = 5, 2856 + .parent_map = gcc_parent_map_10, 2857 + .freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src, 2858 + .clkr.hw.init = &(const struct clk_init_data) { 2859 + .name = "gcc_usb4_2_tmu_clk_src", 2860 + .parent_data = gcc_parent_data_10, 2861 + .num_parents = ARRAY_SIZE(gcc_parent_data_10), 2862 + .flags = CLK_SET_RATE_PARENT, 2863 + .ops = &clk_rcg2_shared_no_init_park_ops, 2864 + }, 2865 + }; 2866 + 2867 + static struct clk_regmap_div gcc_pcie_3b_pipe_div_clk_src = { 2868 + .reg = 0x94070, 2869 + .shift = 0, 2870 + .width = 4, 2871 + .clkr.hw.init = &(const struct clk_init_data) { 2872 + .name = "gcc_pcie_3b_pipe_div_clk_src", 2873 + .parent_hws = (const struct clk_hw*[]) { 2874 + &gcc_pcie_3b_pipe_clk_src.clkr.hw, 2875 + }, 2876 + .num_parents = 1, 2877 + .flags = CLK_SET_RATE_PARENT, 2878 + .ops = &clk_regmap_div_ro_ops, 2879 + }, 2880 + }; 2881 + 2882 + static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = { 2883 + .reg = 0x88060, 2884 + .shift = 0, 2885 + .width = 4, 2886 + .clkr.hw.init = &(const struct clk_init_data) { 2887 + .name = "gcc_pcie_4_pipe_div_clk_src", 2888 + .parent_hws = (const struct clk_hw*[]) { 2889 + &gcc_pcie_4_pipe_clk_src.clkr.hw, 2890 + }, 2891 + .num_parents = 1, 2892 + .flags = CLK_SET_RATE_PARENT, 2893 + .ops = &clk_regmap_div_ro_ops, 2894 + }, 2895 + }; 2896 + 2897 + static struct clk_regmap_div gcc_pcie_5_pipe_div_clk_src = { 2898 + .reg = 0xc306c, 2899 + .shift = 0, 2900 + .width = 4, 2901 + .clkr.hw.init = &(const struct clk_init_data) { 2902 + .name = "gcc_pcie_5_pipe_div_clk_src", 2903 + .parent_hws = (const struct clk_hw*[]) { 2904 + &gcc_pcie_5_pipe_clk_src.clkr.hw, 2905 + }, 2906 + .num_parents = 1, 2907 + .flags = CLK_SET_RATE_PARENT, 2908 + .ops = &clk_regmap_div_ro_ops, 2909 + }, 2910 + }; 2911 + 2912 + static struct clk_regmap_div gcc_pcie_6_pipe_div_clk_src = { 2913 + .reg = 0x8a060, 2914 + .shift = 0, 2915 + .width = 4, 2916 + .clkr.hw.init = &(const struct clk_init_data) { 2917 + .name = "gcc_pcie_6_pipe_div_clk_src", 2918 + .parent_hws = (const struct clk_hw*[]) { 2919 + &gcc_pcie_6_pipe_clk_src.clkr.hw, 2920 + }, 2921 + .num_parents = 1, 2922 + .flags = CLK_SET_RATE_PARENT, 2923 + .ops = &clk_regmap_div_ro_ops, 2924 + }, 2925 + }; 2926 + 2927 + static struct clk_regmap_div gcc_qupv3_oob_s0_clk_src = { 2928 + .reg = 0xe7024, 2929 + .shift = 0, 2930 + .width = 4, 2931 + .clkr.hw.init = &(const struct clk_init_data) { 2932 + .name = "gcc_qupv3_oob_s0_clk_src", 2933 + .parent_hws = (const struct clk_hw*[]) { 2934 + &gcc_qupv3_oob_qspi_s0_clk_src.clkr.hw, 2935 + }, 2936 + .num_parents = 1, 2937 + .flags = CLK_SET_RATE_PARENT, 2938 + .ops = &clk_regmap_div_ro_ops, 2939 + }, 2940 + }; 2941 + 2942 + static struct clk_regmap_div gcc_qupv3_oob_s1_clk_src = { 2943 + .reg = 0xe7038, 2944 + .shift = 0, 2945 + .width = 4, 2946 + .clkr.hw.init = &(const struct clk_init_data) { 2947 + .name = "gcc_qupv3_oob_s1_clk_src", 2948 + .parent_hws = (const struct clk_hw*[]) { 2949 + &gcc_qupv3_oob_qspi_s1_clk_src.clkr.hw, 2950 + }, 2951 + .num_parents = 1, 2952 + .flags = CLK_SET_RATE_PARENT, 2953 + .ops = &clk_regmap_div_ro_ops, 2954 + }, 2955 + }; 2956 + 2957 + static struct clk_regmap_div gcc_qupv3_wrap0_s2_clk_src = { 2958 + .reg = 0x2828c, 2959 + .shift = 0, 2960 + .width = 4, 2961 + .clkr.hw.init = &(const struct clk_init_data) { 2962 + .name = "gcc_qupv3_wrap0_s2_clk_src", 2963 + .parent_hws = (const struct clk_hw*[]) { 2964 + &gcc_qupv3_wrap0_qspi_s2_clk_src.clkr.hw, 2965 + }, 2966 + .num_parents = 1, 2967 + .flags = CLK_SET_RATE_PARENT, 2968 + .ops = &clk_regmap_div_ro_ops, 2969 + }, 2970 + }; 2971 + 2972 + static struct clk_regmap_div gcc_qupv3_wrap0_s3_clk_src = { 2973 + .reg = 0x282a0, 2974 + .shift = 0, 2975 + .width = 4, 2976 + .clkr.hw.init = &(const struct clk_init_data) { 2977 + .name = "gcc_qupv3_wrap0_s3_clk_src", 2978 + .parent_hws = (const struct clk_hw*[]) { 2979 + &gcc_qupv3_wrap0_qspi_s3_clk_src.clkr.hw, 2980 + }, 2981 + .num_parents = 1, 2982 + .flags = CLK_SET_RATE_PARENT, 2983 + .ops = &clk_regmap_div_ro_ops, 2984 + }, 2985 + }; 2986 + 2987 + static struct clk_regmap_div gcc_qupv3_wrap0_s6_clk_src = { 2988 + .reg = 0x2852c, 2989 + .shift = 0, 2990 + .width = 4, 2991 + .clkr.hw.init = &(const struct clk_init_data) { 2992 + .name = "gcc_qupv3_wrap0_s6_clk_src", 2993 + .parent_hws = (const struct clk_hw*[]) { 2994 + &gcc_qupv3_wrap0_qspi_s6_clk_src.clkr.hw, 2995 + }, 2996 + .num_parents = 1, 2997 + .flags = CLK_SET_RATE_PARENT, 2998 + .ops = &clk_regmap_div_ro_ops, 2999 + }, 3000 + }; 3001 + 3002 + static struct clk_regmap_div gcc_qupv3_wrap1_s2_clk_src = { 3003 + .reg = 0xb328c, 3004 + .shift = 0, 3005 + .width = 4, 3006 + .clkr.hw.init = &(const struct clk_init_data) { 3007 + .name = "gcc_qupv3_wrap1_s2_clk_src", 3008 + .parent_hws = (const struct clk_hw*[]) { 3009 + &gcc_qupv3_wrap1_qspi_s2_clk_src.clkr.hw, 3010 + }, 3011 + .num_parents = 1, 3012 + .flags = CLK_SET_RATE_PARENT, 3013 + .ops = &clk_regmap_div_ro_ops, 3014 + }, 3015 + }; 3016 + 3017 + static struct clk_regmap_div gcc_qupv3_wrap1_s3_clk_src = { 3018 + .reg = 0xb32a0, 3019 + .shift = 0, 3020 + .width = 4, 3021 + .clkr.hw.init = &(const struct clk_init_data) { 3022 + .name = "gcc_qupv3_wrap1_s3_clk_src", 3023 + .parent_hws = (const struct clk_hw*[]) { 3024 + &gcc_qupv3_wrap1_qspi_s3_clk_src.clkr.hw, 3025 + }, 3026 + .num_parents = 1, 3027 + .flags = CLK_SET_RATE_PARENT, 3028 + .ops = &clk_regmap_div_ro_ops, 3029 + }, 3030 + }; 3031 + 3032 + static struct clk_regmap_div gcc_qupv3_wrap1_s6_clk_src = { 3033 + .reg = 0xb352c, 3034 + .shift = 0, 3035 + .width = 4, 3036 + .clkr.hw.init = &(const struct clk_init_data) { 3037 + .name = "gcc_qupv3_wrap1_s6_clk_src", 3038 + .parent_hws = (const struct clk_hw*[]) { 3039 + &gcc_qupv3_wrap1_qspi_s6_clk_src.clkr.hw, 3040 + }, 3041 + .num_parents = 1, 3042 + .flags = CLK_SET_RATE_PARENT, 3043 + .ops = &clk_regmap_div_ro_ops, 3044 + }, 3045 + }; 3046 + 3047 + static struct clk_regmap_div gcc_qupv3_wrap2_s2_clk_src = { 3048 + .reg = 0xb428c, 3049 + .shift = 0, 3050 + .width = 4, 3051 + .clkr.hw.init = &(const struct clk_init_data) { 3052 + .name = "gcc_qupv3_wrap2_s2_clk_src", 3053 + .parent_hws = (const struct clk_hw*[]) { 3054 + &gcc_qupv3_wrap2_qspi_s2_clk_src.clkr.hw, 3055 + }, 3056 + .num_parents = 1, 3057 + .flags = CLK_SET_RATE_PARENT, 3058 + .ops = &clk_regmap_div_ro_ops, 3059 + }, 3060 + }; 3061 + 3062 + static struct clk_regmap_div gcc_qupv3_wrap2_s3_clk_src = { 3063 + .reg = 0xb42a0, 3064 + .shift = 0, 3065 + .width = 4, 3066 + .clkr.hw.init = &(const struct clk_init_data) { 3067 + .name = "gcc_qupv3_wrap2_s3_clk_src", 3068 + .parent_hws = (const struct clk_hw*[]) { 3069 + &gcc_qupv3_wrap2_qspi_s3_clk_src.clkr.hw, 3070 + }, 3071 + .num_parents = 1, 3072 + .flags = CLK_SET_RATE_PARENT, 3073 + .ops = &clk_regmap_div_ro_ops, 3074 + }, 3075 + }; 3076 + 3077 + static struct clk_regmap_div gcc_qupv3_wrap2_s6_clk_src = { 3078 + .reg = 0xb452c, 3079 + .shift = 0, 3080 + .width = 4, 3081 + .clkr.hw.init = &(const struct clk_init_data) { 3082 + .name = "gcc_qupv3_wrap2_s6_clk_src", 3083 + .parent_hws = (const struct clk_hw*[]) { 3084 + &gcc_qupv3_wrap2_qspi_s6_clk_src.clkr.hw, 3085 + }, 3086 + .num_parents = 1, 3087 + .flags = CLK_SET_RATE_PARENT, 3088 + .ops = &clk_regmap_div_ro_ops, 3089 + }, 3090 + }; 3091 + 3092 + static struct clk_regmap_div gcc_usb20_mock_utmi_postdiv_clk_src = { 3093 + .reg = 0xbc174, 3094 + .shift = 0, 3095 + .width = 4, 3096 + .clkr.hw.init = &(const struct clk_init_data) { 3097 + .name = "gcc_usb20_mock_utmi_postdiv_clk_src", 3098 + .parent_hws = (const struct clk_hw*[]) { 3099 + &gcc_usb20_mock_utmi_clk_src.clkr.hw, 3100 + }, 3101 + .num_parents = 1, 3102 + .flags = CLK_SET_RATE_PARENT, 3103 + .ops = &clk_regmap_div_ro_ops, 3104 + }, 3105 + }; 3106 + 3107 + static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = { 3108 + .reg = 0x9a06c, 3109 + .shift = 0, 3110 + .width = 4, 3111 + .clkr.hw.init = &(const struct clk_init_data) { 3112 + .name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src", 3113 + .parent_hws = (const struct clk_hw*[]) { 3114 + &gcc_usb30_mp_mock_utmi_clk_src.clkr.hw, 3115 + }, 3116 + .num_parents = 1, 3117 + .flags = CLK_SET_RATE_PARENT, 3118 + .ops = &clk_regmap_div_ro_ops, 3119 + }, 3120 + }; 3121 + 3122 + static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = { 3123 + .reg = 0x3f07c, 3124 + .shift = 0, 3125 + .width = 4, 3126 + .clkr.hw.init = &(const struct clk_init_data) { 3127 + .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src", 3128 + .parent_hws = (const struct clk_hw*[]) { 3129 + &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw, 3130 + }, 3131 + .num_parents = 1, 3132 + .flags = CLK_SET_RATE_PARENT, 3133 + .ops = &clk_regmap_div_ro_ops, 3134 + }, 3135 + }; 3136 + 3137 + static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = { 3138 + .reg = 0xe206c, 3139 + .shift = 0, 3140 + .width = 4, 3141 + .clkr.hw.init = &(const struct clk_init_data) { 3142 + .name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src", 3143 + .parent_hws = (const struct clk_hw*[]) { 3144 + &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw, 3145 + }, 3146 + .num_parents = 1, 3147 + .flags = CLK_SET_RATE_PARENT, 3148 + .ops = &clk_regmap_div_ro_ops, 3149 + }, 3150 + }; 3151 + 3152 + static struct clk_regmap_div gcc_usb30_tert_mock_utmi_postdiv_clk_src = { 3153 + .reg = 0xe106c, 3154 + .shift = 0, 3155 + .width = 4, 3156 + .clkr.hw.init = &(const struct clk_init_data) { 3157 + .name = "gcc_usb30_tert_mock_utmi_postdiv_clk_src", 3158 + .parent_hws = (const struct clk_hw*[]) { 3159 + &gcc_usb30_tert_mock_utmi_clk_src.clkr.hw, 3160 + }, 3161 + .num_parents = 1, 3162 + .flags = CLK_SET_RATE_PARENT, 3163 + .ops = &clk_regmap_div_ro_ops, 3164 + }, 3165 + }; 3166 + 3167 + static struct clk_branch gcc_aggre_noc_pcie_3a_west_sf_axi_clk = { 3168 + .halt_reg = 0xdc0bc, 3169 + .halt_check = BRANCH_HALT_VOTED, 3170 + .clkr = { 3171 + .enable_reg = 0x62008, 3172 + .enable_mask = BIT(27), 3173 + .hw.init = &(const struct clk_init_data) { 3174 + .name = "gcc_aggre_noc_pcie_3a_west_sf_axi_clk", 3175 + .ops = &clk_branch2_ops, 3176 + }, 3177 + }, 3178 + }; 3179 + 3180 + static struct clk_branch gcc_aggre_noc_pcie_3b_west_sf_axi_clk = { 3181 + .halt_reg = 0x941ec, 3182 + .halt_check = BRANCH_HALT_VOTED, 3183 + .clkr = { 3184 + .enable_reg = 0x62008, 3185 + .enable_mask = BIT(28), 3186 + .hw.init = &(const struct clk_init_data) { 3187 + .name = "gcc_aggre_noc_pcie_3b_west_sf_axi_clk", 3188 + .ops = &clk_branch2_ops, 3189 + }, 3190 + }, 3191 + }; 3192 + 3193 + static struct clk_branch gcc_aggre_noc_pcie_4_west_sf_axi_clk = { 3194 + .halt_reg = 0x881d0, 3195 + .halt_check = BRANCH_HALT_VOTED, 3196 + .clkr = { 3197 + .enable_reg = 0x62008, 3198 + .enable_mask = BIT(29), 3199 + .hw.init = &(const struct clk_init_data) { 3200 + .name = "gcc_aggre_noc_pcie_4_west_sf_axi_clk", 3201 + .ops = &clk_branch2_ops, 3202 + }, 3203 + }, 3204 + }; 3205 + 3206 + static struct clk_branch gcc_aggre_noc_pcie_5_east_sf_axi_clk = { 3207 + .halt_reg = 0xc30d0, 3208 + .halt_check = BRANCH_HALT_VOTED, 3209 + .clkr = { 3210 + .enable_reg = 0x62008, 3211 + .enable_mask = BIT(30), 3212 + .hw.init = &(const struct clk_init_data) { 3213 + .name = "gcc_aggre_noc_pcie_5_east_sf_axi_clk", 3214 + .ops = &clk_branch2_ops, 3215 + }, 3216 + }, 3217 + }; 3218 + 3219 + static struct clk_branch gcc_aggre_noc_pcie_6_west_sf_axi_clk = { 3220 + .halt_reg = 0x8a1d0, 3221 + .halt_check = BRANCH_HALT_VOTED, 3222 + .clkr = { 3223 + .enable_reg = 0x62008, 3224 + .enable_mask = BIT(31), 3225 + .hw.init = &(const struct clk_init_data) { 3226 + .name = "gcc_aggre_noc_pcie_6_west_sf_axi_clk", 3227 + .ops = &clk_branch2_ops, 3228 + }, 3229 + }, 3230 + }; 3231 + 3232 + static struct clk_branch gcc_aggre_ufs_phy_axi_clk = { 3233 + .halt_reg = 0x77000, 3234 + .halt_check = BRANCH_HALT_VOTED, 3235 + .hwcg_reg = 0x77000, 3236 + .hwcg_bit = 1, 3237 + .clkr = { 3238 + .enable_reg = 0x77000, 3239 + .enable_mask = BIT(0), 3240 + .hw.init = &(const struct clk_init_data) { 3241 + .name = "gcc_aggre_ufs_phy_axi_clk", 3242 + .parent_hws = (const struct clk_hw*[]) { 3243 + &gcc_ufs_phy_axi_clk_src.clkr.hw, 3244 + }, 3245 + .num_parents = 1, 3246 + .flags = CLK_SET_RATE_PARENT, 3247 + .ops = &clk_branch2_ops, 3248 + }, 3249 + }, 3250 + }; 3251 + 3252 + static struct clk_branch gcc_aggre_usb2_prim_axi_clk = { 3253 + .halt_reg = 0xbc17c, 3254 + .halt_check = BRANCH_HALT_VOTED, 3255 + .hwcg_reg = 0xbc17c, 3256 + .hwcg_bit = 1, 3257 + .clkr = { 3258 + .enable_reg = 0xbc17c, 3259 + .enable_mask = BIT(0), 3260 + .hw.init = &(const struct clk_init_data) { 3261 + .name = "gcc_aggre_usb2_prim_axi_clk", 3262 + .parent_hws = (const struct clk_hw*[]) { 3263 + &gcc_usb20_master_clk_src.clkr.hw, 3264 + }, 3265 + .num_parents = 1, 3266 + .flags = CLK_SET_RATE_PARENT, 3267 + .ops = &clk_branch2_ops, 3268 + }, 3269 + }, 3270 + }; 3271 + 3272 + static struct clk_branch gcc_aggre_usb3_mp_axi_clk = { 3273 + .halt_reg = 0x9a004, 3274 + .halt_check = BRANCH_HALT_VOTED, 3275 + .hwcg_reg = 0x9a004, 3276 + .hwcg_bit = 1, 3277 + .clkr = { 3278 + .enable_reg = 0x9a004, 3279 + .enable_mask = BIT(0), 3280 + .hw.init = &(const struct clk_init_data) { 3281 + .name = "gcc_aggre_usb3_mp_axi_clk", 3282 + .parent_hws = (const struct clk_hw*[]) { 3283 + &gcc_usb30_mp_master_clk_src.clkr.hw, 3284 + }, 3285 + .num_parents = 1, 3286 + .flags = CLK_SET_RATE_PARENT, 3287 + .ops = &clk_branch2_ops, 3288 + }, 3289 + }, 3290 + }; 3291 + 3292 + static struct clk_branch gcc_aggre_usb3_prim_axi_clk = { 3293 + .halt_reg = 0x3f00c, 3294 + .halt_check = BRANCH_HALT_VOTED, 3295 + .hwcg_reg = 0x3f00c, 3296 + .hwcg_bit = 1, 3297 + .clkr = { 3298 + .enable_reg = 0x3f00c, 3299 + .enable_mask = BIT(0), 3300 + .hw.init = &(const struct clk_init_data) { 3301 + .name = "gcc_aggre_usb3_prim_axi_clk", 3302 + .parent_hws = (const struct clk_hw*[]) { 3303 + &gcc_usb30_prim_master_clk_src.clkr.hw, 3304 + }, 3305 + .num_parents = 1, 3306 + .flags = CLK_SET_RATE_PARENT, 3307 + .ops = &clk_branch2_ops, 3308 + }, 3309 + }, 3310 + }; 3311 + 3312 + static struct clk_branch gcc_aggre_usb3_sec_axi_clk = { 3313 + .halt_reg = 0xe2004, 3314 + .halt_check = BRANCH_HALT_VOTED, 3315 + .hwcg_reg = 0xe2004, 3316 + .hwcg_bit = 1, 3317 + .clkr = { 3318 + .enable_reg = 0xe2004, 3319 + .enable_mask = BIT(0), 3320 + .hw.init = &(const struct clk_init_data) { 3321 + .name = "gcc_aggre_usb3_sec_axi_clk", 3322 + .parent_hws = (const struct clk_hw*[]) { 3323 + &gcc_usb30_sec_master_clk_src.clkr.hw, 3324 + }, 3325 + .num_parents = 1, 3326 + .flags = CLK_SET_RATE_PARENT, 3327 + .ops = &clk_branch2_ops, 3328 + }, 3329 + }, 3330 + }; 3331 + 3332 + static struct clk_branch gcc_aggre_usb3_tert_axi_clk = { 3333 + .halt_reg = 0xe1004, 3334 + .halt_check = BRANCH_HALT_VOTED, 3335 + .hwcg_reg = 0xe1004, 3336 + .hwcg_bit = 1, 3337 + .clkr = { 3338 + .enable_reg = 0xe1004, 3339 + .enable_mask = BIT(0), 3340 + .hw.init = &(const struct clk_init_data) { 3341 + .name = "gcc_aggre_usb3_tert_axi_clk", 3342 + .parent_hws = (const struct clk_hw*[]) { 3343 + &gcc_usb30_tert_master_clk_src.clkr.hw, 3344 + }, 3345 + .num_parents = 1, 3346 + .flags = CLK_SET_RATE_PARENT, 3347 + .ops = &clk_branch2_ops, 3348 + }, 3349 + }, 3350 + }; 3351 + 3352 + static struct clk_branch gcc_aggre_usb4_0_axi_clk = { 3353 + .halt_reg = 0x2b000, 3354 + .halt_check = BRANCH_HALT_VOTED, 3355 + .hwcg_reg = 0x2b000, 3356 + .hwcg_bit = 1, 3357 + .clkr = { 3358 + .enable_reg = 0x2b000, 3359 + .enable_mask = BIT(0), 3360 + .hw.init = &(const struct clk_init_data) { 3361 + .name = "gcc_aggre_usb4_0_axi_clk", 3362 + .parent_hws = (const struct clk_hw*[]) { 3363 + &gcc_usb4_0_master_clk_src.clkr.hw, 3364 + }, 3365 + .num_parents = 1, 3366 + .flags = CLK_SET_RATE_PARENT, 3367 + .ops = &clk_branch2_ops, 3368 + }, 3369 + }, 3370 + }; 3371 + 3372 + static struct clk_branch gcc_aggre_usb4_1_axi_clk = { 3373 + .halt_reg = 0x2d000, 3374 + .halt_check = BRANCH_HALT_VOTED, 3375 + .hwcg_reg = 0x2d000, 3376 + .hwcg_bit = 1, 3377 + .clkr = { 3378 + .enable_reg = 0x2d000, 3379 + .enable_mask = BIT(0), 3380 + .hw.init = &(const struct clk_init_data) { 3381 + .name = "gcc_aggre_usb4_1_axi_clk", 3382 + .parent_hws = (const struct clk_hw*[]) { 3383 + &gcc_usb4_1_master_clk_src.clkr.hw, 3384 + }, 3385 + .num_parents = 1, 3386 + .flags = CLK_SET_RATE_PARENT, 3387 + .ops = &clk_branch2_ops, 3388 + }, 3389 + }, 3390 + }; 3391 + 3392 + static struct clk_branch gcc_aggre_usb4_2_axi_clk = { 3393 + .halt_reg = 0xe0000, 3394 + .halt_check = BRANCH_HALT_VOTED, 3395 + .hwcg_reg = 0xe0000, 3396 + .hwcg_bit = 1, 3397 + .clkr = { 3398 + .enable_reg = 0xe0000, 3399 + .enable_mask = BIT(0), 3400 + .hw.init = &(const struct clk_init_data) { 3401 + .name = "gcc_aggre_usb4_2_axi_clk", 3402 + .parent_hws = (const struct clk_hw*[]) { 3403 + &gcc_usb4_2_master_clk_src.clkr.hw, 3404 + }, 3405 + .num_parents = 1, 3406 + .flags = CLK_SET_RATE_PARENT, 3407 + .ops = &clk_branch2_ops, 3408 + }, 3409 + }, 3410 + }; 3411 + 3412 + static struct clk_branch gcc_av1e_ahb_clk = { 3413 + .halt_reg = 0x9b02c, 3414 + .halt_check = BRANCH_HALT_VOTED, 3415 + .hwcg_reg = 0x9b02c, 3416 + .hwcg_bit = 1, 3417 + .clkr = { 3418 + .enable_reg = 0x9b02c, 3419 + .enable_mask = BIT(0), 3420 + .hw.init = &(const struct clk_init_data) { 3421 + .name = "gcc_av1e_ahb_clk", 3422 + .ops = &clk_branch2_ops, 3423 + }, 3424 + }, 3425 + }; 3426 + 3427 + static struct clk_branch gcc_av1e_axi_clk = { 3428 + .halt_reg = 0x9b030, 3429 + .halt_check = BRANCH_HALT_SKIP, 3430 + .hwcg_reg = 0x9b030, 3431 + .hwcg_bit = 1, 3432 + .clkr = { 3433 + .enable_reg = 0x9b030, 3434 + .enable_mask = BIT(0), 3435 + .hw.init = &(const struct clk_init_data) { 3436 + .name = "gcc_av1e_axi_clk", 3437 + .ops = &clk_branch2_ops, 3438 + }, 3439 + }, 3440 + }; 3441 + 3442 + static struct clk_branch gcc_av1e_xo_clk = { 3443 + .halt_reg = 0x9b044, 3444 + .halt_check = BRANCH_HALT, 3445 + .clkr = { 3446 + .enable_reg = 0x9b044, 3447 + .enable_mask = BIT(0), 3448 + .hw.init = &(const struct clk_init_data) { 3449 + .name = "gcc_av1e_xo_clk", 3450 + .ops = &clk_branch2_ops, 3451 + }, 3452 + }, 3453 + }; 3454 + 3455 + static struct clk_branch gcc_boot_rom_ahb_clk = { 3456 + .halt_reg = 0x34038, 3457 + .halt_check = BRANCH_HALT_VOTED, 3458 + .hwcg_reg = 0x34038, 3459 + .hwcg_bit = 1, 3460 + .clkr = { 3461 + .enable_reg = 0x62020, 3462 + .enable_mask = BIT(27), 3463 + .hw.init = &(const struct clk_init_data) { 3464 + .name = "gcc_boot_rom_ahb_clk", 3465 + .ops = &clk_branch2_ops, 3466 + }, 3467 + }, 3468 + }; 3469 + 3470 + static struct clk_branch gcc_camera_hf_axi_clk = { 3471 + .halt_reg = 0x26014, 3472 + .halt_check = BRANCH_HALT_SKIP, 3473 + .hwcg_reg = 0x26014, 3474 + .hwcg_bit = 1, 3475 + .clkr = { 3476 + .enable_reg = 0x26014, 3477 + .enable_mask = BIT(0), 3478 + .hw.init = &(const struct clk_init_data) { 3479 + .name = "gcc_camera_hf_axi_clk", 3480 + .ops = &clk_branch2_ops, 3481 + }, 3482 + }, 3483 + }; 3484 + 3485 + static struct clk_branch gcc_camera_sf_axi_clk = { 3486 + .halt_reg = 0x26028, 3487 + .halt_check = BRANCH_HALT_SKIP, 3488 + .hwcg_reg = 0x26028, 3489 + .hwcg_bit = 1, 3490 + .clkr = { 3491 + .enable_reg = 0x26028, 3492 + .enable_mask = BIT(0), 3493 + .hw.init = &(const struct clk_init_data) { 3494 + .name = "gcc_camera_sf_axi_clk", 3495 + .ops = &clk_branch2_ops, 3496 + }, 3497 + }, 3498 + }; 3499 + 3500 + static struct clk_branch gcc_cfg_noc_pcie_anoc_ahb_clk = { 3501 + .halt_reg = 0x82004, 3502 + .halt_check = BRANCH_HALT_VOTED, 3503 + .hwcg_reg = 0x82004, 3504 + .hwcg_bit = 1, 3505 + .clkr = { 3506 + .enable_reg = 0x62008, 3507 + .enable_mask = BIT(19), 3508 + .hw.init = &(const struct clk_init_data) { 3509 + .name = "gcc_cfg_noc_pcie_anoc_ahb_clk", 3510 + .ops = &clk_branch2_ops, 3511 + }, 3512 + }, 3513 + }; 3514 + 3515 + static struct clk_branch gcc_cfg_noc_pcie_anoc_south_ahb_clk = { 3516 + .halt_reg = 0xba2ec, 3517 + .halt_check = BRANCH_HALT_VOTED, 3518 + .hwcg_reg = 0xba2ec, 3519 + .hwcg_bit = 1, 3520 + .clkr = { 3521 + .enable_reg = 0x62008, 3522 + .enable_mask = BIT(16), 3523 + .hw.init = &(const struct clk_init_data) { 3524 + .name = "gcc_cfg_noc_pcie_anoc_south_ahb_clk", 3525 + .ops = &clk_branch2_ops, 3526 + }, 3527 + }, 3528 + }; 3529 + 3530 + static struct clk_branch gcc_cfg_noc_usb2_prim_axi_clk = { 3531 + .halt_reg = 0xbc178, 3532 + .halt_check = BRANCH_HALT_VOTED, 3533 + .hwcg_reg = 0xbc178, 3534 + .hwcg_bit = 1, 3535 + .clkr = { 3536 + .enable_reg = 0xbc178, 3537 + .enable_mask = BIT(0), 3538 + .hw.init = &(const struct clk_init_data) { 3539 + .name = "gcc_cfg_noc_usb2_prim_axi_clk", 3540 + .parent_hws = (const struct clk_hw*[]) { 3541 + &gcc_usb20_master_clk_src.clkr.hw, 3542 + }, 3543 + .num_parents = 1, 3544 + .flags = CLK_SET_RATE_PARENT, 3545 + .ops = &clk_branch2_ops, 3546 + }, 3547 + }, 3548 + }; 3549 + 3550 + static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = { 3551 + .halt_reg = 0x9a000, 3552 + .halt_check = BRANCH_HALT_VOTED, 3553 + .hwcg_reg = 0x9a000, 3554 + .hwcg_bit = 1, 3555 + .clkr = { 3556 + .enable_reg = 0x9a000, 3557 + .enable_mask = BIT(0), 3558 + .hw.init = &(const struct clk_init_data) { 3559 + .name = "gcc_cfg_noc_usb3_mp_axi_clk", 3560 + .parent_hws = (const struct clk_hw*[]) { 3561 + &gcc_usb30_mp_master_clk_src.clkr.hw, 3562 + }, 3563 + .num_parents = 1, 3564 + .flags = CLK_SET_RATE_PARENT, 3565 + .ops = &clk_branch2_ops, 3566 + }, 3567 + }, 3568 + }; 3569 + 3570 + static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = { 3571 + .halt_reg = 0x3f000, 3572 + .halt_check = BRANCH_HALT_VOTED, 3573 + .hwcg_reg = 0x3f000, 3574 + .hwcg_bit = 1, 3575 + .clkr = { 3576 + .enable_reg = 0x3f000, 3577 + .enable_mask = BIT(0), 3578 + .hw.init = &(const struct clk_init_data) { 3579 + .name = "gcc_cfg_noc_usb3_prim_axi_clk", 3580 + .parent_hws = (const struct clk_hw*[]) { 3581 + &gcc_usb30_prim_master_clk_src.clkr.hw, 3582 + }, 3583 + .num_parents = 1, 3584 + .flags = CLK_SET_RATE_PARENT, 3585 + .ops = &clk_branch2_ops, 3586 + }, 3587 + }, 3588 + }; 3589 + 3590 + static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = { 3591 + .halt_reg = 0xe2000, 3592 + .halt_check = BRANCH_HALT_VOTED, 3593 + .hwcg_reg = 0xe2000, 3594 + .hwcg_bit = 1, 3595 + .clkr = { 3596 + .enable_reg = 0xe2000, 3597 + .enable_mask = BIT(0), 3598 + .hw.init = &(const struct clk_init_data) { 3599 + .name = "gcc_cfg_noc_usb3_sec_axi_clk", 3600 + .parent_hws = (const struct clk_hw*[]) { 3601 + &gcc_usb30_sec_master_clk_src.clkr.hw, 3602 + }, 3603 + .num_parents = 1, 3604 + .flags = CLK_SET_RATE_PARENT, 3605 + .ops = &clk_branch2_ops, 3606 + }, 3607 + }, 3608 + }; 3609 + 3610 + static struct clk_branch gcc_cfg_noc_usb3_tert_axi_clk = { 3611 + .halt_reg = 0xe1000, 3612 + .halt_check = BRANCH_HALT_VOTED, 3613 + .hwcg_reg = 0xe1000, 3614 + .hwcg_bit = 1, 3615 + .clkr = { 3616 + .enable_reg = 0xe1000, 3617 + .enable_mask = BIT(0), 3618 + .hw.init = &(const struct clk_init_data) { 3619 + .name = "gcc_cfg_noc_usb3_tert_axi_clk", 3620 + .parent_hws = (const struct clk_hw*[]) { 3621 + &gcc_usb30_tert_master_clk_src.clkr.hw, 3622 + }, 3623 + .num_parents = 1, 3624 + .flags = CLK_SET_RATE_PARENT, 3625 + .ops = &clk_branch2_ops, 3626 + }, 3627 + }, 3628 + }; 3629 + 3630 + static struct clk_branch gcc_cfg_noc_usb_anoc_ahb_clk = { 3631 + .halt_reg = 0x3f004, 3632 + .halt_check = BRANCH_HALT_VOTED, 3633 + .hwcg_reg = 0x3f004, 3634 + .hwcg_bit = 1, 3635 + .clkr = { 3636 + .enable_reg = 0x62008, 3637 + .enable_mask = BIT(17), 3638 + .hw.init = &(const struct clk_init_data) { 3639 + .name = "gcc_cfg_noc_usb_anoc_ahb_clk", 3640 + .ops = &clk_branch2_ops, 3641 + }, 3642 + }, 3643 + }; 3644 + 3645 + static struct clk_branch gcc_cfg_noc_usb_anoc_south_ahb_clk = { 3646 + .halt_reg = 0x3f008, 3647 + .halt_check = BRANCH_HALT_VOTED, 3648 + .hwcg_reg = 0x3f008, 3649 + .hwcg_bit = 1, 3650 + .clkr = { 3651 + .enable_reg = 0x62008, 3652 + .enable_mask = BIT(18), 3653 + .hw.init = &(const struct clk_init_data) { 3654 + .name = "gcc_cfg_noc_usb_anoc_south_ahb_clk", 3655 + .ops = &clk_branch2_ops, 3656 + }, 3657 + }, 3658 + }; 3659 + 3660 + static struct clk_branch gcc_disp_hf_axi_clk = { 3661 + .halt_reg = 0x27008, 3662 + .halt_check = BRANCH_HALT_SKIP, 3663 + .clkr = { 3664 + .enable_reg = 0x27008, 3665 + .enable_mask = BIT(0), 3666 + .hw.init = &(const struct clk_init_data) { 3667 + .name = "gcc_disp_hf_axi_clk", 3668 + .ops = &clk_branch2_ops, 3669 + .flags = CLK_IS_CRITICAL, 3670 + }, 3671 + }, 3672 + }; 3673 + 3674 + static struct clk_branch gcc_eva_ahb_clk = { 3675 + .halt_reg = 0x9b004, 3676 + .halt_check = BRANCH_HALT_VOTED, 3677 + .hwcg_reg = 0x9b004, 3678 + .hwcg_bit = 1, 3679 + .clkr = { 3680 + .enable_reg = 0x9b004, 3681 + .enable_mask = BIT(0), 3682 + .hw.init = &(const struct clk_init_data) { 3683 + .name = "gcc_eva_ahb_clk", 3684 + .ops = &clk_branch2_ops, 3685 + }, 3686 + }, 3687 + }; 3688 + 3689 + static struct clk_branch gcc_eva_axi0_clk = { 3690 + .halt_reg = 0x9b008, 3691 + .halt_check = BRANCH_HALT_SKIP, 3692 + .hwcg_reg = 0x9b008, 3693 + .hwcg_bit = 1, 3694 + .clkr = { 3695 + .enable_reg = 0x9b008, 3696 + .enable_mask = BIT(0), 3697 + .hw.init = &(const struct clk_init_data) { 3698 + .name = "gcc_eva_axi0_clk", 3699 + .ops = &clk_branch2_ops, 3700 + }, 3701 + }, 3702 + }; 3703 + 3704 + static struct clk_branch gcc_eva_axi0c_clk = { 3705 + .halt_reg = 0x9b01c, 3706 + .halt_check = BRANCH_HALT_VOTED, 3707 + .hwcg_reg = 0x9b01c, 3708 + .hwcg_bit = 1, 3709 + .clkr = { 3710 + .enable_reg = 0x9b01c, 3711 + .enable_mask = BIT(0), 3712 + .hw.init = &(const struct clk_init_data) { 3713 + .name = "gcc_eva_axi0c_clk", 3714 + .ops = &clk_branch2_ops, 3715 + }, 3716 + }, 3717 + }; 3718 + 3719 + static struct clk_branch gcc_eva_xo_clk = { 3720 + .halt_reg = 0x9b024, 3721 + .halt_check = BRANCH_HALT, 3722 + .clkr = { 3723 + .enable_reg = 0x9b024, 3724 + .enable_mask = BIT(0), 3725 + .hw.init = &(const struct clk_init_data) { 3726 + .name = "gcc_eva_xo_clk", 3727 + .ops = &clk_branch2_ops, 3728 + }, 3729 + }, 3730 + }; 3731 + 3732 + static struct clk_branch gcc_gp1_clk = { 3733 + .halt_reg = 0x64000, 3734 + .halt_check = BRANCH_HALT, 3735 + .clkr = { 3736 + .enable_reg = 0x64000, 3737 + .enable_mask = BIT(0), 3738 + .hw.init = &(const struct clk_init_data) { 3739 + .name = "gcc_gp1_clk", 3740 + .parent_hws = (const struct clk_hw*[]) { 3741 + &gcc_gp1_clk_src.clkr.hw, 3742 + }, 3743 + .num_parents = 1, 3744 + .flags = CLK_SET_RATE_PARENT, 3745 + .ops = &clk_branch2_ops, 3746 + }, 3747 + }, 3748 + }; 3749 + 3750 + static struct clk_branch gcc_gp2_clk = { 3751 + .halt_reg = 0x92000, 3752 + .halt_check = BRANCH_HALT, 3753 + .clkr = { 3754 + .enable_reg = 0x92000, 3755 + .enable_mask = BIT(0), 3756 + .hw.init = &(const struct clk_init_data) { 3757 + .name = "gcc_gp2_clk", 3758 + .parent_hws = (const struct clk_hw*[]) { 3759 + &gcc_gp2_clk_src.clkr.hw, 3760 + }, 3761 + .num_parents = 1, 3762 + .flags = CLK_SET_RATE_PARENT, 3763 + .ops = &clk_branch2_ops, 3764 + }, 3765 + }, 3766 + }; 3767 + 3768 + static struct clk_branch gcc_gp3_clk = { 3769 + .halt_reg = 0x93000, 3770 + .halt_check = BRANCH_HALT, 3771 + .clkr = { 3772 + .enable_reg = 0x93000, 3773 + .enable_mask = BIT(0), 3774 + .hw.init = &(const struct clk_init_data) { 3775 + .name = "gcc_gp3_clk", 3776 + .parent_hws = (const struct clk_hw*[]) { 3777 + &gcc_gp3_clk_src.clkr.hw, 3778 + }, 3779 + .num_parents = 1, 3780 + .flags = CLK_SET_RATE_PARENT, 3781 + .ops = &clk_branch2_ops, 3782 + }, 3783 + }, 3784 + }; 3785 + 3786 + static struct clk_branch gcc_gpu_gemnoc_gfx_clk = { 3787 + .halt_reg = 0x71010, 3788 + .halt_check = BRANCH_HALT_VOTED, 3789 + .hwcg_reg = 0x71010, 3790 + .hwcg_bit = 1, 3791 + .clkr = { 3792 + .enable_reg = 0x71010, 3793 + .enable_mask = BIT(0), 3794 + .hw.init = &(const struct clk_init_data) { 3795 + .name = "gcc_gpu_gemnoc_gfx_clk", 3796 + .ops = &clk_branch2_ops, 3797 + }, 3798 + }, 3799 + }; 3800 + 3801 + static struct clk_branch gcc_gpu_gpll0_clk_src = { 3802 + .halt_reg = 0x71024, 3803 + .halt_check = BRANCH_HALT_VOTED, 3804 + .hwcg_reg = 0x71024, 3805 + .hwcg_bit = 1, 3806 + .clkr = { 3807 + .enable_reg = 0x62038, 3808 + .enable_mask = BIT(0), 3809 + .hw.init = &(const struct clk_init_data) { 3810 + .name = "gcc_gpu_gpll0_clk_src", 3811 + .parent_hws = (const struct clk_hw*[]) { 3812 + &gcc_gpll0.clkr.hw, 3813 + }, 3814 + .num_parents = 1, 3815 + .flags = CLK_SET_RATE_PARENT, 3816 + .ops = &clk_branch2_ops, 3817 + }, 3818 + }, 3819 + }; 3820 + 3821 + static struct clk_branch gcc_gpu_gpll0_div_clk_src = { 3822 + .halt_reg = 0x7102c, 3823 + .halt_check = BRANCH_HALT_VOTED, 3824 + .hwcg_reg = 0x7102c, 3825 + .hwcg_bit = 1, 3826 + .clkr = { 3827 + .enable_reg = 0x62038, 3828 + .enable_mask = BIT(1), 3829 + .hw.init = &(const struct clk_init_data) { 3830 + .name = "gcc_gpu_gpll0_div_clk_src", 3831 + .parent_hws = (const struct clk_hw*[]) { 3832 + &gcc_gpll0_out_even.clkr.hw, 3833 + }, 3834 + .num_parents = 1, 3835 + .flags = CLK_SET_RATE_PARENT, 3836 + .ops = &clk_branch2_ops, 3837 + }, 3838 + }, 3839 + }; 3840 + 3841 + static struct clk_branch gcc_pcie_0_aux_clk = { 3842 + .halt_reg = 0xc8018, 3843 + .halt_check = BRANCH_HALT_VOTED, 3844 + .clkr = { 3845 + .enable_reg = 0x62010, 3846 + .enable_mask = BIT(25), 3847 + .hw.init = &(const struct clk_init_data) { 3848 + .name = "gcc_pcie_0_aux_clk", 3849 + .parent_hws = (const struct clk_hw*[]) { 3850 + &gcc_pcie_0_aux_clk_src.clkr.hw, 3851 + }, 3852 + .num_parents = 1, 3853 + .flags = CLK_SET_RATE_PARENT, 3854 + .ops = &clk_branch2_ops, 3855 + }, 3856 + }, 3857 + }; 3858 + 3859 + static struct clk_branch gcc_pcie_0_cfg_ahb_clk = { 3860 + .halt_reg = 0xba4a8, 3861 + .halt_check = BRANCH_HALT_VOTED, 3862 + .hwcg_reg = 0xba4a8, 3863 + .hwcg_bit = 1, 3864 + .clkr = { 3865 + .enable_reg = 0x62010, 3866 + .enable_mask = BIT(24), 3867 + .hw.init = &(const struct clk_init_data) { 3868 + .name = "gcc_pcie_0_cfg_ahb_clk", 3869 + .ops = &clk_branch2_ops, 3870 + }, 3871 + }, 3872 + }; 3873 + 3874 + static struct clk_branch gcc_pcie_0_mstr_axi_clk = { 3875 + .halt_reg = 0xba498, 3876 + .halt_check = BRANCH_HALT_SKIP, 3877 + .hwcg_reg = 0xba498, 3878 + .hwcg_bit = 1, 3879 + .clkr = { 3880 + .enable_reg = 0x62010, 3881 + .enable_mask = BIT(23), 3882 + .hw.init = &(const struct clk_init_data) { 3883 + .name = "gcc_pcie_0_mstr_axi_clk", 3884 + .ops = &clk_branch2_ops, 3885 + }, 3886 + }, 3887 + }; 3888 + 3889 + static struct clk_branch gcc_pcie_0_phy_rchng_clk = { 3890 + .halt_reg = 0xc8038, 3891 + .halt_check = BRANCH_HALT_VOTED, 3892 + .clkr = { 3893 + .enable_reg = 0x62010, 3894 + .enable_mask = BIT(27), 3895 + .hw.init = &(const struct clk_init_data) { 3896 + .name = "gcc_pcie_0_phy_rchng_clk", 3897 + .parent_hws = (const struct clk_hw*[]) { 3898 + &gcc_pcie_0_phy_rchng_clk_src.clkr.hw, 3899 + }, 3900 + .num_parents = 1, 3901 + .flags = CLK_SET_RATE_PARENT, 3902 + .ops = &clk_branch2_ops, 3903 + }, 3904 + }, 3905 + }; 3906 + 3907 + static struct clk_branch gcc_pcie_0_pipe_clk = { 3908 + .halt_reg = 0xc8028, 3909 + .halt_check = BRANCH_HALT_SKIP, 3910 + .clkr = { 3911 + .enable_reg = 0x62010, 3912 + .enable_mask = BIT(26), 3913 + .hw.init = &(const struct clk_init_data) { 3914 + .name = "gcc_pcie_0_pipe_clk", 3915 + .parent_hws = (const struct clk_hw*[]) { 3916 + &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw, 3917 + }, 3918 + .num_parents = 1, 3919 + .flags = CLK_SET_RATE_PARENT, 3920 + .ops = &clk_branch2_ops, 3921 + }, 3922 + }, 3923 + }; 3924 + 3925 + static struct clk_branch gcc_pcie_0_slv_axi_clk = { 3926 + .halt_reg = 0xba488, 3927 + .halt_check = BRANCH_HALT_VOTED, 3928 + .hwcg_reg = 0xba488, 3929 + .hwcg_bit = 1, 3930 + .clkr = { 3931 + .enable_reg = 0x62010, 3932 + .enable_mask = BIT(22), 3933 + .hw.init = &(const struct clk_init_data) { 3934 + .name = "gcc_pcie_0_slv_axi_clk", 3935 + .ops = &clk_branch2_ops, 3936 + }, 3937 + }, 3938 + }; 3939 + 3940 + static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = { 3941 + .halt_reg = 0xba484, 3942 + .halt_check = BRANCH_HALT_VOTED, 3943 + .clkr = { 3944 + .enable_reg = 0x62010, 3945 + .enable_mask = BIT(21), 3946 + .hw.init = &(const struct clk_init_data) { 3947 + .name = "gcc_pcie_0_slv_q2a_axi_clk", 3948 + .ops = &clk_branch2_ops, 3949 + }, 3950 + }, 3951 + }; 3952 + 3953 + static struct clk_branch gcc_pcie_1_aux_clk = { 3954 + .halt_reg = 0x2e018, 3955 + .halt_check = BRANCH_HALT_VOTED, 3956 + .clkr = { 3957 + .enable_reg = 0x62010, 3958 + .enable_mask = BIT(18), 3959 + .hw.init = &(const struct clk_init_data) { 3960 + .name = "gcc_pcie_1_aux_clk", 3961 + .parent_hws = (const struct clk_hw*[]) { 3962 + &gcc_pcie_1_aux_clk_src.clkr.hw, 3963 + }, 3964 + .num_parents = 1, 3965 + .flags = CLK_SET_RATE_PARENT, 3966 + .ops = &clk_branch2_ops, 3967 + }, 3968 + }, 3969 + }; 3970 + 3971 + static struct clk_branch gcc_pcie_1_cfg_ahb_clk = { 3972 + .halt_reg = 0xba480, 3973 + .halt_check = BRANCH_HALT_VOTED, 3974 + .hwcg_reg = 0xba480, 3975 + .hwcg_bit = 1, 3976 + .clkr = { 3977 + .enable_reg = 0x62010, 3978 + .enable_mask = BIT(17), 3979 + .hw.init = &(const struct clk_init_data) { 3980 + .name = "gcc_pcie_1_cfg_ahb_clk", 3981 + .ops = &clk_branch2_ops, 3982 + }, 3983 + }, 3984 + }; 3985 + 3986 + static struct clk_branch gcc_pcie_1_mstr_axi_clk = { 3987 + .halt_reg = 0xba470, 3988 + .halt_check = BRANCH_HALT_SKIP, 3989 + .hwcg_reg = 0xba470, 3990 + .hwcg_bit = 1, 3991 + .clkr = { 3992 + .enable_reg = 0x62010, 3993 + .enable_mask = BIT(16), 3994 + .hw.init = &(const struct clk_init_data) { 3995 + .name = "gcc_pcie_1_mstr_axi_clk", 3996 + .ops = &clk_branch2_ops, 3997 + }, 3998 + }, 3999 + }; 4000 + 4001 + static struct clk_branch gcc_pcie_1_phy_rchng_clk = { 4002 + .halt_reg = 0x2e038, 4003 + .halt_check = BRANCH_HALT_VOTED, 4004 + .clkr = { 4005 + .enable_reg = 0x62010, 4006 + .enable_mask = BIT(20), 4007 + .hw.init = &(const struct clk_init_data) { 4008 + .name = "gcc_pcie_1_phy_rchng_clk", 4009 + .parent_hws = (const struct clk_hw*[]) { 4010 + &gcc_pcie_1_phy_rchng_clk_src.clkr.hw, 4011 + }, 4012 + .num_parents = 1, 4013 + .flags = CLK_SET_RATE_PARENT, 4014 + .ops = &clk_branch2_ops, 4015 + }, 4016 + }, 4017 + }; 4018 + 4019 + static struct clk_branch gcc_pcie_1_pipe_clk = { 4020 + .halt_reg = 0x2e028, 4021 + .halt_check = BRANCH_HALT_SKIP, 4022 + .clkr = { 4023 + .enable_reg = 0x62010, 4024 + .enable_mask = BIT(19), 4025 + .hw.init = &(const struct clk_init_data) { 4026 + .name = "gcc_pcie_1_pipe_clk", 4027 + .parent_hws = (const struct clk_hw*[]) { 4028 + &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw, 4029 + }, 4030 + .num_parents = 1, 4031 + .flags = CLK_SET_RATE_PARENT, 4032 + .ops = &clk_branch2_ops, 4033 + }, 4034 + }, 4035 + }; 4036 + 4037 + static struct clk_branch gcc_pcie_1_slv_axi_clk = { 4038 + .halt_reg = 0xba460, 4039 + .halt_check = BRANCH_HALT_VOTED, 4040 + .hwcg_reg = 0xba460, 4041 + .hwcg_bit = 1, 4042 + .clkr = { 4043 + .enable_reg = 0x62010, 4044 + .enable_mask = BIT(15), 4045 + .hw.init = &(const struct clk_init_data) { 4046 + .name = "gcc_pcie_1_slv_axi_clk", 4047 + .ops = &clk_branch2_ops, 4048 + }, 4049 + }, 4050 + }; 4051 + 4052 + static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = { 4053 + .halt_reg = 0xba45c, 4054 + .halt_check = BRANCH_HALT_VOTED, 4055 + .clkr = { 4056 + .enable_reg = 0x62010, 4057 + .enable_mask = BIT(14), 4058 + .hw.init = &(const struct clk_init_data) { 4059 + .name = "gcc_pcie_1_slv_q2a_axi_clk", 4060 + .ops = &clk_branch2_ops, 4061 + }, 4062 + }, 4063 + }; 4064 + 4065 + static struct clk_branch gcc_pcie_2_aux_clk = { 4066 + .halt_reg = 0xc0018, 4067 + .halt_check = BRANCH_HALT_VOTED, 4068 + .clkr = { 4069 + .enable_reg = 0x62018, 4070 + .enable_mask = BIT(0), 4071 + .hw.init = &(const struct clk_init_data) { 4072 + .name = "gcc_pcie_2_aux_clk", 4073 + .parent_hws = (const struct clk_hw*[]) { 4074 + &gcc_pcie_2_aux_clk_src.clkr.hw, 4075 + }, 4076 + .num_parents = 1, 4077 + .flags = CLK_SET_RATE_PARENT, 4078 + .ops = &clk_branch2_ops, 4079 + }, 4080 + }, 4081 + }; 4082 + 4083 + static struct clk_branch gcc_pcie_2_cfg_ahb_clk = { 4084 + .halt_reg = 0xba4d0, 4085 + .halt_check = BRANCH_HALT_VOTED, 4086 + .hwcg_reg = 0xba4d0, 4087 + .hwcg_bit = 1, 4088 + .clkr = { 4089 + .enable_reg = 0x62010, 4090 + .enable_mask = BIT(31), 4091 + .hw.init = &(const struct clk_init_data) { 4092 + .name = "gcc_pcie_2_cfg_ahb_clk", 4093 + .ops = &clk_branch2_ops, 4094 + }, 4095 + }, 4096 + }; 4097 + 4098 + static struct clk_branch gcc_pcie_2_mstr_axi_clk = { 4099 + .halt_reg = 0xba4c0, 4100 + .halt_check = BRANCH_HALT_SKIP, 4101 + .hwcg_reg = 0xba4c0, 4102 + .hwcg_bit = 1, 4103 + .clkr = { 4104 + .enable_reg = 0x62010, 4105 + .enable_mask = BIT(30), 4106 + .hw.init = &(const struct clk_init_data) { 4107 + .name = "gcc_pcie_2_mstr_axi_clk", 4108 + .ops = &clk_branch2_ops, 4109 + }, 4110 + }, 4111 + }; 4112 + 4113 + static struct clk_branch gcc_pcie_2_phy_rchng_clk = { 4114 + .halt_reg = 0xc0038, 4115 + .halt_check = BRANCH_HALT_VOTED, 4116 + .clkr = { 4117 + .enable_reg = 0x62018, 4118 + .enable_mask = BIT(2), 4119 + .hw.init = &(const struct clk_init_data) { 4120 + .name = "gcc_pcie_2_phy_rchng_clk", 4121 + .parent_hws = (const struct clk_hw*[]) { 4122 + &gcc_pcie_2_phy_rchng_clk_src.clkr.hw, 4123 + }, 4124 + .num_parents = 1, 4125 + .flags = CLK_SET_RATE_PARENT, 4126 + .ops = &clk_branch2_ops, 4127 + }, 4128 + }, 4129 + }; 4130 + 4131 + static struct clk_branch gcc_pcie_2_pipe_clk = { 4132 + .halt_reg = 0xc0028, 4133 + .halt_check = BRANCH_HALT_SKIP, 4134 + .clkr = { 4135 + .enable_reg = 0x62018, 4136 + .enable_mask = BIT(1), 4137 + .hw.init = &(const struct clk_init_data) { 4138 + .name = "gcc_pcie_2_pipe_clk", 4139 + .parent_hws = (const struct clk_hw*[]) { 4140 + &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw, 4141 + }, 4142 + .num_parents = 1, 4143 + .flags = CLK_SET_RATE_PARENT, 4144 + .ops = &clk_branch2_ops, 4145 + }, 4146 + }, 4147 + }; 4148 + 4149 + static struct clk_branch gcc_pcie_2_slv_axi_clk = { 4150 + .halt_reg = 0xba4b0, 4151 + .halt_check = BRANCH_HALT_VOTED, 4152 + .hwcg_reg = 0xba4b0, 4153 + .hwcg_bit = 1, 4154 + .clkr = { 4155 + .enable_reg = 0x62010, 4156 + .enable_mask = BIT(29), 4157 + .hw.init = &(const struct clk_init_data) { 4158 + .name = "gcc_pcie_2_slv_axi_clk", 4159 + .ops = &clk_branch2_ops, 4160 + }, 4161 + }, 4162 + }; 4163 + 4164 + static struct clk_branch gcc_pcie_2_slv_q2a_axi_clk = { 4165 + .halt_reg = 0xba4ac, 4166 + .halt_check = BRANCH_HALT_VOTED, 4167 + .clkr = { 4168 + .enable_reg = 0x62010, 4169 + .enable_mask = BIT(28), 4170 + .hw.init = &(const struct clk_init_data) { 4171 + .name = "gcc_pcie_2_slv_q2a_axi_clk", 4172 + .ops = &clk_branch2_ops, 4173 + }, 4174 + }, 4175 + }; 4176 + 4177 + static struct clk_branch gcc_pcie_3a_aux_clk = { 4178 + .halt_reg = 0xdc04c, 4179 + .halt_check = BRANCH_HALT_VOTED, 4180 + .hwcg_reg = 0xdc04c, 4181 + .hwcg_bit = 1, 4182 + .clkr = { 4183 + .enable_reg = 0x62028, 4184 + .enable_mask = BIT(16), 4185 + .hw.init = &(const struct clk_init_data) { 4186 + .name = "gcc_pcie_3a_aux_clk", 4187 + .parent_hws = (const struct clk_hw*[]) { 4188 + &gcc_pcie_3a_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_3a_cfg_ahb_clk = { 4198 + .halt_reg = 0xba4f0, 4199 + .halt_check = BRANCH_HALT_VOTED, 4200 + .hwcg_reg = 0xba4f0, 4201 + .hwcg_bit = 1, 4202 + .clkr = { 4203 + .enable_reg = 0x62028, 4204 + .enable_mask = BIT(15), 4205 + .hw.init = &(const struct clk_init_data) { 4206 + .name = "gcc_pcie_3a_cfg_ahb_clk", 4207 + .ops = &clk_branch2_ops, 4208 + }, 4209 + }, 4210 + }; 4211 + 4212 + static struct clk_branch gcc_pcie_3a_mstr_axi_clk = { 4213 + .halt_reg = 0xdc038, 4214 + .halt_check = BRANCH_HALT_SKIP, 4215 + .hwcg_reg = 0xdc038, 4216 + .hwcg_bit = 1, 4217 + .clkr = { 4218 + .enable_reg = 0x62028, 4219 + .enable_mask = BIT(14), 4220 + .hw.init = &(const struct clk_init_data) { 4221 + .name = "gcc_pcie_3a_mstr_axi_clk", 4222 + .ops = &clk_branch2_ops, 4223 + }, 4224 + }, 4225 + }; 4226 + 4227 + static struct clk_branch gcc_pcie_3a_phy_rchng_clk = { 4228 + .halt_reg = 0xdc06c, 4229 + .halt_check = BRANCH_HALT_VOTED, 4230 + .hwcg_reg = 0xdc06c, 4231 + .hwcg_bit = 1, 4232 + .clkr = { 4233 + .enable_reg = 0x62028, 4234 + .enable_mask = BIT(18), 4235 + .hw.init = &(const struct clk_init_data) { 4236 + .name = "gcc_pcie_3a_phy_rchng_clk", 4237 + .parent_hws = (const struct clk_hw*[]) { 4238 + &gcc_pcie_3a_phy_rchng_clk_src.clkr.hw, 4239 + }, 4240 + .num_parents = 1, 4241 + .flags = CLK_SET_RATE_PARENT, 4242 + .ops = &clk_branch2_ops, 4243 + }, 4244 + }, 4245 + }; 4246 + 4247 + static struct clk_branch gcc_pcie_3a_pipe_clk = { 4248 + .halt_reg = 0xdc05c, 4249 + .halt_check = BRANCH_HALT_SKIP, 4250 + .hwcg_reg = 0xdc05c, 4251 + .hwcg_bit = 1, 4252 + .clkr = { 4253 + .enable_reg = 0x62028, 4254 + .enable_mask = BIT(17), 4255 + .hw.init = &(const struct clk_init_data) { 4256 + .name = "gcc_pcie_3a_pipe_clk", 4257 + .parent_hws = (const struct clk_hw*[]) { 4258 + &gcc_pcie_3a_pipe_clk_src.clkr.hw, 4259 + }, 4260 + .num_parents = 1, 4261 + .flags = CLK_SET_RATE_PARENT, 4262 + .ops = &clk_branch2_ops, 4263 + }, 4264 + }, 4265 + }; 4266 + 4267 + static struct clk_branch gcc_pcie_3a_slv_axi_clk = { 4268 + .halt_reg = 0xdc024, 4269 + .halt_check = BRANCH_HALT_VOTED, 4270 + .hwcg_reg = 0xdc024, 4271 + .hwcg_bit = 1, 4272 + .clkr = { 4273 + .enable_reg = 0x62028, 4274 + .enable_mask = BIT(13), 4275 + .hw.init = &(const struct clk_init_data) { 4276 + .name = "gcc_pcie_3a_slv_axi_clk", 4277 + .ops = &clk_branch2_ops, 4278 + }, 4279 + }, 4280 + }; 4281 + 4282 + static struct clk_branch gcc_pcie_3a_slv_q2a_axi_clk = { 4283 + .halt_reg = 0xdc01c, 4284 + .halt_check = BRANCH_HALT_VOTED, 4285 + .hwcg_reg = 0xdc01c, 4286 + .hwcg_bit = 1, 4287 + .clkr = { 4288 + .enable_reg = 0x62028, 4289 + .enable_mask = BIT(12), 4290 + .hw.init = &(const struct clk_init_data) { 4291 + .name = "gcc_pcie_3a_slv_q2a_axi_clk", 4292 + .ops = &clk_branch2_ops, 4293 + }, 4294 + }, 4295 + }; 4296 + 4297 + static struct clk_branch gcc_pcie_3b_aux_clk = { 4298 + .halt_reg = 0x94050, 4299 + .halt_check = BRANCH_HALT_VOTED, 4300 + .clkr = { 4301 + .enable_reg = 0x62028, 4302 + .enable_mask = BIT(25), 4303 + .hw.init = &(const struct clk_init_data) { 4304 + .name = "gcc_pcie_3b_aux_clk", 4305 + .parent_hws = (const struct clk_hw*[]) { 4306 + &gcc_pcie_3b_aux_clk_src.clkr.hw, 4307 + }, 4308 + .num_parents = 1, 4309 + .flags = CLK_SET_RATE_PARENT, 4310 + .ops = &clk_branch2_ops, 4311 + }, 4312 + }, 4313 + }; 4314 + 4315 + static struct clk_branch gcc_pcie_3b_cfg_ahb_clk = { 4316 + .halt_reg = 0xba4f4, 4317 + .halt_check = BRANCH_HALT_VOTED, 4318 + .hwcg_reg = 0xba4f4, 4319 + .hwcg_bit = 1, 4320 + .clkr = { 4321 + .enable_reg = 0x62028, 4322 + .enable_mask = BIT(24), 4323 + .hw.init = &(const struct clk_init_data) { 4324 + .name = "gcc_pcie_3b_cfg_ahb_clk", 4325 + .ops = &clk_branch2_ops, 4326 + }, 4327 + }, 4328 + }; 4329 + 4330 + static struct clk_branch gcc_pcie_3b_mstr_axi_clk = { 4331 + .halt_reg = 0x94038, 4332 + .halt_check = BRANCH_HALT_SKIP, 4333 + .hwcg_reg = 0x94038, 4334 + .hwcg_bit = 1, 4335 + .clkr = { 4336 + .enable_reg = 0x62028, 4337 + .enable_mask = BIT(23), 4338 + .hw.init = &(const struct clk_init_data) { 4339 + .name = "gcc_pcie_3b_mstr_axi_clk", 4340 + .ops = &clk_branch2_ops, 4341 + }, 4342 + }, 4343 + }; 4344 + 4345 + static struct clk_branch gcc_pcie_3b_phy_rchng_clk = { 4346 + .halt_reg = 0x94084, 4347 + .halt_check = BRANCH_HALT_VOTED, 4348 + .clkr = { 4349 + .enable_reg = 0x62028, 4350 + .enable_mask = BIT(28), 4351 + .hw.init = &(const struct clk_init_data) { 4352 + .name = "gcc_pcie_3b_phy_rchng_clk", 4353 + .parent_hws = (const struct clk_hw*[]) { 4354 + &gcc_pcie_3b_phy_rchng_clk_src.clkr.hw, 4355 + }, 4356 + .num_parents = 1, 4357 + .flags = CLK_SET_RATE_PARENT, 4358 + .ops = &clk_branch2_ops, 4359 + }, 4360 + }, 4361 + }; 4362 + 4363 + static struct clk_branch gcc_pcie_3b_pipe_clk = { 4364 + .halt_reg = 0x94060, 4365 + .halt_check = BRANCH_HALT_SKIP, 4366 + .clkr = { 4367 + .enable_reg = 0x62028, 4368 + .enable_mask = BIT(26), 4369 + .hw.init = &(const struct clk_init_data) { 4370 + .name = "gcc_pcie_3b_pipe_clk", 4371 + .parent_hws = (const struct clk_hw*[]) { 4372 + &gcc_pcie_3b_pipe_clk_src.clkr.hw, 4373 + }, 4374 + .num_parents = 1, 4375 + .flags = CLK_SET_RATE_PARENT, 4376 + .ops = &clk_branch2_ops, 4377 + }, 4378 + }, 4379 + }; 4380 + 4381 + static struct clk_branch gcc_pcie_3b_pipe_div2_clk = { 4382 + .halt_reg = 0x94074, 4383 + .halt_check = BRANCH_HALT_SKIP, 4384 + .clkr = { 4385 + .enable_reg = 0x62028, 4386 + .enable_mask = BIT(27), 4387 + .hw.init = &(const struct clk_init_data) { 4388 + .name = "gcc_pcie_3b_pipe_div2_clk", 4389 + .parent_hws = (const struct clk_hw*[]) { 4390 + &gcc_pcie_3b_pipe_div_clk_src.clkr.hw, 4391 + }, 4392 + .num_parents = 1, 4393 + .flags = CLK_SET_RATE_PARENT, 4394 + .ops = &clk_branch2_ops, 4395 + }, 4396 + }, 4397 + }; 4398 + 4399 + static struct clk_branch gcc_pcie_3b_slv_axi_clk = { 4400 + .halt_reg = 0x94024, 4401 + .halt_check = BRANCH_HALT_VOTED, 4402 + .hwcg_reg = 0x94024, 4403 + .hwcg_bit = 1, 4404 + .clkr = { 4405 + .enable_reg = 0x62028, 4406 + .enable_mask = BIT(22), 4407 + .hw.init = &(const struct clk_init_data) { 4408 + .name = "gcc_pcie_3b_slv_axi_clk", 4409 + .ops = &clk_branch2_ops, 4410 + }, 4411 + }, 4412 + }; 4413 + 4414 + static struct clk_branch gcc_pcie_3b_slv_q2a_axi_clk = { 4415 + .halt_reg = 0x9401c, 4416 + .halt_check = BRANCH_HALT_VOTED, 4417 + .clkr = { 4418 + .enable_reg = 0x62028, 4419 + .enable_mask = BIT(21), 4420 + .hw.init = &(const struct clk_init_data) { 4421 + .name = "gcc_pcie_3b_slv_q2a_axi_clk", 4422 + .ops = &clk_branch2_ops, 4423 + }, 4424 + }, 4425 + }; 4426 + 4427 + static struct clk_branch gcc_pcie_4_aux_clk = { 4428 + .halt_reg = 0x88040, 4429 + .halt_check = BRANCH_HALT_VOTED, 4430 + .clkr = { 4431 + .enable_reg = 0x62030, 4432 + .enable_mask = BIT(17), 4433 + .hw.init = &(const struct clk_init_data) { 4434 + .name = "gcc_pcie_4_aux_clk", 4435 + .parent_hws = (const struct clk_hw*[]) { 4436 + &gcc_pcie_4_aux_clk_src.clkr.hw, 4437 + }, 4438 + .num_parents = 1, 4439 + .flags = CLK_SET_RATE_PARENT, 4440 + .ops = &clk_branch2_ops, 4441 + }, 4442 + }, 4443 + }; 4444 + 4445 + static struct clk_branch gcc_pcie_4_cfg_ahb_clk = { 4446 + .halt_reg = 0xba4fc, 4447 + .halt_check = BRANCH_HALT_VOTED, 4448 + .hwcg_reg = 0xba4fc, 4449 + .hwcg_bit = 1, 4450 + .clkr = { 4451 + .enable_reg = 0x62030, 4452 + .enable_mask = BIT(16), 4453 + .hw.init = &(const struct clk_init_data) { 4454 + .name = "gcc_pcie_4_cfg_ahb_clk", 4455 + .ops = &clk_branch2_ops, 4456 + }, 4457 + }, 4458 + }; 4459 + 4460 + static struct clk_branch gcc_pcie_4_mstr_axi_clk = { 4461 + .halt_reg = 0x88030, 4462 + .halt_check = BRANCH_HALT_SKIP, 4463 + .hwcg_reg = 0x88030, 4464 + .hwcg_bit = 1, 4465 + .clkr = { 4466 + .enable_reg = 0x62030, 4467 + .enable_mask = BIT(15), 4468 + .hw.init = &(const struct clk_init_data) { 4469 + .name = "gcc_pcie_4_mstr_axi_clk", 4470 + .ops = &clk_branch2_ops, 4471 + }, 4472 + }, 4473 + }; 4474 + 4475 + static struct clk_branch gcc_pcie_4_phy_rchng_clk = { 4476 + .halt_reg = 0x88074, 4477 + .halt_check = BRANCH_HALT_VOTED, 4478 + .clkr = { 4479 + .enable_reg = 0x62030, 4480 + .enable_mask = BIT(20), 4481 + .hw.init = &(const struct clk_init_data) { 4482 + .name = "gcc_pcie_4_phy_rchng_clk", 4483 + .parent_hws = (const struct clk_hw*[]) { 4484 + &gcc_pcie_4_phy_rchng_clk_src.clkr.hw, 4485 + }, 4486 + .num_parents = 1, 4487 + .flags = CLK_SET_RATE_PARENT, 4488 + .ops = &clk_branch2_ops, 4489 + }, 4490 + }, 4491 + }; 4492 + 4493 + static struct clk_branch gcc_pcie_4_pipe_clk = { 4494 + .halt_reg = 0x88050, 4495 + .halt_check = BRANCH_HALT_SKIP, 4496 + .clkr = { 4497 + .enable_reg = 0x62030, 4498 + .enable_mask = BIT(18), 4499 + .hw.init = &(const struct clk_init_data) { 4500 + .name = "gcc_pcie_4_pipe_clk", 4501 + .parent_hws = (const struct clk_hw*[]) { 4502 + &gcc_pcie_4_pipe_clk_src.clkr.hw, 4503 + }, 4504 + .num_parents = 1, 4505 + .flags = CLK_SET_RATE_PARENT, 4506 + .ops = &clk_branch2_ops, 4507 + }, 4508 + }, 4509 + }; 4510 + 4511 + static struct clk_branch gcc_pcie_4_pipe_div2_clk = { 4512 + .halt_reg = 0x88064, 4513 + .halt_check = BRANCH_HALT_SKIP, 4514 + .clkr = { 4515 + .enable_reg = 0x62030, 4516 + .enable_mask = BIT(19), 4517 + .hw.init = &(const struct clk_init_data) { 4518 + .name = "gcc_pcie_4_pipe_div2_clk", 4519 + .parent_hws = (const struct clk_hw*[]) { 4520 + &gcc_pcie_4_pipe_div_clk_src.clkr.hw, 4521 + }, 4522 + .num_parents = 1, 4523 + .flags = CLK_SET_RATE_PARENT, 4524 + .ops = &clk_branch2_ops, 4525 + }, 4526 + }, 4527 + }; 4528 + 4529 + static struct clk_branch gcc_pcie_4_slv_axi_clk = { 4530 + .halt_reg = 0x88020, 4531 + .halt_check = BRANCH_HALT_VOTED, 4532 + .hwcg_reg = 0x88020, 4533 + .hwcg_bit = 1, 4534 + .clkr = { 4535 + .enable_reg = 0x62030, 4536 + .enable_mask = BIT(14), 4537 + .hw.init = &(const struct clk_init_data) { 4538 + .name = "gcc_pcie_4_slv_axi_clk", 4539 + .ops = &clk_branch2_ops, 4540 + }, 4541 + }, 4542 + }; 4543 + 4544 + static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = { 4545 + .halt_reg = 0x8801c, 4546 + .halt_check = BRANCH_HALT_VOTED, 4547 + .clkr = { 4548 + .enable_reg = 0x62030, 4549 + .enable_mask = BIT(13), 4550 + .hw.init = &(const struct clk_init_data) { 4551 + .name = "gcc_pcie_4_slv_q2a_axi_clk", 4552 + .ops = &clk_branch2_ops, 4553 + }, 4554 + }, 4555 + }; 4556 + 4557 + static struct clk_branch gcc_pcie_5_aux_clk = { 4558 + .halt_reg = 0xc304c, 4559 + .halt_check = BRANCH_HALT_VOTED, 4560 + .clkr = { 4561 + .enable_reg = 0x62030, 4562 + .enable_mask = BIT(5), 4563 + .hw.init = &(const struct clk_init_data) { 4564 + .name = "gcc_pcie_5_aux_clk", 4565 + .parent_hws = (const struct clk_hw*[]) { 4566 + &gcc_pcie_5_aux_clk_src.clkr.hw, 4567 + }, 4568 + .num_parents = 1, 4569 + .flags = CLK_SET_RATE_PARENT, 4570 + .ops = &clk_branch2_ops, 4571 + }, 4572 + }, 4573 + }; 4574 + 4575 + static struct clk_branch gcc_pcie_5_cfg_ahb_clk = { 4576 + .halt_reg = 0xba4f8, 4577 + .halt_check = BRANCH_HALT_VOTED, 4578 + .hwcg_reg = 0xba4f8, 4579 + .hwcg_bit = 1, 4580 + .clkr = { 4581 + .enable_reg = 0x62030, 4582 + .enable_mask = BIT(4), 4583 + .hw.init = &(const struct clk_init_data) { 4584 + .name = "gcc_pcie_5_cfg_ahb_clk", 4585 + .ops = &clk_branch2_ops, 4586 + }, 4587 + }, 4588 + }; 4589 + 4590 + static struct clk_branch gcc_pcie_5_mstr_axi_clk = { 4591 + .halt_reg = 0xc3038, 4592 + .halt_check = BRANCH_HALT_SKIP, 4593 + .hwcg_reg = 0xc3038, 4594 + .hwcg_bit = 1, 4595 + .clkr = { 4596 + .enable_reg = 0x62030, 4597 + .enable_mask = BIT(3), 4598 + .hw.init = &(const struct clk_init_data) { 4599 + .name = "gcc_pcie_5_mstr_axi_clk", 4600 + .ops = &clk_branch2_ops, 4601 + }, 4602 + }, 4603 + }; 4604 + 4605 + static struct clk_branch gcc_pcie_5_phy_rchng_clk = { 4606 + .halt_reg = 0xc3080, 4607 + .halt_check = BRANCH_HALT_VOTED, 4608 + .clkr = { 4609 + .enable_reg = 0x62030, 4610 + .enable_mask = BIT(8), 4611 + .hw.init = &(const struct clk_init_data) { 4612 + .name = "gcc_pcie_5_phy_rchng_clk", 4613 + .parent_hws = (const struct clk_hw*[]) { 4614 + &gcc_pcie_5_phy_rchng_clk_src.clkr.hw, 4615 + }, 4616 + .num_parents = 1, 4617 + .flags = CLK_SET_RATE_PARENT, 4618 + .ops = &clk_branch2_ops, 4619 + }, 4620 + }, 4621 + }; 4622 + 4623 + static struct clk_branch gcc_pcie_5_pipe_clk = { 4624 + .halt_reg = 0xc305c, 4625 + .halt_check = BRANCH_HALT_SKIP, 4626 + .clkr = { 4627 + .enable_reg = 0x62030, 4628 + .enable_mask = BIT(6), 4629 + .hw.init = &(const struct clk_init_data) { 4630 + .name = "gcc_pcie_5_pipe_clk", 4631 + .parent_hws = (const struct clk_hw*[]) { 4632 + &gcc_pcie_5_pipe_clk_src.clkr.hw, 4633 + }, 4634 + .num_parents = 1, 4635 + .flags = CLK_SET_RATE_PARENT, 4636 + .ops = &clk_branch2_ops, 4637 + }, 4638 + }, 4639 + }; 4640 + 4641 + static struct clk_branch gcc_pcie_5_pipe_div2_clk = { 4642 + .halt_reg = 0xc3070, 4643 + .halt_check = BRANCH_HALT_SKIP, 4644 + .clkr = { 4645 + .enable_reg = 0x62030, 4646 + .enable_mask = BIT(7), 4647 + .hw.init = &(const struct clk_init_data) { 4648 + .name = "gcc_pcie_5_pipe_div2_clk", 4649 + .parent_hws = (const struct clk_hw*[]) { 4650 + &gcc_pcie_5_pipe_div_clk_src.clkr.hw, 4651 + }, 4652 + .num_parents = 1, 4653 + .flags = CLK_SET_RATE_PARENT, 4654 + .ops = &clk_branch2_ops, 4655 + }, 4656 + }, 4657 + }; 4658 + 4659 + static struct clk_branch gcc_pcie_5_slv_axi_clk = { 4660 + .halt_reg = 0xc3024, 4661 + .halt_check = BRANCH_HALT_VOTED, 4662 + .hwcg_reg = 0xc3024, 4663 + .hwcg_bit = 1, 4664 + .clkr = { 4665 + .enable_reg = 0x62030, 4666 + .enable_mask = BIT(2), 4667 + .hw.init = &(const struct clk_init_data) { 4668 + .name = "gcc_pcie_5_slv_axi_clk", 4669 + .ops = &clk_branch2_ops, 4670 + }, 4671 + }, 4672 + }; 4673 + 4674 + static struct clk_branch gcc_pcie_5_slv_q2a_axi_clk = { 4675 + .halt_reg = 0xc301c, 4676 + .halt_check = BRANCH_HALT_VOTED, 4677 + .clkr = { 4678 + .enable_reg = 0x62030, 4679 + .enable_mask = BIT(1), 4680 + .hw.init = &(const struct clk_init_data) { 4681 + .name = "gcc_pcie_5_slv_q2a_axi_clk", 4682 + .ops = &clk_branch2_ops, 4683 + }, 4684 + }, 4685 + }; 4686 + 4687 + static struct clk_branch gcc_pcie_6_aux_clk = { 4688 + .halt_reg = 0x8a040, 4689 + .halt_check = BRANCH_HALT_VOTED, 4690 + .clkr = { 4691 + .enable_reg = 0x62030, 4692 + .enable_mask = BIT(27), 4693 + .hw.init = &(const struct clk_init_data) { 4694 + .name = "gcc_pcie_6_aux_clk", 4695 + .parent_hws = (const struct clk_hw*[]) { 4696 + &gcc_pcie_6_aux_clk_src.clkr.hw, 4697 + }, 4698 + .num_parents = 1, 4699 + .flags = CLK_SET_RATE_PARENT, 4700 + .ops = &clk_branch2_ops, 4701 + }, 4702 + }, 4703 + }; 4704 + 4705 + static struct clk_branch gcc_pcie_6_cfg_ahb_clk = { 4706 + .halt_reg = 0xba500, 4707 + .halt_check = BRANCH_HALT_VOTED, 4708 + .hwcg_reg = 0xba500, 4709 + .hwcg_bit = 1, 4710 + .clkr = { 4711 + .enable_reg = 0x62030, 4712 + .enable_mask = BIT(26), 4713 + .hw.init = &(const struct clk_init_data) { 4714 + .name = "gcc_pcie_6_cfg_ahb_clk", 4715 + .ops = &clk_branch2_ops, 4716 + }, 4717 + }, 4718 + }; 4719 + 4720 + static struct clk_branch gcc_pcie_6_mstr_axi_clk = { 4721 + .halt_reg = 0x8a030, 4722 + .halt_check = BRANCH_HALT_SKIP, 4723 + .hwcg_reg = 0x8a030, 4724 + .hwcg_bit = 1, 4725 + .clkr = { 4726 + .enable_reg = 0x62030, 4727 + .enable_mask = BIT(25), 4728 + .hw.init = &(const struct clk_init_data) { 4729 + .name = "gcc_pcie_6_mstr_axi_clk", 4730 + .ops = &clk_branch2_ops, 4731 + }, 4732 + }, 4733 + }; 4734 + 4735 + static struct clk_branch gcc_pcie_6_phy_rchng_clk = { 4736 + .halt_reg = 0x8a074, 4737 + .halt_check = BRANCH_HALT_VOTED, 4738 + .clkr = { 4739 + .enable_reg = 0x62030, 4740 + .enable_mask = BIT(30), 4741 + .hw.init = &(const struct clk_init_data) { 4742 + .name = "gcc_pcie_6_phy_rchng_clk", 4743 + .parent_hws = (const struct clk_hw*[]) { 4744 + &gcc_pcie_6_phy_rchng_clk_src.clkr.hw, 4745 + }, 4746 + .num_parents = 1, 4747 + .flags = CLK_SET_RATE_PARENT, 4748 + .ops = &clk_branch2_ops, 4749 + }, 4750 + }, 4751 + }; 4752 + 4753 + static struct clk_branch gcc_pcie_6_pipe_clk = { 4754 + .halt_reg = 0x8a050, 4755 + .halt_check = BRANCH_HALT_SKIP, 4756 + .clkr = { 4757 + .enable_reg = 0x62030, 4758 + .enable_mask = BIT(28), 4759 + .hw.init = &(const struct clk_init_data) { 4760 + .name = "gcc_pcie_6_pipe_clk", 4761 + .parent_hws = (const struct clk_hw*[]) { 4762 + &gcc_pcie_6_pipe_clk_src.clkr.hw, 4763 + }, 4764 + .num_parents = 1, 4765 + .flags = CLK_SET_RATE_PARENT, 4766 + .ops = &clk_branch2_ops, 4767 + }, 4768 + }, 4769 + }; 4770 + 4771 + static struct clk_branch gcc_pcie_6_pipe_div2_clk = { 4772 + .halt_reg = 0x8a064, 4773 + .halt_check = BRANCH_HALT_SKIP, 4774 + .clkr = { 4775 + .enable_reg = 0x62030, 4776 + .enable_mask = BIT(29), 4777 + .hw.init = &(const struct clk_init_data) { 4778 + .name = "gcc_pcie_6_pipe_div2_clk", 4779 + .parent_hws = (const struct clk_hw*[]) { 4780 + &gcc_pcie_6_pipe_div_clk_src.clkr.hw, 4781 + }, 4782 + .num_parents = 1, 4783 + .flags = CLK_SET_RATE_PARENT, 4784 + .ops = &clk_branch2_ops, 4785 + }, 4786 + }, 4787 + }; 4788 + 4789 + static struct clk_branch gcc_pcie_6_slv_axi_clk = { 4790 + .halt_reg = 0x8a020, 4791 + .halt_check = BRANCH_HALT_VOTED, 4792 + .hwcg_reg = 0x8a020, 4793 + .hwcg_bit = 1, 4794 + .clkr = { 4795 + .enable_reg = 0x62030, 4796 + .enable_mask = BIT(24), 4797 + .hw.init = &(const struct clk_init_data) { 4798 + .name = "gcc_pcie_6_slv_axi_clk", 4799 + .ops = &clk_branch2_ops, 4800 + }, 4801 + }, 4802 + }; 4803 + 4804 + static struct clk_branch gcc_pcie_6_slv_q2a_axi_clk = { 4805 + .halt_reg = 0x8a01c, 4806 + .halt_check = BRANCH_HALT_VOTED, 4807 + .clkr = { 4808 + .enable_reg = 0x62030, 4809 + .enable_mask = BIT(23), 4810 + .hw.init = &(const struct clk_init_data) { 4811 + .name = "gcc_pcie_6_slv_q2a_axi_clk", 4812 + .ops = &clk_branch2_ops, 4813 + }, 4814 + }, 4815 + }; 4816 + 4817 + static struct clk_branch gcc_pcie_noc_pwrctl_clk = { 4818 + .halt_reg = 0xba2ac, 4819 + .halt_check = BRANCH_HALT_VOTED, 4820 + .clkr = { 4821 + .enable_reg = 0x62008, 4822 + .enable_mask = BIT(7), 4823 + .hw.init = &(const struct clk_init_data) { 4824 + .name = "gcc_pcie_noc_pwrctl_clk", 4825 + .ops = &clk_branch2_ops, 4826 + }, 4827 + }, 4828 + }; 4829 + 4830 + static struct clk_branch gcc_pcie_noc_qosgen_extref_clk = { 4831 + .halt_reg = 0xba2a8, 4832 + .halt_check = BRANCH_HALT_VOTED, 4833 + .clkr = { 4834 + .enable_reg = 0x62008, 4835 + .enable_mask = BIT(6), 4836 + .hw.init = &(const struct clk_init_data) { 4837 + .name = "gcc_pcie_noc_qosgen_extref_clk", 4838 + .ops = &clk_branch2_ops, 4839 + }, 4840 + }, 4841 + }; 4842 + 4843 + static struct clk_branch gcc_pcie_noc_sf_center_clk = { 4844 + .halt_reg = 0xba2b0, 4845 + .halt_check = BRANCH_HALT_VOTED, 4846 + .hwcg_reg = 0xba2b0, 4847 + .hwcg_bit = 1, 4848 + .clkr = { 4849 + .enable_reg = 0x62008, 4850 + .enable_mask = BIT(8), 4851 + .hw.init = &(const struct clk_init_data) { 4852 + .name = "gcc_pcie_noc_sf_center_clk", 4853 + .ops = &clk_branch2_ops, 4854 + }, 4855 + }, 4856 + }; 4857 + 4858 + static struct clk_branch gcc_pcie_noc_slave_sf_east_clk = { 4859 + .halt_reg = 0xba2b8, 4860 + .halt_check = BRANCH_HALT_VOTED, 4861 + .hwcg_reg = 0xba2b8, 4862 + .hwcg_bit = 1, 4863 + .clkr = { 4864 + .enable_reg = 0x62008, 4865 + .enable_mask = BIT(9), 4866 + .hw.init = &(const struct clk_init_data) { 4867 + .name = "gcc_pcie_noc_slave_sf_east_clk", 4868 + .ops = &clk_branch2_ops, 4869 + }, 4870 + }, 4871 + }; 4872 + 4873 + static struct clk_branch gcc_pcie_noc_slave_sf_west_clk = { 4874 + .halt_reg = 0xba2c0, 4875 + .halt_check = BRANCH_HALT_VOTED, 4876 + .hwcg_reg = 0xba2c0, 4877 + .hwcg_bit = 1, 4878 + .clkr = { 4879 + .enable_reg = 0x62008, 4880 + .enable_mask = BIT(10), 4881 + .hw.init = &(const struct clk_init_data) { 4882 + .name = "gcc_pcie_noc_slave_sf_west_clk", 4883 + .ops = &clk_branch2_ops, 4884 + }, 4885 + }, 4886 + }; 4887 + 4888 + static struct clk_branch gcc_pcie_noc_tsctr_clk = { 4889 + .halt_reg = 0xba2a4, 4890 + .halt_check = BRANCH_HALT_VOTED, 4891 + .hwcg_reg = 0xba2a4, 4892 + .hwcg_bit = 1, 4893 + .clkr = { 4894 + .enable_reg = 0x62008, 4895 + .enable_mask = BIT(5), 4896 + .hw.init = &(const struct clk_init_data) { 4897 + .name = "gcc_pcie_noc_tsctr_clk", 4898 + .ops = &clk_branch2_ops, 4899 + }, 4900 + }, 4901 + }; 4902 + 4903 + static struct clk_branch gcc_pcie_phy_3a_aux_clk = { 4904 + .halt_reg = 0x6c038, 4905 + .halt_check = BRANCH_HALT_VOTED, 4906 + .hwcg_reg = 0x6c038, 4907 + .hwcg_bit = 1, 4908 + .clkr = { 4909 + .enable_reg = 0x62028, 4910 + .enable_mask = BIT(19), 4911 + .hw.init = &(const struct clk_init_data) { 4912 + .name = "gcc_pcie_phy_3a_aux_clk", 4913 + .parent_hws = (const struct clk_hw*[]) { 4914 + &gcc_pcie_phy_3a_aux_clk_src.clkr.hw, 4915 + }, 4916 + .num_parents = 1, 4917 + .flags = CLK_SET_RATE_PARENT, 4918 + .ops = &clk_branch2_ops, 4919 + }, 4920 + }, 4921 + }; 4922 + 4923 + static struct clk_branch gcc_pcie_phy_3b_aux_clk = { 4924 + .halt_reg = 0x75034, 4925 + .halt_check = BRANCH_HALT_VOTED, 4926 + .clkr = { 4927 + .enable_reg = 0x62028, 4928 + .enable_mask = BIT(31), 4929 + .hw.init = &(const struct clk_init_data) { 4930 + .name = "gcc_pcie_phy_3b_aux_clk", 4931 + .parent_hws = (const struct clk_hw*[]) { 4932 + &gcc_pcie_phy_3b_aux_clk_src.clkr.hw, 4933 + }, 4934 + .num_parents = 1, 4935 + .flags = CLK_SET_RATE_PARENT, 4936 + .ops = &clk_branch2_ops, 4937 + }, 4938 + }, 4939 + }; 4940 + 4941 + static struct clk_branch gcc_pcie_phy_4_aux_clk = { 4942 + .halt_reg = 0xd3030, 4943 + .halt_check = BRANCH_HALT_VOTED, 4944 + .clkr = { 4945 + .enable_reg = 0x62030, 4946 + .enable_mask = BIT(21), 4947 + .hw.init = &(const struct clk_init_data) { 4948 + .name = "gcc_pcie_phy_4_aux_clk", 4949 + .parent_hws = (const struct clk_hw*[]) { 4950 + &gcc_pcie_phy_4_aux_clk_src.clkr.hw, 4951 + }, 4952 + .num_parents = 1, 4953 + .flags = CLK_SET_RATE_PARENT, 4954 + .ops = &clk_branch2_ops, 4955 + }, 4956 + }, 4957 + }; 4958 + 4959 + static struct clk_branch gcc_pcie_phy_5_aux_clk = { 4960 + .halt_reg = 0xd2030, 4961 + .halt_check = BRANCH_HALT_VOTED, 4962 + .clkr = { 4963 + .enable_reg = 0x62030, 4964 + .enable_mask = BIT(11), 4965 + .hw.init = &(const struct clk_init_data) { 4966 + .name = "gcc_pcie_phy_5_aux_clk", 4967 + .parent_hws = (const struct clk_hw*[]) { 4968 + &gcc_pcie_phy_5_aux_clk_src.clkr.hw, 4969 + }, 4970 + .num_parents = 1, 4971 + .flags = CLK_SET_RATE_PARENT, 4972 + .ops = &clk_branch2_ops, 4973 + }, 4974 + }, 4975 + }; 4976 + 4977 + static struct clk_branch gcc_pcie_phy_6_aux_clk = { 4978 + .halt_reg = 0xd4030, 4979 + .halt_check = BRANCH_HALT_VOTED, 4980 + .clkr = { 4981 + .enable_reg = 0x62030, 4982 + .enable_mask = BIT(31), 4983 + .hw.init = &(const struct clk_init_data) { 4984 + .name = "gcc_pcie_phy_6_aux_clk", 4985 + .parent_hws = (const struct clk_hw*[]) { 4986 + &gcc_pcie_phy_6_aux_clk_src.clkr.hw, 4987 + }, 4988 + .num_parents = 1, 4989 + .flags = CLK_SET_RATE_PARENT, 4990 + .ops = &clk_branch2_ops, 4991 + }, 4992 + }, 4993 + }; 4994 + 4995 + static struct clk_branch gcc_pcie_rscc_cfg_ahb_clk = { 4996 + .halt_reg = 0xb8004, 4997 + .halt_check = BRANCH_HALT_VOTED, 4998 + .hwcg_reg = 0xb8004, 4999 + .hwcg_bit = 1, 5000 + .clkr = { 5001 + .enable_reg = 0x62038, 5002 + .enable_mask = BIT(2), 5003 + .hw.init = &(const struct clk_init_data) { 5004 + .name = "gcc_pcie_rscc_cfg_ahb_clk", 5005 + .ops = &clk_branch2_ops, 5006 + }, 5007 + }, 5008 + }; 5009 + 5010 + static struct clk_branch gcc_pcie_rscc_xo_clk = { 5011 + .halt_reg = 0xb8008, 5012 + .halt_check = BRANCH_HALT_VOTED, 5013 + .clkr = { 5014 + .enable_reg = 0x62038, 5015 + .enable_mask = BIT(3), 5016 + .hw.init = &(const struct clk_init_data) { 5017 + .name = "gcc_pcie_rscc_xo_clk", 5018 + .ops = &clk_branch2_ops, 5019 + }, 5020 + }, 5021 + }; 5022 + 5023 + static struct clk_branch gcc_pdm2_clk = { 5024 + .halt_reg = 0x3300c, 5025 + .halt_check = BRANCH_HALT, 5026 + .clkr = { 5027 + .enable_reg = 0x3300c, 5028 + .enable_mask = BIT(0), 5029 + .hw.init = &(const struct clk_init_data) { 5030 + .name = "gcc_pdm2_clk", 5031 + .parent_hws = (const struct clk_hw*[]) { 5032 + &gcc_pdm2_clk_src.clkr.hw, 5033 + }, 5034 + .num_parents = 1, 5035 + .flags = CLK_SET_RATE_PARENT, 5036 + .ops = &clk_branch2_ops, 5037 + }, 5038 + }, 5039 + }; 5040 + 5041 + static struct clk_branch gcc_pdm_ahb_clk = { 5042 + .halt_reg = 0x33004, 5043 + .halt_check = BRANCH_HALT_VOTED, 5044 + .hwcg_reg = 0x33004, 5045 + .hwcg_bit = 1, 5046 + .clkr = { 5047 + .enable_reg = 0x33004, 5048 + .enable_mask = BIT(0), 5049 + .hw.init = &(const struct clk_init_data) { 5050 + .name = "gcc_pdm_ahb_clk", 5051 + .ops = &clk_branch2_ops, 5052 + }, 5053 + }, 5054 + }; 5055 + 5056 + static struct clk_branch gcc_pdm_xo4_clk = { 5057 + .halt_reg = 0x33008, 5058 + .halt_check = BRANCH_HALT, 5059 + .clkr = { 5060 + .enable_reg = 0x33008, 5061 + .enable_mask = BIT(0), 5062 + .hw.init = &(const struct clk_init_data) { 5063 + .name = "gcc_pdm_xo4_clk", 5064 + .ops = &clk_branch2_ops, 5065 + }, 5066 + }, 5067 + }; 5068 + 5069 + static struct clk_branch gcc_qmip_av1e_ahb_clk = { 5070 + .halt_reg = 0x9b048, 5071 + .halt_check = BRANCH_HALT_VOTED, 5072 + .hwcg_reg = 0x9b048, 5073 + .hwcg_bit = 1, 5074 + .clkr = { 5075 + .enable_reg = 0x9b048, 5076 + .enable_mask = BIT(0), 5077 + .hw.init = &(const struct clk_init_data) { 5078 + .name = "gcc_qmip_av1e_ahb_clk", 5079 + .ops = &clk_branch2_ops, 5080 + }, 5081 + }, 5082 + }; 5083 + 5084 + static struct clk_branch gcc_qmip_camera_cmd_ahb_clk = { 5085 + .halt_reg = 0x26010, 5086 + .halt_check = BRANCH_HALT_VOTED, 5087 + .hwcg_reg = 0x26010, 5088 + .hwcg_bit = 1, 5089 + .clkr = { 5090 + .enable_reg = 0x26010, 5091 + .enable_mask = BIT(0), 5092 + .hw.init = &(const struct clk_init_data) { 5093 + .name = "gcc_qmip_camera_cmd_ahb_clk", 5094 + .ops = &clk_branch2_ops, 5095 + }, 5096 + }, 5097 + }; 5098 + 5099 + static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = { 5100 + .halt_reg = 0x26008, 5101 + .halt_check = BRANCH_HALT_VOTED, 5102 + .hwcg_reg = 0x26008, 5103 + .hwcg_bit = 1, 5104 + .clkr = { 5105 + .enable_reg = 0x26008, 5106 + .enable_mask = BIT(0), 5107 + .hw.init = &(const struct clk_init_data) { 5108 + .name = "gcc_qmip_camera_nrt_ahb_clk", 5109 + .ops = &clk_branch2_ops, 5110 + }, 5111 + }, 5112 + }; 5113 + 5114 + static struct clk_branch gcc_qmip_camera_rt_ahb_clk = { 5115 + .halt_reg = 0x2600c, 5116 + .halt_check = BRANCH_HALT_VOTED, 5117 + .hwcg_reg = 0x2600c, 5118 + .hwcg_bit = 1, 5119 + .clkr = { 5120 + .enable_reg = 0x2600c, 5121 + .enable_mask = BIT(0), 5122 + .hw.init = &(const struct clk_init_data) { 5123 + .name = "gcc_qmip_camera_rt_ahb_clk", 5124 + .ops = &clk_branch2_ops, 5125 + }, 5126 + }, 5127 + }; 5128 + 5129 + static struct clk_branch gcc_qmip_gpu_ahb_clk = { 5130 + .halt_reg = 0x71008, 5131 + .halt_check = BRANCH_HALT_VOTED, 5132 + .hwcg_reg = 0x71008, 5133 + .hwcg_bit = 1, 5134 + .clkr = { 5135 + .enable_reg = 0x71008, 5136 + .enable_mask = BIT(0), 5137 + .hw.init = &(const struct clk_init_data) { 5138 + .name = "gcc_qmip_gpu_ahb_clk", 5139 + .ops = &clk_branch2_ops, 5140 + }, 5141 + }, 5142 + }; 5143 + 5144 + static struct clk_branch gcc_qmip_pcie_3a_ahb_clk = { 5145 + .halt_reg = 0xdc018, 5146 + .halt_check = BRANCH_HALT_VOTED, 5147 + .hwcg_reg = 0xdc018, 5148 + .hwcg_bit = 1, 5149 + .clkr = { 5150 + .enable_reg = 0x62028, 5151 + .enable_mask = BIT(11), 5152 + .hw.init = &(const struct clk_init_data) { 5153 + .name = "gcc_qmip_pcie_3a_ahb_clk", 5154 + .ops = &clk_branch2_ops, 5155 + }, 5156 + }, 5157 + }; 5158 + 5159 + static struct clk_branch gcc_qmip_pcie_3b_ahb_clk = { 5160 + .halt_reg = 0x94018, 5161 + .halt_check = BRANCH_HALT_VOTED, 5162 + .hwcg_reg = 0x94018, 5163 + .hwcg_bit = 1, 5164 + .clkr = { 5165 + .enable_reg = 0x62028, 5166 + .enable_mask = BIT(20), 5167 + .hw.init = &(const struct clk_init_data) { 5168 + .name = "gcc_qmip_pcie_3b_ahb_clk", 5169 + .ops = &clk_branch2_ops, 5170 + }, 5171 + }, 5172 + }; 5173 + 5174 + static struct clk_branch gcc_qmip_pcie_4_ahb_clk = { 5175 + .halt_reg = 0x88018, 5176 + .halt_check = BRANCH_HALT_VOTED, 5177 + .hwcg_reg = 0x88018, 5178 + .hwcg_bit = 1, 5179 + .clkr = { 5180 + .enable_reg = 0x62030, 5181 + .enable_mask = BIT(12), 5182 + .hw.init = &(const struct clk_init_data) { 5183 + .name = "gcc_qmip_pcie_4_ahb_clk", 5184 + .ops = &clk_branch2_ops, 5185 + }, 5186 + }, 5187 + }; 5188 + 5189 + static struct clk_branch gcc_qmip_pcie_5_ahb_clk = { 5190 + .halt_reg = 0xc3018, 5191 + .halt_check = BRANCH_HALT_VOTED, 5192 + .hwcg_reg = 0xc3018, 5193 + .hwcg_bit = 1, 5194 + .clkr = { 5195 + .enable_reg = 0x62030, 5196 + .enable_mask = BIT(0), 5197 + .hw.init = &(const struct clk_init_data) { 5198 + .name = "gcc_qmip_pcie_5_ahb_clk", 5199 + .ops = &clk_branch2_ops, 5200 + }, 5201 + }, 5202 + }; 5203 + 5204 + static struct clk_branch gcc_qmip_pcie_6_ahb_clk = { 5205 + .halt_reg = 0x8a018, 5206 + .halt_check = BRANCH_HALT_VOTED, 5207 + .hwcg_reg = 0x8a018, 5208 + .hwcg_bit = 1, 5209 + .clkr = { 5210 + .enable_reg = 0x62030, 5211 + .enable_mask = BIT(22), 5212 + .hw.init = &(const struct clk_init_data) { 5213 + .name = "gcc_qmip_pcie_6_ahb_clk", 5214 + .ops = &clk_branch2_ops, 5215 + }, 5216 + }, 5217 + }; 5218 + 5219 + static struct clk_branch gcc_qmip_video_cv_cpu_ahb_clk = { 5220 + .halt_reg = 0x32018, 5221 + .halt_check = BRANCH_HALT_VOTED, 5222 + .hwcg_reg = 0x32018, 5223 + .hwcg_bit = 1, 5224 + .clkr = { 5225 + .enable_reg = 0x32018, 5226 + .enable_mask = BIT(0), 5227 + .hw.init = &(const struct clk_init_data) { 5228 + .name = "gcc_qmip_video_cv_cpu_ahb_clk", 5229 + .ops = &clk_branch2_ops, 5230 + }, 5231 + }, 5232 + }; 5233 + 5234 + static struct clk_branch gcc_qmip_video_cvp_ahb_clk = { 5235 + .halt_reg = 0x32008, 5236 + .halt_check = BRANCH_HALT_VOTED, 5237 + .hwcg_reg = 0x32008, 5238 + .hwcg_bit = 1, 5239 + .clkr = { 5240 + .enable_reg = 0x32008, 5241 + .enable_mask = BIT(0), 5242 + .hw.init = &(const struct clk_init_data) { 5243 + .name = "gcc_qmip_video_cvp_ahb_clk", 5244 + .ops = &clk_branch2_ops, 5245 + }, 5246 + }, 5247 + }; 5248 + 5249 + static struct clk_branch gcc_qmip_video_v_cpu_ahb_clk = { 5250 + .halt_reg = 0x32014, 5251 + .halt_check = BRANCH_HALT_VOTED, 5252 + .hwcg_reg = 0x32014, 5253 + .hwcg_bit = 1, 5254 + .clkr = { 5255 + .enable_reg = 0x32014, 5256 + .enable_mask = BIT(0), 5257 + .hw.init = &(const struct clk_init_data) { 5258 + .name = "gcc_qmip_video_v_cpu_ahb_clk", 5259 + .ops = &clk_branch2_ops, 5260 + }, 5261 + }, 5262 + }; 5263 + 5264 + static struct clk_branch gcc_qmip_video_vcodec1_ahb_clk = { 5265 + .halt_reg = 0x32010, 5266 + .halt_check = BRANCH_HALT_VOTED, 5267 + .hwcg_reg = 0x32010, 5268 + .hwcg_bit = 1, 5269 + .clkr = { 5270 + .enable_reg = 0x32010, 5271 + .enable_mask = BIT(0), 5272 + .hw.init = &(const struct clk_init_data) { 5273 + .name = "gcc_qmip_video_vcodec1_ahb_clk", 5274 + .ops = &clk_branch2_ops, 5275 + }, 5276 + }, 5277 + }; 5278 + 5279 + static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = { 5280 + .halt_reg = 0x3200c, 5281 + .halt_check = BRANCH_HALT_VOTED, 5282 + .hwcg_reg = 0x3200c, 5283 + .hwcg_bit = 1, 5284 + .clkr = { 5285 + .enable_reg = 0x3200c, 5286 + .enable_mask = BIT(0), 5287 + .hw.init = &(const struct clk_init_data) { 5288 + .name = "gcc_qmip_video_vcodec_ahb_clk", 5289 + .ops = &clk_branch2_ops, 5290 + }, 5291 + }, 5292 + }; 5293 + 5294 + static struct clk_branch gcc_qupv3_oob_core_2x_clk = { 5295 + .halt_reg = 0xc5040, 5296 + .halt_check = BRANCH_HALT_VOTED, 5297 + .clkr = { 5298 + .enable_reg = 0x62018, 5299 + .enable_mask = BIT(5), 5300 + .hw.init = &(const struct clk_init_data) { 5301 + .name = "gcc_qupv3_oob_core_2x_clk", 5302 + .ops = &clk_branch2_ops, 5303 + }, 5304 + }, 5305 + }; 5306 + 5307 + static struct clk_branch gcc_qupv3_oob_core_clk = { 5308 + .halt_reg = 0xc502c, 5309 + .halt_check = BRANCH_HALT_VOTED, 5310 + .clkr = { 5311 + .enable_reg = 0x62018, 5312 + .enable_mask = BIT(4), 5313 + .hw.init = &(const struct clk_init_data) { 5314 + .name = "gcc_qupv3_oob_core_clk", 5315 + .ops = &clk_branch2_ops, 5316 + }, 5317 + }, 5318 + }; 5319 + 5320 + static struct clk_branch gcc_qupv3_oob_m_ahb_clk = { 5321 + .halt_reg = 0xe7004, 5322 + .halt_check = BRANCH_HALT_VOTED, 5323 + .hwcg_reg = 0xe7004, 5324 + .hwcg_bit = 1, 5325 + .clkr = { 5326 + .enable_reg = 0xe7004, 5327 + .enable_mask = BIT(0), 5328 + .hw.init = &(const struct clk_init_data) { 5329 + .name = "gcc_qupv3_oob_m_ahb_clk", 5330 + .ops = &clk_branch2_ops, 5331 + }, 5332 + }, 5333 + }; 5334 + 5335 + static struct clk_branch gcc_qupv3_oob_qspi_s0_clk = { 5336 + .halt_reg = 0xe7040, 5337 + .halt_check = BRANCH_HALT_VOTED, 5338 + .clkr = { 5339 + .enable_reg = 0x62018, 5340 + .enable_mask = BIT(9), 5341 + .hw.init = &(const struct clk_init_data) { 5342 + .name = "gcc_qupv3_oob_qspi_s0_clk", 5343 + .parent_hws = (const struct clk_hw*[]) { 5344 + &gcc_qupv3_oob_qspi_s0_clk_src.clkr.hw, 5345 + }, 5346 + .num_parents = 1, 5347 + .flags = CLK_SET_RATE_PARENT, 5348 + .ops = &clk_branch2_ops, 5349 + }, 5350 + }, 5351 + }; 5352 + 5353 + static struct clk_branch gcc_qupv3_oob_qspi_s1_clk = { 5354 + .halt_reg = 0xe729c, 5355 + .halt_check = BRANCH_HALT_VOTED, 5356 + .clkr = { 5357 + .enable_reg = 0x62018, 5358 + .enable_mask = BIT(10), 5359 + .hw.init = &(const struct clk_init_data) { 5360 + .name = "gcc_qupv3_oob_qspi_s1_clk", 5361 + .parent_hws = (const struct clk_hw*[]) { 5362 + &gcc_qupv3_oob_qspi_s1_clk_src.clkr.hw, 5363 + }, 5364 + .num_parents = 1, 5365 + .flags = CLK_SET_RATE_PARENT, 5366 + .ops = &clk_branch2_ops, 5367 + }, 5368 + }, 5369 + }; 5370 + 5371 + static struct clk_branch gcc_qupv3_oob_s0_clk = { 5372 + .halt_reg = 0xe7014, 5373 + .halt_check = BRANCH_HALT_VOTED, 5374 + .clkr = { 5375 + .enable_reg = 0x62018, 5376 + .enable_mask = BIT(6), 5377 + .hw.init = &(const struct clk_init_data) { 5378 + .name = "gcc_qupv3_oob_s0_clk", 5379 + .parent_hws = (const struct clk_hw*[]) { 5380 + &gcc_qupv3_oob_s0_clk_src.clkr.hw, 5381 + }, 5382 + .num_parents = 1, 5383 + .flags = CLK_SET_RATE_PARENT, 5384 + .ops = &clk_branch2_ops, 5385 + }, 5386 + }, 5387 + }; 5388 + 5389 + static struct clk_branch gcc_qupv3_oob_s1_clk = { 5390 + .halt_reg = 0xe7028, 5391 + .halt_check = BRANCH_HALT_VOTED, 5392 + .clkr = { 5393 + .enable_reg = 0x62018, 5394 + .enable_mask = BIT(7), 5395 + .hw.init = &(const struct clk_init_data) { 5396 + .name = "gcc_qupv3_oob_s1_clk", 5397 + .parent_hws = (const struct clk_hw*[]) { 5398 + &gcc_qupv3_oob_s1_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_qupv3_oob_s_ahb_clk = { 5408 + .halt_reg = 0xc5028, 5409 + .halt_check = BRANCH_HALT_VOTED, 5410 + .hwcg_reg = 0xc5028, 5411 + .hwcg_bit = 1, 5412 + .clkr = { 5413 + .enable_reg = 0x62018, 5414 + .enable_mask = BIT(3), 5415 + .hw.init = &(const struct clk_init_data) { 5416 + .name = "gcc_qupv3_oob_s_ahb_clk", 5417 + .ops = &clk_branch2_ops, 5418 + }, 5419 + }, 5420 + }; 5421 + 5422 + static struct clk_branch gcc_qupv3_oob_tcxo_clk = { 5423 + .halt_reg = 0xe703c, 5424 + .halt_check = BRANCH_HALT_VOTED, 5425 + .clkr = { 5426 + .enable_reg = 0x62018, 5427 + .enable_mask = BIT(8), 5428 + .hw.init = &(const struct clk_init_data) { 5429 + .name = "gcc_qupv3_oob_tcxo_clk", 5430 + .ops = &clk_branch2_ops, 5431 + }, 5432 + }, 5433 + }; 5434 + 5435 + static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = { 5436 + .halt_reg = 0xc5448, 5437 + .halt_check = BRANCH_HALT_VOTED, 5438 + .clkr = { 5439 + .enable_reg = 0x62020, 5440 + .enable_mask = BIT(12), 5441 + .hw.init = &(const struct clk_init_data) { 5442 + .name = "gcc_qupv3_wrap0_core_2x_clk", 5443 + .ops = &clk_branch2_ops, 5444 + }, 5445 + }, 5446 + }; 5447 + 5448 + static struct clk_branch gcc_qupv3_wrap0_core_clk = { 5449 + .halt_reg = 0xc5434, 5450 + .halt_check = BRANCH_HALT_VOTED, 5451 + .clkr = { 5452 + .enable_reg = 0x62020, 5453 + .enable_mask = BIT(11), 5454 + .hw.init = &(const struct clk_init_data) { 5455 + .name = "gcc_qupv3_wrap0_core_clk", 5456 + .ops = &clk_branch2_ops, 5457 + }, 5458 + }, 5459 + }; 5460 + 5461 + static struct clk_branch gcc_qupv3_wrap0_qspi_s2_clk = { 5462 + .halt_reg = 0x2879c, 5463 + .halt_check = BRANCH_HALT_VOTED, 5464 + .clkr = { 5465 + .enable_reg = 0x62020, 5466 + .enable_mask = BIT(22), 5467 + .hw.init = &(const struct clk_init_data) { 5468 + .name = "gcc_qupv3_wrap0_qspi_s2_clk", 5469 + .parent_hws = (const struct clk_hw*[]) { 5470 + &gcc_qupv3_wrap0_qspi_s2_clk_src.clkr.hw, 5471 + }, 5472 + .num_parents = 1, 5473 + .flags = CLK_SET_RATE_PARENT, 5474 + .ops = &clk_branch2_ops, 5475 + }, 5476 + }, 5477 + }; 5478 + 5479 + static struct clk_branch gcc_qupv3_wrap0_qspi_s3_clk = { 5480 + .halt_reg = 0x288cc, 5481 + .halt_check = BRANCH_HALT_VOTED, 5482 + .clkr = { 5483 + .enable_reg = 0x62020, 5484 + .enable_mask = BIT(23), 5485 + .hw.init = &(const struct clk_init_data) { 5486 + .name = "gcc_qupv3_wrap0_qspi_s3_clk", 5487 + .parent_hws = (const struct clk_hw*[]) { 5488 + &gcc_qupv3_wrap0_qspi_s3_clk_src.clkr.hw, 5489 + }, 5490 + .num_parents = 1, 5491 + .flags = CLK_SET_RATE_PARENT, 5492 + .ops = &clk_branch2_ops, 5493 + }, 5494 + }, 5495 + }; 5496 + 5497 + static struct clk_branch gcc_qupv3_wrap0_qspi_s6_clk = { 5498 + .halt_reg = 0x28798, 5499 + .halt_check = BRANCH_HALT_VOTED, 5500 + .clkr = { 5501 + .enable_reg = 0x62020, 5502 + .enable_mask = BIT(21), 5503 + .hw.init = &(const struct clk_init_data) { 5504 + .name = "gcc_qupv3_wrap0_qspi_s6_clk", 5505 + .parent_hws = (const struct clk_hw*[]) { 5506 + &gcc_qupv3_wrap0_qspi_s6_clk_src.clkr.hw, 5507 + }, 5508 + .num_parents = 1, 5509 + .flags = CLK_SET_RATE_PARENT, 5510 + .ops = &clk_branch2_ops, 5511 + }, 5512 + }, 5513 + }; 5514 + 5515 + static struct clk_branch gcc_qupv3_wrap0_s0_clk = { 5516 + .halt_reg = 0x28004, 5517 + .halt_check = BRANCH_HALT_VOTED, 5518 + .clkr = { 5519 + .enable_reg = 0x62020, 5520 + .enable_mask = BIT(13), 5521 + .hw.init = &(const struct clk_init_data) { 5522 + .name = "gcc_qupv3_wrap0_s0_clk", 5523 + .parent_hws = (const struct clk_hw*[]) { 5524 + &gcc_qupv3_wrap0_s0_clk_src.clkr.hw, 5525 + }, 5526 + .num_parents = 1, 5527 + .flags = CLK_SET_RATE_PARENT, 5528 + .ops = &clk_branch2_ops, 5529 + }, 5530 + }, 5531 + }; 5532 + 5533 + static struct clk_branch gcc_qupv3_wrap0_s1_clk = { 5534 + .halt_reg = 0x28140, 5535 + .halt_check = BRANCH_HALT_VOTED, 5536 + .clkr = { 5537 + .enable_reg = 0x62020, 5538 + .enable_mask = BIT(14), 5539 + .hw.init = &(const struct clk_init_data) { 5540 + .name = "gcc_qupv3_wrap0_s1_clk", 5541 + .parent_hws = (const struct clk_hw*[]) { 5542 + &gcc_qupv3_wrap0_s1_clk_src.clkr.hw, 5543 + }, 5544 + .num_parents = 1, 5545 + .flags = CLK_SET_RATE_PARENT, 5546 + .ops = &clk_branch2_ops, 5547 + }, 5548 + }, 5549 + }; 5550 + 5551 + static struct clk_branch gcc_qupv3_wrap0_s2_clk = { 5552 + .halt_reg = 0x2827c, 5553 + .halt_check = BRANCH_HALT_VOTED, 5554 + .clkr = { 5555 + .enable_reg = 0x62020, 5556 + .enable_mask = BIT(15), 5557 + .hw.init = &(const struct clk_init_data) { 5558 + .name = "gcc_qupv3_wrap0_s2_clk", 5559 + .parent_hws = (const struct clk_hw*[]) { 5560 + &gcc_qupv3_wrap0_s2_clk_src.clkr.hw, 5561 + }, 5562 + .num_parents = 1, 5563 + .flags = CLK_SET_RATE_PARENT, 5564 + .ops = &clk_branch2_ops, 5565 + }, 5566 + }, 5567 + }; 5568 + 5569 + static struct clk_branch gcc_qupv3_wrap0_s3_clk = { 5570 + .halt_reg = 0x28290, 5571 + .halt_check = BRANCH_HALT_VOTED, 5572 + .clkr = { 5573 + .enable_reg = 0x62020, 5574 + .enable_mask = BIT(16), 5575 + .hw.init = &(const struct clk_init_data) { 5576 + .name = "gcc_qupv3_wrap0_s3_clk", 5577 + .parent_hws = (const struct clk_hw*[]) { 5578 + &gcc_qupv3_wrap0_s3_clk_src.clkr.hw, 5579 + }, 5580 + .num_parents = 1, 5581 + .flags = CLK_SET_RATE_PARENT, 5582 + .ops = &clk_branch2_ops, 5583 + }, 5584 + }, 5585 + }; 5586 + 5587 + static struct clk_branch gcc_qupv3_wrap0_s4_clk = { 5588 + .halt_reg = 0x282a4, 5589 + .halt_check = BRANCH_HALT_VOTED, 5590 + .clkr = { 5591 + .enable_reg = 0x62020, 5592 + .enable_mask = BIT(17), 5593 + .hw.init = &(const struct clk_init_data) { 5594 + .name = "gcc_qupv3_wrap0_s4_clk", 5595 + .parent_hws = (const struct clk_hw*[]) { 5596 + &gcc_qupv3_wrap0_s4_clk_src.clkr.hw, 5597 + }, 5598 + .num_parents = 1, 5599 + .flags = CLK_SET_RATE_PARENT, 5600 + .ops = &clk_branch2_ops, 5601 + }, 5602 + }, 5603 + }; 5604 + 5605 + static struct clk_branch gcc_qupv3_wrap0_s5_clk = { 5606 + .halt_reg = 0x283e0, 5607 + .halt_check = BRANCH_HALT_VOTED, 5608 + .clkr = { 5609 + .enable_reg = 0x62020, 5610 + .enable_mask = BIT(18), 5611 + .hw.init = &(const struct clk_init_data) { 5612 + .name = "gcc_qupv3_wrap0_s5_clk", 5613 + .parent_hws = (const struct clk_hw*[]) { 5614 + &gcc_qupv3_wrap0_s5_clk_src.clkr.hw, 5615 + }, 5616 + .num_parents = 1, 5617 + .flags = CLK_SET_RATE_PARENT, 5618 + .ops = &clk_branch2_ops, 5619 + }, 5620 + }, 5621 + }; 5622 + 5623 + static struct clk_branch gcc_qupv3_wrap0_s6_clk = { 5624 + .halt_reg = 0x2851c, 5625 + .halt_check = BRANCH_HALT_VOTED, 5626 + .clkr = { 5627 + .enable_reg = 0x62020, 5628 + .enable_mask = BIT(19), 5629 + .hw.init = &(const struct clk_init_data) { 5630 + .name = "gcc_qupv3_wrap0_s6_clk", 5631 + .parent_hws = (const struct clk_hw*[]) { 5632 + &gcc_qupv3_wrap0_s6_clk_src.clkr.hw, 5633 + }, 5634 + .num_parents = 1, 5635 + .flags = CLK_SET_RATE_PARENT, 5636 + .ops = &clk_branch2_ops, 5637 + }, 5638 + }, 5639 + }; 5640 + 5641 + static struct clk_branch gcc_qupv3_wrap0_s7_clk = { 5642 + .halt_reg = 0x28530, 5643 + .halt_check = BRANCH_HALT_VOTED, 5644 + .clkr = { 5645 + .enable_reg = 0x62020, 5646 + .enable_mask = BIT(20), 5647 + .hw.init = &(const struct clk_init_data) { 5648 + .name = "gcc_qupv3_wrap0_s7_clk", 5649 + .parent_hws = (const struct clk_hw*[]) { 5650 + &gcc_qupv3_wrap0_s7_clk_src.clkr.hw, 5651 + }, 5652 + .num_parents = 1, 5653 + .flags = CLK_SET_RATE_PARENT, 5654 + .ops = &clk_branch2_ops, 5655 + }, 5656 + }, 5657 + }; 5658 + 5659 + static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = { 5660 + .halt_reg = 0xc5198, 5661 + .halt_check = BRANCH_HALT_VOTED, 5662 + .clkr = { 5663 + .enable_reg = 0x62018, 5664 + .enable_mask = BIT(14), 5665 + .hw.init = &(const struct clk_init_data) { 5666 + .name = "gcc_qupv3_wrap1_core_2x_clk", 5667 + .ops = &clk_branch2_ops, 5668 + }, 5669 + }, 5670 + }; 5671 + 5672 + static struct clk_branch gcc_qupv3_wrap1_core_clk = { 5673 + .halt_reg = 0xc5184, 5674 + .halt_check = BRANCH_HALT_VOTED, 5675 + .clkr = { 5676 + .enable_reg = 0x62018, 5677 + .enable_mask = BIT(13), 5678 + .hw.init = &(const struct clk_init_data) { 5679 + .name = "gcc_qupv3_wrap1_core_clk", 5680 + .ops = &clk_branch2_ops, 5681 + }, 5682 + }, 5683 + }; 5684 + 5685 + static struct clk_branch gcc_qupv3_wrap1_qspi_s2_clk = { 5686 + .halt_reg = 0xb379c, 5687 + .halt_check = BRANCH_HALT_VOTED, 5688 + .clkr = { 5689 + .enable_reg = 0x62018, 5690 + .enable_mask = BIT(24), 5691 + .hw.init = &(const struct clk_init_data) { 5692 + .name = "gcc_qupv3_wrap1_qspi_s2_clk", 5693 + .parent_hws = (const struct clk_hw*[]) { 5694 + &gcc_qupv3_wrap1_qspi_s2_clk_src.clkr.hw, 5695 + }, 5696 + .num_parents = 1, 5697 + .flags = CLK_SET_RATE_PARENT, 5698 + .ops = &clk_branch2_ops, 5699 + }, 5700 + }, 5701 + }; 5702 + 5703 + static struct clk_branch gcc_qupv3_wrap1_qspi_s3_clk = { 5704 + .halt_reg = 0xb38cc, 5705 + .halt_check = BRANCH_HALT_VOTED, 5706 + .clkr = { 5707 + .enable_reg = 0x62018, 5708 + .enable_mask = BIT(25), 5709 + .hw.init = &(const struct clk_init_data) { 5710 + .name = "gcc_qupv3_wrap1_qspi_s3_clk", 5711 + .parent_hws = (const struct clk_hw*[]) { 5712 + &gcc_qupv3_wrap1_qspi_s3_clk_src.clkr.hw, 5713 + }, 5714 + .num_parents = 1, 5715 + .flags = CLK_SET_RATE_PARENT, 5716 + .ops = &clk_branch2_ops, 5717 + }, 5718 + }, 5719 + }; 5720 + 5721 + static struct clk_branch gcc_qupv3_wrap1_qspi_s6_clk = { 5722 + .halt_reg = 0xb3798, 5723 + .halt_check = BRANCH_HALT_VOTED, 5724 + .clkr = { 5725 + .enable_reg = 0x62018, 5726 + .enable_mask = BIT(23), 5727 + .hw.init = &(const struct clk_init_data) { 5728 + .name = "gcc_qupv3_wrap1_qspi_s6_clk", 5729 + .parent_hws = (const struct clk_hw*[]) { 5730 + &gcc_qupv3_wrap1_qspi_s6_clk_src.clkr.hw, 5731 + }, 5732 + .num_parents = 1, 5733 + .flags = CLK_SET_RATE_PARENT, 5734 + .ops = &clk_branch2_ops, 5735 + }, 5736 + }, 5737 + }; 5738 + 5739 + static struct clk_branch gcc_qupv3_wrap1_s0_clk = { 5740 + .halt_reg = 0xb3004, 5741 + .halt_check = BRANCH_HALT_VOTED, 5742 + .clkr = { 5743 + .enable_reg = 0x62018, 5744 + .enable_mask = BIT(15), 5745 + .hw.init = &(const struct clk_init_data) { 5746 + .name = "gcc_qupv3_wrap1_s0_clk", 5747 + .parent_hws = (const struct clk_hw*[]) { 5748 + &gcc_qupv3_wrap1_s0_clk_src.clkr.hw, 5749 + }, 5750 + .num_parents = 1, 5751 + .flags = CLK_SET_RATE_PARENT, 5752 + .ops = &clk_branch2_ops, 5753 + }, 5754 + }, 5755 + }; 5756 + 5757 + static struct clk_branch gcc_qupv3_wrap1_s1_clk = { 5758 + .halt_reg = 0xb3140, 5759 + .halt_check = BRANCH_HALT_VOTED, 5760 + .clkr = { 5761 + .enable_reg = 0x62018, 5762 + .enable_mask = BIT(16), 5763 + .hw.init = &(const struct clk_init_data) { 5764 + .name = "gcc_qupv3_wrap1_s1_clk", 5765 + .parent_hws = (const struct clk_hw*[]) { 5766 + &gcc_qupv3_wrap1_s1_clk_src.clkr.hw, 5767 + }, 5768 + .num_parents = 1, 5769 + .flags = CLK_SET_RATE_PARENT, 5770 + .ops = &clk_branch2_ops, 5771 + }, 5772 + }, 5773 + }; 5774 + 5775 + static struct clk_branch gcc_qupv3_wrap1_s2_clk = { 5776 + .halt_reg = 0xb327c, 5777 + .halt_check = BRANCH_HALT_VOTED, 5778 + .clkr = { 5779 + .enable_reg = 0x62018, 5780 + .enable_mask = BIT(17), 5781 + .hw.init = &(const struct clk_init_data) { 5782 + .name = "gcc_qupv3_wrap1_s2_clk", 5783 + .parent_hws = (const struct clk_hw*[]) { 5784 + &gcc_qupv3_wrap1_s2_clk_src.clkr.hw, 5785 + }, 5786 + .num_parents = 1, 5787 + .flags = CLK_SET_RATE_PARENT, 5788 + .ops = &clk_branch2_ops, 5789 + }, 5790 + }, 5791 + }; 5792 + 5793 + static struct clk_branch gcc_qupv3_wrap1_s3_clk = { 5794 + .halt_reg = 0xb3290, 5795 + .halt_check = BRANCH_HALT_VOTED, 5796 + .clkr = { 5797 + .enable_reg = 0x62018, 5798 + .enable_mask = BIT(18), 5799 + .hw.init = &(const struct clk_init_data) { 5800 + .name = "gcc_qupv3_wrap1_s3_clk", 5801 + .parent_hws = (const struct clk_hw*[]) { 5802 + &gcc_qupv3_wrap1_s3_clk_src.clkr.hw, 5803 + }, 5804 + .num_parents = 1, 5805 + .flags = CLK_SET_RATE_PARENT, 5806 + .ops = &clk_branch2_ops, 5807 + }, 5808 + }, 5809 + }; 5810 + 5811 + static struct clk_branch gcc_qupv3_wrap1_s4_clk = { 5812 + .halt_reg = 0xb32a4, 5813 + .halt_check = BRANCH_HALT_VOTED, 5814 + .clkr = { 5815 + .enable_reg = 0x62018, 5816 + .enable_mask = BIT(19), 5817 + .hw.init = &(const struct clk_init_data) { 5818 + .name = "gcc_qupv3_wrap1_s4_clk", 5819 + .parent_hws = (const struct clk_hw*[]) { 5820 + &gcc_qupv3_wrap1_s4_clk_src.clkr.hw, 5821 + }, 5822 + .num_parents = 1, 5823 + .flags = CLK_SET_RATE_PARENT, 5824 + .ops = &clk_branch2_ops, 5825 + }, 5826 + }, 5827 + }; 5828 + 5829 + static struct clk_branch gcc_qupv3_wrap1_s5_clk = { 5830 + .halt_reg = 0xb33e0, 5831 + .halt_check = BRANCH_HALT_VOTED, 5832 + .clkr = { 5833 + .enable_reg = 0x62018, 5834 + .enable_mask = BIT(20), 5835 + .hw.init = &(const struct clk_init_data) { 5836 + .name = "gcc_qupv3_wrap1_s5_clk", 5837 + .parent_hws = (const struct clk_hw*[]) { 5838 + &gcc_qupv3_wrap1_s5_clk_src.clkr.hw, 5839 + }, 5840 + .num_parents = 1, 5841 + .flags = CLK_SET_RATE_PARENT, 5842 + .ops = &clk_branch2_ops, 5843 + }, 5844 + }, 5845 + }; 5846 + 5847 + static struct clk_branch gcc_qupv3_wrap1_s6_clk = { 5848 + .halt_reg = 0xb351c, 5849 + .halt_check = BRANCH_HALT_VOTED, 5850 + .clkr = { 5851 + .enable_reg = 0x62018, 5852 + .enable_mask = BIT(21), 5853 + .hw.init = &(const struct clk_init_data) { 5854 + .name = "gcc_qupv3_wrap1_s6_clk", 5855 + .parent_hws = (const struct clk_hw*[]) { 5856 + &gcc_qupv3_wrap1_s6_clk_src.clkr.hw, 5857 + }, 5858 + .num_parents = 1, 5859 + .flags = CLK_SET_RATE_PARENT, 5860 + .ops = &clk_branch2_ops, 5861 + }, 5862 + }, 5863 + }; 5864 + 5865 + static struct clk_branch gcc_qupv3_wrap1_s7_clk = { 5866 + .halt_reg = 0xb3530, 5867 + .halt_check = BRANCH_HALT_VOTED, 5868 + .clkr = { 5869 + .enable_reg = 0x62018, 5870 + .enable_mask = BIT(22), 5871 + .hw.init = &(const struct clk_init_data) { 5872 + .name = "gcc_qupv3_wrap1_s7_clk", 5873 + .parent_hws = (const struct clk_hw*[]) { 5874 + &gcc_qupv3_wrap1_s7_clk_src.clkr.hw, 5875 + }, 5876 + .num_parents = 1, 5877 + .flags = CLK_SET_RATE_PARENT, 5878 + .ops = &clk_branch2_ops, 5879 + }, 5880 + }, 5881 + }; 5882 + 5883 + static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = { 5884 + .halt_reg = 0xc52f0, 5885 + .halt_check = BRANCH_HALT_VOTED, 5886 + .clkr = { 5887 + .enable_reg = 0x62018, 5888 + .enable_mask = BIT(29), 5889 + .hw.init = &(const struct clk_init_data) { 5890 + .name = "gcc_qupv3_wrap2_core_2x_clk", 5891 + .ops = &clk_branch2_ops, 5892 + }, 5893 + }, 5894 + }; 5895 + 5896 + static struct clk_branch gcc_qupv3_wrap2_core_clk = { 5897 + .halt_reg = 0xc52dc, 5898 + .halt_check = BRANCH_HALT_VOTED, 5899 + .clkr = { 5900 + .enable_reg = 0x62018, 5901 + .enable_mask = BIT(28), 5902 + .hw.init = &(const struct clk_init_data) { 5903 + .name = "gcc_qupv3_wrap2_core_clk", 5904 + .ops = &clk_branch2_ops, 5905 + }, 5906 + }, 5907 + }; 5908 + 5909 + static struct clk_branch gcc_qupv3_wrap2_qspi_s2_clk = { 5910 + .halt_reg = 0xb479c, 5911 + .halt_check = BRANCH_HALT_VOTED, 5912 + .clkr = { 5913 + .enable_reg = 0x62020, 5914 + .enable_mask = BIT(7), 5915 + .hw.init = &(const struct clk_init_data) { 5916 + .name = "gcc_qupv3_wrap2_qspi_s2_clk", 5917 + .parent_hws = (const struct clk_hw*[]) { 5918 + &gcc_qupv3_wrap2_qspi_s2_clk_src.clkr.hw, 5919 + }, 5920 + .num_parents = 1, 5921 + .flags = CLK_SET_RATE_PARENT, 5922 + .ops = &clk_branch2_ops, 5923 + }, 5924 + }, 5925 + }; 5926 + 5927 + static struct clk_branch gcc_qupv3_wrap2_qspi_s3_clk = { 5928 + .halt_reg = 0xb48cc, 5929 + .halt_check = BRANCH_HALT_VOTED, 5930 + .clkr = { 5931 + .enable_reg = 0x62020, 5932 + .enable_mask = BIT(8), 5933 + .hw.init = &(const struct clk_init_data) { 5934 + .name = "gcc_qupv3_wrap2_qspi_s3_clk", 5935 + .parent_hws = (const struct clk_hw*[]) { 5936 + &gcc_qupv3_wrap2_qspi_s3_clk_src.clkr.hw, 5937 + }, 5938 + .num_parents = 1, 5939 + .flags = CLK_SET_RATE_PARENT, 5940 + .ops = &clk_branch2_ops, 5941 + }, 5942 + }, 5943 + }; 5944 + 5945 + static struct clk_branch gcc_qupv3_wrap2_qspi_s6_clk = { 5946 + .halt_reg = 0xb4798, 5947 + .halt_check = BRANCH_HALT_VOTED, 5948 + .clkr = { 5949 + .enable_reg = 0x62020, 5950 + .enable_mask = BIT(6), 5951 + .hw.init = &(const struct clk_init_data) { 5952 + .name = "gcc_qupv3_wrap2_qspi_s6_clk", 5953 + .parent_hws = (const struct clk_hw*[]) { 5954 + &gcc_qupv3_wrap2_qspi_s6_clk_src.clkr.hw, 5955 + }, 5956 + .num_parents = 1, 5957 + .flags = CLK_SET_RATE_PARENT, 5958 + .ops = &clk_branch2_ops, 5959 + }, 5960 + }, 5961 + }; 5962 + 5963 + static struct clk_branch gcc_qupv3_wrap2_s0_clk = { 5964 + .halt_reg = 0xb4004, 5965 + .halt_check = BRANCH_HALT_VOTED, 5966 + .clkr = { 5967 + .enable_reg = 0x62018, 5968 + .enable_mask = BIT(30), 5969 + .hw.init = &(const struct clk_init_data) { 5970 + .name = "gcc_qupv3_wrap2_s0_clk", 5971 + .parent_hws = (const struct clk_hw*[]) { 5972 + &gcc_qupv3_wrap2_s0_clk_src.clkr.hw, 5973 + }, 5974 + .num_parents = 1, 5975 + .flags = CLK_SET_RATE_PARENT, 5976 + .ops = &clk_branch2_ops, 5977 + }, 5978 + }, 5979 + }; 5980 + 5981 + static struct clk_branch gcc_qupv3_wrap2_s1_clk = { 5982 + .halt_reg = 0xb4140, 5983 + .halt_check = BRANCH_HALT_VOTED, 5984 + .clkr = { 5985 + .enable_reg = 0x62018, 5986 + .enable_mask = BIT(31), 5987 + .hw.init = &(const struct clk_init_data) { 5988 + .name = "gcc_qupv3_wrap2_s1_clk", 5989 + .parent_hws = (const struct clk_hw*[]) { 5990 + &gcc_qupv3_wrap2_s1_clk_src.clkr.hw, 5991 + }, 5992 + .num_parents = 1, 5993 + .flags = CLK_SET_RATE_PARENT, 5994 + .ops = &clk_branch2_ops, 5995 + }, 5996 + }, 5997 + }; 5998 + 5999 + static struct clk_branch gcc_qupv3_wrap2_s2_clk = { 6000 + .halt_reg = 0xb427c, 6001 + .halt_check = BRANCH_HALT_VOTED, 6002 + .clkr = { 6003 + .enable_reg = 0x62020, 6004 + .enable_mask = BIT(0), 6005 + .hw.init = &(const struct clk_init_data) { 6006 + .name = "gcc_qupv3_wrap2_s2_clk", 6007 + .parent_hws = (const struct clk_hw*[]) { 6008 + &gcc_qupv3_wrap2_s2_clk_src.clkr.hw, 6009 + }, 6010 + .num_parents = 1, 6011 + .flags = CLK_SET_RATE_PARENT, 6012 + .ops = &clk_branch2_ops, 6013 + }, 6014 + }, 6015 + }; 6016 + 6017 + static struct clk_branch gcc_qupv3_wrap2_s3_clk = { 6018 + .halt_reg = 0xb4290, 6019 + .halt_check = BRANCH_HALT_VOTED, 6020 + .clkr = { 6021 + .enable_reg = 0x62020, 6022 + .enable_mask = BIT(1), 6023 + .hw.init = &(const struct clk_init_data) { 6024 + .name = "gcc_qupv3_wrap2_s3_clk", 6025 + .parent_hws = (const struct clk_hw*[]) { 6026 + &gcc_qupv3_wrap2_s3_clk_src.clkr.hw, 6027 + }, 6028 + .num_parents = 1, 6029 + .flags = CLK_SET_RATE_PARENT, 6030 + .ops = &clk_branch2_ops, 6031 + }, 6032 + }, 6033 + }; 6034 + 6035 + static struct clk_branch gcc_qupv3_wrap2_s4_clk = { 6036 + .halt_reg = 0xb42a4, 6037 + .halt_check = BRANCH_HALT_VOTED, 6038 + .clkr = { 6039 + .enable_reg = 0x62020, 6040 + .enable_mask = BIT(2), 6041 + .hw.init = &(const struct clk_init_data) { 6042 + .name = "gcc_qupv3_wrap2_s4_clk", 6043 + .parent_hws = (const struct clk_hw*[]) { 6044 + &gcc_qupv3_wrap2_s4_clk_src.clkr.hw, 6045 + }, 6046 + .num_parents = 1, 6047 + .flags = CLK_SET_RATE_PARENT, 6048 + .ops = &clk_branch2_ops, 6049 + }, 6050 + }, 6051 + }; 6052 + 6053 + static struct clk_branch gcc_qupv3_wrap2_s5_clk = { 6054 + .halt_reg = 0xb43e0, 6055 + .halt_check = BRANCH_HALT_VOTED, 6056 + .clkr = { 6057 + .enable_reg = 0x62020, 6058 + .enable_mask = BIT(3), 6059 + .hw.init = &(const struct clk_init_data) { 6060 + .name = "gcc_qupv3_wrap2_s5_clk", 6061 + .parent_hws = (const struct clk_hw*[]) { 6062 + &gcc_qupv3_wrap2_s5_clk_src.clkr.hw, 6063 + }, 6064 + .num_parents = 1, 6065 + .flags = CLK_SET_RATE_PARENT, 6066 + .ops = &clk_branch2_ops, 6067 + }, 6068 + }, 6069 + }; 6070 + 6071 + static struct clk_branch gcc_qupv3_wrap2_s6_clk = { 6072 + .halt_reg = 0xb451c, 6073 + .halt_check = BRANCH_HALT_VOTED, 6074 + .clkr = { 6075 + .enable_reg = 0x62020, 6076 + .enable_mask = BIT(4), 6077 + .hw.init = &(const struct clk_init_data) { 6078 + .name = "gcc_qupv3_wrap2_s6_clk", 6079 + .parent_hws = (const struct clk_hw*[]) { 6080 + &gcc_qupv3_wrap2_s6_clk_src.clkr.hw, 6081 + }, 6082 + .num_parents = 1, 6083 + .flags = CLK_SET_RATE_PARENT, 6084 + .ops = &clk_branch2_ops, 6085 + }, 6086 + }, 6087 + }; 6088 + 6089 + static struct clk_branch gcc_qupv3_wrap2_s7_clk = { 6090 + .halt_reg = 0xb4530, 6091 + .halt_check = BRANCH_HALT_VOTED, 6092 + .clkr = { 6093 + .enable_reg = 0x62020, 6094 + .enable_mask = BIT(5), 6095 + .hw.init = &(const struct clk_init_data) { 6096 + .name = "gcc_qupv3_wrap2_s7_clk", 6097 + .parent_hws = (const struct clk_hw*[]) { 6098 + &gcc_qupv3_wrap2_s7_clk_src.clkr.hw, 6099 + }, 6100 + .num_parents = 1, 6101 + .flags = CLK_SET_RATE_PARENT, 6102 + .ops = &clk_branch2_ops, 6103 + }, 6104 + }, 6105 + }; 6106 + 6107 + static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = { 6108 + .halt_reg = 0xc542c, 6109 + .halt_check = BRANCH_HALT_VOTED, 6110 + .hwcg_reg = 0xc542c, 6111 + .hwcg_bit = 1, 6112 + .clkr = { 6113 + .enable_reg = 0x62020, 6114 + .enable_mask = BIT(9), 6115 + .hw.init = &(const struct clk_init_data) { 6116 + .name = "gcc_qupv3_wrap_0_m_ahb_clk", 6117 + .ops = &clk_branch2_ops, 6118 + }, 6119 + }, 6120 + }; 6121 + 6122 + static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = { 6123 + .halt_reg = 0xc5430, 6124 + .halt_check = BRANCH_HALT_VOTED, 6125 + .hwcg_reg = 0xc5430, 6126 + .hwcg_bit = 1, 6127 + .clkr = { 6128 + .enable_reg = 0x62020, 6129 + .enable_mask = BIT(10), 6130 + .hw.init = &(const struct clk_init_data) { 6131 + .name = "gcc_qupv3_wrap_0_s_ahb_clk", 6132 + .ops = &clk_branch2_ops, 6133 + }, 6134 + }, 6135 + }; 6136 + 6137 + static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = { 6138 + .halt_reg = 0xc517c, 6139 + .halt_check = BRANCH_HALT_VOTED, 6140 + .hwcg_reg = 0xc517c, 6141 + .hwcg_bit = 1, 6142 + .clkr = { 6143 + .enable_reg = 0x62018, 6144 + .enable_mask = BIT(11), 6145 + .hw.init = &(const struct clk_init_data) { 6146 + .name = "gcc_qupv3_wrap_1_m_ahb_clk", 6147 + .ops = &clk_branch2_ops, 6148 + }, 6149 + }, 6150 + }; 6151 + 6152 + static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = { 6153 + .halt_reg = 0xc5180, 6154 + .halt_check = BRANCH_HALT_VOTED, 6155 + .hwcg_reg = 0xc5180, 6156 + .hwcg_bit = 1, 6157 + .clkr = { 6158 + .enable_reg = 0x62018, 6159 + .enable_mask = BIT(12), 6160 + .hw.init = &(const struct clk_init_data) { 6161 + .name = "gcc_qupv3_wrap_1_s_ahb_clk", 6162 + .ops = &clk_branch2_ops, 6163 + }, 6164 + }, 6165 + }; 6166 + 6167 + static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = { 6168 + .halt_reg = 0xc52d4, 6169 + .halt_check = BRANCH_HALT_VOTED, 6170 + .hwcg_reg = 0xc52d4, 6171 + .hwcg_bit = 1, 6172 + .clkr = { 6173 + .enable_reg = 0x62018, 6174 + .enable_mask = BIT(26), 6175 + .hw.init = &(const struct clk_init_data) { 6176 + .name = "gcc_qupv3_wrap_2_m_ahb_clk", 6177 + .ops = &clk_branch2_ops, 6178 + }, 6179 + }, 6180 + }; 6181 + 6182 + static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = { 6183 + .halt_reg = 0xc52d8, 6184 + .halt_check = BRANCH_HALT_VOTED, 6185 + .hwcg_reg = 0xc52d8, 6186 + .hwcg_bit = 1, 6187 + .clkr = { 6188 + .enable_reg = 0x62018, 6189 + .enable_mask = BIT(27), 6190 + .hw.init = &(const struct clk_init_data) { 6191 + .name = "gcc_qupv3_wrap_2_s_ahb_clk", 6192 + .ops = &clk_branch2_ops, 6193 + }, 6194 + }, 6195 + }; 6196 + 6197 + static struct clk_branch gcc_sdcc2_ahb_clk = { 6198 + .halt_reg = 0xb0014, 6199 + .halt_check = BRANCH_HALT, 6200 + .clkr = { 6201 + .enable_reg = 0xb0014, 6202 + .enable_mask = BIT(0), 6203 + .hw.init = &(const struct clk_init_data) { 6204 + .name = "gcc_sdcc2_ahb_clk", 6205 + .ops = &clk_branch2_ops, 6206 + }, 6207 + }, 6208 + }; 6209 + 6210 + static struct clk_branch gcc_sdcc2_apps_clk = { 6211 + .halt_reg = 0xb0004, 6212 + .halt_check = BRANCH_HALT, 6213 + .clkr = { 6214 + .enable_reg = 0xb0004, 6215 + .enable_mask = BIT(0), 6216 + .hw.init = &(const struct clk_init_data) { 6217 + .name = "gcc_sdcc2_apps_clk", 6218 + .parent_hws = (const struct clk_hw*[]) { 6219 + &gcc_sdcc2_apps_clk_src.clkr.hw, 6220 + }, 6221 + .num_parents = 1, 6222 + .flags = CLK_SET_RATE_PARENT, 6223 + .ops = &clk_branch2_ops, 6224 + }, 6225 + }, 6226 + }; 6227 + 6228 + static struct clk_branch gcc_sdcc4_ahb_clk = { 6229 + .halt_reg = 0xdf014, 6230 + .halt_check = BRANCH_HALT, 6231 + .clkr = { 6232 + .enable_reg = 0xdf014, 6233 + .enable_mask = BIT(0), 6234 + .hw.init = &(const struct clk_init_data) { 6235 + .name = "gcc_sdcc4_ahb_clk", 6236 + .ops = &clk_branch2_ops, 6237 + }, 6238 + }, 6239 + }; 6240 + 6241 + static struct clk_branch gcc_sdcc4_apps_clk = { 6242 + .halt_reg = 0xdf004, 6243 + .halt_check = BRANCH_HALT, 6244 + .clkr = { 6245 + .enable_reg = 0xdf004, 6246 + .enable_mask = BIT(0), 6247 + .hw.init = &(const struct clk_init_data) { 6248 + .name = "gcc_sdcc4_apps_clk", 6249 + .parent_hws = (const struct clk_hw*[]) { 6250 + &gcc_sdcc4_apps_clk_src.clkr.hw, 6251 + }, 6252 + .num_parents = 1, 6253 + .flags = CLK_SET_RATE_PARENT, 6254 + .ops = &clk_branch2_ops, 6255 + }, 6256 + }, 6257 + }; 6258 + 6259 + static struct clk_branch gcc_ufs_phy_ahb_clk = { 6260 + .halt_reg = 0xba504, 6261 + .halt_check = BRANCH_HALT_VOTED, 6262 + .hwcg_reg = 0xba504, 6263 + .hwcg_bit = 1, 6264 + .clkr = { 6265 + .enable_reg = 0xba504, 6266 + .enable_mask = BIT(0), 6267 + .hw.init = &(const struct clk_init_data) { 6268 + .name = "gcc_ufs_phy_ahb_clk", 6269 + .ops = &clk_branch2_ops, 6270 + }, 6271 + }, 6272 + }; 6273 + 6274 + static struct clk_branch gcc_ufs_phy_axi_clk = { 6275 + .halt_reg = 0x7701c, 6276 + .halt_check = BRANCH_HALT_VOTED, 6277 + .hwcg_reg = 0x7701c, 6278 + .hwcg_bit = 1, 6279 + .clkr = { 6280 + .enable_reg = 0x7701c, 6281 + .enable_mask = BIT(0), 6282 + .hw.init = &(const struct clk_init_data) { 6283 + .name = "gcc_ufs_phy_axi_clk", 6284 + .parent_hws = (const struct clk_hw*[]) { 6285 + &gcc_ufs_phy_axi_clk_src.clkr.hw, 6286 + }, 6287 + .num_parents = 1, 6288 + .flags = CLK_SET_RATE_PARENT, 6289 + .ops = &clk_branch2_ops, 6290 + }, 6291 + }, 6292 + }; 6293 + 6294 + static struct clk_branch gcc_ufs_phy_ice_core_clk = { 6295 + .halt_reg = 0x77080, 6296 + .halt_check = BRANCH_HALT_VOTED, 6297 + .hwcg_reg = 0x77080, 6298 + .hwcg_bit = 1, 6299 + .clkr = { 6300 + .enable_reg = 0x77080, 6301 + .enable_mask = BIT(0), 6302 + .hw.init = &(const struct clk_init_data) { 6303 + .name = "gcc_ufs_phy_ice_core_clk", 6304 + .parent_hws = (const struct clk_hw*[]) { 6305 + &gcc_ufs_phy_ice_core_clk_src.clkr.hw, 6306 + }, 6307 + .num_parents = 1, 6308 + .flags = CLK_SET_RATE_PARENT, 6309 + .ops = &clk_branch2_ops, 6310 + }, 6311 + }, 6312 + }; 6313 + 6314 + static struct clk_branch gcc_ufs_phy_phy_aux_clk = { 6315 + .halt_reg = 0x770c0, 6316 + .halt_check = BRANCH_HALT_VOTED, 6317 + .hwcg_reg = 0x770c0, 6318 + .hwcg_bit = 1, 6319 + .clkr = { 6320 + .enable_reg = 0x770c0, 6321 + .enable_mask = BIT(0), 6322 + .hw.init = &(const struct clk_init_data) { 6323 + .name = "gcc_ufs_phy_phy_aux_clk", 6324 + .parent_hws = (const struct clk_hw*[]) { 6325 + &gcc_ufs_phy_phy_aux_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_ufs_phy_rx_symbol_0_clk = { 6335 + .halt_reg = 0x77034, 6336 + .halt_check = BRANCH_HALT_DELAY, 6337 + .clkr = { 6338 + .enable_reg = 0x77034, 6339 + .enable_mask = BIT(0), 6340 + .hw.init = &(const struct clk_init_data) { 6341 + .name = "gcc_ufs_phy_rx_symbol_0_clk", 6342 + .parent_hws = (const struct clk_hw*[]) { 6343 + &gcc_ufs_phy_rx_symbol_0_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_ufs_phy_rx_symbol_1_clk = { 6353 + .halt_reg = 0x770dc, 6354 + .halt_check = BRANCH_HALT_DELAY, 6355 + .clkr = { 6356 + .enable_reg = 0x770dc, 6357 + .enable_mask = BIT(0), 6358 + .hw.init = &(const struct clk_init_data) { 6359 + .name = "gcc_ufs_phy_rx_symbol_1_clk", 6360 + .parent_hws = (const struct clk_hw*[]) { 6361 + &gcc_ufs_phy_rx_symbol_1_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_ufs_phy_tx_symbol_0_clk = { 6371 + .halt_reg = 0x77030, 6372 + .halt_check = BRANCH_HALT_DELAY, 6373 + .clkr = { 6374 + .enable_reg = 0x77030, 6375 + .enable_mask = BIT(0), 6376 + .hw.init = &(const struct clk_init_data) { 6377 + .name = "gcc_ufs_phy_tx_symbol_0_clk", 6378 + .parent_hws = (const struct clk_hw*[]) { 6379 + &gcc_ufs_phy_tx_symbol_0_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_ufs_phy_unipro_core_clk = { 6389 + .halt_reg = 0x77070, 6390 + .halt_check = BRANCH_HALT_VOTED, 6391 + .hwcg_reg = 0x77070, 6392 + .hwcg_bit = 1, 6393 + .clkr = { 6394 + .enable_reg = 0x77070, 6395 + .enable_mask = BIT(0), 6396 + .hw.init = &(const struct clk_init_data) { 6397 + .name = "gcc_ufs_phy_unipro_core_clk", 6398 + .parent_hws = (const struct clk_hw*[]) { 6399 + &gcc_ufs_phy_unipro_core_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_usb20_master_clk = { 6409 + .halt_reg = 0xbc018, 6410 + .halt_check = BRANCH_HALT, 6411 + .clkr = { 6412 + .enable_reg = 0xbc018, 6413 + .enable_mask = BIT(0), 6414 + .hw.init = &(const struct clk_init_data) { 6415 + .name = "gcc_usb20_master_clk", 6416 + .parent_hws = (const struct clk_hw*[]) { 6417 + &gcc_usb20_master_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_usb20_mock_utmi_clk = { 6427 + .halt_reg = 0xbc02c, 6428 + .halt_check = BRANCH_HALT, 6429 + .clkr = { 6430 + .enable_reg = 0xbc02c, 6431 + .enable_mask = BIT(0), 6432 + .hw.init = &(const struct clk_init_data) { 6433 + .name = "gcc_usb20_mock_utmi_clk", 6434 + .parent_hws = (const struct clk_hw*[]) { 6435 + &gcc_usb20_mock_utmi_postdiv_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_usb20_sleep_clk = { 6445 + .halt_reg = 0xbc028, 6446 + .halt_check = BRANCH_HALT, 6447 + .clkr = { 6448 + .enable_reg = 0xbc028, 6449 + .enable_mask = BIT(0), 6450 + .hw.init = &(const struct clk_init_data) { 6451 + .name = "gcc_usb20_sleep_clk", 6452 + .ops = &clk_branch2_ops, 6453 + }, 6454 + }, 6455 + }; 6456 + 6457 + static struct clk_branch gcc_usb30_mp_master_clk = { 6458 + .halt_reg = 0x9a024, 6459 + .halt_check = BRANCH_HALT, 6460 + .clkr = { 6461 + .enable_reg = 0x9a024, 6462 + .enable_mask = BIT(0), 6463 + .hw.init = &(const struct clk_init_data) { 6464 + .name = "gcc_usb30_mp_master_clk", 6465 + .parent_hws = (const struct clk_hw*[]) { 6466 + &gcc_usb30_mp_master_clk_src.clkr.hw, 6467 + }, 6468 + .num_parents = 1, 6469 + .flags = CLK_SET_RATE_PARENT, 6470 + .ops = &clk_branch2_ops, 6471 + }, 6472 + }, 6473 + }; 6474 + 6475 + static struct clk_branch gcc_usb30_mp_mock_utmi_clk = { 6476 + .halt_reg = 0x9a038, 6477 + .halt_check = BRANCH_HALT, 6478 + .clkr = { 6479 + .enable_reg = 0x9a038, 6480 + .enable_mask = BIT(0), 6481 + .hw.init = &(const struct clk_init_data) { 6482 + .name = "gcc_usb30_mp_mock_utmi_clk", 6483 + .parent_hws = (const struct clk_hw*[]) { 6484 + &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr.hw, 6485 + }, 6486 + .num_parents = 1, 6487 + .flags = CLK_SET_RATE_PARENT, 6488 + .ops = &clk_branch2_ops, 6489 + }, 6490 + }, 6491 + }; 6492 + 6493 + static struct clk_branch gcc_usb30_mp_sleep_clk = { 6494 + .halt_reg = 0x9a034, 6495 + .halt_check = BRANCH_HALT, 6496 + .clkr = { 6497 + .enable_reg = 0x9a034, 6498 + .enable_mask = BIT(0), 6499 + .hw.init = &(const struct clk_init_data) { 6500 + .name = "gcc_usb30_mp_sleep_clk", 6501 + .ops = &clk_branch2_ops, 6502 + }, 6503 + }, 6504 + }; 6505 + 6506 + static struct clk_branch gcc_usb30_prim_master_clk = { 6507 + .halt_reg = 0x3f030, 6508 + .halt_check = BRANCH_HALT, 6509 + .clkr = { 6510 + .enable_reg = 0x3f030, 6511 + .enable_mask = BIT(0), 6512 + .hw.init = &(const struct clk_init_data) { 6513 + .name = "gcc_usb30_prim_master_clk", 6514 + .parent_hws = (const struct clk_hw*[]) { 6515 + &gcc_usb30_prim_master_clk_src.clkr.hw, 6516 + }, 6517 + .num_parents = 1, 6518 + .flags = CLK_SET_RATE_PARENT, 6519 + .ops = &clk_branch2_ops, 6520 + }, 6521 + }, 6522 + }; 6523 + 6524 + static struct clk_branch gcc_usb30_prim_mock_utmi_clk = { 6525 + .halt_reg = 0x3f048, 6526 + .halt_check = BRANCH_HALT, 6527 + .clkr = { 6528 + .enable_reg = 0x3f048, 6529 + .enable_mask = BIT(0), 6530 + .hw.init = &(const struct clk_init_data) { 6531 + .name = "gcc_usb30_prim_mock_utmi_clk", 6532 + .parent_hws = (const struct clk_hw*[]) { 6533 + &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw, 6534 + }, 6535 + .num_parents = 1, 6536 + .flags = CLK_SET_RATE_PARENT, 6537 + .ops = &clk_branch2_ops, 6538 + }, 6539 + }, 6540 + }; 6541 + 6542 + static struct clk_branch gcc_usb30_prim_sleep_clk = { 6543 + .halt_reg = 0x3f044, 6544 + .halt_check = BRANCH_HALT, 6545 + .clkr = { 6546 + .enable_reg = 0x3f044, 6547 + .enable_mask = BIT(0), 6548 + .hw.init = &(const struct clk_init_data) { 6549 + .name = "gcc_usb30_prim_sleep_clk", 6550 + .ops = &clk_branch2_ops, 6551 + }, 6552 + }, 6553 + }; 6554 + 6555 + static struct clk_branch gcc_usb30_sec_master_clk = { 6556 + .halt_reg = 0xe2024, 6557 + .halt_check = BRANCH_HALT, 6558 + .clkr = { 6559 + .enable_reg = 0xe2024, 6560 + .enable_mask = BIT(0), 6561 + .hw.init = &(const struct clk_init_data) { 6562 + .name = "gcc_usb30_sec_master_clk", 6563 + .parent_hws = (const struct clk_hw*[]) { 6564 + &gcc_usb30_sec_master_clk_src.clkr.hw, 6565 + }, 6566 + .num_parents = 1, 6567 + .flags = CLK_SET_RATE_PARENT, 6568 + .ops = &clk_branch2_ops, 6569 + }, 6570 + }, 6571 + }; 6572 + 6573 + static struct clk_branch gcc_usb30_sec_mock_utmi_clk = { 6574 + .halt_reg = 0xe2038, 6575 + .halt_check = BRANCH_HALT, 6576 + .clkr = { 6577 + .enable_reg = 0xe2038, 6578 + .enable_mask = BIT(0), 6579 + .hw.init = &(const struct clk_init_data) { 6580 + .name = "gcc_usb30_sec_mock_utmi_clk", 6581 + .parent_hws = (const struct clk_hw*[]) { 6582 + &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw, 6583 + }, 6584 + .num_parents = 1, 6585 + .flags = CLK_SET_RATE_PARENT, 6586 + .ops = &clk_branch2_ops, 6587 + }, 6588 + }, 6589 + }; 6590 + 6591 + static struct clk_branch gcc_usb30_sec_sleep_clk = { 6592 + .halt_reg = 0xe2034, 6593 + .halt_check = BRANCH_HALT, 6594 + .clkr = { 6595 + .enable_reg = 0xe2034, 6596 + .enable_mask = BIT(0), 6597 + .hw.init = &(const struct clk_init_data) { 6598 + .name = "gcc_usb30_sec_sleep_clk", 6599 + .ops = &clk_branch2_ops, 6600 + }, 6601 + }, 6602 + }; 6603 + 6604 + static struct clk_branch gcc_usb30_tert_master_clk = { 6605 + .halt_reg = 0xe1024, 6606 + .halt_check = BRANCH_HALT, 6607 + .clkr = { 6608 + .enable_reg = 0xe1024, 6609 + .enable_mask = BIT(0), 6610 + .hw.init = &(const struct clk_init_data) { 6611 + .name = "gcc_usb30_tert_master_clk", 6612 + .parent_hws = (const struct clk_hw*[]) { 6613 + &gcc_usb30_tert_master_clk_src.clkr.hw, 6614 + }, 6615 + .num_parents = 1, 6616 + .flags = CLK_SET_RATE_PARENT, 6617 + .ops = &clk_branch2_ops, 6618 + }, 6619 + }, 6620 + }; 6621 + 6622 + static struct clk_branch gcc_usb30_tert_mock_utmi_clk = { 6623 + .halt_reg = 0xe1038, 6624 + .halt_check = BRANCH_HALT, 6625 + .clkr = { 6626 + .enable_reg = 0xe1038, 6627 + .enable_mask = BIT(0), 6628 + .hw.init = &(const struct clk_init_data) { 6629 + .name = "gcc_usb30_tert_mock_utmi_clk", 6630 + .parent_hws = (const struct clk_hw*[]) { 6631 + &gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr.hw, 6632 + }, 6633 + .num_parents = 1, 6634 + .flags = CLK_SET_RATE_PARENT, 6635 + .ops = &clk_branch2_ops, 6636 + }, 6637 + }, 6638 + }; 6639 + 6640 + static struct clk_branch gcc_usb30_tert_sleep_clk = { 6641 + .halt_reg = 0xe1034, 6642 + .halt_check = BRANCH_HALT, 6643 + .clkr = { 6644 + .enable_reg = 0xe1034, 6645 + .enable_mask = BIT(0), 6646 + .hw.init = &(const struct clk_init_data) { 6647 + .name = "gcc_usb30_tert_sleep_clk", 6648 + .ops = &clk_branch2_ops, 6649 + }, 6650 + }, 6651 + }; 6652 + 6653 + static struct clk_branch gcc_usb3_mp_phy_aux_clk = { 6654 + .halt_reg = 0x9a070, 6655 + .halt_check = BRANCH_HALT, 6656 + .clkr = { 6657 + .enable_reg = 0x9a070, 6658 + .enable_mask = BIT(0), 6659 + .hw.init = &(const struct clk_init_data) { 6660 + .name = "gcc_usb3_mp_phy_aux_clk", 6661 + .parent_hws = (const struct clk_hw*[]) { 6662 + &gcc_usb3_mp_phy_aux_clk_src.clkr.hw, 6663 + }, 6664 + .num_parents = 1, 6665 + .flags = CLK_SET_RATE_PARENT, 6666 + .ops = &clk_branch2_ops, 6667 + }, 6668 + }, 6669 + }; 6670 + 6671 + static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = { 6672 + .halt_reg = 0x9a074, 6673 + .halt_check = BRANCH_HALT, 6674 + .clkr = { 6675 + .enable_reg = 0x9a074, 6676 + .enable_mask = BIT(0), 6677 + .hw.init = &(const struct clk_init_data) { 6678 + .name = "gcc_usb3_mp_phy_com_aux_clk", 6679 + .parent_hws = (const struct clk_hw*[]) { 6680 + &gcc_usb3_mp_phy_aux_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_usb3_mp_phy_pipe_0_clk = { 6690 + .halt_reg = 0x9a078, 6691 + .halt_check = BRANCH_HALT_SKIP, 6692 + .clkr = { 6693 + .enable_reg = 0x9a078, 6694 + .enable_mask = BIT(0), 6695 + .hw.init = &(const struct clk_init_data) { 6696 + .name = "gcc_usb3_mp_phy_pipe_0_clk", 6697 + .parent_hws = (const struct clk_hw*[]) { 6698 + &gcc_usb3_mp_phy_pipe_0_clk_src.clkr.hw, 6699 + }, 6700 + .num_parents = 1, 6701 + .flags = CLK_SET_RATE_PARENT, 6702 + .ops = &clk_branch2_ops, 6703 + }, 6704 + }, 6705 + }; 6706 + 6707 + static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = { 6708 + .halt_reg = 0x9a080, 6709 + .halt_check = BRANCH_HALT_SKIP, 6710 + .clkr = { 6711 + .enable_reg = 0x9a080, 6712 + .enable_mask = BIT(0), 6713 + .hw.init = &(const struct clk_init_data) { 6714 + .name = "gcc_usb3_mp_phy_pipe_1_clk", 6715 + .parent_hws = (const struct clk_hw*[]) { 6716 + &gcc_usb3_mp_phy_pipe_1_clk_src.clkr.hw, 6717 + }, 6718 + .num_parents = 1, 6719 + .flags = CLK_SET_RATE_PARENT, 6720 + .ops = &clk_branch2_ops, 6721 + }, 6722 + }, 6723 + }; 6724 + 6725 + static struct clk_branch gcc_usb3_prim_phy_aux_clk = { 6726 + .halt_reg = 0x3f080, 6727 + .halt_check = BRANCH_HALT, 6728 + .clkr = { 6729 + .enable_reg = 0x3f080, 6730 + .enable_mask = BIT(0), 6731 + .hw.init = &(const struct clk_init_data) { 6732 + .name = "gcc_usb3_prim_phy_aux_clk", 6733 + .parent_hws = (const struct clk_hw*[]) { 6734 + &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 6735 + }, 6736 + .num_parents = 1, 6737 + .flags = CLK_SET_RATE_PARENT, 6738 + .ops = &clk_branch2_ops, 6739 + }, 6740 + }, 6741 + }; 6742 + 6743 + static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = { 6744 + .halt_reg = 0x3f084, 6745 + .halt_check = BRANCH_HALT, 6746 + .clkr = { 6747 + .enable_reg = 0x3f084, 6748 + .enable_mask = BIT(0), 6749 + .hw.init = &(const struct clk_init_data) { 6750 + .name = "gcc_usb3_prim_phy_com_aux_clk", 6751 + .parent_hws = (const struct clk_hw*[]) { 6752 + &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 6753 + }, 6754 + .num_parents = 1, 6755 + .flags = CLK_SET_RATE_PARENT, 6756 + .ops = &clk_branch2_ops, 6757 + }, 6758 + }, 6759 + }; 6760 + 6761 + static struct clk_branch gcc_usb3_prim_phy_pipe_clk = { 6762 + .halt_reg = 0x3f088, 6763 + .halt_check = BRANCH_HALT_DELAY, 6764 + .hwcg_reg = 0x3f088, 6765 + .hwcg_bit = 1, 6766 + .clkr = { 6767 + .enable_reg = 0x3f088, 6768 + .enable_mask = BIT(0), 6769 + .hw.init = &(const struct clk_init_data) { 6770 + .name = "gcc_usb3_prim_phy_pipe_clk", 6771 + .parent_hws = (const struct clk_hw*[]) { 6772 + &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw, 6773 + }, 6774 + .num_parents = 1, 6775 + .flags = CLK_SET_RATE_PARENT, 6776 + .ops = &clk_branch2_ops, 6777 + }, 6778 + }, 6779 + }; 6780 + 6781 + static struct clk_branch gcc_usb3_sec_phy_aux_clk = { 6782 + .halt_reg = 0xe2070, 6783 + .halt_check = BRANCH_HALT, 6784 + .clkr = { 6785 + .enable_reg = 0xe2070, 6786 + .enable_mask = BIT(0), 6787 + .hw.init = &(const struct clk_init_data) { 6788 + .name = "gcc_usb3_sec_phy_aux_clk", 6789 + .parent_hws = (const struct clk_hw*[]) { 6790 + &gcc_usb3_sec_phy_aux_clk_src.clkr.hw, 6791 + }, 6792 + .num_parents = 1, 6793 + .flags = CLK_SET_RATE_PARENT, 6794 + .ops = &clk_branch2_ops, 6795 + }, 6796 + }, 6797 + }; 6798 + 6799 + static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = { 6800 + .halt_reg = 0xe2074, 6801 + .halt_check = BRANCH_HALT, 6802 + .clkr = { 6803 + .enable_reg = 0xe2074, 6804 + .enable_mask = BIT(0), 6805 + .hw.init = &(const struct clk_init_data) { 6806 + .name = "gcc_usb3_sec_phy_com_aux_clk", 6807 + .parent_hws = (const struct clk_hw*[]) { 6808 + &gcc_usb3_sec_phy_aux_clk_src.clkr.hw, 6809 + }, 6810 + .num_parents = 1, 6811 + .flags = CLK_SET_RATE_PARENT, 6812 + .ops = &clk_branch2_ops, 6813 + }, 6814 + }, 6815 + }; 6816 + 6817 + static struct clk_branch gcc_usb3_sec_phy_pipe_clk = { 6818 + .halt_reg = 0xe2078, 6819 + .halt_check = BRANCH_HALT_VOTED, 6820 + .hwcg_reg = 0xe2078, 6821 + .hwcg_bit = 1, 6822 + .clkr = { 6823 + .enable_reg = 0xe2078, 6824 + .enable_mask = BIT(0), 6825 + .hw.init = &(const struct clk_init_data) { 6826 + .name = "gcc_usb3_sec_phy_pipe_clk", 6827 + .parent_hws = (const struct clk_hw*[]) { 6828 + &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw, 6829 + }, 6830 + .num_parents = 1, 6831 + .flags = CLK_SET_RATE_PARENT, 6832 + .ops = &clk_branch2_ops, 6833 + }, 6834 + }, 6835 + }; 6836 + 6837 + static struct clk_branch gcc_usb3_tert_phy_aux_clk = { 6838 + .halt_reg = 0xe1070, 6839 + .halt_check = BRANCH_HALT, 6840 + .clkr = { 6841 + .enable_reg = 0xe1070, 6842 + .enable_mask = BIT(0), 6843 + .hw.init = &(const struct clk_init_data) { 6844 + .name = "gcc_usb3_tert_phy_aux_clk", 6845 + .parent_hws = (const struct clk_hw*[]) { 6846 + &gcc_usb3_tert_phy_aux_clk_src.clkr.hw, 6847 + }, 6848 + .num_parents = 1, 6849 + .flags = CLK_SET_RATE_PARENT, 6850 + .ops = &clk_branch2_ops, 6851 + }, 6852 + }, 6853 + }; 6854 + 6855 + static struct clk_branch gcc_usb3_tert_phy_com_aux_clk = { 6856 + .halt_reg = 0xe1074, 6857 + .halt_check = BRANCH_HALT, 6858 + .clkr = { 6859 + .enable_reg = 0xe1074, 6860 + .enable_mask = BIT(0), 6861 + .hw.init = &(const struct clk_init_data) { 6862 + .name = "gcc_usb3_tert_phy_com_aux_clk", 6863 + .parent_hws = (const struct clk_hw*[]) { 6864 + &gcc_usb3_tert_phy_aux_clk_src.clkr.hw, 6865 + }, 6866 + .num_parents = 1, 6867 + .flags = CLK_SET_RATE_PARENT, 6868 + .ops = &clk_branch2_ops, 6869 + }, 6870 + }, 6871 + }; 6872 + 6873 + static struct clk_branch gcc_usb3_tert_phy_pipe_clk = { 6874 + .halt_reg = 0xe1078, 6875 + .halt_check = BRANCH_HALT_VOTED, 6876 + .hwcg_reg = 0xe1078, 6877 + .hwcg_bit = 1, 6878 + .clkr = { 6879 + .enable_reg = 0xe1078, 6880 + .enable_mask = BIT(0), 6881 + .hw.init = &(const struct clk_init_data) { 6882 + .name = "gcc_usb3_tert_phy_pipe_clk", 6883 + .parent_hws = (const struct clk_hw*[]) { 6884 + &gcc_usb34_tert_phy_pipe_clk_src.clkr.hw, 6885 + }, 6886 + .num_parents = 1, 6887 + .flags = CLK_SET_RATE_PARENT, 6888 + .ops = &clk_branch2_ops, 6889 + }, 6890 + }, 6891 + }; 6892 + 6893 + static struct clk_branch gcc_usb4_0_cfg_ahb_clk = { 6894 + .halt_reg = 0xba450, 6895 + .halt_check = BRANCH_HALT_VOTED, 6896 + .hwcg_reg = 0xba450, 6897 + .hwcg_bit = 1, 6898 + .clkr = { 6899 + .enable_reg = 0xba450, 6900 + .enable_mask = BIT(0), 6901 + .hw.init = &(const struct clk_init_data) { 6902 + .name = "gcc_usb4_0_cfg_ahb_clk", 6903 + .ops = &clk_branch2_ops, 6904 + }, 6905 + }, 6906 + }; 6907 + 6908 + static struct clk_branch gcc_usb4_0_dp0_clk = { 6909 + .halt_reg = 0x2b070, 6910 + .halt_check = BRANCH_HALT, 6911 + .clkr = { 6912 + .enable_reg = 0x2b070, 6913 + .enable_mask = BIT(0), 6914 + .hw.init = &(const struct clk_init_data) { 6915 + .name = "gcc_usb4_0_dp0_clk", 6916 + .parent_hws = (const struct clk_hw*[]) { 6917 + &gcc_usb4_0_phy_dp0_clk_src.clkr.hw, 6918 + }, 6919 + .num_parents = 1, 6920 + .flags = CLK_SET_RATE_PARENT, 6921 + .ops = &clk_branch2_ops, 6922 + }, 6923 + }, 6924 + }; 6925 + 6926 + static struct clk_branch gcc_usb4_0_dp1_clk = { 6927 + .halt_reg = 0x2b124, 6928 + .halt_check = BRANCH_HALT, 6929 + .clkr = { 6930 + .enable_reg = 0x2b124, 6931 + .enable_mask = BIT(0), 6932 + .hw.init = &(const struct clk_init_data) { 6933 + .name = "gcc_usb4_0_dp1_clk", 6934 + .parent_hws = (const struct clk_hw*[]) { 6935 + &gcc_usb4_0_phy_dp1_clk_src.clkr.hw, 6936 + }, 6937 + .num_parents = 1, 6938 + .flags = CLK_SET_RATE_PARENT, 6939 + .ops = &clk_branch2_ops, 6940 + }, 6941 + }, 6942 + }; 6943 + 6944 + static struct clk_branch gcc_usb4_0_master_clk = { 6945 + .halt_reg = 0x2b01c, 6946 + .halt_check = BRANCH_HALT, 6947 + .clkr = { 6948 + .enable_reg = 0x2b01c, 6949 + .enable_mask = BIT(0), 6950 + .hw.init = &(const struct clk_init_data) { 6951 + .name = "gcc_usb4_0_master_clk", 6952 + .parent_hws = (const struct clk_hw*[]) { 6953 + &gcc_usb4_0_master_clk_src.clkr.hw, 6954 + }, 6955 + .num_parents = 1, 6956 + .flags = CLK_SET_RATE_PARENT, 6957 + .ops = &clk_branch2_ops, 6958 + }, 6959 + }, 6960 + }; 6961 + 6962 + static struct clk_branch gcc_usb4_0_phy_p2rr2p_pipe_clk = { 6963 + .halt_reg = 0x2b0f4, 6964 + .halt_check = BRANCH_HALT, 6965 + .clkr = { 6966 + .enable_reg = 0x2b0f4, 6967 + .enable_mask = BIT(0), 6968 + .hw.init = &(const struct clk_init_data) { 6969 + .name = "gcc_usb4_0_phy_p2rr2p_pipe_clk", 6970 + .parent_hws = (const struct clk_hw*[]) { 6971 + &gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr.hw, 6972 + }, 6973 + .num_parents = 1, 6974 + .flags = CLK_SET_RATE_PARENT, 6975 + .ops = &clk_branch2_ops, 6976 + }, 6977 + }, 6978 + }; 6979 + 6980 + static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = { 6981 + .halt_reg = 0x2b04c, 6982 + .halt_check = BRANCH_HALT_VOTED, 6983 + .clkr = { 6984 + .enable_reg = 0x62010, 6985 + .enable_mask = BIT(11), 6986 + .hw.init = &(const struct clk_init_data) { 6987 + .name = "gcc_usb4_0_phy_pcie_pipe_clk", 6988 + .parent_hws = (const struct clk_hw*[]) { 6989 + &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr.hw, 6990 + }, 6991 + .num_parents = 1, 6992 + .flags = CLK_SET_RATE_PARENT, 6993 + .ops = &clk_branch2_ops, 6994 + }, 6995 + }, 6996 + }; 6997 + 6998 + static struct clk_branch gcc_usb4_0_phy_rx0_clk = { 6999 + .halt_reg = 0x2b0c4, 7000 + .halt_check = BRANCH_HALT, 7001 + .clkr = { 7002 + .enable_reg = 0x2b0c4, 7003 + .enable_mask = BIT(0), 7004 + .hw.init = &(const struct clk_init_data) { 7005 + .name = "gcc_usb4_0_phy_rx0_clk", 7006 + .parent_hws = (const struct clk_hw*[]) { 7007 + &gcc_usb4_0_phy_rx0_clk_src.clkr.hw, 7008 + }, 7009 + .num_parents = 1, 7010 + .flags = CLK_SET_RATE_PARENT, 7011 + .ops = &clk_branch2_ops, 7012 + }, 7013 + }, 7014 + }; 7015 + 7016 + static struct clk_branch gcc_usb4_0_phy_rx1_clk = { 7017 + .halt_reg = 0x2b0d8, 7018 + .halt_check = BRANCH_HALT, 7019 + .clkr = { 7020 + .enable_reg = 0x2b0d8, 7021 + .enable_mask = BIT(0), 7022 + .hw.init = &(const struct clk_init_data) { 7023 + .name = "gcc_usb4_0_phy_rx1_clk", 7024 + .parent_hws = (const struct clk_hw*[]) { 7025 + &gcc_usb4_0_phy_rx1_clk_src.clkr.hw, 7026 + }, 7027 + .num_parents = 1, 7028 + .flags = CLK_SET_RATE_PARENT, 7029 + .ops = &clk_branch2_ops, 7030 + }, 7031 + }, 7032 + }; 7033 + 7034 + static struct clk_branch gcc_usb4_0_phy_usb_pipe_clk = { 7035 + .halt_reg = 0x2b0bc, 7036 + .halt_check = BRANCH_HALT_VOTED, 7037 + .hwcg_reg = 0x2b0bc, 7038 + .hwcg_bit = 1, 7039 + .clkr = { 7040 + .enable_reg = 0x2b0bc, 7041 + .enable_mask = BIT(0), 7042 + .hw.init = &(const struct clk_init_data) { 7043 + .name = "gcc_usb4_0_phy_usb_pipe_clk", 7044 + .parent_hws = (const struct clk_hw*[]) { 7045 + &gcc_usb34_prim_phy_pipe_clk_src.clkr.hw, 7046 + }, 7047 + .num_parents = 1, 7048 + .flags = CLK_SET_RATE_PARENT, 7049 + .ops = &clk_branch2_ops, 7050 + }, 7051 + }, 7052 + }; 7053 + 7054 + static struct clk_branch gcc_usb4_0_sb_if_clk = { 7055 + .halt_reg = 0x2b048, 7056 + .halt_check = BRANCH_HALT, 7057 + .clkr = { 7058 + .enable_reg = 0x2b048, 7059 + .enable_mask = BIT(0), 7060 + .hw.init = &(const struct clk_init_data) { 7061 + .name = "gcc_usb4_0_sb_if_clk", 7062 + .parent_hws = (const struct clk_hw*[]) { 7063 + &gcc_usb4_0_sb_if_clk_src.clkr.hw, 7064 + }, 7065 + .num_parents = 1, 7066 + .flags = CLK_SET_RATE_PARENT, 7067 + .ops = &clk_branch2_ops, 7068 + }, 7069 + }, 7070 + }; 7071 + 7072 + static struct clk_branch gcc_usb4_0_sys_clk = { 7073 + .halt_reg = 0x2b05c, 7074 + .halt_check = BRANCH_HALT, 7075 + .clkr = { 7076 + .enable_reg = 0x2b05c, 7077 + .enable_mask = BIT(0), 7078 + .hw.init = &(const struct clk_init_data) { 7079 + .name = "gcc_usb4_0_sys_clk", 7080 + .parent_hws = (const struct clk_hw*[]) { 7081 + &gcc_usb4_0_phy_sys_clk_src.clkr.hw, 7082 + }, 7083 + .num_parents = 1, 7084 + .flags = CLK_SET_RATE_PARENT, 7085 + .ops = &clk_branch2_ops, 7086 + }, 7087 + }, 7088 + }; 7089 + 7090 + static struct clk_branch gcc_usb4_0_tmu_clk = { 7091 + .halt_reg = 0x2b09c, 7092 + .halt_check = BRANCH_HALT_VOTED, 7093 + .hwcg_reg = 0x2b09c, 7094 + .hwcg_bit = 1, 7095 + .clkr = { 7096 + .enable_reg = 0x2b09c, 7097 + .enable_mask = BIT(0), 7098 + .hw.init = &(const struct clk_init_data) { 7099 + .name = "gcc_usb4_0_tmu_clk", 7100 + .parent_hws = (const struct clk_hw*[]) { 7101 + &gcc_usb4_0_tmu_clk_src.clkr.hw, 7102 + }, 7103 + .num_parents = 1, 7104 + .flags = CLK_SET_RATE_PARENT, 7105 + .ops = &clk_branch2_ops, 7106 + }, 7107 + }, 7108 + }; 7109 + 7110 + static struct clk_branch gcc_usb4_0_uc_hrr_clk = { 7111 + .halt_reg = 0x2b06c, 7112 + .halt_check = BRANCH_HALT, 7113 + .clkr = { 7114 + .enable_reg = 0x2b06c, 7115 + .enable_mask = BIT(0), 7116 + .hw.init = &(const struct clk_init_data) { 7117 + .name = "gcc_usb4_0_uc_hrr_clk", 7118 + .parent_hws = (const struct clk_hw*[]) { 7119 + &gcc_usb4_0_phy_sys_clk_src.clkr.hw, 7120 + }, 7121 + .num_parents = 1, 7122 + .flags = CLK_SET_RATE_PARENT, 7123 + .ops = &clk_branch2_ops, 7124 + }, 7125 + }, 7126 + }; 7127 + 7128 + static struct clk_branch gcc_usb4_1_cfg_ahb_clk = { 7129 + .halt_reg = 0xba454, 7130 + .halt_check = BRANCH_HALT_VOTED, 7131 + .hwcg_reg = 0xba454, 7132 + .hwcg_bit = 1, 7133 + .clkr = { 7134 + .enable_reg = 0xba454, 7135 + .enable_mask = BIT(0), 7136 + .hw.init = &(const struct clk_init_data) { 7137 + .name = "gcc_usb4_1_cfg_ahb_clk", 7138 + .ops = &clk_branch2_ops, 7139 + }, 7140 + }, 7141 + }; 7142 + 7143 + static struct clk_branch gcc_usb4_1_dp0_clk = { 7144 + .halt_reg = 0x2d07c, 7145 + .halt_check = BRANCH_HALT, 7146 + .clkr = { 7147 + .enable_reg = 0x2d07c, 7148 + .enable_mask = BIT(0), 7149 + .hw.init = &(const struct clk_init_data) { 7150 + .name = "gcc_usb4_1_dp0_clk", 7151 + .parent_hws = (const struct clk_hw*[]) { 7152 + &gcc_usb4_1_phy_dp0_clk_src.clkr.hw, 7153 + }, 7154 + .num_parents = 1, 7155 + .flags = CLK_SET_RATE_PARENT, 7156 + .ops = &clk_branch2_ops, 7157 + }, 7158 + }, 7159 + }; 7160 + 7161 + static struct clk_branch gcc_usb4_1_dp1_clk = { 7162 + .halt_reg = 0x2d144, 7163 + .halt_check = BRANCH_HALT, 7164 + .clkr = { 7165 + .enable_reg = 0x2d144, 7166 + .enable_mask = BIT(0), 7167 + .hw.init = &(const struct clk_init_data) { 7168 + .name = "gcc_usb4_1_dp1_clk", 7169 + .parent_hws = (const struct clk_hw*[]) { 7170 + &gcc_usb4_1_phy_dp1_clk_src.clkr.hw, 7171 + }, 7172 + .num_parents = 1, 7173 + .flags = CLK_SET_RATE_PARENT, 7174 + .ops = &clk_branch2_ops, 7175 + }, 7176 + }, 7177 + }; 7178 + 7179 + static struct clk_branch gcc_usb4_1_master_clk = { 7180 + .halt_reg = 0x2d01c, 7181 + .halt_check = BRANCH_HALT, 7182 + .clkr = { 7183 + .enable_reg = 0x2d01c, 7184 + .enable_mask = BIT(0), 7185 + .hw.init = &(const struct clk_init_data) { 7186 + .name = "gcc_usb4_1_master_clk", 7187 + .parent_hws = (const struct clk_hw*[]) { 7188 + &gcc_usb4_1_master_clk_src.clkr.hw, 7189 + }, 7190 + .num_parents = 1, 7191 + .flags = CLK_SET_RATE_PARENT, 7192 + .ops = &clk_branch2_ops, 7193 + }, 7194 + }, 7195 + }; 7196 + 7197 + static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = { 7198 + .halt_reg = 0x2d118, 7199 + .halt_check = BRANCH_HALT, 7200 + .clkr = { 7201 + .enable_reg = 0x2d118, 7202 + .enable_mask = BIT(0), 7203 + .hw.init = &(const struct clk_init_data) { 7204 + .name = "gcc_usb4_1_phy_p2rr2p_pipe_clk", 7205 + .parent_hws = (const struct clk_hw*[]) { 7206 + &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw, 7207 + }, 7208 + .num_parents = 1, 7209 + .flags = CLK_SET_RATE_PARENT, 7210 + .ops = &clk_branch2_ops, 7211 + }, 7212 + }, 7213 + }; 7214 + 7215 + static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = { 7216 + .halt_reg = 0x2d04c, 7217 + .halt_check = BRANCH_HALT_VOTED, 7218 + .clkr = { 7219 + .enable_reg = 0x62010, 7220 + .enable_mask = BIT(12), 7221 + .hw.init = &(const struct clk_init_data) { 7222 + .name = "gcc_usb4_1_phy_pcie_pipe_clk", 7223 + .parent_hws = (const struct clk_hw*[]) { 7224 + &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw, 7225 + }, 7226 + .num_parents = 1, 7227 + .flags = CLK_SET_RATE_PARENT, 7228 + .ops = &clk_branch2_ops, 7229 + }, 7230 + }, 7231 + }; 7232 + 7233 + static struct clk_branch gcc_usb4_1_phy_rx0_clk = { 7234 + .halt_reg = 0x2d0e8, 7235 + .halt_check = BRANCH_HALT, 7236 + .clkr = { 7237 + .enable_reg = 0x2d0e8, 7238 + .enable_mask = BIT(0), 7239 + .hw.init = &(const struct clk_init_data) { 7240 + .name = "gcc_usb4_1_phy_rx0_clk", 7241 + .parent_hws = (const struct clk_hw*[]) { 7242 + &gcc_usb4_1_phy_rx0_clk_src.clkr.hw, 7243 + }, 7244 + .num_parents = 1, 7245 + .flags = CLK_SET_RATE_PARENT, 7246 + .ops = &clk_branch2_ops, 7247 + }, 7248 + }, 7249 + }; 7250 + 7251 + static struct clk_branch gcc_usb4_1_phy_rx1_clk = { 7252 + .halt_reg = 0x2d0fc, 7253 + .halt_check = BRANCH_HALT, 7254 + .clkr = { 7255 + .enable_reg = 0x2d0fc, 7256 + .enable_mask = BIT(0), 7257 + .hw.init = &(const struct clk_init_data) { 7258 + .name = "gcc_usb4_1_phy_rx1_clk", 7259 + .parent_hws = (const struct clk_hw*[]) { 7260 + &gcc_usb4_1_phy_rx1_clk_src.clkr.hw, 7261 + }, 7262 + .num_parents = 1, 7263 + .flags = CLK_SET_RATE_PARENT, 7264 + .ops = &clk_branch2_ops, 7265 + }, 7266 + }, 7267 + }; 7268 + 7269 + static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = { 7270 + .halt_reg = 0x2d0e0, 7271 + .halt_check = BRANCH_HALT_VOTED, 7272 + .hwcg_reg = 0x2d0e0, 7273 + .hwcg_bit = 1, 7274 + .clkr = { 7275 + .enable_reg = 0x2d0e0, 7276 + .enable_mask = BIT(0), 7277 + .hw.init = &(const struct clk_init_data) { 7278 + .name = "gcc_usb4_1_phy_usb_pipe_clk", 7279 + .parent_hws = (const struct clk_hw*[]) { 7280 + &gcc_usb34_sec_phy_pipe_clk_src.clkr.hw, 7281 + }, 7282 + .num_parents = 1, 7283 + .flags = CLK_SET_RATE_PARENT, 7284 + .ops = &clk_branch2_ops, 7285 + }, 7286 + }, 7287 + }; 7288 + 7289 + static struct clk_branch gcc_usb4_1_sb_if_clk = { 7290 + .halt_reg = 0x2d048, 7291 + .halt_check = BRANCH_HALT, 7292 + .clkr = { 7293 + .enable_reg = 0x2d048, 7294 + .enable_mask = BIT(0), 7295 + .hw.init = &(const struct clk_init_data) { 7296 + .name = "gcc_usb4_1_sb_if_clk", 7297 + .parent_hws = (const struct clk_hw*[]) { 7298 + &gcc_usb4_1_sb_if_clk_src.clkr.hw, 7299 + }, 7300 + .num_parents = 1, 7301 + .flags = CLK_SET_RATE_PARENT, 7302 + .ops = &clk_branch2_ops, 7303 + }, 7304 + }, 7305 + }; 7306 + 7307 + static struct clk_branch gcc_usb4_1_sys_clk = { 7308 + .halt_reg = 0x2d05c, 7309 + .halt_check = BRANCH_HALT, 7310 + .clkr = { 7311 + .enable_reg = 0x2d05c, 7312 + .enable_mask = BIT(0), 7313 + .hw.init = &(const struct clk_init_data) { 7314 + .name = "gcc_usb4_1_sys_clk", 7315 + .parent_hws = (const struct clk_hw*[]) { 7316 + &gcc_usb4_1_phy_sys_clk_src.clkr.hw, 7317 + }, 7318 + .num_parents = 1, 7319 + .flags = CLK_SET_RATE_PARENT, 7320 + .ops = &clk_branch2_ops, 7321 + }, 7322 + }, 7323 + }; 7324 + 7325 + static struct clk_branch gcc_usb4_1_tmu_clk = { 7326 + .halt_reg = 0x2d0a8, 7327 + .halt_check = BRANCH_HALT_VOTED, 7328 + .hwcg_reg = 0x2d0a8, 7329 + .hwcg_bit = 1, 7330 + .clkr = { 7331 + .enable_reg = 0x2d0a8, 7332 + .enable_mask = BIT(0), 7333 + .hw.init = &(const struct clk_init_data) { 7334 + .name = "gcc_usb4_1_tmu_clk", 7335 + .parent_hws = (const struct clk_hw*[]) { 7336 + &gcc_usb4_1_tmu_clk_src.clkr.hw, 7337 + }, 7338 + .num_parents = 1, 7339 + .flags = CLK_SET_RATE_PARENT, 7340 + .ops = &clk_branch2_ops, 7341 + }, 7342 + }, 7343 + }; 7344 + 7345 + static struct clk_branch gcc_usb4_1_uc_hrr_clk = { 7346 + .halt_reg = 0x2d06c, 7347 + .halt_check = BRANCH_HALT, 7348 + .clkr = { 7349 + .enable_reg = 0x2d06c, 7350 + .enable_mask = BIT(0), 7351 + .hw.init = &(const struct clk_init_data) { 7352 + .name = "gcc_usb4_1_uc_hrr_clk", 7353 + .parent_hws = (const struct clk_hw*[]) { 7354 + &gcc_usb4_1_phy_sys_clk_src.clkr.hw, 7355 + }, 7356 + .num_parents = 1, 7357 + .flags = CLK_SET_RATE_PARENT, 7358 + .ops = &clk_branch2_ops, 7359 + }, 7360 + }, 7361 + }; 7362 + 7363 + static struct clk_branch gcc_usb4_2_cfg_ahb_clk = { 7364 + .halt_reg = 0xba458, 7365 + .halt_check = BRANCH_HALT_VOTED, 7366 + .hwcg_reg = 0xba458, 7367 + .hwcg_bit = 1, 7368 + .clkr = { 7369 + .enable_reg = 0xba458, 7370 + .enable_mask = BIT(0), 7371 + .hw.init = &(const struct clk_init_data) { 7372 + .name = "gcc_usb4_2_cfg_ahb_clk", 7373 + .ops = &clk_branch2_ops, 7374 + }, 7375 + }, 7376 + }; 7377 + 7378 + static struct clk_branch gcc_usb4_2_dp0_clk = { 7379 + .halt_reg = 0xe0070, 7380 + .halt_check = BRANCH_HALT, 7381 + .clkr = { 7382 + .enable_reg = 0xe0070, 7383 + .enable_mask = BIT(0), 7384 + .hw.init = &(const struct clk_init_data) { 7385 + .name = "gcc_usb4_2_dp0_clk", 7386 + .parent_hws = (const struct clk_hw*[]) { 7387 + &gcc_usb4_2_phy_dp0_clk_src.clkr.hw, 7388 + }, 7389 + .num_parents = 1, 7390 + .flags = CLK_SET_RATE_PARENT, 7391 + .ops = &clk_branch2_ops, 7392 + }, 7393 + }, 7394 + }; 7395 + 7396 + static struct clk_branch gcc_usb4_2_dp1_clk = { 7397 + .halt_reg = 0xe0128, 7398 + .halt_check = BRANCH_HALT, 7399 + .clkr = { 7400 + .enable_reg = 0xe0128, 7401 + .enable_mask = BIT(0), 7402 + .hw.init = &(const struct clk_init_data) { 7403 + .name = "gcc_usb4_2_dp1_clk", 7404 + .parent_hws = (const struct clk_hw*[]) { 7405 + &gcc_usb4_2_phy_dp1_clk_src.clkr.hw, 7406 + }, 7407 + .num_parents = 1, 7408 + .flags = CLK_SET_RATE_PARENT, 7409 + .ops = &clk_branch2_ops, 7410 + }, 7411 + }, 7412 + }; 7413 + 7414 + static struct clk_branch gcc_usb4_2_master_clk = { 7415 + .halt_reg = 0xe001c, 7416 + .halt_check = BRANCH_HALT, 7417 + .clkr = { 7418 + .enable_reg = 0xe001c, 7419 + .enable_mask = BIT(0), 7420 + .hw.init = &(const struct clk_init_data) { 7421 + .name = "gcc_usb4_2_master_clk", 7422 + .parent_hws = (const struct clk_hw*[]) { 7423 + &gcc_usb4_2_master_clk_src.clkr.hw, 7424 + }, 7425 + .num_parents = 1, 7426 + .flags = CLK_SET_RATE_PARENT, 7427 + .ops = &clk_branch2_ops, 7428 + }, 7429 + }, 7430 + }; 7431 + 7432 + static struct clk_branch gcc_usb4_2_phy_p2rr2p_pipe_clk = { 7433 + .halt_reg = 0xe00f8, 7434 + .halt_check = BRANCH_HALT, 7435 + .clkr = { 7436 + .enable_reg = 0xe00f8, 7437 + .enable_mask = BIT(0), 7438 + .hw.init = &(const struct clk_init_data) { 7439 + .name = "gcc_usb4_2_phy_p2rr2p_pipe_clk", 7440 + .parent_hws = (const struct clk_hw*[]) { 7441 + &gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr.hw, 7442 + }, 7443 + .num_parents = 1, 7444 + .flags = CLK_SET_RATE_PARENT, 7445 + .ops = &clk_branch2_ops, 7446 + }, 7447 + }, 7448 + }; 7449 + 7450 + static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = { 7451 + .halt_reg = 0xe004c, 7452 + .halt_check = BRANCH_HALT_VOTED, 7453 + .clkr = { 7454 + .enable_reg = 0x62010, 7455 + .enable_mask = BIT(13), 7456 + .hw.init = &(const struct clk_init_data) { 7457 + .name = "gcc_usb4_2_phy_pcie_pipe_clk", 7458 + .parent_hws = (const struct clk_hw*[]) { 7459 + &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr.hw, 7460 + }, 7461 + .num_parents = 1, 7462 + .flags = CLK_SET_RATE_PARENT, 7463 + .ops = &clk_branch2_ops, 7464 + }, 7465 + }, 7466 + }; 7467 + 7468 + static struct clk_branch gcc_usb4_2_phy_rx0_clk = { 7469 + .halt_reg = 0xe00c8, 7470 + .halt_check = BRANCH_HALT, 7471 + .clkr = { 7472 + .enable_reg = 0xe00c8, 7473 + .enable_mask = BIT(0), 7474 + .hw.init = &(const struct clk_init_data) { 7475 + .name = "gcc_usb4_2_phy_rx0_clk", 7476 + .parent_hws = (const struct clk_hw*[]) { 7477 + &gcc_usb4_2_phy_rx0_clk_src.clkr.hw, 7478 + }, 7479 + .num_parents = 1, 7480 + .flags = CLK_SET_RATE_PARENT, 7481 + .ops = &clk_branch2_ops, 7482 + }, 7483 + }, 7484 + }; 7485 + 7486 + static struct clk_branch gcc_usb4_2_phy_rx1_clk = { 7487 + .halt_reg = 0xe00dc, 7488 + .halt_check = BRANCH_HALT, 7489 + .clkr = { 7490 + .enable_reg = 0xe00dc, 7491 + .enable_mask = BIT(0), 7492 + .hw.init = &(const struct clk_init_data) { 7493 + .name = "gcc_usb4_2_phy_rx1_clk", 7494 + .parent_hws = (const struct clk_hw*[]) { 7495 + &gcc_usb4_2_phy_rx1_clk_src.clkr.hw, 7496 + }, 7497 + .num_parents = 1, 7498 + .flags = CLK_SET_RATE_PARENT, 7499 + .ops = &clk_branch2_ops, 7500 + }, 7501 + }, 7502 + }; 7503 + 7504 + static struct clk_branch gcc_usb4_2_phy_usb_pipe_clk = { 7505 + .halt_reg = 0xe00c0, 7506 + .halt_check = BRANCH_HALT_VOTED, 7507 + .hwcg_reg = 0xe00c0, 7508 + .hwcg_bit = 1, 7509 + .clkr = { 7510 + .enable_reg = 0xe00c0, 7511 + .enable_mask = BIT(0), 7512 + .hw.init = &(const struct clk_init_data) { 7513 + .name = "gcc_usb4_2_phy_usb_pipe_clk", 7514 + .parent_hws = (const struct clk_hw*[]) { 7515 + &gcc_usb34_tert_phy_pipe_clk_src.clkr.hw, 7516 + }, 7517 + .num_parents = 1, 7518 + .flags = CLK_SET_RATE_PARENT, 7519 + .ops = &clk_branch2_ops, 7520 + }, 7521 + }, 7522 + }; 7523 + 7524 + static struct clk_branch gcc_usb4_2_sb_if_clk = { 7525 + .halt_reg = 0xe0048, 7526 + .halt_check = BRANCH_HALT, 7527 + .clkr = { 7528 + .enable_reg = 0xe0048, 7529 + .enable_mask = BIT(0), 7530 + .hw.init = &(const struct clk_init_data) { 7531 + .name = "gcc_usb4_2_sb_if_clk", 7532 + .parent_hws = (const struct clk_hw*[]) { 7533 + &gcc_usb4_2_sb_if_clk_src.clkr.hw, 7534 + }, 7535 + .num_parents = 1, 7536 + .flags = CLK_SET_RATE_PARENT, 7537 + .ops = &clk_branch2_ops, 7538 + }, 7539 + }, 7540 + }; 7541 + 7542 + static struct clk_branch gcc_usb4_2_sys_clk = { 7543 + .halt_reg = 0xe005c, 7544 + .halt_check = BRANCH_HALT, 7545 + .clkr = { 7546 + .enable_reg = 0xe005c, 7547 + .enable_mask = BIT(0), 7548 + .hw.init = &(const struct clk_init_data) { 7549 + .name = "gcc_usb4_2_sys_clk", 7550 + .parent_hws = (const struct clk_hw*[]) { 7551 + &gcc_usb4_2_phy_sys_clk_src.clkr.hw, 7552 + }, 7553 + .num_parents = 1, 7554 + .flags = CLK_SET_RATE_PARENT, 7555 + .ops = &clk_branch2_ops, 7556 + }, 7557 + }, 7558 + }; 7559 + 7560 + static struct clk_branch gcc_usb4_2_tmu_clk = { 7561 + .halt_reg = 0xe00a0, 7562 + .halt_check = BRANCH_HALT_VOTED, 7563 + .hwcg_reg = 0xe00a0, 7564 + .hwcg_bit = 1, 7565 + .clkr = { 7566 + .enable_reg = 0xe00a0, 7567 + .enable_mask = BIT(0), 7568 + .hw.init = &(const struct clk_init_data) { 7569 + .name = "gcc_usb4_2_tmu_clk", 7570 + .parent_hws = (const struct clk_hw*[]) { 7571 + &gcc_usb4_2_tmu_clk_src.clkr.hw, 7572 + }, 7573 + .num_parents = 1, 7574 + .flags = CLK_SET_RATE_PARENT, 7575 + .ops = &clk_branch2_ops, 7576 + }, 7577 + }, 7578 + }; 7579 + 7580 + static struct clk_branch gcc_usb4_2_uc_hrr_clk = { 7581 + .halt_reg = 0xe006c, 7582 + .halt_check = BRANCH_HALT, 7583 + .clkr = { 7584 + .enable_reg = 0xe006c, 7585 + .enable_mask = BIT(0), 7586 + .hw.init = &(const struct clk_init_data) { 7587 + .name = "gcc_usb4_2_uc_hrr_clk", 7588 + .parent_hws = (const struct clk_hw*[]) { 7589 + &gcc_usb4_2_phy_sys_clk_src.clkr.hw, 7590 + }, 7591 + .num_parents = 1, 7592 + .flags = CLK_SET_RATE_PARENT, 7593 + .ops = &clk_branch2_ops, 7594 + }, 7595 + }, 7596 + }; 7597 + 7598 + static struct clk_branch gcc_video_axi0_clk = { 7599 + .halt_reg = 0x3201c, 7600 + .halt_check = BRANCH_HALT_SKIP, 7601 + .hwcg_reg = 0x3201c, 7602 + .hwcg_bit = 1, 7603 + .clkr = { 7604 + .enable_reg = 0x3201c, 7605 + .enable_mask = BIT(0), 7606 + .hw.init = &(const struct clk_init_data) { 7607 + .name = "gcc_video_axi0_clk", 7608 + .ops = &clk_branch2_ops, 7609 + }, 7610 + }, 7611 + }; 7612 + 7613 + static struct clk_branch gcc_video_axi0c_clk = { 7614 + .halt_reg = 0x32030, 7615 + .halt_check = BRANCH_HALT_SKIP, 7616 + .hwcg_reg = 0x32030, 7617 + .hwcg_bit = 1, 7618 + .clkr = { 7619 + .enable_reg = 0x32030, 7620 + .enable_mask = BIT(0), 7621 + .hw.init = &(const struct clk_init_data) { 7622 + .name = "gcc_video_axi0c_clk", 7623 + .ops = &clk_branch2_ops, 7624 + }, 7625 + }, 7626 + }; 7627 + 7628 + static struct clk_branch gcc_video_axi1_clk = { 7629 + .halt_reg = 0x32044, 7630 + .halt_check = BRANCH_HALT_SKIP, 7631 + .hwcg_reg = 0x32044, 7632 + .hwcg_bit = 1, 7633 + .clkr = { 7634 + .enable_reg = 0x32044, 7635 + .enable_mask = BIT(0), 7636 + .hw.init = &(const struct clk_init_data) { 7637 + .name = "gcc_video_axi1_clk", 7638 + .ops = &clk_branch2_ops, 7639 + }, 7640 + }, 7641 + }; 7642 + 7643 + static struct gdsc gcc_pcie_0_tunnel_gdsc = { 7644 + .gdscr = 0xc8004, 7645 + .en_rest_wait_val = 0x2, 7646 + .en_few_wait_val = 0x2, 7647 + .clk_dis_wait_val = 0xf, 7648 + .pd = { 7649 + .name = "gcc_pcie_0_tunnel_gdsc", 7650 + }, 7651 + .pwrsts = PWRSTS_OFF_ON, 7652 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7653 + }; 7654 + 7655 + static struct gdsc gcc_pcie_1_tunnel_gdsc = { 7656 + .gdscr = 0x2e004, 7657 + .en_rest_wait_val = 0x2, 7658 + .en_few_wait_val = 0x2, 7659 + .clk_dis_wait_val = 0xf, 7660 + .pd = { 7661 + .name = "gcc_pcie_1_tunnel_gdsc", 7662 + }, 7663 + .pwrsts = PWRSTS_OFF_ON, 7664 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7665 + }; 7666 + 7667 + static struct gdsc gcc_pcie_2_tunnel_gdsc = { 7668 + .gdscr = 0xc0004, 7669 + .en_rest_wait_val = 0x2, 7670 + .en_few_wait_val = 0x2, 7671 + .clk_dis_wait_val = 0xf, 7672 + .pd = { 7673 + .name = "gcc_pcie_2_tunnel_gdsc", 7674 + }, 7675 + .pwrsts = PWRSTS_OFF_ON, 7676 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7677 + }; 7678 + 7679 + static struct gdsc gcc_pcie_3a_gdsc = { 7680 + .gdscr = 0xdc004, 7681 + .en_rest_wait_val = 0x2, 7682 + .en_few_wait_val = 0x2, 7683 + .clk_dis_wait_val = 0xf, 7684 + .pd = { 7685 + .name = "gcc_pcie_3a_gdsc", 7686 + }, 7687 + .pwrsts = PWRSTS_OFF_ON, 7688 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7689 + }; 7690 + 7691 + static struct gdsc gcc_pcie_3a_phy_gdsc = { 7692 + .gdscr = 0x6c004, 7693 + .en_rest_wait_val = 0x2, 7694 + .en_few_wait_val = 0x2, 7695 + .clk_dis_wait_val = 0x2, 7696 + .pd = { 7697 + .name = "gcc_pcie_3a_phy_gdsc", 7698 + }, 7699 + .pwrsts = PWRSTS_OFF_ON, 7700 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7701 + }; 7702 + 7703 + static struct gdsc gcc_pcie_3b_gdsc = { 7704 + .gdscr = 0x94004, 7705 + .en_rest_wait_val = 0x2, 7706 + .en_few_wait_val = 0x2, 7707 + .clk_dis_wait_val = 0xf, 7708 + .pd = { 7709 + .name = "gcc_pcie_3b_gdsc", 7710 + }, 7711 + .pwrsts = PWRSTS_OFF_ON, 7712 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7713 + }; 7714 + 7715 + static struct gdsc gcc_pcie_3b_phy_gdsc = { 7716 + .gdscr = 0x75004, 7717 + .en_rest_wait_val = 0x2, 7718 + .en_few_wait_val = 0x2, 7719 + .clk_dis_wait_val = 0x2, 7720 + .pd = { 7721 + .name = "gcc_pcie_3b_phy_gdsc", 7722 + }, 7723 + .pwrsts = PWRSTS_OFF_ON, 7724 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7725 + }; 7726 + 7727 + static struct gdsc gcc_pcie_4_gdsc = { 7728 + .gdscr = 0x88004, 7729 + .en_rest_wait_val = 0x2, 7730 + .en_few_wait_val = 0x2, 7731 + .clk_dis_wait_val = 0xf, 7732 + .pd = { 7733 + .name = "gcc_pcie_4_gdsc", 7734 + }, 7735 + .pwrsts = PWRSTS_OFF_ON, 7736 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7737 + }; 7738 + 7739 + static struct gdsc gcc_pcie_4_phy_gdsc = { 7740 + .gdscr = 0xd3004, 7741 + .en_rest_wait_val = 0x2, 7742 + .en_few_wait_val = 0x2, 7743 + .clk_dis_wait_val = 0x2, 7744 + .pd = { 7745 + .name = "gcc_pcie_4_phy_gdsc", 7746 + }, 7747 + .pwrsts = PWRSTS_OFF_ON, 7748 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7749 + }; 7750 + 7751 + static struct gdsc gcc_pcie_5_gdsc = { 7752 + .gdscr = 0xc3004, 7753 + .en_rest_wait_val = 0x2, 7754 + .en_few_wait_val = 0x2, 7755 + .clk_dis_wait_val = 0xf, 7756 + .pd = { 7757 + .name = "gcc_pcie_5_gdsc", 7758 + }, 7759 + .pwrsts = PWRSTS_OFF_ON, 7760 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7761 + }; 7762 + 7763 + static struct gdsc gcc_pcie_5_phy_gdsc = { 7764 + .gdscr = 0xd2004, 7765 + .en_rest_wait_val = 0x2, 7766 + .en_few_wait_val = 0x2, 7767 + .clk_dis_wait_val = 0x2, 7768 + .pd = { 7769 + .name = "gcc_pcie_5_phy_gdsc", 7770 + }, 7771 + .pwrsts = PWRSTS_OFF_ON, 7772 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7773 + }; 7774 + 7775 + static struct gdsc gcc_pcie_6_gdsc = { 7776 + .gdscr = 0x8a004, 7777 + .en_rest_wait_val = 0x2, 7778 + .en_few_wait_val = 0x2, 7779 + .clk_dis_wait_val = 0xf, 7780 + .pd = { 7781 + .name = "gcc_pcie_6_gdsc", 7782 + }, 7783 + .pwrsts = PWRSTS_OFF_ON, 7784 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7785 + }; 7786 + 7787 + static struct gdsc gcc_pcie_6_phy_gdsc = { 7788 + .gdscr = 0xd4004, 7789 + .en_rest_wait_val = 0x2, 7790 + .en_few_wait_val = 0x2, 7791 + .clk_dis_wait_val = 0x2, 7792 + .pd = { 7793 + .name = "gcc_pcie_6_phy_gdsc", 7794 + }, 7795 + .pwrsts = PWRSTS_OFF_ON, 7796 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 7797 + }; 7798 + 7799 + static struct gdsc gcc_ufs_phy_gdsc = { 7800 + .gdscr = 0x77008, 7801 + .en_rest_wait_val = 0x2, 7802 + .en_few_wait_val = 0x2, 7803 + .clk_dis_wait_val = 0xf, 7804 + .pd = { 7805 + .name = "gcc_ufs_phy_gdsc", 7806 + }, 7807 + .pwrsts = PWRSTS_OFF_ON, 7808 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7809 + }; 7810 + 7811 + static struct gdsc gcc_usb20_prim_gdsc = { 7812 + .gdscr = 0xbc004, 7813 + .en_rest_wait_val = 0x2, 7814 + .en_few_wait_val = 0x2, 7815 + .clk_dis_wait_val = 0xf, 7816 + .pd = { 7817 + .name = "gcc_usb20_prim_gdsc", 7818 + }, 7819 + .pwrsts = PWRSTS_OFF_ON, 7820 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7821 + }; 7822 + 7823 + static struct gdsc gcc_usb30_mp_gdsc = { 7824 + .gdscr = 0x9a010, 7825 + .en_rest_wait_val = 0x2, 7826 + .en_few_wait_val = 0x2, 7827 + .clk_dis_wait_val = 0xf, 7828 + .pd = { 7829 + .name = "gcc_usb30_mp_gdsc", 7830 + }, 7831 + .pwrsts = PWRSTS_OFF_ON, 7832 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7833 + }; 7834 + 7835 + static struct gdsc gcc_usb30_prim_gdsc = { 7836 + .gdscr = 0x3f01c, 7837 + .en_rest_wait_val = 0x2, 7838 + .en_few_wait_val = 0x2, 7839 + .clk_dis_wait_val = 0xf, 7840 + .pd = { 7841 + .name = "gcc_usb30_prim_gdsc", 7842 + }, 7843 + .pwrsts = PWRSTS_OFF_ON, 7844 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7845 + }; 7846 + 7847 + static struct gdsc gcc_usb30_sec_gdsc = { 7848 + .gdscr = 0xe2010, 7849 + .en_rest_wait_val = 0x2, 7850 + .en_few_wait_val = 0x2, 7851 + .clk_dis_wait_val = 0xf, 7852 + .pd = { 7853 + .name = "gcc_usb30_sec_gdsc", 7854 + }, 7855 + .pwrsts = PWRSTS_OFF_ON, 7856 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7857 + }; 7858 + 7859 + static struct gdsc gcc_usb30_tert_gdsc = { 7860 + .gdscr = 0xe1010, 7861 + .en_rest_wait_val = 0x2, 7862 + .en_few_wait_val = 0x2, 7863 + .clk_dis_wait_val = 0xf, 7864 + .pd = { 7865 + .name = "gcc_usb30_tert_gdsc", 7866 + }, 7867 + .pwrsts = PWRSTS_OFF_ON, 7868 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7869 + }; 7870 + 7871 + static struct gdsc gcc_usb3_mp_ss0_phy_gdsc = { 7872 + .gdscr = 0x5400c, 7873 + .en_rest_wait_val = 0x2, 7874 + .en_few_wait_val = 0x2, 7875 + .clk_dis_wait_val = 0x2, 7876 + .pd = { 7877 + .name = "gcc_usb3_mp_ss0_phy_gdsc", 7878 + }, 7879 + .pwrsts = PWRSTS_OFF_ON, 7880 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7881 + }; 7882 + 7883 + static struct gdsc gcc_usb3_mp_ss1_phy_gdsc = { 7884 + .gdscr = 0x5402c, 7885 + .en_rest_wait_val = 0x2, 7886 + .en_few_wait_val = 0x2, 7887 + .clk_dis_wait_val = 0x2, 7888 + .pd = { 7889 + .name = "gcc_usb3_mp_ss1_phy_gdsc", 7890 + }, 7891 + .pwrsts = PWRSTS_OFF_ON, 7892 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7893 + }; 7894 + 7895 + static struct gdsc gcc_usb4_0_gdsc = { 7896 + .gdscr = 0x2b008, 7897 + .en_rest_wait_val = 0x2, 7898 + .en_few_wait_val = 0x2, 7899 + .clk_dis_wait_val = 0xf, 7900 + .pd = { 7901 + .name = "gcc_usb4_0_gdsc", 7902 + }, 7903 + .pwrsts = PWRSTS_OFF_ON, 7904 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7905 + }; 7906 + 7907 + static struct gdsc gcc_usb4_1_gdsc = { 7908 + .gdscr = 0x2d008, 7909 + .en_rest_wait_val = 0x2, 7910 + .en_few_wait_val = 0x2, 7911 + .clk_dis_wait_val = 0xf, 7912 + .pd = { 7913 + .name = "gcc_usb4_1_gdsc", 7914 + }, 7915 + .pwrsts = PWRSTS_OFF_ON, 7916 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7917 + }; 7918 + 7919 + static struct gdsc gcc_usb4_2_gdsc = { 7920 + .gdscr = 0xe0008, 7921 + .en_rest_wait_val = 0x2, 7922 + .en_few_wait_val = 0x2, 7923 + .clk_dis_wait_val = 0xf, 7924 + .pd = { 7925 + .name = "gcc_usb4_2_gdsc", 7926 + }, 7927 + .pwrsts = PWRSTS_OFF_ON, 7928 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7929 + }; 7930 + 7931 + static struct gdsc gcc_usb_0_phy_gdsc = { 7932 + .gdscr = 0xdb024, 7933 + .en_rest_wait_val = 0x2, 7934 + .en_few_wait_val = 0x2, 7935 + .clk_dis_wait_val = 0x2, 7936 + .pd = { 7937 + .name = "gcc_usb_0_phy_gdsc", 7938 + }, 7939 + .pwrsts = PWRSTS_OFF_ON, 7940 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7941 + }; 7942 + 7943 + static struct gdsc gcc_usb_1_phy_gdsc = { 7944 + .gdscr = 0x2c024, 7945 + .en_rest_wait_val = 0x2, 7946 + .en_few_wait_val = 0x2, 7947 + .clk_dis_wait_val = 0x2, 7948 + .pd = { 7949 + .name = "gcc_usb_1_phy_gdsc", 7950 + }, 7951 + .pwrsts = PWRSTS_OFF_ON, 7952 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7953 + }; 7954 + 7955 + static struct gdsc gcc_usb_2_phy_gdsc = { 7956 + .gdscr = 0xbe024, 7957 + .en_rest_wait_val = 0x2, 7958 + .en_few_wait_val = 0x2, 7959 + .clk_dis_wait_val = 0x2, 7960 + .pd = { 7961 + .name = "gcc_usb_2_phy_gdsc", 7962 + }, 7963 + .pwrsts = PWRSTS_OFF_ON, 7964 + .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 7965 + }; 7966 + 7967 + static struct clk_regmap *gcc_glymur_clocks[] = { 7968 + [GCC_AGGRE_NOC_PCIE_3A_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_3a_west_sf_axi_clk.clkr, 7969 + [GCC_AGGRE_NOC_PCIE_3B_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_3b_west_sf_axi_clk.clkr, 7970 + [GCC_AGGRE_NOC_PCIE_4_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_4_west_sf_axi_clk.clkr, 7971 + [GCC_AGGRE_NOC_PCIE_5_EAST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_5_east_sf_axi_clk.clkr, 7972 + [GCC_AGGRE_NOC_PCIE_6_WEST_SF_AXI_CLK] = &gcc_aggre_noc_pcie_6_west_sf_axi_clk.clkr, 7973 + [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr, 7974 + [GCC_AGGRE_USB2_PRIM_AXI_CLK] = &gcc_aggre_usb2_prim_axi_clk.clkr, 7975 + [GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr, 7976 + [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr, 7977 + [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr, 7978 + [GCC_AGGRE_USB3_TERT_AXI_CLK] = &gcc_aggre_usb3_tert_axi_clk.clkr, 7979 + [GCC_AGGRE_USB4_0_AXI_CLK] = &gcc_aggre_usb4_0_axi_clk.clkr, 7980 + [GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr, 7981 + [GCC_AGGRE_USB4_2_AXI_CLK] = &gcc_aggre_usb4_2_axi_clk.clkr, 7982 + [GCC_AV1E_AHB_CLK] = &gcc_av1e_ahb_clk.clkr, 7983 + [GCC_AV1E_AXI_CLK] = &gcc_av1e_axi_clk.clkr, 7984 + [GCC_AV1E_XO_CLK] = &gcc_av1e_xo_clk.clkr, 7985 + [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr, 7986 + [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr, 7987 + [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr, 7988 + [GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr, 7989 + [GCC_CFG_NOC_PCIE_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_south_ahb_clk.clkr, 7990 + [GCC_CFG_NOC_USB2_PRIM_AXI_CLK] = &gcc_cfg_noc_usb2_prim_axi_clk.clkr, 7991 + [GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr, 7992 + [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr, 7993 + [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr, 7994 + [GCC_CFG_NOC_USB3_TERT_AXI_CLK] = &gcc_cfg_noc_usb3_tert_axi_clk.clkr, 7995 + [GCC_CFG_NOC_USB_ANOC_AHB_CLK] = &gcc_cfg_noc_usb_anoc_ahb_clk.clkr, 7996 + [GCC_CFG_NOC_USB_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_usb_anoc_south_ahb_clk.clkr, 7997 + [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr, 7998 + [GCC_EVA_AHB_CLK] = &gcc_eva_ahb_clk.clkr, 7999 + [GCC_EVA_AXI0_CLK] = &gcc_eva_axi0_clk.clkr, 8000 + [GCC_EVA_AXI0C_CLK] = &gcc_eva_axi0c_clk.clkr, 8001 + [GCC_EVA_XO_CLK] = &gcc_eva_xo_clk.clkr, 8002 + [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, 8003 + [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr, 8004 + [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, 8005 + [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr, 8006 + [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, 8007 + [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr, 8008 + [GCC_GPLL0] = &gcc_gpll0.clkr, 8009 + [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr, 8010 + [GCC_GPLL1] = &gcc_gpll1.clkr, 8011 + [GCC_GPLL14] = &gcc_gpll14.clkr, 8012 + [GCC_GPLL14_OUT_EVEN] = &gcc_gpll14_out_even.clkr, 8013 + [GCC_GPLL4] = &gcc_gpll4.clkr, 8014 + [GCC_GPLL5] = &gcc_gpll5.clkr, 8015 + [GCC_GPLL7] = &gcc_gpll7.clkr, 8016 + [GCC_GPLL8] = &gcc_gpll8.clkr, 8017 + [GCC_GPLL9] = &gcc_gpll9.clkr, 8018 + [GCC_GPU_GEMNOC_GFX_CLK] = &gcc_gpu_gemnoc_gfx_clk.clkr, 8019 + [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr, 8020 + [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr, 8021 + [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr, 8022 + [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr, 8023 + [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr, 8024 + [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr, 8025 + [GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr, 8026 + [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr, 8027 + [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr, 8028 + [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr, 8029 + [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr, 8030 + [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr, 8031 + [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr, 8032 + [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr, 8033 + [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr, 8034 + [GCC_PCIE_1_PHY_RCHNG_CLK] = &gcc_pcie_1_phy_rchng_clk.clkr, 8035 + [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr, 8036 + [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr, 8037 + [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr, 8038 + [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr, 8039 + [GCC_PCIE_2_AUX_CLK] = &gcc_pcie_2_aux_clk.clkr, 8040 + [GCC_PCIE_2_AUX_CLK_SRC] = &gcc_pcie_2_aux_clk_src.clkr, 8041 + [GCC_PCIE_2_CFG_AHB_CLK] = &gcc_pcie_2_cfg_ahb_clk.clkr, 8042 + [GCC_PCIE_2_MSTR_AXI_CLK] = &gcc_pcie_2_mstr_axi_clk.clkr, 8043 + [GCC_PCIE_2_PHY_RCHNG_CLK] = &gcc_pcie_2_phy_rchng_clk.clkr, 8044 + [GCC_PCIE_2_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2_phy_rchng_clk_src.clkr, 8045 + [GCC_PCIE_2_PIPE_CLK] = &gcc_pcie_2_pipe_clk.clkr, 8046 + [GCC_PCIE_2_SLV_AXI_CLK] = &gcc_pcie_2_slv_axi_clk.clkr, 8047 + [GCC_PCIE_2_SLV_Q2A_AXI_CLK] = &gcc_pcie_2_slv_q2a_axi_clk.clkr, 8048 + [GCC_PCIE_3A_AUX_CLK] = &gcc_pcie_3a_aux_clk.clkr, 8049 + [GCC_PCIE_3A_AUX_CLK_SRC] = &gcc_pcie_3a_aux_clk_src.clkr, 8050 + [GCC_PCIE_3A_CFG_AHB_CLK] = &gcc_pcie_3a_cfg_ahb_clk.clkr, 8051 + [GCC_PCIE_3A_MSTR_AXI_CLK] = &gcc_pcie_3a_mstr_axi_clk.clkr, 8052 + [GCC_PCIE_3A_PHY_RCHNG_CLK] = &gcc_pcie_3a_phy_rchng_clk.clkr, 8053 + [GCC_PCIE_3A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3a_phy_rchng_clk_src.clkr, 8054 + [GCC_PCIE_3A_PIPE_CLK] = &gcc_pcie_3a_pipe_clk.clkr, 8055 + [GCC_PCIE_3A_PIPE_CLK_SRC] = &gcc_pcie_3a_pipe_clk_src.clkr, 8056 + [GCC_PCIE_3A_SLV_AXI_CLK] = &gcc_pcie_3a_slv_axi_clk.clkr, 8057 + [GCC_PCIE_3A_SLV_Q2A_AXI_CLK] = &gcc_pcie_3a_slv_q2a_axi_clk.clkr, 8058 + [GCC_PCIE_3B_AUX_CLK] = &gcc_pcie_3b_aux_clk.clkr, 8059 + [GCC_PCIE_3B_AUX_CLK_SRC] = &gcc_pcie_3b_aux_clk_src.clkr, 8060 + [GCC_PCIE_3B_CFG_AHB_CLK] = &gcc_pcie_3b_cfg_ahb_clk.clkr, 8061 + [GCC_PCIE_3B_MSTR_AXI_CLK] = &gcc_pcie_3b_mstr_axi_clk.clkr, 8062 + [GCC_PCIE_3B_PHY_RCHNG_CLK] = &gcc_pcie_3b_phy_rchng_clk.clkr, 8063 + [GCC_PCIE_3B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3b_phy_rchng_clk_src.clkr, 8064 + [GCC_PCIE_3B_PIPE_CLK] = &gcc_pcie_3b_pipe_clk.clkr, 8065 + [GCC_PCIE_3B_PIPE_CLK_SRC] = &gcc_pcie_3b_pipe_clk_src.clkr, 8066 + [GCC_PCIE_3B_PIPE_DIV2_CLK] = &gcc_pcie_3b_pipe_div2_clk.clkr, 8067 + [GCC_PCIE_3B_PIPE_DIV_CLK_SRC] = &gcc_pcie_3b_pipe_div_clk_src.clkr, 8068 + [GCC_PCIE_3B_SLV_AXI_CLK] = &gcc_pcie_3b_slv_axi_clk.clkr, 8069 + [GCC_PCIE_3B_SLV_Q2A_AXI_CLK] = &gcc_pcie_3b_slv_q2a_axi_clk.clkr, 8070 + [GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr, 8071 + [GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr, 8072 + [GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr, 8073 + [GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr, 8074 + [GCC_PCIE_4_PHY_RCHNG_CLK] = &gcc_pcie_4_phy_rchng_clk.clkr, 8075 + [GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr, 8076 + [GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr, 8077 + [GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr, 8078 + [GCC_PCIE_4_PIPE_DIV2_CLK] = &gcc_pcie_4_pipe_div2_clk.clkr, 8079 + [GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr, 8080 + [GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr, 8081 + [GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr, 8082 + [GCC_PCIE_5_AUX_CLK] = &gcc_pcie_5_aux_clk.clkr, 8083 + [GCC_PCIE_5_AUX_CLK_SRC] = &gcc_pcie_5_aux_clk_src.clkr, 8084 + [GCC_PCIE_5_CFG_AHB_CLK] = &gcc_pcie_5_cfg_ahb_clk.clkr, 8085 + [GCC_PCIE_5_MSTR_AXI_CLK] = &gcc_pcie_5_mstr_axi_clk.clkr, 8086 + [GCC_PCIE_5_PHY_RCHNG_CLK] = &gcc_pcie_5_phy_rchng_clk.clkr, 8087 + [GCC_PCIE_5_PHY_RCHNG_CLK_SRC] = &gcc_pcie_5_phy_rchng_clk_src.clkr, 8088 + [GCC_PCIE_5_PIPE_CLK] = &gcc_pcie_5_pipe_clk.clkr, 8089 + [GCC_PCIE_5_PIPE_CLK_SRC] = &gcc_pcie_5_pipe_clk_src.clkr, 8090 + [GCC_PCIE_5_PIPE_DIV2_CLK] = &gcc_pcie_5_pipe_div2_clk.clkr, 8091 + [GCC_PCIE_5_PIPE_DIV_CLK_SRC] = &gcc_pcie_5_pipe_div_clk_src.clkr, 8092 + [GCC_PCIE_5_SLV_AXI_CLK] = &gcc_pcie_5_slv_axi_clk.clkr, 8093 + [GCC_PCIE_5_SLV_Q2A_AXI_CLK] = &gcc_pcie_5_slv_q2a_axi_clk.clkr, 8094 + [GCC_PCIE_6_AUX_CLK] = &gcc_pcie_6_aux_clk.clkr, 8095 + [GCC_PCIE_6_AUX_CLK_SRC] = &gcc_pcie_6_aux_clk_src.clkr, 8096 + [GCC_PCIE_6_CFG_AHB_CLK] = &gcc_pcie_6_cfg_ahb_clk.clkr, 8097 + [GCC_PCIE_6_MSTR_AXI_CLK] = &gcc_pcie_6_mstr_axi_clk.clkr, 8098 + [GCC_PCIE_6_PHY_RCHNG_CLK] = &gcc_pcie_6_phy_rchng_clk.clkr, 8099 + [GCC_PCIE_6_PHY_RCHNG_CLK_SRC] = &gcc_pcie_6_phy_rchng_clk_src.clkr, 8100 + [GCC_PCIE_6_PIPE_CLK] = &gcc_pcie_6_pipe_clk.clkr, 8101 + [GCC_PCIE_6_PIPE_CLK_SRC] = &gcc_pcie_6_pipe_clk_src.clkr, 8102 + [GCC_PCIE_6_PIPE_DIV2_CLK] = &gcc_pcie_6_pipe_div2_clk.clkr, 8103 + [GCC_PCIE_6_PIPE_DIV_CLK_SRC] = &gcc_pcie_6_pipe_div_clk_src.clkr, 8104 + [GCC_PCIE_6_SLV_AXI_CLK] = &gcc_pcie_6_slv_axi_clk.clkr, 8105 + [GCC_PCIE_6_SLV_Q2A_AXI_CLK] = &gcc_pcie_6_slv_q2a_axi_clk.clkr, 8106 + [GCC_PCIE_NOC_PWRCTL_CLK] = &gcc_pcie_noc_pwrctl_clk.clkr, 8107 + [GCC_PCIE_NOC_QOSGEN_EXTREF_CLK] = &gcc_pcie_noc_qosgen_extref_clk.clkr, 8108 + [GCC_PCIE_NOC_SF_CENTER_CLK] = &gcc_pcie_noc_sf_center_clk.clkr, 8109 + [GCC_PCIE_NOC_SLAVE_SF_EAST_CLK] = &gcc_pcie_noc_slave_sf_east_clk.clkr, 8110 + [GCC_PCIE_NOC_SLAVE_SF_WEST_CLK] = &gcc_pcie_noc_slave_sf_west_clk.clkr, 8111 + [GCC_PCIE_NOC_TSCTR_CLK] = &gcc_pcie_noc_tsctr_clk.clkr, 8112 + [GCC_PCIE_PHY_3A_AUX_CLK] = &gcc_pcie_phy_3a_aux_clk.clkr, 8113 + [GCC_PCIE_PHY_3A_AUX_CLK_SRC] = &gcc_pcie_phy_3a_aux_clk_src.clkr, 8114 + [GCC_PCIE_PHY_3B_AUX_CLK] = &gcc_pcie_phy_3b_aux_clk.clkr, 8115 + [GCC_PCIE_PHY_3B_AUX_CLK_SRC] = &gcc_pcie_phy_3b_aux_clk_src.clkr, 8116 + [GCC_PCIE_PHY_4_AUX_CLK] = &gcc_pcie_phy_4_aux_clk.clkr, 8117 + [GCC_PCIE_PHY_4_AUX_CLK_SRC] = &gcc_pcie_phy_4_aux_clk_src.clkr, 8118 + [GCC_PCIE_PHY_5_AUX_CLK] = &gcc_pcie_phy_5_aux_clk.clkr, 8119 + [GCC_PCIE_PHY_5_AUX_CLK_SRC] = &gcc_pcie_phy_5_aux_clk_src.clkr, 8120 + [GCC_PCIE_PHY_6_AUX_CLK] = &gcc_pcie_phy_6_aux_clk.clkr, 8121 + [GCC_PCIE_PHY_6_AUX_CLK_SRC] = &gcc_pcie_phy_6_aux_clk_src.clkr, 8122 + [GCC_PCIE_RSCC_CFG_AHB_CLK] = &gcc_pcie_rscc_cfg_ahb_clk.clkr, 8123 + [GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr, 8124 + [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr, 8125 + [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr, 8126 + [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr, 8127 + [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr, 8128 + [GCC_QMIP_AV1E_AHB_CLK] = &gcc_qmip_av1e_ahb_clk.clkr, 8129 + [GCC_QMIP_CAMERA_CMD_AHB_CLK] = &gcc_qmip_camera_cmd_ahb_clk.clkr, 8130 + [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr, 8131 + [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr, 8132 + [GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr, 8133 + [GCC_QMIP_PCIE_3A_AHB_CLK] = &gcc_qmip_pcie_3a_ahb_clk.clkr, 8134 + [GCC_QMIP_PCIE_3B_AHB_CLK] = &gcc_qmip_pcie_3b_ahb_clk.clkr, 8135 + [GCC_QMIP_PCIE_4_AHB_CLK] = &gcc_qmip_pcie_4_ahb_clk.clkr, 8136 + [GCC_QMIP_PCIE_5_AHB_CLK] = &gcc_qmip_pcie_5_ahb_clk.clkr, 8137 + [GCC_QMIP_PCIE_6_AHB_CLK] = &gcc_qmip_pcie_6_ahb_clk.clkr, 8138 + [GCC_QMIP_VIDEO_CV_CPU_AHB_CLK] = &gcc_qmip_video_cv_cpu_ahb_clk.clkr, 8139 + [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr, 8140 + [GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr, 8141 + [GCC_QMIP_VIDEO_VCODEC1_AHB_CLK] = &gcc_qmip_video_vcodec1_ahb_clk.clkr, 8142 + [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr, 8143 + [GCC_QUPV3_OOB_CORE_2X_CLK] = &gcc_qupv3_oob_core_2x_clk.clkr, 8144 + [GCC_QUPV3_OOB_CORE_CLK] = &gcc_qupv3_oob_core_clk.clkr, 8145 + [GCC_QUPV3_OOB_M_AHB_CLK] = &gcc_qupv3_oob_m_ahb_clk.clkr, 8146 + [GCC_QUPV3_OOB_QSPI_S0_CLK] = &gcc_qupv3_oob_qspi_s0_clk.clkr, 8147 + [GCC_QUPV3_OOB_QSPI_S0_CLK_SRC] = &gcc_qupv3_oob_qspi_s0_clk_src.clkr, 8148 + [GCC_QUPV3_OOB_QSPI_S1_CLK] = &gcc_qupv3_oob_qspi_s1_clk.clkr, 8149 + [GCC_QUPV3_OOB_QSPI_S1_CLK_SRC] = &gcc_qupv3_oob_qspi_s1_clk_src.clkr, 8150 + [GCC_QUPV3_OOB_S0_CLK] = &gcc_qupv3_oob_s0_clk.clkr, 8151 + [GCC_QUPV3_OOB_S0_CLK_SRC] = &gcc_qupv3_oob_s0_clk_src.clkr, 8152 + [GCC_QUPV3_OOB_S1_CLK] = &gcc_qupv3_oob_s1_clk.clkr, 8153 + [GCC_QUPV3_OOB_S1_CLK_SRC] = &gcc_qupv3_oob_s1_clk_src.clkr, 8154 + [GCC_QUPV3_OOB_S_AHB_CLK] = &gcc_qupv3_oob_s_ahb_clk.clkr, 8155 + [GCC_QUPV3_OOB_TCXO_CLK] = &gcc_qupv3_oob_tcxo_clk.clkr, 8156 + [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr, 8157 + [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr, 8158 + [GCC_QUPV3_WRAP0_QSPI_S2_CLK] = &gcc_qupv3_wrap0_qspi_s2_clk.clkr, 8159 + [GCC_QUPV3_WRAP0_QSPI_S2_CLK_SRC] = &gcc_qupv3_wrap0_qspi_s2_clk_src.clkr, 8160 + [GCC_QUPV3_WRAP0_QSPI_S3_CLK] = &gcc_qupv3_wrap0_qspi_s3_clk.clkr, 8161 + [GCC_QUPV3_WRAP0_QSPI_S3_CLK_SRC] = &gcc_qupv3_wrap0_qspi_s3_clk_src.clkr, 8162 + [GCC_QUPV3_WRAP0_QSPI_S6_CLK] = &gcc_qupv3_wrap0_qspi_s6_clk.clkr, 8163 + [GCC_QUPV3_WRAP0_QSPI_S6_CLK_SRC] = &gcc_qupv3_wrap0_qspi_s6_clk_src.clkr, 8164 + [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr, 8165 + [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr, 8166 + [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr, 8167 + [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr, 8168 + [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr, 8169 + [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr, 8170 + [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr, 8171 + [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr, 8172 + [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr, 8173 + [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr, 8174 + [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr, 8175 + [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr, 8176 + [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr, 8177 + [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr, 8178 + [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr, 8179 + [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr, 8180 + [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr, 8181 + [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr, 8182 + [GCC_QUPV3_WRAP1_QSPI_S2_CLK] = &gcc_qupv3_wrap1_qspi_s2_clk.clkr, 8183 + [GCC_QUPV3_WRAP1_QSPI_S2_CLK_SRC] = &gcc_qupv3_wrap1_qspi_s2_clk_src.clkr, 8184 + [GCC_QUPV3_WRAP1_QSPI_S3_CLK] = &gcc_qupv3_wrap1_qspi_s3_clk.clkr, 8185 + [GCC_QUPV3_WRAP1_QSPI_S3_CLK_SRC] = &gcc_qupv3_wrap1_qspi_s3_clk_src.clkr, 8186 + [GCC_QUPV3_WRAP1_QSPI_S6_CLK] = &gcc_qupv3_wrap1_qspi_s6_clk.clkr, 8187 + [GCC_QUPV3_WRAP1_QSPI_S6_CLK_SRC] = &gcc_qupv3_wrap1_qspi_s6_clk_src.clkr, 8188 + [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr, 8189 + [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr, 8190 + [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr, 8191 + [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr, 8192 + [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr, 8193 + [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr, 8194 + [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr, 8195 + [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr, 8196 + [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr, 8197 + [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr, 8198 + [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr, 8199 + [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr, 8200 + [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr, 8201 + [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr, 8202 + [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr, 8203 + [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr, 8204 + [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr, 8205 + [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr, 8206 + [GCC_QUPV3_WRAP2_QSPI_S2_CLK] = &gcc_qupv3_wrap2_qspi_s2_clk.clkr, 8207 + [GCC_QUPV3_WRAP2_QSPI_S2_CLK_SRC] = &gcc_qupv3_wrap2_qspi_s2_clk_src.clkr, 8208 + [GCC_QUPV3_WRAP2_QSPI_S3_CLK] = &gcc_qupv3_wrap2_qspi_s3_clk.clkr, 8209 + [GCC_QUPV3_WRAP2_QSPI_S3_CLK_SRC] = &gcc_qupv3_wrap2_qspi_s3_clk_src.clkr, 8210 + [GCC_QUPV3_WRAP2_QSPI_S6_CLK] = &gcc_qupv3_wrap2_qspi_s6_clk.clkr, 8211 + [GCC_QUPV3_WRAP2_QSPI_S6_CLK_SRC] = &gcc_qupv3_wrap2_qspi_s6_clk_src.clkr, 8212 + [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr, 8213 + [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr, 8214 + [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr, 8215 + [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr, 8216 + [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr, 8217 + [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr, 8218 + [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr, 8219 + [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr, 8220 + [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr, 8221 + [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr, 8222 + [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr, 8223 + [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr, 8224 + [GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr, 8225 + [GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr, 8226 + [GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr, 8227 + [GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr, 8228 + [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr, 8229 + [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr, 8230 + [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr, 8231 + [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr, 8232 + [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr, 8233 + [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr, 8234 + [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr, 8235 + [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr, 8236 + [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr, 8237 + [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr, 8238 + [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr, 8239 + [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr, 8240 + [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr, 8241 + [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr, 8242 + [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr, 8243 + [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr, 8244 + [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr, 8245 + [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr, 8246 + [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr, 8247 + [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr, 8248 + [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr, 8249 + [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr, 8250 + [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr, 8251 + [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr, 8252 + [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr, 8253 + [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr, 8254 + [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr, 8255 + [GCC_USB20_MASTER_CLK] = &gcc_usb20_master_clk.clkr, 8256 + [GCC_USB20_MASTER_CLK_SRC] = &gcc_usb20_master_clk_src.clkr, 8257 + [GCC_USB20_MOCK_UTMI_CLK] = &gcc_usb20_mock_utmi_clk.clkr, 8258 + [GCC_USB20_MOCK_UTMI_CLK_SRC] = &gcc_usb20_mock_utmi_clk_src.clkr, 8259 + [GCC_USB20_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb20_mock_utmi_postdiv_clk_src.clkr, 8260 + [GCC_USB20_SLEEP_CLK] = &gcc_usb20_sleep_clk.clkr, 8261 + [GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr, 8262 + [GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr, 8263 + [GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr, 8264 + [GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr, 8265 + [GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr, 8266 + [GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr, 8267 + [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr, 8268 + [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr, 8269 + [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr, 8270 + [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr, 8271 + [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr, 8272 + [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr, 8273 + [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr, 8274 + [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr, 8275 + [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr, 8276 + [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr, 8277 + [GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr, 8278 + [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr, 8279 + [GCC_USB30_TERT_MASTER_CLK] = &gcc_usb30_tert_master_clk.clkr, 8280 + [GCC_USB30_TERT_MASTER_CLK_SRC] = &gcc_usb30_tert_master_clk_src.clkr, 8281 + [GCC_USB30_TERT_MOCK_UTMI_CLK] = &gcc_usb30_tert_mock_utmi_clk.clkr, 8282 + [GCC_USB30_TERT_MOCK_UTMI_CLK_SRC] = &gcc_usb30_tert_mock_utmi_clk_src.clkr, 8283 + [GCC_USB30_TERT_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr, 8284 + [GCC_USB30_TERT_SLEEP_CLK] = &gcc_usb30_tert_sleep_clk.clkr, 8285 + [GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr, 8286 + [GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr, 8287 + [GCC_USB34_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb34_tert_phy_pipe_clk_src.clkr, 8288 + [GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr, 8289 + [GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr, 8290 + [GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr, 8291 + [GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr, 8292 + [GCC_USB3_MP_PHY_PIPE_0_CLK_SRC] = &gcc_usb3_mp_phy_pipe_0_clk_src.clkr, 8293 + [GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr, 8294 + [GCC_USB3_MP_PHY_PIPE_1_CLK_SRC] = &gcc_usb3_mp_phy_pipe_1_clk_src.clkr, 8295 + [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr, 8296 + [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr, 8297 + [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr, 8298 + [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr, 8299 + [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr, 8300 + [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr, 8301 + [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr, 8302 + [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr, 8303 + [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr, 8304 + [GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr, 8305 + [GCC_USB3_TERT_PHY_AUX_CLK] = &gcc_usb3_tert_phy_aux_clk.clkr, 8306 + [GCC_USB3_TERT_PHY_AUX_CLK_SRC] = &gcc_usb3_tert_phy_aux_clk_src.clkr, 8307 + [GCC_USB3_TERT_PHY_COM_AUX_CLK] = &gcc_usb3_tert_phy_com_aux_clk.clkr, 8308 + [GCC_USB3_TERT_PHY_PIPE_CLK] = &gcc_usb3_tert_phy_pipe_clk.clkr, 8309 + [GCC_USB3_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb3_tert_phy_pipe_clk_src.clkr, 8310 + [GCC_USB4_0_CFG_AHB_CLK] = &gcc_usb4_0_cfg_ahb_clk.clkr, 8311 + [GCC_USB4_0_DP0_CLK] = &gcc_usb4_0_dp0_clk.clkr, 8312 + [GCC_USB4_0_DP1_CLK] = &gcc_usb4_0_dp1_clk.clkr, 8313 + [GCC_USB4_0_MASTER_CLK] = &gcc_usb4_0_master_clk.clkr, 8314 + [GCC_USB4_0_MASTER_CLK_SRC] = &gcc_usb4_0_master_clk_src.clkr, 8315 + [GCC_USB4_0_PHY_DP0_CLK_SRC] = &gcc_usb4_0_phy_dp0_clk_src.clkr, 8316 + [GCC_USB4_0_PHY_DP1_CLK_SRC] = &gcc_usb4_0_phy_dp1_clk_src.clkr, 8317 + [GCC_USB4_0_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_0_phy_p2rr2p_pipe_clk.clkr, 8318 + [GCC_USB4_0_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_0_phy_p2rr2p_pipe_clk_src.clkr, 8319 + [GCC_USB4_0_PHY_PCIE_PIPE_CLK] = &gcc_usb4_0_phy_pcie_pipe_clk.clkr, 8320 + [GCC_USB4_0_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_clk_src.clkr, 8321 + [GCC_USB4_0_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_mux_clk_src.clkr, 8322 + [GCC_USB4_0_PHY_RX0_CLK] = &gcc_usb4_0_phy_rx0_clk.clkr, 8323 + [GCC_USB4_0_PHY_RX0_CLK_SRC] = &gcc_usb4_0_phy_rx0_clk_src.clkr, 8324 + [GCC_USB4_0_PHY_RX1_CLK] = &gcc_usb4_0_phy_rx1_clk.clkr, 8325 + [GCC_USB4_0_PHY_RX1_CLK_SRC] = &gcc_usb4_0_phy_rx1_clk_src.clkr, 8326 + [GCC_USB4_0_PHY_SYS_CLK_SRC] = &gcc_usb4_0_phy_sys_clk_src.clkr, 8327 + [GCC_USB4_0_PHY_USB_PIPE_CLK] = &gcc_usb4_0_phy_usb_pipe_clk.clkr, 8328 + [GCC_USB4_0_SB_IF_CLK] = &gcc_usb4_0_sb_if_clk.clkr, 8329 + [GCC_USB4_0_SB_IF_CLK_SRC] = &gcc_usb4_0_sb_if_clk_src.clkr, 8330 + [GCC_USB4_0_SYS_CLK] = &gcc_usb4_0_sys_clk.clkr, 8331 + [GCC_USB4_0_TMU_CLK] = &gcc_usb4_0_tmu_clk.clkr, 8332 + [GCC_USB4_0_TMU_CLK_SRC] = &gcc_usb4_0_tmu_clk_src.clkr, 8333 + [GCC_USB4_0_UC_HRR_CLK] = &gcc_usb4_0_uc_hrr_clk.clkr, 8334 + [GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr, 8335 + [GCC_USB4_1_DP0_CLK] = &gcc_usb4_1_dp0_clk.clkr, 8336 + [GCC_USB4_1_DP1_CLK] = &gcc_usb4_1_dp1_clk.clkr, 8337 + [GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr, 8338 + [GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr, 8339 + [GCC_USB4_1_PHY_DP0_CLK_SRC] = &gcc_usb4_1_phy_dp0_clk_src.clkr, 8340 + [GCC_USB4_1_PHY_DP1_CLK_SRC] = &gcc_usb4_1_phy_dp1_clk_src.clkr, 8341 + [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr, 8342 + [GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr, 8343 + [GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr, 8344 + [GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr, 8345 + [GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr, 8346 + [GCC_USB4_1_PHY_PLL_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pll_pipe_clk_src.clkr, 8347 + [GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr, 8348 + [GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr, 8349 + [GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr, 8350 + [GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr, 8351 + [GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr, 8352 + [GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr, 8353 + [GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr, 8354 + [GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr, 8355 + [GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr, 8356 + [GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr, 8357 + [GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr, 8358 + [GCC_USB4_1_UC_HRR_CLK] = &gcc_usb4_1_uc_hrr_clk.clkr, 8359 + [GCC_USB4_2_CFG_AHB_CLK] = &gcc_usb4_2_cfg_ahb_clk.clkr, 8360 + [GCC_USB4_2_DP0_CLK] = &gcc_usb4_2_dp0_clk.clkr, 8361 + [GCC_USB4_2_DP1_CLK] = &gcc_usb4_2_dp1_clk.clkr, 8362 + [GCC_USB4_2_MASTER_CLK] = &gcc_usb4_2_master_clk.clkr, 8363 + [GCC_USB4_2_MASTER_CLK_SRC] = &gcc_usb4_2_master_clk_src.clkr, 8364 + [GCC_USB4_2_PHY_DP0_CLK_SRC] = &gcc_usb4_2_phy_dp0_clk_src.clkr, 8365 + [GCC_USB4_2_PHY_DP1_CLK_SRC] = &gcc_usb4_2_phy_dp1_clk_src.clkr, 8366 + [GCC_USB4_2_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_2_phy_p2rr2p_pipe_clk.clkr, 8367 + [GCC_USB4_2_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_2_phy_p2rr2p_pipe_clk_src.clkr, 8368 + [GCC_USB4_2_PHY_PCIE_PIPE_CLK] = &gcc_usb4_2_phy_pcie_pipe_clk.clkr, 8369 + [GCC_USB4_2_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_clk_src.clkr, 8370 + [GCC_USB4_2_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_mux_clk_src.clkr, 8371 + [GCC_USB4_2_PHY_RX0_CLK] = &gcc_usb4_2_phy_rx0_clk.clkr, 8372 + [GCC_USB4_2_PHY_RX0_CLK_SRC] = &gcc_usb4_2_phy_rx0_clk_src.clkr, 8373 + [GCC_USB4_2_PHY_RX1_CLK] = &gcc_usb4_2_phy_rx1_clk.clkr, 8374 + [GCC_USB4_2_PHY_RX1_CLK_SRC] = &gcc_usb4_2_phy_rx1_clk_src.clkr, 8375 + [GCC_USB4_2_PHY_SYS_CLK_SRC] = &gcc_usb4_2_phy_sys_clk_src.clkr, 8376 + [GCC_USB4_2_PHY_USB_PIPE_CLK] = &gcc_usb4_2_phy_usb_pipe_clk.clkr, 8377 + [GCC_USB4_2_SB_IF_CLK] = &gcc_usb4_2_sb_if_clk.clkr, 8378 + [GCC_USB4_2_SB_IF_CLK_SRC] = &gcc_usb4_2_sb_if_clk_src.clkr, 8379 + [GCC_USB4_2_SYS_CLK] = &gcc_usb4_2_sys_clk.clkr, 8380 + [GCC_USB4_2_TMU_CLK] = &gcc_usb4_2_tmu_clk.clkr, 8381 + [GCC_USB4_2_TMU_CLK_SRC] = &gcc_usb4_2_tmu_clk_src.clkr, 8382 + [GCC_USB4_2_UC_HRR_CLK] = &gcc_usb4_2_uc_hrr_clk.clkr, 8383 + [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr, 8384 + [GCC_VIDEO_AXI0C_CLK] = &gcc_video_axi0c_clk.clkr, 8385 + [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr, 8386 + }; 8387 + 8388 + static struct gdsc *gcc_glymur_gdscs[] = { 8389 + [GCC_PCIE_0_TUNNEL_GDSC] = &gcc_pcie_0_tunnel_gdsc, 8390 + [GCC_PCIE_1_TUNNEL_GDSC] = &gcc_pcie_1_tunnel_gdsc, 8391 + [GCC_PCIE_2_TUNNEL_GDSC] = &gcc_pcie_2_tunnel_gdsc, 8392 + [GCC_PCIE_3A_GDSC] = &gcc_pcie_3a_gdsc, 8393 + [GCC_PCIE_3A_PHY_GDSC] = &gcc_pcie_3a_phy_gdsc, 8394 + [GCC_PCIE_3B_GDSC] = &gcc_pcie_3b_gdsc, 8395 + [GCC_PCIE_3B_PHY_GDSC] = &gcc_pcie_3b_phy_gdsc, 8396 + [GCC_PCIE_4_GDSC] = &gcc_pcie_4_gdsc, 8397 + [GCC_PCIE_4_PHY_GDSC] = &gcc_pcie_4_phy_gdsc, 8398 + [GCC_PCIE_5_GDSC] = &gcc_pcie_5_gdsc, 8399 + [GCC_PCIE_5_PHY_GDSC] = &gcc_pcie_5_phy_gdsc, 8400 + [GCC_PCIE_6_GDSC] = &gcc_pcie_6_gdsc, 8401 + [GCC_PCIE_6_PHY_GDSC] = &gcc_pcie_6_phy_gdsc, 8402 + [GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc, 8403 + [GCC_USB20_PRIM_GDSC] = &gcc_usb20_prim_gdsc, 8404 + [GCC_USB30_MP_GDSC] = &gcc_usb30_mp_gdsc, 8405 + [GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc, 8406 + [GCC_USB30_SEC_GDSC] = &gcc_usb30_sec_gdsc, 8407 + [GCC_USB30_TERT_GDSC] = &gcc_usb30_tert_gdsc, 8408 + [GCC_USB3_MP_SS0_PHY_GDSC] = &gcc_usb3_mp_ss0_phy_gdsc, 8409 + [GCC_USB3_MP_SS1_PHY_GDSC] = &gcc_usb3_mp_ss1_phy_gdsc, 8410 + [GCC_USB4_0_GDSC] = &gcc_usb4_0_gdsc, 8411 + [GCC_USB4_1_GDSC] = &gcc_usb4_1_gdsc, 8412 + [GCC_USB4_2_GDSC] = &gcc_usb4_2_gdsc, 8413 + [GCC_USB_0_PHY_GDSC] = &gcc_usb_0_phy_gdsc, 8414 + [GCC_USB_1_PHY_GDSC] = &gcc_usb_1_phy_gdsc, 8415 + [GCC_USB_2_PHY_GDSC] = &gcc_usb_2_phy_gdsc, 8416 + }; 8417 + 8418 + static const struct qcom_reset_map gcc_glymur_resets[] = { 8419 + [GCC_AV1E_BCR] = { 0x9b028 }, 8420 + [GCC_CAMERA_BCR] = { 0x26000 }, 8421 + [GCC_DISPLAY_BCR] = { 0x27000 }, 8422 + [GCC_EVA_BCR] = { 0x9b000 }, 8423 + [GCC_GPU_BCR] = { 0x71000 }, 8424 + [GCC_PCIE_0_LINK_DOWN_BCR] = { 0xbc2d0 }, 8425 + [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0xbc2dc }, 8426 + [GCC_PCIE_0_PHY_BCR] = { 0xbc2d8 }, 8427 + [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0xbc2e0 }, 8428 + [GCC_PCIE_0_TUNNEL_BCR] = { 0xc8000 }, 8429 + [GCC_PCIE_1_LINK_DOWN_BCR] = { 0x7f018 }, 8430 + [GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x7f024 }, 8431 + [GCC_PCIE_1_PHY_BCR] = { 0x7f020 }, 8432 + [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x7f028 }, 8433 + [GCC_PCIE_1_TUNNEL_BCR] = { 0x2e000 }, 8434 + [GCC_PCIE_2_LINK_DOWN_BCR] = { 0x281d0 }, 8435 + [GCC_PCIE_2_NOCSR_COM_PHY_BCR] = { 0x281dc }, 8436 + [GCC_PCIE_2_PHY_BCR] = { 0x281d8 }, 8437 + [GCC_PCIE_2_PHY_NOCSR_COM_PHY_BCR] = { 0x281e0 }, 8438 + [GCC_PCIE_2_TUNNEL_BCR] = { 0xc0000 }, 8439 + [GCC_PCIE_3A_BCR] = { 0xdc000 }, 8440 + [GCC_PCIE_3A_LINK_DOWN_BCR] = { 0x7b0a0 }, 8441 + [GCC_PCIE_3A_NOCSR_COM_PHY_BCR] = { 0x7b0ac }, 8442 + [GCC_PCIE_3A_PHY_BCR] = { 0x6c000 }, 8443 + [GCC_PCIE_3A_PHY_NOCSR_COM_PHY_BCR] = { 0x7b0b0 }, 8444 + [GCC_PCIE_3B_BCR] = { 0x94000 }, 8445 + [GCC_PCIE_3B_LINK_DOWN_BCR] = { 0x7a0c0 }, 8446 + [GCC_PCIE_3B_NOCSR_COM_PHY_BCR] = { 0x7a0cc }, 8447 + [GCC_PCIE_3B_PHY_BCR] = { 0x75000 }, 8448 + [GCC_PCIE_3B_PHY_NOCSR_COM_PHY_BCR] = { 0x7a0c8 }, 8449 + [GCC_PCIE_4_BCR] = { 0x88000 }, 8450 + [GCC_PCIE_4_LINK_DOWN_BCR] = { 0x980c0 }, 8451 + [GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0x980cc }, 8452 + [GCC_PCIE_4_PHY_BCR] = { 0xd3000 }, 8453 + [GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0x980d0 }, 8454 + [GCC_PCIE_5_BCR] = { 0xc3000 }, 8455 + [GCC_PCIE_5_LINK_DOWN_BCR] = { 0x850c0 }, 8456 + [GCC_PCIE_5_NOCSR_COM_PHY_BCR] = { 0x850cc }, 8457 + [GCC_PCIE_5_PHY_BCR] = { 0xd2000 }, 8458 + [GCC_PCIE_5_PHY_NOCSR_COM_PHY_BCR] = { 0x850d0 }, 8459 + [GCC_PCIE_6_BCR] = { 0x8a000 }, 8460 + [GCC_PCIE_6_LINK_DOWN_BCR] = { 0x3a0b0 }, 8461 + [GCC_PCIE_6_NOCSR_COM_PHY_BCR] = { 0x3a0bc }, 8462 + [GCC_PCIE_6_PHY_BCR] = { 0xd4000 }, 8463 + [GCC_PCIE_6_PHY_NOCSR_COM_PHY_BCR] = { 0x3a0c0 }, 8464 + [GCC_PCIE_NOC_BCR] = { 0xba294 }, 8465 + [GCC_PCIE_PHY_BCR] = { 0x6f000 }, 8466 + [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x7f00c }, 8467 + [GCC_PCIE_PHY_COM_BCR] = { 0x7f010 }, 8468 + [GCC_PCIE_RSCC_BCR] = { 0xb8000 }, 8469 + [GCC_PDM_BCR] = { 0x33000 }, 8470 + [GCC_QUPV3_WRAPPER_0_BCR] = { 0x28000 }, 8471 + [GCC_QUPV3_WRAPPER_1_BCR] = { 0xb3000 }, 8472 + [GCC_QUPV3_WRAPPER_2_BCR] = { 0xb4000 }, 8473 + [GCC_QUPV3_WRAPPER_OOB_BCR] = { 0xe7000 }, 8474 + [GCC_QUSB2PHY_HS0_MP_BCR] = { 0xca000 }, 8475 + [GCC_QUSB2PHY_HS1_MP_BCR] = { 0xe6000 }, 8476 + [GCC_QUSB2PHY_PRIM_BCR] = { 0xad024 }, 8477 + [GCC_QUSB2PHY_SEC_BCR] = { 0xae000 }, 8478 + [GCC_QUSB2PHY_TERT_BCR] = { 0xc9000 }, 8479 + [GCC_QUSB2PHY_USB20_HS_BCR] = { 0xe9000 }, 8480 + [GCC_SDCC2_BCR] = { 0xb0000 }, 8481 + [GCC_SDCC4_BCR] = { 0xdf000 }, 8482 + [GCC_TCSR_PCIE_BCR] = { 0x281e4 }, 8483 + [GCC_UFS_PHY_BCR] = { 0x77004 }, 8484 + [GCC_USB20_PRIM_BCR] = { 0xbc000 }, 8485 + [GCC_USB30_MP_BCR] = { 0x9a00c }, 8486 + [GCC_USB30_PRIM_BCR] = { 0x3f018 }, 8487 + [GCC_USB30_SEC_BCR] = { 0xe200c }, 8488 + [GCC_USB30_TERT_BCR] = { 0xe100c }, 8489 + [GCC_USB3_MP_SS0_PHY_BCR] = { 0x54008 }, 8490 + [GCC_USB3_MP_SS1_PHY_BCR] = { 0x54028 }, 8491 + [GCC_USB3_PHY_PRIM_BCR] = { 0xdb000 }, 8492 + [GCC_USB3_PHY_SEC_BCR] = { 0x2c000 }, 8493 + [GCC_USB3_PHY_TERT_BCR] = { 0xbe000 }, 8494 + [GCC_USB3_UNIPHY_MP0_BCR] = { 0x54000 }, 8495 + [GCC_USB3_UNIPHY_MP1_BCR] = { 0x54020 }, 8496 + [GCC_USB3PHY_PHY_PRIM_BCR] = { 0xdb004 }, 8497 + [GCC_USB3PHY_PHY_SEC_BCR] = { 0x2c004 }, 8498 + [GCC_USB3PHY_PHY_TERT_BCR] = { 0xbe004 }, 8499 + [GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x54004 }, 8500 + [GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x54024 }, 8501 + [GCC_USB4_0_BCR] = { 0x2b004 }, 8502 + [GCC_USB4_0_DP0_PHY_PRIM_BCR] = { 0xdb010 }, 8503 + [GCC_USB4_1_BCR] = { 0x2d004 }, 8504 + [GCC_USB4_2_BCR] = { 0xe0004 }, 8505 + [GCC_USB_0_PHY_BCR] = { 0xdb020 }, 8506 + [GCC_USB_1_PHY_BCR] = { 0x2c020 }, 8507 + [GCC_USB_2_PHY_BCR] = { 0xbe020 }, 8508 + [GCC_VIDEO_AXI0_CLK_ARES] = { 0x3201c, 2 }, 8509 + [GCC_VIDEO_AXI1_CLK_ARES] = { 0x32044, 2 }, 8510 + [GCC_VIDEO_BCR] = { 0x32000 }, 8511 + }; 8512 + 8513 + static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = { 8514 + DEFINE_RCG_DFS(gcc_qupv3_oob_qspi_s0_clk_src), 8515 + DEFINE_RCG_DFS(gcc_qupv3_oob_qspi_s1_clk_src), 8516 + DEFINE_RCG_DFS(gcc_qupv3_wrap0_qspi_s2_clk_src), 8517 + DEFINE_RCG_DFS(gcc_qupv3_wrap0_qspi_s3_clk_src), 8518 + DEFINE_RCG_DFS(gcc_qupv3_wrap0_qspi_s6_clk_src), 8519 + DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src), 8520 + DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src), 8521 + DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src), 8522 + DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src), 8523 + DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src), 8524 + DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_s2_clk_src), 8525 + DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_s3_clk_src), 8526 + DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_s6_clk_src), 8527 + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src), 8528 + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src), 8529 + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src), 8530 + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src), 8531 + DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src), 8532 + DEFINE_RCG_DFS(gcc_qupv3_wrap2_qspi_s2_clk_src), 8533 + DEFINE_RCG_DFS(gcc_qupv3_wrap2_qspi_s3_clk_src), 8534 + DEFINE_RCG_DFS(gcc_qupv3_wrap2_qspi_s6_clk_src), 8535 + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src), 8536 + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src), 8537 + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src), 8538 + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src), 8539 + DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src), 8540 + }; 8541 + 8542 + static u32 gcc_glymur_critical_cbcrs[] = { 8543 + 0x26004, /* GCC_CAMERA_AHB_CLK */ 8544 + 0x26040, /* GCC_CAMERA_XO_CLK */ 8545 + 0x27004, /* GCC_DISP_AHB_CLK */ 8546 + 0x71004, /* GCC_GPU_CFG_AHB_CLK */ 8547 + 0x32004, /* GCC_VIDEO_AHB_CLK */ 8548 + 0x32058, /* GCC_VIDEO_XO_CLK */ 8549 + }; 8550 + 8551 + static const struct regmap_config gcc_glymur_regmap_config = { 8552 + .reg_bits = 32, 8553 + .reg_stride = 4, 8554 + .val_bits = 32, 8555 + .max_register = 0x1f8ff0, 8556 + .fast_io = true, 8557 + }; 8558 + 8559 + static void clk_glymur_regs_configure(struct device *dev, struct regmap *regmap) 8560 + { 8561 + /* FORCE_MEM_CORE_ON for ufs phy ice core clocks */ 8562 + qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true); 8563 + } 8564 + 8565 + static struct qcom_cc_driver_data gcc_glymur_driver_data = { 8566 + .clk_cbcrs = gcc_glymur_critical_cbcrs, 8567 + .num_clk_cbcrs = ARRAY_SIZE(gcc_glymur_critical_cbcrs), 8568 + .dfs_rcgs = gcc_dfs_clocks, 8569 + .num_dfs_rcgs = ARRAY_SIZE(gcc_dfs_clocks), 8570 + .clk_regs_configure = clk_glymur_regs_configure, 8571 + }; 8572 + 8573 + static const struct qcom_cc_desc gcc_glymur_desc = { 8574 + .config = &gcc_glymur_regmap_config, 8575 + .clks = gcc_glymur_clocks, 8576 + .num_clks = ARRAY_SIZE(gcc_glymur_clocks), 8577 + .resets = gcc_glymur_resets, 8578 + .num_resets = ARRAY_SIZE(gcc_glymur_resets), 8579 + .gdscs = gcc_glymur_gdscs, 8580 + .num_gdscs = ARRAY_SIZE(gcc_glymur_gdscs), 8581 + .driver_data = &gcc_glymur_driver_data, 8582 + }; 8583 + 8584 + static const struct of_device_id gcc_glymur_match_table[] = { 8585 + { .compatible = "qcom,glymur-gcc" }, 8586 + { } 8587 + }; 8588 + MODULE_DEVICE_TABLE(of, gcc_glymur_match_table); 8589 + 8590 + static int gcc_glymur_probe(struct platform_device *pdev) 8591 + { 8592 + return qcom_cc_probe(pdev, &gcc_glymur_desc); 8593 + } 8594 + 8595 + static struct platform_driver gcc_glymur_driver = { 8596 + .probe = gcc_glymur_probe, 8597 + .driver = { 8598 + .name = "gcc-glymur", 8599 + .of_match_table = gcc_glymur_match_table, 8600 + }, 8601 + }; 8602 + 8603 + static int __init gcc_glymur_init(void) 8604 + { 8605 + return platform_driver_register(&gcc_glymur_driver); 8606 + } 8607 + subsys_initcall(gcc_glymur_init); 8608 + 8609 + static void __exit gcc_glymur_exit(void) 8610 + { 8611 + platform_driver_unregister(&gcc_glymur_driver); 8612 + } 8613 + module_exit(gcc_glymur_exit); 8614 + 8615 + MODULE_DESCRIPTION("QTI GCC GLYMUR Driver"); 8616 + MODULE_LICENSE("GPL");