13d356ab4STaniya Das // SPDX-License-Identifier: GPL-2.0-only 23d356ab4STaniya Das /* 33d356ab4STaniya Das * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 43d356ab4STaniya Das */ 53d356ab4STaniya Das 63d356ab4STaniya Das #include <linux/clk-provider.h> 73d356ab4STaniya Das #include <linux/mod_devicetable.h> 83d356ab4STaniya Das #include <linux/module.h> 93d356ab4STaniya Das #include <linux/platform_device.h> 103d356ab4STaniya Das #include <linux/regmap.h> 113d356ab4STaniya Das 123d356ab4STaniya Das #include <dt-bindings/clock/qcom,eliza-gcc.h> 133d356ab4STaniya Das 143d356ab4STaniya Das #include "clk-alpha-pll.h" 153d356ab4STaniya Das #include "clk-branch.h" 163d356ab4STaniya Das #include "clk-pll.h" 173d356ab4STaniya Das #include "clk-rcg.h" 183d356ab4STaniya Das #include "clk-regmap.h" 193d356ab4STaniya Das #include "clk-regmap-divider.h" 203d356ab4STaniya Das #include "clk-regmap-mux.h" 213d356ab4STaniya Das #include "clk-regmap-phy-mux.h" 223d356ab4STaniya Das #include "common.h" 233d356ab4STaniya Das #include "gdsc.h" 243d356ab4STaniya Das #include "reset.h" 253d356ab4STaniya Das 263d356ab4STaniya Das enum { 273d356ab4STaniya Das DT_BI_TCXO, 283d356ab4STaniya Das DT_SLEEP_CLK, 293d356ab4STaniya Das DT_PCIE_0_PIPE_CLK, 303d356ab4STaniya Das DT_PCIE_1_PIPE_CLK, 313d356ab4STaniya Das DT_UFS_PHY_RX_SYMBOL_0_CLK, 323d356ab4STaniya Das DT_UFS_PHY_RX_SYMBOL_1_CLK, 333d356ab4STaniya Das DT_UFS_PHY_TX_SYMBOL_0_CLK, 343d356ab4STaniya Das DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 353d356ab4STaniya Das }; 363d356ab4STaniya Das 373d356ab4STaniya Das enum { 383d356ab4STaniya Das P_BI_TCXO, 393d356ab4STaniya Das P_GCC_GPLL0_OUT_EVEN, 403d356ab4STaniya Das P_GCC_GPLL0_OUT_MAIN, 413d356ab4STaniya Das P_GCC_GPLL4_OUT_MAIN, 423d356ab4STaniya Das P_GCC_GPLL7_OUT_MAIN, 433d356ab4STaniya Das P_GCC_GPLL8_OUT_MAIN, 443d356ab4STaniya Das P_GCC_GPLL9_OUT_MAIN, 453d356ab4STaniya Das P_PCIE_0_PIPE_CLK, 463d356ab4STaniya Das P_PCIE_1_PIPE_CLK, 473d356ab4STaniya Das P_SLEEP_CLK, 483d356ab4STaniya Das P_UFS_PHY_RX_SYMBOL_0_CLK, 493d356ab4STaniya Das P_UFS_PHY_RX_SYMBOL_1_CLK, 503d356ab4STaniya Das P_UFS_PHY_TX_SYMBOL_0_CLK, 513d356ab4STaniya Das P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 523d356ab4STaniya Das }; 533d356ab4STaniya Das 543d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll0 = { 553d356ab4STaniya Das .offset = 0x0, 563d356ab4STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE], 573d356ab4STaniya Das .clkr = { 583d356ab4STaniya Das .enable_reg = 0x52020, 593d356ab4STaniya Das .enable_mask = BIT(0), 603d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 613d356ab4STaniya Das .name = "gcc_gpll0", 623d356ab4STaniya Das .parent_data = &(const struct clk_parent_data) { 633d356ab4STaniya Das .index = DT_BI_TCXO, 643d356ab4STaniya Das }, 653d356ab4STaniya Das .num_parents = 1, 663d356ab4STaniya Das .ops = &clk_alpha_pll_fixed_lucid_ole_ops, 673d356ab4STaniya Das }, 683d356ab4STaniya Das }, 693d356ab4STaniya Das }; 703d356ab4STaniya Das 713d356ab4STaniya Das static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = { 723d356ab4STaniya Das { 0x1, 2 }, 733d356ab4STaniya Das { } 743d356ab4STaniya Das }; 753d356ab4STaniya Das 763d356ab4STaniya Das static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = { 773d356ab4STaniya Das .offset = 0x0, 783d356ab4STaniya Das .post_div_shift = 10, 793d356ab4STaniya Das .post_div_table = post_div_table_gcc_gpll0_out_even, 803d356ab4STaniya Das .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even), 813d356ab4STaniya Das .width = 4, 823d356ab4STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE], 833d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 843d356ab4STaniya Das .name = "gcc_gpll0_out_even", 853d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 863d356ab4STaniya Das &gcc_gpll0.clkr.hw, 873d356ab4STaniya Das }, 883d356ab4STaniya Das .num_parents = 1, 893d356ab4STaniya Das .ops = &clk_alpha_pll_postdiv_lucid_ole_ops, 903d356ab4STaniya Das }, 913d356ab4STaniya Das }; 923d356ab4STaniya Das 933d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll4 = { 943d356ab4STaniya Das .offset = 0x4000, 953d356ab4STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE], 963d356ab4STaniya Das .clkr = { 973d356ab4STaniya Das .enable_reg = 0x52020, 983d356ab4STaniya Das .enable_mask = BIT(4), 993d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 1003d356ab4STaniya Das .name = "gcc_gpll4", 1013d356ab4STaniya Das .parent_data = &(const struct clk_parent_data) { 1023d356ab4STaniya Das .index = DT_BI_TCXO, 1033d356ab4STaniya Das }, 1043d356ab4STaniya Das .num_parents = 1, 1053d356ab4STaniya Das .ops = &clk_alpha_pll_fixed_lucid_ole_ops, 1063d356ab4STaniya Das }, 1073d356ab4STaniya Das }, 1083d356ab4STaniya Das }; 1093d356ab4STaniya Das 1103d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll7 = { 1113d356ab4STaniya Das .offset = 0x7000, 1123d356ab4STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE], 1133d356ab4STaniya Das .clkr = { 1143d356ab4STaniya Das .enable_reg = 0x52020, 1153d356ab4STaniya Das .enable_mask = BIT(7), 1163d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 1173d356ab4STaniya Das .name = "gcc_gpll7", 1183d356ab4STaniya Das .parent_data = &(const struct clk_parent_data) { 1193d356ab4STaniya Das .index = DT_BI_TCXO, 1203d356ab4STaniya Das }, 1213d356ab4STaniya Das .num_parents = 1, 1223d356ab4STaniya Das .ops = &clk_alpha_pll_fixed_lucid_ole_ops, 1233d356ab4STaniya Das }, 1243d356ab4STaniya Das }, 1253d356ab4STaniya Das }; 1263d356ab4STaniya Das 1273d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll8 = { 1283d356ab4STaniya Das .offset = 0x8000, 1293d356ab4STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE], 1303d356ab4STaniya Das .clkr = { 1313d356ab4STaniya Das .enable_reg = 0x52020, 1323d356ab4STaniya Das .enable_mask = BIT(8), 1333d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 1343d356ab4STaniya Das .name = "gcc_gpll8", 1353d356ab4STaniya Das .parent_data = &(const struct clk_parent_data) { 1363d356ab4STaniya Das .index = DT_BI_TCXO, 1373d356ab4STaniya Das }, 1383d356ab4STaniya Das .num_parents = 1, 1393d356ab4STaniya Das .ops = &clk_alpha_pll_fixed_lucid_ole_ops, 1403d356ab4STaniya Das }, 1413d356ab4STaniya Das }, 1423d356ab4STaniya Das }; 1433d356ab4STaniya Das 1443d356ab4STaniya Das static struct clk_alpha_pll gcc_gpll9 = { 1453d356ab4STaniya Das .offset = 0x9000, 1463d356ab4STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_OLE], 1473d356ab4STaniya Das .clkr = { 1483d356ab4STaniya Das .enable_reg = 0x52020, 1493d356ab4STaniya Das .enable_mask = BIT(9), 1503d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 1513d356ab4STaniya Das .name = "gcc_gpll9", 1523d356ab4STaniya Das .parent_data = &(const struct clk_parent_data) { 1533d356ab4STaniya Das .index = DT_BI_TCXO, 1543d356ab4STaniya Das }, 1553d356ab4STaniya Das .num_parents = 1, 1563d356ab4STaniya Das .ops = &clk_alpha_pll_fixed_lucid_ole_ops, 1573d356ab4STaniya Das }, 1583d356ab4STaniya Das }, 1593d356ab4STaniya Das }; 1603d356ab4STaniya Das 1613d356ab4STaniya Das static const struct parent_map gcc_parent_map_0[] = { 1623d356ab4STaniya Das { P_BI_TCXO, 0 }, 1633d356ab4STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 1643d356ab4STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 1653d356ab4STaniya Das }; 1663d356ab4STaniya Das 1673d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_0[] = { 1683d356ab4STaniya Das { .index = DT_BI_TCXO }, 1693d356ab4STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 1703d356ab4STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 1713d356ab4STaniya Das }; 1723d356ab4STaniya Das 1733d356ab4STaniya Das static const struct parent_map gcc_parent_map_1[] = { 1743d356ab4STaniya Das { P_BI_TCXO, 0 }, 1753d356ab4STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 1763d356ab4STaniya Das { P_SLEEP_CLK, 5 }, 1773d356ab4STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 1783d356ab4STaniya Das }; 1793d356ab4STaniya Das 1803d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_1[] = { 1813d356ab4STaniya Das { .index = DT_BI_TCXO }, 1823d356ab4STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 1833d356ab4STaniya Das { .index = DT_SLEEP_CLK }, 1843d356ab4STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 1853d356ab4STaniya Das }; 1863d356ab4STaniya Das 1873d356ab4STaniya Das static const struct parent_map gcc_parent_map_2[] = { 1883d356ab4STaniya Das { P_BI_TCXO, 0 }, 1893d356ab4STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 1903d356ab4STaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 1913d356ab4STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 1923d356ab4STaniya Das }; 1933d356ab4STaniya Das 1943d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_2[] = { 1953d356ab4STaniya Das { .index = DT_BI_TCXO }, 1963d356ab4STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 1973d356ab4STaniya Das { .hw = &gcc_gpll4.clkr.hw }, 1983d356ab4STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 1993d356ab4STaniya Das }; 2003d356ab4STaniya Das 2013d356ab4STaniya Das static const struct parent_map gcc_parent_map_3[] = { 2023d356ab4STaniya Das { P_BI_TCXO, 0 }, 2033d356ab4STaniya Das { P_SLEEP_CLK, 5 }, 2043d356ab4STaniya Das }; 2053d356ab4STaniya Das 2063d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_3[] = { 2073d356ab4STaniya Das { .index = DT_BI_TCXO }, 2083d356ab4STaniya Das { .index = DT_SLEEP_CLK }, 2093d356ab4STaniya Das }; 2103d356ab4STaniya Das 2113d356ab4STaniya Das static const struct parent_map gcc_parent_map_4[] = { 2123d356ab4STaniya Das { P_BI_TCXO, 0 }, 2133d356ab4STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 2143d356ab4STaniya Das { P_GCC_GPLL7_OUT_MAIN, 2 }, 2153d356ab4STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 2163d356ab4STaniya Das }; 2173d356ab4STaniya Das 2183d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_4[] = { 2193d356ab4STaniya Das { .index = DT_BI_TCXO }, 2203d356ab4STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 2213d356ab4STaniya Das { .hw = &gcc_gpll7.clkr.hw }, 2223d356ab4STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 2233d356ab4STaniya Das }; 2243d356ab4STaniya Das 2253d356ab4STaniya Das static const struct parent_map gcc_parent_map_5[] = { 2263d356ab4STaniya Das { P_BI_TCXO, 0 }, 2273d356ab4STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 2283d356ab4STaniya Das { P_GCC_GPLL8_OUT_MAIN, 2 }, 2293d356ab4STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 2303d356ab4STaniya Das }; 2313d356ab4STaniya Das 2323d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_5[] = { 2333d356ab4STaniya Das { .index = DT_BI_TCXO }, 2343d356ab4STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 2353d356ab4STaniya Das { .hw = &gcc_gpll8.clkr.hw }, 2363d356ab4STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 2373d356ab4STaniya Das }; 2383d356ab4STaniya Das 2393d356ab4STaniya Das static const struct parent_map gcc_parent_map_6[] = { 2403d356ab4STaniya Das { P_BI_TCXO, 0 }, 2413d356ab4STaniya Das }; 2423d356ab4STaniya Das 2433d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_6[] = { 2443d356ab4STaniya Das { .index = DT_BI_TCXO }, 2453d356ab4STaniya Das }; 2463d356ab4STaniya Das 2473d356ab4STaniya Das static const struct parent_map gcc_parent_map_7[] = { 2483d356ab4STaniya Das { P_BI_TCXO, 0 }, 2493d356ab4STaniya Das { P_GCC_GPLL0_OUT_MAIN, 1 }, 2503d356ab4STaniya Das { P_GCC_GPLL9_OUT_MAIN, 2 }, 2513d356ab4STaniya Das { P_GCC_GPLL4_OUT_MAIN, 5 }, 2523d356ab4STaniya Das { P_GCC_GPLL0_OUT_EVEN, 6 }, 2533d356ab4STaniya Das }; 2543d356ab4STaniya Das 2553d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_7[] = { 2563d356ab4STaniya Das { .index = DT_BI_TCXO }, 2573d356ab4STaniya Das { .hw = &gcc_gpll0.clkr.hw }, 2583d356ab4STaniya Das { .hw = &gcc_gpll9.clkr.hw }, 2593d356ab4STaniya Das { .hw = &gcc_gpll4.clkr.hw }, 2603d356ab4STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 2613d356ab4STaniya Das }; 2623d356ab4STaniya Das 2633d356ab4STaniya Das static const struct parent_map gcc_parent_map_8[] = { 2643d356ab4STaniya Das { P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK, 0 }, 2653d356ab4STaniya Das { P_BI_TCXO, 2 }, 2663d356ab4STaniya Das { P_GCC_GPLL0_OUT_EVEN, 3 }, 2673d356ab4STaniya Das }; 2683d356ab4STaniya Das 2693d356ab4STaniya Das static const struct clk_parent_data gcc_parent_data_8[] = { 2703d356ab4STaniya Das { .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK }, 2713d356ab4STaniya Das { .index = DT_BI_TCXO }, 2723d356ab4STaniya Das { .hw = &gcc_gpll0_out_even.clkr.hw }, 2733d356ab4STaniya Das }; 2743d356ab4STaniya Das 2753d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_pcie_0_pipe_clk_src = { 2763d356ab4STaniya Das .reg = 0x6b080, 2773d356ab4STaniya Das .clkr = { 2783d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 2793d356ab4STaniya Das .name = "gcc_pcie_0_pipe_clk_src", 2803d356ab4STaniya Das .parent_data = &(const struct clk_parent_data){ 2813d356ab4STaniya Das .index = DT_PCIE_0_PIPE_CLK, 2823d356ab4STaniya Das }, 2833d356ab4STaniya Das .num_parents = 1, 2843d356ab4STaniya Das .ops = &clk_regmap_phy_mux_ops, 2853d356ab4STaniya Das }, 2863d356ab4STaniya Das }, 2873d356ab4STaniya Das }; 2883d356ab4STaniya Das 2893d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_pcie_1_pipe_clk_src = { 2903d356ab4STaniya Das .reg = 0xac07c, 2913d356ab4STaniya Das .clkr = { 2923d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 2933d356ab4STaniya Das .name = "gcc_pcie_1_pipe_clk_src", 2943d356ab4STaniya Das .parent_data = &(const struct clk_parent_data){ 2953d356ab4STaniya Das .index = DT_PCIE_1_PIPE_CLK, 2963d356ab4STaniya Das }, 2973d356ab4STaniya Das .num_parents = 1, 2983d356ab4STaniya Das .ops = &clk_regmap_phy_mux_ops, 2993d356ab4STaniya Das }, 3003d356ab4STaniya Das }, 3013d356ab4STaniya Das }; 3023d356ab4STaniya Das 3033d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_rx_symbol_0_clk_src = { 3043d356ab4STaniya Das .reg = 0x77068, 3053d356ab4STaniya Das .clkr = { 3063d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 3073d356ab4STaniya Das .name = "gcc_ufs_phy_rx_symbol_0_clk_src", 3083d356ab4STaniya Das .parent_data = &(const struct clk_parent_data){ 3093d356ab4STaniya Das .index = DT_UFS_PHY_RX_SYMBOL_0_CLK, 3103d356ab4STaniya Das }, 3113d356ab4STaniya Das .num_parents = 1, 3123d356ab4STaniya Das .ops = &clk_regmap_phy_mux_ops, 3133d356ab4STaniya Das }, 3143d356ab4STaniya Das }, 3153d356ab4STaniya Das }; 3163d356ab4STaniya Das 3173d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_rx_symbol_1_clk_src = { 3183d356ab4STaniya Das .reg = 0x770ec, 3193d356ab4STaniya Das .clkr = { 3203d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 3213d356ab4STaniya Das .name = "gcc_ufs_phy_rx_symbol_1_clk_src", 3223d356ab4STaniya Das .parent_data = &(const struct clk_parent_data){ 3233d356ab4STaniya Das .index = DT_UFS_PHY_RX_SYMBOL_1_CLK, 3243d356ab4STaniya Das }, 3253d356ab4STaniya Das .num_parents = 1, 3263d356ab4STaniya Das .ops = &clk_regmap_phy_mux_ops, 3273d356ab4STaniya Das }, 3283d356ab4STaniya Das }, 3293d356ab4STaniya Das }; 3303d356ab4STaniya Das 3313d356ab4STaniya Das static struct clk_regmap_phy_mux gcc_ufs_phy_tx_symbol_0_clk_src = { 3323d356ab4STaniya Das .reg = 0x77058, 3333d356ab4STaniya Das .clkr = { 3343d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 3353d356ab4STaniya Das .name = "gcc_ufs_phy_tx_symbol_0_clk_src", 3363d356ab4STaniya Das .parent_data = &(const struct clk_parent_data){ 3373d356ab4STaniya Das .index = DT_UFS_PHY_TX_SYMBOL_0_CLK, 3383d356ab4STaniya Das }, 3393d356ab4STaniya Das .num_parents = 1, 3403d356ab4STaniya Das .ops = &clk_regmap_phy_mux_ops, 3413d356ab4STaniya Das }, 3423d356ab4STaniya Das }, 3433d356ab4STaniya Das }; 3443d356ab4STaniya Das 3453d356ab4STaniya Das static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = { 3463d356ab4STaniya Das .reg = 0x39070, 3473d356ab4STaniya Das .shift = 0, 3483d356ab4STaniya Das .width = 2, 3493d356ab4STaniya Das .parent_map = gcc_parent_map_8, 3503d356ab4STaniya Das .clkr = { 3513d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 3523d356ab4STaniya Das .name = "gcc_usb3_prim_phy_pipe_clk_src", 3533d356ab4STaniya Das .parent_data = gcc_parent_data_8, 3543d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_8), 3553d356ab4STaniya Das .ops = &clk_regmap_mux_closest_ops, 3563d356ab4STaniya Das }, 3573d356ab4STaniya Das }, 3583d356ab4STaniya Das }; 3593d356ab4STaniya Das 3603d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = { 3613d356ab4STaniya Das F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0), 3623d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 3633d356ab4STaniya Das F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 3643d356ab4STaniya Das { } 3653d356ab4STaniya Das }; 3663d356ab4STaniya Das 3673d356ab4STaniya Das static struct clk_rcg2 gcc_gp1_clk_src = { 3683d356ab4STaniya Das .cmd_rcgr = 0x64004, 3693d356ab4STaniya Das .mnd_width = 16, 3703d356ab4STaniya Das .hid_width = 5, 3713d356ab4STaniya Das .parent_map = gcc_parent_map_1, 3723d356ab4STaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 3733d356ab4STaniya Das .hw_clk_ctrl = true, 3743d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 3753d356ab4STaniya Das .name = "gcc_gp1_clk_src", 3763d356ab4STaniya Das .parent_data = gcc_parent_data_1, 3773d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 3783d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 3793d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 3803d356ab4STaniya Das }, 3813d356ab4STaniya Das }; 3823d356ab4STaniya Das 3833d356ab4STaniya Das static struct clk_rcg2 gcc_gp2_clk_src = { 3843d356ab4STaniya Das .cmd_rcgr = 0x65004, 3853d356ab4STaniya Das .mnd_width = 16, 3863d356ab4STaniya Das .hid_width = 5, 3873d356ab4STaniya Das .parent_map = gcc_parent_map_1, 3883d356ab4STaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 3893d356ab4STaniya Das .hw_clk_ctrl = true, 3903d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 3913d356ab4STaniya Das .name = "gcc_gp2_clk_src", 3923d356ab4STaniya Das .parent_data = gcc_parent_data_1, 3933d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 3943d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 3953d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 3963d356ab4STaniya Das }, 3973d356ab4STaniya Das }; 3983d356ab4STaniya Das 3993d356ab4STaniya Das static struct clk_rcg2 gcc_gp3_clk_src = { 4003d356ab4STaniya Das .cmd_rcgr = 0x66004, 4013d356ab4STaniya Das .mnd_width = 16, 4023d356ab4STaniya Das .hid_width = 5, 4033d356ab4STaniya Das .parent_map = gcc_parent_map_1, 4043d356ab4STaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 4053d356ab4STaniya Das .hw_clk_ctrl = true, 4063d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 4073d356ab4STaniya Das .name = "gcc_gp3_clk_src", 4083d356ab4STaniya Das .parent_data = gcc_parent_data_1, 4093d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 4103d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 4113d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 4123d356ab4STaniya Das }, 4133d356ab4STaniya Das }; 4143d356ab4STaniya Das 4153d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = { 4163d356ab4STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 4173d356ab4STaniya Das { } 4183d356ab4STaniya Das }; 4193d356ab4STaniya Das 4203d356ab4STaniya Das static struct clk_rcg2 gcc_pcie_0_aux_clk_src = { 4213d356ab4STaniya Das .cmd_rcgr = 0x6b084, 4223d356ab4STaniya Das .mnd_width = 16, 4233d356ab4STaniya Das .hid_width = 5, 4243d356ab4STaniya Das .parent_map = gcc_parent_map_3, 4253d356ab4STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 4263d356ab4STaniya Das .hw_clk_ctrl = true, 4273d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 4283d356ab4STaniya Das .name = "gcc_pcie_0_aux_clk_src", 4293d356ab4STaniya Das .parent_data = gcc_parent_data_3, 4303d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 4313d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 4323d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 4333d356ab4STaniya Das }, 4343d356ab4STaniya Das }; 4353d356ab4STaniya Das 4363d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = { 4373d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 4383d356ab4STaniya Das { } 4393d356ab4STaniya Das }; 4403d356ab4STaniya Das 4413d356ab4STaniya Das static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = { 4423d356ab4STaniya Das .cmd_rcgr = 0x6b068, 4433d356ab4STaniya Das .mnd_width = 0, 4443d356ab4STaniya Das .hid_width = 5, 4453d356ab4STaniya Das .parent_map = gcc_parent_map_0, 4463d356ab4STaniya Das .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 4473d356ab4STaniya Das .hw_clk_ctrl = true, 4483d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 4493d356ab4STaniya Das .name = "gcc_pcie_0_phy_rchng_clk_src", 4503d356ab4STaniya Das .parent_data = gcc_parent_data_0, 4513d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 4523d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 4533d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 4543d356ab4STaniya Das }, 4553d356ab4STaniya Das }; 4563d356ab4STaniya Das 4573d356ab4STaniya Das static struct clk_rcg2 gcc_pcie_1_aux_clk_src = { 4583d356ab4STaniya Das .cmd_rcgr = 0xac080, 4593d356ab4STaniya Das .mnd_width = 16, 4603d356ab4STaniya Das .hid_width = 5, 4613d356ab4STaniya Das .parent_map = gcc_parent_map_3, 4623d356ab4STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 4633d356ab4STaniya Das .hw_clk_ctrl = true, 4643d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 4653d356ab4STaniya Das .name = "gcc_pcie_1_aux_clk_src", 4663d356ab4STaniya Das .parent_data = gcc_parent_data_3, 4673d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 4683d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 4693d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 4703d356ab4STaniya Das }, 4713d356ab4STaniya Das }; 4723d356ab4STaniya Das 4733d356ab4STaniya Das static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = { 4743d356ab4STaniya Das .cmd_rcgr = 0xac064, 4753d356ab4STaniya Das .mnd_width = 0, 4763d356ab4STaniya Das .hid_width = 5, 4773d356ab4STaniya Das .parent_map = gcc_parent_map_0, 4783d356ab4STaniya Das .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src, 4793d356ab4STaniya Das .hw_clk_ctrl = true, 4803d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 4813d356ab4STaniya Das .name = "gcc_pcie_1_phy_rchng_clk_src", 4823d356ab4STaniya Das .parent_data = gcc_parent_data_0, 4833d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 4843d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 4853d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 4863d356ab4STaniya Das }, 4873d356ab4STaniya Das }; 4883d356ab4STaniya Das 4893d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = { 4903d356ab4STaniya Das F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0), 4913d356ab4STaniya Das { } 4923d356ab4STaniya Das }; 4933d356ab4STaniya Das 4943d356ab4STaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = { 4953d356ab4STaniya Das .cmd_rcgr = 0x33010, 4963d356ab4STaniya Das .mnd_width = 0, 4973d356ab4STaniya Das .hid_width = 5, 4983d356ab4STaniya Das .parent_map = gcc_parent_map_0, 4993d356ab4STaniya Das .freq_tbl = ftbl_gcc_pdm2_clk_src, 5003d356ab4STaniya Das .hw_clk_ctrl = true, 5013d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 5023d356ab4STaniya Das .name = "gcc_pdm2_clk_src", 5033d356ab4STaniya Das .parent_data = gcc_parent_data_0, 5043d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 5053d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 5063d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 5073d356ab4STaniya Das }, 5083d356ab4STaniya Das }; 5093d356ab4STaniya Das 5103d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_qspi_ref_clk_src[] = { 5113d356ab4STaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 5123d356ab4STaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 5133d356ab4STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 5143d356ab4STaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 5153d356ab4STaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 5163d356ab4STaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 5173d356ab4STaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 5183d356ab4STaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 5193d356ab4STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 5203d356ab4STaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 5213d356ab4STaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 5223d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 5233d356ab4STaniya Das F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375), 5243d356ab4STaniya Das F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75), 5253d356ab4STaniya Das F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625), 5263d356ab4STaniya Das F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0), 5273d356ab4STaniya Das F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0), 5283d356ab4STaniya Das F(250000000, P_GCC_GPLL7_OUT_MAIN, 2, 0, 0), 5293d356ab4STaniya Das { } 5303d356ab4STaniya Das }; 5313d356ab4STaniya Das 5323d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_qspi_ref_clk_src_init = { 5333d356ab4STaniya Das .name = "gcc_qupv3_wrap1_qspi_ref_clk_src", 5343d356ab4STaniya Das .parent_data = gcc_parent_data_4, 5353d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_4), 5363d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 5373d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 5383d356ab4STaniya Das }; 5393d356ab4STaniya Das 5403d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_qspi_ref_clk_src = { 5413d356ab4STaniya Das .cmd_rcgr = 0x188c0, 5423d356ab4STaniya Das .mnd_width = 16, 5433d356ab4STaniya Das .hid_width = 5, 5443d356ab4STaniya Das .parent_map = gcc_parent_map_4, 5453d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_qspi_ref_clk_src, 5463d356ab4STaniya Das .hw_clk_ctrl = true, 5473d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_qspi_ref_clk_src_init, 5483d356ab4STaniya Das }; 5493d356ab4STaniya Das 5503d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s0_clk_src[] = { 5513d356ab4STaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 5523d356ab4STaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 5533d356ab4STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 5543d356ab4STaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 5553d356ab4STaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 5563d356ab4STaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 5573d356ab4STaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 5583d356ab4STaniya Das F(61440000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 625), 5593d356ab4STaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 5603d356ab4STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 5613d356ab4STaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 5623d356ab4STaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 5633d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 5643d356ab4STaniya Das F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375), 5653d356ab4STaniya Das F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75), 5663d356ab4STaniya Das F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625), 5673d356ab4STaniya Das F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0), 5683d356ab4STaniya Das { } 5693d356ab4STaniya Das }; 5703d356ab4STaniya Das 5713d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = { 5723d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s0_clk_src", 5733d356ab4STaniya Das .parent_data = gcc_parent_data_0, 5743d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 5753d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 5763d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 5773d356ab4STaniya Das }; 5783d356ab4STaniya Das 5793d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = { 5803d356ab4STaniya Das .cmd_rcgr = 0x18014, 5813d356ab4STaniya Das .mnd_width = 16, 5823d356ab4STaniya Das .hid_width = 5, 5833d356ab4STaniya Das .parent_map = gcc_parent_map_0, 5843d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 5853d356ab4STaniya Das .hw_clk_ctrl = true, 5863d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init, 5873d356ab4STaniya Das }; 5883d356ab4STaniya Das 5893d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = { 5903d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s1_clk_src", 5913d356ab4STaniya Das .parent_data = gcc_parent_data_0, 5923d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 5933d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 5943d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 5953d356ab4STaniya Das }; 5963d356ab4STaniya Das 5973d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = { 5983d356ab4STaniya Das .cmd_rcgr = 0x18150, 5993d356ab4STaniya Das .mnd_width = 16, 6003d356ab4STaniya Das .hid_width = 5, 6013d356ab4STaniya Das .parent_map = gcc_parent_map_0, 6023d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 6033d356ab4STaniya Das .hw_clk_ctrl = true, 6043d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init, 6053d356ab4STaniya Das }; 6063d356ab4STaniya Das 6073d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s3_clk_src[] = { 6083d356ab4STaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 6093d356ab4STaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 6103d356ab4STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 6113d356ab4STaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 6123d356ab4STaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 6133d356ab4STaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 6143d356ab4STaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 6153d356ab4STaniya Das F(61440000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 625), 6163d356ab4STaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 6173d356ab4STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 6183d356ab4STaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 6193d356ab4STaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 6203d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 6213d356ab4STaniya Das { } 6223d356ab4STaniya Das }; 6233d356ab4STaniya Das 6243d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = { 6253d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s3_clk_src", 6263d356ab4STaniya Das .parent_data = gcc_parent_data_0, 6273d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 6283d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 6293d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 6303d356ab4STaniya Das }; 6313d356ab4STaniya Das 6323d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = { 6333d356ab4STaniya Das .cmd_rcgr = 0x182a0, 6343d356ab4STaniya Das .mnd_width = 16, 6353d356ab4STaniya Das .hid_width = 5, 6363d356ab4STaniya Das .parent_map = gcc_parent_map_0, 6373d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src, 6383d356ab4STaniya Das .hw_clk_ctrl = true, 6393d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init, 6403d356ab4STaniya Das }; 6413d356ab4STaniya Das 6423d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = { 6433d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s4_clk_src", 6443d356ab4STaniya Das .parent_data = gcc_parent_data_0, 6453d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 6463d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 6473d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 6483d356ab4STaniya Das }; 6493d356ab4STaniya Das 6503d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = { 6513d356ab4STaniya Das .cmd_rcgr = 0x183dc, 6523d356ab4STaniya Das .mnd_width = 16, 6533d356ab4STaniya Das .hid_width = 5, 6543d356ab4STaniya Das .parent_map = gcc_parent_map_0, 6553d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 6563d356ab4STaniya Das .hw_clk_ctrl = true, 6573d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init, 6583d356ab4STaniya Das }; 6593d356ab4STaniya Das 6603d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap1_s5_clk_src[] = { 6613d356ab4STaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 6623d356ab4STaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 6633d356ab4STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 6643d356ab4STaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 6653d356ab4STaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 6663d356ab4STaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 6673d356ab4STaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 6683d356ab4STaniya Das F(61440000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 625), 6693d356ab4STaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 6703d356ab4STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 6713d356ab4STaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 6723d356ab4STaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 6733d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 6743d356ab4STaniya Das F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375), 6753d356ab4STaniya Das F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75), 6763d356ab4STaniya Das F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625), 6773d356ab4STaniya Das F(128000000, P_GCC_GPLL0_OUT_MAIN, 1, 16, 75), 6783d356ab4STaniya Das { } 6793d356ab4STaniya Das }; 6803d356ab4STaniya Das 6813d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = { 6823d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s5_clk_src", 6833d356ab4STaniya Das .parent_data = gcc_parent_data_0, 6843d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 6853d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 6863d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 6873d356ab4STaniya Das }; 6883d356ab4STaniya Das 6893d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = { 6903d356ab4STaniya Das .cmd_rcgr = 0x18518, 6913d356ab4STaniya Das .mnd_width = 16, 6923d356ab4STaniya Das .hid_width = 5, 6933d356ab4STaniya Das .parent_map = gcc_parent_map_0, 6943d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s5_clk_src, 6953d356ab4STaniya Das .hw_clk_ctrl = true, 6963d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init, 6973d356ab4STaniya Das }; 6983d356ab4STaniya Das 6993d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = { 7003d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s6_clk_src", 7013d356ab4STaniya Das .parent_data = gcc_parent_data_0, 7023d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7033d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 7043d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 7053d356ab4STaniya Das }; 7063d356ab4STaniya Das 7073d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = { 7083d356ab4STaniya Das .cmd_rcgr = 0x18654, 7093d356ab4STaniya Das .mnd_width = 16, 7103d356ab4STaniya Das .hid_width = 5, 7113d356ab4STaniya Das .parent_map = gcc_parent_map_0, 7123d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src, 7133d356ab4STaniya Das .hw_clk_ctrl = true, 7143d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init, 7153d356ab4STaniya Das }; 7163d356ab4STaniya Das 7173d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = { 7183d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s7_clk_src", 7193d356ab4STaniya Das .parent_data = gcc_parent_data_0, 7203d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7213d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 7223d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 7233d356ab4STaniya Das }; 7243d356ab4STaniya Das 7253d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = { 7263d356ab4STaniya Das .cmd_rcgr = 0x18790, 7273d356ab4STaniya Das .mnd_width = 16, 7283d356ab4STaniya Das .hid_width = 5, 7293d356ab4STaniya Das .parent_map = gcc_parent_map_0, 7303d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src, 7313d356ab4STaniya Das .hw_clk_ctrl = true, 7323d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s7_clk_src_init, 7333d356ab4STaniya Das }; 7343d356ab4STaniya Das 7353d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = { 7363d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s0_clk_src", 7373d356ab4STaniya Das .parent_data = gcc_parent_data_0, 7383d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7393d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 7403d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 7413d356ab4STaniya Das }; 7423d356ab4STaniya Das 7433d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = { 7443d356ab4STaniya Das .cmd_rcgr = 0x1e014, 7453d356ab4STaniya Das .mnd_width = 16, 7463d356ab4STaniya Das .hid_width = 5, 7473d356ab4STaniya Das .parent_map = gcc_parent_map_0, 7483d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 7493d356ab4STaniya Das .hw_clk_ctrl = true, 7503d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init, 7513d356ab4STaniya Das }; 7523d356ab4STaniya Das 7533d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = { 7543d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s1_clk_src", 7553d356ab4STaniya Das .parent_data = gcc_parent_data_0, 7563d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 7573d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 7583d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 7593d356ab4STaniya Das }; 7603d356ab4STaniya Das 7613d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = { 7623d356ab4STaniya Das .cmd_rcgr = 0x1e150, 7633d356ab4STaniya Das .mnd_width = 16, 7643d356ab4STaniya Das .hid_width = 5, 7653d356ab4STaniya Das .parent_map = gcc_parent_map_0, 7663d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 7673d356ab4STaniya Das .hw_clk_ctrl = true, 7683d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init, 7693d356ab4STaniya Das }; 7703d356ab4STaniya Das 7713d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap2_s2_clk_src[] = { 7723d356ab4STaniya Das F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625), 7733d356ab4STaniya Das F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625), 7743d356ab4STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 7753d356ab4STaniya Das F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625), 7763d356ab4STaniya Das F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75), 7773d356ab4STaniya Das F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25), 7783d356ab4STaniya Das F(51200000, P_GCC_GPLL0_OUT_EVEN, 1, 64, 375), 7793d356ab4STaniya Das F(61440000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 625), 7803d356ab4STaniya Das F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75), 7813d356ab4STaniya Das F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0), 7823d356ab4STaniya Das F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15), 7833d356ab4STaniya Das F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25), 7843d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0), 7853d356ab4STaniya Das F(102400000, P_GCC_GPLL0_OUT_EVEN, 1, 128, 375), 7863d356ab4STaniya Das F(112000000, P_GCC_GPLL0_OUT_EVEN, 1, 28, 75), 7873d356ab4STaniya Das F(117964800, P_GCC_GPLL0_OUT_EVEN, 1, 6144, 15625), 7883d356ab4STaniya Das F(125000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0), 7893d356ab4STaniya Das { } 7903d356ab4STaniya Das }; 7913d356ab4STaniya Das 7923d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = { 7933d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s2_clk_src", 7943d356ab4STaniya Das .parent_data = gcc_parent_data_4, 7953d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_4), 7963d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 7973d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 7983d356ab4STaniya Das }; 7993d356ab4STaniya Das 8003d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = { 8013d356ab4STaniya Das .cmd_rcgr = 0x1e28c, 8023d356ab4STaniya Das .mnd_width = 16, 8033d356ab4STaniya Das .hid_width = 5, 8043d356ab4STaniya Das .parent_map = gcc_parent_map_4, 8053d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap2_s2_clk_src, 8063d356ab4STaniya Das .hw_clk_ctrl = true, 8073d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init, 8083d356ab4STaniya Das }; 8093d356ab4STaniya Das 8103d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = { 8113d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s3_clk_src", 8123d356ab4STaniya Das .parent_data = gcc_parent_data_0, 8133d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 8143d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 8153d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 8163d356ab4STaniya Das }; 8173d356ab4STaniya Das 8183d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = { 8193d356ab4STaniya Das .cmd_rcgr = 0x1e3c8, 8203d356ab4STaniya Das .mnd_width = 16, 8213d356ab4STaniya Das .hid_width = 5, 8223d356ab4STaniya Das .parent_map = gcc_parent_map_0, 8233d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src, 8243d356ab4STaniya Das .hw_clk_ctrl = true, 8253d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init, 8263d356ab4STaniya Das }; 8273d356ab4STaniya Das 8283d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = { 8293d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s4_clk_src", 8303d356ab4STaniya Das .parent_data = gcc_parent_data_0, 8313d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 8323d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 8333d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 8343d356ab4STaniya Das }; 8353d356ab4STaniya Das 8363d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = { 8373d356ab4STaniya Das .cmd_rcgr = 0x1e504, 8383d356ab4STaniya Das .mnd_width = 16, 8393d356ab4STaniya Das .hid_width = 5, 8403d356ab4STaniya Das .parent_map = gcc_parent_map_0, 8413d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s0_clk_src, 8423d356ab4STaniya Das .hw_clk_ctrl = true, 8433d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init, 8443d356ab4STaniya Das }; 8453d356ab4STaniya Das 8463d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = { 8473d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s5_clk_src", 8483d356ab4STaniya Das .parent_data = gcc_parent_data_0, 8493d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 8503d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 8513d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 8523d356ab4STaniya Das }; 8533d356ab4STaniya Das 8543d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = { 8553d356ab4STaniya Das .cmd_rcgr = 0x1e640, 8563d356ab4STaniya Das .mnd_width = 16, 8573d356ab4STaniya Das .hid_width = 5, 8583d356ab4STaniya Das .parent_map = gcc_parent_map_0, 8593d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s5_clk_src, 8603d356ab4STaniya Das .hw_clk_ctrl = true, 8613d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init, 8623d356ab4STaniya Das }; 8633d356ab4STaniya Das 8643d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = { 8653d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s6_clk_src", 8663d356ab4STaniya Das .parent_data = gcc_parent_data_4, 8673d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_4), 8683d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 8693d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 8703d356ab4STaniya Das }; 8713d356ab4STaniya Das 8723d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = { 8733d356ab4STaniya Das .cmd_rcgr = 0x1e77c, 8743d356ab4STaniya Das .mnd_width = 16, 8753d356ab4STaniya Das .hid_width = 5, 8763d356ab4STaniya Das .parent_map = gcc_parent_map_4, 8773d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src, 8783d356ab4STaniya Das .hw_clk_ctrl = true, 8793d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s6_clk_src_init, 8803d356ab4STaniya Das }; 8813d356ab4STaniya Das 8823d356ab4STaniya Das static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = { 8833d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s7_clk_src", 8843d356ab4STaniya Das .parent_data = gcc_parent_data_0, 8853d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 8863d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 8873d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 8883d356ab4STaniya Das }; 8893d356ab4STaniya Das 8903d356ab4STaniya Das static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = { 8913d356ab4STaniya Das .cmd_rcgr = 0x1e8b8, 8923d356ab4STaniya Das .mnd_width = 16, 8933d356ab4STaniya Das .hid_width = 5, 8943d356ab4STaniya Das .parent_map = gcc_parent_map_0, 8953d356ab4STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap1_s3_clk_src, 8963d356ab4STaniya Das .hw_clk_ctrl = true, 8973d356ab4STaniya Das .clkr.hw.init = &gcc_qupv3_wrap2_s7_clk_src_init, 8983d356ab4STaniya Das }; 8993d356ab4STaniya Das 9003d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = { 9013d356ab4STaniya Das F(144000, P_BI_TCXO, 16, 3, 25), 9023d356ab4STaniya Das F(400000, P_BI_TCXO, 12, 1, 4), 9033d356ab4STaniya Das F(20000000, P_GCC_GPLL0_OUT_EVEN, 5, 1, 3), 9043d356ab4STaniya Das F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), 9053d356ab4STaniya Das F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0), 9063d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 9073d356ab4STaniya Das F(192000000, P_GCC_GPLL8_OUT_MAIN, 2, 0, 0), 9083d356ab4STaniya Das F(384000000, P_GCC_GPLL8_OUT_MAIN, 1, 0, 0), 9093d356ab4STaniya Das { } 9103d356ab4STaniya Das }; 9113d356ab4STaniya Das 9123d356ab4STaniya Das static struct clk_rcg2 gcc_sdcc1_apps_clk_src = { 9133d356ab4STaniya Das .cmd_rcgr = 0xa9018, 9143d356ab4STaniya Das .mnd_width = 8, 9153d356ab4STaniya Das .hid_width = 5, 9163d356ab4STaniya Das .parent_map = gcc_parent_map_5, 9173d356ab4STaniya Das .freq_tbl = ftbl_gcc_sdcc1_apps_clk_src, 9183d356ab4STaniya Das .hw_clk_ctrl = true, 9193d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9203d356ab4STaniya Das .name = "gcc_sdcc1_apps_clk_src", 9213d356ab4STaniya Das .parent_data = gcc_parent_data_5, 9223d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_5), 9233d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 9243d356ab4STaniya Das .ops = &clk_rcg2_shared_floor_ops, 9253d356ab4STaniya Das }, 9263d356ab4STaniya Das }; 9273d356ab4STaniya Das 9283d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = { 9293d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 9303d356ab4STaniya Das F(150000000, P_GCC_GPLL0_OUT_EVEN, 2, 0, 0), 9313d356ab4STaniya Das F(300000000, P_GCC_GPLL0_OUT_EVEN, 1, 0, 0), 9323d356ab4STaniya Das { } 9333d356ab4STaniya Das }; 9343d356ab4STaniya Das 9353d356ab4STaniya Das static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = { 9363d356ab4STaniya Das .cmd_rcgr = 0xa9040, 9373d356ab4STaniya Das .mnd_width = 0, 9383d356ab4STaniya Das .hid_width = 5, 9393d356ab4STaniya Das .parent_map = gcc_parent_map_5, 9403d356ab4STaniya Das .freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src, 9413d356ab4STaniya Das .hw_clk_ctrl = true, 9423d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9433d356ab4STaniya Das .name = "gcc_sdcc1_ice_core_clk_src", 9443d356ab4STaniya Das .parent_data = gcc_parent_data_5, 9453d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_5), 9463d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 9473d356ab4STaniya Das .ops = &clk_rcg2_shared_floor_ops, 9483d356ab4STaniya Das }, 9493d356ab4STaniya Das }; 9503d356ab4STaniya Das 9513d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = { 9523d356ab4STaniya Das F(400000, P_BI_TCXO, 12, 1, 4), 9533d356ab4STaniya Das F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), 9543d356ab4STaniya Das F(37500000, P_GCC_GPLL0_OUT_EVEN, 8, 0, 0), 9553d356ab4STaniya Das F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0), 9563d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 9573d356ab4STaniya Das F(202000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0), 9583d356ab4STaniya Das { } 9593d356ab4STaniya Das }; 9603d356ab4STaniya Das 9613d356ab4STaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = { 9623d356ab4STaniya Das .cmd_rcgr = 0x1401c, 9633d356ab4STaniya Das .mnd_width = 8, 9643d356ab4STaniya Das .hid_width = 5, 9653d356ab4STaniya Das .parent_map = gcc_parent_map_7, 9663d356ab4STaniya Das .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src, 9673d356ab4STaniya Das .hw_clk_ctrl = true, 9683d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9693d356ab4STaniya Das .name = "gcc_sdcc2_apps_clk_src", 9703d356ab4STaniya Das .parent_data = gcc_parent_data_7, 9713d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_7), 9723d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 9733d356ab4STaniya Das .ops = &clk_rcg2_shared_floor_ops, 9743d356ab4STaniya Das }, 9753d356ab4STaniya Das }; 9763d356ab4STaniya Das 9773d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = { 9783d356ab4STaniya Das F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0), 9793d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 9803d356ab4STaniya Das F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0), 9813d356ab4STaniya Das F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0), 9823d356ab4STaniya Das { } 9833d356ab4STaniya Das }; 9843d356ab4STaniya Das 9853d356ab4STaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = { 9863d356ab4STaniya Das .cmd_rcgr = 0x77034, 9873d356ab4STaniya Das .mnd_width = 8, 9883d356ab4STaniya Das .hid_width = 5, 9893d356ab4STaniya Das .parent_map = gcc_parent_map_2, 9903d356ab4STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src, 9913d356ab4STaniya Das .hw_clk_ctrl = true, 9923d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 9933d356ab4STaniya Das .name = "gcc_ufs_phy_axi_clk_src", 9943d356ab4STaniya Das .parent_data = gcc_parent_data_2, 9953d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 9963d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 9973d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 9983d356ab4STaniya Das }, 9993d356ab4STaniya Das }; 10003d356ab4STaniya Das 10013d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = { 10023d356ab4STaniya Das F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0), 10033d356ab4STaniya Das F(201500000, P_GCC_GPLL4_OUT_MAIN, 4, 0, 0), 10043d356ab4STaniya Das F(403000000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0), 10053d356ab4STaniya Das { } 10063d356ab4STaniya Das }; 10073d356ab4STaniya Das 10083d356ab4STaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = { 10093d356ab4STaniya Das .cmd_rcgr = 0x7708c, 10103d356ab4STaniya Das .mnd_width = 0, 10113d356ab4STaniya Das .hid_width = 5, 10123d356ab4STaniya Das .parent_map = gcc_parent_map_2, 10133d356ab4STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src, 10143d356ab4STaniya Das .hw_clk_ctrl = true, 10153d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 10163d356ab4STaniya Das .name = "gcc_ufs_phy_ice_core_clk_src", 10173d356ab4STaniya Das .parent_data = gcc_parent_data_2, 10183d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 10193d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 10203d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 10213d356ab4STaniya Das }, 10223d356ab4STaniya Das }; 10233d356ab4STaniya Das 10243d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_phy_aux_clk_src[] = { 10253d356ab4STaniya Das F(9600000, P_BI_TCXO, 2, 0, 0), 10263d356ab4STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 10273d356ab4STaniya Das { } 10283d356ab4STaniya Das }; 10293d356ab4STaniya Das 10303d356ab4STaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = { 10313d356ab4STaniya Das .cmd_rcgr = 0x770c0, 10323d356ab4STaniya Das .mnd_width = 0, 10333d356ab4STaniya Das .hid_width = 5, 10343d356ab4STaniya Das .parent_map = gcc_parent_map_6, 10353d356ab4STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_phy_aux_clk_src, 10363d356ab4STaniya Das .hw_clk_ctrl = true, 10373d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 10383d356ab4STaniya Das .name = "gcc_ufs_phy_phy_aux_clk_src", 10393d356ab4STaniya Das .parent_data = gcc_parent_data_6, 10403d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_6), 10413d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 10423d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 10433d356ab4STaniya Das }, 10443d356ab4STaniya Das }; 10453d356ab4STaniya Das 10463d356ab4STaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = { 10473d356ab4STaniya Das .cmd_rcgr = 0x770a4, 10483d356ab4STaniya Das .mnd_width = 0, 10493d356ab4STaniya Das .hid_width = 5, 10503d356ab4STaniya Das .parent_map = gcc_parent_map_2, 10513d356ab4STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src, 10523d356ab4STaniya Das .hw_clk_ctrl = true, 10533d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 10543d356ab4STaniya Das .name = "gcc_ufs_phy_unipro_core_clk_src", 10553d356ab4STaniya Das .parent_data = gcc_parent_data_2, 10563d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_2), 10573d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 10583d356ab4STaniya Das .ops = &clk_rcg2_shared_no_init_park_ops, 10593d356ab4STaniya Das }, 10603d356ab4STaniya Das }; 10613d356ab4STaniya Das 10623d356ab4STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = { 10633d356ab4STaniya Das F(66666667, P_GCC_GPLL0_OUT_EVEN, 4.5, 0, 0), 10643d356ab4STaniya Das F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0), 10653d356ab4STaniya Das F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0), 10663d356ab4STaniya Das F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0), 10673d356ab4STaniya Das { } 10683d356ab4STaniya Das }; 10693d356ab4STaniya Das 10703d356ab4STaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = { 10713d356ab4STaniya Das .cmd_rcgr = 0x39030, 10723d356ab4STaniya Das .mnd_width = 8, 10733d356ab4STaniya Das .hid_width = 5, 10743d356ab4STaniya Das .parent_map = gcc_parent_map_0, 10753d356ab4STaniya Das .freq_tbl = ftbl_gcc_usb30_prim_master_clk_src, 10763d356ab4STaniya Das .hw_clk_ctrl = true, 10773d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 10783d356ab4STaniya Das .name = "gcc_usb30_prim_master_clk_src", 10793d356ab4STaniya Das .parent_data = gcc_parent_data_0, 10803d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 10813d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 10823d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 10833d356ab4STaniya Das }, 10843d356ab4STaniya Das }; 10853d356ab4STaniya Das 10863d356ab4STaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = { 10873d356ab4STaniya Das .cmd_rcgr = 0x39048, 10883d356ab4STaniya Das .mnd_width = 0, 10893d356ab4STaniya Das .hid_width = 5, 10903d356ab4STaniya Das .parent_map = gcc_parent_map_0, 10913d356ab4STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 10923d356ab4STaniya Das .hw_clk_ctrl = true, 10933d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 10943d356ab4STaniya Das .name = "gcc_usb30_prim_mock_utmi_clk_src", 10953d356ab4STaniya Das .parent_data = gcc_parent_data_0, 10963d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_0), 10973d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 10983d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 10993d356ab4STaniya Das }, 11003d356ab4STaniya Das }; 11013d356ab4STaniya Das 11023d356ab4STaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = { 11033d356ab4STaniya Das .cmd_rcgr = 0x39074, 11043d356ab4STaniya Das .mnd_width = 0, 11053d356ab4STaniya Das .hid_width = 5, 11063d356ab4STaniya Das .parent_map = gcc_parent_map_3, 11073d356ab4STaniya Das .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 11083d356ab4STaniya Das .hw_clk_ctrl = true, 11093d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 11103d356ab4STaniya Das .name = "gcc_usb3_prim_phy_aux_clk_src", 11113d356ab4STaniya Das .parent_data = gcc_parent_data_3, 11123d356ab4STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 11133d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 11143d356ab4STaniya Das .ops = &clk_rcg2_shared_ops, 11153d356ab4STaniya Das }, 11163d356ab4STaniya Das }; 11173d356ab4STaniya Das 11183d356ab4STaniya Das static struct clk_regmap_div gcc_pcie_0_pipe_div2_clk_src = { 11193d356ab4STaniya Das .reg = 0x6b0a4, 11203d356ab4STaniya Das .shift = 0, 11213d356ab4STaniya Das .width = 4, 11223d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 11233d356ab4STaniya Das .name = "gcc_pcie_0_pipe_div2_clk_src", 11243d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 11253d356ab4STaniya Das &gcc_pcie_0_pipe_clk_src.clkr.hw, 11263d356ab4STaniya Das }, 11273d356ab4STaniya Das .num_parents = 1, 11283d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 11293d356ab4STaniya Das .ops = &clk_regmap_div_ro_ops, 11303d356ab4STaniya Das }, 11313d356ab4STaniya Das }; 11323d356ab4STaniya Das 11333d356ab4STaniya Das static struct clk_regmap_div gcc_pcie_1_pipe_div2_clk_src = { 11343d356ab4STaniya Das .reg = 0xac0a0, 11353d356ab4STaniya Das .shift = 0, 11363d356ab4STaniya Das .width = 4, 11373d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 11383d356ab4STaniya Das .name = "gcc_pcie_1_pipe_div2_clk_src", 11393d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 11403d356ab4STaniya Das &gcc_pcie_1_pipe_clk_src.clkr.hw, 11413d356ab4STaniya Das }, 11423d356ab4STaniya Das .num_parents = 1, 11433d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 11443d356ab4STaniya Das .ops = &clk_regmap_div_ro_ops, 11453d356ab4STaniya Das }, 11463d356ab4STaniya Das }; 11473d356ab4STaniya Das 11483d356ab4STaniya Das static struct clk_regmap_div gcc_qupv3_wrap1_s2_clk_src = { 11493d356ab4STaniya Das .reg = 0x1828c, 11503d356ab4STaniya Das .shift = 0, 11513d356ab4STaniya Das .width = 4, 11523d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 11533d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s2_clk_src", 11543d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 11553d356ab4STaniya Das &gcc_qupv3_wrap1_qspi_ref_clk_src.clkr.hw, 11563d356ab4STaniya Das }, 11573d356ab4STaniya Das .num_parents = 1, 11583d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 11593d356ab4STaniya Das .ops = &clk_regmap_div_ro_ops, 11603d356ab4STaniya Das }, 11613d356ab4STaniya Das }; 11623d356ab4STaniya Das 11633d356ab4STaniya Das static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = { 11643d356ab4STaniya Das .reg = 0x39060, 11653d356ab4STaniya Das .shift = 0, 11663d356ab4STaniya Das .width = 4, 11673d356ab4STaniya Das .clkr.hw.init = &(const struct clk_init_data) { 11683d356ab4STaniya Das .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src", 11693d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 11703d356ab4STaniya Das &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw, 11713d356ab4STaniya Das }, 11723d356ab4STaniya Das .num_parents = 1, 11733d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 11743d356ab4STaniya Das .ops = &clk_regmap_div_ro_ops, 11753d356ab4STaniya Das }, 11763d356ab4STaniya Das }; 11773d356ab4STaniya Das 11783d356ab4STaniya Das static struct clk_branch gcc_aggre_noc_pcie_axi_clk = { 11793d356ab4STaniya Das .halt_reg = 0x10068, 11803d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 11813d356ab4STaniya Das .hwcg_reg = 0x10068, 11823d356ab4STaniya Das .hwcg_bit = 1, 11833d356ab4STaniya Das .clkr = { 11843d356ab4STaniya Das .enable_reg = 0x52000, 11853d356ab4STaniya Das .enable_mask = BIT(30), 11863d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 11873d356ab4STaniya Das .name = "gcc_aggre_noc_pcie_axi_clk", 11883d356ab4STaniya Das .ops = &clk_branch2_ops, 11893d356ab4STaniya Das }, 11903d356ab4STaniya Das }, 11913d356ab4STaniya Das }; 11923d356ab4STaniya Das 11933d356ab4STaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = { 11943d356ab4STaniya Das .halt_reg = 0x770f4, 11953d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 11963d356ab4STaniya Das .hwcg_reg = 0x770f4, 11973d356ab4STaniya Das .hwcg_bit = 1, 11983d356ab4STaniya Das .clkr = { 11993d356ab4STaniya Das .enable_reg = 0x770f4, 12003d356ab4STaniya Das .enable_mask = BIT(0), 12013d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 12023d356ab4STaniya Das .name = "gcc_aggre_ufs_phy_axi_clk", 12033d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 12043d356ab4STaniya Das &gcc_ufs_phy_axi_clk_src.clkr.hw, 12053d356ab4STaniya Das }, 12063d356ab4STaniya Das .num_parents = 1, 12073d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 12083d356ab4STaniya Das .ops = &clk_branch2_ops, 12093d356ab4STaniya Das }, 12103d356ab4STaniya Das }, 12113d356ab4STaniya Das }; 12123d356ab4STaniya Das 12133d356ab4STaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = { 12143d356ab4STaniya Das .halt_reg = 0x39094, 12153d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 12163d356ab4STaniya Das .clkr = { 12173d356ab4STaniya Das .enable_reg = 0x39094, 12183d356ab4STaniya Das .enable_mask = BIT(0), 12193d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 12203d356ab4STaniya Das .name = "gcc_aggre_usb3_prim_axi_clk", 12213d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 12223d356ab4STaniya Das &gcc_usb30_prim_master_clk_src.clkr.hw, 12233d356ab4STaniya Das }, 12243d356ab4STaniya Das .num_parents = 1, 12253d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 12263d356ab4STaniya Das .ops = &clk_branch2_ops, 12273d356ab4STaniya Das }, 12283d356ab4STaniya Das }, 12293d356ab4STaniya Das }; 12303d356ab4STaniya Das 12313d356ab4STaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = { 12323d356ab4STaniya Das .halt_reg = 0x38004, 12333d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 12343d356ab4STaniya Das .hwcg_reg = 0x38004, 12353d356ab4STaniya Das .hwcg_bit = 1, 12363d356ab4STaniya Das .clkr = { 12373d356ab4STaniya Das .enable_reg = 0x52000, 12383d356ab4STaniya Das .enable_mask = BIT(10), 12393d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 12403d356ab4STaniya Das .name = "gcc_boot_rom_ahb_clk", 12413d356ab4STaniya Das .ops = &clk_branch2_ops, 12423d356ab4STaniya Das }, 12433d356ab4STaniya Das }, 12443d356ab4STaniya Das }; 12453d356ab4STaniya Das 12463d356ab4STaniya Das static struct clk_branch gcc_camera_hf_axi_clk = { 12473d356ab4STaniya Das .halt_reg = 0x26014, 12483d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 12493d356ab4STaniya Das .hwcg_reg = 0x26014, 12503d356ab4STaniya Das .hwcg_bit = 1, 12513d356ab4STaniya Das .clkr = { 12523d356ab4STaniya Das .enable_reg = 0x26014, 12533d356ab4STaniya Das .enable_mask = BIT(0), 12543d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 12553d356ab4STaniya Das .name = "gcc_camera_hf_axi_clk", 12563d356ab4STaniya Das .ops = &clk_branch2_ops, 12573d356ab4STaniya Das }, 12583d356ab4STaniya Das }, 12593d356ab4STaniya Das }; 12603d356ab4STaniya Das 12613d356ab4STaniya Das static struct clk_branch gcc_camera_sf_axi_clk = { 12623d356ab4STaniya Das .halt_reg = 0x26024, 12633d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 12643d356ab4STaniya Das .hwcg_reg = 0x26024, 12653d356ab4STaniya Das .hwcg_bit = 1, 12663d356ab4STaniya Das .clkr = { 12673d356ab4STaniya Das .enable_reg = 0x26024, 12683d356ab4STaniya Das .enable_mask = BIT(0), 12693d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 12703d356ab4STaniya Das .name = "gcc_camera_sf_axi_clk", 12713d356ab4STaniya Das .ops = &clk_branch2_ops, 12723d356ab4STaniya Das }, 12733d356ab4STaniya Das }, 12743d356ab4STaniya Das }; 12753d356ab4STaniya Das 12763d356ab4STaniya Das static struct clk_branch gcc_cfg_noc_pcie_anoc_ahb_clk = { 12773d356ab4STaniya Das .halt_reg = 0x10050, 12783d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 12793d356ab4STaniya Das .hwcg_reg = 0x10050, 12803d356ab4STaniya Das .hwcg_bit = 1, 12813d356ab4STaniya Das .clkr = { 12823d356ab4STaniya Das .enable_reg = 0x52000, 12833d356ab4STaniya Das .enable_mask = BIT(20), 12843d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 12853d356ab4STaniya Das .name = "gcc_cfg_noc_pcie_anoc_ahb_clk", 12863d356ab4STaniya Das .ops = &clk_branch2_ops, 12873d356ab4STaniya Das }, 12883d356ab4STaniya Das }, 12893d356ab4STaniya Das }; 12903d356ab4STaniya Das 12913d356ab4STaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = { 12923d356ab4STaniya Das .halt_reg = 0x39090, 12933d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 12943d356ab4STaniya Das .clkr = { 12953d356ab4STaniya Das .enable_reg = 0x39090, 12963d356ab4STaniya Das .enable_mask = BIT(0), 12973d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 12983d356ab4STaniya Das .name = "gcc_cfg_noc_usb3_prim_axi_clk", 12993d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 13003d356ab4STaniya Das &gcc_usb30_prim_master_clk_src.clkr.hw, 13013d356ab4STaniya Das }, 13023d356ab4STaniya Das .num_parents = 1, 13033d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 13043d356ab4STaniya Das .ops = &clk_branch2_ops, 13053d356ab4STaniya Das }, 13063d356ab4STaniya Das }, 13073d356ab4STaniya Das }; 13083d356ab4STaniya Das 13093d356ab4STaniya Das static struct clk_branch gcc_cnoc_pcie_sf_axi_clk = { 13103d356ab4STaniya Das .halt_reg = 0x10058, 13113d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 13123d356ab4STaniya Das .hwcg_reg = 0x10058, 13133d356ab4STaniya Das .hwcg_bit = 1, 13143d356ab4STaniya Das .clkr = { 13153d356ab4STaniya Das .enable_reg = 0x52008, 13163d356ab4STaniya Das .enable_mask = BIT(6), 13173d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 13183d356ab4STaniya Das .name = "gcc_cnoc_pcie_sf_axi_clk", 13193d356ab4STaniya Das .ops = &clk_branch2_ops, 13203d356ab4STaniya Das }, 13213d356ab4STaniya Das }, 13223d356ab4STaniya Das }; 13233d356ab4STaniya Das 13243d356ab4STaniya Das static struct clk_branch gcc_ddrss_gpu_axi_clk = { 13253d356ab4STaniya Das .halt_reg = 0x71158, 13263d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 13273d356ab4STaniya Das .hwcg_reg = 0x71158, 13283d356ab4STaniya Das .hwcg_bit = 1, 13293d356ab4STaniya Das .clkr = { 13303d356ab4STaniya Das .enable_reg = 0x71158, 13313d356ab4STaniya Das .enable_mask = BIT(0), 13323d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 13333d356ab4STaniya Das .name = "gcc_ddrss_gpu_axi_clk", 13343d356ab4STaniya Das .ops = &clk_branch2_aon_ops, 13353d356ab4STaniya Das }, 13363d356ab4STaniya Das }, 13373d356ab4STaniya Das }; 13383d356ab4STaniya Das 13393d356ab4STaniya Das static struct clk_branch gcc_ddrss_pcie_sf_qtb_clk = { 13403d356ab4STaniya Das .halt_reg = 0x1007c, 13413d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 13423d356ab4STaniya Das .hwcg_reg = 0x1007c, 13433d356ab4STaniya Das .hwcg_bit = 1, 13443d356ab4STaniya Das .clkr = { 13453d356ab4STaniya Das .enable_reg = 0x52000, 13463d356ab4STaniya Das .enable_mask = BIT(19), 13473d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 13483d356ab4STaniya Das .name = "gcc_ddrss_pcie_sf_qtb_clk", 13493d356ab4STaniya Das .ops = &clk_branch2_ops, 13503d356ab4STaniya Das }, 13513d356ab4STaniya Das }, 13523d356ab4STaniya Das }; 13533d356ab4STaniya Das 13543d356ab4STaniya Das static struct clk_branch gcc_disp_hf_axi_clk = { 13553d356ab4STaniya Das .halt_reg = 0x27008, 13563d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 13573d356ab4STaniya Das .clkr = { 13583d356ab4STaniya Das .enable_reg = 0x27008, 13593d356ab4STaniya Das .enable_mask = BIT(0), 13603d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 13613d356ab4STaniya Das .name = "gcc_disp_hf_axi_clk", 13623d356ab4STaniya Das .ops = &clk_branch2_ops, 13633d356ab4STaniya Das }, 13643d356ab4STaniya Das }, 13653d356ab4STaniya Das }; 13663d356ab4STaniya Das 13673d356ab4STaniya Das static struct clk_branch gcc_gp1_clk = { 13683d356ab4STaniya Das .halt_reg = 0x64000, 13693d356ab4STaniya Das .halt_check = BRANCH_HALT, 13703d356ab4STaniya Das .clkr = { 13713d356ab4STaniya Das .enable_reg = 0x64000, 13723d356ab4STaniya Das .enable_mask = BIT(0), 13733d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 13743d356ab4STaniya Das .name = "gcc_gp1_clk", 13753d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 13763d356ab4STaniya Das &gcc_gp1_clk_src.clkr.hw, 13773d356ab4STaniya Das }, 13783d356ab4STaniya Das .num_parents = 1, 13793d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 13803d356ab4STaniya Das .ops = &clk_branch2_ops, 13813d356ab4STaniya Das }, 13823d356ab4STaniya Das }, 13833d356ab4STaniya Das }; 13843d356ab4STaniya Das 13853d356ab4STaniya Das static struct clk_branch gcc_gp2_clk = { 13863d356ab4STaniya Das .halt_reg = 0x65000, 13873d356ab4STaniya Das .halt_check = BRANCH_HALT, 13883d356ab4STaniya Das .clkr = { 13893d356ab4STaniya Das .enable_reg = 0x65000, 13903d356ab4STaniya Das .enable_mask = BIT(0), 13913d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 13923d356ab4STaniya Das .name = "gcc_gp2_clk", 13933d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 13943d356ab4STaniya Das &gcc_gp2_clk_src.clkr.hw, 13953d356ab4STaniya Das }, 13963d356ab4STaniya Das .num_parents = 1, 13973d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 13983d356ab4STaniya Das .ops = &clk_branch2_ops, 13993d356ab4STaniya Das }, 14003d356ab4STaniya Das }, 14013d356ab4STaniya Das }; 14023d356ab4STaniya Das 14033d356ab4STaniya Das static struct clk_branch gcc_gp3_clk = { 14043d356ab4STaniya Das .halt_reg = 0x66000, 14053d356ab4STaniya Das .halt_check = BRANCH_HALT, 14063d356ab4STaniya Das .clkr = { 14073d356ab4STaniya Das .enable_reg = 0x66000, 14083d356ab4STaniya Das .enable_mask = BIT(0), 14093d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 14103d356ab4STaniya Das .name = "gcc_gp3_clk", 14113d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 14123d356ab4STaniya Das &gcc_gp3_clk_src.clkr.hw, 14133d356ab4STaniya Das }, 14143d356ab4STaniya Das .num_parents = 1, 14153d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 14163d356ab4STaniya Das .ops = &clk_branch2_ops, 14173d356ab4STaniya Das }, 14183d356ab4STaniya Das }, 14193d356ab4STaniya Das }; 14203d356ab4STaniya Das 14213d356ab4STaniya Das static struct clk_branch gcc_gpu_gemnoc_gfx_clk = { 14223d356ab4STaniya Das .halt_reg = 0x71010, 14233d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 14243d356ab4STaniya Das .hwcg_reg = 0x71010, 14253d356ab4STaniya Das .hwcg_bit = 1, 14263d356ab4STaniya Das .clkr = { 14273d356ab4STaniya Das .enable_reg = 0x71010, 14283d356ab4STaniya Das .enable_mask = BIT(0), 14293d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 14303d356ab4STaniya Das .name = "gcc_gpu_gemnoc_gfx_clk", 14313d356ab4STaniya Das .ops = &clk_branch2_ops, 14323d356ab4STaniya Das }, 14333d356ab4STaniya Das }, 14343d356ab4STaniya Das }; 14353d356ab4STaniya Das 14363d356ab4STaniya Das static struct clk_branch gcc_gpu_gpll0_cph_clk_src = { 14373d356ab4STaniya Das .halt_reg = 0x71150, 14383d356ab4STaniya Das .halt_check = BRANCH_HALT_ENABLE_VOTED, 14393d356ab4STaniya Das .clkr = { 14403d356ab4STaniya Das .enable_reg = 0x71150, 14413d356ab4STaniya Das .enable_mask = BIT(0), 14423d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 14433d356ab4STaniya Das .name = "gcc_gpu_gpll0_cph_clk_src", 14443d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 14453d356ab4STaniya Das &gcc_gpll0.clkr.hw, 14463d356ab4STaniya Das }, 14473d356ab4STaniya Das .num_parents = 1, 14483d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 14493d356ab4STaniya Das .ops = &clk_branch2_ops, 14503d356ab4STaniya Das }, 14513d356ab4STaniya Das }, 14523d356ab4STaniya Das }; 14533d356ab4STaniya Das 14543d356ab4STaniya Das static struct clk_branch gcc_gpu_gpll0_div_cph_clk_src = { 14553d356ab4STaniya Das .halt_reg = 0x71154, 14563d356ab4STaniya Das .halt_check = BRANCH_HALT_ENABLE_VOTED, 14573d356ab4STaniya Das .clkr = { 14583d356ab4STaniya Das .enable_reg = 0x71154, 14593d356ab4STaniya Das .enable_mask = BIT(0), 14603d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 14613d356ab4STaniya Das .name = "gcc_gpu_gpll0_div_cph_clk_src", 14623d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 14633d356ab4STaniya Das &gcc_gpll0_out_even.clkr.hw, 14643d356ab4STaniya Das }, 14653d356ab4STaniya Das .num_parents = 1, 14663d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 14673d356ab4STaniya Das .ops = &clk_branch2_ops, 14683d356ab4STaniya Das }, 14693d356ab4STaniya Das }, 14703d356ab4STaniya Das }; 14713d356ab4STaniya Das 14723d356ab4STaniya Das static struct clk_branch gcc_gpu_smmu_vote_clk = { 14733d356ab4STaniya Das .halt_reg = 0x7d000, 14743d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 14753d356ab4STaniya Das .clkr = { 14763d356ab4STaniya Das .enable_reg = 0x7d000, 14773d356ab4STaniya Das .enable_mask = BIT(0), 14783d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 14793d356ab4STaniya Das .name = "gcc_gpu_smmu_vote_clk", 14803d356ab4STaniya Das .ops = &clk_branch2_ops, 14813d356ab4STaniya Das }, 14823d356ab4STaniya Das }, 14833d356ab4STaniya Das }; 14843d356ab4STaniya Das 14853d356ab4STaniya Das static struct clk_branch gcc_mmu_tcu_vote_clk = { 14863d356ab4STaniya Das .halt_reg = 0x7d02c, 14873d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 14883d356ab4STaniya Das .clkr = { 14893d356ab4STaniya Das .enable_reg = 0x7d02c, 14903d356ab4STaniya Das .enable_mask = BIT(0), 14913d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 14923d356ab4STaniya Das .name = "gcc_mmu_tcu_vote_clk", 14933d356ab4STaniya Das .ops = &clk_branch2_ops, 14943d356ab4STaniya Das }, 14953d356ab4STaniya Das }, 14963d356ab4STaniya Das }; 14973d356ab4STaniya Das 14983d356ab4STaniya Das static struct clk_branch gcc_pcie_0_aux_clk = { 14993d356ab4STaniya Das .halt_reg = 0x6b044, 15003d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 15013d356ab4STaniya Das .clkr = { 15023d356ab4STaniya Das .enable_reg = 0x52008, 15033d356ab4STaniya Das .enable_mask = BIT(3), 15043d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 15053d356ab4STaniya Das .name = "gcc_pcie_0_aux_clk", 15063d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 15073d356ab4STaniya Das &gcc_pcie_0_aux_clk_src.clkr.hw, 15083d356ab4STaniya Das }, 15093d356ab4STaniya Das .num_parents = 1, 15103d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 15113d356ab4STaniya Das .ops = &clk_branch2_ops, 15123d356ab4STaniya Das }, 15133d356ab4STaniya Das }, 15143d356ab4STaniya Das }; 15153d356ab4STaniya Das 15163d356ab4STaniya Das static struct clk_branch gcc_pcie_0_cfg_ahb_clk = { 15173d356ab4STaniya Das .halt_reg = 0x6b040, 15183d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 15193d356ab4STaniya Das .hwcg_reg = 0x6b040, 15203d356ab4STaniya Das .hwcg_bit = 1, 15213d356ab4STaniya Das .clkr = { 15223d356ab4STaniya Das .enable_reg = 0x52008, 15233d356ab4STaniya Das .enable_mask = BIT(2), 15243d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 15253d356ab4STaniya Das .name = "gcc_pcie_0_cfg_ahb_clk", 15263d356ab4STaniya Das .ops = &clk_branch2_ops, 15273d356ab4STaniya Das }, 15283d356ab4STaniya Das }, 15293d356ab4STaniya Das }; 15303d356ab4STaniya Das 15313d356ab4STaniya Das static struct clk_branch gcc_pcie_0_mstr_axi_clk = { 15323d356ab4STaniya Das .halt_reg = 0x6b030, 15333d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 15343d356ab4STaniya Das .hwcg_reg = 0x6b030, 15353d356ab4STaniya Das .hwcg_bit = 1, 15363d356ab4STaniya Das .clkr = { 15373d356ab4STaniya Das .enable_reg = 0x52008, 15383d356ab4STaniya Das .enable_mask = BIT(1), 15393d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 15403d356ab4STaniya Das .name = "gcc_pcie_0_mstr_axi_clk", 15413d356ab4STaniya Das .ops = &clk_branch2_ops, 15423d356ab4STaniya Das }, 15433d356ab4STaniya Das }, 15443d356ab4STaniya Das }; 15453d356ab4STaniya Das 15463d356ab4STaniya Das static struct clk_branch gcc_pcie_0_phy_rchng_clk = { 15473d356ab4STaniya Das .halt_reg = 0x6b064, 15483d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 15493d356ab4STaniya Das .clkr = { 15503d356ab4STaniya Das .enable_reg = 0x52000, 15513d356ab4STaniya Das .enable_mask = BIT(22), 15523d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 15533d356ab4STaniya Das .name = "gcc_pcie_0_phy_rchng_clk", 15543d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 15553d356ab4STaniya Das &gcc_pcie_0_phy_rchng_clk_src.clkr.hw, 15563d356ab4STaniya Das }, 15573d356ab4STaniya Das .num_parents = 1, 15583d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 15593d356ab4STaniya Das .ops = &clk_branch2_ops, 15603d356ab4STaniya Das }, 15613d356ab4STaniya Das }, 15623d356ab4STaniya Das }; 15633d356ab4STaniya Das 15643d356ab4STaniya Das static struct clk_branch gcc_pcie_0_pipe_clk = { 15653d356ab4STaniya Das .halt_reg = 0x6b054, 15663d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 15673d356ab4STaniya Das .clkr = { 15683d356ab4STaniya Das .enable_reg = 0x52008, 15693d356ab4STaniya Das .enable_mask = BIT(4), 15703d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 15713d356ab4STaniya Das .name = "gcc_pcie_0_pipe_clk", 15723d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 15733d356ab4STaniya Das &gcc_pcie_0_pipe_clk_src.clkr.hw, 15743d356ab4STaniya Das }, 15753d356ab4STaniya Das .num_parents = 1, 15763d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 15773d356ab4STaniya Das .ops = &clk_branch2_ops, 15783d356ab4STaniya Das }, 15793d356ab4STaniya Das }, 15803d356ab4STaniya Das }; 15813d356ab4STaniya Das 15823d356ab4STaniya Das static struct clk_branch gcc_pcie_0_pipe_div2_clk = { 15833d356ab4STaniya Das .halt_reg = 0x6b0a8, 15843d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 15853d356ab4STaniya Das .clkr = { 15863d356ab4STaniya Das .enable_reg = 0x52018, 15873d356ab4STaniya Das .enable_mask = BIT(13), 15883d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 15893d356ab4STaniya Das .name = "gcc_pcie_0_pipe_div2_clk", 15903d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 15913d356ab4STaniya Das &gcc_pcie_0_pipe_div2_clk_src.clkr.hw, 15923d356ab4STaniya Das }, 15933d356ab4STaniya Das .num_parents = 1, 15943d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 15953d356ab4STaniya Das .ops = &clk_branch2_ops, 15963d356ab4STaniya Das }, 15973d356ab4STaniya Das }, 15983d356ab4STaniya Das }; 15993d356ab4STaniya Das 16003d356ab4STaniya Das static struct clk_branch gcc_pcie_0_slv_axi_clk = { 16013d356ab4STaniya Das .halt_reg = 0x6b020, 16023d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 16033d356ab4STaniya Das .hwcg_reg = 0x6b020, 16043d356ab4STaniya Das .hwcg_bit = 1, 16053d356ab4STaniya Das .clkr = { 16063d356ab4STaniya Das .enable_reg = 0x52008, 16073d356ab4STaniya Das .enable_mask = BIT(0), 16083d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 16093d356ab4STaniya Das .name = "gcc_pcie_0_slv_axi_clk", 16103d356ab4STaniya Das .ops = &clk_branch2_ops, 16113d356ab4STaniya Das }, 16123d356ab4STaniya Das }, 16133d356ab4STaniya Das }; 16143d356ab4STaniya Das 16153d356ab4STaniya Das static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = { 16163d356ab4STaniya Das .halt_reg = 0x6b01c, 16173d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 16183d356ab4STaniya Das .clkr = { 16193d356ab4STaniya Das .enable_reg = 0x52008, 16203d356ab4STaniya Das .enable_mask = BIT(5), 16213d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 16223d356ab4STaniya Das .name = "gcc_pcie_0_slv_q2a_axi_clk", 16233d356ab4STaniya Das .ops = &clk_branch2_ops, 16243d356ab4STaniya Das }, 16253d356ab4STaniya Das }, 16263d356ab4STaniya Das }; 16273d356ab4STaniya Das 16283d356ab4STaniya Das static struct clk_branch gcc_pcie_1_aux_clk = { 16293d356ab4STaniya Das .halt_reg = 0xac040, 16303d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 16313d356ab4STaniya Das .clkr = { 16323d356ab4STaniya Das .enable_reg = 0x52000, 16333d356ab4STaniya Das .enable_mask = BIT(29), 16343d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 16353d356ab4STaniya Das .name = "gcc_pcie_1_aux_clk", 16363d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 16373d356ab4STaniya Das &gcc_pcie_1_aux_clk_src.clkr.hw, 16383d356ab4STaniya Das }, 16393d356ab4STaniya Das .num_parents = 1, 16403d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 16413d356ab4STaniya Das .ops = &clk_branch2_ops, 16423d356ab4STaniya Das }, 16433d356ab4STaniya Das }, 16443d356ab4STaniya Das }; 16453d356ab4STaniya Das 16463d356ab4STaniya Das static struct clk_branch gcc_pcie_1_cfg_ahb_clk = { 16473d356ab4STaniya Das .halt_reg = 0xac03c, 16483d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 16493d356ab4STaniya Das .hwcg_reg = 0xac03c, 16503d356ab4STaniya Das .hwcg_bit = 1, 16513d356ab4STaniya Das .clkr = { 16523d356ab4STaniya Das .enable_reg = 0x52000, 16533d356ab4STaniya Das .enable_mask = BIT(28), 16543d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 16553d356ab4STaniya Das .name = "gcc_pcie_1_cfg_ahb_clk", 16563d356ab4STaniya Das .ops = &clk_branch2_ops, 16573d356ab4STaniya Das }, 16583d356ab4STaniya Das }, 16593d356ab4STaniya Das }; 16603d356ab4STaniya Das 16613d356ab4STaniya Das static struct clk_branch gcc_pcie_1_mstr_axi_clk = { 16623d356ab4STaniya Das .halt_reg = 0xac02c, 16633d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 16643d356ab4STaniya Das .hwcg_reg = 0xac02c, 16653d356ab4STaniya Das .hwcg_bit = 1, 16663d356ab4STaniya Das .clkr = { 16673d356ab4STaniya Das .enable_reg = 0x52000, 16683d356ab4STaniya Das .enable_mask = BIT(27), 16693d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 16703d356ab4STaniya Das .name = "gcc_pcie_1_mstr_axi_clk", 16713d356ab4STaniya Das .ops = &clk_branch2_ops, 16723d356ab4STaniya Das }, 16733d356ab4STaniya Das }, 16743d356ab4STaniya Das }; 16753d356ab4STaniya Das 16763d356ab4STaniya Das static struct clk_branch gcc_pcie_1_phy_rchng_clk = { 16773d356ab4STaniya Das .halt_reg = 0xac060, 16783d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 16793d356ab4STaniya Das .clkr = { 16803d356ab4STaniya Das .enable_reg = 0x52000, 16813d356ab4STaniya Das .enable_mask = BIT(24), 16823d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 16833d356ab4STaniya Das .name = "gcc_pcie_1_phy_rchng_clk", 16843d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 16853d356ab4STaniya Das &gcc_pcie_1_phy_rchng_clk_src.clkr.hw, 16863d356ab4STaniya Das }, 16873d356ab4STaniya Das .num_parents = 1, 16883d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 16893d356ab4STaniya Das .ops = &clk_branch2_ops, 16903d356ab4STaniya Das }, 16913d356ab4STaniya Das }, 16923d356ab4STaniya Das }; 16933d356ab4STaniya Das 16943d356ab4STaniya Das static struct clk_branch gcc_pcie_1_pipe_clk = { 16953d356ab4STaniya Das .halt_reg = 0xac050, 16963d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 16973d356ab4STaniya Das .clkr = { 16983d356ab4STaniya Das .enable_reg = 0x52000, 16993d356ab4STaniya Das .enable_mask = BIT(23), 17003d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 17013d356ab4STaniya Das .name = "gcc_pcie_1_pipe_clk", 17023d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 17033d356ab4STaniya Das &gcc_pcie_1_pipe_clk_src.clkr.hw, 17043d356ab4STaniya Das }, 17053d356ab4STaniya Das .num_parents = 1, 17063d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 17073d356ab4STaniya Das .ops = &clk_branch2_ops, 17083d356ab4STaniya Das }, 17093d356ab4STaniya Das }, 17103d356ab4STaniya Das }; 17113d356ab4STaniya Das 17123d356ab4STaniya Das static struct clk_branch gcc_pcie_1_pipe_div2_clk = { 17133d356ab4STaniya Das .halt_reg = 0xac0a4, 17143d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 17153d356ab4STaniya Das .clkr = { 17163d356ab4STaniya Das .enable_reg = 0x52018, 17173d356ab4STaniya Das .enable_mask = BIT(15), 17183d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 17193d356ab4STaniya Das .name = "gcc_pcie_1_pipe_div2_clk", 17203d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 17213d356ab4STaniya Das &gcc_pcie_1_pipe_div2_clk_src.clkr.hw, 17223d356ab4STaniya Das }, 17233d356ab4STaniya Das .num_parents = 1, 17243d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 17253d356ab4STaniya Das .ops = &clk_branch2_ops, 17263d356ab4STaniya Das }, 17273d356ab4STaniya Das }, 17283d356ab4STaniya Das }; 17293d356ab4STaniya Das 17303d356ab4STaniya Das static struct clk_branch gcc_pcie_1_slv_axi_clk = { 17313d356ab4STaniya Das .halt_reg = 0xac01c, 17323d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 17333d356ab4STaniya Das .hwcg_reg = 0xac01c, 17343d356ab4STaniya Das .hwcg_bit = 1, 17353d356ab4STaniya Das .clkr = { 17363d356ab4STaniya Das .enable_reg = 0x52000, 17373d356ab4STaniya Das .enable_mask = BIT(26), 17383d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 17393d356ab4STaniya Das .name = "gcc_pcie_1_slv_axi_clk", 17403d356ab4STaniya Das .ops = &clk_branch2_ops, 17413d356ab4STaniya Das }, 17423d356ab4STaniya Das }, 17433d356ab4STaniya Das }; 17443d356ab4STaniya Das 17453d356ab4STaniya Das static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = { 17463d356ab4STaniya Das .halt_reg = 0xac018, 17473d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 17483d356ab4STaniya Das .clkr = { 17493d356ab4STaniya Das .enable_reg = 0x52000, 17503d356ab4STaniya Das .enable_mask = BIT(25), 17513d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 17523d356ab4STaniya Das .name = "gcc_pcie_1_slv_q2a_axi_clk", 17533d356ab4STaniya Das .ops = &clk_branch2_ops, 17543d356ab4STaniya Das }, 17553d356ab4STaniya Das }, 17563d356ab4STaniya Das }; 17573d356ab4STaniya Das 17583d356ab4STaniya Das static struct clk_branch gcc_pdm2_clk = { 17593d356ab4STaniya Das .halt_reg = 0x3300c, 17603d356ab4STaniya Das .halt_check = BRANCH_HALT, 17613d356ab4STaniya Das .clkr = { 17623d356ab4STaniya Das .enable_reg = 0x3300c, 17633d356ab4STaniya Das .enable_mask = BIT(0), 17643d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 17653d356ab4STaniya Das .name = "gcc_pdm2_clk", 17663d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 17673d356ab4STaniya Das &gcc_pdm2_clk_src.clkr.hw, 17683d356ab4STaniya Das }, 17693d356ab4STaniya Das .num_parents = 1, 17703d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 17713d356ab4STaniya Das .ops = &clk_branch2_ops, 17723d356ab4STaniya Das }, 17733d356ab4STaniya Das }, 17743d356ab4STaniya Das }; 17753d356ab4STaniya Das 17763d356ab4STaniya Das static struct clk_branch gcc_pdm_ahb_clk = { 17773d356ab4STaniya Das .halt_reg = 0x33004, 17783d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 17793d356ab4STaniya Das .hwcg_reg = 0x33004, 17803d356ab4STaniya Das .hwcg_bit = 1, 17813d356ab4STaniya Das .clkr = { 17823d356ab4STaniya Das .enable_reg = 0x33004, 17833d356ab4STaniya Das .enable_mask = BIT(0), 17843d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 17853d356ab4STaniya Das .name = "gcc_pdm_ahb_clk", 17863d356ab4STaniya Das .ops = &clk_branch2_ops, 17873d356ab4STaniya Das }, 17883d356ab4STaniya Das }, 17893d356ab4STaniya Das }; 17903d356ab4STaniya Das 17913d356ab4STaniya Das static struct clk_branch gcc_pdm_xo4_clk = { 17923d356ab4STaniya Das .halt_reg = 0x33008, 17933d356ab4STaniya Das .halt_check = BRANCH_HALT, 17943d356ab4STaniya Das .clkr = { 17953d356ab4STaniya Das .enable_reg = 0x33008, 17963d356ab4STaniya Das .enable_mask = BIT(0), 17973d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 17983d356ab4STaniya Das .name = "gcc_pdm_xo4_clk", 17993d356ab4STaniya Das .ops = &clk_branch2_ops, 18003d356ab4STaniya Das }, 18013d356ab4STaniya Das }, 18023d356ab4STaniya Das }; 18033d356ab4STaniya Das 18043d356ab4STaniya Das static struct clk_branch gcc_qmip_camera_cmd_ahb_clk = { 18053d356ab4STaniya Das .halt_reg = 0x26010, 18063d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 18073d356ab4STaniya Das .hwcg_reg = 0x26010, 18083d356ab4STaniya Das .hwcg_bit = 1, 18093d356ab4STaniya Das .clkr = { 18103d356ab4STaniya Das .enable_reg = 0x26010, 18113d356ab4STaniya Das .enable_mask = BIT(0), 18123d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 18133d356ab4STaniya Das .name = "gcc_qmip_camera_cmd_ahb_clk", 18143d356ab4STaniya Das .ops = &clk_branch2_ops, 18153d356ab4STaniya Das }, 18163d356ab4STaniya Das }, 18173d356ab4STaniya Das }; 18183d356ab4STaniya Das 18193d356ab4STaniya Das static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = { 18203d356ab4STaniya Das .halt_reg = 0x26008, 18213d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 18223d356ab4STaniya Das .hwcg_reg = 0x26008, 18233d356ab4STaniya Das .hwcg_bit = 1, 18243d356ab4STaniya Das .clkr = { 18253d356ab4STaniya Das .enable_reg = 0x26008, 18263d356ab4STaniya Das .enable_mask = BIT(0), 18273d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 18283d356ab4STaniya Das .name = "gcc_qmip_camera_nrt_ahb_clk", 18293d356ab4STaniya Das .ops = &clk_branch2_ops, 18303d356ab4STaniya Das }, 18313d356ab4STaniya Das }, 18323d356ab4STaniya Das }; 18333d356ab4STaniya Das 18343d356ab4STaniya Das static struct clk_branch gcc_qmip_camera_rt_ahb_clk = { 18353d356ab4STaniya Das .halt_reg = 0x2600c, 18363d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 18373d356ab4STaniya Das .hwcg_reg = 0x2600c, 18383d356ab4STaniya Das .hwcg_bit = 1, 18393d356ab4STaniya Das .clkr = { 18403d356ab4STaniya Das .enable_reg = 0x2600c, 18413d356ab4STaniya Das .enable_mask = BIT(0), 18423d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 18433d356ab4STaniya Das .name = "gcc_qmip_camera_rt_ahb_clk", 18443d356ab4STaniya Das .ops = &clk_branch2_ops, 18453d356ab4STaniya Das }, 18463d356ab4STaniya Das }, 18473d356ab4STaniya Das }; 18483d356ab4STaniya Das 18493d356ab4STaniya Das static struct clk_branch gcc_qmip_gpu_ahb_clk = { 18503d356ab4STaniya Das .halt_reg = 0x71008, 18513d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 18523d356ab4STaniya Das .hwcg_reg = 0x71008, 18533d356ab4STaniya Das .hwcg_bit = 1, 18543d356ab4STaniya Das .clkr = { 18553d356ab4STaniya Das .enable_reg = 0x71008, 18563d356ab4STaniya Das .enable_mask = BIT(0), 18573d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 18583d356ab4STaniya Das .name = "gcc_qmip_gpu_ahb_clk", 18593d356ab4STaniya Das .ops = &clk_branch2_ops, 18603d356ab4STaniya Das }, 18613d356ab4STaniya Das }, 18623d356ab4STaniya Das }; 18633d356ab4STaniya Das 18643d356ab4STaniya Das static struct clk_branch gcc_qmip_pcie_ahb_clk = { 18653d356ab4STaniya Das .halt_reg = 0x6b018, 18663d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 18673d356ab4STaniya Das .hwcg_reg = 0x6b018, 18683d356ab4STaniya Das .hwcg_bit = 1, 18693d356ab4STaniya Das .clkr = { 18703d356ab4STaniya Das .enable_reg = 0x52000, 18713d356ab4STaniya Das .enable_mask = BIT(11), 18723d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 18733d356ab4STaniya Das .name = "gcc_qmip_pcie_ahb_clk", 18743d356ab4STaniya Das .ops = &clk_branch2_ops, 18753d356ab4STaniya Das }, 18763d356ab4STaniya Das }, 18773d356ab4STaniya Das }; 18783d356ab4STaniya Das 18793d356ab4STaniya Das static struct clk_branch gcc_qmip_video_v_cpu_ahb_clk = { 18803d356ab4STaniya Das .halt_reg = 0x32010, 18813d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 18823d356ab4STaniya Das .hwcg_reg = 0x32010, 18833d356ab4STaniya Das .hwcg_bit = 1, 18843d356ab4STaniya Das .clkr = { 18853d356ab4STaniya Das .enable_reg = 0x32010, 18863d356ab4STaniya Das .enable_mask = BIT(0), 18873d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 18883d356ab4STaniya Das .name = "gcc_qmip_video_v_cpu_ahb_clk", 18893d356ab4STaniya Das .ops = &clk_branch2_ops, 18903d356ab4STaniya Das }, 18913d356ab4STaniya Das }, 18923d356ab4STaniya Das }; 18933d356ab4STaniya Das 18943d356ab4STaniya Das static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = { 18953d356ab4STaniya Das .halt_reg = 0x3200c, 18963d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 18973d356ab4STaniya Das .hwcg_reg = 0x3200c, 18983d356ab4STaniya Das .hwcg_bit = 1, 18993d356ab4STaniya Das .clkr = { 19003d356ab4STaniya Das .enable_reg = 0x3200c, 19013d356ab4STaniya Das .enable_mask = BIT(0), 19023d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 19033d356ab4STaniya Das .name = "gcc_qmip_video_vcodec_ahb_clk", 19043d356ab4STaniya Das .ops = &clk_branch2_ops, 19053d356ab4STaniya Das }, 19063d356ab4STaniya Das }, 19073d356ab4STaniya Das }; 19083d356ab4STaniya Das 19093d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = { 19103d356ab4STaniya Das .halt_reg = 0x2301c, 19113d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 19123d356ab4STaniya Das .clkr = { 19133d356ab4STaniya Das .enable_reg = 0x52008, 19143d356ab4STaniya Das .enable_mask = BIT(18), 19153d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 19163d356ab4STaniya Das .name = "gcc_qupv3_wrap1_core_2x_clk", 19173d356ab4STaniya Das .ops = &clk_branch2_ops, 19183d356ab4STaniya Das }, 19193d356ab4STaniya Das }, 19203d356ab4STaniya Das }; 19213d356ab4STaniya Das 19223d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_clk = { 19233d356ab4STaniya Das .halt_reg = 0x23008, 19243d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 19253d356ab4STaniya Das .clkr = { 19263d356ab4STaniya Das .enable_reg = 0x52008, 19273d356ab4STaniya Das .enable_mask = BIT(19), 19283d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 19293d356ab4STaniya Das .name = "gcc_qupv3_wrap1_core_clk", 19303d356ab4STaniya Das .ops = &clk_branch2_ops, 19313d356ab4STaniya Das }, 19323d356ab4STaniya Das }, 19333d356ab4STaniya Das }; 19343d356ab4STaniya Das 19353d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_qspi_ref_clk = { 19363d356ab4STaniya Das .halt_reg = 0x188bc, 19373d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 19383d356ab4STaniya Das .clkr = { 19393d356ab4STaniya Das .enable_reg = 0x52010, 19403d356ab4STaniya Das .enable_mask = BIT(29), 19413d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 19423d356ab4STaniya Das .name = "gcc_qupv3_wrap1_qspi_ref_clk", 19433d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 19443d356ab4STaniya Das &gcc_qupv3_wrap1_qspi_ref_clk_src.clkr.hw, 19453d356ab4STaniya Das }, 19463d356ab4STaniya Das .num_parents = 1, 19473d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 19483d356ab4STaniya Das .ops = &clk_branch2_ops, 19493d356ab4STaniya Das }, 19503d356ab4STaniya Das }, 19513d356ab4STaniya Das }; 19523d356ab4STaniya Das 19533d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = { 19543d356ab4STaniya Das .halt_reg = 0x18004, 19553d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 19563d356ab4STaniya Das .clkr = { 19573d356ab4STaniya Das .enable_reg = 0x52008, 19583d356ab4STaniya Das .enable_mask = BIT(22), 19593d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 19603d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s0_clk", 19613d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 19623d356ab4STaniya Das &gcc_qupv3_wrap1_s0_clk_src.clkr.hw, 19633d356ab4STaniya Das }, 19643d356ab4STaniya Das .num_parents = 1, 19653d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 19663d356ab4STaniya Das .ops = &clk_branch2_ops, 19673d356ab4STaniya Das }, 19683d356ab4STaniya Das }, 19693d356ab4STaniya Das }; 19703d356ab4STaniya Das 19713d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = { 19723d356ab4STaniya Das .halt_reg = 0x18140, 19733d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 19743d356ab4STaniya Das .clkr = { 19753d356ab4STaniya Das .enable_reg = 0x52008, 19763d356ab4STaniya Das .enable_mask = BIT(23), 19773d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 19783d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s1_clk", 19793d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 19803d356ab4STaniya Das &gcc_qupv3_wrap1_s1_clk_src.clkr.hw, 19813d356ab4STaniya Das }, 19823d356ab4STaniya Das .num_parents = 1, 19833d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 19843d356ab4STaniya Das .ops = &clk_branch2_ops, 19853d356ab4STaniya Das }, 19863d356ab4STaniya Das }, 19873d356ab4STaniya Das }; 19883d356ab4STaniya Das 19893d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = { 19903d356ab4STaniya Das .halt_reg = 0x1827c, 19913d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 19923d356ab4STaniya Das .clkr = { 19933d356ab4STaniya Das .enable_reg = 0x52008, 19943d356ab4STaniya Das .enable_mask = BIT(24), 19953d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 19963d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s2_clk", 19973d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 19983d356ab4STaniya Das &gcc_qupv3_wrap1_s2_clk_src.clkr.hw, 19993d356ab4STaniya Das }, 20003d356ab4STaniya Das .num_parents = 1, 20013d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 20023d356ab4STaniya Das .ops = &clk_branch2_ops, 20033d356ab4STaniya Das }, 20043d356ab4STaniya Das }, 20053d356ab4STaniya Das }; 20063d356ab4STaniya Das 20073d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = { 20083d356ab4STaniya Das .halt_reg = 0x18290, 20093d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 20103d356ab4STaniya Das .clkr = { 20113d356ab4STaniya Das .enable_reg = 0x52008, 20123d356ab4STaniya Das .enable_mask = BIT(25), 20133d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 20143d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s3_clk", 20153d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 20163d356ab4STaniya Das &gcc_qupv3_wrap1_s3_clk_src.clkr.hw, 20173d356ab4STaniya Das }, 20183d356ab4STaniya Das .num_parents = 1, 20193d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 20203d356ab4STaniya Das .ops = &clk_branch2_ops, 20213d356ab4STaniya Das }, 20223d356ab4STaniya Das }, 20233d356ab4STaniya Das }; 20243d356ab4STaniya Das 20253d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = { 20263d356ab4STaniya Das .halt_reg = 0x183cc, 20273d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 20283d356ab4STaniya Das .clkr = { 20293d356ab4STaniya Das .enable_reg = 0x52008, 20303d356ab4STaniya Das .enable_mask = BIT(26), 20313d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 20323d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s4_clk", 20333d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 20343d356ab4STaniya Das &gcc_qupv3_wrap1_s4_clk_src.clkr.hw, 20353d356ab4STaniya Das }, 20363d356ab4STaniya Das .num_parents = 1, 20373d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 20383d356ab4STaniya Das .ops = &clk_branch2_ops, 20393d356ab4STaniya Das }, 20403d356ab4STaniya Das }, 20413d356ab4STaniya Das }; 20423d356ab4STaniya Das 20433d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = { 20443d356ab4STaniya Das .halt_reg = 0x18508, 20453d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 20463d356ab4STaniya Das .clkr = { 20473d356ab4STaniya Das .enable_reg = 0x52008, 20483d356ab4STaniya Das .enable_mask = BIT(27), 20493d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 20503d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s5_clk", 20513d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 20523d356ab4STaniya Das &gcc_qupv3_wrap1_s5_clk_src.clkr.hw, 20533d356ab4STaniya Das }, 20543d356ab4STaniya Das .num_parents = 1, 20553d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 20563d356ab4STaniya Das .ops = &clk_branch2_ops, 20573d356ab4STaniya Das }, 20583d356ab4STaniya Das }, 20593d356ab4STaniya Das }; 20603d356ab4STaniya Das 20613d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s6_clk = { 20623d356ab4STaniya Das .halt_reg = 0x18644, 20633d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 20643d356ab4STaniya Das .clkr = { 20653d356ab4STaniya Das .enable_reg = 0x52008, 20663d356ab4STaniya Das .enable_mask = BIT(28), 20673d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 20683d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s6_clk", 20693d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 20703d356ab4STaniya Das &gcc_qupv3_wrap1_s6_clk_src.clkr.hw, 20713d356ab4STaniya Das }, 20723d356ab4STaniya Das .num_parents = 1, 20733d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 20743d356ab4STaniya Das .ops = &clk_branch2_ops, 20753d356ab4STaniya Das }, 20763d356ab4STaniya Das }, 20773d356ab4STaniya Das }; 20783d356ab4STaniya Das 20793d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap1_s7_clk = { 20803d356ab4STaniya Das .halt_reg = 0x18780, 20813d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 20823d356ab4STaniya Das .clkr = { 20833d356ab4STaniya Das .enable_reg = 0x52010, 20843d356ab4STaniya Das .enable_mask = BIT(16), 20853d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 20863d356ab4STaniya Das .name = "gcc_qupv3_wrap1_s7_clk", 20873d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 20883d356ab4STaniya Das &gcc_qupv3_wrap1_s7_clk_src.clkr.hw, 20893d356ab4STaniya Das }, 20903d356ab4STaniya Das .num_parents = 1, 20913d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 20923d356ab4STaniya Das .ops = &clk_branch2_ops, 20933d356ab4STaniya Das }, 20943d356ab4STaniya Das }, 20953d356ab4STaniya Das }; 20963d356ab4STaniya Das 20973d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = { 20983d356ab4STaniya Das .halt_reg = 0x23174, 20993d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 21003d356ab4STaniya Das .clkr = { 21013d356ab4STaniya Das .enable_reg = 0x52010, 21023d356ab4STaniya Das .enable_mask = BIT(3), 21033d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 21043d356ab4STaniya Das .name = "gcc_qupv3_wrap2_core_2x_clk", 21053d356ab4STaniya Das .ops = &clk_branch2_ops, 21063d356ab4STaniya Das }, 21073d356ab4STaniya Das }, 21083d356ab4STaniya Das }; 21093d356ab4STaniya Das 21103d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_core_clk = { 21113d356ab4STaniya Das .halt_reg = 0x23160, 21123d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 21133d356ab4STaniya Das .clkr = { 21143d356ab4STaniya Das .enable_reg = 0x52010, 21153d356ab4STaniya Das .enable_mask = BIT(0), 21163d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 21173d356ab4STaniya Das .name = "gcc_qupv3_wrap2_core_clk", 21183d356ab4STaniya Das .ops = &clk_branch2_ops, 21193d356ab4STaniya Das }, 21203d356ab4STaniya Das }, 21213d356ab4STaniya Das }; 21223d356ab4STaniya Das 21233d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s0_clk = { 21243d356ab4STaniya Das .halt_reg = 0x1e004, 21253d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 21263d356ab4STaniya Das .clkr = { 21273d356ab4STaniya Das .enable_reg = 0x52010, 21283d356ab4STaniya Das .enable_mask = BIT(4), 21293d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 21303d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s0_clk", 21313d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 21323d356ab4STaniya Das &gcc_qupv3_wrap2_s0_clk_src.clkr.hw, 21333d356ab4STaniya Das }, 21343d356ab4STaniya Das .num_parents = 1, 21353d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 21363d356ab4STaniya Das .ops = &clk_branch2_ops, 21373d356ab4STaniya Das }, 21383d356ab4STaniya Das }, 21393d356ab4STaniya Das }; 21403d356ab4STaniya Das 21413d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s1_clk = { 21423d356ab4STaniya Das .halt_reg = 0x1e140, 21433d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 21443d356ab4STaniya Das .clkr = { 21453d356ab4STaniya Das .enable_reg = 0x52010, 21463d356ab4STaniya Das .enable_mask = BIT(5), 21473d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 21483d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s1_clk", 21493d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 21503d356ab4STaniya Das &gcc_qupv3_wrap2_s1_clk_src.clkr.hw, 21513d356ab4STaniya Das }, 21523d356ab4STaniya Das .num_parents = 1, 21533d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 21543d356ab4STaniya Das .ops = &clk_branch2_ops, 21553d356ab4STaniya Das }, 21563d356ab4STaniya Das }, 21573d356ab4STaniya Das }; 21583d356ab4STaniya Das 21593d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s2_clk = { 21603d356ab4STaniya Das .halt_reg = 0x1e27c, 21613d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 21623d356ab4STaniya Das .clkr = { 21633d356ab4STaniya Das .enable_reg = 0x52010, 21643d356ab4STaniya Das .enable_mask = BIT(6), 21653d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 21663d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s2_clk", 21673d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 21683d356ab4STaniya Das &gcc_qupv3_wrap2_s2_clk_src.clkr.hw, 21693d356ab4STaniya Das }, 21703d356ab4STaniya Das .num_parents = 1, 21713d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 21723d356ab4STaniya Das .ops = &clk_branch2_ops, 21733d356ab4STaniya Das }, 21743d356ab4STaniya Das }, 21753d356ab4STaniya Das }; 21763d356ab4STaniya Das 21773d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s3_clk = { 21783d356ab4STaniya Das .halt_reg = 0x1e3b8, 21793d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 21803d356ab4STaniya Das .clkr = { 21813d356ab4STaniya Das .enable_reg = 0x52010, 21823d356ab4STaniya Das .enable_mask = BIT(7), 21833d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 21843d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s3_clk", 21853d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 21863d356ab4STaniya Das &gcc_qupv3_wrap2_s3_clk_src.clkr.hw, 21873d356ab4STaniya Das }, 21883d356ab4STaniya Das .num_parents = 1, 21893d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 21903d356ab4STaniya Das .ops = &clk_branch2_ops, 21913d356ab4STaniya Das }, 21923d356ab4STaniya Das }, 21933d356ab4STaniya Das }; 21943d356ab4STaniya Das 21953d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s4_clk = { 21963d356ab4STaniya Das .halt_reg = 0x1e4f4, 21973d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 21983d356ab4STaniya Das .clkr = { 21993d356ab4STaniya Das .enable_reg = 0x52010, 22003d356ab4STaniya Das .enable_mask = BIT(8), 22013d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 22023d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s4_clk", 22033d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 22043d356ab4STaniya Das &gcc_qupv3_wrap2_s4_clk_src.clkr.hw, 22053d356ab4STaniya Das }, 22063d356ab4STaniya Das .num_parents = 1, 22073d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 22083d356ab4STaniya Das .ops = &clk_branch2_ops, 22093d356ab4STaniya Das }, 22103d356ab4STaniya Das }, 22113d356ab4STaniya Das }; 22123d356ab4STaniya Das 22133d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s5_clk = { 22143d356ab4STaniya Das .halt_reg = 0x1e630, 22153d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 22163d356ab4STaniya Das .clkr = { 22173d356ab4STaniya Das .enable_reg = 0x52010, 22183d356ab4STaniya Das .enable_mask = BIT(9), 22193d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 22203d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s5_clk", 22213d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 22223d356ab4STaniya Das &gcc_qupv3_wrap2_s5_clk_src.clkr.hw, 22233d356ab4STaniya Das }, 22243d356ab4STaniya Das .num_parents = 1, 22253d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 22263d356ab4STaniya Das .ops = &clk_branch2_ops, 22273d356ab4STaniya Das }, 22283d356ab4STaniya Das }, 22293d356ab4STaniya Das }; 22303d356ab4STaniya Das 22313d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s6_clk = { 22323d356ab4STaniya Das .halt_reg = 0x1e76c, 22333d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 22343d356ab4STaniya Das .clkr = { 22353d356ab4STaniya Das .enable_reg = 0x52010, 22363d356ab4STaniya Das .enable_mask = BIT(10), 22373d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 22383d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s6_clk", 22393d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 22403d356ab4STaniya Das &gcc_qupv3_wrap2_s6_clk_src.clkr.hw, 22413d356ab4STaniya Das }, 22423d356ab4STaniya Das .num_parents = 1, 22433d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 22443d356ab4STaniya Das .ops = &clk_branch2_ops, 22453d356ab4STaniya Das }, 22463d356ab4STaniya Das }, 22473d356ab4STaniya Das }; 22483d356ab4STaniya Das 22493d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap2_s7_clk = { 22503d356ab4STaniya Das .halt_reg = 0x1e8a8, 22513d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 22523d356ab4STaniya Das .clkr = { 22533d356ab4STaniya Das .enable_reg = 0x52010, 22543d356ab4STaniya Das .enable_mask = BIT(17), 22553d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 22563d356ab4STaniya Das .name = "gcc_qupv3_wrap2_s7_clk", 22573d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 22583d356ab4STaniya Das &gcc_qupv3_wrap2_s7_clk_src.clkr.hw, 22593d356ab4STaniya Das }, 22603d356ab4STaniya Das .num_parents = 1, 22613d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 22623d356ab4STaniya Das .ops = &clk_branch2_ops, 22633d356ab4STaniya Das }, 22643d356ab4STaniya Das }, 22653d356ab4STaniya Das }; 22663d356ab4STaniya Das 22673d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = { 22683d356ab4STaniya Das .halt_reg = 0x23000, 22693d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 22703d356ab4STaniya Das .clkr = { 22713d356ab4STaniya Das .enable_reg = 0x52008, 22723d356ab4STaniya Das .enable_mask = BIT(20), 22733d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 22743d356ab4STaniya Das .name = "gcc_qupv3_wrap_1_m_ahb_clk", 22753d356ab4STaniya Das .ops = &clk_branch2_ops, 22763d356ab4STaniya Das }, 22773d356ab4STaniya Das }, 22783d356ab4STaniya Das }; 22793d356ab4STaniya Das 22803d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = { 22813d356ab4STaniya Das .halt_reg = 0x23004, 22823d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 22833d356ab4STaniya Das .hwcg_reg = 0x23004, 22843d356ab4STaniya Das .hwcg_bit = 1, 22853d356ab4STaniya Das .clkr = { 22863d356ab4STaniya Das .enable_reg = 0x52008, 22873d356ab4STaniya Das .enable_mask = BIT(21), 22883d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 22893d356ab4STaniya Das .name = "gcc_qupv3_wrap_1_s_ahb_clk", 22903d356ab4STaniya Das .ops = &clk_branch2_ops, 22913d356ab4STaniya Das }, 22923d356ab4STaniya Das }, 22933d356ab4STaniya Das }; 22943d356ab4STaniya Das 22953d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = { 22963d356ab4STaniya Das .halt_reg = 0x23158, 22973d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 22983d356ab4STaniya Das .hwcg_reg = 0x23158, 22993d356ab4STaniya Das .hwcg_bit = 1, 23003d356ab4STaniya Das .clkr = { 23013d356ab4STaniya Das .enable_reg = 0x52010, 23023d356ab4STaniya Das .enable_mask = BIT(2), 23033d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 23043d356ab4STaniya Das .name = "gcc_qupv3_wrap_2_m_ahb_clk", 23053d356ab4STaniya Das .ops = &clk_branch2_ops, 23063d356ab4STaniya Das }, 23073d356ab4STaniya Das }, 23083d356ab4STaniya Das }; 23093d356ab4STaniya Das 23103d356ab4STaniya Das static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = { 23113d356ab4STaniya Das .halt_reg = 0x2315c, 23123d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 23133d356ab4STaniya Das .hwcg_reg = 0x2315c, 23143d356ab4STaniya Das .hwcg_bit = 1, 23153d356ab4STaniya Das .clkr = { 23163d356ab4STaniya Das .enable_reg = 0x52010, 23173d356ab4STaniya Das .enable_mask = BIT(1), 23183d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 23193d356ab4STaniya Das .name = "gcc_qupv3_wrap_2_s_ahb_clk", 23203d356ab4STaniya Das .ops = &clk_branch2_ops, 23213d356ab4STaniya Das }, 23223d356ab4STaniya Das }, 23233d356ab4STaniya Das }; 23243d356ab4STaniya Das 23253d356ab4STaniya Das static struct clk_branch gcc_sdcc1_ahb_clk = { 23263d356ab4STaniya Das .halt_reg = 0xa9004, 23273d356ab4STaniya Das .halt_check = BRANCH_HALT, 23283d356ab4STaniya Das .clkr = { 23293d356ab4STaniya Das .enable_reg = 0xa9004, 23303d356ab4STaniya Das .enable_mask = BIT(0), 23313d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 23323d356ab4STaniya Das .name = "gcc_sdcc1_ahb_clk", 23333d356ab4STaniya Das .ops = &clk_branch2_ops, 23343d356ab4STaniya Das }, 23353d356ab4STaniya Das }, 23363d356ab4STaniya Das }; 23373d356ab4STaniya Das 23383d356ab4STaniya Das static struct clk_branch gcc_sdcc1_apps_clk = { 23393d356ab4STaniya Das .halt_reg = 0xa9008, 23403d356ab4STaniya Das .halt_check = BRANCH_HALT, 23413d356ab4STaniya Das .clkr = { 23423d356ab4STaniya Das .enable_reg = 0xa9008, 23433d356ab4STaniya Das .enable_mask = BIT(0), 23443d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 23453d356ab4STaniya Das .name = "gcc_sdcc1_apps_clk", 23463d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 23473d356ab4STaniya Das &gcc_sdcc1_apps_clk_src.clkr.hw, 23483d356ab4STaniya Das }, 23493d356ab4STaniya Das .num_parents = 1, 23503d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 23513d356ab4STaniya Das .ops = &clk_branch2_ops, 23523d356ab4STaniya Das }, 23533d356ab4STaniya Das }, 23543d356ab4STaniya Das }; 23553d356ab4STaniya Das 23563d356ab4STaniya Das static struct clk_branch gcc_sdcc1_ice_core_clk = { 23573d356ab4STaniya Das .halt_reg = 0xa9030, 23583d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 23593d356ab4STaniya Das .hwcg_reg = 0xa9030, 23603d356ab4STaniya Das .hwcg_bit = 1, 23613d356ab4STaniya Das .clkr = { 23623d356ab4STaniya Das .enable_reg = 0xa9030, 23633d356ab4STaniya Das .enable_mask = BIT(0), 23643d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 23653d356ab4STaniya Das .name = "gcc_sdcc1_ice_core_clk", 23663d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 23673d356ab4STaniya Das &gcc_sdcc1_ice_core_clk_src.clkr.hw, 23683d356ab4STaniya Das }, 23693d356ab4STaniya Das .num_parents = 1, 23703d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 23713d356ab4STaniya Das .ops = &clk_branch2_ops, 23723d356ab4STaniya Das }, 23733d356ab4STaniya Das }, 23743d356ab4STaniya Das }; 23753d356ab4STaniya Das 23763d356ab4STaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = { 23773d356ab4STaniya Das .halt_reg = 0x14014, 23783d356ab4STaniya Das .halt_check = BRANCH_HALT, 23793d356ab4STaniya Das .clkr = { 23803d356ab4STaniya Das .enable_reg = 0x14014, 23813d356ab4STaniya Das .enable_mask = BIT(0), 23823d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 23833d356ab4STaniya Das .name = "gcc_sdcc2_ahb_clk", 23843d356ab4STaniya Das .ops = &clk_branch2_ops, 23853d356ab4STaniya Das }, 23863d356ab4STaniya Das }, 23873d356ab4STaniya Das }; 23883d356ab4STaniya Das 23893d356ab4STaniya Das static struct clk_branch gcc_sdcc2_apps_clk = { 23903d356ab4STaniya Das .halt_reg = 0x14004, 23913d356ab4STaniya Das .halt_check = BRANCH_HALT, 23923d356ab4STaniya Das .clkr = { 23933d356ab4STaniya Das .enable_reg = 0x14004, 23943d356ab4STaniya Das .enable_mask = BIT(0), 23953d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 23963d356ab4STaniya Das .name = "gcc_sdcc2_apps_clk", 23973d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 23983d356ab4STaniya Das &gcc_sdcc2_apps_clk_src.clkr.hw, 23993d356ab4STaniya Das }, 24003d356ab4STaniya Das .num_parents = 1, 24013d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 24023d356ab4STaniya Das .ops = &clk_branch2_ops, 24033d356ab4STaniya Das }, 24043d356ab4STaniya Das }, 24053d356ab4STaniya Das }; 24063d356ab4STaniya Das 24073d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = { 24083d356ab4STaniya Das .halt_reg = 0x77028, 24093d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 24103d356ab4STaniya Das .hwcg_reg = 0x77028, 24113d356ab4STaniya Das .hwcg_bit = 1, 24123d356ab4STaniya Das .clkr = { 24133d356ab4STaniya Das .enable_reg = 0x77028, 24143d356ab4STaniya Das .enable_mask = BIT(0), 24153d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 24163d356ab4STaniya Das .name = "gcc_ufs_phy_ahb_clk", 24173d356ab4STaniya Das .ops = &clk_branch2_ops, 24183d356ab4STaniya Das }, 24193d356ab4STaniya Das }, 24203d356ab4STaniya Das }; 24213d356ab4STaniya Das 24223d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = { 24233d356ab4STaniya Das .halt_reg = 0x77018, 24243d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 24253d356ab4STaniya Das .hwcg_reg = 0x77018, 24263d356ab4STaniya Das .hwcg_bit = 1, 24273d356ab4STaniya Das .clkr = { 24283d356ab4STaniya Das .enable_reg = 0x77018, 24293d356ab4STaniya Das .enable_mask = BIT(0), 24303d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 24313d356ab4STaniya Das .name = "gcc_ufs_phy_axi_clk", 24323d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 24333d356ab4STaniya Das &gcc_ufs_phy_axi_clk_src.clkr.hw, 24343d356ab4STaniya Das }, 24353d356ab4STaniya Das .num_parents = 1, 24363d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 24373d356ab4STaniya Das .ops = &clk_branch2_ops, 24383d356ab4STaniya Das }, 24393d356ab4STaniya Das }, 24403d356ab4STaniya Das }; 24413d356ab4STaniya Das 24423d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = { 24433d356ab4STaniya Das .halt_reg = 0x7707c, 24443d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 24453d356ab4STaniya Das .hwcg_reg = 0x7707c, 24463d356ab4STaniya Das .hwcg_bit = 1, 24473d356ab4STaniya Das .clkr = { 24483d356ab4STaniya Das .enable_reg = 0x7707c, 24493d356ab4STaniya Das .enable_mask = BIT(0), 24503d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 24513d356ab4STaniya Das .name = "gcc_ufs_phy_ice_core_clk", 24523d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 24533d356ab4STaniya Das &gcc_ufs_phy_ice_core_clk_src.clkr.hw, 24543d356ab4STaniya Das }, 24553d356ab4STaniya Das .num_parents = 1, 24563d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 24573d356ab4STaniya Das .ops = &clk_branch2_ops, 24583d356ab4STaniya Das }, 24593d356ab4STaniya Das }, 24603d356ab4STaniya Das }; 24613d356ab4STaniya Das 24623d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = { 24633d356ab4STaniya Das .halt_reg = 0x770bc, 24643d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 24653d356ab4STaniya Das .hwcg_reg = 0x770bc, 24663d356ab4STaniya Das .hwcg_bit = 1, 24673d356ab4STaniya Das .clkr = { 24683d356ab4STaniya Das .enable_reg = 0x770bc, 24693d356ab4STaniya Das .enable_mask = BIT(0), 24703d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 24713d356ab4STaniya Das .name = "gcc_ufs_phy_phy_aux_clk", 24723d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 24733d356ab4STaniya Das &gcc_ufs_phy_phy_aux_clk_src.clkr.hw, 24743d356ab4STaniya Das }, 24753d356ab4STaniya Das .num_parents = 1, 24763d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 24773d356ab4STaniya Das .ops = &clk_branch2_ops, 24783d356ab4STaniya Das }, 24793d356ab4STaniya Das }, 24803d356ab4STaniya Das }; 24813d356ab4STaniya Das 24823d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = { 24833d356ab4STaniya Das .halt_reg = 0x77030, 24843d356ab4STaniya Das .halt_check = BRANCH_HALT_DELAY, 24853d356ab4STaniya Das .clkr = { 24863d356ab4STaniya Das .enable_reg = 0x77030, 24873d356ab4STaniya Das .enable_mask = BIT(0), 24883d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 24893d356ab4STaniya Das .name = "gcc_ufs_phy_rx_symbol_0_clk", 24903d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 24913d356ab4STaniya Das &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw, 24923d356ab4STaniya Das }, 24933d356ab4STaniya Das .num_parents = 1, 24943d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 24953d356ab4STaniya Das .ops = &clk_branch2_ops, 24963d356ab4STaniya Das }, 24973d356ab4STaniya Das }, 24983d356ab4STaniya Das }; 24993d356ab4STaniya Das 25003d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = { 25013d356ab4STaniya Das .halt_reg = 0x770d8, 25023d356ab4STaniya Das .halt_check = BRANCH_HALT_DELAY, 25033d356ab4STaniya Das .clkr = { 25043d356ab4STaniya Das .enable_reg = 0x770d8, 25053d356ab4STaniya Das .enable_mask = BIT(0), 25063d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 25073d356ab4STaniya Das .name = "gcc_ufs_phy_rx_symbol_1_clk", 25083d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 25093d356ab4STaniya Das &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw, 25103d356ab4STaniya Das }, 25113d356ab4STaniya Das .num_parents = 1, 25123d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 25133d356ab4STaniya Das .ops = &clk_branch2_ops, 25143d356ab4STaniya Das }, 25153d356ab4STaniya Das }, 25163d356ab4STaniya Das }; 25173d356ab4STaniya Das 25183d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = { 25193d356ab4STaniya Das .halt_reg = 0x7702c, 25203d356ab4STaniya Das .halt_check = BRANCH_HALT_DELAY, 25213d356ab4STaniya Das .clkr = { 25223d356ab4STaniya Das .enable_reg = 0x7702c, 25233d356ab4STaniya Das .enable_mask = BIT(0), 25243d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 25253d356ab4STaniya Das .name = "gcc_ufs_phy_tx_symbol_0_clk", 25263d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 25273d356ab4STaniya Das &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw, 25283d356ab4STaniya Das }, 25293d356ab4STaniya Das .num_parents = 1, 25303d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 25313d356ab4STaniya Das .ops = &clk_branch2_ops, 25323d356ab4STaniya Das }, 25333d356ab4STaniya Das }, 25343d356ab4STaniya Das }; 25353d356ab4STaniya Das 25363d356ab4STaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = { 25373d356ab4STaniya Das .halt_reg = 0x7706c, 25383d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 25393d356ab4STaniya Das .hwcg_reg = 0x7706c, 25403d356ab4STaniya Das .hwcg_bit = 1, 25413d356ab4STaniya Das .clkr = { 25423d356ab4STaniya Das .enable_reg = 0x7706c, 25433d356ab4STaniya Das .enable_mask = BIT(0), 25443d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 25453d356ab4STaniya Das .name = "gcc_ufs_phy_unipro_core_clk", 25463d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 25473d356ab4STaniya Das &gcc_ufs_phy_unipro_core_clk_src.clkr.hw, 25483d356ab4STaniya Das }, 25493d356ab4STaniya Das .num_parents = 1, 25503d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 25513d356ab4STaniya Das .ops = &clk_branch2_ops, 25523d356ab4STaniya Das }, 25533d356ab4STaniya Das }, 25543d356ab4STaniya Das }; 25553d356ab4STaniya Das 25563d356ab4STaniya Das static struct clk_branch gcc_usb30_prim_atb_clk = { 25573d356ab4STaniya Das .halt_reg = 0x3908c, 25583d356ab4STaniya Das .halt_check = BRANCH_HALT_VOTED, 25593d356ab4STaniya Das .clkr = { 25603d356ab4STaniya Das .enable_reg = 0x3908c, 25613d356ab4STaniya Das .enable_mask = BIT(0), 25623d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 25633d356ab4STaniya Das .name = "gcc_usb30_prim_atb_clk", 25643d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 25653d356ab4STaniya Das &gcc_usb30_prim_master_clk_src.clkr.hw, 25663d356ab4STaniya Das }, 25673d356ab4STaniya Das .num_parents = 1, 25683d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 25693d356ab4STaniya Das .ops = &clk_branch2_ops, 25703d356ab4STaniya Das }, 25713d356ab4STaniya Das }, 25723d356ab4STaniya Das }; 25733d356ab4STaniya Das 25743d356ab4STaniya Das static struct clk_branch gcc_usb30_prim_master_clk = { 25753d356ab4STaniya Das .halt_reg = 0x39018, 25763d356ab4STaniya Das .halt_check = BRANCH_HALT, 25773d356ab4STaniya Das .clkr = { 25783d356ab4STaniya Das .enable_reg = 0x39018, 25793d356ab4STaniya Das .enable_mask = BIT(0), 25803d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 25813d356ab4STaniya Das .name = "gcc_usb30_prim_master_clk", 25823d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 25833d356ab4STaniya Das &gcc_usb30_prim_master_clk_src.clkr.hw, 25843d356ab4STaniya Das }, 25853d356ab4STaniya Das .num_parents = 1, 25863d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 25873d356ab4STaniya Das .ops = &clk_branch2_ops, 25883d356ab4STaniya Das }, 25893d356ab4STaniya Das }, 25903d356ab4STaniya Das }; 25913d356ab4STaniya Das 25923d356ab4STaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = { 25933d356ab4STaniya Das .halt_reg = 0x3902c, 25943d356ab4STaniya Das .halt_check = BRANCH_HALT, 25953d356ab4STaniya Das .clkr = { 25963d356ab4STaniya Das .enable_reg = 0x3902c, 25973d356ab4STaniya Das .enable_mask = BIT(0), 25983d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 25993d356ab4STaniya Das .name = "gcc_usb30_prim_mock_utmi_clk", 26003d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 26013d356ab4STaniya Das &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw, 26023d356ab4STaniya Das }, 26033d356ab4STaniya Das .num_parents = 1, 26043d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 26053d356ab4STaniya Das .ops = &clk_branch2_ops, 26063d356ab4STaniya Das }, 26073d356ab4STaniya Das }, 26083d356ab4STaniya Das }; 26093d356ab4STaniya Das 26103d356ab4STaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = { 26113d356ab4STaniya Das .halt_reg = 0x39028, 26123d356ab4STaniya Das .halt_check = BRANCH_HALT, 26133d356ab4STaniya Das .clkr = { 26143d356ab4STaniya Das .enable_reg = 0x39028, 26153d356ab4STaniya Das .enable_mask = BIT(0), 26163d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 26173d356ab4STaniya Das .name = "gcc_usb30_prim_sleep_clk", 26183d356ab4STaniya Das .ops = &clk_branch2_ops, 26193d356ab4STaniya Das }, 26203d356ab4STaniya Das }, 26213d356ab4STaniya Das }; 26223d356ab4STaniya Das 26233d356ab4STaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = { 26243d356ab4STaniya Das .halt_reg = 0x39064, 26253d356ab4STaniya Das .halt_check = BRANCH_HALT, 26263d356ab4STaniya Das .clkr = { 26273d356ab4STaniya Das .enable_reg = 0x39064, 26283d356ab4STaniya Das .enable_mask = BIT(0), 26293d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 26303d356ab4STaniya Das .name = "gcc_usb3_prim_phy_aux_clk", 26313d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 26323d356ab4STaniya Das &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 26333d356ab4STaniya Das }, 26343d356ab4STaniya Das .num_parents = 1, 26353d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 26363d356ab4STaniya Das .ops = &clk_branch2_ops, 26373d356ab4STaniya Das }, 26383d356ab4STaniya Das }, 26393d356ab4STaniya Das }; 26403d356ab4STaniya Das 26413d356ab4STaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = { 26423d356ab4STaniya Das .halt_reg = 0x39068, 26433d356ab4STaniya Das .halt_check = BRANCH_HALT, 26443d356ab4STaniya Das .clkr = { 26453d356ab4STaniya Das .enable_reg = 0x39068, 26463d356ab4STaniya Das .enable_mask = BIT(0), 26473d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 26483d356ab4STaniya Das .name = "gcc_usb3_prim_phy_com_aux_clk", 26493d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 26503d356ab4STaniya Das &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 26513d356ab4STaniya Das }, 26523d356ab4STaniya Das .num_parents = 1, 26533d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 26543d356ab4STaniya Das .ops = &clk_branch2_ops, 26553d356ab4STaniya Das }, 26563d356ab4STaniya Das }, 26573d356ab4STaniya Das }; 26583d356ab4STaniya Das 26593d356ab4STaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = { 26603d356ab4STaniya Das .halt_reg = 0x3906c, 26613d356ab4STaniya Das .halt_check = BRANCH_HALT_DELAY, 26623d356ab4STaniya Das .hwcg_reg = 0x3906c, 26633d356ab4STaniya Das .hwcg_bit = 1, 26643d356ab4STaniya Das .clkr = { 26653d356ab4STaniya Das .enable_reg = 0x3906c, 26663d356ab4STaniya Das .enable_mask = BIT(0), 26673d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 26683d356ab4STaniya Das .name = "gcc_usb3_prim_phy_pipe_clk", 26693d356ab4STaniya Das .parent_hws = (const struct clk_hw*[]) { 26703d356ab4STaniya Das &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw, 26713d356ab4STaniya Das }, 26723d356ab4STaniya Das .num_parents = 1, 26733d356ab4STaniya Das .flags = CLK_SET_RATE_PARENT, 26743d356ab4STaniya Das .ops = &clk_branch2_ops, 26753d356ab4STaniya Das }, 26763d356ab4STaniya Das }, 26773d356ab4STaniya Das }; 26783d356ab4STaniya Das 26793d356ab4STaniya Das static struct clk_branch gcc_video_axi0_clk = { 26803d356ab4STaniya Das .halt_reg = 0x32018, 26813d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 26823d356ab4STaniya Das .hwcg_reg = 0x32018, 26833d356ab4STaniya Das .hwcg_bit = 1, 26843d356ab4STaniya Das .clkr = { 26853d356ab4STaniya Das .enable_reg = 0x32018, 26863d356ab4STaniya Das .enable_mask = BIT(0), 26873d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 26883d356ab4STaniya Das .name = "gcc_video_axi0_clk", 26893d356ab4STaniya Das .ops = &clk_branch2_ops, 26903d356ab4STaniya Das }, 26913d356ab4STaniya Das }, 26923d356ab4STaniya Das }; 26933d356ab4STaniya Das 26943d356ab4STaniya Das static struct clk_branch gcc_video_axi1_clk = { 26953d356ab4STaniya Das .halt_reg = 0x32028, 26963d356ab4STaniya Das .halt_check = BRANCH_HALT_SKIP, 26973d356ab4STaniya Das .hwcg_reg = 0x32028, 26983d356ab4STaniya Das .hwcg_bit = 1, 26993d356ab4STaniya Das .clkr = { 27003d356ab4STaniya Das .enable_reg = 0x32028, 27013d356ab4STaniya Das .enable_mask = BIT(0), 27023d356ab4STaniya Das .hw.init = &(const struct clk_init_data) { 27033d356ab4STaniya Das .name = "gcc_video_axi1_clk", 27043d356ab4STaniya Das .ops = &clk_branch2_ops, 27053d356ab4STaniya Das }, 27063d356ab4STaniya Das }, 27073d356ab4STaniya Das }; 27083d356ab4STaniya Das 27093d356ab4STaniya Das static struct gdsc gcc_pcie_0_gdsc = { 27103d356ab4STaniya Das .gdscr = 0x6b004, 27113d356ab4STaniya Das .en_rest_wait_val = 0x2, 27123d356ab4STaniya Das .en_few_wait_val = 0x2, 27133d356ab4STaniya Das .clk_dis_wait_val = 0xf, 27143d356ab4STaniya Das .collapse_ctrl = 0x5214c, 27153d356ab4STaniya Das .collapse_mask = BIT(0), 27163d356ab4STaniya Das .pd = { 27173d356ab4STaniya Das .name = "gcc_pcie_0_gdsc", 27183d356ab4STaniya Das }, 27193d356ab4STaniya Das .pwrsts = PWRSTS_OFF_ON, 27203d356ab4STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 27213d356ab4STaniya Das }; 27223d356ab4STaniya Das 27233d356ab4STaniya Das static struct gdsc gcc_pcie_0_phy_gdsc = { 27243d356ab4STaniya Das .gdscr = 0x6c000, 27253d356ab4STaniya Das .en_rest_wait_val = 0x2, 27263d356ab4STaniya Das .en_few_wait_val = 0x2, 27273d356ab4STaniya Das .clk_dis_wait_val = 0x2, 27283d356ab4STaniya Das .collapse_ctrl = 0x5214c, 27293d356ab4STaniya Das .collapse_mask = BIT(2), 27303d356ab4STaniya Das .pd = { 27313d356ab4STaniya Das .name = "gcc_pcie_0_phy_gdsc", 27323d356ab4STaniya Das }, 27333d356ab4STaniya Das .pwrsts = PWRSTS_OFF_ON, 27343d356ab4STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 27353d356ab4STaniya Das }; 27363d356ab4STaniya Das 27373d356ab4STaniya Das static struct gdsc gcc_pcie_1_gdsc = { 27383d356ab4STaniya Das .gdscr = 0xac004, 27393d356ab4STaniya Das .en_rest_wait_val = 0x2, 27403d356ab4STaniya Das .en_few_wait_val = 0x2, 27413d356ab4STaniya Das .clk_dis_wait_val = 0xf, 27423d356ab4STaniya Das .collapse_ctrl = 0x5214c, 27433d356ab4STaniya Das .collapse_mask = BIT(3), 27443d356ab4STaniya Das .pd = { 27453d356ab4STaniya Das .name = "gcc_pcie_1_gdsc", 27463d356ab4STaniya Das }, 27473d356ab4STaniya Das .pwrsts = PWRSTS_OFF_ON, 27483d356ab4STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 27493d356ab4STaniya Das }; 27503d356ab4STaniya Das 27513d356ab4STaniya Das static struct gdsc gcc_pcie_1_phy_gdsc = { 27523d356ab4STaniya Das .gdscr = 0xad000, 27533d356ab4STaniya Das .en_rest_wait_val = 0x2, 27543d356ab4STaniya Das .en_few_wait_val = 0x2, 27553d356ab4STaniya Das .clk_dis_wait_val = 0x2, 27563d356ab4STaniya Das .collapse_ctrl = 0x5214c, 27573d356ab4STaniya Das .collapse_mask = BIT(4), 27583d356ab4STaniya Das .pd = { 27593d356ab4STaniya Das .name = "gcc_pcie_1_phy_gdsc", 27603d356ab4STaniya Das }, 27613d356ab4STaniya Das .pwrsts = PWRSTS_OFF_ON, 27623d356ab4STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE | VOTABLE, 27633d356ab4STaniya Das }; 27643d356ab4STaniya Das 27653d356ab4STaniya Das static struct gdsc gcc_ufs_mem_phy_gdsc = { 27663d356ab4STaniya Das .gdscr = 0x9e000, 27673d356ab4STaniya Das .en_rest_wait_val = 0x2, 27683d356ab4STaniya Das .en_few_wait_val = 0x2, 27693d356ab4STaniya Das .clk_dis_wait_val = 0x2, 27703d356ab4STaniya Das .pd = { 27713d356ab4STaniya Das .name = "gcc_ufs_mem_phy_gdsc", 27723d356ab4STaniya Das }, 27733d356ab4STaniya Das .pwrsts = PWRSTS_OFF_ON, 27743d356ab4STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 27753d356ab4STaniya Das }; 27763d356ab4STaniya Das 27773d356ab4STaniya Das static struct gdsc gcc_ufs_phy_gdsc = { 27783d356ab4STaniya Das .gdscr = 0x77004, 27793d356ab4STaniya Das .en_rest_wait_val = 0x2, 27803d356ab4STaniya Das .en_few_wait_val = 0x2, 27813d356ab4STaniya Das .clk_dis_wait_val = 0xf, 27823d356ab4STaniya Das .pd = { 27833d356ab4STaniya Das .name = "gcc_ufs_phy_gdsc", 27843d356ab4STaniya Das }, 27853d356ab4STaniya Das .pwrsts = PWRSTS_OFF_ON, 27863d356ab4STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 27873d356ab4STaniya Das }; 27883d356ab4STaniya Das 27893d356ab4STaniya Das static struct gdsc gcc_usb30_prim_gdsc = { 27903d356ab4STaniya Das .gdscr = 0x39004, 27913d356ab4STaniya Das .en_rest_wait_val = 0x2, 27923d356ab4STaniya Das .en_few_wait_val = 0x2, 27933d356ab4STaniya Das .clk_dis_wait_val = 0xf, 27943d356ab4STaniya Das .pd = { 27953d356ab4STaniya Das .name = "gcc_usb30_prim_gdsc", 27963d356ab4STaniya Das }, 27973d356ab4STaniya Das .pwrsts = PWRSTS_OFF_ON, 27983d356ab4STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 27993d356ab4STaniya Das }; 28003d356ab4STaniya Das 28013d356ab4STaniya Das static struct gdsc gcc_usb3_phy_gdsc = { 28023d356ab4STaniya Das .gdscr = 0x50018, 28033d356ab4STaniya Das .en_rest_wait_val = 0x2, 28043d356ab4STaniya Das .en_few_wait_val = 0x2, 28053d356ab4STaniya Das .clk_dis_wait_val = 0x2, 28063d356ab4STaniya Das .pd = { 28073d356ab4STaniya Das .name = "gcc_usb3_phy_gdsc", 28083d356ab4STaniya Das }, 28093d356ab4STaniya Das .pwrsts = PWRSTS_OFF_ON, 28103d356ab4STaniya Das .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, 28113d356ab4STaniya Das }; 28123d356ab4STaniya Das 28133d356ab4STaniya Das static struct clk_regmap *gcc_eliza_clocks[] = { 28143d356ab4STaniya Das [GCC_AGGRE_NOC_PCIE_AXI_CLK] = &gcc_aggre_noc_pcie_axi_clk.clkr, 28153d356ab4STaniya Das [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr, 28163d356ab4STaniya Das [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr, 28173d356ab4STaniya Das [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr, 28183d356ab4STaniya Das [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr, 28193d356ab4STaniya Das [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr, 28203d356ab4STaniya Das [GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr, 28213d356ab4STaniya Das [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr, 28223d356ab4STaniya Das [GCC_CNOC_PCIE_SF_AXI_CLK] = &gcc_cnoc_pcie_sf_axi_clk.clkr, 28233d356ab4STaniya Das [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr, 28243d356ab4STaniya Das [GCC_DDRSS_PCIE_SF_QTB_CLK] = &gcc_ddrss_pcie_sf_qtb_clk.clkr, 28253d356ab4STaniya Das [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr, 28263d356ab4STaniya Das [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, 28273d356ab4STaniya Das [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr, 28283d356ab4STaniya Das [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, 28293d356ab4STaniya Das [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr, 28303d356ab4STaniya Das [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, 28313d356ab4STaniya Das [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr, 28323d356ab4STaniya Das [GCC_GPLL0] = &gcc_gpll0.clkr, 28333d356ab4STaniya Das [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr, 28343d356ab4STaniya Das [GCC_GPLL4] = &gcc_gpll4.clkr, 28353d356ab4STaniya Das [GCC_GPLL7] = &gcc_gpll7.clkr, 28363d356ab4STaniya Das [GCC_GPLL8] = &gcc_gpll8.clkr, 28373d356ab4STaniya Das [GCC_GPLL9] = &gcc_gpll9.clkr, 28383d356ab4STaniya Das [GCC_GPU_GEMNOC_GFX_CLK] = &gcc_gpu_gemnoc_gfx_clk.clkr, 28393d356ab4STaniya Das [GCC_GPU_GPLL0_CPH_CLK_SRC] = &gcc_gpu_gpll0_cph_clk_src.clkr, 28403d356ab4STaniya Das [GCC_GPU_GPLL0_DIV_CPH_CLK_SRC] = &gcc_gpu_gpll0_div_cph_clk_src.clkr, 28413d356ab4STaniya Das [GCC_GPU_SMMU_VOTE_CLK] = &gcc_gpu_smmu_vote_clk.clkr, 28423d356ab4STaniya Das [GCC_MMU_TCU_VOTE_CLK] = &gcc_mmu_tcu_vote_clk.clkr, 28433d356ab4STaniya Das [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr, 28443d356ab4STaniya Das [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr, 28453d356ab4STaniya Das [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr, 28463d356ab4STaniya Das [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr, 28473d356ab4STaniya Das [GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr, 28483d356ab4STaniya Das [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr, 28493d356ab4STaniya Das [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr, 28503d356ab4STaniya Das [GCC_PCIE_0_PIPE_CLK_SRC] = &gcc_pcie_0_pipe_clk_src.clkr, 28513d356ab4STaniya Das [GCC_PCIE_0_PIPE_DIV2_CLK] = &gcc_pcie_0_pipe_div2_clk.clkr, 28523d356ab4STaniya Das [GCC_PCIE_0_PIPE_DIV2_CLK_SRC] = &gcc_pcie_0_pipe_div2_clk_src.clkr, 28533d356ab4STaniya Das [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr, 28543d356ab4STaniya Das [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr, 28553d356ab4STaniya Das [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr, 28563d356ab4STaniya Das [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr, 28573d356ab4STaniya Das [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr, 28583d356ab4STaniya Das [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr, 28593d356ab4STaniya Das [GCC_PCIE_1_PHY_RCHNG_CLK] = &gcc_pcie_1_phy_rchng_clk.clkr, 28603d356ab4STaniya Das [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr, 28613d356ab4STaniya Das [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr, 28623d356ab4STaniya Das [GCC_PCIE_1_PIPE_CLK_SRC] = &gcc_pcie_1_pipe_clk_src.clkr, 28633d356ab4STaniya Das [GCC_PCIE_1_PIPE_DIV2_CLK] = &gcc_pcie_1_pipe_div2_clk.clkr, 28643d356ab4STaniya Das [GCC_PCIE_1_PIPE_DIV2_CLK_SRC] = &gcc_pcie_1_pipe_div2_clk_src.clkr, 28653d356ab4STaniya Das [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr, 28663d356ab4STaniya Das [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr, 28673d356ab4STaniya Das [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr, 28683d356ab4STaniya Das [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr, 28693d356ab4STaniya Das [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr, 28703d356ab4STaniya Das [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr, 28713d356ab4STaniya Das [GCC_QMIP_CAMERA_CMD_AHB_CLK] = &gcc_qmip_camera_cmd_ahb_clk.clkr, 28723d356ab4STaniya Das [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr, 28733d356ab4STaniya Das [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr, 28743d356ab4STaniya Das [GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr, 28753d356ab4STaniya Das [GCC_QMIP_PCIE_AHB_CLK] = &gcc_qmip_pcie_ahb_clk.clkr, 28763d356ab4STaniya Das [GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr, 28773d356ab4STaniya Das [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr, 28783d356ab4STaniya Das [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr, 28793d356ab4STaniya Das [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr, 28803d356ab4STaniya Das [GCC_QUPV3_WRAP1_QSPI_REF_CLK] = &gcc_qupv3_wrap1_qspi_ref_clk.clkr, 28813d356ab4STaniya Das [GCC_QUPV3_WRAP1_QSPI_REF_CLK_SRC] = &gcc_qupv3_wrap1_qspi_ref_clk_src.clkr, 28823d356ab4STaniya Das [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr, 28833d356ab4STaniya Das [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr, 28843d356ab4STaniya Das [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr, 28853d356ab4STaniya Das [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr, 28863d356ab4STaniya Das [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr, 28873d356ab4STaniya Das [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr, 28883d356ab4STaniya Das [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr, 28893d356ab4STaniya Das [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr, 28903d356ab4STaniya Das [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr, 28913d356ab4STaniya Das [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr, 28923d356ab4STaniya Das [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr, 28933d356ab4STaniya Das [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr, 28943d356ab4STaniya Das [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr, 28953d356ab4STaniya Das [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr, 28963d356ab4STaniya Das [GCC_QUPV3_WRAP1_S7_CLK] = &gcc_qupv3_wrap1_s7_clk.clkr, 28973d356ab4STaniya Das [GCC_QUPV3_WRAP1_S7_CLK_SRC] = &gcc_qupv3_wrap1_s7_clk_src.clkr, 28983d356ab4STaniya Das [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr, 28993d356ab4STaniya Das [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr, 29003d356ab4STaniya Das [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr, 29013d356ab4STaniya Das [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr, 29023d356ab4STaniya Das [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr, 29033d356ab4STaniya Das [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr, 29043d356ab4STaniya Das [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr, 29053d356ab4STaniya Das [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr, 29063d356ab4STaniya Das [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr, 29073d356ab4STaniya Das [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr, 29083d356ab4STaniya Das [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr, 29093d356ab4STaniya Das [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr, 29103d356ab4STaniya Das [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr, 29113d356ab4STaniya Das [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr, 29123d356ab4STaniya Das [GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr, 29133d356ab4STaniya Das [GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr, 29143d356ab4STaniya Das [GCC_QUPV3_WRAP2_S7_CLK] = &gcc_qupv3_wrap2_s7_clk.clkr, 29153d356ab4STaniya Das [GCC_QUPV3_WRAP2_S7_CLK_SRC] = &gcc_qupv3_wrap2_s7_clk_src.clkr, 29163d356ab4STaniya Das [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr, 29173d356ab4STaniya Das [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr, 29183d356ab4STaniya Das [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr, 29193d356ab4STaniya Das [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr, 29203d356ab4STaniya Das [GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr, 29213d356ab4STaniya Das [GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr, 29223d356ab4STaniya Das [GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr, 29233d356ab4STaniya Das [GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr, 29243d356ab4STaniya Das [GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr, 29253d356ab4STaniya Das [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr, 29263d356ab4STaniya Das [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr, 29273d356ab4STaniya Das [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr, 29283d356ab4STaniya Das [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr, 29293d356ab4STaniya Das [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr, 29303d356ab4STaniya Das [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr, 29313d356ab4STaniya Das [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr, 29323d356ab4STaniya Das [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr, 29333d356ab4STaniya Das [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr, 29343d356ab4STaniya Das [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr, 29353d356ab4STaniya Das [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr, 29363d356ab4STaniya Das [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr, 29373d356ab4STaniya Das [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr, 29383d356ab4STaniya Das [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr, 29393d356ab4STaniya Das [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr, 29403d356ab4STaniya Das [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr, 29413d356ab4STaniya Das [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr, 29423d356ab4STaniya Das [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr, 29433d356ab4STaniya Das [GCC_USB30_PRIM_ATB_CLK] = &gcc_usb30_prim_atb_clk.clkr, 29443d356ab4STaniya Das [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr, 29453d356ab4STaniya Das [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr, 29463d356ab4STaniya Das [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr, 29473d356ab4STaniya Das [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr, 29483d356ab4STaniya Das [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr, 29493d356ab4STaniya Das [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr, 29503d356ab4STaniya Das [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr, 29513d356ab4STaniya Das [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr, 29523d356ab4STaniya Das [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr, 29533d356ab4STaniya Das [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr, 29543d356ab4STaniya Das [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr, 29553d356ab4STaniya Das [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr, 29563d356ab4STaniya Das [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr, 29573d356ab4STaniya Das }; 29583d356ab4STaniya Das 29593d356ab4STaniya Das static struct gdsc *gcc_eliza_gdscs[] = { 29603d356ab4STaniya Das [GCC_PCIE_0_GDSC] = &gcc_pcie_0_gdsc, 29613d356ab4STaniya Das [GCC_PCIE_0_PHY_GDSC] = &gcc_pcie_0_phy_gdsc, 29623d356ab4STaniya Das [GCC_PCIE_1_GDSC] = &gcc_pcie_1_gdsc, 29633d356ab4STaniya Das [GCC_PCIE_1_PHY_GDSC] = &gcc_pcie_1_phy_gdsc, 29643d356ab4STaniya Das [GCC_UFS_MEM_PHY_GDSC] = &gcc_ufs_mem_phy_gdsc, 29653d356ab4STaniya Das [GCC_UFS_PHY_GDSC] = &gcc_ufs_phy_gdsc, 29663d356ab4STaniya Das [GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc, 29673d356ab4STaniya Das [GCC_USB3_PHY_GDSC] = &gcc_usb3_phy_gdsc, 29683d356ab4STaniya Das }; 29693d356ab4STaniya Das 29703d356ab4STaniya Das static const struct qcom_reset_map gcc_eliza_resets[] = { 29713d356ab4STaniya Das [GCC_CAMERA_BCR] = { 0x26000 }, 29723d356ab4STaniya Das [GCC_DISPLAY_BCR] = { 0x27000 }, 29733d356ab4STaniya Das [GCC_GPU_BCR] = { 0x71000 }, 29743d356ab4STaniya Das [GCC_PCIE_0_BCR] = { 0x6b000 }, 29753d356ab4STaniya Das [GCC_PCIE_0_LINK_DOWN_BCR] = { 0x6c014 }, 29763d356ab4STaniya Das [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0x6c020 }, 29773d356ab4STaniya Das [GCC_PCIE_0_PHY_BCR] = { 0x6c01c }, 29783d356ab4STaniya Das [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0x6c028 }, 29793d356ab4STaniya Das [GCC_PCIE_1_BCR] = { 0xac000 }, 29803d356ab4STaniya Das [GCC_PCIE_1_LINK_DOWN_BCR] = { 0x8e014 }, 29813d356ab4STaniya Das [GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0x8e020 }, 29823d356ab4STaniya Das [GCC_PCIE_1_PHY_BCR] = { 0x8e01c }, 29833d356ab4STaniya Das [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0x8e024 }, 29843d356ab4STaniya Das [GCC_PCIE_PHY_BCR] = { 0x6f000 }, 29853d356ab4STaniya Das [GCC_PCIE_PHY_CFG_AHB_BCR] = { 0x6f00c }, 29863d356ab4STaniya Das [GCC_PCIE_PHY_COM_BCR] = { 0x6f010 }, 29873d356ab4STaniya Das [GCC_PCIE_RSCC_BCR] = { 0x11000 }, 29883d356ab4STaniya Das [GCC_PDM_BCR] = { 0x33000 }, 29893d356ab4STaniya Das [GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 }, 29903d356ab4STaniya Das [GCC_QUPV3_WRAPPER_2_BCR] = { 0x1e000 }, 29913d356ab4STaniya Das [GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 }, 29923d356ab4STaniya Das [GCC_QUSB2PHY_SEC_BCR] = { 0x12004 }, 29933d356ab4STaniya Das [GCC_SDCC1_BCR] = { 0xa9000 }, 29943d356ab4STaniya Das [GCC_SDCC2_BCR] = { 0x14000 }, 29953d356ab4STaniya Das [GCC_UFS_PHY_BCR] = { 0x77000 }, 29963d356ab4STaniya Das [GCC_USB30_PRIM_BCR] = { 0x39000 }, 29973d356ab4STaniya Das [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 }, 29983d356ab4STaniya Das [GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 }, 29993d356ab4STaniya Das [GCC_USB3_PHY_PRIM_BCR] = { 0x50000 }, 30003d356ab4STaniya Das [GCC_USB3_PHY_SEC_BCR] = { 0x5000c }, 30013d356ab4STaniya Das [GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 }, 30023d356ab4STaniya Das [GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 }, 30033d356ab4STaniya Das [GCC_VIDEO_AXI0_CLK_ARES] = { 0x32018, 2 }, 30043d356ab4STaniya Das [GCC_VIDEO_AXI1_CLK_ARES] = { 0x32028, 2 }, 30053d356ab4STaniya Das [GCC_VIDEO_BCR] = { 0x32000 }, 30063d356ab4STaniya Das }; 30073d356ab4STaniya Das 3008*87df31eaSKrzysztof Kozlowski static const u32 gcc_eliza_critical_cbcrs[] = { 30093d356ab4STaniya Das 0xa0004, /* GCC_CAM_BIST_MCLK_AHB_CLK */ 30103d356ab4STaniya Das 0x26004, /* GCC_CAMERA_AHB_CLK */ 30113d356ab4STaniya Das 0x26034, /* GCC_CAMERA_XO_CLK */ 30123d356ab4STaniya Das 0x27004, /* GCC_DISP_AHB_CLK */ 30133d356ab4STaniya Das 0x71004, /* GCC_GPU_CFG_AHB_CLK */ 30143d356ab4STaniya Das 0x52010, /* GCC_PCIE_RSCC_CFG_AHB_CLK */ 30153d356ab4STaniya Das 0x52010, /* GCC_PCIE_RSCC_XO_CLK */ 30163d356ab4STaniya Das 0x32004, /* GCC_VIDEO_AHB_CLK */ 30173d356ab4STaniya Das 0x32038, /* GCC_VIDEO_XO_CLK */ 30183d356ab4STaniya Das }; 30193d356ab4STaniya Das 30203d356ab4STaniya Das static const struct clk_rcg_dfs_data gcc_eliza_dfs_clocks[] = { 30213d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_qspi_ref_clk_src), 30223d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src), 30233d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src), 30243d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src), 30253d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src), 30263d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src), 30273d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src), 30283d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s7_clk_src), 30293d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src), 30303d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src), 30313d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src), 30323d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src), 30333d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src), 30343d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src), 30353d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src), 30363d356ab4STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap2_s7_clk_src), 30373d356ab4STaniya Das }; 30383d356ab4STaniya Das 30393d356ab4STaniya Das static const struct regmap_config gcc_eliza_regmap_config = { 30403d356ab4STaniya Das .reg_bits = 32, 30413d356ab4STaniya Das .reg_stride = 4, 30423d356ab4STaniya Das .val_bits = 32, 30433d356ab4STaniya Das .max_register = 0x1f41f0, 30443d356ab4STaniya Das .fast_io = true, 30453d356ab4STaniya Das }; 30463d356ab4STaniya Das 30473d356ab4STaniya Das static void clk_eliza_regs_configure(struct device *dev, struct regmap *regmap) 30483d356ab4STaniya Das { 30493006f7fbSAbel Vesa /* FORCE_MEM_CORE_ON for ufs phy ice core and gcc ufs phy axi clocks */ 30503d356ab4STaniya Das qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_ice_core_clk, true); 30513006f7fbSAbel Vesa qcom_branch_set_force_mem_core(regmap, gcc_ufs_phy_axi_clk, true); 30523d356ab4STaniya Das } 30533d356ab4STaniya Das 3054573ddd0dSKrzysztof Kozlowski static const struct qcom_cc_driver_data gcc_eliza_driver_data = { 30553d356ab4STaniya Das .clk_cbcrs = gcc_eliza_critical_cbcrs, 30563d356ab4STaniya Das .num_clk_cbcrs = ARRAY_SIZE(gcc_eliza_critical_cbcrs), 30573d356ab4STaniya Das .dfs_rcgs = gcc_eliza_dfs_clocks, 30583d356ab4STaniya Das .num_dfs_rcgs = ARRAY_SIZE(gcc_eliza_dfs_clocks), 30593d356ab4STaniya Das .clk_regs_configure = clk_eliza_regs_configure, 30603d356ab4STaniya Das }; 30613d356ab4STaniya Das 30623d356ab4STaniya Das static const struct qcom_cc_desc gcc_eliza_desc = { 30633d356ab4STaniya Das .config = &gcc_eliza_regmap_config, 30643d356ab4STaniya Das .clks = gcc_eliza_clocks, 30653d356ab4STaniya Das .num_clks = ARRAY_SIZE(gcc_eliza_clocks), 30663d356ab4STaniya Das .resets = gcc_eliza_resets, 30673d356ab4STaniya Das .num_resets = ARRAY_SIZE(gcc_eliza_resets), 30683d356ab4STaniya Das .gdscs = gcc_eliza_gdscs, 30693d356ab4STaniya Das .num_gdscs = ARRAY_SIZE(gcc_eliza_gdscs), 30703d356ab4STaniya Das .driver_data = &gcc_eliza_driver_data, 30713d356ab4STaniya Das }; 30723d356ab4STaniya Das 30733d356ab4STaniya Das static const struct of_device_id gcc_eliza_match_table[] = { 30743d356ab4STaniya Das { .compatible = "qcom,eliza-gcc" }, 30753d356ab4STaniya Das { } 30763d356ab4STaniya Das }; 30773d356ab4STaniya Das MODULE_DEVICE_TABLE(of, gcc_eliza_match_table); 30783d356ab4STaniya Das 30793d356ab4STaniya Das static int gcc_eliza_probe(struct platform_device *pdev) 30803d356ab4STaniya Das { 30813d356ab4STaniya Das return qcom_cc_probe(pdev, &gcc_eliza_desc); 30823d356ab4STaniya Das } 30833d356ab4STaniya Das 30843d356ab4STaniya Das static struct platform_driver gcc_eliza_driver = { 30853d356ab4STaniya Das .probe = gcc_eliza_probe, 30863d356ab4STaniya Das .driver = { 30873d356ab4STaniya Das .name = "gcc-eliza", 30883d356ab4STaniya Das .of_match_table = gcc_eliza_match_table, 30893d356ab4STaniya Das }, 30903d356ab4STaniya Das }; 30913d356ab4STaniya Das 30923d356ab4STaniya Das static int __init gcc_eliza_init(void) 30933d356ab4STaniya Das { 30943d356ab4STaniya Das return platform_driver_register(&gcc_eliza_driver); 30953d356ab4STaniya Das } 30963d356ab4STaniya Das subsys_initcall(gcc_eliza_init); 30973d356ab4STaniya Das 30983d356ab4STaniya Das static void __exit gcc_eliza_exit(void) 30993d356ab4STaniya Das { 31003d356ab4STaniya Das platform_driver_unregister(&gcc_eliza_driver); 31013d356ab4STaniya Das } 31023d356ab4STaniya Das module_exit(gcc_eliza_exit); 31033d356ab4STaniya Das 31043d356ab4STaniya Das MODULE_DESCRIPTION("QTI GCC Eliza Driver"); 31053d356ab4STaniya Das MODULE_LICENSE("GPL"); 3106