1*a4f780cdSTaniya Das // SPDX-License-Identifier: GPL-2.0-only 2*a4f780cdSTaniya Das /* 3*a4f780cdSTaniya Das * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 4*a4f780cdSTaniya Das */ 5*a4f780cdSTaniya Das 6*a4f780cdSTaniya Das #include <linux/clk-provider.h> 7*a4f780cdSTaniya Das #include <linux/mod_devicetable.h> 8*a4f780cdSTaniya Das #include <linux/module.h> 9*a4f780cdSTaniya Das #include <linux/platform_device.h> 10*a4f780cdSTaniya Das #include <linux/regmap.h> 11*a4f780cdSTaniya Das 12*a4f780cdSTaniya Das #include <dt-bindings/clock/qcom,nord-gcc.h> 13*a4f780cdSTaniya Das 14*a4f780cdSTaniya Das #include "clk-alpha-pll.h" 15*a4f780cdSTaniya Das #include "clk-branch.h" 16*a4f780cdSTaniya Das #include "clk-pll.h" 17*a4f780cdSTaniya Das #include "clk-rcg.h" 18*a4f780cdSTaniya Das #include "clk-regmap.h" 19*a4f780cdSTaniya Das #include "clk-regmap-divider.h" 20*a4f780cdSTaniya Das #include "clk-regmap-mux.h" 21*a4f780cdSTaniya Das #include "clk-regmap-phy-mux.h" 22*a4f780cdSTaniya Das #include "common.h" 23*a4f780cdSTaniya Das #include "gdsc.h" 24*a4f780cdSTaniya Das #include "reset.h" 25*a4f780cdSTaniya Das 26*a4f780cdSTaniya Das enum { 27*a4f780cdSTaniya Das DT_BI_TCXO, 28*a4f780cdSTaniya Das DT_SLEEP_CLK, 29*a4f780cdSTaniya Das DT_PCIE_A_PIPE_CLK, 30*a4f780cdSTaniya Das DT_PCIE_B_PIPE_CLK, 31*a4f780cdSTaniya Das DT_PCIE_C_PIPE_CLK, 32*a4f780cdSTaniya Das DT_PCIE_D_PIPE_CLK, 33*a4f780cdSTaniya Das }; 34*a4f780cdSTaniya Das 35*a4f780cdSTaniya Das enum { 36*a4f780cdSTaniya Das P_BI_TCXO, 37*a4f780cdSTaniya Das P_GCC_GPLL0_OUT_EVEN, 38*a4f780cdSTaniya Das P_GCC_GPLL0_OUT_MAIN, 39*a4f780cdSTaniya Das P_PCIE_A_PIPE_CLK, 40*a4f780cdSTaniya Das P_PCIE_B_PIPE_CLK, 41*a4f780cdSTaniya Das P_PCIE_C_PIPE_CLK, 42*a4f780cdSTaniya Das P_PCIE_D_PIPE_CLK, 43*a4f780cdSTaniya Das P_SLEEP_CLK, 44*a4f780cdSTaniya Das }; 45*a4f780cdSTaniya Das 46*a4f780cdSTaniya Das static struct clk_alpha_pll gcc_gpll0 = { 47*a4f780cdSTaniya Das .offset = 0x0, 48*a4f780cdSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE], 49*a4f780cdSTaniya Das .clkr = { 50*a4f780cdSTaniya Das .enable_reg = 0x9d020, 51*a4f780cdSTaniya Das .enable_mask = BIT(0), 52*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 53*a4f780cdSTaniya Das .name = "gcc_gpll0", 54*a4f780cdSTaniya Das .parent_data = &(const struct clk_parent_data) { 55*a4f780cdSTaniya Das .index = DT_BI_TCXO, 56*a4f780cdSTaniya Das }, 57*a4f780cdSTaniya Das .num_parents = 1, 58*a4f780cdSTaniya Das .ops = &clk_alpha_pll_fixed_lucid_ole_ops, 59*a4f780cdSTaniya Das }, 60*a4f780cdSTaniya Das }, 61*a4f780cdSTaniya Das }; 62*a4f780cdSTaniya Das 63*a4f780cdSTaniya Das static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = { 64*a4f780cdSTaniya Das { 0x1, 2 }, 65*a4f780cdSTaniya Das { } 66*a4f780cdSTaniya Das }; 67*a4f780cdSTaniya Das 68*a4f780cdSTaniya Das static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = { 69*a4f780cdSTaniya Das .offset = 0x0, 70*a4f780cdSTaniya Das .post_div_shift = 10, 71*a4f780cdSTaniya Das .post_div_table = post_div_table_gcc_gpll0_out_even, 72*a4f780cdSTaniya Das .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even), 73*a4f780cdSTaniya Das .width = 4, 74*a4f780cdSTaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE], 75*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 76*a4f780cdSTaniya Das .name = "gcc_gpll0_out_even", 77*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 78*a4f780cdSTaniya Das &gcc_gpll0.clkr.hw, 79*a4f780cdSTaniya Das }, 80*a4f780cdSTaniya Das .num_parents = 1, 81*a4f780cdSTaniya Das .ops = &clk_alpha_pll_postdiv_lucid_ole_ops, 82*a4f780cdSTaniya Das }, 83*a4f780cdSTaniya Das }; 84*a4f780cdSTaniya Das 85*a4f780cdSTaniya Das static const struct parent_map gcc_parent_map_0[] = { 86*a4f780cdSTaniya Das { P_BI_TCXO, 0 }, 87*a4f780cdSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 88*a4f780cdSTaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 89*a4f780cdSTaniya Das }; 90*a4f780cdSTaniya Das 91*a4f780cdSTaniya Das static const struct clk_parent_data gcc_parent_data_0[] = { 92*a4f780cdSTaniya Das { .index = DT_BI_TCXO }, 93*a4f780cdSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 94*a4f780cdSTaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 95*a4f780cdSTaniya Das }; 96*a4f780cdSTaniya Das 97*a4f780cdSTaniya Das static const struct parent_map gcc_parent_map_1[] = { 98*a4f780cdSTaniya Das { P_BI_TCXO, 0 }, 99*a4f780cdSTaniya Das { P_SLEEP_CLK, 5 }, 100*a4f780cdSTaniya Das }; 101*a4f780cdSTaniya Das 102*a4f780cdSTaniya Das static const struct clk_parent_data gcc_parent_data_1[] = { 103*a4f780cdSTaniya Das { .index = DT_BI_TCXO }, 104*a4f780cdSTaniya Das { .index = DT_SLEEP_CLK }, 105*a4f780cdSTaniya Das }; 106*a4f780cdSTaniya Das 107*a4f780cdSTaniya Das static const struct parent_map gcc_parent_map_2[] = { 108*a4f780cdSTaniya Das { P_BI_TCXO, 0 }, 109*a4f780cdSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 110*a4f780cdSTaniya Das { P_SLEEP_CLK, 5 }, 111*a4f780cdSTaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 112*a4f780cdSTaniya Das }; 113*a4f780cdSTaniya Das 114*a4f780cdSTaniya Das static const struct clk_parent_data gcc_parent_data_2[] = { 115*a4f780cdSTaniya Das { .index = DT_BI_TCXO }, 116*a4f780cdSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 117*a4f780cdSTaniya Das { .index = DT_SLEEP_CLK }, 118*a4f780cdSTaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 119*a4f780cdSTaniya Das }; 120*a4f780cdSTaniya Das 121*a4f780cdSTaniya Das static const struct parent_map gcc_parent_map_3[] = { 122*a4f780cdSTaniya Das { P_BI_TCXO, 0 }, 123*a4f780cdSTaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 124*a4f780cdSTaniya Das }; 125*a4f780cdSTaniya Das 126*a4f780cdSTaniya Das static const struct clk_parent_data gcc_parent_data_3[] = { 127*a4f780cdSTaniya Das { .index = DT_BI_TCXO }, 128*a4f780cdSTaniya Das { .hw = &gcc_gpll0.clkr.hw }, 129*a4f780cdSTaniya Das }; 130*a4f780cdSTaniya Das 131*a4f780cdSTaniya Das static struct clk_regmap_phy_mux gcc_pcie_a_pipe_clk_src = { 132*a4f780cdSTaniya Das .reg = 0x49094, 133*a4f780cdSTaniya Das .clkr = { 134*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 135*a4f780cdSTaniya Das .name = "gcc_pcie_a_pipe_clk_src", 136*a4f780cdSTaniya Das .parent_data = &(const struct clk_parent_data){ 137*a4f780cdSTaniya Das .index = DT_PCIE_A_PIPE_CLK, 138*a4f780cdSTaniya Das }, 139*a4f780cdSTaniya Das .num_parents = 1, 140*a4f780cdSTaniya Das .ops = &clk_regmap_phy_mux_ops, 141*a4f780cdSTaniya Das }, 142*a4f780cdSTaniya Das }, 143*a4f780cdSTaniya Das }; 144*a4f780cdSTaniya Das 145*a4f780cdSTaniya Das static struct clk_regmap_phy_mux gcc_pcie_b_pipe_clk_src = { 146*a4f780cdSTaniya Das .reg = 0x4a094, 147*a4f780cdSTaniya Das .clkr = { 148*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 149*a4f780cdSTaniya Das .name = "gcc_pcie_b_pipe_clk_src", 150*a4f780cdSTaniya Das .parent_data = &(const struct clk_parent_data){ 151*a4f780cdSTaniya Das .index = DT_PCIE_B_PIPE_CLK, 152*a4f780cdSTaniya Das }, 153*a4f780cdSTaniya Das .num_parents = 1, 154*a4f780cdSTaniya Das .ops = &clk_regmap_phy_mux_ops, 155*a4f780cdSTaniya Das }, 156*a4f780cdSTaniya Das }, 157*a4f780cdSTaniya Das }; 158*a4f780cdSTaniya Das 159*a4f780cdSTaniya Das static struct clk_regmap_phy_mux gcc_pcie_c_pipe_clk_src = { 160*a4f780cdSTaniya Das .reg = 0x4b094, 161*a4f780cdSTaniya Das .clkr = { 162*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 163*a4f780cdSTaniya Das .name = "gcc_pcie_c_pipe_clk_src", 164*a4f780cdSTaniya Das .parent_data = &(const struct clk_parent_data){ 165*a4f780cdSTaniya Das .index = DT_PCIE_C_PIPE_CLK, 166*a4f780cdSTaniya Das }, 167*a4f780cdSTaniya Das .num_parents = 1, 168*a4f780cdSTaniya Das .ops = &clk_regmap_phy_mux_ops, 169*a4f780cdSTaniya Das }, 170*a4f780cdSTaniya Das }, 171*a4f780cdSTaniya Das }; 172*a4f780cdSTaniya Das 173*a4f780cdSTaniya Das static struct clk_regmap_phy_mux gcc_pcie_d_pipe_clk_src = { 174*a4f780cdSTaniya Das .reg = 0x4c094, 175*a4f780cdSTaniya Das .clkr = { 176*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 177*a4f780cdSTaniya Das .name = "gcc_pcie_d_pipe_clk_src", 178*a4f780cdSTaniya Das .parent_data = &(const struct clk_parent_data){ 179*a4f780cdSTaniya Das .index = DT_PCIE_D_PIPE_CLK, 180*a4f780cdSTaniya Das }, 181*a4f780cdSTaniya Das .num_parents = 1, 182*a4f780cdSTaniya Das .ops = &clk_regmap_phy_mux_ops, 183*a4f780cdSTaniya Das }, 184*a4f780cdSTaniya Das }, 185*a4f780cdSTaniya Das }; 186*a4f780cdSTaniya Das 187*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = { 188*a4f780cdSTaniya Das F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0), 189*a4f780cdSTaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 190*a4f780cdSTaniya Das F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 191*a4f780cdSTaniya Das { } 192*a4f780cdSTaniya Das }; 193*a4f780cdSTaniya Das 194*a4f780cdSTaniya Das static struct clk_rcg2 gcc_gp1_clk_src = { 195*a4f780cdSTaniya Das .cmd_rcgr = 0x30004, 196*a4f780cdSTaniya Das .mnd_width = 16, 197*a4f780cdSTaniya Das .hid_width = 5, 198*a4f780cdSTaniya Das .parent_map = gcc_parent_map_2, 199*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 200*a4f780cdSTaniya Das .hw_clk_ctrl = true, 201*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 202*a4f780cdSTaniya Das .name = "gcc_gp1_clk_src", 203*a4f780cdSTaniya Das .parent_data = gcc_parent_data_2, 204*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 205*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 206*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 207*a4f780cdSTaniya Das }, 208*a4f780cdSTaniya Das }; 209*a4f780cdSTaniya Das 210*a4f780cdSTaniya Das static struct clk_rcg2 gcc_gp2_clk_src = { 211*a4f780cdSTaniya Das .cmd_rcgr = 0x31004, 212*a4f780cdSTaniya Das .mnd_width = 16, 213*a4f780cdSTaniya Das .hid_width = 5, 214*a4f780cdSTaniya Das .parent_map = gcc_parent_map_2, 215*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 216*a4f780cdSTaniya Das .hw_clk_ctrl = true, 217*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 218*a4f780cdSTaniya Das .name = "gcc_gp2_clk_src", 219*a4f780cdSTaniya Das .parent_data = gcc_parent_data_2, 220*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 221*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 222*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 223*a4f780cdSTaniya Das }, 224*a4f780cdSTaniya Das }; 225*a4f780cdSTaniya Das 226*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_a_aux_clk_src[] = { 227*a4f780cdSTaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 228*a4f780cdSTaniya Das { } 229*a4f780cdSTaniya Das }; 230*a4f780cdSTaniya Das 231*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_a_aux_clk_src = { 232*a4f780cdSTaniya Das .cmd_rcgr = 0x49098, 233*a4f780cdSTaniya Das .mnd_width = 16, 234*a4f780cdSTaniya Das .hid_width = 5, 235*a4f780cdSTaniya Das .parent_map = gcc_parent_map_1, 236*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 237*a4f780cdSTaniya Das .hw_clk_ctrl = true, 238*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 239*a4f780cdSTaniya Das .name = "gcc_pcie_a_aux_clk_src", 240*a4f780cdSTaniya Das .parent_data = gcc_parent_data_1, 241*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 242*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 243*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 244*a4f780cdSTaniya Das }, 245*a4f780cdSTaniya Das }; 246*a4f780cdSTaniya Das 247*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_a_phy_aux_clk_src = { 248*a4f780cdSTaniya Das .cmd_rcgr = 0x4d020, 249*a4f780cdSTaniya Das .mnd_width = 16, 250*a4f780cdSTaniya Das .hid_width = 5, 251*a4f780cdSTaniya Das .parent_map = gcc_parent_map_1, 252*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 253*a4f780cdSTaniya Das .hw_clk_ctrl = true, 254*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 255*a4f780cdSTaniya Das .name = "gcc_pcie_a_phy_aux_clk_src", 256*a4f780cdSTaniya Das .parent_data = gcc_parent_data_1, 257*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 258*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 259*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 260*a4f780cdSTaniya Das }, 261*a4f780cdSTaniya Das }; 262*a4f780cdSTaniya Das 263*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_pcie_a_phy_rchng_clk_src[] = { 264*a4f780cdSTaniya Das F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0), 265*a4f780cdSTaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 266*a4f780cdSTaniya Das { } 267*a4f780cdSTaniya Das }; 268*a4f780cdSTaniya Das 269*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_a_phy_rchng_clk_src = { 270*a4f780cdSTaniya Das .cmd_rcgr = 0x4907c, 271*a4f780cdSTaniya Das .mnd_width = 0, 272*a4f780cdSTaniya Das .hid_width = 5, 273*a4f780cdSTaniya Das .parent_map = gcc_parent_map_0, 274*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_phy_rchng_clk_src, 275*a4f780cdSTaniya Das .hw_clk_ctrl = true, 276*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 277*a4f780cdSTaniya Das .name = "gcc_pcie_a_phy_rchng_clk_src", 278*a4f780cdSTaniya Das .parent_data = gcc_parent_data_0, 279*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 280*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 281*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 282*a4f780cdSTaniya Das }, 283*a4f780cdSTaniya Das }; 284*a4f780cdSTaniya Das 285*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_b_aux_clk_src = { 286*a4f780cdSTaniya Das .cmd_rcgr = 0x4a098, 287*a4f780cdSTaniya Das .mnd_width = 16, 288*a4f780cdSTaniya Das .hid_width = 5, 289*a4f780cdSTaniya Das .parent_map = gcc_parent_map_1, 290*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 291*a4f780cdSTaniya Das .hw_clk_ctrl = true, 292*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 293*a4f780cdSTaniya Das .name = "gcc_pcie_b_aux_clk_src", 294*a4f780cdSTaniya Das .parent_data = gcc_parent_data_1, 295*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 296*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 297*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 298*a4f780cdSTaniya Das }, 299*a4f780cdSTaniya Das }; 300*a4f780cdSTaniya Das 301*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_b_phy_aux_clk_src = { 302*a4f780cdSTaniya Das .cmd_rcgr = 0x4e020, 303*a4f780cdSTaniya Das .mnd_width = 16, 304*a4f780cdSTaniya Das .hid_width = 5, 305*a4f780cdSTaniya Das .parent_map = gcc_parent_map_1, 306*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 307*a4f780cdSTaniya Das .hw_clk_ctrl = true, 308*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 309*a4f780cdSTaniya Das .name = "gcc_pcie_b_phy_aux_clk_src", 310*a4f780cdSTaniya Das .parent_data = gcc_parent_data_1, 311*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 312*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 313*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 314*a4f780cdSTaniya Das }, 315*a4f780cdSTaniya Das }; 316*a4f780cdSTaniya Das 317*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_b_phy_rchng_clk_src = { 318*a4f780cdSTaniya Das .cmd_rcgr = 0x4a07c, 319*a4f780cdSTaniya Das .mnd_width = 0, 320*a4f780cdSTaniya Das .hid_width = 5, 321*a4f780cdSTaniya Das .parent_map = gcc_parent_map_0, 322*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_phy_rchng_clk_src, 323*a4f780cdSTaniya Das .hw_clk_ctrl = true, 324*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 325*a4f780cdSTaniya Das .name = "gcc_pcie_b_phy_rchng_clk_src", 326*a4f780cdSTaniya Das .parent_data = gcc_parent_data_0, 327*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 328*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 329*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 330*a4f780cdSTaniya Das }, 331*a4f780cdSTaniya Das }; 332*a4f780cdSTaniya Das 333*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_c_aux_clk_src = { 334*a4f780cdSTaniya Das .cmd_rcgr = 0x4b098, 335*a4f780cdSTaniya Das .mnd_width = 16, 336*a4f780cdSTaniya Das .hid_width = 5, 337*a4f780cdSTaniya Das .parent_map = gcc_parent_map_1, 338*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 339*a4f780cdSTaniya Das .hw_clk_ctrl = true, 340*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 341*a4f780cdSTaniya Das .name = "gcc_pcie_c_aux_clk_src", 342*a4f780cdSTaniya Das .parent_data = gcc_parent_data_1, 343*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 344*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 345*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 346*a4f780cdSTaniya Das }, 347*a4f780cdSTaniya Das }; 348*a4f780cdSTaniya Das 349*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_c_phy_aux_clk_src = { 350*a4f780cdSTaniya Das .cmd_rcgr = 0x4f020, 351*a4f780cdSTaniya Das .mnd_width = 16, 352*a4f780cdSTaniya Das .hid_width = 5, 353*a4f780cdSTaniya Das .parent_map = gcc_parent_map_1, 354*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 355*a4f780cdSTaniya Das .hw_clk_ctrl = true, 356*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 357*a4f780cdSTaniya Das .name = "gcc_pcie_c_phy_aux_clk_src", 358*a4f780cdSTaniya Das .parent_data = gcc_parent_data_1, 359*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 360*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 361*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 362*a4f780cdSTaniya Das }, 363*a4f780cdSTaniya Das }; 364*a4f780cdSTaniya Das 365*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_c_phy_rchng_clk_src = { 366*a4f780cdSTaniya Das .cmd_rcgr = 0x4b07c, 367*a4f780cdSTaniya Das .mnd_width = 0, 368*a4f780cdSTaniya Das .hid_width = 5, 369*a4f780cdSTaniya Das .parent_map = gcc_parent_map_3, 370*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_phy_rchng_clk_src, 371*a4f780cdSTaniya Das .hw_clk_ctrl = true, 372*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 373*a4f780cdSTaniya Das .name = "gcc_pcie_c_phy_rchng_clk_src", 374*a4f780cdSTaniya Das .parent_data = gcc_parent_data_3, 375*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 376*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 377*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 378*a4f780cdSTaniya Das }, 379*a4f780cdSTaniya Das }; 380*a4f780cdSTaniya Das 381*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_d_aux_clk_src = { 382*a4f780cdSTaniya Das .cmd_rcgr = 0x4c098, 383*a4f780cdSTaniya Das .mnd_width = 16, 384*a4f780cdSTaniya Das .hid_width = 5, 385*a4f780cdSTaniya Das .parent_map = gcc_parent_map_1, 386*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 387*a4f780cdSTaniya Das .hw_clk_ctrl = true, 388*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 389*a4f780cdSTaniya Das .name = "gcc_pcie_d_aux_clk_src", 390*a4f780cdSTaniya Das .parent_data = gcc_parent_data_1, 391*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 392*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 393*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 394*a4f780cdSTaniya Das }, 395*a4f780cdSTaniya Das }; 396*a4f780cdSTaniya Das 397*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_d_phy_aux_clk_src = { 398*a4f780cdSTaniya Das .cmd_rcgr = 0x50020, 399*a4f780cdSTaniya Das .mnd_width = 16, 400*a4f780cdSTaniya Das .hid_width = 5, 401*a4f780cdSTaniya Das .parent_map = gcc_parent_map_1, 402*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 403*a4f780cdSTaniya Das .hw_clk_ctrl = true, 404*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 405*a4f780cdSTaniya Das .name = "gcc_pcie_d_phy_aux_clk_src", 406*a4f780cdSTaniya Das .parent_data = gcc_parent_data_1, 407*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 408*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 409*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 410*a4f780cdSTaniya Das }, 411*a4f780cdSTaniya Das }; 412*a4f780cdSTaniya Das 413*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_d_phy_rchng_clk_src = { 414*a4f780cdSTaniya Das .cmd_rcgr = 0x4c07c, 415*a4f780cdSTaniya Das .mnd_width = 0, 416*a4f780cdSTaniya Das .hid_width = 5, 417*a4f780cdSTaniya Das .parent_map = gcc_parent_map_3, 418*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_phy_rchng_clk_src, 419*a4f780cdSTaniya Das .hw_clk_ctrl = true, 420*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 421*a4f780cdSTaniya Das .name = "gcc_pcie_d_phy_rchng_clk_src", 422*a4f780cdSTaniya Das .parent_data = gcc_parent_data_3, 423*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 424*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 425*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 426*a4f780cdSTaniya Das }, 427*a4f780cdSTaniya Das }; 428*a4f780cdSTaniya Das 429*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_noc_refgen_clk_src = { 430*a4f780cdSTaniya Das .cmd_rcgr = 0x52094, 431*a4f780cdSTaniya Das .mnd_width = 0, 432*a4f780cdSTaniya Das .hid_width = 5, 433*a4f780cdSTaniya Das .parent_map = gcc_parent_map_0, 434*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 435*a4f780cdSTaniya Das .hw_clk_ctrl = true, 436*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 437*a4f780cdSTaniya Das .name = "gcc_pcie_noc_refgen_clk_src", 438*a4f780cdSTaniya Das .parent_data = gcc_parent_data_0, 439*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 440*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 441*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 442*a4f780cdSTaniya Das }, 443*a4f780cdSTaniya Das }; 444*a4f780cdSTaniya Das 445*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pcie_noc_safety_clk_src = { 446*a4f780cdSTaniya Das .cmd_rcgr = 0x520ac, 447*a4f780cdSTaniya Das .mnd_width = 0, 448*a4f780cdSTaniya Das .hid_width = 5, 449*a4f780cdSTaniya Das .parent_map = gcc_parent_map_0, 450*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pcie_a_aux_clk_src, 451*a4f780cdSTaniya Das .hw_clk_ctrl = true, 452*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 453*a4f780cdSTaniya Das .name = "gcc_pcie_noc_safety_clk_src", 454*a4f780cdSTaniya Das .parent_data = gcc_parent_data_0, 455*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 456*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 457*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 458*a4f780cdSTaniya Das }, 459*a4f780cdSTaniya Das }; 460*a4f780cdSTaniya Das 461*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = { 462*a4f780cdSTaniya Das F(40000000, P_GCC_GPLL0_OUT_MAIN, 15, 0, 0), 463*a4f780cdSTaniya Das F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0), 464*a4f780cdSTaniya Das { } 465*a4f780cdSTaniya Das }; 466*a4f780cdSTaniya Das 467*a4f780cdSTaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = { 468*a4f780cdSTaniya Das .cmd_rcgr = 0x1a010, 469*a4f780cdSTaniya Das .mnd_width = 0, 470*a4f780cdSTaniya Das .hid_width = 5, 471*a4f780cdSTaniya Das .parent_map = gcc_parent_map_0, 472*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_pdm2_clk_src, 473*a4f780cdSTaniya Das .hw_clk_ctrl = true, 474*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 475*a4f780cdSTaniya Das .name = "gcc_pdm2_clk_src", 476*a4f780cdSTaniya Das .parent_data = gcc_parent_data_0, 477*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 478*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 479*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_ops, 480*a4f780cdSTaniya Das }, 481*a4f780cdSTaniya Das }; 482*a4f780cdSTaniya Das 483*a4f780cdSTaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap3_qspi_ref_clk_src[] = { 484*a4f780cdSTaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 485*a4f780cdSTaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 486*a4f780cdSTaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 487*a4f780cdSTaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 488*a4f780cdSTaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 489*a4f780cdSTaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 490*a4f780cdSTaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 491*a4f780cdSTaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 492*a4f780cdSTaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 493*a4f780cdSTaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 494*a4f780cdSTaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 495*a4f780cdSTaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 496*a4f780cdSTaniya Das F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375), 497*a4f780cdSTaniya Das F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75), 498*a4f780cdSTaniya Das F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625), 499*a4f780cdSTaniya Das F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0), 500*a4f780cdSTaniya Das F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0), 501*a4f780cdSTaniya Das F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0), 502*a4f780cdSTaniya Das { } 503*a4f780cdSTaniya Das }; 504*a4f780cdSTaniya Das 505*a4f780cdSTaniya Das static struct clk_init_data gcc_qupv3_wrap3_qspi_ref_clk_src_init = { 506*a4f780cdSTaniya Das .name = "gcc_qupv3_wrap3_qspi_ref_clk_src", 507*a4f780cdSTaniya Das .parent_data = gcc_parent_data_0, 508*a4f780cdSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 509*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 510*a4f780cdSTaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 511*a4f780cdSTaniya Das }; 512*a4f780cdSTaniya Das 513*a4f780cdSTaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_qspi_ref_clk_src = { 514*a4f780cdSTaniya Das .cmd_rcgr = 0x23174, 515*a4f780cdSTaniya Das .mnd_width = 16, 516*a4f780cdSTaniya Das .hid_width = 5, 517*a4f780cdSTaniya Das .parent_map = gcc_parent_map_0, 518*a4f780cdSTaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap3_qspi_ref_clk_src, 519*a4f780cdSTaniya Das .hw_clk_ctrl = true, 520*a4f780cdSTaniya Das .clkr.hw.init = &gcc_qupv3_wrap3_qspi_ref_clk_src_init, 521*a4f780cdSTaniya Das }; 522*a4f780cdSTaniya Das 523*a4f780cdSTaniya Das static struct clk_regmap_div gcc_qupv3_wrap3_s0_clk_src = { 524*a4f780cdSTaniya Das .reg = 0x2316c, 525*a4f780cdSTaniya Das .shift = 0, 526*a4f780cdSTaniya Das .width = 4, 527*a4f780cdSTaniya Das .clkr.hw.init = &(const struct clk_init_data) { 528*a4f780cdSTaniya Das .name = "gcc_qupv3_wrap3_s0_clk_src", 529*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 530*a4f780cdSTaniya Das &gcc_qupv3_wrap3_qspi_ref_clk_src.clkr.hw, 531*a4f780cdSTaniya Das }, 532*a4f780cdSTaniya Das .num_parents = 1, 533*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 534*a4f780cdSTaniya Das .ops = &clk_regmap_div_ro_ops, 535*a4f780cdSTaniya Das }, 536*a4f780cdSTaniya Das }; 537*a4f780cdSTaniya Das 538*a4f780cdSTaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = { 539*a4f780cdSTaniya Das .halt_reg = 0x1f004, 540*a4f780cdSTaniya Das .halt_check = BRANCH_HALT, 541*a4f780cdSTaniya Das .clkr = { 542*a4f780cdSTaniya Das .enable_reg = 0x1f004, 543*a4f780cdSTaniya Das .enable_mask = BIT(0), 544*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 545*a4f780cdSTaniya Das .name = "gcc_boot_rom_ahb_clk", 546*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 547*a4f780cdSTaniya Das }, 548*a4f780cdSTaniya Das }, 549*a4f780cdSTaniya Das }; 550*a4f780cdSTaniya Das 551*a4f780cdSTaniya Das static struct clk_branch gcc_gp1_clk = { 552*a4f780cdSTaniya Das .halt_reg = 0x30000, 553*a4f780cdSTaniya Das .halt_check = BRANCH_HALT, 554*a4f780cdSTaniya Das .clkr = { 555*a4f780cdSTaniya Das .enable_reg = 0x30000, 556*a4f780cdSTaniya Das .enable_mask = BIT(0), 557*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 558*a4f780cdSTaniya Das .name = "gcc_gp1_clk", 559*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 560*a4f780cdSTaniya Das &gcc_gp1_clk_src.clkr.hw, 561*a4f780cdSTaniya Das }, 562*a4f780cdSTaniya Das .num_parents = 1, 563*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 564*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 565*a4f780cdSTaniya Das }, 566*a4f780cdSTaniya Das }, 567*a4f780cdSTaniya Das }; 568*a4f780cdSTaniya Das 569*a4f780cdSTaniya Das static struct clk_branch gcc_gp2_clk = { 570*a4f780cdSTaniya Das .halt_reg = 0x31000, 571*a4f780cdSTaniya Das .halt_check = BRANCH_HALT, 572*a4f780cdSTaniya Das .clkr = { 573*a4f780cdSTaniya Das .enable_reg = 0x31000, 574*a4f780cdSTaniya Das .enable_mask = BIT(0), 575*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 576*a4f780cdSTaniya Das .name = "gcc_gp2_clk", 577*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 578*a4f780cdSTaniya Das &gcc_gp2_clk_src.clkr.hw, 579*a4f780cdSTaniya Das }, 580*a4f780cdSTaniya Das .num_parents = 1, 581*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 582*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 583*a4f780cdSTaniya Das }, 584*a4f780cdSTaniya Das }, 585*a4f780cdSTaniya Das }; 586*a4f780cdSTaniya Das 587*a4f780cdSTaniya Das static struct clk_branch gcc_mmu_0_tcu_vote_clk = { 588*a4f780cdSTaniya Das .halt_reg = 0x7d094, 589*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 590*a4f780cdSTaniya Das .clkr = { 591*a4f780cdSTaniya Das .enable_reg = 0x7d094, 592*a4f780cdSTaniya Das .enable_mask = BIT(0), 593*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 594*a4f780cdSTaniya Das .name = "gcc_mmu_0_tcu_vote_clk", 595*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 596*a4f780cdSTaniya Das }, 597*a4f780cdSTaniya Das }, 598*a4f780cdSTaniya Das }; 599*a4f780cdSTaniya Das 600*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_aux_clk = { 601*a4f780cdSTaniya Das .halt_reg = 0x49058, 602*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 603*a4f780cdSTaniya Das .hwcg_reg = 0x49058, 604*a4f780cdSTaniya Das .hwcg_bit = 1, 605*a4f780cdSTaniya Das .clkr = { 606*a4f780cdSTaniya Das .enable_reg = 0x9d008, 607*a4f780cdSTaniya Das .enable_mask = BIT(14), 608*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 609*a4f780cdSTaniya Das .name = "gcc_pcie_a_aux_clk", 610*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 611*a4f780cdSTaniya Das &gcc_pcie_a_aux_clk_src.clkr.hw, 612*a4f780cdSTaniya Das }, 613*a4f780cdSTaniya Das .num_parents = 1, 614*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 615*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 616*a4f780cdSTaniya Das }, 617*a4f780cdSTaniya Das }, 618*a4f780cdSTaniya Das }; 619*a4f780cdSTaniya Das 620*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_cfg_ahb_clk = { 621*a4f780cdSTaniya Das .halt_reg = 0x49054, 622*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 623*a4f780cdSTaniya Das .hwcg_reg = 0x49054, 624*a4f780cdSTaniya Das .hwcg_bit = 1, 625*a4f780cdSTaniya Das .clkr = { 626*a4f780cdSTaniya Das .enable_reg = 0x9d008, 627*a4f780cdSTaniya Das .enable_mask = BIT(13), 628*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 629*a4f780cdSTaniya Das .name = "gcc_pcie_a_cfg_ahb_clk", 630*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 631*a4f780cdSTaniya Das }, 632*a4f780cdSTaniya Das }, 633*a4f780cdSTaniya Das }; 634*a4f780cdSTaniya Das 635*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_dti_qtc_clk = { 636*a4f780cdSTaniya Das .halt_reg = 0x49018, 637*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 638*a4f780cdSTaniya Das .hwcg_reg = 0x49018, 639*a4f780cdSTaniya Das .hwcg_bit = 1, 640*a4f780cdSTaniya Das .clkr = { 641*a4f780cdSTaniya Das .enable_reg = 0x9d008, 642*a4f780cdSTaniya Das .enable_mask = BIT(8), 643*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 644*a4f780cdSTaniya Das .name = "gcc_pcie_a_dti_qtc_clk", 645*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 646*a4f780cdSTaniya Das }, 647*a4f780cdSTaniya Das }, 648*a4f780cdSTaniya Das }; 649*a4f780cdSTaniya Das 650*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_mstr_axi_clk = { 651*a4f780cdSTaniya Das .halt_reg = 0x49040, 652*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 653*a4f780cdSTaniya Das .hwcg_reg = 0x49040, 654*a4f780cdSTaniya Das .hwcg_bit = 1, 655*a4f780cdSTaniya Das .clkr = { 656*a4f780cdSTaniya Das .enable_reg = 0x9d008, 657*a4f780cdSTaniya Das .enable_mask = BIT(12), 658*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 659*a4f780cdSTaniya Das .name = "gcc_pcie_a_mstr_axi_clk", 660*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 661*a4f780cdSTaniya Das }, 662*a4f780cdSTaniya Das }, 663*a4f780cdSTaniya Das }; 664*a4f780cdSTaniya Das 665*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_phy_aux_clk = { 666*a4f780cdSTaniya Das .halt_reg = 0x4d01c, 667*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 668*a4f780cdSTaniya Das .clkr = { 669*a4f780cdSTaniya Das .enable_reg = 0x9d010, 670*a4f780cdSTaniya Das .enable_mask = BIT(12), 671*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 672*a4f780cdSTaniya Das .name = "gcc_pcie_a_phy_aux_clk", 673*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 674*a4f780cdSTaniya Das &gcc_pcie_a_phy_aux_clk_src.clkr.hw, 675*a4f780cdSTaniya Das }, 676*a4f780cdSTaniya Das .num_parents = 1, 677*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 678*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 679*a4f780cdSTaniya Das }, 680*a4f780cdSTaniya Das }, 681*a4f780cdSTaniya Das }; 682*a4f780cdSTaniya Das 683*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_phy_rchng_clk = { 684*a4f780cdSTaniya Das .halt_reg = 0x49078, 685*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 686*a4f780cdSTaniya Das .hwcg_reg = 0x49078, 687*a4f780cdSTaniya Das .hwcg_bit = 1, 688*a4f780cdSTaniya Das .clkr = { 689*a4f780cdSTaniya Das .enable_reg = 0x9d008, 690*a4f780cdSTaniya Das .enable_mask = BIT(16), 691*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 692*a4f780cdSTaniya Das .name = "gcc_pcie_a_phy_rchng_clk", 693*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 694*a4f780cdSTaniya Das &gcc_pcie_a_phy_rchng_clk_src.clkr.hw, 695*a4f780cdSTaniya Das }, 696*a4f780cdSTaniya Das .num_parents = 1, 697*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 698*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 699*a4f780cdSTaniya Das }, 700*a4f780cdSTaniya Das }, 701*a4f780cdSTaniya Das }; 702*a4f780cdSTaniya Das 703*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_pipe_clk = { 704*a4f780cdSTaniya Das .halt_reg = 0x49068, 705*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 706*a4f780cdSTaniya Das .hwcg_reg = 0x49068, 707*a4f780cdSTaniya Das .hwcg_bit = 1, 708*a4f780cdSTaniya Das .clkr = { 709*a4f780cdSTaniya Das .enable_reg = 0x9d008, 710*a4f780cdSTaniya Das .enable_mask = BIT(15), 711*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 712*a4f780cdSTaniya Das .name = "gcc_pcie_a_pipe_clk", 713*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 714*a4f780cdSTaniya Das &gcc_pcie_a_pipe_clk_src.clkr.hw, 715*a4f780cdSTaniya Das }, 716*a4f780cdSTaniya Das .num_parents = 1, 717*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 718*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 719*a4f780cdSTaniya Das }, 720*a4f780cdSTaniya Das }, 721*a4f780cdSTaniya Das }; 722*a4f780cdSTaniya Das 723*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_slv_axi_clk = { 724*a4f780cdSTaniya Das .halt_reg = 0x4902c, 725*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 726*a4f780cdSTaniya Das .hwcg_reg = 0x4902c, 727*a4f780cdSTaniya Das .hwcg_bit = 1, 728*a4f780cdSTaniya Das .clkr = { 729*a4f780cdSTaniya Das .enable_reg = 0x9d008, 730*a4f780cdSTaniya Das .enable_mask = BIT(11), 731*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 732*a4f780cdSTaniya Das .name = "gcc_pcie_a_slv_axi_clk", 733*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 734*a4f780cdSTaniya Das }, 735*a4f780cdSTaniya Das }, 736*a4f780cdSTaniya Das }; 737*a4f780cdSTaniya Das 738*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_a_slv_q2a_axi_clk = { 739*a4f780cdSTaniya Das .halt_reg = 0x49024, 740*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 741*a4f780cdSTaniya Das .hwcg_reg = 0x49024, 742*a4f780cdSTaniya Das .hwcg_bit = 1, 743*a4f780cdSTaniya Das .clkr = { 744*a4f780cdSTaniya Das .enable_reg = 0x9d008, 745*a4f780cdSTaniya Das .enable_mask = BIT(10), 746*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 747*a4f780cdSTaniya Das .name = "gcc_pcie_a_slv_q2a_axi_clk", 748*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 749*a4f780cdSTaniya Das }, 750*a4f780cdSTaniya Das }, 751*a4f780cdSTaniya Das }; 752*a4f780cdSTaniya Das 753*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_aux_clk = { 754*a4f780cdSTaniya Das .halt_reg = 0x4a058, 755*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 756*a4f780cdSTaniya Das .clkr = { 757*a4f780cdSTaniya Das .enable_reg = 0x9d008, 758*a4f780cdSTaniya Das .enable_mask = BIT(23), 759*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 760*a4f780cdSTaniya Das .name = "gcc_pcie_b_aux_clk", 761*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 762*a4f780cdSTaniya Das &gcc_pcie_b_aux_clk_src.clkr.hw, 763*a4f780cdSTaniya Das }, 764*a4f780cdSTaniya Das .num_parents = 1, 765*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 766*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 767*a4f780cdSTaniya Das }, 768*a4f780cdSTaniya Das }, 769*a4f780cdSTaniya Das }; 770*a4f780cdSTaniya Das 771*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_cfg_ahb_clk = { 772*a4f780cdSTaniya Das .halt_reg = 0x4a054, 773*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 774*a4f780cdSTaniya Das .hwcg_reg = 0x4a054, 775*a4f780cdSTaniya Das .hwcg_bit = 1, 776*a4f780cdSTaniya Das .clkr = { 777*a4f780cdSTaniya Das .enable_reg = 0x9d008, 778*a4f780cdSTaniya Das .enable_mask = BIT(22), 779*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 780*a4f780cdSTaniya Das .name = "gcc_pcie_b_cfg_ahb_clk", 781*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 782*a4f780cdSTaniya Das }, 783*a4f780cdSTaniya Das }, 784*a4f780cdSTaniya Das }; 785*a4f780cdSTaniya Das 786*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_dti_qtc_clk = { 787*a4f780cdSTaniya Das .halt_reg = 0x4a018, 788*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 789*a4f780cdSTaniya Das .hwcg_reg = 0x4a018, 790*a4f780cdSTaniya Das .hwcg_bit = 1, 791*a4f780cdSTaniya Das .clkr = { 792*a4f780cdSTaniya Das .enable_reg = 0x9d008, 793*a4f780cdSTaniya Das .enable_mask = BIT(17), 794*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 795*a4f780cdSTaniya Das .name = "gcc_pcie_b_dti_qtc_clk", 796*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 797*a4f780cdSTaniya Das }, 798*a4f780cdSTaniya Das }, 799*a4f780cdSTaniya Das }; 800*a4f780cdSTaniya Das 801*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_mstr_axi_clk = { 802*a4f780cdSTaniya Das .halt_reg = 0x4a040, 803*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 804*a4f780cdSTaniya Das .hwcg_reg = 0x4a040, 805*a4f780cdSTaniya Das .hwcg_bit = 1, 806*a4f780cdSTaniya Das .clkr = { 807*a4f780cdSTaniya Das .enable_reg = 0x9d008, 808*a4f780cdSTaniya Das .enable_mask = BIT(21), 809*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 810*a4f780cdSTaniya Das .name = "gcc_pcie_b_mstr_axi_clk", 811*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 812*a4f780cdSTaniya Das }, 813*a4f780cdSTaniya Das }, 814*a4f780cdSTaniya Das }; 815*a4f780cdSTaniya Das 816*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_phy_aux_clk = { 817*a4f780cdSTaniya Das .halt_reg = 0x4e01c, 818*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 819*a4f780cdSTaniya Das .clkr = { 820*a4f780cdSTaniya Das .enable_reg = 0x9d010, 821*a4f780cdSTaniya Das .enable_mask = BIT(13), 822*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 823*a4f780cdSTaniya Das .name = "gcc_pcie_b_phy_aux_clk", 824*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 825*a4f780cdSTaniya Das &gcc_pcie_b_phy_aux_clk_src.clkr.hw, 826*a4f780cdSTaniya Das }, 827*a4f780cdSTaniya Das .num_parents = 1, 828*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 829*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 830*a4f780cdSTaniya Das }, 831*a4f780cdSTaniya Das }, 832*a4f780cdSTaniya Das }; 833*a4f780cdSTaniya Das 834*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_phy_rchng_clk = { 835*a4f780cdSTaniya Das .halt_reg = 0x4a078, 836*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 837*a4f780cdSTaniya Das .clkr = { 838*a4f780cdSTaniya Das .enable_reg = 0x9d008, 839*a4f780cdSTaniya Das .enable_mask = BIT(25), 840*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 841*a4f780cdSTaniya Das .name = "gcc_pcie_b_phy_rchng_clk", 842*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 843*a4f780cdSTaniya Das &gcc_pcie_b_phy_rchng_clk_src.clkr.hw, 844*a4f780cdSTaniya Das }, 845*a4f780cdSTaniya Das .num_parents = 1, 846*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 847*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 848*a4f780cdSTaniya Das }, 849*a4f780cdSTaniya Das }, 850*a4f780cdSTaniya Das }; 851*a4f780cdSTaniya Das 852*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_pipe_clk = { 853*a4f780cdSTaniya Das .halt_reg = 0x4a068, 854*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 855*a4f780cdSTaniya Das .clkr = { 856*a4f780cdSTaniya Das .enable_reg = 0x9d008, 857*a4f780cdSTaniya Das .enable_mask = BIT(24), 858*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 859*a4f780cdSTaniya Das .name = "gcc_pcie_b_pipe_clk", 860*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 861*a4f780cdSTaniya Das &gcc_pcie_b_pipe_clk_src.clkr.hw, 862*a4f780cdSTaniya Das }, 863*a4f780cdSTaniya Das .num_parents = 1, 864*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 865*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 866*a4f780cdSTaniya Das }, 867*a4f780cdSTaniya Das }, 868*a4f780cdSTaniya Das }; 869*a4f780cdSTaniya Das 870*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_slv_axi_clk = { 871*a4f780cdSTaniya Das .halt_reg = 0x4a02c, 872*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 873*a4f780cdSTaniya Das .hwcg_reg = 0x4a02c, 874*a4f780cdSTaniya Das .hwcg_bit = 1, 875*a4f780cdSTaniya Das .clkr = { 876*a4f780cdSTaniya Das .enable_reg = 0x9d008, 877*a4f780cdSTaniya Das .enable_mask = BIT(20), 878*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 879*a4f780cdSTaniya Das .name = "gcc_pcie_b_slv_axi_clk", 880*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 881*a4f780cdSTaniya Das }, 882*a4f780cdSTaniya Das }, 883*a4f780cdSTaniya Das }; 884*a4f780cdSTaniya Das 885*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_b_slv_q2a_axi_clk = { 886*a4f780cdSTaniya Das .halt_reg = 0x4a024, 887*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 888*a4f780cdSTaniya Das .clkr = { 889*a4f780cdSTaniya Das .enable_reg = 0x9d008, 890*a4f780cdSTaniya Das .enable_mask = BIT(19), 891*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 892*a4f780cdSTaniya Das .name = "gcc_pcie_b_slv_q2a_axi_clk", 893*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 894*a4f780cdSTaniya Das }, 895*a4f780cdSTaniya Das }, 896*a4f780cdSTaniya Das }; 897*a4f780cdSTaniya Das 898*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_aux_clk = { 899*a4f780cdSTaniya Das .halt_reg = 0x4b058, 900*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 901*a4f780cdSTaniya Das .clkr = { 902*a4f780cdSTaniya Das .enable_reg = 0x9d010, 903*a4f780cdSTaniya Das .enable_mask = BIT(0), 904*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 905*a4f780cdSTaniya Das .name = "gcc_pcie_c_aux_clk", 906*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 907*a4f780cdSTaniya Das &gcc_pcie_c_aux_clk_src.clkr.hw, 908*a4f780cdSTaniya Das }, 909*a4f780cdSTaniya Das .num_parents = 1, 910*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 911*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 912*a4f780cdSTaniya Das }, 913*a4f780cdSTaniya Das }, 914*a4f780cdSTaniya Das }; 915*a4f780cdSTaniya Das 916*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_cfg_ahb_clk = { 917*a4f780cdSTaniya Das .halt_reg = 0x4b054, 918*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 919*a4f780cdSTaniya Das .hwcg_reg = 0x4b054, 920*a4f780cdSTaniya Das .hwcg_bit = 1, 921*a4f780cdSTaniya Das .clkr = { 922*a4f780cdSTaniya Das .enable_reg = 0x9d008, 923*a4f780cdSTaniya Das .enable_mask = BIT(31), 924*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 925*a4f780cdSTaniya Das .name = "gcc_pcie_c_cfg_ahb_clk", 926*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 927*a4f780cdSTaniya Das }, 928*a4f780cdSTaniya Das }, 929*a4f780cdSTaniya Das }; 930*a4f780cdSTaniya Das 931*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_dti_qtc_clk = { 932*a4f780cdSTaniya Das .halt_reg = 0x4b018, 933*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 934*a4f780cdSTaniya Das .hwcg_reg = 0x4b018, 935*a4f780cdSTaniya Das .hwcg_bit = 1, 936*a4f780cdSTaniya Das .clkr = { 937*a4f780cdSTaniya Das .enable_reg = 0x9d008, 938*a4f780cdSTaniya Das .enable_mask = BIT(26), 939*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 940*a4f780cdSTaniya Das .name = "gcc_pcie_c_dti_qtc_clk", 941*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 942*a4f780cdSTaniya Das }, 943*a4f780cdSTaniya Das }, 944*a4f780cdSTaniya Das }; 945*a4f780cdSTaniya Das 946*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_mstr_axi_clk = { 947*a4f780cdSTaniya Das .halt_reg = 0x4b040, 948*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 949*a4f780cdSTaniya Das .hwcg_reg = 0x4b040, 950*a4f780cdSTaniya Das .hwcg_bit = 1, 951*a4f780cdSTaniya Das .clkr = { 952*a4f780cdSTaniya Das .enable_reg = 0x9d008, 953*a4f780cdSTaniya Das .enable_mask = BIT(30), 954*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 955*a4f780cdSTaniya Das .name = "gcc_pcie_c_mstr_axi_clk", 956*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 957*a4f780cdSTaniya Das }, 958*a4f780cdSTaniya Das }, 959*a4f780cdSTaniya Das }; 960*a4f780cdSTaniya Das 961*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_phy_aux_clk = { 962*a4f780cdSTaniya Das .halt_reg = 0x4f01c, 963*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 964*a4f780cdSTaniya Das .clkr = { 965*a4f780cdSTaniya Das .enable_reg = 0x9d010, 966*a4f780cdSTaniya Das .enable_mask = BIT(14), 967*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 968*a4f780cdSTaniya Das .name = "gcc_pcie_c_phy_aux_clk", 969*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 970*a4f780cdSTaniya Das &gcc_pcie_c_phy_aux_clk_src.clkr.hw, 971*a4f780cdSTaniya Das }, 972*a4f780cdSTaniya Das .num_parents = 1, 973*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 974*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 975*a4f780cdSTaniya Das }, 976*a4f780cdSTaniya Das }, 977*a4f780cdSTaniya Das }; 978*a4f780cdSTaniya Das 979*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_phy_rchng_clk = { 980*a4f780cdSTaniya Das .halt_reg = 0x4b078, 981*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 982*a4f780cdSTaniya Das .clkr = { 983*a4f780cdSTaniya Das .enable_reg = 0x9d010, 984*a4f780cdSTaniya Das .enable_mask = BIT(2), 985*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 986*a4f780cdSTaniya Das .name = "gcc_pcie_c_phy_rchng_clk", 987*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 988*a4f780cdSTaniya Das &gcc_pcie_c_phy_rchng_clk_src.clkr.hw, 989*a4f780cdSTaniya Das }, 990*a4f780cdSTaniya Das .num_parents = 1, 991*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 992*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 993*a4f780cdSTaniya Das }, 994*a4f780cdSTaniya Das }, 995*a4f780cdSTaniya Das }; 996*a4f780cdSTaniya Das 997*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_pipe_clk = { 998*a4f780cdSTaniya Das .halt_reg = 0x4b068, 999*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1000*a4f780cdSTaniya Das .clkr = { 1001*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1002*a4f780cdSTaniya Das .enable_mask = BIT(1), 1003*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1004*a4f780cdSTaniya Das .name = "gcc_pcie_c_pipe_clk", 1005*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1006*a4f780cdSTaniya Das &gcc_pcie_c_pipe_clk_src.clkr.hw, 1007*a4f780cdSTaniya Das }, 1008*a4f780cdSTaniya Das .num_parents = 1, 1009*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1010*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1011*a4f780cdSTaniya Das }, 1012*a4f780cdSTaniya Das }, 1013*a4f780cdSTaniya Das }; 1014*a4f780cdSTaniya Das 1015*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_slv_axi_clk = { 1016*a4f780cdSTaniya Das .halt_reg = 0x4b02c, 1017*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1018*a4f780cdSTaniya Das .hwcg_reg = 0x4b02c, 1019*a4f780cdSTaniya Das .hwcg_bit = 1, 1020*a4f780cdSTaniya Das .clkr = { 1021*a4f780cdSTaniya Das .enable_reg = 0x9d008, 1022*a4f780cdSTaniya Das .enable_mask = BIT(29), 1023*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1024*a4f780cdSTaniya Das .name = "gcc_pcie_c_slv_axi_clk", 1025*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1026*a4f780cdSTaniya Das }, 1027*a4f780cdSTaniya Das }, 1028*a4f780cdSTaniya Das }; 1029*a4f780cdSTaniya Das 1030*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_c_slv_q2a_axi_clk = { 1031*a4f780cdSTaniya Das .halt_reg = 0x4b024, 1032*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1033*a4f780cdSTaniya Das .clkr = { 1034*a4f780cdSTaniya Das .enable_reg = 0x9d008, 1035*a4f780cdSTaniya Das .enable_mask = BIT(28), 1036*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1037*a4f780cdSTaniya Das .name = "gcc_pcie_c_slv_q2a_axi_clk", 1038*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1039*a4f780cdSTaniya Das }, 1040*a4f780cdSTaniya Das }, 1041*a4f780cdSTaniya Das }; 1042*a4f780cdSTaniya Das 1043*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_aux_clk = { 1044*a4f780cdSTaniya Das .halt_reg = 0x4c058, 1045*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1046*a4f780cdSTaniya Das .clkr = { 1047*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1048*a4f780cdSTaniya Das .enable_mask = BIT(9), 1049*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1050*a4f780cdSTaniya Das .name = "gcc_pcie_d_aux_clk", 1051*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1052*a4f780cdSTaniya Das &gcc_pcie_d_aux_clk_src.clkr.hw, 1053*a4f780cdSTaniya Das }, 1054*a4f780cdSTaniya Das .num_parents = 1, 1055*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1056*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1057*a4f780cdSTaniya Das }, 1058*a4f780cdSTaniya Das }, 1059*a4f780cdSTaniya Das }; 1060*a4f780cdSTaniya Das 1061*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_cfg_ahb_clk = { 1062*a4f780cdSTaniya Das .halt_reg = 0x4c054, 1063*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1064*a4f780cdSTaniya Das .hwcg_reg = 0x4c054, 1065*a4f780cdSTaniya Das .hwcg_bit = 1, 1066*a4f780cdSTaniya Das .clkr = { 1067*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1068*a4f780cdSTaniya Das .enable_mask = BIT(8), 1069*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1070*a4f780cdSTaniya Das .name = "gcc_pcie_d_cfg_ahb_clk", 1071*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1072*a4f780cdSTaniya Das }, 1073*a4f780cdSTaniya Das }, 1074*a4f780cdSTaniya Das }; 1075*a4f780cdSTaniya Das 1076*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_dti_qtc_clk = { 1077*a4f780cdSTaniya Das .halt_reg = 0x4c018, 1078*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 1079*a4f780cdSTaniya Das .hwcg_reg = 0x4c018, 1080*a4f780cdSTaniya Das .hwcg_bit = 1, 1081*a4f780cdSTaniya Das .clkr = { 1082*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1083*a4f780cdSTaniya Das .enable_mask = BIT(3), 1084*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1085*a4f780cdSTaniya Das .name = "gcc_pcie_d_dti_qtc_clk", 1086*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1087*a4f780cdSTaniya Das }, 1088*a4f780cdSTaniya Das }, 1089*a4f780cdSTaniya Das }; 1090*a4f780cdSTaniya Das 1091*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_mstr_axi_clk = { 1092*a4f780cdSTaniya Das .halt_reg = 0x4c040, 1093*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 1094*a4f780cdSTaniya Das .hwcg_reg = 0x4c040, 1095*a4f780cdSTaniya Das .hwcg_bit = 1, 1096*a4f780cdSTaniya Das .clkr = { 1097*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1098*a4f780cdSTaniya Das .enable_mask = BIT(7), 1099*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1100*a4f780cdSTaniya Das .name = "gcc_pcie_d_mstr_axi_clk", 1101*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1102*a4f780cdSTaniya Das }, 1103*a4f780cdSTaniya Das }, 1104*a4f780cdSTaniya Das }; 1105*a4f780cdSTaniya Das 1106*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_phy_aux_clk = { 1107*a4f780cdSTaniya Das .halt_reg = 0x5001c, 1108*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1109*a4f780cdSTaniya Das .clkr = { 1110*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1111*a4f780cdSTaniya Das .enable_mask = BIT(16), 1112*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1113*a4f780cdSTaniya Das .name = "gcc_pcie_d_phy_aux_clk", 1114*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1115*a4f780cdSTaniya Das &gcc_pcie_d_phy_aux_clk_src.clkr.hw, 1116*a4f780cdSTaniya Das }, 1117*a4f780cdSTaniya Das .num_parents = 1, 1118*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1119*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1120*a4f780cdSTaniya Das }, 1121*a4f780cdSTaniya Das }, 1122*a4f780cdSTaniya Das }; 1123*a4f780cdSTaniya Das 1124*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_phy_rchng_clk = { 1125*a4f780cdSTaniya Das .halt_reg = 0x4c078, 1126*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1127*a4f780cdSTaniya Das .clkr = { 1128*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1129*a4f780cdSTaniya Das .enable_mask = BIT(11), 1130*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1131*a4f780cdSTaniya Das .name = "gcc_pcie_d_phy_rchng_clk", 1132*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1133*a4f780cdSTaniya Das &gcc_pcie_d_phy_rchng_clk_src.clkr.hw, 1134*a4f780cdSTaniya Das }, 1135*a4f780cdSTaniya Das .num_parents = 1, 1136*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1137*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1138*a4f780cdSTaniya Das }, 1139*a4f780cdSTaniya Das }, 1140*a4f780cdSTaniya Das }; 1141*a4f780cdSTaniya Das 1142*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_pipe_clk = { 1143*a4f780cdSTaniya Das .halt_reg = 0x4c068, 1144*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1145*a4f780cdSTaniya Das .clkr = { 1146*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1147*a4f780cdSTaniya Das .enable_mask = BIT(10), 1148*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1149*a4f780cdSTaniya Das .name = "gcc_pcie_d_pipe_clk", 1150*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1151*a4f780cdSTaniya Das &gcc_pcie_d_pipe_clk_src.clkr.hw, 1152*a4f780cdSTaniya Das }, 1153*a4f780cdSTaniya Das .num_parents = 1, 1154*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1155*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1156*a4f780cdSTaniya Das }, 1157*a4f780cdSTaniya Das }, 1158*a4f780cdSTaniya Das }; 1159*a4f780cdSTaniya Das 1160*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_slv_axi_clk = { 1161*a4f780cdSTaniya Das .halt_reg = 0x4c02c, 1162*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1163*a4f780cdSTaniya Das .hwcg_reg = 0x4c02c, 1164*a4f780cdSTaniya Das .hwcg_bit = 1, 1165*a4f780cdSTaniya Das .clkr = { 1166*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1167*a4f780cdSTaniya Das .enable_mask = BIT(6), 1168*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1169*a4f780cdSTaniya Das .name = "gcc_pcie_d_slv_axi_clk", 1170*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1171*a4f780cdSTaniya Das }, 1172*a4f780cdSTaniya Das }, 1173*a4f780cdSTaniya Das }; 1174*a4f780cdSTaniya Das 1175*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_d_slv_q2a_axi_clk = { 1176*a4f780cdSTaniya Das .halt_reg = 0x4c024, 1177*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1178*a4f780cdSTaniya Das .clkr = { 1179*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1180*a4f780cdSTaniya Das .enable_mask = BIT(5), 1181*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1182*a4f780cdSTaniya Das .name = "gcc_pcie_d_slv_q2a_axi_clk", 1183*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1184*a4f780cdSTaniya Das }, 1185*a4f780cdSTaniya Das }, 1186*a4f780cdSTaniya Das }; 1187*a4f780cdSTaniya Das 1188*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_link_ahb_clk = { 1189*a4f780cdSTaniya Das .halt_reg = 0x52464, 1190*a4f780cdSTaniya Das .halt_check = BRANCH_HALT, 1191*a4f780cdSTaniya Das .clkr = { 1192*a4f780cdSTaniya Das .enable_reg = 0x52464, 1193*a4f780cdSTaniya Das .enable_mask = BIT(0), 1194*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1195*a4f780cdSTaniya Das .name = "gcc_pcie_link_ahb_clk", 1196*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1197*a4f780cdSTaniya Das }, 1198*a4f780cdSTaniya Das }, 1199*a4f780cdSTaniya Das }; 1200*a4f780cdSTaniya Das 1201*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_link_xo_clk = { 1202*a4f780cdSTaniya Das .halt_reg = 0x52468, 1203*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1204*a4f780cdSTaniya Das .hwcg_reg = 0x52468, 1205*a4f780cdSTaniya Das .hwcg_bit = 1, 1206*a4f780cdSTaniya Das .clkr = { 1207*a4f780cdSTaniya Das .enable_reg = 0x52468, 1208*a4f780cdSTaniya Das .enable_mask = BIT(0), 1209*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1210*a4f780cdSTaniya Das .name = "gcc_pcie_link_xo_clk", 1211*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1212*a4f780cdSTaniya Das }, 1213*a4f780cdSTaniya Das }, 1214*a4f780cdSTaniya Das }; 1215*a4f780cdSTaniya Das 1216*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_async_bridge_clk = { 1217*a4f780cdSTaniya Das .halt_reg = 0x52048, 1218*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 1219*a4f780cdSTaniya Das .hwcg_reg = 0x52048, 1220*a4f780cdSTaniya Das .hwcg_bit = 1, 1221*a4f780cdSTaniya Das .clkr = { 1222*a4f780cdSTaniya Das .enable_reg = 0x9d018, 1223*a4f780cdSTaniya Das .enable_mask = BIT(18), 1224*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1225*a4f780cdSTaniya Das .name = "gcc_pcie_noc_async_bridge_clk", 1226*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1227*a4f780cdSTaniya Das }, 1228*a4f780cdSTaniya Das }, 1229*a4f780cdSTaniya Das }; 1230*a4f780cdSTaniya Das 1231*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_cnoc_sf_qx_clk = { 1232*a4f780cdSTaniya Das .halt_reg = 0x52040, 1233*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1234*a4f780cdSTaniya Das .hwcg_reg = 0x52040, 1235*a4f780cdSTaniya Das .hwcg_bit = 1, 1236*a4f780cdSTaniya Das .clkr = { 1237*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1238*a4f780cdSTaniya Das .enable_mask = BIT(24), 1239*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1240*a4f780cdSTaniya Das .name = "gcc_pcie_noc_cnoc_sf_qx_clk", 1241*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1242*a4f780cdSTaniya Das }, 1243*a4f780cdSTaniya Das }, 1244*a4f780cdSTaniya Das }; 1245*a4f780cdSTaniya Das 1246*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_m_cfg_clk = { 1247*a4f780cdSTaniya Das .halt_reg = 0x52060, 1248*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1249*a4f780cdSTaniya Das .hwcg_reg = 0x52060, 1250*a4f780cdSTaniya Das .hwcg_bit = 1, 1251*a4f780cdSTaniya Das .clkr = { 1252*a4f780cdSTaniya Das .enable_reg = 0x9d018, 1253*a4f780cdSTaniya Das .enable_mask = BIT(4), 1254*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1255*a4f780cdSTaniya Das .name = "gcc_pcie_noc_m_cfg_clk", 1256*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1257*a4f780cdSTaniya Das }, 1258*a4f780cdSTaniya Das }, 1259*a4f780cdSTaniya Das }; 1260*a4f780cdSTaniya Das 1261*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_m_pdb_clk = { 1262*a4f780cdSTaniya Das .halt_reg = 0x52084, 1263*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1264*a4f780cdSTaniya Das .hwcg_reg = 0x52084, 1265*a4f780cdSTaniya Das .hwcg_bit = 1, 1266*a4f780cdSTaniya Das .clkr = { 1267*a4f780cdSTaniya Das .enable_reg = 0x9d018, 1268*a4f780cdSTaniya Das .enable_mask = BIT(8), 1269*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1270*a4f780cdSTaniya Das .name = "gcc_pcie_noc_m_pdb_clk", 1271*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1272*a4f780cdSTaniya Das }, 1273*a4f780cdSTaniya Das }, 1274*a4f780cdSTaniya Das }; 1275*a4f780cdSTaniya Das 1276*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_mstr_axi_clk = { 1277*a4f780cdSTaniya Das .halt_reg = 0x52050, 1278*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_SKIP, 1279*a4f780cdSTaniya Das .hwcg_reg = 0x52050, 1280*a4f780cdSTaniya Das .hwcg_bit = 1, 1281*a4f780cdSTaniya Das .clkr = { 1282*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1283*a4f780cdSTaniya Das .enable_mask = BIT(25), 1284*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1285*a4f780cdSTaniya Das .name = "gcc_pcie_noc_mstr_axi_clk", 1286*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1287*a4f780cdSTaniya Das }, 1288*a4f780cdSTaniya Das }, 1289*a4f780cdSTaniya Das }; 1290*a4f780cdSTaniya Das 1291*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_pwrctl_clk = { 1292*a4f780cdSTaniya Das .halt_reg = 0x52080, 1293*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1294*a4f780cdSTaniya Das .clkr = { 1295*a4f780cdSTaniya Das .enable_reg = 0x9d018, 1296*a4f780cdSTaniya Das .enable_mask = BIT(7), 1297*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1298*a4f780cdSTaniya Das .name = "gcc_pcie_noc_pwrctl_clk", 1299*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1300*a4f780cdSTaniya Das }, 1301*a4f780cdSTaniya Das }, 1302*a4f780cdSTaniya Das }; 1303*a4f780cdSTaniya Das 1304*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_qosgen_extref_clk = { 1305*a4f780cdSTaniya Das .halt_reg = 0x52074, 1306*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1307*a4f780cdSTaniya Das .clkr = { 1308*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1309*a4f780cdSTaniya Das .enable_mask = BIT(19), 1310*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1311*a4f780cdSTaniya Das .name = "gcc_pcie_noc_qosgen_extref_clk", 1312*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1313*a4f780cdSTaniya Das }, 1314*a4f780cdSTaniya Das }, 1315*a4f780cdSTaniya Das }; 1316*a4f780cdSTaniya Das 1317*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_refgen_clk = { 1318*a4f780cdSTaniya Das .halt_reg = 0x52078, 1319*a4f780cdSTaniya Das .halt_check = BRANCH_HALT, 1320*a4f780cdSTaniya Das .clkr = { 1321*a4f780cdSTaniya Das .enable_reg = 0x52078, 1322*a4f780cdSTaniya Das .enable_mask = BIT(0), 1323*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1324*a4f780cdSTaniya Das .name = "gcc_pcie_noc_refgen_clk", 1325*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1326*a4f780cdSTaniya Das &gcc_pcie_noc_refgen_clk_src.clkr.hw, 1327*a4f780cdSTaniya Das }, 1328*a4f780cdSTaniya Das .num_parents = 1, 1329*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1330*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1331*a4f780cdSTaniya Das }, 1332*a4f780cdSTaniya Das }, 1333*a4f780cdSTaniya Das }; 1334*a4f780cdSTaniya Das 1335*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_s_cfg_clk = { 1336*a4f780cdSTaniya Das .halt_reg = 0x52064, 1337*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1338*a4f780cdSTaniya Das .clkr = { 1339*a4f780cdSTaniya Das .enable_reg = 0x9d018, 1340*a4f780cdSTaniya Das .enable_mask = BIT(5), 1341*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1342*a4f780cdSTaniya Das .name = "gcc_pcie_noc_s_cfg_clk", 1343*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1344*a4f780cdSTaniya Das }, 1345*a4f780cdSTaniya Das }, 1346*a4f780cdSTaniya Das }; 1347*a4f780cdSTaniya Das 1348*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_s_pdb_clk = { 1349*a4f780cdSTaniya Das .halt_reg = 0x5208c, 1350*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1351*a4f780cdSTaniya Das .hwcg_reg = 0x5208c, 1352*a4f780cdSTaniya Das .hwcg_bit = 1, 1353*a4f780cdSTaniya Das .clkr = { 1354*a4f780cdSTaniya Das .enable_reg = 0x9d018, 1355*a4f780cdSTaniya Das .enable_mask = BIT(9), 1356*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1357*a4f780cdSTaniya Das .name = "gcc_pcie_noc_s_pdb_clk", 1358*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1359*a4f780cdSTaniya Das }, 1360*a4f780cdSTaniya Das }, 1361*a4f780cdSTaniya Das }; 1362*a4f780cdSTaniya Das 1363*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_safety_clk = { 1364*a4f780cdSTaniya Das .halt_reg = 0x5207c, 1365*a4f780cdSTaniya Das .halt_check = BRANCH_HALT, 1366*a4f780cdSTaniya Das .clkr = { 1367*a4f780cdSTaniya Das .enable_reg = 0x5207c, 1368*a4f780cdSTaniya Das .enable_mask = BIT(0), 1369*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1370*a4f780cdSTaniya Das .name = "gcc_pcie_noc_safety_clk", 1371*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1372*a4f780cdSTaniya Das &gcc_pcie_noc_safety_clk_src.clkr.hw, 1373*a4f780cdSTaniya Das }, 1374*a4f780cdSTaniya Das .num_parents = 1, 1375*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1376*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1377*a4f780cdSTaniya Das }, 1378*a4f780cdSTaniya Das }, 1379*a4f780cdSTaniya Das }; 1380*a4f780cdSTaniya Das 1381*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_slave_axi_clk = { 1382*a4f780cdSTaniya Das .halt_reg = 0x52058, 1383*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1384*a4f780cdSTaniya Das .hwcg_reg = 0x52058, 1385*a4f780cdSTaniya Das .hwcg_bit = 1, 1386*a4f780cdSTaniya Das .clkr = { 1387*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1388*a4f780cdSTaniya Das .enable_mask = BIT(26), 1389*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1390*a4f780cdSTaniya Das .name = "gcc_pcie_noc_slave_axi_clk", 1391*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1392*a4f780cdSTaniya Das }, 1393*a4f780cdSTaniya Das }, 1394*a4f780cdSTaniya Das }; 1395*a4f780cdSTaniya Das 1396*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_tsctr_clk = { 1397*a4f780cdSTaniya Das .halt_reg = 0x52070, 1398*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1399*a4f780cdSTaniya Das .clkr = { 1400*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1401*a4f780cdSTaniya Das .enable_mask = BIT(18), 1402*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1403*a4f780cdSTaniya Das .name = "gcc_pcie_noc_tsctr_clk", 1404*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1405*a4f780cdSTaniya Das }, 1406*a4f780cdSTaniya Das }, 1407*a4f780cdSTaniya Das }; 1408*a4f780cdSTaniya Das 1409*a4f780cdSTaniya Das static struct clk_branch gcc_pcie_noc_xo_clk = { 1410*a4f780cdSTaniya Das .halt_reg = 0x52068, 1411*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1412*a4f780cdSTaniya Das .clkr = { 1413*a4f780cdSTaniya Das .enable_reg = 0x9d018, 1414*a4f780cdSTaniya Das .enable_mask = BIT(6), 1415*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1416*a4f780cdSTaniya Das .name = "gcc_pcie_noc_xo_clk", 1417*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1418*a4f780cdSTaniya Das }, 1419*a4f780cdSTaniya Das }, 1420*a4f780cdSTaniya Das }; 1421*a4f780cdSTaniya Das 1422*a4f780cdSTaniya Das static struct clk_branch gcc_pdm2_clk = { 1423*a4f780cdSTaniya Das .halt_reg = 0x1a00c, 1424*a4f780cdSTaniya Das .halt_check = BRANCH_HALT, 1425*a4f780cdSTaniya Das .clkr = { 1426*a4f780cdSTaniya Das .enable_reg = 0x1a00c, 1427*a4f780cdSTaniya Das .enable_mask = BIT(0), 1428*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1429*a4f780cdSTaniya Das .name = "gcc_pdm2_clk", 1430*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1431*a4f780cdSTaniya Das &gcc_pdm2_clk_src.clkr.hw, 1432*a4f780cdSTaniya Das }, 1433*a4f780cdSTaniya Das .num_parents = 1, 1434*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1435*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1436*a4f780cdSTaniya Das }, 1437*a4f780cdSTaniya Das }, 1438*a4f780cdSTaniya Das }; 1439*a4f780cdSTaniya Das 1440*a4f780cdSTaniya Das static struct clk_branch gcc_pdm_ahb_clk = { 1441*a4f780cdSTaniya Das .halt_reg = 0x1a004, 1442*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1443*a4f780cdSTaniya Das .hwcg_reg = 0x1a004, 1444*a4f780cdSTaniya Das .hwcg_bit = 1, 1445*a4f780cdSTaniya Das .clkr = { 1446*a4f780cdSTaniya Das .enable_reg = 0x1a004, 1447*a4f780cdSTaniya Das .enable_mask = BIT(0), 1448*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1449*a4f780cdSTaniya Das .name = "gcc_pdm_ahb_clk", 1450*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1451*a4f780cdSTaniya Das }, 1452*a4f780cdSTaniya Das }, 1453*a4f780cdSTaniya Das }; 1454*a4f780cdSTaniya Das 1455*a4f780cdSTaniya Das static struct clk_branch gcc_pdm_xo4_clk = { 1456*a4f780cdSTaniya Das .halt_reg = 0x1a008, 1457*a4f780cdSTaniya Das .halt_check = BRANCH_HALT, 1458*a4f780cdSTaniya Das .clkr = { 1459*a4f780cdSTaniya Das .enable_reg = 0x1a008, 1460*a4f780cdSTaniya Das .enable_mask = BIT(0), 1461*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1462*a4f780cdSTaniya Das .name = "gcc_pdm_xo4_clk", 1463*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1464*a4f780cdSTaniya Das }, 1465*a4f780cdSTaniya Das }, 1466*a4f780cdSTaniya Das }; 1467*a4f780cdSTaniya Das 1468*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_core_2x_clk = { 1469*a4f780cdSTaniya Das .halt_reg = 0x23020, 1470*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1471*a4f780cdSTaniya Das .clkr = { 1472*a4f780cdSTaniya Das .enable_reg = 0x9d000, 1473*a4f780cdSTaniya Das .enable_mask = BIT(24), 1474*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1475*a4f780cdSTaniya Das .name = "gcc_qupv3_wrap3_core_2x_clk", 1476*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1477*a4f780cdSTaniya Das }, 1478*a4f780cdSTaniya Das }, 1479*a4f780cdSTaniya Das }; 1480*a4f780cdSTaniya Das 1481*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_core_clk = { 1482*a4f780cdSTaniya Das .halt_reg = 0x2300c, 1483*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1484*a4f780cdSTaniya Das .clkr = { 1485*a4f780cdSTaniya Das .enable_reg = 0x9d000, 1486*a4f780cdSTaniya Das .enable_mask = BIT(23), 1487*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1488*a4f780cdSTaniya Das .name = "gcc_qupv3_wrap3_core_clk", 1489*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1490*a4f780cdSTaniya Das }, 1491*a4f780cdSTaniya Das }, 1492*a4f780cdSTaniya Das }; 1493*a4f780cdSTaniya Das 1494*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_m_clk = { 1495*a4f780cdSTaniya Das .halt_reg = 0x23004, 1496*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1497*a4f780cdSTaniya Das .hwcg_reg = 0x23004, 1498*a4f780cdSTaniya Das .hwcg_bit = 1, 1499*a4f780cdSTaniya Das .clkr = { 1500*a4f780cdSTaniya Das .enable_reg = 0x9d000, 1501*a4f780cdSTaniya Das .enable_mask = BIT(22), 1502*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1503*a4f780cdSTaniya Das .name = "gcc_qupv3_wrap3_m_clk", 1504*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1505*a4f780cdSTaniya Das }, 1506*a4f780cdSTaniya Das }, 1507*a4f780cdSTaniya Das }; 1508*a4f780cdSTaniya Das 1509*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_qspi_ref_clk = { 1510*a4f780cdSTaniya Das .halt_reg = 0x23170, 1511*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1512*a4f780cdSTaniya Das .clkr = { 1513*a4f780cdSTaniya Das .enable_reg = 0x9d000, 1514*a4f780cdSTaniya Das .enable_mask = BIT(26), 1515*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1516*a4f780cdSTaniya Das .name = "gcc_qupv3_wrap3_qspi_ref_clk", 1517*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1518*a4f780cdSTaniya Das &gcc_qupv3_wrap3_qspi_ref_clk_src.clkr.hw, 1519*a4f780cdSTaniya Das }, 1520*a4f780cdSTaniya Das .num_parents = 1, 1521*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1522*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1523*a4f780cdSTaniya Das }, 1524*a4f780cdSTaniya Das }, 1525*a4f780cdSTaniya Das }; 1526*a4f780cdSTaniya Das 1527*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_s0_clk = { 1528*a4f780cdSTaniya Das .halt_reg = 0x2315c, 1529*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1530*a4f780cdSTaniya Das .clkr = { 1531*a4f780cdSTaniya Das .enable_reg = 0x9d000, 1532*a4f780cdSTaniya Das .enable_mask = BIT(25), 1533*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1534*a4f780cdSTaniya Das .name = "gcc_qupv3_wrap3_s0_clk", 1535*a4f780cdSTaniya Das .parent_hws = (const struct clk_hw*[]) { 1536*a4f780cdSTaniya Das &gcc_qupv3_wrap3_s0_clk_src.clkr.hw, 1537*a4f780cdSTaniya Das }, 1538*a4f780cdSTaniya Das .num_parents = 1, 1539*a4f780cdSTaniya Das .flags = CLK_SET_RATE_PARENT, 1540*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1541*a4f780cdSTaniya Das }, 1542*a4f780cdSTaniya Das }, 1543*a4f780cdSTaniya Das }; 1544*a4f780cdSTaniya Das 1545*a4f780cdSTaniya Das static struct clk_branch gcc_qupv3_wrap3_s_ahb_clk = { 1546*a4f780cdSTaniya Das .halt_reg = 0x23008, 1547*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1548*a4f780cdSTaniya Das .hwcg_reg = 0x23008, 1549*a4f780cdSTaniya Das .hwcg_bit = 1, 1550*a4f780cdSTaniya Das .clkr = { 1551*a4f780cdSTaniya Das .enable_reg = 0x9d010, 1552*a4f780cdSTaniya Das .enable_mask = BIT(15), 1553*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1554*a4f780cdSTaniya Das .name = "gcc_qupv3_wrap3_s_ahb_clk", 1555*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1556*a4f780cdSTaniya Das }, 1557*a4f780cdSTaniya Das }, 1558*a4f780cdSTaniya Das }; 1559*a4f780cdSTaniya Das 1560*a4f780cdSTaniya Das static struct clk_branch gcc_smmu_pcie_qtc_vote_clk = { 1561*a4f780cdSTaniya Das .halt_reg = 0x7d0b8, 1562*a4f780cdSTaniya Das .halt_check = BRANCH_HALT_VOTED, 1563*a4f780cdSTaniya Das .clkr = { 1564*a4f780cdSTaniya Das .enable_reg = 0x7d0b8, 1565*a4f780cdSTaniya Das .enable_mask = BIT(0), 1566*a4f780cdSTaniya Das .hw.init = &(const struct clk_init_data) { 1567*a4f780cdSTaniya Das .name = "gcc_smmu_pcie_qtc_vote_clk", 1568*a4f780cdSTaniya Das .ops = &clk_branch2_ops, 1569*a4f780cdSTaniya Das }, 1570*a4f780cdSTaniya Das }, 1571*a4f780cdSTaniya Das }; 1572*a4f780cdSTaniya Das 1573*a4f780cdSTaniya Das static struct gdsc gcc_pcie_a_gdsc = { 1574*a4f780cdSTaniya Das .gdscr = 0x49004, 1575*a4f780cdSTaniya Das .en_rest_wait_val = 0x2, 1576*a4f780cdSTaniya Das .en_few_wait_val = 0x2, 1577*a4f780cdSTaniya Das .clk_dis_wait_val = 0xf, 1578*a4f780cdSTaniya Das .collapse_ctrl = 0x8d02c, 1579*a4f780cdSTaniya Das .collapse_mask = BIT(1), 1580*a4f780cdSTaniya Das .pd = { 1581*a4f780cdSTaniya Das .name = "gcc_pcie_a_gdsc", 1582*a4f780cdSTaniya Das }, 1583*a4f780cdSTaniya Das .pwrsts = PWRSTS_OFF_ON, 1584*a4f780cdSTaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 1585*a4f780cdSTaniya Das }; 1586*a4f780cdSTaniya Das 1587*a4f780cdSTaniya Das static struct gdsc gcc_pcie_a_phy_gdsc = { 1588*a4f780cdSTaniya Das .gdscr = 0x4d004, 1589*a4f780cdSTaniya Das .en_rest_wait_val = 0x2, 1590*a4f780cdSTaniya Das .en_few_wait_val = 0x2, 1591*a4f780cdSTaniya Das .clk_dis_wait_val = 0x2, 1592*a4f780cdSTaniya Das .collapse_ctrl = 0x8d02c, 1593*a4f780cdSTaniya Das .collapse_mask = BIT(5), 1594*a4f780cdSTaniya Das .pd = { 1595*a4f780cdSTaniya Das .name = "gcc_pcie_a_phy_gdsc", 1596*a4f780cdSTaniya Das }, 1597*a4f780cdSTaniya Das .pwrsts = PWRSTS_OFF_ON, 1598*a4f780cdSTaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 1599*a4f780cdSTaniya Das }; 1600*a4f780cdSTaniya Das 1601*a4f780cdSTaniya Das static struct gdsc gcc_pcie_b_gdsc = { 1602*a4f780cdSTaniya Das .gdscr = 0x4a004, 1603*a4f780cdSTaniya Das .en_rest_wait_val = 0x2, 1604*a4f780cdSTaniya Das .en_few_wait_val = 0x2, 1605*a4f780cdSTaniya Das .clk_dis_wait_val = 0xf, 1606*a4f780cdSTaniya Das .collapse_ctrl = 0x8d02c, 1607*a4f780cdSTaniya Das .collapse_mask = BIT(2), 1608*a4f780cdSTaniya Das .pd = { 1609*a4f780cdSTaniya Das .name = "gcc_pcie_b_gdsc", 1610*a4f780cdSTaniya Das }, 1611*a4f780cdSTaniya Das .pwrsts = PWRSTS_OFF_ON, 1612*a4f780cdSTaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 1613*a4f780cdSTaniya Das }; 1614*a4f780cdSTaniya Das 1615*a4f780cdSTaniya Das static struct gdsc gcc_pcie_b_phy_gdsc = { 1616*a4f780cdSTaniya Das .gdscr = 0x4e004, 1617*a4f780cdSTaniya Das .en_rest_wait_val = 0x2, 1618*a4f780cdSTaniya Das .en_few_wait_val = 0x2, 1619*a4f780cdSTaniya Das .clk_dis_wait_val = 0x2, 1620*a4f780cdSTaniya Das .collapse_ctrl = 0x8d02c, 1621*a4f780cdSTaniya Das .collapse_mask = BIT(6), 1622*a4f780cdSTaniya Das .pd = { 1623*a4f780cdSTaniya Das .name = "gcc_pcie_b_phy_gdsc", 1624*a4f780cdSTaniya Das }, 1625*a4f780cdSTaniya Das .pwrsts = PWRSTS_OFF_ON, 1626*a4f780cdSTaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 1627*a4f780cdSTaniya Das }; 1628*a4f780cdSTaniya Das 1629*a4f780cdSTaniya Das static struct gdsc gcc_pcie_c_gdsc = { 1630*a4f780cdSTaniya Das .gdscr = 0x4b004, 1631*a4f780cdSTaniya Das .en_rest_wait_val = 0x2, 1632*a4f780cdSTaniya Das .en_few_wait_val = 0x2, 1633*a4f780cdSTaniya Das .clk_dis_wait_val = 0xf, 1634*a4f780cdSTaniya Das .collapse_ctrl = 0x8d02c, 1635*a4f780cdSTaniya Das .collapse_mask = BIT(3), 1636*a4f780cdSTaniya Das .pd = { 1637*a4f780cdSTaniya Das .name = "gcc_pcie_c_gdsc", 1638*a4f780cdSTaniya Das }, 1639*a4f780cdSTaniya Das .pwrsts = PWRSTS_OFF_ON, 1640*a4f780cdSTaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 1641*a4f780cdSTaniya Das }; 1642*a4f780cdSTaniya Das 1643*a4f780cdSTaniya Das static struct gdsc gcc_pcie_c_phy_gdsc = { 1644*a4f780cdSTaniya Das .gdscr = 0x4f004, 1645*a4f780cdSTaniya Das .en_rest_wait_val = 0x2, 1646*a4f780cdSTaniya Das .en_few_wait_val = 0x2, 1647*a4f780cdSTaniya Das .clk_dis_wait_val = 0x2, 1648*a4f780cdSTaniya Das .collapse_ctrl = 0x8d02c, 1649*a4f780cdSTaniya Das .collapse_mask = BIT(7), 1650*a4f780cdSTaniya Das .pd = { 1651*a4f780cdSTaniya Das .name = "gcc_pcie_c_phy_gdsc", 1652*a4f780cdSTaniya Das }, 1653*a4f780cdSTaniya Das .pwrsts = PWRSTS_OFF_ON, 1654*a4f780cdSTaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 1655*a4f780cdSTaniya Das }; 1656*a4f780cdSTaniya Das 1657*a4f780cdSTaniya Das static struct gdsc gcc_pcie_d_gdsc = { 1658*a4f780cdSTaniya Das .gdscr = 0x4c004, 1659*a4f780cdSTaniya Das .en_rest_wait_val = 0x2, 1660*a4f780cdSTaniya Das .en_few_wait_val = 0x2, 1661*a4f780cdSTaniya Das .clk_dis_wait_val = 0xf, 1662*a4f780cdSTaniya Das .collapse_ctrl = 0x8d02c, 1663*a4f780cdSTaniya Das .collapse_mask = BIT(4), 1664*a4f780cdSTaniya Das .pd = { 1665*a4f780cdSTaniya Das .name = "gcc_pcie_d_gdsc", 1666*a4f780cdSTaniya Das }, 1667*a4f780cdSTaniya Das .pwrsts = PWRSTS_OFF_ON, 1668*a4f780cdSTaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 1669*a4f780cdSTaniya Das }; 1670*a4f780cdSTaniya Das 1671*a4f780cdSTaniya Das static struct gdsc gcc_pcie_d_phy_gdsc = { 1672*a4f780cdSTaniya Das .gdscr = 0x50004, 1673*a4f780cdSTaniya Das .en_rest_wait_val = 0x2, 1674*a4f780cdSTaniya Das .en_few_wait_val = 0x2, 1675*a4f780cdSTaniya Das .clk_dis_wait_val = 0x2, 1676*a4f780cdSTaniya Das .collapse_ctrl = 0x8d02c, 1677*a4f780cdSTaniya Das .collapse_mask = BIT(8), 1678*a4f780cdSTaniya Das .pd = { 1679*a4f780cdSTaniya Das .name = "gcc_pcie_d_phy_gdsc", 1680*a4f780cdSTaniya Das }, 1681*a4f780cdSTaniya Das .pwrsts = PWRSTS_OFF_ON, 1682*a4f780cdSTaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 1683*a4f780cdSTaniya Das }; 1684*a4f780cdSTaniya Das 1685*a4f780cdSTaniya Das static struct gdsc gcc_pcie_noc_gdsc = { 1686*a4f780cdSTaniya Das .gdscr = 0x52004, 1687*a4f780cdSTaniya Das .gds_hw_ctrl = 0x52018, 1688*a4f780cdSTaniya Das .en_rest_wait_val = 0x2, 1689*a4f780cdSTaniya Das .en_few_wait_val = 0x2, 1690*a4f780cdSTaniya Das .clk_dis_wait_val = 0xf, 1691*a4f780cdSTaniya Das .collapse_ctrl = 0x8d02c, 1692*a4f780cdSTaniya Das .collapse_mask = BIT(0), 1693*a4f780cdSTaniya Das .pd = { 1694*a4f780cdSTaniya Das .name = "gcc_pcie_noc_gdsc", 1695*a4f780cdSTaniya Das }, 1696*a4f780cdSTaniya Das .pwrsts = PWRSTS_OFF_ON, 1697*a4f780cdSTaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 1698*a4f780cdSTaniya Das }; 1699*a4f780cdSTaniya Das 1700*a4f780cdSTaniya Das static struct clk_regmap *gcc_nord_clocks[] = { 1701*a4f780cdSTaniya Das [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr, 1702*a4f780cdSTaniya Das [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, 1703*a4f780cdSTaniya Das [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr, 1704*a4f780cdSTaniya Das [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, 1705*a4f780cdSTaniya Das [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr, 1706*a4f780cdSTaniya Das [GCC_GPLL0] = &gcc_gpll0.clkr, 1707*a4f780cdSTaniya Das [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr, 1708*a4f780cdSTaniya Das [GCC_MMU_0_TCU_VOTE_CLK] = &gcc_mmu_0_tcu_vote_clk.clkr, 1709*a4f780cdSTaniya Das [GCC_PCIE_A_AUX_CLK] = &gcc_pcie_a_aux_clk.clkr, 1710*a4f780cdSTaniya Das [GCC_PCIE_A_AUX_CLK_SRC] = &gcc_pcie_a_aux_clk_src.clkr, 1711*a4f780cdSTaniya Das [GCC_PCIE_A_CFG_AHB_CLK] = &gcc_pcie_a_cfg_ahb_clk.clkr, 1712*a4f780cdSTaniya Das [GCC_PCIE_A_DTI_QTC_CLK] = &gcc_pcie_a_dti_qtc_clk.clkr, 1713*a4f780cdSTaniya Das [GCC_PCIE_A_MSTR_AXI_CLK] = &gcc_pcie_a_mstr_axi_clk.clkr, 1714*a4f780cdSTaniya Das [GCC_PCIE_A_PHY_AUX_CLK] = &gcc_pcie_a_phy_aux_clk.clkr, 1715*a4f780cdSTaniya Das [GCC_PCIE_A_PHY_AUX_CLK_SRC] = &gcc_pcie_a_phy_aux_clk_src.clkr, 1716*a4f780cdSTaniya Das [GCC_PCIE_A_PHY_RCHNG_CLK] = &gcc_pcie_a_phy_rchng_clk.clkr, 1717*a4f780cdSTaniya Das [GCC_PCIE_A_PHY_RCHNG_CLK_SRC] = &gcc_pcie_a_phy_rchng_clk_src.clkr, 1718*a4f780cdSTaniya Das [GCC_PCIE_A_PIPE_CLK] = &gcc_pcie_a_pipe_clk.clkr, 1719*a4f780cdSTaniya Das [GCC_PCIE_A_PIPE_CLK_SRC] = &gcc_pcie_a_pipe_clk_src.clkr, 1720*a4f780cdSTaniya Das [GCC_PCIE_A_SLV_AXI_CLK] = &gcc_pcie_a_slv_axi_clk.clkr, 1721*a4f780cdSTaniya Das [GCC_PCIE_A_SLV_Q2A_AXI_CLK] = &gcc_pcie_a_slv_q2a_axi_clk.clkr, 1722*a4f780cdSTaniya Das [GCC_PCIE_B_AUX_CLK] = &gcc_pcie_b_aux_clk.clkr, 1723*a4f780cdSTaniya Das [GCC_PCIE_B_AUX_CLK_SRC] = &gcc_pcie_b_aux_clk_src.clkr, 1724*a4f780cdSTaniya Das [GCC_PCIE_B_CFG_AHB_CLK] = &gcc_pcie_b_cfg_ahb_clk.clkr, 1725*a4f780cdSTaniya Das [GCC_PCIE_B_DTI_QTC_CLK] = &gcc_pcie_b_dti_qtc_clk.clkr, 1726*a4f780cdSTaniya Das [GCC_PCIE_B_MSTR_AXI_CLK] = &gcc_pcie_b_mstr_axi_clk.clkr, 1727*a4f780cdSTaniya Das [GCC_PCIE_B_PHY_AUX_CLK] = &gcc_pcie_b_phy_aux_clk.clkr, 1728*a4f780cdSTaniya Das [GCC_PCIE_B_PHY_AUX_CLK_SRC] = &gcc_pcie_b_phy_aux_clk_src.clkr, 1729*a4f780cdSTaniya Das [GCC_PCIE_B_PHY_RCHNG_CLK] = &gcc_pcie_b_phy_rchng_clk.clkr, 1730*a4f780cdSTaniya Das [GCC_PCIE_B_PHY_RCHNG_CLK_SRC] = &gcc_pcie_b_phy_rchng_clk_src.clkr, 1731*a4f780cdSTaniya Das [GCC_PCIE_B_PIPE_CLK] = &gcc_pcie_b_pipe_clk.clkr, 1732*a4f780cdSTaniya Das [GCC_PCIE_B_PIPE_CLK_SRC] = &gcc_pcie_b_pipe_clk_src.clkr, 1733*a4f780cdSTaniya Das [GCC_PCIE_B_SLV_AXI_CLK] = &gcc_pcie_b_slv_axi_clk.clkr, 1734*a4f780cdSTaniya Das [GCC_PCIE_B_SLV_Q2A_AXI_CLK] = &gcc_pcie_b_slv_q2a_axi_clk.clkr, 1735*a4f780cdSTaniya Das [GCC_PCIE_C_AUX_CLK] = &gcc_pcie_c_aux_clk.clkr, 1736*a4f780cdSTaniya Das [GCC_PCIE_C_AUX_CLK_SRC] = &gcc_pcie_c_aux_clk_src.clkr, 1737*a4f780cdSTaniya Das [GCC_PCIE_C_CFG_AHB_CLK] = &gcc_pcie_c_cfg_ahb_clk.clkr, 1738*a4f780cdSTaniya Das [GCC_PCIE_C_DTI_QTC_CLK] = &gcc_pcie_c_dti_qtc_clk.clkr, 1739*a4f780cdSTaniya Das [GCC_PCIE_C_MSTR_AXI_CLK] = &gcc_pcie_c_mstr_axi_clk.clkr, 1740*a4f780cdSTaniya Das [GCC_PCIE_C_PHY_AUX_CLK] = &gcc_pcie_c_phy_aux_clk.clkr, 1741*a4f780cdSTaniya Das [GCC_PCIE_C_PHY_AUX_CLK_SRC] = &gcc_pcie_c_phy_aux_clk_src.clkr, 1742*a4f780cdSTaniya Das [GCC_PCIE_C_PHY_RCHNG_CLK] = &gcc_pcie_c_phy_rchng_clk.clkr, 1743*a4f780cdSTaniya Das [GCC_PCIE_C_PHY_RCHNG_CLK_SRC] = &gcc_pcie_c_phy_rchng_clk_src.clkr, 1744*a4f780cdSTaniya Das [GCC_PCIE_C_PIPE_CLK] = &gcc_pcie_c_pipe_clk.clkr, 1745*a4f780cdSTaniya Das [GCC_PCIE_C_PIPE_CLK_SRC] = &gcc_pcie_c_pipe_clk_src.clkr, 1746*a4f780cdSTaniya Das [GCC_PCIE_C_SLV_AXI_CLK] = &gcc_pcie_c_slv_axi_clk.clkr, 1747*a4f780cdSTaniya Das [GCC_PCIE_C_SLV_Q2A_AXI_CLK] = &gcc_pcie_c_slv_q2a_axi_clk.clkr, 1748*a4f780cdSTaniya Das [GCC_PCIE_D_AUX_CLK] = &gcc_pcie_d_aux_clk.clkr, 1749*a4f780cdSTaniya Das [GCC_PCIE_D_AUX_CLK_SRC] = &gcc_pcie_d_aux_clk_src.clkr, 1750*a4f780cdSTaniya Das [GCC_PCIE_D_CFG_AHB_CLK] = &gcc_pcie_d_cfg_ahb_clk.clkr, 1751*a4f780cdSTaniya Das [GCC_PCIE_D_DTI_QTC_CLK] = &gcc_pcie_d_dti_qtc_clk.clkr, 1752*a4f780cdSTaniya Das [GCC_PCIE_D_MSTR_AXI_CLK] = &gcc_pcie_d_mstr_axi_clk.clkr, 1753*a4f780cdSTaniya Das [GCC_PCIE_D_PHY_AUX_CLK] = &gcc_pcie_d_phy_aux_clk.clkr, 1754*a4f780cdSTaniya Das [GCC_PCIE_D_PHY_AUX_CLK_SRC] = &gcc_pcie_d_phy_aux_clk_src.clkr, 1755*a4f780cdSTaniya Das [GCC_PCIE_D_PHY_RCHNG_CLK] = &gcc_pcie_d_phy_rchng_clk.clkr, 1756*a4f780cdSTaniya Das [GCC_PCIE_D_PHY_RCHNG_CLK_SRC] = &gcc_pcie_d_phy_rchng_clk_src.clkr, 1757*a4f780cdSTaniya Das [GCC_PCIE_D_PIPE_CLK] = &gcc_pcie_d_pipe_clk.clkr, 1758*a4f780cdSTaniya Das [GCC_PCIE_D_PIPE_CLK_SRC] = &gcc_pcie_d_pipe_clk_src.clkr, 1759*a4f780cdSTaniya Das [GCC_PCIE_D_SLV_AXI_CLK] = &gcc_pcie_d_slv_axi_clk.clkr, 1760*a4f780cdSTaniya Das [GCC_PCIE_D_SLV_Q2A_AXI_CLK] = &gcc_pcie_d_slv_q2a_axi_clk.clkr, 1761*a4f780cdSTaniya Das [GCC_PCIE_LINK_AHB_CLK] = &gcc_pcie_link_ahb_clk.clkr, 1762*a4f780cdSTaniya Das [GCC_PCIE_LINK_XO_CLK] = &gcc_pcie_link_xo_clk.clkr, 1763*a4f780cdSTaniya Das [GCC_PCIE_NOC_ASYNC_BRIDGE_CLK] = &gcc_pcie_noc_async_bridge_clk.clkr, 1764*a4f780cdSTaniya Das [GCC_PCIE_NOC_CNOC_SF_QX_CLK] = &gcc_pcie_noc_cnoc_sf_qx_clk.clkr, 1765*a4f780cdSTaniya Das [GCC_PCIE_NOC_M_CFG_CLK] = &gcc_pcie_noc_m_cfg_clk.clkr, 1766*a4f780cdSTaniya Das [GCC_PCIE_NOC_M_PDB_CLK] = &gcc_pcie_noc_m_pdb_clk.clkr, 1767*a4f780cdSTaniya Das [GCC_PCIE_NOC_MSTR_AXI_CLK] = &gcc_pcie_noc_mstr_axi_clk.clkr, 1768*a4f780cdSTaniya Das [GCC_PCIE_NOC_PWRCTL_CLK] = &gcc_pcie_noc_pwrctl_clk.clkr, 1769*a4f780cdSTaniya Das [GCC_PCIE_NOC_QOSGEN_EXTREF_CLK] = &gcc_pcie_noc_qosgen_extref_clk.clkr, 1770*a4f780cdSTaniya Das [GCC_PCIE_NOC_REFGEN_CLK] = &gcc_pcie_noc_refgen_clk.clkr, 1771*a4f780cdSTaniya Das [GCC_PCIE_NOC_REFGEN_CLK_SRC] = &gcc_pcie_noc_refgen_clk_src.clkr, 1772*a4f780cdSTaniya Das [GCC_PCIE_NOC_S_CFG_CLK] = &gcc_pcie_noc_s_cfg_clk.clkr, 1773*a4f780cdSTaniya Das [GCC_PCIE_NOC_S_PDB_CLK] = &gcc_pcie_noc_s_pdb_clk.clkr, 1774*a4f780cdSTaniya Das [GCC_PCIE_NOC_SAFETY_CLK] = &gcc_pcie_noc_safety_clk.clkr, 1775*a4f780cdSTaniya Das [GCC_PCIE_NOC_SAFETY_CLK_SRC] = &gcc_pcie_noc_safety_clk_src.clkr, 1776*a4f780cdSTaniya Das [GCC_PCIE_NOC_SLAVE_AXI_CLK] = &gcc_pcie_noc_slave_axi_clk.clkr, 1777*a4f780cdSTaniya Das [GCC_PCIE_NOC_TSCTR_CLK] = &gcc_pcie_noc_tsctr_clk.clkr, 1778*a4f780cdSTaniya Das [GCC_PCIE_NOC_XO_CLK] = &gcc_pcie_noc_xo_clk.clkr, 1779*a4f780cdSTaniya Das [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr, 1780*a4f780cdSTaniya Das [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr, 1781*a4f780cdSTaniya Das [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr, 1782*a4f780cdSTaniya Das [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr, 1783*a4f780cdSTaniya Das [GCC_QUPV3_WRAP3_CORE_2X_CLK] = &gcc_qupv3_wrap3_core_2x_clk.clkr, 1784*a4f780cdSTaniya Das [GCC_QUPV3_WRAP3_CORE_CLK] = &gcc_qupv3_wrap3_core_clk.clkr, 1785*a4f780cdSTaniya Das [GCC_QUPV3_WRAP3_M_CLK] = &gcc_qupv3_wrap3_m_clk.clkr, 1786*a4f780cdSTaniya Das [GCC_QUPV3_WRAP3_QSPI_REF_CLK] = &gcc_qupv3_wrap3_qspi_ref_clk.clkr, 1787*a4f780cdSTaniya Das [GCC_QUPV3_WRAP3_QSPI_REF_CLK_SRC] = &gcc_qupv3_wrap3_qspi_ref_clk_src.clkr, 1788*a4f780cdSTaniya Das [GCC_QUPV3_WRAP3_S0_CLK] = &gcc_qupv3_wrap3_s0_clk.clkr, 1789*a4f780cdSTaniya Das [GCC_QUPV3_WRAP3_S0_CLK_SRC] = &gcc_qupv3_wrap3_s0_clk_src.clkr, 1790*a4f780cdSTaniya Das [GCC_QUPV3_WRAP3_S_AHB_CLK] = &gcc_qupv3_wrap3_s_ahb_clk.clkr, 1791*a4f780cdSTaniya Das [GCC_SMMU_PCIE_QTC_VOTE_CLK] = &gcc_smmu_pcie_qtc_vote_clk.clkr, 1792*a4f780cdSTaniya Das }; 1793*a4f780cdSTaniya Das 1794*a4f780cdSTaniya Das static struct gdsc *gcc_nord_gdscs[] = { 1795*a4f780cdSTaniya Das [GCC_PCIE_A_GDSC] = &gcc_pcie_a_gdsc, 1796*a4f780cdSTaniya Das [GCC_PCIE_A_PHY_GDSC] = &gcc_pcie_a_phy_gdsc, 1797*a4f780cdSTaniya Das [GCC_PCIE_B_GDSC] = &gcc_pcie_b_gdsc, 1798*a4f780cdSTaniya Das [GCC_PCIE_B_PHY_GDSC] = &gcc_pcie_b_phy_gdsc, 1799*a4f780cdSTaniya Das [GCC_PCIE_C_GDSC] = &gcc_pcie_c_gdsc, 1800*a4f780cdSTaniya Das [GCC_PCIE_C_PHY_GDSC] = &gcc_pcie_c_phy_gdsc, 1801*a4f780cdSTaniya Das [GCC_PCIE_D_GDSC] = &gcc_pcie_d_gdsc, 1802*a4f780cdSTaniya Das [GCC_PCIE_D_PHY_GDSC] = &gcc_pcie_d_phy_gdsc, 1803*a4f780cdSTaniya Das [GCC_PCIE_NOC_GDSC] = &gcc_pcie_noc_gdsc, 1804*a4f780cdSTaniya Das }; 1805*a4f780cdSTaniya Das 1806*a4f780cdSTaniya Das static const struct qcom_reset_map gcc_nord_resets[] = { 1807*a4f780cdSTaniya Das [GCC_PCIE_A_BCR] = { 0x49000 }, 1808*a4f780cdSTaniya Das [GCC_PCIE_A_LINK_DOWN_BCR] = { 0xb9000 }, 1809*a4f780cdSTaniya Das [GCC_PCIE_A_NOCSR_COM_PHY_BCR] = { 0xb900c }, 1810*a4f780cdSTaniya Das [GCC_PCIE_A_PHY_BCR] = { 0x4d000 }, 1811*a4f780cdSTaniya Das [GCC_PCIE_A_PHY_CFG_AHB_BCR] = { 0xb9014 }, 1812*a4f780cdSTaniya Das [GCC_PCIE_A_PHY_COM_BCR] = { 0xb9018 }, 1813*a4f780cdSTaniya Das [GCC_PCIE_A_PHY_NOCSR_COM_PHY_BCR] = { 0xb9010 }, 1814*a4f780cdSTaniya Das [GCC_PCIE_B_BCR] = { 0x4a000 }, 1815*a4f780cdSTaniya Das [GCC_PCIE_B_LINK_DOWN_BCR] = { 0xba000 }, 1816*a4f780cdSTaniya Das [GCC_PCIE_B_NOCSR_COM_PHY_BCR] = { 0xba008 }, 1817*a4f780cdSTaniya Das [GCC_PCIE_B_PHY_BCR] = { 0x4e000 }, 1818*a4f780cdSTaniya Das [GCC_PCIE_B_PHY_CFG_AHB_BCR] = { 0xba010 }, 1819*a4f780cdSTaniya Das [GCC_PCIE_B_PHY_COM_BCR] = { 0xba014 }, 1820*a4f780cdSTaniya Das [GCC_PCIE_B_PHY_NOCSR_COM_PHY_BCR] = { 0xba00c }, 1821*a4f780cdSTaniya Das [GCC_PCIE_C_BCR] = { 0x4b000 }, 1822*a4f780cdSTaniya Das [GCC_PCIE_C_LINK_DOWN_BCR] = { 0xbb07c }, 1823*a4f780cdSTaniya Das [GCC_PCIE_C_NOCSR_COM_PHY_BCR] = { 0xbb084 }, 1824*a4f780cdSTaniya Das [GCC_PCIE_C_PHY_BCR] = { 0x4f000 }, 1825*a4f780cdSTaniya Das [GCC_PCIE_C_PHY_CFG_AHB_BCR] = { 0xbb08c }, 1826*a4f780cdSTaniya Das [GCC_PCIE_C_PHY_COM_BCR] = { 0xbb090 }, 1827*a4f780cdSTaniya Das [GCC_PCIE_C_PHY_NOCSR_COM_PHY_BCR] = { 0xbb088 }, 1828*a4f780cdSTaniya Das [GCC_PCIE_D_BCR] = { 0x4c000 }, 1829*a4f780cdSTaniya Das [GCC_PCIE_D_LINK_DOWN_BCR] = { 0xbc000 }, 1830*a4f780cdSTaniya Das [GCC_PCIE_D_NOCSR_COM_PHY_BCR] = { 0xbc008 }, 1831*a4f780cdSTaniya Das [GCC_PCIE_D_PHY_BCR] = { 0x50000 }, 1832*a4f780cdSTaniya Das [GCC_PCIE_D_PHY_CFG_AHB_BCR] = { 0xbc010 }, 1833*a4f780cdSTaniya Das [GCC_PCIE_D_PHY_COM_BCR] = { 0xbc014 }, 1834*a4f780cdSTaniya Das [GCC_PCIE_D_PHY_NOCSR_COM_PHY_BCR] = { 0xbc00c }, 1835*a4f780cdSTaniya Das [GCC_PCIE_NOC_BCR] = { 0x52000 }, 1836*a4f780cdSTaniya Das [GCC_PDM_BCR] = { 0x1a000 }, 1837*a4f780cdSTaniya Das [GCC_QUPV3_WRAPPER_3_BCR] = { 0x23000 }, 1838*a4f780cdSTaniya Das [GCC_TCSR_PCIE_BCR] = { 0xb901c }, 1839*a4f780cdSTaniya Das }; 1840*a4f780cdSTaniya Das 1841*a4f780cdSTaniya Das static const struct clk_rcg_dfs_data gcc_nord_dfs_clocks[] = { 1842*a4f780cdSTaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap3_qspi_ref_clk_src), 1843*a4f780cdSTaniya Das }; 1844*a4f780cdSTaniya Das 1845*a4f780cdSTaniya Das static const struct regmap_config gcc_nord_regmap_config = { 1846*a4f780cdSTaniya Das .reg_bits = 32, 1847*a4f780cdSTaniya Das .reg_stride = 4, 1848*a4f780cdSTaniya Das .val_bits = 32, 1849*a4f780cdSTaniya Das .max_register = 0x1f41f0, 1850*a4f780cdSTaniya Das .fast_io = true, 1851*a4f780cdSTaniya Das }; 1852*a4f780cdSTaniya Das 1853*a4f780cdSTaniya Das static struct qcom_cc_driver_data gcc_nord_driver_data = { 1854*a4f780cdSTaniya Das .dfs_rcgs = gcc_nord_dfs_clocks, 1855*a4f780cdSTaniya Das .num_dfs_rcgs = ARRAY_SIZE(gcc_nord_dfs_clocks), 1856*a4f780cdSTaniya Das }; 1857*a4f780cdSTaniya Das 1858*a4f780cdSTaniya Das static const struct qcom_cc_desc gcc_nord_desc = { 1859*a4f780cdSTaniya Das .config = &gcc_nord_regmap_config, 1860*a4f780cdSTaniya Das .clks = gcc_nord_clocks, 1861*a4f780cdSTaniya Das .num_clks = ARRAY_SIZE(gcc_nord_clocks), 1862*a4f780cdSTaniya Das .resets = gcc_nord_resets, 1863*a4f780cdSTaniya Das .num_resets = ARRAY_SIZE(gcc_nord_resets), 1864*a4f780cdSTaniya Das .gdscs = gcc_nord_gdscs, 1865*a4f780cdSTaniya Das .num_gdscs = ARRAY_SIZE(gcc_nord_gdscs), 1866*a4f780cdSTaniya Das .use_rpm = true, 1867*a4f780cdSTaniya Das .driver_data = &gcc_nord_driver_data, 1868*a4f780cdSTaniya Das }; 1869*a4f780cdSTaniya Das 1870*a4f780cdSTaniya Das static const struct of_device_id gcc_nord_match_table[] = { 1871*a4f780cdSTaniya Das { .compatible = "qcom,nord-gcc" }, 1872*a4f780cdSTaniya Das { } 1873*a4f780cdSTaniya Das }; 1874*a4f780cdSTaniya Das MODULE_DEVICE_TABLE(of, gcc_nord_match_table); 1875*a4f780cdSTaniya Das 1876*a4f780cdSTaniya Das static int gcc_nord_probe(struct platform_device *pdev) 1877*a4f780cdSTaniya Das { 1878*a4f780cdSTaniya Das return qcom_cc_probe(pdev, &gcc_nord_desc); 1879*a4f780cdSTaniya Das } 1880*a4f780cdSTaniya Das 1881*a4f780cdSTaniya Das static struct platform_driver gcc_nord_driver = { 1882*a4f780cdSTaniya Das .probe = gcc_nord_probe, 1883*a4f780cdSTaniya Das .driver = { 1884*a4f780cdSTaniya Das .name = "gcc-nord", 1885*a4f780cdSTaniya Das .of_match_table = gcc_nord_match_table, 1886*a4f780cdSTaniya Das }, 1887*a4f780cdSTaniya Das }; 1888*a4f780cdSTaniya Das 1889*a4f780cdSTaniya Das static int __init gcc_nord_init(void) 1890*a4f780cdSTaniya Das { 1891*a4f780cdSTaniya Das return platform_driver_register(&gcc_nord_driver); 1892*a4f780cdSTaniya Das } 1893*a4f780cdSTaniya Das subsys_initcall(gcc_nord_init); 1894*a4f780cdSTaniya Das 1895*a4f780cdSTaniya Das static void __exit gcc_nord_exit(void) 1896*a4f780cdSTaniya Das { 1897*a4f780cdSTaniya Das platform_driver_unregister(&gcc_nord_driver); 1898*a4f780cdSTaniya Das } 1899*a4f780cdSTaniya Das module_exit(gcc_nord_exit); 1900*a4f780cdSTaniya Das 1901*a4f780cdSTaniya Das MODULE_DESCRIPTION("QTI GCC NORD Driver"); 1902*a4f780cdSTaniya Das MODULE_LICENSE("GPL"); 1903