Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.15.
   1// SPDX-License-Identifier: GPL-2.0-only
   2/*
   3 * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
   4 */
   5
   6#include <linux/clk-provider.h>
   7#include <linux/mod_devicetable.h>
   8#include <linux/module.h>
   9#include <linux/platform_device.h>
  10#include <linux/regmap.h>
  11
  12#include <dt-bindings/clock/qcom,x1e80100-gcc.h>
  13
  14#include "clk-alpha-pll.h"
  15#include "clk-branch.h"
  16#include "clk-rcg.h"
  17#include "clk-regmap.h"
  18#include "clk-regmap-divider.h"
  19#include "clk-regmap-mux.h"
  20#include "clk-regmap-phy-mux.h"
  21#include "gdsc.h"
  22#include "reset.h"
  23
  24enum {
  25	DT_BI_TCXO,
  26	DT_SLEEP_CLK,
  27	DT_PCIE_3_PIPE,
  28	DT_PCIE_4_PIPE,
  29	DT_PCIE_5_PIPE,
  30	DT_PCIE_6A_PIPE,
  31	DT_PCIE_6B_PIPE,
  32	DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE,
  33	DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE,
  34	DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE,
  35};
  36
  37enum {
  38	P_BI_TCXO,
  39	P_GCC_GPLL0_OUT_EVEN,
  40	P_GCC_GPLL0_OUT_MAIN,
  41	P_GCC_GPLL4_OUT_MAIN,
  42	P_GCC_GPLL7_OUT_MAIN,
  43	P_GCC_GPLL8_OUT_MAIN,
  44	P_GCC_GPLL9_OUT_MAIN,
  45	P_SLEEP_CLK,
  46	P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK,
  47	P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK,
  48	P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK,
  49};
  50
  51static struct clk_alpha_pll gcc_gpll0 = {
  52	.offset = 0x0,
  53	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
  54	.clkr = {
  55		.enable_reg = 0x52030,
  56		.enable_mask = BIT(0),
  57		.hw.init = &(const struct clk_init_data) {
  58			.name = "gcc_gpll0",
  59			.parent_data = &(const struct clk_parent_data) {
  60				.index = DT_BI_TCXO,
  61			},
  62			.num_parents = 1,
  63			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
  64		},
  65	},
  66};
  67
  68static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
  69	{ 0x1, 2 },
  70	{ }
  71};
  72
  73static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
  74	.offset = 0x0,
  75	.post_div_shift = 10,
  76	.post_div_table = post_div_table_gcc_gpll0_out_even,
  77	.num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
  78	.width = 4,
  79	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
  80	.clkr.hw.init = &(const struct clk_init_data) {
  81		.name = "gcc_gpll0_out_even",
  82		.parent_hws = (const struct clk_hw*[]) {
  83			&gcc_gpll0.clkr.hw,
  84		},
  85		.num_parents = 1,
  86		.ops = &clk_alpha_pll_postdiv_lucid_ole_ops,
  87	},
  88};
  89
  90static struct clk_alpha_pll gcc_gpll4 = {
  91	.offset = 0x4000,
  92	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
  93	.clkr = {
  94		.enable_reg = 0x52030,
  95		.enable_mask = BIT(4),
  96		.hw.init = &(const struct clk_init_data) {
  97			.name = "gcc_gpll4",
  98			.parent_data = &(const struct clk_parent_data) {
  99				.index = DT_BI_TCXO,
 100			},
 101			.num_parents = 1,
 102			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
 103		},
 104	},
 105};
 106
 107static struct clk_alpha_pll gcc_gpll7 = {
 108	.offset = 0x7000,
 109	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
 110	.clkr = {
 111		.enable_reg = 0x52030,
 112		.enable_mask = BIT(7),
 113		.hw.init = &(const struct clk_init_data) {
 114			.name = "gcc_gpll7",
 115			.parent_data = &(const struct clk_parent_data) {
 116				.index = DT_BI_TCXO,
 117			},
 118			.num_parents = 1,
 119			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
 120		},
 121	},
 122};
 123
 124static struct clk_alpha_pll gcc_gpll8 = {
 125	.offset = 0x8000,
 126	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
 127	.clkr = {
 128		.enable_reg = 0x52030,
 129		.enable_mask = BIT(8),
 130		.hw.init = &(const struct clk_init_data) {
 131			.name = "gcc_gpll8",
 132			.parent_data = &(const struct clk_parent_data) {
 133				.index = DT_BI_TCXO,
 134			},
 135			.num_parents = 1,
 136			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
 137		},
 138	},
 139};
 140
 141static struct clk_alpha_pll gcc_gpll9 = {
 142	.offset = 0x9000,
 143	.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE],
 144	.clkr = {
 145		.enable_reg = 0x52030,
 146		.enable_mask = BIT(9),
 147		.hw.init = &(const struct clk_init_data) {
 148			.name = "gcc_gpll9",
 149			.parent_data = &(const struct clk_parent_data) {
 150				.index = DT_BI_TCXO,
 151			},
 152			.num_parents = 1,
 153			.ops = &clk_alpha_pll_fixed_lucid_ole_ops,
 154		},
 155	},
 156};
 157
 158static const struct parent_map gcc_parent_map_0[] = {
 159	{ P_BI_TCXO, 0 },
 160	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 161	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 162};
 163
 164static const struct clk_parent_data gcc_parent_data_0[] = {
 165	{ .index = DT_BI_TCXO },
 166	{ .hw = &gcc_gpll0.clkr.hw },
 167	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 168};
 169
 170static const struct parent_map gcc_parent_map_1[] = {
 171	{ P_BI_TCXO, 0 },
 172	{ P_SLEEP_CLK, 5 },
 173};
 174
 175static const struct clk_parent_data gcc_parent_data_1[] = {
 176	{ .index = DT_BI_TCXO },
 177	{ .index = DT_SLEEP_CLK },
 178};
 179
 180static const struct parent_map gcc_parent_map_2[] = {
 181	{ P_BI_TCXO, 0 },
 182	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 183	{ P_SLEEP_CLK, 5 },
 184	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 185};
 186
 187static const struct clk_parent_data gcc_parent_data_2[] = {
 188	{ .index = DT_BI_TCXO },
 189	{ .hw = &gcc_gpll0.clkr.hw },
 190	{ .index = DT_SLEEP_CLK },
 191	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 192};
 193
 194static const struct parent_map gcc_parent_map_3[] = {
 195	{ P_BI_TCXO, 0 },
 196};
 197
 198static const struct clk_parent_data gcc_parent_data_3[] = {
 199	{ .index = DT_BI_TCXO },
 200};
 201
 202static const struct parent_map gcc_parent_map_4[] = {
 203	{ P_BI_TCXO, 0 },
 204	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 205	{ P_GCC_GPLL8_OUT_MAIN, 2 },
 206	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 207};
 208
 209static const struct clk_parent_data gcc_parent_data_4[] = {
 210	{ .index = DT_BI_TCXO },
 211	{ .hw = &gcc_gpll0.clkr.hw },
 212	{ .hw = &gcc_gpll8.clkr.hw },
 213	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 214};
 215
 216static const struct parent_map gcc_parent_map_5[] = {
 217	{ P_BI_TCXO, 0 },
 218	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 219	{ P_GCC_GPLL7_OUT_MAIN, 2 },
 220	{ P_SLEEP_CLK, 5 },
 221};
 222
 223static const struct clk_parent_data gcc_parent_data_5[] = {
 224	{ .index = DT_BI_TCXO },
 225	{ .hw = &gcc_gpll0.clkr.hw },
 226	{ .hw = &gcc_gpll7.clkr.hw },
 227	{ .index = DT_SLEEP_CLK },
 228};
 229
 230static const struct parent_map gcc_parent_map_6[] = {
 231	{ P_BI_TCXO, 0 },
 232	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 233	{ P_GCC_GPLL7_OUT_MAIN, 2 },
 234};
 235
 236static const struct clk_parent_data gcc_parent_data_6[] = {
 237	{ .index = DT_BI_TCXO },
 238	{ .hw = &gcc_gpll0.clkr.hw },
 239	{ .hw = &gcc_gpll7.clkr.hw },
 240};
 241
 242static const struct parent_map gcc_parent_map_7[] = {
 243	{ P_BI_TCXO, 0 },
 244	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 245	{ P_GCC_GPLL4_OUT_MAIN, 5 },
 246	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 247};
 248
 249static const struct clk_parent_data gcc_parent_data_7[] = {
 250	{ .index = DT_BI_TCXO },
 251	{ .hw = &gcc_gpll0.clkr.hw },
 252	{ .hw = &gcc_gpll4.clkr.hw },
 253	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 254};
 255
 256static const struct parent_map gcc_parent_map_8[] = {
 257	{ P_BI_TCXO, 0 },
 258	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 259	{ P_GCC_GPLL7_OUT_MAIN, 2 },
 260	{ P_GCC_GPLL0_OUT_EVEN, 6 },
 261};
 262
 263static const struct clk_parent_data gcc_parent_data_8[] = {
 264	{ .index = DT_BI_TCXO },
 265	{ .hw = &gcc_gpll0.clkr.hw },
 266	{ .hw = &gcc_gpll7.clkr.hw },
 267	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 268};
 269
 270static const struct parent_map gcc_parent_map_9[] = {
 271	{ P_BI_TCXO, 0 },
 272	{ P_GCC_GPLL0_OUT_MAIN, 1 },
 273	{ P_GCC_GPLL9_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_10[] = {
 279	{ .index = DT_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE },
 280	{ .index = DT_BI_TCXO },
 281};
 282
 283static const struct parent_map gcc_parent_map_10[] = {
 284	{ P_USB3_PHY_0_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
 285	{ P_BI_TCXO, 2 },
 286};
 287
 288static const struct clk_parent_data gcc_parent_data_11[] = {
 289	{ .index = DT_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE },
 290	{ .index = DT_BI_TCXO },
 291};
 292
 293static const struct parent_map gcc_parent_map_11[] = {
 294	{ P_USB3_PHY_1_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
 295	{ P_BI_TCXO, 2 },
 296};
 297
 298static const struct clk_parent_data gcc_parent_data_12[] = {
 299	{ .index = DT_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE },
 300	{ .index = DT_BI_TCXO },
 301};
 302
 303static const struct parent_map gcc_parent_map_12[] = {
 304	{ P_USB3_PHY_2_WRAPPER_GCC_USB30_PIPE_CLK, 0 },
 305	{ P_BI_TCXO, 2 },
 306};
 307
 308static const struct clk_parent_data gcc_parent_data_9[] = {
 309	{ .index = DT_BI_TCXO },
 310	{ .hw = &gcc_gpll0.clkr.hw },
 311	{ .hw = &gcc_gpll9.clkr.hw },
 312	{ .hw = &gcc_gpll4.clkr.hw },
 313	{ .hw = &gcc_gpll0_out_even.clkr.hw },
 314};
 315
 316static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
 317	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
 318	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
 319	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
 320	{ }
 321};
 322
 323static struct clk_rcg2 gcc_gp1_clk_src = {
 324	.cmd_rcgr = 0x64004,
 325	.mnd_width = 16,
 326	.hid_width = 5,
 327	.parent_map = gcc_parent_map_2,
 328	.freq_tbl = ftbl_gcc_gp1_clk_src,
 329	.clkr.hw.init = &(const struct clk_init_data) {
 330		.name = "gcc_gp1_clk_src",
 331		.parent_data = gcc_parent_data_2,
 332		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
 333		.flags = CLK_SET_RATE_PARENT,
 334		.ops = &clk_rcg2_shared_ops,
 335	},
 336};
 337
 338static struct clk_rcg2 gcc_gp2_clk_src = {
 339	.cmd_rcgr = 0x65004,
 340	.mnd_width = 16,
 341	.hid_width = 5,
 342	.parent_map = gcc_parent_map_2,
 343	.freq_tbl = ftbl_gcc_gp1_clk_src,
 344	.clkr.hw.init = &(const struct clk_init_data) {
 345		.name = "gcc_gp2_clk_src",
 346		.parent_data = gcc_parent_data_2,
 347		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
 348		.flags = CLK_SET_RATE_PARENT,
 349		.ops = &clk_rcg2_shared_ops,
 350	},
 351};
 352
 353static struct clk_rcg2 gcc_gp3_clk_src = {
 354	.cmd_rcgr = 0x66004,
 355	.mnd_width = 16,
 356	.hid_width = 5,
 357	.parent_map = gcc_parent_map_2,
 358	.freq_tbl = ftbl_gcc_gp1_clk_src,
 359	.clkr.hw.init = &(const struct clk_init_data) {
 360		.name = "gcc_gp3_clk_src",
 361		.parent_data = gcc_parent_data_2,
 362		.num_parents = ARRAY_SIZE(gcc_parent_data_2),
 363		.flags = CLK_SET_RATE_PARENT,
 364		.ops = &clk_rcg2_shared_ops,
 365	},
 366};
 367
 368static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = {
 369	F(19200000, P_BI_TCXO, 1, 0, 0),
 370	{ }
 371};
 372
 373static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
 374	.cmd_rcgr = 0xa0180,
 375	.mnd_width = 16,
 376	.hid_width = 5,
 377	.parent_map = gcc_parent_map_1,
 378	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
 379	.clkr.hw.init = &(const struct clk_init_data) {
 380		.name = "gcc_pcie_0_aux_clk_src",
 381		.parent_data = gcc_parent_data_1,
 382		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
 383		.flags = CLK_SET_RATE_PARENT,
 384		.ops = &clk_rcg2_shared_ops,
 385	},
 386};
 387
 388static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
 389	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
 390	{ }
 391};
 392
 393static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
 394	.cmd_rcgr = 0xa0054,
 395	.mnd_width = 0,
 396	.hid_width = 5,
 397	.parent_map = gcc_parent_map_0,
 398	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
 399	.clkr.hw.init = &(const struct clk_init_data) {
 400		.name = "gcc_pcie_0_phy_rchng_clk_src",
 401		.parent_data = gcc_parent_data_0,
 402		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 403		.flags = CLK_SET_RATE_PARENT,
 404		.ops = &clk_rcg2_shared_ops,
 405	},
 406};
 407
 408static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
 409	.cmd_rcgr = 0x2c180,
 410	.mnd_width = 16,
 411	.hid_width = 5,
 412	.parent_map = gcc_parent_map_1,
 413	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
 414	.clkr.hw.init = &(const struct clk_init_data) {
 415		.name = "gcc_pcie_1_aux_clk_src",
 416		.parent_data = gcc_parent_data_1,
 417		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
 418		.flags = CLK_SET_RATE_PARENT,
 419		.ops = &clk_rcg2_shared_ops,
 420	},
 421};
 422
 423static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
 424	.cmd_rcgr = 0x2c054,
 425	.mnd_width = 0,
 426	.hid_width = 5,
 427	.parent_map = gcc_parent_map_0,
 428	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
 429	.clkr.hw.init = &(const struct clk_init_data) {
 430		.name = "gcc_pcie_1_phy_rchng_clk_src",
 431		.parent_data = gcc_parent_data_0,
 432		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 433		.flags = CLK_SET_RATE_PARENT,
 434		.ops = &clk_rcg2_shared_ops,
 435	},
 436};
 437
 438static struct clk_rcg2 gcc_pcie_2_aux_clk_src = {
 439	.cmd_rcgr = 0x13180,
 440	.mnd_width = 16,
 441	.hid_width = 5,
 442	.parent_map = gcc_parent_map_1,
 443	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
 444	.clkr.hw.init = &(const struct clk_init_data) {
 445		.name = "gcc_pcie_2_aux_clk_src",
 446		.parent_data = gcc_parent_data_1,
 447		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
 448		.flags = CLK_SET_RATE_PARENT,
 449		.ops = &clk_rcg2_shared_ops,
 450	},
 451};
 452
 453static struct clk_rcg2 gcc_pcie_2_phy_rchng_clk_src = {
 454	.cmd_rcgr = 0x13054,
 455	.mnd_width = 0,
 456	.hid_width = 5,
 457	.parent_map = gcc_parent_map_0,
 458	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
 459	.clkr.hw.init = &(const struct clk_init_data) {
 460		.name = "gcc_pcie_2_phy_rchng_clk_src",
 461		.parent_data = gcc_parent_data_0,
 462		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 463		.flags = CLK_SET_RATE_PARENT,
 464		.ops = &clk_rcg2_shared_ops,
 465	},
 466};
 467
 468static struct clk_rcg2 gcc_pcie_3_aux_clk_src = {
 469	.cmd_rcgr = 0x5808c,
 470	.mnd_width = 16,
 471	.hid_width = 5,
 472	.parent_map = gcc_parent_map_1,
 473	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
 474	.clkr.hw.init = &(const struct clk_init_data) {
 475		.name = "gcc_pcie_3_aux_clk_src",
 476		.parent_data = gcc_parent_data_1,
 477		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
 478		.flags = CLK_SET_RATE_PARENT,
 479		.ops = &clk_rcg2_shared_ops,
 480	},
 481};
 482
 483static struct clk_rcg2 gcc_pcie_3_phy_rchng_clk_src = {
 484	.cmd_rcgr = 0x58070,
 485	.mnd_width = 0,
 486	.hid_width = 5,
 487	.parent_map = gcc_parent_map_0,
 488	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
 489	.clkr.hw.init = &(const struct clk_init_data) {
 490		.name = "gcc_pcie_3_phy_rchng_clk_src",
 491		.parent_data = gcc_parent_data_0,
 492		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 493		.flags = CLK_SET_RATE_PARENT,
 494		.ops = &clk_rcg2_shared_ops,
 495	},
 496};
 497
 498static struct clk_rcg2 gcc_pcie_4_aux_clk_src = {
 499	.cmd_rcgr = 0x6b080,
 500	.mnd_width = 16,
 501	.hid_width = 5,
 502	.parent_map = gcc_parent_map_1,
 503	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
 504	.clkr.hw.init = &(const struct clk_init_data) {
 505		.name = "gcc_pcie_4_aux_clk_src",
 506		.parent_data = gcc_parent_data_1,
 507		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
 508		.flags = CLK_SET_RATE_PARENT,
 509		.ops = &clk_rcg2_shared_ops,
 510	},
 511};
 512
 513static struct clk_rcg2 gcc_pcie_4_phy_rchng_clk_src = {
 514	.cmd_rcgr = 0x6b064,
 515	.mnd_width = 0,
 516	.hid_width = 5,
 517	.parent_map = gcc_parent_map_0,
 518	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
 519	.clkr.hw.init = &(const struct clk_init_data) {
 520		.name = "gcc_pcie_4_phy_rchng_clk_src",
 521		.parent_data = gcc_parent_data_0,
 522		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 523		.flags = CLK_SET_RATE_PARENT,
 524		.ops = &clk_rcg2_shared_ops,
 525	},
 526};
 527
 528static struct clk_rcg2 gcc_pcie_5_aux_clk_src = {
 529	.cmd_rcgr = 0x2f080,
 530	.mnd_width = 16,
 531	.hid_width = 5,
 532	.parent_map = gcc_parent_map_1,
 533	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
 534	.clkr.hw.init = &(const struct clk_init_data) {
 535		.name = "gcc_pcie_5_aux_clk_src",
 536		.parent_data = gcc_parent_data_1,
 537		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
 538		.flags = CLK_SET_RATE_PARENT,
 539		.ops = &clk_rcg2_shared_ops,
 540	},
 541};
 542
 543static struct clk_rcg2 gcc_pcie_5_phy_rchng_clk_src = {
 544	.cmd_rcgr = 0x2f064,
 545	.mnd_width = 0,
 546	.hid_width = 5,
 547	.parent_map = gcc_parent_map_0,
 548	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
 549	.clkr.hw.init = &(const struct clk_init_data) {
 550		.name = "gcc_pcie_5_phy_rchng_clk_src",
 551		.parent_data = gcc_parent_data_0,
 552		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 553		.flags = CLK_SET_RATE_PARENT,
 554		.ops = &clk_rcg2_shared_ops,
 555	},
 556};
 557
 558static struct clk_rcg2 gcc_pcie_6a_aux_clk_src = {
 559	.cmd_rcgr = 0x3108c,
 560	.mnd_width = 16,
 561	.hid_width = 5,
 562	.parent_map = gcc_parent_map_1,
 563	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
 564	.clkr.hw.init = &(const struct clk_init_data) {
 565		.name = "gcc_pcie_6a_aux_clk_src",
 566		.parent_data = gcc_parent_data_1,
 567		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
 568		.flags = CLK_SET_RATE_PARENT,
 569		.ops = &clk_rcg2_shared_ops,
 570	},
 571};
 572
 573static struct clk_rcg2 gcc_pcie_6a_phy_rchng_clk_src = {
 574	.cmd_rcgr = 0x31070,
 575	.mnd_width = 0,
 576	.hid_width = 5,
 577	.parent_map = gcc_parent_map_0,
 578	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
 579	.clkr.hw.init = &(const struct clk_init_data) {
 580		.name = "gcc_pcie_6a_phy_rchng_clk_src",
 581		.parent_data = gcc_parent_data_0,
 582		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 583		.flags = CLK_SET_RATE_PARENT,
 584		.ops = &clk_rcg2_shared_ops,
 585	},
 586};
 587
 588static struct clk_rcg2 gcc_pcie_6b_aux_clk_src = {
 589	.cmd_rcgr = 0x8d08c,
 590	.mnd_width = 16,
 591	.hid_width = 5,
 592	.parent_map = gcc_parent_map_1,
 593	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
 594	.clkr.hw.init = &(const struct clk_init_data) {
 595		.name = "gcc_pcie_6b_aux_clk_src",
 596		.parent_data = gcc_parent_data_1,
 597		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
 598		.flags = CLK_SET_RATE_PARENT,
 599		.ops = &clk_rcg2_shared_ops,
 600	},
 601};
 602
 603static struct clk_rcg2 gcc_pcie_6b_phy_rchng_clk_src = {
 604	.cmd_rcgr = 0x8d070,
 605	.mnd_width = 0,
 606	.hid_width = 5,
 607	.parent_map = gcc_parent_map_0,
 608	.freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
 609	.clkr.hw.init = &(const struct clk_init_data) {
 610		.name = "gcc_pcie_6b_phy_rchng_clk_src",
 611		.parent_data = gcc_parent_data_0,
 612		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 613		.flags = CLK_SET_RATE_PARENT,
 614		.ops = &clk_rcg2_shared_ops,
 615	},
 616};
 617
 618static struct clk_rcg2 gcc_pcie_rscc_xo_clk_src = {
 619	.cmd_rcgr = 0xa400c,
 620	.mnd_width = 0,
 621	.hid_width = 5,
 622	.parent_map = gcc_parent_map_3,
 623	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
 624	.clkr.hw.init = &(const struct clk_init_data) {
 625		.name = "gcc_pcie_rscc_xo_clk_src",
 626		.parent_data = gcc_parent_data_3,
 627		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
 628		.flags = CLK_SET_RATE_PARENT,
 629		.ops = &clk_rcg2_shared_ops,
 630	},
 631};
 632
 633static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
 634	F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
 635	{ }
 636};
 637
 638static struct clk_rcg2 gcc_pdm2_clk_src = {
 639	.cmd_rcgr = 0x33010,
 640	.mnd_width = 0,
 641	.hid_width = 5,
 642	.parent_map = gcc_parent_map_0,
 643	.freq_tbl = ftbl_gcc_pdm2_clk_src,
 644	.clkr.hw.init = &(const struct clk_init_data) {
 645		.name = "gcc_pdm2_clk_src",
 646		.parent_data = gcc_parent_data_0,
 647		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 648		.flags = CLK_SET_RATE_PARENT,
 649		.ops = &clk_rcg2_shared_ops,
 650	},
 651};
 652
 653static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
 654	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
 655	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
 656	F(19200000, P_BI_TCXO, 1, 0, 0),
 657	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
 658	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
 659	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
 660	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
 661	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
 662	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
 663	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
 664	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
 665	{ }
 666};
 667
 668static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
 669	.name = "gcc_qupv3_wrap0_s0_clk_src",
 670	.parent_data = gcc_parent_data_0,
 671	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 672	.flags = CLK_SET_RATE_PARENT,
 673	.ops = &clk_rcg2_ops,
 674};
 675
 676static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
 677	.cmd_rcgr = 0x42010,
 678	.mnd_width = 16,
 679	.hid_width = 5,
 680	.parent_map = gcc_parent_map_0,
 681	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
 682	.clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
 683};
 684
 685static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
 686	.name = "gcc_qupv3_wrap0_s1_clk_src",
 687	.parent_data = gcc_parent_data_0,
 688	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 689	.flags = CLK_SET_RATE_PARENT,
 690	.ops = &clk_rcg2_ops,
 691};
 692
 693static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
 694	.cmd_rcgr = 0x42148,
 695	.mnd_width = 16,
 696	.hid_width = 5,
 697	.parent_map = gcc_parent_map_0,
 698	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
 699	.clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
 700};
 701
 702static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s2_clk_src[] = {
 703	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
 704	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
 705	F(19200000, P_BI_TCXO, 1, 0, 0),
 706	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
 707	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
 708	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
 709	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
 710	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
 711	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
 712	F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0),
 713	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
 714	{ }
 715};
 716
 717static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
 718	.name = "gcc_qupv3_wrap0_s2_clk_src",
 719	.parent_data = gcc_parent_data_0,
 720	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 721	.flags = CLK_SET_RATE_PARENT,
 722	.ops = &clk_rcg2_ops,
 723};
 724
 725static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
 726	.cmd_rcgr = 0x42288,
 727	.mnd_width = 16,
 728	.hid_width = 5,
 729	.parent_map = gcc_parent_map_0,
 730	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
 731	.clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
 732};
 733
 734static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
 735	.name = "gcc_qupv3_wrap0_s3_clk_src",
 736	.parent_data = gcc_parent_data_0,
 737	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 738	.flags = CLK_SET_RATE_PARENT,
 739	.ops = &clk_rcg2_ops,
 740};
 741
 742static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
 743	.cmd_rcgr = 0x423c8,
 744	.mnd_width = 16,
 745	.hid_width = 5,
 746	.parent_map = gcc_parent_map_0,
 747	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
 748	.clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
 749};
 750
 751static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s4_clk_src[] = {
 752	F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
 753	F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
 754	F(19200000, P_BI_TCXO, 1, 0, 0),
 755	F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
 756	F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
 757	F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
 758	F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
 759	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
 760	F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
 761	F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
 762	F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
 763	{ }
 764};
 765
 766static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
 767	.name = "gcc_qupv3_wrap0_s4_clk_src",
 768	.parent_data = gcc_parent_data_0,
 769	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 770	.flags = CLK_SET_RATE_PARENT,
 771	.ops = &clk_rcg2_ops,
 772};
 773
 774static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
 775	.cmd_rcgr = 0x42500,
 776	.mnd_width = 16,
 777	.hid_width = 5,
 778	.parent_map = gcc_parent_map_0,
 779	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
 780	.clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
 781};
 782
 783static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
 784	.name = "gcc_qupv3_wrap0_s5_clk_src",
 785	.parent_data = gcc_parent_data_0,
 786	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 787	.flags = CLK_SET_RATE_PARENT,
 788	.ops = &clk_rcg2_ops,
 789};
 790
 791static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
 792	.cmd_rcgr = 0x42638,
 793	.mnd_width = 16,
 794	.hid_width = 5,
 795	.parent_map = gcc_parent_map_0,
 796	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
 797	.clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
 798};
 799
 800static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
 801	.name = "gcc_qupv3_wrap0_s6_clk_src",
 802	.parent_data = gcc_parent_data_0,
 803	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 804	.flags = CLK_SET_RATE_PARENT,
 805	.ops = &clk_rcg2_ops,
 806};
 807
 808static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
 809	.cmd_rcgr = 0x42770,
 810	.mnd_width = 16,
 811	.hid_width = 5,
 812	.parent_map = gcc_parent_map_0,
 813	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
 814	.clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
 815};
 816
 817static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
 818	.name = "gcc_qupv3_wrap0_s7_clk_src",
 819	.parent_data = gcc_parent_data_0,
 820	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 821	.flags = CLK_SET_RATE_PARENT,
 822	.ops = &clk_rcg2_ops,
 823};
 824
 825static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
 826	.cmd_rcgr = 0x428a8,
 827	.mnd_width = 16,
 828	.hid_width = 5,
 829	.parent_map = gcc_parent_map_0,
 830	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
 831	.clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
 832};
 833
 834static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
 835	.name = "gcc_qupv3_wrap1_s0_clk_src",
 836	.parent_data = gcc_parent_data_0,
 837	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 838	.flags = CLK_SET_RATE_PARENT,
 839	.ops = &clk_rcg2_ops,
 840};
 841
 842static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
 843	.cmd_rcgr = 0x18010,
 844	.mnd_width = 16,
 845	.hid_width = 5,
 846	.parent_map = gcc_parent_map_0,
 847	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
 848	.clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
 849};
 850
 851static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
 852	.name = "gcc_qupv3_wrap1_s1_clk_src",
 853	.parent_data = gcc_parent_data_0,
 854	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 855	.flags = CLK_SET_RATE_PARENT,
 856	.ops = &clk_rcg2_ops,
 857};
 858
 859static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
 860	.cmd_rcgr = 0x18148,
 861	.mnd_width = 16,
 862	.hid_width = 5,
 863	.parent_map = gcc_parent_map_0,
 864	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
 865	.clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
 866};
 867
 868static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
 869	.name = "gcc_qupv3_wrap1_s2_clk_src",
 870	.parent_data = gcc_parent_data_0,
 871	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 872	.flags = CLK_SET_RATE_PARENT,
 873	.ops = &clk_rcg2_ops,
 874};
 875
 876static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
 877	.cmd_rcgr = 0x18288,
 878	.mnd_width = 16,
 879	.hid_width = 5,
 880	.parent_map = gcc_parent_map_0,
 881	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
 882	.clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
 883};
 884
 885static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
 886	.name = "gcc_qupv3_wrap1_s3_clk_src",
 887	.parent_data = gcc_parent_data_0,
 888	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 889	.flags = CLK_SET_RATE_PARENT,
 890	.ops = &clk_rcg2_ops,
 891};
 892
 893static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
 894	.cmd_rcgr = 0x183c8,
 895	.mnd_width = 16,
 896	.hid_width = 5,
 897	.parent_map = gcc_parent_map_0,
 898	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
 899	.clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
 900};
 901
 902static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
 903	.name = "gcc_qupv3_wrap1_s4_clk_src",
 904	.parent_data = gcc_parent_data_0,
 905	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 906	.flags = CLK_SET_RATE_PARENT,
 907	.ops = &clk_rcg2_ops,
 908};
 909
 910static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
 911	.cmd_rcgr = 0x18500,
 912	.mnd_width = 16,
 913	.hid_width = 5,
 914	.parent_map = gcc_parent_map_0,
 915	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
 916	.clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
 917};
 918
 919static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
 920	.name = "gcc_qupv3_wrap1_s5_clk_src",
 921	.parent_data = gcc_parent_data_0,
 922	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 923	.flags = CLK_SET_RATE_PARENT,
 924	.ops = &clk_rcg2_ops,
 925};
 926
 927static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
 928	.cmd_rcgr = 0x18638,
 929	.mnd_width = 16,
 930	.hid_width = 5,
 931	.parent_map = gcc_parent_map_0,
 932	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
 933	.clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
 934};
 935
 936static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
 937	.name = "gcc_qupv3_wrap1_s6_clk_src",
 938	.parent_data = gcc_parent_data_0,
 939	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 940	.flags = CLK_SET_RATE_PARENT,
 941	.ops = &clk_rcg2_ops,
 942};
 943
 944static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
 945	.cmd_rcgr = 0x18770,
 946	.mnd_width = 16,
 947	.hid_width = 5,
 948	.parent_map = gcc_parent_map_0,
 949	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
 950	.clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
 951};
 952
 953static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
 954	.name = "gcc_qupv3_wrap1_s7_clk_src",
 955	.parent_data = gcc_parent_data_0,
 956	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 957	.flags = CLK_SET_RATE_PARENT,
 958	.ops = &clk_rcg2_ops,
 959};
 960
 961static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
 962	.cmd_rcgr = 0x188a8,
 963	.mnd_width = 16,
 964	.hid_width = 5,
 965	.parent_map = gcc_parent_map_0,
 966	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
 967	.clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init,
 968};
 969
 970static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
 971	.name = "gcc_qupv3_wrap2_s0_clk_src",
 972	.parent_data = gcc_parent_data_0,
 973	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 974	.flags = CLK_SET_RATE_PARENT,
 975	.ops = &clk_rcg2_ops,
 976};
 977
 978static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
 979	.cmd_rcgr = 0x1e010,
 980	.mnd_width = 16,
 981	.hid_width = 5,
 982	.parent_map = gcc_parent_map_0,
 983	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
 984	.clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
 985};
 986
 987static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
 988	.name = "gcc_qupv3_wrap2_s1_clk_src",
 989	.parent_data = gcc_parent_data_0,
 990	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
 991	.flags = CLK_SET_RATE_PARENT,
 992	.ops = &clk_rcg2_ops,
 993};
 994
 995static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
 996	.cmd_rcgr = 0x1e148,
 997	.mnd_width = 16,
 998	.hid_width = 5,
 999	.parent_map = gcc_parent_map_0,
