1*76fc060dSKathiravan Thirumoorthy // SPDX-License-Identifier: GPL-2.0-only 2*76fc060dSKathiravan Thirumoorthy /* 3*76fc060dSKathiravan Thirumoorthy * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 4*76fc060dSKathiravan Thirumoorthy */ 5*76fc060dSKathiravan Thirumoorthy 6*76fc060dSKathiravan Thirumoorthy #include <linux/clk-provider.h> 7*76fc060dSKathiravan Thirumoorthy #include <linux/module.h> 8*76fc060dSKathiravan Thirumoorthy #include <linux/platform_device.h> 9*76fc060dSKathiravan Thirumoorthy #include <linux/regmap.h> 10*76fc060dSKathiravan Thirumoorthy 11*76fc060dSKathiravan Thirumoorthy #include <dt-bindings/clock/qcom,ipq9650-gcc.h> 12*76fc060dSKathiravan Thirumoorthy #include <dt-bindings/reset/qcom,ipq9650-gcc.h> 13*76fc060dSKathiravan Thirumoorthy 14*76fc060dSKathiravan Thirumoorthy #include "clk-alpha-pll.h" 15*76fc060dSKathiravan Thirumoorthy #include "clk-branch.h" 16*76fc060dSKathiravan Thirumoorthy #include "clk-rcg.h" 17*76fc060dSKathiravan Thirumoorthy #include "clk-regmap.h" 18*76fc060dSKathiravan Thirumoorthy #include "clk-regmap-divider.h" 19*76fc060dSKathiravan Thirumoorthy #include "clk-regmap-mux.h" 20*76fc060dSKathiravan Thirumoorthy #include "clk-regmap-phy-mux.h" 21*76fc060dSKathiravan Thirumoorthy #include "reset.h" 22*76fc060dSKathiravan Thirumoorthy 23*76fc060dSKathiravan Thirumoorthy enum { 24*76fc060dSKathiravan Thirumoorthy DT_XO, 25*76fc060dSKathiravan Thirumoorthy DT_SLEEP_CLK, 26*76fc060dSKathiravan Thirumoorthy DT_PCIE30_PHY0_PIPE_CLK, 27*76fc060dSKathiravan Thirumoorthy DT_PCIE30_PHY1_PIPE_CLK, 28*76fc060dSKathiravan Thirumoorthy DT_PCIE30_PHY2_PIPE_CLK, 29*76fc060dSKathiravan Thirumoorthy DT_PCIE30_PHY3_PIPE_CLK, 30*76fc060dSKathiravan Thirumoorthy DT_PCIE30_PHY4_PIPE_CLK, 31*76fc060dSKathiravan Thirumoorthy DT_USB3_PHY0_CC_PIPE_CLK, 32*76fc060dSKathiravan Thirumoorthy DT_NSS_CMN_CLK, 33*76fc060dSKathiravan Thirumoorthy }; 34*76fc060dSKathiravan Thirumoorthy 35*76fc060dSKathiravan Thirumoorthy enum { 36*76fc060dSKathiravan Thirumoorthy P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 37*76fc060dSKathiravan Thirumoorthy P_GPLL0_OUT_MAIN, 38*76fc060dSKathiravan Thirumoorthy P_GPLL0_OUT_ODD, 39*76fc060dSKathiravan Thirumoorthy P_GPLL2_OUT_AUX, 40*76fc060dSKathiravan Thirumoorthy P_GPLL2_OUT_MAIN, 41*76fc060dSKathiravan Thirumoorthy P_GPLL4_OUT_MAIN, 42*76fc060dSKathiravan Thirumoorthy P_GPLL4_OUT_ODD, 43*76fc060dSKathiravan Thirumoorthy P_NSS_CMN_CLK, 44*76fc060dSKathiravan Thirumoorthy P_SLEEP_CLK, 45*76fc060dSKathiravan Thirumoorthy P_XO, 46*76fc060dSKathiravan Thirumoorthy }; 47*76fc060dSKathiravan Thirumoorthy 48*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_xo = { .index = DT_XO }; 49*76fc060dSKathiravan Thirumoorthy 50*76fc060dSKathiravan Thirumoorthy static struct clk_alpha_pll gpll0_main = { 51*76fc060dSKathiravan Thirumoorthy .offset = 0x20000, 52*76fc060dSKathiravan Thirumoorthy .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID], 53*76fc060dSKathiravan Thirumoorthy .clkr = { 54*76fc060dSKathiravan Thirumoorthy .enable_reg = 0xb000, 55*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 56*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 57*76fc060dSKathiravan Thirumoorthy .name = "gpll0_main", 58*76fc060dSKathiravan Thirumoorthy .parent_data = &gcc_parent_data_xo, 59*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 60*76fc060dSKathiravan Thirumoorthy .ops = &clk_alpha_pll_fixed_lucid_ops, 61*76fc060dSKathiravan Thirumoorthy }, 62*76fc060dSKathiravan Thirumoorthy }, 63*76fc060dSKathiravan Thirumoorthy }; 64*76fc060dSKathiravan Thirumoorthy 65*76fc060dSKathiravan Thirumoorthy static struct clk_fixed_factor gpll0_div2 = { 66*76fc060dSKathiravan Thirumoorthy .mult = 1, 67*76fc060dSKathiravan Thirumoorthy .div = 2, 68*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 69*76fc060dSKathiravan Thirumoorthy .name = "gpll0_div2", 70*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 71*76fc060dSKathiravan Thirumoorthy &gpll0_main.clkr.hw 72*76fc060dSKathiravan Thirumoorthy }, 73*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 74*76fc060dSKathiravan Thirumoorthy .ops = &clk_fixed_factor_ops, 75*76fc060dSKathiravan Thirumoorthy }, 76*76fc060dSKathiravan Thirumoorthy }; 77*76fc060dSKathiravan Thirumoorthy 78*76fc060dSKathiravan Thirumoorthy static struct clk_alpha_pll_postdiv gpll0 = { 79*76fc060dSKathiravan Thirumoorthy .offset = 0x20000, 80*76fc060dSKathiravan Thirumoorthy .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID], 81*76fc060dSKathiravan Thirumoorthy .width = 4, 82*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 83*76fc060dSKathiravan Thirumoorthy .name = "gpll0", 84*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 85*76fc060dSKathiravan Thirumoorthy &gpll0_main.clkr.hw }, 86*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 87*76fc060dSKathiravan Thirumoorthy .ops = &clk_alpha_pll_postdiv_ro_ops, 88*76fc060dSKathiravan Thirumoorthy }, 89*76fc060dSKathiravan Thirumoorthy }; 90*76fc060dSKathiravan Thirumoorthy 91*76fc060dSKathiravan Thirumoorthy static struct clk_alpha_pll gpll2 = { 92*76fc060dSKathiravan Thirumoorthy .offset = 0x21000, 93*76fc060dSKathiravan Thirumoorthy .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_ZONDA], 94*76fc060dSKathiravan Thirumoorthy .clkr = { 95*76fc060dSKathiravan Thirumoorthy .enable_reg = 0xb000, 96*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(1), 97*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 98*76fc060dSKathiravan Thirumoorthy .name = "gpll2", 99*76fc060dSKathiravan Thirumoorthy .parent_data = &gcc_parent_data_xo, 100*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 101*76fc060dSKathiravan Thirumoorthy .ops = &clk_alpha_pll_zonda_ops, 102*76fc060dSKathiravan Thirumoorthy }, 103*76fc060dSKathiravan Thirumoorthy }, 104*76fc060dSKathiravan Thirumoorthy }; 105*76fc060dSKathiravan Thirumoorthy 106*76fc060dSKathiravan Thirumoorthy static const struct clk_div_table post_div_table_gpll2_out_main[] = { 107*76fc060dSKathiravan Thirumoorthy { 0x1, 2 }, 108*76fc060dSKathiravan Thirumoorthy { } 109*76fc060dSKathiravan Thirumoorthy }; 110*76fc060dSKathiravan Thirumoorthy 111*76fc060dSKathiravan Thirumoorthy static struct clk_alpha_pll_postdiv gpll2_out_main = { 112*76fc060dSKathiravan Thirumoorthy .offset = 0x21000, 113*76fc060dSKathiravan Thirumoorthy .post_div_shift = 8, 114*76fc060dSKathiravan Thirumoorthy .post_div_table = post_div_table_gpll2_out_main, 115*76fc060dSKathiravan Thirumoorthy .num_post_div = ARRAY_SIZE(post_div_table_gpll2_out_main), 116*76fc060dSKathiravan Thirumoorthy .width = 2, 117*76fc060dSKathiravan Thirumoorthy .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_ZONDA], 118*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 119*76fc060dSKathiravan Thirumoorthy .name = "gpll2_out_main", 120*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 121*76fc060dSKathiravan Thirumoorthy &gpll2.clkr.hw, 122*76fc060dSKathiravan Thirumoorthy }, 123*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 124*76fc060dSKathiravan Thirumoorthy .ops = &clk_alpha_pll_postdiv_zonda_ops, 125*76fc060dSKathiravan Thirumoorthy }, 126*76fc060dSKathiravan Thirumoorthy }; 127*76fc060dSKathiravan Thirumoorthy 128*76fc060dSKathiravan Thirumoorthy static struct clk_alpha_pll gpll4 = { 129*76fc060dSKathiravan Thirumoorthy .offset = 0x22000, 130*76fc060dSKathiravan Thirumoorthy .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID], 131*76fc060dSKathiravan Thirumoorthy .clkr = { 132*76fc060dSKathiravan Thirumoorthy .enable_reg = 0xb000, 133*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(2), 134*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 135*76fc060dSKathiravan Thirumoorthy .name = "gpll4", 136*76fc060dSKathiravan Thirumoorthy .parent_data = &gcc_parent_data_xo, 137*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 138*76fc060dSKathiravan Thirumoorthy /* 139*76fc060dSKathiravan Thirumoorthy * There are no consumers for this GPLL in kernel yet, 140*76fc060dSKathiravan Thirumoorthy * (will be added soon), so the clock framework 141*76fc060dSKathiravan Thirumoorthy * disables this source. But some of the clocks 142*76fc060dSKathiravan Thirumoorthy * initialized by boot loaders uses this source. So we 143*76fc060dSKathiravan Thirumoorthy * need to keep this clock ON. Add the 144*76fc060dSKathiravan Thirumoorthy * CLK_IGNORE_UNUSED flag so the clock will not be 145*76fc060dSKathiravan Thirumoorthy * disabled. Once the consumer in kernel is added, we 146*76fc060dSKathiravan Thirumoorthy * can get rid of this flag. 147*76fc060dSKathiravan Thirumoorthy */ 148*76fc060dSKathiravan Thirumoorthy .flags = CLK_IS_CRITICAL, 149*76fc060dSKathiravan Thirumoorthy .ops = &clk_alpha_pll_fixed_lucid_ops, 150*76fc060dSKathiravan Thirumoorthy }, 151*76fc060dSKathiravan Thirumoorthy }, 152*76fc060dSKathiravan Thirumoorthy }; 153*76fc060dSKathiravan Thirumoorthy 154*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_xo[] = { 155*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 156*76fc060dSKathiravan Thirumoorthy }; 157*76fc060dSKathiravan Thirumoorthy 158*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_0[] = { 159*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 160*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_MAIN, 1 }, 161*76fc060dSKathiravan Thirumoorthy { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 }, 162*76fc060dSKathiravan Thirumoorthy }; 163*76fc060dSKathiravan Thirumoorthy 164*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_0[] = { 165*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 166*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 167*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0_div2.hw }, 168*76fc060dSKathiravan Thirumoorthy }; 169*76fc060dSKathiravan Thirumoorthy 170*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_1[] = { 171*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 172*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_MAIN, 1 }, 173*76fc060dSKathiravan Thirumoorthy { P_GPLL4_OUT_MAIN, 2 }, 174*76fc060dSKathiravan Thirumoorthy }; 175*76fc060dSKathiravan Thirumoorthy 176*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_1[] = { 177*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 178*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 179*76fc060dSKathiravan Thirumoorthy { .hw = &gpll4.clkr.hw }, 180*76fc060dSKathiravan Thirumoorthy }; 181*76fc060dSKathiravan Thirumoorthy 182*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_2[] = { 183*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 184*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_MAIN, 1 }, 185*76fc060dSKathiravan Thirumoorthy }; 186*76fc060dSKathiravan Thirumoorthy 187*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_2[] = { 188*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 189*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 190*76fc060dSKathiravan Thirumoorthy }; 191*76fc060dSKathiravan Thirumoorthy 192*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_3[] = { 193*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 194*76fc060dSKathiravan Thirumoorthy }; 195*76fc060dSKathiravan Thirumoorthy 196*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_3[] = { 197*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 198*76fc060dSKathiravan Thirumoorthy }; 199*76fc060dSKathiravan Thirumoorthy 200*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_4[] = { 201*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 202*76fc060dSKathiravan Thirumoorthy { P_GPLL4_OUT_MAIN, 1 }, 203*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_ODD, 2 }, 204*76fc060dSKathiravan Thirumoorthy { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 }, 205*76fc060dSKathiravan Thirumoorthy }; 206*76fc060dSKathiravan Thirumoorthy 207*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_4[] = { 208*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 209*76fc060dSKathiravan Thirumoorthy { .hw = &gpll4.clkr.hw }, 210*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 211*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0_div2.hw }, 212*76fc060dSKathiravan Thirumoorthy }; 213*76fc060dSKathiravan Thirumoorthy 214*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_5[] = { 215*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 216*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_MAIN, 1 }, 217*76fc060dSKathiravan Thirumoorthy { P_GPLL2_OUT_AUX, 2 }, 218*76fc060dSKathiravan Thirumoorthy }; 219*76fc060dSKathiravan Thirumoorthy 220*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_5[] = { 221*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 222*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 223*76fc060dSKathiravan Thirumoorthy { .hw = &gpll2.clkr.hw }, 224*76fc060dSKathiravan Thirumoorthy }; 225*76fc060dSKathiravan Thirumoorthy 226*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_6[] = { 227*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 228*76fc060dSKathiravan Thirumoorthy { P_GPLL4_OUT_ODD, 1 }, 229*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_MAIN, 3 }, 230*76fc060dSKathiravan Thirumoorthy { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 }, 231*76fc060dSKathiravan Thirumoorthy }; 232*76fc060dSKathiravan Thirumoorthy 233*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_6[] = { 234*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 235*76fc060dSKathiravan Thirumoorthy { .hw = &gpll4.clkr.hw }, 236*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 237*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0_div2.hw }, 238*76fc060dSKathiravan Thirumoorthy }; 239*76fc060dSKathiravan Thirumoorthy 240*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_7[] = { 241*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 242*76fc060dSKathiravan Thirumoorthy { P_NSS_CMN_CLK, 1 }, 243*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_ODD, 2 }, 244*76fc060dSKathiravan Thirumoorthy { P_GPLL2_OUT_AUX, 3 }, 245*76fc060dSKathiravan Thirumoorthy }; 246*76fc060dSKathiravan Thirumoorthy 247*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_7[] = { 248*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 249*76fc060dSKathiravan Thirumoorthy { .index = DT_NSS_CMN_CLK }, 250*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 251*76fc060dSKathiravan Thirumoorthy { .hw = &gpll2.clkr.hw }, 252*76fc060dSKathiravan Thirumoorthy }; 253*76fc060dSKathiravan Thirumoorthy 254*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_8[] = { 255*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 256*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_MAIN, 1 }, 257*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_ODD, 2 }, 258*76fc060dSKathiravan Thirumoorthy { P_SLEEP_CLK, 6 }, 259*76fc060dSKathiravan Thirumoorthy }; 260*76fc060dSKathiravan Thirumoorthy 261*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_8[] = { 262*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 263*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 264*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 265*76fc060dSKathiravan Thirumoorthy { .index = DT_SLEEP_CLK }, 266*76fc060dSKathiravan Thirumoorthy }; 267*76fc060dSKathiravan Thirumoorthy 268*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_9[] = { 269*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 270*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_MAIN, 1 }, 271*76fc060dSKathiravan Thirumoorthy { P_GPLL2_OUT_MAIN, 2 }, 272*76fc060dSKathiravan Thirumoorthy { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 }, 273*76fc060dSKathiravan Thirumoorthy }; 274*76fc060dSKathiravan Thirumoorthy 275*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_9[] = { 276*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 277*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 278*76fc060dSKathiravan Thirumoorthy { .hw = &gpll2_out_main.clkr.hw }, 279*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0_div2.hw }, 280*76fc060dSKathiravan Thirumoorthy }; 281*76fc060dSKathiravan Thirumoorthy 282*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_10[] = { 283*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 284*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_MAIN, 1 }, 285*76fc060dSKathiravan Thirumoorthy { P_GPLL4_OUT_MAIN, 2 }, 286*76fc060dSKathiravan Thirumoorthy { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 }, 287*76fc060dSKathiravan Thirumoorthy }; 288*76fc060dSKathiravan Thirumoorthy 289*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_10[] = { 290*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 291*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 292*76fc060dSKathiravan Thirumoorthy { .hw = &gpll4.clkr.hw }, 293*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0_div2.hw }, 294*76fc060dSKathiravan Thirumoorthy }; 295*76fc060dSKathiravan Thirumoorthy 296*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_11[] = { 297*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 298*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_ODD, 2 }, 299*76fc060dSKathiravan Thirumoorthy { P_SLEEP_CLK, 6 }, 300*76fc060dSKathiravan Thirumoorthy }; 301*76fc060dSKathiravan Thirumoorthy 302*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_11[] = { 303*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 304*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 305*76fc060dSKathiravan Thirumoorthy { .index = DT_SLEEP_CLK }, 306*76fc060dSKathiravan Thirumoorthy }; 307*76fc060dSKathiravan Thirumoorthy 308*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_12[] = { 309*76fc060dSKathiravan Thirumoorthy { P_SLEEP_CLK, 6 }, 310*76fc060dSKathiravan Thirumoorthy }; 311*76fc060dSKathiravan Thirumoorthy 312*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_12[] = { 313*76fc060dSKathiravan Thirumoorthy { .index = DT_SLEEP_CLK }, 314*76fc060dSKathiravan Thirumoorthy }; 315*76fc060dSKathiravan Thirumoorthy 316*76fc060dSKathiravan Thirumoorthy static const struct parent_map gcc_parent_map_13[] = { 317*76fc060dSKathiravan Thirumoorthy { P_XO, 0 }, 318*76fc060dSKathiravan Thirumoorthy { P_GPLL0_OUT_MAIN, 1 }, 319*76fc060dSKathiravan Thirumoorthy { P_GPLL4_OUT_MAIN, 2 }, 320*76fc060dSKathiravan Thirumoorthy { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 3 }, 321*76fc060dSKathiravan Thirumoorthy }; 322*76fc060dSKathiravan Thirumoorthy 323*76fc060dSKathiravan Thirumoorthy static const struct clk_parent_data gcc_parent_data_13[] = { 324*76fc060dSKathiravan Thirumoorthy { .index = DT_XO }, 325*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0.clkr.hw }, 326*76fc060dSKathiravan Thirumoorthy { .hw = &gpll4.clkr.hw }, 327*76fc060dSKathiravan Thirumoorthy { .hw = &gpll0_div2.hw }, 328*76fc060dSKathiravan Thirumoorthy }; 329*76fc060dSKathiravan Thirumoorthy 330*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_adss_pwm_clk_src[] = { 331*76fc060dSKathiravan Thirumoorthy F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0), 332*76fc060dSKathiravan Thirumoorthy { } 333*76fc060dSKathiravan Thirumoorthy }; 334*76fc060dSKathiravan Thirumoorthy 335*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_adss_pwm_clk_src = { 336*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x1c004, 337*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 338*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 339*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_2, 340*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_adss_pwm_clk_src, 341*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 342*76fc060dSKathiravan Thirumoorthy .name = "gcc_adss_pwm_clk_src", 343*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_2, 344*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_2), 345*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 346*76fc060dSKathiravan Thirumoorthy }, 347*76fc060dSKathiravan Thirumoorthy }; 348*76fc060dSKathiravan Thirumoorthy 349*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_gemnoc_anoc_pcie_clk_src[] = { 350*76fc060dSKathiravan Thirumoorthy F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 351*76fc060dSKathiravan Thirumoorthy { } 352*76fc060dSKathiravan Thirumoorthy }; 353*76fc060dSKathiravan Thirumoorthy 354*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_nss_ts_clk_src[] = { 355*76fc060dSKathiravan Thirumoorthy F(24000000, P_XO, 1, 0, 0), 356*76fc060dSKathiravan Thirumoorthy { } 357*76fc060dSKathiravan Thirumoorthy }; 358*76fc060dSKathiravan Thirumoorthy 359*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_xo_clk_src = { 360*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x34004, 361*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 362*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 363*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_xo, 364*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_nss_ts_clk_src, 365*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 366*76fc060dSKathiravan Thirumoorthy .name = "gcc_xo_clk_src", 367*76fc060dSKathiravan Thirumoorthy .parent_data = &gcc_parent_data_xo, 368*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 369*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 370*76fc060dSKathiravan Thirumoorthy }, 371*76fc060dSKathiravan Thirumoorthy }; 372*76fc060dSKathiravan Thirumoorthy 373*76fc060dSKathiravan Thirumoorthy static struct clk_fixed_factor gcc_xo_div4_clk_src = { 374*76fc060dSKathiravan Thirumoorthy .mult = 1, 375*76fc060dSKathiravan Thirumoorthy .div = 4, 376*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 377*76fc060dSKathiravan Thirumoorthy .name = "gcc_xo_div4_clk_src", 378*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 379*76fc060dSKathiravan Thirumoorthy &gcc_xo_clk_src.clkr.hw 380*76fc060dSKathiravan Thirumoorthy }, 381*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 382*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 383*76fc060dSKathiravan Thirumoorthy .ops = &clk_fixed_factor_ops, 384*76fc060dSKathiravan Thirumoorthy }, 385*76fc060dSKathiravan Thirumoorthy }; 386*76fc060dSKathiravan Thirumoorthy 387*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_nss_ts_clk_src = { 388*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x17088, 389*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 390*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 391*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_3, 392*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_nss_ts_clk_src, 393*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 394*76fc060dSKathiravan Thirumoorthy .name = "gcc_nss_ts_clk_src", 395*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_3, 396*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_3), 397*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 398*76fc060dSKathiravan Thirumoorthy }, 399*76fc060dSKathiravan Thirumoorthy }; 400*76fc060dSKathiravan Thirumoorthy 401*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_nssnoc_memnoc_bfdcd_clk_src[] = { 402*76fc060dSKathiravan Thirumoorthy F(462000000, P_NSS_CMN_CLK, 1, 0, 0), 403*76fc060dSKathiravan Thirumoorthy { } 404*76fc060dSKathiravan Thirumoorthy }; 405*76fc060dSKathiravan Thirumoorthy 406*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_nssnoc_memnoc_bfdcd_clk_src = { 407*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x17004, 408*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 409*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 410*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_7, 411*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_nssnoc_memnoc_bfdcd_clk_src, 412*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 413*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_memnoc_bfdcd_clk_src", 414*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_7, 415*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_7), 416*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 417*76fc060dSKathiravan Thirumoorthy }, 418*76fc060dSKathiravan Thirumoorthy }; 419*76fc060dSKathiravan Thirumoorthy 420*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_system_noc_bfdcd_clk_src[] = { 421*76fc060dSKathiravan Thirumoorthy F(24000000, P_XO, 1, 0, 0), 422*76fc060dSKathiravan Thirumoorthy F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0), 423*76fc060dSKathiravan Thirumoorthy F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 424*76fc060dSKathiravan Thirumoorthy F(266666667, P_GPLL4_OUT_MAIN, 4.5, 0, 0), 425*76fc060dSKathiravan Thirumoorthy { } 426*76fc060dSKathiravan Thirumoorthy }; 427*76fc060dSKathiravan Thirumoorthy 428*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_system_noc_bfdcd_clk_src = { 429*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2e004, 430*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_system_noc_bfdcd_clk_src, 431*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 432*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_13, 433*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 434*76fc060dSKathiravan Thirumoorthy .name = "gcc_system_noc_bfdcd_clk_src", 435*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_13, 436*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_13), 437*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 438*76fc060dSKathiravan Thirumoorthy }, 439*76fc060dSKathiravan Thirumoorthy }; 440*76fc060dSKathiravan Thirumoorthy 441*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_pcnoc_bfdcd_clk_src[] = { 442*76fc060dSKathiravan Thirumoorthy F(24000000, P_XO, 1, 0, 0), 443*76fc060dSKathiravan Thirumoorthy F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0), 444*76fc060dSKathiravan Thirumoorthy F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0), 445*76fc060dSKathiravan Thirumoorthy { } 446*76fc060dSKathiravan Thirumoorthy }; 447*76fc060dSKathiravan Thirumoorthy 448*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcnoc_bfdcd_clk_src = { 449*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x31004, 450*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 451*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 452*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 453*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcnoc_bfdcd_clk_src, 454*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 455*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcnoc_bfdcd_clk_src", 456*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 457*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 458*76fc060dSKathiravan Thirumoorthy /* 459*76fc060dSKathiravan Thirumoorthy * There are no consumers for this source in kernel yet, 460*76fc060dSKathiravan Thirumoorthy * (will be added soon), so the clock framework 461*76fc060dSKathiravan Thirumoorthy * disables this source. But some of the clocks 462*76fc060dSKathiravan Thirumoorthy * initialized by boot loaders uses this source. So we 463*76fc060dSKathiravan Thirumoorthy * need to keep this clock ON. Add the 464*76fc060dSKathiravan Thirumoorthy * CLK_IGNORE_UNUSED flag so the clock will not be 465*76fc060dSKathiravan Thirumoorthy * disabled. Once the consumer in kernel is added, we 466*76fc060dSKathiravan Thirumoorthy * can get rid of this flag. 467*76fc060dSKathiravan Thirumoorthy */ 468*76fc060dSKathiravan Thirumoorthy .flags = CLK_IS_CRITICAL, 469*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 470*76fc060dSKathiravan Thirumoorthy }, 471*76fc060dSKathiravan Thirumoorthy }; 472*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_pcie0_axi_m_clk_src[] = { 473*76fc060dSKathiravan Thirumoorthy F(200000000, P_GPLL4_OUT_MAIN, 6, 0, 0), 474*76fc060dSKathiravan Thirumoorthy { } 475*76fc060dSKathiravan Thirumoorthy }; 476*76fc060dSKathiravan Thirumoorthy 477*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie0_axi_m_clk_src = { 478*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x28018, 479*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 480*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 481*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 482*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src, 483*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 484*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_axi_m_clk_src", 485*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 486*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 487*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 488*76fc060dSKathiravan Thirumoorthy }, 489*76fc060dSKathiravan Thirumoorthy }; 490*76fc060dSKathiravan Thirumoorthy 491*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie0_axi_s_clk_src = { 492*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x28020, 493*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 494*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 495*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 496*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src, 497*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 498*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_axi_s_clk_src", 499*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 500*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 501*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 502*76fc060dSKathiravan Thirumoorthy }, 503*76fc060dSKathiravan Thirumoorthy }; 504*76fc060dSKathiravan Thirumoorthy 505*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie0_rchng_clk_src = { 506*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x28028, 507*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 508*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 509*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_2, 510*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_adss_pwm_clk_src, 511*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 512*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_rchng_clk_src", 513*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_2, 514*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_2), 515*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 516*76fc060dSKathiravan Thirumoorthy }, 517*76fc060dSKathiravan Thirumoorthy }; 518*76fc060dSKathiravan Thirumoorthy 519*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_pcie1_axi_m_clk_src[] = { 520*76fc060dSKathiravan Thirumoorthy F(266666667, P_GPLL4_OUT_MAIN, 4.5, 0, 0), 521*76fc060dSKathiravan Thirumoorthy { } 522*76fc060dSKathiravan Thirumoorthy }; 523*76fc060dSKathiravan Thirumoorthy 524*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie1_axi_m_clk_src = { 525*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x29018, 526*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 527*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 528*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 529*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie1_axi_m_clk_src, 530*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 531*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_axi_m_clk_src", 532*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 533*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 534*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 535*76fc060dSKathiravan Thirumoorthy }, 536*76fc060dSKathiravan Thirumoorthy }; 537*76fc060dSKathiravan Thirumoorthy 538*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie1_axi_s_clk_src = { 539*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x29020, 540*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 541*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 542*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 543*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src, 544*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 545*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_axi_s_clk_src", 546*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 547*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 548*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 549*76fc060dSKathiravan Thirumoorthy }, 550*76fc060dSKathiravan Thirumoorthy }; 551*76fc060dSKathiravan Thirumoorthy 552*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie1_rchng_clk_src = { 553*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x29028, 554*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 555*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 556*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_2, 557*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_adss_pwm_clk_src, 558*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 559*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_rchng_clk_src", 560*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_2, 561*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_2), 562*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 563*76fc060dSKathiravan Thirumoorthy }, 564*76fc060dSKathiravan Thirumoorthy }; 565*76fc060dSKathiravan Thirumoorthy 566*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie2_axi_m_clk_src = { 567*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2a018, 568*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 569*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 570*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 571*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie1_axi_m_clk_src, 572*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 573*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_axi_m_clk_src", 574*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 575*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 576*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 577*76fc060dSKathiravan Thirumoorthy }, 578*76fc060dSKathiravan Thirumoorthy }; 579*76fc060dSKathiravan Thirumoorthy 580*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie2_axi_s_clk_src = { 581*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2a020, 582*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 583*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 584*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 585*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src, 586*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 587*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_axi_s_clk_src", 588*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 589*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 590*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 591*76fc060dSKathiravan Thirumoorthy }, 592*76fc060dSKathiravan Thirumoorthy }; 593*76fc060dSKathiravan Thirumoorthy 594*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie2_rchng_clk_src = { 595*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2a028, 596*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 597*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 598*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_2, 599*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_adss_pwm_clk_src, 600*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 601*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_rchng_clk_src", 602*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_2, 603*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_2), 604*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 605*76fc060dSKathiravan Thirumoorthy }, 606*76fc060dSKathiravan Thirumoorthy }; 607*76fc060dSKathiravan Thirumoorthy 608*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie3_axi_m_clk_src = { 609*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2b018, 610*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 611*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 612*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 613*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie1_axi_m_clk_src, 614*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 615*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_axi_m_clk_src", 616*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 617*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 618*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 619*76fc060dSKathiravan Thirumoorthy }, 620*76fc060dSKathiravan Thirumoorthy }; 621*76fc060dSKathiravan Thirumoorthy 622*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie3_axi_s_clk_src = { 623*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2b020, 624*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 625*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 626*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 627*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src, 628*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 629*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_axi_s_clk_src", 630*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 631*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 632*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 633*76fc060dSKathiravan Thirumoorthy }, 634*76fc060dSKathiravan Thirumoorthy }; 635*76fc060dSKathiravan Thirumoorthy 636*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie3_rchng_clk_src = { 637*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2b028, 638*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 639*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 640*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_2, 641*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_adss_pwm_clk_src, 642*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 643*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_rchng_clk_src", 644*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_2, 645*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_2), 646*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 647*76fc060dSKathiravan Thirumoorthy }, 648*76fc060dSKathiravan Thirumoorthy }; 649*76fc060dSKathiravan Thirumoorthy 650*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie4_axi_m_clk_src = { 651*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x25004, 652*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 653*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 654*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 655*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src, 656*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 657*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_axi_m_clk_src", 658*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 659*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 660*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 661*76fc060dSKathiravan Thirumoorthy }, 662*76fc060dSKathiravan Thirumoorthy }; 663*76fc060dSKathiravan Thirumoorthy 664*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie4_axi_s_clk_src = { 665*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2500c, 666*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 667*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 668*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_1, 669*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src, 670*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 671*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_axi_s_clk_src", 672*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_1, 673*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_1), 674*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 675*76fc060dSKathiravan Thirumoorthy }, 676*76fc060dSKathiravan Thirumoorthy }; 677*76fc060dSKathiravan Thirumoorthy 678*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie4_rchng_clk_src = { 679*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x25014, 680*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 681*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 682*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_2, 683*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_adss_pwm_clk_src, 684*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 685*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_rchng_clk_src", 686*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_2, 687*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_2), 688*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 689*76fc060dSKathiravan Thirumoorthy }, 690*76fc060dSKathiravan Thirumoorthy }; 691*76fc060dSKathiravan Thirumoorthy 692*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_pcie_aux_clk_src[] = { 693*76fc060dSKathiravan Thirumoorthy F(20000000, P_GPLL0_OUT_MAIN, 10, 1, 4), 694*76fc060dSKathiravan Thirumoorthy { } 695*76fc060dSKathiravan Thirumoorthy }; 696*76fc060dSKathiravan Thirumoorthy 697*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_pcie_aux_clk_src = { 698*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x28004, 699*76fc060dSKathiravan Thirumoorthy .mnd_width = 16, 700*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 701*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_8, 702*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_pcie_aux_clk_src, 703*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 704*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie_aux_clk_src", 705*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_8, 706*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_8), 707*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 708*76fc060dSKathiravan Thirumoorthy }, 709*76fc060dSKathiravan Thirumoorthy }; 710*76fc060dSKathiravan Thirumoorthy 711*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_qdss_at_clk_src[] = { 712*76fc060dSKathiravan Thirumoorthy F(240000000, P_GPLL4_OUT_MAIN, 5, 0, 0), 713*76fc060dSKathiravan Thirumoorthy { } 714*76fc060dSKathiravan Thirumoorthy }; 715*76fc060dSKathiravan Thirumoorthy 716*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qdss_at_clk_src = { 717*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2d004, 718*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 719*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 720*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_4, 721*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qdss_at_clk_src, 722*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 723*76fc060dSKathiravan Thirumoorthy .name = "gcc_qdss_at_clk_src", 724*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_4, 725*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_4), 726*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 727*76fc060dSKathiravan Thirumoorthy }, 728*76fc060dSKathiravan Thirumoorthy }; 729*76fc060dSKathiravan Thirumoorthy 730*76fc060dSKathiravan Thirumoorthy static struct clk_fixed_factor gcc_eud_at_div_clk_src = { 731*76fc060dSKathiravan Thirumoorthy .mult = 1, 732*76fc060dSKathiravan Thirumoorthy .div = 6, 733*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 734*76fc060dSKathiravan Thirumoorthy .name = "gcc_eud_at_div_clk_src", 735*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 736*76fc060dSKathiravan Thirumoorthy &gcc_qdss_at_clk_src.clkr.hw }, 737*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 738*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 739*76fc060dSKathiravan Thirumoorthy .ops = &clk_fixed_factor_ops, 740*76fc060dSKathiravan Thirumoorthy }, 741*76fc060dSKathiravan Thirumoorthy }; 742*76fc060dSKathiravan Thirumoorthy 743*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_qdss_tsctr_clk_src[] = { 744*76fc060dSKathiravan Thirumoorthy F(600000000, P_GPLL4_OUT_MAIN, 2, 0, 0), 745*76fc060dSKathiravan Thirumoorthy { } 746*76fc060dSKathiravan Thirumoorthy }; 747*76fc060dSKathiravan Thirumoorthy 748*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qdss_tsctr_clk_src = { 749*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2d01c, 750*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 751*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 752*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_4, 753*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qdss_tsctr_clk_src, 754*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 755*76fc060dSKathiravan Thirumoorthy .name = "gcc_qdss_tsctr_clk_src", 756*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_4, 757*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_4), 758*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 759*76fc060dSKathiravan Thirumoorthy }, 760*76fc060dSKathiravan Thirumoorthy }; 761*76fc060dSKathiravan Thirumoorthy 762*76fc060dSKathiravan Thirumoorthy static struct clk_fixed_factor gcc_qdss_dap_sync_clk_src = { 763*76fc060dSKathiravan Thirumoorthy .mult = 1, 764*76fc060dSKathiravan Thirumoorthy .div = 4, 765*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 766*76fc060dSKathiravan Thirumoorthy .name = "gcc_qdss_dap_sync_clk_src", 767*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 768*76fc060dSKathiravan Thirumoorthy &gcc_qdss_tsctr_clk_src.clkr.hw 769*76fc060dSKathiravan Thirumoorthy }, 770*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 771*76fc060dSKathiravan Thirumoorthy .ops = &clk_fixed_factor_ops, 772*76fc060dSKathiravan Thirumoorthy }, 773*76fc060dSKathiravan Thirumoorthy }; 774*76fc060dSKathiravan Thirumoorthy 775*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_sleep_clk_src[] = { 776*76fc060dSKathiravan Thirumoorthy F(32000, P_SLEEP_CLK, 1, 0, 0), 777*76fc060dSKathiravan Thirumoorthy { } 778*76fc060dSKathiravan Thirumoorthy }; 779*76fc060dSKathiravan Thirumoorthy 780*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_sleep_clk_src = { 781*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x3400c, 782*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 783*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 784*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_12, 785*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_sleep_clk_src, 786*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 787*76fc060dSKathiravan Thirumoorthy .name = "gcc_sleep_clk_src", 788*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_12, 789*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_12), 790*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 791*76fc060dSKathiravan Thirumoorthy }, 792*76fc060dSKathiravan Thirumoorthy }; 793*76fc060dSKathiravan Thirumoorthy 794*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_qpic_io_macro_clk_src[] = { 795*76fc060dSKathiravan Thirumoorthy F(24000000, P_XO, 1, 0, 0), 796*76fc060dSKathiravan Thirumoorthy F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0), 797*76fc060dSKathiravan Thirumoorthy F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 798*76fc060dSKathiravan Thirumoorthy F(320000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0), 799*76fc060dSKathiravan Thirumoorthy F(400000000, P_GPLL0_OUT_MAIN, 2, 0, 0), 800*76fc060dSKathiravan Thirumoorthy { } 801*76fc060dSKathiravan Thirumoorthy }; 802*76fc060dSKathiravan Thirumoorthy 803*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qpic_clk_src = { 804*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x32020, 805*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 806*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 807*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_5, 808*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qpic_io_macro_clk_src, 809*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 810*76fc060dSKathiravan Thirumoorthy .name = "gcc_qpic_clk_src", 811*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_5, 812*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_5), 813*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 814*76fc060dSKathiravan Thirumoorthy }, 815*76fc060dSKathiravan Thirumoorthy }; 816*76fc060dSKathiravan Thirumoorthy 817*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qpic_io_macro_clk_src = { 818*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x32004, 819*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 820*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 821*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_5, 822*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qpic_io_macro_clk_src, 823*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 824*76fc060dSKathiravan Thirumoorthy .name = "gcc_qpic_io_macro_clk_src", 825*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_5, 826*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_5), 827*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 828*76fc060dSKathiravan Thirumoorthy }, 829*76fc060dSKathiravan Thirumoorthy }; 830*76fc060dSKathiravan Thirumoorthy 831*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qupv3_2x_core_clk_src = { 832*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x100c, 833*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 834*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 835*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 836*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_gemnoc_anoc_pcie_clk_src, 837*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 838*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_2x_core_clk_src", 839*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 840*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 841*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 842*76fc060dSKathiravan Thirumoorthy }, 843*76fc060dSKathiravan Thirumoorthy }; 844*76fc060dSKathiravan Thirumoorthy 845*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_qupv3_wrap_se0_clk_src[] = { 846*76fc060dSKathiravan Thirumoorthy F(960000, P_XO, 10, 2, 5), 847*76fc060dSKathiravan Thirumoorthy F(3686636, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 2, 217), 848*76fc060dSKathiravan Thirumoorthy F(4800000, P_XO, 5, 0, 0), 849*76fc060dSKathiravan Thirumoorthy F(7373272, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 4, 217), 850*76fc060dSKathiravan Thirumoorthy F(9600000, P_XO, 2.5, 0, 0), 851*76fc060dSKathiravan Thirumoorthy F(14746544, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 8, 217), 852*76fc060dSKathiravan Thirumoorthy F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5), 853*76fc060dSKathiravan Thirumoorthy F(24000000, P_XO, 1, 0, 0), 854*76fc060dSKathiravan Thirumoorthy F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2), 855*76fc060dSKathiravan Thirumoorthy F(32000000, P_GPLL0_OUT_MAIN, 1, 1, 25), 856*76fc060dSKathiravan Thirumoorthy F(40000000, P_GPLL0_OUT_MAIN, 1, 1, 20), 857*76fc060dSKathiravan Thirumoorthy F(46400000, P_GPLL0_OUT_MAIN, 2, 29, 250), 858*76fc060dSKathiravan Thirumoorthy F(48000000, P_GPLL0_OUT_MAIN, 1, 3, 50), 859*76fc060dSKathiravan Thirumoorthy F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0), 860*76fc060dSKathiravan Thirumoorthy F(51200000, P_GPLL0_OUT_MAIN, 1, 8, 125), 861*76fc060dSKathiravan Thirumoorthy F(56000000, P_GPLL0_OUT_MAIN, 1, 7, 100), 862*76fc060dSKathiravan Thirumoorthy F(58986175, P_GPLL0_OUT_MAIN, 1, 16, 217), 863*76fc060dSKathiravan Thirumoorthy F(60000000, P_GPLL0_OUT_MAIN, 1, 3, 40), 864*76fc060dSKathiravan Thirumoorthy F(64000000, P_GPLL0_OUT_MAIN, 12.5, 0, 0), 865*76fc060dSKathiravan Thirumoorthy { } 866*76fc060dSKathiravan Thirumoorthy }; 867*76fc060dSKathiravan Thirumoorthy 868*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qupv3_wrap_se0_clk_src = { 869*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2018, 870*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 871*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 872*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 873*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qupv3_wrap_se0_clk_src, 874*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 875*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se0_clk_src", 876*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 877*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 878*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 879*76fc060dSKathiravan Thirumoorthy }, 880*76fc060dSKathiravan Thirumoorthy }; 881*76fc060dSKathiravan Thirumoorthy 882*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qupv3_wrap_se1_clk_src = { 883*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x3018, 884*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 885*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 886*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 887*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qupv3_wrap_se0_clk_src, 888*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 889*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se1_clk_src", 890*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 891*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 892*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 893*76fc060dSKathiravan Thirumoorthy }, 894*76fc060dSKathiravan Thirumoorthy }; 895*76fc060dSKathiravan Thirumoorthy 896*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qupv3_wrap_se2_clk_src = { 897*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x3034, 898*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 899*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 900*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 901*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qupv3_wrap_se0_clk_src, 902*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 903*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se2_clk_src", 904*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 905*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 906*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 907*76fc060dSKathiravan Thirumoorthy }, 908*76fc060dSKathiravan Thirumoorthy }; 909*76fc060dSKathiravan Thirumoorthy 910*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qupv3_wrap_se3_clk_src = { 911*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x3050, 912*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 913*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 914*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 915*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qupv3_wrap_se0_clk_src, 916*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 917*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se3_clk_src", 918*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 919*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 920*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 921*76fc060dSKathiravan Thirumoorthy }, 922*76fc060dSKathiravan Thirumoorthy }; 923*76fc060dSKathiravan Thirumoorthy 924*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_qupv3_wrap_se4_clk_src[] = { 925*76fc060dSKathiravan Thirumoorthy F(960000, P_XO, 10, 2, 5), 926*76fc060dSKathiravan Thirumoorthy F(3686636, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 2, 217), 927*76fc060dSKathiravan Thirumoorthy F(4800000, P_XO, 5, 0, 0), 928*76fc060dSKathiravan Thirumoorthy F(7373272, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 4, 217), 929*76fc060dSKathiravan Thirumoorthy F(9600000, P_XO, 2.5, 0, 0), 930*76fc060dSKathiravan Thirumoorthy F(14746544, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 8, 217), 931*76fc060dSKathiravan Thirumoorthy F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5), 932*76fc060dSKathiravan Thirumoorthy F(24000000, P_XO, 1, 0, 0), 933*76fc060dSKathiravan Thirumoorthy F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2), 934*76fc060dSKathiravan Thirumoorthy F(32000000, P_GPLL0_OUT_MAIN, 1, 1, 25), 935*76fc060dSKathiravan Thirumoorthy F(40000000, P_GPLL0_OUT_MAIN, 1, 1, 20), 936*76fc060dSKathiravan Thirumoorthy F(46400000, P_GPLL0_OUT_MAIN, 2, 29, 250), 937*76fc060dSKathiravan Thirumoorthy F(48000000, P_GPLL0_OUT_MAIN, 1, 3, 50), 938*76fc060dSKathiravan Thirumoorthy F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0), 939*76fc060dSKathiravan Thirumoorthy F(51200000, P_GPLL0_OUT_MAIN, 1, 8, 125), 940*76fc060dSKathiravan Thirumoorthy F(56000000, P_GPLL0_OUT_MAIN, 1, 7, 100), 941*76fc060dSKathiravan Thirumoorthy F(58986175, P_GPLL0_OUT_MAIN, 1, 16, 217), 942*76fc060dSKathiravan Thirumoorthy F(60000000, P_GPLL0_OUT_MAIN, 1, 3, 40), 943*76fc060dSKathiravan Thirumoorthy F(64000000, P_GPLL0_OUT_MAIN, 12.5, 0, 0), 944*76fc060dSKathiravan Thirumoorthy F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0), 945*76fc060dSKathiravan Thirumoorthy { } 946*76fc060dSKathiravan Thirumoorthy }; 947*76fc060dSKathiravan Thirumoorthy 948*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qupv3_wrap_se4_clk_src = { 949*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x306c, 950*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 951*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 952*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 953*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qupv3_wrap_se4_clk_src, 954*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 955*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se4_clk_src", 956*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 957*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 958*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 959*76fc060dSKathiravan Thirumoorthy }, 960*76fc060dSKathiravan Thirumoorthy }; 961*76fc060dSKathiravan Thirumoorthy 962*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qupv3_wrap_se5_clk_src = { 963*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x3090, 964*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 965*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 966*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 967*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qupv3_wrap_se4_clk_src, 968*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 969*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se5_clk_src", 970*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 971*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 972*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 973*76fc060dSKathiravan Thirumoorthy }, 974*76fc060dSKathiravan Thirumoorthy }; 975*76fc060dSKathiravan Thirumoorthy 976*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qupv3_wrap_se6_clk_src = { 977*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x4004, 978*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 979*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 980*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 981*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qupv3_wrap_se0_clk_src, 982*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 983*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se6_clk_src", 984*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 985*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 986*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 987*76fc060dSKathiravan Thirumoorthy }, 988*76fc060dSKathiravan Thirumoorthy }; 989*76fc060dSKathiravan Thirumoorthy 990*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_qupv3_wrap_se7_clk_src = { 991*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x4020, 992*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 993*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 994*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 995*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_qupv3_wrap_se0_clk_src, 996*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 997*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se7_clk_src", 998*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 999*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1000*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 1001*76fc060dSKathiravan Thirumoorthy }, 1002*76fc060dSKathiravan Thirumoorthy }; 1003*76fc060dSKathiravan Thirumoorthy 1004*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = { 1005*76fc060dSKathiravan Thirumoorthy F(144000, P_XO, 16, 12, 125), 1006*76fc060dSKathiravan Thirumoorthy F(400000, P_XO, 12, 1, 5), 1007*76fc060dSKathiravan Thirumoorthy F(24000000, P_GPLL2_OUT_MAIN, 12, 1, 2), 1008*76fc060dSKathiravan Thirumoorthy F(48000000, P_GPLL2_OUT_MAIN, 12, 0, 0), 1009*76fc060dSKathiravan Thirumoorthy F(96000000, P_GPLL2_OUT_MAIN, 6, 0, 0), 1010*76fc060dSKathiravan Thirumoorthy F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0), 1011*76fc060dSKathiravan Thirumoorthy F(192000000, P_GPLL2_OUT_MAIN, 3, 0, 0), 1012*76fc060dSKathiravan Thirumoorthy F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 1013*76fc060dSKathiravan Thirumoorthy { } 1014*76fc060dSKathiravan Thirumoorthy }; 1015*76fc060dSKathiravan Thirumoorthy 1016*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_sdcc1_apps_clk_src = { 1017*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x33004, 1018*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 1019*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 1020*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_9, 1021*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_sdcc1_apps_clk_src, 1022*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1023*76fc060dSKathiravan Thirumoorthy .name = "gcc_sdcc1_apps_clk_src", 1024*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_9, 1025*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_9), 1026*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_floor_ops, 1027*76fc060dSKathiravan Thirumoorthy }, 1028*76fc060dSKathiravan Thirumoorthy }; 1029*76fc060dSKathiravan Thirumoorthy 1030*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = { 1031*76fc060dSKathiravan Thirumoorthy F(300000000, P_GPLL4_OUT_MAIN, 4, 0, 0), 1032*76fc060dSKathiravan Thirumoorthy { } 1033*76fc060dSKathiravan Thirumoorthy }; 1034*76fc060dSKathiravan Thirumoorthy 1035*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = { 1036*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x33018, 1037*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 1038*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 1039*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_10, 1040*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src, 1041*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1042*76fc060dSKathiravan Thirumoorthy .name = "gcc_sdcc1_ice_core_clk_src", 1043*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_10, 1044*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_10), 1045*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_floor_ops, 1046*76fc060dSKathiravan Thirumoorthy }, 1047*76fc060dSKathiravan Thirumoorthy }; 1048*76fc060dSKathiravan Thirumoorthy 1049*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_uniphy_sys_clk_src = { 1050*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x17090, 1051*76fc060dSKathiravan Thirumoorthy .mnd_width = 0, 1052*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 1053*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_3, 1054*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_nss_ts_clk_src, 1055*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1056*76fc060dSKathiravan Thirumoorthy .name = "gcc_uniphy_sys_clk_src", 1057*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_3, 1058*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_3), 1059*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 1060*76fc060dSKathiravan Thirumoorthy }, 1061*76fc060dSKathiravan Thirumoorthy }; 1062*76fc060dSKathiravan Thirumoorthy 1063*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_usb0_aux_clk_src = { 1064*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2c018, 1065*76fc060dSKathiravan Thirumoorthy .mnd_width = 16, 1066*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 1067*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_11, 1068*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_nss_ts_clk_src, 1069*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1070*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_aux_clk_src", 1071*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_11, 1072*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_11), 1073*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 1074*76fc060dSKathiravan Thirumoorthy }, 1075*76fc060dSKathiravan Thirumoorthy }; 1076*76fc060dSKathiravan Thirumoorthy 1077*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_usb0_master_clk_src = { 1078*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2c004, 1079*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 1080*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 1081*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_0, 1082*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_gemnoc_anoc_pcie_clk_src, 1083*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1084*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_master_clk_src", 1085*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_0, 1086*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1087*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 1088*76fc060dSKathiravan Thirumoorthy }, 1089*76fc060dSKathiravan Thirumoorthy }; 1090*76fc060dSKathiravan Thirumoorthy 1091*76fc060dSKathiravan Thirumoorthy static const struct freq_tbl ftbl_gcc_usb0_mock_utmi_clk_src[] = { 1092*76fc060dSKathiravan Thirumoorthy F(24000000, P_XO, 1, 0, 0), 1093*76fc060dSKathiravan Thirumoorthy F(60000000, P_GPLL4_OUT_ODD, 10, 1, 2), 1094*76fc060dSKathiravan Thirumoorthy { } 1095*76fc060dSKathiravan Thirumoorthy }; 1096*76fc060dSKathiravan Thirumoorthy 1097*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_usb0_mock_utmi_clk_src = { 1098*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x2c02c, 1099*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 1100*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 1101*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_6, 1102*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_usb0_mock_utmi_clk_src, 1103*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1104*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_mock_utmi_clk_src", 1105*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_6, 1106*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_6), 1107*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 1108*76fc060dSKathiravan Thirumoorthy }, 1109*76fc060dSKathiravan Thirumoorthy }; 1110*76fc060dSKathiravan Thirumoorthy 1111*76fc060dSKathiravan Thirumoorthy static struct clk_rcg2 gcc_usb1_mock_utmi_clk_src = { 1112*76fc060dSKathiravan Thirumoorthy .cmd_rcgr = 0x3c004, 1113*76fc060dSKathiravan Thirumoorthy .mnd_width = 8, 1114*76fc060dSKathiravan Thirumoorthy .hid_width = 5, 1115*76fc060dSKathiravan Thirumoorthy .parent_map = gcc_parent_map_6, 1116*76fc060dSKathiravan Thirumoorthy .freq_tbl = ftbl_gcc_usb0_mock_utmi_clk_src, 1117*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1118*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb1_mock_utmi_clk_src", 1119*76fc060dSKathiravan Thirumoorthy .parent_data = gcc_parent_data_6, 1120*76fc060dSKathiravan Thirumoorthy .num_parents = ARRAY_SIZE(gcc_parent_data_6), 1121*76fc060dSKathiravan Thirumoorthy .ops = &clk_rcg2_ops, 1122*76fc060dSKathiravan Thirumoorthy }, 1123*76fc060dSKathiravan Thirumoorthy }; 1124*76fc060dSKathiravan Thirumoorthy 1125*76fc060dSKathiravan Thirumoorthy static struct clk_regmap_div gcc_nssnoc_memnoc_div_clk_src = { 1126*76fc060dSKathiravan Thirumoorthy .reg = 0x1700c, 1127*76fc060dSKathiravan Thirumoorthy .shift = 0, 1128*76fc060dSKathiravan Thirumoorthy .width = 4, 1129*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1130*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_memnoc_div_clk_src", 1131*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1132*76fc060dSKathiravan Thirumoorthy &gcc_nssnoc_memnoc_bfdcd_clk_src.clkr.hw, 1133*76fc060dSKathiravan Thirumoorthy }, 1134*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1135*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1136*76fc060dSKathiravan Thirumoorthy .ops = &clk_regmap_div_ro_ops, 1137*76fc060dSKathiravan Thirumoorthy }, 1138*76fc060dSKathiravan Thirumoorthy }; 1139*76fc060dSKathiravan Thirumoorthy 1140*76fc060dSKathiravan Thirumoorthy static struct clk_regmap_div gcc_usb0_mock_utmi_div_clk_src = { 1141*76fc060dSKathiravan Thirumoorthy .reg = 0x2c040, 1142*76fc060dSKathiravan Thirumoorthy .shift = 0, 1143*76fc060dSKathiravan Thirumoorthy .width = 2, 1144*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1145*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_mock_utmi_div_clk_src", 1146*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1147*76fc060dSKathiravan Thirumoorthy &gcc_usb0_mock_utmi_clk_src.clkr.hw, 1148*76fc060dSKathiravan Thirumoorthy }, 1149*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1150*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1151*76fc060dSKathiravan Thirumoorthy .ops = &clk_regmap_div_ro_ops, 1152*76fc060dSKathiravan Thirumoorthy }, 1153*76fc060dSKathiravan Thirumoorthy }; 1154*76fc060dSKathiravan Thirumoorthy 1155*76fc060dSKathiravan Thirumoorthy static struct clk_regmap_div gcc_usb1_mock_utmi_div_clk_src = { 1156*76fc060dSKathiravan Thirumoorthy .reg = 0x3c018, 1157*76fc060dSKathiravan Thirumoorthy .shift = 0, 1158*76fc060dSKathiravan Thirumoorthy .width = 2, 1159*76fc060dSKathiravan Thirumoorthy .clkr.hw.init = &(const struct clk_init_data) { 1160*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb1_mock_utmi_div_clk_src", 1161*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1162*76fc060dSKathiravan Thirumoorthy &gcc_usb1_mock_utmi_clk_src.clkr.hw, 1163*76fc060dSKathiravan Thirumoorthy }, 1164*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1165*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1166*76fc060dSKathiravan Thirumoorthy .ops = &clk_regmap_div_ro_ops, 1167*76fc060dSKathiravan Thirumoorthy }, 1168*76fc060dSKathiravan Thirumoorthy }; 1169*76fc060dSKathiravan Thirumoorthy 1170*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_adss_pwm_clk = { 1171*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x1c00c, 1172*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1173*76fc060dSKathiravan Thirumoorthy .clkr = { 1174*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x1c00c, 1175*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1176*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1177*76fc060dSKathiravan Thirumoorthy .name = "gcc_adss_pwm_clk", 1178*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1179*76fc060dSKathiravan Thirumoorthy &gcc_adss_pwm_clk_src.clkr.hw, 1180*76fc060dSKathiravan Thirumoorthy }, 1181*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1182*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1183*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1184*76fc060dSKathiravan Thirumoorthy }, 1185*76fc060dSKathiravan Thirumoorthy }, 1186*76fc060dSKathiravan Thirumoorthy }; 1187*76fc060dSKathiravan Thirumoorthy 1188*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie0_1lane_m_clk = { 1189*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e07c, 1190*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1191*76fc060dSKathiravan Thirumoorthy .clkr = { 1192*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e07c, 1193*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1194*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1195*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie0_1lane_m_clk", 1196*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1197*76fc060dSKathiravan Thirumoorthy &gcc_pcie0_axi_m_clk_src.clkr.hw, 1198*76fc060dSKathiravan Thirumoorthy }, 1199*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1200*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1201*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1202*76fc060dSKathiravan Thirumoorthy }, 1203*76fc060dSKathiravan Thirumoorthy }, 1204*76fc060dSKathiravan Thirumoorthy }; 1205*76fc060dSKathiravan Thirumoorthy 1206*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie0_1lane_s_clk = { 1207*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e0cc, 1208*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1209*76fc060dSKathiravan Thirumoorthy .clkr = { 1210*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e0cc, 1211*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1212*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1213*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie0_1lane_s_clk", 1214*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1215*76fc060dSKathiravan Thirumoorthy &gcc_pcie0_axi_s_clk_src.clkr.hw, 1216*76fc060dSKathiravan Thirumoorthy }, 1217*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1218*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1219*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1220*76fc060dSKathiravan Thirumoorthy }, 1221*76fc060dSKathiravan Thirumoorthy }, 1222*76fc060dSKathiravan Thirumoorthy }; 1223*76fc060dSKathiravan Thirumoorthy 1224*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie1_2lane_m_clk = { 1225*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e084, 1226*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1227*76fc060dSKathiravan Thirumoorthy .clkr = { 1228*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e084, 1229*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1230*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1231*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie1_2lane_m_clk", 1232*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1233*76fc060dSKathiravan Thirumoorthy &gcc_pcie1_axi_m_clk_src.clkr.hw, 1234*76fc060dSKathiravan Thirumoorthy }, 1235*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1236*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1237*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1238*76fc060dSKathiravan Thirumoorthy }, 1239*76fc060dSKathiravan Thirumoorthy }, 1240*76fc060dSKathiravan Thirumoorthy }; 1241*76fc060dSKathiravan Thirumoorthy 1242*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie1_2lane_s_clk = { 1243*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e0d0, 1244*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1245*76fc060dSKathiravan Thirumoorthy .clkr = { 1246*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e0d0, 1247*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1248*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1249*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie1_2lane_s_clk", 1250*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1251*76fc060dSKathiravan Thirumoorthy &gcc_pcie1_axi_s_clk_src.clkr.hw, 1252*76fc060dSKathiravan Thirumoorthy }, 1253*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1254*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1255*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1256*76fc060dSKathiravan Thirumoorthy }, 1257*76fc060dSKathiravan Thirumoorthy }, 1258*76fc060dSKathiravan Thirumoorthy }; 1259*76fc060dSKathiravan Thirumoorthy 1260*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie2_2lane_m_clk = { 1261*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e080, 1262*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1263*76fc060dSKathiravan Thirumoorthy .clkr = { 1264*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e080, 1265*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1266*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1267*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie2_2lane_m_clk", 1268*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1269*76fc060dSKathiravan Thirumoorthy &gcc_pcie2_axi_m_clk_src.clkr.hw, 1270*76fc060dSKathiravan Thirumoorthy }, 1271*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1272*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1273*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1274*76fc060dSKathiravan Thirumoorthy }, 1275*76fc060dSKathiravan Thirumoorthy }, 1276*76fc060dSKathiravan Thirumoorthy }; 1277*76fc060dSKathiravan Thirumoorthy 1278*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie2_2lane_s_clk = { 1279*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e0d4, 1280*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1281*76fc060dSKathiravan Thirumoorthy .clkr = { 1282*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e0d4, 1283*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1284*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1285*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie2_2lane_s_clk", 1286*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1287*76fc060dSKathiravan Thirumoorthy &gcc_pcie2_axi_s_clk_src.clkr.hw, 1288*76fc060dSKathiravan Thirumoorthy }, 1289*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1290*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1291*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1292*76fc060dSKathiravan Thirumoorthy }, 1293*76fc060dSKathiravan Thirumoorthy }, 1294*76fc060dSKathiravan Thirumoorthy }; 1295*76fc060dSKathiravan Thirumoorthy 1296*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie3_2lane_m_clk = { 1297*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e0bc, 1298*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1299*76fc060dSKathiravan Thirumoorthy .clkr = { 1300*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e0bc, 1301*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1302*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1303*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie3_2lane_m_clk", 1304*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1305*76fc060dSKathiravan Thirumoorthy &gcc_pcie3_axi_m_clk_src.clkr.hw, 1306*76fc060dSKathiravan Thirumoorthy }, 1307*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1308*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1309*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1310*76fc060dSKathiravan Thirumoorthy }, 1311*76fc060dSKathiravan Thirumoorthy }, 1312*76fc060dSKathiravan Thirumoorthy }; 1313*76fc060dSKathiravan Thirumoorthy 1314*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie3_2lane_s_clk = { 1315*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e0d8, 1316*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1317*76fc060dSKathiravan Thirumoorthy .clkr = { 1318*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e0d8, 1319*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1320*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1321*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie3_2lane_s_clk", 1322*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1323*76fc060dSKathiravan Thirumoorthy &gcc_pcie3_axi_s_clk_src.clkr.hw, 1324*76fc060dSKathiravan Thirumoorthy }, 1325*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1326*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1327*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1328*76fc060dSKathiravan Thirumoorthy }, 1329*76fc060dSKathiravan Thirumoorthy }, 1330*76fc060dSKathiravan Thirumoorthy }; 1331*76fc060dSKathiravan Thirumoorthy 1332*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie4_1lane_m_clk = { 1333*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e0c0, 1334*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1335*76fc060dSKathiravan Thirumoorthy .clkr = { 1336*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e0c0, 1337*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1338*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1339*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie4_1lane_m_clk", 1340*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1341*76fc060dSKathiravan Thirumoorthy &gcc_pcie4_axi_m_clk_src.clkr.hw, 1342*76fc060dSKathiravan Thirumoorthy }, 1343*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1344*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1345*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1346*76fc060dSKathiravan Thirumoorthy }, 1347*76fc060dSKathiravan Thirumoorthy }, 1348*76fc060dSKathiravan Thirumoorthy }; 1349*76fc060dSKathiravan Thirumoorthy 1350*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_anoc_pcie4_1lane_s_clk = { 1351*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e0dc, 1352*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1353*76fc060dSKathiravan Thirumoorthy .clkr = { 1354*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e0dc, 1355*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1356*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1357*76fc060dSKathiravan Thirumoorthy .name = "gcc_anoc_pcie4_1lane_s_clk", 1358*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1359*76fc060dSKathiravan Thirumoorthy &gcc_pcie4_axi_s_clk_src.clkr.hw, 1360*76fc060dSKathiravan Thirumoorthy }, 1361*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1362*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1363*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1364*76fc060dSKathiravan Thirumoorthy }, 1365*76fc060dSKathiravan Thirumoorthy }, 1366*76fc060dSKathiravan Thirumoorthy }; 1367*76fc060dSKathiravan Thirumoorthy 1368*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_cmn_12gpll_ahb_clk = { 1369*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3a004, 1370*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1371*76fc060dSKathiravan Thirumoorthy .clkr = { 1372*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3a004, 1373*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1374*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1375*76fc060dSKathiravan Thirumoorthy .name = "gcc_cmn_12gpll_ahb_clk", 1376*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1377*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 1378*76fc060dSKathiravan Thirumoorthy }, 1379*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1380*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1381*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1382*76fc060dSKathiravan Thirumoorthy }, 1383*76fc060dSKathiravan Thirumoorthy }, 1384*76fc060dSKathiravan Thirumoorthy }; 1385*76fc060dSKathiravan Thirumoorthy 1386*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_cmn_12gpll_sys_clk = { 1387*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3a008, 1388*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 1389*76fc060dSKathiravan Thirumoorthy .clkr = { 1390*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3a008, 1391*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1392*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1393*76fc060dSKathiravan Thirumoorthy .name = "gcc_cmn_12gpll_sys_clk", 1394*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1395*76fc060dSKathiravan Thirumoorthy &gcc_uniphy_sys_clk_src.clkr.hw, 1396*76fc060dSKathiravan Thirumoorthy }, 1397*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1398*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1399*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1400*76fc060dSKathiravan Thirumoorthy }, 1401*76fc060dSKathiravan Thirumoorthy }, 1402*76fc060dSKathiravan Thirumoorthy }; 1403*76fc060dSKathiravan Thirumoorthy 1404*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_mdio_ahb_clk = { 1405*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17040, 1406*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1407*76fc060dSKathiravan Thirumoorthy .clkr = { 1408*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17040, 1409*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1410*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1411*76fc060dSKathiravan Thirumoorthy .name = "gcc_mdio_ahb_clk", 1412*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1413*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 1414*76fc060dSKathiravan Thirumoorthy }, 1415*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1416*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1417*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1418*76fc060dSKathiravan Thirumoorthy }, 1419*76fc060dSKathiravan Thirumoorthy }, 1420*76fc060dSKathiravan Thirumoorthy }; 1421*76fc060dSKathiravan Thirumoorthy 1422*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nss_ts_clk = { 1423*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17018, 1424*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 1425*76fc060dSKathiravan Thirumoorthy .clkr = { 1426*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17018, 1427*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1428*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1429*76fc060dSKathiravan Thirumoorthy .name = "gcc_nss_ts_clk", 1430*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1431*76fc060dSKathiravan Thirumoorthy &gcc_nss_ts_clk_src.clkr.hw, 1432*76fc060dSKathiravan Thirumoorthy }, 1433*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1434*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1435*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1436*76fc060dSKathiravan Thirumoorthy }, 1437*76fc060dSKathiravan Thirumoorthy }, 1438*76fc060dSKathiravan Thirumoorthy }; 1439*76fc060dSKathiravan Thirumoorthy 1440*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nsscc_clk = { 1441*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17034, 1442*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1443*76fc060dSKathiravan Thirumoorthy .clkr = { 1444*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17034, 1445*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1446*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1447*76fc060dSKathiravan Thirumoorthy .name = "gcc_nsscc_clk", 1448*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1449*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 1450*76fc060dSKathiravan Thirumoorthy }, 1451*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1452*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1453*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1454*76fc060dSKathiravan Thirumoorthy }, 1455*76fc060dSKathiravan Thirumoorthy }, 1456*76fc060dSKathiravan Thirumoorthy }; 1457*76fc060dSKathiravan Thirumoorthy 1458*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nsscfg_clk = { 1459*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x1702c, 1460*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1461*76fc060dSKathiravan Thirumoorthy .clkr = { 1462*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x1702c, 1463*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1464*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1465*76fc060dSKathiravan Thirumoorthy .name = "gcc_nsscfg_clk", 1466*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1467*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 1468*76fc060dSKathiravan Thirumoorthy }, 1469*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1470*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1471*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1472*76fc060dSKathiravan Thirumoorthy }, 1473*76fc060dSKathiravan Thirumoorthy }, 1474*76fc060dSKathiravan Thirumoorthy }; 1475*76fc060dSKathiravan Thirumoorthy 1476*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_atb_clk = { 1477*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17014, 1478*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 1479*76fc060dSKathiravan Thirumoorthy .clkr = { 1480*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17014, 1481*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1482*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1483*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_atb_clk", 1484*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1485*76fc060dSKathiravan Thirumoorthy &gcc_qdss_at_clk_src.clkr.hw, 1486*76fc060dSKathiravan Thirumoorthy }, 1487*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1488*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1489*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1490*76fc060dSKathiravan Thirumoorthy }, 1491*76fc060dSKathiravan Thirumoorthy }, 1492*76fc060dSKathiravan Thirumoorthy }; 1493*76fc060dSKathiravan Thirumoorthy 1494*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_memnoc_1_clk = { 1495*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17084, 1496*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1497*76fc060dSKathiravan Thirumoorthy .clkr = { 1498*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17084, 1499*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1500*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1501*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_memnoc_1_clk", 1502*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1503*76fc060dSKathiravan Thirumoorthy &gcc_nssnoc_memnoc_div_clk_src.clkr.hw, 1504*76fc060dSKathiravan Thirumoorthy }, 1505*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1506*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1507*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1508*76fc060dSKathiravan Thirumoorthy }, 1509*76fc060dSKathiravan Thirumoorthy }, 1510*76fc060dSKathiravan Thirumoorthy }; 1511*76fc060dSKathiravan Thirumoorthy 1512*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_memnoc_clk = { 1513*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17024, 1514*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1515*76fc060dSKathiravan Thirumoorthy .clkr = { 1516*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17024, 1517*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1518*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1519*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_memnoc_clk", 1520*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1521*76fc060dSKathiravan Thirumoorthy &gcc_nssnoc_memnoc_div_clk_src.clkr.hw, 1522*76fc060dSKathiravan Thirumoorthy }, 1523*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1524*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1525*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1526*76fc060dSKathiravan Thirumoorthy }, 1527*76fc060dSKathiravan Thirumoorthy }, 1528*76fc060dSKathiravan Thirumoorthy }; 1529*76fc060dSKathiravan Thirumoorthy 1530*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_nsscc_clk = { 1531*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17030, 1532*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1533*76fc060dSKathiravan Thirumoorthy .clkr = { 1534*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17030, 1535*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1536*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1537*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_nsscc_clk", 1538*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1539*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 1540*76fc060dSKathiravan Thirumoorthy }, 1541*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1542*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1543*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1544*76fc060dSKathiravan Thirumoorthy }, 1545*76fc060dSKathiravan Thirumoorthy }, 1546*76fc060dSKathiravan Thirumoorthy }; 1547*76fc060dSKathiravan Thirumoorthy 1548*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_pcnoc_1_clk = { 1549*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17080, 1550*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1551*76fc060dSKathiravan Thirumoorthy .clkr = { 1552*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17080, 1553*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1554*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1555*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_pcnoc_1_clk", 1556*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1557*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 1558*76fc060dSKathiravan Thirumoorthy }, 1559*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1560*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1561*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1562*76fc060dSKathiravan Thirumoorthy }, 1563*76fc060dSKathiravan Thirumoorthy }, 1564*76fc060dSKathiravan Thirumoorthy }; 1565*76fc060dSKathiravan Thirumoorthy 1566*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_qosgen_ref_clk = { 1567*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x1701c, 1568*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1569*76fc060dSKathiravan Thirumoorthy .clkr = { 1570*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x1701c, 1571*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1572*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1573*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_qosgen_ref_clk", 1574*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 1575*76fc060dSKathiravan Thirumoorthy &gcc_xo_div4_clk_src.hw 1576*76fc060dSKathiravan Thirumoorthy }, 1577*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1578*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1579*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1580*76fc060dSKathiravan Thirumoorthy }, 1581*76fc060dSKathiravan Thirumoorthy }, 1582*76fc060dSKathiravan Thirumoorthy }; 1583*76fc060dSKathiravan Thirumoorthy 1584*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_snoc_1_clk = { 1585*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x1707c, 1586*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1587*76fc060dSKathiravan Thirumoorthy .clkr = { 1588*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x1707c, 1589*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1590*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1591*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_snoc_1_clk", 1592*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1593*76fc060dSKathiravan Thirumoorthy &gcc_system_noc_bfdcd_clk_src.clkr.hw 1594*76fc060dSKathiravan Thirumoorthy }, 1595*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1596*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1597*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1598*76fc060dSKathiravan Thirumoorthy }, 1599*76fc060dSKathiravan Thirumoorthy }, 1600*76fc060dSKathiravan Thirumoorthy }; 1601*76fc060dSKathiravan Thirumoorthy 1602*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_snoc_clk = { 1603*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17028, 1604*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1605*76fc060dSKathiravan Thirumoorthy .clkr = { 1606*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17028, 1607*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1608*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1609*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_snoc_clk", 1610*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1611*76fc060dSKathiravan Thirumoorthy &gcc_system_noc_bfdcd_clk_src.clkr.hw 1612*76fc060dSKathiravan Thirumoorthy }, 1613*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1614*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1615*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1616*76fc060dSKathiravan Thirumoorthy }, 1617*76fc060dSKathiravan Thirumoorthy }, 1618*76fc060dSKathiravan Thirumoorthy }; 1619*76fc060dSKathiravan Thirumoorthy 1620*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_timeout_ref_clk = { 1621*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17020, 1622*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1623*76fc060dSKathiravan Thirumoorthy .clkr = { 1624*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17020, 1625*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1626*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1627*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_timeout_ref_clk", 1628*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1629*76fc060dSKathiravan Thirumoorthy &gcc_xo_div4_clk_src.hw, 1630*76fc060dSKathiravan Thirumoorthy }, 1631*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1632*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1633*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1634*76fc060dSKathiravan Thirumoorthy }, 1635*76fc060dSKathiravan Thirumoorthy }, 1636*76fc060dSKathiravan Thirumoorthy }; 1637*76fc060dSKathiravan Thirumoorthy 1638*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_nssnoc_xo_dcd_clk = { 1639*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17074, 1640*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1641*76fc060dSKathiravan Thirumoorthy .clkr = { 1642*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17074, 1643*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1644*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1645*76fc060dSKathiravan Thirumoorthy .name = "gcc_nssnoc_xo_dcd_clk", 1646*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1647*76fc060dSKathiravan Thirumoorthy &gcc_xo_clk_src.clkr.hw, 1648*76fc060dSKathiravan Thirumoorthy }, 1649*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1650*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1651*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1652*76fc060dSKathiravan Thirumoorthy }, 1653*76fc060dSKathiravan Thirumoorthy }, 1654*76fc060dSKathiravan Thirumoorthy }; 1655*76fc060dSKathiravan Thirumoorthy 1656*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie0_ahb_clk = { 1657*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x28030, 1658*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1659*76fc060dSKathiravan Thirumoorthy .clkr = { 1660*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x28030, 1661*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1662*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1663*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_ahb_clk", 1664*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1665*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 1666*76fc060dSKathiravan Thirumoorthy }, 1667*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1668*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1669*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1670*76fc060dSKathiravan Thirumoorthy }, 1671*76fc060dSKathiravan Thirumoorthy }, 1672*76fc060dSKathiravan Thirumoorthy }; 1673*76fc060dSKathiravan Thirumoorthy 1674*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie0_aux_clk = { 1675*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x28070, 1676*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1677*76fc060dSKathiravan Thirumoorthy .clkr = { 1678*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x28070, 1679*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1680*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1681*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_aux_clk", 1682*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1683*76fc060dSKathiravan Thirumoorthy &gcc_pcie_aux_clk_src.clkr.hw, 1684*76fc060dSKathiravan Thirumoorthy }, 1685*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1686*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1687*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1688*76fc060dSKathiravan Thirumoorthy }, 1689*76fc060dSKathiravan Thirumoorthy }, 1690*76fc060dSKathiravan Thirumoorthy }; 1691*76fc060dSKathiravan Thirumoorthy 1692*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie0_axi_m_clk = { 1693*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x28038, 1694*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1695*76fc060dSKathiravan Thirumoorthy .clkr = { 1696*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x28038, 1697*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1698*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1699*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_axi_m_clk", 1700*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1701*76fc060dSKathiravan Thirumoorthy &gcc_pcie0_axi_m_clk_src.clkr.hw, 1702*76fc060dSKathiravan Thirumoorthy }, 1703*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1704*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1705*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1706*76fc060dSKathiravan Thirumoorthy }, 1707*76fc060dSKathiravan Thirumoorthy }, 1708*76fc060dSKathiravan Thirumoorthy }; 1709*76fc060dSKathiravan Thirumoorthy 1710*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie0_axi_s_bridge_clk = { 1711*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x28048, 1712*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1713*76fc060dSKathiravan Thirumoorthy .clkr = { 1714*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x28048, 1715*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1716*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1717*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_axi_s_bridge_clk", 1718*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1719*76fc060dSKathiravan Thirumoorthy &gcc_pcie0_axi_s_clk_src.clkr.hw, 1720*76fc060dSKathiravan Thirumoorthy }, 1721*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1722*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1723*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1724*76fc060dSKathiravan Thirumoorthy }, 1725*76fc060dSKathiravan Thirumoorthy }, 1726*76fc060dSKathiravan Thirumoorthy }; 1727*76fc060dSKathiravan Thirumoorthy 1728*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie0_axi_s_clk = { 1729*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x28040, 1730*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1731*76fc060dSKathiravan Thirumoorthy .clkr = { 1732*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x28040, 1733*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1734*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1735*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_axi_s_clk", 1736*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1737*76fc060dSKathiravan Thirumoorthy &gcc_pcie0_axi_s_clk_src.clkr.hw, 1738*76fc060dSKathiravan Thirumoorthy }, 1739*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1740*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1741*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1742*76fc060dSKathiravan Thirumoorthy }, 1743*76fc060dSKathiravan Thirumoorthy }, 1744*76fc060dSKathiravan Thirumoorthy }; 1745*76fc060dSKathiravan Thirumoorthy 1746*76fc060dSKathiravan Thirumoorthy static struct clk_regmap_phy_mux gcc_pcie0_pipe_clk_src = { 1747*76fc060dSKathiravan Thirumoorthy .reg = 0x28064, 1748*76fc060dSKathiravan Thirumoorthy .clkr = { 1749*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1750*76fc060dSKathiravan Thirumoorthy .name = "pcie0_pipe_clk_src", 1751*76fc060dSKathiravan Thirumoorthy .parent_data = &(const struct clk_parent_data) { 1752*76fc060dSKathiravan Thirumoorthy .index = DT_PCIE30_PHY0_PIPE_CLK, 1753*76fc060dSKathiravan Thirumoorthy }, 1754*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1755*76fc060dSKathiravan Thirumoorthy .ops = &clk_regmap_phy_mux_ops, 1756*76fc060dSKathiravan Thirumoorthy }, 1757*76fc060dSKathiravan Thirumoorthy }, 1758*76fc060dSKathiravan Thirumoorthy }; 1759*76fc060dSKathiravan Thirumoorthy 1760*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie0_pipe_clk = { 1761*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x28068, 1762*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_DELAY, 1763*76fc060dSKathiravan Thirumoorthy .clkr = { 1764*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x28068, 1765*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1766*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1767*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_pipe_clk", 1768*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 1769*76fc060dSKathiravan Thirumoorthy &gcc_pcie0_pipe_clk_src.clkr.hw 1770*76fc060dSKathiravan Thirumoorthy }, 1771*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1772*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1773*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1774*76fc060dSKathiravan Thirumoorthy }, 1775*76fc060dSKathiravan Thirumoorthy }, 1776*76fc060dSKathiravan Thirumoorthy }; 1777*76fc060dSKathiravan Thirumoorthy 1778*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie1_ahb_clk = { 1779*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x29030, 1780*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1781*76fc060dSKathiravan Thirumoorthy .clkr = { 1782*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x29030, 1783*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1784*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1785*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_ahb_clk", 1786*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1787*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 1788*76fc060dSKathiravan Thirumoorthy }, 1789*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1790*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1791*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1792*76fc060dSKathiravan Thirumoorthy }, 1793*76fc060dSKathiravan Thirumoorthy }, 1794*76fc060dSKathiravan Thirumoorthy }; 1795*76fc060dSKathiravan Thirumoorthy 1796*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie1_aux_clk = { 1797*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x29074, 1798*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1799*76fc060dSKathiravan Thirumoorthy .clkr = { 1800*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x29074, 1801*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1802*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1803*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_aux_clk", 1804*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1805*76fc060dSKathiravan Thirumoorthy &gcc_pcie_aux_clk_src.clkr.hw, 1806*76fc060dSKathiravan Thirumoorthy }, 1807*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1808*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1809*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1810*76fc060dSKathiravan Thirumoorthy }, 1811*76fc060dSKathiravan Thirumoorthy }, 1812*76fc060dSKathiravan Thirumoorthy }; 1813*76fc060dSKathiravan Thirumoorthy 1814*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie1_axi_m_clk = { 1815*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x29038, 1816*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1817*76fc060dSKathiravan Thirumoorthy .clkr = { 1818*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x29038, 1819*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1820*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1821*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_axi_m_clk", 1822*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1823*76fc060dSKathiravan Thirumoorthy &gcc_pcie1_axi_m_clk_src.clkr.hw, 1824*76fc060dSKathiravan Thirumoorthy }, 1825*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1826*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1827*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1828*76fc060dSKathiravan Thirumoorthy }, 1829*76fc060dSKathiravan Thirumoorthy }, 1830*76fc060dSKathiravan Thirumoorthy }; 1831*76fc060dSKathiravan Thirumoorthy 1832*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie1_axi_s_bridge_clk = { 1833*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x29048, 1834*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1835*76fc060dSKathiravan Thirumoorthy .clkr = { 1836*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x29048, 1837*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1838*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1839*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_axi_s_bridge_clk", 1840*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1841*76fc060dSKathiravan Thirumoorthy &gcc_pcie1_axi_s_clk_src.clkr.hw, 1842*76fc060dSKathiravan Thirumoorthy }, 1843*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1844*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1845*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1846*76fc060dSKathiravan Thirumoorthy }, 1847*76fc060dSKathiravan Thirumoorthy }, 1848*76fc060dSKathiravan Thirumoorthy }; 1849*76fc060dSKathiravan Thirumoorthy 1850*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie1_axi_s_clk = { 1851*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x29040, 1852*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1853*76fc060dSKathiravan Thirumoorthy .clkr = { 1854*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x29040, 1855*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1856*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1857*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_axi_s_clk", 1858*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1859*76fc060dSKathiravan Thirumoorthy &gcc_pcie1_axi_s_clk_src.clkr.hw, 1860*76fc060dSKathiravan Thirumoorthy }, 1861*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1862*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1863*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1864*76fc060dSKathiravan Thirumoorthy }, 1865*76fc060dSKathiravan Thirumoorthy }, 1866*76fc060dSKathiravan Thirumoorthy }; 1867*76fc060dSKathiravan Thirumoorthy 1868*76fc060dSKathiravan Thirumoorthy static struct clk_regmap_phy_mux gcc_pcie1_pipe_clk_src = { 1869*76fc060dSKathiravan Thirumoorthy .reg = 0x29064, 1870*76fc060dSKathiravan Thirumoorthy .clkr = { 1871*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1872*76fc060dSKathiravan Thirumoorthy .name = "pcie1_pipe_clk_src", 1873*76fc060dSKathiravan Thirumoorthy .parent_data = &(const struct clk_parent_data) { 1874*76fc060dSKathiravan Thirumoorthy .index = DT_PCIE30_PHY1_PIPE_CLK, 1875*76fc060dSKathiravan Thirumoorthy }, 1876*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1877*76fc060dSKathiravan Thirumoorthy .ops = &clk_regmap_phy_mux_ops, 1878*76fc060dSKathiravan Thirumoorthy }, 1879*76fc060dSKathiravan Thirumoorthy }, 1880*76fc060dSKathiravan Thirumoorthy }; 1881*76fc060dSKathiravan Thirumoorthy 1882*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie1_pipe_clk = { 1883*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x29068, 1884*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_DELAY, 1885*76fc060dSKathiravan Thirumoorthy .clkr = { 1886*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x29068, 1887*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1888*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1889*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_pipe_clk", 1890*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 1891*76fc060dSKathiravan Thirumoorthy &gcc_pcie1_pipe_clk_src.clkr.hw 1892*76fc060dSKathiravan Thirumoorthy }, 1893*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1894*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1895*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1896*76fc060dSKathiravan Thirumoorthy }, 1897*76fc060dSKathiravan Thirumoorthy }, 1898*76fc060dSKathiravan Thirumoorthy }; 1899*76fc060dSKathiravan Thirumoorthy 1900*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie2_ahb_clk = { 1901*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2a030, 1902*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1903*76fc060dSKathiravan Thirumoorthy .clkr = { 1904*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2a030, 1905*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1906*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1907*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_ahb_clk", 1908*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1909*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 1910*76fc060dSKathiravan Thirumoorthy }, 1911*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1912*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1913*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1914*76fc060dSKathiravan Thirumoorthy }, 1915*76fc060dSKathiravan Thirumoorthy }, 1916*76fc060dSKathiravan Thirumoorthy }; 1917*76fc060dSKathiravan Thirumoorthy 1918*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie2_aux_clk = { 1919*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2a078, 1920*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1921*76fc060dSKathiravan Thirumoorthy .clkr = { 1922*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2a078, 1923*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1924*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1925*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_aux_clk", 1926*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1927*76fc060dSKathiravan Thirumoorthy &gcc_pcie_aux_clk_src.clkr.hw, 1928*76fc060dSKathiravan Thirumoorthy }, 1929*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1930*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1931*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1932*76fc060dSKathiravan Thirumoorthy }, 1933*76fc060dSKathiravan Thirumoorthy }, 1934*76fc060dSKathiravan Thirumoorthy }; 1935*76fc060dSKathiravan Thirumoorthy 1936*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie2_axi_m_clk = { 1937*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2a038, 1938*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1939*76fc060dSKathiravan Thirumoorthy .clkr = { 1940*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2a038, 1941*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1942*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1943*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_axi_m_clk", 1944*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1945*76fc060dSKathiravan Thirumoorthy &gcc_pcie2_axi_m_clk_src.clkr.hw, 1946*76fc060dSKathiravan Thirumoorthy }, 1947*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1948*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1949*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1950*76fc060dSKathiravan Thirumoorthy }, 1951*76fc060dSKathiravan Thirumoorthy }, 1952*76fc060dSKathiravan Thirumoorthy }; 1953*76fc060dSKathiravan Thirumoorthy 1954*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie2_axi_s_bridge_clk = { 1955*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2a048, 1956*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1957*76fc060dSKathiravan Thirumoorthy .clkr = { 1958*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2a048, 1959*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1960*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1961*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_axi_s_bridge_clk", 1962*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1963*76fc060dSKathiravan Thirumoorthy &gcc_pcie2_axi_s_clk_src.clkr.hw, 1964*76fc060dSKathiravan Thirumoorthy }, 1965*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1966*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1967*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1968*76fc060dSKathiravan Thirumoorthy }, 1969*76fc060dSKathiravan Thirumoorthy }, 1970*76fc060dSKathiravan Thirumoorthy }; 1971*76fc060dSKathiravan Thirumoorthy 1972*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie2_axi_s_clk = { 1973*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2a040, 1974*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 1975*76fc060dSKathiravan Thirumoorthy .clkr = { 1976*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2a040, 1977*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 1978*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1979*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_axi_s_clk", 1980*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 1981*76fc060dSKathiravan Thirumoorthy &gcc_pcie2_axi_s_clk_src.clkr.hw, 1982*76fc060dSKathiravan Thirumoorthy }, 1983*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1984*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 1985*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 1986*76fc060dSKathiravan Thirumoorthy }, 1987*76fc060dSKathiravan Thirumoorthy }, 1988*76fc060dSKathiravan Thirumoorthy }; 1989*76fc060dSKathiravan Thirumoorthy 1990*76fc060dSKathiravan Thirumoorthy static struct clk_regmap_phy_mux gcc_pcie2_pipe_clk_src = { 1991*76fc060dSKathiravan Thirumoorthy .reg = 0x2a064, 1992*76fc060dSKathiravan Thirumoorthy .clkr = { 1993*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 1994*76fc060dSKathiravan Thirumoorthy .name = "pcie2_pipe_clk_src", 1995*76fc060dSKathiravan Thirumoorthy .parent_data = &(const struct clk_parent_data) { 1996*76fc060dSKathiravan Thirumoorthy .index = DT_PCIE30_PHY2_PIPE_CLK, 1997*76fc060dSKathiravan Thirumoorthy }, 1998*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 1999*76fc060dSKathiravan Thirumoorthy .ops = &clk_regmap_phy_mux_ops, 2000*76fc060dSKathiravan Thirumoorthy }, 2001*76fc060dSKathiravan Thirumoorthy }, 2002*76fc060dSKathiravan Thirumoorthy }; 2003*76fc060dSKathiravan Thirumoorthy 2004*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie2_pipe_clk = { 2005*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2a068, 2006*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_DELAY, 2007*76fc060dSKathiravan Thirumoorthy .clkr = { 2008*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2a068, 2009*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2010*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2011*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_pipe_clk", 2012*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 2013*76fc060dSKathiravan Thirumoorthy &gcc_pcie2_pipe_clk_src.clkr.hw 2014*76fc060dSKathiravan Thirumoorthy }, 2015*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2016*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2017*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2018*76fc060dSKathiravan Thirumoorthy }, 2019*76fc060dSKathiravan Thirumoorthy }, 2020*76fc060dSKathiravan Thirumoorthy }; 2021*76fc060dSKathiravan Thirumoorthy 2022*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie3_ahb_clk = { 2023*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2b030, 2024*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2025*76fc060dSKathiravan Thirumoorthy .clkr = { 2026*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2b030, 2027*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2028*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2029*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_ahb_clk", 2030*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2031*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2032*76fc060dSKathiravan Thirumoorthy }, 2033*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2034*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2035*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2036*76fc060dSKathiravan Thirumoorthy }, 2037*76fc060dSKathiravan Thirumoorthy }, 2038*76fc060dSKathiravan Thirumoorthy }; 2039*76fc060dSKathiravan Thirumoorthy 2040*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie3_aux_clk = { 2041*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2b07c, 2042*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2043*76fc060dSKathiravan Thirumoorthy .clkr = { 2044*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2b07c, 2045*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2046*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2047*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_aux_clk", 2048*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2049*76fc060dSKathiravan Thirumoorthy &gcc_pcie_aux_clk_src.clkr.hw, 2050*76fc060dSKathiravan Thirumoorthy }, 2051*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2052*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2053*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2054*76fc060dSKathiravan Thirumoorthy }, 2055*76fc060dSKathiravan Thirumoorthy }, 2056*76fc060dSKathiravan Thirumoorthy }; 2057*76fc060dSKathiravan Thirumoorthy 2058*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie3_axi_m_clk = { 2059*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2b038, 2060*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2061*76fc060dSKathiravan Thirumoorthy .clkr = { 2062*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2b038, 2063*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2064*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2065*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_axi_m_clk", 2066*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2067*76fc060dSKathiravan Thirumoorthy &gcc_pcie3_axi_m_clk_src.clkr.hw, 2068*76fc060dSKathiravan Thirumoorthy }, 2069*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2070*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2071*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2072*76fc060dSKathiravan Thirumoorthy }, 2073*76fc060dSKathiravan Thirumoorthy }, 2074*76fc060dSKathiravan Thirumoorthy }; 2075*76fc060dSKathiravan Thirumoorthy 2076*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie3_axi_s_bridge_clk = { 2077*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2b048, 2078*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2079*76fc060dSKathiravan Thirumoorthy .clkr = { 2080*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2b048, 2081*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2082*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2083*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_axi_s_bridge_clk", 2084*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2085*76fc060dSKathiravan Thirumoorthy &gcc_pcie3_axi_s_clk_src.clkr.hw, 2086*76fc060dSKathiravan Thirumoorthy }, 2087*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2088*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2089*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2090*76fc060dSKathiravan Thirumoorthy }, 2091*76fc060dSKathiravan Thirumoorthy }, 2092*76fc060dSKathiravan Thirumoorthy }; 2093*76fc060dSKathiravan Thirumoorthy 2094*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie3_axi_s_clk = { 2095*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2b040, 2096*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2097*76fc060dSKathiravan Thirumoorthy .clkr = { 2098*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2b040, 2099*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2100*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2101*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_axi_s_clk", 2102*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2103*76fc060dSKathiravan Thirumoorthy &gcc_pcie3_axi_s_clk_src.clkr.hw, 2104*76fc060dSKathiravan Thirumoorthy }, 2105*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2106*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2107*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2108*76fc060dSKathiravan Thirumoorthy }, 2109*76fc060dSKathiravan Thirumoorthy }, 2110*76fc060dSKathiravan Thirumoorthy }; 2111*76fc060dSKathiravan Thirumoorthy 2112*76fc060dSKathiravan Thirumoorthy static struct clk_regmap_phy_mux gcc_pcie3_pipe_clk_src = { 2113*76fc060dSKathiravan Thirumoorthy .reg = 0x2b064, 2114*76fc060dSKathiravan Thirumoorthy .clkr = { 2115*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2116*76fc060dSKathiravan Thirumoorthy .name = "pcie3_pipe_clk_src", 2117*76fc060dSKathiravan Thirumoorthy .parent_data = &(const struct clk_parent_data) { 2118*76fc060dSKathiravan Thirumoorthy .index = DT_PCIE30_PHY3_PIPE_CLK, 2119*76fc060dSKathiravan Thirumoorthy }, 2120*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2121*76fc060dSKathiravan Thirumoorthy .ops = &clk_regmap_phy_mux_ops, 2122*76fc060dSKathiravan Thirumoorthy }, 2123*76fc060dSKathiravan Thirumoorthy }, 2124*76fc060dSKathiravan Thirumoorthy }; 2125*76fc060dSKathiravan Thirumoorthy 2126*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie3_pipe_clk = { 2127*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2b068, 2128*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_DELAY, 2129*76fc060dSKathiravan Thirumoorthy .clkr = { 2130*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2b068, 2131*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2132*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2133*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_pipe_clk", 2134*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 2135*76fc060dSKathiravan Thirumoorthy &gcc_pcie3_pipe_clk_src.clkr.hw 2136*76fc060dSKathiravan Thirumoorthy }, 2137*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2138*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2139*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2140*76fc060dSKathiravan Thirumoorthy }, 2141*76fc060dSKathiravan Thirumoorthy }, 2142*76fc060dSKathiravan Thirumoorthy }; 2143*76fc060dSKathiravan Thirumoorthy 2144*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie4_ahb_clk = { 2145*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2501c, 2146*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2147*76fc060dSKathiravan Thirumoorthy .clkr = { 2148*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2501c, 2149*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2150*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2151*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_ahb_clk", 2152*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2153*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2154*76fc060dSKathiravan Thirumoorthy }, 2155*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2156*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2157*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2158*76fc060dSKathiravan Thirumoorthy }, 2159*76fc060dSKathiravan Thirumoorthy }, 2160*76fc060dSKathiravan Thirumoorthy }; 2161*76fc060dSKathiravan Thirumoorthy 2162*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie4_aux_clk = { 2163*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x25020, 2164*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2165*76fc060dSKathiravan Thirumoorthy .clkr = { 2166*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x25020, 2167*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2168*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2169*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_aux_clk", 2170*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2171*76fc060dSKathiravan Thirumoorthy &gcc_pcie_aux_clk_src.clkr.hw, 2172*76fc060dSKathiravan Thirumoorthy }, 2173*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2174*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2175*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2176*76fc060dSKathiravan Thirumoorthy }, 2177*76fc060dSKathiravan Thirumoorthy }, 2178*76fc060dSKathiravan Thirumoorthy }; 2179*76fc060dSKathiravan Thirumoorthy 2180*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie4_axi_m_clk = { 2181*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x25028, 2182*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2183*76fc060dSKathiravan Thirumoorthy .clkr = { 2184*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x25028, 2185*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2186*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2187*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_axi_m_clk", 2188*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2189*76fc060dSKathiravan Thirumoorthy &gcc_pcie4_axi_m_clk_src.clkr.hw, 2190*76fc060dSKathiravan Thirumoorthy }, 2191*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2192*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2193*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2194*76fc060dSKathiravan Thirumoorthy }, 2195*76fc060dSKathiravan Thirumoorthy }, 2196*76fc060dSKathiravan Thirumoorthy }; 2197*76fc060dSKathiravan Thirumoorthy 2198*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie4_axi_s_bridge_clk = { 2199*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x25038, 2200*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2201*76fc060dSKathiravan Thirumoorthy .clkr = { 2202*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x25038, 2203*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2204*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2205*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_axi_s_bridge_clk", 2206*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2207*76fc060dSKathiravan Thirumoorthy &gcc_pcie4_axi_s_clk_src.clkr.hw, 2208*76fc060dSKathiravan Thirumoorthy }, 2209*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2210*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2211*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2212*76fc060dSKathiravan Thirumoorthy }, 2213*76fc060dSKathiravan Thirumoorthy }, 2214*76fc060dSKathiravan Thirumoorthy }; 2215*76fc060dSKathiravan Thirumoorthy 2216*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie4_axi_s_clk = { 2217*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x25030, 2218*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2219*76fc060dSKathiravan Thirumoorthy .clkr = { 2220*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x25030, 2221*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2222*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2223*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_axi_s_clk", 2224*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2225*76fc060dSKathiravan Thirumoorthy &gcc_pcie4_axi_s_clk_src.clkr.hw, 2226*76fc060dSKathiravan Thirumoorthy }, 2227*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2228*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2229*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2230*76fc060dSKathiravan Thirumoorthy }, 2231*76fc060dSKathiravan Thirumoorthy }, 2232*76fc060dSKathiravan Thirumoorthy }; 2233*76fc060dSKathiravan Thirumoorthy 2234*76fc060dSKathiravan Thirumoorthy static struct clk_regmap_phy_mux gcc_pcie4_pipe_clk_src = { 2235*76fc060dSKathiravan Thirumoorthy .reg = 0x25058, 2236*76fc060dSKathiravan Thirumoorthy .clkr = { 2237*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2238*76fc060dSKathiravan Thirumoorthy .name = "pcie4_pipe_clk_src", 2239*76fc060dSKathiravan Thirumoorthy .parent_data = &(const struct clk_parent_data) { 2240*76fc060dSKathiravan Thirumoorthy .index = DT_PCIE30_PHY4_PIPE_CLK, 2241*76fc060dSKathiravan Thirumoorthy }, 2242*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2243*76fc060dSKathiravan Thirumoorthy .ops = &clk_regmap_phy_mux_ops, 2244*76fc060dSKathiravan Thirumoorthy }, 2245*76fc060dSKathiravan Thirumoorthy }, 2246*76fc060dSKathiravan Thirumoorthy }; 2247*76fc060dSKathiravan Thirumoorthy 2248*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie4_pipe_clk = { 2249*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2503c, 2250*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_DELAY, 2251*76fc060dSKathiravan Thirumoorthy .clkr = { 2252*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2503c, 2253*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2254*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2255*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_pipe_clk", 2256*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 2257*76fc060dSKathiravan Thirumoorthy &gcc_pcie4_pipe_clk_src.clkr.hw 2258*76fc060dSKathiravan Thirumoorthy }, 2259*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2260*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2261*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2262*76fc060dSKathiravan Thirumoorthy }, 2263*76fc060dSKathiravan Thirumoorthy }, 2264*76fc060dSKathiravan Thirumoorthy }; 2265*76fc060dSKathiravan Thirumoorthy 2266*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie0_rchng_clk = { 2267*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x28028, 2268*76fc060dSKathiravan Thirumoorthy .clkr = { 2269*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x28028, 2270*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(1), 2271*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2272*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie0_rchng_clk", 2273*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 2274*76fc060dSKathiravan Thirumoorthy &gcc_pcie0_rchng_clk_src.clkr.hw 2275*76fc060dSKathiravan Thirumoorthy }, 2276*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2277*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2278*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2279*76fc060dSKathiravan Thirumoorthy }, 2280*76fc060dSKathiravan Thirumoorthy }, 2281*76fc060dSKathiravan Thirumoorthy }; 2282*76fc060dSKathiravan Thirumoorthy 2283*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie1_rchng_clk = { 2284*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x29028, 2285*76fc060dSKathiravan Thirumoorthy .clkr = { 2286*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x29028, 2287*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(1), 2288*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2289*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie1_rchng_clk", 2290*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 2291*76fc060dSKathiravan Thirumoorthy &gcc_pcie1_rchng_clk_src.clkr.hw 2292*76fc060dSKathiravan Thirumoorthy }, 2293*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2294*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2295*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2296*76fc060dSKathiravan Thirumoorthy }, 2297*76fc060dSKathiravan Thirumoorthy }, 2298*76fc060dSKathiravan Thirumoorthy }; 2299*76fc060dSKathiravan Thirumoorthy 2300*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie2_rchng_clk = { 2301*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2a028, 2302*76fc060dSKathiravan Thirumoorthy .clkr = { 2303*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2a028, 2304*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(1), 2305*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2306*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie2_rchng_clk", 2307*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 2308*76fc060dSKathiravan Thirumoorthy &gcc_pcie2_rchng_clk_src.clkr.hw 2309*76fc060dSKathiravan Thirumoorthy }, 2310*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2311*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2312*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2313*76fc060dSKathiravan Thirumoorthy }, 2314*76fc060dSKathiravan Thirumoorthy }, 2315*76fc060dSKathiravan Thirumoorthy }; 2316*76fc060dSKathiravan Thirumoorthy 2317*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie3_rchng_clk = { 2318*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2b028, 2319*76fc060dSKathiravan Thirumoorthy .clkr = { 2320*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2b028, 2321*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(1), 2322*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2323*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie3_rchng_clk", 2324*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 2325*76fc060dSKathiravan Thirumoorthy &gcc_pcie3_rchng_clk_src.clkr.hw 2326*76fc060dSKathiravan Thirumoorthy }, 2327*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2328*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2329*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2330*76fc060dSKathiravan Thirumoorthy }, 2331*76fc060dSKathiravan Thirumoorthy }, 2332*76fc060dSKathiravan Thirumoorthy }; 2333*76fc060dSKathiravan Thirumoorthy 2334*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_pcie4_rchng_clk = { 2335*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x25014, 2336*76fc060dSKathiravan Thirumoorthy .clkr = { 2337*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x25014, 2338*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(1), 2339*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2340*76fc060dSKathiravan Thirumoorthy .name = "gcc_pcie4_rchng_clk", 2341*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 2342*76fc060dSKathiravan Thirumoorthy &gcc_pcie4_rchng_clk_src.clkr.hw 2343*76fc060dSKathiravan Thirumoorthy }, 2344*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2345*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2346*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2347*76fc060dSKathiravan Thirumoorthy }, 2348*76fc060dSKathiravan Thirumoorthy }, 2349*76fc060dSKathiravan Thirumoorthy }; 2350*76fc060dSKathiravan Thirumoorthy 2351*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qdss_at_clk = { 2352*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2d034, 2353*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2354*76fc060dSKathiravan Thirumoorthy .clkr = { 2355*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2d034, 2356*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2357*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2358*76fc060dSKathiravan Thirumoorthy .name = "gcc_qdss_at_clk", 2359*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2360*76fc060dSKathiravan Thirumoorthy &gcc_qdss_at_clk_src.clkr.hw, 2361*76fc060dSKathiravan Thirumoorthy }, 2362*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2363*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2364*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2365*76fc060dSKathiravan Thirumoorthy }, 2366*76fc060dSKathiravan Thirumoorthy }, 2367*76fc060dSKathiravan Thirumoorthy }; 2368*76fc060dSKathiravan Thirumoorthy 2369*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qdss_dap_clk = { 2370*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2d058, 2371*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2372*76fc060dSKathiravan Thirumoorthy .clkr = { 2373*76fc060dSKathiravan Thirumoorthy .enable_reg = 0xb004, 2374*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(2), 2375*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2376*76fc060dSKathiravan Thirumoorthy .name = "gcc_qdss_dap_clk", 2377*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2378*76fc060dSKathiravan Thirumoorthy &gcc_qdss_dap_sync_clk_src.hw 2379*76fc060dSKathiravan Thirumoorthy }, 2380*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2381*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2382*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2383*76fc060dSKathiravan Thirumoorthy }, 2384*76fc060dSKathiravan Thirumoorthy }, 2385*76fc060dSKathiravan Thirumoorthy }; 2386*76fc060dSKathiravan Thirumoorthy 2387*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qpic_ahb_clk = { 2388*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x32010, 2389*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2390*76fc060dSKathiravan Thirumoorthy .clkr = { 2391*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x32010, 2392*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2393*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2394*76fc060dSKathiravan Thirumoorthy .name = "gcc_qpic_ahb_clk", 2395*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2396*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2397*76fc060dSKathiravan Thirumoorthy }, 2398*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2399*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2400*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2401*76fc060dSKathiravan Thirumoorthy }, 2402*76fc060dSKathiravan Thirumoorthy }, 2403*76fc060dSKathiravan Thirumoorthy }; 2404*76fc060dSKathiravan Thirumoorthy 2405*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qpic_clk = { 2406*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x32028, 2407*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2408*76fc060dSKathiravan Thirumoorthy .clkr = { 2409*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x32028, 2410*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2411*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2412*76fc060dSKathiravan Thirumoorthy .name = "gcc_qpic_clk", 2413*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2414*76fc060dSKathiravan Thirumoorthy &gcc_qpic_clk_src.clkr.hw, 2415*76fc060dSKathiravan Thirumoorthy }, 2416*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2417*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2418*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2419*76fc060dSKathiravan Thirumoorthy }, 2420*76fc060dSKathiravan Thirumoorthy }, 2421*76fc060dSKathiravan Thirumoorthy }; 2422*76fc060dSKathiravan Thirumoorthy 2423*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qpic_io_macro_clk = { 2424*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3200c, 2425*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2426*76fc060dSKathiravan Thirumoorthy .clkr = { 2427*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3200c, 2428*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2429*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2430*76fc060dSKathiravan Thirumoorthy .name = "gcc_qpic_io_macro_clk", 2431*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2432*76fc060dSKathiravan Thirumoorthy &gcc_qpic_io_macro_clk_src.clkr.hw, 2433*76fc060dSKathiravan Thirumoorthy }, 2434*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2435*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2436*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2437*76fc060dSKathiravan Thirumoorthy }, 2438*76fc060dSKathiravan Thirumoorthy }, 2439*76fc060dSKathiravan Thirumoorthy }; 2440*76fc060dSKathiravan Thirumoorthy 2441*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qpic_sleep_clk = { 2442*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x32018, 2443*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2444*76fc060dSKathiravan Thirumoorthy .clkr = { 2445*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x32018, 2446*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2447*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2448*76fc060dSKathiravan Thirumoorthy .name = "gcc_qpic_sleep_clk", 2449*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2450*76fc060dSKathiravan Thirumoorthy }, 2451*76fc060dSKathiravan Thirumoorthy }, 2452*76fc060dSKathiravan Thirumoorthy }; 2453*76fc060dSKathiravan Thirumoorthy 2454*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_ahb_mst_clk = { 2455*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x1014, 2456*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2457*76fc060dSKathiravan Thirumoorthy .clkr = { 2458*76fc060dSKathiravan Thirumoorthy .enable_reg = 0xb004, 2459*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(14), 2460*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2461*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_ahb_mst_clk", 2462*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2463*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2464*76fc060dSKathiravan Thirumoorthy }, 2465*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2466*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2467*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2468*76fc060dSKathiravan Thirumoorthy }, 2469*76fc060dSKathiravan Thirumoorthy }, 2470*76fc060dSKathiravan Thirumoorthy }; 2471*76fc060dSKathiravan Thirumoorthy 2472*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_ahb_slv_clk = { 2473*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x102c, 2474*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2475*76fc060dSKathiravan Thirumoorthy .clkr = { 2476*76fc060dSKathiravan Thirumoorthy .enable_reg = 0xb004, 2477*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(4), 2478*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2479*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_ahb_slv_clk", 2480*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2481*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2482*76fc060dSKathiravan Thirumoorthy }, 2483*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2484*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2485*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2486*76fc060dSKathiravan Thirumoorthy }, 2487*76fc060dSKathiravan Thirumoorthy }, 2488*76fc060dSKathiravan Thirumoorthy }; 2489*76fc060dSKathiravan Thirumoorthy 2490*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_wrap_se0_clk = { 2491*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x202c, 2492*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2493*76fc060dSKathiravan Thirumoorthy .clkr = { 2494*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x202c, 2495*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2496*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2497*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se0_clk", 2498*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2499*76fc060dSKathiravan Thirumoorthy &gcc_qupv3_wrap_se0_clk_src.clkr.hw, 2500*76fc060dSKathiravan Thirumoorthy }, 2501*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2502*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2503*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2504*76fc060dSKathiravan Thirumoorthy }, 2505*76fc060dSKathiravan Thirumoorthy }, 2506*76fc060dSKathiravan Thirumoorthy }; 2507*76fc060dSKathiravan Thirumoorthy 2508*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_wrap_se1_clk = { 2509*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x302c, 2510*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2511*76fc060dSKathiravan Thirumoorthy .clkr = { 2512*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x302c, 2513*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2514*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2515*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se1_clk", 2516*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2517*76fc060dSKathiravan Thirumoorthy &gcc_qupv3_wrap_se1_clk_src.clkr.hw, 2518*76fc060dSKathiravan Thirumoorthy }, 2519*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2520*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2521*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2522*76fc060dSKathiravan Thirumoorthy }, 2523*76fc060dSKathiravan Thirumoorthy }, 2524*76fc060dSKathiravan Thirumoorthy }; 2525*76fc060dSKathiravan Thirumoorthy 2526*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_wrap_se2_clk = { 2527*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3048, 2528*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2529*76fc060dSKathiravan Thirumoorthy .clkr = { 2530*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3048, 2531*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2532*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2533*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se2_clk", 2534*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2535*76fc060dSKathiravan Thirumoorthy &gcc_qupv3_wrap_se2_clk_src.clkr.hw, 2536*76fc060dSKathiravan Thirumoorthy }, 2537*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2538*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2539*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2540*76fc060dSKathiravan Thirumoorthy }, 2541*76fc060dSKathiravan Thirumoorthy }, 2542*76fc060dSKathiravan Thirumoorthy }; 2543*76fc060dSKathiravan Thirumoorthy 2544*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_wrap_se3_clk = { 2545*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3064, 2546*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2547*76fc060dSKathiravan Thirumoorthy .clkr = { 2548*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3064, 2549*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2550*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2551*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se3_clk", 2552*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2553*76fc060dSKathiravan Thirumoorthy &gcc_qupv3_wrap_se3_clk_src.clkr.hw, 2554*76fc060dSKathiravan Thirumoorthy }, 2555*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2556*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2557*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2558*76fc060dSKathiravan Thirumoorthy }, 2559*76fc060dSKathiravan Thirumoorthy }, 2560*76fc060dSKathiravan Thirumoorthy }; 2561*76fc060dSKathiravan Thirumoorthy 2562*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_wrap_se4_clk = { 2563*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3080, 2564*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2565*76fc060dSKathiravan Thirumoorthy .clkr = { 2566*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3080, 2567*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2568*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2569*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se4_clk", 2570*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2571*76fc060dSKathiravan Thirumoorthy &gcc_qupv3_wrap_se4_clk_src.clkr.hw, 2572*76fc060dSKathiravan Thirumoorthy }, 2573*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2574*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2575*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2576*76fc060dSKathiravan Thirumoorthy }, 2577*76fc060dSKathiravan Thirumoorthy }, 2578*76fc060dSKathiravan Thirumoorthy }; 2579*76fc060dSKathiravan Thirumoorthy 2580*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_wrap_se5_clk = { 2581*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x30a4, 2582*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2583*76fc060dSKathiravan Thirumoorthy .clkr = { 2584*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x30a4, 2585*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2586*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2587*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se5_clk", 2588*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2589*76fc060dSKathiravan Thirumoorthy &gcc_qupv3_wrap_se5_clk_src.clkr.hw, 2590*76fc060dSKathiravan Thirumoorthy }, 2591*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2592*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2593*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2594*76fc060dSKathiravan Thirumoorthy }, 2595*76fc060dSKathiravan Thirumoorthy }, 2596*76fc060dSKathiravan Thirumoorthy }; 2597*76fc060dSKathiravan Thirumoorthy 2598*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_wrap_se6_clk = { 2599*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x4018, 2600*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2601*76fc060dSKathiravan Thirumoorthy .clkr = { 2602*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x4018, 2603*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2604*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2605*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se6_clk", 2606*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2607*76fc060dSKathiravan Thirumoorthy &gcc_qupv3_wrap_se6_clk_src.clkr.hw, 2608*76fc060dSKathiravan Thirumoorthy }, 2609*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2610*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2611*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2612*76fc060dSKathiravan Thirumoorthy }, 2613*76fc060dSKathiravan Thirumoorthy }, 2614*76fc060dSKathiravan Thirumoorthy }; 2615*76fc060dSKathiravan Thirumoorthy 2616*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_qupv3_wrap_se7_clk = { 2617*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x4034, 2618*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2619*76fc060dSKathiravan Thirumoorthy .clkr = { 2620*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x4034, 2621*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2622*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2623*76fc060dSKathiravan Thirumoorthy .name = "gcc_qupv3_wrap_se7_clk", 2624*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2625*76fc060dSKathiravan Thirumoorthy &gcc_qupv3_wrap_se7_clk_src.clkr.hw, 2626*76fc060dSKathiravan Thirumoorthy }, 2627*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2628*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2629*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2630*76fc060dSKathiravan Thirumoorthy }, 2631*76fc060dSKathiravan Thirumoorthy }, 2632*76fc060dSKathiravan Thirumoorthy }; 2633*76fc060dSKathiravan Thirumoorthy 2634*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_sdcc1_ahb_clk = { 2635*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3303c, 2636*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2637*76fc060dSKathiravan Thirumoorthy .clkr = { 2638*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3303c, 2639*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2640*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2641*76fc060dSKathiravan Thirumoorthy .name = "gcc_sdcc1_ahb_clk", 2642*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2643*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2644*76fc060dSKathiravan Thirumoorthy }, 2645*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2646*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2647*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2648*76fc060dSKathiravan Thirumoorthy }, 2649*76fc060dSKathiravan Thirumoorthy }, 2650*76fc060dSKathiravan Thirumoorthy }; 2651*76fc060dSKathiravan Thirumoorthy 2652*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_sdcc1_apps_clk = { 2653*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3302c, 2654*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2655*76fc060dSKathiravan Thirumoorthy .clkr = { 2656*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3302c, 2657*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2658*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2659*76fc060dSKathiravan Thirumoorthy .name = "gcc_sdcc1_apps_clk", 2660*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2661*76fc060dSKathiravan Thirumoorthy &gcc_sdcc1_apps_clk_src.clkr.hw, 2662*76fc060dSKathiravan Thirumoorthy }, 2663*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2664*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2665*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2666*76fc060dSKathiravan Thirumoorthy }, 2667*76fc060dSKathiravan Thirumoorthy }, 2668*76fc060dSKathiravan Thirumoorthy }; 2669*76fc060dSKathiravan Thirumoorthy 2670*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_sdcc1_ice_core_clk = { 2671*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x33034, 2672*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2673*76fc060dSKathiravan Thirumoorthy .clkr = { 2674*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x33034, 2675*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2676*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2677*76fc060dSKathiravan Thirumoorthy .name = "gcc_sdcc1_ice_core_clk", 2678*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2679*76fc060dSKathiravan Thirumoorthy &gcc_sdcc1_ice_core_clk_src.clkr.hw, 2680*76fc060dSKathiravan Thirumoorthy }, 2681*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2682*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2683*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2684*76fc060dSKathiravan Thirumoorthy }, 2685*76fc060dSKathiravan Thirumoorthy }, 2686*76fc060dSKathiravan Thirumoorthy }; 2687*76fc060dSKathiravan Thirumoorthy 2688*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_snoc_usb_clk = { 2689*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2e0c4, 2690*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2691*76fc060dSKathiravan Thirumoorthy .clkr = { 2692*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2e0c4, 2693*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2694*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2695*76fc060dSKathiravan Thirumoorthy .name = "gcc_snoc_usb_clk", 2696*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2697*76fc060dSKathiravan Thirumoorthy &gcc_usb0_master_clk_src.clkr.hw, 2698*76fc060dSKathiravan Thirumoorthy }, 2699*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2700*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2701*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2702*76fc060dSKathiravan Thirumoorthy }, 2703*76fc060dSKathiravan Thirumoorthy }, 2704*76fc060dSKathiravan Thirumoorthy }; 2705*76fc060dSKathiravan Thirumoorthy 2706*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_uniphy0_ahb_clk = { 2707*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x1704c, 2708*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2709*76fc060dSKathiravan Thirumoorthy .clkr = { 2710*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x1704c, 2711*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2712*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2713*76fc060dSKathiravan Thirumoorthy .name = "gcc_uniphy0_ahb_clk", 2714*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2715*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2716*76fc060dSKathiravan Thirumoorthy }, 2717*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2718*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2719*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2720*76fc060dSKathiravan Thirumoorthy }, 2721*76fc060dSKathiravan Thirumoorthy }, 2722*76fc060dSKathiravan Thirumoorthy }; 2723*76fc060dSKathiravan Thirumoorthy 2724*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_uniphy0_sys_clk = { 2725*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17048, 2726*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2727*76fc060dSKathiravan Thirumoorthy .clkr = { 2728*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17048, 2729*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2730*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2731*76fc060dSKathiravan Thirumoorthy .name = "gcc_uniphy0_sys_clk", 2732*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2733*76fc060dSKathiravan Thirumoorthy &gcc_uniphy_sys_clk_src.clkr.hw, 2734*76fc060dSKathiravan Thirumoorthy }, 2735*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2736*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2737*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2738*76fc060dSKathiravan Thirumoorthy }, 2739*76fc060dSKathiravan Thirumoorthy }, 2740*76fc060dSKathiravan Thirumoorthy }; 2741*76fc060dSKathiravan Thirumoorthy 2742*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_uniphy1_ahb_clk = { 2743*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x1705c, 2744*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2745*76fc060dSKathiravan Thirumoorthy .clkr = { 2746*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x1705c, 2747*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2748*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2749*76fc060dSKathiravan Thirumoorthy .name = "gcc_uniphy1_ahb_clk", 2750*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2751*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2752*76fc060dSKathiravan Thirumoorthy }, 2753*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2754*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2755*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2756*76fc060dSKathiravan Thirumoorthy }, 2757*76fc060dSKathiravan Thirumoorthy }, 2758*76fc060dSKathiravan Thirumoorthy }; 2759*76fc060dSKathiravan Thirumoorthy 2760*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_uniphy1_sys_clk = { 2761*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17058, 2762*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2763*76fc060dSKathiravan Thirumoorthy .clkr = { 2764*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17058, 2765*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2766*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2767*76fc060dSKathiravan Thirumoorthy .name = "gcc_uniphy1_sys_clk", 2768*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2769*76fc060dSKathiravan Thirumoorthy &gcc_uniphy_sys_clk_src.clkr.hw, 2770*76fc060dSKathiravan Thirumoorthy }, 2771*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2772*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2773*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2774*76fc060dSKathiravan Thirumoorthy }, 2775*76fc060dSKathiravan Thirumoorthy }, 2776*76fc060dSKathiravan Thirumoorthy }; 2777*76fc060dSKathiravan Thirumoorthy 2778*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_uniphy2_ahb_clk = { 2779*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x1706c, 2780*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2781*76fc060dSKathiravan Thirumoorthy .clkr = { 2782*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x1706c, 2783*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2784*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2785*76fc060dSKathiravan Thirumoorthy .name = "gcc_uniphy2_ahb_clk", 2786*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2787*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2788*76fc060dSKathiravan Thirumoorthy }, 2789*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2790*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2791*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2792*76fc060dSKathiravan Thirumoorthy }, 2793*76fc060dSKathiravan Thirumoorthy }, 2794*76fc060dSKathiravan Thirumoorthy }; 2795*76fc060dSKathiravan Thirumoorthy 2796*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_uniphy2_sys_clk = { 2797*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x17068, 2798*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2799*76fc060dSKathiravan Thirumoorthy .clkr = { 2800*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x17068, 2801*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2802*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2803*76fc060dSKathiravan Thirumoorthy .name = "gcc_uniphy2_sys_clk", 2804*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2805*76fc060dSKathiravan Thirumoorthy &gcc_uniphy_sys_clk_src.clkr.hw, 2806*76fc060dSKathiravan Thirumoorthy }, 2807*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2808*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2809*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2810*76fc060dSKathiravan Thirumoorthy }, 2811*76fc060dSKathiravan Thirumoorthy }, 2812*76fc060dSKathiravan Thirumoorthy }; 2813*76fc060dSKathiravan Thirumoorthy 2814*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb0_aux_clk = { 2815*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2c04c, 2816*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2817*76fc060dSKathiravan Thirumoorthy .clkr = { 2818*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2c04c, 2819*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2820*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2821*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_aux_clk", 2822*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2823*76fc060dSKathiravan Thirumoorthy &gcc_usb0_aux_clk_src.clkr.hw, 2824*76fc060dSKathiravan Thirumoorthy }, 2825*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2826*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2827*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2828*76fc060dSKathiravan Thirumoorthy }, 2829*76fc060dSKathiravan Thirumoorthy }, 2830*76fc060dSKathiravan Thirumoorthy }; 2831*76fc060dSKathiravan Thirumoorthy 2832*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb0_eud_at_clk = { 2833*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x30004, 2834*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2835*76fc060dSKathiravan Thirumoorthy .clkr = { 2836*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x30004, 2837*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2838*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2839*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_eud_at_clk", 2840*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2841*76fc060dSKathiravan Thirumoorthy &gcc_eud_at_div_clk_src.hw, 2842*76fc060dSKathiravan Thirumoorthy }, 2843*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2844*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2845*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2846*76fc060dSKathiravan Thirumoorthy }, 2847*76fc060dSKathiravan Thirumoorthy }, 2848*76fc060dSKathiravan Thirumoorthy }; 2849*76fc060dSKathiravan Thirumoorthy 2850*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb0_master_clk = { 2851*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2c044, 2852*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2853*76fc060dSKathiravan Thirumoorthy .clkr = { 2854*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2c044, 2855*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2856*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2857*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_master_clk", 2858*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2859*76fc060dSKathiravan Thirumoorthy &gcc_usb0_master_clk_src.clkr.hw, 2860*76fc060dSKathiravan Thirumoorthy }, 2861*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2862*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2863*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2864*76fc060dSKathiravan Thirumoorthy }, 2865*76fc060dSKathiravan Thirumoorthy }, 2866*76fc060dSKathiravan Thirumoorthy }; 2867*76fc060dSKathiravan Thirumoorthy 2868*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb0_mock_utmi_clk = { 2869*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2c050, 2870*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2871*76fc060dSKathiravan Thirumoorthy .clkr = { 2872*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2c050, 2873*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2874*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2875*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_mock_utmi_clk", 2876*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2877*76fc060dSKathiravan Thirumoorthy &gcc_usb0_mock_utmi_div_clk_src.clkr.hw, 2878*76fc060dSKathiravan Thirumoorthy }, 2879*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2880*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2881*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2882*76fc060dSKathiravan Thirumoorthy }, 2883*76fc060dSKathiravan Thirumoorthy }, 2884*76fc060dSKathiravan Thirumoorthy }; 2885*76fc060dSKathiravan Thirumoorthy 2886*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb0_phy_cfg_ahb_clk = { 2887*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2c05c, 2888*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2889*76fc060dSKathiravan Thirumoorthy .clkr = { 2890*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2c05c, 2891*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2892*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2893*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_phy_cfg_ahb_clk", 2894*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2895*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2896*76fc060dSKathiravan Thirumoorthy }, 2897*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2898*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2899*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2900*76fc060dSKathiravan Thirumoorthy }, 2901*76fc060dSKathiravan Thirumoorthy }, 2902*76fc060dSKathiravan Thirumoorthy }; 2903*76fc060dSKathiravan Thirumoorthy 2904*76fc060dSKathiravan Thirumoorthy static struct clk_regmap_phy_mux gcc_usb0_pipe_clk_src = { 2905*76fc060dSKathiravan Thirumoorthy .reg = 0x2c074, 2906*76fc060dSKathiravan Thirumoorthy .clkr = { 2907*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2908*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_pipe_clk_src", 2909*76fc060dSKathiravan Thirumoorthy .parent_data = &(const struct clk_parent_data) { 2910*76fc060dSKathiravan Thirumoorthy .index = DT_USB3_PHY0_CC_PIPE_CLK, 2911*76fc060dSKathiravan Thirumoorthy }, 2912*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2913*76fc060dSKathiravan Thirumoorthy .ops = &clk_regmap_phy_mux_ops, 2914*76fc060dSKathiravan Thirumoorthy }, 2915*76fc060dSKathiravan Thirumoorthy }, 2916*76fc060dSKathiravan Thirumoorthy }; 2917*76fc060dSKathiravan Thirumoorthy 2918*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb0_pipe_clk = { 2919*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2c054, 2920*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_DELAY, 2921*76fc060dSKathiravan Thirumoorthy .clkr = { 2922*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2c054, 2923*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2924*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2925*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_pipe_clk", 2926*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw *[]) { 2927*76fc060dSKathiravan Thirumoorthy &gcc_usb0_pipe_clk_src.clkr.hw 2928*76fc060dSKathiravan Thirumoorthy }, 2929*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2930*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2931*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2932*76fc060dSKathiravan Thirumoorthy }, 2933*76fc060dSKathiravan Thirumoorthy }, 2934*76fc060dSKathiravan Thirumoorthy }; 2935*76fc060dSKathiravan Thirumoorthy 2936*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb0_sleep_clk = { 2937*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x2c058, 2938*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2939*76fc060dSKathiravan Thirumoorthy .clkr = { 2940*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x2c058, 2941*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2942*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2943*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb0_sleep_clk", 2944*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2945*76fc060dSKathiravan Thirumoorthy &gcc_sleep_clk_src.clkr.hw, 2946*76fc060dSKathiravan Thirumoorthy }, 2947*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2948*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2949*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2950*76fc060dSKathiravan Thirumoorthy }, 2951*76fc060dSKathiravan Thirumoorthy }, 2952*76fc060dSKathiravan Thirumoorthy }; 2953*76fc060dSKathiravan Thirumoorthy 2954*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb1_master_clk = { 2955*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3c028, 2956*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2957*76fc060dSKathiravan Thirumoorthy .clkr = { 2958*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3c028, 2959*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2960*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2961*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb1_master_clk", 2962*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2963*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 2964*76fc060dSKathiravan Thirumoorthy }, 2965*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2966*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2967*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2968*76fc060dSKathiravan Thirumoorthy }, 2969*76fc060dSKathiravan Thirumoorthy }, 2970*76fc060dSKathiravan Thirumoorthy }; 2971*76fc060dSKathiravan Thirumoorthy 2972*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb1_mock_utmi_clk = { 2973*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3c024, 2974*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 2975*76fc060dSKathiravan Thirumoorthy .clkr = { 2976*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3c024, 2977*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2978*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2979*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb1_mock_utmi_clk", 2980*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2981*76fc060dSKathiravan Thirumoorthy &gcc_usb1_mock_utmi_div_clk_src.clkr.hw, 2982*76fc060dSKathiravan Thirumoorthy }, 2983*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 2984*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 2985*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 2986*76fc060dSKathiravan Thirumoorthy }, 2987*76fc060dSKathiravan Thirumoorthy }, 2988*76fc060dSKathiravan Thirumoorthy }; 2989*76fc060dSKathiravan Thirumoorthy 2990*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb1_phy_cfg_ahb_clk = { 2991*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3c01c, 2992*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT_VOTED, 2993*76fc060dSKathiravan Thirumoorthy .clkr = { 2994*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3c01c, 2995*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 2996*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 2997*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb1_phy_cfg_ahb_clk", 2998*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 2999*76fc060dSKathiravan Thirumoorthy &gcc_pcnoc_bfdcd_clk_src.clkr.hw, 3000*76fc060dSKathiravan Thirumoorthy }, 3001*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 3002*76fc060dSKathiravan Thirumoorthy .flags = CLK_SET_RATE_PARENT, 3003*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 3004*76fc060dSKathiravan Thirumoorthy }, 3005*76fc060dSKathiravan Thirumoorthy }, 3006*76fc060dSKathiravan Thirumoorthy }; 3007*76fc060dSKathiravan Thirumoorthy 3008*76fc060dSKathiravan Thirumoorthy static struct clk_branch gcc_usb1_sleep_clk = { 3009*76fc060dSKathiravan Thirumoorthy .halt_reg = 0x3c020, 3010*76fc060dSKathiravan Thirumoorthy .halt_check = BRANCH_HALT, 3011*76fc060dSKathiravan Thirumoorthy .clkr = { 3012*76fc060dSKathiravan Thirumoorthy .enable_reg = 0x3c020, 3013*76fc060dSKathiravan Thirumoorthy .enable_mask = BIT(0), 3014*76fc060dSKathiravan Thirumoorthy .hw.init = &(const struct clk_init_data) { 3015*76fc060dSKathiravan Thirumoorthy .name = "gcc_usb1_sleep_clk", 3016*76fc060dSKathiravan Thirumoorthy .parent_hws = (const struct clk_hw*[]) { 3017*76fc060dSKathiravan Thirumoorthy &gcc_sleep_clk_src.clkr.hw, 3018*76fc060dSKathiravan Thirumoorthy }, 3019*76fc060dSKathiravan Thirumoorthy .num_parents = 1, 3020*76fc060dSKathiravan Thirumoorthy .ops = &clk_branch2_ops, 3021*76fc060dSKathiravan Thirumoorthy }, 3022*76fc060dSKathiravan Thirumoorthy }, 3023*76fc060dSKathiravan Thirumoorthy }; 3024*76fc060dSKathiravan Thirumoorthy 3025*76fc060dSKathiravan Thirumoorthy static struct clk_regmap *gcc_ipq9650_clocks[] = { 3026*76fc060dSKathiravan Thirumoorthy [GCC_ADSS_PWM_CLK] = &gcc_adss_pwm_clk.clkr, 3027*76fc060dSKathiravan Thirumoorthy [GCC_ADSS_PWM_CLK_SRC] = &gcc_adss_pwm_clk_src.clkr, 3028*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE0_1LANE_M_CLK] = &gcc_anoc_pcie0_1lane_m_clk.clkr, 3029*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE0_1LANE_S_CLK] = &gcc_anoc_pcie0_1lane_s_clk.clkr, 3030*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE1_2LANE_M_CLK] = &gcc_anoc_pcie1_2lane_m_clk.clkr, 3031*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE1_2LANE_S_CLK] = &gcc_anoc_pcie1_2lane_s_clk.clkr, 3032*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE2_2LANE_M_CLK] = &gcc_anoc_pcie2_2lane_m_clk.clkr, 3033*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE2_2LANE_S_CLK] = &gcc_anoc_pcie2_2lane_s_clk.clkr, 3034*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE3_2LANE_M_CLK] = &gcc_anoc_pcie3_2lane_m_clk.clkr, 3035*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE3_2LANE_S_CLK] = &gcc_anoc_pcie3_2lane_s_clk.clkr, 3036*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE4_1LANE_M_CLK] = &gcc_anoc_pcie4_1lane_m_clk.clkr, 3037*76fc060dSKathiravan Thirumoorthy [GCC_ANOC_PCIE4_1LANE_S_CLK] = &gcc_anoc_pcie4_1lane_s_clk.clkr, 3038*76fc060dSKathiravan Thirumoorthy [GCC_CMN_12GPLL_AHB_CLK] = &gcc_cmn_12gpll_ahb_clk.clkr, 3039*76fc060dSKathiravan Thirumoorthy [GCC_CMN_12GPLL_SYS_CLK] = &gcc_cmn_12gpll_sys_clk.clkr, 3040*76fc060dSKathiravan Thirumoorthy [GCC_MDIO_AHB_CLK] = &gcc_mdio_ahb_clk.clkr, 3041*76fc060dSKathiravan Thirumoorthy [GCC_NSS_TS_CLK] = &gcc_nss_ts_clk.clkr, 3042*76fc060dSKathiravan Thirumoorthy [GCC_NSS_TS_CLK_SRC] = &gcc_nss_ts_clk_src.clkr, 3043*76fc060dSKathiravan Thirumoorthy [GCC_NSSCC_CLK] = &gcc_nsscc_clk.clkr, 3044*76fc060dSKathiravan Thirumoorthy [GCC_NSSCFG_CLK] = &gcc_nsscfg_clk.clkr, 3045*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_ATB_CLK] = &gcc_nssnoc_atb_clk.clkr, 3046*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_MEMNOC_1_CLK] = &gcc_nssnoc_memnoc_1_clk.clkr, 3047*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_MEMNOC_BFDCD_CLK_SRC] = &gcc_nssnoc_memnoc_bfdcd_clk_src.clkr, 3048*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_MEMNOC_CLK] = &gcc_nssnoc_memnoc_clk.clkr, 3049*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_MEMNOC_DIV_CLK_SRC] = &gcc_nssnoc_memnoc_div_clk_src.clkr, 3050*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_NSSCC_CLK] = &gcc_nssnoc_nsscc_clk.clkr, 3051*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_PCNOC_1_CLK] = &gcc_nssnoc_pcnoc_1_clk.clkr, 3052*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_QOSGEN_REF_CLK] = &gcc_nssnoc_qosgen_ref_clk.clkr, 3053*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_SNOC_1_CLK] = &gcc_nssnoc_snoc_1_clk.clkr, 3054*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_SNOC_CLK] = &gcc_nssnoc_snoc_clk.clkr, 3055*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_TIMEOUT_REF_CLK] = &gcc_nssnoc_timeout_ref_clk.clkr, 3056*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_XO_DCD_CLK] = &gcc_nssnoc_xo_dcd_clk.clkr, 3057*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AHB_CLK] = &gcc_pcie0_ahb_clk.clkr, 3058*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AUX_CLK] = &gcc_pcie0_aux_clk.clkr, 3059*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_M_CLK] = &gcc_pcie0_axi_m_clk.clkr, 3060*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_M_CLK_SRC] = &gcc_pcie0_axi_m_clk_src.clkr, 3061*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_S_BRIDGE_CLK] = &gcc_pcie0_axi_s_bridge_clk.clkr, 3062*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_S_CLK] = &gcc_pcie0_axi_s_clk.clkr, 3063*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_S_CLK_SRC] = &gcc_pcie0_axi_s_clk_src.clkr, 3064*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_PIPE_CLK] = &gcc_pcie0_pipe_clk.clkr, 3065*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_PIPE_CLK_SRC] = &gcc_pcie0_pipe_clk_src.clkr, 3066*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_RCHNG_CLK_SRC] = &gcc_pcie0_rchng_clk_src.clkr, 3067*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_RCHNG_CLK] = &gcc_pcie0_rchng_clk.clkr, 3068*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AHB_CLK] = &gcc_pcie1_ahb_clk.clkr, 3069*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AUX_CLK] = &gcc_pcie1_aux_clk.clkr, 3070*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_M_CLK] = &gcc_pcie1_axi_m_clk.clkr, 3071*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_M_CLK_SRC] = &gcc_pcie1_axi_m_clk_src.clkr, 3072*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_S_BRIDGE_CLK] = &gcc_pcie1_axi_s_bridge_clk.clkr, 3073*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_S_CLK] = &gcc_pcie1_axi_s_clk.clkr, 3074*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_S_CLK_SRC] = &gcc_pcie1_axi_s_clk_src.clkr, 3075*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_PIPE_CLK] = &gcc_pcie1_pipe_clk.clkr, 3076*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_PIPE_CLK_SRC] = &gcc_pcie1_pipe_clk_src.clkr, 3077*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_RCHNG_CLK_SRC] = &gcc_pcie1_rchng_clk_src.clkr, 3078*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_RCHNG_CLK] = &gcc_pcie1_rchng_clk.clkr, 3079*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AHB_CLK] = &gcc_pcie2_ahb_clk.clkr, 3080*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AUX_CLK] = &gcc_pcie2_aux_clk.clkr, 3081*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_M_CLK] = &gcc_pcie2_axi_m_clk.clkr, 3082*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_M_CLK_SRC] = &gcc_pcie2_axi_m_clk_src.clkr, 3083*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_S_BRIDGE_CLK] = &gcc_pcie2_axi_s_bridge_clk.clkr, 3084*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_S_CLK] = &gcc_pcie2_axi_s_clk.clkr, 3085*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_S_CLK_SRC] = &gcc_pcie2_axi_s_clk_src.clkr, 3086*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_PIPE_CLK] = &gcc_pcie2_pipe_clk.clkr, 3087*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_PIPE_CLK_SRC] = &gcc_pcie2_pipe_clk_src.clkr, 3088*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_RCHNG_CLK_SRC] = &gcc_pcie2_rchng_clk_src.clkr, 3089*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_RCHNG_CLK] = &gcc_pcie2_rchng_clk.clkr, 3090*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AHB_CLK] = &gcc_pcie3_ahb_clk.clkr, 3091*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AUX_CLK] = &gcc_pcie3_aux_clk.clkr, 3092*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_M_CLK] = &gcc_pcie3_axi_m_clk.clkr, 3093*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_M_CLK_SRC] = &gcc_pcie3_axi_m_clk_src.clkr, 3094*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_S_BRIDGE_CLK] = &gcc_pcie3_axi_s_bridge_clk.clkr, 3095*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_S_CLK] = &gcc_pcie3_axi_s_clk.clkr, 3096*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_S_CLK_SRC] = &gcc_pcie3_axi_s_clk_src.clkr, 3097*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_PIPE_CLK] = &gcc_pcie3_pipe_clk.clkr, 3098*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_PIPE_CLK_SRC] = &gcc_pcie3_pipe_clk_src.clkr, 3099*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_RCHNG_CLK_SRC] = &gcc_pcie3_rchng_clk_src.clkr, 3100*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_RCHNG_CLK] = &gcc_pcie3_rchng_clk.clkr, 3101*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AHB_CLK] = &gcc_pcie4_ahb_clk.clkr, 3102*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AUX_CLK] = &gcc_pcie4_aux_clk.clkr, 3103*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_M_CLK] = &gcc_pcie4_axi_m_clk.clkr, 3104*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_M_CLK_SRC] = &gcc_pcie4_axi_m_clk_src.clkr, 3105*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_S_BRIDGE_CLK] = &gcc_pcie4_axi_s_bridge_clk.clkr, 3106*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_S_CLK] = &gcc_pcie4_axi_s_clk.clkr, 3107*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_S_CLK_SRC] = &gcc_pcie4_axi_s_clk_src.clkr, 3108*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_PIPE_CLK] = &gcc_pcie4_pipe_clk.clkr, 3109*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_PIPE_CLK_SRC] = &gcc_pcie4_pipe_clk_src.clkr, 3110*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_RCHNG_CLK_SRC] = &gcc_pcie4_rchng_clk_src.clkr, 3111*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_RCHNG_CLK] = &gcc_pcie4_rchng_clk.clkr, 3112*76fc060dSKathiravan Thirumoorthy [GCC_PCIE_AUX_CLK_SRC] = &gcc_pcie_aux_clk_src.clkr, 3113*76fc060dSKathiravan Thirumoorthy [GCC_PCNOC_BFDCD_CLK_SRC] = &gcc_pcnoc_bfdcd_clk_src.clkr, 3114*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_AT_CLK] = &gcc_qdss_at_clk.clkr, 3115*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_AT_CLK_SRC] = &gcc_qdss_at_clk_src.clkr, 3116*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_DAP_CLK] = &gcc_qdss_dap_clk.clkr, 3117*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_TSCTR_CLK_SRC] = &gcc_qdss_tsctr_clk_src.clkr, 3118*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_AHB_CLK] = &gcc_qpic_ahb_clk.clkr, 3119*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_CLK] = &gcc_qpic_clk.clkr, 3120*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_CLK_SRC] = &gcc_qpic_clk_src.clkr, 3121*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_IO_MACRO_CLK] = &gcc_qpic_io_macro_clk.clkr, 3122*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_IO_MACRO_CLK_SRC] = &gcc_qpic_io_macro_clk_src.clkr, 3123*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_SLEEP_CLK] = &gcc_qpic_sleep_clk.clkr, 3124*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_2X_CORE_CLK_SRC] = &gcc_qupv3_2x_core_clk_src.clkr, 3125*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_AHB_MST_CLK] = &gcc_qupv3_ahb_mst_clk.clkr, 3126*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_AHB_SLV_CLK] = &gcc_qupv3_ahb_slv_clk.clkr, 3127*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE0_CLK] = &gcc_qupv3_wrap_se0_clk.clkr, 3128*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE0_CLK_SRC] = &gcc_qupv3_wrap_se0_clk_src.clkr, 3129*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE1_CLK] = &gcc_qupv3_wrap_se1_clk.clkr, 3130*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE1_CLK_SRC] = &gcc_qupv3_wrap_se1_clk_src.clkr, 3131*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE2_CLK] = &gcc_qupv3_wrap_se2_clk.clkr, 3132*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE2_CLK_SRC] = &gcc_qupv3_wrap_se2_clk_src.clkr, 3133*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE3_CLK] = &gcc_qupv3_wrap_se3_clk.clkr, 3134*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE3_CLK_SRC] = &gcc_qupv3_wrap_se3_clk_src.clkr, 3135*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE4_CLK] = &gcc_qupv3_wrap_se4_clk.clkr, 3136*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE4_CLK_SRC] = &gcc_qupv3_wrap_se4_clk_src.clkr, 3137*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE5_CLK] = &gcc_qupv3_wrap_se5_clk.clkr, 3138*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE5_CLK_SRC] = &gcc_qupv3_wrap_se5_clk_src.clkr, 3139*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE6_CLK] = &gcc_qupv3_wrap_se6_clk.clkr, 3140*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE6_CLK_SRC] = &gcc_qupv3_wrap_se6_clk_src.clkr, 3141*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE7_CLK] = &gcc_qupv3_wrap_se7_clk.clkr, 3142*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE7_CLK_SRC] = &gcc_qupv3_wrap_se7_clk_src.clkr, 3143*76fc060dSKathiravan Thirumoorthy [GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr, 3144*76fc060dSKathiravan Thirumoorthy [GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr, 3145*76fc060dSKathiravan Thirumoorthy [GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr, 3146*76fc060dSKathiravan Thirumoorthy [GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr, 3147*76fc060dSKathiravan Thirumoorthy [GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr, 3148*76fc060dSKathiravan Thirumoorthy [GCC_SLEEP_CLK_SRC] = &gcc_sleep_clk_src.clkr, 3149*76fc060dSKathiravan Thirumoorthy [GCC_SNOC_USB_CLK] = &gcc_snoc_usb_clk.clkr, 3150*76fc060dSKathiravan Thirumoorthy [GCC_SYSTEM_NOC_BFDCD_CLK_SRC] = &gcc_system_noc_bfdcd_clk_src.clkr, 3151*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY0_AHB_CLK] = &gcc_uniphy0_ahb_clk.clkr, 3152*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY0_SYS_CLK] = &gcc_uniphy0_sys_clk.clkr, 3153*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY1_AHB_CLK] = &gcc_uniphy1_ahb_clk.clkr, 3154*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY1_SYS_CLK] = &gcc_uniphy1_sys_clk.clkr, 3155*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY2_AHB_CLK] = &gcc_uniphy2_ahb_clk.clkr, 3156*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY2_SYS_CLK] = &gcc_uniphy2_sys_clk.clkr, 3157*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY_SYS_CLK_SRC] = &gcc_uniphy_sys_clk_src.clkr, 3158*76fc060dSKathiravan Thirumoorthy [GCC_USB0_AUX_CLK] = &gcc_usb0_aux_clk.clkr, 3159*76fc060dSKathiravan Thirumoorthy [GCC_USB0_AUX_CLK_SRC] = &gcc_usb0_aux_clk_src.clkr, 3160*76fc060dSKathiravan Thirumoorthy [GCC_USB0_EUD_AT_CLK] = &gcc_usb0_eud_at_clk.clkr, 3161*76fc060dSKathiravan Thirumoorthy [GCC_USB0_MASTER_CLK] = &gcc_usb0_master_clk.clkr, 3162*76fc060dSKathiravan Thirumoorthy [GCC_USB0_MASTER_CLK_SRC] = &gcc_usb0_master_clk_src.clkr, 3163*76fc060dSKathiravan Thirumoorthy [GCC_USB0_MOCK_UTMI_CLK] = &gcc_usb0_mock_utmi_clk.clkr, 3164*76fc060dSKathiravan Thirumoorthy [GCC_USB0_MOCK_UTMI_CLK_SRC] = &gcc_usb0_mock_utmi_clk_src.clkr, 3165*76fc060dSKathiravan Thirumoorthy [GCC_USB0_MOCK_UTMI_DIV_CLK_SRC] = &gcc_usb0_mock_utmi_div_clk_src.clkr, 3166*76fc060dSKathiravan Thirumoorthy [GCC_USB0_PHY_CFG_AHB_CLK] = &gcc_usb0_phy_cfg_ahb_clk.clkr, 3167*76fc060dSKathiravan Thirumoorthy [GCC_USB0_PIPE_CLK] = &gcc_usb0_pipe_clk.clkr, 3168*76fc060dSKathiravan Thirumoorthy [GCC_USB0_PIPE_CLK_SRC] = &gcc_usb0_pipe_clk_src.clkr, 3169*76fc060dSKathiravan Thirumoorthy [GCC_USB0_SLEEP_CLK] = &gcc_usb0_sleep_clk.clkr, 3170*76fc060dSKathiravan Thirumoorthy [GCC_USB1_MASTER_CLK] = &gcc_usb1_master_clk.clkr, 3171*76fc060dSKathiravan Thirumoorthy [GCC_USB1_MOCK_UTMI_CLK] = &gcc_usb1_mock_utmi_clk.clkr, 3172*76fc060dSKathiravan Thirumoorthy [GCC_USB1_MOCK_UTMI_CLK_SRC] = &gcc_usb1_mock_utmi_clk_src.clkr, 3173*76fc060dSKathiravan Thirumoorthy [GCC_USB1_MOCK_UTMI_DIV_CLK_SRC] = &gcc_usb1_mock_utmi_div_clk_src.clkr, 3174*76fc060dSKathiravan Thirumoorthy [GCC_USB1_PHY_CFG_AHB_CLK] = &gcc_usb1_phy_cfg_ahb_clk.clkr, 3175*76fc060dSKathiravan Thirumoorthy [GCC_USB1_SLEEP_CLK] = &gcc_usb1_sleep_clk.clkr, 3176*76fc060dSKathiravan Thirumoorthy [GCC_XO_CLK_SRC] = &gcc_xo_clk_src.clkr, 3177*76fc060dSKathiravan Thirumoorthy [GPLL0_MAIN] = &gpll0_main.clkr, 3178*76fc060dSKathiravan Thirumoorthy [GPLL0] = &gpll0.clkr, 3179*76fc060dSKathiravan Thirumoorthy [GPLL2] = &gpll2.clkr, 3180*76fc060dSKathiravan Thirumoorthy [GPLL2_OUT_MAIN] = &gpll2_out_main.clkr, 3181*76fc060dSKathiravan Thirumoorthy [GPLL4] = &gpll4.clkr, 3182*76fc060dSKathiravan Thirumoorthy }; 3183*76fc060dSKathiravan Thirumoorthy 3184*76fc060dSKathiravan Thirumoorthy static const struct qcom_reset_map gcc_ipq9650_resets[] = { 3185*76fc060dSKathiravan Thirumoorthy [GCC_ADSS_BCR] = { 0x1c000 }, 3186*76fc060dSKathiravan Thirumoorthy [GCC_ADSS_PWM_CLK_ARES] = { 0x1c00c, 2 }, 3187*76fc060dSKathiravan Thirumoorthy [GCC_APC0_VOLTAGE_DROOP_DETECTOR_BCR] = { 0x38000 }, 3188*76fc060dSKathiravan Thirumoorthy [GCC_APC0_VOLTAGE_DROOP_DETECTOR_GPLL0_CLK_ARES] = { 0x3800c, 2 }, 3189*76fc060dSKathiravan Thirumoorthy [GCC_APSS_AHB_CLK_ARES] = { 0x24014, 2 }, 3190*76fc060dSKathiravan Thirumoorthy [GCC_APSS_ATB_CLK_ARES] = { 0x24034, 2 }, 3191*76fc060dSKathiravan Thirumoorthy [GCC_APSS_AXI_CLK_ARES] = { 0x24018, 2 }, 3192*76fc060dSKathiravan Thirumoorthy [GCC_APSS_TS_CLK_ARES] = { 0x24030, 2 }, 3193*76fc060dSKathiravan Thirumoorthy [GCC_BOOT_ROM_AHB_CLK_ARES] = { 0x1302c, 2 }, 3194*76fc060dSKathiravan Thirumoorthy [GCC_BOOT_ROM_BCR] = { 0x13028 }, 3195*76fc060dSKathiravan Thirumoorthy [GCC_CPUSS_TRIG_CLK_ARES] = { 0x2401c, 2 }, 3196*76fc060dSKathiravan Thirumoorthy [GCC_GP1_CLK_ARES] = { 0x8018, 2 }, 3197*76fc060dSKathiravan Thirumoorthy [GCC_GP2_CLK_ARES] = { 0x8030, 2 }, 3198*76fc060dSKathiravan Thirumoorthy [GCC_GP3_CLK_ARES] = { 0x8048, 2 }, 3199*76fc060dSKathiravan Thirumoorthy [GCC_MDIO_AHB_CLK_ARES] = { 0x17040, 2 }, 3200*76fc060dSKathiravan Thirumoorthy [GCC_MDIO_BCR] = { 0x1703c }, 3201*76fc060dSKathiravan Thirumoorthy [GCC_NSS_BCR] = { 0x17000 }, 3202*76fc060dSKathiravan Thirumoorthy [GCC_NSS_TS_CLK_ARES] = { 0x17018, 2 }, 3203*76fc060dSKathiravan Thirumoorthy [GCC_NSSCC_CLK_ARES] = { 0x17034, 2 }, 3204*76fc060dSKathiravan Thirumoorthy [GCC_NSSCFG_CLK_ARES] = { 0x1702c, 2 }, 3205*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_ATB_CLK_ARES] = { 0x17014, 2 }, 3206*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_MEMNOC_1_CLK_ARES] = { 0x17084, 2 }, 3207*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_MEMNOC_CLK_ARES] = { 0x17024, 2 }, 3208*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_NSSCC_CLK_ARES] = { 0x17030, 2 }, 3209*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_PCNOC_1_CLK_ARES] = { 0x17080, 2 }, 3210*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_QOSGEN_REF_CLK_ARES] = { 0x1701c, 2 }, 3211*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_SNOC_1_CLK_ARES] = { 0x1707c, 2 }, 3212*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_SNOC_CLK_ARES] = { 0x17028, 2 }, 3213*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_TIMEOUT_REF_CLK_ARES] = { 0x17020, 2 }, 3214*76fc060dSKathiravan Thirumoorthy [GCC_NSSNOC_XO_DCD_CLK_ARES] = { 0x17074, 2 }, 3215*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AHB_CLK_ARES] = { 0x28030, 2 }, 3216*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AUX_CLK_ARES] = { 0x28070, 2 }, 3217*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_M_CLK_ARES] = { 0x28038, 2 }, 3218*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_S_BRIDGE_CLK_ARES] = { 0x28048, 2 }, 3219*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_S_CLK_ARES] = { 0x28040, 2 }, 3220*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_BCR] = { 0x28000 }, 3221*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_LINK_DOWN_BCR] = { 0x28054 }, 3222*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_PHY_BCR] = { 0x28060 }, 3223*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_PIPE_CLK_ARES] = { 0x28068, 2 }, 3224*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0PHY_PHY_BCR] = { 0x2805c }, 3225*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_PIPE_RESET] = { 0x28058, 0 }, 3226*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_CORE_STICKY_RESET] = { 0x28058, 1 }, 3227*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_S_STICKY_RESET] = { 0x28058, 2 }, 3228*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_S_RESET] = { 0x28058, 3 }, 3229*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_M_STICKY_RESET] = { 0x28058, 4 }, 3230*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AXI_M_RESET] = { 0x28058, 5 }, 3231*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AUX_RESET] = { 0x28058, 6 }, 3232*76fc060dSKathiravan Thirumoorthy [GCC_PCIE0_AHB_RESET] = { 0x28058, 7 }, 3233*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AHB_CLK_ARES] = { 0x29030, 2 }, 3234*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AUX_CLK_ARES] = { 0x29074, 2 }, 3235*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_M_CLK_ARES] = { 0x29038, 2 }, 3236*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_S_BRIDGE_CLK_ARES] = { 0x29048, 2 }, 3237*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_S_CLK_ARES] = { 0x29040, 2 }, 3238*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_BCR] = { 0x29000 }, 3239*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_LINK_DOWN_BCR] = { 0x29054 }, 3240*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_PHY_BCR] = { 0x29060 }, 3241*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_PIPE_CLK_ARES] = { 0x29068, 2 }, 3242*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1PHY_PHY_BCR] = { 0x2905c }, 3243*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_PIPE_RESET] = { 0x29058, 0 }, 3244*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_CORE_STICKY_RESET] = { 0x29058, 1 }, 3245*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_S_STICKY_RESET] = { 0x29058, 2 }, 3246*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_S_RESET] = { 0x29058, 3 }, 3247*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_M_STICKY_RESET] = { 0x29058, 4 }, 3248*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AXI_M_RESET] = { 0x29058, 5 }, 3249*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AUX_RESET] = { 0x29058, 6 }, 3250*76fc060dSKathiravan Thirumoorthy [GCC_PCIE1_AHB_RESET] = { 0x29058, 7 }, 3251*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AHB_CLK_ARES] = { 0x2a030, 2 }, 3252*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AUX_CLK_ARES] = { 0x2a078, 2 }, 3253*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_M_CLK_ARES] = { 0x2a038, 2 }, 3254*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_S_BRIDGE_CLK_ARES] = { 0x2a048, 2 }, 3255*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_S_CLK_ARES] = { 0x2a040, 2 }, 3256*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_BCR] = { 0x2a000 }, 3257*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_LINK_DOWN_BCR] = { 0x2a054 }, 3258*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_PHY_BCR] = { 0x2a060 }, 3259*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_PIPE_CLK_ARES] = { 0x2a068, 2 }, 3260*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2PHY_PHY_BCR] = { 0x2a05c }, 3261*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_PIPE_RESET] = { 0x2a058, 0 }, 3262*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_CORE_STICKY_RESET] = { 0x2a058, 1 }, 3263*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_S_STICKY_RESET] = { 0x2a058, 2 }, 3264*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_S_RESET] = { 0x2a058, 3 }, 3265*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_M_STICKY_RESET] = { 0x2a058, 4 }, 3266*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AXI_M_RESET] = { 0x2a058, 5 }, 3267*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AUX_RESET] = { 0x2a058, 6 }, 3268*76fc060dSKathiravan Thirumoorthy [GCC_PCIE2_AHB_RESET] = { 0x2a058, 7 }, 3269*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AHB_CLK_ARES] = { 0x2b030, 2 }, 3270*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AUX_CLK_ARES] = { 0x2b07c, 2 }, 3271*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_M_CLK_ARES] = { 0x2b038, 2 }, 3272*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_S_BRIDGE_CLK_ARES] = { 0x2b048, 2 }, 3273*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_S_CLK_ARES] = { 0x2b040, 2 }, 3274*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_BCR] = { 0x2b000 }, 3275*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_LINK_DOWN_BCR] = { 0x2b054 }, 3276*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_PHY_BCR] = { 0x2b060 }, 3277*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_PIPE_CLK_ARES] = { 0x2b068, 2 }, 3278*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3PHY_PHY_BCR] = { 0x2b05c }, 3279*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_PIPE_RESET] = { 0x2b058, 0 }, 3280*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_CORE_STICKY_RESET] = { 0x2b058, 1 }, 3281*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_S_STICKY_RESET] = { 0x2b058, 2 }, 3282*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_S_RESET] = { 0x2b058, 3 }, 3283*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_M_STICKY_RESET] = { 0x2b058, 4 }, 3284*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AXI_M_RESET] = { 0x2b058, 5 }, 3285*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AUX_RESET] = { 0x2b058, 6 }, 3286*76fc060dSKathiravan Thirumoorthy [GCC_PCIE3_AHB_RESET] = { 0x2b058, 7 }, 3287*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AHB_CLK_ARES] = { 0x2501c, 2 }, 3288*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AUX_CLK_ARES] = { 0x25020, 2 }, 3289*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_M_CLK_ARES] = { 0x25028, 2 }, 3290*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_S_BRIDGE_CLK_ARES] = { 0x25038, 2 }, 3291*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_S_CLK_ARES] = { 0x25030, 2 }, 3292*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_BCR] = { 0x25000 }, 3293*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_LINK_DOWN_BCR] = { 0x25044 }, 3294*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_PHY_BCR] = { 0x2504c }, 3295*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_PIPE_CLK_ARES] = { 0x2503c, 2 }, 3296*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_PIPE_RESET] = { 0x25054, 0 }, 3297*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_CORE_STICKY_RESET] = { 0x25054, 1 }, 3298*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_S_STICKY_RESET] = { 0x25054, 2 }, 3299*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_S_RESET] = { 0x25054, 3 }, 3300*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_M_STICKY_RESET] = { 0x25054, 4 }, 3301*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AXI_M_RESET] = { 0x25054, 5 }, 3302*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AUX_RESET] = { 0x25054, 6 }, 3303*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4_AHB_RESET] = { 0x25054, 7 }, 3304*76fc060dSKathiravan Thirumoorthy [GCC_PCIE4PHY_PHY_BCR] = { 0x25048 }, 3305*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_APB2JTAG_CLK_ARES] = { 0x2d05c, 2 }, 3306*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_AT_CLK_ARES] = { 0x2d034, 2 }, 3307*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_BCR] = { 0x2d000 }, 3308*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_CFG_AHB_CLK_ARES] = { 0x2d068, 2 }, 3309*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_DAP_AHB_CLK_ARES] = { 0x2d064, 2 }, 3310*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_DAP_CLK_ARES] = { 0x2d058, 2 }, 3311*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_ETR_USB_CLK_ARES] = { 0x2d060, 2 }, 3312*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_EUD_AT_CLK_ARES] = { 0x2d06c, 2 }, 3313*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_STM_CLK_ARES] = { 0x2d03c, 2 }, 3314*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_TRACECLKIN_CLK_ARES] = { 0x2d040, 2 }, 3315*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_TS_CLK_ARES] = { 0x2d078, 2 }, 3316*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_TSCTR_DIV16_CLK_ARES] = { 0x2d054, 2 }, 3317*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_TSCTR_DIV2_CLK_ARES] = { 0x2d044, 2 }, 3318*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_TSCTR_DIV3_CLK_ARES] = { 0x2d048, 2 }, 3319*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_TSCTR_DIV4_CLK_ARES] = { 0x2d04c, 2 }, 3320*76fc060dSKathiravan Thirumoorthy [GCC_QDSS_TSCTR_DIV8_CLK_ARES] = { 0x2d050, 2 }, 3321*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_AHB_CLK_ARES] = { 0x32010, 2 }, 3322*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_CLK_ARES] = { 0x32028, 2 }, 3323*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_BCR] = { 0x32000 }, 3324*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_IO_MACRO_CLK_ARES] = { 0x3200c, 2 }, 3325*76fc060dSKathiravan Thirumoorthy [GCC_QPIC_SLEEP_CLK_ARES] = { 0x32018, 2 }, 3326*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_2X_CORE_CLK_ARES] = { 0x1020, 2 }, 3327*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_AHB_MST_CLK_ARES] = { 0x1014, 2 }, 3328*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_AHB_SLV_CLK_ARES] = { 0x102c, 2 }, 3329*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_BCR] = { 0x1000 }, 3330*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_CORE_CLK_ARES] = { 0x1018, 2 }, 3331*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE0_CLK_ARES] = { 0x202c, 2 }, 3332*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE0_BCR] = { 0x2000 }, 3333*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE1_CLK_ARES] = { 0x302c, 2 }, 3334*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE1_BCR] = { 0x3000 }, 3335*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE2_CLK_ARES] = { 0x3048, 2 }, 3336*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE2_BCR] = { 0x3030 }, 3337*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE3_CLK_ARES] = { 0x3064, 2 }, 3338*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE3_BCR] = { 0x304c }, 3339*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE4_CLK_ARES] = { 0x3080, 2 }, 3340*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE4_BCR] = { 0x3068 }, 3341*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE5_CLK_ARES] = { 0x30a4, 2 }, 3342*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE5_BCR] = { 0x308c }, 3343*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE6_CLK_ARES] = { 0x4018, 2 }, 3344*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE6_BCR] = { 0x4000 }, 3345*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE7_CLK_ARES] = { 0x4034, 2 }, 3346*76fc060dSKathiravan Thirumoorthy [GCC_QUPV3_WRAP_SE7_BCR] = { 0x401c }, 3347*76fc060dSKathiravan Thirumoorthy [GCC_QUSB2_0_PHY_BCR] = { 0x2c068 }, 3348*76fc060dSKathiravan Thirumoorthy [GCC_QUSB2_1_PHY_BCR] = { 0x3c030 }, 3349*76fc060dSKathiravan Thirumoorthy [GCC_SDCC1_APPS_CLK_ARES] = { 0x3302c, 2 }, 3350*76fc060dSKathiravan Thirumoorthy [GCC_SDCC1_ICE_CORE_CLK_ARES] = { 0x33034, 2 }, 3351*76fc060dSKathiravan Thirumoorthy [GCC_SDCC_BCR] = { 0x33000 }, 3352*76fc060dSKathiravan Thirumoorthy [GCC_TLMM_AHB_CLK_ARES] = { 0x3e004, 2 }, 3353*76fc060dSKathiravan Thirumoorthy [GCC_TLMM_CLK_ARES] = { 0x3e008, 2 }, 3354*76fc060dSKathiravan Thirumoorthy [GCC_TLMM_BCR] = { 0x3e000 }, 3355*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY0_AHB_CLK_ARES] = { 0x1704c, 2 }, 3356*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY0_BCR] = { 0x17044 }, 3357*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY0_PMA_BCR] = { 0x17098 }, 3358*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY0_SYS_CLK_ARES] = { 0x17048, 2 }, 3359*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY1_AHB_CLK_ARES] = { 0x1705c, 2 }, 3360*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY1_BCR] = { 0x17054 }, 3361*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY1_PMA_BCR] = { 0x1709c }, 3362*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY1_SYS_CLK_ARES] = { 0x17058, 2 }, 3363*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY2_AHB_CLK_ARES] = { 0x1706c, 2 }, 3364*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY2_BCR] = { 0x17064 }, 3365*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY2_PMA_BCR] = { 0x170a0 }, 3366*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY2_SYS_CLK_ARES] = { 0x17068, 2 }, 3367*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY0_XPCS_ARES] = { 0x17050, 2 }, 3368*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY1_XLGPCS_ARES] = { 0x17060, 1 }, 3369*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY1_XPCS_ARES] = { 0x17060, 2 }, 3370*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY2_XLGPCS_ARES] = { 0x17070, 1 }, 3371*76fc060dSKathiravan Thirumoorthy [GCC_UNIPHY2_XPCS_ARES] = { 0x17070, 2 }, 3372*76fc060dSKathiravan Thirumoorthy [GCC_USB0_AUX_CLK_ARES] = { 0x2c04c, 2 }, 3373*76fc060dSKathiravan Thirumoorthy [GCC_USB0_MASTER_CLK_ARES] = { 0x2c044, 2 }, 3374*76fc060dSKathiravan Thirumoorthy [GCC_USB0_MOCK_UTMI_CLK_ARES] = { 0x2c050, 2 }, 3375*76fc060dSKathiravan Thirumoorthy [GCC_USB0_PHY_BCR] = { 0x2c06c }, 3376*76fc060dSKathiravan Thirumoorthy [GCC_USB0_PHY_CFG_AHB_CLK_ARES] = { 0x2c05c, 2 }, 3377*76fc060dSKathiravan Thirumoorthy [GCC_USB0_PIPE_CLK_ARES] = { 0x2c054, 2 }, 3378*76fc060dSKathiravan Thirumoorthy [GCC_USB0_SLEEP_CLK_ARES] = { 0x2c058, 2 }, 3379*76fc060dSKathiravan Thirumoorthy [GCC_USB1_BCR] = { 0x3c000 }, 3380*76fc060dSKathiravan Thirumoorthy [GCC_USB1_MASTER_CLK_ARES] = { 0x3c028, 2 }, 3381*76fc060dSKathiravan Thirumoorthy [GCC_USB1_MOCK_UTMI_CLK_ARES] = { 0x3c024, 2 }, 3382*76fc060dSKathiravan Thirumoorthy [GCC_USB1_PHY_CFG_AHB_CLK_ARES] = { 0x3c01c, 2 }, 3383*76fc060dSKathiravan Thirumoorthy [GCC_USB1_SLEEP_CLK_ARES] = { 0x3c020, 2 }, 3384*76fc060dSKathiravan Thirumoorthy [GCC_USB3PHY_0_PHY_BCR] = { 0x2c070 }, 3385*76fc060dSKathiravan Thirumoorthy [GCC_USB_BCR] = { 0x2c000 }, 3386*76fc060dSKathiravan Thirumoorthy }; 3387*76fc060dSKathiravan Thirumoorthy 3388*76fc060dSKathiravan Thirumoorthy static const struct of_device_id gcc_ipq9650_match_table[] = { 3389*76fc060dSKathiravan Thirumoorthy { .compatible = "qcom,ipq9650-gcc" }, 3390*76fc060dSKathiravan Thirumoorthy { } 3391*76fc060dSKathiravan Thirumoorthy }; 3392*76fc060dSKathiravan Thirumoorthy MODULE_DEVICE_TABLE(of, gcc_ipq9650_match_table); 3393*76fc060dSKathiravan Thirumoorthy 3394*76fc060dSKathiravan Thirumoorthy static const struct regmap_config gcc_ipq9650_regmap_config = { 3395*76fc060dSKathiravan Thirumoorthy .reg_bits = 32, 3396*76fc060dSKathiravan Thirumoorthy .reg_stride = 4, 3397*76fc060dSKathiravan Thirumoorthy .val_bits = 32, 3398*76fc060dSKathiravan Thirumoorthy .max_register = 0x3f024, 3399*76fc060dSKathiravan Thirumoorthy .fast_io = true, 3400*76fc060dSKathiravan Thirumoorthy }; 3401*76fc060dSKathiravan Thirumoorthy 3402*76fc060dSKathiravan Thirumoorthy static struct clk_hw *gcc_ipq9650_hws[] = { 3403*76fc060dSKathiravan Thirumoorthy &gpll0_div2.hw, 3404*76fc060dSKathiravan Thirumoorthy &gcc_xo_div4_clk_src.hw, 3405*76fc060dSKathiravan Thirumoorthy &gcc_qdss_dap_sync_clk_src.hw, 3406*76fc060dSKathiravan Thirumoorthy &gcc_eud_at_div_clk_src.hw, 3407*76fc060dSKathiravan Thirumoorthy }; 3408*76fc060dSKathiravan Thirumoorthy 3409*76fc060dSKathiravan Thirumoorthy static const struct qcom_cc_desc gcc_ipq9650_desc = { 3410*76fc060dSKathiravan Thirumoorthy .config = &gcc_ipq9650_regmap_config, 3411*76fc060dSKathiravan Thirumoorthy .clks = gcc_ipq9650_clocks, 3412*76fc060dSKathiravan Thirumoorthy .num_clks = ARRAY_SIZE(gcc_ipq9650_clocks), 3413*76fc060dSKathiravan Thirumoorthy .resets = gcc_ipq9650_resets, 3414*76fc060dSKathiravan Thirumoorthy .num_resets = ARRAY_SIZE(gcc_ipq9650_resets), 3415*76fc060dSKathiravan Thirumoorthy .clk_hws = gcc_ipq9650_hws, 3416*76fc060dSKathiravan Thirumoorthy .num_clk_hws = ARRAY_SIZE(gcc_ipq9650_hws), 3417*76fc060dSKathiravan Thirumoorthy }; 3418*76fc060dSKathiravan Thirumoorthy 3419*76fc060dSKathiravan Thirumoorthy static int gcc_ipq9650_probe(struct platform_device *pdev) 3420*76fc060dSKathiravan Thirumoorthy { 3421*76fc060dSKathiravan Thirumoorthy return qcom_cc_probe(pdev, &gcc_ipq9650_desc); 3422*76fc060dSKathiravan Thirumoorthy } 3423*76fc060dSKathiravan Thirumoorthy 3424*76fc060dSKathiravan Thirumoorthy static struct platform_driver gcc_ipq9650_driver = { 3425*76fc060dSKathiravan Thirumoorthy .probe = gcc_ipq9650_probe, 3426*76fc060dSKathiravan Thirumoorthy .driver = { 3427*76fc060dSKathiravan Thirumoorthy .name = "qcom,gcc-ipq9650", 3428*76fc060dSKathiravan Thirumoorthy .of_match_table = gcc_ipq9650_match_table, 3429*76fc060dSKathiravan Thirumoorthy }, 3430*76fc060dSKathiravan Thirumoorthy }; 3431*76fc060dSKathiravan Thirumoorthy 3432*76fc060dSKathiravan Thirumoorthy static int __init gcc_ipq9650_init(void) 3433*76fc060dSKathiravan Thirumoorthy { 3434*76fc060dSKathiravan Thirumoorthy return platform_driver_register(&gcc_ipq9650_driver); 3435*76fc060dSKathiravan Thirumoorthy } 3436*76fc060dSKathiravan Thirumoorthy core_initcall(gcc_ipq9650_init); 3437*76fc060dSKathiravan Thirumoorthy 3438*76fc060dSKathiravan Thirumoorthy static void __exit gcc_ipq9650_exit(void) 3439*76fc060dSKathiravan Thirumoorthy { 3440*76fc060dSKathiravan Thirumoorthy platform_driver_unregister(&gcc_ipq9650_driver); 3441*76fc060dSKathiravan Thirumoorthy } 3442*76fc060dSKathiravan Thirumoorthy module_exit(gcc_ipq9650_exit); 3443*76fc060dSKathiravan Thirumoorthy 3444*76fc060dSKathiravan Thirumoorthy MODULE_DESCRIPTION("QTI GCC IPQ9650 Driver"); 3445*76fc060dSKathiravan Thirumoorthy MODULE_LICENSE("GPL"); 3446