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