File Index
Files and directories
Sign in
FILE

gcc-sc8280xp.c

File preview with syntax highlighting.

linux-6.19.14/drivers/clk/qcom/gcc-sc8280xp.c C
   1// SPDX-License-Identifier: GPL-2.0-only
   2/*
   3 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
   4 * Copyright (c) 2022, Linaro Ltd.
   5 */
   6
   7#include <linux/clk-provider.h>
   8#include <linux/err.h>
   9#include <linux/kernel.h>
  10#include <linux/module.h>
  11#include <linux/pm_runtime.h>
  12#include <linux/of.h>
  13#include <linux/platform_device.h>
  14#include <linux/regmap.h>
  15
  16#include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
  17
  18#include "clk-alpha-pll.h"
  19#include "clk-branch.h"
  20#include "clk-rcg.h"
  21#include "clk-regmap.h"
  22#include "clk-regmap-divider.h"
  23#include "clk-regmap-mux.h"
  24#include "clk-regmap-phy-mux.h"
  25#include "common.h"
  26#include "gdsc.h"
  27#include "reset.h"
  28
  29/* Need to match the order of clocks in DT binding */
  30enum {
  31	DT_BI_TCXO,
  32	DT_SLEEP_CLK,
  33	DT_UFS_PHY_RX_SYMBOL_0_CLK,
  34	DT_UFS_PHY_RX_SYMBOL_1_CLK,
  35	DT_UFS_PHY_TX_SYMBOL_0_CLK,
  36	DT_UFS_CARD_RX_SYMBOL_0_CLK,
  37	DT_UFS_CARD_RX_SYMBOL_1_CLK,
  38	DT_UFS_CARD_TX_SYMBOL_0_CLK,
  39	DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
  40	DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC,
  41	DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC,
  42	DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC,
  43	DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK,
  44	DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
  45	DT_QUSB4PHY_GCC_USB4_RX0_CLK,
  46	DT_QUSB4PHY_GCC_USB4_RX1_CLK,
  47	DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK,
  48	DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
  49	DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC,
  50	DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
  51	DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
  52	DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
  53	DT_QUSB4PHY_1_GCC_USB4_RX0_CLK,
  54	DT_QUSB4PHY_1_GCC_USB4_RX1_CLK,
  55	DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
  56	DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
  57	DT_PCIE_2A_PIPE_CLK,
  58	DT_PCIE_2B_PIPE_CLK,
  59	DT_PCIE_3A_PIPE_CLK,
  60	DT_PCIE_3B_PIPE_CLK,
  61	DT_PCIE_4_PIPE_CLK,
  62	DT_RXC0_REF_CLK,
  63	DT_RXC1_REF_CLK,
  64};
  65
  66enum {
  67	P_BI_TCXO,
  68	P_GCC_GPLL0_OUT_EVEN,
  69	P_GCC_GPLL0_OUT_MAIN,
  70	P_GCC_GPLL2_OUT_MAIN,
  71	P_GCC_GPLL4_OUT_MAIN,
  72	P_GCC_GPLL7_OUT_MAIN,
  73	P_GCC_GPLL8_OUT_MAIN,
  74	P_GCC_GPLL9_OUT_MAIN,
  75	P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC,
  76	P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC,
  77	P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC,
  78	P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC,
  79	P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC,
  80	P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC,
  81	P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC,
  82	P_GCC_USB4_PHY_DP_GMUX_CLK_SRC,
  83	P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC,
  84	P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC,
  85	P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC,
  86	P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC,
  87	P_QUSB4PHY_1_GCC_USB4_RX0_CLK,
  88	P_QUSB4PHY_1_GCC_USB4_RX1_CLK,
  89	P_QUSB4PHY_GCC_USB4_RX0_CLK,
  90	P_QUSB4PHY_GCC_USB4_RX1_CLK,
  91	P_RXC0_REF_CLK,
  92	P_RXC1_REF_CLK,
  93	P_SLEEP_CLK,
  94	P_UFS_CARD_RX_SYMBOL_0_CLK,
  95	P_UFS_CARD_RX_SYMBOL_1_CLK,
  96	P_UFS_CARD_TX_SYMBOL_0_CLK,
  97	P_UFS_PHY_RX_SYMBOL_0_CLK,
  98	P_UFS_PHY_RX_SYMBOL_1_CLK,
  99	P_UFS_PHY_TX_SYMBOL_0_CLK,
 100	P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
 101	P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK,
 102	P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK,
 103	P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK,
 104	P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK,
 105	P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
 106	P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK,
 107	P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK,
 108};
 109
 110static const struct clk_parent_data gcc_parent_data_tcxo = { .index = DT_BI_TCXO };
 111
 112static struct clk_alpha_pll gcc_gpll0 = {
 113	.offset = 0x0,
 114	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
 115	.clkr = {
 116		.enable_reg = 0x52028,
 117		.enable_mask = BIT(0),
 118		.hw.init = &(const struct clk_init_data) {
 119			.name = "gcc_gpll0",
 120			.parent_data = &gcc_parent_data_tcxo,
 121			.num_parents = 1,
 122			.ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
 123		},
 124	},
 125};
 126
 127static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
 128	{ 0x1, 2 },
 129	{ }
 130};
 131
 132static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
 133	.offset = 0x0,
 134	.post_div_shift = 8,
 135	.post_div_table = post_div_table_gcc_gpll0_out_even,
 136	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
 137	.width = 4,
 138	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
 139	.clkr.hw.init = &(const struct clk_init_data) {
 140		.name = "gcc_gpll0_out_even",
 141		.parent_hws = (const struct clk_hw*[]){
 142			&gcc_gpll0.clkr.hw,
 143		},
 144		.num_parents = 1,
 145		.ops = &clk_alpha_pll_postdiv_lucid_5lpe_ops,
 146	},
 147};
 148
 149static struct clk_alpha_pll gcc_gpll2 = {
 150	.offset = 0x2000,
 151	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
 152	.clkr = {
 153		.enable_reg = 0x52028,
 154		.enable_mask = BIT(2),
 155		.hw.init = &(const struct clk_init_data) {
 156			.name = "gcc_gpll2",
 157			.parent_data = &gcc_parent_data_tcxo,
 158			.num_parents = 1,
 159			.ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
 160		},
 161	},
 162};
 163
 164static struct clk_alpha_pll gcc_gpll4 = {
 165	.offset = 0x76000,
 166	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
 167	.clkr = {
 168		.enable_reg = 0x52028,
 169		.enable_mask = BIT(4),
 170		.hw.init = &(const struct clk_init_data) {
 171			.name = "gcc_gpll4",
 172			.parent_data = &gcc_parent_data_tcxo,
 173			.num_parents = 1,
 174			.ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
 175		},
 176	},
 177};
 178
 179static struct clk_alpha_pll gcc_gpll7 = {
 180	.offset = 0x1a000,
 181	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
 182	.clkr = {
 183		.enable_reg = 0x52028,
 184		.enable_mask = BIT(7),
 185		.hw.init = &(const struct clk_init_data) {
 186			.name = "gcc_gpll7",
 187			.parent_data = &gcc_parent_data_tcxo,
 188			.num_parents = 1,
 189			.ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
 190		},
 191	},
 192};
 193
 194static struct clk_alpha_pll gcc_gpll8 = {
 195	.offset = 0x1b000,
 196	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
 197	.clkr = {
 198		.enable_reg = 0x52028,
 199		.enable_mask = BIT(8),
 200		.hw.init = &(const struct clk_init_data) {
 201			.name = "gcc_gpll8",
 202			.parent_data = &gcc_parent_data_tcxo,
 203			.num_parents = 1,
 204			.ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
 205		},
 206	},
 207};
 208
 209static struct clk_alpha_pll gcc_gpll9 = {
 210	.offset = 0x1c000,
 211	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID],
 212	.clkr = {
 213		.enable_reg = 0x52028,
 214		.enable_mask = BIT(9),
 215		.hw.init = &(const struct clk_init_data) {
 216			.name = "gcc_gpll9",
 217			.parent_data = &gcc_parent_data_tcxo,
 218			.num_parents = 1,
 219			.ops = &clk_alpha_pll_fixed_lucid_5lpe_ops,
 220		},
 221	},
 222};
 223
 224static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src;
 225static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src;
 226
 227static const struct parent_map gcc_parent_map_0[] = {
 228	{ P_BI_TCXO, 0 },
 229	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 230	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 231};
 232
 233static const struct clk_parent_data gcc_parent_data_0[] = {
 234	{ .index = DT_BI_TCXO },
 235	{ .hw = &gcc_gpll0.clkr.hw },
 236	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 237};
 238
 239static const struct parent_map gcc_parent_map_1[] = {
 240	{ P_BI_TCXO, 0 },
 241	{ P_SLEEP_CLK, 5 },
 242};
 243
 244static const struct clk_parent_data gcc_parent_data_1[] = {
 245	{ .index = DT_BI_TCXO },
 246	{ .index = DT_SLEEP_CLK },
 247};
 248
 249static const struct parent_map gcc_parent_map_2[] = {
 250	{ P_BI_TCXO, 0 },
 251	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 252	{ P_SLEEP_CLK, 5 },
 253	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 254};
 255
 256static const struct clk_parent_data gcc_parent_data_2[] = {
 257	{ .index = DT_BI_TCXO },
 258	{ .hw = &gcc_gpll0.clkr.hw },
 259	{ .index = DT_SLEEP_CLK },
 260	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 261};
 262
 263static const struct parent_map gcc_parent_map_3[] = {
 264	{ P_BI_TCXO, 0 },
 265};
 266
 267static const struct clk_parent_data gcc_parent_data_3[] = {
 268	{ .index = DT_BI_TCXO },
 269};
 270
 271static const struct parent_map gcc_parent_map_4[] = {
 272	{ P_BI_TCXO, 0 },
 273	{ P_GCC_GPLL7_OUT_MAIN, 2 },
 274	{ P_GCC_GPLL4_OUT_MAIN, 5 },
 275	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 276};
 277
 278static const struct clk_parent_data gcc_parent_data_4[] = {
 279	{ .index = DT_BI_TCXO },
 280	{ .hw = &gcc_gpll7.clkr.hw },
 281	{ .hw = &gcc_gpll4.clkr.hw },
 282	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 283};
 284
 285static const struct parent_map gcc_parent_map_5[] = {
 286	{ P_BI_TCXO, 0 },
 287	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 288	{ P_GCC_GPLL8_OUT_MAIN, 2 },
 289	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 290};
 291
 292static const struct clk_parent_data gcc_parent_data_5[] = {
 293	{ .index = DT_BI_TCXO },
 294	{ .hw = &gcc_gpll0.clkr.hw },
 295	{ .hw = &gcc_gpll8.clkr.hw },
 296	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 297};
 298
 299static const struct parent_map gcc_parent_map_6[] = {
 300	{ P_BI_TCXO, 0 },
 301	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 302	{ P_GCC_GPLL7_OUT_MAIN, 2 },
 303};
 304
 305static const struct clk_parent_data gcc_parent_data_6[] = {
 306	{ .index = DT_BI_TCXO },
 307	{ .hw = &gcc_gpll0.clkr.hw },
 308	{ .hw = &gcc_gpll7.clkr.hw },
 309};
 310
 311static const struct parent_map gcc_parent_map_7[] = {
 312	{ P_BI_TCXO, 0 },
 313	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 314	{ P_GCC_GPLL2_OUT_MAIN, 2 },
 315};
 316
 317static const struct clk_parent_data gcc_parent_data_7[] = {
 318	{ .index = DT_BI_TCXO },
 319	{ .hw = &gcc_gpll0.clkr.hw },
 320	{ .hw = &gcc_gpll2.clkr.hw },
 321};
 322
 323static const struct parent_map gcc_parent_map_8[] = {
 324	{ P_BI_TCXO, 0 },
 325	{ P_GCC_GPLL7_OUT_MAIN, 2 },
 326	{ P_RXC0_REF_CLK, 3 },
 327	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 328};
 329
 330static const struct clk_parent_data gcc_parent_data_8[] = {
 331	{ .index = DT_BI_TCXO },
 332	{ .hw = &gcc_gpll7.clkr.hw },
 333	{ .index = DT_RXC0_REF_CLK },
 334	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 335};
 336
 337static const struct parent_map gcc_parent_map_9[] = {
 338	{ P_BI_TCXO, 0 },
 339	{ P_GCC_GPLL7_OUT_MAIN, 2 },
 340	{ P_RXC1_REF_CLK, 3 },
 341	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 342};
 343
 344static const struct clk_parent_data gcc_parent_data_9[] = {
 345	{ .index = DT_BI_TCXO },
 346	{ .hw = &gcc_gpll7.clkr.hw },
 347	{ .index = DT_RXC1_REF_CLK },
 348	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 349};
 350
 351static const struct parent_map gcc_parent_map_15[] = {
 352	{ P_BI_TCXO, 0 },
 353	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 354	{ P_GCC_GPLL9_OUT_MAIN, 2 },
 355	{ P_GCC_GPLL4_OUT_MAIN, 5 },
 356	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 357};
 358
 359static const struct clk_parent_data gcc_parent_data_15[] = {
 360	{ .index = DT_BI_TCXO },
 361	{ .hw = &gcc_gpll0.clkr.hw },
 362	{ .hw = &gcc_gpll9.clkr.hw },
 363	{ .hw = &gcc_gpll4.clkr.hw },
 364	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 365};
 366
 367static const struct parent_map gcc_parent_map_16[] = {
 368	{ P_UFS_CARD_RX_SYMBOL_0_CLK, 0 },
 369	{ P_BI_TCXO, 2 },
 370};
 371
 372static const struct clk_parent_data gcc_parent_data_16[] = {
 373	{ .index = DT_UFS_CARD_RX_SYMBOL_0_CLK },
 374	{ .index = DT_BI_TCXO },
 375};
 376
 377static const struct parent_map gcc_parent_map_17[] = {
 378	{ P_UFS_CARD_RX_SYMBOL_1_CLK, 0 },
 379	{ P_BI_TCXO, 2 },
 380};
 381
 382static const struct clk_parent_data gcc_parent_data_17[] = {
 383	{ .index = DT_UFS_CARD_RX_SYMBOL_1_CLK },
 384	{ .index = DT_BI_TCXO },
 385};
 386
 387static const struct parent_map gcc_parent_map_18[] = {
 388	{ P_UFS_CARD_TX_SYMBOL_0_CLK, 0 },
 389	{ P_BI_TCXO, 2 },
 390};
 391
 392static const struct clk_parent_data gcc_parent_data_18[] = {
 393	{ .index = DT_UFS_CARD_TX_SYMBOL_0_CLK },
 394	{ .index = DT_BI_TCXO },
 395};
 396
 397static const struct parent_map gcc_parent_map_19[] = {
 398	{ P_UFS_PHY_RX_SYMBOL_0_CLK, 0 },
 399	{ P_BI_TCXO, 2 },
 400};
 401
 402static const struct clk_parent_data gcc_parent_data_19[] = {
 403	{ .index = DT_UFS_PHY_RX_SYMBOL_0_CLK },
 404	{ .index = DT_BI_TCXO },
 405};
 406
 407static const struct parent_map gcc_parent_map_20[] = {
 408	{ P_UFS_PHY_RX_SYMBOL_1_CLK, 0 },
 409	{ P_BI_TCXO, 2 },
 410};
 411
 412static const struct clk_parent_data gcc_parent_data_20[] = {
 413	{ .index = DT_UFS_PHY_RX_SYMBOL_1_CLK },
 414	{ .index = DT_BI_TCXO },
 415};
 416
 417static const struct parent_map gcc_parent_map_21[] = {
 418	{ P_UFS_PHY_TX_SYMBOL_0_CLK, 0 },
 419	{ P_BI_TCXO, 2 },
 420};
 421
 422static const struct clk_parent_data gcc_parent_data_21[] = {
 423	{ .index = DT_UFS_PHY_TX_SYMBOL_0_CLK },
 424	{ .index = DT_BI_TCXO },
 425};
 426
 427static const struct parent_map gcc_parent_map_22[] = {
 428	{ P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
 429	{ P_BI_TCXO, 2 },
 430};
 431
 432static const struct clk_parent_data gcc_parent_data_22[] = {
 433	{ .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK },
 434	{ .index = DT_BI_TCXO },
 435};
 436
 437static const struct parent_map gcc_parent_map_23[] = {
 438	{ P_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK, 0 },
 439	{ P_BI_TCXO, 2 },
 440};
 441
 442static const struct clk_parent_data gcc_parent_data_23[] = {
 443	{ .index = DT_USB3_UNI_PHY_SEC_GCC_USB30_PIPE_CLK },
 444	{ .index = DT_BI_TCXO },
 445};
 446
 447static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
 448	.reg = 0xf060,
 449	.shift = 0,
 450	.width = 2,
 451	.parent_map = gcc_parent_map_22,
 452	.clkr = {
 453		.hw.init = &(const struct clk_init_data) {
 454			.name = "gcc_usb3_prim_phy_pipe_clk_src",
 455			.parent_data = gcc_parent_data_22,
 456			.num_parents = ARRAY_SIZE(gcc_parent_data_22),
 457			.ops = &clk_regmap_mux_closest_ops,
 458		},
 459	},
 460};
 461
 462static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
 463	.reg = 0x10060,
 464	.shift = 0,
 465	.width = 2,
 466	.parent_map = gcc_parent_map_23,
 467	.clkr = {
 468		.hw.init = &(const struct clk_init_data) {
 469			.name = "gcc_usb3_sec_phy_pipe_clk_src",
 470			.parent_data = gcc_parent_data_23,
 471			.num_parents = ARRAY_SIZE(gcc_parent_data_23),
 472			.ops = &clk_regmap_mux_closest_ops,
 473		},
 474	},
 475};
 476
 477static const struct parent_map gcc_parent_map_24[] = {
 478	{ P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK, 0 },
 479	{ P_BI_TCXO, 2 },
 480};
 481
 482static const struct clk_parent_data gcc_parent_data_24[] = {
 483	{ .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_0_CLK },
 484	{ .index = DT_BI_TCXO },
 485};
 486
 487static const struct parent_map gcc_parent_map_25[] = {
 488	{ P_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK, 0 },
 489	{ P_BI_TCXO, 2 },
 490};
 491
 492static const struct clk_parent_data gcc_parent_data_25[] = {
 493	{ .index = DT_USB3_UNI_PHY_MP_GCC_USB30_PIPE_1_CLK },
 494	{ .index = DT_BI_TCXO },
 495};
 496
 497static const struct parent_map gcc_parent_map_26[] = {
 498	{ P_GCC_USB3_PRIM_PHY_PIPE_CLK_SRC, 0 },
 499	{ P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
 500	{ P_GCC_USB4_PHY_PIPEGMUX_CLK_SRC, 3 },
 501};
 502
 503static const struct clk_parent_data gcc_parent_data_26[] = {
 504	{ .hw = &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw },
 505	{ .index = DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
 506	{ .index = DT_GCC_USB4_PHY_PIPEGMUX_CLK_SRC },
 507};
 508
 509static const struct parent_map gcc_parent_map_27[] = {
 510	{ P_GCC_USB3_SEC_PHY_PIPE_CLK_SRC, 0 },
 511	{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 1 },
 512	{ P_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC, 3 },
 513};
 514
 515static const struct clk_parent_data gcc_parent_data_27[] = {
 516	{ .hw = &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw },
 517	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
 518	{ .index = DT_GCC_USB4_1_PHY_PIPEGMUX_CLK_SRC },
 519};
 520
 521static const struct parent_map gcc_parent_map_28[] = {
 522	{ P_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC, 0 },
 523	{ P_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
 524};
 525
 526static const struct clk_parent_data gcc_parent_data_28[] = {
 527	{ .index = DT_GCC_USB4_1_PHY_DP_GMUX_CLK_SRC },
 528	{ .index = DT_USB4_1_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
 529};
 530
 531static const struct parent_map gcc_parent_map_29[] = {
 532	{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
 533	{ P_BI_TCXO, 2 },
 534};
 535
 536static const struct clk_parent_data gcc_parent_data_29[] = {
 537	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
 538	{ .index = DT_BI_TCXO },
 539};
 540
 541static const struct parent_map gcc_parent_map_30[] = {
 542	{ P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
 543	{ P_GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC, 1 },
 544};
 545
 546static const struct clk_parent_data gcc_parent_data_30[] = {
 547	{ .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
 548	{ .hw = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr.hw },
 549};
 550
 551static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipegmux_clk_src = {
 552	.reg = 0xb80dc,
 553	.shift = 0,
 554	.width = 1,
 555	.parent_map = gcc_parent_map_30,
 556	.clkr = {
 557		.hw.init = &(const struct clk_init_data) {
 558			.name = "gcc_usb4_1_phy_pcie_pipegmux_clk_src",
 559			.parent_data = gcc_parent_data_30,
 560			.num_parents = ARRAY_SIZE(gcc_parent_data_30),
 561			.ops = &clk_regmap_mux_closest_ops,
 562		},
 563	},
 564};
 565
 566static const struct parent_map gcc_parent_map_31[] = {
 567	{ P_GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
 568	{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
 569};
 570
 571static const struct clk_parent_data gcc_parent_data_31[] = {
 572	{ .hw = &gcc_usb4_1_phy_pcie_pipegmux_clk_src.clkr.hw },
 573	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
 574};
 575
 576static const struct parent_map gcc_parent_map_32[] = {
 577	{ P_QUSB4PHY_1_GCC_USB4_RX0_CLK, 0 },
 578	{ P_BI_TCXO, 2 },
 579};
 580
 581static const struct clk_parent_data gcc_parent_data_32[] = {
 582	{ .index = DT_QUSB4PHY_1_GCC_USB4_RX0_CLK },
 583	{ .index = DT_BI_TCXO },
 584};
 585
 586static const struct parent_map gcc_parent_map_33[] = {
 587	{ P_QUSB4PHY_1_GCC_USB4_RX1_CLK, 0 },
 588	{ P_BI_TCXO, 2 },
 589};
 590
 591static const struct clk_parent_data gcc_parent_data_33[] = {
 592	{ .index = DT_QUSB4PHY_1_GCC_USB4_RX1_CLK },
 593	{ .index = DT_BI_TCXO },
 594};
 595
 596static const struct parent_map gcc_parent_map_34[] = {
 597	{ P_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
 598	{ P_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
 599};
 600
 601static const struct clk_parent_data gcc_parent_data_34[] = {
 602	{ .index = DT_GCC_USB4_1_PHY_SYS_PIPEGMUX_CLK_SRC },
 603	{ .index = DT_USB4_1_PHY_GCC_USB4_PCIE_PIPE_CLK },
 604};
 605
 606static const struct parent_map gcc_parent_map_35[] = {
 607	{ P_GCC_USB4_PHY_DP_GMUX_CLK_SRC, 0 },
 608	{ P_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK, 2 },
 609};
 610
 611static const struct clk_parent_data gcc_parent_data_35[] = {
 612	{ .index = DT_GCC_USB4_PHY_DP_GMUX_CLK_SRC },
 613	{ .index = DT_USB4_PHY_GCC_USB4RTR_MAX_PIPE_CLK },
 614};
 615
 616static const struct parent_map gcc_parent_map_36[] = {
 617	{ P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 0 },
 618	{ P_BI_TCXO, 2 },
 619};
 620
 621static const struct clk_parent_data gcc_parent_data_36[] = {
 622	{ .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
 623	{ .index = DT_BI_TCXO },
 624};
 625
 626static const struct parent_map gcc_parent_map_37[] = {
 627	{ P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
 628	{ P_GCC_USB4_PHY_PCIE_PIPE_CLK_SRC, 1 },
 629};
 630
 631static const struct clk_parent_data gcc_parent_data_37[] = {
 632	{ .index = DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC },
 633	{ .hw = &gcc_usb4_phy_pcie_pipe_clk_src.clkr.hw },
 634};
 635
 636static struct clk_regmap_mux gcc_usb4_phy_pcie_pipegmux_clk_src = {
 637	.reg = 0x2a0dc,
 638	.shift = 0,
 639	.width = 1,
 640	.parent_map = gcc_parent_map_37,
 641	.clkr = {
 642		.hw.init = &(const struct clk_init_data) {
 643			.name = "gcc_usb4_phy_pcie_pipegmux_clk_src",
 644			.parent_data = gcc_parent_data_37,
 645			.num_parents = ARRAY_SIZE(gcc_parent_data_37),
 646			.ops = &clk_regmap_mux_closest_ops,
 647		},
 648	},
 649};
 650
 651static const struct parent_map gcc_parent_map_38[] = {
 652	{ P_GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC, 0 },
 653	{ P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
 654};
 655
 656static const struct clk_parent_data gcc_parent_data_38[] = {
 657	{ .hw = &gcc_usb4_phy_pcie_pipegmux_clk_src.clkr.hw },
 658	{ .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
 659};
 660
 661static const struct parent_map gcc_parent_map_39[] = {
 662	{ P_QUSB4PHY_GCC_USB4_RX0_CLK, 0 },
 663	{ P_BI_TCXO, 2 },
 664};
 665
 666static const struct clk_parent_data gcc_parent_data_39[] = {
 667	{ .index = DT_QUSB4PHY_GCC_USB4_RX0_CLK },
 668	{ .index = DT_BI_TCXO },
 669};
 670
 671static const struct parent_map gcc_parent_map_40[] = {
 672	{ P_QUSB4PHY_GCC_USB4_RX1_CLK, 0 },
 673	{ P_BI_TCXO, 2 },
 674};
 675
 676static const struct clk_parent_data gcc_parent_data_40[] = {
 677	{ .index = DT_QUSB4PHY_GCC_USB4_RX1_CLK },
 678	{ .index = DT_BI_TCXO },
 679};
 680
 681static const struct parent_map gcc_parent_map_41[] = {
 682	{ P_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC, 0 },
 683	{ P_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK, 2 },
 684};
 685
 686static const struct clk_parent_data gcc_parent_data_41[] = {
 687	{ .index = DT_GCC_USB4_PHY_SYS_PIPEGMUX_CLK_SRC },
 688	{ .index = DT_USB4_PHY_GCC_USB4_PCIE_PIPE_CLK },
 689};
 690
 691static struct clk_regmap_phy_mux gcc_pcie_2a_pipe_clk_src = {
 692	.reg = 0x9d05c,
 693	.clkr = {
 694		.hw.init = &(const struct clk_init_data) {
 695			.name = "gcc_pcie_2a_pipe_clk_src",
 696			.parent_data = &(const struct clk_parent_data){
 697				.index = DT_PCIE_2A_PIPE_CLK,
 698			},
 699			.num_parents = 1,
 700			.ops = &clk_regmap_phy_mux_ops,
 701		},
 702	},
 703};
 704
 705static struct clk_regmap_phy_mux gcc_pcie_2b_pipe_clk_src = {
 706	.reg = 0x9e05c,
 707	.clkr = {
 708		.hw.init = &(const struct clk_init_data) {
 709			.name = "gcc_pcie_2b_pipe_clk_src",
 710			.parent_data = &(const struct clk_parent_data){
 711				.index = DT_PCIE_2B_PIPE_CLK,
 712			},
 713			.num_parents = 1,
 714			.ops = &clk_regmap_phy_mux_ops,
 715		},
 716	},
 717};
 718
 719static struct clk_regmap_phy_mux gcc_pcie_3a_pipe_clk_src = {
 720	.reg = 0xa005c,
 721	.clkr = {
 722		.hw.init = &(const struct clk_init_data) {
 723			.name = "gcc_pcie_3a_pipe_clk_src",
 724			.parent_data = &(const struct clk_parent_data){
 725				.index = DT_PCIE_3A_PIPE_CLK,
 726			},
 727			.num_parents = 1,
 728			.ops = &clk_regmap_phy_mux_ops,
 729		},
 730	},
 731};
 732
 733static struct clk_regmap_phy_mux gcc_pcie_3b_pipe_clk_src = {
 734	.reg = 0xa205c,
 735	.clkr = {
 736		.hw.init = &(const struct clk_init_data) {
 737			.name = "gcc_pcie_3b_pipe_clk_src",
 738			.parent_data = &(const struct clk_parent_data){
 739				.index = DT_PCIE_3B_PIPE_CLK,
 740			},
 741			.num_parents = 1,
 742			.ops = &clk_regmap_phy_mux_ops,
 743		},
 744	},
 745};
 746
 747static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src = {
 748	.reg = 0x6b05c,
 749	.clkr = {
 750		.hw.init = &(const struct clk_init_data) {
 751			.name = "gcc_pcie_4_pipe_clk_src",
 752			.parent_data = &(const struct clk_parent_data){
 753				.index = DT_PCIE_4_PIPE_CLK,
 754			},
 755			.num_parents = 1,
 756			.ops = &clk_regmap_phy_mux_ops,
 757		},
 758	},
 759};
 760
 761static struct clk_regmap_mux gcc_ufs_card_rx_symbol_0_clk_src = {
 762	.reg = 0x75058,
 763	.shift = 0,
 764	.width = 2,
 765	.parent_map = gcc_parent_map_16,
 766	.clkr = {
 767		.hw.init = &(const struct clk_init_data) {
 768			.name = "gcc_ufs_card_rx_symbol_0_clk_src",
 769			.parent_data = gcc_parent_data_16,
 770			.num_parents = ARRAY_SIZE(gcc_parent_data_16),
 771			.ops = &clk_regmap_mux_closest_ops,
 772		},
 773	},
 774};
 775
 776static struct clk_regmap_mux gcc_ufs_card_rx_symbol_1_clk_src = {
 777	.reg = 0x750c8,
 778	.shift = 0,
 779	.width = 2,
 780	.parent_map = gcc_parent_map_17,
 781	.clkr = {
 782		.hw.init = &(const struct clk_init_data) {
 783			.name = "gcc_ufs_card_rx_symbol_1_clk_src",
 784			.parent_data = gcc_parent_data_17,
 785			.num_parents = ARRAY_SIZE(gcc_parent_data_17),
 786			.ops = &clk_regmap_mux_closest_ops,
 787		},
 788	},
 789};
 790
 791static struct clk_regmap_mux gcc_ufs_card_tx_symbol_0_clk_src = {
 792	.reg = 0x75048,
 793	.shift = 0,
 794	.width = 2,
 795	.parent_map = gcc_parent_map_18,
 796	.clkr = {
 797		.hw.init = &(const struct clk_init_data) {
 798			.name = "gcc_ufs_card_tx_symbol_0_clk_src",
 799			.parent_data = gcc_parent_data_18,
 800			.num_parents = ARRAY_SIZE(gcc_parent_data_18),
 801			.ops = &clk_regmap_mux_closest_ops,
 802		},
 803	},
 804};
 805
 806static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
 807	.reg = 0x77058,
 808	.shift = 0,
 809	.width = 2,
 810	.parent_map = gcc_parent_map_19,
 811	.clkr = {
 812		.hw.init = &(const struct clk_init_data) {
 813			.name = "gcc_ufs_phy_rx_symbol_0_clk_src",
 814			.parent_data = gcc_parent_data_19,
 815			.num_parents = ARRAY_SIZE(gcc_parent_data_19),
 816			.ops = &clk_regmap_mux_closest_ops,
 817		},
 818	},
 819};
 820
 821static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
 822	.reg = 0x770c8,
 823	.shift = 0,
 824	.width = 2,
 825	.parent_map = gcc_parent_map_20,
 826	.clkr = {
 827		.hw.init = &(const struct clk_init_data) {
 828			.name = "gcc_ufs_phy_rx_symbol_1_clk_src",
 829			.parent_data = gcc_parent_data_20,
 830			.num_parents = ARRAY_SIZE(gcc_parent_data_20),
 831			.ops = &clk_regmap_mux_closest_ops,
 832		},
 833	},
 834};
 835
 836static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
 837	.reg = 0x77048,
 838	.shift = 0,
 839	.width = 2,
 840	.parent_map = gcc_parent_map_21,
 841	.clkr = {
 842		.hw.init = &(const struct clk_init_data) {
 843			.name = "gcc_ufs_phy_tx_symbol_0_clk_src",
 844			.parent_data = gcc_parent_data_21,
 845			.num_parents = ARRAY_SIZE(gcc_parent_data_21),
 846			.ops = &clk_regmap_mux_closest_ops,
 847		},
 848	},
 849};
 850
 851static struct clk_regmap_mux gcc_usb34_prim_phy_pipe_clk_src = {
 852	.reg = 0xf064,
 853	.shift = 0,
 854	.width = 2,
 855	.parent_map = gcc_parent_map_26,
 856	.clkr = {
 857		.hw.init = &(const struct clk_init_data) {
 858			.name = "gcc_usb34_prim_phy_pipe_clk_src",
 859			.parent_data = gcc_parent_data_26,
 860			.num_parents = ARRAY_SIZE(gcc_parent_data_26),
 861			.ops = &clk_regmap_mux_closest_ops,
 862		},
 863	},
 864};
 865
 866static struct clk_regmap_mux gcc_usb34_sec_phy_pipe_clk_src = {
 867	.reg = 0x10064,
 868	.shift = 0,
 869	.width = 2,
 870	.parent_map = gcc_parent_map_27,
 871	.clkr = {
 872		.hw.init = &(const struct clk_init_data) {
 873			.name = "gcc_usb34_sec_phy_pipe_clk_src",
 874			.parent_data = gcc_parent_data_27,
 875			.num_parents = ARRAY_SIZE(gcc_parent_data_27),
 876			.ops = &clk_regmap_mux_closest_ops,
 877		},
 878	},
 879};
 880
 881static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_0_clk_src = {
 882	.reg = 0xab060,
 883	.shift = 0,
 884	.width = 2,
 885	.parent_map = gcc_parent_map_24,
 886	.clkr = {
 887		.hw.init = &(const struct clk_init_data) {
 888			.name = "gcc_usb3_mp_phy_pipe_0_clk_src",
 889			.parent_data = gcc_parent_data_24,
 890			.num_parents = ARRAY_SIZE(gcc_parent_data_24),
 891			.ops = &clk_regmap_mux_closest_ops,
 892		},
 893	},
 894};
 895
 896static struct clk_regmap_mux gcc_usb3_mp_phy_pipe_1_clk_src = {
 897	.reg = 0xab068,
 898	.shift = 0,
 899	.width = 2,
 900	.parent_map = gcc_parent_map_25,
 901	.clkr = {
 902		.hw.init = &(const struct clk_init_data) {
 903			.name = "gcc_usb3_mp_phy_pipe_1_clk_src",
 904			.parent_data = gcc_parent_data_25,
 905			.num_parents = ARRAY_SIZE(gcc_parent_data_25),
 906			.ops = &clk_regmap_mux_closest_ops,
 907		},
 908	},
 909};
 910
 911static struct clk_regmap_mux gcc_usb4_1_phy_dp_clk_src = {
 912	.reg = 0xb8050,
 913	.shift = 0,
 914	.width = 2,
 915	.parent_map = gcc_parent_map_28,
 916	.clkr = {
 917		.hw.init = &(const struct clk_init_data) {
 918			.name = "gcc_usb4_1_phy_dp_clk_src",
 919			.parent_data = gcc_parent_data_28,
 920			.num_parents = ARRAY_SIZE(gcc_parent_data_28),
 921			.ops = &clk_regmap_mux_closest_ops,
 922		},
 923	},
 924};
 925
 926static struct clk_regmap_mux gcc_usb4_1_phy_p2rr2p_pipe_clk_src = {
 927	.reg = 0xb80b0,
 928	.shift = 0,
 929	.width = 2,
 930	.parent_map = gcc_parent_map_29,
 931	.clkr = {
 932		.hw.init = &(const struct clk_init_data) {
 933			.name = "gcc_usb4_1_phy_p2rr2p_pipe_clk_src",
 934			.parent_data = gcc_parent_data_29,
 935			.num_parents = ARRAY_SIZE(gcc_parent_data_29),
 936			.ops = &clk_regmap_mux_closest_ops,
 937		},
 938	},
 939};
 940
 941static struct clk_regmap_mux gcc_usb4_1_phy_pcie_pipe_mux_clk_src = {
 942	.reg = 0xb80e0,
 943	.shift = 0,
 944	.width = 2,
 945	.parent_map = gcc_parent_map_31,
 946	.clkr = {
 947		.hw.init = &(const struct clk_init_data) {
 948			.name = "gcc_usb4_1_phy_pcie_pipe_mux_clk_src",
 949			.parent_data = gcc_parent_data_31,
 950			.num_parents = ARRAY_SIZE(gcc_parent_data_31),
 951			.ops = &clk_regmap_mux_closest_ops,
 952		},
 953	},
 954};
 955
 956static struct clk_regmap_mux gcc_usb4_1_phy_rx0_clk_src = {
 957	.reg = 0xb8090,
 958	.shift = 0,
 959	.width = 2,
 960	.parent_map = gcc_parent_map_32,
 961	.clkr = {
 962		.hw.init = &(const struct clk_init_data) {
 963			.name = "gcc_usb4_1_phy_rx0_clk_src",
 964			.parent_data = gcc_parent_data_32,
 965			.num_parents = ARRAY_SIZE(gcc_parent_data_32),
 966			.ops = &clk_regmap_mux_closest_ops,
 967		},
 968	},
 969};
 970
 971static struct clk_regmap_mux gcc_usb4_1_phy_rx1_clk_src = {
 972	.reg = 0xb809c,
 973	.shift = 0,
 974	.width = 2,
 975	.parent_map = gcc_parent_map_33,
 976	.clkr = {
 977		.hw.init = &(const struct clk_init_data) {
 978			.name = "gcc_usb4_1_phy_rx1_clk_src",
 979			.parent_data = gcc_parent_data_33,
 980			.num_parents = ARRAY_SIZE(gcc_parent_data_33),
 981			.ops = &clk_regmap_mux_closest_ops,
 982		},
 983	},
 984};
 985
 986static struct clk_regmap_mux gcc_usb4_1_phy_sys_clk_src = {
 987	.reg = 0xb80c0,
 988	.shift = 0,
 989	.width = 2,
 990	.parent_map = gcc_parent_map_34,
 991	.clkr = {
 992		.hw.init = &(const struct clk_init_data) {
 993			.name = "gcc_usb4_1_phy_sys_clk_src",
 994			.parent_data = gcc_parent_data_34,
 995			.num_parents = ARRAY_SIZE(gcc_parent_data_34),
 996			.ops = &clk_regmap_mux_closest_ops,
 997		},
 998	},
 999};
1000
1001static struct clk_regmap_mux gcc_usb4_phy_dp_clk_src = {
1002	.reg = 0x2a050,
1003	.shift = 0,
1004	.width = 2,
1005	.parent_map = gcc_parent_map_35,
1006	.clkr = {
1007		.hw.init = &(const struct clk_init_data) {
1008			.name = "gcc_usb4_phy_dp_clk_src",
1009			.parent_data = gcc_parent_data_35,
1010			.num_parents = ARRAY_SIZE(gcc_parent_data_35),
1011			.ops = &clk_regmap_mux_closest_ops,
1012		},
1013	},
1014};
1015
1016static struct clk_regmap_mux gcc_usb4_phy_p2rr2p_pipe_clk_src = {
1017	.reg = 0x2a0b0,
1018	.shift = 0,
1019	.width = 2,
1020	.parent_map = gcc_parent_map_36,
1021	.clkr = {
1022		.hw.init = &(const struct clk_init_data) {
1023			.name = "gcc_usb4_phy_p2rr2p_pipe_clk_src",
1024			.parent_data = gcc_parent_data_36,
1025			.num_parents = ARRAY_SIZE(gcc_parent_data_36),
1026			.ops = &clk_regmap_mux_closest_ops,
1027		},
1028	},
1029};
1030
1031static struct clk_regmap_mux gcc_usb4_phy_pcie_pipe_mux_clk_src = {
1032	.reg = 0x2a0e0,
1033	.shift = 0,
1034	.width = 2,
1035	.parent_map = gcc_parent_map_38,
1036	.clkr = {
1037		.hw.init = &(const struct clk_init_data) {
1038			.name = "gcc_usb4_phy_pcie_pipe_mux_clk_src",
1039			.parent_data = gcc_parent_data_38,
1040			.num_parents = ARRAY_SIZE(gcc_parent_data_38),
1041			.ops = &clk_regmap_mux_closest_ops,
1042		},
1043	},
1044};
1045
1046static struct clk_regmap_mux gcc_usb4_phy_rx0_clk_src = {
1047	.reg = 0x2a090,
1048	.shift = 0,
1049	.width = 2,
1050	.parent_map = gcc_parent_map_39,
1051	.clkr = {
1052		.hw.init = &(const struct clk_init_data) {
1053			.name = "gcc_usb4_phy_rx0_clk_src",
1054			.parent_data = gcc_parent_data_39,
1055			.num_parents = ARRAY_SIZE(gcc_parent_data_39),
1056			.ops = &clk_regmap_mux_closest_ops,
1057		},
1058	},
1059};
1060
1061static struct clk_regmap_mux gcc_usb4_phy_rx1_clk_src = {
1062	.reg = 0x2a09c,
1063	.shift = 0,
1064	.width = 2,
1065	.parent_map = gcc_parent_map_40,
1066	.clkr = {
1067		.hw.init = &(const struct clk_init_data) {
1068			.name = "gcc_usb4_phy_rx1_clk_src",
1069			.parent_data = gcc_parent_data_40,
1070			.num_parents = ARRAY_SIZE(gcc_parent_data_40),
1071			.ops = &clk_regmap_mux_closest_ops,
1072		},
1073	},
1074};
1075
1076static struct clk_regmap_mux gcc_usb4_phy_sys_clk_src = {
1077	.reg = 0x2a0c0,
1078	.shift = 0,
1079	.width = 2,
1080	.parent_map = gcc_parent_map_41,
1081	.clkr = {
1082		.hw.init = &(const struct clk_init_data) {
1083			.name = "gcc_usb4_phy_sys_clk_src",
1084			.parent_data = gcc_parent_data_41,
1085			.num_parents = ARRAY_SIZE(gcc_parent_data_41),
1086			.ops = &clk_regmap_mux_closest_ops,
1087		},
1088	},
1089};
1090
1091static const struct freq_tbl ftbl_gcc_emac0_ptp_clk_src[] = {
1092	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1093	F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1094	F(230400000, P_GCC_GPLL4_OUT_MAIN, 3.5, 0, 0),
1095	{ }
1096};
1097
1098static struct clk_rcg2 gcc_emac0_ptp_clk_src = {
1099	.cmd_rcgr = 0xaa020,
1100	.mnd_width = 0,
1101	.hid_width = 5,
1102	.parent_map = gcc_parent_map_4,
1103	.freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
1104	.clkr.hw.init = &(const struct clk_init_data) {
1105		.name = "gcc_emac0_ptp_clk_src",
1106		.parent_data = gcc_parent_data_4,
1107		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
1108		.ops = &clk_rcg2_shared_ops,
1109	},
1110};
1111
1112static const struct freq_tbl ftbl_gcc_emac0_rgmii_clk_src[] = {
1113	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1114	F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1115	F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
1116	{ }
1117};
1118
1119static struct clk_rcg2 gcc_emac0_rgmii_clk_src = {
1120	.cmd_rcgr = 0xaa040,
1121	.mnd_width = 8,
1122	.hid_width = 5,
1123	.parent_map = gcc_parent_map_8,
1124	.freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
1125	.clkr.hw.init = &(const struct clk_init_data) {
1126		.name = "gcc_emac0_rgmii_clk_src",
1127		.parent_data = gcc_parent_data_8,
1128		.num_parents = ARRAY_SIZE(gcc_parent_data_8),
1129		.ops = &clk_rcg2_shared_ops,
1130	},
1131};
1132
1133static struct clk_rcg2 gcc_emac1_ptp_clk_src = {
1134	.cmd_rcgr = 0xba020,
1135	.mnd_width = 0,
1136	.hid_width = 5,
1137	.parent_map = gcc_parent_map_4,
1138	.freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
1139	.clkr.hw.init = &(const struct clk_init_data) {
1140		.name = "gcc_emac1_ptp_clk_src",
1141		.parent_data = gcc_parent_data_4,
1142		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
1143		.ops = &clk_rcg2_shared_ops,
1144	},
1145};
1146
1147static struct clk_rcg2 gcc_emac1_rgmii_clk_src = {
1148	.cmd_rcgr = 0xba040,
1149	.mnd_width = 8,
1150	.hid_width = 5,
1151	.parent_map = gcc_parent_map_9,
1152	.freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
1153	.clkr.hw.init = &(const struct clk_init_data) {
1154		.name = "gcc_emac1_rgmii_clk_src",
1155		.parent_data = gcc_parent_data_9,
1156		.num_parents = ARRAY_SIZE(gcc_parent_data_9),
1157		.ops = &clk_rcg2_shared_ops,
1158	},
1159};
1160
1161static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
1162	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1163	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1164	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1165	{ }
1166};
1167
1168static struct clk_rcg2 gcc_gp1_clk_src = {
1169	.cmd_rcgr = 0x64004,
1170	.mnd_width = 16,
1171	.hid_width = 5,
1172	.parent_map = gcc_parent_map_2,
1173	.freq_tbl = ftbl_gcc_gp1_clk_src,
1174	.clkr.hw.init = &(const struct clk_init_data) {
1175		.name = "gcc_gp1_clk_src",
1176		.parent_data = gcc_parent_data_2,
1177		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
1178		.ops = &clk_rcg2_shared_ops,
1179	},
1180};
1181
1182static struct clk_rcg2 gcc_gp2_clk_src = {
1183	.cmd_rcgr = 0x65004,
1184	.mnd_width = 16,
1185	.hid_width = 5,
1186	.parent_map = gcc_parent_map_2,
1187	.freq_tbl = ftbl_gcc_gp1_clk_src,
1188	.clkr.hw.init = &(const struct clk_init_data) {
1189		.name = "gcc_gp2_clk_src",
1190		.parent_data = gcc_parent_data_2,
1191		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
1192		.ops = &clk_rcg2_shared_ops,
1193	},
1194};
1195
1196static struct clk_rcg2 gcc_gp3_clk_src = {
1197	.cmd_rcgr = 0x66004,
1198	.mnd_width = 16,
1199	.hid_width = 5,
1200	.parent_map = gcc_parent_map_2,
1201	.freq_tbl = ftbl_gcc_gp1_clk_src,
1202	.clkr.hw.init = &(const struct clk_init_data) {
1203		.name = "gcc_gp3_clk_src",
1204		.parent_data = gcc_parent_data_2,
1205		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
1206		.ops = &clk_rcg2_shared_ops,
1207	},
1208};
1209
1210static struct clk_rcg2 gcc_gp4_clk_src = {
1211	.cmd_rcgr = 0xc2004,
1212	.mnd_width = 16,
1213	.hid_width = 5,
1214	.parent_map = gcc_parent_map_2,
1215	.freq_tbl = ftbl_gcc_gp1_clk_src,
1216	.clkr.hw.init = &(const struct clk_init_data) {
1217		.name = "gcc_gp4_clk_src",
1218		.parent_data = gcc_parent_data_2,
1219		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
1220		.ops = &clk_rcg2_shared_ops,
1221	},
1222};
1223
1224static struct clk_rcg2 gcc_gp5_clk_src = {
1225	.cmd_rcgr = 0xc3004,
1226	.mnd_width = 16,
1227	.hid_width = 5,
1228	.parent_map = gcc_parent_map_2,
1229	.freq_tbl = ftbl_gcc_gp1_clk_src,
1230	.clkr.hw.init = &(const struct clk_init_data) {
1231		.name = "gcc_gp5_clk_src",
1232		.parent_data = gcc_parent_data_2,
1233		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
1234		.ops = &clk_rcg2_shared_ops,
1235	},
1236};
1237
1238static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
1239	F(9600000, P_BI_TCXO, 2, 0, 0),
1240	F(19200000, P_BI_TCXO, 1, 0, 0),
1241	{ }
1242};
1243
1244static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
1245	.cmd_rcgr = 0xa4054,
1246	.mnd_width = 16,
1247	.hid_width = 5,
1248	.parent_map = gcc_parent_map_1,
1249	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1250	.clkr.hw.init = &(const struct clk_init_data) {
1251		.name = "gcc_pcie_0_aux_clk_src",
1252		.parent_data = gcc_parent_data_1,
1253		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1254		.ops = &clk_rcg2_shared_ops,
1255	},
1256};
1257
1258static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
1259	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1260	{ }
1261};
1262
1263static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
1264	.cmd_rcgr = 0xa403c,
1265	.mnd_width = 0,
1266	.hid_width = 5,
1267	.parent_map = gcc_parent_map_0,
1268	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1269	.clkr.hw.init = &(const struct clk_init_data) {
1270		.name = "gcc_pcie_0_phy_rchng_clk_src",
1271		.parent_data = gcc_parent_data_0,
1272		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1273		.ops = &clk_rcg2_shared_ops,
1274	},
1275};
1276
1277static const struct freq_tbl ftbl_gcc_pcie_1_aux_clk_src[] = {
1278	F(19200000, P_BI_TCXO, 1, 0, 0),
1279	{ }
1280};
1281
1282static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
1283	.cmd_rcgr = 0x8d054,
1284	.mnd_width = 16,
1285	.hid_width = 5,
1286	.parent_map = gcc_parent_map_1,
1287	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1288	.clkr.hw.init = &(const struct clk_init_data) {
1289		.name = "gcc_pcie_1_aux_clk_src",
1290		.parent_data = gcc_parent_data_1,
1291		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1292		.ops = &clk_rcg2_shared_ops,
1293	},
1294};
1295
1296static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
1297	.cmd_rcgr = 0x8d03c,
1298	.mnd_width = 0,
1299	.hid_width = 5,
1300	.parent_map = gcc_parent_map_0,
1301	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1302	.clkr.hw.init = &(const struct clk_init_data) {
1303		.name = "gcc_pcie_1_phy_rchng_clk_src",
1304		.parent_data = gcc_parent_data_0,
1305		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1306		.ops = &clk_rcg2_shared_ops,
1307	},
1308};
1309
1310static struct clk_rcg2 gcc_pcie_2a_aux_clk_src = {
1311	.cmd_rcgr = 0x9d064,
1312	.mnd_width = 16,
1313	.hid_width = 5,
1314	.parent_map = gcc_parent_map_1,
1315	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1316	.clkr.hw.init = &(const struct clk_init_data) {
1317		.name = "gcc_pcie_2a_aux_clk_src",
1318		.parent_data = gcc_parent_data_1,
1319		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1320		.ops = &clk_rcg2_shared_ops,
1321	},
1322};
1323
1324static struct clk_rcg2 gcc_pcie_2a_phy_rchng_clk_src = {
1325	.cmd_rcgr = 0x9d044,
1326	.mnd_width = 0,
1327	.hid_width = 5,
1328	.parent_map = gcc_parent_map_0,
1329	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1330	.clkr.hw.init = &(const struct clk_init_data) {
1331		.name = "gcc_pcie_2a_phy_rchng_clk_src",
1332		.parent_data = gcc_parent_data_0,
1333		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1334		.ops = &clk_rcg2_shared_ops,
1335	},
1336};
1337
1338static struct clk_rcg2 gcc_pcie_2b_aux_clk_src = {
1339	.cmd_rcgr = 0x9e064,
1340	.mnd_width = 16,
1341	.hid_width = 5,
1342	.parent_map = gcc_parent_map_1,
1343	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1344	.clkr.hw.init = &(const struct clk_init_data) {
1345		.name = "gcc_pcie_2b_aux_clk_src",
1346		.parent_data = gcc_parent_data_1,
1347		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1348		.ops = &clk_rcg2_shared_ops,
1349	},
1350};
1351
1352static struct clk_rcg2 gcc_pcie_2b_phy_rchng_clk_src = {
1353	.cmd_rcgr = 0x9e044,
1354	.mnd_width = 0,
1355	.hid_width = 5,
1356	.parent_map = gcc_parent_map_0,
1357	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1358	.clkr.hw.init = &(const struct clk_init_data) {
1359		.name = "gcc_pcie_2b_phy_rchng_clk_src",
1360		.parent_data = gcc_parent_data_0,
1361		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1362		.ops = &clk_rcg2_shared_ops,
1363	},
1364};
1365
1366static struct clk_rcg2 gcc_pcie_3a_aux_clk_src = {
1367	.cmd_rcgr = 0xa0064,
1368	.mnd_width = 16,
1369	.hid_width = 5,
1370	.parent_map = gcc_parent_map_1,
1371	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1372	.clkr.hw.init = &(const struct clk_init_data) {
1373		.name = "gcc_pcie_3a_aux_clk_src",
1374		.parent_data = gcc_parent_data_1,
1375		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1376		.ops = &clk_rcg2_shared_ops,
1377	},
1378};
1379
1380static struct clk_rcg2 gcc_pcie_3a_phy_rchng_clk_src = {
1381	.cmd_rcgr = 0xa0044,
1382	.mnd_width = 0,
1383	.hid_width = 5,
1384	.parent_map = gcc_parent_map_0,
1385	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1386	.clkr.hw.init = &(const struct clk_init_data) {
1387		.name = "gcc_pcie_3a_phy_rchng_clk_src",
1388		.parent_data = gcc_parent_data_0,
1389		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1390		.ops = &clk_rcg2_shared_ops,
1391	},
1392};
1393
1394static struct clk_rcg2 gcc_pcie_3b_aux_clk_src = {
1395	.cmd_rcgr = 0xa2064,
1396	.mnd_width = 16,
1397	.hid_width = 5,
1398	.parent_map = gcc_parent_map_1,
1399	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1400	.clkr.hw.init = &(const struct clk_init_data) {
1401		.name = "gcc_pcie_3b_aux_clk_src",
1402		.parent_data = gcc_parent_data_1,
1403		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1404		.ops = &clk_rcg2_shared_ops,
1405	},
1406};
1407
1408static struct clk_rcg2 gcc_pcie_3b_phy_rchng_clk_src = {
1409	.cmd_rcgr = 0xa2044,
1410	.mnd_width = 0,
1411	.hid_width = 5,
1412	.parent_map = gcc_parent_map_0,
1413	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1414	.clkr.hw.init = &(const struct clk_init_data) {
1415		.name = "gcc_pcie_3b_phy_rchng_clk_src",
1416		.parent_data = gcc_parent_data_0,
1417		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1418		.ops = &clk_rcg2_shared_ops,
1419	},
1420};
1421
1422static struct clk_rcg2 gcc_pcie_4_aux_clk_src = {
1423	.cmd_rcgr = 0x6b064,
1424	.mnd_width = 16,
1425	.hid_width = 5,
1426	.parent_map = gcc_parent_map_1,
1427	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1428	.clkr.hw.init = &(const struct clk_init_data) {
1429		.name = "gcc_pcie_4_aux_clk_src",
1430		.parent_data = gcc_parent_data_1,
1431		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1432		.ops = &clk_rcg2_shared_ops,
1433	},
1434};
1435
1436static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = {
1437	.cmd_rcgr = 0x6b044,
1438	.mnd_width = 0,
1439	.hid_width = 5,
1440	.parent_map = gcc_parent_map_0,
1441	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
1442	.clkr.hw.init = &(const struct clk_init_data) {
1443		.name = "gcc_pcie_4_phy_rchng_clk_src",
1444		.parent_data = gcc_parent_data_0,
1445		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1446		.ops = &clk_rcg2_shared_ops,
1447	},
1448};
1449
1450static struct clk_rcg2 gcc_pcie_rscc_xo_clk_src = {
1451	.cmd_rcgr = 0xae00c,
1452	.mnd_width = 0,
1453	.hid_width = 5,
1454	.parent_map = gcc_parent_map_3,
1455	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
1456	.clkr.hw.init = &(const struct clk_init_data) {
1457		.name = "gcc_pcie_rscc_xo_clk_src",
1458		.parent_data = gcc_parent_data_3,
1459		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1460		.ops = &clk_rcg2_shared_ops,
1461	},
1462};
1463
1464static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
1465	F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0),
1466	{ }
1467};
1468
1469static struct clk_rcg2 gcc_pdm2_clk_src = {
1470	.cmd_rcgr = 0x33010,
1471	.mnd_width = 0,
1472	.hid_width = 5,
1473	.parent_map = gcc_parent_map_0,
1474	.freq_tbl = ftbl_gcc_pdm2_clk_src,
1475	.clkr.hw.init = &(const struct clk_init_data) {
1476		.name = "gcc_pdm2_clk_src",
1477		.parent_data = gcc_parent_data_0,
1478		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1479		.ops = &clk_rcg2_shared_ops,
1480	},
1481};
1482
1483static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
1484	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1485	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1486	F(19200000, P_BI_TCXO, 1, 0, 0),
1487	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1488	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1489	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1490	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1491	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1492	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1493	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1494	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
1495	{ }
1496};
1497
1498static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
1499	.name = "gcc_qupv3_wrap0_s0_clk_src",
1500	.parent_data = gcc_parent_data_0,
1501	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1502	.flags = CLK_SET_RATE_PARENT,
1503	.ops = &clk_rcg2_ops,
1504};
1505
1506static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
1507	.cmd_rcgr = 0x17148,
1508	.mnd_width = 16,
1509	.hid_width = 5,
1510	.parent_map = gcc_parent_map_0,
1511	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1512	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
1513};
1514
1515static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
1516	.name = "gcc_qupv3_wrap0_s1_clk_src",
1517	.parent_data = gcc_parent_data_0,
1518	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1519	.flags = CLK_SET_RATE_PARENT,
1520	.ops = &clk_rcg2_ops,
1521};
1522
1523static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
1524	.cmd_rcgr = 0x17278,
1525	.mnd_width = 16,
1526	.hid_width = 5,
1527	.parent_map = gcc_parent_map_0,
1528	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1529	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
1530};
1531
1532static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
1533	.name = "gcc_qupv3_wrap0_s2_clk_src",
1534	.parent_data = gcc_parent_data_0,
1535	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1536	.flags = CLK_SET_RATE_PARENT,
1537	.ops = &clk_rcg2_ops,
1538};
1539
1540static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
1541	.cmd_rcgr = 0x173a8,
1542	.mnd_width = 16,
1543	.hid_width = 5,
1544	.parent_map = gcc_parent_map_0,
1545	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1546	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
1547};
1548
1549static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
1550	.name = "gcc_qupv3_wrap0_s3_clk_src",
1551	.parent_data = gcc_parent_data_0,
1552	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1553	.flags = CLK_SET_RATE_PARENT,
1554	.ops = &clk_rcg2_ops,
1555};
1556
1557static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
1558	.cmd_rcgr = 0x174d8,
1559	.mnd_width = 16,
1560	.hid_width = 5,
1561	.parent_map = gcc_parent_map_0,
1562	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1563	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
1564};
1565
1566static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
1567	.name = "gcc_qupv3_wrap0_s4_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_ops,
1572};
1573
1574static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
1575	.cmd_rcgr = 0x17608,
1576	.mnd_width = 16,
1577	.hid_width = 5,
1578	.parent_map = gcc_parent_map_0,
1579	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1580	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
1581};
1582
1583static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
1584	.name = "gcc_qupv3_wrap0_s5_clk_src",
1585	.parent_data = gcc_parent_data_0,
1586	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1587	.flags = CLK_SET_RATE_PARENT,
1588	.ops = &clk_rcg2_ops,
1589};
1590
1591static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
1592	.cmd_rcgr = 0x17738,
1593	.mnd_width = 16,
1594	.hid_width = 5,
1595	.parent_map = gcc_parent_map_0,
1596	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1597	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
1598};
1599
1600static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s6_clk_src[] = {
1601	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
1602	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
1603	F(19200000, P_BI_TCXO, 1, 0, 0),
1604	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
1605	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
1606	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
1607	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
1608	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1609	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
1610	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
1611	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1612	{ }
1613};
1614
1615static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
1616	.name = "gcc_qupv3_wrap0_s6_clk_src",
1617	.parent_data = gcc_parent_data_0,
1618	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1619	.flags = CLK_SET_RATE_PARENT,
1620	.ops = &clk_rcg2_ops,
1621};
1622
1623static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
1624	.cmd_rcgr = 0x17868,
1625	.mnd_width = 16,
1626	.hid_width = 5,
1627	.parent_map = gcc_parent_map_0,
1628	.freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1629	.clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
1630};
1631
1632static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
1633	.name = "gcc_qupv3_wrap0_s7_clk_src",
1634	.parent_data = gcc_parent_data_0,
1635	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1636	.flags = CLK_SET_RATE_PARENT,
1637	.ops = &clk_rcg2_ops,
1638};
1639
1640static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
1641	.cmd_rcgr = 0x17998,
1642	.mnd_width = 16,
1643	.hid_width = 5,
1644	.parent_map = gcc_parent_map_0,
1645	.freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1646	.clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
1647};
1648
1649static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
1650	.name = "gcc_qupv3_wrap1_s0_clk_src",
1651	.parent_data = gcc_parent_data_0,
1652	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1653	.flags = CLK_SET_RATE_PARENT,
1654	.ops = &clk_rcg2_ops,
1655};
1656
1657static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
1658	.cmd_rcgr = 0x18148,
1659	.mnd_width = 16,
1660	.hid_width = 5,
1661	.parent_map = gcc_parent_map_0,
1662	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1663	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
1664};
1665
1666static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
1667	.name = "gcc_qupv3_wrap1_s1_clk_src",
1668	.parent_data = gcc_parent_data_0,
1669	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1670	.flags = CLK_SET_RATE_PARENT,
1671	.ops = &clk_rcg2_ops,
1672};
1673
1674static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
1675	.cmd_rcgr = 0x18278,
1676	.mnd_width = 16,
1677	.hid_width = 5,
1678	.parent_map = gcc_parent_map_0,
1679	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1680	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
1681};
1682
1683static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
1684	.name = "gcc_qupv3_wrap1_s2_clk_src",
1685	.parent_data = gcc_parent_data_0,
1686	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1687	.flags = CLK_SET_RATE_PARENT,
1688	.ops = &clk_rcg2_ops,
1689};
1690
1691static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
1692	.cmd_rcgr = 0x183a8,
1693	.mnd_width = 16,
1694	.hid_width = 5,
1695	.parent_map = gcc_parent_map_0,
1696	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1697	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
1698};
1699
1700static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
1701	.name = "gcc_qupv3_wrap1_s3_clk_src",
1702	.parent_data = gcc_parent_data_0,
1703	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1704	.flags = CLK_SET_RATE_PARENT,
1705	.ops = &clk_rcg2_ops,
1706};
1707
1708static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
1709	.cmd_rcgr = 0x184d8,
1710	.mnd_width = 16,
1711	.hid_width = 5,
1712	.parent_map = gcc_parent_map_0,
1713	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1714	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
1715};
1716
1717static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
1718	.name = "gcc_qupv3_wrap1_s4_clk_src",
1719	.parent_data = gcc_parent_data_0,
1720	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1721	.flags = CLK_SET_RATE_PARENT,
1722	.ops = &clk_rcg2_ops,
1723};
1724
1725static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
1726	.cmd_rcgr = 0x18608,
1727	.mnd_width = 16,
1728	.hid_width = 5,
1729	.parent_map = gcc_parent_map_0,
1730	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1731	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
1732};
1733
1734static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
1735	.name = "gcc_qupv3_wrap1_s5_clk_src",
1736	.parent_data = gcc_parent_data_0,
1737	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1738	.flags = CLK_SET_RATE_PARENT,
1739	.ops = &clk_rcg2_ops,
1740};
1741
1742static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
1743	.cmd_rcgr = 0x18738,
1744	.mnd_width = 16,
1745	.hid_width = 5,
1746	.parent_map = gcc_parent_map_0,
1747	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1748	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
1749};
1750
1751static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
1752	.name = "gcc_qupv3_wrap1_s6_clk_src",
1753	.parent_data = gcc_parent_data_0,
1754	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1755	.flags = CLK_SET_RATE_PARENT,
1756	.ops = &clk_rcg2_ops,
1757};
1758
1759static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
1760	.cmd_rcgr = 0x18868,
1761	.mnd_width = 16,
1762	.hid_width = 5,
1763	.parent_map = gcc_parent_map_0,
1764	.freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1765	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
1766};
1767
1768static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
1769	.name = "gcc_qupv3_wrap1_s7_clk_src",
1770	.parent_data = gcc_parent_data_0,
1771	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1772	.flags = CLK_SET_RATE_PARENT,
1773	.ops = &clk_rcg2_ops,
1774};
1775
1776static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
1777	.cmd_rcgr = 0x18998,
1778	.mnd_width = 16,
1779	.hid_width = 5,
1780	.parent_map = gcc_parent_map_0,
1781	.freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1782	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
1783};
1784
1785static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
1786	.name = "gcc_qupv3_wrap2_s0_clk_src",
1787	.parent_data = gcc_parent_data_0,
1788	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1789	.flags = CLK_SET_RATE_PARENT,
1790	.ops = &clk_rcg2_ops,
1791};
1792
1793static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
1794	.cmd_rcgr = 0x1e148,
1795	.mnd_width = 16,
1796	.hid_width = 5,
1797	.parent_map = gcc_parent_map_0,
1798	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1799	.clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
1800};
1801
1802static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
1803	.name = "gcc_qupv3_wrap2_s1_clk_src",
1804	.parent_data = gcc_parent_data_0,
1805	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1806	.flags = CLK_SET_RATE_PARENT,
1807	.ops = &clk_rcg2_ops,
1808};
1809
1810static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
1811	.cmd_rcgr = 0x1e278,
1812	.mnd_width = 16,
1813	.hid_width = 5,
1814	.parent_map = gcc_parent_map_0,
1815	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1816	.clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
1817};
1818
1819static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
1820	.name = "gcc_qupv3_wrap2_s2_clk_src",
1821	.parent_data = gcc_parent_data_0,
1822	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1823	.flags = CLK_SET_RATE_PARENT,
1824	.ops = &clk_rcg2_ops,
1825};
1826
1827static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
1828	.cmd_rcgr = 0x1e3a8,
1829	.mnd_width = 16,
1830	.hid_width = 5,
1831	.parent_map = gcc_parent_map_0,
1832	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1833	.clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init,
1834};
1835
1836static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
1837	.name = "gcc_qupv3_wrap2_s3_clk_src",
1838	.parent_data = gcc_parent_data_0,
1839	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1840	.flags = CLK_SET_RATE_PARENT,
1841	.ops = &clk_rcg2_ops,
1842};
1843
1844static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
1845	.cmd_rcgr = 0x1e4d8,
1846	.mnd_width = 16,
1847	.hid_width = 5,
1848	.parent_map = gcc_parent_map_0,
1849	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1850	.clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init,
1851};
1852
1853static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
1854	.name = "gcc_qupv3_wrap2_s4_clk_src",
1855	.parent_data = gcc_parent_data_0,
1856	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1857	.flags = CLK_SET_RATE_PARENT,
1858	.ops = &clk_rcg2_ops,
1859};
1860
1861static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
1862	.cmd_rcgr = 0x1e608,
1863	.mnd_width = 16,
1864	.hid_width = 5,
1865	.parent_map = gcc_parent_map_0,
1866	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1867	.clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
1868};
1869
1870static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
1871	.name = "gcc_qupv3_wrap2_s5_clk_src",
1872	.parent_data = gcc_parent_data_0,
1873	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1874	.flags = CLK_SET_RATE_PARENT,
1875	.ops = &clk_rcg2_ops,
1876};
1877
1878static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
1879	.cmd_rcgr = 0x1e738,
1880	.mnd_width = 16,
1881	.hid_width = 5,
1882	.parent_map = gcc_parent_map_0,
1883	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1884	.clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
1885};
1886
1887static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = {
1888	.name = "gcc_qupv3_wrap2_s6_clk_src",
1889	.parent_data = gcc_parent_data_0,
1890	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1891	.flags = CLK_SET_RATE_PARENT,
1892	.ops = &clk_rcg2_ops,
1893};
1894
1895static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
1896	.cmd_rcgr = 0x1e868,
1897	.mnd_width = 16,
1898	.hid_width = 5,
1899	.parent_map = gcc_parent_map_0,
1900	.freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1901	.clkr.hw.init = &gcc_qupv3_wrap2_s6_clk_src_init,
1902};
1903
1904static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
1905	.name = "gcc_qupv3_wrap2_s7_clk_src",
1906	.parent_data = gcc_parent_data_0,
1907	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1908	.flags = CLK_SET_RATE_PARENT,
1909	.ops = &clk_rcg2_ops,
1910};
1911
1912static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
1913	.cmd_rcgr = 0x1e998,
1914	.mnd_width = 16,
1915	.hid_width = 5,
1916	.parent_map = gcc_parent_map_0,
1917	.freq_tbl = ftbl_gcc_qupv3_wrap0_s6_clk_src,
1918	.clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init,
1919};
1920
1921static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
1922	F(400000, P_BI_TCXO, 12, 1, 4),
1923	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1924	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1925	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1926	F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
1927	{ }
1928};
1929
1930static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
1931	.cmd_rcgr = 0x1400c,
1932	.mnd_width = 8,
1933	.hid_width = 5,
1934	.parent_map = gcc_parent_map_15,
1935	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
1936	.clkr.hw.init = &(const struct clk_init_data) {
1937		.name = "gcc_sdcc2_apps_clk_src",
1938		.parent_data = gcc_parent_data_15,
1939		.num_parents = ARRAY_SIZE(gcc_parent_data_15),
1940		.ops = &clk_rcg2_shared_ops,
1941	},
1942};
1943
1944static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
1945	F(400000, P_BI_TCXO, 12, 1, 4),
1946	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1947	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1948	{ }
1949};
1950
1951static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
1952	.cmd_rcgr = 0x1600c,
1953	.mnd_width = 8,
1954	.hid_width = 5,
1955	.parent_map = gcc_parent_map_0,
1956	.freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
1957	.clkr.hw.init = &(const struct clk_init_data) {
1958		.name = "gcc_sdcc4_apps_clk_src",
1959		.parent_data = gcc_parent_data_0,
1960		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1961		.ops = &clk_rcg2_shared_ops,
1962	},
1963};
1964
1965static const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src[] = {
1966	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1967	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1968	F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1969	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1970	{ }
1971};
1972
1973static struct clk_rcg2 gcc_ufs_card_axi_clk_src = {
1974	.cmd_rcgr = 0x75024,
1975	.mnd_width = 8,
1976	.hid_width = 5,
1977	.parent_map = gcc_parent_map_0,
1978	.freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
1979	.clkr.hw.init = &(const struct clk_init_data) {
1980		.name = "gcc_ufs_card_axi_clk_src",
1981		.parent_data = gcc_parent_data_0,
1982		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1983		.ops = &clk_rcg2_shared_ops,
1984	},
1985};
1986
1987static const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src[] = {
1988	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1989	F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1990	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1991	{ }
1992};
1993
1994static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = {
1995	.cmd_rcgr = 0x7506c,
1996	.mnd_width = 0,
1997	.hid_width = 5,
1998	.parent_map = gcc_parent_map_0,
1999	.freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2000	.clkr.hw.init = &(const struct clk_init_data) {
2001		.name = "gcc_ufs_card_ice_core_clk_src",
2002		.parent_data = gcc_parent_data_0,
2003		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2004		.ops = &clk_rcg2_shared_ops,
2005	},
2006};
2007
2008static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = {
2009	.cmd_rcgr = 0x750a0,
2010	.mnd_width = 0,
2011	.hid_width = 5,
2012	.parent_map = gcc_parent_map_3,
2013	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2014	.clkr.hw.init = &(const struct clk_init_data) {
2015		.name = "gcc_ufs_card_phy_aux_clk_src",
2016		.parent_data = gcc_parent_data_3,
2017		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
2018		.ops = &clk_rcg2_shared_ops,
2019	},
2020};
2021
2022static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = {
2023	.cmd_rcgr = 0x75084,
2024	.mnd_width = 0,
2025	.hid_width = 5,
2026	.parent_map = gcc_parent_map_0,
2027	.freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2028	.clkr.hw.init = &(const struct clk_init_data) {
2029		.name = "gcc_ufs_card_unipro_core_clk_src",
2030		.parent_data = gcc_parent_data_0,
2031		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2032		.ops = &clk_rcg2_shared_ops,
2033	},
2034};
2035
2036static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
2037	.cmd_rcgr = 0x77024,
2038	.mnd_width = 8,
2039	.hid_width = 5,
2040	.parent_map = gcc_parent_map_0,
2041	.freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
2042	.clkr.hw.init = &(const struct clk_init_data) {
2043		.name = "gcc_ufs_phy_axi_clk_src",
2044		.parent_data = gcc_parent_data_0,
2045		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2046		.ops = &clk_rcg2_shared_ops,
2047	},
2048};
2049
2050static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
2051	.cmd_rcgr = 0x7706c,
2052	.mnd_width = 0,
2053	.hid_width = 5,
2054	.parent_map = gcc_parent_map_0,
2055	.freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2056	.clkr.hw.init = &(const struct clk_init_data) {
2057		.name = "gcc_ufs_phy_ice_core_clk_src",
2058		.parent_data = gcc_parent_data_0,
2059		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2060		.ops = &clk_rcg2_shared_ops,
2061	},
2062};
2063
2064static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
2065	.cmd_rcgr = 0x770a0,
2066	.mnd_width = 0,
2067	.hid_width = 5,
2068	.parent_map = gcc_parent_map_3,
2069	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
2070	.clkr.hw.init = &(const struct clk_init_data) {
2071		.name = "gcc_ufs_phy_phy_aux_clk_src",
2072		.parent_data = gcc_parent_data_3,
2073		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
2074		.ops = &clk_rcg2_shared_ops,
2075	},
2076};
2077
2078static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
2079	.cmd_rcgr = 0x77084,
2080	.mnd_width = 0,
2081	.hid_width = 5,
2082	.parent_map = gcc_parent_map_0,
2083	.freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
2084	.clkr.hw.init = &(const struct clk_init_data) {
2085		.name = "gcc_ufs_phy_unipro_core_clk_src",
2086		.parent_data = gcc_parent_data_0,
2087		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2088		.ops = &clk_rcg2_shared_ops,
2089	},
2090};
2091
2092static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = {
2093	F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
2094	F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
2095	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
2096	F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
2097	{ }
2098};
2099
2100static struct clk_rcg2 gcc_usb30_mp_master_clk_src = {
2101	.cmd_rcgr = 0xab020,
2102	.mnd_width = 8,
2103	.hid_width = 5,
2104	.parent_map = gcc_parent_map_0,
2105	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2106	.clkr.hw.init = &(const struct clk_init_data) {
2107		.name = "gcc_usb30_mp_master_clk_src",
2108		.parent_data = gcc_parent_data_0,
2109		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2110		.ops = &clk_rcg2_shared_ops,
2111	},
2112};
2113
2114static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = {
2115	.cmd_rcgr = 0xab038,
2116	.mnd_width = 0,
2117	.hid_width = 5,
2118	.parent_map = gcc_parent_map_0,
2119	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2120	.clkr.hw.init = &(const struct clk_init_data) {
2121		.name = "gcc_usb30_mp_mock_utmi_clk_src",
2122		.parent_data = gcc_parent_data_0,
2123		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2124		.ops = &clk_rcg2_shared_ops,
2125	},
2126};
2127
2128static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
2129	.cmd_rcgr = 0xf020,
2130	.mnd_width = 8,
2131	.hid_width = 5,
2132	.parent_map = gcc_parent_map_0,
2133	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2134	.clkr.hw.init = &(const struct clk_init_data) {
2135		.name = "gcc_usb30_prim_master_clk_src",
2136		.parent_data = gcc_parent_data_0,
2137		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2138		.ops = &clk_rcg2_shared_ops,
2139	},
2140};
2141
2142static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
2143	.cmd_rcgr = 0xf038,
2144	.mnd_width = 0,
2145	.hid_width = 5,
2146	.parent_map = gcc_parent_map_0,
2147	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2148	.clkr.hw.init = &(const struct clk_init_data) {
2149		.name = "gcc_usb30_prim_mock_utmi_clk_src",
2150		.parent_data = gcc_parent_data_0,
2151		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2152		.ops = &clk_rcg2_shared_ops,
2153	},
2154};
2155
2156static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
2157	.cmd_rcgr = 0x10020,
2158	.mnd_width = 8,
2159	.hid_width = 5,
2160	.parent_map = gcc_parent_map_0,
2161	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
2162	.clkr.hw.init = &(const struct clk_init_data) {
2163		.name = "gcc_usb30_sec_master_clk_src",
2164		.parent_data = gcc_parent_data_0,
2165		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2166		.ops = &clk_rcg2_shared_ops,
2167	},
2168};
2169
2170static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
2171	.cmd_rcgr = 0x10038,
2172	.mnd_width = 0,
2173	.hid_width = 5,
2174	.parent_map = gcc_parent_map_0,
2175	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2176	.clkr.hw.init = &(const struct clk_init_data) {
2177		.name = "gcc_usb30_sec_mock_utmi_clk_src",
2178		.parent_data = gcc_parent_data_0,
2179		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
2180		.ops = &clk_rcg2_shared_ops,
2181	},
2182};
2183
2184static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = {
2185	.cmd_rcgr = 0xab06c,
2186	.mnd_width = 0,
2187	.hid_width = 5,
2188	.parent_map = gcc_parent_map_1,
2189	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2190	.clkr.hw.init = &(const struct clk_init_data) {
2191		.name = "gcc_usb3_mp_phy_aux_clk_src",
2192		.parent_data = gcc_parent_data_1,
2193		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
2194		.ops = &clk_rcg2_shared_ops,
2195	},
2196};
2197
2198static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
2199	.cmd_rcgr = 0xf068,
2200	.mnd_width = 0,
2201	.hid_width = 5,
2202	.parent_map = gcc_parent_map_1,
2203	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2204	.clkr.hw.init = &(const struct clk_init_data) {
2205		.name = "gcc_usb3_prim_phy_aux_clk_src",
2206		.parent_data = gcc_parent_data_1,
2207		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
2208		.ops = &clk_rcg2_shared_ops,
2209	},
2210};
2211
2212static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
2213	.cmd_rcgr = 0x10068,
2214	.mnd_width = 0,
2215	.hid_width = 5,
2216	.parent_map = gcc_parent_map_1,
2217	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2218	.clkr.hw.init = &(const struct clk_init_data) {
2219		.name = "gcc_usb3_sec_phy_aux_clk_src",
2220		.parent_data = gcc_parent_data_1,
2221		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
2222		.ops = &clk_rcg2_shared_ops,
2223	},
2224};
2225
2226static const struct freq_tbl ftbl_gcc_usb4_1_master_clk_src[] = {
2227	F(175000000, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
2228	F(350000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
2229	{ }
2230};
2231
2232static struct clk_rcg2 gcc_usb4_1_master_clk_src = {
2233	.cmd_rcgr = 0xb8018,
2234	.mnd_width = 8,
2235	.hid_width = 5,
2236	.parent_map = gcc_parent_map_5,
2237	.freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2238	.clkr.hw.init = &(const struct clk_init_data) {
2239		.name = "gcc_usb4_1_master_clk_src",
2240		.parent_data = gcc_parent_data_5,
2241		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
2242		.ops = &clk_rcg2_shared_ops,
2243	},
2244};
2245
2246static const struct freq_tbl ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src[] = {
2247	F(19200000, P_BI_TCXO, 1, 0, 0),
2248	F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
2249	F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0),
2250	{ }
2251};
2252
2253static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = {
2254	.cmd_rcgr = 0xb80c4,
2255	.mnd_width = 0,
2256	.hid_width = 5,
2257	.parent_map = gcc_parent_map_6,
2258	.freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2259	.clkr.hw.init = &(const struct clk_init_data) {
2260		.name = "gcc_usb4_1_phy_pcie_pipe_clk_src",
2261		.parent_data = gcc_parent_data_6,
2262		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
2263		.ops = &clk_rcg2_shared_ops,
2264	},
2265};
2266
2267static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = {
2268	.cmd_rcgr = 0xb8070,
2269	.mnd_width = 0,
2270	.hid_width = 5,
2271	.parent_map = gcc_parent_map_1,
2272	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2273	.clkr.hw.init = &(const struct clk_init_data) {
2274		.name = "gcc_usb4_1_sb_if_clk_src",
2275		.parent_data = gcc_parent_data_1,
2276		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
2277		.ops = &clk_rcg2_shared_ops,
2278	},
2279};
2280
2281static const struct freq_tbl ftbl_gcc_usb4_1_tmu_clk_src[] = {
2282	F(19200000, P_BI_TCXO, 1, 0, 0),
2283	F(250000000, P_GCC_GPLL2_OUT_MAIN, 4, 0, 0),
2284	{ }
2285};
2286
2287static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = {
2288	.cmd_rcgr = 0xb8054,
2289	.mnd_width = 0,
2290	.hid_width = 5,
2291	.parent_map = gcc_parent_map_7,
2292	.freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2293	.clkr.hw.init = &(const struct clk_init_data) {
2294		.name = "gcc_usb4_1_tmu_clk_src",
2295		.parent_data = gcc_parent_data_7,
2296		.num_parents = ARRAY_SIZE(gcc_parent_data_7),
2297		.ops = &clk_rcg2_shared_ops,
2298	},
2299};
2300
2301static struct clk_rcg2 gcc_usb4_master_clk_src = {
2302	.cmd_rcgr = 0x2a018,
2303	.mnd_width = 8,
2304	.hid_width = 5,
2305	.parent_map = gcc_parent_map_5,
2306	.freq_tbl = ftbl_gcc_usb4_1_master_clk_src,
2307	.clkr.hw.init = &(const struct clk_init_data) {
2308		.name = "gcc_usb4_master_clk_src",
2309		.parent_data = gcc_parent_data_5,
2310		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
2311		.ops = &clk_rcg2_shared_ops,
2312	},
2313};
2314
2315static struct clk_rcg2 gcc_usb4_phy_pcie_pipe_clk_src = {
2316	.cmd_rcgr = 0x2a0c4,
2317	.mnd_width = 0,
2318	.hid_width = 5,
2319	.parent_map = gcc_parent_map_6,
2320	.freq_tbl = ftbl_gcc_usb4_1_phy_pcie_pipe_clk_src,
2321	.clkr.hw.init = &(const struct clk_init_data) {
2322		.name = "gcc_usb4_phy_pcie_pipe_clk_src",
2323		.parent_data = gcc_parent_data_6,
2324		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
2325		.ops = &clk_rcg2_shared_ops,
2326	},
2327};
2328
2329static struct clk_rcg2 gcc_usb4_sb_if_clk_src = {
2330	.cmd_rcgr = 0x2a070,
2331	.mnd_width = 0,
2332	.hid_width = 5,
2333	.parent_map = gcc_parent_map_1,
2334	.freq_tbl = ftbl_gcc_pcie_1_aux_clk_src,
2335	.clkr.hw.init = &(const struct clk_init_data) {
2336		.name = "gcc_usb4_sb_if_clk_src",
2337		.parent_data = gcc_parent_data_1,
2338		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
2339		.ops = &clk_rcg2_shared_ops,
2340	},
2341};
2342
2343static struct clk_rcg2 gcc_usb4_tmu_clk_src = {
2344	.cmd_rcgr = 0x2a054,
2345	.mnd_width = 0,
2346	.hid_width = 5,
2347	.parent_map = gcc_parent_map_7,
2348	.freq_tbl = ftbl_gcc_usb4_1_tmu_clk_src,
2349	.clkr.hw.init = &(const struct clk_init_data) {
2350		.name = "gcc_usb4_tmu_clk_src",
2351		.parent_data = gcc_parent_data_7,
2352		.num_parents = ARRAY_SIZE(gcc_parent_data_7),
2353		.ops = &clk_rcg2_shared_ops,
2354	},
2355};
2356
2357static struct clk_regmap_div gcc_pcie_2a_pipe_div_clk_src = {
2358	.reg = 0x9d060,
2359	.shift = 0,
2360	.width = 4,
2361	.clkr.hw.init = &(const struct clk_init_data) {
2362		.name = "gcc_pcie_2a_pipe_div_clk_src",
2363		.parent_hws = (const struct clk_hw*[]){
2364			&gcc_pcie_2a_pipe_clk_src.clkr.hw,
2365		},
2366		.num_parents = 1,
2367		.flags = CLK_SET_RATE_PARENT,
2368		.ops = &clk_regmap_div_ro_ops,
2369	},
2370};
2371
2372static struct clk_regmap_div gcc_pcie_2b_pipe_div_clk_src = {
2373	.reg = 0x9e060,
2374	.shift = 0,
2375	.width = 4,
2376	.clkr.hw.init = &(const struct clk_init_data) {
2377		.name = "gcc_pcie_2b_pipe_div_clk_src",
2378		.parent_hws = (const struct clk_hw*[]){
2379			&gcc_pcie_2b_pipe_clk_src.clkr.hw,
2380		},
2381		.num_parents = 1,
2382		.flags = CLK_SET_RATE_PARENT,
2383		.ops = &clk_regmap_div_ro_ops,
2384	},
2385};
2386
2387static struct clk_regmap_div gcc_pcie_3a_pipe_div_clk_src = {
2388	.reg = 0xa0060,
2389	.shift = 0,
2390	.width = 4,
2391	.clkr.hw.init = &(const struct clk_init_data) {
2392		.name = "gcc_pcie_3a_pipe_div_clk_src",
2393		.parent_hws = (const struct clk_hw*[]){
2394			&gcc_pcie_3a_pipe_clk_src.clkr.hw,
2395		},
2396		.num_parents = 1,
2397		.flags = CLK_SET_RATE_PARENT,
2398		.ops = &clk_regmap_div_ro_ops,
2399	},
2400};
2401
2402static struct clk_regmap_div gcc_pcie_3b_pipe_div_clk_src = {
2403	.reg = 0xa2060,
2404	.shift = 0,
2405	.width = 4,
2406	.clkr.hw.init = &(const struct clk_init_data) {
2407		.name = "gcc_pcie_3b_pipe_div_clk_src",
2408		.parent_hws = (const struct clk_hw*[]){
2409			&gcc_pcie_3b_pipe_clk_src.clkr.hw,
2410		},
2411		.num_parents = 1,
2412		.flags = CLK_SET_RATE_PARENT,
2413		.ops = &clk_regmap_div_ro_ops,
2414	},
2415};
2416
2417static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = {
2418	.reg = 0x6b060,
2419	.shift = 0,
2420	.width = 4,
2421	.clkr.hw.init = &(const struct clk_init_data) {
2422		.name = "gcc_pcie_4_pipe_div_clk_src",
2423		.parent_hws = (const struct clk_hw*[]){
2424			&gcc_pcie_4_pipe_clk_src.clkr.hw,
2425		},
2426		.num_parents = 1,
2427		.flags = CLK_SET_RATE_PARENT,
2428		.ops = &clk_regmap_div_ro_ops,
2429	},
2430};
2431
2432static struct clk_regmap_div gcc_qupv3_wrap0_s4_div_clk_src = {
2433	.reg = 0x17ac8,
2434	.shift = 0,
2435	.width = 4,
2436	.clkr.hw.init = &(const struct clk_init_data) {
2437		.name = "gcc_qupv3_wrap0_s4_div_clk_src",
2438		.parent_hws = (const struct clk_hw*[]){
2439			&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
2440		},
2441		.num_parents = 1,
2442		.flags = CLK_SET_RATE_PARENT,
2443		.ops = &clk_regmap_div_ro_ops,
2444	},
2445};
2446
2447static struct clk_regmap_div gcc_qupv3_wrap1_s4_div_clk_src = {
2448	.reg = 0x18ac8,
2449	.shift = 0,
2450	.width = 4,
2451	.clkr.hw.init = &(const struct clk_init_data) {
2452		.name = "gcc_qupv3_wrap1_s4_div_clk_src",
2453		.parent_hws = (const struct clk_hw*[]){
2454			&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
2455		},
2456		.num_parents = 1,
2457		.flags = CLK_SET_RATE_PARENT,
2458		.ops = &clk_regmap_div_ro_ops,
2459	},
2460};
2461
2462static struct clk_regmap_div gcc_qupv3_wrap2_s4_div_clk_src = {
2463	.reg = 0x1eac8,
2464	.shift = 0,
2465	.width = 4,
2466	.clkr.hw.init = &(const struct clk_init_data) {
2467		.name = "gcc_qupv3_wrap2_s4_div_clk_src",
2468		.parent_hws = (const struct clk_hw*[]){
2469			&gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
2470		},
2471		.num_parents = 1,
2472		.flags = CLK_SET_RATE_PARENT,
2473		.ops = &clk_regmap_div_ro_ops,
2474	},
2475};
2476
2477static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = {
2478	.reg = 0xab050,
2479	.shift = 0,
2480	.width = 4,
2481	.clkr.hw.init = &(const struct clk_init_data) {
2482		.name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
2483		.parent_hws = (const struct clk_hw*[]){
2484			&gcc_usb30_mp_mock_utmi_clk_src.clkr.hw,
2485		},
2486		.num_parents = 1,
2487		.flags = CLK_SET_RATE_PARENT,
2488		.ops = &clk_regmap_div_ro_ops,
2489	},
2490};
2491
2492static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
2493	.reg = 0xf050,
2494	.shift = 0,
2495	.width = 4,
2496	.clkr.hw.init = &(const struct clk_init_data) {
2497		.name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
2498		.parent_hws = (const struct clk_hw*[]){
2499			&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
2500		},
2501		.num_parents = 1,
2502		.flags = CLK_SET_RATE_PARENT,
2503		.ops = &clk_regmap_div_ro_ops,
2504	},
2505};
2506
2507static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
2508	.reg = 0x10050,
2509	.shift = 0,
2510	.width = 4,
2511	.clkr.hw.init = &(const struct clk_init_data) {
2512		.name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
2513		.parent_hws = (const struct clk_hw*[]){
2514			&gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
2515		},
2516		.num_parents = 1,
2517		.flags = CLK_SET_RATE_PARENT,
2518		.ops = &clk_regmap_div_ro_ops,
2519	},
2520};
2521
2522static struct clk_branch gcc_aggre_noc_pcie0_tunnel_axi_clk = {
2523	.halt_reg = 0xa41a8,
2524	.halt_check = BRANCH_HALT_SKIP,
2525	.hwcg_reg = 0xa41a8,
2526	.hwcg_bit = 1,
2527	.clkr = {
2528		.enable_reg = 0x52018,
2529		.enable_mask = BIT(14),
2530		.hw.init = &(const struct clk_init_data) {
2531			.name = "gcc_aggre_noc_pcie0_tunnel_axi_clk",
2532			.ops = &clk_branch2_ops,
2533		},
2534	},
2535};
2536
2537static struct clk_branch gcc_aggre_noc_pcie1_tunnel_axi_clk = {
2538	.halt_reg = 0x8d07c,
2539	.halt_check = BRANCH_HALT_SKIP,
2540	.hwcg_reg = 0x8d07c,
2541	.hwcg_bit = 1,
2542	.clkr = {
2543		.enable_reg = 0x52018,
2544		.enable_mask = BIT(21),
2545		.hw.init = &(const struct clk_init_data) {
2546			.name = "gcc_aggre_noc_pcie1_tunnel_axi_clk",
2547			.ops = &clk_branch2_ops,
2548		},
2549	},
2550};
2551
2552static struct clk_branch gcc_aggre_noc_pcie_4_axi_clk = {
2553	.halt_reg = 0x6b1b8,
2554	.halt_check = BRANCH_HALT_SKIP,
2555	.hwcg_reg = 0x6b1b8,
2556	.hwcg_bit = 1,
2557	.clkr = {
2558		.enable_reg = 0x52000,
2559		.enable_mask = BIT(12),
2560		.hw.init = &(const struct clk_init_data) {
2561			.name = "gcc_aggre_noc_pcie_4_axi_clk",
2562			.ops = &clk_branch2_ops,
2563		},
2564	},
2565};
2566
2567static struct clk_branch gcc_aggre_noc_pcie_south_sf_axi_clk = {
2568	.halt_reg = 0xbf13c,
2569	.halt_check = BRANCH_HALT_SKIP,
2570	.hwcg_reg = 0xbf13c,
2571	.hwcg_bit = 1,
2572	.clkr = {
2573		.enable_reg = 0x52018,
2574		.enable_mask = BIT(13),
2575		.hw.init = &(const struct clk_init_data) {
2576			.name = "gcc_aggre_noc_pcie_south_sf_axi_clk",
2577			.ops = &clk_branch2_ops,
2578		},
2579	},
2580};
2581
2582static struct clk_branch gcc_aggre_ufs_card_axi_clk = {
2583	.halt_reg = 0x750cc,
2584	.halt_check = BRANCH_HALT_VOTED,
2585	.hwcg_reg = 0x750cc,
2586	.hwcg_bit = 1,
2587	.clkr = {
2588		.enable_reg = 0x750cc,
2589		.enable_mask = BIT(0),
2590		.hw.init = &(const struct clk_init_data) {
2591			.name = "gcc_aggre_ufs_card_axi_clk",
2592			.parent_hws = (const struct clk_hw*[]){
2593				&gcc_ufs_card_axi_clk_src.clkr.hw,
2594			},
2595			.num_parents = 1,
2596			.flags = CLK_SET_RATE_PARENT,
2597			.ops = &clk_branch2_ops,
2598		},
2599	},
2600};
2601
2602static struct clk_branch gcc_aggre_ufs_card_axi_hw_ctl_clk = {
2603	.halt_reg = 0x750cc,
2604	.halt_check = BRANCH_HALT_VOTED,
2605	.hwcg_reg = 0x750cc,
2606	.hwcg_bit = 1,
2607	.clkr = {
2608		.enable_reg = 0x750cc,
2609		.enable_mask = BIT(1),
2610		.hw.init = &(const struct clk_init_data) {
2611			.name = "gcc_aggre_ufs_card_axi_hw_ctl_clk",
2612			.parent_hws = (const struct clk_hw*[]){
2613				&gcc_ufs_card_axi_clk_src.clkr.hw,
2614			},
2615			.num_parents = 1,
2616			.flags = CLK_SET_RATE_PARENT,
2617			.ops = &clk_branch2_ops,
2618		},
2619	},
2620};
2621
2622static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
2623	.halt_reg = 0x770cc,
2624	.halt_check = BRANCH_HALT_VOTED,
2625	.hwcg_reg = 0x770cc,
2626	.hwcg_bit = 1,
2627	.clkr = {
2628		.enable_reg = 0x770cc,
2629		.enable_mask = BIT(0),
2630		.hw.init = &(const struct clk_init_data) {
2631			.name = "gcc_aggre_ufs_phy_axi_clk",
2632			.parent_hws = (const struct clk_hw*[]){
2633				&gcc_ufs_phy_axi_clk_src.clkr.hw,
2634			},
2635			.num_parents = 1,
2636			.flags = CLK_SET_RATE_PARENT,
2637			.ops = &clk_branch2_ops,
2638		},
2639	},
2640};
2641
2642static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = {
2643	.halt_reg = 0x770cc,
2644	.halt_check = BRANCH_HALT_VOTED,
2645	.hwcg_reg = 0x770cc,
2646	.hwcg_bit = 1,
2647	.clkr = {
2648		.enable_reg = 0x770cc,
2649		.enable_mask = BIT(1),
2650		.hw.init = &(const struct clk_init_data) {
2651			.name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
2652			.parent_hws = (const struct clk_hw*[]){
2653				&gcc_ufs_phy_axi_clk_src.clkr.hw,
2654			},
2655			.num_parents = 1,
2656			.flags = CLK_SET_RATE_PARENT,
2657			.ops = &clk_branch2_ops,
2658		},
2659	},
2660};
2661
2662static struct clk_branch gcc_aggre_usb3_mp_axi_clk = {
2663	.halt_reg = 0xab084,
2664	.halt_check = BRANCH_HALT_VOTED,
2665	.hwcg_reg = 0xab084,
2666	.hwcg_bit = 1,
2667	.clkr = {
2668		.enable_reg = 0xab084,
2669		.enable_mask = BIT(0),
2670		.hw.init = &(const struct clk_init_data) {
2671			.name = "gcc_aggre_usb3_mp_axi_clk",
2672			.parent_hws = (const struct clk_hw*[]){
2673				&gcc_usb30_mp_master_clk_src.clkr.hw,
2674			},
2675			.num_parents = 1,
2676			.flags = CLK_SET_RATE_PARENT,
2677			.ops = &clk_branch2_ops,
2678		},
2679	},
2680};
2681
2682static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
2683	.halt_reg = 0xf080,
2684	.halt_check = BRANCH_HALT_VOTED,
2685	.hwcg_reg = 0xf080,
2686	.hwcg_bit = 1,
2687	.clkr = {
2688		.enable_reg = 0xf080,
2689		.enable_mask = BIT(0),
2690		.hw.init = &(const struct clk_init_data) {
2691			.name = "gcc_aggre_usb3_prim_axi_clk",
2692			.parent_hws = (const struct clk_hw*[]){
2693				&gcc_usb30_prim_master_clk_src.clkr.hw,
2694			},
2695			.num_parents = 1,
2696			.flags = CLK_SET_RATE_PARENT,
2697			.ops = &clk_branch2_ops,
2698		},
2699	},
2700};
2701
2702static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
2703	.halt_reg = 0x10080,
2704	.halt_check = BRANCH_HALT_VOTED,
2705	.hwcg_reg = 0x10080,
2706	.hwcg_bit = 1,
2707	.clkr = {
2708		.enable_reg = 0x10080,
2709		.enable_mask = BIT(0),
2710		.hw.init = &(const struct clk_init_data) {
2711			.name = "gcc_aggre_usb3_sec_axi_clk",
2712			.parent_hws = (const struct clk_hw*[]){
2713				&gcc_usb30_sec_master_clk_src.clkr.hw,
2714			},
2715			.num_parents = 1,
2716			.flags = CLK_SET_RATE_PARENT,
2717			.ops = &clk_branch2_ops,
2718		},
2719	},
2720};
2721
2722static struct clk_branch gcc_aggre_usb4_1_axi_clk = {
2723	.halt_reg = 0xb80e4,
2724	.halt_check = BRANCH_HALT_VOTED,
2725	.hwcg_reg = 0xb80e4,
2726	.hwcg_bit = 1,
2727	.clkr = {
2728		.enable_reg = 0xb80e4,
2729		.enable_mask = BIT(0),
2730		.hw.init = &(const struct clk_init_data) {
2731			.name = "gcc_aggre_usb4_1_axi_clk",
2732			.parent_hws = (const struct clk_hw*[]){
2733				&gcc_usb4_1_master_clk_src.clkr.hw,
2734			},
2735			.num_parents = 1,
2736			.flags = CLK_SET_RATE_PARENT,
2737			.ops = &clk_branch2_ops,
2738		},
2739	},
2740};
2741
2742static struct clk_branch gcc_aggre_usb4_axi_clk = {
2743	.halt_reg = 0x2a0e4,
2744	.halt_check = BRANCH_HALT_VOTED,
2745	.hwcg_reg = 0x2a0e4,
2746	.hwcg_bit = 1,
2747	.clkr = {
2748		.enable_reg = 0x2a0e4,
2749		.enable_mask = BIT(0),
2750		.hw.init = &(const struct clk_init_data) {
2751			.name = "gcc_aggre_usb4_axi_clk",
2752			.parent_hws = (const struct clk_hw*[]){
2753				&gcc_usb4_master_clk_src.clkr.hw,
2754			},
2755			.num_parents = 1,
2756			.flags = CLK_SET_RATE_PARENT,
2757			.ops = &clk_branch2_ops,
2758		},
2759	},
2760};
2761
2762static struct clk_branch gcc_aggre_usb_noc_axi_clk = {
2763	.halt_reg = 0x5d024,
2764	.halt_check = BRANCH_HALT_VOTED,
2765	.hwcg_reg = 0x5d024,
2766	.hwcg_bit = 1,
2767	.clkr = {
2768		.enable_reg = 0x5d024,
2769		.enable_mask = BIT(0),
2770		.hw.init = &(const struct clk_init_data) {
2771			.name = "gcc_aggre_usb_noc_axi_clk",
2772			.ops = &clk_branch2_ops,
2773		},
2774	},
2775};
2776
2777static struct clk_branch gcc_aggre_usb_noc_north_axi_clk = {
2778	.halt_reg = 0x5d020,
2779	.halt_check = BRANCH_HALT_VOTED,
2780	.hwcg_reg = 0x5d020,
2781	.hwcg_bit = 1,
2782	.clkr = {
2783		.enable_reg = 0x5d020,
2784		.enable_mask = BIT(0),
2785		.hw.init = &(const struct clk_init_data) {
2786			.name = "gcc_aggre_usb_noc_north_axi_clk",
2787			.ops = &clk_branch2_ops,
2788		},
2789	},
2790};
2791
2792static struct clk_branch gcc_aggre_usb_noc_south_axi_clk = {
2793	.halt_reg = 0x5d01c,
2794	.halt_check = BRANCH_HALT_VOTED,
2795	.hwcg_reg = 0x5d01c,
2796	.hwcg_bit = 1,
2797	.clkr = {
2798		.enable_reg = 0x5d01c,
2799		.enable_mask = BIT(0),
2800		.hw.init = &(const struct clk_init_data) {
2801			.name = "gcc_aggre_usb_noc_south_axi_clk",
2802			.ops = &clk_branch2_ops,
2803		},
2804	},
2805};
2806
2807static struct clk_branch gcc_ahb2phy0_clk = {
2808	.halt_reg = 0x6a004,
2809	.halt_check = BRANCH_HALT_VOTED,
2810	.hwcg_reg = 0x6a004,
2811	.hwcg_bit = 1,
2812	.clkr = {
2813		.enable_reg = 0x6a004,
2814		.enable_mask = BIT(0),
2815		.hw.init = &(const struct clk_init_data) {
2816			.name = "gcc_ahb2phy0_clk",
2817			.ops = &clk_branch2_ops,
2818		},
2819	},
2820};
2821
2822static struct clk_branch gcc_ahb2phy2_clk = {
2823	.halt_reg = 0x6a008,
2824	.halt_check = BRANCH_HALT_VOTED,
2825	.hwcg_reg = 0x6a008,
2826	.hwcg_bit = 1,
2827	.clkr = {
2828		.enable_reg = 0x6a008,
2829		.enable_mask = BIT(0),
2830		.hw.init = &(const struct clk_init_data) {
2831			.name = "gcc_ahb2phy2_clk",
2832			.ops = &clk_branch2_ops,
2833		},
2834	},
2835};
2836
2837static struct clk_branch gcc_boot_rom_ahb_clk = {
2838	.halt_reg = 0x38004,
2839	.halt_check = BRANCH_HALT_VOTED,
2840	.hwcg_reg = 0x38004,
2841	.hwcg_bit = 1,
2842	.clkr = {
2843		.enable_reg = 0x52000,
2844		.enable_mask = BIT(10),
2845		.hw.init = &(const struct clk_init_data) {
2846			.name = "gcc_boot_rom_ahb_clk",
2847			.ops = &clk_branch2_ops,
2848		},
2849	},
2850};
2851
2852static struct clk_branch gcc_camera_hf_axi_clk = {
2853	.halt_reg = 0x26010,
2854	.halt_check = BRANCH_HALT_SKIP,
2855	.hwcg_reg = 0x26010,
2856	.hwcg_bit = 1,
2857	.clkr = {
2858		.enable_reg = 0x26010,
2859		.enable_mask = BIT(0),
2860		.hw.init = &(const struct clk_init_data) {
2861			.name = "gcc_camera_hf_axi_clk",
2862			.ops = &clk_branch2_ops,
2863		},
2864	},
2865};
2866
2867static struct clk_branch gcc_camera_sf_axi_clk = {
2868	.halt_reg = 0x26014,
2869	.halt_check = BRANCH_HALT_SKIP,
2870	.hwcg_reg = 0x26014,
2871	.hwcg_bit = 1,
2872	.clkr = {
2873		.enable_reg = 0x26014,
2874		.enable_mask = BIT(0),
2875		.hw.init = &(const struct clk_init_data) {
2876			.name = "gcc_camera_sf_axi_clk",
2877			.ops = &clk_branch2_ops,
2878		},
2879	},
2880};
2881
2882static struct clk_branch gcc_camera_throttle_nrt_axi_clk = {
2883	.halt_reg = 0x2601c,
2884	.halt_check = BRANCH_HALT_SKIP,
2885	.hwcg_reg = 0x2601c,
2886	.hwcg_bit = 1,
2887	.clkr = {
2888		.enable_reg = 0x2601c,
2889		.enable_mask = BIT(0),
2890		.hw.init = &(const struct clk_init_data) {
2891			.name = "gcc_camera_throttle_nrt_axi_clk",
2892			.ops = &clk_branch2_ops,
2893		},
2894	},
2895};
2896
2897static struct clk_branch gcc_camera_throttle_rt_axi_clk = {
2898	.halt_reg = 0x26018,
2899	.halt_check = BRANCH_HALT_SKIP,
2900	.hwcg_reg = 0x26018,
2901	.hwcg_bit = 1,
2902	.clkr = {
2903		.enable_reg = 0x26018,
2904		.enable_mask = BIT(0),
2905		.hw.init = &(const struct clk_init_data) {
2906			.name = "gcc_camera_throttle_rt_axi_clk",
2907			.ops = &clk_branch2_ops,
2908		},
2909	},
2910};
2911
2912static struct clk_branch gcc_camera_throttle_xo_clk = {
2913	.halt_reg = 0x26024,
2914	.halt_check = BRANCH_HALT,
2915	.clkr = {
2916		.enable_reg = 0x26024,
2917		.enable_mask = BIT(0),
2918		.hw.init = &(const struct clk_init_data) {
2919			.name = "gcc_camera_throttle_xo_clk",
2920			.ops = &clk_branch2_ops,
2921		},
2922	},
2923};
2924
2925static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = {
2926	.halt_reg = 0xab088,
2927	.halt_check = BRANCH_HALT_VOTED,
2928	.hwcg_reg = 0xab088,
2929	.hwcg_bit = 1,
2930	.clkr = {
2931		.enable_reg = 0xab088,
2932		.enable_mask = BIT(0),
2933		.hw.init = &(const struct clk_init_data) {
2934			.name = "gcc_cfg_noc_usb3_mp_axi_clk",
2935			.parent_hws = (const struct clk_hw*[]){
2936				&gcc_usb30_mp_master_clk_src.clkr.hw,
2937			},
2938			.num_parents = 1,
2939			.flags = CLK_SET_RATE_PARENT,
2940			.ops = &clk_branch2_ops,
2941		},
2942	},
2943};
2944
2945static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
2946	.halt_reg = 0xf084,
2947	.halt_check = BRANCH_HALT_VOTED,
2948	.hwcg_reg = 0xf084,
2949	.hwcg_bit = 1,
2950	.clkr = {
2951		.enable_reg = 0xf084,
2952		.enable_mask = BIT(0),
2953		.hw.init = &(const struct clk_init_data) {
2954			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
2955			.parent_hws = (const struct clk_hw*[]){
2956				&gcc_usb30_prim_master_clk_src.clkr.hw,
2957			},
2958			.num_parents = 1,
2959			.flags = CLK_SET_RATE_PARENT,
2960			.ops = &clk_branch2_ops,
2961		},
2962	},
2963};
2964
2965static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
2966	.halt_reg = 0x10084,
2967	.halt_check = BRANCH_HALT_VOTED,
2968	.hwcg_reg = 0x10084,
2969	.hwcg_bit = 1,
2970	.clkr = {
2971		.enable_reg = 0x10084,
2972		.enable_mask = BIT(0),
2973		.hw.init = &(const struct clk_init_data) {
2974			.name = "gcc_cfg_noc_usb3_sec_axi_clk",
2975			.parent_hws = (const struct clk_hw*[]){
2976				&gcc_usb30_sec_master_clk_src.clkr.hw,
2977			},
2978			.num_parents = 1,
2979			.flags = CLK_SET_RATE_PARENT,
2980			.ops = &clk_branch2_ops,
2981		},
2982	},
2983};
2984
2985static struct clk_branch gcc_cnoc_pcie0_tunnel_clk = {
2986	.halt_reg = 0xa4074,
2987	.halt_check = BRANCH_HALT_VOTED,
2988	.clkr = {
2989		.enable_reg = 0x52020,
2990		.enable_mask = BIT(8),
2991		.hw.init = &(const struct clk_init_data) {
2992			.name = "gcc_cnoc_pcie0_tunnel_clk",
2993			.ops = &clk_branch2_ops,
2994		},
2995	},
2996};
2997
2998static struct clk_branch gcc_cnoc_pcie1_tunnel_clk = {
2999	.halt_reg = 0x8d074,
3000	.halt_check = BRANCH_HALT_VOTED,
3001	.clkr = {
3002		.enable_reg = 0x52020,
3003		.enable_mask = BIT(9),
3004		.hw.init = &(const struct clk_init_data) {
3005			.name = "gcc_cnoc_pcie1_tunnel_clk",
3006			.ops = &clk_branch2_ops,
3007		},
3008	},
3009};
3010
3011static struct clk_branch gcc_cnoc_pcie4_qx_clk = {
3012	.halt_reg = 0x6b084,
3013	.halt_check = BRANCH_HALT_VOTED,
3014	.hwcg_reg = 0x6b084,
3015	.hwcg_bit = 1,
3016	.clkr = {
3017		.enable_reg = 0x52020,
3018		.enable_mask = BIT(10),
3019		.hw.init = &(const struct clk_init_data) {
3020			.name = "gcc_cnoc_pcie4_qx_clk",
3021			.ops = &clk_branch2_ops,
3022		},
3023	},
3024};
3025
3026static struct clk_branch gcc_ddrss_gpu_axi_clk = {
3027	.halt_reg = 0x7115c,
3028	.halt_check = BRANCH_HALT_SKIP,
3029	.hwcg_reg = 0x7115c,
3030	.hwcg_bit = 1,
3031	.clkr = {
3032		.enable_reg = 0x7115c,
3033		.enable_mask = BIT(0),
3034		.hw.init = &(const struct clk_init_data) {
3035			.name = "gcc_ddrss_gpu_axi_clk",
3036			.ops = &clk_branch2_aon_ops,
3037		},
3038	},
3039};
3040
3041static struct clk_branch gcc_ddrss_pcie_sf_tbu_clk = {
3042	.halt_reg = 0xa602c,
3043	.halt_check = BRANCH_HALT_SKIP,
3044	.hwcg_reg = 0xa602c,
3045	.hwcg_bit = 1,
3046	.clkr = {
3047		.enable_reg = 0x52000,
3048		.enable_mask = BIT(19),
3049		.hw.init = &(const struct clk_init_data) {
3050			.name = "gcc_ddrss_pcie_sf_tbu_clk",
3051			.ops = &clk_branch2_ops,
3052		},
3053	},
3054};
3055
3056static struct clk_branch gcc_disp1_hf_axi_clk = {
3057	.halt_reg = 0xbb010,
3058	.halt_check = BRANCH_HALT_SKIP,
3059	.hwcg_reg = 0xbb010,
3060	.hwcg_bit = 1,
3061	.clkr = {
3062		.enable_reg = 0xbb010,
3063		.enable_mask = BIT(0),
3064		.hw.init = &(const struct clk_init_data) {
3065			.name = "gcc_disp1_hf_axi_clk",
3066			.ops = &clk_branch2_ops,
3067		},
3068	},
3069};
3070
3071static struct clk_branch gcc_disp1_sf_axi_clk = {
3072	.halt_reg = 0xbb018,
3073	.halt_check = BRANCH_HALT_SKIP,
3074	.hwcg_reg = 0xbb018,
3075	.hwcg_bit = 1,
3076	.clkr = {
3077		.enable_reg = 0xbb018,
3078		.enable_mask = BIT(0),
3079		.hw.init = &(const struct clk_init_data) {
3080			.name = "gcc_disp1_sf_axi_clk",
3081			.ops = &clk_branch2_ops,
3082		},
3083	},
3084};
3085
3086static struct clk_branch gcc_disp1_throttle_nrt_axi_clk = {
3087	.halt_reg = 0xbb024,
3088	.halt_check = BRANCH_HALT_SKIP,
3089	.hwcg_reg = 0xbb024,
3090	.hwcg_bit = 1,
3091	.clkr = {
3092		.enable_reg = 0xbb024,
3093		.enable_mask = BIT(0),
3094		.hw.init = &(const struct clk_init_data) {
3095			.name = "gcc_disp1_throttle_nrt_axi_clk",
3096			.ops = &clk_branch2_ops,
3097		},
3098	},
3099};
3100
3101static struct clk_branch gcc_disp1_throttle_rt_axi_clk = {
3102	.halt_reg = 0xbb020,
3103	.halt_check = BRANCH_HALT_SKIP,
3104	.hwcg_reg = 0xbb020,
3105	.hwcg_bit = 1,
3106	.clkr = {
3107		.enable_reg = 0xbb020,
3108		.enable_mask = BIT(0),
3109		.hw.init = &(const struct clk_init_data) {
3110			.name = "gcc_disp1_throttle_rt_axi_clk",
3111			.ops = &clk_branch2_ops,
3112		},
3113	},
3114};
3115
3116static struct clk_branch gcc_disp_hf_axi_clk = {
3117	.halt_reg = 0x27010,
3118	.halt_check = BRANCH_HALT_SKIP,
3119	.hwcg_reg = 0x27010,
3120	.hwcg_bit = 1,
3121	.clkr = {
3122		.enable_reg = 0x27010,
3123		.enable_mask = BIT(0),
3124		.hw.init = &(const struct clk_init_data) {
3125			.name = "gcc_disp_hf_axi_clk",
3126			.ops = &clk_branch2_ops,
3127		},
3128	},
3129};
3130
3131static struct clk_branch gcc_disp_sf_axi_clk = {
3132	.halt_reg = 0x27018,
3133	.halt_check = BRANCH_HALT_SKIP,
3134	.hwcg_reg = 0x27018,
3135	.hwcg_bit = 1,
3136	.clkr = {
3137		.enable_reg = 0x27018,
3138		.enable_mask = BIT(0),
3139		.hw.init = &(const struct clk_init_data) {
3140			.name = "gcc_disp_sf_axi_clk",
3141			.ops = &clk_branch2_ops,
3142		},
3143	},
3144};
3145
3146static struct clk_branch gcc_disp_throttle_nrt_axi_clk = {
3147	.halt_reg = 0x27024,
3148	.halt_check = BRANCH_HALT_SKIP,
3149	.hwcg_reg = 0x27024,
3150	.hwcg_bit = 1,
3151	.clkr = {
3152		.enable_reg = 0x27024,
3153		.enable_mask = BIT(0),
3154		.hw.init = &(const struct clk_init_data) {
3155			.name = "gcc_disp_throttle_nrt_axi_clk",
3156			.ops = &clk_branch2_ops,
3157		},
3158	},
3159};
3160
3161static struct clk_branch gcc_disp_throttle_rt_axi_clk = {
3162	.halt_reg = 0x27020,
3163	.halt_check = BRANCH_HALT_SKIP,
3164	.hwcg_reg = 0x27020,
3165	.hwcg_bit = 1,
3166	.clkr = {
3167		.enable_reg = 0x27020,
3168		.enable_mask = BIT(0),
3169		.hw.init = &(const struct clk_init_data) {
3170			.name = "gcc_disp_throttle_rt_axi_clk",
3171			.ops = &clk_branch2_ops,
3172		},
3173	},
3174};
3175
3176static struct clk_branch gcc_emac0_axi_clk = {
3177	.halt_reg = 0xaa010,
3178	.halt_check = BRANCH_HALT_VOTED,
3179	.hwcg_reg = 0xaa010,
3180	.hwcg_bit = 1,
3181	.clkr = {
3182		.enable_reg = 0xaa010,
3183		.enable_mask = BIT(0),
3184		.hw.init = &(const struct clk_init_data) {
3185			.name = "gcc_emac0_axi_clk",
3186			.ops = &clk_branch2_ops,
3187		},
3188	},
3189};
3190
3191static struct clk_branch gcc_emac0_ptp_clk = {
3192	.halt_reg = 0xaa01c,
3193	.halt_check = BRANCH_HALT,
3194	.clkr = {
3195		.enable_reg = 0xaa01c,
3196		.enable_mask = BIT(0),
3197		.hw.init = &(const struct clk_init_data) {
3198			.name = "gcc_emac0_ptp_clk",
3199			.parent_hws = (const struct clk_hw*[]){
3200				&gcc_emac0_ptp_clk_src.clkr.hw,
3201			},
3202			.num_parents = 1,
3203			.flags = CLK_SET_RATE_PARENT,
3204			.ops = &clk_branch2_ops,
3205		},
3206	},
3207};
3208
3209static struct clk_branch gcc_emac0_rgmii_clk = {
3210	.halt_reg = 0xaa038,
3211	.halt_check = BRANCH_HALT,
3212	.clkr = {
3213		.enable_reg = 0xaa038,
3214		.enable_mask = BIT(0),
3215		.hw.init = &(const struct clk_init_data) {
3216			.name = "gcc_emac0_rgmii_clk",
3217			.parent_hws = (const struct clk_hw*[]){
3218				&gcc_emac0_rgmii_clk_src.clkr.hw,
3219			},
3220			.num_parents = 1,
3221			.flags = CLK_SET_RATE_PARENT,
3222			.ops = &clk_branch2_ops,
3223		},
3224	},
3225};
3226
3227static struct clk_branch gcc_emac0_slv_ahb_clk = {
3228	.halt_reg = 0xaa018,
3229	.halt_check = BRANCH_HALT_VOTED,
3230	.hwcg_reg = 0xaa018,
3231	.hwcg_bit = 1,
3232	.clkr = {
3233		.enable_reg = 0xaa018,
3234		.enable_mask = BIT(0),
3235		.hw.init = &(const struct clk_init_data) {
3236			.name = "gcc_emac0_slv_ahb_clk",
3237			.ops = &clk_branch2_ops,
3238		},
3239	},
3240};
3241
3242static struct clk_branch gcc_emac1_axi_clk = {
3243	.halt_reg = 0xba010,
3244	.halt_check = BRANCH_HALT_VOTED,
3245	.hwcg_reg = 0xba010,
3246	.hwcg_bit = 1,
3247	.clkr = {
3248		.enable_reg = 0xba010,
3249		.enable_mask = BIT(0),
3250		.hw.init = &(const struct clk_init_data) {
3251			.name = "gcc_emac1_axi_clk",
3252			.ops = &clk_branch2_ops,
3253		},
3254	},
3255};
3256
3257static struct clk_branch gcc_emac1_ptp_clk = {
3258	.halt_reg = 0xba01c,
3259	.halt_check = BRANCH_HALT,
3260	.clkr = {
3261		.enable_reg = 0xba01c,
3262		.enable_mask = BIT(0),
3263		.hw.init = &(const struct clk_init_data) {
3264			.name = "gcc_emac1_ptp_clk",
3265			.parent_hws = (const struct clk_hw*[]){
3266				&gcc_emac1_ptp_clk_src.clkr.hw,
3267			},
3268			.num_parents = 1,
3269			.flags = CLK_SET_RATE_PARENT,
3270			.ops = &clk_branch2_ops,
3271		},
3272	},
3273};
3274
3275static struct clk_branch gcc_emac1_rgmii_clk = {
3276	.halt_reg = 0xba038,
3277	.halt_check = BRANCH_HALT,
3278	.clkr = {
3279		.enable_reg = 0xba038,
3280		.enable_mask = BIT(0),
3281		.hw.init = &(const struct clk_init_data) {
3282			.name = "gcc_emac1_rgmii_clk",
3283			.parent_hws = (const struct clk_hw*[]){
3284				&gcc_emac1_rgmii_clk_src.clkr.hw,
3285			},
3286			.num_parents = 1,
3287			.flags = CLK_SET_RATE_PARENT,
3288			.ops = &clk_branch2_ops,
3289		},
3290	},
3291};
3292
3293static struct clk_branch gcc_emac1_slv_ahb_clk = {
3294	.halt_reg = 0xba018,
3295	.halt_check = BRANCH_HALT_VOTED,
3296	.hwcg_reg = 0xba018,
3297	.hwcg_bit = 1,
3298	.clkr = {
3299		.enable_reg = 0xba018,
3300		.enable_mask = BIT(0),
3301		.hw.init = &(const struct clk_init_data) {
3302			.name = "gcc_emac1_slv_ahb_clk",
3303			.ops = &clk_branch2_ops,
3304		},
3305	},
3306};
3307
3308static struct clk_branch gcc_gp1_clk = {
3309	.halt_reg = 0x64000,
3310	.halt_check = BRANCH_HALT,
3311	.clkr = {
3312		.enable_reg = 0x64000,
3313		.enable_mask = BIT(0),
3314		.hw.init = &(const struct clk_init_data) {
3315			.name = "gcc_gp1_clk",
3316			.parent_hws = (const struct clk_hw*[]){
3317				&gcc_gp1_clk_src.clkr.hw,
3318			},
3319			.num_parents = 1,
3320			.flags = CLK_SET_RATE_PARENT,
3321			.ops = &clk_branch2_ops,
3322		},
3323	},
3324};
3325
3326static struct clk_branch gcc_gp2_clk = {
3327	.halt_reg = 0x65000,
3328	.halt_check = BRANCH_HALT,
3329	.clkr = {
3330		.enable_reg = 0x65000,
3331		.enable_mask = BIT(0),
3332		.hw.init = &(const struct clk_init_data) {
3333			.name = "gcc_gp2_clk",
3334			.parent_hws = (const struct clk_hw*[]){
3335				&gcc_gp2_clk_src.clkr.hw,
3336			},
3337			.num_parents = 1,
3338			.flags = CLK_SET_RATE_PARENT,
3339			.ops = &clk_branch2_ops,
3340		},
3341	},
3342};
3343
3344static struct clk_branch gcc_gp3_clk = {
3345	.halt_reg = 0x66000,
3346	.halt_check = BRANCH_HALT,
3347	.clkr = {
3348		.enable_reg = 0x66000,
3349		.enable_mask = BIT(0),
3350		.hw.init = &(const struct clk_init_data) {
3351			.name = "gcc_gp3_clk",
3352			.parent_hws = (const struct clk_hw*[]){
3353				&gcc_gp3_clk_src.clkr.hw,
3354			},
3355			.num_parents = 1,
3356			.flags = CLK_SET_RATE_PARENT,
3357			.ops = &clk_branch2_ops,
3358		},
3359	},
3360};
3361
3362static struct clk_branch gcc_gp4_clk = {
3363	.halt_reg = 0xc2000,
3364	.halt_check = BRANCH_HALT,
3365	.clkr = {
3366		.enable_reg = 0xc2000,
3367		.enable_mask = BIT(0),
3368		.hw.init = &(const struct clk_init_data) {
3369			.name = "gcc_gp4_clk",
3370			.parent_hws = (const struct clk_hw*[]){
3371				&gcc_gp4_clk_src.clkr.hw,
3372			},
3373			.num_parents = 1,
3374			.flags = CLK_SET_RATE_PARENT,
3375			.ops = &clk_branch2_ops,
3376		},
3377	},
3378};
3379
3380static struct clk_branch gcc_gp5_clk = {
3381	.halt_reg = 0xc3000,
3382	.halt_check = BRANCH_HALT,
3383	.clkr = {
3384		.enable_reg = 0xc3000,
3385		.enable_mask = BIT(0),
3386		.hw.init = &(const struct clk_init_data) {
3387			.name = "gcc_gp5_clk",
3388			.parent_hws = (const struct clk_hw*[]){
3389				&gcc_gp5_clk_src.clkr.hw,
3390			},
3391			.num_parents = 1,
3392			.flags = CLK_SET_RATE_PARENT,
3393			.ops = &clk_branch2_ops,
3394		},
3395	},
3396};
3397
3398static struct clk_branch gcc_gpu_gpll0_clk_src = {
3399	.halt_check = BRANCH_HALT_DELAY,
3400	.clkr = {
3401		.enable_reg = 0x52000,
3402		.enable_mask = BIT(15),
3403		.hw.init = &(const struct clk_init_data) {
3404			.name = "gcc_gpu_gpll0_clk_src",
3405			.parent_hws = (const struct clk_hw*[]){
3406				&gcc_gpll0.clkr.hw,
3407			},
3408			.num_parents = 1,
3409			.flags = CLK_SET_RATE_PARENT,
3410			.ops = &clk_branch2_ops,
3411		},
3412	},
3413};
3414
3415static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
3416	.halt_check = BRANCH_HALT_DELAY,
3417	.clkr = {
3418		.enable_reg = 0x52000,
3419		.enable_mask = BIT(16),
3420		.hw.init = &(const struct clk_init_data) {
3421			.name = "gcc_gpu_gpll0_div_clk_src",
3422			.parent_hws = (const struct clk_hw*[]){
3423				&gcc_gpll0_out_even.clkr.hw,
3424			},
3425			.num_parents = 1,
3426			.flags = CLK_SET_RATE_PARENT,
3427			.ops = &clk_branch2_ops,
3428		},
3429	},
3430};
3431
3432static struct clk_branch gcc_gpu_iref_en = {
3433	.halt_reg = 0x8c014,
3434	.halt_check = BRANCH_HALT,
3435	.clkr = {
3436		.enable_reg = 0x8c014,
3437		.enable_mask = BIT(0),
3438		.hw.init = &(const struct clk_init_data) {
3439			.name = "gcc_gpu_iref_en",
3440			.ops = &clk_branch2_ops,
3441		},
3442	},
3443};
3444
3445static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
3446	.halt_reg = 0x71010,
3447	.halt_check = BRANCH_HALT_VOTED,
3448	.hwcg_reg = 0x71010,
3449	.hwcg_bit = 1,
3450	.clkr = {
3451		.enable_reg = 0x71010,
3452		.enable_mask = BIT(0),
3453		.hw.init = &(const struct clk_init_data) {
3454			.name = "gcc_gpu_memnoc_gfx_clk",
3455			.ops = &clk_branch2_aon_ops,
3456		},
3457	},
3458};
3459
3460static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
3461	.halt_reg = 0x71020,
3462	.halt_check = BRANCH_HALT,
3463	.clkr = {
3464		.enable_reg = 0x71020,
3465		.enable_mask = BIT(0),
3466		.hw.init = &(const struct clk_init_data) {
3467			.name = "gcc_gpu_snoc_dvm_gfx_clk",
3468			.ops = &clk_branch2_aon_ops,
3469		},
3470	},
3471};
3472
3473static struct clk_branch gcc_gpu_tcu_throttle_ahb_clk = {
3474	.halt_reg = 0x71008,
3475	.halt_check = BRANCH_HALT_VOTED,
3476	.hwcg_reg = 0x71008,
3477	.hwcg_bit = 1,
3478	.clkr = {
3479		.enable_reg = 0x71008,
3480		.enable_mask = BIT(0),
3481		.hw.init = &(const struct clk_init_data) {
3482			.name = "gcc_gpu_tcu_throttle_ahb_clk",
3483			.ops = &clk_branch2_ops,
3484		},
3485	},
3486};
3487
3488static struct clk_branch gcc_gpu_tcu_throttle_clk = {
3489	.halt_reg = 0x71018,
3490	.halt_check = BRANCH_HALT_VOTED,
3491	.hwcg_reg = 0x71018,
3492	.hwcg_bit = 1,
3493	.clkr = {
3494		.enable_reg = 0x71018,
3495		.enable_mask = BIT(0),
3496		.hw.init = &(const struct clk_init_data) {
3497			.name = "gcc_gpu_tcu_throttle_clk",
3498			.ops = &clk_branch2_ops,
3499		},
3500	},
3501};
3502
3503static struct clk_branch gcc_pcie0_phy_rchng_clk = {
3504	.halt_reg = 0xa4038,
3505	.halt_check = BRANCH_HALT_VOTED,
3506	.clkr = {
3507		.enable_reg = 0x52018,
3508		.enable_mask = BIT(11),
3509		.hw.init = &(const struct clk_init_data) {
3510			.name = "gcc_pcie0_phy_rchng_clk",
3511			.parent_hws = (const struct clk_hw*[]){
3512				&gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
3513			},
3514			.num_parents = 1,
3515			.flags = CLK_SET_RATE_PARENT,
3516			.ops = &clk_branch2_ops,
3517		},
3518	},
3519};
3520
3521static struct clk_branch gcc_pcie1_phy_rchng_clk = {
3522	.halt_reg = 0x8d038,
3523	.halt_check = BRANCH_HALT_VOTED,
3524	.clkr = {
3525		.enable_reg = 0x52000,
3526		.enable_mask = BIT(23),
3527		.hw.init = &(const struct clk_init_data) {
3528			.name = "gcc_pcie1_phy_rchng_clk",
3529			.parent_hws = (const struct clk_hw*[]){
3530				&gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
3531			},
3532			.num_parents = 1,
3533			.flags = CLK_SET_RATE_PARENT,
3534			.ops = &clk_branch2_ops,
3535		},
3536	},
3537};
3538
3539static struct clk_branch gcc_pcie2a_phy_rchng_clk = {
3540	.halt_reg = 0x9d040,
3541	.halt_check = BRANCH_HALT_VOTED,
3542	.clkr = {
3543		.enable_reg = 0x52010,
3544		.enable_mask = BIT(15),
3545		.hw.init = &(const struct clk_init_data) {
3546			.name = "gcc_pcie2a_phy_rchng_clk",
3547			.parent_hws = (const struct clk_hw*[]){
3548				&gcc_pcie_2a_phy_rchng_clk_src.clkr.hw,
3549			},
3550			.num_parents = 1,
3551			.flags = CLK_SET_RATE_PARENT,
3552			.ops = &clk_branch2_ops,
3553		},
3554	},
3555};
3556
3557static struct clk_branch gcc_pcie2b_phy_rchng_clk = {
3558	.halt_reg = 0x9e040,
3559	.halt_check = BRANCH_HALT_VOTED,
3560	.clkr = {
3561		.enable_reg = 0x52010,
3562		.enable_mask = BIT(22),
3563		.hw.init = &(const struct clk_init_data) {
3564			.name = "gcc_pcie2b_phy_rchng_clk",
3565			.parent_hws = (const struct clk_hw*[]){
3566				&gcc_pcie_2b_phy_rchng_clk_src.clkr.hw,
3567			},
3568			.num_parents = 1,
3569			.flags = CLK_SET_RATE_PARENT,
3570			.ops = &clk_branch2_ops,
3571		},
3572	},
3573};
3574
3575static struct clk_branch gcc_pcie3a_phy_rchng_clk = {
3576	.halt_reg = 0xa0040,
3577	.halt_check = BRANCH_HALT_VOTED,
3578	.clkr = {
3579		.enable_reg = 0x52010,
3580		.enable_mask = BIT(29),
3581		.hw.init = &(const struct clk_init_data) {
3582			.name = "gcc_pcie3a_phy_rchng_clk",
3583			.parent_hws = (const struct clk_hw*[]){
3584				&gcc_pcie_3a_phy_rchng_clk_src.clkr.hw,
3585			},
3586			.num_parents = 1,
3587			.flags = CLK_SET_RATE_PARENT,
3588			.ops = &clk_branch2_ops,
3589		},
3590	},
3591};
3592
3593static struct clk_branch gcc_pcie3b_phy_rchng_clk = {
3594	.halt_reg = 0xa2040,
3595	.halt_check = BRANCH_HALT_VOTED,
3596	.clkr = {
3597		.enable_reg = 0x52018,
3598		.enable_mask = BIT(4),
3599		.hw.init = &(const struct clk_init_data) {
3600			.name = "gcc_pcie3b_phy_rchng_clk",
3601			.parent_hws = (const struct clk_hw*[]){
3602				&gcc_pcie_3b_phy_rchng_clk_src.clkr.hw,
3603			},
3604			.num_parents = 1,
3605			.flags = CLK_SET_RATE_PARENT,
3606			.ops = &clk_branch2_ops,
3607		},
3608	},
3609};
3610
3611static struct clk_branch gcc_pcie4_phy_rchng_clk = {
3612	.halt_reg = 0x6b040,
3613	.halt_check = BRANCH_HALT_VOTED,
3614	.clkr = {
3615		.enable_reg = 0x52000,
3616		.enable_mask = BIT(22),
3617		.hw.init = &(const struct clk_init_data) {
3618			.name = "gcc_pcie4_phy_rchng_clk",
3619			.parent_hws = (const struct clk_hw*[]){
3620				&gcc_pcie_4_phy_rchng_clk_src.clkr.hw,
3621			},
3622			.num_parents = 1,
3623			.flags = CLK_SET_RATE_PARENT,
3624			.ops = &clk_branch2_ops,
3625		},
3626	},
3627};
3628
3629static struct clk_branch gcc_pcie_0_aux_clk = {
3630	.halt_reg = 0xa4028,
3631	.halt_check = BRANCH_HALT_VOTED,
3632	.clkr = {
3633		.enable_reg = 0x52018,
3634		.enable_mask = BIT(9),
3635		.hw.init = &(const struct clk_init_data) {
3636			.name = "gcc_pcie_0_aux_clk",
3637			.parent_hws = (const struct clk_hw*[]){
3638				&gcc_pcie_0_aux_clk_src.clkr.hw,
3639			},
3640			.num_parents = 1,
3641			.flags = CLK_SET_RATE_PARENT,
3642			.ops = &clk_branch2_ops,
3643		},
3644	},
3645};
3646
3647static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
3648	.halt_reg = 0xa4024,
3649	.halt_check = BRANCH_HALT_VOTED,
3650	.hwcg_reg = 0xa4024,
3651	.hwcg_bit = 1,
3652	.clkr = {
3653		.enable_reg = 0x52018,
3654		.enable_mask = BIT(8),
3655		.hw.init = &(const struct clk_init_data) {
3656			.name = "gcc_pcie_0_cfg_ahb_clk",
3657			.ops = &clk_branch2_ops,
3658		},
3659	},
3660};
3661
3662static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
3663	.halt_reg = 0xa401c,
3664	.halt_check = BRANCH_HALT_SKIP,
3665	.hwcg_reg = 0xa401c,
3666	.hwcg_bit = 1,
3667	.clkr = {
3668		.enable_reg = 0x52018,
3669		.enable_mask = BIT(7),
3670		.hw.init = &(const struct clk_init_data) {
3671			.name = "gcc_pcie_0_mstr_axi_clk",
3672			.ops = &clk_branch2_ops,
3673		},
3674	},
3675};
3676
3677static struct clk_branch gcc_pcie_0_pipe_clk = {
3678	.halt_reg = 0xa4030,
3679	.halt_check = BRANCH_HALT_SKIP,
3680	.clkr = {
3681		.enable_reg = 0x52018,
3682		.enable_mask = BIT(10),
3683		.hw.init = &(const struct clk_init_data) {
3684			.name = "gcc_pcie_0_pipe_clk",
3685			.parent_hws = (const struct clk_hw*[]){
3686				&gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
3687			},
3688			.num_parents = 1,
3689			.flags = CLK_SET_RATE_PARENT,
3690			.ops = &clk_branch2_ops,
3691		},
3692	},
3693};
3694
3695static struct clk_branch gcc_pcie_0_slv_axi_clk = {
3696	.halt_reg = 0xa4014,
3697	.halt_check = BRANCH_HALT_VOTED,
3698	.hwcg_reg = 0xa4014,
3699	.hwcg_bit = 1,
3700	.clkr = {
3701		.enable_reg = 0x52018,
3702		.enable_mask = BIT(6),
3703		.hw.init = &(const struct clk_init_data) {
3704			.name = "gcc_pcie_0_slv_axi_clk",
3705			.ops = &clk_branch2_ops,
3706		},
3707	},
3708};
3709
3710static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
3711	.halt_reg = 0xa4010,
3712	.halt_check = BRANCH_HALT_VOTED,
3713	.clkr = {
3714		.enable_reg = 0x52018,
3715		.enable_mask = BIT(5),
3716		.hw.init = &(const struct clk_init_data) {
3717			.name = "gcc_pcie_0_slv_q2a_axi_clk",
3718			.ops = &clk_branch2_ops,
3719		},
3720	},
3721};
3722
3723static struct clk_branch gcc_pcie_1_aux_clk = {
3724	.halt_reg = 0x8d028,
3725	.halt_check = BRANCH_HALT_VOTED,
3726	.clkr = {
3727		.enable_reg = 0x52000,
3728		.enable_mask = BIT(29),
3729		.hw.init = &(const struct clk_init_data) {
3730			.name = "gcc_pcie_1_aux_clk",
3731			.parent_hws = (const struct clk_hw*[]){
3732				&gcc_pcie_1_aux_clk_src.clkr.hw,
3733			},
3734			.num_parents = 1,
3735			.flags = CLK_SET_RATE_PARENT,
3736			.ops = &clk_branch2_ops,
3737		},
3738	},
3739};
3740
3741static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
3742	.halt_reg = 0x8d024,
3743	.halt_check = BRANCH_HALT_VOTED,
3744	.hwcg_reg = 0x8d024,
3745	.hwcg_bit = 1,
3746	.clkr = {
3747		.enable_reg = 0x52000,
3748		.enable_mask = BIT(28),
3749		.hw.init = &(const struct clk_init_data) {
3750			.name = "gcc_pcie_1_cfg_ahb_clk",
3751			.ops = &clk_branch2_ops,
3752		},
3753	},
3754};
3755
3756static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
3757	.halt_reg = 0x8d01c,
3758	.halt_check = BRANCH_HALT_SKIP,
3759	.hwcg_reg = 0x8d01c,
3760	.hwcg_bit = 1,
3761	.clkr = {
3762		.enable_reg = 0x52000,
3763		.enable_mask = BIT(27),
3764		.hw.init = &(const struct clk_init_data) {
3765			.name = "gcc_pcie_1_mstr_axi_clk",
3766			.ops = &clk_branch2_ops,
3767		},
3768	},
3769};
3770
3771static struct clk_branch gcc_pcie_1_pipe_clk = {
3772	.halt_reg = 0x8d030,
3773	.halt_check = BRANCH_HALT_SKIP,
3774	.clkr = {
3775		.enable_reg = 0x52000,
3776		.enable_mask = BIT(30),
3777		.hw.init = &(const struct clk_init_data) {
3778			.name = "gcc_pcie_1_pipe_clk",
3779			.parent_hws = (const struct clk_hw*[]){
3780				&gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
3781			},
3782			.num_parents = 1,
3783			.flags = CLK_SET_RATE_PARENT,
3784			.ops = &clk_branch2_ops,
3785		},
3786	},
3787};
3788
3789static struct clk_branch gcc_pcie_1_slv_axi_clk = {
3790	.halt_reg = 0x8d014,
3791	.halt_check = BRANCH_HALT_VOTED,
3792	.hwcg_reg = 0x8d014,
3793	.hwcg_bit = 1,
3794	.clkr = {
3795		.enable_reg = 0x52000,
3796		.enable_mask = BIT(26),
3797		.hw.init = &(const struct clk_init_data) {
3798			.name = "gcc_pcie_1_slv_axi_clk",
3799			.ops = &clk_branch2_ops,
3800		},
3801	},
3802};
3803
3804static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
3805	.halt_reg = 0x8d010,
3806	.halt_check = BRANCH_HALT_VOTED,
3807	.clkr = {
3808		.enable_reg = 0x52000,
3809		.enable_mask = BIT(25),
3810		.hw.init = &(const struct clk_init_data) {
3811			.name = "gcc_pcie_1_slv_q2a_axi_clk",
3812			.ops = &clk_branch2_ops,
3813		},
3814	},
3815};
3816
3817static struct clk_branch gcc_pcie_2a2b_clkref_clk = {
3818	.halt_reg = 0x8c034,
3819	.halt_check = BRANCH_HALT,
3820	.clkr = {
3821		.enable_reg = 0x8c034,
3822		.enable_mask = BIT(0),
3823		.hw.init = &(const struct clk_init_data) {
3824			.name = "gcc_pcie_2a2b_clkref_clk",
3825			.ops = &clk_branch2_ops,
3826		},
3827	},
3828};
3829
3830static struct clk_branch gcc_pcie_2a_aux_clk = {
3831	.halt_reg = 0x9d028,
3832	.halt_check = BRANCH_HALT_VOTED,
3833	.clkr = {
3834		.enable_reg = 0x52010,
3835		.enable_mask = BIT(13),
3836		.hw.init = &(const struct clk_init_data) {
3837			.name = "gcc_pcie_2a_aux_clk",
3838			.parent_hws = (const struct clk_hw*[]){
3839				&gcc_pcie_2a_aux_clk_src.clkr.hw,
3840			},
3841			.num_parents = 1,
3842			.flags = CLK_SET_RATE_PARENT,
3843			.ops = &clk_branch2_ops,
3844		},
3845	},
3846};
3847
3848static struct clk_branch gcc_pcie_2a_cfg_ahb_clk = {
3849	.halt_reg = 0x9d024,
3850	.halt_check = BRANCH_HALT_VOTED,
3851	.hwcg_reg = 0x9d024,
3852	.hwcg_bit = 1,
3853	.clkr = {
3854		.enable_reg = 0x52010,
3855		.enable_mask = BIT(12),
3856		.hw.init = &(const struct clk_init_data) {
3857			.name = "gcc_pcie_2a_cfg_ahb_clk",
3858			.ops = &clk_branch2_ops,
3859		},
3860	},
3861};
3862
3863static struct clk_branch gcc_pcie_2a_mstr_axi_clk = {
3864	.halt_reg = 0x9d01c,
3865	.halt_check = BRANCH_HALT_SKIP,
3866	.hwcg_reg = 0x9d01c,
3867	.hwcg_bit = 1,
3868	.clkr = {
3869		.enable_reg = 0x52010,
3870		.enable_mask = BIT(11),
3871		.hw.init = &(const struct clk_init_data) {
3872			.name = "gcc_pcie_2a_mstr_axi_clk",
3873			.ops = &clk_branch2_ops,
3874		},
3875	},
3876};
3877
3878static struct clk_branch gcc_pcie_2a_pipe_clk = {
3879	.halt_reg = 0x9d030,
3880	.halt_check = BRANCH_HALT_SKIP,
3881	.clkr = {
3882		.enable_reg = 0x52010,
3883		.enable_mask = BIT(14),
3884		.hw.init = &(const struct clk_init_data) {
3885			.name = "gcc_pcie_2a_pipe_clk",
3886			.parent_hws = (const struct clk_hw*[]){
3887				&gcc_pcie_2a_pipe_clk_src.clkr.hw,
3888			},
3889			.num_parents = 1,
3890			.flags = CLK_SET_RATE_PARENT,
3891			.ops = &clk_branch2_ops,
3892		},
3893	},
3894};
3895
3896static struct clk_branch gcc_pcie_2a_pipediv2_clk = {
3897	.halt_reg = 0x9d038,
3898	.halt_check = BRANCH_HALT_SKIP,
3899	.clkr = {
3900		.enable_reg = 0x52018,
3901		.enable_mask = BIT(22),
3902		.hw.init = &(const struct clk_init_data) {
3903			.name = "gcc_pcie_2a_pipediv2_clk",
3904			.parent_hws = (const struct clk_hw*[]){
3905				&gcc_pcie_2a_pipe_div_clk_src.clkr.hw,
3906			},
3907			.num_parents = 1,
3908			.flags = CLK_SET_RATE_PARENT,
3909			.ops = &clk_branch2_ops,
3910		},
3911	},
3912};
3913
3914static struct clk_branch gcc_pcie_2a_slv_axi_clk = {
3915	.halt_reg = 0x9d014,
3916	.halt_check = BRANCH_HALT_VOTED,
3917	.hwcg_reg = 0x9d014,
3918	.hwcg_bit = 1,
3919	.clkr = {
3920		.enable_reg = 0x52010,
3921		.enable_mask = BIT(10),
3922		.hw.init = &(const struct clk_init_data) {
3923			.name = "gcc_pcie_2a_slv_axi_clk",
3924			.ops = &clk_branch2_ops,
3925		},
3926	},
3927};
3928
3929static struct clk_branch gcc_pcie_2a_slv_q2a_axi_clk = {
3930	.halt_reg = 0x9d010,
3931	.halt_check = BRANCH_HALT_VOTED,
3932	.clkr = {
3933		.enable_reg = 0x52018,
3934		.enable_mask = BIT(12),
3935		.hw.init = &(const struct clk_init_data) {
3936			.name = "gcc_pcie_2a_slv_q2a_axi_clk",
3937			.ops = &clk_branch2_ops,
3938		},
3939	},
3940};
3941
3942static struct clk_branch gcc_pcie_2b_aux_clk = {
3943	.halt_reg = 0x9e028,
3944	.halt_check = BRANCH_HALT_VOTED,
3945	.clkr = {
3946		.enable_reg = 0x52010,
3947		.enable_mask = BIT(20),
3948		.hw.init = &(const struct clk_init_data) {
3949			.name = "gcc_pcie_2b_aux_clk",
3950			.parent_hws = (const struct clk_hw*[]){
3951				&gcc_pcie_2b_aux_clk_src.clkr.hw,
3952			},
3953			.num_parents = 1,
3954			.flags = CLK_SET_RATE_PARENT,
3955			.ops = &clk_branch2_ops,
3956		},
3957	},
3958};
3959
3960static struct clk_branch gcc_pcie_2b_cfg_ahb_clk = {
3961	.halt_reg = 0x9e024,
3962	.halt_check = BRANCH_HALT_VOTED,
3963	.hwcg_reg = 0x9e024,
3964	.hwcg_bit = 1,
3965	.clkr = {
3966		.enable_reg = 0x52010,
3967		.enable_mask = BIT(19),
3968		.hw.init = &(const struct clk_init_data) {
3969			.name = "gcc_pcie_2b_cfg_ahb_clk",
3970			.ops = &clk_branch2_ops,
3971		},
3972	},
3973};
3974
3975static struct clk_branch gcc_pcie_2b_mstr_axi_clk = {
3976	.halt_reg = 0x9e01c,
3977	.halt_check = BRANCH_HALT_SKIP,
3978	.hwcg_reg = 0x9e01c,
3979	.hwcg_bit = 1,
3980	.clkr = {
3981		.enable_reg = 0x52010,
3982		.enable_mask = BIT(18),
3983		.hw.init = &(const struct clk_init_data) {
3984			.name = "gcc_pcie_2b_mstr_axi_clk",
3985			.ops = &clk_branch2_ops,
3986		},
3987	},
3988};
3989
3990static struct clk_branch gcc_pcie_2b_pipe_clk = {
3991	.halt_reg = 0x9e030,
3992	.halt_check = BRANCH_HALT_SKIP,
3993	.clkr = {
3994		.enable_reg = 0x52010,
3995		.enable_mask = BIT(21),
3996		.hw.init = &(const struct clk_init_data) {
3997			.name = "gcc_pcie_2b_pipe_clk",
3998			.parent_hws = (const struct clk_hw*[]){
3999				&gcc_pcie_2b_pipe_clk_src.clkr.hw,
4000			},
4001			.num_parents = 1,
4002			.flags = CLK_SET_RATE_PARENT,
4003			.ops = &clk_branch2_ops,
4004		},
4005	},
4006};
4007
4008static struct clk_branch gcc_pcie_2b_pipediv2_clk = {
4009	.halt_reg = 0x9e038,
4010	.halt_check = BRANCH_HALT_SKIP,
4011	.clkr = {
4012		.enable_reg = 0x52018,
4013		.enable_mask = BIT(23),
4014		.hw.init = &(const struct clk_init_data) {
4015			.name = "gcc_pcie_2b_pipediv2_clk",
4016			.parent_hws = (const struct clk_hw*[]){
4017				&gcc_pcie_2b_pipe_div_clk_src.clkr.hw,
4018			},
4019			.num_parents = 1,
4020			.flags = CLK_SET_RATE_PARENT,
4021			.ops = &clk_branch2_ops,
4022		},
4023	},
4024};
4025
4026static struct clk_branch gcc_pcie_2b_slv_axi_clk = {
4027	.halt_reg = 0x9e014,
4028	.halt_check = BRANCH_HALT_VOTED,
4029	.hwcg_reg = 0x9e014,
4030	.hwcg_bit = 1,
4031	.clkr = {
4032		.enable_reg = 0x52010,
4033		.enable_mask = BIT(17),
4034		.hw.init = &(const struct clk_init_data) {
4035			.name = "gcc_pcie_2b_slv_axi_clk",
4036			.ops = &clk_branch2_ops,
4037		},
4038	},
4039};
4040
4041static struct clk_branch gcc_pcie_2b_slv_q2a_axi_clk = {
4042	.halt_reg = 0x9e010,
4043	.halt_check = BRANCH_HALT_VOTED,
4044	.clkr = {
4045		.enable_reg = 0x52010,
4046		.enable_mask = BIT(16),
4047		.hw.init = &(const struct clk_init_data) {
4048			.name = "gcc_pcie_2b_slv_q2a_axi_clk",
4049			.ops = &clk_branch2_ops,
4050		},
4051	},
4052};
4053
4054static struct clk_branch gcc_pcie_3a3b_clkref_clk = {
4055	.halt_reg = 0x8c038,
4056	.halt_check = BRANCH_HALT,
4057	.clkr = {
4058		.enable_reg = 0x8c038,
4059		.enable_mask = BIT(0),
4060		.hw.init = &(const struct clk_init_data) {
4061			.name = "gcc_pcie_3a3b_clkref_clk",
4062			.ops = &clk_branch2_ops,
4063		},
4064	},
4065};
4066
4067static struct clk_branch gcc_pcie_3a_aux_clk = {
4068	.halt_reg = 0xa0028,
4069	.halt_check = BRANCH_HALT_VOTED,
4070	.clkr = {
4071		.enable_reg = 0x52010,
4072		.enable_mask = BIT(27),
4073		.hw.init = &(const struct clk_init_data) {
4074			.name = "gcc_pcie_3a_aux_clk",
4075			.parent_hws = (const struct clk_hw*[]){
4076				&gcc_pcie_3a_aux_clk_src.clkr.hw,
4077			},
4078			.num_parents = 1,
4079			.flags = CLK_SET_RATE_PARENT,
4080			.ops = &clk_branch2_ops,
4081		},
4082	},
4083};
4084
4085static struct clk_branch gcc_pcie_3a_cfg_ahb_clk = {
4086	.halt_reg = 0xa0024,
4087	.halt_check = BRANCH_HALT_VOTED,
4088	.hwcg_reg = 0xa0024,
4089	.hwcg_bit = 1,
4090	.clkr = {
4091		.enable_reg = 0x52010,
4092		.enable_mask = BIT(26),
4093		.hw.init = &(const struct clk_init_data) {
4094			.name = "gcc_pcie_3a_cfg_ahb_clk",
4095			.ops = &clk_branch2_ops,
4096		},
4097	},
4098};
4099
4100static struct clk_branch gcc_pcie_3a_mstr_axi_clk = {
4101	.halt_reg = 0xa001c,
4102	.halt_check = BRANCH_HALT_SKIP,
4103	.hwcg_reg = 0xa001c,
4104	.hwcg_bit = 1,
4105	.clkr = {
4106		.enable_reg = 0x52010,
4107		.enable_mask = BIT(25),
4108		.hw.init = &(const struct clk_init_data) {
4109			.name = "gcc_pcie_3a_mstr_axi_clk",
4110			.ops = &clk_branch2_ops,
4111		},
4112	},
4113};
4114
4115static struct clk_branch gcc_pcie_3a_pipe_clk = {
4116	.halt_reg = 0xa0030,
4117	.halt_check = BRANCH_HALT_SKIP,
4118	.clkr = {
4119		.enable_reg = 0x52010,
4120		.enable_mask = BIT(28),
4121		.hw.init = &(const struct clk_init_data) {
4122			.name = "gcc_pcie_3a_pipe_clk",
4123			.parent_hws = (const struct clk_hw*[]){
4124				&gcc_pcie_3a_pipe_clk_src.clkr.hw,
4125			},
4126			.num_parents = 1,
4127			.flags = CLK_SET_RATE_PARENT,
4128			.ops = &clk_branch2_ops,
4129		},
4130	},
4131};
4132
4133static struct clk_branch gcc_pcie_3a_pipediv2_clk = {
4134	.halt_reg = 0xa0038,
4135	.halt_check = BRANCH_HALT_SKIP,
4136	.clkr = {
4137		.enable_reg = 0x52018,
4138		.enable_mask = BIT(24),
4139		.hw.init = &(const struct clk_init_data) {
4140			.name = "gcc_pcie_3a_pipediv2_clk",
4141			.parent_hws = (const struct clk_hw*[]){
4142				&gcc_pcie_3a_pipe_div_clk_src.clkr.hw,
4143			},
4144			.num_parents = 1,
4145			.flags = CLK_SET_RATE_PARENT,
4146			.ops = &clk_branch2_ops,
4147		},
4148	},
4149};
4150
4151static struct clk_branch gcc_pcie_3a_slv_axi_clk = {
4152	.halt_reg = 0xa0014,
4153	.halt_check = BRANCH_HALT_VOTED,
4154	.hwcg_reg = 0xa0014,
4155	.hwcg_bit = 1,
4156	.clkr = {
4157		.enable_reg = 0x52010,
4158		.enable_mask = BIT(24),
4159		.hw.init = &(const struct clk_init_data) {
4160			.name = "gcc_pcie_3a_slv_axi_clk",
4161			.ops = &clk_branch2_ops,
4162		},
4163	},
4164};
4165
4166static struct clk_branch gcc_pcie_3a_slv_q2a_axi_clk = {
4167	.halt_reg = 0xa0010,
4168	.halt_check = BRANCH_HALT_VOTED,
4169	.clkr = {
4170		.enable_reg = 0x52010,
4171		.enable_mask = BIT(23),
4172		.hw.init = &(const struct clk_init_data) {
4173			.name = "gcc_pcie_3a_slv_q2a_axi_clk",
4174			.ops = &clk_branch2_ops,
4175		},
4176	},
4177};
4178
4179static struct clk_branch gcc_pcie_3b_aux_clk = {
4180	.halt_reg = 0xa2028,
4181	.halt_check = BRANCH_HALT_VOTED,
4182	.clkr = {
4183		.enable_reg = 0x52018,
4184		.enable_mask = BIT(2),
4185		.hw.init = &(const struct clk_init_data) {
4186			.name = "gcc_pcie_3b_aux_clk",
4187			.parent_hws = (const struct clk_hw*[]){
4188				&gcc_pcie_3b_aux_clk_src.clkr.hw,
4189			},
4190			.num_parents = 1,
4191			.flags = CLK_SET_RATE_PARENT,
4192			.ops = &clk_branch2_ops,
4193		},
4194	},
4195};
4196
4197static struct clk_branch gcc_pcie_3b_cfg_ahb_clk = {
4198	.halt_reg = 0xa2024,
4199	.halt_check = BRANCH_HALT_VOTED,
4200	.hwcg_reg = 0xa2024,
4201	.hwcg_bit = 1,
4202	.clkr = {
4203		.enable_reg = 0x52018,
4204		.enable_mask = BIT(1),
4205		.hw.init = &(const struct clk_init_data) {
4206			.name = "gcc_pcie_3b_cfg_ahb_clk",
4207			.ops = &clk_branch2_ops,
4208		},
4209	},
4210};
4211
4212static struct clk_branch gcc_pcie_3b_mstr_axi_clk = {
4213	.halt_reg = 0xa201c,
4214	.halt_check = BRANCH_HALT_SKIP,
4215	.hwcg_reg = 0xa201c,
4216	.hwcg_bit = 1,
4217	.clkr = {
4218		.enable_reg = 0x52018,
4219		.enable_mask = BIT(0),
4220		.hw.init = &(const struct clk_init_data) {
4221			.name = "gcc_pcie_3b_mstr_axi_clk",
4222			.ops = &clk_branch2_ops,
4223		},
4224	},
4225};
4226
4227static struct clk_branch gcc_pcie_3b_pipe_clk = {
4228	.halt_reg = 0xa2030,
4229	.halt_check = BRANCH_HALT_SKIP,
4230	.clkr = {
4231		.enable_reg = 0x52018,
4232		.enable_mask = BIT(3),
4233		.hw.init = &(const struct clk_init_data) {
4234			.name = "gcc_pcie_3b_pipe_clk",
4235			.parent_hws = (const struct clk_hw*[]){
4236				&gcc_pcie_3b_pipe_clk_src.clkr.hw,
4237			},
4238			.num_parents = 1,
4239			.flags = CLK_SET_RATE_PARENT,
4240			.ops = &clk_branch2_ops,
4241		},
4242	},
4243};
4244
4245static struct clk_branch gcc_pcie_3b_pipediv2_clk = {
4246	.halt_reg = 0xa2038,
4247	.halt_check = BRANCH_HALT_SKIP,
4248	.clkr = {
4249		.enable_reg = 0x52018,
4250		.enable_mask = BIT(25),
4251		.hw.init = &(const struct clk_init_data) {
4252			.name = "gcc_pcie_3b_pipediv2_clk",
4253			.parent_hws = (const struct clk_hw*[]){
4254				&gcc_pcie_3b_pipe_div_clk_src.clkr.hw,
4255			},
4256			.num_parents = 1,
4257			.flags = CLK_SET_RATE_PARENT,
4258			.ops = &clk_branch2_ops,
4259		},
4260	},
4261};
4262
4263static struct clk_branch gcc_pcie_3b_slv_axi_clk = {
4264	.halt_reg = 0xa2014,
4265	.halt_check = BRANCH_HALT_VOTED,
4266	.hwcg_reg = 0xa2014,
4267	.hwcg_bit = 1,
4268	.clkr = {
4269		.enable_reg = 0x52010,
4270		.enable_mask = BIT(31),
4271		.hw.init = &(const struct clk_init_data) {
4272			.name = "gcc_pcie_3b_slv_axi_clk",
4273			.ops = &clk_branch2_ops,
4274		},
4275	},
4276};
4277
4278static struct clk_branch gcc_pcie_3b_slv_q2a_axi_clk = {
4279	.halt_reg = 0xa2010,
4280	.halt_check = BRANCH_HALT_VOTED,
4281	.clkr = {
4282		.enable_reg = 0x52010,
4283		.enable_mask = BIT(30),
4284		.hw.init = &(const struct clk_init_data) {
4285			.name = "gcc_pcie_3b_slv_q2a_axi_clk",
4286			.ops = &clk_branch2_ops,
4287		},
4288	},
4289};
4290
4291static struct clk_branch gcc_pcie_4_aux_clk = {
4292	.halt_reg = 0x6b028,
4293	.halt_check = BRANCH_HALT_VOTED,
4294	.clkr = {
4295		.enable_reg = 0x52008,
4296		.enable_mask = BIT(3),
4297		.hw.init = &(const struct clk_init_data) {
4298			.name = "gcc_pcie_4_aux_clk",
4299			.parent_hws = (const struct clk_hw*[]){
4300				&gcc_pcie_4_aux_clk_src.clkr.hw,
4301			},
4302			.num_parents = 1,
4303			.flags = CLK_SET_RATE_PARENT,
4304			.ops = &clk_branch2_ops,
4305		},
4306	},
4307};
4308
4309static struct clk_branch gcc_pcie_4_cfg_ahb_clk = {
4310	.halt_reg = 0x6b024,
4311	.halt_check = BRANCH_HALT_VOTED,
4312	.hwcg_reg = 0x6b024,
4313	.hwcg_bit = 1,
4314	.clkr = {
4315		.enable_reg = 0x52008,
4316		.enable_mask = BIT(2),
4317		.hw.init = &(const struct clk_init_data) {
4318			.name = "gcc_pcie_4_cfg_ahb_clk",
4319			.ops = &clk_branch2_ops,
4320		},
4321	},
4322};
4323
4324static struct clk_branch gcc_pcie_4_clkref_clk = {
4325	.halt_reg = 0x8c030,
4326	.halt_check = BRANCH_HALT,
4327	.clkr = {
4328		.enable_reg = 0x8c030,
4329		.enable_mask = BIT(0),
4330		.hw.init = &(const struct clk_init_data) {
4331			.name = "gcc_pcie_4_clkref_clk",
4332			.ops = &clk_branch2_ops,
4333		},
4334	},
4335};
4336
4337static struct clk_branch gcc_pcie_4_mstr_axi_clk = {
4338	.halt_reg = 0x6b01c,
4339	.halt_check = BRANCH_HALT_SKIP,
4340	.hwcg_reg = 0x6b01c,
4341	.hwcg_bit = 1,
4342	.clkr = {
4343		.enable_reg = 0x52008,
4344		.enable_mask = BIT(1),
4345		.hw.init = &(const struct clk_init_data) {
4346			.name = "gcc_pcie_4_mstr_axi_clk",
4347			.ops = &clk_branch2_ops,
4348		},
4349	},
4350};
4351
4352static struct clk_branch gcc_pcie_4_pipe_clk = {
4353	.halt_reg = 0x6b030,
4354	.halt_check = BRANCH_HALT_SKIP,
4355	.clkr = {
4356		.enable_reg = 0x52008,
4357		.enable_mask = BIT(4),
4358		.hw.init = &(const struct clk_init_data) {
4359			.name = "gcc_pcie_4_pipe_clk",
4360			.parent_hws = (const struct clk_hw*[]){
4361				&gcc_pcie_4_pipe_clk_src.clkr.hw,
4362			},
4363			.num_parents = 1,
4364			.flags = CLK_SET_RATE_PARENT,
4365			.ops = &clk_branch2_ops,
4366		},
4367	},
4368};
4369
4370static struct clk_branch gcc_pcie_4_pipediv2_clk = {
4371	.halt_reg = 0x6b038,
4372	.halt_check = BRANCH_HALT_SKIP,
4373	.clkr = {
4374		.enable_reg = 0x52018,
4375		.enable_mask = BIT(16),
4376		.hw.init = &(const struct clk_init_data) {
4377			.name = "gcc_pcie_4_pipediv2_clk",
4378			.parent_hws = (const struct clk_hw*[]){
4379				&gcc_pcie_4_pipe_div_clk_src.clkr.hw,
4380			},
4381			.num_parents = 1,
4382			.flags = CLK_SET_RATE_PARENT,
4383			.ops = &clk_branch2_ops,
4384		},
4385	},
4386};
4387
4388static struct clk_branch gcc_pcie_4_slv_axi_clk = {
4389	.halt_reg = 0x6b014,
4390	.halt_check = BRANCH_HALT_VOTED,
4391	.hwcg_reg = 0x6b014,
4392	.hwcg_bit = 1,
4393	.clkr = {
4394		.enable_reg = 0x52008,
4395		.enable_mask = BIT(0),
4396		.hw.init = &(const struct clk_init_data) {
4397			.name = "gcc_pcie_4_slv_axi_clk",
4398			.ops = &clk_branch2_ops,
4399		},
4400	},
4401};
4402
4403static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = {
4404	.halt_reg = 0x6b010,
4405	.halt_check = BRANCH_HALT_VOTED,
4406	.clkr = {
4407		.enable_reg = 0x52008,
4408		.enable_mask = BIT(5),
4409		.hw.init = &(const struct clk_init_data) {
4410			.name = "gcc_pcie_4_slv_q2a_axi_clk",
4411			.ops = &clk_branch2_ops,
4412		},
4413	},
4414};
4415
4416static struct clk_branch gcc_pcie_rscc_ahb_clk = {
4417	.halt_reg = 0xae008,
4418	.halt_check = BRANCH_HALT_VOTED,
4419	.hwcg_reg = 0xae008,
4420	.hwcg_bit = 1,
4421	.clkr = {
4422		.enable_reg = 0x52020,
4423		.enable_mask = BIT(17),
4424		.hw.init = &(const struct clk_init_data) {
4425			.name = "gcc_pcie_rscc_ahb_clk",
4426			.ops = &clk_branch2_ops,
4427		},
4428	},
4429};
4430
4431static struct clk_branch gcc_pcie_rscc_xo_clk = {
4432	.halt_reg = 0xae004,
4433	.halt_check = BRANCH_HALT_VOTED,
4434	.clkr = {
4435		.enable_reg = 0x52020,
4436		.enable_mask = BIT(16),
4437		.hw.init = &(const struct clk_init_data) {
4438			.name = "gcc_pcie_rscc_xo_clk",
4439			.parent_hws = (const struct clk_hw*[]){
4440				&gcc_pcie_rscc_xo_clk_src.clkr.hw,
4441			},
4442			.num_parents = 1,
4443			.flags = CLK_SET_RATE_PARENT,
4444			.ops = &clk_branch2_ops,
4445		},
4446	},
4447};
4448
4449static struct clk_branch gcc_pcie_throttle_cfg_clk = {
4450	.halt_reg = 0xa6028,
4451	.halt_check = BRANCH_HALT_VOTED,
4452	.clkr = {
4453		.enable_reg = 0x52020,
4454		.enable_mask = BIT(15),
4455		.hw.init = &(const struct clk_init_data) {
4456			.name = "gcc_pcie_throttle_cfg_clk",
4457			.ops = &clk_branch2_ops,
4458		},
4459	},
4460};
4461
4462static struct clk_branch gcc_pdm2_clk = {
4463	.halt_reg = 0x3300c,
4464	.halt_check = BRANCH_HALT,
4465	.clkr = {
4466		.enable_reg = 0x3300c,
4467		.enable_mask = BIT(0),
4468		.hw.init = &(const struct clk_init_data) {
4469			.name = "gcc_pdm2_clk",
4470			.parent_hws = (const struct clk_hw*[]){
4471				&gcc_pdm2_clk_src.clkr.hw,
4472			},
4473			.num_parents = 1,
4474			.flags = CLK_SET_RATE_PARENT,
4475			.ops = &clk_branch2_ops,
4476		},
4477	},
4478};
4479
4480static struct clk_branch gcc_pdm_ahb_clk = {
4481	.halt_reg = 0x33004,
4482	.halt_check = BRANCH_HALT_VOTED,
4483	.hwcg_reg = 0x33004,
4484	.hwcg_bit = 1,
4485	.clkr = {
4486		.enable_reg = 0x33004,
4487		.enable_mask = BIT(0),
4488		.hw.init = &(const struct clk_init_data) {
4489			.name = "gcc_pdm_ahb_clk",
4490			.ops = &clk_branch2_ops,
4491		},
4492	},
4493};
4494
4495static struct clk_branch gcc_pdm_xo4_clk = {
4496	.halt_reg = 0x33008,
4497	.halt_check = BRANCH_HALT,
4498	.clkr = {
4499		.enable_reg = 0x33008,
4500		.enable_mask = BIT(0),
4501		.hw.init = &(const struct clk_init_data) {
4502			.name = "gcc_pdm_xo4_clk",
4503			.ops = &clk_branch2_ops,
4504		},
4505	},
4506};
4507
4508static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
4509	.halt_reg = 0x26008,
4510	.halt_check = BRANCH_HALT_VOTED,
4511	.hwcg_reg = 0x26008,
4512	.hwcg_bit = 1,
4513	.clkr = {
4514		.enable_reg = 0x26008,
4515		.enable_mask = BIT(0),
4516		.hw.init = &(const struct clk_init_data) {
4517			.name = "gcc_qmip_camera_nrt_ahb_clk",
4518			.ops = &clk_branch2_ops,
4519		},
4520	},
4521};
4522
4523static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
4524	.halt_reg = 0x2600c,
4525	.halt_check = BRANCH_HALT_VOTED,
4526	.hwcg_reg = 0x2600c,
4527	.hwcg_bit = 1,
4528	.clkr = {
4529		.enable_reg = 0x2600c,
4530		.enable_mask = BIT(0),
4531		.hw.init = &(const struct clk_init_data) {
4532			.name = "gcc_qmip_camera_rt_ahb_clk",
4533			.ops = &clk_branch2_ops,
4534		},
4535	},
4536};
4537
4538static struct clk_branch gcc_qmip_disp1_ahb_clk = {
4539	.halt_reg = 0xbb008,
4540	.halt_check = BRANCH_HALT_VOTED,
4541	.hwcg_reg = 0xbb008,
4542	.hwcg_bit = 1,
4543	.clkr = {
4544		.enable_reg = 0xbb008,
4545		.enable_mask = BIT(0),
4546		.hw.init = &(const struct clk_init_data) {
4547			.name = "gcc_qmip_disp1_ahb_clk",
4548			.ops = &clk_branch2_ops,
4549		},
4550	},
4551};
4552
4553static struct clk_branch gcc_qmip_disp1_rot_ahb_clk = {
4554	.halt_reg = 0xbb00c,
4555	.halt_check = BRANCH_HALT_VOTED,
4556	.hwcg_reg = 0xbb00c,
4557	.hwcg_bit = 1,
4558	.clkr = {
4559		.enable_reg = 0xbb00c,
4560		.enable_mask = BIT(0),
4561		.hw.init = &(const struct clk_init_data) {
4562			.name = "gcc_qmip_disp1_rot_ahb_clk",
4563			.ops = &clk_branch2_ops,
4564		},
4565	},
4566};
4567
4568static struct clk_branch gcc_qmip_disp_ahb_clk = {
4569	.halt_reg = 0x27008,
4570	.halt_check = BRANCH_HALT_VOTED,
4571	.hwcg_reg = 0x27008,
4572	.hwcg_bit = 1,
4573	.clkr = {
4574		.enable_reg = 0x27008,
4575		.enable_mask = BIT(0),
4576		.hw.init = &(const struct clk_init_data) {
4577			.name = "gcc_qmip_disp_ahb_clk",
4578			.ops = &clk_branch2_ops,
4579		},
4580	},
4581};
4582
4583static struct clk_branch gcc_qmip_disp_rot_ahb_clk = {
4584	.halt_reg = 0x2700c,
4585	.halt_check = BRANCH_HALT_VOTED,
4586	.hwcg_reg = 0x2700c,
4587	.hwcg_bit = 1,
4588	.clkr = {
4589		.enable_reg = 0x2700c,
4590		.enable_mask = BIT(0),
4591		.hw.init = &(const struct clk_init_data) {
4592			.name = "gcc_qmip_disp_rot_ahb_clk",
4593			.ops = &clk_branch2_ops,
4594		},
4595	},
4596};
4597
4598static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
4599	.halt_reg = 0x28008,
4600	.halt_check = BRANCH_HALT_VOTED,
4601	.hwcg_reg = 0x28008,
4602	.hwcg_bit = 1,
4603	.clkr = {
4604		.enable_reg = 0x28008,
4605		.enable_mask = BIT(0),
4606		.hw.init = &(const struct clk_init_data) {
4607			.name = "gcc_qmip_video_cvp_ahb_clk",
4608			.ops = &clk_branch2_ops,
4609		},
4610	},
4611};
4612
4613static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
4614	.halt_reg = 0x2800c,
4615	.halt_check = BRANCH_HALT_VOTED,
4616	.hwcg_reg = 0x2800c,
4617	.hwcg_bit = 1,
4618	.clkr = {
4619		.enable_reg = 0x2800c,
4620		.enable_mask = BIT(0),
4621		.hw.init = &(const struct clk_init_data) {
4622			.name = "gcc_qmip_video_vcodec_ahb_clk",
4623			.ops = &clk_branch2_ops,
4624		},
4625	},
4626};
4627
4628static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
4629	.halt_reg = 0x17014,
4630	.halt_check = BRANCH_HALT_VOTED,
4631	.clkr = {
4632		.enable_reg = 0x52008,
4633		.enable_mask = BIT(9),
4634		.hw.init = &(const struct clk_init_data) {
4635			.name = "gcc_qupv3_wrap0_core_2x_clk",
4636			.ops = &clk_branch2_ops,
4637		},
4638	},
4639};
4640
4641static struct clk_branch gcc_qupv3_wrap0_core_clk = {
4642	.halt_reg = 0x1700c,
4643	.halt_check = BRANCH_HALT_VOTED,
4644	.clkr = {
4645		.enable_reg = 0x52008,
4646		.enable_mask = BIT(8),
4647		.hw.init = &(const struct clk_init_data) {
4648			.name = "gcc_qupv3_wrap0_core_clk",
4649			.ops = &clk_branch2_ops,
4650		},
4651	},
4652};
4653
4654static struct clk_branch gcc_qupv3_wrap0_qspi0_clk = {
4655	.halt_reg = 0x17ac4,
4656	.halt_check = BRANCH_HALT_VOTED,
4657	.clkr = {
4658		.enable_reg = 0x52020,
4659		.enable_mask = BIT(0),
4660		.hw.init = &(const struct clk_init_data) {
4661			.name = "gcc_qupv3_wrap0_qspi0_clk",
4662			.parent_hws = (const struct clk_hw*[]){
4663				&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
4664			},
4665			.num_parents = 1,
4666			.flags = CLK_SET_RATE_PARENT,
4667			.ops = &clk_branch2_ops,
4668		},
4669	},
4670};
4671
4672static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
4673	.halt_reg = 0x17144,
4674	.halt_check = BRANCH_HALT_VOTED,
4675	.clkr = {
4676		.enable_reg = 0x52008,
4677		.enable_mask = BIT(10),
4678		.hw.init = &(const struct clk_init_data) {
4679			.name = "gcc_qupv3_wrap0_s0_clk",
4680			.parent_hws = (const struct clk_hw*[]){
4681				&gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
4682			},
4683			.num_parents = 1,
4684			.flags = CLK_SET_RATE_PARENT,
4685			.ops = &clk_branch2_ops,
4686		},
4687	},
4688};
4689
4690static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
4691	.halt_reg = 0x17274,
4692	.halt_check = BRANCH_HALT_VOTED,
4693	.clkr = {
4694		.enable_reg = 0x52008,
4695		.enable_mask = BIT(11),
4696		.hw.init = &(const struct clk_init_data) {
4697			.name = "gcc_qupv3_wrap0_s1_clk",
4698			.parent_hws = (const struct clk_hw*[]){
4699				&gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
4700			},
4701			.num_parents = 1,
4702			.flags = CLK_SET_RATE_PARENT,
4703			.ops = &clk_branch2_ops,
4704		},
4705	},
4706};
4707
4708static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
4709	.halt_reg = 0x173a4,
4710	.halt_check = BRANCH_HALT_VOTED,
4711	.clkr = {
4712		.enable_reg = 0x52008,
4713		.enable_mask = BIT(12),
4714		.hw.init = &(const struct clk_init_data) {
4715			.name = "gcc_qupv3_wrap0_s2_clk",
4716			.parent_hws = (const struct clk_hw*[]){
4717				&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
4718			},
4719			.num_parents = 1,
4720			.flags = CLK_SET_RATE_PARENT,
4721			.ops = &clk_branch2_ops,
4722		},
4723	},
4724};
4725
4726static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
4727	.halt_reg = 0x174d4,
4728	.halt_check = BRANCH_HALT_VOTED,
4729	.clkr = {
4730		.enable_reg = 0x52008,
4731		.enable_mask = BIT(13),
4732		.hw.init = &(const struct clk_init_data) {
4733			.name = "gcc_qupv3_wrap0_s3_clk",
4734			.parent_hws = (const struct clk_hw*[]){
4735				&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
4736			},
4737			.num_parents = 1,
4738			.flags = CLK_SET_RATE_PARENT,
4739			.ops = &clk_branch2_ops,
4740		},
4741	},
4742};
4743
4744static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
4745	.halt_reg = 0x17604,
4746	.halt_check = BRANCH_HALT_VOTED,
4747	.clkr = {
4748		.enable_reg = 0x52008,
4749		.enable_mask = BIT(14),
4750		.hw.init = &(const struct clk_init_data) {
4751			.name = "gcc_qupv3_wrap0_s4_clk",
4752			.parent_hws = (const struct clk_hw*[]){
4753				&gcc_qupv3_wrap0_s4_div_clk_src.clkr.hw,
4754			},
4755			.num_parents = 1,
4756			.flags = CLK_SET_RATE_PARENT,
4757			.ops = &clk_branch2_ops,
4758		},
4759	},
4760};
4761
4762static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
4763	.halt_reg = 0x17734,
4764	.halt_check = BRANCH_HALT_VOTED,
4765	.clkr = {
4766		.enable_reg = 0x52008,
4767		.enable_mask = BIT(15),
4768		.hw.init = &(const struct clk_init_data) {
4769			.name = "gcc_qupv3_wrap0_s5_clk",
4770			.parent_hws = (const struct clk_hw*[]){
4771				&gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
4772			},
4773			.num_parents = 1,
4774			.flags = CLK_SET_RATE_PARENT,
4775			.ops = &clk_branch2_ops,
4776		},
4777	},
4778};
4779
4780static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
4781	.halt_reg = 0x17864,
4782	.halt_check = BRANCH_HALT_VOTED,
4783	.clkr = {
4784		.enable_reg = 0x52008,
4785		.enable_mask = BIT(16),
4786		.hw.init = &(const struct clk_init_data) {
4787			.name = "gcc_qupv3_wrap0_s6_clk",
4788			.parent_hws = (const struct clk_hw*[]){
4789				&gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
4790			},
4791			.num_parents = 1,
4792			.flags = CLK_SET_RATE_PARENT,
4793			.ops = &clk_branch2_ops,
4794		},
4795	},
4796};
4797
4798static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
4799	.halt_reg = 0x17994,
4800	.halt_check = BRANCH_HALT_VOTED,
4801	.clkr = {
4802		.enable_reg = 0x52008,
4803		.enable_mask = BIT(17),
4804		.hw.init = &(const struct clk_init_data) {
4805			.name = "gcc_qupv3_wrap0_s7_clk",
4806			.parent_hws = (const struct clk_hw*[]){
4807				&gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
4808			},
4809			.num_parents = 1,
4810			.flags = CLK_SET_RATE_PARENT,
4811			.ops = &clk_branch2_ops,
4812		},
4813	},
4814};
4815
4816static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
4817	.halt_reg = 0x18014,
4818	.halt_check = BRANCH_HALT_VOTED,
4819	.clkr = {
4820		.enable_reg = 0x52008,
4821		.enable_mask = BIT(18),
4822		.hw.init = &(const struct clk_init_data) {
4823			.name = "gcc_qupv3_wrap1_core_2x_clk",
4824			.ops = &clk_branch2_ops,
4825		},
4826	},
4827};
4828
4829static struct clk_branch gcc_qupv3_wrap1_core_clk = {
4830	.halt_reg = 0x1800c,
4831	.halt_check = BRANCH_HALT_VOTED,
4832	.clkr = {
4833		.enable_reg = 0x52008,
4834		.enable_mask = BIT(19),
4835		.hw.init = &(const struct clk_init_data) {
4836			.name = "gcc_qupv3_wrap1_core_clk",
4837			.ops = &clk_branch2_ops,
4838		},
4839	},
4840};
4841
4842static struct clk_branch gcc_qupv3_wrap1_qspi0_clk = {
4843	.halt_reg = 0x18ac4,
4844	.halt_check = BRANCH_HALT_VOTED,
4845	.clkr = {
4846		.enable_reg = 0x52020,
4847		.enable_mask = BIT(2),
4848		.hw.init = &(const struct clk_init_data) {
4849			.name = "gcc_qupv3_wrap1_qspi0_clk",
4850			.parent_hws = (const struct clk_hw*[]){
4851				&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
4852			},
4853			.num_parents = 1,
4854			.flags = CLK_SET_RATE_PARENT,
4855			.ops = &clk_branch2_ops,
4856		},
4857	},
4858};
4859
4860static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
4861	.halt_reg = 0x18144,
4862	.halt_check = BRANCH_HALT_VOTED,
4863	.clkr = {
4864		.enable_reg = 0x52008,
4865		.enable_mask = BIT(22),
4866		.hw.init = &(const struct clk_init_data) {
4867			.name = "gcc_qupv3_wrap1_s0_clk",
4868			.parent_hws = (const struct clk_hw*[]){
4869				&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
4870			},
4871			.num_parents = 1,
4872			.flags = CLK_SET_RATE_PARENT,
4873			.ops = &clk_branch2_ops,
4874		},
4875	},
4876};
4877
4878static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
4879	.halt_reg = 0x18274,
4880	.halt_check = BRANCH_HALT_VOTED,
4881	.clkr = {
4882		.enable_reg = 0x52008,
4883		.enable_mask = BIT(23),
4884		.hw.init = &(const struct clk_init_data) {
4885			.name = "gcc_qupv3_wrap1_s1_clk",
4886			.parent_hws = (const struct clk_hw*[]){
4887				&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
4888			},
4889			.num_parents = 1,
4890			.flags = CLK_SET_RATE_PARENT,
4891			.ops = &clk_branch2_ops,
4892		},
4893	},
4894};
4895
4896static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
4897	.halt_reg = 0x183a4,
4898	.halt_check = BRANCH_HALT_VOTED,
4899	.clkr = {
4900		.enable_reg = 0x52008,
4901		.enable_mask = BIT(24),
4902		.hw.init = &(const struct clk_init_data) {
4903			.name = "gcc_qupv3_wrap1_s2_clk",
4904			.parent_hws = (const struct clk_hw*[]){
4905				&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
4906			},
4907			.num_parents = 1,
4908			.flags = CLK_SET_RATE_PARENT,
4909			.ops = &clk_branch2_ops,
4910		},
4911	},
4912};
4913
4914static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
4915	.halt_reg = 0x184d4,
4916	.halt_check = BRANCH_HALT_VOTED,
4917	.clkr = {
4918		.enable_reg = 0x52008,
4919		.enable_mask = BIT(25),
4920		.hw.init = &(const struct clk_init_data) {
4921			.name = "gcc_qupv3_wrap1_s3_clk",
4922			.parent_hws = (const struct clk_hw*[]){
4923				&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
4924			},
4925			.num_parents = 1,
4926			.flags = CLK_SET_RATE_PARENT,
4927			.ops = &clk_branch2_ops,
4928		},
4929	},
4930};
4931
4932static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
4933	.halt_reg = 0x18604,
4934	.halt_check = BRANCH_HALT_VOTED,
4935	.clkr = {
4936		.enable_reg = 0x52008,
4937		.enable_mask = BIT(26),
4938		.hw.init = &(const struct clk_init_data) {
4939			.name = "gcc_qupv3_wrap1_s4_clk",
4940			.parent_hws = (const struct clk_hw*[]){
4941				&gcc_qupv3_wrap1_s4_div_clk_src.clkr.hw,
4942			},
4943			.num_parents = 1,
4944			.flags = CLK_SET_RATE_PARENT,
4945			.ops = &clk_branch2_ops,
4946		},
4947	},
4948};
4949
4950static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
4951	.halt_reg = 0x18734,
4952	.halt_check = BRANCH_HALT_VOTED,
4953	.clkr = {
4954		.enable_reg = 0x52008,
4955		.enable_mask = BIT(27),
4956		.hw.init = &(const struct clk_init_data) {
4957			.name = "gcc_qupv3_wrap1_s5_clk",
4958			.parent_hws = (const struct clk_hw*[]){
4959				&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
4960			},
4961			.num_parents = 1,
4962			.flags = CLK_SET_RATE_PARENT,
4963			.ops = &clk_branch2_ops,
4964		},
4965	},
4966};
4967
4968static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
4969	.halt_reg = 0x18864,
4970	.halt_check = BRANCH_HALT_VOTED,
4971	.clkr = {
4972		.enable_reg = 0x52018,
4973		.enable_mask = BIT(27),
4974		.hw.init = &(const struct clk_init_data) {
4975			.name = "gcc_qupv3_wrap1_s6_clk",
4976			.parent_hws = (const struct clk_hw*[]){
4977				&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
4978			},
4979			.num_parents = 1,
4980			.flags = CLK_SET_RATE_PARENT,
4981			.ops = &clk_branch2_ops,
4982		},
4983	},
4984};
4985
4986static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
4987	.halt_reg = 0x18994,
4988	.halt_check = BRANCH_HALT_VOTED,
4989	.clkr = {
4990		.enable_reg = 0x52018,
4991		.enable_mask = BIT(28),
4992		.hw.init = &(const struct clk_init_data) {
4993			.name = "gcc_qupv3_wrap1_s7_clk",
4994			.parent_hws = (const struct clk_hw*[]){
4995				&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
4996			},
4997			.num_parents = 1,
4998			.flags = CLK_SET_RATE_PARENT,
4999			.ops = &clk_branch2_ops,
5000		},
5001	},
5002};
5003
5004static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
5005	.halt_reg = 0x1e014,
5006	.halt_check = BRANCH_HALT_VOTED,
5007	.clkr = {
5008		.enable_reg = 0x52010,
5009		.enable_mask = BIT(3),
5010		.hw.init = &(const struct clk_init_data) {
5011			.name = "gcc_qupv3_wrap2_core_2x_clk",
5012			.ops = &clk_branch2_ops,
5013		},
5014	},
5015};
5016
5017static struct clk_branch gcc_qupv3_wrap2_core_clk = {
5018	.halt_reg = 0x1e00c,
5019	.halt_check = BRANCH_HALT_VOTED,
5020	.clkr = {
5021		.enable_reg = 0x52010,
5022		.enable_mask = BIT(0),
5023		.hw.init = &(const struct clk_init_data) {
5024			.name = "gcc_qupv3_wrap2_core_clk",
5025			.ops = &clk_branch2_ops,
5026		},
5027	},
5028};
5029
5030static struct clk_branch gcc_qupv3_wrap2_qspi0_clk = {
5031	.halt_reg = 0x1eac4,
5032	.halt_check = BRANCH_HALT_VOTED,
5033	.clkr = {
5034		.enable_reg = 0x52020,
5035		.enable_mask = BIT(4),
5036		.hw.init = &(const struct clk_init_data) {
5037			.name = "gcc_qupv3_wrap2_qspi0_clk",
5038			.parent_hws = (const struct clk_hw*[]){
5039				&gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
5040			},
5041			.num_parents = 1,
5042			.flags = CLK_SET_RATE_PARENT,
5043			.ops = &clk_branch2_ops,
5044		},
5045	},
5046};
5047
5048static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
5049	.halt_reg = 0x1e144,
5050	.halt_check = BRANCH_HALT_VOTED,
5051	.clkr = {
5052		.enable_reg = 0x52010,
5053		.enable_mask = BIT(4),
5054		.hw.init = &(const struct clk_init_data) {
5055			.name = "gcc_qupv3_wrap2_s0_clk",
5056			.parent_hws = (const struct clk_hw*[]){
5057				&gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
5058			},
5059			.num_parents = 1,
5060			.flags = CLK_SET_RATE_PARENT,
5061			.ops = &clk_branch2_ops,
5062		},
5063	},
5064};
5065
5066static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
5067	.halt_reg = 0x1e274,
5068	.halt_check = BRANCH_HALT_VOTED,
5069	.clkr = {
5070		.enable_reg = 0x52010,
5071		.enable_mask = BIT(5),
5072		.hw.init = &(const struct clk_init_data) {
5073			.name = "gcc_qupv3_wrap2_s1_clk",
5074			.parent_hws = (const struct clk_hw*[]){
5075				&gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
5076			},
5077			.num_parents = 1,
5078			.flags = CLK_SET_RATE_PARENT,
5079			.ops = &clk_branch2_ops,
5080		},
5081	},
5082};
5083
5084static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
5085	.halt_reg = 0x1e3a4,
5086	.halt_check = BRANCH_HALT_VOTED,
5087	.clkr = {
5088		.enable_reg = 0x52010,
5089		.enable_mask = BIT(6),
5090		.hw.init = &(const struct clk_init_data) {
5091			.name = "gcc_qupv3_wrap2_s2_clk",
5092			.parent_hws = (const struct clk_hw*[]){
5093				&gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
5094			},
5095			.num_parents = 1,
5096			.flags = CLK_SET_RATE_PARENT,
5097			.ops = &clk_branch2_ops,
5098		},
5099	},
5100};
5101
5102static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
5103	.halt_reg = 0x1e4d4,
5104	.halt_check = BRANCH_HALT_VOTED,
5105	.clkr = {
5106		.enable_reg = 0x52010,
5107		.enable_mask = BIT(7),
5108		.hw.init = &(const struct clk_init_data) {
5109			.name = "gcc_qupv3_wrap2_s3_clk",
5110			.parent_hws = (const struct clk_hw*[]){
5111				&gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
5112			},
5113			.num_parents = 1,
5114			.flags = CLK_SET_RATE_PARENT,
5115			.ops = &clk_branch2_ops,
5116		},
5117	},
5118};
5119
5120static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
5121	.halt_reg = 0x1e604,
5122	.halt_check = BRANCH_HALT_VOTED,
5123	.clkr = {
5124		.enable_reg = 0x52010,
5125		.enable_mask = BIT(8),
5126		.hw.init = &(const struct clk_init_data) {
5127			.name = "gcc_qupv3_wrap2_s4_clk",
5128			.parent_hws = (const struct clk_hw*[]){
5129				&gcc_qupv3_wrap2_s4_div_clk_src.clkr.hw,
5130			},
5131			.num_parents = 1,
5132			.flags = CLK_SET_RATE_PARENT,
5133			.ops = &clk_branch2_ops,
5134		},
5135	},
5136};
5137
5138static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
5139	.halt_reg = 0x1e734,
5140	.halt_check = BRANCH_HALT_VOTED,
5141	.clkr = {
5142		.enable_reg = 0x52010,
5143		.enable_mask = BIT(9),
5144		.hw.init = &(const struct clk_init_data) {
5145			.name = "gcc_qupv3_wrap2_s5_clk",
5146			.parent_hws = (const struct clk_hw*[]){
5147				&gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
5148			},
5149			.num_parents = 1,
5150			.flags = CLK_SET_RATE_PARENT,
5151			.ops = &clk_branch2_ops,
5152		},
5153	},
5154};
5155
5156static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
5157	.halt_reg = 0x1e864,
5158	.halt_check = BRANCH_HALT_VOTED,
5159	.clkr = {
5160		.enable_reg = 0x52018,
5161		.enable_mask = BIT(29),
5162		.hw.init = &(const struct clk_init_data) {
5163			.name = "gcc_qupv3_wrap2_s6_clk",
5164			.parent_hws = (const struct clk_hw*[]){
5165				&gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
5166			},
5167			.num_parents = 1,
5168			.flags = CLK_SET_RATE_PARENT,
5169			.ops = &clk_branch2_ops,
5170		},
5171	},
5172};
5173
5174static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
5175	.halt_reg = 0x1e994,
5176	.halt_check = BRANCH_HALT_VOTED,
5177	.clkr = {
5178		.enable_reg = 0x52018,
5179		.enable_mask = BIT(30),
5180		.hw.init = &(const struct clk_init_data) {
5181			.name = "gcc_qupv3_wrap2_s7_clk",
5182			.parent_hws = (const struct clk_hw*[]){
5183				&gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
5184			},
5185			.num_parents = 1,
5186			.flags = CLK_SET_RATE_PARENT,
5187			.ops = &clk_branch2_ops,
5188		},
5189	},
5190};
5191
5192static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
5193	.halt_reg = 0x17004,
5194	.halt_check = BRANCH_HALT_VOTED,
5195	.hwcg_reg = 0x17004,
5196	.hwcg_bit = 1,
5197	.clkr = {
5198		.enable_reg = 0x52008,
5199		.enable_mask = BIT(6),
5200		.hw.init = &(const struct clk_init_data) {
5201			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
5202			.ops = &clk_branch2_ops,
5203		},
5204	},
5205};
5206
5207static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
5208	.halt_reg = 0x17008,
5209	.halt_check = BRANCH_HALT_VOTED,
5210	.hwcg_reg = 0x17008,
5211	.hwcg_bit = 1,
5212	.clkr = {
5213		.enable_reg = 0x52008,
5214		.enable_mask = BIT(7),
5215		.hw.init = &(const struct clk_init_data) {
5216			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
5217			.ops = &clk_branch2_ops,
5218		},
5219	},
5220};
5221
5222static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
5223	.halt_reg = 0x18004,
5224	.halt_check = BRANCH_HALT_VOTED,
5225	.hwcg_reg = 0x18004,
5226	.hwcg_bit = 1,
5227	.clkr = {
5228		.enable_reg = 0x52008,
5229		.enable_mask = BIT(20),
5230		.hw.init = &(const struct clk_init_data) {
5231			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
5232			.ops = &clk_branch2_ops,
5233		},
5234	},
5235};
5236
5237static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
5238	.halt_reg = 0x18008,
5239	.halt_check = BRANCH_HALT_VOTED,
5240	.hwcg_reg = 0x18008,
5241	.hwcg_bit = 1,
5242	.clkr = {
5243		.enable_reg = 0x52008,
5244		.enable_mask = BIT(21),
5245		.hw.init = &(const struct clk_init_data) {
5246			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
5247			.ops = &clk_branch2_ops,
5248		},
5249	},
5250};
5251
5252static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
5253	.halt_reg = 0x1e004,
5254	.halt_check = BRANCH_HALT_VOTED,
5255	.hwcg_reg = 0x1e004,
5256	.hwcg_bit = 1,
5257	.clkr = {
5258		.enable_reg = 0x52010,
5259		.enable_mask = BIT(2),
5260		.hw.init = &(const struct clk_init_data) {
5261			.name = "gcc_qupv3_wrap_2_m_ahb_clk",
5262			.ops = &clk_branch2_ops,
5263		},
5264	},
5265};
5266
5267static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
5268	.halt_reg = 0x1e008,
5269	.halt_check = BRANCH_HALT_VOTED,
5270	.hwcg_reg = 0x1e008,
5271	.hwcg_bit = 1,
5272	.clkr = {
5273		.enable_reg = 0x52010,
5274		.enable_mask = BIT(1),
5275		.hw.init = &(const struct clk_init_data) {
5276			.name = "gcc_qupv3_wrap_2_s_ahb_clk",
5277			.ops = &clk_branch2_ops,
5278		},
5279	},
5280};
5281
5282static struct clk_branch gcc_sdcc2_ahb_clk = {
5283	.halt_reg = 0x14008,
5284	.halt_check = BRANCH_HALT,
5285	.clkr = {
5286		.enable_reg = 0x14008,
5287		.enable_mask = BIT(0),
5288		.hw.init = &(const struct clk_init_data) {
5289			.name = "gcc_sdcc2_ahb_clk",
5290			.ops = &clk_branch2_ops,
5291		},
5292	},
5293};
5294
5295static struct clk_branch gcc_sdcc2_apps_clk = {
5296	.halt_reg = 0x14004,
5297	.halt_check = BRANCH_HALT,
5298	.clkr = {
5299		.enable_reg = 0x14004,
5300		.enable_mask = BIT(0),
5301		.hw.init = &(const struct clk_init_data) {
5302			.name = "gcc_sdcc2_apps_clk",
5303			.parent_hws = (const struct clk_hw*[]){
5304				&gcc_sdcc2_apps_clk_src.clkr.hw,
5305			},
5306			.num_parents = 1,
5307			.flags = CLK_SET_RATE_PARENT,
5308			.ops = &clk_branch2_ops,
5309		},
5310	},
5311};
5312
5313static struct clk_branch gcc_sdcc4_ahb_clk = {
5314	.halt_reg = 0x16008,
5315	.halt_check = BRANCH_HALT,
5316	.clkr = {
5317		.enable_reg = 0x16008,
5318		.enable_mask = BIT(0),
5319		.hw.init = &(const struct clk_init_data) {
5320			.name = "gcc_sdcc4_ahb_clk",
5321			.ops = &clk_branch2_ops,
5322		},
5323	},
5324};
5325
5326static struct clk_branch gcc_sdcc4_apps_clk = {
5327	.halt_reg = 0x16004,
5328	.halt_check = BRANCH_HALT,
5329	.clkr = {
5330		.enable_reg = 0x16004,
5331		.enable_mask = BIT(0),
5332		.hw.init = &(const struct clk_init_data) {
5333			.name = "gcc_sdcc4_apps_clk",
5334			.parent_hws = (const struct clk_hw*[]){
5335				&gcc_sdcc4_apps_clk_src.clkr.hw,
5336			},
5337			.num_parents = 1,
5338			.flags = CLK_SET_RATE_PARENT,
5339			.ops = &clk_branch2_ops,
5340		},
5341	},
5342};
5343
5344static struct clk_branch gcc_sys_noc_usb_axi_clk = {
5345	.halt_reg = 0x5d000,
5346	.halt_check = BRANCH_HALT_VOTED,
5347	.hwcg_reg = 0x5d000,
5348	.hwcg_bit = 1,
5349	.clkr = {
5350		.enable_reg = 0x5d000,
5351		.enable_mask = BIT(0),
5352		.hw.init = &(const struct clk_init_data) {
5353			.name = "gcc_sys_noc_usb_axi_clk",
5354			.ops = &clk_branch2_ops,
5355		},
5356	},
5357};
5358
5359static struct clk_branch gcc_ufs_1_card_clkref_clk = {
5360	.halt_reg = 0x8c000,
5361	.halt_check = BRANCH_HALT,
5362	.clkr = {
5363		.enable_reg = 0x8c000,
5364		.enable_mask = BIT(0),
5365		.hw.init = &(const struct clk_init_data) {
5366			.name = "gcc_ufs_1_card_clkref_clk",
5367			.parent_data = &gcc_parent_data_tcxo,
5368			.num_parents = 1,
5369			.ops = &clk_branch2_ops,
5370		},
5371	},
5372};
5373
5374static struct clk_branch gcc_ufs_card_ahb_clk = {
5375	.halt_reg = 0x75018,
5376	.halt_check = BRANCH_HALT_VOTED,
5377	.hwcg_reg = 0x75018,
5378	.hwcg_bit = 1,
5379	.clkr = {
5380		.enable_reg = 0x75018,
5381		.enable_mask = BIT(0),
5382		.hw.init = &(const struct clk_init_data) {
5383			.name = "gcc_ufs_card_ahb_clk",
5384			.ops = &clk_branch2_ops,
5385		},
5386	},
5387};
5388
5389static struct clk_branch gcc_ufs_card_axi_clk = {
5390	.halt_reg = 0x75010,
5391	.halt_check = BRANCH_HALT_VOTED,
5392	.hwcg_reg = 0x75010,
5393	.hwcg_bit = 1,
5394	.clkr = {
5395		.enable_reg = 0x75010,
5396		.enable_mask = BIT(0),
5397		.hw.init = &(const struct clk_init_data) {
5398			.name = "gcc_ufs_card_axi_clk",
5399			.parent_hws = (const struct clk_hw*[]){
5400				&gcc_ufs_card_axi_clk_src.clkr.hw,
5401			},
5402			.num_parents = 1,
5403			.flags = CLK_SET_RATE_PARENT,
5404			.ops = &clk_branch2_ops,
5405		},
5406	},
5407};
5408
5409static struct clk_branch gcc_ufs_card_axi_hw_ctl_clk = {
5410	.halt_reg = 0x75010,
5411	.halt_check = BRANCH_HALT_VOTED,
5412	.hwcg_reg = 0x75010,
5413	.hwcg_bit = 1,
5414	.clkr = {
5415		.enable_reg = 0x75010,
5416		.enable_mask = BIT(1),
5417		.hw.init = &(const struct clk_init_data) {
5418			.name = "gcc_ufs_card_axi_hw_ctl_clk",
5419			.parent_hws = (const struct clk_hw*[]){
5420				&gcc_ufs_card_axi_clk_src.clkr.hw,
5421			},
5422			.num_parents = 1,
5423			.flags = CLK_SET_RATE_PARENT,
5424			.ops = &clk_branch2_ops,
5425		},
5426	},
5427};
5428
5429static struct clk_branch gcc_ufs_card_clkref_clk = {
5430	.halt_reg = 0x8c054,
5431	.halt_check = BRANCH_HALT,
5432	.clkr = {
5433		.enable_reg = 0x8c054,
5434		.enable_mask = BIT(0),
5435		.hw.init = &(const struct clk_init_data) {
5436			.name = "gcc_ufs_card_clkref_clk",
5437			.parent_data = &gcc_parent_data_tcxo,
5438			.num_parents = 1,
5439			.ops = &clk_branch2_ops,
5440		},
5441	},
5442};
5443
5444static struct clk_branch gcc_ufs_card_ice_core_clk = {
5445	.halt_reg = 0x75064,
5446	.halt_check = BRANCH_HALT_VOTED,
5447	.hwcg_reg = 0x75064,
5448	.hwcg_bit = 1,
5449	.clkr = {
5450		.enable_reg = 0x75064,
5451		.enable_mask = BIT(0),
5452		.hw.init = &(const struct clk_init_data) {
5453			.name = "gcc_ufs_card_ice_core_clk",
5454			.parent_hws = (const struct clk_hw*[]){
5455				&gcc_ufs_card_ice_core_clk_src.clkr.hw,
5456			},
5457			.num_parents = 1,
5458			.flags = CLK_SET_RATE_PARENT,
5459			.ops = &clk_branch2_ops,
5460		},
5461	},
5462};
5463
5464static struct clk_branch gcc_ufs_card_ice_core_hw_ctl_clk = {
5465	.halt_reg = 0x75064,
5466	.halt_check = BRANCH_HALT_VOTED,
5467	.hwcg_reg = 0x75064,
5468	.hwcg_bit = 1,
5469	.clkr = {
5470		.enable_reg = 0x75064,
5471		.enable_mask = BIT(1),
5472		.hw.init = &(const struct clk_init_data) {
5473			.name = "gcc_ufs_card_ice_core_hw_ctl_clk",
5474			.parent_hws = (const struct clk_hw*[]){
5475				&gcc_ufs_card_ice_core_clk_src.clkr.hw,
5476			},
5477			.num_parents = 1,
5478			.flags = CLK_SET_RATE_PARENT,
5479			.ops = &clk_branch2_ops,
5480		},
5481	},
5482};
5483
5484static struct clk_branch gcc_ufs_card_phy_aux_clk = {
5485	.halt_reg = 0x7509c,
5486	.halt_check = BRANCH_HALT_VOTED,
5487	.hwcg_reg = 0x7509c,
5488	.hwcg_bit = 1,
5489	.clkr = {
5490		.enable_reg = 0x7509c,
5491		.enable_mask = BIT(0),
5492		.hw.init = &(const struct clk_init_data) {
5493			.name = "gcc_ufs_card_phy_aux_clk",
5494			.parent_hws = (const struct clk_hw*[]){
5495				&gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5496			},
5497			.num_parents = 1,
5498			.flags = CLK_SET_RATE_PARENT,
5499			.ops = &clk_branch2_ops,
5500		},
5501	},
5502};
5503
5504static struct clk_branch gcc_ufs_card_phy_aux_hw_ctl_clk = {
5505	.halt_reg = 0x7509c,
5506	.halt_check = BRANCH_HALT_VOTED,
5507	.hwcg_reg = 0x7509c,
5508	.hwcg_bit = 1,
5509	.clkr = {
5510		.enable_reg = 0x7509c,
5511		.enable_mask = BIT(1),
5512		.hw.init = &(const struct clk_init_data) {
5513			.name = "gcc_ufs_card_phy_aux_hw_ctl_clk",
5514			.parent_hws = (const struct clk_hw*[]){
5515				&gcc_ufs_card_phy_aux_clk_src.clkr.hw,
5516			},
5517			.num_parents = 1,
5518			.flags = CLK_SET_RATE_PARENT,
5519			.ops = &clk_branch2_ops,
5520		},
5521	},
5522};
5523
5524static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
5525	.halt_reg = 0x75020,
5526	.halt_check = BRANCH_HALT_DELAY,
5527	.clkr = {
5528		.enable_reg = 0x75020,
5529		.enable_mask = BIT(0),
5530		.hw.init = &(const struct clk_init_data) {
5531			.name = "gcc_ufs_card_rx_symbol_0_clk",
5532			.parent_hws = (const struct clk_hw*[]){
5533				&gcc_ufs_card_rx_symbol_0_clk_src.clkr.hw,
5534			},
5535			.num_parents = 1,
5536			.flags = CLK_SET_RATE_PARENT,
5537			.ops = &clk_branch2_ops,
5538		},
5539	},
5540};
5541
5542static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
5543	.halt_reg = 0x750b8,
5544	.halt_check = BRANCH_HALT_DELAY,
5545	.clkr = {
5546		.enable_reg = 0x750b8,
5547		.enable_mask = BIT(0),
5548		.hw.init = &(const struct clk_init_data) {
5549			.name = "gcc_ufs_card_rx_symbol_1_clk",
5550			.parent_hws = (const struct clk_hw*[]){
5551				&gcc_ufs_card_rx_symbol_1_clk_src.clkr.hw,
5552			},
5553			.num_parents = 1,
5554			.flags = CLK_SET_RATE_PARENT,
5555			.ops = &clk_branch2_ops,
5556		},
5557	},
5558};
5559
5560static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
5561	.halt_reg = 0x7501c,
5562	.halt_check = BRANCH_HALT_DELAY,
5563	.clkr = {
5564		.enable_reg = 0x7501c,
5565		.enable_mask = BIT(0),
5566		.hw.init = &(const struct clk_init_data) {
5567			.name = "gcc_ufs_card_tx_symbol_0_clk",
5568			.parent_hws = (const struct clk_hw*[]){
5569				&gcc_ufs_card_tx_symbol_0_clk_src.clkr.hw,
5570			},
5571			.num_parents = 1,
5572			.flags = CLK_SET_RATE_PARENT,
5573			.ops = &clk_branch2_ops,
5574		},
5575	},
5576};
5577
5578static struct clk_branch gcc_ufs_card_unipro_core_clk = {
5579	.halt_reg = 0x7505c,
5580	.halt_check = BRANCH_HALT_VOTED,
5581	.hwcg_reg = 0x7505c,
5582	.hwcg_bit = 1,
5583	.clkr = {
5584		.enable_reg = 0x7505c,
5585		.enable_mask = BIT(0),
5586		.hw.init = &(const struct clk_init_data) {
5587			.name = "gcc_ufs_card_unipro_core_clk",
5588			.parent_hws = (const struct clk_hw*[]){
5589				&gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5590			},
5591			.num_parents = 1,
5592			.flags = CLK_SET_RATE_PARENT,
5593			.ops = &clk_branch2_ops,
5594		},
5595	},
5596};
5597
5598static struct clk_branch gcc_ufs_card_unipro_core_hw_ctl_clk = {
5599	.halt_reg = 0x7505c,
5600	.halt_check = BRANCH_HALT_VOTED,
5601	.hwcg_reg = 0x7505c,
5602	.hwcg_bit = 1,
5603	.clkr = {
5604		.enable_reg = 0x7505c,
5605		.enable_mask = BIT(1),
5606		.hw.init = &(const struct clk_init_data) {
5607			.name = "gcc_ufs_card_unipro_core_hw_ctl_clk",
5608			.parent_hws = (const struct clk_hw*[]){
5609				&gcc_ufs_card_unipro_core_clk_src.clkr.hw,
5610			},
5611			.num_parents = 1,
5612			.flags = CLK_SET_RATE_PARENT,
5613			.ops = &clk_branch2_ops,
5614		},
5615	},
5616};
5617
5618static struct clk_branch gcc_ufs_phy_ahb_clk = {
5619	.halt_reg = 0x77018,
5620	.halt_check = BRANCH_HALT_VOTED,
5621	.hwcg_reg = 0x77018,
5622	.hwcg_bit = 1,
5623	.clkr = {
5624		.enable_reg = 0x77018,
5625		.enable_mask = BIT(0),
5626		.hw.init = &(const struct clk_init_data) {
5627			.name = "gcc_ufs_phy_ahb_clk",
5628			.ops = &clk_branch2_ops,
5629		},
5630	},
5631};
5632
5633static struct clk_branch gcc_ufs_phy_axi_clk = {
5634	.halt_reg = 0x77010,
5635	.halt_check = BRANCH_HALT_VOTED,
5636	.hwcg_reg = 0x77010,
5637	.hwcg_bit = 1,
5638	.clkr = {
5639		.enable_reg = 0x77010,
5640		.enable_mask = BIT(0),
5641		.hw.init = &(const struct clk_init_data) {
5642			.name = "gcc_ufs_phy_axi_clk",
5643			.parent_hws = (const struct clk_hw*[]){
5644				&gcc_ufs_phy_axi_clk_src.clkr.hw,
5645			},
5646			.num_parents = 1,
5647			.flags = CLK_SET_RATE_PARENT,
5648			.ops = &clk_branch2_ops,
5649		},
5650	},
5651};
5652
5653static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = {
5654	.halt_reg = 0x77010,
5655	.halt_check = BRANCH_HALT_VOTED,
5656	.hwcg_reg = 0x77010,
5657	.hwcg_bit = 1,
5658	.clkr = {
5659		.enable_reg = 0x77010,
5660		.enable_mask = BIT(1),
5661		.hw.init = &(const struct clk_init_data) {
5662			.name = "gcc_ufs_phy_axi_hw_ctl_clk",
5663			.parent_hws = (const struct clk_hw*[]){
5664				&gcc_ufs_phy_axi_clk_src.clkr.hw,
5665			},
5666			.num_parents = 1,
5667			.flags = CLK_SET_RATE_PARENT,
5668			.ops = &clk_branch2_ops,
5669		},
5670	},
5671};
5672
5673static struct clk_branch gcc_ufs_phy_ice_core_clk = {
5674	.halt_reg = 0x77064,
5675	.halt_check = BRANCH_HALT_VOTED,
5676	.hwcg_reg = 0x77064,
5677	.hwcg_bit = 1,
5678	.clkr = {
5679		.enable_reg = 0x77064,
5680		.enable_mask = BIT(0),
5681		.hw.init = &(const struct clk_init_data) {
5682			.name = "gcc_ufs_phy_ice_core_clk",
5683			.parent_hws = (const struct clk_hw*[]){
5684				&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5685			},
5686			.num_parents = 1,
5687			.flags = CLK_SET_RATE_PARENT,
5688			.ops = &clk_branch2_ops,
5689		},
5690	},
5691};
5692
5693static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = {
5694	.halt_reg = 0x77064,
5695	.halt_check = BRANCH_HALT_VOTED,
5696	.hwcg_reg = 0x77064,
5697	.hwcg_bit = 1,
5698	.clkr = {
5699		.enable_reg = 0x77064,
5700		.enable_mask = BIT(1),
5701		.hw.init = &(const struct clk_init_data) {
5702			.name = "gcc_ufs_phy_ice_core_hw_ctl_clk",
5703			.parent_hws = (const struct clk_hw*[]){
5704				&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
5705			},
5706			.num_parents = 1,
5707			.flags = CLK_SET_RATE_PARENT,
5708			.ops = &clk_branch2_ops,
5709		},
5710	},
5711};
5712
5713static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
5714	.halt_reg = 0x7709c,
5715	.halt_check = BRANCH_HALT_VOTED,
5716	.hwcg_reg = 0x7709c,
5717	.hwcg_bit = 1,
5718	.clkr = {
5719		.enable_reg = 0x7709c,
5720		.enable_mask = BIT(0),
5721		.hw.init = &(const struct clk_init_data) {
5722			.name = "gcc_ufs_phy_phy_aux_clk",
5723			.parent_hws = (const struct clk_hw*[]){
5724				&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5725			},
5726			.num_parents = 1,
5727			.flags = CLK_SET_RATE_PARENT,
5728			.ops = &clk_branch2_ops,
5729		},
5730	},
5731};
5732
5733static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = {
5734	.halt_reg = 0x7709c,
5735	.halt_check = BRANCH_HALT_VOTED,
5736	.hwcg_reg = 0x7709c,
5737	.hwcg_bit = 1,
5738	.clkr = {
5739		.enable_reg = 0x7709c,
5740		.enable_mask = BIT(1),
5741		.hw.init = &(const struct clk_init_data) {
5742			.name = "gcc_ufs_phy_phy_aux_hw_ctl_clk",
5743			.parent_hws = (const struct clk_hw*[]){
5744				&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
5745			},
5746			.num_parents = 1,
5747			.flags = CLK_SET_RATE_PARENT,
5748			.ops = &clk_branch2_ops,
5749		},
5750	},
5751};
5752
5753static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
5754	.halt_reg = 0x77020,
5755	.halt_check = BRANCH_HALT_DELAY,
5756	.clkr = {
5757		.enable_reg = 0x77020,
5758		.enable_mask = BIT(0),
5759		.hw.init = &(const struct clk_init_data) {
5760			.name = "gcc_ufs_phy_rx_symbol_0_clk",
5761			.parent_hws = (const struct clk_hw*[]){
5762				&gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
5763			},
5764			.num_parents = 1,
5765			.flags = CLK_SET_RATE_PARENT,
5766			.ops = &clk_branch2_ops,
5767		},
5768	},
5769};
5770
5771static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
5772	.halt_reg = 0x770b8,
5773	.halt_check = BRANCH_HALT_DELAY,
5774	.clkr = {
5775		.enable_reg = 0x770b8,
5776		.enable_mask = BIT(0),
5777		.hw.init = &(const struct clk_init_data) {
5778			.name = "gcc_ufs_phy_rx_symbol_1_clk",
5779			.parent_hws = (const struct clk_hw*[]){
5780				&gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
5781			},
5782			.num_parents = 1,
5783			.flags = CLK_SET_RATE_PARENT,
5784			.ops = &clk_branch2_ops,
5785		},
5786	},
5787};
5788
5789static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
5790	.halt_reg = 0x7701c,
5791	.halt_check = BRANCH_HALT_DELAY,
5792	.clkr = {
5793		.enable_reg = 0x7701c,
5794		.enable_mask = BIT(0),
5795		.hw.init = &(const struct clk_init_data) {
5796			.name = "gcc_ufs_phy_tx_symbol_0_clk",
5797			.parent_hws = (const struct clk_hw*[]){
5798				&gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
5799			},
5800			.num_parents = 1,
5801			.flags = CLK_SET_RATE_PARENT,
5802			.ops = &clk_branch2_ops,
5803		},
5804	},
5805};
5806
5807static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
5808	.halt_reg = 0x7705c,
5809	.halt_check = BRANCH_HALT_VOTED,
5810	.hwcg_reg = 0x7705c,
5811	.hwcg_bit = 1,
5812	.clkr = {
5813		.enable_reg = 0x7705c,
5814		.enable_mask = BIT(0),
5815		.hw.init = &(const struct clk_init_data) {
5816			.name = "gcc_ufs_phy_unipro_core_clk",
5817			.parent_hws = (const struct clk_hw*[]){
5818				&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5819			},
5820			.num_parents = 1,
5821			.flags = CLK_SET_RATE_PARENT,
5822			.ops = &clk_branch2_ops,
5823		},
5824	},
5825};
5826
5827static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = {
5828	.halt_reg = 0x7705c,
5829	.halt_check = BRANCH_HALT_VOTED,
5830	.hwcg_reg = 0x7705c,
5831	.hwcg_bit = 1,
5832	.clkr = {
5833		.enable_reg = 0x7705c,
5834		.enable_mask = BIT(1),
5835		.hw.init = &(const struct clk_init_data) {
5836			.name = "gcc_ufs_phy_unipro_core_hw_ctl_clk",
5837			.parent_hws = (const struct clk_hw*[]){
5838				&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
5839			},
5840			.num_parents = 1,
5841			.flags = CLK_SET_RATE_PARENT,
5842			.ops = &clk_branch2_ops,
5843		},
5844	},
5845};
5846
5847static struct clk_branch gcc_ufs_ref_clkref_clk = {
5848	.halt_reg = 0x8c058,
5849	.halt_check = BRANCH_HALT,
5850	.clkr = {
5851		.enable_reg = 0x8c058,
5852		.enable_mask = BIT(0),
5853		.hw.init = &(const struct clk_init_data) {
5854			.name = "gcc_ufs_ref_clkref_clk",
5855			.parent_data = &gcc_parent_data_tcxo,
5856			.num_parents = 1,
5857			.ops = &clk_branch2_ops,
5858		},
5859	},
5860};
5861
5862static struct clk_branch gcc_usb2_hs0_clkref_clk = {
5863	.halt_reg = 0x8c044,
5864	.halt_check = BRANCH_HALT,
5865	.clkr = {
5866		.enable_reg = 0x8c044,
5867		.enable_mask = BIT(0),
5868		.hw.init = &(const struct clk_init_data) {
5869			.name = "gcc_usb2_hs0_clkref_clk",
5870			.ops = &clk_branch2_ops,
5871		},
5872	},
5873};
5874
5875static struct clk_branch gcc_usb2_hs1_clkref_clk = {
5876	.halt_reg = 0x8c048,
5877	.halt_check = BRANCH_HALT,
5878	.clkr = {
5879		.enable_reg = 0x8c048,
5880		.enable_mask = BIT(0),
5881		.hw.init = &(const struct clk_init_data) {
5882			.name = "gcc_usb2_hs1_clkref_clk",
5883			.ops = &clk_branch2_ops,
5884		},
5885	},
5886};
5887
5888static struct clk_branch gcc_usb2_hs2_clkref_clk = {
5889	.halt_reg = 0x8c04c,
5890	.halt_check = BRANCH_HALT,
5891	.clkr = {
5892		.enable_reg = 0x8c04c,
5893		.enable_mask = BIT(0),
5894		.hw.init = &(const struct clk_init_data) {
5895			.name = "gcc_usb2_hs2_clkref_clk",
5896			.ops = &clk_branch2_ops,
5897		},
5898	},
5899};
5900
5901static struct clk_branch gcc_usb2_hs3_clkref_clk = {
5902	.halt_reg = 0x8c050,
5903	.halt_check = BRANCH_HALT,
5904	.clkr = {
5905		.enable_reg = 0x8c050,
5906		.enable_mask = BIT(0),
5907		.hw.init = &(const struct clk_init_data) {
5908			.name = "gcc_usb2_hs3_clkref_clk",
5909			.ops = &clk_branch2_ops,
5910		},
5911	},
5912};
5913
5914static struct clk_branch gcc_usb30_mp_master_clk = {
5915	.halt_reg = 0xab010,
5916	.halt_check = BRANCH_HALT,
5917	.clkr = {
5918		.enable_reg = 0xab010,
5919		.enable_mask = BIT(0),
5920		.hw.init = &(const struct clk_init_data) {
5921			.name = "gcc_usb30_mp_master_clk",
5922			.parent_hws = (const struct clk_hw*[]){
5923				&gcc_usb30_mp_master_clk_src.clkr.hw,
5924			},
5925			.num_parents = 1,
5926			.flags = CLK_SET_RATE_PARENT,
5927			.ops = &clk_branch2_ops,
5928		},
5929	},
5930};
5931
5932static struct clk_branch gcc_usb30_mp_mock_utmi_clk = {
5933	.halt_reg = 0xab01c,
5934	.halt_check = BRANCH_HALT,
5935	.clkr = {
5936		.enable_reg = 0xab01c,
5937		.enable_mask = BIT(0),
5938		.hw.init = &(const struct clk_init_data) {
5939			.name = "gcc_usb30_mp_mock_utmi_clk",
5940			.parent_hws = (const struct clk_hw*[]){
5941				&gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr.hw,
5942			},
5943			.num_parents = 1,
5944			.flags = CLK_SET_RATE_PARENT,
5945			.ops = &clk_branch2_ops,
5946		},
5947	},
5948};
5949
5950static struct clk_branch gcc_usb30_mp_sleep_clk = {
5951	.halt_reg = 0xab018,
5952	.halt_check = BRANCH_HALT,
5953	.clkr = {
5954		.enable_reg = 0xab018,
5955		.enable_mask = BIT(0),
5956		.hw.init = &(const struct clk_init_data) {
5957			.name = "gcc_usb30_mp_sleep_clk",
5958			.ops = &clk_branch2_ops,
5959		},
5960	},
5961};
5962
5963static struct clk_branch gcc_usb30_prim_master_clk = {
5964	.halt_reg = 0xf010,
5965	.halt_check = BRANCH_HALT,
5966	.clkr = {
5967		.enable_reg = 0xf010,
5968		.enable_mask = BIT(0),
5969		.hw.init = &(const struct clk_init_data) {
5970			.name = "gcc_usb30_prim_master_clk",
5971			.parent_hws = (const struct clk_hw*[]){
5972				&gcc_usb30_prim_master_clk_src.clkr.hw,
5973			},
5974			.num_parents = 1,
5975			.flags = CLK_SET_RATE_PARENT,
5976			.ops = &clk_branch2_ops,
5977		},
5978	},
5979};
5980
5981static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
5982	.halt_reg = 0xf01c,
5983	.halt_check = BRANCH_HALT,
5984	.clkr = {
5985		.enable_reg = 0xf01c,
5986		.enable_mask = BIT(0),
5987		.hw.init = &(const struct clk_init_data) {
5988			.name = "gcc_usb30_prim_mock_utmi_clk",
5989			.parent_hws = (const struct clk_hw*[]){
5990				&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
5991			},
5992			.num_parents = 1,
5993			.flags = CLK_SET_RATE_PARENT,
5994			.ops = &clk_branch2_ops,
5995		},
5996	},
5997};
5998
5999static struct clk_branch gcc_usb30_prim_sleep_clk = {
6000	.halt_reg = 0xf018,
6001	.halt_check = BRANCH_HALT,
6002	.clkr = {
6003		.enable_reg = 0xf018,
6004		.enable_mask = BIT(0),
6005		.hw.init = &(const struct clk_init_data) {
6006			.name = "gcc_usb30_prim_sleep_clk",
6007			.ops = &clk_branch2_ops,
6008		},
6009	},
6010};
6011
6012static struct clk_branch gcc_usb30_sec_master_clk = {
6013	.halt_reg = 0x10010,
6014	.halt_check = BRANCH_HALT,
6015	.clkr = {
6016		.enable_reg = 0x10010,
6017		.enable_mask = BIT(0),
6018		.hw.init = &(const struct clk_init_data) {
6019			.name = "gcc_usb30_sec_master_clk",
6020			.parent_hws = (const struct clk_hw*[]){
6021				&gcc_usb30_sec_master_clk_src.clkr.hw,
6022			},
6023			.num_parents = 1,
6024			.flags = CLK_SET_RATE_PARENT,
6025			.ops = &clk_branch2_ops,
6026		},
6027	},
6028};
6029
6030static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
6031	.halt_reg = 0x1001c,
6032	.halt_check = BRANCH_HALT,
6033	.clkr = {
6034		.enable_reg = 0x1001c,
6035		.enable_mask = BIT(0),
6036		.hw.init = &(const struct clk_init_data) {
6037			.name = "gcc_usb30_sec_mock_utmi_clk",
6038			.parent_hws = (const struct clk_hw*[]){
6039				&gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
6040			},
6041			.num_parents = 1,
6042			.flags = CLK_SET_RATE_PARENT,
6043			.ops = &clk_branch2_ops,
6044		},
6045	},
6046};
6047
6048static struct clk_branch gcc_usb30_sec_sleep_clk = {
6049	.halt_reg = 0x10018,
6050	.halt_check = BRANCH_HALT,
6051	.clkr = {
6052		.enable_reg = 0x10018,
6053		.enable_mask = BIT(0),
6054		.hw.init = &(const struct clk_init_data) {
6055			.name = "gcc_usb30_sec_sleep_clk",
6056			.ops = &clk_branch2_ops,
6057		},
6058	},
6059};
6060
6061static struct clk_branch gcc_usb3_mp0_clkref_clk = {
6062	.halt_reg = 0x8c03c,
6063	.halt_check = BRANCH_HALT,
6064	.clkr = {
6065		.enable_reg = 0x8c03c,
6066		.enable_mask = BIT(0),
6067		.hw.init = &(const struct clk_init_data) {
6068			.name = "gcc_usb3_mp0_clkref_clk",
6069			.ops = &clk_branch2_ops,
6070		},
6071	},
6072};
6073
6074static struct clk_branch gcc_usb3_mp1_clkref_clk = {
6075	.halt_reg = 0x8c040,
6076	.halt_check = BRANCH_HALT,
6077	.clkr = {
6078		.enable_reg = 0x8c040,
6079		.enable_mask = BIT(0),
6080		.hw.init = &(const struct clk_init_data) {
6081			.name = "gcc_usb3_mp1_clkref_clk",
6082			.ops = &clk_branch2_ops,
6083		},
6084	},
6085};
6086
6087static struct clk_branch gcc_usb3_mp_phy_aux_clk = {
6088	.halt_reg = 0xab054,
6089	.halt_check = BRANCH_HALT,
6090	.clkr = {
6091		.enable_reg = 0xab054,
6092		.enable_mask = BIT(0),
6093		.hw.init = &(const struct clk_init_data) {
6094			.name = "gcc_usb3_mp_phy_aux_clk",
6095			.parent_hws = (const struct clk_hw*[]){
6096				&gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6097			},
6098			.num_parents = 1,
6099			.flags = CLK_SET_RATE_PARENT,
6100			.ops = &clk_branch2_ops,
6101		},
6102	},
6103};
6104
6105static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = {
6106	.halt_reg = 0xab058,
6107	.halt_check = BRANCH_HALT,
6108	.clkr = {
6109		.enable_reg = 0xab058,
6110		.enable_mask = BIT(0),
6111		.hw.init = &(const struct clk_init_data) {
6112			.name = "gcc_usb3_mp_phy_com_aux_clk",
6113			.parent_hws = (const struct clk_hw*[]){
6114				&gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
6115			},
6116			.num_parents = 1,
6117			.flags = CLK_SET_RATE_PARENT,
6118			.ops = &clk_branch2_ops,
6119		},
6120	},
6121};
6122
6123static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = {
6124	.halt_reg = 0xab05c,
6125	.halt_check = BRANCH_HALT_DELAY,
6126	.clkr = {
6127		.enable_reg = 0xab05c,
6128		.enable_mask = BIT(0),
6129		.hw.init = &(const struct clk_init_data) {
6130			.name = "gcc_usb3_mp_phy_pipe_0_clk",
6131			.parent_hws = (const struct clk_hw*[]){
6132				&gcc_usb3_mp_phy_pipe_0_clk_src.clkr.hw,
6133			},
6134			.num_parents = 1,
6135			.flags = CLK_SET_RATE_PARENT,
6136			.ops = &clk_branch2_ops,
6137		},
6138	},
6139};
6140
6141static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = {
6142	.halt_reg = 0xab064,
6143	.halt_check = BRANCH_HALT_DELAY,
6144	.clkr = {
6145		.enable_reg = 0xab064,
6146		.enable_mask = BIT(0),
6147		.hw.init = &(const struct clk_init_data) {
6148			.name = "gcc_usb3_mp_phy_pipe_1_clk",
6149			.parent_hws = (const struct clk_hw*[]){
6150				&gcc_usb3_mp_phy_pipe_1_clk_src.clkr.hw,
6151			},
6152			.num_parents = 1,
6153			.flags = CLK_SET_RATE_PARENT,
6154			.ops = &clk_branch2_ops,
6155		},
6156	},
6157};
6158
6159static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
6160	.halt_reg = 0xf054,
6161	.halt_check = BRANCH_HALT,
6162	.clkr = {
6163		.enable_reg = 0xf054,
6164		.enable_mask = BIT(0),
6165		.hw.init = &(const struct clk_init_data) {
6166			.name = "gcc_usb3_prim_phy_aux_clk",
6167			.parent_hws = (const struct clk_hw*[]){
6168				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6169			},
6170			.num_parents = 1,
6171			.flags = CLK_SET_RATE_PARENT,
6172			.ops = &clk_branch2_ops,
6173		},
6174	},
6175};
6176
6177static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
6178	.halt_reg = 0xf058,
6179	.halt_check = BRANCH_HALT,
6180	.clkr = {
6181		.enable_reg = 0xf058,
6182		.enable_mask = BIT(0),
6183		.hw.init = &(const struct clk_init_data) {
6184			.name = "gcc_usb3_prim_phy_com_aux_clk",
6185			.parent_hws = (const struct clk_hw*[]){
6186				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
6187			},
6188			.num_parents = 1,
6189			.flags = CLK_SET_RATE_PARENT,
6190			.ops = &clk_branch2_ops,
6191		},
6192	},
6193};
6194
6195static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
6196	.halt_reg = 0xf05c,
6197	.halt_check = BRANCH_HALT_DELAY,
6198	.hwcg_reg = 0xf05c,
6199	.hwcg_bit = 1,
6200	.clkr = {
6201		.enable_reg = 0xf05c,
6202		.enable_mask = BIT(0),
6203		.hw.init = &(const struct clk_init_data) {
6204			.name = "gcc_usb3_prim_phy_pipe_clk",
6205			.parent_hws = (const struct clk_hw*[]){
6206				&gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6207			},
6208			.num_parents = 1,
6209			.flags = CLK_SET_RATE_PARENT,
6210			.ops = &clk_branch2_ops,
6211		},
6212	},
6213};
6214
6215static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
6216	.halt_reg = 0x10054,
6217	.halt_check = BRANCH_HALT,
6218	.clkr = {
6219		.enable_reg = 0x10054,
6220		.enable_mask = BIT(0),
6221		.hw.init = &(const struct clk_init_data) {
6222			.name = "gcc_usb3_sec_phy_aux_clk",
6223			.parent_hws = (const struct clk_hw*[]){
6224				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6225			},
6226			.num_parents = 1,
6227			.flags = CLK_SET_RATE_PARENT,
6228			.ops = &clk_branch2_ops,
6229		},
6230	},
6231};
6232
6233static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
6234	.halt_reg = 0x10058,
6235	.halt_check = BRANCH_HALT,
6236	.clkr = {
6237		.enable_reg = 0x10058,
6238		.enable_mask = BIT(0),
6239		.hw.init = &(const struct clk_init_data) {
6240			.name = "gcc_usb3_sec_phy_com_aux_clk",
6241			.parent_hws = (const struct clk_hw*[]){
6242				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
6243			},
6244			.num_parents = 1,
6245			.flags = CLK_SET_RATE_PARENT,
6246			.ops = &clk_branch2_ops,
6247		},
6248	},
6249};
6250
6251static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
6252	.halt_reg = 0x1005c,
6253	.halt_check = BRANCH_HALT_DELAY,
6254	.hwcg_reg = 0x1005c,
6255	.hwcg_bit = 1,
6256	.clkr = {
6257		.enable_reg = 0x1005c,
6258		.enable_mask = BIT(0),
6259		.hw.init = &(const struct clk_init_data) {
6260			.name = "gcc_usb3_sec_phy_pipe_clk",
6261			.parent_hws = (const struct clk_hw*[]){
6262				&gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6263			},
6264			.num_parents = 1,
6265			.flags = CLK_SET_RATE_PARENT,
6266			.ops = &clk_branch2_ops,
6267		},
6268	},
6269};
6270
6271static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
6272	.halt_reg = 0xb808c,
6273	.halt_check = BRANCH_HALT_VOTED,
6274	.hwcg_reg = 0xb808c,
6275	.hwcg_bit = 1,
6276	.clkr = {
6277		.enable_reg = 0xb808c,
6278		.enable_mask = BIT(0),
6279		.hw.init = &(const struct clk_init_data) {
6280			.name = "gcc_usb4_1_cfg_ahb_clk",
6281			.ops = &clk_branch2_ops,
6282		},
6283	},
6284};
6285
6286static struct clk_branch gcc_usb4_1_dp_clk = {
6287	.halt_reg = 0xb8048,
6288	.halt_check = BRANCH_HALT,
6289	.clkr = {
6290		.enable_reg = 0xb8048,
6291		.enable_mask = BIT(0),
6292		.hw.init = &(const struct clk_init_data) {
6293			.name = "gcc_usb4_1_dp_clk",
6294			.parent_hws = (const struct clk_hw*[]){
6295				&gcc_usb4_1_phy_dp_clk_src.clkr.hw,
6296			},
6297			.num_parents = 1,
6298			.flags = CLK_SET_RATE_PARENT,
6299			.ops = &clk_branch2_ops,
6300		},
6301	},
6302};
6303
6304static struct clk_branch gcc_usb4_1_master_clk = {
6305	.halt_reg = 0xb8010,
6306	.halt_check = BRANCH_HALT,
6307	.clkr = {
6308		.enable_reg = 0xb8010,
6309		.enable_mask = BIT(0),
6310		.hw.init = &(const struct clk_init_data) {
6311			.name = "gcc_usb4_1_master_clk",
6312			.parent_hws = (const struct clk_hw*[]){
6313				&gcc_usb4_1_master_clk_src.clkr.hw,
6314			},
6315			.num_parents = 1,
6316			.flags = CLK_SET_RATE_PARENT,
6317			.ops = &clk_branch2_ops,
6318		},
6319	},
6320};
6321
6322static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
6323	.halt_reg = 0xb80b4,
6324	.halt_check = BRANCH_HALT_DELAY,
6325	.clkr = {
6326		.enable_reg = 0xb80b4,
6327		.enable_mask = BIT(0),
6328		.hw.init = &(const struct clk_init_data) {
6329			.name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
6330			.parent_hws = (const struct clk_hw*[]){
6331				&gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr.hw,
6332			},
6333			.num_parents = 1,
6334			.flags = CLK_SET_RATE_PARENT,
6335			.ops = &clk_branch2_ops,
6336		},
6337	},
6338};
6339
6340static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
6341	.halt_reg = 0xb8038,
6342	.halt_check = BRANCH_HALT_DELAY,
6343	.clkr = {
6344		.enable_reg = 0x52020,
6345		.enable_mask = BIT(19),
6346		.hw.init = &(const struct clk_init_data) {
6347			.name = "gcc_usb4_1_phy_pcie_pipe_clk",
6348			.parent_hws = (const struct clk_hw*[]){
6349				&gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr.hw,
6350			},
6351			.num_parents = 1,
6352			.flags = CLK_SET_RATE_PARENT,
6353			.ops = &clk_branch2_ops,
6354		},
6355	},
6356};
6357
6358static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
6359	.halt_reg = 0xb8094,
6360	.halt_check = BRANCH_HALT,
6361	.clkr = {
6362		.enable_reg = 0xb8094,
6363		.enable_mask = BIT(0),
6364		.hw.init = &(const struct clk_init_data) {
6365			.name = "gcc_usb4_1_phy_rx0_clk",
6366			.parent_hws = (const struct clk_hw*[]){
6367				&gcc_usb4_1_phy_rx0_clk_src.clkr.hw,
6368			},
6369			.num_parents = 1,
6370			.flags = CLK_SET_RATE_PARENT,
6371			.ops = &clk_branch2_ops,
6372		},
6373	},
6374};
6375
6376static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
6377	.halt_reg = 0xb80a0,
6378	.halt_check = BRANCH_HALT,
6379	.clkr = {
6380		.enable_reg = 0xb80a0,
6381		.enable_mask = BIT(0),
6382		.hw.init = &(const struct clk_init_data) {
6383			.name = "gcc_usb4_1_phy_rx1_clk",
6384			.parent_hws = (const struct clk_hw*[]){
6385				&gcc_usb4_1_phy_rx1_clk_src.clkr.hw,
6386			},
6387			.num_parents = 1,
6388			.flags = CLK_SET_RATE_PARENT,
6389			.ops = &clk_branch2_ops,
6390		},
6391	},
6392};
6393
6394static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
6395	.halt_reg = 0xb8088,
6396	.halt_check = BRANCH_HALT_DELAY,
6397	.hwcg_reg = 0xb8088,
6398	.hwcg_bit = 1,
6399	.clkr = {
6400		.enable_reg = 0xb8088,
6401		.enable_mask = BIT(0),
6402		.hw.init = &(const struct clk_init_data) {
6403			.name = "gcc_usb4_1_phy_usb_pipe_clk",
6404			.parent_hws = (const struct clk_hw*[]){
6405				&gcc_usb34_sec_phy_pipe_clk_src.clkr.hw,
6406			},
6407			.num_parents = 1,
6408			.flags = CLK_SET_RATE_PARENT,
6409			.ops = &clk_branch2_ops,
6410		},
6411	},
6412};
6413
6414static struct clk_branch gcc_usb4_1_sb_if_clk = {
6415	.halt_reg = 0xb8034,
6416	.halt_check = BRANCH_HALT,
6417	.clkr = {
6418		.enable_reg = 0xb8034,
6419		.enable_mask = BIT(0),
6420		.hw.init = &(const struct clk_init_data) {
6421			.name = "gcc_usb4_1_sb_if_clk",
6422			.parent_hws = (const struct clk_hw*[]){
6423				&gcc_usb4_1_sb_if_clk_src.clkr.hw,
6424			},
6425			.num_parents = 1,
6426			.flags = CLK_SET_RATE_PARENT,
6427			.ops = &clk_branch2_ops,
6428		},
6429	},
6430};
6431
6432static struct clk_branch gcc_usb4_1_sys_clk = {
6433	.halt_reg = 0xb8040,
6434	.halt_check = BRANCH_HALT,
6435	.clkr = {
6436		.enable_reg = 0xb8040,
6437		.enable_mask = BIT(0),
6438		.hw.init = &(const struct clk_init_data) {
6439			.name = "gcc_usb4_1_sys_clk",
6440			.parent_hws = (const struct clk_hw*[]){
6441				&gcc_usb4_1_phy_sys_clk_src.clkr.hw,
6442			},
6443			.num_parents = 1,
6444			.flags = CLK_SET_RATE_PARENT,
6445			.ops = &clk_branch2_ops,
6446		},
6447	},
6448};
6449
6450static struct clk_branch gcc_usb4_1_tmu_clk = {
6451	.halt_reg = 0xb806c,
6452	.halt_check = BRANCH_HALT_VOTED,
6453	.hwcg_reg = 0xb806c,
6454	.hwcg_bit = 1,
6455	.clkr = {
6456		.enable_reg = 0xb806c,
6457		.enable_mask = BIT(0),
6458		.hw.init = &(const struct clk_init_data) {
6459			.name = "gcc_usb4_1_tmu_clk",
6460			.parent_hws = (const struct clk_hw*[]){
6461				&gcc_usb4_1_tmu_clk_src.clkr.hw,
6462			},
6463			.num_parents = 1,
6464			.flags = CLK_SET_RATE_PARENT,
6465			.ops = &clk_branch2_ops,
6466		},
6467	},
6468};
6469
6470static struct clk_branch gcc_usb4_cfg_ahb_clk = {
6471	.halt_reg = 0x2a08c,
6472	.halt_check = BRANCH_HALT_VOTED,
6473	.hwcg_reg = 0x2a08c,
6474	.hwcg_bit = 1,
6475	.clkr = {
6476		.enable_reg = 0x2a08c,
6477		.enable_mask = BIT(0),
6478		.hw.init = &(const struct clk_init_data) {
6479			.name = "gcc_usb4_cfg_ahb_clk",
6480			.ops = &clk_branch2_ops,
6481		},
6482	},
6483};
6484
6485static struct clk_branch gcc_usb4_clkref_clk = {
6486	.halt_reg = 0x8c010,
6487	.halt_check = BRANCH_HALT,
6488	.clkr = {
6489		.enable_reg = 0x8c010,
6490		.enable_mask = BIT(0),
6491		.hw.init = &(const struct clk_init_data) {
6492			.name = "gcc_usb4_clkref_clk",
6493			.ops = &clk_branch2_ops,
6494		},
6495	},
6496};
6497
6498static struct clk_branch gcc_usb4_dp_clk = {
6499	.halt_reg = 0x2a048,
6500	.halt_check = BRANCH_HALT,
6501	.clkr = {
6502		.enable_reg = 0x2a048,
6503		.enable_mask = BIT(0),
6504		.hw.init = &(const struct clk_init_data) {
6505			.name = "gcc_usb4_dp_clk",
6506			.parent_hws = (const struct clk_hw*[]){
6507				&gcc_usb4_phy_dp_clk_src.clkr.hw,
6508			},
6509			.num_parents = 1,
6510			.flags = CLK_SET_RATE_PARENT,
6511			.ops = &clk_branch2_ops,
6512		},
6513	},
6514};
6515
6516static struct clk_branch gcc_usb4_eud_clkref_clk = {
6517	.halt_reg = 0x8c02c,
6518	.halt_check = BRANCH_HALT,
6519	.clkr = {
6520		.enable_reg = 0x8c02c,
6521		.enable_mask = BIT(0),
6522		.hw.init = &(const struct clk_init_data) {
6523			.name = "gcc_usb4_eud_clkref_clk",
6524			.ops = &clk_branch2_ops,
6525		},
6526	},
6527};
6528
6529static struct clk_branch gcc_usb4_master_clk = {
6530	.halt_reg = 0x2a010,
6531	.halt_check = BRANCH_HALT,
6532	.clkr = {
6533		.enable_reg = 0x2a010,
6534		.enable_mask = BIT(0),
6535		.hw.init = &(const struct clk_init_data) {
6536			.name = "gcc_usb4_master_clk",
6537			.parent_hws = (const struct clk_hw*[]){
6538				&gcc_usb4_master_clk_src.clkr.hw,
6539			},
6540			.num_parents = 1,
6541			.flags = CLK_SET_RATE_PARENT,
6542			.ops = &clk_branch2_ops,
6543		},
6544	},
6545};
6546
6547static struct clk_branch gcc_usb4_phy_p2rr2p_pipe_clk = {
6548	.halt_reg = 0x2a0b4,
6549	.halt_check = BRANCH_HALT_DELAY,
6550	.clkr = {
6551		.enable_reg = 0x2a0b4,
6552		.enable_mask = BIT(0),
6553		.hw.init = &(const struct clk_init_data) {
6554			.name = "gcc_usb4_phy_p2rr2p_pipe_clk",
6555			.parent_hws = (const struct clk_hw*[]){
6556				&gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr.hw,
6557			},
6558			.num_parents = 1,
6559			.flags = CLK_SET_RATE_PARENT,
6560			.ops = &clk_branch2_ops,
6561		},
6562	},
6563};
6564
6565static struct clk_branch gcc_usb4_phy_pcie_pipe_clk = {
6566	.halt_reg = 0x2a038,
6567	.halt_check = BRANCH_HALT_DELAY,
6568	.clkr = {
6569		.enable_reg = 0x52020,
6570		.enable_mask = BIT(18),
6571		.hw.init = &(const struct clk_init_data) {
6572			.name = "gcc_usb4_phy_pcie_pipe_clk",
6573			.parent_hws = (const struct clk_hw*[]){
6574				&gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr.hw,
6575			},
6576			.num_parents = 1,
6577			.flags = CLK_SET_RATE_PARENT,
6578			.ops = &clk_branch2_ops,
6579		},
6580	},
6581};
6582
6583static struct clk_branch gcc_usb4_phy_rx0_clk = {
6584	.halt_reg = 0x2a094,
6585	.halt_check = BRANCH_HALT,
6586	.clkr = {
6587		.enable_reg = 0x2a094,
6588		.enable_mask = BIT(0),
6589		.hw.init = &(const struct clk_init_data) {
6590			.name = "gcc_usb4_phy_rx0_clk",
6591			.parent_hws = (const struct clk_hw*[]){
6592				&gcc_usb4_phy_rx0_clk_src.clkr.hw,
6593			},
6594			.num_parents = 1,
6595			.flags = CLK_SET_RATE_PARENT,
6596			.ops = &clk_branch2_ops,
6597		},
6598	},
6599};
6600
6601static struct clk_branch gcc_usb4_phy_rx1_clk = {
6602	.halt_reg = 0x2a0a0,
6603	.halt_check = BRANCH_HALT,
6604	.clkr = {
6605		.enable_reg = 0x2a0a0,
6606		.enable_mask = BIT(0),
6607		.hw.init = &(const struct clk_init_data) {
6608			.name = "gcc_usb4_phy_rx1_clk",
6609			.parent_hws = (const struct clk_hw*[]){
6610				&gcc_usb4_phy_rx1_clk_src.clkr.hw,
6611			},
6612			.num_parents = 1,
6613			.flags = CLK_SET_RATE_PARENT,
6614			.ops = &clk_branch2_ops,
6615		},
6616	},
6617};
6618
6619static struct clk_branch gcc_usb4_phy_usb_pipe_clk = {
6620	.halt_reg = 0x2a088,
6621	.halt_check = BRANCH_HALT_DELAY,
6622	.hwcg_reg = 0x2a088,
6623	.hwcg_bit = 1,
6624	.clkr = {
6625		.enable_reg = 0x2a088,
6626		.enable_mask = BIT(0),
6627		.hw.init = &(const struct clk_init_data) {
6628			.name = "gcc_usb4_phy_usb_pipe_clk",
6629			.parent_hws = (const struct clk_hw*[]){
6630				&gcc_usb34_prim_phy_pipe_clk_src.clkr.hw,
6631			},
6632			.num_parents = 1,
6633			.flags = CLK_SET_RATE_PARENT,
6634			.ops = &clk_branch2_ops,
6635		},
6636	},
6637};
6638
6639static struct clk_branch gcc_usb4_sb_if_clk = {
6640	.halt_reg = 0x2a034,
6641	.halt_check = BRANCH_HALT,
6642	.clkr = {
6643		.enable_reg = 0x2a034,
6644		.enable_mask = BIT(0),
6645		.hw.init = &(const struct clk_init_data) {
6646			.name = "gcc_usb4_sb_if_clk",
6647			.parent_hws = (const struct clk_hw*[]){
6648				&gcc_usb4_sb_if_clk_src.clkr.hw,
6649			},
6650			.num_parents = 1,
6651			.flags = CLK_SET_RATE_PARENT,
6652			.ops = &clk_branch2_ops,
6653		},
6654	},
6655};
6656
6657static struct clk_branch gcc_usb4_sys_clk = {
6658	.halt_reg = 0x2a040,
6659	.halt_check = BRANCH_HALT,
6660	.clkr = {
6661		.enable_reg = 0x2a040,
6662		.enable_mask = BIT(0),
6663		.hw.init = &(const struct clk_init_data) {
6664			.name = "gcc_usb4_sys_clk",
6665			.parent_hws = (const struct clk_hw*[]){
6666				&gcc_usb4_phy_sys_clk_src.clkr.hw,
6667			},
6668			.num_parents = 1,
6669			.flags = CLK_SET_RATE_PARENT,
6670			.ops = &clk_branch2_ops,
6671		},
6672	},
6673};
6674
6675static struct clk_branch gcc_usb4_tmu_clk = {
6676	.halt_reg = 0x2a06c,
6677	.halt_check = BRANCH_HALT_VOTED,
6678	.hwcg_reg = 0x2a06c,
6679	.hwcg_bit = 1,
6680	.clkr = {
6681		.enable_reg = 0x2a06c,
6682		.enable_mask = BIT(0),
6683		.hw.init = &(const struct clk_init_data) {
6684			.name = "gcc_usb4_tmu_clk",
6685			.parent_hws = (const struct clk_hw*[]){
6686				&gcc_usb4_tmu_clk_src.clkr.hw,
6687			},
6688			.num_parents = 1,
6689			.flags = CLK_SET_RATE_PARENT,
6690			.ops = &clk_branch2_ops,
6691		},
6692	},
6693};
6694
6695static struct clk_branch gcc_video_axi0_clk = {
6696	.halt_reg = 0x28010,
6697	.halt_check = BRANCH_HALT_SKIP,
6698	.hwcg_reg = 0x28010,
6699	.hwcg_bit = 1,
6700	.clkr = {
6701		.enable_reg = 0x28010,
6702		.enable_mask = BIT(0),
6703		.hw.init = &(const struct clk_init_data) {
6704			.name = "gcc_video_axi0_clk",
6705			.ops = &clk_branch2_ops,
6706		},
6707	},
6708};
6709
6710static struct clk_branch gcc_video_axi1_clk = {
6711	.halt_reg = 0x28018,
6712	.halt_check = BRANCH_HALT_SKIP,
6713	.hwcg_reg = 0x28018,
6714	.hwcg_bit = 1,
6715	.clkr = {
6716		.enable_reg = 0x28018,
6717		.enable_mask = BIT(0),
6718		.hw.init = &(const struct clk_init_data) {
6719			.name = "gcc_video_axi1_clk",
6720			.ops = &clk_branch2_ops,
6721		},
6722	},
6723};
6724
6725static struct clk_branch gcc_video_cvp_throttle_clk = {
6726	.halt_reg = 0x28024,
6727	.halt_check = BRANCH_HALT_SKIP,
6728	.hwcg_reg = 0x28024,
6729	.hwcg_bit = 1,
6730	.clkr = {
6731		.enable_reg = 0x28024,
6732		.enable_mask = BIT(0),
6733		.hw.init = &(const struct clk_init_data) {
6734			.name = "gcc_video_cvp_throttle_clk",
6735			.ops = &clk_branch2_ops,
6736		},
6737	},
6738};
6739
6740static struct clk_branch gcc_video_vcodec_throttle_clk = {
6741	.halt_reg = 0x28020,
6742	.halt_check = BRANCH_HALT_SKIP,
6743	.hwcg_reg = 0x28020,
6744	.hwcg_bit = 1,
6745	.clkr = {
6746		.enable_reg = 0x28020,
6747		.enable_mask = BIT(0),
6748		.hw.init = &(const struct clk_init_data) {
6749			.name = "gcc_video_vcodec_throttle_clk",
6750			.ops = &clk_branch2_ops,
6751		},
6752	},
6753};
6754
6755static struct gdsc pcie_0_tunnel_gdsc = {
6756	.gdscr = 0xa4004,
6757	.collapse_ctrl = 0x52128,
6758	.collapse_mask = BIT(0),
6759	.pd = {
6760		.name = "pcie_0_tunnel_gdsc",
6761	},
6762	.pwrsts = PWRSTS_OFF_ON,
6763	.flags = VOTABLE | RETAIN_FF_ENABLE,
6764};
6765
6766static struct gdsc pcie_1_tunnel_gdsc = {
6767	.gdscr = 0x8d004,
6768	.collapse_ctrl = 0x52128,
6769	.collapse_mask = BIT(1),
6770	.pd = {
6771		.name = "pcie_1_tunnel_gdsc",
6772	},
6773	.pwrsts = PWRSTS_OFF_ON,
6774	.flags = VOTABLE | RETAIN_FF_ENABLE,
6775};
6776
6777static struct gdsc pcie_2a_gdsc = {
6778	.gdscr = 0x9d004,
6779	.collapse_ctrl = 0x52128,
6780	.collapse_mask = BIT(2),
6781	.pd = {
6782		.name = "pcie_2a_gdsc",
6783	},
6784	.pwrsts = PWRSTS_RET_ON,
6785	.flags = VOTABLE | RETAIN_FF_ENABLE,
6786};
6787
6788static struct gdsc pcie_2b_gdsc = {
6789	.gdscr = 0x9e004,
6790	.collapse_ctrl = 0x52128,
6791	.collapse_mask = BIT(3),
6792	.pd = {
6793		.name = "pcie_2b_gdsc",
6794	},
6795	.pwrsts = PWRSTS_RET_ON,
6796	.flags = VOTABLE | RETAIN_FF_ENABLE,
6797};
6798
6799static struct gdsc pcie_3a_gdsc = {
6800	.gdscr = 0xa0004,
6801	.collapse_ctrl = 0x52128,
6802	.collapse_mask = BIT(4),
6803	.pd = {
6804		.name = "pcie_3a_gdsc",
6805	},
6806	.pwrsts = PWRSTS_RET_ON,
6807	.flags = VOTABLE | RETAIN_FF_ENABLE,
6808};
6809
6810static struct gdsc pcie_3b_gdsc = {
6811	.gdscr = 0xa2004,
6812	.collapse_ctrl = 0x52128,
6813	.collapse_mask = BIT(5),
6814	.pd = {
6815		.name = "pcie_3b_gdsc",
6816	},
6817	.pwrsts = PWRSTS_RET_ON,
6818	.flags = VOTABLE | RETAIN_FF_ENABLE,
6819};
6820
6821static struct gdsc pcie_4_gdsc = {
6822	.gdscr = 0x6b004,
6823	.collapse_ctrl = 0x52128,
6824	.collapse_mask = BIT(6),
6825	.pd = {
6826		.name = "pcie_4_gdsc",
6827	},
6828	.pwrsts = PWRSTS_RET_ON,
6829	.flags = VOTABLE | RETAIN_FF_ENABLE,
6830};
6831
6832static struct gdsc ufs_card_gdsc = {
6833	.gdscr = 0x75004,
6834	.pd = {
6835		.name = "ufs_card_gdsc",
6836	},
6837	.pwrsts = PWRSTS_OFF_ON,
6838	.flags = RETAIN_FF_ENABLE,
6839};
6840
6841static struct gdsc ufs_phy_gdsc = {
6842	.gdscr = 0x77004,
6843	.pd = {
6844		.name = "ufs_phy_gdsc",
6845	},
6846	.pwrsts = PWRSTS_OFF_ON,
6847	.flags = RETAIN_FF_ENABLE,
6848};
6849
6850static struct gdsc usb30_mp_gdsc = {
6851	.gdscr = 0xab004,
6852	.pd = {
6853		.name = "usb30_mp_gdsc",
6854	},
6855	.pwrsts = PWRSTS_RET_ON,
6856	.flags = RETAIN_FF_ENABLE,
6857};
6858
6859static struct gdsc usb30_prim_gdsc = {
6860	.gdscr = 0xf004,
6861	.pd = {
6862		.name = "usb30_prim_gdsc",
6863	},
6864	.pwrsts = PWRSTS_RET_ON,
6865	.flags = RETAIN_FF_ENABLE,
6866};
6867
6868static struct gdsc usb30_sec_gdsc = {
6869	.gdscr = 0x10004,
6870	.pd = {
6871		.name = "usb30_sec_gdsc",
6872	},
6873	.pwrsts = PWRSTS_RET_ON,
6874	.flags = RETAIN_FF_ENABLE,
6875};
6876
6877static struct gdsc emac_0_gdsc = {
6878	.gdscr = 0xaa004,
6879	.pd = {
6880		.name = "emac_0_gdsc",
6881	},
6882	.pwrsts = PWRSTS_OFF_ON,
6883	.flags = RETAIN_FF_ENABLE,
6884};
6885
6886static struct gdsc emac_1_gdsc = {
6887	.gdscr = 0xba004,
6888	.pd = {
6889		.name = "emac_1_gdsc",
6890	},
6891	.pwrsts = PWRSTS_OFF_ON,
6892	.flags = RETAIN_FF_ENABLE,
6893};
6894
6895static struct gdsc usb4_1_gdsc = {
6896	.gdscr = 0xb8004,
6897	.pd = {
6898		.name = "usb4_1_gdsc",
6899	},
6900	.pwrsts = PWRSTS_OFF_ON,
6901	.flags = RETAIN_FF_ENABLE,
6902};
6903
6904static struct gdsc usb4_gdsc = {
6905	.gdscr = 0x2a004,
6906	.pd = {
6907		.name = "usb4_gdsc",
6908	},
6909	.pwrsts = PWRSTS_OFF_ON,
6910	.flags = RETAIN_FF_ENABLE,
6911};
6912
6913static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
6914	.gdscr = 0x7d050,
6915	.pd = {
6916		.name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc",
6917	},
6918	.pwrsts = PWRSTS_OFF_ON,
6919	.flags = VOTABLE,
6920};
6921
6922static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc = {
6923	.gdscr = 0x7d058,
6924	.pd = {
6925		.name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc",
6926	},
6927	.pwrsts = PWRSTS_OFF_ON,
6928	.flags = VOTABLE,
6929};
6930
6931static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc = {
6932	.gdscr = 0x7d054,
6933	.pd = {
6934		.name = "hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc",
6935	},
6936	.pwrsts = PWRSTS_OFF_ON,
6937	.flags = VOTABLE,
6938};
6939
6940static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc = {
6941	.gdscr = 0x7d06c,
6942	.pd = {
6943		.name = "hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc",
6944	},
6945	.pwrsts = PWRSTS_OFF_ON,
6946	.flags = VOTABLE,
6947};
6948
6949static struct gdsc hlos1_vote_turing_mmu_tbu0_gdsc = {
6950	.gdscr = 0x7d05c,
6951	.pd = {
6952		.name = "hlos1_vote_turing_mmu_tbu0_gdsc",
6953	},
6954	.pwrsts = PWRSTS_OFF_ON,
6955	.flags = VOTABLE,
6956};
6957
6958static struct gdsc hlos1_vote_turing_mmu_tbu1_gdsc = {
6959	.gdscr = 0x7d060,
6960	.pd = {
6961		.name = "hlos1_vote_turing_mmu_tbu1_gdsc",
6962	},
6963	.pwrsts = PWRSTS_OFF_ON,
6964	.flags = VOTABLE,
6965};
6966
6967static struct gdsc hlos1_vote_turing_mmu_tbu2_gdsc = {
6968	.gdscr = 0x7d0a0,
6969	.pd = {
6970		.name = "hlos1_vote_turing_mmu_tbu2_gdsc",
6971	},
6972	.pwrsts = PWRSTS_OFF_ON,
6973	.flags = VOTABLE,
6974};
6975
6976static struct gdsc hlos1_vote_turing_mmu_tbu3_gdsc = {
6977	.gdscr = 0x7d0a4,
6978	.pd = {
6979		.name = "hlos1_vote_turing_mmu_tbu3_gdsc",
6980	},
6981	.pwrsts = PWRSTS_OFF_ON,
6982	.flags = VOTABLE,
6983};
6984
6985static struct clk_regmap *gcc_sc8280xp_clocks[] = {
6986	[GCC_AGGRE_NOC_PCIE0_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie0_tunnel_axi_clk.clkr,
6987	[GCC_AGGRE_NOC_PCIE1_TUNNEL_AXI_CLK] = &gcc_aggre_noc_pcie1_tunnel_axi_clk.clkr,
6988	[GCC_AGGRE_NOC_PCIE_4_AXI_CLK] = &gcc_aggre_noc_pcie_4_axi_clk.clkr,
6989	[GCC_AGGRE_NOC_PCIE_SOUTH_SF_AXI_CLK] = &gcc_aggre_noc_pcie_south_sf_axi_clk.clkr,
6990	[GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr,
6991	[GCC_AGGRE_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_card_axi_hw_ctl_clk.clkr,
6992	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
6993	[GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_phy_axi_hw_ctl_clk.clkr,
6994	[GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr,
6995	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
6996	[GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
6997	[GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr,
6998	[GCC_AGGRE_USB4_AXI_CLK] = &gcc_aggre_usb4_axi_clk.clkr,
6999	[GCC_AGGRE_USB_NOC_AXI_CLK] = &gcc_aggre_usb_noc_axi_clk.clkr,
7000	[GCC_AGGRE_USB_NOC_NORTH_AXI_CLK] = &gcc_aggre_usb_noc_north_axi_clk.clkr,
7001	[GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK] = &gcc_aggre_usb_noc_south_axi_clk.clkr,
7002	[GCC_AHB2PHY0_CLK] = &gcc_ahb2phy0_clk.clkr,
7003	[GCC_AHB2PHY2_CLK] = &gcc_ahb2phy2_clk.clkr,
7004	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
7005	[GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
7006	[GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
7007	[GCC_CAMERA_THROTTLE_NRT_AXI_CLK] = &gcc_camera_throttle_nrt_axi_clk.clkr,
7008	[GCC_CAMERA_THROTTLE_RT_AXI_CLK] = &gcc_camera_throttle_rt_axi_clk.clkr,
7009	[GCC_CAMERA_THROTTLE_XO_CLK] = &gcc_camera_throttle_xo_clk.clkr,
7010	[GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr,
7011	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
7012	[GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
7013	[GCC_CNOC_PCIE0_TUNNEL_CLK] = &gcc_cnoc_pcie0_tunnel_clk.clkr,
7014	[GCC_CNOC_PCIE1_TUNNEL_CLK] = &gcc_cnoc_pcie1_tunnel_clk.clkr,
7015	[GCC_CNOC_PCIE4_QX_CLK] = &gcc_cnoc_pcie4_qx_clk.clkr,
7016	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
7017	[GCC_DDRSS_PCIE_SF_TBU_CLK] = &gcc_ddrss_pcie_sf_tbu_clk.clkr,
7018	[GCC_DISP1_HF_AXI_CLK] = &gcc_disp1_hf_axi_clk.clkr,
7019	[GCC_DISP1_SF_AXI_CLK] = &gcc_disp1_sf_axi_clk.clkr,
7020	[GCC_DISP1_THROTTLE_NRT_AXI_CLK] = &gcc_disp1_throttle_nrt_axi_clk.clkr,
7021	[GCC_DISP1_THROTTLE_RT_AXI_CLK] = &gcc_disp1_throttle_rt_axi_clk.clkr,
7022	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
7023	[GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr,
7024	[GCC_DISP_THROTTLE_NRT_AXI_CLK] = &gcc_disp_throttle_nrt_axi_clk.clkr,
7025	[GCC_DISP_THROTTLE_RT_AXI_CLK] = &gcc_disp_throttle_rt_axi_clk.clkr,
7026	[GCC_EMAC0_AXI_CLK] = &gcc_emac0_axi_clk.clkr,
7027	[GCC_EMAC0_PTP_CLK] = &gcc_emac0_ptp_clk.clkr,
7028	[GCC_EMAC0_PTP_CLK_SRC] = &gcc_emac0_ptp_clk_src.clkr,
7029	[GCC_EMAC0_RGMII_CLK] = &gcc_emac0_rgmii_clk.clkr,
7030	[GCC_EMAC0_RGMII_CLK_SRC] = &gcc_emac0_rgmii_clk_src.clkr,
7031	[GCC_EMAC0_SLV_AHB_CLK] = &gcc_emac0_slv_ahb_clk.clkr,
7032	[GCC_EMAC1_AXI_CLK] = &gcc_emac1_axi_clk.clkr,
7033	[GCC_EMAC1_PTP_CLK] = &gcc_emac1_ptp_clk.clkr,
7034	[GCC_EMAC1_PTP_CLK_SRC] = &gcc_emac1_ptp_clk_src.clkr,
7035	[GCC_EMAC1_RGMII_CLK] = &gcc_emac1_rgmii_clk.clkr,
7036	[GCC_EMAC1_RGMII_CLK_SRC] = &gcc_emac1_rgmii_clk_src.clkr,
7037	[GCC_EMAC1_SLV_AHB_CLK] = &gcc_emac1_slv_ahb_clk.clkr,
7038	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
7039	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
7040	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
7041	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
7042	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
7043	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
7044	[GCC_GP4_CLK] = &gcc_gp4_clk.clkr,
7045	[GCC_GP4_CLK_SRC] = &gcc_gp4_clk_src.clkr,
7046	[GCC_GP5_CLK] = &gcc_gp5_clk.clkr,
7047	[GCC_GP5_CLK_SRC] = &gcc_gp5_clk_src.clkr,
7048	[GCC_GPLL0] = &gcc_gpll0.clkr,
7049	[GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
7050	[GCC_GPLL2] = &gcc_gpll2.clkr,
7051	[GCC_GPLL4] = &gcc_gpll4.clkr,
7052	[GCC_GPLL7] = &gcc_gpll7.clkr,
7053	[GCC_GPLL8] = &gcc_gpll8.clkr,
7054	[GCC_GPLL9] = &gcc_gpll9.clkr,
7055	[GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
7056	[GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
7057	[GCC_GPU_IREF_EN] = &gcc_gpu_iref_en.clkr,
7058	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
7059	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
7060	[GCC_GPU_TCU_THROTTLE_AHB_CLK] = &gcc_gpu_tcu_throttle_ahb_clk.clkr,
7061	[GCC_GPU_TCU_THROTTLE_CLK] = &gcc_gpu_tcu_throttle_clk.clkr,
7062	[GCC_PCIE0_PHY_RCHNG_CLK] = &gcc_pcie0_phy_rchng_clk.clkr,
7063	[GCC_PCIE1_PHY_RCHNG_CLK] = &gcc_pcie1_phy_rchng_clk.clkr,
7064	[GCC_PCIE2A_PHY_RCHNG_CLK] = &gcc_pcie2a_phy_rchng_clk.clkr,
7065	[GCC_PCIE2B_PHY_RCHNG_CLK] = &gcc_pcie2b_phy_rchng_clk.clkr,
7066	[GCC_PCIE3A_PHY_RCHNG_CLK] = &gcc_pcie3a_phy_rchng_clk.clkr,
7067	[GCC_PCIE3B_PHY_RCHNG_CLK] = &gcc_pcie3b_phy_rchng_clk.clkr,
7068	[GCC_PCIE4_PHY_RCHNG_CLK] = &gcc_pcie4_phy_rchng_clk.clkr,
7069	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
7070	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
7071	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
7072	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
7073	[GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
7074	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
7075	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
7076	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
7077	[GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
7078	[GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
7079	[GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
7080	[GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
7081	[GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
7082	[GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
7083	[GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
7084	[GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
7085	[GCC_PCIE_2A2B_CLKREF_CLK] = &gcc_pcie_2a2b_clkref_clk.clkr,
7086	[GCC_PCIE_2A_AUX_CLK] = &gcc_pcie_2a_aux_clk.clkr,
7087	[GCC_PCIE_2A_AUX_CLK_SRC] = &gcc_pcie_2a_aux_clk_src.clkr,
7088	[GCC_PCIE_2A_CFG_AHB_CLK] = &gcc_pcie_2a_cfg_ahb_clk.clkr,
7089	[GCC_PCIE_2A_MSTR_AXI_CLK] = &gcc_pcie_2a_mstr_axi_clk.clkr,
7090	[GCC_PCIE_2A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2a_phy_rchng_clk_src.clkr,
7091	[GCC_PCIE_2A_PIPE_CLK] = &gcc_pcie_2a_pipe_clk.clkr,
7092	[GCC_PCIE_2A_PIPE_CLK_SRC] = &gcc_pcie_2a_pipe_clk_src.clkr,
7093	[GCC_PCIE_2A_PIPE_DIV_CLK_SRC] = &gcc_pcie_2a_pipe_div_clk_src.clkr,
7094	[GCC_PCIE_2A_PIPEDIV2_CLK] = &gcc_pcie_2a_pipediv2_clk.clkr,
7095	[GCC_PCIE_2A_SLV_AXI_CLK] = &gcc_pcie_2a_slv_axi_clk.clkr,
7096	[GCC_PCIE_2A_SLV_Q2A_AXI_CLK] = &gcc_pcie_2a_slv_q2a_axi_clk.clkr,
7097	[GCC_PCIE_2B_AUX_CLK] = &gcc_pcie_2b_aux_clk.clkr,
7098	[GCC_PCIE_2B_AUX_CLK_SRC] = &gcc_pcie_2b_aux_clk_src.clkr,
7099	[GCC_PCIE_2B_CFG_AHB_CLK] = &gcc_pcie_2b_cfg_ahb_clk.clkr,
7100	[GCC_PCIE_2B_MSTR_AXI_CLK] = &gcc_pcie_2b_mstr_axi_clk.clkr,
7101	[GCC_PCIE_2B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2b_phy_rchng_clk_src.clkr,
7102	[GCC_PCIE_2B_PIPE_CLK] = &gcc_pcie_2b_pipe_clk.clkr,
7103	[GCC_PCIE_2B_PIPE_CLK_SRC] = &gcc_pcie_2b_pipe_clk_src.clkr,
7104	[GCC_PCIE_2B_PIPE_DIV_CLK_SRC] = &gcc_pcie_2b_pipe_div_clk_src.clkr,
7105	[GCC_PCIE_2B_PIPEDIV2_CLK] = &gcc_pcie_2b_pipediv2_clk.clkr,
7106	[GCC_PCIE_2B_SLV_AXI_CLK] = &gcc_pcie_2b_slv_axi_clk.clkr,
7107	[GCC_PCIE_2B_SLV_Q2A_AXI_CLK] = &gcc_pcie_2b_slv_q2a_axi_clk.clkr,
7108	[GCC_PCIE_3A3B_CLKREF_CLK] = &gcc_pcie_3a3b_clkref_clk.clkr,
7109	[GCC_PCIE_3A_AUX_CLK] = &gcc_pcie_3a_aux_clk.clkr,
7110	[GCC_PCIE_3A_AUX_CLK_SRC] = &gcc_pcie_3a_aux_clk_src.clkr,
7111	[GCC_PCIE_3A_CFG_AHB_CLK] = &gcc_pcie_3a_cfg_ahb_clk.clkr,
7112	[GCC_PCIE_3A_MSTR_AXI_CLK] = &gcc_pcie_3a_mstr_axi_clk.clkr,
7113	[GCC_PCIE_3A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3a_phy_rchng_clk_src.clkr,
7114	[GCC_PCIE_3A_PIPE_CLK] = &gcc_pcie_3a_pipe_clk.clkr,
7115	[GCC_PCIE_3A_PIPE_CLK_SRC] = &gcc_pcie_3a_pipe_clk_src.clkr,
7116	[GCC_PCIE_3A_PIPE_DIV_CLK_SRC] = &gcc_pcie_3a_pipe_div_clk_src.clkr,
7117	[GCC_PCIE_3A_PIPEDIV2_CLK] = &gcc_pcie_3a_pipediv2_clk.clkr,
7118	[GCC_PCIE_3A_SLV_AXI_CLK] = &gcc_pcie_3a_slv_axi_clk.clkr,
7119	[GCC_PCIE_3A_SLV_Q2A_AXI_CLK] = &gcc_pcie_3a_slv_q2a_axi_clk.clkr,
7120	[GCC_PCIE_3B_AUX_CLK] = &gcc_pcie_3b_aux_clk.clkr,
7121	[GCC_PCIE_3B_AUX_CLK_SRC] = &gcc_pcie_3b_aux_clk_src.clkr,
7122	[GCC_PCIE_3B_CFG_AHB_CLK] = &gcc_pcie_3b_cfg_ahb_clk.clkr,
7123	[GCC_PCIE_3B_MSTR_AXI_CLK] = &gcc_pcie_3b_mstr_axi_clk.clkr,
7124	[GCC_PCIE_3B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3b_phy_rchng_clk_src.clkr,
7125	[GCC_PCIE_3B_PIPE_CLK] = &gcc_pcie_3b_pipe_clk.clkr,
7126	[GCC_PCIE_3B_PIPE_CLK_SRC] = &gcc_pcie_3b_pipe_clk_src.clkr,
7127	[GCC_PCIE_3B_PIPE_DIV_CLK_SRC] = &gcc_pcie_3b_pipe_div_clk_src.clkr,
7128	[GCC_PCIE_3B_PIPEDIV2_CLK] = &gcc_pcie_3b_pipediv2_clk.clkr,
7129	[GCC_PCIE_3B_SLV_AXI_CLK] = &gcc_pcie_3b_slv_axi_clk.clkr,
7130	[GCC_PCIE_3B_SLV_Q2A_AXI_CLK] = &gcc_pcie_3b_slv_q2a_axi_clk.clkr,
7131	[GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr,
7132	[GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr,
7133	[GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr,
7134	[GCC_PCIE_4_CLKREF_CLK] = &gcc_pcie_4_clkref_clk.clkr,
7135	[GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr,
7136	[GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr,
7137	[GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr,
7138	[GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr,
7139	[GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr,
7140	[GCC_PCIE_4_PIPEDIV2_CLK] = &gcc_pcie_4_pipediv2_clk.clkr,
7141	[GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr,
7142	[GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr,
7143	[GCC_PCIE_RSCC_AHB_CLK] = &gcc_pcie_rscc_ahb_clk.clkr,
7144	[GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr,
7145	[GCC_PCIE_RSCC_XO_CLK_SRC] = &gcc_pcie_rscc_xo_clk_src.clkr,
7146	[GCC_PCIE_THROTTLE_CFG_CLK] = &gcc_pcie_throttle_cfg_clk.clkr,
7147	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
7148	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
7149	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
7150	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
7151	[GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
7152	[GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
7153	[GCC_QMIP_DISP1_AHB_CLK] = &gcc_qmip_disp1_ahb_clk.clkr,
7154	[GCC_QMIP_DISP1_ROT_AHB_CLK] = &gcc_qmip_disp1_rot_ahb_clk.clkr,
7155	[GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
7156	[GCC_QMIP_DISP_ROT_AHB_CLK] = &gcc_qmip_disp_rot_ahb_clk.clkr,
7157	[GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
7158	[GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
7159	[GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
7160	[GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
7161	[GCC_QUPV3_WRAP0_QSPI0_CLK] = &gcc_qupv3_wrap0_qspi0_clk.clkr,
7162	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
7163	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
7164	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
7165	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
7166	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
7167	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
7168	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
7169	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
7170	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
7171	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
7172	[GCC_QUPV3_WRAP0_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap0_s4_div_clk_src.clkr,
7173	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
7174	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
7175	[GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
7176	[GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
7177	[GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
7178	[GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
7179	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
7180	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
7181	[GCC_QUPV3_WRAP1_QSPI0_CLK] = &gcc_qupv3_wrap1_qspi0_clk.clkr,
7182	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
7183	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
7184	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
7185	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
7186	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
7187	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
7188	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
7189	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
7190	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
7191	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
7192	[GCC_QUPV3_WRAP1_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap1_s4_div_clk_src.clkr,
7193	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
7194	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
7195	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
7196	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
7197	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
7198	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
7199	[GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
7200	[GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
7201	[GCC_QUPV3_WRAP2_QSPI0_CLK] = &gcc_qupv3_wrap2_qspi0_clk.clkr,
7202	[GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
7203	[GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
7204	[GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
7205	[GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
7206	[GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
7207	[GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
7208	[GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
7209	[GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
7210	[GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
7211	[GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
7212	[GCC_QUPV3_WRAP2_S4_DIV_CLK_SRC] = &gcc_qupv3_wrap2_s4_div_clk_src.clkr,
7213	[GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
7214	[GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
7215	[GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
7216	[GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
7217	[GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
7218	[GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
7219	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
7220	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
7221	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
7222	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
7223	[GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
7224	[GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
7225	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
7226	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
7227	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
7228	[GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
7229	[GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
7230	[GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
7231	[GCC_SYS_NOC_USB_AXI_CLK] = &gcc_sys_noc_usb_axi_clk.clkr,
7232	[GCC_UFS_1_CARD_CLKREF_CLK] = &gcc_ufs_1_card_clkref_clk.clkr,
7233	[GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr,
7234	[GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr,
7235	[GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr,
7236	[GCC_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_ufs_card_axi_hw_ctl_clk.clkr,
7237	[GCC_UFS_CARD_CLKREF_CLK] = &gcc_ufs_card_clkref_clk.clkr,
7238	[GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr,
7239	[GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr,
7240	[GCC_UFS_CARD_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_card_ice_core_hw_ctl_clk.clkr,
7241	[GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr,
7242	[GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
7243	[GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_card_phy_aux_hw_ctl_clk.clkr,
7244	[GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
7245	[GCC_UFS_CARD_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_rx_symbol_0_clk_src.clkr,
7246	[GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
7247	[GCC_UFS_CARD_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_card_rx_symbol_1_clk_src.clkr,
7248	[GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
7249	[GCC_UFS_CARD_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_tx_symbol_0_clk_src.clkr,
7250	[GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
7251	[GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_card_unipro_core_clk_src.clkr,
7252	[GCC_UFS_CARD_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_card_unipro_core_hw_ctl_clk.clkr,
7253	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
7254	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
7255	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
7256	[GCC_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_ufs_phy_axi_hw_ctl_clk.clkr,
7257	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
7258	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
7259	[GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_phy_ice_core_hw_ctl_clk.clkr,
7260	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
7261	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
7262	[GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr,
7263	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
7264	[GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
7265	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
7266	[GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
7267	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
7268	[GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
7269	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
7270	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
7271	[GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_phy_unipro_core_hw_ctl_clk.clkr,
7272	[GCC_UFS_REF_CLKREF_CLK] = &gcc_ufs_ref_clkref_clk.clkr,
7273	[GCC_USB2_HS0_CLKREF_CLK] = &gcc_usb2_hs0_clkref_clk.clkr,
7274	[GCC_USB2_HS1_CLKREF_CLK] = &gcc_usb2_hs1_clkref_clk.clkr,
7275	[GCC_USB2_HS2_CLKREF_CLK] = &gcc_usb2_hs2_clkref_clk.clkr,
7276	[GCC_USB2_HS3_CLKREF_CLK] = &gcc_usb2_hs3_clkref_clk.clkr,
7277	[GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr,
7278	[GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr,
7279	[GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr,
7280	[GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr,
7281	[GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr,
7282	[GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr,
7283	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
7284	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
7285	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
7286	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
7287	[GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
7288	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
7289	[GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
7290	[GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
7291	[GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
7292	[GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
7293	[GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
7294	[GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
7295	[GCC_USB34_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb34_prim_phy_pipe_clk_src.clkr,
7296	[GCC_USB34_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb34_sec_phy_pipe_clk_src.clkr,
7297	[GCC_USB3_MP0_CLKREF_CLK] = &gcc_usb3_mp0_clkref_clk.clkr,
7298	[GCC_USB3_MP1_CLKREF_CLK] = &gcc_usb3_mp1_clkref_clk.clkr,
7299	[GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
7300	[GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
7301	[GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
7302	[GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr,
7303	[GCC_USB3_MP_PHY_PIPE_0_CLK_SRC] = &gcc_usb3_mp_phy_pipe_0_clk_src.clkr,
7304	[GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr,
7305	[GCC_USB3_MP_PHY_PIPE_1_CLK_SRC] = &gcc_usb3_mp_phy_pipe_1_clk_src.clkr,
7306	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
7307	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
7308	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
7309	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
7310	[GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
7311	[GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
7312	[GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
7313	[GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
7314	[GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
7315	[GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
7316	[GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr,
7317	[GCC_USB4_1_DP_CLK] = &gcc_usb4_1_dp_clk.clkr,
7318	[GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
7319	[GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
7320	[GCC_USB4_1_PHY_DP_CLK_SRC] = &gcc_usb4_1_phy_dp_clk_src.clkr,
7321	[GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
7322	[GCC_USB4_1_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_1_phy_p2rr2p_pipe_clk_src.clkr,
7323	[GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
7324	[GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
7325	[GCC_USB4_1_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_mux_clk_src.clkr,
7326	[GCC_USB4_1_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipegmux_clk_src.clkr,
7327	[GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
7328	[GCC_USB4_1_PHY_RX0_CLK_SRC] = &gcc_usb4_1_phy_rx0_clk_src.clkr,
7329	[GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
7330	[GCC_USB4_1_PHY_RX1_CLK_SRC] = &gcc_usb4_1_phy_rx1_clk_src.clkr,
7331	[GCC_USB4_1_PHY_SYS_CLK_SRC] = &gcc_usb4_1_phy_sys_clk_src.clkr,
7332	[GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
7333	[GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
7334	[GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
7335	[GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr,
7336	[GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr,
7337	[GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr,
7338	[GCC_USB4_CFG_AHB_CLK] = &gcc_usb4_cfg_ahb_clk.clkr,
7339	[GCC_USB4_CLKREF_CLK] = &gcc_usb4_clkref_clk.clkr,
7340	[GCC_USB4_DP_CLK] = &gcc_usb4_dp_clk.clkr,
7341	[GCC_USB4_EUD_CLKREF_CLK] = &gcc_usb4_eud_clkref_clk.clkr,
7342	[GCC_USB4_MASTER_CLK] = &gcc_usb4_master_clk.clkr,
7343	[GCC_USB4_MASTER_CLK_SRC] = &gcc_usb4_master_clk_src.clkr,
7344	[GCC_USB4_PHY_DP_CLK_SRC] = &gcc_usb4_phy_dp_clk_src.clkr,
7345	[GCC_USB4_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_phy_p2rr2p_pipe_clk.clkr,
7346	[GCC_USB4_PHY_P2RR2P_PIPE_CLK_SRC] = &gcc_usb4_phy_p2rr2p_pipe_clk_src.clkr,
7347	[GCC_USB4_PHY_PCIE_PIPE_CLK] = &gcc_usb4_phy_pcie_pipe_clk.clkr,
7348	[GCC_USB4_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_clk_src.clkr,
7349	[GCC_USB4_PHY_PCIE_PIPE_MUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipe_mux_clk_src.clkr,
7350	[GCC_USB4_PHY_PCIE_PIPEGMUX_CLK_SRC] = &gcc_usb4_phy_pcie_pipegmux_clk_src.clkr,
7351	[GCC_USB4_PHY_RX0_CLK] = &gcc_usb4_phy_rx0_clk.clkr,
7352	[GCC_USB4_PHY_RX0_CLK_SRC] = &gcc_usb4_phy_rx0_clk_src.clkr,
7353	[GCC_USB4_PHY_RX1_CLK] = &gcc_usb4_phy_rx1_clk.clkr,
7354	[GCC_USB4_PHY_RX1_CLK_SRC] = &gcc_usb4_phy_rx1_clk_src.clkr,
7355	[GCC_USB4_PHY_SYS_CLK_SRC] = &gcc_usb4_phy_sys_clk_src.clkr,
7356	[GCC_USB4_PHY_USB_PIPE_CLK] = &gcc_usb4_phy_usb_pipe_clk.clkr,
7357	[GCC_USB4_SB_IF_CLK] = &gcc_usb4_sb_if_clk.clkr,
7358	[GCC_USB4_SB_IF_CLK_SRC] = &gcc_usb4_sb_if_clk_src.clkr,
7359	[GCC_USB4_SYS_CLK] = &gcc_usb4_sys_clk.clkr,
7360	[GCC_USB4_TMU_CLK] = &gcc_usb4_tmu_clk.clkr,
7361	[GCC_USB4_TMU_CLK_SRC] = &gcc_usb4_tmu_clk_src.clkr,
7362	[GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
7363	[GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
7364	[GCC_VIDEO_CVP_THROTTLE_CLK] = &gcc_video_cvp_throttle_clk.clkr,
7365	[GCC_VIDEO_VCODEC_THROTTLE_CLK] = &gcc_video_vcodec_throttle_clk.clkr,
7366};
7367
7368static const struct qcom_reset_map gcc_sc8280xp_resets[] = {
7369	[GCC_EMAC0_BCR] = { 0xaa000 },
7370	[GCC_EMAC1_BCR] = { 0xba000 },
7371	[GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 },
7372	[GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 },
7373	[GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
7374	[GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 },
7375	[GCC_PCIE_0_TUNNEL_BCR] = { 0xa4000 },
7376	[GCC_PCIE_1_LINK_DOWN_BCR] = { 0x8e014 },
7377	[GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x8e020 },
7378	[GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
7379	[GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x8e000 },
7380	[GCC_PCIE_1_TUNNEL_BCR] = { 0x8d000 },
7381	[GCC_PCIE_2A_BCR] = { 0x9d000 },
7382	[GCC_PCIE_2A_LINK_DOWN_BCR] = { 0x9d13c },
7383	[GCC_PCIE_2A_NOCSR_COM_PHY_BCR] = { 0x9d148 },
7384	[GCC_PCIE_2A_PHY_BCR] = { 0x9d144 },
7385	[GCC_PCIE_2A_PHY_NOCSR_COM_PHY_BCR] = { 0x9d14c },
7386	[GCC_PCIE_2B_BCR] = { 0x9e000 },
7387	[GCC_PCIE_2B_LINK_DOWN_BCR] = { 0x9e084 },
7388	[GCC_PCIE_2B_NOCSR_COM_PHY_BCR] = { 0x9e090 },
7389	[GCC_PCIE_2B_PHY_BCR] = { 0x9e08c },
7390	[GCC_PCIE_2B_PHY_NOCSR_COM_PHY_BCR] = { 0x9e094 },
7391	[GCC_PCIE_3A_BCR] = { 0xa0000 },
7392	[GCC_PCIE_3A_LINK_DOWN_BCR] = { 0xa00f0 },
7393	[GCC_PCIE_3A_NOCSR_COM_PHY_BCR] = { 0xa00fc },
7394	[GCC_PCIE_3A_PHY_BCR] = { 0xa00e0 },
7395	[GCC_PCIE_3A_PHY_NOCSR_COM_PHY_BCR] = { 0xa00e4 },
7396	[GCC_PCIE_3B_BCR] = { 0xa2000 },
7397	[GCC_PCIE_3B_LINK_DOWN_BCR] = { 0xa20e0 },
7398	[GCC_PCIE_3B_NOCSR_COM_PHY_BCR] = { 0xa20ec },
7399	[GCC_PCIE_3B_PHY_BCR] = { 0xa20e8 },
7400	[GCC_PCIE_3B_PHY_NOCSR_COM_PHY_BCR] = { 0xa20f0 },
7401	[GCC_PCIE_4_BCR] = { 0x6b000 },
7402	[GCC_PCIE_4_LINK_DOWN_BCR] = { 0x6b300 },
7403	[GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0x6b30c },
7404	[GCC_PCIE_4_PHY_BCR] = { 0x6b308 },
7405	[GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0x6b310 },
7406	[GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c },
7407	[GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
7408	[GCC_PCIE_RSCC_BCR] = { 0xae000 },
7409	[GCC_QUSB2PHY_HS0_MP_BCR] = { 0x12008 },
7410	[GCC_QUSB2PHY_HS1_MP_BCR] = { 0x1200c },
7411	[GCC_QUSB2PHY_HS2_MP_BCR] = { 0x12010 },
7412	[GCC_QUSB2PHY_HS3_MP_BCR] = { 0x12014 },
7413	[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
7414	[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
7415	[GCC_SDCC2_BCR] = { 0x14000 },
7416	[GCC_SDCC4_BCR] = { 0x16000 },
7417	[GCC_UFS_CARD_BCR] = { 0x75000 },
7418	[GCC_UFS_PHY_BCR] = { 0x77000 },
7419	[GCC_USB2_PHY_PRIM_BCR] = { 0x50028 },
7420	[GCC_USB2_PHY_SEC_BCR] = { 0x5002c },
7421	[GCC_USB30_MP_BCR] = { 0xab000 },
7422	[GCC_USB30_PRIM_BCR] = { 0xf000 },
7423	[GCC_USB30_SEC_BCR] = { 0x10000 },
7424	[GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 },
7425	[GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 },
7426	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
7427	[GCC_USB3_PHY_SEC_BCR] = { 0x5000c },
7428	[GCC_USB3_UNIPHY_MP0_BCR] = { 0x50018 },
7429	[GCC_USB3_UNIPHY_MP1_BCR] = { 0x5001c },
7430	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
7431	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 },
7432	[GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x50020 },
7433	[GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x50024 },
7434	[GCC_USB4_1_BCR] = { 0xb8000 },
7435	[GCC_USB4_1_DP_PHY_PRIM_BCR] = { 0xb9020 },
7436	[GCC_USB4_1_DPPHY_AUX_BCR] = { 0xb9024 },
7437	[GCC_USB4_1_PHY_PRIM_BCR] = { 0xb9018 },
7438	[GCC_USB4_BCR] = { 0x2a000 },
7439	[GCC_USB4_DP_PHY_PRIM_BCR] = { 0x4a008 },
7440	[GCC_USB4_DPPHY_AUX_BCR] = { 0x4a00c },
7441	[GCC_USB4_PHY_PRIM_BCR] = { 0x4a000 },
7442	[GCC_USB4PHY_1_PHY_PRIM_BCR] = { 0xb901c },
7443	[GCC_USB4PHY_PHY_PRIM_BCR] = { 0x4a004 },
7444	[GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 },
7445	[GCC_VIDEO_BCR] = { 0x28000 },
7446	[GCC_VIDEO_AXI0_CLK_ARES] = { .reg = 0x28010, .bit = 2, .udelay = 400 },
7447	[GCC_VIDEO_AXI1_CLK_ARES] = { .reg = 0x28018, .bit = 2, .udelay = 400 },
7448};
7449
7450static struct gdsc *gcc_sc8280xp_gdscs[] = {
7451	[PCIE_0_TUNNEL_GDSC] = &pcie_0_tunnel_gdsc,
7452	[PCIE_1_TUNNEL_GDSC] = &pcie_1_tunnel_gdsc,
7453	[PCIE_2A_GDSC] = &pcie_2a_gdsc,
7454	[PCIE_2B_GDSC] = &pcie_2b_gdsc,
7455	[PCIE_3A_GDSC] = &pcie_3a_gdsc,
7456	[PCIE_3B_GDSC] = &pcie_3b_gdsc,
7457	[PCIE_4_GDSC] = &pcie_4_gdsc,
7458	[UFS_CARD_GDSC] = &ufs_card_gdsc,
7459	[UFS_PHY_GDSC] = &ufs_phy_gdsc,
7460	[USB30_MP_GDSC] = &usb30_mp_gdsc,
7461	[USB30_PRIM_GDSC] = &usb30_prim_gdsc,
7462	[USB30_SEC_GDSC] = &usb30_sec_gdsc,
7463	[EMAC_0_GDSC] = &emac_0_gdsc,
7464	[EMAC_1_GDSC] = &emac_1_gdsc,
7465	[USB4_1_GDSC] = &usb4_1_gdsc,
7466	[USB4_GDSC] = &usb4_gdsc,
7467	[HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc,
7468	[HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc,
7469	[HLOS1_VOTE_MMNOC_MMU_TBU_SF0_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc,
7470	[HLOS1_VOTE_MMNOC_MMU_TBU_SF1_GDSC] = &hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc,
7471	[HLOS1_VOTE_TURING_MMU_TBU0_GDSC] = &hlos1_vote_turing_mmu_tbu0_gdsc,
7472	[HLOS1_VOTE_TURING_MMU_TBU1_GDSC] = &hlos1_vote_turing_mmu_tbu1_gdsc,
7473	[HLOS1_VOTE_TURING_MMU_TBU2_GDSC] = &hlos1_vote_turing_mmu_tbu2_gdsc,
7474	[HLOS1_VOTE_TURING_MMU_TBU3_GDSC] = &hlos1_vote_turing_mmu_tbu3_gdsc,
7475};
7476
7477static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
7478	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
7479	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
7480	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
7481	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
7482	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
7483	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
7484	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
7485	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
7486	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
7487	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
7488	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
7489	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
7490	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
7491	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
7492	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
7493	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
7494	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
7495	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
7496	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
7497	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
7498	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
7499	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
7500	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src),
7501	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
7502};
7503
7504static const struct regmap_config gcc_sc8280xp_regmap_config = {
7505	.reg_bits = 32,
7506	.reg_stride = 4,
7507	.val_bits = 32,
7508	.max_register = 0xc3014,
7509	.fast_io = true,
7510};
7511
7512static const struct qcom_cc_desc gcc_sc8280xp_desc = {
7513	.config = &gcc_sc8280xp_regmap_config,
7514	.clks = gcc_sc8280xp_clocks,
7515	.num_clks = ARRAY_SIZE(gcc_sc8280xp_clocks),
7516	.resets = gcc_sc8280xp_resets,
7517	.num_resets = ARRAY_SIZE(gcc_sc8280xp_resets),
7518	.gdscs = gcc_sc8280xp_gdscs,
7519	.num_gdscs = ARRAY_SIZE(gcc_sc8280xp_gdscs),
7520};
7521
7522static int gcc_sc8280xp_probe(struct platform_device *pdev)
7523{
7524	struct regmap *regmap;
7525	int ret;
7526
7527	ret = devm_pm_runtime_enable(&pdev->dev);
7528	if (ret)
7529		return ret;
7530
7531	ret = pm_runtime_resume_and_get(&pdev->dev);
7532	if (ret)
7533		return ret;
7534
7535	regmap = qcom_cc_map(pdev, &gcc_sc8280xp_desc);
7536	if (IS_ERR(regmap)) {
7537		ret = PTR_ERR(regmap);
7538		goto err_put_rpm;
7539	}
7540
7541	/* Keep some clocks always-on */
7542	qcom_branch_set_clk_en(regmap, 0x26004); /* GCC_CAMERA_AHB_CLK */
7543	qcom_branch_set_clk_en(regmap, 0x26020); /* GCC_CAMERA_XO_CLK */
7544	qcom_branch_set_clk_en(regmap, 0x27004); /* GCC_DISP_AHB_CLK */
7545	qcom_branch_set_clk_en(regmap, 0x27028); /* GCC_DISP_XO_CLK */
7546	qcom_branch_set_clk_en(regmap, 0x71004); /* GCC_GPU_CFG_AHB_CLK */
7547	qcom_branch_set_clk_en(regmap, 0x28004); /* GCC_VIDEO_AHB_CLK */
7548	qcom_branch_set_clk_en(regmap, 0x28028); /* GCC_VIDEO_XO_CLK */
7549	qcom_branch_set_clk_en(regmap, 0xbb004); /* GCC_DISP1_AHB_CLK */
7550	qcom_branch_set_clk_en(regmap, 0xbb028); /* GCC_DISP1_XO_CLK */
7551
7552	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, ARRAY_SIZE(gcc_dfs_clocks));
7553	if (ret)
7554		goto err_put_rpm;
7555
7556	ret = qcom_cc_really_probe(&pdev->dev, &gcc_sc8280xp_desc, regmap);
7557	if (ret)
7558		goto err_put_rpm;
7559
7560	pm_runtime_put(&pdev->dev);
7561
7562	return 0;
7563
7564err_put_rpm:
7565	pm_runtime_put_sync(&pdev->dev);
7566
7567	return ret;
7568}
7569
7570static const struct of_device_id gcc_sc8280xp_match_table[] = {
7571	{ .compatible = "qcom,gcc-sc8280xp" },
7572	{ }
7573};
7574MODULE_DEVICE_TABLE(of, gcc_sc8280xp_match_table);
7575
7576static struct platform_driver gcc_sc8280xp_driver = {
7577	.probe = gcc_sc8280xp_probe,
7578	.driver = {
7579		.name = "gcc-sc8280xp",
7580		.of_match_table = gcc_sc8280xp_match_table,
7581	},
7582};
7583
7584static int __init gcc_sc8280xp_init(void)
7585{
7586	return platform_driver_register(&gcc_sc8280xp_driver);
7587}
7588subsys_initcall(gcc_sc8280xp_init);
7589
7590static void __exit gcc_sc8280xp_exit(void)
7591{
7592	platform_driver_unregister(&gcc_sc8280xp_driver);
7593}
7594module_exit(gcc_sc8280xp_exit);
7595
7596MODULE_DESCRIPTION("Qualcomm SC8280XP GCC driver");
7597MODULE_LICENSE("GPL");
~/ Read-only file preview.