1000	.freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
1001	.clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
1002};
1003
1004static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
1005	.name = "gcc_qupv3_wrap2_s2_clk_src",
1006	.parent_data = gcc_parent_data_0,
1007	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1008	.flags = CLK_SET_RATE_PARENT,
1009	.ops = &clk_rcg2_ops,
1010};
1011
1012static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
1013	.cmd_rcgr = 0x1e288,
1014	.mnd_width = 16,
1015	.hid_width = 5,
1016	.parent_map = gcc_parent_map_0,
1017	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
1018	.clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init,
1019};
1020
1021static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
1022	.name = "gcc_qupv3_wrap2_s3_clk_src",
1023	.parent_data = gcc_parent_data_0,
1024	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1025	.flags = CLK_SET_RATE_PARENT,
1026	.ops = &clk_rcg2_ops,
1027};
1028
1029static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
1030	.cmd_rcgr = 0x1e3c8,
1031	.mnd_width = 16,
1032	.hid_width = 5,
1033	.parent_map = gcc_parent_map_0,
1034	.freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
1035	.clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init,
1036};
1037
1038static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
1039	.name = "gcc_qupv3_wrap2_s4_clk_src",
1040	.parent_data = gcc_parent_data_0,
1041	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1042	.flags = CLK_SET_RATE_PARENT,
1043	.ops = &clk_rcg2_ops,
1044};
1045
1046static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
1047	.cmd_rcgr = 0x1e500,
1048	.mnd_width = 16,
1049	.hid_width = 5,
1050	.parent_map = gcc_parent_map_0,
1051	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1052	.clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
1053};
1054
1055static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
1056	.name = "gcc_qupv3_wrap2_s5_clk_src",
1057	.parent_data = gcc_parent_data_0,
1058	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1059	.flags = CLK_SET_RATE_PARENT,
1060	.ops = &clk_rcg2_ops,
1061};
1062
1063static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
1064	.cmd_rcgr = 0x1e638,
1065	.mnd_width = 16,
1066	.hid_width = 5,
1067	.parent_map = gcc_parent_map_0,
1068	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1069	.clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
1070};
1071
1072static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = {
1073	.name = "gcc_qupv3_wrap2_s6_clk_src",
1074	.parent_data = gcc_parent_data_8,
1075	.num_parents = ARRAY_SIZE(gcc_parent_data_8),
1076	.flags = CLK_SET_RATE_PARENT,
1077	.ops = &clk_rcg2_ops,
1078};
1079
1080static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
1081	.cmd_rcgr = 0x1e770,
1082	.mnd_width = 16,
1083	.hid_width = 5,
1084	.parent_map = gcc_parent_map_8,
1085	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1086	.clkr.hw.init = &gcc_qupv3_wrap2_s6_clk_src_init,
1087};
1088
1089static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
1090	.name = "gcc_qupv3_wrap2_s7_clk_src",
1091	.parent_data = gcc_parent_data_0,
1092	.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1093	.flags = CLK_SET_RATE_PARENT,
1094	.ops = &clk_rcg2_ops,
1095};
1096
1097static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
1098	.cmd_rcgr = 0x1e8a8,
1099	.mnd_width = 16,
1100	.hid_width = 5,
1101	.parent_map = gcc_parent_map_0,
1102	.freq_tbl = ftbl_gcc_qupv3_wrap0_s4_clk_src,
1103	.clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init,
1104};
1105
1106static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
1107	F(400000, P_BI_TCXO, 12, 1, 4),
1108	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1109	F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
1110	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1111	F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
1112	{ }
1113};
1114
1115static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
1116	.cmd_rcgr = 0x14018,
1117	.mnd_width = 8,
1118	.hid_width = 5,
1119	.parent_map = gcc_parent_map_9,
1120	.freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
1121	.clkr.hw.init = &(const struct clk_init_data) {
1122		.name = "gcc_sdcc2_apps_clk_src",
1123		.parent_data = gcc_parent_data_9,
1124		.num_parents = ARRAY_SIZE(gcc_parent_data_9),
1125		.flags = CLK_SET_RATE_PARENT,
1126		.ops = &clk_rcg2_floor_ops,
1127	},
1128};
1129
1130static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = {
1131	F(400000, P_BI_TCXO, 12, 1, 4),
1132	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1133	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1134	{ }
1135};
1136
1137static struct clk_rcg2 gcc_sdcc4_apps_clk_src = {
1138	.cmd_rcgr = 0x16018,
1139	.mnd_width = 8,
1140	.hid_width = 5,
1141	.parent_map = gcc_parent_map_0,
1142	.freq_tbl = ftbl_gcc_sdcc4_apps_clk_src,
1143	.clkr.hw.init = &(const struct clk_init_data) {
1144		.name = "gcc_sdcc4_apps_clk_src",
1145		.parent_data = gcc_parent_data_0,
1146		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1147		.flags = CLK_SET_RATE_PARENT,
1148		.ops = &clk_rcg2_floor_ops,
1149	},
1150};
1151
1152static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = {
1153	F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
1154	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1155	F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1156	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1157	{ }
1158};
1159
1160static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
1161	.cmd_rcgr = 0x77030,
1162	.mnd_width = 8,
1163	.hid_width = 5,
1164	.parent_map = gcc_parent_map_0,
1165	.freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src,
1166	.clkr.hw.init = &(const struct clk_init_data) {
1167		.name = "gcc_ufs_phy_axi_clk_src",
1168		.parent_data = gcc_parent_data_0,
1169		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1170		.flags = CLK_SET_RATE_PARENT,
1171		.ops = &clk_rcg2_shared_ops,
1172	},
1173};
1174
1175static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = {
1176	F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
1177	F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0),
1178	F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
1179	{ }
1180};
1181
1182static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
1183	.cmd_rcgr = 0x77080,
1184	.mnd_width = 0,
1185	.hid_width = 5,
1186	.parent_map = gcc_parent_map_7,
1187	.freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src,
1188	.clkr.hw.init = &(const struct clk_init_data) {
1189		.name = "gcc_ufs_phy_ice_core_clk_src",
1190		.parent_data = gcc_parent_data_7,
1191		.num_parents = ARRAY_SIZE(gcc_parent_data_7),
1192		.flags = CLK_SET_RATE_PARENT,
1193		.ops = &clk_rcg2_shared_ops,
1194	},
1195};
1196
1197static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
1198	.cmd_rcgr = 0x770b4,
1199	.mnd_width = 0,
1200	.hid_width = 5,
1201	.parent_map = gcc_parent_map_3,
1202	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1203	.clkr.hw.init = &(const struct clk_init_data) {
1204		.name = "gcc_ufs_phy_phy_aux_clk_src",
1205		.parent_data = gcc_parent_data_3,
1206		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1207		.flags = CLK_SET_RATE_PARENT,
1208		.ops = &clk_rcg2_shared_ops,
1209	},
1210};
1211
1212static const struct freq_tbl ftbl_gcc_ufs_phy_unipro_core_clk_src[] = {
1213	F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
1214	F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
1215	F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
1216	{ }
1217};
1218
1219static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
1220	.cmd_rcgr = 0x77098,
1221	.mnd_width = 0,
1222	.hid_width = 5,
1223	.parent_map = gcc_parent_map_0,
1224	.freq_tbl = ftbl_gcc_ufs_phy_unipro_core_clk_src,
1225	.clkr.hw.init = &(const struct clk_init_data) {
1226		.name = "gcc_ufs_phy_unipro_core_clk_src",
1227		.parent_data = gcc_parent_data_0,
1228		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1229		.flags = CLK_SET_RATE_PARENT,
1230		.ops = &clk_rcg2_shared_ops,
1231	},
1232};
1233
1234static const struct freq_tbl ftbl_gcc_usb20_master_clk_src[] = {
1235	F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
1236	F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
1237	{ }
1238};
1239
1240static struct clk_rcg2 gcc_usb20_master_clk_src = {
1241	.cmd_rcgr = 0x2902c,
1242	.mnd_width = 8,
1243	.hid_width = 5,
1244	.parent_map = gcc_parent_map_0,
1245	.freq_tbl = ftbl_gcc_usb20_master_clk_src,
1246	.clkr.hw.init = &(const struct clk_init_data) {
1247		.name = "gcc_usb20_master_clk_src",
1248		.parent_data = gcc_parent_data_0,
1249		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1250		.flags = CLK_SET_RATE_PARENT,
1251		.ops = &clk_rcg2_shared_ops,
1252	},
1253};
1254
1255static struct clk_rcg2 gcc_usb20_mock_utmi_clk_src = {
1256	.cmd_rcgr = 0x29158,
1257	.mnd_width = 0,
1258	.hid_width = 5,
1259	.parent_map = gcc_parent_map_0,
1260	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1261	.clkr.hw.init = &(const struct clk_init_data) {
1262		.name = "gcc_usb20_mock_utmi_clk_src",
1263		.parent_data = gcc_parent_data_0,
1264		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1265		.flags = CLK_SET_RATE_PARENT,
1266		.ops = &clk_rcg2_shared_ops,
1267	},
1268};
1269
1270static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = {
1271	F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0),
1272	F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
1273	F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
1274	F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
1275	{ }
1276};
1277
1278static struct clk_rcg2 gcc_usb30_mp_master_clk_src = {
1279	.cmd_rcgr = 0x1702c,
1280	.mnd_width = 8,
1281	.hid_width = 5,
1282	.parent_map = gcc_parent_map_0,
1283	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
1284	.clkr.hw.init = &(const struct clk_init_data) {
1285		.name = "gcc_usb30_mp_master_clk_src",
1286		.parent_data = gcc_parent_data_0,
1287		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1288		.flags = CLK_SET_RATE_PARENT,
1289		.ops = &clk_rcg2_shared_ops,
1290	},
1291};
1292
1293static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = {
1294	.cmd_rcgr = 0x17158,
1295	.mnd_width = 0,
1296	.hid_width = 5,
1297	.parent_map = gcc_parent_map_0,
1298	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1299	.clkr.hw.init = &(const struct clk_init_data) {
1300		.name = "gcc_usb30_mp_mock_utmi_clk_src",
1301		.parent_data = gcc_parent_data_0,
1302		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1303		.flags = CLK_SET_RATE_PARENT,
1304		.ops = &clk_rcg2_shared_ops,
1305	},
1306};
1307
1308static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
1309	.cmd_rcgr = 0x3902c,
1310	.mnd_width = 8,
1311	.hid_width = 5,
1312	.parent_map = gcc_parent_map_0,
1313	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
1314	.clkr.hw.init = &(const struct clk_init_data) {
1315		.name = "gcc_usb30_prim_master_clk_src",
1316		.parent_data = gcc_parent_data_0,
1317		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1318		.flags = CLK_SET_RATE_PARENT,
1319		.ops = &clk_rcg2_shared_ops,
1320	},
1321};
1322
1323static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
1324	.cmd_rcgr = 0x39044,
1325	.mnd_width = 0,
1326	.hid_width = 5,
1327	.parent_map = gcc_parent_map_0,
1328	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1329	.clkr.hw.init = &(const struct clk_init_data) {
1330		.name = "gcc_usb30_prim_mock_utmi_clk_src",
1331		.parent_data = gcc_parent_data_0,
1332		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1333		.flags = CLK_SET_RATE_PARENT,
1334		.ops = &clk_rcg2_shared_ops,
1335	},
1336};
1337
1338static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
1339	.cmd_rcgr = 0xa102c,
1340	.mnd_width = 8,
1341	.hid_width = 5,
1342	.parent_map = gcc_parent_map_0,
1343	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
1344	.clkr.hw.init = &(const struct clk_init_data) {
1345		.name = "gcc_usb30_sec_master_clk_src",
1346		.parent_data = gcc_parent_data_0,
1347		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1348		.flags = CLK_SET_RATE_PARENT,
1349		.ops = &clk_rcg2_shared_ops,
1350	},
1351};
1352
1353static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
1354	.cmd_rcgr = 0xa1044,
1355	.mnd_width = 0,
1356	.hid_width = 5,
1357	.parent_map = gcc_parent_map_0,
1358	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1359	.clkr.hw.init = &(const struct clk_init_data) {
1360		.name = "gcc_usb30_sec_mock_utmi_clk_src",
1361		.parent_data = gcc_parent_data_0,
1362		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1363		.flags = CLK_SET_RATE_PARENT,
1364		.ops = &clk_rcg2_shared_ops,
1365	},
1366};
1367
1368static struct clk_rcg2 gcc_usb30_tert_master_clk_src = {
1369	.cmd_rcgr = 0xa202c,
1370	.mnd_width = 8,
1371	.hid_width = 5,
1372	.parent_map = gcc_parent_map_0,
1373	.freq_tbl = ftbl_gcc_usb30_mp_master_clk_src,
1374	.clkr.hw.init = &(const struct clk_init_data) {
1375		.name = "gcc_usb30_tert_master_clk_src",
1376		.parent_data = gcc_parent_data_0,
1377		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1378		.flags = CLK_SET_RATE_PARENT,
1379		.ops = &clk_rcg2_shared_ops,
1380	},
1381};
1382
1383static struct clk_rcg2 gcc_usb30_tert_mock_utmi_clk_src = {
1384	.cmd_rcgr = 0xa2044,
1385	.mnd_width = 0,
1386	.hid_width = 5,
1387	.parent_map = gcc_parent_map_0,
1388	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1389	.clkr.hw.init = &(const struct clk_init_data) {
1390		.name = "gcc_usb30_tert_mock_utmi_clk_src",
1391		.parent_data = gcc_parent_data_0,
1392		.num_parents = ARRAY_SIZE(gcc_parent_data_0),
1393		.flags = CLK_SET_RATE_PARENT,
1394		.ops = &clk_rcg2_shared_ops,
1395	},
1396};
1397
1398static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = {
1399	.cmd_rcgr = 0x172a0,
1400	.mnd_width = 0,
1401	.hid_width = 5,
1402	.parent_map = gcc_parent_map_1,
1403	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1404	.clkr.hw.init = &(const struct clk_init_data) {
1405		.name = "gcc_usb3_mp_phy_aux_clk_src",
1406		.parent_data = gcc_parent_data_1,
1407		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1408		.flags = CLK_SET_RATE_PARENT,
1409		.ops = &clk_rcg2_shared_ops,
1410	},
1411};
1412
1413static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
1414	.cmd_rcgr = 0x39074,
1415	.mnd_width = 0,
1416	.hid_width = 5,
1417	.parent_map = gcc_parent_map_1,
1418	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1419	.clkr.hw.init = &(const struct clk_init_data) {
1420		.name = "gcc_usb3_prim_phy_aux_clk_src",
1421		.parent_data = gcc_parent_data_1,
1422		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1423		.flags = CLK_SET_RATE_PARENT,
1424		.ops = &clk_rcg2_shared_ops,
1425	},
1426};
1427
1428static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
1429	.cmd_rcgr = 0xa1074,
1430	.mnd_width = 0,
1431	.hid_width = 5,
1432	.parent_map = gcc_parent_map_1,
1433	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1434	.clkr.hw.init = &(const struct clk_init_data) {
1435		.name = "gcc_usb3_sec_phy_aux_clk_src",
1436		.parent_data = gcc_parent_data_1,
1437		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1438		.flags = CLK_SET_RATE_PARENT,
1439		.ops = &clk_rcg2_shared_ops,
1440	},
1441};
1442
1443static struct clk_rcg2 gcc_usb3_tert_phy_aux_clk_src = {
1444	.cmd_rcgr = 0xa2074,
1445	.mnd_width = 0,
1446	.hid_width = 5,
1447	.parent_map = gcc_parent_map_1,
1448	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1449	.clkr.hw.init = &(const struct clk_init_data) {
1450		.name = "gcc_usb3_tert_phy_aux_clk_src",
1451		.parent_data = gcc_parent_data_1,
1452		.num_parents = ARRAY_SIZE(gcc_parent_data_1),
1453		.flags = CLK_SET_RATE_PARENT,
1454		.ops = &clk_rcg2_shared_ops,
1455	},
1456};
1457
1458static const struct freq_tbl ftbl_gcc_usb4_0_master_clk_src[] = {
1459	F(85714286, P_GCC_GPLL0_OUT_EVEN, 3.5, 0, 0),
1460	F(175000000, P_GCC_GPLL8_OUT_MAIN, 4, 0, 0),
1461	F(350000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0),
1462	{ }
1463};
1464
1465static struct clk_rcg2 gcc_usb4_0_master_clk_src = {
1466	.cmd_rcgr = 0x9f024,
1467	.mnd_width = 8,
1468	.hid_width = 5,
1469	.parent_map = gcc_parent_map_4,
1470	.freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
1471	.clkr.hw.init = &(const struct clk_init_data) {
1472		.name = "gcc_usb4_0_master_clk_src",
1473		.parent_data = gcc_parent_data_4,
1474		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
1475		.flags = CLK_SET_RATE_PARENT,
1476		.ops = &clk_rcg2_shared_ops,
1477	},
1478};
1479
1480static const struct freq_tbl ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src[] = {
1481	F(19200000, P_BI_TCXO, 1, 0, 0),
1482	F(125000000, P_GCC_GPLL7_OUT_MAIN, 8, 0, 0),
1483	F(250000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1484	{ }
1485};
1486
1487static struct clk_rcg2 gcc_usb4_0_phy_pcie_pipe_clk_src = {
1488	.cmd_rcgr = 0x9f0e8,
1489	.mnd_width = 0,
1490	.hid_width = 5,
1491	.parent_map = gcc_parent_map_5,
1492	.freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
1493	.clkr.hw.init = &(const struct clk_init_data) {
1494		.name = "gcc_usb4_0_phy_pcie_pipe_clk_src",
1495		.parent_data = gcc_parent_data_5,
1496		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
1497		.flags = CLK_SET_RATE_PARENT,
1498		.ops = &clk_rcg2_shared_ops,
1499	},
1500};
1501
1502static struct clk_rcg2 gcc_usb4_0_sb_if_clk_src = {
1503	.cmd_rcgr = 0x9f08c,
1504	.mnd_width = 0,
1505	.hid_width = 5,
1506	.parent_map = gcc_parent_map_3,
1507	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1508	.clkr.hw.init = &(const struct clk_init_data) {
1509		.name = "gcc_usb4_0_sb_if_clk_src",
1510		.parent_data = gcc_parent_data_3,
1511		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1512		.flags = CLK_SET_RATE_PARENT,
1513		.ops = &clk_rcg2_shared_ops,
1514	},
1515};
1516
1517static const struct freq_tbl ftbl_gcc_usb4_0_tmu_clk_src[] = {
1518	F(19200000, P_BI_TCXO, 1, 0, 0),
1519	F(250000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
1520	{ }
1521};
1522
1523static struct clk_rcg2 gcc_usb4_0_tmu_clk_src = {
1524	.cmd_rcgr = 0x9f070,
1525	.mnd_width = 0,
1526	.hid_width = 5,
1527	.parent_map = gcc_parent_map_6,
1528	.freq_tbl = ftbl_gcc_usb4_0_tmu_clk_src,
1529	.clkr.hw.init = &(const struct clk_init_data) {
1530		.name = "gcc_usb4_0_tmu_clk_src",
1531		.parent_data = gcc_parent_data_6,
1532		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
1533		.flags = CLK_SET_RATE_PARENT,
1534		.ops = &clk_rcg2_shared_ops,
1535	},
1536};
1537
1538static struct clk_rcg2 gcc_usb4_1_master_clk_src = {
1539	.cmd_rcgr = 0x2b024,
1540	.mnd_width = 8,
1541	.hid_width = 5,
1542	.parent_map = gcc_parent_map_4,
1543	.freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
1544	.clkr.hw.init = &(const struct clk_init_data) {
1545		.name = "gcc_usb4_1_master_clk_src",
1546		.parent_data = gcc_parent_data_4,
1547		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
1548		.flags = CLK_SET_RATE_PARENT,
1549		.ops = &clk_rcg2_shared_ops,
1550	},
1551};
1552
1553static struct clk_rcg2 gcc_usb4_1_phy_pcie_pipe_clk_src = {
1554	.cmd_rcgr = 0x2b0e8,
1555	.mnd_width = 0,
1556	.hid_width = 5,
1557	.parent_map = gcc_parent_map_5,
1558	.freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
1559	.clkr.hw.init = &(const struct clk_init_data) {
1560		.name = "gcc_usb4_1_phy_pcie_pipe_clk_src",
1561		.parent_data = gcc_parent_data_5,
1562		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
1563		.flags = CLK_SET_RATE_PARENT,
1564		.ops = &clk_rcg2_shared_ops,
1565	},
1566};
1567
1568static struct clk_rcg2 gcc_usb4_1_sb_if_clk_src = {
1569	.cmd_rcgr = 0x2b08c,
1570	.mnd_width = 0,
1571	.hid_width = 5,
1572	.parent_map = gcc_parent_map_3,
1573	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1574	.clkr.hw.init = &(const struct clk_init_data) {
1575		.name = "gcc_usb4_1_sb_if_clk_src",
1576		.parent_data = gcc_parent_data_3,
1577		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1578		.flags = CLK_SET_RATE_PARENT,
1579		.ops = &clk_rcg2_shared_ops,
1580	},
1581};
1582
1583static struct clk_rcg2 gcc_usb4_1_tmu_clk_src = {
1584	.cmd_rcgr = 0x2b070,
1585	.mnd_width = 0,
1586	.hid_width = 5,
1587	.parent_map = gcc_parent_map_6,
1588	.freq_tbl = ftbl_gcc_usb4_0_tmu_clk_src,
1589	.clkr.hw.init = &(const struct clk_init_data) {
1590		.name = "gcc_usb4_1_tmu_clk_src",
1591		.parent_data = gcc_parent_data_6,
1592		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
1593		.flags = CLK_SET_RATE_PARENT,
1594		.ops = &clk_rcg2_shared_ops,
1595	},
1596};
1597
1598static struct clk_rcg2 gcc_usb4_2_master_clk_src = {
1599	.cmd_rcgr = 0x11024,
1600	.mnd_width = 8,
1601	.hid_width = 5,
1602	.parent_map = gcc_parent_map_4,
1603	.freq_tbl = ftbl_gcc_usb4_0_master_clk_src,
1604	.clkr.hw.init = &(const struct clk_init_data) {
1605		.name = "gcc_usb4_2_master_clk_src",
1606		.parent_data = gcc_parent_data_4,
1607		.num_parents = ARRAY_SIZE(gcc_parent_data_4),
1608		.flags = CLK_SET_RATE_PARENT,
1609		.ops = &clk_rcg2_shared_ops,
1610	},
1611};
1612
1613static struct clk_rcg2 gcc_usb4_2_phy_pcie_pipe_clk_src = {
1614	.cmd_rcgr = 0x110e8,
1615	.mnd_width = 0,
1616	.hid_width = 5,
1617	.parent_map = gcc_parent_map_5,
1618	.freq_tbl = ftbl_gcc_usb4_0_phy_pcie_pipe_clk_src,
1619	.clkr.hw.init = &(const struct clk_init_data) {
1620		.name = "gcc_usb4_2_phy_pcie_pipe_clk_src",
1621		.parent_data = gcc_parent_data_5,
1622		.num_parents = ARRAY_SIZE(gcc_parent_data_5),
1623		.flags = CLK_SET_RATE_PARENT,
1624		.ops = &clk_rcg2_shared_ops,
1625	},
1626};
1627
1628static struct clk_rcg2 gcc_usb4_2_sb_if_clk_src = {
1629	.cmd_rcgr = 0x1108c,
1630	.mnd_width = 0,
1631	.hid_width = 5,
1632	.parent_map = gcc_parent_map_3,
1633	.freq_tbl = ftbl_gcc_pcie_0_aux_clk_src,
1634	.clkr.hw.init = &(const struct clk_init_data) {
1635		.name = "gcc_usb4_2_sb_if_clk_src",
1636		.parent_data = gcc_parent_data_3,
1637		.num_parents = ARRAY_SIZE(gcc_parent_data_3),
1638		.flags = CLK_SET_RATE_PARENT,
1639		.ops = &clk_rcg2_shared_ops,
1640	},
1641};
1642
1643static struct clk_rcg2 gcc_usb4_2_tmu_clk_src = {
1644	.cmd_rcgr = 0x11070,
1645	.mnd_width = 0,
1646	.hid_width = 5,
1647	.parent_map = gcc_parent_map_6,
1648	.freq_tbl = ftbl_gcc_usb4_0_tmu_clk_src,
1649	.clkr.hw.init = &(const struct clk_init_data) {
1650		.name = "gcc_usb4_2_tmu_clk_src",
1651		.parent_data = gcc_parent_data_6,
1652		.num_parents = ARRAY_SIZE(gcc_parent_data_6),
1653		.flags = CLK_SET_RATE_PARENT,
1654		.ops = &clk_rcg2_shared_ops,
1655	},
1656};
1657
1658static struct clk_regmap_phy_mux gcc_pcie_3_pipe_clk_src = {
1659	.reg = 0x58088,
1660	.clkr = {
1661		.hw.init = &(struct clk_init_data){
1662			.name = "gcc_pcie_3_pipe_clk_src",
1663			.parent_data = &(const struct clk_parent_data){
1664				.index = DT_PCIE_3_PIPE,
1665			},
1666			.num_parents = 1,
1667			.ops = &clk_regmap_phy_mux_ops,
1668		},
1669	},
1670};
1671
1672static struct clk_regmap_div gcc_pcie_3_pipe_div_clk_src = {
1673	.reg = 0x5806c,
1674	.shift = 0,
1675	.width = 4,
1676	.clkr.hw.init = &(const struct clk_init_data) {
1677		.name = "gcc_pcie_3_pipe_div_clk_src",
1678		.parent_hws = (const struct clk_hw*[]) {
1679			&gcc_pcie_3_pipe_clk_src.clkr.hw,
1680		},
1681		.num_parents = 1,
1682		.ops = &clk_regmap_div_ro_ops,
1683	},
1684};
1685
1686static struct clk_regmap_phy_mux gcc_pcie_4_pipe_clk_src = {
1687	.reg = 0x6b07c,
1688	.clkr = {
1689		.hw.init = &(struct clk_init_data){
1690			.name = "gcc_pcie_4_pipe_clk_src",
1691			.parent_data = &(const struct clk_parent_data){
1692				.index = DT_PCIE_4_PIPE,
1693			},
1694			.num_parents = 1,
1695			.ops = &clk_regmap_phy_mux_ops,
1696		},
1697	},
1698};
1699
1700static struct clk_regmap_div gcc_pcie_4_pipe_div_clk_src = {
1701	.reg = 0x6b060,
1702	.shift = 0,
1703	.width = 4,
1704	.clkr.hw.init = &(const struct clk_init_data) {
1705		.name = "gcc_pcie_4_pipe_div_clk_src",
1706		.parent_hws = (const struct clk_hw*[]) {
1707			&gcc_pcie_4_pipe_clk_src.clkr.hw,
1708		},
1709		.num_parents = 1,
1710		.ops = &clk_regmap_div_ro_ops,
1711	},
1712};
1713
1714static struct clk_regmap_phy_mux gcc_pcie_5_pipe_clk_src = {
1715	.reg = 0x2f07c,
1716	.clkr = {
1717		.hw.init = &(struct clk_init_data){
1718			.name = "gcc_pcie_5_pipe_clk_src",
1719			.parent_data = &(const struct clk_parent_data){
1720				.index = DT_PCIE_5_PIPE,
1721			},
1722			.num_parents = 1,
1723			.ops = &clk_regmap_phy_mux_ops,
1724		},
1725	},
1726};
1727
1728static struct clk_regmap_div gcc_pcie_5_pipe_div_clk_src = {
1729	.reg = 0x2f060,
1730	.shift = 0,
1731	.width = 4,
1732	.clkr.hw.init = &(const struct clk_init_data) {
1733		.name = "gcc_pcie_5_pipe_div_clk_src",
1734		.parent_hws = (const struct clk_hw*[]) {
1735			&gcc_pcie_5_pipe_clk_src.clkr.hw,
1736		},
1737		.num_parents = 1,
1738		.ops = &clk_regmap_div_ro_ops,
1739	},
1740};
1741
1742static struct clk_regmap_phy_mux gcc_pcie_6a_pipe_clk_src = {
1743	.reg = 0x31088,
1744	.clkr = {
1745		.hw.init = &(struct clk_init_data){
1746			.name = "gcc_pcie_6a_pipe_clk_src",
1747			.parent_data = &(const struct clk_parent_data){
1748				.index = DT_PCIE_6A_PIPE,
1749			},
1750			.num_parents = 1,
1751			.ops = &clk_regmap_phy_mux_ops,
1752		},
1753	},
1754};
1755
1756static struct clk_regmap_div gcc_pcie_6a_pipe_div_clk_src = {
1757	.reg = 0x3106c,
1758	.shift = 0,
1759	.width = 4,
1760	.clkr.hw.init = &(const struct clk_init_data) {
1761		.name = "gcc_pcie_6a_pipe_div_clk_src",
1762		.parent_hws = (const struct clk_hw*[]) {
1763			&gcc_pcie_6a_pipe_clk_src.clkr.hw,
1764		},
1765		.num_parents = 1,
1766		.ops = &clk_regmap_div_ro_ops,
1767	},
1768};
1769
1770static struct clk_regmap_phy_mux gcc_pcie_6b_pipe_clk_src = {
1771	.reg = 0x8d088,
1772	.clkr = {
1773		.hw.init = &(struct clk_init_data){
1774			.name = "gcc_pcie_6b_pipe_clk_src",
1775			.parent_data = &(const struct clk_parent_data){
1776				.index = DT_PCIE_6B_PIPE,
1777			},
1778			.num_parents = 1,
1779			.ops = &clk_regmap_phy_mux_ops,
1780		},
1781	},
1782};
1783
1784static struct clk_regmap_div gcc_pcie_6b_pipe_div_clk_src = {
1785	.reg = 0x8d06c,
1786	.shift = 0,
1787	.width = 4,
1788	.clkr.hw.init = &(const struct clk_init_data) {
1789		.name = "gcc_pcie_6b_pipe_div_clk_src",
1790		.parent_hws = (const struct clk_hw*[]) {
1791			&gcc_pcie_6b_pipe_clk_src.clkr.hw,
1792		},
1793		.num_parents = 1,
1794		.ops = &clk_regmap_div_ro_ops,
1795	},
1796};
1797
1798static struct clk_regmap_div gcc_qupv3_wrap0_s2_div_clk_src = {
1799	.reg = 0x42284,
1800	.shift = 0,
1801	.width = 4,
1802	.clkr.hw.init = &(const struct clk_init_data) {
1803		.name = "gcc_qupv3_wrap0_s2_div_clk_src",
1804		.parent_hws = (const struct clk_hw*[]) {
1805			&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
1806		},
1807		.num_parents = 1,
1808		.flags = CLK_SET_RATE_PARENT,
1809		.ops = &clk_regmap_div_ro_ops,
1810	},
1811};
1812
1813static struct clk_regmap_div gcc_qupv3_wrap0_s3_div_clk_src = {
1814	.reg = 0x423c4,
1815	.shift = 0,
1816	.width = 4,
1817	.clkr.hw.init = &(const struct clk_init_data) {
1818		.name = "gcc_qupv3_wrap0_s3_div_clk_src",
1819		.parent_hws = (const struct clk_hw*[]) {
1820			&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
1821		},
1822		.num_parents = 1,
1823		.flags = CLK_SET_RATE_PARENT,
1824		.ops = &clk_regmap_div_ro_ops,
1825	},
1826};
1827
1828static struct clk_regmap_div gcc_qupv3_wrap1_s2_div_clk_src = {
1829	.reg = 0x18284,
1830	.shift = 0,
1831	.width = 4,
1832	.clkr.hw.init = &(const struct clk_init_data) {
1833		.name = "gcc_qupv3_wrap1_s2_div_clk_src",
1834		.parent_hws = (const struct clk_hw*[]) {
1835			&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
1836		},
1837		.num_parents = 1,
1838		.flags = CLK_SET_RATE_PARENT,
1839		.ops = &clk_regmap_div_ro_ops,
1840	},
1841};
1842
1843static struct clk_regmap_div gcc_qupv3_wrap1_s3_div_clk_src = {
1844	.reg = 0x183c4,
1845	.shift = 0,
1846	.width = 4,
1847	.clkr.hw.init = &(const struct clk_init_data) {
1848		.name = "gcc_qupv3_wrap1_s3_div_clk_src",
1849		.parent_hws = (const struct clk_hw*[]) {
1850			&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
1851		},
1852		.num_parents = 1,
1853		.flags = CLK_SET_RATE_PARENT,
1854		.ops = &clk_regmap_div_ro_ops,
1855	},
1856};
1857
1858static struct clk_regmap_div gcc_qupv3_wrap2_s2_div_clk_src = {
1859	.reg = 0x1e284,
1860	.shift = 0,
1861	.width = 4,
1862	.clkr.hw.init = &(const struct clk_init_data) {
1863		.name = "gcc_qupv3_wrap2_s2_div_clk_src",
1864		.parent_hws = (const struct clk_hw*[]) {
1865			&gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
1866		},
1867		.num_parents = 1,
1868		.flags = CLK_SET_RATE_PARENT,
1869		.ops = &clk_regmap_div_ro_ops,
1870	},
1871};
1872
1873static struct clk_regmap_div gcc_qupv3_wrap2_s3_div_clk_src = {
1874	.reg = 0x1e3c4,
1875	.shift = 0,
1876	.width = 4,
1877	.clkr.hw.init = &(const struct clk_init_data) {
1878		.name = "gcc_qupv3_wrap2_s3_div_clk_src",
1879		.parent_hws = (const struct clk_hw*[]) {
1880			&gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
1881		},
1882		.num_parents = 1,
1883		.flags = CLK_SET_RATE_PARENT,
1884		.ops = &clk_regmap_div_ro_ops,
1885	},
1886};
1887
1888static struct clk_regmap_div gcc_usb20_mock_utmi_postdiv_clk_src = {
1889	.reg = 0x29284,
1890	.shift = 0,
1891	.width = 4,
1892	.clkr.hw.init = &(const struct clk_init_data) {
1893		.name = "gcc_usb20_mock_utmi_postdiv_clk_src",
1894		.parent_hws = (const struct clk_hw*[]) {
1895			&gcc_usb20_mock_utmi_clk_src.clkr.hw,
1896		},
1897		.num_parents = 1,
1898		.flags = CLK_SET_RATE_PARENT,
1899		.ops = &clk_regmap_div_ro_ops,
1900	},
1901};
1902
1903static struct clk_regmap_div gcc_usb30_mp_mock_utmi_postdiv_clk_src = {
1904	.reg = 0x17284,
1905	.shift = 0,
1906	.width = 4,
1907	.clkr.hw.init = &(const struct clk_init_data) {
1908		.name = "gcc_usb30_mp_mock_utmi_postdiv_clk_src",
1909		.parent_hws = (const struct clk_hw*[]) {
1910			&gcc_usb30_mp_mock_utmi_clk_src.clkr.hw,
1911		},
1912		.num_parents = 1,
1913		.flags = CLK_SET_RATE_PARENT,
1914		.ops = &clk_regmap_div_ro_ops,
1915	},
1916};
1917
1918static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
1919	.reg = 0x3905c,
1920	.shift = 0,
1921	.width = 4,
1922	.clkr.hw.init = &(const struct clk_init_data) {
1923		.name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
1924		.parent_hws = (const struct clk_hw*[]) {
1925			&gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
1926		},
1927		.num_parents = 1,
1928		.flags = CLK_SET_RATE_PARENT,
1929		.ops = &clk_regmap_div_ro_ops,
1930	},
1931};
1932
1933static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
1934	.reg = 0xa105c,
1935	.shift = 0,
1936	.width = 4,
1937	.clkr.hw.init = &(const struct clk_init_data) {
1938		.name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
1939		.parent_hws = (const struct clk_hw*[]) {
1940			&gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
1941		},
1942		.num_parents = 1,
1943		.flags = CLK_SET_RATE_PARENT,
1944		.ops = &clk_regmap_div_ro_ops,
1945	},
1946};
1947
1948static struct clk_regmap_div gcc_usb30_tert_mock_utmi_postdiv_clk_src = {
1949	.reg = 0xa205c,
1950	.shift = 0,
1951	.width = 4,
1952	.clkr.hw.init = &(const struct clk_init_data) {
1953		.name = "gcc_usb30_tert_mock_utmi_postdiv_clk_src",
1954		.parent_hws = (const struct clk_hw*[]) {
1955			&gcc_usb30_tert_mock_utmi_clk_src.clkr.hw,
1956		},
1957		.num_parents = 1,
1958		.flags = CLK_SET_RATE_PARENT,
1959		.ops = &clk_regmap_div_ro_ops,
1960	},
1961};
1962
1963static struct clk_branch gcc_aggre_noc_usb_north_axi_clk = {
1964	.halt_reg = 0x2d17c,
1965	.halt_check = BRANCH_HALT_VOTED,
1966	.hwcg_reg = 0x2d17c,
1967	.hwcg_bit = 1,
1968	.clkr = {
1969		.enable_reg = 0x2d17c,
1970		.enable_mask = BIT(0),
1971		.hw.init = &(const struct clk_init_data) {
1972			.name = "gcc_aggre_noc_usb_north_axi_clk",
1973			.ops = &clk_branch2_ops,
1974		},
1975	},
1976};
1977
1978static struct clk_branch gcc_aggre_noc_usb_south_axi_clk = {
1979	.halt_reg = 0x2d174,
1980	.halt_check = BRANCH_HALT_VOTED,
1981	.hwcg_reg = 0x2d174,
1982	.hwcg_bit = 1,
1983	.clkr = {
1984		.enable_reg = 0x2d174,
1985		.enable_mask = BIT(0),
1986		.hw.init = &(const struct clk_init_data) {
1987			.name = "gcc_aggre_noc_usb_south_axi_clk",
1988			.ops = &clk_branch2_ops,
1989		},
1990	},
1991};
1992
1993static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
1994	.halt_reg = 0x770e4,
1995	.halt_check = BRANCH_HALT_VOTED,
1996	.hwcg_reg = 0x770e4,
1997	.hwcg_bit = 1,
1998	.clkr = {
1999		.enable_reg = 0x770e4,
2000		.enable_mask = BIT(0),
2001		.hw.init = &(const struct clk_init_data) {
2002			.name = "gcc_aggre_ufs_phy_axi_clk",
2003			.parent_hws = (const struct clk_hw*[]) {
2004				&gcc_ufs_phy_axi_clk_src.clkr.hw,
2005			},
2006			.num_parents = 1,
2007			.flags = CLK_SET_RATE_PARENT,
2008			.ops = &clk_branch2_ops,
2009		},
2010	},
2011};
2012
2013static struct clk_branch gcc_aggre_usb2_prim_axi_clk = {
2014	.halt_reg = 0x2928c,
2015	.halt_check = BRANCH_HALT_VOTED,
2016	.hwcg_reg = 0x2928c,
2017	.hwcg_bit = 1,
2018	.clkr = {
2019		.enable_reg = 0x2928c,
2020		.enable_mask = BIT(0),
2021		.hw.init = &(const struct clk_init_data) {
2022			.name = "gcc_aggre_usb2_prim_axi_clk",
2023			.parent_hws = (const struct clk_hw*[]) {
2024				&gcc_usb20_master_clk_src.clkr.hw,
2025			},
2026			.num_parents = 1,
2027			.flags = CLK_SET_RATE_PARENT,
2028			.ops = &clk_branch2_ops,
2029		},
2030	},
2031};
2032
2033static struct clk_branch gcc_aggre_usb3_mp_axi_clk = {
2034	.halt_reg = 0x173d0,
2035	.halt_check = BRANCH_HALT_VOTED,
2036	.hwcg_reg = 0x173d0,
2037	.hwcg_bit = 1,
2038	.clkr = {
2039		.enable_reg = 0x173d0,
2040		.enable_mask = BIT(0),
2041		.hw.init = &(const struct clk_init_data) {
2042			.name = "gcc_aggre_usb3_mp_axi_clk",
2043			.parent_hws = (const struct clk_hw*[]) {
2044				&gcc_usb30_mp_master_clk_src.clkr.hw,
2045			},
2046			.num_parents = 1,
2047			.flags = CLK_SET_RATE_PARENT,
2048			.ops = &clk_branch2_ops,
2049		},
2050	},
2051};
2052
2053static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
2054	.halt_reg = 0x39090,
2055	.halt_check = BRANCH_HALT_VOTED,
2056	.hwcg_reg = 0x39090,
2057	.hwcg_bit = 1,
2058	.clkr = {
2059		.enable_reg = 0x39090,
2060		.enable_mask = BIT(0),
2061		.hw.init = &(const struct clk_init_data) {
2062			.name = "gcc_aggre_usb3_prim_axi_clk",
2063			.parent_hws = (const struct clk_hw*[]) {
2064				&gcc_usb30_prim_master_clk_src.clkr.hw,
2065			},
2066			.num_parents = 1,
2067			.flags = CLK_SET_RATE_PARENT,
2068			.ops = &clk_branch2_ops,
2069		},
2070	},
2071};
2072
2073static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
2074	.halt_reg = 0xa1090,
2075	.halt_check = BRANCH_HALT_VOTED,
2076	.hwcg_reg = 0xa1090,
2077	.hwcg_bit = 1,
2078	.clkr = {
2079		.enable_reg = 0xa1090,
2080		.enable_mask = BIT(0),
2081		.hw.init = &(const struct clk_init_data) {
2082			.name = "gcc_aggre_usb3_sec_axi_clk",
2083			.parent_hws = (const struct clk_hw*[]) {
2084				&gcc_usb30_sec_master_clk_src.clkr.hw,
2085			},
2086			.num_parents = 1,
2087			.flags = CLK_SET_RATE_PARENT,
2088			.ops = &clk_branch2_ops,
2089		},
2090	},
2091};
2092
2093static struct clk_branch gcc_aggre_usb3_tert_axi_clk = {
2094	.halt_reg = 0xa2090,
2095	.halt_check = BRANCH_HALT_VOTED,
2096	.hwcg_reg = 0xa2090,
2097	.hwcg_bit = 1,
2098	.clkr = {
2099		.enable_reg = 0xa2090,
2100		.enable_mask = BIT(0),
2101		.hw.init = &(const struct clk_init_data) {
2102			.name = "gcc_aggre_usb3_tert_axi_clk",
2103			.parent_hws = (const struct clk_hw*[]) {
2104				&gcc_usb30_tert_master_clk_src.clkr.hw,
2105			},
2106			.num_parents = 1,
2107			.flags = CLK_SET_RATE_PARENT,
2108			.ops = &clk_branch2_ops,
2109		},
2110	},
2111};
2112
2113static struct clk_branch gcc_aggre_usb4_0_axi_clk = {
2114	.halt_reg = 0x9f118,
2115	.halt_check = BRANCH_HALT_VOTED,
2116	.hwcg_reg = 0x9f118,
2117	.hwcg_bit = 1,
2118	.clkr = {
2119		.enable_reg = 0x9f118,
2120		.enable_mask = BIT(0),
2121		.hw.init = &(const struct clk_init_data) {
2122			.name = "gcc_aggre_usb4_0_axi_clk",
2123			.parent_hws = (const struct clk_hw*[]) {
2124				&gcc_usb4_0_master_clk_src.clkr.hw,
2125			},
2126			.num_parents = 1,
2127			.flags = CLK_SET_RATE_PARENT,
2128			.ops = &clk_branch2_ops,
2129		},
2130	},
2131};
2132
2133static struct clk_branch gcc_aggre_usb4_1_axi_clk = {
2134	.halt_reg = 0x2b118,
2135	.halt_check = BRANCH_HALT_VOTED,
2136	.hwcg_reg = 0x2b118,
2137	.hwcg_bit = 1,
2138	.clkr = {
2139		.enable_reg = 0x2b118,
2140		.enable_mask = BIT(0),
2141		.hw.init = &(const struct clk_init_data) {
2142			.name = "gcc_aggre_usb4_1_axi_clk",
2143			.parent_hws = (const struct clk_hw*[]) {
2144				&gcc_usb4_1_master_clk_src.clkr.hw,
2145			},
2146			.num_parents = 1,
2147			.flags = CLK_SET_RATE_PARENT,
2148			.ops = &clk_branch2_ops,
2149		},
2150	},
2151};
2152
2153static struct clk_branch gcc_aggre_usb4_2_axi_clk = {
2154	.halt_reg = 0x11118,
2155	.halt_check = BRANCH_HALT_VOTED,
2156	.hwcg_reg = 0x11118,
2157	.hwcg_bit = 1,
2158	.clkr = {
2159		.enable_reg = 0x11118,
2160		.enable_mask = BIT(0),
2161		.hw.init = &(const struct clk_init_data) {
2162			.name = "gcc_aggre_usb4_2_axi_clk",
2163			.parent_hws = (const struct clk_hw*[]) {
2164				&gcc_usb4_2_master_clk_src.clkr.hw,
2165			},
2166			.num_parents = 1,
2167			.flags = CLK_SET_RATE_PARENT,
2168			.ops = &clk_branch2_ops,
2169		},
2170	},
2171};
2172
2173static struct clk_branch gcc_aggre_usb_noc_axi_clk = {
2174	.halt_reg = 0x2d034,
2175	.halt_check = BRANCH_HALT_VOTED,
2176	.hwcg_reg = 0x2d034,
2177	.hwcg_bit = 1,
2178	.clkr = {
2179		.enable_reg = 0x2d034,
2180		.enable_mask = BIT(0),
2181		.hw.init = &(const struct clk_init_data) {
2182			.name = "gcc_aggre_usb_noc_axi_clk",
2183			.ops = &clk_branch2_ops,
2184		},
2185	},
2186};
2187
2188static struct clk_branch gcc_av1e_ahb_clk = {
2189	.halt_reg = 0x4a004,
2190	.halt_check = BRANCH_HALT_VOTED,
2191	.hwcg_reg = 0x4a004,
2192	.hwcg_bit = 1,
2193	.clkr = {
2194		.enable_reg = 0x4a004,
2195		.enable_mask = BIT(0),
2196		.hw.init = &(const struct clk_init_data) {
2197			.name = "gcc_av1e_ahb_clk",
2198			.ops = &clk_branch2_ops,
2199		},
2200	},
2201};
2202
2203static struct clk_branch gcc_av1e_axi_clk = {
2204	.halt_reg = 0x4a008,
2205	.halt_check = BRANCH_HALT_SKIP,
2206	.hwcg_reg = 0x4a008,
2207	.hwcg_bit = 1,
2208	.clkr = {
2209		.enable_reg = 0x4a008,
2210		.enable_mask = BIT(0),
2211		.hw.init = &(const struct clk_init_data) {
2212			.name = "gcc_av1e_axi_clk",
2213			.ops = &clk_branch2_ops,
2214		},
2215	},
2216};
2217
2218static struct clk_branch gcc_av1e_xo_clk = {
2219	.halt_reg = 0x4a014,
2220	.halt_check = BRANCH_HALT,
2221	.clkr = {
2222		.enable_reg = 0x4a014,
2223		.enable_mask = BIT(0),
2224		.hw.init = &(const struct clk_init_data) {
2225			.name = "gcc_av1e_xo_clk",
2226			.ops = &clk_branch2_ops,
2227		},
2228	},
2229};
2230
2231static struct clk_branch gcc_boot_rom_ahb_clk = {
2232	.halt_reg = 0x38004,
2233	.halt_check = BRANCH_HALT_VOTED,
2234	.hwcg_reg = 0x38004,
2235	.hwcg_bit = 1,
2236	.clkr = {
2237		.enable_reg = 0x52000,
2238		.enable_mask = BIT(10),
2239		.hw.init = &(const struct clk_init_data) {
2240			.name = "gcc_boot_rom_ahb_clk",
2241			.ops = &clk_branch2_ops,
2242		},
2243	},
2244};
2245
2246static struct clk_branch gcc_camera_hf_axi_clk = {
2247	.halt_reg = 0x26010,
2248	.halt_check = BRANCH_HALT_SKIP,
2249	.hwcg_reg = 0x26010,
2250	.hwcg_bit = 1,
2251	.clkr = {
2252		.enable_reg = 0x26010,
2253		.enable_mask = BIT(0),
2254		.hw.init = &(const struct clk_init_data) {
2255			.name = "gcc_camera_hf_axi_clk",
2256			.ops = &clk_branch2_ops,
2257		},
2258	},
2259};
2260
2261static struct clk_branch gcc_camera_sf_axi_clk = {
2262	.halt_reg = 0x2601c,
2263	.halt_check = BRANCH_HALT_SKIP,
2264	.hwcg_reg = 0x2601c,
2265	.hwcg_bit = 1,
2266	.clkr = {
2267		.enable_reg = 0x2601c,
2268		.enable_mask = BIT(0),
2269		.hw.init = &(const struct clk_init_data) {
2270			.name = "gcc_camera_sf_axi_clk",
2271			.ops = &clk_branch2_ops,
2272		},
2273	},
2274};
2275
2276static struct clk_branch gcc_cfg_noc_pcie_anoc_ahb_clk = {
2277	.halt_reg = 0x10028,
2278	.halt_check = BRANCH_HALT_VOTED,
2279	.hwcg_reg = 0x10028,
2280	.hwcg_bit = 1,
2281	.clkr = {
2282		.enable_reg = 0x52028,
2283		.enable_mask = BIT(20),
2284		.hw.init = &(const struct clk_init_data) {
2285			.name = "gcc_cfg_noc_pcie_anoc_ahb_clk",
2286			.ops = &clk_branch2_ops,
2287		},
2288	},
2289};
2290
2291static struct clk_branch gcc_cfg_noc_pcie_anoc_north_ahb_clk = {
2292	.halt_reg = 0x1002c,
2293	.halt_check = BRANCH_HALT_VOTED,
2294	.hwcg_reg = 0x1002c,
2295	.hwcg_bit = 1,
2296	.clkr = {
2297		.enable_reg = 0x52028,
2298		.enable_mask = BIT(22),
2299		.hw.init = &(const struct clk_init_data) {
2300			.name = "gcc_cfg_noc_pcie_anoc_north_ahb_clk",
2301			.ops = &clk_branch2_ops,
2302		},
2303	},
2304};
2305
2306static struct clk_branch gcc_cfg_noc_pcie_anoc_south_ahb_clk = {
2307	.halt_reg = 0x10030,
2308	.halt_check = BRANCH_HALT_VOTED,
2309	.hwcg_reg = 0x10030,
2310	.hwcg_bit = 1,
2311	.clkr = {
2312		.enable_reg = 0x52000,
2313		.enable_mask = BIT(20),
2314		.hw.init = &(const struct clk_init_data) {
2315			.name = "gcc_cfg_noc_pcie_anoc_south_ahb_clk",
2316			.ops = &clk_branch2_ops,
2317		},
2318	},
2319};
2320
2321static struct clk_branch gcc_cfg_noc_usb2_prim_axi_clk = {
2322	.halt_reg = 0x29288,
2323	.halt_check = BRANCH_HALT_VOTED,
2324	.hwcg_reg = 0x29288,
2325	.hwcg_bit = 1,
2326	.clkr = {
2327		.enable_reg = 0x29288,
2328		.enable_mask = BIT(0),
2329		.hw.init = &(const struct clk_init_data) {
2330			.name = "gcc_cfg_noc_usb2_prim_axi_clk",
2331			.parent_hws = (const struct clk_hw*[]) {
2332				&gcc_usb20_master_clk_src.clkr.hw,
2333			},
2334			.num_parents = 1,
2335			.flags = CLK_SET_RATE_PARENT,
2336			.ops = &clk_branch2_ops,
2337		},
2338	},
2339};
2340
2341static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = {
2342	.halt_reg = 0x173cc,
2343	.halt_check = BRANCH_HALT_VOTED,
2344	.hwcg_reg = 0x173cc,
2345	.hwcg_bit = 1,
2346	.clkr = {
2347		.enable_reg = 0x173cc,
2348		.enable_mask = BIT(0),
2349		.hw.init = &(const struct clk_init_data) {
2350			.name = "gcc_cfg_noc_usb3_mp_axi_clk",
2351			.parent_hws = (const struct clk_hw*[]) {
2352				&gcc_usb30_mp_master_clk_src.clkr.hw,
2353			},
2354			.num_parents = 1,
2355			.flags = CLK_SET_RATE_PARENT,
2356			.ops = &clk_branch2_ops,
2357		},
2358	},
2359};
2360
2361static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
2362	.halt_reg = 0x3908c,
2363	.halt_check = BRANCH_HALT_VOTED,
2364	.hwcg_reg = 0x3908c,
2365	.hwcg_bit = 1,
2366	.clkr = {
2367		.enable_reg = 0x3908c,
2368		.enable_mask = BIT(0),
2369		.hw.init = &(const struct clk_init_data) {
2370			.name = "gcc_cfg_noc_usb3_prim_axi_clk",
2371			.parent_hws = (const struct clk_hw*[]) {
2372				&gcc_usb30_prim_master_clk_src.clkr.hw,
2373			},
2374			.num_parents = 1,
2375			.flags = CLK_SET_RATE_PARENT,
2376			.ops = &clk_branch2_ops,
2377		},
2378	},
2379};
2380
2381static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
2382	.halt_reg = 0xa108c,
2383	.halt_check = BRANCH_HALT_VOTED,
2384	.hwcg_reg = 0xa108c,
2385	.hwcg_bit = 1,
2386	.clkr = {
2387		.enable_reg = 0xa108c,
2388		.enable_mask = BIT(0),
2389		.hw.init = &(const struct clk_init_data) {
2390			.name = "gcc_cfg_noc_usb3_sec_axi_clk",
2391			.parent_hws = (const struct clk_hw*[]) {
2392				&gcc_usb30_sec_master_clk_src.clkr.hw,
2393			},
2394			.num_parents = 1,
2395			.flags = CLK_SET_RATE_PARENT,
2396			.ops = &clk_branch2_ops,
2397		},
2398	},
2399};
2400
2401static struct clk_branch gcc_cfg_noc_usb3_tert_axi_clk = {
2402	.halt_reg = 0xa208c,
2403	.halt_check = BRANCH_HALT_VOTED,
2404	.hwcg_reg = 0xa208c,
2405	.hwcg_bit = 1,
2406	.clkr = {
2407		.enable_reg = 0xa208c,
2408		.enable_mask = BIT(0),
2409		.hw.init = &(const struct clk_init_data) {
2410			.name = "gcc_cfg_noc_usb3_tert_axi_clk",
2411			.parent_hws = (const struct clk_hw*[]) {
2412				&gcc_usb30_tert_master_clk_src.clkr.hw,
2413			},
2414			.num_parents = 1,
2415			.flags = CLK_SET_RATE_PARENT,
2416			.ops = &clk_branch2_ops,
2417		},
2418	},
2419};
2420
2421static struct clk_branch gcc_cfg_noc_usb_anoc_ahb_clk = {
2422	.halt_reg = 0x2d024,
2423	.halt_check = BRANCH_HALT_VOTED,
2424	.hwcg_reg = 0x2d024,
2425	.hwcg_bit = 1,
2426	.clkr = {
2427		.enable_reg = 0x52028,
2428		.enable_mask = BIT(21),
2429		.hw.init = &(const struct clk_init_data) {
2430			.name = "gcc_cfg_noc_usb_anoc_ahb_clk",
2431			.ops = &clk_branch2_ops,
2432		},
2433	},
2434};
2435
2436static struct clk_branch gcc_cfg_noc_usb_anoc_north_ahb_clk = {
2437	.halt_reg = 0x2d028,
2438	.halt_check = BRANCH_HALT_VOTED,
2439	.hwcg_reg = 0x2d028,
2440	.hwcg_bit = 1,
2441	.clkr = {
2442		.enable_reg = 0x52028,
2443		.enable_mask = BIT(23),
2444		.hw.init = &(const struct clk_init_data) {
2445			.name = "gcc_cfg_noc_usb_anoc_north_ahb_clk",
2446			.ops = &clk_branch2_ops,
2447		},
2448	},
2449};
2450
2451static struct clk_branch gcc_cfg_noc_usb_anoc_south_ahb_clk = {
2452	.halt_reg = 0x2d02c,
2453	.halt_check = BRANCH_HALT_VOTED,
2454	.hwcg_reg = 0x2d02c,
2455	.hwcg_bit = 1,
2456	.clkr = {
2457		.enable_reg = 0x52018,
2458		.enable_mask = BIT(7),
2459		.hw.init = &(const struct clk_init_data) {
2460			.name = "gcc_cfg_noc_usb_anoc_south_ahb_clk",
2461			.ops = &clk_branch2_ops,
2462		},
2463	},
2464};
2465
2466static struct clk_branch gcc_cnoc_pcie1_tunnel_clk = {
2467	.halt_reg = 0x2c2b4,
2468	.halt_check = BRANCH_HALT_VOTED,
2469	.clkr = {
2470		.enable_reg = 0x52010,
2471		.enable_mask = BIT(30),
2472		.hw.init = &(const struct clk_init_data) {
2473			.name = "gcc_cnoc_pcie1_tunnel_clk",
2474			.ops = &clk_branch2_ops,
2475		},
2476	},
2477};
2478
2479static struct clk_branch gcc_cnoc_pcie2_tunnel_clk = {
2480	.halt_reg = 0x132b4,
2481	.halt_check = BRANCH_HALT_VOTED,
2482	.clkr = {
2483		.enable_reg = 0x52010,
2484		.enable_mask = BIT(31),
2485		.hw.init = &(const struct clk_init_data) {
2486			.name = "gcc_cnoc_pcie2_tunnel_clk",
2487			.ops = &clk_branch2_ops,
2488		},
2489	},
2490};
2491
2492static struct clk_branch gcc_cnoc_pcie_north_sf_axi_clk = {
2493	.halt_reg = 0x10014,
2494	.halt_check = BRANCH_HALT_VOTED,
2495	.hwcg_reg = 0x10014,
2496	.hwcg_bit = 1,
2497	.clkr = {
2498		.enable_reg = 0x52008,
2499		.enable_mask = BIT(6),
2500		.hw.init = &(const struct clk_init_data) {
2501			.name = "gcc_cnoc_pcie_north_sf_axi_clk",
2502			.ops = &clk_branch2_ops,
2503		},
2504	},
2505};
2506
2507static struct clk_branch gcc_cnoc_pcie_south_sf_axi_clk = {
2508	.halt_reg = 0x10018,
2509	.halt_check = BRANCH_HALT_VOTED,
2510	.hwcg_reg = 0x10018,
2511	.hwcg_bit = 1,
2512	.clkr = {
2513		.enable_reg = 0x52028,
2514		.enable_mask = BIT(12),
2515		.hw.init = &(const struct clk_init_data) {
2516			.name = "gcc_cnoc_pcie_south_sf_axi_clk",
2517			.ops = &clk_branch2_ops,
2518		},
2519	},
2520};
2521
2522static struct clk_branch gcc_cnoc_pcie_tunnel_clk = {
2523	.halt_reg = 0xa02b4,
2524	.halt_check = BRANCH_HALT_VOTED,
2525	.hwcg_reg = 0xa02b4,
2526	.hwcg_bit = 1,
2527	.clkr = {
2528		.enable_reg = 0x52010,
2529		.enable_mask = BIT(29),
2530		.hw.init = &(const struct clk_init_data) {
2531			.name = "gcc_cnoc_pcie_tunnel_clk",
2532			.ops = &clk_branch2_ops,
2533		},
2534	},
2535};
2536
2537static struct clk_branch gcc_ddrss_gpu_axi_clk = {
2538	.halt_reg = 0x7115c,
2539	.halt_check = BRANCH_HALT_SKIP,
2540	.hwcg_reg = 0x7115c,
2541	.hwcg_bit = 1,
2542	.clkr = {
2543		.enable_reg = 0x7115c,
2544		.enable_mask = BIT(0),
2545		.hw.init = &(const struct clk_init_data) {
2546			.name = "gcc_ddrss_gpu_axi_clk",
2547			.ops = &clk_branch2_ops,
2548		},
2549	},
2550};
2551
2552static struct clk_branch gcc_disp_hf_axi_clk = {
2553	.halt_reg = 0x2700c,
2554	.halt_check = BRANCH_HALT_SKIP,
2555	.hwcg_reg = 0x2700c,
2556	.hwcg_bit = 1,
2557	.clkr = {
2558		.enable_reg = 0x2700c,
2559		.enable_mask = BIT(0),
2560		.hw.init = &(const struct clk_init_data) {
2561			.name = "gcc_disp_hf_axi_clk",
2562			.ops = &clk_branch2_ops,
2563		},
2564	},
2565};
2566
2567static struct clk_branch gcc_disp_xo_clk = {
2568	.halt_reg = 0x27018,
2569	.halt_check = BRANCH_HALT,
2570	.clkr = {
2571		.enable_reg = 0x27018,
2572		.enable_mask = BIT(0),
2573		.hw.init = &(const struct clk_init_data) {
2574			.name = "gcc_disp_xo_clk",
2575			.ops = &clk_branch2_ops,
2576		},
2577	},
2578};
2579
2580static struct clk_branch gcc_gp1_clk = {
2581	.halt_reg = 0x64000,
2582	.halt_check = BRANCH_HALT,
2583	.clkr = {
2584		.enable_reg = 0x64000,
2585		.enable_mask = BIT(0),
2586		.hw.init = &(const struct clk_init_data) {
2587			.name = "gcc_gp1_clk",
2588			.parent_hws = (const struct clk_hw*[]) {
2589				&gcc_gp1_clk_src.clkr.hw,
2590			},
2591			.num_parents = 1,
2592			.flags = CLK_SET_RATE_PARENT,
2593			.ops = &clk_branch2_ops,
2594		},
2595	},
2596};
2597
2598static struct clk_branch gcc_gp2_clk = {
2599	.halt_reg = 0x65000,
2600	.halt_check = BRANCH_HALT,
2601	.clkr = {
2602		.enable_reg = 0x65000,
2603		.enable_mask = BIT(0),
2604		.hw.init = &(const struct clk_init_data) {
2605			.name = "gcc_gp2_clk",
2606			.parent_hws = (const struct clk_hw*[]) {
2607				&gcc_gp2_clk_src.clkr.hw,
2608			},
2609			.num_parents = 1,
2610			.flags = CLK_SET_RATE_PARENT,
2611			.ops = &clk_branch2_ops,
2612		},
2613	},
2614};
2615
2616static struct clk_branch gcc_gp3_clk = {
2617	.halt_reg = 0x66000,
2618	.halt_check = BRANCH_HALT,
2619	.clkr = {
2620		.enable_reg = 0x66000,
2621		.enable_mask = BIT(0),
2622		.hw.init = &(const struct clk_init_data) {
2623			.name = "gcc_gp3_clk",
2624			.parent_hws = (const struct clk_hw*[]) {
2625				&gcc_gp3_clk_src.clkr.hw,
2626			},
2627			.num_parents = 1,
2628			.flags = CLK_SET_RATE_PARENT,
2629			.ops = &clk_branch2_ops,
2630		},
2631	},
2632};
2633
2634static struct clk_branch gcc_gpu_cfg_ahb_clk = {
2635	.halt_reg = 0x71004,
2636	.halt_check = BRANCH_HALT_VOTED,
2637	.hwcg_reg = 0x71004,
2638	.hwcg_bit = 1,
2639	.clkr = {
2640		.enable_reg = 0x71004,
2641		.enable_mask = BIT(0),
2642		.hw.init = &(const struct clk_init_data) {
2643			.name = "gcc_gpu_cfg_ahb_clk",
2644			.ops = &clk_branch2_ops,
2645		},
2646	},
2647};
2648
2649static struct clk_branch gcc_gpu_gpll0_cph_clk_src = {
2650	.halt_check = BRANCH_HALT_DELAY,
2651	.clkr = {
2652		.enable_reg = 0x52000,
2653		.enable_mask = BIT(15),
2654		.hw.init = &(const struct clk_init_data) {
2655			.name = "gcc_gpu_gpll0_cph_clk_src",
2656			.parent_hws = (const struct clk_hw*[]) {
2657				&gcc_gpll0.clkr.hw,
2658			},
2659			.num_parents = 1,
2660			.flags = CLK_SET_RATE_PARENT,
2661			.ops = &clk_branch2_ops,
2662		},
2663	},
2664};
2665
2666static struct clk_branch gcc_gpu_gpll0_div_cph_clk_src = {
2667	.halt_check = BRANCH_HALT_DELAY,
2668	.clkr = {
2669		.enable_reg = 0x52000,
2670		.enable_mask = BIT(16),
2671		.hw.init = &(const struct clk_init_data) {
2672			.name = "gcc_gpu_gpll0_div_cph_clk_src",
2673			.parent_hws = (const struct clk_hw*[]) {
2674				&gcc_gpll0_out_even.clkr.hw,
2675			},
2676			.num_parents = 1,
2677			.flags = CLK_SET_RATE_PARENT,
2678			.ops = &clk_branch2_ops,
2679		},
2680	},
2681};
2682
2683static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
2684	.halt_reg = 0x71010,
2685	.halt_check = BRANCH_HALT_VOTED,
2686	.hwcg_reg = 0x71010,
2687	.hwcg_bit = 1,
2688	.clkr = {
2689		.enable_reg = 0x71010,
2690		.enable_mask = BIT(0),
2691		.hw.init = &(const struct clk_init_data) {
2692			.name = "gcc_gpu_memnoc_gfx_clk",
2693			.ops = &clk_branch2_ops,
2694		},
2695	},
2696};
2697
2698static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
2699	.halt_reg = 0x71018,
2700	.halt_check = BRANCH_HALT,
2701	.clkr = {
2702		.enable_reg = 0x71018,
2703		.enable_mask = BIT(0),
2704		.hw.init = &(const struct clk_init_data) {
2705			.name = "gcc_gpu_snoc_dvm_gfx_clk",
2706			.ops = &clk_branch2_ops,
2707		},
2708	},
2709};
2710
2711static struct clk_branch gcc_pcie0_phy_rchng_clk = {
2712	.halt_reg = 0xa0050,
2713	.halt_check = BRANCH_HALT_VOTED,
2714	.clkr = {
2715		.enable_reg = 0x52010,
2716		.enable_mask = BIT(26),
2717		.hw.init = &(const struct clk_init_data) {
2718			.name = "gcc_pcie0_phy_rchng_clk",
2719			.parent_hws = (const struct clk_hw*[]) {
2720				&gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
2721			},
2722			.num_parents = 1,
2723			.flags = CLK_SET_RATE_PARENT,
2724			.ops = &clk_branch2_ops,
2725		},
2726	},
2727};
2728
2729static struct clk_branch gcc_pcie1_phy_rchng_clk = {
2730	.halt_reg = 0x2c050,
2731	.halt_check = BRANCH_HALT_VOTED,
2732	.clkr = {
2733		.enable_reg = 0x52020,
2734		.enable_mask = BIT(31),
2735		.hw.init = &(const struct clk_init_data) {
2736			.name = "gcc_pcie1_phy_rchng_clk",
2737			.parent_hws = (const struct clk_hw*[]) {
2738				&gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
2739			},
2740			.num_parents = 1,
2741			.flags = CLK_SET_RATE_PARENT,
2742			.ops = &clk_branch2_ops,
2743		},
2744	},
2745};
2746
2747static struct clk_branch gcc_pcie2_phy_rchng_clk = {
2748	.halt_reg = 0x13050,
2749	.halt_check = BRANCH_HALT_VOTED,
2750	.clkr = {
2751		.enable_reg = 0x52020,
2752		.enable_mask = BIT(24),
2753		.hw.init = &(const struct clk_init_data) {
2754			.name = "gcc_pcie2_phy_rchng_clk",
2755			.parent_hws = (const struct clk_hw*[]) {
2756				&gcc_pcie_2_phy_rchng_clk_src.clkr.hw,
2757			},
2758			.num_parents = 1,
2759			.flags = CLK_SET_RATE_PARENT,
2760			.ops = &clk_branch2_ops,
2761		},
2762	},
2763};
2764
2765static struct clk_branch gcc_pcie_0_aux_clk = {
2766	.halt_reg = 0xa0038,
2767	.halt_check = BRANCH_HALT_VOTED,
2768	.clkr = {
2769		.enable_reg = 0x52010,
2770		.enable_mask = BIT(24),
2771		.hw.init = &(const struct clk_init_data) {
2772			.name = "gcc_pcie_0_aux_clk",
2773			.parent_hws = (const struct clk_hw*[]) {
2774				&gcc_pcie_0_aux_clk_src.clkr.hw,
2775			},
2776			.num_parents = 1,
2777			.flags = CLK_SET_RATE_PARENT,
2778			.ops = &clk_branch2_ops,
2779		},
2780	},
2781};
2782
2783static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
2784	.halt_reg = 0xa0034,
2785	.halt_check = BRANCH_HALT_VOTED,
2786	.hwcg_reg = 0xa0034,
2787	.hwcg_bit = 1,
2788	.clkr = {
2789		.enable_reg = 0x52010,
2790		.enable_mask = BIT(23),
2791		.hw.init = &(const struct clk_init_data) {
2792			.name = "gcc_pcie_0_cfg_ahb_clk",
2793			.ops = &clk_branch2_ops,
2794		},
2795	},
2796};
2797
2798static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
2799	.halt_reg = 0xa0028,
2800	.halt_check = BRANCH_HALT_SKIP,
2801	.hwcg_reg = 0xa0028,
2802	.hwcg_bit = 1,
2803	.clkr = {
2804		.enable_reg = 0x52010,
2805		.enable_mask = BIT(22),
2806		.hw.init = &(const struct clk_init_data) {
2807			.name = "gcc_pcie_0_mstr_axi_clk",
2808			.ops = &clk_branch2_ops,
2809		},
2810	},
2811};
2812
2813static struct clk_branch gcc_pcie_0_pipe_clk = {
2814	.halt_reg = 0xa0044,
2815	.halt_check = BRANCH_HALT_SKIP,
2816	.clkr = {
2817		.enable_reg = 0x52010,
2818		.enable_mask = BIT(25),
2819		.hw.init = &(const struct clk_init_data) {
2820			.name = "gcc_pcie_0_pipe_clk",
2821			.ops = &clk_branch2_ops,
2822		},
2823	},
2824};
2825
2826static struct clk_branch gcc_pcie_0_slv_axi_clk = {
2827	.halt_reg = 0xa001c,
2828	.halt_check = BRANCH_HALT_VOTED,
2829	.hwcg_reg = 0xa001c,
2830	.hwcg_bit = 1,
2831	.clkr = {
2832		.enable_reg = 0x52010,
2833		.enable_mask = BIT(21),
2834		.hw.init = &(const struct clk_init_data) {
2835			.name = "gcc_pcie_0_slv_axi_clk",
2836			.ops = &clk_branch2_ops,
2837		},
2838	},
2839};
2840
2841static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
2842	.halt_reg = 0xa0018,
2843	.halt_check = BRANCH_HALT_VOTED,
2844	.clkr = {
2845		.enable_reg = 0x52010,
2846		.enable_mask = BIT(20),
2847		.hw.init = &(const struct clk_init_data) {
2848			.name = "gcc_pcie_0_slv_q2a_axi_clk",
2849			.ops = &clk_branch2_ops,
2850		},
2851	},
2852};
2853
2854static struct clk_branch gcc_pcie_1_aux_clk = {
2855	.halt_reg = 0x2c038,
2856	.halt_check = BRANCH_HALT_VOTED,
2857	.clkr = {
2858		.enable_reg = 0x52020,
2859		.enable_mask = BIT(29),
2860		.hw.init = &(const struct clk_init_data) {
2861			.name = "gcc_pcie_1_aux_clk",
2862			.parent_hws = (const struct clk_hw*[]) {
2863				&gcc_pcie_1_aux_clk_src.clkr.hw,
2864			},
2865			.num_parents = 1,
2866			.flags = CLK_SET_RATE_PARENT,
2867			.ops = &clk_branch2_ops,
2868		},
2869	},
2870};
2871
2872static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
2873	.halt_reg = 0x2c034,
2874	.halt_check = BRANCH_HALT_VOTED,
2875	.hwcg_reg = 0x2c034,
2876	.hwcg_bit = 1,
2877	.clkr = {
2878		.enable_reg = 0x52020,
2879		.enable_mask = BIT(28),
2880		.hw.init = &(const struct clk_init_data) {
2881			.name = "gcc_pcie_1_cfg_ahb_clk",
2882			.ops = &clk_branch2_ops,
2883		},
2884	},
2885};
2886
2887static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
2888	.halt_reg = 0x2c028,
2889	.halt_check = BRANCH_HALT_SKIP,
2890	.hwcg_reg = 0x2c028,
2891	.hwcg_bit = 1,
2892	.clkr = {
2893		.enable_reg = 0x52020,
2894		.enable_mask = BIT(27),
2895		.hw.init = &(const struct clk_init_data) {
2896			.name = "gcc_pcie_1_mstr_axi_clk",
2897			.ops = &clk_branch2_ops,
2898		},
2899	},
2900};
2901
2902static struct clk_branch gcc_pcie_1_pipe_clk = {
2903	.halt_reg = 0x2c044,
2904	.halt_check = BRANCH_HALT_SKIP,
2905	.clkr = {
2906		.enable_reg = 0x52020,
2907		.enable_mask = BIT(30),
2908		.hw.init = &(const struct clk_init_data) {
2909			.name = "gcc_pcie_1_pipe_clk",
2910			.ops = &clk_branch2_ops,
2911		},
2912	},
2913};
2914
2915static struct clk_branch gcc_pcie_1_slv_axi_clk = {
2916	.halt_reg = 0x2c01c,
2917	.halt_check = BRANCH_HALT_VOTED,
2918	.hwcg_reg = 0x2c01c,
2919	.hwcg_bit = 1,
2920	.clkr = {
2921		.enable_reg = 0x52020,
2922		.enable_mask = BIT(26),
2923		.hw.init = &(const struct clk_init_data) {
2924			.name = "gcc_pcie_1_slv_axi_clk",
2925			.ops = &clk_branch2_ops,
2926		},
2927	},
2928};
2929
2930static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
2931	.halt_reg = 0x2c018,
2932	.halt_check = BRANCH_HALT_VOTED,
2933	.clkr = {
2934		.enable_reg = 0x52020,
2935		.enable_mask = BIT(25),
2936		.hw.init = &(const struct clk_init_data) {
2937			.name = "gcc_pcie_1_slv_q2a_axi_clk",
2938			.ops = &clk_branch2_ops,
2939		},
2940	},
2941};
2942
2943static struct clk_branch gcc_pcie_2_aux_clk = {
2944	.halt_reg = 0x13038,
2945	.halt_check = BRANCH_HALT_VOTED,
2946	.clkr = {
2947		.enable_reg = 0x52020,
2948		.enable_mask = BIT(22),
2949		.hw.init = &(const struct clk_init_data) {
2950			.name = "gcc_pcie_2_aux_clk",
2951			.parent_hws = (const struct clk_hw*[]) {
2952				&gcc_pcie_2_aux_clk_src.clkr.hw,
2953			},
2954			.num_parents = 1,
2955			.flags = CLK_SET_RATE_PARENT,
2956			.ops = &clk_branch2_ops,
2957		},
2958	},
2959};
2960
2961static struct clk_branch gcc_pcie_2_cfg_ahb_clk = {
2962	.halt_reg = 0x13034,
2963	.halt_check = BRANCH_HALT_VOTED,
2964	.hwcg_reg = 0x13034,
2965	.hwcg_bit = 1,
2966	.clkr = {
2967		.enable_reg = 0x52020,
2968		.enable_mask = BIT(21),
2969		.hw.init = &(const struct clk_init_data) {
2970			.name = "gcc_pcie_2_cfg_ahb_clk",
2971			.ops = &clk_branch2_ops,
2972		},
2973	},
2974};
2975
2976static struct clk_branch gcc_pcie_2_mstr_axi_clk = {
2977	.halt_reg = 0x13028,
2978	.halt_check = BRANCH_HALT_SKIP,
2979	.hwcg_reg = 0x13028,
2980	.hwcg_bit = 1,
2981	.clkr = {
2982		.enable_reg = 0x52020,
2983		.enable_mask = BIT(20),
2984		.hw.init = &(const struct clk_init_data) {
2985			.name = "gcc_pcie_2_mstr_axi_clk",
2986			.ops = &clk_branch2_ops,
2987		},
2988	},
2989};
2990
2991static struct clk_branch gcc_pcie_2_pipe_clk = {
2992	.halt_reg = 0x13044,
2993	.halt_check = BRANCH_HALT_SKIP,
2994	.clkr = {
2995		.enable_reg = 0x52020,
2996		.enable_mask = BIT(23),
2997		.hw.init = &(const struct clk_init_data) {
2998			.name = "gcc_pcie_2_pipe_clk",
2999			.ops = &clk_branch2_ops,
3000		},
3001	},
3002};
3003
3004static struct clk_branch gcc_pcie_2_slv_axi_clk = {
3005	.halt_reg = 0x1301c,
3006	.halt_check = BRANCH_HALT_VOTED,
3007	.hwcg_reg = 0x1301c,
3008	.hwcg_bit = 1,
3009	.clkr = {
3010		.enable_reg = 0x52020,
3011		.enable_mask = BIT(19),
3012		.hw.init = &(const struct clk_init_data) {
3013			.name = "gcc_pcie_2_slv_axi_clk",
3014			.ops = &clk_branch2_ops,
3015		},
3016	},
3017};
3018
3019static struct clk_branch gcc_pcie_2_slv_q2a_axi_clk = {
3020	.halt_reg = 0x13018,
3021	.halt_check = BRANCH_HALT_VOTED,
3022	.clkr = {
3023		.enable_reg = 0x52020,
3024		.enable_mask = BIT(18),
3025		.hw.init = &(const struct clk_init_data) {
3026			.name = "gcc_pcie_2_slv_q2a_axi_clk",
3027			.ops = &clk_branch2_ops,
3028		},
3029	},
3030};
3031
3032static struct clk_branch gcc_pcie_3_aux_clk = {
3033	.halt_reg = 0x58038,
3034	.halt_check = BRANCH_HALT_VOTED,
3035	.clkr = {
3036		.enable_reg = 0x52020,
3037		.enable_mask = BIT(1),
3038		.hw.init = &(const struct clk_init_data) {
3039			.name = "gcc_pcie_3_aux_clk",
3040			.parent_hws = (const struct clk_hw*[]) {
3041				&gcc_pcie_3_aux_clk_src.clkr.hw,
3042			},
3043			.num_parents = 1,
3044			.flags = CLK_SET_RATE_PARENT,
3045			.ops = &clk_branch2_ops,
3046		},
3047	},
3048};
3049
3050static struct clk_branch gcc_pcie_3_cfg_ahb_clk = {
3051	.halt_reg = 0x58034,
3052	.halt_check = BRANCH_HALT_VOTED,
3053	.hwcg_reg = 0x58034,
3054	.hwcg_bit = 1,
3055	.clkr = {
3056		.enable_reg = 0x52020,
3057		.enable_mask = BIT(0),
3058		.hw.init = &(const struct clk_init_data) {
3059			.name = "gcc_pcie_3_cfg_ahb_clk",
3060			.ops = &clk_branch2_ops,
3061		},
3062	},
3063};
3064
3065static struct clk_branch gcc_pcie_3_mstr_axi_clk = {
3066	.halt_reg = 0x58028,
3067	.halt_check = BRANCH_HALT_SKIP,
3068	.hwcg_reg = 0x58028,
3069	.hwcg_bit = 1,
3070	.clkr = {
3071		.enable_reg = 0x52018,
3072		.enable_mask = BIT(31),
3073		.hw.init = &(const struct clk_init_data) {
3074			.name = "gcc_pcie_3_mstr_axi_clk",
3075			.ops = &clk_branch2_ops,
3076		},
3077	},
3078};
3079
3080static struct clk_branch gcc_pcie_3_phy_aux_clk = {
3081	.halt_reg = 0x58044,
3082	.halt_check = BRANCH_HALT_VOTED,
3083	.clkr = {
3084		.enable_reg = 0x52020,
3085		.enable_mask = BIT(2),
3086		.hw.init = &(const struct clk_init_data) {
3087			.name = "gcc_pcie_3_phy_aux_clk",
3088			.ops = &clk_branch2_ops,
3089		},
3090	},
3091};
3092
3093static struct clk_branch gcc_pcie_3_phy_rchng_clk = {
3094	.halt_reg = 0x5805c,
3095	.halt_check = BRANCH_HALT_VOTED,
3096	.clkr = {
3097		.enable_reg = 0x52020,
3098		.enable_mask = BIT(4),
3099		.hw.init = &(const struct clk_init_data) {
3100			.name = "gcc_pcie_3_phy_rchng_clk",
3101			.parent_hws = (const struct clk_hw*[]) {
3102				&gcc_pcie_3_phy_rchng_clk_src.clkr.hw,
3103			},
3104			.num_parents = 1,
3105			.flags = CLK_SET_RATE_PARENT,
3106			.ops = &clk_branch2_ops,
3107		},
3108	},
3109};
3110
3111static struct clk_branch gcc_pcie_3_pipe_clk = {
3112	.halt_reg = 0x58050,
3113	.halt_check = BRANCH_HALT_SKIP,
3114	.clkr = {
3115		.enable_reg = 0x52020,
3116		.enable_mask = BIT(3),
3117		.hw.init = &(const struct clk_init_data) {
3118			.name = "gcc_pcie_3_pipe_clk",
3119			.ops = &clk_branch2_ops,
3120		},
3121	},
3122};
3123
3124static struct clk_branch gcc_pcie_3_pipediv2_clk = {
3125	.halt_reg = 0x58060,
3126	.halt_check = BRANCH_HALT_SKIP,
3127	.clkr = {
3128		.enable_reg = 0x52020,
3129		.enable_mask = BIT(5),
3130		.hw.init = &(const struct clk_init_data) {
3131			.name = "gcc_pcie_3_pipediv2_clk",
3132			.parent_hws = (const struct clk_hw*[]) {
3133				&gcc_pcie_3_pipe_div_clk_src.clkr.hw,
3134			},
3135			.num_parents = 1,
3136			.flags = CLK_SET_RATE_PARENT,
3137			.ops = &clk_branch2_ops,
3138		},
3139	},
3140};
3141
3142static struct clk_branch gcc_pcie_3_slv_axi_clk = {
3143	.halt_reg = 0x5801c,
3144	.halt_check = BRANCH_HALT_VOTED,
3145	.hwcg_reg = 0x5801c,
3146	.hwcg_bit = 1,
3147	.clkr = {
3148		.enable_reg = 0x52018,
3149		.enable_mask = BIT(30),
3150		.hw.init = &(const struct clk_init_data) {
3151			.name = "gcc_pcie_3_slv_axi_clk",
3152			.ops = &clk_branch2_ops,
3153		},
3154	},
3155};
3156
3157static struct clk_branch gcc_pcie_3_slv_q2a_axi_clk = {
3158	.halt_reg = 0x58018,
3159	.halt_check = BRANCH_HALT_VOTED,
3160	.clkr = {
3161		.enable_reg = 0x52018,
3162		.enable_mask = BIT(29),
3163		.hw.init = &(const struct clk_init_data) {
3164			.name = "gcc_pcie_3_slv_q2a_axi_clk",
3165			.ops = &clk_branch2_ops,
3166		},
3167	},
3168};
3169
3170static struct clk_branch gcc_pcie_4_aux_clk = {
3171	.halt_reg = 0x6b038,
3172	.halt_check = BRANCH_HALT_VOTED,
3173	.clkr = {
3174		.enable_reg = 0x52008,
3175		.enable_mask = BIT(3),
3176		.hw.init = &(const struct clk_init_data) {
3177			.name = "gcc_pcie_4_aux_clk",
3178			.parent_hws = (const struct clk_hw*[]) {
3179				&gcc_pcie_4_aux_clk_src.clkr.hw,
3180			},
3181			.num_parents = 1,
3182			.flags = CLK_SET_RATE_PARENT,
3183			.ops = &clk_branch2_ops,
3184		},
3185	},
3186};
3187
3188static struct clk_branch gcc_pcie_4_cfg_ahb_clk = {
3189	.halt_reg = 0x6b034,
3190	.halt_check = BRANCH_HALT_VOTED,
3191	.hwcg_reg = 0x6b034,
3192	.hwcg_bit = 1,
3193	.clkr = {
3194		.enable_reg = 0x52008,
3195		.enable_mask = BIT(2),
3196		.hw.init = &(const struct clk_init_data) {
3197			.name = "gcc_pcie_4_cfg_ahb_clk",
3198			.ops = &clk_branch2_ops,
3199		},
3200	},
3201};
3202
3203static struct clk_branch gcc_pcie_4_mstr_axi_clk = {
3204	.halt_reg = 0x6b028,
3205	.halt_check = BRANCH_HALT_SKIP,
3206	.hwcg_reg = 0x6b028,
3207	.hwcg_bit = 1,
3208	.clkr = {
3209		.enable_reg = 0x52008,
3210		.enable_mask = BIT(1),
3211		.hw.init = &(const struct clk_init_data) {
3212			.name = "gcc_pcie_4_mstr_axi_clk",
3213			.ops = &clk_branch2_ops,
3214		},
3215	},
3216};
3217
3218static struct clk_branch gcc_pcie_4_phy_rchng_clk = {
3219	.halt_reg = 0x6b050,
3220	.halt_check = BRANCH_HALT_VOTED,
3221	.clkr = {
3222		.enable_reg = 0x52000,
3223		.enable_mask = BIT(22),
3224		.hw.init = &(const struct clk_init_data) {
3225			.name = "gcc_pcie_4_phy_rchng_clk",
3226			.parent_hws = (const struct clk_hw*[]) {
3227				&gcc_pcie_4_phy_rchng_clk_src.clkr.hw,
3228			},
3229			.num_parents = 1,
3230			.flags = CLK_SET_RATE_PARENT,
3231			.ops = &clk_branch2_ops,
3232		},
3233	},
3234};
3235
3236static struct clk_branch gcc_pcie_4_pipe_clk = {
3237	.halt_reg = 0x6b044,
3238	.halt_check = BRANCH_HALT_SKIP,
3239	.clkr = {
3240		.enable_reg = 0x52008,
3241		.enable_mask = BIT(4),
3242		.hw.init = &(const struct clk_init_data) {
3243			.name = "gcc_pcie_4_pipe_clk",
3244			.ops = &clk_branch2_ops,
3245		},
3246	},
3247};
3248
3249static struct clk_branch gcc_pcie_4_pipediv2_clk = {
3250	.halt_reg = 0x6b054,
3251	.halt_check = BRANCH_HALT_SKIP,
3252	.clkr = {
3253		.enable_reg = 0x52010,
3254		.enable_mask = BIT(27),
3255		.hw.init = &(const struct clk_init_data) {
3256			.name = "gcc_pcie_4_pipediv2_clk",
3257			.parent_hws = (const struct clk_hw*[]) {
3258				&gcc_pcie_4_pipe_div_clk_src.clkr.hw,
3259			},
3260			.num_parents = 1,
3261			.flags = CLK_SET_RATE_PARENT,
3262			.ops = &clk_branch2_ops,
3263		},
3264	},
3265};
3266
3267static struct clk_branch gcc_pcie_4_slv_axi_clk = {
3268	.halt_reg = 0x6b01c,
3269	.halt_check = BRANCH_HALT_VOTED,
3270	.hwcg_reg = 0x6b01c,
3271	.hwcg_bit = 1,
3272	.clkr = {
3273		.enable_reg = 0x52008,
3274		.enable_mask = BIT(0),
3275		.hw.init = &(const struct clk_init_data) {
3276			.name = "gcc_pcie_4_slv_axi_clk",
3277			.ops = &clk_branch2_ops,
3278		},
3279	},
3280};
3281
3282static struct clk_branch gcc_pcie_4_slv_q2a_axi_clk = {
3283	.halt_reg = 0x6b018,
3284	.halt_check = BRANCH_HALT_VOTED,
3285	.clkr = {
3286		.enable_reg = 0x52008,
3287		.enable_mask = BIT(5),
3288		.hw.init = &(const struct clk_init_data) {
3289			.name = "gcc_pcie_4_slv_q2a_axi_clk",
3290			.ops = &clk_branch2_ops,
3291		},
3292	},
3293};
3294
3295static struct clk_branch gcc_pcie_5_aux_clk = {
3296	.halt_reg = 0x2f038,
3297	.halt_check = BRANCH_HALT_VOTED,
3298	.clkr = {
3299		.enable_reg = 0x52018,
3300		.enable_mask = BIT(16),
3301		.hw.init = &(const struct clk_init_data) {
3302			.name = "gcc_pcie_5_aux_clk",
3303			.parent_hws = (const struct clk_hw*[]) {
3304				&gcc_pcie_5_aux_clk_src.clkr.hw,
3305			},
3306			.num_parents = 1,
3307			.flags = CLK_SET_RATE_PARENT,
3308			.ops = &clk_branch2_ops,
3309		},
3310	},
3311};
3312
3313static struct clk_branch gcc_pcie_5_cfg_ahb_clk = {
3314	.halt_reg = 0x2f034,
3315	.halt_check = BRANCH_HALT_VOTED,
3316	.hwcg_reg = 0x2f034,
3317	.hwcg_bit = 1,
3318	.clkr = {
3319		.enable_reg = 0x52018,
3320		.enable_mask = BIT(15),
3321		.hw.init = &(const struct clk_init_data) {
3322			.name = "gcc_pcie_5_cfg_ahb_clk",
3323			.ops = &clk_branch2_ops,
3324		},
3325	},
3326};
3327
3328static struct clk_branch gcc_pcie_5_mstr_axi_clk = {
3329	.halt_reg = 0x2f028,
3330	.halt_check = BRANCH_HALT_SKIP,
3331	.hwcg_reg = 0x2f028,
3332	.hwcg_bit = 1,
3333	.clkr = {
3334		.enable_reg = 0x52018,
3335		.enable_mask = BIT(14),
3336		.hw.init = &(const struct clk_init_data) {
3337			.name = "gcc_pcie_5_mstr_axi_clk",
3338			.ops = &clk_branch2_ops,
3339		},
3340	},
3341};
3342
3343static struct clk_branch gcc_pcie_5_phy_rchng_clk = {
3344	.halt_reg = 0x2f050,
3345	.halt_check = BRANCH_HALT_VOTED,
3346	.clkr = {
3347		.enable_reg = 0x52018,
3348		.enable_mask = BIT(18),
3349		.hw.init = &(const struct clk_init_data) {
3350			.name = "gcc_pcie_5_phy_rchng_clk",
3351			.parent_hws = (const struct clk_hw*[]) {
3352				&gcc_pcie_5_phy_rchng_clk_src.clkr.hw,
3353			},
3354			.num_parents = 1,
3355			.flags = CLK_SET_RATE_PARENT,
3356			.ops = &clk_branch2_ops,
3357		},
3358	},
3359};
3360
3361static struct clk_branch gcc_pcie_5_pipe_clk = {
3362	.halt_reg = 0x2f044,
3363	.halt_check = BRANCH_HALT_SKIP,
3364	.clkr = {
3365		.enable_reg = 0x52018,
3366		.enable_mask = BIT(17),
3367		.hw.init = &(const struct clk_init_data) {
3368			.name = "gcc_pcie_5_pipe_clk",
3369			.ops = &clk_branch2_ops,
3370		},
3371	},
3372};
3373
3374static struct clk_branch gcc_pcie_5_pipediv2_clk = {
3375	.halt_reg = 0x2f054,
3376	.halt_check = BRANCH_HALT_SKIP,
3377	.clkr = {
3378		.enable_reg = 0x52018,
3379		.enable_mask = BIT(19),
3380		.hw.init = &(const struct clk_init_data) {
3381			.name = "gcc_pcie_5_pipediv2_clk",
3382			.parent_hws = (const struct clk_hw*[]) {
3383				&gcc_pcie_5_pipe_div_clk_src.clkr.hw,
3384			},
3385			.num_parents = 1,
3386			.flags = CLK_SET_RATE_PARENT,
3387			.ops = &clk_branch2_ops,
3388		},
3389	},
3390};
3391
3392static struct clk_branch gcc_pcie_5_slv_axi_clk = {
3393	.halt_reg = 0x2f01c,
3394	.halt_check = BRANCH_HALT_VOTED,
3395	.hwcg_reg = 0x2f01c,
3396	.hwcg_bit = 1,
3397	.clkr = {
3398		.enable_reg = 0x52018,
3399		.enable_mask = BIT(13),
3400		.hw.init = &(const struct clk_init_data) {
3401			.name = "gcc_pcie_5_slv_axi_clk",
3402			.ops = &clk_branch2_ops,
3403		},
3404	},
3405};
3406
3407static struct clk_branch gcc_pcie_5_slv_q2a_axi_clk = {
3408	.halt_reg = 0x2f018,
3409	.halt_check = BRANCH_HALT_VOTED,
3410	.clkr = {
3411		.enable_reg = 0x52018,
3412		.enable_mask = BIT(12),
3413		.hw.init = &(const struct clk_init_data) {
3414			.name = "gcc_pcie_5_slv_q2a_axi_clk",
3415			.ops = &clk_branch2_ops,
3416		},
3417	},
3418};
3419
3420static struct clk_branch gcc_pcie_6a_aux_clk = {
3421	.halt_reg = 0x31038,
3422	.halt_check = BRANCH_HALT_VOTED,
3423	.clkr = {
3424		.enable_reg = 0x52018,
3425		.enable_mask = BIT(24),
3426		.hw.init = &(const struct clk_init_data) {
3427			.name = "gcc_pcie_6a_aux_clk",
3428			.parent_hws = (const struct clk_hw*[]) {
3429				&gcc_pcie_6a_aux_clk_src.clkr.hw,
3430			},
3431			.num_parents = 1,
3432			.flags = CLK_SET_RATE_PARENT,
3433			.ops = &clk_branch2_ops,
3434		},
3435	},
3436};
3437
3438static struct clk_branch gcc_pcie_6a_cfg_ahb_clk = {
3439	.halt_reg = 0x31034,
3440	.halt_check = BRANCH_HALT_VOTED,
3441	.hwcg_reg = 0x31034,
3442	.hwcg_bit = 1,
3443	.clkr = {
3444		.enable_reg = 0x52018,
3445		.enable_mask = BIT(23),
3446		.hw.init = &(const struct clk_init_data) {
3447			.name = "gcc_pcie_6a_cfg_ahb_clk",
3448			.ops = &clk_branch2_ops,
3449		},
3450	},
3451};
3452
3453static struct clk_branch gcc_pcie_6a_mstr_axi_clk = {
3454	.halt_reg = 0x31028,
3455	.halt_check = BRANCH_HALT_SKIP,
3456	.hwcg_reg = 0x31028,
3457	.hwcg_bit = 1,
3458	.clkr = {
3459		.enable_reg = 0x52018,
3460		.enable_mask = BIT(22),
3461		.hw.init = &(const struct clk_init_data) {
3462			.name = "gcc_pcie_6a_mstr_axi_clk",
3463			.ops = &clk_branch2_ops,
3464		},
3465	},
3466};
3467
3468static struct clk_branch gcc_pcie_6a_phy_aux_clk = {
3469	.halt_reg = 0x31044,
3470	.halt_check = BRANCH_HALT_VOTED,
3471	.clkr = {
3472		.enable_reg = 0x52018,
3473		.enable_mask = BIT(25),
3474		.hw.init = &(const struct clk_init_data) {
3475			.name = "gcc_pcie_6a_phy_aux_clk",
3476			.ops = &clk_branch2_ops,
3477		},
3478	},
3479};
3480
3481static struct clk_branch gcc_pcie_6a_phy_rchng_clk = {
3482	.halt_reg = 0x3105c,
3483	.halt_check = BRANCH_HALT_VOTED,
3484	.clkr = {
3485		.enable_reg = 0x52018,
3486		.enable_mask = BIT(27),
3487		.hw.init = &(const struct clk_init_data) {
3488			.name = "gcc_pcie_6a_phy_rchng_clk",
3489			.parent_hws = (const struct clk_hw*[]) {
3490				&gcc_pcie_6a_phy_rchng_clk_src.clkr.hw,
3491			},
3492			.num_parents = 1,
3493			.flags = CLK_SET_RATE_PARENT,
3494			.ops = &clk_branch2_ops,
3495		},
3496	},
3497};
3498
3499static struct clk_branch gcc_pcie_6a_pipe_clk = {
3500	.halt_reg = 0x31050,
3501	.halt_check = BRANCH_HALT_SKIP,
3502	.clkr = {
3503		.enable_reg = 0x52018,
3504		.enable_mask = BIT(26),
3505		.hw.init = &(const struct clk_init_data) {
3506			.name = "gcc_pcie_6a_pipe_clk",
3507			.ops = &clk_branch2_ops,
3508		},
3509	},
3510};
3511
3512static struct clk_branch gcc_pcie_6a_pipediv2_clk = {
3513	.halt_reg = 0x31060,
3514	.halt_check = BRANCH_HALT_SKIP,
3515	.clkr = {
3516		.enable_reg = 0x52018,
3517		.enable_mask = BIT(28),
3518		.hw.init = &(const struct clk_init_data) {
3519			.name = "gcc_pcie_6a_pipediv2_clk",
3520			.parent_hws = (const struct clk_hw*[]) {
3521				&gcc_pcie_6a_pipe_div_clk_src.clkr.hw,
3522			},
3523			.num_parents = 1,
3524			.flags = CLK_SET_RATE_PARENT,
3525			.ops = &clk_branch2_ops,
3526		},
3527	},
3528};
3529
3530static struct clk_branch gcc_pcie_6a_slv_axi_clk = {
3531	.halt_reg = 0x3101c,
3532	.halt_check = BRANCH_HALT_VOTED,
3533	.hwcg_reg = 0x3101c,
3534	.hwcg_bit = 1,
3535	.clkr = {
3536		.enable_reg = 0x52018,
3537		.enable_mask = BIT(21),
3538		.hw.init = &(const struct clk_init_data) {
3539			.name = "gcc_pcie_6a_slv_axi_clk",
3540			.ops = &clk_branch2_ops,
3541		},
3542	},
3543};
3544
3545static struct clk_branch gcc_pcie_6a_slv_q2a_axi_clk = {
3546	.halt_reg = 0x31018,
3547	.halt_check = BRANCH_HALT_VOTED,
3548	.clkr = {
3549		.enable_reg = 0x52018,
3550		.enable_mask = BIT(20),
3551		.hw.init = &(const struct clk_init_data) {
3552			.name = "gcc_pcie_6a_slv_q2a_axi_clk",
3553			.ops = &clk_branch2_ops,
3554		},
3555	},
3556};
3557
3558static struct clk_branch gcc_pcie_6b_aux_clk = {
3559	.halt_reg = 0x8d038,
3560	.halt_check = BRANCH_HALT_VOTED,
3561	.clkr = {
3562		.enable_reg = 0x52000,
3563		.enable_mask = BIT(29),
3564		.hw.init = &(const struct clk_init_data) {
3565			.name = "gcc_pcie_6b_aux_clk",
3566			.parent_hws = (const struct clk_hw*[]) {
3567				&gcc_pcie_6b_aux_clk_src.clkr.hw,
3568			},
3569			.num_parents = 1,
3570			.flags = CLK_SET_RATE_PARENT,
3571			.ops = &clk_branch2_ops,
3572		},
3573	},
3574};
3575
3576static struct clk_branch gcc_pcie_6b_cfg_ahb_clk = {
3577	.halt_reg = 0x8d034,
3578	.halt_check = BRANCH_HALT_VOTED,
3579	.hwcg_reg = 0x8d034,
3580	.hwcg_bit = 1,
3581	.clkr = {
3582		.enable_reg = 0x52000,
3583		.enable_mask = BIT(28),
3584		.hw.init = &(const struct clk_init_data) {
3585			.name = "gcc_pcie_6b_cfg_ahb_clk",
3586			.ops = &clk_branch2_ops,
3587		},
3588	},
3589};
3590
3591static struct clk_branch gcc_pcie_6b_mstr_axi_clk = {
3592	.halt_reg = 0x8d028,
3593	.halt_check = BRANCH_HALT_SKIP,
3594	.hwcg_reg = 0x8d028,
3595	.hwcg_bit = 1,
3596	.clkr = {
3597		.enable_reg = 0x52000,
3598		.enable_mask = BIT(27),
3599		.hw.init = &(const struct clk_init_data) {
3600			.name = "gcc_pcie_6b_mstr_axi_clk",
3601			.ops = &clk_branch2_ops,
3602		},
3603	},
3604};
3605
3606static struct clk_branch gcc_pcie_6b_phy_aux_clk = {
3607	.halt_reg = 0x8d044,
3608	.halt_check = BRANCH_HALT_VOTED,
3609	.clkr = {
3610		.enable_reg = 0x52000,
3611		.enable_mask = BIT(24),
3612		.hw.init = &(const struct clk_init_data) {
3613			.name = "gcc_pcie_6b_phy_aux_clk",
3614			.ops = &clk_branch2_ops,
3615		},
3616	},
3617};
3618
3619static struct clk_branch gcc_pcie_6b_phy_rchng_clk = {
3620	.halt_reg = 0x8d05c,
3621	.halt_check = BRANCH_HALT_VOTED,
3622	.clkr = {
3623		.enable_reg = 0x52000,
3624		.enable_mask = BIT(23),
3625		.hw.init = &(const struct clk_init_data) {
3626			.name = "gcc_pcie_6b_phy_rchng_clk",
3627			.parent_hws = (const struct clk_hw*[]) {
3628				&gcc_pcie_6b_phy_rchng_clk_src.clkr.hw,
3629			},
3630			.num_parents = 1,
3631			.flags = CLK_SET_RATE_PARENT,
3632			.ops = &clk_branch2_ops,
3633		},
3634	},
3635};
3636
3637static struct clk_branch gcc_pcie_6b_pipe_clk = {
3638	.halt_reg = 0x8d050,
3639	.halt_check = BRANCH_HALT_SKIP,
3640	.clkr = {
3641		.enable_reg = 0x52000,
3642		.enable_mask = BIT(30),
3643		.hw.init = &(const struct clk_init_data) {
3644			.name = "gcc_pcie_6b_pipe_clk",
3645			.ops = &clk_branch2_ops,
3646		},
3647	},
3648};
3649
3650static struct clk_branch gcc_pcie_6b_pipediv2_clk = {
3651	.halt_reg = 0x8d060,
3652	.halt_check = BRANCH_HALT_SKIP,
3653	.clkr = {
3654		.enable_reg = 0x52010,
3655		.enable_mask = BIT(28),
3656		.hw.init = &(const struct clk_init_data) {
3657			.name = "gcc_pcie_6b_pipediv2_clk",
3658			.parent_hws = (const struct clk_hw*[]) {
3659				&gcc_pcie_6b_pipe_div_clk_src.clkr.hw,
3660			},
3661			.num_parents = 1,
3662			.flags = CLK_SET_RATE_PARENT,
3663			.ops = &clk_branch2_ops,
3664		},
3665	},
3666};
3667
3668static struct clk_branch gcc_pcie_6b_slv_axi_clk = {
3669	.halt_reg = 0x8d01c,
3670	.halt_check = BRANCH_HALT_VOTED,
3671	.hwcg_reg = 0x8d01c,
3672	.hwcg_bit = 1,
3673	.clkr = {
3674		.enable_reg = 0x52000,
3675		.enable_mask = BIT(26),
3676		.hw.init = &(const struct clk_init_data) {
3677			.name = "gcc_pcie_6b_slv_axi_clk",
3678			.ops = &clk_branch2_ops,
3679		},
3680	},
3681};
3682
3683static struct clk_branch gcc_pcie_6b_slv_q2a_axi_clk = {
3684	.halt_reg = 0x8d018,
3685	.halt_check = BRANCH_HALT_VOTED,
3686	.clkr = {
3687		.enable_reg = 0x52000,
3688		.enable_mask = BIT(25),
3689		.hw.init = &(const struct clk_init_data) {
3690			.name = "gcc_pcie_6b_slv_q2a_axi_clk",
3691			.ops = &clk_branch2_ops,
3692		},
3693	},
3694};
3695
3696static struct clk_branch gcc_pcie_rscc_ahb_clk = {
3697	.halt_reg = 0xa4008,
3698	.halt_check = BRANCH_HALT_VOTED,
3699	.hwcg_reg = 0xa4008,
3700	.hwcg_bit = 1,
3701	.clkr = {
3702		.enable_reg = 0x52028,
3703		.enable_mask = BIT(18),
3704		.hw.init = &(const struct clk_init_data) {
3705			.name = "gcc_pcie_rscc_ahb_clk",
3706			.ops = &clk_branch2_ops,
3707		},
3708	},
3709};
3710
3711static struct clk_branch gcc_pcie_rscc_xo_clk = {
3712	.halt_reg = 0xa4004,
3713	.halt_check = BRANCH_HALT_VOTED,
3714	.clkr = {
3715		.enable_reg = 0x52028,
3716		.enable_mask = BIT(17),
3717		.hw.init = &(const struct clk_init_data) {
3718			.name = "gcc_pcie_rscc_xo_clk",
3719			.parent_hws = (const struct clk_hw*[]) {
3720				&gcc_pcie_rscc_xo_clk_src.clkr.hw,
3721			},
3722			.num_parents = 1,
3723			.flags = CLK_SET_RATE_PARENT,
3724			.ops = &clk_branch2_ops,
3725		},
3726	},
3727};
3728
3729static struct clk_branch gcc_pdm2_clk = {
3730	.halt_reg = 0x3300c,
3731	.halt_check = BRANCH_HALT,
3732	.clkr = {
3733		.enable_reg = 0x3300c,
3734		.enable_mask = BIT(0),
3735		.hw.init = &(const struct clk_init_data) {
3736			.name = "gcc_pdm2_clk",
3737			.parent_hws = (const struct clk_hw*[]) {
3738				&gcc_pdm2_clk_src.clkr.hw,
3739			},
3740			.num_parents = 1,
3741			.flags = CLK_SET_RATE_PARENT,
3742			.ops = &clk_branch2_ops,
3743		},
3744	},
3745};
3746
3747static struct clk_branch gcc_pdm_ahb_clk = {
3748	.halt_reg = 0x33004,
3749	.halt_check = BRANCH_HALT_VOTED,
3750	.hwcg_reg = 0x33004,
3751	.hwcg_bit = 1,
3752	.clkr = {
3753		.enable_reg = 0x33004,
3754		.enable_mask = BIT(0),
3755		.hw.init = &(const struct clk_init_data) {
3756			.name = "gcc_pdm_ahb_clk",
3757			.ops = &clk_branch2_ops,
3758		},
3759	},
3760};
3761
3762static struct clk_branch gcc_pdm_xo4_clk = {
3763	.halt_reg = 0x33008,
3764	.halt_check = BRANCH_HALT,
3765	.clkr = {
3766		.enable_reg = 0x33008,
3767		.enable_mask = BIT(0),
3768		.hw.init = &(const struct clk_init_data) {
3769			.name = "gcc_pdm_xo4_clk",
3770			.ops = &clk_branch2_ops,
3771		},
3772	},
3773};
3774
3775static struct clk_branch gcc_qmip_av1e_ahb_clk = {
3776	.halt_reg = 0x4a018,
3777	.halt_check = BRANCH_HALT_VOTED,
3778	.hwcg_reg = 0x4a018,
3779	.hwcg_bit = 1,
3780	.clkr = {
3781		.enable_reg = 0x4a018,
3782		.enable_mask = BIT(0),
3783		.hw.init = &(const struct clk_init_data) {
3784			.name = "gcc_qmip_av1e_ahb_clk",
3785			.ops = &clk_branch2_ops,
3786		},
3787	},
3788};
3789
3790static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
3791	.halt_reg = 0x26008,
3792	.halt_check = BRANCH_HALT_VOTED,
3793	.hwcg_reg = 0x26008,
3794	.hwcg_bit = 1,
3795	.clkr = {
3796		.enable_reg = 0x26008,
3797		.enable_mask = BIT(0),
3798		.hw.init = &(const struct clk_init_data) {
3799			.name = "gcc_qmip_camera_nrt_ahb_clk",
3800			.ops = &clk_branch2_ops,
3801		},
3802	},
3803};
3804
3805static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
3806	.halt_reg = 0x2600c,
3807	.halt_check = BRANCH_HALT_VOTED,
3808	.hwcg_reg = 0x2600c,
3809	.hwcg_bit = 1,
3810	.clkr = {
3811		.enable_reg = 0x2600c,
3812		.enable_mask = BIT(0),
3813		.hw.init = &(const struct clk_init_data) {
3814			.name = "gcc_qmip_camera_rt_ahb_clk",
3815			.ops = &clk_branch2_ops,
3816		},
3817	},
3818};
3819
3820static struct clk_branch gcc_qmip_disp_ahb_clk = {
3821	.halt_reg = 0x27008,
3822	.halt_check = BRANCH_HALT_VOTED,
3823	.hwcg_reg = 0x27008,
3824	.hwcg_bit = 1,
3825	.clkr = {
3826		.enable_reg = 0x27008,
3827		.enable_mask = BIT(0),
3828		.hw.init = &(const struct clk_init_data) {
3829			.name = "gcc_qmip_disp_ahb_clk",
3830			.ops = &clk_branch2_ops,
3831		},
3832	},
3833};
3834
3835static struct clk_branch gcc_qmip_gpu_ahb_clk = {
3836	.halt_reg = 0x71008,
3837	.halt_check = BRANCH_HALT_VOTED,
3838	.hwcg_reg = 0x71008,
3839	.hwcg_bit = 1,
3840	.clkr = {
3841		.enable_reg = 0x71008,
3842		.enable_mask = BIT(0),
3843		.hw.init = &(const struct clk_init_data) {
3844			.name = "gcc_qmip_gpu_ahb_clk",
3845			.ops = &clk_branch2_ops,
3846		},
3847	},
3848};
3849
3850static struct clk_branch gcc_qmip_video_cv_cpu_ahb_clk = {
3851	.halt_reg = 0x32014,
3852	.halt_check = BRANCH_HALT_VOTED,
3853	.hwcg_reg = 0x32014,
3854	.hwcg_bit = 1,
3855	.clkr = {
3856		.enable_reg = 0x32014,
3857		.enable_mask = BIT(0),
3858		.hw.init = &(const struct clk_init_data) {
3859			.name = "gcc_qmip_video_cv_cpu_ahb_clk",
3860			.ops = &clk_branch2_ops,
3861		},
3862	},
3863};
3864
3865static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
3866	.halt_reg = 0x32008,
3867	.halt_check = BRANCH_HALT_VOTED,
3868	.hwcg_reg = 0x32008,
3869	.hwcg_bit = 1,
3870	.clkr = {
3871		.enable_reg = 0x32008,
3872		.enable_mask = BIT(0),
3873		.hw.init = &(const struct clk_init_data) {
3874			.name = "gcc_qmip_video_cvp_ahb_clk",
3875			.ops = &clk_branch2_ops,
3876		},
3877	},
3878};
3879
3880static struct clk_branch gcc_qmip_video_v_cpu_ahb_clk = {
3881	.halt_reg = 0x32010,
3882	.halt_check = BRANCH_HALT_VOTED,
3883	.hwcg_reg = 0x32010,
3884	.hwcg_bit = 1,
3885	.clkr = {
3886		.enable_reg = 0x32010,
3887		.enable_mask = BIT(0),
3888		.hw.init = &(const struct clk_init_data) {
3889			.name = "gcc_qmip_video_v_cpu_ahb_clk",
3890			.ops = &clk_branch2_ops,
3891		},
3892	},
3893};
3894
3895static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
3896	.halt_reg = 0x3200c,
3897	.halt_check = BRANCH_HALT_VOTED,
3898	.hwcg_reg = 0x3200c,
3899	.hwcg_bit = 1,
3900	.clkr = {
3901		.enable_reg = 0x3200c,
3902		.enable_mask = BIT(0),
3903		.hw.init = &(const struct clk_init_data) {
3904			.name = "gcc_qmip_video_vcodec_ahb_clk",
3905			.ops = &clk_branch2_ops,
3906		},
3907	},
3908};
3909
3910static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
3911	.halt_reg = 0x23018,
3912	.halt_check = BRANCH_HALT_VOTED,
3913	.clkr = {
3914		.enable_reg = 0x52020,
3915		.enable_mask = BIT(9),
3916		.hw.init = &(const struct clk_init_data) {
3917			.name = "gcc_qupv3_wrap0_core_2x_clk",
3918			.ops = &clk_branch2_ops,
3919		},
3920	},
3921};
3922
3923static struct clk_branch gcc_qupv3_wrap0_core_clk = {
3924	.halt_reg = 0x23008,
3925	.halt_check = BRANCH_HALT_VOTED,
3926	.clkr = {
3927		.enable_reg = 0x52020,
3928		.enable_mask = BIT(8),
3929		.hw.init = &(const struct clk_init_data) {
3930			.name = "gcc_qupv3_wrap0_core_clk",
3931			.ops = &clk_branch2_ops,
3932		},
3933	},
3934};
3935
3936static struct clk_branch gcc_qupv3_wrap0_qspi_s2_clk = {
3937	.halt_reg = 0x42280,
3938	.halt_check = BRANCH_HALT_VOTED,
3939	.clkr = {
3940		.enable_reg = 0x52028,
3941		.enable_mask = BIT(2),
3942		.hw.init = &(const struct clk_init_data) {
3943			.name = "gcc_qupv3_wrap0_qspi_s2_clk",
3944			.parent_hws = (const struct clk_hw*[]) {
3945				&gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
3946			},
3947			.num_parents = 1,
3948			.flags = CLK_SET_RATE_PARENT,
3949			.ops = &clk_branch2_ops,
3950		},
3951	},
3952};
3953
3954static struct clk_branch gcc_qupv3_wrap0_qspi_s3_clk = {
3955	.halt_reg = 0x423c0,
3956	.halt_check = BRANCH_HALT_VOTED,
3957	.clkr = {
3958		.enable_reg = 0x52028,
3959		.enable_mask = BIT(3),
3960		.hw.init = &(const struct clk_init_data) {
3961			.name = "gcc_qupv3_wrap0_qspi_s3_clk",
3962			.parent_hws = (const struct clk_hw*[]) {
3963				&gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
3964			},
3965			.num_parents = 1,
3966			.flags = CLK_SET_RATE_PARENT,
3967			.ops = &clk_branch2_ops,
3968		},
3969	},
3970};
3971
3972static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
3973	.halt_reg = 0x42004,
3974	.halt_check = BRANCH_HALT_VOTED,
3975	.clkr = {
3976		.enable_reg = 0x52020,
3977		.enable_mask = BIT(10),
3978		.hw.init = &(const struct clk_init_data) {
3979			.name = "gcc_qupv3_wrap0_s0_clk",
3980			.parent_hws = (const struct clk_hw*[]) {
3981				&gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
3982			},
3983			.num_parents = 1,
3984			.flags = CLK_SET_RATE_PARENT,
3985			.ops = &clk_branch2_ops,
3986		},
3987	},
3988};
3989
3990static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
3991	.halt_reg = 0x4213c,
3992	.halt_check = BRANCH_HALT_VOTED,
3993	.clkr = {
3994		.enable_reg = 0x52020,
3995		.enable_mask = BIT(11),
3996		.hw.init = &(const struct clk_init_data) {
3997			.name = "gcc_qupv3_wrap0_s1_clk",
3998			.parent_hws = (const struct clk_hw*[]) {
3999				&gcc_qupv3_wrap0_s1_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_qupv3_wrap0_s2_clk = {
4009	.halt_reg = 0x42274,
4010	.halt_check = BRANCH_HALT_VOTED,
4011	.clkr = {
4012		.enable_reg = 0x52020,
4013		.enable_mask = BIT(12),
4014		.hw.init = &(const struct clk_init_data) {
4015			.name = "gcc_qupv3_wrap0_s2_clk",
4016			.parent_hws = (const struct clk_hw*[]) {
4017				&gcc_qupv3_wrap0_s2_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_qupv3_wrap0_s3_clk = {
4027	.halt_reg = 0x423b4,
4028	.halt_check = BRANCH_HALT_VOTED,
4029	.clkr = {
4030		.enable_reg = 0x52020,
4031		.enable_mask = BIT(13),
4032		.hw.init = &(const struct clk_init_data) {
4033			.name = "gcc_qupv3_wrap0_s3_clk",
4034			.parent_hws = (const struct clk_hw*[]) {
4035				&gcc_qupv3_wrap0_s3_div_clk_src.clkr.hw,
4036			},
4037			.num_parents = 1,
4038			.flags = CLK_SET_RATE_PARENT,
4039			.ops = &clk_branch2_ops,
4040		},
4041	},
4042};
4043
4044static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
4045	.halt_reg = 0x424f4,
4046	.halt_check = BRANCH_HALT_VOTED,
4047	.clkr = {
4048		.enable_reg = 0x52020,
4049		.enable_mask = BIT(14),
4050		.hw.init = &(const struct clk_init_data) {
4051			.name = "gcc_qupv3_wrap0_s4_clk",
4052			.parent_hws = (const struct clk_hw*[]) {
4053				&gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
4054			},
4055			.num_parents = 1,
4056			.flags = CLK_SET_RATE_PARENT,
4057			.ops = &clk_branch2_ops,
4058		},
4059	},
4060};
4061
4062static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
4063	.halt_reg = 0x4262c,
4064	.halt_check = BRANCH_HALT_VOTED,
4065	.clkr = {
4066		.enable_reg = 0x52020,
4067		.enable_mask = BIT(15),
4068		.hw.init = &(const struct clk_init_data) {
4069			.name = "gcc_qupv3_wrap0_s5_clk",
4070			.parent_hws = (const struct clk_hw*[]) {
4071				&gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
4072			},
4073			.num_parents = 1,
4074			.flags = CLK_SET_RATE_PARENT,
4075			.ops = &clk_branch2_ops,
4076		},
4077	},
4078};
4079
4080static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
4081	.halt_reg = 0x42764,
4082	.halt_check = BRANCH_HALT_VOTED,
4083	.clkr = {
4084		.enable_reg = 0x52020,
4085		.enable_mask = BIT(16),
4086		.hw.init = &(const struct clk_init_data) {
4087			.name = "gcc_qupv3_wrap0_s6_clk",
4088			.parent_hws = (const struct clk_hw*[]) {
4089				&gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
4090			},
4091			.num_parents = 1,
4092			.flags = CLK_SET_RATE_PARENT,
4093			.ops = &clk_branch2_ops,
4094		},
4095	},
4096};
4097
4098static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
4099	.halt_reg = 0x4289c,
4100	.halt_check = BRANCH_HALT_VOTED,
4101	.clkr = {
4102		.enable_reg = 0x52020,
4103		.enable_mask = BIT(17),
4104		.hw.init = &(const struct clk_init_data) {
4105			.name = "gcc_qupv3_wrap0_s7_clk",
4106			.parent_hws = (const struct clk_hw*[]) {
4107				&gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
4108			},
4109			.num_parents = 1,
4110			.flags = CLK_SET_RATE_PARENT,
4111			.ops = &clk_branch2_ops,
4112		},
4113	},
4114};
4115
4116static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
4117	.halt_reg = 0x23168,
4118	.halt_check = BRANCH_HALT_VOTED,
4119	.clkr = {
4120		.enable_reg = 0x52008,
4121		.enable_mask = BIT(18),
4122		.hw.init = &(const struct clk_init_data) {
4123			.name = "gcc_qupv3_wrap1_core_2x_clk",
4124			.ops = &clk_branch2_ops,
4125		},
4126	},
4127};
4128
4129static struct clk_branch gcc_qupv3_wrap1_core_clk = {
4130	.halt_reg = 0x23158,
4131	.halt_check = BRANCH_HALT_VOTED,
4132	.clkr = {
4133		.enable_reg = 0x52008,
4134		.enable_mask = BIT(19),
4135		.hw.init = &(const struct clk_init_data) {
4136			.name = "gcc_qupv3_wrap1_core_clk",
4137			.ops = &clk_branch2_ops,
4138		},
4139	},
4140};
4141
4142static struct clk_branch gcc_qupv3_wrap1_qspi_s2_clk = {
4143	.halt_reg = 0x18280,
4144	.halt_check = BRANCH_HALT_VOTED,
4145	.clkr = {
4146		.enable_reg = 0x52028,
4147		.enable_mask = BIT(4),
4148		.hw.init = &(const struct clk_init_data) {
4149			.name = "gcc_qupv3_wrap1_qspi_s2_clk",
4150			.parent_hws = (const struct clk_hw*[]) {
4151				&gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
4152			},
4153			.num_parents = 1,
4154			.flags = CLK_SET_RATE_PARENT,
4155			.ops = &clk_branch2_ops,
4156		},
4157	},
4158};
4159
4160static struct clk_branch gcc_qupv3_wrap1_qspi_s3_clk = {
4161	.halt_reg = 0x183c0,
4162	.halt_check = BRANCH_HALT_VOTED,
4163	.clkr = {
4164		.enable_reg = 0x52028,
4165		.enable_mask = BIT(5),
4166		.hw.init = &(const struct clk_init_data) {
4167			.name = "gcc_qupv3_wrap1_qspi_s3_clk",
4168			.parent_hws = (const struct clk_hw*[]) {
4169				&gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
4170			},
4171			.num_parents = 1,
4172			.flags = CLK_SET_RATE_PARENT,
4173			.ops = &clk_branch2_ops,
4174		},
4175	},
4176};
4177
4178static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
4179	.halt_reg = 0x18004,
4180	.halt_check = BRANCH_HALT_VOTED,
4181	.clkr = {
4182		.enable_reg = 0x52008,
4183		.enable_mask = BIT(22),
4184		.hw.init = &(const struct clk_init_data) {
4185			.name = "gcc_qupv3_wrap1_s0_clk",
4186			.parent_hws = (const struct clk_hw*[]) {
4187				&gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
4188			},
4189			.num_parents = 1,
4190			.flags = CLK_SET_RATE_PARENT,
4191			.ops = &clk_branch2_ops,
4192		},
4193	},
4194};
4195
4196static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
4197	.halt_reg = 0x1813c,
4198	.halt_check = BRANCH_HALT_VOTED,
4199	.clkr = {
4200		.enable_reg = 0x52008,
4201		.enable_mask = BIT(23),
4202		.hw.init = &(const struct clk_init_data) {
4203			.name = "gcc_qupv3_wrap1_s1_clk",
4204			.parent_hws = (const struct clk_hw*[]) {
4205				&gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
4206			},
4207			.num_parents = 1,
4208			.flags = CLK_SET_RATE_PARENT,
4209			.ops = &clk_branch2_ops,
4210		},
4211	},
4212};
4213
4214static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
4215	.halt_reg = 0x18274,
4216	.halt_check = BRANCH_HALT_VOTED,
4217	.clkr = {
4218		.enable_reg = 0x52008,
4219		.enable_mask = BIT(24),
4220		.hw.init = &(const struct clk_init_data) {
4221			.name = "gcc_qupv3_wrap1_s2_clk",
4222			.parent_hws = (const struct clk_hw*[]) {
4223				&gcc_qupv3_wrap1_s2_div_clk_src.clkr.hw,
4224			},
4225			.num_parents = 1,
4226			.flags = CLK_SET_RATE_PARENT,
4227			.ops = &clk_branch2_ops,
4228		},
4229	},
4230};
4231
4232static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
4233	.halt_reg = 0x183b4,
4234	.halt_check = BRANCH_HALT_VOTED,
4235	.clkr = {
4236		.enable_reg = 0x52008,
4237		.enable_mask = BIT(25),
4238		.hw.init = &(const struct clk_init_data) {
4239			.name = "gcc_qupv3_wrap1_s3_clk",
4240			.parent_hws = (const struct clk_hw*[]) {
4241				&gcc_qupv3_wrap1_s3_div_clk_src.clkr.hw,
4242			},
4243			.num_parents = 1,
4244			.flags = CLK_SET_RATE_PARENT,
4245			.ops = &clk_branch2_ops,
4246		},
4247	},
4248};
4249
4250static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
4251	.halt_reg = 0x184f4,
4252	.halt_check = BRANCH_HALT_VOTED,
4253	.clkr = {
4254		.enable_reg = 0x52008,
4255		.enable_mask = BIT(26),
4256		.hw.init = &(const struct clk_init_data) {
4257			.name = "gcc_qupv3_wrap1_s4_clk",
4258			.parent_hws = (const struct clk_hw*[]) {
4259				&gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
4260			},
4261			.num_parents = 1,
4262			.flags = CLK_SET_RATE_PARENT,
4263			.ops = &clk_branch2_ops,
4264		},
4265	},
4266};
4267
4268static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
4269	.halt_reg = 0x1862c,
4270	.halt_check = BRANCH_HALT_VOTED,
4271	.clkr = {
4272		.enable_reg = 0x52008,
4273		.enable_mask = BIT(27),
4274		.hw.init = &(const struct clk_init_data) {
4275			.name = "gcc_qupv3_wrap1_s5_clk",
4276			.parent_hws = (const struct clk_hw*[]) {
4277				&gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
4278			},
4279			.num_parents = 1,
4280			.flags = CLK_SET_RATE_PARENT,
4281			.ops = &clk_branch2_ops,
4282		},
4283	},
4284};
4285
4286static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
4287	.halt_reg = 0x18764,
4288	.halt_check = BRANCH_HALT_VOTED,
4289	.clkr = {
4290		.enable_reg = 0x52008,
4291		.enable_mask = BIT(28),
4292		.hw.init = &(const struct clk_init_data) {
4293			.name = "gcc_qupv3_wrap1_s6_clk",
4294			.parent_hws = (const struct clk_hw*[]) {
4295				&gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
4296			},
4297			.num_parents = 1,
4298			.flags = CLK_SET_RATE_PARENT,
4299			.ops = &clk_branch2_ops,
4300		},
4301	},
4302};
4303
4304static struct clk_branch gcc_qupv3_wrap1_s7_clk = {
4305	.halt_reg = 0x1889c,
4306	.halt_check = BRANCH_HALT_VOTED,
4307	.clkr = {
4308		.enable_reg = 0x52010,
4309		.enable_mask = BIT(16),
4310		.hw.init = &(const struct clk_init_data) {
4311			.name = "gcc_qupv3_wrap1_s7_clk",
4312			.parent_hws = (const struct clk_hw*[]) {
4313				&gcc_qupv3_wrap1_s7_clk_src.clkr.hw,
4314			},
4315			.num_parents = 1,
4316			.flags = CLK_SET_RATE_PARENT,
4317			.ops = &clk_branch2_ops,
4318		},
4319	},
4320};
4321
4322static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
4323	.halt_reg = 0x232b8,
4324	.halt_check = BRANCH_HALT_VOTED,
4325	.clkr = {
4326		.enable_reg = 0x52010,
4327		.enable_mask = BIT(3),
4328		.hw.init = &(const struct clk_init_data) {
4329			.name = "gcc_qupv3_wrap2_core_2x_clk",
4330			.ops = &clk_branch2_ops,
4331		},
4332	},
4333};
4334
4335static struct clk_branch gcc_qupv3_wrap2_core_clk = {
4336	.halt_reg = 0x232a8,
4337	.halt_check = BRANCH_HALT_VOTED,
4338	.clkr = {
4339		.enable_reg = 0x52010,
4340		.enable_mask = BIT(0),
4341		.hw.init = &(const struct clk_init_data) {
4342			.name = "gcc_qupv3_wrap2_core_clk",
4343			.ops = &clk_branch2_ops,
4344		},
4345	},
4346};
4347
4348static struct clk_branch gcc_qupv3_wrap2_qspi_s2_clk = {
4349	.halt_reg = 0x1e280,
4350	.halt_check = BRANCH_HALT_VOTED,
4351	.clkr = {
4352		.enable_reg = 0x52028,
4353		.enable_mask = BIT(6),
4354		.hw.init = &(const struct clk_init_data) {
4355			.name = "gcc_qupv3_wrap2_qspi_s2_clk",
4356			.parent_hws = (const struct clk_hw*[]) {
4357				&gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
4358			},
4359			.num_parents = 1,
4360			.flags = CLK_SET_RATE_PARENT,
4361			.ops = &clk_branch2_ops,
4362		},
4363	},
4364};
4365
4366static struct clk_branch gcc_qupv3_wrap2_qspi_s3_clk = {
4367	.halt_reg = 0x1e3c0,
4368	.halt_check = BRANCH_HALT_VOTED,
4369	.clkr = {
4370		.enable_reg = 0x52028,
4371		.enable_mask = BIT(7),
4372		.hw.init = &(const struct clk_init_data) {
4373			.name = "gcc_qupv3_wrap2_qspi_s3_clk",
4374			.parent_hws = (const struct clk_hw*[]) {
4375				&gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
4376			},
4377			.num_parents = 1,
4378			.flags = CLK_SET_RATE_PARENT,
4379			.ops = &clk_branch2_ops,
4380		},
4381	},
4382};
4383
4384static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
4385	.halt_reg = 0x1e004,
4386	.halt_check = BRANCH_HALT_VOTED,
4387	.clkr = {
4388		.enable_reg = 0x52010,
4389		.enable_mask = BIT(4),
4390		.hw.init = &(const struct clk_init_data) {
4391			.name = "gcc_qupv3_wrap2_s0_clk",
4392			.parent_hws = (const struct clk_hw*[]) {
4393				&gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
4394			},
4395			.num_parents = 1,
4396			.flags = CLK_SET_RATE_PARENT,
4397			.ops = &clk_branch2_ops,
4398		},
4399	},
4400};
4401
4402static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
4403	.halt_reg = 0x1e13c,
4404	.halt_check = BRANCH_HALT_VOTED,
4405	.clkr = {
4406		.enable_reg = 0x52010,
4407		.enable_mask = BIT(5),
4408		.hw.init = &(const struct clk_init_data) {
4409			.name = "gcc_qupv3_wrap2_s1_clk",
4410			.parent_hws = (const struct clk_hw*[]) {
4411				&gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
4412			},
4413			.num_parents = 1,
4414			.flags = CLK_SET_RATE_PARENT,
4415			.ops = &clk_branch2_ops,
4416		},
4417	},
4418};
4419
4420static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
4421	.halt_reg = 0x1e274,
4422	.halt_check = BRANCH_HALT_VOTED,
4423	.clkr = {
4424		.enable_reg = 0x52010,
4425		.enable_mask = BIT(6),
4426		.hw.init = &(const struct clk_init_data) {
4427			.name = "gcc_qupv3_wrap2_s2_clk",
4428			.parent_hws = (const struct clk_hw*[]) {
4429				&gcc_qupv3_wrap2_s2_div_clk_src.clkr.hw,
4430			},
4431			.num_parents = 1,
4432			.flags = CLK_SET_RATE_PARENT,
4433			.ops = &clk_branch2_ops,
4434		},
4435	},
4436};
4437
4438static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
4439	.halt_reg = 0x1e3b4,
4440	.halt_check = BRANCH_HALT_VOTED,
4441	.clkr = {
4442		.enable_reg = 0x52010,
4443		.enable_mask = BIT(7),
4444		.hw.init = &(const struct clk_init_data) {
4445			.name = "gcc_qupv3_wrap2_s3_clk",
4446			.parent_hws = (const struct clk_hw*[]) {
4447				&gcc_qupv3_wrap2_s3_div_clk_src.clkr.hw,
4448			},
4449			.num_parents = 1,
4450			.flags = CLK_SET_RATE_PARENT,
4451			.ops = &clk_branch2_ops,
4452		},
4453	},
4454};
4455
4456static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
4457	.halt_reg = 0x1e4f4,
4458	.halt_check = BRANCH_HALT_VOTED,
4459	.clkr = {
4460		.enable_reg = 0x52010,
4461		.enable_mask = BIT(8),
4462		.hw.init = &(const struct clk_init_data) {
4463			.name = "gcc_qupv3_wrap2_s4_clk",
4464			.parent_hws = (const struct clk_hw*[]) {
4465				&gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
4466			},
4467			.num_parents = 1,
4468			.flags = CLK_SET_RATE_PARENT,
4469			.ops = &clk_branch2_ops,
4470		},
4471	},
4472};
4473
4474static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
4475	.halt_reg = 0x1e62c,
4476	.halt_check = BRANCH_HALT_VOTED,
4477	.clkr = {
4478		.enable_reg = 0x52010,
4479		.enable_mask = BIT(9),
4480		.hw.init = &(const struct clk_init_data) {
4481			.name = "gcc_qupv3_wrap2_s5_clk",
4482			.parent_hws = (const struct clk_hw*[]) {
4483				&gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
4484			},
4485			.num_parents = 1,
4486			.flags = CLK_SET_RATE_PARENT,
4487			.ops = &clk_branch2_ops,
4488		},
4489	},
4490};
4491
4492static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
4493	.halt_reg = 0x1e764,
4494	.halt_check = BRANCH_HALT_VOTED,
4495	.clkr = {
4496		.enable_reg = 0x52010,
4497		.enable_mask = BIT(10),
4498		.hw.init = &(const struct clk_init_data) {
4499			.name = "gcc_qupv3_wrap2_s6_clk",
4500			.parent_hws = (const struct clk_hw*[]) {
4501				&gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
4502			},
4503			.num_parents = 1,
4504			.flags = CLK_SET_RATE_PARENT,
4505			.ops = &clk_branch2_ops,
4506		},
4507	},
4508};
4509
4510static struct clk_branch gcc_qupv3_wrap2_s7_clk = {
4511	.halt_reg = 0x1e89c,
4512	.halt_check = BRANCH_HALT_VOTED,
4513	.clkr = {
4514		.enable_reg = 0x52010,
4515		.enable_mask = BIT(17),
4516		.hw.init = &(const struct clk_init_data) {
4517			.name = "gcc_qupv3_wrap2_s7_clk",
4518			.parent_hws = (const struct clk_hw*[]) {
4519				&gcc_qupv3_wrap2_s7_clk_src.clkr.hw,
4520			},
4521			.num_parents = 1,
4522			.flags = CLK_SET_RATE_PARENT,
4523			.ops = &clk_branch2_ops,
4524		},
4525	},
4526};
4527
4528static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
4529	.halt_reg = 0x23000,
4530	.halt_check = BRANCH_HALT_VOTED,
4531	.hwcg_reg = 0x23000,
4532	.hwcg_bit = 1,
4533	.clkr = {
4534		.enable_reg = 0x52020,
4535		.enable_mask = BIT(6),
4536		.hw.init = &(const struct clk_init_data) {
4537			.name = "gcc_qupv3_wrap_0_m_ahb_clk",
4538			.ops = &clk_branch2_ops,
4539		},
4540	},
4541};
4542
4543static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
4544	.halt_reg = 0x23004,
4545	.halt_check = BRANCH_HALT_VOTED,
4546	.hwcg_reg = 0x23004,
4547	.hwcg_bit = 1,
4548	.clkr = {
4549		.enable_reg = 0x52020,
4550		.enable_mask = BIT(7),
4551		.hw.init = &(const struct clk_init_data) {
4552			.name = "gcc_qupv3_wrap_0_s_ahb_clk",
4553			.ops = &clk_branch2_ops,
4554		},
4555	},
4556};
4557
4558static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
4559	.halt_reg = 0x23150,
4560	.halt_check = BRANCH_HALT_VOTED,
4561	.hwcg_reg = 0x23150,
4562	.hwcg_bit = 1,
4563	.clkr = {
4564		.enable_reg = 0x52008,
4565		.enable_mask = BIT(20),
4566		.hw.init = &(const struct clk_init_data) {
4567			.name = "gcc_qupv3_wrap_1_m_ahb_clk",
4568			.ops = &clk_branch2_ops,
4569		},
4570	},
4571};
4572
4573static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
4574	.halt_reg = 0x23154,
4575	.halt_check = BRANCH_HALT_VOTED,
4576	.hwcg_reg = 0x23154,
4577	.hwcg_bit = 1,
4578	.clkr = {
4579		.enable_reg = 0x52008,
4580		.enable_mask = BIT(21),
4581		.hw.init = &(const struct clk_init_data) {
4582			.name = "gcc_qupv3_wrap_1_s_ahb_clk",
4583			.ops = &clk_branch2_ops,
4584		},
4585	},
4586};
4587
4588static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
4589	.halt_reg = 0x232a0,
4590	.halt_check = BRANCH_HALT_VOTED,
4591	.hwcg_reg = 0x232a0,
4592	.hwcg_bit = 1,
4593	.clkr = {
4594		.enable_reg = 0x52010,
4595		.enable_mask = BIT(2),
4596		.hw.init = &(const struct clk_init_data) {
4597			.name = "gcc_qupv3_wrap_2_m_ahb_clk",
4598			.ops = &clk_branch2_ops,
4599		},
4600	},
4601};
4602
4603static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
4604	.halt_reg = 0x232a4,
4605	.halt_check = BRANCH_HALT_VOTED,
4606	.hwcg_reg = 0x232a4,
4607	.hwcg_bit = 1,
4608	.clkr = {
4609		.enable_reg = 0x52010,
4610		.enable_mask = BIT(1),
4611		.hw.init = &(const struct clk_init_data) {
4612			.name = "gcc_qupv3_wrap_2_s_ahb_clk",
4613			.ops = &clk_branch2_ops,
4614		},
4615	},
4616};
4617
4618static struct clk_branch gcc_sdcc2_ahb_clk = {
4619	.halt_reg = 0x14010,
4620	.halt_check = BRANCH_HALT,
4621	.clkr = {
4622		.enable_reg = 0x14010,
4623		.enable_mask = BIT(0),
4624		.hw.init = &(const struct clk_init_data) {
4625			.name = "gcc_sdcc2_ahb_clk",
4626			.ops = &clk_branch2_ops,
4627		},
4628	},
4629};
4630
4631static struct clk_branch gcc_sdcc2_apps_clk = {
4632	.halt_reg = 0x14004,
4633	.halt_check = BRANCH_HALT,
4634	.clkr = {
4635		.enable_reg = 0x14004,
4636		.enable_mask = BIT(0),
4637		.hw.init = &(const struct clk_init_data) {
4638			.name = "gcc_sdcc2_apps_clk",
4639			.parent_hws = (const struct clk_hw*[]) {
4640				&gcc_sdcc2_apps_clk_src.clkr.hw,
4641			},
4642			.num_parents = 1,
4643			.flags = CLK_SET_RATE_PARENT,
4644			.ops = &clk_branch2_ops,
4645		},
4646	},
4647};
4648
4649static struct clk_branch gcc_sdcc4_ahb_clk = {
4650	.halt_reg = 0x16010,
4651	.halt_check = BRANCH_HALT,
4652	.clkr = {
4653		.enable_reg = 0x16010,
4654		.enable_mask = BIT(0),
4655		.hw.init = &(const struct clk_init_data) {
4656			.name = "gcc_sdcc4_ahb_clk",
4657			.ops = &clk_branch2_ops,
4658		},
4659	},
4660};
4661
4662static struct clk_branch gcc_sdcc4_apps_clk = {
4663	.halt_reg = 0x16004,
4664	.halt_check = BRANCH_HALT,
4665	.clkr = {
4666		.enable_reg = 0x16004,
4667		.enable_mask = BIT(0),
4668		.hw.init = &(const struct clk_init_data) {
4669			.name = "gcc_sdcc4_apps_clk",
4670			.parent_hws = (const struct clk_hw*[]) {
4671				&gcc_sdcc4_apps_clk_src.clkr.hw,
4672			},
4673			.num_parents = 1,
4674			.flags = CLK_SET_RATE_PARENT,
4675			.ops = &clk_branch2_ops,
4676		},
4677	},
4678};
4679
4680static struct clk_branch gcc_sys_noc_usb_axi_clk = {
4681	.halt_reg = 0x2d014,
4682	.halt_check = BRANCH_HALT_VOTED,
4683	.hwcg_reg = 0x2d014,
4684	.hwcg_bit = 1,
4685	.clkr = {
4686		.enable_reg = 0x2d014,
4687		.enable_mask = BIT(0),
4688		.hw.init = &(const struct clk_init_data) {
4689			.name = "gcc_sys_noc_usb_axi_clk",
4690			.ops = &clk_branch2_ops,
4691		},
4692	},
4693};
4694
4695static struct clk_branch gcc_ufs_phy_ahb_clk = {
4696	.halt_reg = 0x77024,
4697	.halt_check = BRANCH_HALT_VOTED,
4698	.hwcg_reg = 0x77024,
4699	.hwcg_bit = 1,
4700	.clkr = {
4701		.enable_reg = 0x77024,
4702		.enable_mask = BIT(0),
4703		.hw.init = &(const struct clk_init_data) {
4704			.name = "gcc_ufs_phy_ahb_clk",
4705			.ops = &clk_branch2_ops,
4706		},
4707	},
4708};
4709
4710static struct clk_branch gcc_ufs_phy_axi_clk = {
4711	.halt_reg = 0x77018,
4712	.halt_check = BRANCH_HALT_VOTED,
4713	.hwcg_reg = 0x77018,
4714	.hwcg_bit = 1,
4715	.clkr = {
4716		.enable_reg = 0x77018,
4717		.enable_mask = BIT(0),
4718		.hw.init = &(const struct clk_init_data) {
4719			.name = "gcc_ufs_phy_axi_clk",
4720			.parent_hws = (const struct clk_hw*[]) {
4721				&gcc_ufs_phy_axi_clk_src.clkr.hw,
4722			},
4723			.num_parents = 1,
4724			.flags = CLK_SET_RATE_PARENT,
4725			.ops = &clk_branch2_ops,
4726		},
4727	},
4728};
4729
4730static struct clk_branch gcc_ufs_phy_ice_core_clk = {
4731	.halt_reg = 0x77074,
4732	.halt_check = BRANCH_HALT_VOTED,
4733	.hwcg_reg = 0x77074,
4734	.hwcg_bit = 1,
4735	.clkr = {
4736		.enable_reg = 0x77074,
4737		.enable_mask = BIT(0),
4738		.hw.init = &(const struct clk_init_data) {
4739			.name = "gcc_ufs_phy_ice_core_clk",
4740			.parent_hws = (const struct clk_hw*[]) {
4741				&gcc_ufs_phy_ice_core_clk_src.clkr.hw,
4742			},
4743			.num_parents = 1,
4744			.flags = CLK_SET_RATE_PARENT,
4745			.ops = &clk_branch2_ops,
4746		},
4747	},
4748};
4749
4750static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
4751	.halt_reg = 0x770b0,
4752	.halt_check = BRANCH_HALT_VOTED,
4753	.hwcg_reg = 0x770b0,
4754	.hwcg_bit = 1,
4755	.clkr = {
4756		.enable_reg = 0x770b0,
4757		.enable_mask = BIT(0),
4758		.hw.init = &(const struct clk_init_data) {
4759			.name = "gcc_ufs_phy_phy_aux_clk",
4760			.parent_hws = (const struct clk_hw*[]) {
4761				&gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
4762			},
4763			.num_parents = 1,
4764			.flags = CLK_SET_RATE_PARENT,
4765			.ops = &clk_branch2_ops,
4766		},
4767	},
4768};
4769
4770static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
4771	.halt_reg = 0x7702c,
4772	.halt_check = BRANCH_HALT,
4773	.clkr = {
4774		.enable_reg = 0x7702c,
4775		.enable_mask = BIT(0),
4776		.hw.init = &(const struct clk_init_data) {
4777			.name = "gcc_ufs_phy_rx_symbol_0_clk",
4778			.ops = &clk_branch2_ops,
4779		},
4780	},
4781};
4782
4783static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
4784	.halt_reg = 0x770cc,
4785	.halt_check = BRANCH_HALT,
4786	.clkr = {
4787		.enable_reg = 0x770cc,
4788		.enable_mask = BIT(0),
4789		.hw.init = &(const struct clk_init_data) {
4790			.name = "gcc_ufs_phy_rx_symbol_1_clk",
4791			.ops = &clk_branch2_ops,
4792		},
4793	},
4794};
4795
4796static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
4797	.halt_reg = 0x77028,
4798	.halt_check = BRANCH_HALT,
4799	.clkr = {
4800		.enable_reg = 0x77028,
4801		.enable_mask = BIT(0),
4802		.hw.init = &(const struct clk_init_data) {
4803			.name = "gcc_ufs_phy_tx_symbol_0_clk",
4804			.ops = &clk_branch2_ops,
4805		},
4806	},
4807};
4808
4809static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
4810	.halt_reg = 0x77068,
4811	.halt_check = BRANCH_HALT_VOTED,
4812	.hwcg_reg = 0x77068,
4813	.hwcg_bit = 1,
4814	.clkr = {
4815		.enable_reg = 0x77068,
4816		.enable_mask = BIT(0),
4817		.hw.init = &(const struct clk_init_data) {
4818			.name = "gcc_ufs_phy_unipro_core_clk",
4819			.parent_hws = (const struct clk_hw*[]) {
4820				&gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
4821			},
4822			.num_parents = 1,
4823			.flags = CLK_SET_RATE_PARENT,
4824			.ops = &clk_branch2_ops,
4825		},
4826	},
4827};
4828
4829static struct clk_branch gcc_usb20_master_clk = {
4830	.halt_reg = 0x29018,
4831	.halt_check = BRANCH_HALT,
4832	.clkr = {
4833		.enable_reg = 0x29018,
4834		.enable_mask = BIT(0),
4835		.hw.init = &(const struct clk_init_data) {
4836			.name = "gcc_usb20_master_clk",
4837			.parent_hws = (const struct clk_hw*[]) {
4838				&gcc_usb20_master_clk_src.clkr.hw,
4839			},
4840			.num_parents = 1,
4841			.flags = CLK_SET_RATE_PARENT,
4842			.ops = &clk_branch2_ops,
4843		},
4844	},
4845};
4846
4847static struct clk_branch gcc_usb20_mock_utmi_clk = {
4848	.halt_reg = 0x29028,
4849	.halt_check = BRANCH_HALT,
4850	.clkr = {
4851		.enable_reg = 0x29028,
4852		.enable_mask = BIT(0),
4853		.hw.init = &(const struct clk_init_data) {
4854			.name = "gcc_usb20_mock_utmi_clk",
4855			.parent_hws = (const struct clk_hw*[]) {
4856				&gcc_usb20_mock_utmi_postdiv_clk_src.clkr.hw,
4857			},
4858			.num_parents = 1,
4859			.flags = CLK_SET_RATE_PARENT,
4860			.ops = &clk_branch2_ops,
4861		},
4862	},
4863};
4864
4865static struct clk_branch gcc_usb20_sleep_clk = {
4866	.halt_reg = 0x29024,
4867	.halt_check = BRANCH_HALT,
4868	.clkr = {
4869		.enable_reg = 0x29024,
4870		.enable_mask = BIT(0),
4871		.hw.init = &(const struct clk_init_data) {
4872			.name = "gcc_usb20_sleep_clk",
4873			.ops = &clk_branch2_ops,
4874		},
4875	},
4876};
4877
4878static struct clk_branch gcc_usb30_mp_master_clk = {
4879	.halt_reg = 0x17018,
4880	.halt_check = BRANCH_HALT,
4881	.clkr = {
4882		.enable_reg = 0x17018,
4883		.enable_mask = BIT(0),
4884		.hw.init = &(const struct clk_init_data) {
4885			.name = "gcc_usb30_mp_master_clk",
4886			.parent_hws = (const struct clk_hw*[]) {
4887				&gcc_usb30_mp_master_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_usb30_mp_mock_utmi_clk = {
4897	.halt_reg = 0x17028,
4898	.halt_check = BRANCH_HALT,
4899	.clkr = {
4900		.enable_reg = 0x17028,
4901		.enable_mask = BIT(0),
4902		.hw.init = &(const struct clk_init_data) {
4903			.name = "gcc_usb30_mp_mock_utmi_clk",
4904			.parent_hws = (const struct clk_hw*[]) {
4905				&gcc_usb30_mp_mock_utmi_postdiv_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_usb30_mp_sleep_clk = {
4915	.halt_reg = 0x17024,
4916	.halt_check = BRANCH_HALT,
4917	.clkr = {
4918		.enable_reg = 0x17024,
4919		.enable_mask = BIT(0),
4920		.hw.init = &(const struct clk_init_data) {
4921			.name = "gcc_usb30_mp_sleep_clk",
4922			.ops = &clk_branch2_ops,
4923		},
4924	},
4925};
4926
4927static struct clk_branch gcc_usb30_prim_master_clk = {
4928	.halt_reg = 0x39018,
4929	.halt_check = BRANCH_HALT,
4930	.clkr = {
4931		.enable_reg = 0x39018,
4932		.enable_mask = BIT(0),
4933		.hw.init = &(const struct clk_init_data) {
4934			.name = "gcc_usb30_prim_master_clk",
4935			.parent_hws = (const struct clk_hw*[]) {
4936				&gcc_usb30_prim_master_clk_src.clkr.hw,
4937			},
4938			.num_parents = 1,
4939			.flags = CLK_SET_RATE_PARENT,
4940			.ops = &clk_branch2_ops,
4941		},
4942	},
4943};
4944
4945static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
4946	.halt_reg = 0x39028,
4947	.halt_check = BRANCH_HALT,
4948	.clkr = {
4949		.enable_reg = 0x39028,
4950		.enable_mask = BIT(0),
4951		.hw.init = &(const struct clk_init_data) {
4952			.name = "gcc_usb30_prim_mock_utmi_clk",
4953			.parent_hws = (const struct clk_hw*[]) {
4954				&gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
4955			},
4956			.num_parents = 1,
4957			.flags = CLK_SET_RATE_PARENT,
4958			.ops = &clk_branch2_ops,
4959		},
4960	},
4961};
4962
4963static struct clk_branch gcc_usb30_prim_sleep_clk = {
4964	.halt_reg = 0x39024,
4965	.halt_check = BRANCH_HALT,
4966	.clkr = {
4967		.enable_reg = 0x39024,
4968		.enable_mask = BIT(0),
4969		.hw.init = &(const struct clk_init_data) {
4970			.name = "gcc_usb30_prim_sleep_clk",
4971			.ops = &clk_branch2_ops,
4972		},
4973	},
4974};
4975
4976static struct clk_branch gcc_usb30_sec_master_clk = {
4977	.halt_reg = 0xa1018,
4978	.halt_check = BRANCH_HALT,
4979	.clkr = {
4980		.enable_reg = 0xa1018,
4981		.enable_mask = BIT(0),
4982		.hw.init = &(const struct clk_init_data) {
4983			.name = "gcc_usb30_sec_master_clk",
4984			.parent_hws = (const struct clk_hw*[]) {
4985				&gcc_usb30_sec_master_clk_src.clkr.hw,
4986			},
4987			.num_parents = 1,
4988			.flags = CLK_SET_RATE_PARENT,
4989			.ops = &clk_branch2_ops,
4990		},
4991	},
4992};
4993
4994static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
4995	.halt_reg = 0xa1028,
4996	.halt_check = BRANCH_HALT,
4997	.clkr = {
4998		.enable_reg = 0xa1028,
4999		.enable_mask = BIT(0),
5000		.hw.init = &(const struct clk_init_data) {
5001			.name = "gcc_usb30_sec_mock_utmi_clk",
5002			.parent_hws = (const struct clk_hw*[]) {
5003				&gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
5004			},
5005			.num_parents = 1,
5006			.flags = CLK_SET_RATE_PARENT,
5007			.ops = &clk_branch2_ops,
5008		},
5009	},
5010};
5011
5012static struct clk_branch gcc_usb30_sec_sleep_clk = {
5013	.halt_reg = 0xa1024,
5014	.halt_check = BRANCH_HALT,
5015	.clkr = {
5016		.enable_reg = 0xa1024,
5017		.enable_mask = BIT(0),
5018		.hw.init = &(const struct clk_init_data) {
5019			.name = "gcc_usb30_sec_sleep_clk",
5020			.ops = &clk_branch2_ops,
5021		},
5022	},
5023};
5024
5025static struct clk_branch gcc_usb30_tert_master_clk = {
5026	.halt_reg = 0xa2018,
5027	.halt_check = BRANCH_HALT,
5028	.clkr = {
5029		.enable_reg = 0xa2018,
5030		.enable_mask = BIT(0),
5031		.hw.init = &(const struct clk_init_data) {
5032			.name = "gcc_usb30_tert_master_clk",
5033			.parent_hws = (const struct clk_hw*[]) {
5034				&gcc_usb30_tert_master_clk_src.clkr.hw,
5035			},
5036			.num_parents = 1,
5037			.flags = CLK_SET_RATE_PARENT,
5038			.ops = &clk_branch2_ops,
5039		},
5040	},
5041};
5042
5043static struct clk_branch gcc_usb30_tert_mock_utmi_clk = {
5044	.halt_reg = 0xa2028,
5045	.halt_check = BRANCH_HALT,
5046	.clkr = {
5047		.enable_reg = 0xa2028,
5048		.enable_mask = BIT(0),
5049		.hw.init = &(const struct clk_init_data) {
5050			.name = "gcc_usb30_tert_mock_utmi_clk",
5051			.parent_hws = (const struct clk_hw*[]) {
5052				&gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr.hw,
5053			},
5054			.num_parents = 1,
5055			.flags = CLK_SET_RATE_PARENT,
5056			.ops = &clk_branch2_ops,
5057		},
5058	},
5059};
5060
5061static struct clk_branch gcc_usb30_tert_sleep_clk = {
5062	.halt_reg = 0xa2024,
5063	.halt_check = BRANCH_HALT,
5064	.clkr = {
5065		.enable_reg = 0xa2024,
5066		.enable_mask = BIT(0),
5067		.hw.init = &(const struct clk_init_data) {
5068			.name = "gcc_usb30_tert_sleep_clk",
5069			.ops = &clk_branch2_ops,
5070		},
5071	},
5072};
5073
5074static struct clk_branch gcc_usb3_mp_phy_aux_clk = {
5075	.halt_reg = 0x17288,
5076	.halt_check = BRANCH_HALT,
5077	.clkr = {
5078		.enable_reg = 0x17288,
5079		.enable_mask = BIT(0),
5080		.hw.init = &(const struct clk_init_data) {
5081			.name = "gcc_usb3_mp_phy_aux_clk",
5082			.parent_hws = (const struct clk_hw*[]) {
5083				&gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
5084			},
5085			.num_parents = 1,
5086			.flags = CLK_SET_RATE_PARENT,
5087			.ops = &clk_branch2_ops,
5088		},
5089	},
5090};
5091
5092static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = {
5093	.halt_reg = 0x1728c,
5094	.halt_check = BRANCH_HALT,
5095	.clkr = {
5096		.enable_reg = 0x1728c,
5097		.enable_mask = BIT(0),
5098		.hw.init = &(const struct clk_init_data) {
5099			.name = "gcc_usb3_mp_phy_com_aux_clk",
5100			.parent_hws = (const struct clk_hw*[]) {
5101				&gcc_usb3_mp_phy_aux_clk_src.clkr.hw,
5102			},
5103			.num_parents = 1,
5104			.flags = CLK_SET_RATE_PARENT,
5105			.ops = &clk_branch2_ops,
5106		},
5107	},
5108};
5109
5110static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = {
5111	.halt_reg = 0x17290,
5112	.halt_check = BRANCH_HALT_SKIP,
5113	.clkr = {
5114		.enable_reg = 0x17290,
5115		.enable_mask = BIT(0),
5116		.hw.init = &(const struct clk_init_data) {
5117			.name = "gcc_usb3_mp_phy_pipe_0_clk",
5118			.ops = &clk_branch2_ops,
5119		},
5120	},
5121};
5122
5123static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = {
5124	.halt_reg = 0x17298,
5125	.halt_check = BRANCH_HALT_SKIP,
5126	.clkr = {
5127		.enable_reg = 0x17298,
5128		.enable_mask = BIT(0),
5129		.hw.init = &(const struct clk_init_data) {
5130			.name = "gcc_usb3_mp_phy_pipe_1_clk",
5131			.ops = &clk_branch2_ops,
5132		},
5133	},
5134};
5135
5136static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
5137	.halt_reg = 0x39060,
5138	.halt_check = BRANCH_HALT,
5139	.clkr = {
5140		.enable_reg = 0x39060,
5141		.enable_mask = BIT(0),
5142		.hw.init = &(const struct clk_init_data) {
5143			.name = "gcc_usb3_prim_phy_aux_clk",
5144			.parent_hws = (const struct clk_hw*[]) {
5145				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
5146			},
5147			.num_parents = 1,
5148			.flags = CLK_SET_RATE_PARENT,
5149			.ops = &clk_branch2_ops,
5150		},
5151	},
5152};
5153
5154static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
5155	.halt_reg = 0x39064,
5156	.halt_check = BRANCH_HALT,
5157	.clkr = {
5158		.enable_reg = 0x39064,
5159		.enable_mask = BIT(0),
5160		.hw.init = &(const struct clk_init_data) {
5161			.name = "gcc_usb3_prim_phy_com_aux_clk",
5162			.parent_hws = (const struct clk_hw*[]) {
5163				&gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
5164			},
5165			.num_parents = 1,
5166			.flags = CLK_SET_RATE_PARENT,
5167			.ops = &clk_branch2_ops,
5168		},
5169	},
5170};
5171
5172static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
5173	.reg = 0x3906c,
5174	.shift = 0,
5175	.width = 2,
5176	.parent_map = gcc_parent_map_10,
5177	.clkr = {
5178		.hw.init = &(struct clk_init_data){
5179			.name = "gcc_usb3_prim_phy_pipe_clk_src",
5180			.parent_data = gcc_parent_data_10,
5181			.num_parents = ARRAY_SIZE(gcc_parent_data_10),
5182			.ops = &clk_regmap_mux_closest_ops,
5183		},
5184	},
5185};
5186
5187static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
5188	.halt_reg = 0x39068,
5189	.halt_check = BRANCH_HALT_SKIP,
5190	.hwcg_reg = 0x39068,
5191	.hwcg_bit = 1,
5192	.clkr = {
5193		.enable_reg = 0x39068,
5194		.enable_mask = BIT(0),
5195		.hw.init = &(const struct clk_init_data) {
5196			.name = "gcc_usb3_prim_phy_pipe_clk",
5197			.parent_hws = (const struct clk_hw*[]) {
5198				&gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
5199			},
5200			.num_parents = 1,
5201			.flags = CLK_SET_RATE_PARENT,
5202			.ops = &clk_branch2_ops,
5203		},
5204	},
5205};
5206
5207static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
5208	.halt_reg = 0xa1060,
5209	.halt_check = BRANCH_HALT,
5210	.clkr = {
5211		.enable_reg = 0xa1060,
5212		.enable_mask = BIT(0),
5213		.hw.init = &(const struct clk_init_data) {
5214			.name = "gcc_usb3_sec_phy_aux_clk",
5215			.parent_hws = (const struct clk_hw*[]) {
5216				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
5217			},
5218			.num_parents = 1,
5219			.flags = CLK_SET_RATE_PARENT,
5220			.ops = &clk_branch2_ops,
5221		},
5222	},
5223};
5224
5225static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
5226	.halt_reg = 0xa1064,
5227	.halt_check = BRANCH_HALT,
5228	.clkr = {
5229		.enable_reg = 0xa1064,
5230		.enable_mask = BIT(0),
5231		.hw.init = &(const struct clk_init_data) {
5232			.name = "gcc_usb3_sec_phy_com_aux_clk",
5233			.parent_hws = (const struct clk_hw*[]) {
5234				&gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
5235			},
5236			.num_parents = 1,
5237			.flags = CLK_SET_RATE_PARENT,
5238			.ops = &clk_branch2_ops,
5239		},
5240	},
5241};
5242
5243static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
5244	.reg = 0xa106c,
5245	.shift = 0,
5246	.width = 2,
5247	.parent_map = gcc_parent_map_11,
5248	.clkr = {
5249		.hw.init = &(struct clk_init_data){
5250			.name = "gcc_usb3_sec_phy_pipe_clk_src",
5251			.parent_data = gcc_parent_data_11,
5252			.num_parents = ARRAY_SIZE(gcc_parent_data_11),
5253			.ops = &clk_regmap_mux_closest_ops,
5254		},
5255	},
5256};
5257
5258static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
5259	.halt_reg = 0xa1068,
5260	.halt_check = BRANCH_HALT_SKIP,
5261	.hwcg_reg = 0xa1068,
5262	.hwcg_bit = 1,
5263	.clkr = {
5264		.enable_reg = 0xa1068,
5265		.enable_mask = BIT(0),
5266		.hw.init = &(const struct clk_init_data) {
5267			.name = "gcc_usb3_sec_phy_pipe_clk",
5268			.parent_hws = (const struct clk_hw*[]) {
5269				&gcc_usb3_sec_phy_pipe_clk_src.clkr.hw,
5270			},
5271			.num_parents = 1,
5272			.flags = CLK_SET_RATE_PARENT,
5273			.ops = &clk_branch2_ops,
5274		},
5275	},
5276};
5277
5278static struct clk_branch gcc_usb3_tert_phy_aux_clk = {
5279	.halt_reg = 0xa2060,
5280	.halt_check = BRANCH_HALT,
5281	.clkr = {
5282		.enable_reg = 0xa2060,
5283		.enable_mask = BIT(0),
5284		.hw.init = &(const struct clk_init_data) {
5285			.name = "gcc_usb3_tert_phy_aux_clk",
5286			.parent_hws = (const struct clk_hw*[]) {
5287				&gcc_usb3_tert_phy_aux_clk_src.clkr.hw,
5288			},
5289			.num_parents = 1,
5290			.flags = CLK_SET_RATE_PARENT,
5291			.ops = &clk_branch2_ops,
5292		},
5293	},
5294};
5295
5296static struct clk_branch gcc_usb3_tert_phy_com_aux_clk = {
5297	.halt_reg = 0xa2064,
5298	.halt_check = BRANCH_HALT,
5299	.clkr = {
5300		.enable_reg = 0xa2064,
5301		.enable_mask = BIT(0),
5302		.hw.init = &(const struct clk_init_data) {
5303			.name = "gcc_usb3_tert_phy_com_aux_clk",
5304			.parent_hws = (const struct clk_hw*[]) {
5305				&gcc_usb3_tert_phy_aux_clk_src.clkr.hw,
5306			},
5307			.num_parents = 1,
5308			.flags = CLK_SET_RATE_PARENT,
5309			.ops = &clk_branch2_ops,
5310		},
5311	},
5312};
5313
5314static struct clk_regmap_mux gcc_usb3_tert_phy_pipe_clk_src = {
5315	.reg = 0xa206c,
5316	.shift = 0,
5317	.width = 2,
5318	.parent_map = gcc_parent_map_12,
5319	.clkr = {
5320		.hw.init = &(struct clk_init_data){
5321			.name = "gcc_usb3_tert_phy_pipe_clk_src",
5322			.parent_data = gcc_parent_data_12,
5323			.num_parents = ARRAY_SIZE(gcc_parent_data_12),
5324			.ops = &clk_regmap_mux_closest_ops,
5325		},
5326	},
5327};
5328
5329static struct clk_branch gcc_usb3_tert_phy_pipe_clk = {
5330	.halt_reg = 0xa2068,
5331	.halt_check = BRANCH_HALT_SKIP,
5332	.hwcg_reg = 0xa2068,
5333	.hwcg_bit = 1,
5334	.clkr = {
5335		.enable_reg = 0xa2068,
5336		.enable_mask = BIT(0),
5337		.hw.init = &(const struct clk_init_data) {
5338			.name = "gcc_usb3_tert_phy_pipe_clk",
5339			.parent_hws = (const struct clk_hw*[]) {
5340				&gcc_usb3_tert_phy_pipe_clk_src.clkr.hw,
5341			},
5342			.num_parents = 1,
5343			.flags = CLK_SET_RATE_PARENT,
5344			.ops = &clk_branch2_ops,
5345		},
5346	},
5347};
5348
5349static struct clk_branch gcc_usb4_0_cfg_ahb_clk = {
5350	.halt_reg = 0x9f0a8,
5351	.halt_check = BRANCH_HALT_VOTED,
5352	.hwcg_reg = 0x9f0a8,
5353	.hwcg_bit = 1,
5354	.clkr = {
5355		.enable_reg = 0x9f0a8,
5356		.enable_mask = BIT(0),
5357		.hw.init = &(const struct clk_init_data) {
5358			.name = "gcc_usb4_0_cfg_ahb_clk",
5359			.ops = &clk_branch2_ops,
5360		},
5361	},
5362};
5363
5364static struct clk_branch gcc_usb4_0_dp0_clk = {
5365	.halt_reg = 0x9f060,
5366	.halt_check = BRANCH_HALT,
5367	.clkr = {
5368		.enable_reg = 0x9f060,
5369		.enable_mask = BIT(0),
5370		.hw.init = &(const struct clk_init_data) {
5371			.name = "gcc_usb4_0_dp0_clk",
5372			.ops = &clk_branch2_ops,
5373		},
5374	},
5375};
5376
5377static struct clk_branch gcc_usb4_0_dp1_clk = {
5378	.halt_reg = 0x9f108,
5379	.halt_check = BRANCH_HALT,
5380	.clkr = {
5381		.enable_reg = 0x9f108,
5382		.enable_mask = BIT(0),
5383		.hw.init = &(const struct clk_init_data) {
5384			.name = "gcc_usb4_0_dp1_clk",
5385			.ops = &clk_branch2_ops,
5386		},
5387	},
5388};
5389
5390static struct clk_branch gcc_usb4_0_master_clk = {
5391	.halt_reg = 0x9f018,
5392	.halt_check = BRANCH_HALT,
5393	.clkr = {
5394		.enable_reg = 0x9f018,
5395		.enable_mask = BIT(0),
5396		.hw.init = &(const struct clk_init_data) {
5397			.name = "gcc_usb4_0_master_clk",
5398			.parent_hws = (const struct clk_hw*[]) {
5399				&gcc_usb4_0_master_clk_src.clkr.hw,
5400			},
5401			.num_parents = 1,
5402			.flags = CLK_SET_RATE_PARENT,
5403			.ops = &clk_branch2_ops,
5404		},
5405	},
5406};
5407
5408static struct clk_branch gcc_usb4_0_phy_p2rr2p_pipe_clk = {
5409	.halt_reg = 0x9f0d8,
5410	.halt_check = BRANCH_HALT_SKIP,
5411	.clkr = {
5412		.enable_reg = 0x9f0d8,
5413		.enable_mask = BIT(0),
5414		.hw.init = &(const struct clk_init_data) {
5415			.name = "gcc_usb4_0_phy_p2rr2p_pipe_clk",
5416			.ops = &clk_branch2_ops,
5417		},
5418	},
5419};
5420
5421static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = {
5422	.halt_reg = 0x9f048,
5423	.halt_check = BRANCH_HALT_SKIP,
5424	.clkr = {
5425		.enable_reg = 0x52010,
5426		.enable_mask = BIT(19),
5427		.hw.init = &(const struct clk_init_data) {
5428			.name = "gcc_usb4_0_phy_pcie_pipe_clk",
5429			.ops = &clk_branch2_ops,
5430		},
5431	},
5432};
5433
5434static struct clk_branch gcc_usb4_0_phy_rx0_clk = {
5435	.halt_reg = 0x9f0b0,
5436	.halt_check = BRANCH_HALT,
5437	.clkr = {
5438		.enable_reg = 0x9f0b0,
5439		.enable_mask = BIT(0),
5440		.hw.init = &(const struct clk_init_data) {
5441			.name = "gcc_usb4_0_phy_rx0_clk",
5442			.ops = &clk_branch2_ops,
5443		},
5444	},
5445};
5446
5447static struct clk_branch gcc_usb4_0_phy_rx1_clk = {
5448	.halt_reg = 0x9f0c0,
5449	.halt_check = BRANCH_HALT,
5450	.clkr = {
5451		.enable_reg = 0x9f0c0,
5452		.enable_mask = BIT(0),
5453		.hw.init = &(const struct clk_init_data) {
5454			.name = "gcc_usb4_0_phy_rx1_clk",
5455			.ops = &clk_branch2_ops,
5456		},
5457	},
5458};
5459
5460static struct clk_branch gcc_usb4_0_phy_usb_pipe_clk = {
5461	.halt_reg = 0x9f0a4,
5462	.halt_check = BRANCH_HALT_SKIP,
5463	.hwcg_reg = 0x9f0a4,
5464	.hwcg_bit = 1,
5465	.clkr = {
5466		.enable_reg = 0x9f0a4,
5467		.enable_mask = BIT(0),
5468		.hw.init = &(const struct clk_init_data) {
5469			.name = "gcc_usb4_0_phy_usb_pipe_clk",
5470			.ops = &clk_branch2_ops,
5471		},
5472	},
5473};
5474
5475static struct clk_branch gcc_usb4_0_sb_if_clk = {
5476	.halt_reg = 0x9f044,
5477	.halt_check = BRANCH_HALT,
5478	.clkr = {
5479		.enable_reg = 0x9f044,
5480		.enable_mask = BIT(0),
5481		.hw.init = &(const struct clk_init_data) {
5482			.name = "gcc_usb4_0_sb_if_clk",
5483			.parent_hws = (const struct clk_hw*[]) {
5484				&gcc_usb4_0_sb_if_clk_src.clkr.hw,
5485			},
5486			.num_parents = 1,
5487			.flags = CLK_SET_RATE_PARENT,
5488			.ops = &clk_branch2_ops,
5489		},
5490	},
5491};
5492
5493static struct clk_branch gcc_usb4_0_sys_clk = {
5494	.halt_reg = 0x9f054,
5495	.halt_check = BRANCH_HALT,
5496	.clkr = {
5497		.enable_reg = 0x9f054,
5498		.enable_mask = BIT(0),
5499		.hw.init = &(const struct clk_init_data) {
5500			.name = "gcc_usb4_0_sys_clk",
5501			.ops = &clk_branch2_ops,
5502		},
5503	},
5504};
5505
5506static struct clk_branch gcc_usb4_0_tmu_clk = {
5507	.halt_reg = 0x9f088,
5508	.halt_check = BRANCH_HALT_VOTED,
5509	.hwcg_reg = 0x9f088,
5510	.hwcg_bit = 1,
5511	.clkr = {
5512		.enable_reg = 0x9f088,
5513		.enable_mask = BIT(0),
5514		.hw.init = &(const struct clk_init_data) {
5515			.name = "gcc_usb4_0_tmu_clk",
5516			.parent_hws = (const struct clk_hw*[]) {
5517				&gcc_usb4_0_tmu_clk_src.clkr.hw,
5518			},
5519			.num_parents = 1,
5520			.flags = CLK_SET_RATE_PARENT,
5521			.ops = &clk_branch2_ops,
5522		},
5523	},
5524};
5525
5526static struct clk_branch gcc_usb4_1_cfg_ahb_clk = {
5527	.halt_reg = 0x2b0a8,
5528	.halt_check = BRANCH_HALT_VOTED,
5529	.hwcg_reg = 0x2b0a8,
5530	.hwcg_bit = 1,
5531	.clkr = {
5532		.enable_reg = 0x2b0a8,
5533		.enable_mask = BIT(0),
5534		.hw.init = &(const struct clk_init_data) {
5535			.name = "gcc_usb4_1_cfg_ahb_clk",
5536			.ops = &clk_branch2_ops,
5537		},
5538	},
5539};
5540
5541static struct clk_branch gcc_usb4_1_dp0_clk = {
5542	.halt_reg = 0x2b060,
5543	.halt_check = BRANCH_HALT,
5544	.clkr = {
5545		.enable_reg = 0x2b060,
5546		.enable_mask = BIT(0),
5547		.hw.init = &(const struct clk_init_data) {
5548			.name = "gcc_usb4_1_dp0_clk",
5549			.ops = &clk_branch2_ops,
5550		},
5551	},
5552};
5553
5554static struct clk_branch gcc_usb4_1_dp1_clk = {
5555	.halt_reg = 0x2b108,
5556	.halt_check = BRANCH_HALT,
5557	.clkr = {
5558		.enable_reg = 0x2b108,
5559		.enable_mask = BIT(0),
5560		.hw.init = &(const struct clk_init_data) {
5561			.name = "gcc_usb4_1_dp1_clk",
5562			.ops = &clk_branch2_ops,
5563		},
5564	},
5565};
5566
5567static struct clk_branch gcc_usb4_1_master_clk = {
5568	.halt_reg = 0x2b018,
5569	.halt_check = BRANCH_HALT,
5570	.clkr = {
5571		.enable_reg = 0x2b018,
5572		.enable_mask = BIT(0),
5573		.hw.init = &(const struct clk_init_data) {
5574			.name = "gcc_usb4_1_master_clk",
5575			.parent_hws = (const struct clk_hw*[]) {
5576				&gcc_usb4_1_master_clk_src.clkr.hw,
5577			},
5578			.num_parents = 1,
5579			.flags = CLK_SET_RATE_PARENT,
5580			.ops = &clk_branch2_ops,
5581		},
5582	},
5583};
5584
5585static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
5586	.halt_reg = 0x2b0d8,
5587	.halt_check = BRANCH_HALT_SKIP,
5588	.clkr = {
5589		.enable_reg = 0x2b0d8,
5590		.enable_mask = BIT(0),
5591		.hw.init = &(const struct clk_init_data) {
5592			.name = "gcc_usb4_1_phy_p2rr2p_pipe_clk",
5593			.ops = &clk_branch2_ops,
5594		},
5595	},
5596};
5597
5598static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
5599	.halt_reg = 0x2b048,
5600	.halt_check = BRANCH_HALT_SKIP,
5601	.clkr = {
5602		.enable_reg = 0x52028,
5603		.enable_mask = BIT(0),
5604		.hw.init = &(const struct clk_init_data) {
5605			.name = "gcc_usb4_1_phy_pcie_pipe_clk",
5606			.ops = &clk_branch2_ops,
5607		},
5608	},
5609};
5610
5611static struct clk_branch gcc_usb4_1_phy_rx0_clk = {
5612	.halt_reg = 0x2b0b0,
5613	.halt_check = BRANCH_HALT,
5614	.clkr = {
5615		.enable_reg = 0x2b0b0,
5616		.enable_mask = BIT(0),
5617		.hw.init = &(const struct clk_init_data) {
5618			.name = "gcc_usb4_1_phy_rx0_clk",
5619			.ops = &clk_branch2_ops,
5620		},
5621	},
5622};
5623
5624static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
5625	.halt_reg = 0x2b0c0,
5626	.halt_check = BRANCH_HALT,
5627	.clkr = {
5628		.enable_reg = 0x2b0c0,
5629		.enable_mask = BIT(0),
5630		.hw.init = &(const struct clk_init_data) {
5631			.name = "gcc_usb4_1_phy_rx1_clk",
5632			.ops = &clk_branch2_ops,
5633		},
5634	},
5635};
5636
5637static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
5638	.halt_reg = 0x2b0a4,
5639	.halt_check = BRANCH_HALT_SKIP,
5640	.hwcg_reg = 0x2b0a4,
5641	.hwcg_bit = 1,
5642	.clkr = {
5643		.enable_reg = 0x2b0a4,
5644		.enable_mask = BIT(0),
5645		.hw.init = &(const struct clk_init_data) {
5646			.name = "gcc_usb4_1_phy_usb_pipe_clk",
5647			.ops = &clk_branch2_ops,
5648		},
5649	},
5650};
5651
5652static struct clk_branch gcc_usb4_1_sb_if_clk = {
5653	.halt_reg = 0x2b044,
5654	.halt_check = BRANCH_HALT,
5655	.clkr = {
5656		.enable_reg = 0x2b044,
5657		.enable_mask = BIT(0),
5658		.hw.init = &(const struct clk_init_data) {
5659			.name = "gcc_usb4_1_sb_if_clk",
5660			.parent_hws = (const struct clk_hw*[]) {
5661				&gcc_usb4_1_sb_if_clk_src.clkr.hw,
5662			},
5663			.num_parents = 1,
5664			.flags = CLK_SET_RATE_PARENT,
5665			.ops = &clk_branch2_ops,
5666		},
5667	},
5668};
5669
5670static struct clk_branch gcc_usb4_1_sys_clk = {
5671	.halt_reg = 0x2b054,
5672	.halt_check = BRANCH_HALT,
5673	.clkr = {
5674		.enable_reg = 0x2b054,
5675		.enable_mask = BIT(0),
5676		.hw.init = &(const struct clk_init_data) {
5677			.name = "gcc_usb4_1_sys_clk",
5678			.ops = &clk_branch2_ops,
5679		},
5680	},
5681};
5682
5683static struct clk_branch gcc_usb4_1_tmu_clk = {
5684	.halt_reg = 0x2b088,
5685	.halt_check = BRANCH_HALT_VOTED,
5686	.hwcg_reg = 0x2b088,
5687	.hwcg_bit = 1,
5688	.clkr = {
5689		.enable_reg = 0x2b088,
5690		.enable_mask = BIT(0),
5691		.hw.init = &(const struct clk_init_data) {
5692			.name = "gcc_usb4_1_tmu_clk",
5693			.parent_hws = (const struct clk_hw*[]) {
5694				&gcc_usb4_1_tmu_clk_src.clkr.hw,
5695			},
5696			.num_parents = 1,
5697			.flags = CLK_SET_RATE_PARENT,
5698			.ops = &clk_branch2_ops,
5699		},
5700	},
5701};
5702
5703static struct clk_branch gcc_usb4_2_cfg_ahb_clk = {
5704	.halt_reg = 0x110a8,
5705	.halt_check = BRANCH_HALT_VOTED,
5706	.hwcg_reg = 0x110a8,
5707	.hwcg_bit = 1,
5708	.clkr = {
5709		.enable_reg = 0x110a8,
5710		.enable_mask = BIT(0),
5711		.hw.init = &(const struct clk_init_data) {
5712			.name = "gcc_usb4_2_cfg_ahb_clk",
5713			.ops = &clk_branch2_ops,
5714		},
5715	},
5716};
5717
5718static struct clk_branch gcc_usb4_2_dp0_clk = {
5719	.halt_reg = 0x11060,
5720	.halt_check = BRANCH_HALT,
5721	.clkr = {
5722		.enable_reg = 0x11060,
5723		.enable_mask = BIT(0),
5724		.hw.init = &(const struct clk_init_data) {
5725			.name = "gcc_usb4_2_dp0_clk",
5726			.ops = &clk_branch2_ops,
5727		},
5728	},
5729};
5730
5731static struct clk_branch gcc_usb4_2_dp1_clk = {
5732	.halt_reg = 0x11108,
5733	.halt_check = BRANCH_HALT,
5734	.clkr = {
5735		.enable_reg = 0x11108,
5736		.enable_mask = BIT(0),
5737		.hw.init = &(const struct clk_init_data) {
5738			.name = "gcc_usb4_2_dp1_clk",
5739			.ops = &clk_branch2_ops,
5740		},
5741	},
5742};
5743
5744static struct clk_branch gcc_usb4_2_master_clk = {
5745	.halt_reg = 0x11018,
5746	.halt_check = BRANCH_HALT,
5747	.clkr = {
5748		.enable_reg = 0x11018,
5749		.enable_mask = BIT(0),
5750		.hw.init = &(const struct clk_init_data) {
5751			.name = "gcc_usb4_2_master_clk",
5752			.parent_hws = (const struct clk_hw*[]) {
5753				&gcc_usb4_2_master_clk_src.clkr.hw,
5754			},
5755			.num_parents = 1,
5756			.flags = CLK_SET_RATE_PARENT,
5757			.ops = &clk_branch2_ops,
5758		},
5759	},
5760};
5761
5762static struct clk_branch gcc_usb4_2_phy_p2rr2p_pipe_clk = {
5763	.halt_reg = 0x110d8,
5764	.halt_check = BRANCH_HALT_SKIP,
5765	.clkr = {
5766		.enable_reg = 0x110d8,
5767		.enable_mask = BIT(0),
5768		.hw.init = &(const struct clk_init_data) {
5769			.name = "gcc_usb4_2_phy_p2rr2p_pipe_clk",
5770			.ops = &clk_branch2_ops,
5771		},
5772	},
5773};
5774
5775static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = {
5776	.halt_reg = 0x11048,
5777	.halt_check = BRANCH_HALT_SKIP,
5778	.clkr = {
5779		.enable_reg = 0x52028,
5780		.enable_mask = BIT(1),
5781		.hw.init = &(const struct clk_init_data) {
5782			.name = "gcc_usb4_2_phy_pcie_pipe_clk",
5783			.ops = &clk_branch2_ops,
5784		},
5785	},
5786};
5787
5788static struct clk_branch gcc_usb4_2_phy_rx0_clk = {
5789	.halt_reg = 0x110b0,
5790	.halt_check = BRANCH_HALT,
5791	.clkr = {
5792		.enable_reg = 0x110b0,
5793		.enable_mask = BIT(0),
5794		.hw.init = &(const struct clk_init_data) {
5795			.name = "gcc_usb4_2_phy_rx0_clk",
5796			.ops = &clk_branch2_ops,
5797		},
5798	},
5799};
5800
5801static struct clk_branch gcc_usb4_2_phy_rx1_clk = {
5802	.halt_reg = 0x110c0,
5803	.halt_check = BRANCH_HALT,
5804	.clkr = {
5805		.enable_reg = 0x110c0,
5806		.enable_mask = BIT(0),
5807		.hw.init = &(const struct clk_init_data) {
5808			.name = "gcc_usb4_2_phy_rx1_clk",
5809			.ops = &clk_branch2_ops,
5810		},
5811	},
5812};
5813
5814static struct clk_branch gcc_usb4_2_phy_usb_pipe_clk = {
5815	.halt_reg = 0x110a4,
5816	.halt_check = BRANCH_HALT_SKIP,
5817	.hwcg_reg = 0x110a4,
5818	.hwcg_bit = 1,
5819	.clkr = {
5820		.enable_reg = 0x110a4,
5821		.enable_mask = BIT(0),
5822		.hw.init = &(const struct clk_init_data) {
5823			.name = "gcc_usb4_2_phy_usb_pipe_clk",
5824			.ops = &clk_branch2_ops,
5825		},
5826	},
5827};
5828
5829static struct clk_branch gcc_usb4_2_sb_if_clk = {
5830	.halt_reg = 0x11044,
5831	.halt_check = BRANCH_HALT,
5832	.clkr = {
5833		.enable_reg = 0x11044,
5834		.enable_mask = BIT(0),
5835		.hw.init = &(const struct clk_init_data) {
5836			.name = "gcc_usb4_2_sb_if_clk",
5837			.parent_hws = (const struct clk_hw*[]) {
5838				&gcc_usb4_2_sb_if_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_usb4_2_sys_clk = {
5848	.halt_reg = 0x11054,
5849	.halt_check = BRANCH_HALT,
5850	.clkr = {
5851		.enable_reg = 0x11054,
5852		.enable_mask = BIT(0),
5853		.hw.init = &(const struct clk_init_data) {
5854			.name = "gcc_usb4_2_sys_clk",
5855			.ops = &clk_branch2_ops,
5856		},
5857	},
5858};
5859
5860static struct clk_branch gcc_usb4_2_tmu_clk = {
5861	.halt_reg = 0x11088,
5862	.halt_check = BRANCH_HALT_VOTED,
5863	.hwcg_reg = 0x11088,
5864	.hwcg_bit = 1,
5865	.clkr = {
5866		.enable_reg = 0x11088,
5867		.enable_mask = BIT(0),
5868		.hw.init = &(const struct clk_init_data) {
5869			.name = "gcc_usb4_2_tmu_clk",
5870			.parent_hws = (const struct clk_hw*[]) {
5871				&gcc_usb4_2_tmu_clk_src.clkr.hw,
5872			},
5873			.num_parents = 1,
5874			.flags = CLK_SET_RATE_PARENT,
5875			.ops = &clk_branch2_ops,
5876		},
5877	},
5878};
5879
5880static struct clk_branch gcc_video_axi0_clk = {
5881	.halt_reg = 0x32018,
5882	.halt_check = BRANCH_HALT_SKIP,
5883	.hwcg_reg = 0x32018,
5884	.hwcg_bit = 1,
5885	.clkr = {
5886		.enable_reg = 0x32018,
5887		.enable_mask = BIT(0),
5888		.hw.init = &(const struct clk_init_data) {
5889			.name = "gcc_video_axi0_clk",
5890			.ops = &clk_branch2_ops,
5891		},
5892	},
5893};
5894
5895static struct clk_branch gcc_video_axi1_clk = {
5896	.halt_reg = 0x32024,
5897	.halt_check = BRANCH_HALT_SKIP,
5898	.hwcg_reg = 0x32024,
5899	.hwcg_bit = 1,
5900	.clkr = {
5901		.enable_reg = 0x32024,
5902		.enable_mask = BIT(0),
5903		.hw.init = &(const struct clk_init_data) {
5904			.name = "gcc_video_axi1_clk",
5905			.ops = &clk_branch2_ops,
5906		},
5907	},
5908};
5909
5910static struct gdsc gcc_pcie_0_tunnel_gdsc = {
5911	.gdscr = 0xa0004,
5912	.en_rest_wait_val = 0x2,
5913	.en_few_wait_val = 0x2,
5914	.clk_dis_wait_val = 0xf,
5915	.pd = {
5916		.name = "gcc_pcie_0_tunnel_gdsc",
5917	},
5918	.pwrsts = PWRSTS_OFF_ON,
5919	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
5920};
5921
5922static struct gdsc gcc_pcie_1_tunnel_gdsc = {
5923	.gdscr = 0x2c004,
5924	.en_rest_wait_val = 0x2,
5925	.en_few_wait_val = 0x2,
5926	.clk_dis_wait_val = 0xf,
5927	.pd = {
5928		.name = "gcc_pcie_1_tunnel_gdsc",
5929	},
5930	.pwrsts = PWRSTS_OFF_ON,
5931	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
5932};
5933
5934static struct gdsc gcc_pcie_2_tunnel_gdsc = {
5935	.gdscr = 0x13004,
5936	.en_rest_wait_val = 0x2,
5937	.en_few_wait_val = 0x2,
5938	.clk_dis_wait_val = 0xf,
5939	.pd = {
5940		.name = "gcc_pcie_2_tunnel_gdsc",
5941	},
5942	.pwrsts = PWRSTS_OFF_ON,
5943	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
5944};
5945
5946static struct gdsc gcc_pcie_3_gdsc = {
5947	.gdscr = 0x58004,
5948	.en_rest_wait_val = 0x2,
5949	.en_few_wait_val = 0x2,
5950	.clk_dis_wait_val = 0xf,
5951	.pd = {
5952		.name = "gcc_pcie_3_gdsc",
5953	},
5954	.pwrsts = PWRSTS_OFF_ON,
5955	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
5956};
5957
5958static struct gdsc gcc_pcie_3_phy_gdsc = {
5959	.gdscr = 0x3e000,
5960	.en_rest_wait_val = 0x2,
5961	.en_few_wait_val = 0x2,
5962	.clk_dis_wait_val = 0x2,
5963	.pd = {
5964		.name = "gcc_pcie_3_phy_gdsc",
5965	},
5966	.pwrsts = PWRSTS_OFF_ON,
5967	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
5968};
5969
5970static struct gdsc gcc_pcie_4_gdsc = {
5971	.gdscr = 0x6b004,
5972	.en_rest_wait_val = 0x2,
5973	.en_few_wait_val = 0x2,
5974	.clk_dis_wait_val = 0xf,
5975	.pd = {
5976		.name = "gcc_pcie_4_gdsc",
5977	},
5978	.pwrsts = PWRSTS_OFF_ON,
5979	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
5980};
5981
5982static struct gdsc gcc_pcie_4_phy_gdsc = {
5983	.gdscr = 0x6c000,
5984	.en_rest_wait_val = 0x2,
5985	.en_few_wait_val = 0x2,
5986	.clk_dis_wait_val = 0x2,
5987	.pd = {
5988		.name = "gcc_pcie_4_phy_gdsc",
5989	},
5990	.pwrsts = PWRSTS_OFF_ON,
5991	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
5992};
5993
5994static struct gdsc gcc_pcie_5_gdsc = {
5995	.gdscr = 0x2f004,
5996	.en_rest_wait_val = 0x2,
5997	.en_few_wait_val = 0x2,
5998	.clk_dis_wait_val = 0xf,
5999	.pd = {
6000		.name = "gcc_pcie_5_gdsc",
6001	},
6002	.pwrsts = PWRSTS_OFF_ON,
6003	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6004};
6005
6006static struct gdsc gcc_pcie_5_phy_gdsc = {
6007	.gdscr = 0x30000,
6008	.en_rest_wait_val = 0x2,
6009	.en_few_wait_val = 0x2,
6010	.clk_dis_wait_val = 0x2,
6011	.pd = {
6012		.name = "gcc_pcie_5_phy_gdsc",
6013	},
6014	.pwrsts = PWRSTS_OFF_ON,
6015	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6016};
6017
6018static struct gdsc gcc_pcie_6_phy_gdsc = {
6019	.gdscr = 0x8e000,
6020	.en_rest_wait_val = 0x2,
6021	.en_few_wait_val = 0x2,
6022	.clk_dis_wait_val = 0x2,
6023	.pd = {
6024		.name = "gcc_pcie_6_phy_gdsc",
6025	},
6026	.pwrsts = PWRSTS_OFF_ON,
6027	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6028};
6029
6030static struct gdsc gcc_pcie_6a_gdsc = {
6031	.gdscr = 0x31004,
6032	.en_rest_wait_val = 0x2,
6033	.en_few_wait_val = 0x2,
6034	.clk_dis_wait_val = 0xf,
6035	.pd = {
6036		.name = "gcc_pcie_6a_gdsc",
6037	},
6038	.pwrsts = PWRSTS_OFF_ON,
6039	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6040};
6041
6042static struct gdsc gcc_pcie_6b_gdsc = {
6043	.gdscr = 0x8d004,
6044	.en_rest_wait_val = 0x2,
6045	.en_few_wait_val = 0x2,
6046	.clk_dis_wait_val = 0xf,
6047	.pd = {
6048		.name = "gcc_pcie_6b_gdsc",
6049	},
6050	.pwrsts = PWRSTS_OFF_ON,
6051	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE,
6052};
6053
6054static struct gdsc gcc_ufs_mem_phy_gdsc = {
6055	.gdscr = 0x9e000,
6056	.en_rest_wait_val = 0x2,
6057	.en_few_wait_val = 0x2,
6058	.clk_dis_wait_val = 0x2,
6059	.pd = {
6060		.name = "gcc_ufs_mem_phy_gdsc",
6061	},
6062	.pwrsts = PWRSTS_OFF_ON,
6063	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6064};
6065
6066static struct gdsc gcc_ufs_phy_gdsc = {
6067	.gdscr = 0x77004,
6068	.en_rest_wait_val = 0x2,
6069	.en_few_wait_val = 0x2,
6070	.clk_dis_wait_val = 0xf,
6071	.pd = {
6072		.name = "gcc_ufs_phy_gdsc",
6073	},
6074	.pwrsts = PWRSTS_OFF_ON,
6075	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6076};
6077
6078static struct gdsc gcc_usb20_prim_gdsc = {
6079	.gdscr = 0x29004,
6080	.en_rest_wait_val = 0x2,
6081	.en_few_wait_val = 0x2,
6082	.clk_dis_wait_val = 0xf,
6083	.pd = {
6084		.name = "gcc_usb20_prim_gdsc",
6085	},
6086	.pwrsts = PWRSTS_RET_ON,
6087	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6088};
6089
6090static struct gdsc gcc_usb30_mp_gdsc = {
6091	.gdscr = 0x17004,
6092	.en_rest_wait_val = 0x2,
6093	.en_few_wait_val = 0x2,
6094	.clk_dis_wait_val = 0xf,
6095	.pd = {
6096		.name = "gcc_usb30_mp_gdsc",
6097	},
6098	.pwrsts = PWRSTS_RET_ON,
6099	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6100};
6101
6102static struct gdsc gcc_usb30_prim_gdsc = {
6103	.gdscr = 0x39004,
6104	.en_rest_wait_val = 0x2,
6105	.en_few_wait_val = 0x2,
6106	.clk_dis_wait_val = 0xf,
6107	.pd = {
6108		.name = "gcc_usb30_prim_gdsc",
6109	},
6110	.pwrsts = PWRSTS_RET_ON,
6111	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6112};
6113
6114static struct gdsc gcc_usb30_sec_gdsc = {
6115	.gdscr = 0xa1004,
6116	.en_rest_wait_val = 0x2,
6117	.en_few_wait_val = 0x2,
6118	.clk_dis_wait_val = 0xf,
6119	.pd = {
6120		.name = "gcc_usb30_sec_gdsc",
6121	},
6122	.pwrsts = PWRSTS_RET_ON,
6123	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6124};
6125
6126static struct gdsc gcc_usb30_tert_gdsc = {
6127	.gdscr = 0xa2004,
6128	.en_rest_wait_val = 0x2,
6129	.en_few_wait_val = 0x2,
6130	.clk_dis_wait_val = 0xf,
6131	.pd = {
6132		.name = "gcc_usb30_tert_gdsc",
6133	},
6134	.pwrsts = PWRSTS_RET_ON,
6135	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6136};
6137
6138static struct gdsc gcc_usb3_mp_ss0_phy_gdsc = {
6139	.gdscr = 0x1900c,
6140	.en_rest_wait_val = 0x2,
6141	.en_few_wait_val = 0x2,
6142	.clk_dis_wait_val = 0x2,
6143	.pd = {
6144		.name = "gcc_usb3_mp_ss0_phy_gdsc",
6145	},
6146	.pwrsts = PWRSTS_RET_ON,
6147	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6148};
6149
6150static struct gdsc gcc_usb3_mp_ss1_phy_gdsc = {
6151	.gdscr = 0x5400c,
6152	.en_rest_wait_val = 0x2,
6153	.en_few_wait_val = 0x2,
6154	.clk_dis_wait_val = 0x2,
6155	.pd = {
6156		.name = "gcc_usb3_mp_ss1_phy_gdsc",
6157	},
6158	.pwrsts = PWRSTS_RET_ON,
6159	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6160};
6161
6162static struct gdsc gcc_usb4_0_gdsc = {
6163	.gdscr = 0x9f004,
6164	.en_rest_wait_val = 0x2,
6165	.en_few_wait_val = 0x2,
6166	.clk_dis_wait_val = 0xf,
6167	.pd = {
6168		.name = "gcc_usb4_0_gdsc",
6169	},
6170	.pwrsts = PWRSTS_OFF_ON,
6171	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6172};
6173
6174static struct gdsc gcc_usb4_1_gdsc = {
6175	.gdscr = 0x2b004,
6176	.en_rest_wait_val = 0x2,
6177	.en_few_wait_val = 0x2,
6178	.clk_dis_wait_val = 0xf,
6179	.pd = {
6180		.name = "gcc_usb4_1_gdsc",
6181	},
6182	.pwrsts = PWRSTS_OFF_ON,
6183	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6184};
6185
6186static struct gdsc gcc_usb4_2_gdsc = {
6187	.gdscr = 0x11004,
6188	.en_rest_wait_val = 0x2,
6189	.en_few_wait_val = 0x2,
6190	.clk_dis_wait_val = 0xf,
6191	.pd = {
6192		.name = "gcc_usb4_2_gdsc",
6193	},
6194	.pwrsts = PWRSTS_OFF_ON,
6195	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6196};
6197
6198static struct gdsc gcc_usb_0_phy_gdsc = {
6199	.gdscr = 0x50024,
6200	.en_rest_wait_val = 0x2,
6201	.en_few_wait_val = 0x2,
6202	.clk_dis_wait_val = 0x2,
6203	.pd = {
6204		.name = "gcc_usb_0_phy_gdsc",
6205	},
6206	.pwrsts = PWRSTS_RET_ON,
6207	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6208};
6209
6210static struct gdsc gcc_usb_1_phy_gdsc = {
6211	.gdscr = 0x2a024,
6212	.en_rest_wait_val = 0x2,
6213	.en_few_wait_val = 0x2,
6214	.clk_dis_wait_val = 0x2,
6215	.pd = {
6216		.name = "gcc_usb_1_phy_gdsc",
6217	},
6218	.pwrsts = PWRSTS_RET_ON,
6219	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6220};
6221
6222static struct gdsc gcc_usb_2_phy_gdsc = {
6223	.gdscr = 0xa3024,
6224	.en_rest_wait_val = 0x2,
6225	.en_few_wait_val = 0x2,
6226	.clk_dis_wait_val = 0x2,
6227	.pd = {
6228		.name = "gcc_usb_2_phy_gdsc",
6229	},
6230	.pwrsts = PWRSTS_RET_ON,
6231	.flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
6232};
6233
6234static struct clk_regmap *gcc_x1e80100_clocks[] = {
6235	[GCC_AGGRE_NOC_USB_NORTH_AXI_CLK] = &gcc_aggre_noc_usb_north_axi_clk.clkr,
6236	[GCC_AGGRE_NOC_USB_SOUTH_AXI_CLK] = &gcc_aggre_noc_usb_south_axi_clk.clkr,
6237	[GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
6238	[GCC_AGGRE_USB2_PRIM_AXI_CLK] = &gcc_aggre_usb2_prim_axi_clk.clkr,
6239	[GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr,
6240	[GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
6241	[GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
6242	[GCC_AGGRE_USB3_TERT_AXI_CLK] = &gcc_aggre_usb3_tert_axi_clk.clkr,
6243	[GCC_AGGRE_USB4_0_AXI_CLK] = &gcc_aggre_usb4_0_axi_clk.clkr,
6244	[GCC_AGGRE_USB4_1_AXI_CLK] = &gcc_aggre_usb4_1_axi_clk.clkr,
6245	[GCC_AGGRE_USB4_2_AXI_CLK] = &gcc_aggre_usb4_2_axi_clk.clkr,
6246	[GCC_AGGRE_USB_NOC_AXI_CLK] = &gcc_aggre_usb_noc_axi_clk.clkr,
6247	[GCC_AV1E_AHB_CLK] = &gcc_av1e_ahb_clk.clkr,
6248	[GCC_AV1E_AXI_CLK] = &gcc_av1e_axi_clk.clkr,
6249	[GCC_AV1E_XO_CLK] = &gcc_av1e_xo_clk.clkr,
6250	[GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
6251	[GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
6252	[GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
6253	[GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr,
6254	[GCC_CFG_NOC_PCIE_ANOC_NORTH_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_north_ahb_clk.clkr,
6255	[GCC_CFG_NOC_PCIE_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_south_ahb_clk.clkr,
6256	[GCC_CFG_NOC_USB2_PRIM_AXI_CLK] = &gcc_cfg_noc_usb2_prim_axi_clk.clkr,
6257	[GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr,
6258	[GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
6259	[GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
6260	[GCC_CFG_NOC_USB3_TERT_AXI_CLK] = &gcc_cfg_noc_usb3_tert_axi_clk.clkr,
6261	[GCC_CFG_NOC_USB_ANOC_AHB_CLK] = &gcc_cfg_noc_usb_anoc_ahb_clk.clkr,
6262	[GCC_CFG_NOC_USB_ANOC_NORTH_AHB_CLK] = &gcc_cfg_noc_usb_anoc_north_ahb_clk.clkr,
6263	[GCC_CFG_NOC_USB_ANOC_SOUTH_AHB_CLK] = &gcc_cfg_noc_usb_anoc_south_ahb_clk.clkr,
6264	[GCC_CNOC_PCIE1_TUNNEL_CLK] = &gcc_cnoc_pcie1_tunnel_clk.clkr,
6265	[GCC_CNOC_PCIE2_TUNNEL_CLK] = &gcc_cnoc_pcie2_tunnel_clk.clkr,
6266	[GCC_CNOC_PCIE_NORTH_SF_AXI_CLK] = &gcc_cnoc_pcie_north_sf_axi_clk.clkr,
6267	[GCC_CNOC_PCIE_SOUTH_SF_AXI_CLK] = &gcc_cnoc_pcie_south_sf_axi_clk.clkr,
6268	[GCC_CNOC_PCIE_TUNNEL_CLK] = &gcc_cnoc_pcie_tunnel_clk.clkr,
6269	[GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
6270	[GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
6271	[GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr,
6272	[GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
6273	[GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
6274	[GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
6275	[GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
6276	[GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
6277	[GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
6278	[GCC_GPLL0] = &gcc_gpll0.clkr,
6279	[GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
6280	[GCC_GPLL4] = &gcc_gpll4.clkr,
6281	[GCC_GPLL7] = &gcc_gpll7.clkr,
6282	[GCC_GPLL8] = &gcc_gpll8.clkr,
6283	[GCC_GPLL9] = &gcc_gpll9.clkr,
6284	[GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr,
6285	[GCC_GPU_GPLL0_CPH_CLK_SRC] = &gcc_gpu_gpll0_cph_clk_src.clkr,
6286	[GCC_GPU_GPLL0_DIV_CPH_CLK_SRC] = &gcc_gpu_gpll0_div_cph_clk_src.clkr,
6287	[GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
6288	[GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
6289	[GCC_PCIE0_PHY_RCHNG_CLK] = &gcc_pcie0_phy_rchng_clk.clkr,
6290	[GCC_PCIE1_PHY_RCHNG_CLK] = &gcc_pcie1_phy_rchng_clk.clkr,
6291	[GCC_PCIE2_PHY_RCHNG_CLK] = &gcc_pcie2_phy_rchng_clk.clkr,
6292	[GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
6293	[GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
6294	[GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
6295	[GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
6296	[GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
6297	[GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
6298	[GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
6299	[GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
6300	[GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
6301	[GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
6302	[GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
6303	[GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
6304	[GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
6305	[GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
6306	[GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
6307	[GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
6308	[GCC_PCIE_2_AUX_CLK] = &gcc_pcie_2_aux_clk.clkr,
6309	[GCC_PCIE_2_AUX_CLK_SRC] = &gcc_pcie_2_aux_clk_src.clkr,
6310	[GCC_PCIE_2_CFG_AHB_CLK] = &gcc_pcie_2_cfg_ahb_clk.clkr,
6311	[GCC_PCIE_2_MSTR_AXI_CLK] = &gcc_pcie_2_mstr_axi_clk.clkr,
6312	[GCC_PCIE_2_PHY_RCHNG_CLK_SRC] = &gcc_pcie_2_phy_rchng_clk_src.clkr,
6313	[GCC_PCIE_2_PIPE_CLK] = &gcc_pcie_2_pipe_clk.clkr,
6314	[GCC_PCIE_2_SLV_AXI_CLK] = &gcc_pcie_2_slv_axi_clk.clkr,
6315	[GCC_PCIE_2_SLV_Q2A_AXI_CLK] = &gcc_pcie_2_slv_q2a_axi_clk.clkr,
6316	[GCC_PCIE_3_AUX_CLK] = &gcc_pcie_3_aux_clk.clkr,
6317	[GCC_PCIE_3_AUX_CLK_SRC] = &gcc_pcie_3_aux_clk_src.clkr,
6318	[GCC_PCIE_3_CFG_AHB_CLK] = &gcc_pcie_3_cfg_ahb_clk.clkr,
6319	[GCC_PCIE_3_MSTR_AXI_CLK] = &gcc_pcie_3_mstr_axi_clk.clkr,
6320	[GCC_PCIE_3_PHY_AUX_CLK] = &gcc_pcie_3_phy_aux_clk.clkr,
6321	[GCC_PCIE_3_PHY_RCHNG_CLK] = &gcc_pcie_3_phy_rchng_clk.clkr,
6322	[GCC_PCIE_3_PHY_RCHNG_CLK_SRC] = &gcc_pcie_3_phy_rchng_clk_src.clkr,
6323	[GCC_PCIE_3_PIPE_CLK] = &gcc_pcie_3_pipe_clk.clkr,
6324	[GCC_PCIE_3_PIPE_CLK_SRC] = &gcc_pcie_3_pipe_clk_src.clkr,
6325	[GCC_PCIE_3_PIPE_DIV_CLK_SRC] = &gcc_pcie_3_pipe_div_clk_src.clkr,
6326	[GCC_PCIE_3_PIPEDIV2_CLK] = &gcc_pcie_3_pipediv2_clk.clkr,
6327	[GCC_PCIE_3_SLV_AXI_CLK] = &gcc_pcie_3_slv_axi_clk.clkr,
6328	[GCC_PCIE_3_SLV_Q2A_AXI_CLK] = &gcc_pcie_3_slv_q2a_axi_clk.clkr,
6329	[GCC_PCIE_4_AUX_CLK] = &gcc_pcie_4_aux_clk.clkr,
6330	[GCC_PCIE_4_AUX_CLK_SRC] = &gcc_pcie_4_aux_clk_src.clkr,
6331	[GCC_PCIE_4_CFG_AHB_CLK] = &gcc_pcie_4_cfg_ahb_clk.clkr,
6332	[GCC_PCIE_4_MSTR_AXI_CLK] = &gcc_pcie_4_mstr_axi_clk.clkr,
6333	[GCC_PCIE_4_PHY_RCHNG_CLK] = &gcc_pcie_4_phy_rchng_clk.clkr,
6334	[GCC_PCIE_4_PHY_RCHNG_CLK_SRC] = &gcc_pcie_4_phy_rchng_clk_src.clkr,
6335	[GCC_PCIE_4_PIPE_CLK] = &gcc_pcie_4_pipe_clk.clkr,
6336	[GCC_PCIE_4_PIPE_CLK_SRC] = &gcc_pcie_4_pipe_clk_src.clkr,
6337	[GCC_PCIE_4_PIPE_DIV_CLK_SRC] = &gcc_pcie_4_pipe_div_clk_src.clkr,
6338	[GCC_PCIE_4_PIPEDIV2_CLK] = &gcc_pcie_4_pipediv2_clk.clkr,
6339	[GCC_PCIE_4_SLV_AXI_CLK] = &gcc_pcie_4_slv_axi_clk.clkr,
6340	[GCC_PCIE_4_SLV_Q2A_AXI_CLK] = &gcc_pcie_4_slv_q2a_axi_clk.clkr,
6341	[GCC_PCIE_5_AUX_CLK] = &gcc_pcie_5_aux_clk.clkr,
6342	[GCC_PCIE_5_AUX_CLK_SRC] = &gcc_pcie_5_aux_clk_src.clkr,
6343	[GCC_PCIE_5_CFG_AHB_CLK] = &gcc_pcie_5_cfg_ahb_clk.clkr,
6344	[GCC_PCIE_5_MSTR_AXI_CLK] = &gcc_pcie_5_mstr_axi_clk.clkr,
6345	[GCC_PCIE_5_PHY_RCHNG_CLK] = &gcc_pcie_5_phy_rchng_clk.clkr,
6346	[GCC_PCIE_5_PHY_RCHNG_CLK_SRC] = &gcc_pcie_5_phy_rchng_clk_src.clkr,
6347	[GCC_PCIE_5_PIPE_CLK] = &gcc_pcie_5_pipe_clk.clkr,
6348	[GCC_PCIE_5_PIPE_CLK_SRC] = &gcc_pcie_5_pipe_clk_src.clkr,
6349	[GCC_PCIE_5_PIPE_DIV_CLK_SRC] = &gcc_pcie_5_pipe_div_clk_src.clkr,
6350	[GCC_PCIE_5_PIPEDIV2_CLK] = &gcc_pcie_5_pipediv2_clk.clkr,
6351	[GCC_PCIE_5_SLV_AXI_CLK] = &gcc_pcie_5_slv_axi_clk.clkr,
6352	[GCC_PCIE_5_SLV_Q2A_AXI_CLK] = &gcc_pcie_5_slv_q2a_axi_clk.clkr,
6353	[GCC_PCIE_6A_AUX_CLK] = &gcc_pcie_6a_aux_clk.clkr,
6354	[GCC_PCIE_6A_AUX_CLK_SRC] = &gcc_pcie_6a_aux_clk_src.clkr,
6355	[GCC_PCIE_6A_CFG_AHB_CLK] = &gcc_pcie_6a_cfg_ahb_clk.clkr,
6356	[GCC_PCIE_6A_MSTR_AXI_CLK] = &gcc_pcie_6a_mstr_axi_clk.clkr,
6357	[GCC_PCIE_6A_PHY_AUX_CLK] = &gcc_pcie_6a_phy_aux_clk.clkr,
6358	[GCC_PCIE_6A_PHY_RCHNG_CLK] = &gcc_pcie_6a_phy_rchng_clk.clkr,
6359	[GCC_PCIE_6A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_6a_phy_rchng_clk_src.clkr,
6360	[GCC_PCIE_6A_PIPE_CLK] = &gcc_pcie_6a_pipe_clk.clkr,
6361	[GCC_PCIE_6A_PIPE_CLK_SRC] = &gcc_pcie_6a_pipe_clk_src.clkr,
6362	[GCC_PCIE_6A_PIPE_DIV_CLK_SRC] = &gcc_pcie_6a_pipe_div_clk_src.clkr,
6363	[GCC_PCIE_6A_PIPEDIV2_CLK] = &gcc_pcie_6a_pipediv2_clk.clkr,
6364	[GCC_PCIE_6A_SLV_AXI_CLK] = &gcc_pcie_6a_slv_axi_clk.clkr,
6365	[GCC_PCIE_6A_SLV_Q2A_AXI_CLK] = &gcc_pcie_6a_slv_q2a_axi_clk.clkr,
6366	[GCC_PCIE_6B_AUX_CLK] = &gcc_pcie_6b_aux_clk.clkr,
6367	[GCC_PCIE_6B_AUX_CLK_SRC] = &gcc_pcie_6b_aux_clk_src.clkr,
6368	[GCC_PCIE_6B_CFG_AHB_CLK] = &gcc_pcie_6b_cfg_ahb_clk.clkr,
6369	[GCC_PCIE_6B_MSTR_AXI_CLK] = &gcc_pcie_6b_mstr_axi_clk.clkr,
6370	[GCC_PCIE_6B_PHY_AUX_CLK] = &gcc_pcie_6b_phy_aux_clk.clkr,
6371	[GCC_PCIE_6B_PHY_RCHNG_CLK] = &gcc_pcie_6b_phy_rchng_clk.clkr,
6372	[GCC_PCIE_6B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_6b_phy_rchng_clk_src.clkr,
6373	[GCC_PCIE_6B_PIPE_CLK] = &gcc_pcie_6b_pipe_clk.clkr,
6374	[GCC_PCIE_6B_PIPE_CLK_SRC] = &gcc_pcie_6b_pipe_clk_src.clkr,
6375	[GCC_PCIE_6B_PIPE_DIV_CLK_SRC] = &gcc_pcie_6b_pipe_div_clk_src.clkr,
6376	[GCC_PCIE_6B_PIPEDIV2_CLK] = &gcc_pcie_6b_pipediv2_clk.clkr,
6377	[GCC_PCIE_6B_SLV_AXI_CLK] = &gcc_pcie_6b_slv_axi_clk.clkr,
6378	[GCC_PCIE_6B_SLV_Q2A_AXI_CLK] = &gcc_pcie_6b_slv_q2a_axi_clk.clkr,
6379	[GCC_PCIE_RSCC_AHB_CLK] = &gcc_pcie_rscc_ahb_clk.clkr,
6380	[GCC_PCIE_RSCC_XO_CLK] = &gcc_pcie_rscc_xo_clk.clkr,
6381	[GCC_PCIE_RSCC_XO_CLK_SRC] = &gcc_pcie_rscc_xo_clk_src.clkr,
6382	[GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
6383	[GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
6384	[GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
6385	[GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
6386	[GCC_QMIP_AV1E_AHB_CLK] = &gcc_qmip_av1e_ahb_clk.clkr,
6387	[GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
6388	[GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
6389	[GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
6390	[GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr,
6391	[GCC_QMIP_VIDEO_CV_CPU_AHB_CLK] = &gcc_qmip_video_cv_cpu_ahb_clk.clkr,
6392	[GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
6393	[GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr,
6394	[GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
6395	[GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
6396	[GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
6397	[GCC_QUPV3_WRAP0_QSPI_S2_CLK] = &gcc_qupv3_wrap0_qspi_s2_clk.clkr,
6398	[GCC_QUPV3_WRAP0_QSPI_S3_CLK] = &gcc_qupv3_wrap0_qspi_s3_clk.clkr,
6399	[GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
6400	[GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
6401	[GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
6402	[GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
6403	[GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
6404	[GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
6405	[GCC_QUPV3_WRAP0_S2_DIV_CLK_SRC] = &gcc_qupv3_wrap0_s2_div_clk_src.clkr,
6406	[GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
6407	[GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
6408	[GCC_QUPV3_WRAP0_S3_DIV_CLK_SRC] = &gcc_qupv3_wrap0_s3_div_clk_src.clkr,
6409	[GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
6410	[GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
6411	[GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
6412	[GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
6413	[GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
6414	[GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
6415	[GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
6416	[GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
6417	[GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
6418	[GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
6419	[GCC_QUPV3_WRAP1_QSPI_S2_CLK] = &gcc_qupv3_wrap1_qspi_s2_clk.clkr,
6420	[GCC_QUPV3_WRAP1_QSPI_S3_CLK] = &gcc_qupv3_wrap1_qspi_s3_clk.clkr,
6421	[GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
6422	[GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
6423	[GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
6424	[GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
6425	[GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
6426	[GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
6427	[GCC_QUPV3_WRAP1_S2_DIV_CLK_SRC] = &gcc_qupv3_wrap1_s2_div_clk_src.clkr,
6428	[GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
6429	[GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
6430	[GCC_QUPV3_WRAP1_S3_DIV_CLK_SRC] = &gcc_qupv3_wrap1_s3_div_clk_src.clkr,
6431	[GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
6432	[GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
6433	[GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
6434	[GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
6435	[GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
6436	[GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
6437	[GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr,
6438	[GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr,
6439	[GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
6440	[GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
6441	[GCC_QUPV3_WRAP2_QSPI_S2_CLK] = &gcc_qupv3_wrap2_qspi_s2_clk.clkr,
6442	[GCC_QUPV3_WRAP2_QSPI_S3_CLK] = &gcc_qupv3_wrap2_qspi_s3_clk.clkr,
6443	[GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
6444	[GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
6445	[GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
6446	[GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
6447	[GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
6448	[GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
6449	[GCC_QUPV3_WRAP2_S2_DIV_CLK_SRC] = &gcc_qupv3_wrap2_s2_div_clk_src.clkr,
6450	[GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
6451	[GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
6452	[GCC_QUPV3_WRAP2_S3_DIV_CLK_SRC] = &gcc_qupv3_wrap2_s3_div_clk_src.clkr,
6453	[GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
6454	[GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
6455	[GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
6456	[GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
6457	[GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
6458	[GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
6459	[GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr,
6460	[GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr,
6461	[GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
6462	[GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
6463	[GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
6464	[GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
6465	[GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
6466	[GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
6467	[GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
6468	[GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
6469	[GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
6470	[GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr,
6471	[GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr,
6472	[GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr,
6473	[GCC_SYS_NOC_USB_AXI_CLK] = &gcc_sys_noc_usb_axi_clk.clkr,
6474	[GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
6475	[GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
6476	[GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
6477	[GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
6478	[GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
6479	[GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
6480	[GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
6481	[GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
6482	[GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
6483	[GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
6484	[GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
6485	[GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
6486	[GCC_USB20_MASTER_CLK] = &gcc_usb20_master_clk.clkr,
6487	[GCC_USB20_MASTER_CLK_SRC] = &gcc_usb20_master_clk_src.clkr,
6488	[GCC_USB20_MOCK_UTMI_CLK] = &gcc_usb20_mock_utmi_clk.clkr,
6489	[GCC_USB20_MOCK_UTMI_CLK_SRC] = &gcc_usb20_mock_utmi_clk_src.clkr,
6490	[GCC_USB20_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb20_mock_utmi_postdiv_clk_src.clkr,
6491	[GCC_USB20_SLEEP_CLK] = &gcc_usb20_sleep_clk.clkr,
6492	[GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr,
6493	[GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr,
6494	[GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr,
6495	[GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr,
6496	[GCC_USB30_MP_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_mp_mock_utmi_postdiv_clk_src.clkr,
6497	[GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr,
6498	[GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
6499	[GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
6500	[GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
6501	[GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
6502	[GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
6503	[GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
6504	[GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
6505	[GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
6506	[GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
6507	[GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
6508	[GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
6509	[GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
6510	[GCC_USB30_TERT_MASTER_CLK] = &gcc_usb30_tert_master_clk.clkr,
6511	[GCC_USB30_TERT_MASTER_CLK_SRC] = &gcc_usb30_tert_master_clk_src.clkr,
6512	[GCC_USB30_TERT_MOCK_UTMI_CLK] = &gcc_usb30_tert_mock_utmi_clk.clkr,
6513	[GCC_USB30_TERT_MOCK_UTMI_CLK_SRC] = &gcc_usb30_tert_mock_utmi_clk_src.clkr,
6514	[GCC_USB30_TERT_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_tert_mock_utmi_postdiv_clk_src.clkr,
6515	[GCC_USB30_TERT_SLEEP_CLK] = &gcc_usb30_tert_sleep_clk.clkr,
6516	[GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr,
6517	[GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr,
6518	[GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr,
6519	[GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr,
6520	[GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr,
6521	[GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
6522	[GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
6523	[GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
6524	[GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
6525	[GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
6526	[GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
6527	[GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
6528	[GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
6529	[GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
6530	[GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
6531	[GCC_USB3_TERT_PHY_AUX_CLK] = &gcc_usb3_tert_phy_aux_clk.clkr,
6532	[GCC_USB3_TERT_PHY_AUX_CLK_SRC] = &gcc_usb3_tert_phy_aux_clk_src.clkr,
6533	[GCC_USB3_TERT_PHY_COM_AUX_CLK] = &gcc_usb3_tert_phy_com_aux_clk.clkr,
6534	[GCC_USB3_TERT_PHY_PIPE_CLK] = &gcc_usb3_tert_phy_pipe_clk.clkr,
6535	[GCC_USB3_TERT_PHY_PIPE_CLK_SRC] = &gcc_usb3_tert_phy_pipe_clk_src.clkr,
6536	[GCC_USB4_0_CFG_AHB_CLK] = &gcc_usb4_0_cfg_ahb_clk.clkr,
6537	[GCC_USB4_0_DP0_CLK] = &gcc_usb4_0_dp0_clk.clkr,
6538	[GCC_USB4_0_DP1_CLK] = &gcc_usb4_0_dp1_clk.clkr,
6539	[GCC_USB4_0_MASTER_CLK] = &gcc_usb4_0_master_clk.clkr,
6540	[GCC_USB4_0_MASTER_CLK_SRC] = &gcc_usb4_0_master_clk_src.clkr,
6541	[GCC_USB4_0_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_0_phy_p2rr2p_pipe_clk.clkr,
6542	[GCC_USB4_0_PHY_PCIE_PIPE_CLK] = &gcc_usb4_0_phy_pcie_pipe_clk.clkr,
6543	[GCC_USB4_0_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_0_phy_pcie_pipe_clk_src.clkr,
6544	[GCC_USB4_0_PHY_RX0_CLK] = &gcc_usb4_0_phy_rx0_clk.clkr,
6545	[GCC_USB4_0_PHY_RX1_CLK] = &gcc_usb4_0_phy_rx1_clk.clkr,
6546	[GCC_USB4_0_PHY_USB_PIPE_CLK] = &gcc_usb4_0_phy_usb_pipe_clk.clkr,
6547	[GCC_USB4_0_SB_IF_CLK] = &gcc_usb4_0_sb_if_clk.clkr,
6548	[GCC_USB4_0_SB_IF_CLK_SRC] = &gcc_usb4_0_sb_if_clk_src.clkr,
6549	[GCC_USB4_0_SYS_CLK] = &gcc_usb4_0_sys_clk.clkr,
6550	[GCC_USB4_0_TMU_CLK] = &gcc_usb4_0_tmu_clk.clkr,
6551	[GCC_USB4_0_TMU_CLK_SRC] = &gcc_usb4_0_tmu_clk_src.clkr,
6552	[GCC_USB4_1_CFG_AHB_CLK] = &gcc_usb4_1_cfg_ahb_clk.clkr,
6553	[GCC_USB4_1_DP0_CLK] = &gcc_usb4_1_dp0_clk.clkr,
6554	[GCC_USB4_1_DP1_CLK] = &gcc_usb4_1_dp1_clk.clkr,
6555	[GCC_USB4_1_MASTER_CLK] = &gcc_usb4_1_master_clk.clkr,
6556	[GCC_USB4_1_MASTER_CLK_SRC] = &gcc_usb4_1_master_clk_src.clkr,
6557	[GCC_USB4_1_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_1_phy_p2rr2p_pipe_clk.clkr,
6558	[GCC_USB4_1_PHY_PCIE_PIPE_CLK] = &gcc_usb4_1_phy_pcie_pipe_clk.clkr,
6559	[GCC_USB4_1_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_1_phy_pcie_pipe_clk_src.clkr,
6560	[GCC_USB4_1_PHY_RX0_CLK] = &gcc_usb4_1_phy_rx0_clk.clkr,
6561	[GCC_USB4_1_PHY_RX1_CLK] = &gcc_usb4_1_phy_rx1_clk.clkr,
6562	[GCC_USB4_1_PHY_USB_PIPE_CLK] = &gcc_usb4_1_phy_usb_pipe_clk.clkr,
6563	[GCC_USB4_1_SB_IF_CLK] = &gcc_usb4_1_sb_if_clk.clkr,
6564	[GCC_USB4_1_SB_IF_CLK_SRC] = &gcc_usb4_1_sb_if_clk_src.clkr,
6565	[GCC_USB4_1_SYS_CLK] = &gcc_usb4_1_sys_clk.clkr,
6566	[GCC_USB4_1_TMU_CLK] = &gcc_usb4_1_tmu_clk.clkr,
6567	[GCC_USB4_1_TMU_CLK_SRC] = &gcc_usb4_1_tmu_clk_src.clkr,
6568	[GCC_USB4_2_CFG_AHB_CLK] = &gcc_usb4_2_cfg_ahb_clk.clkr,
6569	[GCC_USB4_2_DP0_CLK] = &gcc_usb4_2_dp0_clk.clkr,
6570	[GCC_USB4_2_DP1_CLK] = &gcc_usb4_2_dp1_clk.clkr,
6571	[GCC_USB4_2_MASTER_CLK] = &gcc_usb4_2_master_clk.clkr,
6572	[GCC_USB4_2_MASTER_CLK_SRC] = &gcc_usb4_2_master_clk_src.clkr,
6573	[GCC_USB4_2_PHY_P2RR2P_PIPE_CLK] = &gcc_usb4_2_phy_p2rr2p_pipe_clk.clkr,
6574	[GCC_USB4_2_PHY_PCIE_PIPE_CLK] = &gcc_usb4_2_phy_pcie_pipe_clk.clkr,
6575	[GCC_USB4_2_PHY_PCIE_PIPE_CLK_SRC] = &gcc_usb4_2_phy_pcie_pipe_clk_src.clkr,
6576	[GCC_USB4_2_PHY_RX0_CLK] = &gcc_usb4_2_phy_rx0_clk.clkr,
6577	[GCC_USB4_2_PHY_RX1_CLK] = &gcc_usb4_2_phy_rx1_clk.clkr,
6578	[GCC_USB4_2_PHY_USB_PIPE_CLK] = &gcc_usb4_2_phy_usb_pipe_clk.clkr,
6579	[GCC_USB4_2_SB_IF_CLK] = &gcc_usb4_2_sb_if_clk.clkr,
6580	[GCC_USB4_2_SB_IF_CLK_SRC] = &gcc_usb4_2_sb_if_clk_src.clkr,
6581	[GCC_USB4_2_SYS_CLK] = &gcc_usb4_2_sys_clk.clkr,
6582	[GCC_USB4_2_TMU_CLK] = &gcc_usb4_2_tmu_clk.clkr,
6583	[GCC_USB4_2_TMU_CLK_SRC] = &gcc_usb4_2_tmu_clk_src.clkr,
6584	[GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
6585	[GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
6586};
6587
6588static struct gdsc *gcc_x1e80100_gdscs[] = {
6589	[GCC_PCIE_0_TUNNEL_GDSC] = &gcc_pcie_0_tunnel_gdsc,
6590	[GCC_PCIE_1_TUNNEL_GDSC] = &gcc_pcie_1_tunnel_gdsc,
6591	[GCC_PCIE_2_TUNNEL_GDSC] = &gcc_pcie_2_tunnel_gdsc,
6592	[GCC_PCIE_3_GDSC] = &gcc_pcie_3_gdsc,
6593	[GCC_PCIE_3_PHY_GDSC] = &gcc_pcie_3_phy_gdsc,
6594	[GCC_PCIE_4_GDSC] = &gcc_pcie_4_gdsc,
6595	[GCC_PCIE_4_PHY_GDSC] = &gcc_pcie_4_phy_gdsc,
6596	[GCC_PCIE_5_GDSC] = &gcc_pcie_5_gdsc,
6597	[GCC_PCIE_5_PHY_GDSC] = &gcc_pcie_5_phy_gdsc,
6598	[GCC_PCIE_6_PHY_GDSC] = &gcc_pcie_6_phy_gdsc,
6599	[GCC_PCIE_6A_GDSC] = &gcc_pcie_6a_gdsc,
6600	[GCC_PCIE_6B_GDSC] = &gcc_pcie_6b_gdsc,
6601	[GCC_UFS_MEM_PHY_GDSC] = &gcc_ufs_mem_phy_gdsc,
6602	[GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc,
6603	[GCC_USB20_PRIM_GDSC] = &gcc_usb20_prim_gdsc,
6604	[GCC_USB30_MP_GDSC] = &gcc_usb30_mp_gdsc,
6605	[GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc,
6606	[GCC_USB30_SEC_GDSC] = &gcc_usb30_sec_gdsc,
6607	[GCC_USB30_TERT_GDSC] = &gcc_usb30_tert_gdsc,
6608	[GCC_USB3_MP_SS0_PHY_GDSC] = &gcc_usb3_mp_ss0_phy_gdsc,
6609	[GCC_USB3_MP_SS1_PHY_GDSC] = &gcc_usb3_mp_ss1_phy_gdsc,
6610	[GCC_USB4_0_GDSC] = &gcc_usb4_0_gdsc,
6611	[GCC_USB4_1_GDSC] = &gcc_usb4_1_gdsc,
6612	[GCC_USB4_2_GDSC] = &gcc_usb4_2_gdsc,
6613	[GCC_USB_0_PHY_GDSC] = &gcc_usb_0_phy_gdsc,
6614	[GCC_USB_1_PHY_GDSC] = &gcc_usb_1_phy_gdsc,
6615	[GCC_USB_2_PHY_GDSC] = &gcc_usb_2_phy_gdsc,
6616};
6617
6618static const struct qcom_reset_map gcc_x1e80100_resets[] = {
6619	[GCC_AV1E_BCR] = { 0x4a000 },
6620	[GCC_CAMERA_BCR] = { 0x26000 },
6621	[GCC_DISPLAY_BCR] = { 0x27000 },
6622	[GCC_GPU_BCR] = { 0x71000 },
6623	[GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 },
6624	[GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 },
6625	[GCC_PCIE_0_PHY_BCR] = { 0x6c01c },
6626	[GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 },
6627	[GCC_PCIE_0_TUNNEL_BCR] = { 0xa0000 },
6628	[GCC_PCIE_1_LINK_DOWN_BCR] = { 0x8e014 },
6629	[GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x8e020 },
6630	[GCC_PCIE_1_PHY_BCR] = { 0x8e01c },
6631	[GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x8e024 },
6632	[GCC_PCIE_1_TUNNEL_BCR] = { 0x2c000 },
6633	[GCC_PCIE_2_LINK_DOWN_BCR] = { 0xa5014 },
6634	[GCC_PCIE_2_NOCSR_COM_PHY_BCR] = { 0xa5020 },
6635	[GCC_PCIE_2_PHY_BCR] = { 0xa501c },
6636	[GCC_PCIE_2_PHY_NOCSR_COM_PHY_BCR] = { 0xa5028 },
6637	[GCC_PCIE_2_TUNNEL_BCR] = { 0x13000 },
6638	[GCC_PCIE_3_BCR] = { 0x58000 },
6639	[GCC_PCIE_3_LINK_DOWN_BCR] = { 0xab014 },
6640	[GCC_PCIE_3_NOCSR_COM_PHY_BCR] = { 0xab020 },
6641	[GCC_PCIE_3_PHY_BCR] = { 0xab01c },
6642	[GCC_PCIE_3_PHY_NOCSR_COM_PHY_BCR] = { 0xab024 },
6643	[GCC_PCIE_4_BCR] = { 0x6b000 },
6644	[GCC_PCIE_4_LINK_DOWN_BCR] = { 0xb3014 },
6645	[GCC_PCIE_4_NOCSR_COM_PHY_BCR] = { 0xb3020 },
6646	[GCC_PCIE_4_PHY_BCR] = { 0xb301c },
6647	[GCC_PCIE_4_PHY_NOCSR_COM_PHY_BCR] = { 0xb3028 },
6648	[GCC_PCIE_5_BCR] = { 0x2f000 },
6649	[GCC_PCIE_5_LINK_DOWN_BCR] = { 0xaa014 },
6650	[GCC_PCIE_5_NOCSR_COM_PHY_BCR] = { 0xaa020 },
6651	[GCC_PCIE_5_PHY_BCR] = { 0xaa01c },
6652	[GCC_PCIE_5_PHY_NOCSR_COM_PHY_BCR] = { 0xaa028 },
6653	[GCC_PCIE_6A_BCR] = { 0x31000 },
6654	[GCC_PCIE_6A_LINK_DOWN_BCR] = { 0xac014 },
6655	[GCC_PCIE_6A_NOCSR_COM_PHY_BCR] = { 0xac020 },
6656	[GCC_PCIE_6A_PHY_BCR] = { 0xac01c },
6657	[GCC_PCIE_6A_PHY_NOCSR_COM_PHY_BCR] = { 0xac024 },
6658	[GCC_PCIE_6B_BCR] = { 0x8d000 },
6659	[GCC_PCIE_6B_LINK_DOWN_BCR] = { 0xb5014 },
6660	[GCC_PCIE_6B_NOCSR_COM_PHY_BCR] = { 0xb5020 },
6661	[GCC_PCIE_6B_PHY_BCR] = { 0xb501c },
6662	[GCC_PCIE_6B_PHY_NOCSR_COM_PHY_BCR] = { 0xb5024 },
6663	[GCC_PCIE_PHY_BCR] = { 0x6f000 },
6664	[GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c },
6665	[GCC_PCIE_PHY_COM_BCR] = { 0x6f010 },
6666	[GCC_PCIE_RSCC_BCR] = { 0xa4000 },
6667	[GCC_PDM_BCR] = { 0x33000 },
6668	[GCC_QUPV3_WRAPPER_0_BCR] = { 0x42000 },
6669	[GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 },
6670	[GCC_QUPV3_WRAPPER_2_BCR] = { 0x1e000 },
6671	[GCC_QUSB2PHY_HS0_MP_BCR] = { 0x1200c },
6672	[GCC_QUSB2PHY_HS1_MP_BCR] = { 0x12010 },
6673	[GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 },
6674	[GCC_QUSB2PHY_SEC_BCR] = { 0x12004 },
6675	[GCC_QUSB2PHY_TERT_BCR] = { 0x12008 },
6676	[GCC_QUSB2PHY_USB20_HS_BCR] = { 0x12014 },
6677	[GCC_SDCC2_BCR] = { 0x14000 },
6678	[GCC_SDCC4_BCR] = { 0x16000 },
6679	[GCC_UFS_PHY_BCR] = { 0x77000 },
6680	[GCC_USB20_PRIM_BCR] = { 0x29000 },
6681	[GCC_USB30_MP_BCR] = { 0x17000 },
6682	[GCC_USB30_PRIM_BCR] = { 0x39000 },
6683	[GCC_USB30_SEC_BCR] = { 0xa1000 },
6684	[GCC_USB30_TERT_BCR] = { 0xa2000 },
6685	[GCC_USB3_MP_SS0_PHY_BCR] = { 0x19008 },
6686	[GCC_USB3_MP_SS1_PHY_BCR] = { 0x54008 },
6687	[GCC_USB3_PHY_PRIM_BCR] = { 0x50000 },
6688	[GCC_USB3_PHY_SEC_BCR] = { 0x2a000 },
6689	[GCC_USB3_PHY_TERT_BCR] = { 0xa3000 },
6690	[GCC_USB3_UNIPHY_MP0_BCR] = { 0x19000 },
6691	[GCC_USB3_UNIPHY_MP1_BCR] = { 0x54000 },
6692	[GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 },
6693	[GCC_USB3PHY_PHY_SEC_BCR] = { 0x2a004 },
6694	[GCC_USB3PHY_PHY_TERT_BCR] = { 0xa3004 },
6695	[GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x19004 },
6696	[GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x54004 },
6697	[GCC_USB4_0_BCR] = { 0x9f000 },
6698	[GCC_USB4_0_DP0_PHY_PRIM_BCR] = { 0x50010 },
6699	[GCC_USB4_1_DP0_PHY_SEC_BCR] = { 0x2a010 },
6700	[GCC_USB4_2_DP0_PHY_TERT_BCR] = { 0xa3010 },
6701	[GCC_USB4_1_BCR] = { 0x2b000 },
6702	[GCC_USB4_2_BCR] = { 0x11000 },
6703	[GCC_USB_0_PHY_BCR] = { 0x50020 },
6704	[GCC_USB_1_PHY_BCR] = { 0x2a020 },
6705	[GCC_USB_2_PHY_BCR] = { 0xa3020 },
6706	[GCC_VIDEO_BCR] = { 0x32000 },
6707};
6708
6709static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
6710	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
6711	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
6712	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
6713	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
6714	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
6715	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
6716	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
6717	DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
6718	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
6719	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
6720	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
6721	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
6722	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
6723	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
6724	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
6725	DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src),
6726	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
6727	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
6728	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
6729	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
6730	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
6731	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
6732	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src),
6733	DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src),
6734};
6735
6736static const struct regmap_config gcc_x1e80100_regmap_config = {
6737	.reg_bits = 32,
6738	.reg_stride = 4,
6739	.val_bits = 32,
6740	.max_register = 0x1f41f0,
6741	.fast_io = true,
6742};
6743
6744static const struct qcom_cc_desc gcc_x1e80100_desc = {
6745	.config = &gcc_x1e80100_regmap_config,
6746	.clks = gcc_x1e80100_clocks,
6747	.num_clks = ARRAY_SIZE(gcc_x1e80100_clocks),
6748	.resets = gcc_x1e80100_resets,
6749	.num_resets = ARRAY_SIZE(gcc_x1e80100_resets),
6750	.gdscs = gcc_x1e80100_gdscs,
6751	.num_gdscs = ARRAY_SIZE(gcc_x1e80100_gdscs),
6752};
6753
6754static const struct of_device_id gcc_x1e80100_match_table[] = {
6755	{ .compatible = "qcom,x1e80100-gcc" },
6756	{ }
6757};
6758MODULE_DEVICE_TABLE(of, gcc_x1e80100_match_table);
6759
6760static int gcc_x1e80100_probe(struct platform_device *pdev)
6761{
6762	struct regmap *regmap;
6763	int ret;
6764
6765	regmap = qcom_cc_map(pdev, &gcc_x1e80100_desc);
6766	if (IS_ERR(regmap))
6767		return PTR_ERR(regmap);
6768
6769	ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
6770				       ARRAY_SIZE(gcc_dfs_clocks));
6771	if (ret)
6772		return ret;
6773
6774	/* Keep some clocks always-on */
6775	qcom_branch_set_clk_en(regmap, 0x26004); /* GCC_CAMERA_AHB_CLK */
6776	qcom_branch_set_clk_en(regmap, 0x26028); /* GCC_CAMERA_XO_CLK */
6777	qcom_branch_set_clk_en(regmap, 0x27004); /* GCC_DISP_AHB_CLK */
6778	qcom_branch_set_clk_en(regmap, 0x27018); /* GCC_DISP_XO_CLK */
6779	qcom_branch_set_clk_en(regmap, 0x32004); /* GCC_VIDEO_AHB_CLK */
6780	qcom_branch_set_clk_en(regmap, 0x32030); /* GCC_VIDEO_XO_CLK */
6781	qcom_branch_set_clk_en(regmap, 0x71004); /* GCC_GPU_CFG_AHB_CLK */
6782
6783	/* Clear GDSC_SLEEP_ENA_VOTE to stop votes being auto-removed in sleep. */
6784	regmap_write(regmap, 0x52224, 0x0);
6785
6786	return qcom_cc_really_probe(&pdev->dev, &gcc_x1e80100_desc, regmap);
6787}
6788
6789static struct platform_driver gcc_x1e80100_driver = {
6790	.probe = gcc_x1e80100_probe,
6791	.driver = {
6792		.name = "gcc-x1e80100",
6793		.of_match_table = gcc_x1e80100_match_table,
6794	},
6795};
6796
6797static int __init gcc_x1e80100_init(void)
6798{
6799	return platform_driver_register(&gcc_x1e80100_driver);
6800}
6801subsys_initcall(gcc_x1e80100_init);
6802
6803static void __exit gcc_x1e80100_exit(void)
6804{
6805	platform_driver_unregister(&gcc_x1e80100_driver);
6806}
6807module_exit(gcc_x1e80100_exit);
6808
6809MODULE_DESCRIPTION("QTI GCC X1E80100 Driver");
6810MODULE_LICENSE("GPL");