1*d1919c37STaniya Das // SPDX-License-Identifier: GPL-2.0-only 2*d1919c37STaniya Das /* 3*d1919c37STaniya Das * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 4*d1919c37STaniya Das */ 5*d1919c37STaniya Das 6*d1919c37STaniya Das #include <linux/clk-provider.h> 7*d1919c37STaniya Das #include <linux/mod_devicetable.h> 8*d1919c37STaniya Das #include <linux/module.h> 9*d1919c37STaniya Das #include <linux/of.h> 10*d1919c37STaniya Das #include <linux/platform_device.h> 11*d1919c37STaniya Das #include <linux/regmap.h> 12*d1919c37STaniya Das 13*d1919c37STaniya Das #include <dt-bindings/clock/qcom,kaanapali-gcc.h> 14*d1919c37STaniya Das 15*d1919c37STaniya Das #include "clk-alpha-pll.h" 16*d1919c37STaniya Das #include "clk-branch.h" 17*d1919c37STaniya Das #include "clk-pll.h" 18*d1919c37STaniya Das #include "clk-rcg.h" 19*d1919c37STaniya Das #include "clk-regmap.h" 20*d1919c37STaniya Das #include "clk-regmap-divider.h" 21*d1919c37STaniya Das #include "clk-regmap-mux.h" 22*d1919c37STaniya Das #include "clk-regmap-phy-mux.h" 23*d1919c37STaniya Das #include "common.h" 24*d1919c37STaniya Das #include "gdsc.h" 25*d1919c37STaniya Das #include "reset.h" 26*d1919c37STaniya Das 27*d1919c37STaniya Das enum { 28*d1919c37STaniya Das DT_BI_TCXO, 29*d1919c37STaniya Das DT_BI_TCXO_AO, 30*d1919c37STaniya Das DT_SLEEP_CLK, 31*d1919c37STaniya Das DT_PCIE_0_PIPE_CLK, 32*d1919c37STaniya Das DT_UFS_PHY_RX_SYMBOL_0_CLK, 33*d1919c37STaniya Das DT_UFS_PHY_RX_SYMBOL_1_CLK, 34*d1919c37STaniya Das DT_UFS_PHY_TX_SYMBOL_0_CLK, 35*d1919c37STaniya Das DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 36*d1919c37STaniya Das }; 37*d1919c37STaniya Das 38*d1919c37STaniya Das enum { 39*d1919c37STaniya Das P_BI_TCXO, 40*d1919c37STaniya Das P_GCC_GPLL0_OUT_EVEN, 41*d1919c37STaniya Das P_GCC_GPLL0_OUT_MAIN, 42*d1919c37STaniya Das P_GCC_GPLL1_OUT_MAIN, 43*d1919c37STaniya Das P_GCC_GPLL4_OUT_MAIN, 44*d1919c37STaniya Das P_GCC_GPLL7_OUT_MAIN, 45*d1919c37STaniya Das P_GCC_GPLL9_OUT_MAIN, 46*d1919c37STaniya Das P_PCIE_0_PIPE_CLK, 47*d1919c37STaniya Das P_SLEEP_CLK, 48*d1919c37STaniya Das P_UFS_PHY_RX_SYMBOL_0_CLK, 49*d1919c37STaniya Das P_UFS_PHY_RX_SYMBOL_1_CLK, 50*d1919c37STaniya Das P_UFS_PHY_TX_SYMBOL_0_CLK, 51*d1919c37STaniya Das P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 52*d1919c37STaniya Das }; 53*d1919c37STaniya Das 54*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll0 = { 55*d1919c37STaniya Das .offset = 0x0, 56*d1919c37STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 57*d1919c37STaniya Das .clkr = { 58*d1919c37STaniya Das .enable_reg = 0x52020, 59*d1919c37STaniya Das .enable_mask = BIT(0), 60*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 61*d1919c37STaniya Das .name = "gcc_gpll0", 62*d1919c37STaniya Das .parent_data = &(const struct clk_parent_data) { 63*d1919c37STaniya Das .index = DT_BI_TCXO, 64*d1919c37STaniya Das }, 65*d1919c37STaniya Das .num_parents = 1, 66*d1919c37STaniya Das .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 67*d1919c37STaniya Das }, 68*d1919c37STaniya Das }, 69*d1919c37STaniya Das }; 70*d1919c37STaniya Das 71*d1919c37STaniya Das static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = { 72*d1919c37STaniya Das { 0x1, 2 }, 73*d1919c37STaniya Das { } 74*d1919c37STaniya Das }; 75*d1919c37STaniya Das 76*d1919c37STaniya Das static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = { 77*d1919c37STaniya Das .offset = 0x0, 78*d1919c37STaniya Das .post_div_shift = 10, 79*d1919c37STaniya Das .post_div_table = post_div_table_gcc_gpll0_out_even, 80*d1919c37STaniya Das .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even), 81*d1919c37STaniya Das .width = 4, 82*d1919c37STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 83*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 84*d1919c37STaniya Das .name = "gcc_gpll0_out_even", 85*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 86*d1919c37STaniya Das &gcc_gpll0.clkr.hw, 87*d1919c37STaniya Das }, 88*d1919c37STaniya Das .num_parents = 1, 89*d1919c37STaniya Das .ops = &clk_alpha_pll_postdiv_taycan_eko_t_ops, 90*d1919c37STaniya Das }, 91*d1919c37STaniya Das }; 92*d1919c37STaniya Das 93*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll1 = { 94*d1919c37STaniya Das .offset = 0x1000, 95*d1919c37STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 96*d1919c37STaniya Das .clkr = { 97*d1919c37STaniya Das .enable_reg = 0x52020, 98*d1919c37STaniya Das .enable_mask = BIT(1), 99*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 100*d1919c37STaniya Das .name = "gcc_gpll1", 101*d1919c37STaniya Das .parent_data = &(const struct clk_parent_data) { 102*d1919c37STaniya Das .index = DT_BI_TCXO, 103*d1919c37STaniya Das }, 104*d1919c37STaniya Das .num_parents = 1, 105*d1919c37STaniya Das .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 106*d1919c37STaniya Das }, 107*d1919c37STaniya Das }, 108*d1919c37STaniya Das }; 109*d1919c37STaniya Das 110*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll4 = { 111*d1919c37STaniya Das .offset = 0x4000, 112*d1919c37STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 113*d1919c37STaniya Das .clkr = { 114*d1919c37STaniya Das .enable_reg = 0x52020, 115*d1919c37STaniya Das .enable_mask = BIT(4), 116*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 117*d1919c37STaniya Das .name = "gcc_gpll4", 118*d1919c37STaniya Das .parent_data = &(const struct clk_parent_data) { 119*d1919c37STaniya Das .index = DT_BI_TCXO, 120*d1919c37STaniya Das }, 121*d1919c37STaniya Das .num_parents = 1, 122*d1919c37STaniya Das .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 123*d1919c37STaniya Das }, 124*d1919c37STaniya Das }, 125*d1919c37STaniya Das }; 126*d1919c37STaniya Das 127*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll7 = { 128*d1919c37STaniya Das .offset = 0x7000, 129*d1919c37STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 130*d1919c37STaniya Das .clkr = { 131*d1919c37STaniya Das .enable_reg = 0x52020, 132*d1919c37STaniya Das .enable_mask = BIT(7), 133*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 134*d1919c37STaniya Das .name = "gcc_gpll7", 135*d1919c37STaniya Das .parent_data = &(const struct clk_parent_data) { 136*d1919c37STaniya Das .index = DT_BI_TCXO, 137*d1919c37STaniya Das }, 138*d1919c37STaniya Das .num_parents = 1, 139*d1919c37STaniya Das .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 140*d1919c37STaniya Das }, 141*d1919c37STaniya Das }, 142*d1919c37STaniya Das }; 143*d1919c37STaniya Das 144*d1919c37STaniya Das static struct clk_alpha_pll gcc_gpll9 = { 145*d1919c37STaniya Das .offset = 0x9000, 146*d1919c37STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TAYCAN_EKO_T], 147*d1919c37STaniya Das .clkr = { 148*d1919c37STaniya Das .enable_reg = 0x52020, 149*d1919c37STaniya Das .enable_mask = BIT(9), 150*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 151*d1919c37STaniya Das .name = "gcc_gpll9", 152*d1919c37STaniya Das .parent_data = &(const struct clk_parent_data) { 153*d1919c37STaniya Das .index = DT_BI_TCXO, 154*d1919c37STaniya Das }, 155*d1919c37STaniya Das .num_parents = 1, 156*d1919c37STaniya Das .ops = &clk_alpha_pll_fixed_taycan_eko_t_ops, 157*d1919c37STaniya Das }, 158*d1919c37STaniya Das }, 159*d1919c37STaniya Das }; 160*d1919c37STaniya Das 161*d1919c37STaniya Das static const struct parent_map gcc_parent_map_0[] = { 162*d1919c37STaniya Das { P_BI_TCXO, 0 }, 163*d1919c37STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 164*d1919c37STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 165*d1919c37STaniya Das }; 166*d1919c37STaniya Das 167*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_0[] = { 168*d1919c37STaniya Das { .index = DT_BI_TCXO }, 169*d1919c37STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 170*d1919c37STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 171*d1919c37STaniya Das }; 172*d1919c37STaniya Das 173*d1919c37STaniya Das static const struct parent_map gcc_parent_map_1[] = { 174*d1919c37STaniya Das { P_BI_TCXO, 0 }, 175*d1919c37STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 176*d1919c37STaniya Das { P_GCC_GPLL1_OUT_MAIN, 4 }, 177*d1919c37STaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 178*d1919c37STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 179*d1919c37STaniya Das }; 180*d1919c37STaniya Das 181*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_1[] = { 182*d1919c37STaniya Das { .index = DT_BI_TCXO }, 183*d1919c37STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 184*d1919c37STaniya Das { .hw = &gcc_gpll1.clkr.hw }, 185*d1919c37STaniya Das { .hw = &gcc_gpll4.clkr.hw }, 186*d1919c37STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 187*d1919c37STaniya Das }; 188*d1919c37STaniya Das 189*d1919c37STaniya Das static const struct parent_map gcc_parent_map_2[] = { 190*d1919c37STaniya Das { P_BI_TCXO, 0 }, 191*d1919c37STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 192*d1919c37STaniya Das { P_SLEEP_CLK, 5 }, 193*d1919c37STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 194*d1919c37STaniya Das }; 195*d1919c37STaniya Das 196*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_2[] = { 197*d1919c37STaniya Das { .index = DT_BI_TCXO }, 198*d1919c37STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 199*d1919c37STaniya Das { .index = DT_SLEEP_CLK }, 200*d1919c37STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 201*d1919c37STaniya Das }; 202*d1919c37STaniya Das 203*d1919c37STaniya Das static const struct parent_map gcc_parent_map_3[] = { 204*d1919c37STaniya Das { P_BI_TCXO, 0 }, 205*d1919c37STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 206*d1919c37STaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 207*d1919c37STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 208*d1919c37STaniya Das }; 209*d1919c37STaniya Das 210*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_3[] = { 211*d1919c37STaniya Das { .index = DT_BI_TCXO }, 212*d1919c37STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 213*d1919c37STaniya Das { .hw = &gcc_gpll4.clkr.hw }, 214*d1919c37STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 215*d1919c37STaniya Das }; 216*d1919c37STaniya Das 217*d1919c37STaniya Das static const struct parent_map gcc_parent_map_4[] = { 218*d1919c37STaniya Das { P_BI_TCXO, 0 }, 219*d1919c37STaniya Das }; 220*d1919c37STaniya Das 221*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_4[] = { 222*d1919c37STaniya Das { .index = DT_BI_TCXO }, 223*d1919c37STaniya Das }; 224*d1919c37STaniya Das 225*d1919c37STaniya Das static const struct parent_map gcc_parent_map_5[] = { 226*d1919c37STaniya Das { P_BI_TCXO, 0 }, 227*d1919c37STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 228*d1919c37STaniya Das { P_GCC_GPLL7_OUT_MAIN, 2 }, 229*d1919c37STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 230*d1919c37STaniya Das }; 231*d1919c37STaniya Das 232*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_5[] = { 233*d1919c37STaniya Das { .index = DT_BI_TCXO }, 234*d1919c37STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 235*d1919c37STaniya Das { .hw = &gcc_gpll7.clkr.hw }, 236*d1919c37STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 237*d1919c37STaniya Das }; 238*d1919c37STaniya Das 239*d1919c37STaniya Das static const struct parent_map gcc_parent_map_6[] = { 240*d1919c37STaniya Das { P_BI_TCXO, 0 }, 241*d1919c37STaniya Das { P_SLEEP_CLK, 5 }, 242*d1919c37STaniya Das }; 243*d1919c37STaniya Das 244*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_6[] = { 245*d1919c37STaniya Das { .index = DT_BI_TCXO }, 246*d1919c37STaniya Das { .index = DT_SLEEP_CLK }, 247*d1919c37STaniya Das }; 248*d1919c37STaniya Das 249*d1919c37STaniya Das static const struct parent_map gcc_parent_map_8[] = { 250*d1919c37STaniya Das { P_BI_TCXO, 0 }, 251*d1919c37STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 252*d1919c37STaniya Das { P_GCC_GPLL9_OUT_MAIN, 2 }, 253*d1919c37STaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 254*d1919c37STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 255*d1919c37STaniya Das }; 256*d1919c37STaniya Das 257*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_8[] = { 258*d1919c37STaniya Das { .index = DT_BI_TCXO }, 259*d1919c37STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 260*d1919c37STaniya Das { .hw = &gcc_gpll9.clkr.hw }, 261*d1919c37STaniya Das { .hw = &gcc_gpll4.clkr.hw }, 262*d1919c37STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 263*d1919c37STaniya Das }; 264*d1919c37STaniya Das 265*d1919c37STaniya Das static const struct parent_map gcc_parent_map_12[] = { 266*d1919c37STaniya Das { P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 }, 267*d1919c37STaniya Das { P_BI_TCXO, 2 }, 268*d1919c37STaniya Das }; 269*d1919c37STaniya Das 270*d1919c37STaniya Das static const struct clk_parent_data gcc_parent_data_12[] = { 271*d1919c37STaniya Das { .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK }, 272*d1919c37STaniya Das { .index = DT_BI_TCXO }, 273*d1919c37STaniya Das }; 274*d1919c37STaniya Das 275*d1919c37STaniya Das static struct clk_regmap_phy_mux gcc_pcie_0_pipe_clk_src = { 276*d1919c37STaniya Das .reg = 0x6b090, 277*d1919c37STaniya Das .clkr = { 278*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 279*d1919c37STaniya Das .name = "gcc_pcie_0_pipe_clk_src", 280*d1919c37STaniya Das .parent_data = &(const struct clk_parent_data){ 281*d1919c37STaniya Das .index = DT_PCIE_0_PIPE_CLK, 282*d1919c37STaniya Das }, 283*d1919c37STaniya Das .num_parents = 1, 284*d1919c37STaniya Das .ops = &clk_regmap_phy_mux_ops, 285*d1919c37STaniya Das }, 286*d1919c37STaniya Das }, 287*d1919c37STaniya Das }; 288*d1919c37STaniya Das 289*d1919c37STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_rx_symbol_0_clk_src = { 290*d1919c37STaniya Das .reg = 0x77068, 291*d1919c37STaniya Das .clkr = { 292*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 293*d1919c37STaniya Das .name = "gcc_ufs_phy_rx_symbol_0_clk_src", 294*d1919c37STaniya Das .parent_data = &(const struct clk_parent_data){ 295*d1919c37STaniya Das .index = DT_UFS_PHY_RX_SYMBOL_0_CLK, 296*d1919c37STaniya Das }, 297*d1919c37STaniya Das .num_parents = 1, 298*d1919c37STaniya Das .ops = &clk_regmap_phy_mux_ops, 299*d1919c37STaniya Das }, 300*d1919c37STaniya Das }, 301*d1919c37STaniya Das }; 302*d1919c37STaniya Das 303*d1919c37STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_rx_symbol_1_clk_src = { 304*d1919c37STaniya Das .reg = 0x770ec, 305*d1919c37STaniya Das .clkr = { 306*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 307*d1919c37STaniya Das .name = "gcc_ufs_phy_rx_symbol_1_clk_src", 308*d1919c37STaniya Das .parent_data = &(const struct clk_parent_data){ 309*d1919c37STaniya Das .index = DT_UFS_PHY_RX_SYMBOL_1_CLK, 310*d1919c37STaniya Das }, 311*d1919c37STaniya Das .num_parents = 1, 312*d1919c37STaniya Das .ops = &clk_regmap_phy_mux_ops, 313*d1919c37STaniya Das }, 314*d1919c37STaniya Das }, 315*d1919c37STaniya Das }; 316*d1919c37STaniya Das 317*d1919c37STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_tx_symbol_0_clk_src = { 318*d1919c37STaniya Das .reg = 0x77058, 319*d1919c37STaniya Das .clkr = { 320*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 321*d1919c37STaniya Das .name = "gcc_ufs_phy_tx_symbol_0_clk_src", 322*d1919c37STaniya Das .parent_data = &(const struct clk_parent_data){ 323*d1919c37STaniya Das .index = DT_UFS_PHY_TX_SYMBOL_0_CLK, 324*d1919c37STaniya Das }, 325*d1919c37STaniya Das .num_parents = 1, 326*d1919c37STaniya Das .ops = &clk_regmap_phy_mux_ops, 327*d1919c37STaniya Das }, 328*d1919c37STaniya Das }, 329*d1919c37STaniya Das }; 330*d1919c37STaniya Das 331*d1919c37STaniya Das static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = { 332*d1919c37STaniya Das .reg = 0x39074, 333*d1919c37STaniya Das .shift = 0, 334*d1919c37STaniya Das .width = 2, 335*d1919c37STaniya Das .parent_map = gcc_parent_map_12, 336*d1919c37STaniya Das .clkr = { 337*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 338*d1919c37STaniya Das .name = "gcc_usb3_prim_phy_pipe_clk_src", 339*d1919c37STaniya Das .parent_data = gcc_parent_data_12, 340*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_12), 341*d1919c37STaniya Das .ops = &clk_regmap_mux_closest_ops, 342*d1919c37STaniya Das }, 343*d1919c37STaniya Das }, 344*d1919c37STaniya Das }; 345*d1919c37STaniya Das 346*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = { 347*d1919c37STaniya Das F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0), 348*d1919c37STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 349*d1919c37STaniya Das F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 350*d1919c37STaniya Das { } 351*d1919c37STaniya Das }; 352*d1919c37STaniya Das 353*d1919c37STaniya Das static struct clk_rcg2 gcc_gp1_clk_src = { 354*d1919c37STaniya Das .cmd_rcgr = 0x64004, 355*d1919c37STaniya Das .mnd_width = 16, 356*d1919c37STaniya Das .hid_width = 5, 357*d1919c37STaniya Das .parent_map = gcc_parent_map_2, 358*d1919c37STaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 359*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 360*d1919c37STaniya Das .name = "gcc_gp1_clk_src", 361*d1919c37STaniya Das .parent_data = gcc_parent_data_2, 362*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 363*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 364*d1919c37STaniya Das .ops = &clk_rcg2_ops, 365*d1919c37STaniya Das }, 366*d1919c37STaniya Das }; 367*d1919c37STaniya Das 368*d1919c37STaniya Das static struct clk_rcg2 gcc_gp2_clk_src = { 369*d1919c37STaniya Das .cmd_rcgr = 0x65004, 370*d1919c37STaniya Das .mnd_width = 16, 371*d1919c37STaniya Das .hid_width = 5, 372*d1919c37STaniya Das .parent_map = gcc_parent_map_2, 373*d1919c37STaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 374*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 375*d1919c37STaniya Das .name = "gcc_gp2_clk_src", 376*d1919c37STaniya Das .parent_data = gcc_parent_data_2, 377*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 378*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 379*d1919c37STaniya Das .ops = &clk_rcg2_ops, 380*d1919c37STaniya Das }, 381*d1919c37STaniya Das }; 382*d1919c37STaniya Das 383*d1919c37STaniya Das static struct clk_rcg2 gcc_gp3_clk_src = { 384*d1919c37STaniya Das .cmd_rcgr = 0x66004, 385*d1919c37STaniya Das .mnd_width = 16, 386*d1919c37STaniya Das .hid_width = 5, 387*d1919c37STaniya Das .parent_map = gcc_parent_map_2, 388*d1919c37STaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 389*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 390*d1919c37STaniya Das .name = "gcc_gp3_clk_src", 391*d1919c37STaniya Das .parent_data = gcc_parent_data_2, 392*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 393*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 394*d1919c37STaniya Das .ops = &clk_rcg2_ops, 395*d1919c37STaniya Das }, 396*d1919c37STaniya Das }; 397*d1919c37STaniya Das 398*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = { 399*d1919c37STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 400*d1919c37STaniya Das { } 401*d1919c37STaniya Das }; 402*d1919c37STaniya Das 403*d1919c37STaniya Das static struct clk_rcg2 gcc_pcie_0_aux_clk_src = { 404*d1919c37STaniya Das .cmd_rcgr = 0x6b094, 405*d1919c37STaniya Das .mnd_width = 16, 406*d1919c37STaniya Das .hid_width = 5, 407*d1919c37STaniya Das .parent_map = gcc_parent_map_6, 408*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 409*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 410*d1919c37STaniya Das .name = "gcc_pcie_0_aux_clk_src", 411*d1919c37STaniya Das .parent_data = gcc_parent_data_6, 412*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_6), 413*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 414*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 415*d1919c37STaniya Das }, 416*d1919c37STaniya Das }; 417*d1919c37STaniya Das 418*d1919c37STaniya Das static struct clk_rcg2 gcc_pcie_0_phy_aux_clk_src = { 419*d1919c37STaniya Das .cmd_rcgr = 0x6b0ac, 420*d1919c37STaniya Das .mnd_width = 0, 421*d1919c37STaniya Das .hid_width = 5, 422*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 423*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 424*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 425*d1919c37STaniya Das .name = "gcc_pcie_0_phy_aux_clk_src", 426*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 427*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 428*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 429*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 430*d1919c37STaniya Das }, 431*d1919c37STaniya Das }; 432*d1919c37STaniya Das 433*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = { 434*d1919c37STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 435*d1919c37STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 436*d1919c37STaniya Das { } 437*d1919c37STaniya Das }; 438*d1919c37STaniya Das 439*d1919c37STaniya Das static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = { 440*d1919c37STaniya Das .cmd_rcgr = 0x6b078, 441*d1919c37STaniya Das .mnd_width = 0, 442*d1919c37STaniya Das .hid_width = 5, 443*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 444*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 445*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 446*d1919c37STaniya Das .name = "gcc_pcie_0_phy_rchng_clk_src", 447*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 448*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 449*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 450*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 451*d1919c37STaniya Das }, 452*d1919c37STaniya Das }; 453*d1919c37STaniya Das 454*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = { 455*d1919c37STaniya Das F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0), 456*d1919c37STaniya Das { } 457*d1919c37STaniya Das }; 458*d1919c37STaniya Das 459*d1919c37STaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = { 460*d1919c37STaniya Das .cmd_rcgr = 0x33010, 461*d1919c37STaniya Das .mnd_width = 0, 462*d1919c37STaniya Das .hid_width = 5, 463*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 464*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pdm2_clk_src, 465*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 466*d1919c37STaniya Das .name = "gcc_pdm2_clk_src", 467*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 468*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 469*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 470*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 471*d1919c37STaniya Das }, 472*d1919c37STaniya Das }; 473*d1919c37STaniya Das 474*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s0_clk_src = { 475*d1919c37STaniya Das .cmd_rcgr = 0x17008, 476*d1919c37STaniya Das .mnd_width = 0, 477*d1919c37STaniya Das .hid_width = 5, 478*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 479*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 480*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 481*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s0_clk_src", 482*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 483*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 484*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 485*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 486*d1919c37STaniya Das }, 487*d1919c37STaniya Das }; 488*d1919c37STaniya Das 489*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s1_clk_src = { 490*d1919c37STaniya Das .cmd_rcgr = 0x17024, 491*d1919c37STaniya Das .mnd_width = 0, 492*d1919c37STaniya Das .hid_width = 5, 493*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 494*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 495*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 496*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s1_clk_src", 497*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 498*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 499*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 500*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 501*d1919c37STaniya Das }, 502*d1919c37STaniya Das }; 503*d1919c37STaniya Das 504*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s2_clk_src = { 505*d1919c37STaniya Das .cmd_rcgr = 0x17040, 506*d1919c37STaniya Das .mnd_width = 0, 507*d1919c37STaniya Das .hid_width = 5, 508*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 509*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 510*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 511*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s2_clk_src", 512*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 513*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 514*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 515*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 516*d1919c37STaniya Das }, 517*d1919c37STaniya Das }; 518*d1919c37STaniya Das 519*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s3_clk_src = { 520*d1919c37STaniya Das .cmd_rcgr = 0x1705c, 521*d1919c37STaniya Das .mnd_width = 0, 522*d1919c37STaniya Das .hid_width = 5, 523*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 524*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 525*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 526*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s3_clk_src", 527*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 528*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 529*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 530*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 531*d1919c37STaniya Das }, 532*d1919c37STaniya Das }; 533*d1919c37STaniya Das 534*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_i2c_s4_clk_src = { 535*d1919c37STaniya Das .cmd_rcgr = 0x17078, 536*d1919c37STaniya Das .mnd_width = 0, 537*d1919c37STaniya Das .hid_width = 5, 538*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 539*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 540*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 541*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s4_clk_src", 542*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 543*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 544*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 545*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 546*d1919c37STaniya Das }, 547*d1919c37STaniya Das }; 548*d1919c37STaniya Das 549*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_qspi_ref_clk_src[] = { 550*d1919c37STaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 551*d1919c37STaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 552*d1919c37STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 553*d1919c37STaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 554*d1919c37STaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 555*d1919c37STaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 556*d1919c37STaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 557*d1919c37STaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 558*d1919c37STaniya Das F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0), 559*d1919c37STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 560*d1919c37STaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 561*d1919c37STaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 562*d1919c37STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 563*d1919c37STaniya Das F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375), 564*d1919c37STaniya Das F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75), 565*d1919c37STaniya Das F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625), 566*d1919c37STaniya Das F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0), 567*d1919c37STaniya Das F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0), 568*d1919c37STaniya Das F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0), 569*d1919c37STaniya Das { } 570*d1919c37STaniya Das }; 571*d1919c37STaniya Das 572*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_qspi_ref_clk_src_init = { 573*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_qspi_ref_clk_src", 574*d1919c37STaniya Das .parent_data = gcc_parent_data_5, 575*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_5), 576*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 577*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 578*d1919c37STaniya Das }; 579*d1919c37STaniya Das 580*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_qspi_ref_clk_src = { 581*d1919c37STaniya Das .cmd_rcgr = 0x188c0, 582*d1919c37STaniya Das .mnd_width = 16, 583*d1919c37STaniya Das .hid_width = 5, 584*d1919c37STaniya Das .parent_map = gcc_parent_map_5, 585*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_qspi_ref_clk_src, 586*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_qspi_ref_clk_src_init, 587*d1919c37STaniya Das }; 588*d1919c37STaniya Das 589*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s0_clk_src[] = { 590*d1919c37STaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 591*d1919c37STaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 592*d1919c37STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 593*d1919c37STaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 594*d1919c37STaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 595*d1919c37STaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 596*d1919c37STaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 597*d1919c37STaniya Das F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0), 598*d1919c37STaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 599*d1919c37STaniya Das F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0), 600*d1919c37STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 601*d1919c37STaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 602*d1919c37STaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 603*d1919c37STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 604*d1919c37STaniya Das { } 605*d1919c37STaniya Das }; 606*d1919c37STaniya Das 607*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = { 608*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s0_clk_src", 609*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 610*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 611*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 612*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 613*d1919c37STaniya Das }; 614*d1919c37STaniya Das 615*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = { 616*d1919c37STaniya Das .cmd_rcgr = 0x18014, 617*d1919c37STaniya Das .mnd_width = 16, 618*d1919c37STaniya Das .hid_width = 5, 619*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 620*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 621*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init, 622*d1919c37STaniya Das }; 623*d1919c37STaniya Das 624*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = { 625*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s1_clk_src", 626*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 627*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 628*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 629*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 630*d1919c37STaniya Das }; 631*d1919c37STaniya Das 632*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = { 633*d1919c37STaniya Das .cmd_rcgr = 0x18150, 634*d1919c37STaniya Das .mnd_width = 16, 635*d1919c37STaniya Das .hid_width = 5, 636*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 637*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 638*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init, 639*d1919c37STaniya Das }; 640*d1919c37STaniya Das 641*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = { 642*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s3_clk_src", 643*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 644*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 645*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 646*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 647*d1919c37STaniya Das }; 648*d1919c37STaniya Das 649*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = { 650*d1919c37STaniya Das .cmd_rcgr = 0x182a0, 651*d1919c37STaniya Das .mnd_width = 16, 652*d1919c37STaniya Das .hid_width = 5, 653*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 654*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 655*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init, 656*d1919c37STaniya Das }; 657*d1919c37STaniya Das 658*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s4_clk_src[] = { 659*d1919c37STaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 660*d1919c37STaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 661*d1919c37STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 662*d1919c37STaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 663*d1919c37STaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 664*d1919c37STaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 665*d1919c37STaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 666*d1919c37STaniya Das F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0), 667*d1919c37STaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 668*d1919c37STaniya Das F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0), 669*d1919c37STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 670*d1919c37STaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 671*d1919c37STaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 672*d1919c37STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 673*d1919c37STaniya Das F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375), 674*d1919c37STaniya Das F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75), 675*d1919c37STaniya Das F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625), 676*d1919c37STaniya Das F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0), 677*d1919c37STaniya Das { } 678*d1919c37STaniya Das }; 679*d1919c37STaniya Das 680*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = { 681*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s4_clk_src", 682*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 683*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 684*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 685*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 686*d1919c37STaniya Das }; 687*d1919c37STaniya Das 688*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = { 689*d1919c37STaniya Das .cmd_rcgr = 0x183dc, 690*d1919c37STaniya Das .mnd_width = 16, 691*d1919c37STaniya Das .hid_width = 5, 692*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 693*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 694*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init, 695*d1919c37STaniya Das }; 696*d1919c37STaniya Das 697*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = { 698*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s5_clk_src", 699*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 700*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 701*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 702*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 703*d1919c37STaniya Das }; 704*d1919c37STaniya Das 705*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = { 706*d1919c37STaniya Das .cmd_rcgr = 0x18518, 707*d1919c37STaniya Das .mnd_width = 16, 708*d1919c37STaniya Das .hid_width = 5, 709*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 710*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 711*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init, 712*d1919c37STaniya Das }; 713*d1919c37STaniya Das 714*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = { 715*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s6_clk_src", 716*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 717*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 718*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 719*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 720*d1919c37STaniya Das }; 721*d1919c37STaniya Das 722*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = { 723*d1919c37STaniya Das .cmd_rcgr = 0x18654, 724*d1919c37STaniya Das .mnd_width = 16, 725*d1919c37STaniya Das .hid_width = 5, 726*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 727*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 728*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init, 729*d1919c37STaniya Das }; 730*d1919c37STaniya Das 731*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = { 732*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s7_clk_src", 733*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 734*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 735*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 736*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 737*d1919c37STaniya Das }; 738*d1919c37STaniya Das 739*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = { 740*d1919c37STaniya Das .cmd_rcgr = 0x18790, 741*d1919c37STaniya Das .mnd_width = 16, 742*d1919c37STaniya Das .hid_width = 5, 743*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 744*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 745*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init, 746*d1919c37STaniya Das }; 747*d1919c37STaniya Das 748*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = { 749*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s0_clk_src", 750*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 751*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 752*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 753*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 754*d1919c37STaniya Das }; 755*d1919c37STaniya Das 756*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = { 757*d1919c37STaniya Das .cmd_rcgr = 0x1e014, 758*d1919c37STaniya Das .mnd_width = 16, 759*d1919c37STaniya Das .hid_width = 5, 760*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 761*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 762*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init, 763*d1919c37STaniya Das }; 764*d1919c37STaniya Das 765*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = { 766*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s1_clk_src", 767*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 768*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 769*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 770*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 771*d1919c37STaniya Das }; 772*d1919c37STaniya Das 773*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = { 774*d1919c37STaniya Das .cmd_rcgr = 0x1e150, 775*d1919c37STaniya Das .mnd_width = 16, 776*d1919c37STaniya Das .hid_width = 5, 777*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 778*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 779*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init, 780*d1919c37STaniya Das }; 781*d1919c37STaniya Das 782*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = { 783*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s2_clk_src", 784*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 785*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 786*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 787*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 788*d1919c37STaniya Das }; 789*d1919c37STaniya Das 790*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = { 791*d1919c37STaniya Das .cmd_rcgr = 0x1e28c, 792*d1919c37STaniya Das .mnd_width = 16, 793*d1919c37STaniya Das .hid_width = 5, 794*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 795*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 796*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init, 797*d1919c37STaniya Das }; 798*d1919c37STaniya Das 799*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = { 800*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s3_clk_src", 801*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 802*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 803*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 804*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 805*d1919c37STaniya Das }; 806*d1919c37STaniya Das 807*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = { 808*d1919c37STaniya Das .cmd_rcgr = 0x1e3c8, 809*d1919c37STaniya Das .mnd_width = 16, 810*d1919c37STaniya Das .hid_width = 5, 811*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 812*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 813*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init, 814*d1919c37STaniya Das }; 815*d1919c37STaniya Das 816*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = { 817*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s4_clk_src", 818*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 819*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 820*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 821*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 822*d1919c37STaniya Das }; 823*d1919c37STaniya Das 824*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = { 825*d1919c37STaniya Das .cmd_rcgr = 0x1e504, 826*d1919c37STaniya Das .mnd_width = 16, 827*d1919c37STaniya Das .hid_width = 5, 828*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 829*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 830*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init, 831*d1919c37STaniya Das }; 832*d1919c37STaniya Das 833*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap3_ibi_ctrl_0_clk_src[] = { 834*d1919c37STaniya Das F(37500000, P_GCC_GPLL0_OUT_EVEN, 8, 0, 0), 835*d1919c37STaniya Das { } 836*d1919c37STaniya Das }; 837*d1919c37STaniya Das 838*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_ibi_ctrl_0_clk_src = { 839*d1919c37STaniya Das .cmd_rcgr = 0xa877c, 840*d1919c37STaniya Das .mnd_width = 0, 841*d1919c37STaniya Das .hid_width = 5, 842*d1919c37STaniya Das .parent_map = gcc_parent_map_1, 843*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap3_ibi_ctrl_0_clk_src, 844*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 845*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_ibi_ctrl_0_clk_src", 846*d1919c37STaniya Das .parent_data = gcc_parent_data_1, 847*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 848*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 849*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 850*d1919c37STaniya Das }, 851*d1919c37STaniya Das }; 852*d1919c37STaniya Das 853*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s0_clk_src_init = { 854*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s0_clk_src", 855*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 856*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 857*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 858*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 859*d1919c37STaniya Das }; 860*d1919c37STaniya Das 861*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s0_clk_src = { 862*d1919c37STaniya Das .cmd_rcgr = 0xa8014, 863*d1919c37STaniya Das .mnd_width = 16, 864*d1919c37STaniya Das .hid_width = 5, 865*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 866*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 867*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap3_s0_clk_src_init, 868*d1919c37STaniya Das }; 869*d1919c37STaniya Das 870*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s1_clk_src_init = { 871*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s1_clk_src", 872*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 873*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 874*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 875*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 876*d1919c37STaniya Das }; 877*d1919c37STaniya Das 878*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s1_clk_src = { 879*d1919c37STaniya Das .cmd_rcgr = 0xa8150, 880*d1919c37STaniya Das .mnd_width = 16, 881*d1919c37STaniya Das .hid_width = 5, 882*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 883*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 884*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap3_s1_clk_src_init, 885*d1919c37STaniya Das }; 886*d1919c37STaniya Das 887*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s2_clk_src_init = { 888*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s2_clk_src", 889*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 890*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 891*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 892*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 893*d1919c37STaniya Das }; 894*d1919c37STaniya Das 895*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s2_clk_src = { 896*d1919c37STaniya Das .cmd_rcgr = 0xa828c, 897*d1919c37STaniya Das .mnd_width = 16, 898*d1919c37STaniya Das .hid_width = 5, 899*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 900*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 901*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap3_s2_clk_src_init, 902*d1919c37STaniya Das }; 903*d1919c37STaniya Das 904*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s3_clk_src_init = { 905*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s3_clk_src", 906*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 907*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 908*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 909*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 910*d1919c37STaniya Das }; 911*d1919c37STaniya Das 912*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s3_clk_src = { 913*d1919c37STaniya Das .cmd_rcgr = 0xa83c8, 914*d1919c37STaniya Das .mnd_width = 16, 915*d1919c37STaniya Das .hid_width = 5, 916*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 917*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 918*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap3_s3_clk_src_init, 919*d1919c37STaniya Das }; 920*d1919c37STaniya Das 921*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s4_clk_src_init = { 922*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s4_clk_src", 923*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 924*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 925*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 926*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 927*d1919c37STaniya Das }; 928*d1919c37STaniya Das 929*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s4_clk_src = { 930*d1919c37STaniya Das .cmd_rcgr = 0xa8504, 931*d1919c37STaniya Das .mnd_width = 16, 932*d1919c37STaniya Das .hid_width = 5, 933*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 934*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 935*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap3_s4_clk_src_init, 936*d1919c37STaniya Das }; 937*d1919c37STaniya Das 938*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap3_s5_clk_src[] = { 939*d1919c37STaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 940*d1919c37STaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 941*d1919c37STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 942*d1919c37STaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 943*d1919c37STaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 944*d1919c37STaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 945*d1919c37STaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 946*d1919c37STaniya Das F(60000000, P_GCC_GPLL0_OUT_EVEN, 5, 0, 0), 947*d1919c37STaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 948*d1919c37STaniya Das F(66666667, P_GCC_GPLL0_OUT_MAIN, 9, 0, 0), 949*d1919c37STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 950*d1919c37STaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 951*d1919c37STaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 952*d1919c37STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 953*d1919c37STaniya Das F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375), 954*d1919c37STaniya Das F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75), 955*d1919c37STaniya Das F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625), 956*d1919c37STaniya Das F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0), 957*d1919c37STaniya Das F(128000000, P_GCC_GPLL0_OUT_MAIN, 1, 16, 75), 958*d1919c37STaniya Das { } 959*d1919c37STaniya Das }; 960*d1919c37STaniya Das 961*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap3_s5_clk_src_init = { 962*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s5_clk_src", 963*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 964*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 965*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 966*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 967*d1919c37STaniya Das }; 968*d1919c37STaniya Das 969*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap3_s5_clk_src = { 970*d1919c37STaniya Das .cmd_rcgr = 0xa8640, 971*d1919c37STaniya Das .mnd_width = 16, 972*d1919c37STaniya Das .hid_width = 5, 973*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 974*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap3_s5_clk_src, 975*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap3_s5_clk_src_init, 976*d1919c37STaniya Das }; 977*d1919c37STaniya Das 978*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s0_clk_src_init = { 979*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s0_clk_src", 980*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 981*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 982*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 983*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 984*d1919c37STaniya Das }; 985*d1919c37STaniya Das 986*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s0_clk_src = { 987*d1919c37STaniya Das .cmd_rcgr = 0xa9014, 988*d1919c37STaniya Das .mnd_width = 16, 989*d1919c37STaniya Das .hid_width = 5, 990*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 991*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 992*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap4_s0_clk_src_init, 993*d1919c37STaniya Das }; 994*d1919c37STaniya Das 995*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s1_clk_src_init = { 996*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s1_clk_src", 997*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 998*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 999*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1000*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1001*d1919c37STaniya Das }; 1002*d1919c37STaniya Das 1003*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s1_clk_src = { 1004*d1919c37STaniya Das .cmd_rcgr = 0xa9150, 1005*d1919c37STaniya Das .mnd_width = 16, 1006*d1919c37STaniya Das .hid_width = 5, 1007*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 1008*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 1009*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap4_s1_clk_src_init, 1010*d1919c37STaniya Das }; 1011*d1919c37STaniya Das 1012*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s2_clk_src_init = { 1013*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s2_clk_src", 1014*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 1015*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1016*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1017*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1018*d1919c37STaniya Das }; 1019*d1919c37STaniya Das 1020*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s2_clk_src = { 1021*d1919c37STaniya Das .cmd_rcgr = 0xa928c, 1022*d1919c37STaniya Das .mnd_width = 16, 1023*d1919c37STaniya Das .hid_width = 5, 1024*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 1025*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s4_clk_src, 1026*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap4_s2_clk_src_init, 1027*d1919c37STaniya Das }; 1028*d1919c37STaniya Das 1029*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s3_clk_src_init = { 1030*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s3_clk_src", 1031*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 1032*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1033*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1034*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1035*d1919c37STaniya Das }; 1036*d1919c37STaniya Das 1037*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s3_clk_src = { 1038*d1919c37STaniya Das .cmd_rcgr = 0xa93c8, 1039*d1919c37STaniya Das .mnd_width = 16, 1040*d1919c37STaniya Das .hid_width = 5, 1041*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 1042*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 1043*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap4_s3_clk_src_init, 1044*d1919c37STaniya Das }; 1045*d1919c37STaniya Das 1046*d1919c37STaniya Das static struct clk_init_data gcc_qupv3_wrap4_s4_clk_src_init = { 1047*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s4_clk_src", 1048*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 1049*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1050*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1051*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1052*d1919c37STaniya Das }; 1053*d1919c37STaniya Das 1054*d1919c37STaniya Das static struct clk_rcg2 gcc_qupv3_wrap4_s4_clk_src = { 1055*d1919c37STaniya Das .cmd_rcgr = 0xa9504, 1056*d1919c37STaniya Das .mnd_width = 16, 1057*d1919c37STaniya Das .hid_width = 5, 1058*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 1059*d1919c37STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 1060*d1919c37STaniya Das .clkr.hw.init = &gcc_qupv3_wrap4_s4_clk_src_init, 1061*d1919c37STaniya Das }; 1062*d1919c37STaniya Das 1063*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = { 1064*d1919c37STaniya Das F(400000, P_BI_TCXO, 12, 1, 4), 1065*d1919c37STaniya Das F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), 1066*d1919c37STaniya Das F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0), 1067*d1919c37STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 1068*d1919c37STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 1069*d1919c37STaniya Das F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0), 1070*d1919c37STaniya Das { } 1071*d1919c37STaniya Das }; 1072*d1919c37STaniya Das 1073*d1919c37STaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = { 1074*d1919c37STaniya Das .cmd_rcgr = 0x1401c, 1075*d1919c37STaniya Das .mnd_width = 8, 1076*d1919c37STaniya Das .hid_width = 5, 1077*d1919c37STaniya Das .parent_map = gcc_parent_map_8, 1078*d1919c37STaniya Das .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src, 1079*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1080*d1919c37STaniya Das .name = "gcc_sdcc2_apps_clk_src", 1081*d1919c37STaniya Das .parent_data = gcc_parent_data_8, 1082*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_8), 1083*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1084*d1919c37STaniya Das .ops = &clk_rcg2_shared_floor_ops, 1085*d1919c37STaniya Das }, 1086*d1919c37STaniya Das }; 1087*d1919c37STaniya Das 1088*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = { 1089*d1919c37STaniya Das F(400000, P_BI_TCXO, 12, 1, 4), 1090*d1919c37STaniya Das F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), 1091*d1919c37STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 1092*d1919c37STaniya Das { } 1093*d1919c37STaniya Das }; 1094*d1919c37STaniya Das 1095*d1919c37STaniya Das static struct clk_rcg2 gcc_sdcc4_apps_clk_src = { 1096*d1919c37STaniya Das .cmd_rcgr = 0x1601c, 1097*d1919c37STaniya Das .mnd_width = 8, 1098*d1919c37STaniya Das .hid_width = 5, 1099*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 1100*d1919c37STaniya Das .freq_tbl = ftbl_gcc_sdcc4_apps_clk_src, 1101*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1102*d1919c37STaniya Das .name = "gcc_sdcc4_apps_clk_src", 1103*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 1104*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1105*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1106*d1919c37STaniya Das .ops = &clk_rcg2_shared_floor_ops, 1107*d1919c37STaniya Das }, 1108*d1919c37STaniya Das }; 1109*d1919c37STaniya Das 1110*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = { 1111*d1919c37STaniya Das F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), 1112*d1919c37STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 1113*d1919c37STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 1114*d1919c37STaniya Das F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0), 1115*d1919c37STaniya Das F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0), 1116*d1919c37STaniya Das { } 1117*d1919c37STaniya Das }; 1118*d1919c37STaniya Das 1119*d1919c37STaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = { 1120*d1919c37STaniya Das .cmd_rcgr = 0x77034, 1121*d1919c37STaniya Das .mnd_width = 8, 1122*d1919c37STaniya Das .hid_width = 5, 1123*d1919c37STaniya Das .parent_map = gcc_parent_map_3, 1124*d1919c37STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src, 1125*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1126*d1919c37STaniya Das .name = "gcc_ufs_phy_axi_clk_src", 1127*d1919c37STaniya Das .parent_data = gcc_parent_data_3, 1128*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 1129*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1130*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1131*d1919c37STaniya Das }, 1132*d1919c37STaniya Das }; 1133*d1919c37STaniya Das 1134*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = { 1135*d1919c37STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 1136*d1919c37STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 1137*d1919c37STaniya Das F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0), 1138*d1919c37STaniya Das F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0), 1139*d1919c37STaniya Das { } 1140*d1919c37STaniya Das }; 1141*d1919c37STaniya Das 1142*d1919c37STaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = { 1143*d1919c37STaniya Das .cmd_rcgr = 0x7708c, 1144*d1919c37STaniya Das .mnd_width = 0, 1145*d1919c37STaniya Das .hid_width = 5, 1146*d1919c37STaniya Das .parent_map = gcc_parent_map_3, 1147*d1919c37STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src, 1148*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1149*d1919c37STaniya Das .name = "gcc_ufs_phy_ice_core_clk_src", 1150*d1919c37STaniya Das .parent_data = gcc_parent_data_3, 1151*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 1152*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1153*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1154*d1919c37STaniya Das }, 1155*d1919c37STaniya Das }; 1156*d1919c37STaniya Das 1157*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_phy_aux_clk_src[] = { 1158*d1919c37STaniya Das F(9600000, P_BI_TCXO, 2, 0, 0), 1159*d1919c37STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 1160*d1919c37STaniya Das { } 1161*d1919c37STaniya Das }; 1162*d1919c37STaniya Das 1163*d1919c37STaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = { 1164*d1919c37STaniya Das .cmd_rcgr = 0x770c0, 1165*d1919c37STaniya Das .mnd_width = 0, 1166*d1919c37STaniya Das .hid_width = 5, 1167*d1919c37STaniya Das .parent_map = gcc_parent_map_4, 1168*d1919c37STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_phy_aux_clk_src, 1169*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1170*d1919c37STaniya Das .name = "gcc_ufs_phy_phy_aux_clk_src", 1171*d1919c37STaniya Das .parent_data = gcc_parent_data_4, 1172*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_4), 1173*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1174*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1175*d1919c37STaniya Das }, 1176*d1919c37STaniya Das }; 1177*d1919c37STaniya Das 1178*d1919c37STaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = { 1179*d1919c37STaniya Das .cmd_rcgr = 0x770a4, 1180*d1919c37STaniya Das .mnd_width = 0, 1181*d1919c37STaniya Das .hid_width = 5, 1182*d1919c37STaniya Das .parent_map = gcc_parent_map_3, 1183*d1919c37STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src, 1184*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1185*d1919c37STaniya Das .name = "gcc_ufs_phy_unipro_core_clk_src", 1186*d1919c37STaniya Das .parent_data = gcc_parent_data_3, 1187*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 1188*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1189*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1190*d1919c37STaniya Das }, 1191*d1919c37STaniya Das }; 1192*d1919c37STaniya Das 1193*d1919c37STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = { 1194*d1919c37STaniya Das F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0), 1195*d1919c37STaniya Das F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0), 1196*d1919c37STaniya Das F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 1197*d1919c37STaniya Das F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0), 1198*d1919c37STaniya Das { } 1199*d1919c37STaniya Das }; 1200*d1919c37STaniya Das 1201*d1919c37STaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = { 1202*d1919c37STaniya Das .cmd_rcgr = 0x39034, 1203*d1919c37STaniya Das .mnd_width = 8, 1204*d1919c37STaniya Das .hid_width = 5, 1205*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 1206*d1919c37STaniya Das .freq_tbl = ftbl_gcc_usb30_prim_master_clk_src, 1207*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1208*d1919c37STaniya Das .name = "gcc_usb30_prim_master_clk_src", 1209*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 1210*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1211*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1212*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1213*d1919c37STaniya Das }, 1214*d1919c37STaniya Das }; 1215*d1919c37STaniya Das 1216*d1919c37STaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = { 1217*d1919c37STaniya Das .cmd_rcgr = 0x3904c, 1218*d1919c37STaniya Das .mnd_width = 0, 1219*d1919c37STaniya Das .hid_width = 5, 1220*d1919c37STaniya Das .parent_map = gcc_parent_map_0, 1221*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1222*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1223*d1919c37STaniya Das .name = "gcc_usb30_prim_mock_utmi_clk_src", 1224*d1919c37STaniya Das .parent_data = gcc_parent_data_0, 1225*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 1226*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1227*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1228*d1919c37STaniya Das }, 1229*d1919c37STaniya Das }; 1230*d1919c37STaniya Das 1231*d1919c37STaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = { 1232*d1919c37STaniya Das .cmd_rcgr = 0x39078, 1233*d1919c37STaniya Das .mnd_width = 0, 1234*d1919c37STaniya Das .hid_width = 5, 1235*d1919c37STaniya Das .parent_map = gcc_parent_map_6, 1236*d1919c37STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 1237*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1238*d1919c37STaniya Das .name = "gcc_usb3_prim_phy_aux_clk_src", 1239*d1919c37STaniya Das .parent_data = gcc_parent_data_6, 1240*d1919c37STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_6), 1241*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1242*d1919c37STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 1243*d1919c37STaniya Das }, 1244*d1919c37STaniya Das }; 1245*d1919c37STaniya Das 1246*d1919c37STaniya Das static struct clk_regmap_div gcc_qupv3_wrap1_s2_clk_src = { 1247*d1919c37STaniya Das .reg = 0x1828c, 1248*d1919c37STaniya Das .shift = 0, 1249*d1919c37STaniya Das .width = 4, 1250*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1251*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s2_clk_src", 1252*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1253*d1919c37STaniya Das &gcc_qupv3_wrap1_qspi_ref_clk_src.clkr.hw, 1254*d1919c37STaniya Das }, 1255*d1919c37STaniya Das .num_parents = 1, 1256*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1257*d1919c37STaniya Das .ops = &clk_regmap_div_ro_ops, 1258*d1919c37STaniya Das }, 1259*d1919c37STaniya Das }; 1260*d1919c37STaniya Das 1261*d1919c37STaniya Das static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = { 1262*d1919c37STaniya Das .reg = 0x39064, 1263*d1919c37STaniya Das .shift = 0, 1264*d1919c37STaniya Das .width = 4, 1265*d1919c37STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 1266*d1919c37STaniya Das .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src", 1267*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1268*d1919c37STaniya Das &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw, 1269*d1919c37STaniya Das }, 1270*d1919c37STaniya Das .num_parents = 1, 1271*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1272*d1919c37STaniya Das .ops = &clk_regmap_div_ro_ops, 1273*d1919c37STaniya Das }, 1274*d1919c37STaniya Das }; 1275*d1919c37STaniya Das 1276*d1919c37STaniya Das static struct clk_branch gcc_aggre_noc_pcie_axi_clk = { 1277*d1919c37STaniya Das .halt_reg = 0x10068, 1278*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1279*d1919c37STaniya Das .hwcg_reg = 0x10068, 1280*d1919c37STaniya Das .hwcg_bit = 1, 1281*d1919c37STaniya Das .clkr = { 1282*d1919c37STaniya Das .enable_reg = 0x52000, 1283*d1919c37STaniya Das .enable_mask = BIT(12), 1284*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1285*d1919c37STaniya Das .name = "gcc_aggre_noc_pcie_axi_clk", 1286*d1919c37STaniya Das .ops = &clk_branch2_ops, 1287*d1919c37STaniya Das }, 1288*d1919c37STaniya Das }, 1289*d1919c37STaniya Das }; 1290*d1919c37STaniya Das 1291*d1919c37STaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = { 1292*d1919c37STaniya Das .halt_reg = 0x770f0, 1293*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1294*d1919c37STaniya Das .hwcg_reg = 0x770f0, 1295*d1919c37STaniya Das .hwcg_bit = 1, 1296*d1919c37STaniya Das .clkr = { 1297*d1919c37STaniya Das .enable_reg = 0x770f0, 1298*d1919c37STaniya Das .enable_mask = BIT(0), 1299*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1300*d1919c37STaniya Das .name = "gcc_aggre_ufs_phy_axi_clk", 1301*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1302*d1919c37STaniya Das &gcc_ufs_phy_axi_clk_src.clkr.hw, 1303*d1919c37STaniya Das }, 1304*d1919c37STaniya Das .num_parents = 1, 1305*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1306*d1919c37STaniya Das .ops = &clk_branch2_ops, 1307*d1919c37STaniya Das }, 1308*d1919c37STaniya Das }, 1309*d1919c37STaniya Das }; 1310*d1919c37STaniya Das 1311*d1919c37STaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = { 1312*d1919c37STaniya Das .halt_reg = 0x39094, 1313*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1314*d1919c37STaniya Das .hwcg_reg = 0x39094, 1315*d1919c37STaniya Das .hwcg_bit = 1, 1316*d1919c37STaniya Das .clkr = { 1317*d1919c37STaniya Das .enable_reg = 0x39094, 1318*d1919c37STaniya Das .enable_mask = BIT(0), 1319*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1320*d1919c37STaniya Das .name = "gcc_aggre_usb3_prim_axi_clk", 1321*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1322*d1919c37STaniya Das &gcc_usb30_prim_master_clk_src.clkr.hw, 1323*d1919c37STaniya Das }, 1324*d1919c37STaniya Das .num_parents = 1, 1325*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1326*d1919c37STaniya Das .ops = &clk_branch2_ops, 1327*d1919c37STaniya Das }, 1328*d1919c37STaniya Das }, 1329*d1919c37STaniya Das }; 1330*d1919c37STaniya Das 1331*d1919c37STaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = { 1332*d1919c37STaniya Das .halt_reg = 0x38004, 1333*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1334*d1919c37STaniya Das .hwcg_reg = 0x38004, 1335*d1919c37STaniya Das .hwcg_bit = 1, 1336*d1919c37STaniya Das .clkr = { 1337*d1919c37STaniya Das .enable_reg = 0x52010, 1338*d1919c37STaniya Das .enable_mask = BIT(18), 1339*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1340*d1919c37STaniya Das .name = "gcc_boot_rom_ahb_clk", 1341*d1919c37STaniya Das .ops = &clk_branch2_ops, 1342*d1919c37STaniya Das }, 1343*d1919c37STaniya Das }, 1344*d1919c37STaniya Das }; 1345*d1919c37STaniya Das 1346*d1919c37STaniya Das static struct clk_branch gcc_camera_hf_axi_clk = { 1347*d1919c37STaniya Das .halt_reg = 0x26014, 1348*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1349*d1919c37STaniya Das .hwcg_reg = 0x26014, 1350*d1919c37STaniya Das .hwcg_bit = 1, 1351*d1919c37STaniya Das .clkr = { 1352*d1919c37STaniya Das .enable_reg = 0x26014, 1353*d1919c37STaniya Das .enable_mask = BIT(0), 1354*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1355*d1919c37STaniya Das .name = "gcc_camera_hf_axi_clk", 1356*d1919c37STaniya Das .ops = &clk_branch2_ops, 1357*d1919c37STaniya Das }, 1358*d1919c37STaniya Das }, 1359*d1919c37STaniya Das }; 1360*d1919c37STaniya Das 1361*d1919c37STaniya Das static struct clk_branch gcc_camera_sf_axi_clk = { 1362*d1919c37STaniya Das .halt_reg = 0x26028, 1363*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1364*d1919c37STaniya Das .hwcg_reg = 0x26028, 1365*d1919c37STaniya Das .hwcg_bit = 1, 1366*d1919c37STaniya Das .clkr = { 1367*d1919c37STaniya Das .enable_reg = 0x26028, 1368*d1919c37STaniya Das .enable_mask = BIT(0), 1369*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1370*d1919c37STaniya Das .name = "gcc_camera_sf_axi_clk", 1371*d1919c37STaniya Das .ops = &clk_branch2_ops, 1372*d1919c37STaniya Das }, 1373*d1919c37STaniya Das }, 1374*d1919c37STaniya Das }; 1375*d1919c37STaniya Das 1376*d1919c37STaniya Das static struct clk_branch gcc_cfg_noc_pcie_anoc_ahb_clk = { 1377*d1919c37STaniya Das .halt_reg = 0x10050, 1378*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1379*d1919c37STaniya Das .hwcg_reg = 0x10050, 1380*d1919c37STaniya Das .hwcg_bit = 1, 1381*d1919c37STaniya Das .clkr = { 1382*d1919c37STaniya Das .enable_reg = 0x52000, 1383*d1919c37STaniya Das .enable_mask = BIT(20), 1384*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1385*d1919c37STaniya Das .name = "gcc_cfg_noc_pcie_anoc_ahb_clk", 1386*d1919c37STaniya Das .ops = &clk_branch2_ops, 1387*d1919c37STaniya Das }, 1388*d1919c37STaniya Das }, 1389*d1919c37STaniya Das }; 1390*d1919c37STaniya Das 1391*d1919c37STaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = { 1392*d1919c37STaniya Das .halt_reg = 0x39090, 1393*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1394*d1919c37STaniya Das .hwcg_reg = 0x39090, 1395*d1919c37STaniya Das .hwcg_bit = 1, 1396*d1919c37STaniya Das .clkr = { 1397*d1919c37STaniya Das .enable_reg = 0x39090, 1398*d1919c37STaniya Das .enable_mask = BIT(0), 1399*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1400*d1919c37STaniya Das .name = "gcc_cfg_noc_usb3_prim_axi_clk", 1401*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1402*d1919c37STaniya Das &gcc_usb30_prim_master_clk_src.clkr.hw, 1403*d1919c37STaniya Das }, 1404*d1919c37STaniya Das .num_parents = 1, 1405*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1406*d1919c37STaniya Das .ops = &clk_branch2_ops, 1407*d1919c37STaniya Das }, 1408*d1919c37STaniya Das }, 1409*d1919c37STaniya Das }; 1410*d1919c37STaniya Das 1411*d1919c37STaniya Das static struct clk_branch gcc_cnoc_pcie_sf_axi_clk = { 1412*d1919c37STaniya Das .halt_reg = 0x10058, 1413*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1414*d1919c37STaniya Das .clkr = { 1415*d1919c37STaniya Das .enable_reg = 0x52008, 1416*d1919c37STaniya Das .enable_mask = BIT(6), 1417*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1418*d1919c37STaniya Das .name = "gcc_cnoc_pcie_sf_axi_clk", 1419*d1919c37STaniya Das .ops = &clk_branch2_ops, 1420*d1919c37STaniya Das }, 1421*d1919c37STaniya Das }, 1422*d1919c37STaniya Das }; 1423*d1919c37STaniya Das 1424*d1919c37STaniya Das static struct clk_branch gcc_ddrss_pcie_sf_qtb_clk = { 1425*d1919c37STaniya Das .halt_reg = 0x1007c, 1426*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1427*d1919c37STaniya Das .hwcg_reg = 0x1007c, 1428*d1919c37STaniya Das .hwcg_bit = 1, 1429*d1919c37STaniya Das .clkr = { 1430*d1919c37STaniya Das .enable_reg = 0x52000, 1431*d1919c37STaniya Das .enable_mask = BIT(19), 1432*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1433*d1919c37STaniya Das .name = "gcc_ddrss_pcie_sf_qtb_clk", 1434*d1919c37STaniya Das .ops = &clk_branch2_ops, 1435*d1919c37STaniya Das }, 1436*d1919c37STaniya Das }, 1437*d1919c37STaniya Das }; 1438*d1919c37STaniya Das 1439*d1919c37STaniya Das static struct clk_branch gcc_disp_hf_axi_clk = { 1440*d1919c37STaniya Das .halt_reg = 0x2701c, 1441*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1442*d1919c37STaniya Das .clkr = { 1443*d1919c37STaniya Das .enable_reg = 0x2701c, 1444*d1919c37STaniya Das .enable_mask = BIT(0), 1445*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1446*d1919c37STaniya Das .name = "gcc_disp_hf_axi_clk", 1447*d1919c37STaniya Das .ops = &clk_branch2_ops, 1448*d1919c37STaniya Das }, 1449*d1919c37STaniya Das }, 1450*d1919c37STaniya Das }; 1451*d1919c37STaniya Das 1452*d1919c37STaniya Das static struct clk_branch gcc_disp_sf_axi_clk = { 1453*d1919c37STaniya Das .halt_reg = 0x27008, 1454*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1455*d1919c37STaniya Das .hwcg_reg = 0x27008, 1456*d1919c37STaniya Das .hwcg_bit = 1, 1457*d1919c37STaniya Das .clkr = { 1458*d1919c37STaniya Das .enable_reg = 0x27008, 1459*d1919c37STaniya Das .enable_mask = BIT(0), 1460*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1461*d1919c37STaniya Das .name = "gcc_disp_sf_axi_clk", 1462*d1919c37STaniya Das .ops = &clk_branch2_aon_ops, 1463*d1919c37STaniya Das }, 1464*d1919c37STaniya Das }, 1465*d1919c37STaniya Das }; 1466*d1919c37STaniya Das 1467*d1919c37STaniya Das static struct clk_branch gcc_eva_axi0_clk = { 1468*d1919c37STaniya Das .halt_reg = 0x9f008, 1469*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1470*d1919c37STaniya Das .hwcg_reg = 0x9f008, 1471*d1919c37STaniya Das .hwcg_bit = 1, 1472*d1919c37STaniya Das .clkr = { 1473*d1919c37STaniya Das .enable_reg = 0x9f008, 1474*d1919c37STaniya Das .enable_mask = BIT(0), 1475*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1476*d1919c37STaniya Das .name = "gcc_eva_axi0_clk", 1477*d1919c37STaniya Das .ops = &clk_branch2_ops, 1478*d1919c37STaniya Das }, 1479*d1919c37STaniya Das }, 1480*d1919c37STaniya Das }; 1481*d1919c37STaniya Das 1482*d1919c37STaniya Das static struct clk_branch gcc_eva_axi0c_clk = { 1483*d1919c37STaniya Das .halt_reg = 0x9f01c, 1484*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1485*d1919c37STaniya Das .hwcg_reg = 0x9f01c, 1486*d1919c37STaniya Das .hwcg_bit = 1, 1487*d1919c37STaniya Das .clkr = { 1488*d1919c37STaniya Das .enable_reg = 0x9f01c, 1489*d1919c37STaniya Das .enable_mask = BIT(0), 1490*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1491*d1919c37STaniya Das .name = "gcc_eva_axi0c_clk", 1492*d1919c37STaniya Das .ops = &clk_branch2_ops, 1493*d1919c37STaniya Das }, 1494*d1919c37STaniya Das }, 1495*d1919c37STaniya Das }; 1496*d1919c37STaniya Das 1497*d1919c37STaniya Das static struct clk_branch gcc_gp1_clk = { 1498*d1919c37STaniya Das .halt_reg = 0x64000, 1499*d1919c37STaniya Das .halt_check = BRANCH_HALT, 1500*d1919c37STaniya Das .clkr = { 1501*d1919c37STaniya Das .enable_reg = 0x64000, 1502*d1919c37STaniya Das .enable_mask = BIT(0), 1503*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1504*d1919c37STaniya Das .name = "gcc_gp1_clk", 1505*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1506*d1919c37STaniya Das &gcc_gp1_clk_src.clkr.hw, 1507*d1919c37STaniya Das }, 1508*d1919c37STaniya Das .num_parents = 1, 1509*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1510*d1919c37STaniya Das .ops = &clk_branch2_ops, 1511*d1919c37STaniya Das }, 1512*d1919c37STaniya Das }, 1513*d1919c37STaniya Das }; 1514*d1919c37STaniya Das 1515*d1919c37STaniya Das static struct clk_branch gcc_gp2_clk = { 1516*d1919c37STaniya Das .halt_reg = 0x65000, 1517*d1919c37STaniya Das .halt_check = BRANCH_HALT, 1518*d1919c37STaniya Das .clkr = { 1519*d1919c37STaniya Das .enable_reg = 0x65000, 1520*d1919c37STaniya Das .enable_mask = BIT(0), 1521*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1522*d1919c37STaniya Das .name = "gcc_gp2_clk", 1523*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1524*d1919c37STaniya Das &gcc_gp2_clk_src.clkr.hw, 1525*d1919c37STaniya Das }, 1526*d1919c37STaniya Das .num_parents = 1, 1527*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1528*d1919c37STaniya Das .ops = &clk_branch2_ops, 1529*d1919c37STaniya Das }, 1530*d1919c37STaniya Das }, 1531*d1919c37STaniya Das }; 1532*d1919c37STaniya Das 1533*d1919c37STaniya Das static struct clk_branch gcc_gp3_clk = { 1534*d1919c37STaniya Das .halt_reg = 0x66000, 1535*d1919c37STaniya Das .halt_check = BRANCH_HALT, 1536*d1919c37STaniya Das .clkr = { 1537*d1919c37STaniya Das .enable_reg = 0x66000, 1538*d1919c37STaniya Das .enable_mask = BIT(0), 1539*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1540*d1919c37STaniya Das .name = "gcc_gp3_clk", 1541*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1542*d1919c37STaniya Das &gcc_gp3_clk_src.clkr.hw, 1543*d1919c37STaniya Das }, 1544*d1919c37STaniya Das .num_parents = 1, 1545*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1546*d1919c37STaniya Das .ops = &clk_branch2_ops, 1547*d1919c37STaniya Das }, 1548*d1919c37STaniya Das }, 1549*d1919c37STaniya Das }; 1550*d1919c37STaniya Das 1551*d1919c37STaniya Das static struct clk_branch gcc_gpu_gemnoc_gfx_clk = { 1552*d1919c37STaniya Das .halt_reg = 0x71010, 1553*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1554*d1919c37STaniya Das .hwcg_reg = 0x71010, 1555*d1919c37STaniya Das .hwcg_bit = 1, 1556*d1919c37STaniya Das .clkr = { 1557*d1919c37STaniya Das .enable_reg = 0x71010, 1558*d1919c37STaniya Das .enable_mask = BIT(0), 1559*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1560*d1919c37STaniya Das .name = "gcc_gpu_gemnoc_gfx_clk", 1561*d1919c37STaniya Das .ops = &clk_branch2_ops, 1562*d1919c37STaniya Das }, 1563*d1919c37STaniya Das }, 1564*d1919c37STaniya Das }; 1565*d1919c37STaniya Das 1566*d1919c37STaniya Das static struct clk_branch gcc_gpu_gpll0_clk_src = { 1567*d1919c37STaniya Das .halt_check = BRANCH_HALT_DELAY, 1568*d1919c37STaniya Das .clkr = { 1569*d1919c37STaniya Das .enable_reg = 0x52000, 1570*d1919c37STaniya Das .enable_mask = BIT(15), 1571*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1572*d1919c37STaniya Das .name = "gcc_gpu_gpll0_clk_src", 1573*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1574*d1919c37STaniya Das &gcc_gpll0.clkr.hw, 1575*d1919c37STaniya Das }, 1576*d1919c37STaniya Das .num_parents = 1, 1577*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1578*d1919c37STaniya Das .ops = &clk_branch2_ops, 1579*d1919c37STaniya Das }, 1580*d1919c37STaniya Das }, 1581*d1919c37STaniya Das }; 1582*d1919c37STaniya Das 1583*d1919c37STaniya Das static struct clk_branch gcc_gpu_gpll0_div_clk_src = { 1584*d1919c37STaniya Das .halt_check = BRANCH_HALT_DELAY, 1585*d1919c37STaniya Das .clkr = { 1586*d1919c37STaniya Das .enable_reg = 0x52000, 1587*d1919c37STaniya Das .enable_mask = BIT(16), 1588*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1589*d1919c37STaniya Das .name = "gcc_gpu_gpll0_div_clk_src", 1590*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1591*d1919c37STaniya Das &gcc_gpll0_out_even.clkr.hw, 1592*d1919c37STaniya Das }, 1593*d1919c37STaniya Das .num_parents = 1, 1594*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1595*d1919c37STaniya Das .ops = &clk_branch2_ops, 1596*d1919c37STaniya Das }, 1597*d1919c37STaniya Das }, 1598*d1919c37STaniya Das }; 1599*d1919c37STaniya Das 1600*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_aux_clk = { 1601*d1919c37STaniya Das .halt_reg = 0x6b044, 1602*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1603*d1919c37STaniya Das .clkr = { 1604*d1919c37STaniya Das .enable_reg = 0x52008, 1605*d1919c37STaniya Das .enable_mask = BIT(3), 1606*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1607*d1919c37STaniya Das .name = "gcc_pcie_0_aux_clk", 1608*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1609*d1919c37STaniya Das &gcc_pcie_0_aux_clk_src.clkr.hw, 1610*d1919c37STaniya Das }, 1611*d1919c37STaniya Das .num_parents = 1, 1612*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1613*d1919c37STaniya Das .ops = &clk_branch2_ops, 1614*d1919c37STaniya Das }, 1615*d1919c37STaniya Das }, 1616*d1919c37STaniya Das }; 1617*d1919c37STaniya Das 1618*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_cfg_ahb_clk = { 1619*d1919c37STaniya Das .halt_reg = 0x6b040, 1620*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1621*d1919c37STaniya Das .hwcg_reg = 0x6b040, 1622*d1919c37STaniya Das .hwcg_bit = 1, 1623*d1919c37STaniya Das .clkr = { 1624*d1919c37STaniya Das .enable_reg = 0x52008, 1625*d1919c37STaniya Das .enable_mask = BIT(2), 1626*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1627*d1919c37STaniya Das .name = "gcc_pcie_0_cfg_ahb_clk", 1628*d1919c37STaniya Das .ops = &clk_branch2_ops, 1629*d1919c37STaniya Das }, 1630*d1919c37STaniya Das }, 1631*d1919c37STaniya Das }; 1632*d1919c37STaniya Das 1633*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_mstr_axi_clk = { 1634*d1919c37STaniya Das .halt_reg = 0x6b030, 1635*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1636*d1919c37STaniya Das .hwcg_reg = 0x6b030, 1637*d1919c37STaniya Das .hwcg_bit = 1, 1638*d1919c37STaniya Das .clkr = { 1639*d1919c37STaniya Das .enable_reg = 0x52008, 1640*d1919c37STaniya Das .enable_mask = BIT(1), 1641*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1642*d1919c37STaniya Das .name = "gcc_pcie_0_mstr_axi_clk", 1643*d1919c37STaniya Das .ops = &clk_branch2_ops, 1644*d1919c37STaniya Das }, 1645*d1919c37STaniya Das }, 1646*d1919c37STaniya Das }; 1647*d1919c37STaniya Das 1648*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_phy_aux_clk = { 1649*d1919c37STaniya Das .halt_reg = 0x6b054, 1650*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1651*d1919c37STaniya Das .clkr = { 1652*d1919c37STaniya Das .enable_reg = 0x52018, 1653*d1919c37STaniya Das .enable_mask = BIT(31), 1654*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1655*d1919c37STaniya Das .name = "gcc_pcie_0_phy_aux_clk", 1656*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1657*d1919c37STaniya Das &gcc_pcie_0_phy_aux_clk_src.clkr.hw, 1658*d1919c37STaniya Das }, 1659*d1919c37STaniya Das .num_parents = 1, 1660*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1661*d1919c37STaniya Das .ops = &clk_branch2_ops, 1662*d1919c37STaniya Das }, 1663*d1919c37STaniya Das }, 1664*d1919c37STaniya Das }; 1665*d1919c37STaniya Das 1666*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_phy_rchng_clk = { 1667*d1919c37STaniya Das .halt_reg = 0x6b074, 1668*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1669*d1919c37STaniya Das .clkr = { 1670*d1919c37STaniya Das .enable_reg = 0x52000, 1671*d1919c37STaniya Das .enable_mask = BIT(22), 1672*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1673*d1919c37STaniya Das .name = "gcc_pcie_0_phy_rchng_clk", 1674*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1675*d1919c37STaniya Das &gcc_pcie_0_phy_rchng_clk_src.clkr.hw, 1676*d1919c37STaniya Das }, 1677*d1919c37STaniya Das .num_parents = 1, 1678*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1679*d1919c37STaniya Das .ops = &clk_branch2_ops, 1680*d1919c37STaniya Das }, 1681*d1919c37STaniya Das }, 1682*d1919c37STaniya Das }; 1683*d1919c37STaniya Das 1684*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_pipe_clk = { 1685*d1919c37STaniya Das .halt_reg = 0x6b064, 1686*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 1687*d1919c37STaniya Das .clkr = { 1688*d1919c37STaniya Das .enable_reg = 0x52008, 1689*d1919c37STaniya Das .enable_mask = BIT(4), 1690*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1691*d1919c37STaniya Das .name = "gcc_pcie_0_pipe_clk", 1692*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1693*d1919c37STaniya Das &gcc_pcie_0_pipe_clk_src.clkr.hw, 1694*d1919c37STaniya Das }, 1695*d1919c37STaniya Das .num_parents = 1, 1696*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1697*d1919c37STaniya Das .ops = &clk_branch2_ops, 1698*d1919c37STaniya Das }, 1699*d1919c37STaniya Das }, 1700*d1919c37STaniya Das }; 1701*d1919c37STaniya Das 1702*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_slv_axi_clk = { 1703*d1919c37STaniya Das .halt_reg = 0x6b020, 1704*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1705*d1919c37STaniya Das .hwcg_reg = 0x6b020, 1706*d1919c37STaniya Das .hwcg_bit = 1, 1707*d1919c37STaniya Das .clkr = { 1708*d1919c37STaniya Das .enable_reg = 0x52008, 1709*d1919c37STaniya Das .enable_mask = BIT(0), 1710*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1711*d1919c37STaniya Das .name = "gcc_pcie_0_slv_axi_clk", 1712*d1919c37STaniya Das .ops = &clk_branch2_ops, 1713*d1919c37STaniya Das }, 1714*d1919c37STaniya Das }, 1715*d1919c37STaniya Das }; 1716*d1919c37STaniya Das 1717*d1919c37STaniya Das static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = { 1718*d1919c37STaniya Das .halt_reg = 0x6b01c, 1719*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1720*d1919c37STaniya Das .clkr = { 1721*d1919c37STaniya Das .enable_reg = 0x52008, 1722*d1919c37STaniya Das .enable_mask = BIT(5), 1723*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1724*d1919c37STaniya Das .name = "gcc_pcie_0_slv_q2a_axi_clk", 1725*d1919c37STaniya Das .ops = &clk_branch2_ops, 1726*d1919c37STaniya Das }, 1727*d1919c37STaniya Das }, 1728*d1919c37STaniya Das }; 1729*d1919c37STaniya Das 1730*d1919c37STaniya Das static struct clk_branch gcc_pdm2_clk = { 1731*d1919c37STaniya Das .halt_reg = 0x3300c, 1732*d1919c37STaniya Das .halt_check = BRANCH_HALT, 1733*d1919c37STaniya Das .clkr = { 1734*d1919c37STaniya Das .enable_reg = 0x3300c, 1735*d1919c37STaniya Das .enable_mask = BIT(0), 1736*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1737*d1919c37STaniya Das .name = "gcc_pdm2_clk", 1738*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1739*d1919c37STaniya Das &gcc_pdm2_clk_src.clkr.hw, 1740*d1919c37STaniya Das }, 1741*d1919c37STaniya Das .num_parents = 1, 1742*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1743*d1919c37STaniya Das .ops = &clk_branch2_ops, 1744*d1919c37STaniya Das }, 1745*d1919c37STaniya Das }, 1746*d1919c37STaniya Das }; 1747*d1919c37STaniya Das 1748*d1919c37STaniya Das static struct clk_branch gcc_pdm_ahb_clk = { 1749*d1919c37STaniya Das .halt_reg = 0x33004, 1750*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1751*d1919c37STaniya Das .hwcg_reg = 0x33004, 1752*d1919c37STaniya Das .hwcg_bit = 1, 1753*d1919c37STaniya Das .clkr = { 1754*d1919c37STaniya Das .enable_reg = 0x33004, 1755*d1919c37STaniya Das .enable_mask = BIT(0), 1756*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1757*d1919c37STaniya Das .name = "gcc_pdm_ahb_clk", 1758*d1919c37STaniya Das .ops = &clk_branch2_ops, 1759*d1919c37STaniya Das }, 1760*d1919c37STaniya Das }, 1761*d1919c37STaniya Das }; 1762*d1919c37STaniya Das 1763*d1919c37STaniya Das static struct clk_branch gcc_pdm_xo4_clk = { 1764*d1919c37STaniya Das .halt_reg = 0x33008, 1765*d1919c37STaniya Das .halt_check = BRANCH_HALT, 1766*d1919c37STaniya Das .clkr = { 1767*d1919c37STaniya Das .enable_reg = 0x33008, 1768*d1919c37STaniya Das .enable_mask = BIT(0), 1769*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1770*d1919c37STaniya Das .name = "gcc_pdm_xo4_clk", 1771*d1919c37STaniya Das .ops = &clk_branch2_ops, 1772*d1919c37STaniya Das }, 1773*d1919c37STaniya Das }, 1774*d1919c37STaniya Das }; 1775*d1919c37STaniya Das 1776*d1919c37STaniya Das static struct clk_branch gcc_qmip_camera_cmd_ahb_clk = { 1777*d1919c37STaniya Das .halt_reg = 0x26010, 1778*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1779*d1919c37STaniya Das .hwcg_reg = 0x26010, 1780*d1919c37STaniya Das .hwcg_bit = 1, 1781*d1919c37STaniya Das .clkr = { 1782*d1919c37STaniya Das .enable_reg = 0x26010, 1783*d1919c37STaniya Das .enable_mask = BIT(0), 1784*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1785*d1919c37STaniya Das .name = "gcc_qmip_camera_cmd_ahb_clk", 1786*d1919c37STaniya Das .ops = &clk_branch2_ops, 1787*d1919c37STaniya Das }, 1788*d1919c37STaniya Das }, 1789*d1919c37STaniya Das }; 1790*d1919c37STaniya Das 1791*d1919c37STaniya Das static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = { 1792*d1919c37STaniya Das .halt_reg = 0x26008, 1793*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1794*d1919c37STaniya Das .hwcg_reg = 0x26008, 1795*d1919c37STaniya Das .hwcg_bit = 1, 1796*d1919c37STaniya Das .clkr = { 1797*d1919c37STaniya Das .enable_reg = 0x26008, 1798*d1919c37STaniya Das .enable_mask = BIT(0), 1799*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1800*d1919c37STaniya Das .name = "gcc_qmip_camera_nrt_ahb_clk", 1801*d1919c37STaniya Das .ops = &clk_branch2_ops, 1802*d1919c37STaniya Das }, 1803*d1919c37STaniya Das }, 1804*d1919c37STaniya Das }; 1805*d1919c37STaniya Das 1806*d1919c37STaniya Das static struct clk_branch gcc_qmip_camera_rt_ahb_clk = { 1807*d1919c37STaniya Das .halt_reg = 0x2600c, 1808*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1809*d1919c37STaniya Das .hwcg_reg = 0x2600c, 1810*d1919c37STaniya Das .hwcg_bit = 1, 1811*d1919c37STaniya Das .clkr = { 1812*d1919c37STaniya Das .enable_reg = 0x2600c, 1813*d1919c37STaniya Das .enable_mask = BIT(0), 1814*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1815*d1919c37STaniya Das .name = "gcc_qmip_camera_rt_ahb_clk", 1816*d1919c37STaniya Das .ops = &clk_branch2_ops, 1817*d1919c37STaniya Das }, 1818*d1919c37STaniya Das }, 1819*d1919c37STaniya Das }; 1820*d1919c37STaniya Das 1821*d1919c37STaniya Das static struct clk_branch gcc_qmip_disp_dcp_sf_ahb_clk = { 1822*d1919c37STaniya Das .halt_reg = 0x27030, 1823*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1824*d1919c37STaniya Das .hwcg_reg = 0x27030, 1825*d1919c37STaniya Das .hwcg_bit = 1, 1826*d1919c37STaniya Das .clkr = { 1827*d1919c37STaniya Das .enable_reg = 0x27030, 1828*d1919c37STaniya Das .enable_mask = BIT(0), 1829*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1830*d1919c37STaniya Das .name = "gcc_qmip_disp_dcp_sf_ahb_clk", 1831*d1919c37STaniya Das .ops = &clk_branch2_ops, 1832*d1919c37STaniya Das }, 1833*d1919c37STaniya Das }, 1834*d1919c37STaniya Das }; 1835*d1919c37STaniya Das 1836*d1919c37STaniya Das static struct clk_branch gcc_qmip_gpu_ahb_clk = { 1837*d1919c37STaniya Das .halt_reg = 0x71008, 1838*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1839*d1919c37STaniya Das .hwcg_reg = 0x71008, 1840*d1919c37STaniya Das .hwcg_bit = 1, 1841*d1919c37STaniya Das .clkr = { 1842*d1919c37STaniya Das .enable_reg = 0x71008, 1843*d1919c37STaniya Das .enable_mask = BIT(0), 1844*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1845*d1919c37STaniya Das .name = "gcc_qmip_gpu_ahb_clk", 1846*d1919c37STaniya Das .ops = &clk_branch2_ops, 1847*d1919c37STaniya Das }, 1848*d1919c37STaniya Das }, 1849*d1919c37STaniya Das }; 1850*d1919c37STaniya Das 1851*d1919c37STaniya Das static struct clk_branch gcc_qmip_pcie_ahb_clk = { 1852*d1919c37STaniya Das .halt_reg = 0x6b018, 1853*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1854*d1919c37STaniya Das .hwcg_reg = 0x6b018, 1855*d1919c37STaniya Das .hwcg_bit = 1, 1856*d1919c37STaniya Das .clkr = { 1857*d1919c37STaniya Das .enable_reg = 0x52010, 1858*d1919c37STaniya Das .enable_mask = BIT(19), 1859*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1860*d1919c37STaniya Das .name = "gcc_qmip_pcie_ahb_clk", 1861*d1919c37STaniya Das .ops = &clk_branch2_ops, 1862*d1919c37STaniya Das }, 1863*d1919c37STaniya Das }, 1864*d1919c37STaniya Das }; 1865*d1919c37STaniya Das 1866*d1919c37STaniya Das static struct clk_branch gcc_qmip_video_cv_cpu_ahb_clk = { 1867*d1919c37STaniya Das .halt_reg = 0x32014, 1868*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1869*d1919c37STaniya Das .hwcg_reg = 0x32014, 1870*d1919c37STaniya Das .hwcg_bit = 1, 1871*d1919c37STaniya Das .clkr = { 1872*d1919c37STaniya Das .enable_reg = 0x32014, 1873*d1919c37STaniya Das .enable_mask = BIT(0), 1874*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1875*d1919c37STaniya Das .name = "gcc_qmip_video_cv_cpu_ahb_clk", 1876*d1919c37STaniya Das .ops = &clk_branch2_ops, 1877*d1919c37STaniya Das }, 1878*d1919c37STaniya Das }, 1879*d1919c37STaniya Das }; 1880*d1919c37STaniya Das 1881*d1919c37STaniya Das static struct clk_branch gcc_qmip_video_cvp_ahb_clk = { 1882*d1919c37STaniya Das .halt_reg = 0x32008, 1883*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1884*d1919c37STaniya Das .hwcg_reg = 0x32008, 1885*d1919c37STaniya Das .hwcg_bit = 1, 1886*d1919c37STaniya Das .clkr = { 1887*d1919c37STaniya Das .enable_reg = 0x32008, 1888*d1919c37STaniya Das .enable_mask = BIT(0), 1889*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1890*d1919c37STaniya Das .name = "gcc_qmip_video_cvp_ahb_clk", 1891*d1919c37STaniya Das .ops = &clk_branch2_ops, 1892*d1919c37STaniya Das }, 1893*d1919c37STaniya Das }, 1894*d1919c37STaniya Das }; 1895*d1919c37STaniya Das 1896*d1919c37STaniya Das static struct clk_branch gcc_qmip_video_v_cpu_ahb_clk = { 1897*d1919c37STaniya Das .halt_reg = 0x32010, 1898*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1899*d1919c37STaniya Das .hwcg_reg = 0x32010, 1900*d1919c37STaniya Das .hwcg_bit = 1, 1901*d1919c37STaniya Das .clkr = { 1902*d1919c37STaniya Das .enable_reg = 0x32010, 1903*d1919c37STaniya Das .enable_mask = BIT(0), 1904*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1905*d1919c37STaniya Das .name = "gcc_qmip_video_v_cpu_ahb_clk", 1906*d1919c37STaniya Das .ops = &clk_branch2_ops, 1907*d1919c37STaniya Das }, 1908*d1919c37STaniya Das }, 1909*d1919c37STaniya Das }; 1910*d1919c37STaniya Das 1911*d1919c37STaniya Das static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = { 1912*d1919c37STaniya Das .halt_reg = 0x3200c, 1913*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1914*d1919c37STaniya Das .hwcg_reg = 0x3200c, 1915*d1919c37STaniya Das .hwcg_bit = 1, 1916*d1919c37STaniya Das .clkr = { 1917*d1919c37STaniya Das .enable_reg = 0x3200c, 1918*d1919c37STaniya Das .enable_mask = BIT(0), 1919*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1920*d1919c37STaniya Das .name = "gcc_qmip_video_vcodec_ahb_clk", 1921*d1919c37STaniya Das .ops = &clk_branch2_ops, 1922*d1919c37STaniya Das }, 1923*d1919c37STaniya Das }, 1924*d1919c37STaniya Das }; 1925*d1919c37STaniya Das 1926*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_core_clk = { 1927*d1919c37STaniya Das .halt_reg = 0x23004, 1928*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1929*d1919c37STaniya Das .clkr = { 1930*d1919c37STaniya Das .enable_reg = 0x52008, 1931*d1919c37STaniya Das .enable_mask = BIT(8), 1932*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1933*d1919c37STaniya Das .name = "gcc_qupv3_i2c_core_clk", 1934*d1919c37STaniya Das .ops = &clk_branch2_ops, 1935*d1919c37STaniya Das }, 1936*d1919c37STaniya Das }, 1937*d1919c37STaniya Das }; 1938*d1919c37STaniya Das 1939*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s0_clk = { 1940*d1919c37STaniya Das .halt_reg = 0x17004, 1941*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1942*d1919c37STaniya Das .clkr = { 1943*d1919c37STaniya Das .enable_reg = 0x52008, 1944*d1919c37STaniya Das .enable_mask = BIT(10), 1945*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1946*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s0_clk", 1947*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1948*d1919c37STaniya Das &gcc_qupv3_i2c_s0_clk_src.clkr.hw, 1949*d1919c37STaniya Das }, 1950*d1919c37STaniya Das .num_parents = 1, 1951*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1952*d1919c37STaniya Das .ops = &clk_branch2_ops, 1953*d1919c37STaniya Das }, 1954*d1919c37STaniya Das }, 1955*d1919c37STaniya Das }; 1956*d1919c37STaniya Das 1957*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s1_clk = { 1958*d1919c37STaniya Das .halt_reg = 0x17020, 1959*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1960*d1919c37STaniya Das .clkr = { 1961*d1919c37STaniya Das .enable_reg = 0x52008, 1962*d1919c37STaniya Das .enable_mask = BIT(11), 1963*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1964*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s1_clk", 1965*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1966*d1919c37STaniya Das &gcc_qupv3_i2c_s1_clk_src.clkr.hw, 1967*d1919c37STaniya Das }, 1968*d1919c37STaniya Das .num_parents = 1, 1969*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1970*d1919c37STaniya Das .ops = &clk_branch2_ops, 1971*d1919c37STaniya Das }, 1972*d1919c37STaniya Das }, 1973*d1919c37STaniya Das }; 1974*d1919c37STaniya Das 1975*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s2_clk = { 1976*d1919c37STaniya Das .halt_reg = 0x1703c, 1977*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1978*d1919c37STaniya Das .clkr = { 1979*d1919c37STaniya Das .enable_reg = 0x52008, 1980*d1919c37STaniya Das .enable_mask = BIT(12), 1981*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 1982*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s2_clk", 1983*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 1984*d1919c37STaniya Das &gcc_qupv3_i2c_s2_clk_src.clkr.hw, 1985*d1919c37STaniya Das }, 1986*d1919c37STaniya Das .num_parents = 1, 1987*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 1988*d1919c37STaniya Das .ops = &clk_branch2_ops, 1989*d1919c37STaniya Das }, 1990*d1919c37STaniya Das }, 1991*d1919c37STaniya Das }; 1992*d1919c37STaniya Das 1993*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s3_clk = { 1994*d1919c37STaniya Das .halt_reg = 0x17058, 1995*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 1996*d1919c37STaniya Das .clkr = { 1997*d1919c37STaniya Das .enable_reg = 0x52008, 1998*d1919c37STaniya Das .enable_mask = BIT(13), 1999*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2000*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s3_clk", 2001*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2002*d1919c37STaniya Das &gcc_qupv3_i2c_s3_clk_src.clkr.hw, 2003*d1919c37STaniya Das }, 2004*d1919c37STaniya Das .num_parents = 1, 2005*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2006*d1919c37STaniya Das .ops = &clk_branch2_ops, 2007*d1919c37STaniya Das }, 2008*d1919c37STaniya Das }, 2009*d1919c37STaniya Das }; 2010*d1919c37STaniya Das 2011*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s4_clk = { 2012*d1919c37STaniya Das .halt_reg = 0x17074, 2013*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2014*d1919c37STaniya Das .clkr = { 2015*d1919c37STaniya Das .enable_reg = 0x52008, 2016*d1919c37STaniya Das .enable_mask = BIT(14), 2017*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2018*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s4_clk", 2019*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2020*d1919c37STaniya Das &gcc_qupv3_i2c_s4_clk_src.clkr.hw, 2021*d1919c37STaniya Das }, 2022*d1919c37STaniya Das .num_parents = 1, 2023*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2024*d1919c37STaniya Das .ops = &clk_branch2_ops, 2025*d1919c37STaniya Das }, 2026*d1919c37STaniya Das }, 2027*d1919c37STaniya Das }; 2028*d1919c37STaniya Das 2029*d1919c37STaniya Das static struct clk_branch gcc_qupv3_i2c_s_ahb_clk = { 2030*d1919c37STaniya Das .halt_reg = 0x23000, 2031*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2032*d1919c37STaniya Das .hwcg_reg = 0x23000, 2033*d1919c37STaniya Das .hwcg_bit = 1, 2034*d1919c37STaniya Das .clkr = { 2035*d1919c37STaniya Das .enable_reg = 0x52008, 2036*d1919c37STaniya Das .enable_mask = BIT(7), 2037*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2038*d1919c37STaniya Das .name = "gcc_qupv3_i2c_s_ahb_clk", 2039*d1919c37STaniya Das .ops = &clk_branch2_ops, 2040*d1919c37STaniya Das }, 2041*d1919c37STaniya Das }, 2042*d1919c37STaniya Das }; 2043*d1919c37STaniya Das 2044*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = { 2045*d1919c37STaniya Das .halt_reg = 0x2315c, 2046*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2047*d1919c37STaniya Das .clkr = { 2048*d1919c37STaniya Das .enable_reg = 0x52008, 2049*d1919c37STaniya Das .enable_mask = BIT(18), 2050*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2051*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_core_2x_clk", 2052*d1919c37STaniya Das .ops = &clk_branch2_ops, 2053*d1919c37STaniya Das }, 2054*d1919c37STaniya Das }, 2055*d1919c37STaniya Das }; 2056*d1919c37STaniya Das 2057*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_clk = { 2058*d1919c37STaniya Das .halt_reg = 0x23148, 2059*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2060*d1919c37STaniya Das .clkr = { 2061*d1919c37STaniya Das .enable_reg = 0x52008, 2062*d1919c37STaniya Das .enable_mask = BIT(19), 2063*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2064*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_core_clk", 2065*d1919c37STaniya Das .ops = &clk_branch2_ops, 2066*d1919c37STaniya Das }, 2067*d1919c37STaniya Das }, 2068*d1919c37STaniya Das }; 2069*d1919c37STaniya Das 2070*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_qspi_ref_clk = { 2071*d1919c37STaniya Das .halt_reg = 0x188bc, 2072*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2073*d1919c37STaniya Das .clkr = { 2074*d1919c37STaniya Das .enable_reg = 0x52010, 2075*d1919c37STaniya Das .enable_mask = BIT(29), 2076*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2077*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_qspi_ref_clk", 2078*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2079*d1919c37STaniya Das &gcc_qupv3_wrap1_qspi_ref_clk_src.clkr.hw, 2080*d1919c37STaniya Das }, 2081*d1919c37STaniya Das .num_parents = 1, 2082*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2083*d1919c37STaniya Das .ops = &clk_branch2_ops, 2084*d1919c37STaniya Das }, 2085*d1919c37STaniya Das }, 2086*d1919c37STaniya Das }; 2087*d1919c37STaniya Das 2088*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = { 2089*d1919c37STaniya Das .halt_reg = 0x18004, 2090*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2091*d1919c37STaniya Das .clkr = { 2092*d1919c37STaniya Das .enable_reg = 0x52008, 2093*d1919c37STaniya Das .enable_mask = BIT(22), 2094*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2095*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s0_clk", 2096*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2097*d1919c37STaniya Das &gcc_qupv3_wrap1_s0_clk_src.clkr.hw, 2098*d1919c37STaniya Das }, 2099*d1919c37STaniya Das .num_parents = 1, 2100*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2101*d1919c37STaniya Das .ops = &clk_branch2_ops, 2102*d1919c37STaniya Das }, 2103*d1919c37STaniya Das }, 2104*d1919c37STaniya Das }; 2105*d1919c37STaniya Das 2106*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = { 2107*d1919c37STaniya Das .halt_reg = 0x18140, 2108*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2109*d1919c37STaniya Das .clkr = { 2110*d1919c37STaniya Das .enable_reg = 0x52008, 2111*d1919c37STaniya Das .enable_mask = BIT(23), 2112*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2113*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s1_clk", 2114*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2115*d1919c37STaniya Das &gcc_qupv3_wrap1_s1_clk_src.clkr.hw, 2116*d1919c37STaniya Das }, 2117*d1919c37STaniya Das .num_parents = 1, 2118*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2119*d1919c37STaniya Das .ops = &clk_branch2_ops, 2120*d1919c37STaniya Das }, 2121*d1919c37STaniya Das }, 2122*d1919c37STaniya Das }; 2123*d1919c37STaniya Das 2124*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = { 2125*d1919c37STaniya Das .halt_reg = 0x1827c, 2126*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2127*d1919c37STaniya Das .clkr = { 2128*d1919c37STaniya Das .enable_reg = 0x52008, 2129*d1919c37STaniya Das .enable_mask = BIT(24), 2130*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2131*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s2_clk", 2132*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2133*d1919c37STaniya Das &gcc_qupv3_wrap1_s2_clk_src.clkr.hw, 2134*d1919c37STaniya Das }, 2135*d1919c37STaniya Das .num_parents = 1, 2136*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2137*d1919c37STaniya Das .ops = &clk_branch2_ops, 2138*d1919c37STaniya Das }, 2139*d1919c37STaniya Das }, 2140*d1919c37STaniya Das }; 2141*d1919c37STaniya Das 2142*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = { 2143*d1919c37STaniya Das .halt_reg = 0x18290, 2144*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2145*d1919c37STaniya Das .clkr = { 2146*d1919c37STaniya Das .enable_reg = 0x52008, 2147*d1919c37STaniya Das .enable_mask = BIT(25), 2148*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2149*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s3_clk", 2150*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2151*d1919c37STaniya Das &gcc_qupv3_wrap1_s3_clk_src.clkr.hw, 2152*d1919c37STaniya Das }, 2153*d1919c37STaniya Das .num_parents = 1, 2154*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2155*d1919c37STaniya Das .ops = &clk_branch2_ops, 2156*d1919c37STaniya Das }, 2157*d1919c37STaniya Das }, 2158*d1919c37STaniya Das }; 2159*d1919c37STaniya Das 2160*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = { 2161*d1919c37STaniya Das .halt_reg = 0x183cc, 2162*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2163*d1919c37STaniya Das .clkr = { 2164*d1919c37STaniya Das .enable_reg = 0x52008, 2165*d1919c37STaniya Das .enable_mask = BIT(26), 2166*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2167*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s4_clk", 2168*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2169*d1919c37STaniya Das &gcc_qupv3_wrap1_s4_clk_src.clkr.hw, 2170*d1919c37STaniya Das }, 2171*d1919c37STaniya Das .num_parents = 1, 2172*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2173*d1919c37STaniya Das .ops = &clk_branch2_ops, 2174*d1919c37STaniya Das }, 2175*d1919c37STaniya Das }, 2176*d1919c37STaniya Das }; 2177*d1919c37STaniya Das 2178*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = { 2179*d1919c37STaniya Das .halt_reg = 0x18508, 2180*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2181*d1919c37STaniya Das .clkr = { 2182*d1919c37STaniya Das .enable_reg = 0x52008, 2183*d1919c37STaniya Das .enable_mask = BIT(27), 2184*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2185*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s5_clk", 2186*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2187*d1919c37STaniya Das &gcc_qupv3_wrap1_s5_clk_src.clkr.hw, 2188*d1919c37STaniya Das }, 2189*d1919c37STaniya Das .num_parents = 1, 2190*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2191*d1919c37STaniya Das .ops = &clk_branch2_ops, 2192*d1919c37STaniya Das }, 2193*d1919c37STaniya Das }, 2194*d1919c37STaniya Das }; 2195*d1919c37STaniya Das 2196*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s6_clk = { 2197*d1919c37STaniya Das .halt_reg = 0x18644, 2198*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2199*d1919c37STaniya Das .clkr = { 2200*d1919c37STaniya Das .enable_reg = 0x52008, 2201*d1919c37STaniya Das .enable_mask = BIT(28), 2202*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2203*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s6_clk", 2204*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2205*d1919c37STaniya Das &gcc_qupv3_wrap1_s6_clk_src.clkr.hw, 2206*d1919c37STaniya Das }, 2207*d1919c37STaniya Das .num_parents = 1, 2208*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2209*d1919c37STaniya Das .ops = &clk_branch2_ops, 2210*d1919c37STaniya Das }, 2211*d1919c37STaniya Das }, 2212*d1919c37STaniya Das }; 2213*d1919c37STaniya Das 2214*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap1_s7_clk = { 2215*d1919c37STaniya Das .halt_reg = 0x18780, 2216*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2217*d1919c37STaniya Das .clkr = { 2218*d1919c37STaniya Das .enable_reg = 0x52010, 2219*d1919c37STaniya Das .enable_mask = BIT(16), 2220*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2221*d1919c37STaniya Das .name = "gcc_qupv3_wrap1_s7_clk", 2222*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2223*d1919c37STaniya Das &gcc_qupv3_wrap1_s7_clk_src.clkr.hw, 2224*d1919c37STaniya Das }, 2225*d1919c37STaniya Das .num_parents = 1, 2226*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2227*d1919c37STaniya Das .ops = &clk_branch2_ops, 2228*d1919c37STaniya Das }, 2229*d1919c37STaniya Das }, 2230*d1919c37STaniya Das }; 2231*d1919c37STaniya Das 2232*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = { 2233*d1919c37STaniya Das .halt_reg = 0x232b4, 2234*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2235*d1919c37STaniya Das .clkr = { 2236*d1919c37STaniya Das .enable_reg = 0x52010, 2237*d1919c37STaniya Das .enable_mask = BIT(3), 2238*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2239*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_core_2x_clk", 2240*d1919c37STaniya Das .ops = &clk_branch2_ops, 2241*d1919c37STaniya Das }, 2242*d1919c37STaniya Das }, 2243*d1919c37STaniya Das }; 2244*d1919c37STaniya Das 2245*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_core_clk = { 2246*d1919c37STaniya Das .halt_reg = 0x232a0, 2247*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2248*d1919c37STaniya Das .clkr = { 2249*d1919c37STaniya Das .enable_reg = 0x52010, 2250*d1919c37STaniya Das .enable_mask = BIT(0), 2251*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2252*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_core_clk", 2253*d1919c37STaniya Das .ops = &clk_branch2_ops, 2254*d1919c37STaniya Das }, 2255*d1919c37STaniya Das }, 2256*d1919c37STaniya Das }; 2257*d1919c37STaniya Das 2258*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s0_clk = { 2259*d1919c37STaniya Das .halt_reg = 0x1e004, 2260*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2261*d1919c37STaniya Das .clkr = { 2262*d1919c37STaniya Das .enable_reg = 0x52010, 2263*d1919c37STaniya Das .enable_mask = BIT(4), 2264*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2265*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s0_clk", 2266*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2267*d1919c37STaniya Das &gcc_qupv3_wrap2_s0_clk_src.clkr.hw, 2268*d1919c37STaniya Das }, 2269*d1919c37STaniya Das .num_parents = 1, 2270*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2271*d1919c37STaniya Das .ops = &clk_branch2_ops, 2272*d1919c37STaniya Das }, 2273*d1919c37STaniya Das }, 2274*d1919c37STaniya Das }; 2275*d1919c37STaniya Das 2276*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s1_clk = { 2277*d1919c37STaniya Das .halt_reg = 0x1e140, 2278*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2279*d1919c37STaniya Das .clkr = { 2280*d1919c37STaniya Das .enable_reg = 0x52010, 2281*d1919c37STaniya Das .enable_mask = BIT(5), 2282*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2283*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s1_clk", 2284*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2285*d1919c37STaniya Das &gcc_qupv3_wrap2_s1_clk_src.clkr.hw, 2286*d1919c37STaniya Das }, 2287*d1919c37STaniya Das .num_parents = 1, 2288*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2289*d1919c37STaniya Das .ops = &clk_branch2_ops, 2290*d1919c37STaniya Das }, 2291*d1919c37STaniya Das }, 2292*d1919c37STaniya Das }; 2293*d1919c37STaniya Das 2294*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s2_clk = { 2295*d1919c37STaniya Das .halt_reg = 0x1e27c, 2296*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2297*d1919c37STaniya Das .clkr = { 2298*d1919c37STaniya Das .enable_reg = 0x52010, 2299*d1919c37STaniya Das .enable_mask = BIT(6), 2300*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2301*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s2_clk", 2302*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2303*d1919c37STaniya Das &gcc_qupv3_wrap2_s2_clk_src.clkr.hw, 2304*d1919c37STaniya Das }, 2305*d1919c37STaniya Das .num_parents = 1, 2306*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2307*d1919c37STaniya Das .ops = &clk_branch2_ops, 2308*d1919c37STaniya Das }, 2309*d1919c37STaniya Das }, 2310*d1919c37STaniya Das }; 2311*d1919c37STaniya Das 2312*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s3_clk = { 2313*d1919c37STaniya Das .halt_reg = 0x1e3b8, 2314*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2315*d1919c37STaniya Das .clkr = { 2316*d1919c37STaniya Das .enable_reg = 0x52010, 2317*d1919c37STaniya Das .enable_mask = BIT(7), 2318*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2319*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s3_clk", 2320*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2321*d1919c37STaniya Das &gcc_qupv3_wrap2_s3_clk_src.clkr.hw, 2322*d1919c37STaniya Das }, 2323*d1919c37STaniya Das .num_parents = 1, 2324*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2325*d1919c37STaniya Das .ops = &clk_branch2_ops, 2326*d1919c37STaniya Das }, 2327*d1919c37STaniya Das }, 2328*d1919c37STaniya Das }; 2329*d1919c37STaniya Das 2330*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap2_s4_clk = { 2331*d1919c37STaniya Das .halt_reg = 0x1e4f4, 2332*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2333*d1919c37STaniya Das .clkr = { 2334*d1919c37STaniya Das .enable_reg = 0x52010, 2335*d1919c37STaniya Das .enable_mask = BIT(8), 2336*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2337*d1919c37STaniya Das .name = "gcc_qupv3_wrap2_s4_clk", 2338*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2339*d1919c37STaniya Das &gcc_qupv3_wrap2_s4_clk_src.clkr.hw, 2340*d1919c37STaniya Das }, 2341*d1919c37STaniya Das .num_parents = 1, 2342*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2343*d1919c37STaniya Das .ops = &clk_branch2_ops, 2344*d1919c37STaniya Das }, 2345*d1919c37STaniya Das }, 2346*d1919c37STaniya Das }; 2347*d1919c37STaniya Das 2348*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_core_2x_clk = { 2349*d1919c37STaniya Das .halt_reg = 0x2340c, 2350*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2351*d1919c37STaniya Das .clkr = { 2352*d1919c37STaniya Das .enable_reg = 0x52018, 2353*d1919c37STaniya Das .enable_mask = BIT(11), 2354*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2355*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_core_2x_clk", 2356*d1919c37STaniya Das .ops = &clk_branch2_ops, 2357*d1919c37STaniya Das }, 2358*d1919c37STaniya Das }, 2359*d1919c37STaniya Das }; 2360*d1919c37STaniya Das 2361*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_core_clk = { 2362*d1919c37STaniya Das .halt_reg = 0x233f8, 2363*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2364*d1919c37STaniya Das .clkr = { 2365*d1919c37STaniya Das .enable_reg = 0x52018, 2366*d1919c37STaniya Das .enable_mask = BIT(10), 2367*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2368*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_core_clk", 2369*d1919c37STaniya Das .ops = &clk_branch2_ops, 2370*d1919c37STaniya Das }, 2371*d1919c37STaniya Das }, 2372*d1919c37STaniya Das }; 2373*d1919c37STaniya Das 2374*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_ibi_ctrl_1_clk = { 2375*d1919c37STaniya Das .halt_reg = 0xa8774, 2376*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2377*d1919c37STaniya Das .hwcg_reg = 0xa8774, 2378*d1919c37STaniya Das .hwcg_bit = 1, 2379*d1919c37STaniya Das .clkr = { 2380*d1919c37STaniya Das .enable_reg = 0x52018, 2381*d1919c37STaniya Das .enable_mask = BIT(20), 2382*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2383*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_ibi_ctrl_1_clk", 2384*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2385*d1919c37STaniya Das &gcc_qupv3_wrap3_ibi_ctrl_0_clk_src.clkr.hw, 2386*d1919c37STaniya Das }, 2387*d1919c37STaniya Das .num_parents = 1, 2388*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2389*d1919c37STaniya Das .ops = &clk_branch2_ops, 2390*d1919c37STaniya Das }, 2391*d1919c37STaniya Das }, 2392*d1919c37STaniya Das }; 2393*d1919c37STaniya Das 2394*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_ibi_ctrl_2_clk = { 2395*d1919c37STaniya Das .halt_reg = 0xa8778, 2396*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2397*d1919c37STaniya Das .hwcg_reg = 0xa8778, 2398*d1919c37STaniya Das .hwcg_bit = 1, 2399*d1919c37STaniya Das .clkr = { 2400*d1919c37STaniya Das .enable_reg = 0x52018, 2401*d1919c37STaniya Das .enable_mask = BIT(21), 2402*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2403*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_ibi_ctrl_2_clk", 2404*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2405*d1919c37STaniya Das &gcc_qupv3_wrap3_ibi_ctrl_0_clk_src.clkr.hw, 2406*d1919c37STaniya Das }, 2407*d1919c37STaniya Das .num_parents = 1, 2408*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2409*d1919c37STaniya Das .ops = &clk_branch2_ops, 2410*d1919c37STaniya Das }, 2411*d1919c37STaniya Das }, 2412*d1919c37STaniya Das }; 2413*d1919c37STaniya Das 2414*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s0_clk = { 2415*d1919c37STaniya Das .halt_reg = 0xa8004, 2416*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2417*d1919c37STaniya Das .clkr = { 2418*d1919c37STaniya Das .enable_reg = 0x52018, 2419*d1919c37STaniya Das .enable_mask = BIT(12), 2420*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2421*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s0_clk", 2422*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2423*d1919c37STaniya Das &gcc_qupv3_wrap3_s0_clk_src.clkr.hw, 2424*d1919c37STaniya Das }, 2425*d1919c37STaniya Das .num_parents = 1, 2426*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2427*d1919c37STaniya Das .ops = &clk_branch2_ops, 2428*d1919c37STaniya Das }, 2429*d1919c37STaniya Das }, 2430*d1919c37STaniya Das }; 2431*d1919c37STaniya Das 2432*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s1_clk = { 2433*d1919c37STaniya Das .halt_reg = 0xa8140, 2434*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2435*d1919c37STaniya Das .clkr = { 2436*d1919c37STaniya Das .enable_reg = 0x52018, 2437*d1919c37STaniya Das .enable_mask = BIT(13), 2438*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2439*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s1_clk", 2440*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2441*d1919c37STaniya Das &gcc_qupv3_wrap3_s1_clk_src.clkr.hw, 2442*d1919c37STaniya Das }, 2443*d1919c37STaniya Das .num_parents = 1, 2444*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2445*d1919c37STaniya Das .ops = &clk_branch2_ops, 2446*d1919c37STaniya Das }, 2447*d1919c37STaniya Das }, 2448*d1919c37STaniya Das }; 2449*d1919c37STaniya Das 2450*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s2_clk = { 2451*d1919c37STaniya Das .halt_reg = 0xa827c, 2452*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2453*d1919c37STaniya Das .clkr = { 2454*d1919c37STaniya Das .enable_reg = 0x52018, 2455*d1919c37STaniya Das .enable_mask = BIT(14), 2456*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2457*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s2_clk", 2458*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2459*d1919c37STaniya Das &gcc_qupv3_wrap3_s2_clk_src.clkr.hw, 2460*d1919c37STaniya Das }, 2461*d1919c37STaniya Das .num_parents = 1, 2462*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2463*d1919c37STaniya Das .ops = &clk_branch2_ops, 2464*d1919c37STaniya Das }, 2465*d1919c37STaniya Das }, 2466*d1919c37STaniya Das }; 2467*d1919c37STaniya Das 2468*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s3_clk = { 2469*d1919c37STaniya Das .halt_reg = 0xa83b8, 2470*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2471*d1919c37STaniya Das .clkr = { 2472*d1919c37STaniya Das .enable_reg = 0x52018, 2473*d1919c37STaniya Das .enable_mask = BIT(15), 2474*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2475*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s3_clk", 2476*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2477*d1919c37STaniya Das &gcc_qupv3_wrap3_s3_clk_src.clkr.hw, 2478*d1919c37STaniya Das }, 2479*d1919c37STaniya Das .num_parents = 1, 2480*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2481*d1919c37STaniya Das .ops = &clk_branch2_ops, 2482*d1919c37STaniya Das }, 2483*d1919c37STaniya Das }, 2484*d1919c37STaniya Das }; 2485*d1919c37STaniya Das 2486*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s4_clk = { 2487*d1919c37STaniya Das .halt_reg = 0xa84f4, 2488*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2489*d1919c37STaniya Das .clkr = { 2490*d1919c37STaniya Das .enable_reg = 0x52018, 2491*d1919c37STaniya Das .enable_mask = BIT(16), 2492*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2493*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s4_clk", 2494*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2495*d1919c37STaniya Das &gcc_qupv3_wrap3_s4_clk_src.clkr.hw, 2496*d1919c37STaniya Das }, 2497*d1919c37STaniya Das .num_parents = 1, 2498*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2499*d1919c37STaniya Das .ops = &clk_branch2_ops, 2500*d1919c37STaniya Das }, 2501*d1919c37STaniya Das }, 2502*d1919c37STaniya Das }; 2503*d1919c37STaniya Das 2504*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap3_s5_clk = { 2505*d1919c37STaniya Das .halt_reg = 0xa8630, 2506*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2507*d1919c37STaniya Das .clkr = { 2508*d1919c37STaniya Das .enable_reg = 0x52018, 2509*d1919c37STaniya Das .enable_mask = BIT(17), 2510*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2511*d1919c37STaniya Das .name = "gcc_qupv3_wrap3_s5_clk", 2512*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2513*d1919c37STaniya Das &gcc_qupv3_wrap3_s5_clk_src.clkr.hw, 2514*d1919c37STaniya Das }, 2515*d1919c37STaniya Das .num_parents = 1, 2516*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2517*d1919c37STaniya Das .ops = &clk_branch2_ops, 2518*d1919c37STaniya Das }, 2519*d1919c37STaniya Das }, 2520*d1919c37STaniya Das }; 2521*d1919c37STaniya Das 2522*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_core_2x_clk = { 2523*d1919c37STaniya Das .halt_reg = 0x23564, 2524*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2525*d1919c37STaniya Das .clkr = { 2526*d1919c37STaniya Das .enable_reg = 0x52018, 2527*d1919c37STaniya Das .enable_mask = BIT(25), 2528*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2529*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_core_2x_clk", 2530*d1919c37STaniya Das .ops = &clk_branch2_ops, 2531*d1919c37STaniya Das }, 2532*d1919c37STaniya Das }, 2533*d1919c37STaniya Das }; 2534*d1919c37STaniya Das 2535*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_core_clk = { 2536*d1919c37STaniya Das .halt_reg = 0x23550, 2537*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2538*d1919c37STaniya Das .clkr = { 2539*d1919c37STaniya Das .enable_reg = 0x52018, 2540*d1919c37STaniya Das .enable_mask = BIT(24), 2541*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2542*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_core_clk", 2543*d1919c37STaniya Das .ops = &clk_branch2_ops, 2544*d1919c37STaniya Das }, 2545*d1919c37STaniya Das }, 2546*d1919c37STaniya Das }; 2547*d1919c37STaniya Das 2548*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s0_clk = { 2549*d1919c37STaniya Das .halt_reg = 0xa9004, 2550*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2551*d1919c37STaniya Das .clkr = { 2552*d1919c37STaniya Das .enable_reg = 0x52018, 2553*d1919c37STaniya Das .enable_mask = BIT(26), 2554*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2555*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s0_clk", 2556*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2557*d1919c37STaniya Das &gcc_qupv3_wrap4_s0_clk_src.clkr.hw, 2558*d1919c37STaniya Das }, 2559*d1919c37STaniya Das .num_parents = 1, 2560*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2561*d1919c37STaniya Das .ops = &clk_branch2_ops, 2562*d1919c37STaniya Das }, 2563*d1919c37STaniya Das }, 2564*d1919c37STaniya Das }; 2565*d1919c37STaniya Das 2566*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s1_clk = { 2567*d1919c37STaniya Das .halt_reg = 0xa9140, 2568*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2569*d1919c37STaniya Das .clkr = { 2570*d1919c37STaniya Das .enable_reg = 0x52018, 2571*d1919c37STaniya Das .enable_mask = BIT(27), 2572*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2573*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s1_clk", 2574*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2575*d1919c37STaniya Das &gcc_qupv3_wrap4_s1_clk_src.clkr.hw, 2576*d1919c37STaniya Das }, 2577*d1919c37STaniya Das .num_parents = 1, 2578*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2579*d1919c37STaniya Das .ops = &clk_branch2_ops, 2580*d1919c37STaniya Das }, 2581*d1919c37STaniya Das }, 2582*d1919c37STaniya Das }; 2583*d1919c37STaniya Das 2584*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s2_clk = { 2585*d1919c37STaniya Das .halt_reg = 0xa927c, 2586*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2587*d1919c37STaniya Das .clkr = { 2588*d1919c37STaniya Das .enable_reg = 0x52018, 2589*d1919c37STaniya Das .enable_mask = BIT(28), 2590*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2591*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s2_clk", 2592*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2593*d1919c37STaniya Das &gcc_qupv3_wrap4_s2_clk_src.clkr.hw, 2594*d1919c37STaniya Das }, 2595*d1919c37STaniya Das .num_parents = 1, 2596*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2597*d1919c37STaniya Das .ops = &clk_branch2_ops, 2598*d1919c37STaniya Das }, 2599*d1919c37STaniya Das }, 2600*d1919c37STaniya Das }; 2601*d1919c37STaniya Das 2602*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s3_clk = { 2603*d1919c37STaniya Das .halt_reg = 0xa93b8, 2604*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2605*d1919c37STaniya Das .clkr = { 2606*d1919c37STaniya Das .enable_reg = 0x52018, 2607*d1919c37STaniya Das .enable_mask = BIT(29), 2608*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2609*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s3_clk", 2610*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2611*d1919c37STaniya Das &gcc_qupv3_wrap4_s3_clk_src.clkr.hw, 2612*d1919c37STaniya Das }, 2613*d1919c37STaniya Das .num_parents = 1, 2614*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2615*d1919c37STaniya Das .ops = &clk_branch2_ops, 2616*d1919c37STaniya Das }, 2617*d1919c37STaniya Das }, 2618*d1919c37STaniya Das }; 2619*d1919c37STaniya Das 2620*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap4_s4_clk = { 2621*d1919c37STaniya Das .halt_reg = 0xa94f4, 2622*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2623*d1919c37STaniya Das .clkr = { 2624*d1919c37STaniya Das .enable_reg = 0x52018, 2625*d1919c37STaniya Das .enable_mask = BIT(30), 2626*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2627*d1919c37STaniya Das .name = "gcc_qupv3_wrap4_s4_clk", 2628*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2629*d1919c37STaniya Das &gcc_qupv3_wrap4_s4_clk_src.clkr.hw, 2630*d1919c37STaniya Das }, 2631*d1919c37STaniya Das .num_parents = 1, 2632*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2633*d1919c37STaniya Das .ops = &clk_branch2_ops, 2634*d1919c37STaniya Das }, 2635*d1919c37STaniya Das }, 2636*d1919c37STaniya Das }; 2637*d1919c37STaniya Das 2638*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_axi_clk = { 2639*d1919c37STaniya Das .halt_reg = 0x23140, 2640*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2641*d1919c37STaniya Das .hwcg_reg = 0x23140, 2642*d1919c37STaniya Das .hwcg_bit = 1, 2643*d1919c37STaniya Das .clkr = { 2644*d1919c37STaniya Das .enable_reg = 0x52008, 2645*d1919c37STaniya Das .enable_mask = BIT(20), 2646*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2647*d1919c37STaniya Das .name = "gcc_qupv3_wrap_1_m_axi_clk", 2648*d1919c37STaniya Das .ops = &clk_branch2_ops, 2649*d1919c37STaniya Das }, 2650*d1919c37STaniya Das }, 2651*d1919c37STaniya Das }; 2652*d1919c37STaniya Das 2653*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = { 2654*d1919c37STaniya Das .halt_reg = 0x23144, 2655*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2656*d1919c37STaniya Das .hwcg_reg = 0x23144, 2657*d1919c37STaniya Das .hwcg_bit = 1, 2658*d1919c37STaniya Das .clkr = { 2659*d1919c37STaniya Das .enable_reg = 0x52008, 2660*d1919c37STaniya Das .enable_mask = BIT(21), 2661*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2662*d1919c37STaniya Das .name = "gcc_qupv3_wrap_1_s_ahb_clk", 2663*d1919c37STaniya Das .ops = &clk_branch2_ops, 2664*d1919c37STaniya Das }, 2665*d1919c37STaniya Das }, 2666*d1919c37STaniya Das }; 2667*d1919c37STaniya Das 2668*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = { 2669*d1919c37STaniya Das .halt_reg = 0x23298, 2670*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2671*d1919c37STaniya Das .hwcg_reg = 0x23298, 2672*d1919c37STaniya Das .hwcg_bit = 1, 2673*d1919c37STaniya Das .clkr = { 2674*d1919c37STaniya Das .enable_reg = 0x52010, 2675*d1919c37STaniya Das .enable_mask = BIT(2), 2676*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2677*d1919c37STaniya Das .name = "gcc_qupv3_wrap_2_m_ahb_clk", 2678*d1919c37STaniya Das .ops = &clk_branch2_ops, 2679*d1919c37STaniya Das }, 2680*d1919c37STaniya Das }, 2681*d1919c37STaniya Das }; 2682*d1919c37STaniya Das 2683*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = { 2684*d1919c37STaniya Das .halt_reg = 0x2329c, 2685*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2686*d1919c37STaniya Das .hwcg_reg = 0x2329c, 2687*d1919c37STaniya Das .hwcg_bit = 1, 2688*d1919c37STaniya Das .clkr = { 2689*d1919c37STaniya Das .enable_reg = 0x52010, 2690*d1919c37STaniya Das .enable_mask = BIT(1), 2691*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2692*d1919c37STaniya Das .name = "gcc_qupv3_wrap_2_s_ahb_clk", 2693*d1919c37STaniya Das .ops = &clk_branch2_ops, 2694*d1919c37STaniya Das }, 2695*d1919c37STaniya Das }, 2696*d1919c37STaniya Das }; 2697*d1919c37STaniya Das 2698*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_3_ibi_1_ahb_clk = { 2699*d1919c37STaniya Das .halt_reg = 0xa876c, 2700*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2701*d1919c37STaniya Das .hwcg_reg = 0xa876c, 2702*d1919c37STaniya Das .hwcg_bit = 1, 2703*d1919c37STaniya Das .clkr = { 2704*d1919c37STaniya Das .enable_reg = 0x52018, 2705*d1919c37STaniya Das .enable_mask = BIT(18), 2706*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2707*d1919c37STaniya Das .name = "gcc_qupv3_wrap_3_ibi_1_ahb_clk", 2708*d1919c37STaniya Das .ops = &clk_branch2_ops, 2709*d1919c37STaniya Das }, 2710*d1919c37STaniya Das }, 2711*d1919c37STaniya Das }; 2712*d1919c37STaniya Das 2713*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_3_ibi_2_ahb_clk = { 2714*d1919c37STaniya Das .halt_reg = 0xa8770, 2715*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2716*d1919c37STaniya Das .hwcg_reg = 0xa8770, 2717*d1919c37STaniya Das .hwcg_bit = 1, 2718*d1919c37STaniya Das .clkr = { 2719*d1919c37STaniya Das .enable_reg = 0x52018, 2720*d1919c37STaniya Das .enable_mask = BIT(19), 2721*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2722*d1919c37STaniya Das .name = "gcc_qupv3_wrap_3_ibi_2_ahb_clk", 2723*d1919c37STaniya Das .ops = &clk_branch2_ops, 2724*d1919c37STaniya Das }, 2725*d1919c37STaniya Das }, 2726*d1919c37STaniya Das }; 2727*d1919c37STaniya Das 2728*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_3_m_ahb_clk = { 2729*d1919c37STaniya Das .halt_reg = 0x233f0, 2730*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2731*d1919c37STaniya Das .hwcg_reg = 0x233f0, 2732*d1919c37STaniya Das .hwcg_bit = 1, 2733*d1919c37STaniya Das .clkr = { 2734*d1919c37STaniya Das .enable_reg = 0x52018, 2735*d1919c37STaniya Das .enable_mask = BIT(8), 2736*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2737*d1919c37STaniya Das .name = "gcc_qupv3_wrap_3_m_ahb_clk", 2738*d1919c37STaniya Das .ops = &clk_branch2_ops, 2739*d1919c37STaniya Das }, 2740*d1919c37STaniya Das }, 2741*d1919c37STaniya Das }; 2742*d1919c37STaniya Das 2743*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_3_s_ahb_clk = { 2744*d1919c37STaniya Das .halt_reg = 0x233f4, 2745*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2746*d1919c37STaniya Das .hwcg_reg = 0x233f4, 2747*d1919c37STaniya Das .hwcg_bit = 1, 2748*d1919c37STaniya Das .clkr = { 2749*d1919c37STaniya Das .enable_reg = 0x52018, 2750*d1919c37STaniya Das .enable_mask = BIT(9), 2751*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2752*d1919c37STaniya Das .name = "gcc_qupv3_wrap_3_s_ahb_clk", 2753*d1919c37STaniya Das .ops = &clk_branch2_ops, 2754*d1919c37STaniya Das }, 2755*d1919c37STaniya Das }, 2756*d1919c37STaniya Das }; 2757*d1919c37STaniya Das 2758*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_4_m_ahb_clk = { 2759*d1919c37STaniya Das .halt_reg = 0x23548, 2760*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2761*d1919c37STaniya Das .hwcg_reg = 0x23548, 2762*d1919c37STaniya Das .hwcg_bit = 1, 2763*d1919c37STaniya Das .clkr = { 2764*d1919c37STaniya Das .enable_reg = 0x52018, 2765*d1919c37STaniya Das .enable_mask = BIT(22), 2766*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2767*d1919c37STaniya Das .name = "gcc_qupv3_wrap_4_m_ahb_clk", 2768*d1919c37STaniya Das .ops = &clk_branch2_ops, 2769*d1919c37STaniya Das }, 2770*d1919c37STaniya Das }, 2771*d1919c37STaniya Das }; 2772*d1919c37STaniya Das 2773*d1919c37STaniya Das static struct clk_branch gcc_qupv3_wrap_4_s_ahb_clk = { 2774*d1919c37STaniya Das .halt_reg = 0x2354c, 2775*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2776*d1919c37STaniya Das .hwcg_reg = 0x2354c, 2777*d1919c37STaniya Das .hwcg_bit = 1, 2778*d1919c37STaniya Das .clkr = { 2779*d1919c37STaniya Das .enable_reg = 0x52018, 2780*d1919c37STaniya Das .enable_mask = BIT(23), 2781*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2782*d1919c37STaniya Das .name = "gcc_qupv3_wrap_4_s_ahb_clk", 2783*d1919c37STaniya Das .ops = &clk_branch2_ops, 2784*d1919c37STaniya Das }, 2785*d1919c37STaniya Das }, 2786*d1919c37STaniya Das }; 2787*d1919c37STaniya Das 2788*d1919c37STaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = { 2789*d1919c37STaniya Das .halt_reg = 0x14014, 2790*d1919c37STaniya Das .halt_check = BRANCH_HALT, 2791*d1919c37STaniya Das .clkr = { 2792*d1919c37STaniya Das .enable_reg = 0x14014, 2793*d1919c37STaniya Das .enable_mask = BIT(0), 2794*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2795*d1919c37STaniya Das .name = "gcc_sdcc2_ahb_clk", 2796*d1919c37STaniya Das .ops = &clk_branch2_ops, 2797*d1919c37STaniya Das }, 2798*d1919c37STaniya Das }, 2799*d1919c37STaniya Das }; 2800*d1919c37STaniya Das 2801*d1919c37STaniya Das static struct clk_branch gcc_sdcc2_apps_clk = { 2802*d1919c37STaniya Das .halt_reg = 0x14004, 2803*d1919c37STaniya Das .halt_check = BRANCH_HALT, 2804*d1919c37STaniya Das .clkr = { 2805*d1919c37STaniya Das .enable_reg = 0x14004, 2806*d1919c37STaniya Das .enable_mask = BIT(0), 2807*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2808*d1919c37STaniya Das .name = "gcc_sdcc2_apps_clk", 2809*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2810*d1919c37STaniya Das &gcc_sdcc2_apps_clk_src.clkr.hw, 2811*d1919c37STaniya Das }, 2812*d1919c37STaniya Das .num_parents = 1, 2813*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2814*d1919c37STaniya Das .ops = &clk_branch2_ops, 2815*d1919c37STaniya Das }, 2816*d1919c37STaniya Das }, 2817*d1919c37STaniya Das }; 2818*d1919c37STaniya Das 2819*d1919c37STaniya Das static struct clk_branch gcc_sdcc4_ahb_clk = { 2820*d1919c37STaniya Das .halt_reg = 0x16014, 2821*d1919c37STaniya Das .halt_check = BRANCH_HALT, 2822*d1919c37STaniya Das .clkr = { 2823*d1919c37STaniya Das .enable_reg = 0x16014, 2824*d1919c37STaniya Das .enable_mask = BIT(0), 2825*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2826*d1919c37STaniya Das .name = "gcc_sdcc4_ahb_clk", 2827*d1919c37STaniya Das .ops = &clk_branch2_ops, 2828*d1919c37STaniya Das }, 2829*d1919c37STaniya Das }, 2830*d1919c37STaniya Das }; 2831*d1919c37STaniya Das 2832*d1919c37STaniya Das static struct clk_branch gcc_sdcc4_apps_clk = { 2833*d1919c37STaniya Das .halt_reg = 0x16004, 2834*d1919c37STaniya Das .halt_check = BRANCH_HALT, 2835*d1919c37STaniya Das .clkr = { 2836*d1919c37STaniya Das .enable_reg = 0x16004, 2837*d1919c37STaniya Das .enable_mask = BIT(0), 2838*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2839*d1919c37STaniya Das .name = "gcc_sdcc4_apps_clk", 2840*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2841*d1919c37STaniya Das &gcc_sdcc4_apps_clk_src.clkr.hw, 2842*d1919c37STaniya Das }, 2843*d1919c37STaniya Das .num_parents = 1, 2844*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2845*d1919c37STaniya Das .ops = &clk_branch2_ops, 2846*d1919c37STaniya Das }, 2847*d1919c37STaniya Das }, 2848*d1919c37STaniya Das }; 2849*d1919c37STaniya Das 2850*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = { 2851*d1919c37STaniya Das .halt_reg = 0x77028, 2852*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2853*d1919c37STaniya Das .hwcg_reg = 0x77028, 2854*d1919c37STaniya Das .hwcg_bit = 1, 2855*d1919c37STaniya Das .clkr = { 2856*d1919c37STaniya Das .enable_reg = 0x77028, 2857*d1919c37STaniya Das .enable_mask = BIT(0), 2858*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2859*d1919c37STaniya Das .name = "gcc_ufs_phy_ahb_clk", 2860*d1919c37STaniya Das .ops = &clk_branch2_ops, 2861*d1919c37STaniya Das }, 2862*d1919c37STaniya Das }, 2863*d1919c37STaniya Das }; 2864*d1919c37STaniya Das 2865*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = { 2866*d1919c37STaniya Das .halt_reg = 0x77018, 2867*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2868*d1919c37STaniya Das .hwcg_reg = 0x77018, 2869*d1919c37STaniya Das .hwcg_bit = 1, 2870*d1919c37STaniya Das .clkr = { 2871*d1919c37STaniya Das .enable_reg = 0x77018, 2872*d1919c37STaniya Das .enable_mask = BIT(0), 2873*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2874*d1919c37STaniya Das .name = "gcc_ufs_phy_axi_clk", 2875*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2876*d1919c37STaniya Das &gcc_ufs_phy_axi_clk_src.clkr.hw, 2877*d1919c37STaniya Das }, 2878*d1919c37STaniya Das .num_parents = 1, 2879*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2880*d1919c37STaniya Das .ops = &clk_branch2_ops, 2881*d1919c37STaniya Das }, 2882*d1919c37STaniya Das }, 2883*d1919c37STaniya Das }; 2884*d1919c37STaniya Das 2885*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = { 2886*d1919c37STaniya Das .halt_reg = 0x7707c, 2887*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2888*d1919c37STaniya Das .hwcg_reg = 0x7707c, 2889*d1919c37STaniya Das .hwcg_bit = 1, 2890*d1919c37STaniya Das .clkr = { 2891*d1919c37STaniya Das .enable_reg = 0x7707c, 2892*d1919c37STaniya Das .enable_mask = BIT(0), 2893*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2894*d1919c37STaniya Das .name = "gcc_ufs_phy_ice_core_clk", 2895*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2896*d1919c37STaniya Das &gcc_ufs_phy_ice_core_clk_src.clkr.hw, 2897*d1919c37STaniya Das }, 2898*d1919c37STaniya Das .num_parents = 1, 2899*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2900*d1919c37STaniya Das .ops = &clk_branch2_ops, 2901*d1919c37STaniya Das }, 2902*d1919c37STaniya Das }, 2903*d1919c37STaniya Das }; 2904*d1919c37STaniya Das 2905*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = { 2906*d1919c37STaniya Das .halt_reg = 0x770bc, 2907*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2908*d1919c37STaniya Das .hwcg_reg = 0x770bc, 2909*d1919c37STaniya Das .hwcg_bit = 1, 2910*d1919c37STaniya Das .clkr = { 2911*d1919c37STaniya Das .enable_reg = 0x770bc, 2912*d1919c37STaniya Das .enable_mask = BIT(0), 2913*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2914*d1919c37STaniya Das .name = "gcc_ufs_phy_phy_aux_clk", 2915*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2916*d1919c37STaniya Das &gcc_ufs_phy_phy_aux_clk_src.clkr.hw, 2917*d1919c37STaniya Das }, 2918*d1919c37STaniya Das .num_parents = 1, 2919*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2920*d1919c37STaniya Das .ops = &clk_branch2_ops, 2921*d1919c37STaniya Das }, 2922*d1919c37STaniya Das }, 2923*d1919c37STaniya Das }; 2924*d1919c37STaniya Das 2925*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = { 2926*d1919c37STaniya Das .halt_reg = 0x77030, 2927*d1919c37STaniya Das .halt_check = BRANCH_HALT_DELAY, 2928*d1919c37STaniya Das .clkr = { 2929*d1919c37STaniya Das .enable_reg = 0x77030, 2930*d1919c37STaniya Das .enable_mask = BIT(0), 2931*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2932*d1919c37STaniya Das .name = "gcc_ufs_phy_rx_symbol_0_clk", 2933*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2934*d1919c37STaniya Das &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw, 2935*d1919c37STaniya Das }, 2936*d1919c37STaniya Das .num_parents = 1, 2937*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2938*d1919c37STaniya Das .ops = &clk_branch2_ops, 2939*d1919c37STaniya Das }, 2940*d1919c37STaniya Das }, 2941*d1919c37STaniya Das }; 2942*d1919c37STaniya Das 2943*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = { 2944*d1919c37STaniya Das .halt_reg = 0x770d8, 2945*d1919c37STaniya Das .halt_check = BRANCH_HALT_DELAY, 2946*d1919c37STaniya Das .clkr = { 2947*d1919c37STaniya Das .enable_reg = 0x770d8, 2948*d1919c37STaniya Das .enable_mask = BIT(0), 2949*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2950*d1919c37STaniya Das .name = "gcc_ufs_phy_rx_symbol_1_clk", 2951*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2952*d1919c37STaniya Das &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw, 2953*d1919c37STaniya Das }, 2954*d1919c37STaniya Das .num_parents = 1, 2955*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2956*d1919c37STaniya Das .ops = &clk_branch2_ops, 2957*d1919c37STaniya Das }, 2958*d1919c37STaniya Das }, 2959*d1919c37STaniya Das }; 2960*d1919c37STaniya Das 2961*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = { 2962*d1919c37STaniya Das .halt_reg = 0x7702c, 2963*d1919c37STaniya Das .halt_check = BRANCH_HALT_DELAY, 2964*d1919c37STaniya Das .clkr = { 2965*d1919c37STaniya Das .enable_reg = 0x7702c, 2966*d1919c37STaniya Das .enable_mask = BIT(0), 2967*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2968*d1919c37STaniya Das .name = "gcc_ufs_phy_tx_symbol_0_clk", 2969*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2970*d1919c37STaniya Das &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw, 2971*d1919c37STaniya Das }, 2972*d1919c37STaniya Das .num_parents = 1, 2973*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2974*d1919c37STaniya Das .ops = &clk_branch2_ops, 2975*d1919c37STaniya Das }, 2976*d1919c37STaniya Das }, 2977*d1919c37STaniya Das }; 2978*d1919c37STaniya Das 2979*d1919c37STaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = { 2980*d1919c37STaniya Das .halt_reg = 0x7706c, 2981*d1919c37STaniya Das .halt_check = BRANCH_HALT_VOTED, 2982*d1919c37STaniya Das .hwcg_reg = 0x7706c, 2983*d1919c37STaniya Das .hwcg_bit = 1, 2984*d1919c37STaniya Das .clkr = { 2985*d1919c37STaniya Das .enable_reg = 0x7706c, 2986*d1919c37STaniya Das .enable_mask = BIT(0), 2987*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 2988*d1919c37STaniya Das .name = "gcc_ufs_phy_unipro_core_clk", 2989*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 2990*d1919c37STaniya Das &gcc_ufs_phy_unipro_core_clk_src.clkr.hw, 2991*d1919c37STaniya Das }, 2992*d1919c37STaniya Das .num_parents = 1, 2993*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 2994*d1919c37STaniya Das .ops = &clk_branch2_ops, 2995*d1919c37STaniya Das }, 2996*d1919c37STaniya Das }, 2997*d1919c37STaniya Das }; 2998*d1919c37STaniya Das 2999*d1919c37STaniya Das static struct clk_branch gcc_usb30_prim_master_clk = { 3000*d1919c37STaniya Das .halt_reg = 0x39018, 3001*d1919c37STaniya Das .halt_check = BRANCH_HALT, 3002*d1919c37STaniya Das .clkr = { 3003*d1919c37STaniya Das .enable_reg = 0x39018, 3004*d1919c37STaniya Das .enable_mask = BIT(0), 3005*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 3006*d1919c37STaniya Das .name = "gcc_usb30_prim_master_clk", 3007*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 3008*d1919c37STaniya Das &gcc_usb30_prim_master_clk_src.clkr.hw, 3009*d1919c37STaniya Das }, 3010*d1919c37STaniya Das .num_parents = 1, 3011*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 3012*d1919c37STaniya Das .ops = &clk_branch2_ops, 3013*d1919c37STaniya Das }, 3014*d1919c37STaniya Das }, 3015*d1919c37STaniya Das }; 3016*d1919c37STaniya Das 3017*d1919c37STaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = { 3018*d1919c37STaniya Das .halt_reg = 0x3902c, 3019*d1919c37STaniya Das .halt_check = BRANCH_HALT, 3020*d1919c37STaniya Das .clkr = { 3021*d1919c37STaniya Das .enable_reg = 0x3902c, 3022*d1919c37STaniya Das .enable_mask = BIT(0), 3023*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 3024*d1919c37STaniya Das .name = "gcc_usb30_prim_mock_utmi_clk", 3025*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 3026*d1919c37STaniya Das &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw, 3027*d1919c37STaniya Das }, 3028*d1919c37STaniya Das .num_parents = 1, 3029*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 3030*d1919c37STaniya Das .ops = &clk_branch2_ops, 3031*d1919c37STaniya Das }, 3032*d1919c37STaniya Das }, 3033*d1919c37STaniya Das }; 3034*d1919c37STaniya Das 3035*d1919c37STaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = { 3036*d1919c37STaniya Das .halt_reg = 0x39028, 3037*d1919c37STaniya Das .halt_check = BRANCH_HALT, 3038*d1919c37STaniya Das .clkr = { 3039*d1919c37STaniya Das .enable_reg = 0x39028, 3040*d1919c37STaniya Das .enable_mask = BIT(0), 3041*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 3042*d1919c37STaniya Das .name = "gcc_usb30_prim_sleep_clk", 3043*d1919c37STaniya Das .ops = &clk_branch2_ops, 3044*d1919c37STaniya Das }, 3045*d1919c37STaniya Das }, 3046*d1919c37STaniya Das }; 3047*d1919c37STaniya Das 3048*d1919c37STaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = { 3049*d1919c37STaniya Das .halt_reg = 0x39068, 3050*d1919c37STaniya Das .halt_check = BRANCH_HALT, 3051*d1919c37STaniya Das .clkr = { 3052*d1919c37STaniya Das .enable_reg = 0x39068, 3053*d1919c37STaniya Das .enable_mask = BIT(0), 3054*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 3055*d1919c37STaniya Das .name = "gcc_usb3_prim_phy_aux_clk", 3056*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 3057*d1919c37STaniya Das &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 3058*d1919c37STaniya Das }, 3059*d1919c37STaniya Das .num_parents = 1, 3060*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 3061*d1919c37STaniya Das .ops = &clk_branch2_ops, 3062*d1919c37STaniya Das }, 3063*d1919c37STaniya Das }, 3064*d1919c37STaniya Das }; 3065*d1919c37STaniya Das 3066*d1919c37STaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = { 3067*d1919c37STaniya Das .halt_reg = 0x3906c, 3068*d1919c37STaniya Das .halt_check = BRANCH_HALT, 3069*d1919c37STaniya Das .clkr = { 3070*d1919c37STaniya Das .enable_reg = 0x3906c, 3071*d1919c37STaniya Das .enable_mask = BIT(0), 3072*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 3073*d1919c37STaniya Das .name = "gcc_usb3_prim_phy_com_aux_clk", 3074*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 3075*d1919c37STaniya Das &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 3076*d1919c37STaniya Das }, 3077*d1919c37STaniya Das .num_parents = 1, 3078*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 3079*d1919c37STaniya Das .ops = &clk_branch2_ops, 3080*d1919c37STaniya Das }, 3081*d1919c37STaniya Das }, 3082*d1919c37STaniya Das }; 3083*d1919c37STaniya Das 3084*d1919c37STaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = { 3085*d1919c37STaniya Das .halt_reg = 0x39070, 3086*d1919c37STaniya Das .halt_check = BRANCH_HALT_DELAY, 3087*d1919c37STaniya Das .hwcg_reg = 0x39070, 3088*d1919c37STaniya Das .hwcg_bit = 1, 3089*d1919c37STaniya Das .clkr = { 3090*d1919c37STaniya Das .enable_reg = 0x39070, 3091*d1919c37STaniya Das .enable_mask = BIT(0), 3092*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 3093*d1919c37STaniya Das .name = "gcc_usb3_prim_phy_pipe_clk", 3094*d1919c37STaniya Das .parent_hws = (const struct clk_hw*[]) { 3095*d1919c37STaniya Das &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw, 3096*d1919c37STaniya Das }, 3097*d1919c37STaniya Das .num_parents = 1, 3098*d1919c37STaniya Das .flags = CLK_SET_RATE_PARENT, 3099*d1919c37STaniya Das .ops = &clk_branch2_ops, 3100*d1919c37STaniya Das }, 3101*d1919c37STaniya Das }, 3102*d1919c37STaniya Das }; 3103*d1919c37STaniya Das 3104*d1919c37STaniya Das static struct clk_branch gcc_video_axi0_clk = { 3105*d1919c37STaniya Das .halt_reg = 0x32018, 3106*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 3107*d1919c37STaniya Das .hwcg_reg = 0x32018, 3108*d1919c37STaniya Das .hwcg_bit = 1, 3109*d1919c37STaniya Das .clkr = { 3110*d1919c37STaniya Das .enable_reg = 0x32018, 3111*d1919c37STaniya Das .enable_mask = BIT(0), 3112*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 3113*d1919c37STaniya Das .name = "gcc_video_axi0_clk", 3114*d1919c37STaniya Das .ops = &clk_branch2_ops, 3115*d1919c37STaniya Das }, 3116*d1919c37STaniya Das }, 3117*d1919c37STaniya Das }; 3118*d1919c37STaniya Das 3119*d1919c37STaniya Das static struct clk_branch gcc_video_axi1_clk = { 3120*d1919c37STaniya Das .halt_reg = 0x3202c, 3121*d1919c37STaniya Das .halt_check = BRANCH_HALT_SKIP, 3122*d1919c37STaniya Das .hwcg_reg = 0x3202c, 3123*d1919c37STaniya Das .hwcg_bit = 1, 3124*d1919c37STaniya Das .clkr = { 3125*d1919c37STaniya Das .enable_reg = 0x3202c, 3126*d1919c37STaniya Das .enable_mask = BIT(0), 3127*d1919c37STaniya Das .hw.init = &(const struct clk_init_data) { 3128*d1919c37STaniya Das .name = "gcc_video_axi1_clk", 3129*d1919c37STaniya Das .ops = &clk_branch2_ops, 3130*d1919c37STaniya Das }, 3131*d1919c37STaniya Das }, 3132*d1919c37STaniya Das }; 3133*d1919c37STaniya Das 3134*d1919c37STaniya Das static struct gdsc gcc_pcie_0_gdsc = { 3135*d1919c37STaniya Das .gdscr = 0x6b004, 3136*d1919c37STaniya Das .en_rest_wait_val = 0x2, 3137*d1919c37STaniya Das .en_few_wait_val = 0x2, 3138*d1919c37STaniya Das .clk_dis_wait_val = 0xf, 3139*d1919c37STaniya Das .collapse_ctrl = 0x5214c, 3140*d1919c37STaniya Das .collapse_mask = BIT(0), 3141*d1919c37STaniya Das .pd = { 3142*d1919c37STaniya Das .name = "gcc_pcie_0_gdsc", 3143*d1919c37STaniya Das }, 3144*d1919c37STaniya Das .pwrsts = PWRSTS_OFF_ON, 3145*d1919c37STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 3146*d1919c37STaniya Das }; 3147*d1919c37STaniya Das 3148*d1919c37STaniya Das static struct gdsc gcc_pcie_0_phy_gdsc = { 3149*d1919c37STaniya Das .gdscr = 0x6c000, 3150*d1919c37STaniya Das .en_rest_wait_val = 0x2, 3151*d1919c37STaniya Das .en_few_wait_val = 0x2, 3152*d1919c37STaniya Das .clk_dis_wait_val = 0x2, 3153*d1919c37STaniya Das .collapse_ctrl = 0x5214c, 3154*d1919c37STaniya Das .collapse_mask = BIT(2), 3155*d1919c37STaniya Das .pd = { 3156*d1919c37STaniya Das .name = "gcc_pcie_0_phy_gdsc", 3157*d1919c37STaniya Das }, 3158*d1919c37STaniya Das .pwrsts = PWRSTS_OFF_ON, 3159*d1919c37STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 3160*d1919c37STaniya Das }; 3161*d1919c37STaniya Das 3162*d1919c37STaniya Das static struct gdsc gcc_ufs_mem_phy_gdsc = { 3163*d1919c37STaniya Das .gdscr = 0x9e000, 3164*d1919c37STaniya Das .en_rest_wait_val = 0x2, 3165*d1919c37STaniya Das .en_few_wait_val = 0x2, 3166*d1919c37STaniya Das .clk_dis_wait_val = 0x2, 3167*d1919c37STaniya Das .pd = { 3168*d1919c37STaniya Das .name = "gcc_ufs_mem_phy_gdsc", 3169*d1919c37STaniya Das }, 3170*d1919c37STaniya Das .pwrsts = PWRSTS_OFF_ON, 3171*d1919c37STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 3172*d1919c37STaniya Das }; 3173*d1919c37STaniya Das 3174*d1919c37STaniya Das static struct gdsc gcc_ufs_phy_gdsc = { 3175*d1919c37STaniya Das .gdscr = 0x77004, 3176*d1919c37STaniya Das .en_rest_wait_val = 0x2, 3177*d1919c37STaniya Das .en_few_wait_val = 0x2, 3178*d1919c37STaniya Das .clk_dis_wait_val = 0xf, 3179*d1919c37STaniya Das .pd = { 3180*d1919c37STaniya Das .name = "gcc_ufs_phy_gdsc", 3181*d1919c37STaniya Das }, 3182*d1919c37STaniya Das .pwrsts = PWRSTS_OFF_ON, 3183*d1919c37STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 3184*d1919c37STaniya Das }; 3185*d1919c37STaniya Das 3186*d1919c37STaniya Das static struct gdsc gcc_usb30_prim_gdsc = { 3187*d1919c37STaniya Das .gdscr = 0x39004, 3188*d1919c37STaniya Das .en_rest_wait_val = 0x2, 3189*d1919c37STaniya Das .en_few_wait_val = 0x2, 3190*d1919c37STaniya Das .clk_dis_wait_val = 0xf, 3191*d1919c37STaniya Das .pd = { 3192*d1919c37STaniya Das .name = "gcc_usb30_prim_gdsc", 3193*d1919c37STaniya Das }, 3194*d1919c37STaniya Das .pwrsts = PWRSTS_OFF_ON, 3195*d1919c37STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 3196*d1919c37STaniya Das }; 3197*d1919c37STaniya Das 3198*d1919c37STaniya Das static struct gdsc gcc_usb3_phy_gdsc = { 3199*d1919c37STaniya Das .gdscr = 0x50018, 3200*d1919c37STaniya Das .en_rest_wait_val = 0x2, 3201*d1919c37STaniya Das .en_few_wait_val = 0x2, 3202*d1919c37STaniya Das .clk_dis_wait_val = 0x2, 3203*d1919c37STaniya Das .pd = { 3204*d1919c37STaniya Das .name = "gcc_usb3_phy_gdsc", 3205*d1919c37STaniya Das }, 3206*d1919c37STaniya Das .pwrsts = PWRSTS_OFF_ON, 3207*d1919c37STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 3208*d1919c37STaniya Das }; 3209*d1919c37STaniya Das 3210*d1919c37STaniya Das static struct clk_regmap *gcc_kaanapali_clocks[] = { 3211*d1919c37STaniya Das [GCC_AGGRE_NOC_PCIE_AXI_CLK] = &gcc_aggre_noc_pcie_axi_clk.clkr, 3212*d1919c37STaniya Das [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr, 3213*d1919c37STaniya Das [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr, 3214*d1919c37STaniya Das [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr, 3215*d1919c37STaniya Das [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr, 3216*d1919c37STaniya Das [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr, 3217*d1919c37STaniya Das [GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr, 3218*d1919c37STaniya Das [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr, 3219*d1919c37STaniya Das [GCC_CNOC_PCIE_SF_AXI_CLK] = &gcc_cnoc_pcie_sf_axi_clk.clkr, 3220*d1919c37STaniya Das [GCC_DDRSS_PCIE_SF_QTB_CLK] = &gcc_ddrss_pcie_sf_qtb_clk.clkr, 3221*d1919c37STaniya Das [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr, 3222*d1919c37STaniya Das [GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr, 3223*d1919c37STaniya Das [GCC_EVA_AXI0_CLK] = &gcc_eva_axi0_clk.clkr, 3224*d1919c37STaniya Das [GCC_EVA_AXI0C_CLK] = &gcc_eva_axi0c_clk.clkr, 3225*d1919c37STaniya Das [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, 3226*d1919c37STaniya Das [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr, 3227*d1919c37STaniya Das [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, 3228*d1919c37STaniya Das [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr, 3229*d1919c37STaniya Das [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, 3230*d1919c37STaniya Das [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr, 3231*d1919c37STaniya Das [GCC_GPLL0] = &gcc_gpll0.clkr, 3232*d1919c37STaniya Das [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr, 3233*d1919c37STaniya Das [GCC_GPLL1] = &gcc_gpll1.clkr, 3234*d1919c37STaniya Das [GCC_GPLL4] = &gcc_gpll4.clkr, 3235*d1919c37STaniya Das [GCC_GPLL7] = &gcc_gpll7.clkr, 3236*d1919c37STaniya Das [GCC_GPLL9] = &gcc_gpll9.clkr, 3237*d1919c37STaniya Das [GCC_GPU_GEMNOC_GFX_CLK] = &gcc_gpu_gemnoc_gfx_clk.clkr, 3238*d1919c37STaniya Das [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr, 3239*d1919c37STaniya Das [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr, 3240*d1919c37STaniya Das [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr, 3241*d1919c37STaniya Das [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr, 3242*d1919c37STaniya Das [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr, 3243*d1919c37STaniya Das [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr, 3244*d1919c37STaniya Das [GCC_PCIE_0_PHY_AUX_CLK] = &gcc_pcie_0_phy_aux_clk.clkr, 3245*d1919c37STaniya Das [GCC_PCIE_0_PHY_AUX_CLK_SRC] = &gcc_pcie_0_phy_aux_clk_src.clkr, 3246*d1919c37STaniya Das [GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr, 3247*d1919c37STaniya Das [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr, 3248*d1919c37STaniya Das [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr, 3249*d1919c37STaniya Das [GCC_PCIE_0_PIPE_CLK_SRC] = &gcc_pcie_0_pipe_clk_src.clkr, 3250*d1919c37STaniya Das [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr, 3251*d1919c37STaniya Das [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr, 3252*d1919c37STaniya Das [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr, 3253*d1919c37STaniya Das [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr, 3254*d1919c37STaniya Das [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr, 3255*d1919c37STaniya Das [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr, 3256*d1919c37STaniya Das [GCC_QUPV3_I2C_CORE_CLK] = &gcc_qupv3_i2c_core_clk.clkr, 3257*d1919c37STaniya Das [GCC_QUPV3_I2C_S0_CLK] = &gcc_qupv3_i2c_s0_clk.clkr, 3258*d1919c37STaniya Das [GCC_QUPV3_I2C_S0_CLK_SRC] = &gcc_qupv3_i2c_s0_clk_src.clkr, 3259*d1919c37STaniya Das [GCC_QUPV3_I2C_S1_CLK] = &gcc_qupv3_i2c_s1_clk.clkr, 3260*d1919c37STaniya Das [GCC_QUPV3_I2C_S1_CLK_SRC] = &gcc_qupv3_i2c_s1_clk_src.clkr, 3261*d1919c37STaniya Das [GCC_QUPV3_I2C_S2_CLK] = &gcc_qupv3_i2c_s2_clk.clkr, 3262*d1919c37STaniya Das [GCC_QUPV3_I2C_S2_CLK_SRC] = &gcc_qupv3_i2c_s2_clk_src.clkr, 3263*d1919c37STaniya Das [GCC_QUPV3_I2C_S3_CLK] = &gcc_qupv3_i2c_s3_clk.clkr, 3264*d1919c37STaniya Das [GCC_QUPV3_I2C_S3_CLK_SRC] = &gcc_qupv3_i2c_s3_clk_src.clkr, 3265*d1919c37STaniya Das [GCC_QUPV3_I2C_S4_CLK] = &gcc_qupv3_i2c_s4_clk.clkr, 3266*d1919c37STaniya Das [GCC_QUPV3_I2C_S4_CLK_SRC] = &gcc_qupv3_i2c_s4_clk_src.clkr, 3267*d1919c37STaniya Das [GCC_QUPV3_I2C_S_AHB_CLK] = &gcc_qupv3_i2c_s_ahb_clk.clkr, 3268*d1919c37STaniya Das [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr, 3269*d1919c37STaniya Das [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr, 3270*d1919c37STaniya Das [GCC_QUPV3_WRAP1_QSPI_REF_CLK] = &gcc_qupv3_wrap1_qspi_ref_clk.clkr, 3271*d1919c37STaniya Das [GCC_QUPV3_WRAP1_QSPI_REF_CLK_SRC] = &gcc_qupv3_wrap1_qspi_ref_clk_src.clkr, 3272*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr, 3273*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr, 3274*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr, 3275*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr, 3276*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr, 3277*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr, 3278*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr, 3279*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr, 3280*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr, 3281*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr, 3282*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr, 3283*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr, 3284*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr, 3285*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr, 3286*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr, 3287*d1919c37STaniya Das [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr, 3288*d1919c37STaniya Das [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr, 3289*d1919c37STaniya Das [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr, 3290*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr, 3291*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr, 3292*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr, 3293*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr, 3294*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr, 3295*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr, 3296*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr, 3297*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr, 3298*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr, 3299*d1919c37STaniya Das [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr, 3300*d1919c37STaniya Das [GCC_QUPV3_WRAP3_CORE_2X_CLK] = &gcc_qupv3_wrap3_core_2x_clk.clkr, 3301*d1919c37STaniya Das [GCC_QUPV3_WRAP3_CORE_CLK] = &gcc_qupv3_wrap3_core_clk.clkr, 3302*d1919c37STaniya Das [GCC_QUPV3_WRAP3_IBI_CTRL_0_CLK_SRC] = &gcc_qupv3_wrap3_ibi_ctrl_0_clk_src.clkr, 3303*d1919c37STaniya Das [GCC_QUPV3_WRAP3_IBI_CTRL_1_CLK] = &gcc_qupv3_wrap3_ibi_ctrl_1_clk.clkr, 3304*d1919c37STaniya Das [GCC_QUPV3_WRAP3_IBI_CTRL_2_CLK] = &gcc_qupv3_wrap3_ibi_ctrl_2_clk.clkr, 3305*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S0_CLK] = &gcc_qupv3_wrap3_s0_clk.clkr, 3306*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S0_CLK_SRC] = &gcc_qupv3_wrap3_s0_clk_src.clkr, 3307*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S1_CLK] = &gcc_qupv3_wrap3_s1_clk.clkr, 3308*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S1_CLK_SRC] = &gcc_qupv3_wrap3_s1_clk_src.clkr, 3309*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S2_CLK] = &gcc_qupv3_wrap3_s2_clk.clkr, 3310*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S2_CLK_SRC] = &gcc_qupv3_wrap3_s2_clk_src.clkr, 3311*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S3_CLK] = &gcc_qupv3_wrap3_s3_clk.clkr, 3312*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S3_CLK_SRC] = &gcc_qupv3_wrap3_s3_clk_src.clkr, 3313*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S4_CLK] = &gcc_qupv3_wrap3_s4_clk.clkr, 3314*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S4_CLK_SRC] = &gcc_qupv3_wrap3_s4_clk_src.clkr, 3315*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S5_CLK] = &gcc_qupv3_wrap3_s5_clk.clkr, 3316*d1919c37STaniya Das [GCC_QUPV3_WRAP3_S5_CLK_SRC] = &gcc_qupv3_wrap3_s5_clk_src.clkr, 3317*d1919c37STaniya Das [GCC_QUPV3_WRAP4_CORE_2X_CLK] = &gcc_qupv3_wrap4_core_2x_clk.clkr, 3318*d1919c37STaniya Das [GCC_QUPV3_WRAP4_CORE_CLK] = &gcc_qupv3_wrap4_core_clk.clkr, 3319*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S0_CLK] = &gcc_qupv3_wrap4_s0_clk.clkr, 3320*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S0_CLK_SRC] = &gcc_qupv3_wrap4_s0_clk_src.clkr, 3321*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S1_CLK] = &gcc_qupv3_wrap4_s1_clk.clkr, 3322*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S1_CLK_SRC] = &gcc_qupv3_wrap4_s1_clk_src.clkr, 3323*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S2_CLK] = &gcc_qupv3_wrap4_s2_clk.clkr, 3324*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S2_CLK_SRC] = &gcc_qupv3_wrap4_s2_clk_src.clkr, 3325*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S3_CLK] = &gcc_qupv3_wrap4_s3_clk.clkr, 3326*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S3_CLK_SRC] = &gcc_qupv3_wrap4_s3_clk_src.clkr, 3327*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S4_CLK] = &gcc_qupv3_wrap4_s4_clk.clkr, 3328*d1919c37STaniya Das [GCC_QUPV3_WRAP4_S4_CLK_SRC] = &gcc_qupv3_wrap4_s4_clk_src.clkr, 3329*d1919c37STaniya Das [GCC_QUPV3_WRAP_1_M_AXI_CLK] = &gcc_qupv3_wrap_1_m_axi_clk.clkr, 3330*d1919c37STaniya Das [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr, 3331*d1919c37STaniya Das [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr, 3332*d1919c37STaniya Das [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr, 3333*d1919c37STaniya Das [GCC_QUPV3_WRAP_3_IBI_1_AHB_CLK] = &gcc_qupv3_wrap_3_ibi_1_ahb_clk.clkr, 3334*d1919c37STaniya Das [GCC_QUPV3_WRAP_3_IBI_2_AHB_CLK] = &gcc_qupv3_wrap_3_ibi_2_ahb_clk.clkr, 3335*d1919c37STaniya Das [GCC_QUPV3_WRAP_3_M_AHB_CLK] = &gcc_qupv3_wrap_3_m_ahb_clk.clkr, 3336*d1919c37STaniya Das [GCC_QUPV3_WRAP_3_S_AHB_CLK] = &gcc_qupv3_wrap_3_s_ahb_clk.clkr, 3337*d1919c37STaniya Das [GCC_QUPV3_WRAP_4_M_AHB_CLK] = &gcc_qupv3_wrap_4_m_ahb_clk.clkr, 3338*d1919c37STaniya Das [GCC_QUPV3_WRAP_4_S_AHB_CLK] = &gcc_qupv3_wrap_4_s_ahb_clk.clkr, 3339*d1919c37STaniya Das [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr, 3340*d1919c37STaniya Das [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr, 3341*d1919c37STaniya Das [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr, 3342*d1919c37STaniya Das [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr, 3343*d1919c37STaniya Das [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr, 3344*d1919c37STaniya Das [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr, 3345*d1919c37STaniya Das [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr, 3346*d1919c37STaniya Das [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr, 3347*d1919c37STaniya Das [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr, 3348*d1919c37STaniya Das [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr, 3349*d1919c37STaniya Das [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr, 3350*d1919c37STaniya Das [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr, 3351*d1919c37STaniya Das [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr, 3352*d1919c37STaniya Das [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr, 3353*d1919c37STaniya Das [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr, 3354*d1919c37STaniya Das [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr, 3355*d1919c37STaniya Das [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr, 3356*d1919c37STaniya Das [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr, 3357*d1919c37STaniya Das [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr, 3358*d1919c37STaniya Das [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr, 3359*d1919c37STaniya Das [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr, 3360*d1919c37STaniya Das [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr, 3361*d1919c37STaniya Das [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr, 3362*d1919c37STaniya Das [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr, 3363*d1919c37STaniya Das [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr, 3364*d1919c37STaniya Das [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr, 3365*d1919c37STaniya Das [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr, 3366*d1919c37STaniya Das [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr, 3367*d1919c37STaniya Das [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr, 3368*d1919c37STaniya Das [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr, 3369*d1919c37STaniya Das [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr, 3370*d1919c37STaniya Das [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr, 3371*d1919c37STaniya Das [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr, 3372*d1919c37STaniya Das [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr, 3373*d1919c37STaniya Das [GCC_QMIP_CAMERA_CMD_AHB_CLK] = &gcc_qmip_camera_cmd_ahb_clk.clkr, 3374*d1919c37STaniya Das [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr, 3375*d1919c37STaniya Das [GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr, 3376*d1919c37STaniya Das [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr, 3377*d1919c37STaniya Das [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr, 3378*d1919c37STaniya Das [GCC_QMIP_DISP_DCP_SF_AHB_CLK] = &gcc_qmip_disp_dcp_sf_ahb_clk.clkr, 3379*d1919c37STaniya Das [GCC_QMIP_PCIE_AHB_CLK] = &gcc_qmip_pcie_ahb_clk.clkr, 3380*d1919c37STaniya Das [GCC_QMIP_VIDEO_CV_CPU_AHB_CLK] = &gcc_qmip_video_cv_cpu_ahb_clk.clkr, 3381*d1919c37STaniya Das [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr, 3382*d1919c37STaniya Das [GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr, 3383*d1919c37STaniya Das }; 3384*d1919c37STaniya Das 3385*d1919c37STaniya Das static struct gdsc *gcc_kaanapali_gdscs[] = { 3386*d1919c37STaniya Das [GCC_PCIE_0_GDSC] = &gcc_pcie_0_gdsc, 3387*d1919c37STaniya Das [GCC_PCIE_0_PHY_GDSC] = &gcc_pcie_0_phy_gdsc, 3388*d1919c37STaniya Das [GCC_UFS_MEM_PHY_GDSC] = &gcc_ufs_mem_phy_gdsc, 3389*d1919c37STaniya Das [GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc, 3390*d1919c37STaniya Das [GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc, 3391*d1919c37STaniya Das [GCC_USB3_PHY_GDSC] = &gcc_usb3_phy_gdsc, 3392*d1919c37STaniya Das }; 3393*d1919c37STaniya Das 3394*d1919c37STaniya Das static const struct qcom_reset_map gcc_kaanapali_resets[] = { 3395*d1919c37STaniya Das [GCC_CAMERA_BCR] = { 0x26000 }, 3396*d1919c37STaniya Das [GCC_DISPLAY_BCR] = { 0x27000 }, 3397*d1919c37STaniya Das [GCC_EVA_AXI0_CLK_ARES] = { 0x9f008, 2 }, 3398*d1919c37STaniya Das [GCC_EVA_AXI0C_CLK_ARES] = { 0x9f01c, 2 }, 3399*d1919c37STaniya Das [GCC_EVA_BCR] = { 0x9f000 }, 3400*d1919c37STaniya Das [GCC_GPU_BCR] = { 0x71000 }, 3401*d1919c37STaniya Das [GCC_PCIE_0_BCR] = { 0x6b000 }, 3402*d1919c37STaniya Das [GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 }, 3403*d1919c37STaniya Das [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 }, 3404*d1919c37STaniya Das [GCC_PCIE_0_PHY_BCR] = { 0x6c01c }, 3405*d1919c37STaniya Das [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 }, 3406*d1919c37STaniya Das [GCC_PCIE_PHY_BCR] = { 0x6f000 }, 3407*d1919c37STaniya Das [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c }, 3408*d1919c37STaniya Das [GCC_PCIE_PHY_COM_BCR] = { 0x6f010 }, 3409*d1919c37STaniya Das [GCC_PCIE_RSCC_BCR] = { 0x11000 }, 3410*d1919c37STaniya Das [GCC_PDM_BCR] = { 0x33000 }, 3411*d1919c37STaniya Das [GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 }, 3412*d1919c37STaniya Das [GCC_QUPV3_WRAPPER_2_BCR] = { 0x1e000 }, 3413*d1919c37STaniya Das [GCC_QUPV3_WRAPPER_3_BCR] = { 0xa8000 }, 3414*d1919c37STaniya Das [GCC_QUPV3_WRAPPER_4_BCR] = { 0xa9000 }, 3415*d1919c37STaniya Das [GCC_QUPV3_WRAPPER_I2C_BCR] = { 0x17000 }, 3416*d1919c37STaniya Das [GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 }, 3417*d1919c37STaniya Das [GCC_QUSB2PHY_SEC_BCR] = { 0x12004 }, 3418*d1919c37STaniya Das [GCC_SDCC2_BCR] = { 0x14000 }, 3419*d1919c37STaniya Das [GCC_SDCC4_BCR] = { 0x16000 }, 3420*d1919c37STaniya Das [GCC_UFS_PHY_BCR] = { 0x77000 }, 3421*d1919c37STaniya Das [GCC_USB30_PRIM_BCR] = { 0x39000 }, 3422*d1919c37STaniya Das [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 }, 3423*d1919c37STaniya Das [GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 }, 3424*d1919c37STaniya Das [GCC_USB3_PHY_PRIM_BCR] = { 0x50000 }, 3425*d1919c37STaniya Das [GCC_USB3_PHY_SEC_BCR] = { 0x5000c }, 3426*d1919c37STaniya Das [GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 }, 3427*d1919c37STaniya Das [GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 }, 3428*d1919c37STaniya Das [GCC_VIDEO_AXI0_CLK_ARES] = { 0x32018, 2 }, 3429*d1919c37STaniya Das [GCC_VIDEO_AXI1_CLK_ARES] = { 0x3202c, 2 }, 3430*d1919c37STaniya Das [GCC_VIDEO_BCR] = { 0x32000 }, 3431*d1919c37STaniya Das [GCC_VIDEO_XO_CLK_ARES] = { 0x32040, 2 }, 3432*d1919c37STaniya Das }; 3433*d1919c37STaniya Das 3434*d1919c37STaniya Das static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = { 3435*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_ref_clk_src), 3436*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src), 3437*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src), 3438*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src), 3439*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src), 3440*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src), 3441*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src), 3442*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src), 3443*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src), 3444*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src), 3445*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src), 3446*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src), 3447*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src), 3448*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap3_s0_clk_src), 3449*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap3_s1_clk_src), 3450*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap3_s2_clk_src), 3451*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap3_s3_clk_src), 3452*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap3_s4_clk_src), 3453*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap3_s5_clk_src), 3454*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap4_s0_clk_src), 3455*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap4_s1_clk_src), 3456*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap4_s2_clk_src), 3457*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap4_s3_clk_src), 3458*d1919c37STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap4_s4_clk_src), 3459*d1919c37STaniya Das }; 3460*d1919c37STaniya Das 3461*d1919c37STaniya Das static u32 gcc_kaanapali_critical_cbcrs[] = { 3462*d1919c37STaniya Das 0xa0004, /* GCC_CAM_BIST_MCLK_AHB_CLK */ 3463*d1919c37STaniya Das 0x26004, /* GCC_CAMERA_AHB_CLK */ 3464*d1919c37STaniya Das 0x2603c, /* GCC_CAMERA_XO_CLK */ 3465*d1919c37STaniya Das 0x27004, /* GCC_DISP_AHB_CLK */ 3466*d1919c37STaniya Das 0x9f004, /* GCC_EVA_AHB_CLK */ 3467*d1919c37STaniya Das 0x9f024, /* GCC_EVA_XO_CLK */ 3468*d1919c37STaniya Das 0x71004, /* GCC_GPU_CFG_AHB_CLK */ 3469*d1919c37STaniya Das 0x52010, /* GCC_PCIE_RSCC_CFG_AHB_CLK */ 3470*d1919c37STaniya Das 0x52010, /* GCC_PCIE_RSCC_XO_CLK */ 3471*d1919c37STaniya Das 0x32004, /* GCC_VIDEO_AHB_CLK */ 3472*d1919c37STaniya Das 0x32040, /* GCC_VIDEO_XO_CLK */ 3473*d1919c37STaniya Das }; 3474*d1919c37STaniya Das 3475*d1919c37STaniya Das static const struct regmap_config gcc_kaanapali_regmap_config = { 3476*d1919c37STaniya Das .reg_bits = 32, 3477*d1919c37STaniya Das .reg_stride = 4, 3478*d1919c37STaniya Das .val_bits = 32, 3479*d1919c37STaniya Das .max_register = 0x1f41f0, 3480*d1919c37STaniya Das .fast_io = true, 3481*d1919c37STaniya Das }; 3482*d1919c37STaniya Das 3483*d1919c37STaniya Das static void clk_kaanapali_regs_configure(struct device *dev, struct regmap *regmap) 3484*d1919c37STaniya Das { 3485*d1919c37STaniya Das /* FORCE_MEM_CORE_ON for ufs phy ice core clocks */ 3486*d1919c37STaniya Das qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true); 3487*d1919c37STaniya Das } 3488*d1919c37STaniya Das 3489*d1919c37STaniya Das static struct qcom_cc_driver_data gcc_kaanapali_driver_data = { 3490*d1919c37STaniya Das .clk_cbcrs = gcc_kaanapali_critical_cbcrs, 3491*d1919c37STaniya Das .num_clk_cbcrs = ARRAY_SIZE(gcc_kaanapali_critical_cbcrs), 3492*d1919c37STaniya Das .dfs_rcgs = gcc_dfs_clocks, 3493*d1919c37STaniya Das .num_dfs_rcgs = ARRAY_SIZE(gcc_dfs_clocks), 3494*d1919c37STaniya Das .clk_regs_configure = clk_kaanapali_regs_configure, 3495*d1919c37STaniya Das }; 3496*d1919c37STaniya Das 3497*d1919c37STaniya Das static const struct qcom_cc_desc gcc_kaanapali_desc = { 3498*d1919c37STaniya Das .config = &gcc_kaanapali_regmap_config, 3499*d1919c37STaniya Das .clks = gcc_kaanapali_clocks, 3500*d1919c37STaniya Das .num_clks = ARRAY_SIZE(gcc_kaanapali_clocks), 3501*d1919c37STaniya Das .resets = gcc_kaanapali_resets, 3502*d1919c37STaniya Das .num_resets = ARRAY_SIZE(gcc_kaanapali_resets), 3503*d1919c37STaniya Das .gdscs = gcc_kaanapali_gdscs, 3504*d1919c37STaniya Das .num_gdscs = ARRAY_SIZE(gcc_kaanapali_gdscs), 3505*d1919c37STaniya Das .driver_data = &gcc_kaanapali_driver_data, 3506*d1919c37STaniya Das }; 3507*d1919c37STaniya Das 3508*d1919c37STaniya Das static const struct of_device_id gcc_kaanapali_match_table[] = { 3509*d1919c37STaniya Das { .compatible = "qcom,kaanapali-gcc" }, 3510*d1919c37STaniya Das { } 3511*d1919c37STaniya Das }; 3512*d1919c37STaniya Das MODULE_DEVICE_TABLE(of, gcc_kaanapali_match_table); 3513*d1919c37STaniya Das 3514*d1919c37STaniya Das static int gcc_kaanapali_probe(struct platform_device *pdev) 3515*d1919c37STaniya Das { 3516*d1919c37STaniya Das return qcom_cc_probe(pdev, &gcc_kaanapali_desc); 3517*d1919c37STaniya Das } 3518*d1919c37STaniya Das 3519*d1919c37STaniya Das static struct platform_driver gcc_kaanapali_driver = { 3520*d1919c37STaniya Das .probe = gcc_kaanapali_probe, 3521*d1919c37STaniya Das .driver = { 3522*d1919c37STaniya Das .name = "gcc-kaanapali", 3523*d1919c37STaniya Das .of_match_table = gcc_kaanapali_match_table, 3524*d1919c37STaniya Das }, 3525*d1919c37STaniya Das }; 3526*d1919c37STaniya Das 3527*d1919c37STaniya Das static int __init gcc_kaanapali_init(void) 3528*d1919c37STaniya Das { 3529*d1919c37STaniya Das return platform_driver_register(&gcc_kaanapali_driver); 3530*d1919c37STaniya Das } 3531*d1919c37STaniya Das subsys_initcall(gcc_kaanapali_init); 3532*d1919c37STaniya Das 3533*d1919c37STaniya Das static void __exit gcc_kaanapali_exit(void) 3534*d1919c37STaniya Das { 3535*d1919c37STaniya Das platform_driver_unregister(&gcc_kaanapali_driver); 3536*d1919c37STaniya Das } 3537*d1919c37STaniya Das module_exit(gcc_kaanapali_exit); 3538*d1919c37STaniya Das 3539*d1919c37STaniya Das MODULE_DESCRIPTION("QTI GCC Kaanapali Driver"); 3540*d1919c37STaniya Das MODULE_LICENSE("GPL"); 3541