108c51cebSShazad Hussain // SPDX-License-Identifier: GPL-2.0-only
208c51cebSShazad Hussain /*
308c51cebSShazad Hussain * Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved.
408c51cebSShazad Hussain * Copyright (c) 2023, Linaro Limited
508c51cebSShazad Hussain */
608c51cebSShazad Hussain
708c51cebSShazad Hussain #include <linux/clk.h>
808c51cebSShazad Hussain #include <linux/clk-provider.h>
908c51cebSShazad Hussain #include <linux/err.h>
1008c51cebSShazad Hussain #include <linux/kernel.h>
1108c51cebSShazad Hussain #include <linux/module.h>
1208c51cebSShazad Hussain #include <linux/of.h>
13a96cbb14SRob Herring #include <linux/platform_device.h>
1408c51cebSShazad Hussain #include <linux/regmap.h>
1508c51cebSShazad Hussain
1608c51cebSShazad Hussain #include <dt-bindings/clock/qcom,sa8775p-gcc.h>
1708c51cebSShazad Hussain
1808c51cebSShazad Hussain #include "clk-alpha-pll.h"
1908c51cebSShazad Hussain #include "clk-branch.h"
2008c51cebSShazad Hussain #include "clk-rcg.h"
2108c51cebSShazad Hussain #include "clk-regmap.h"
2208c51cebSShazad Hussain #include "clk-regmap-divider.h"
2308c51cebSShazad Hussain #include "clk-regmap-mux.h"
2408c51cebSShazad Hussain #include "clk-regmap-phy-mux.h"
2508c51cebSShazad Hussain #include "common.h"
2608c51cebSShazad Hussain #include "gdsc.h"
2708c51cebSShazad Hussain #include "reset.h"
2808c51cebSShazad Hussain
2908c51cebSShazad Hussain /* Need to match the order of clocks in DT binding */
3008c51cebSShazad Hussain enum {
3108c51cebSShazad Hussain DT_BI_TCXO,
3208c51cebSShazad Hussain DT_SLEEP_CLK,
3308c51cebSShazad Hussain DT_UFS_PHY_RX_SYMBOL_0_CLK,
3408c51cebSShazad Hussain DT_UFS_PHY_RX_SYMBOL_1_CLK,
3508c51cebSShazad Hussain DT_UFS_PHY_TX_SYMBOL_0_CLK,
3608c51cebSShazad Hussain DT_UFS_CARD_RX_SYMBOL_0_CLK,
3708c51cebSShazad Hussain DT_UFS_CARD_RX_SYMBOL_1_CLK,
3808c51cebSShazad Hussain DT_UFS_CARD_TX_SYMBOL_0_CLK,
3908c51cebSShazad Hussain DT_USB3_PHY_WRAPPER_GCC_USB30_PRIM_PIPE_CLK,
4008c51cebSShazad Hussain DT_USB3_PHY_WRAPPER_GCC_USB30_SEC_PIPE_CLK,
4108c51cebSShazad Hussain DT_PCIE_0_PIPE_CLK,
4208c51cebSShazad Hussain DT_PCIE_1_PIPE_CLK,
4308c51cebSShazad Hussain DT_PCIE_PHY_AUX_CLK,
4408c51cebSShazad Hussain DT_RXC0_REF_CLK,
4508c51cebSShazad Hussain DT_RXC1_REF_CLK,
4608c51cebSShazad Hussain };
4708c51cebSShazad Hussain
4808c51cebSShazad Hussain enum {
4908c51cebSShazad Hussain P_BI_TCXO,
5008c51cebSShazad Hussain P_GCC_GPLL0_OUT_EVEN,
5108c51cebSShazad Hussain P_GCC_GPLL0_OUT_MAIN,
5208c51cebSShazad Hussain P_GCC_GPLL1_OUT_MAIN,
5308c51cebSShazad Hussain P_GCC_GPLL4_OUT_MAIN,
5408c51cebSShazad Hussain P_GCC_GPLL5_OUT_MAIN,
5508c51cebSShazad Hussain P_GCC_GPLL7_OUT_MAIN,
5608c51cebSShazad Hussain P_GCC_GPLL9_OUT_MAIN,
5708c51cebSShazad Hussain P_PCIE_0_PIPE_CLK,
5808c51cebSShazad Hussain P_PCIE_1_PIPE_CLK,
5908c51cebSShazad Hussain P_PCIE_PHY_AUX_CLK,
6008c51cebSShazad Hussain P_RXC0_REF_CLK,
6108c51cebSShazad Hussain P_RXC1_REF_CLK,
6208c51cebSShazad Hussain P_SLEEP_CLK,
6308c51cebSShazad Hussain P_UFS_CARD_RX_SYMBOL_0_CLK,
6408c51cebSShazad Hussain P_UFS_CARD_RX_SYMBOL_1_CLK,
6508c51cebSShazad Hussain P_UFS_CARD_TX_SYMBOL_0_CLK,
6608c51cebSShazad Hussain P_UFS_PHY_RX_SYMBOL_0_CLK,
6708c51cebSShazad Hussain P_UFS_PHY_RX_SYMBOL_1_CLK,
6808c51cebSShazad Hussain P_UFS_PHY_TX_SYMBOL_0_CLK,
6908c51cebSShazad Hussain P_USB3_PHY_WRAPPER_GCC_USB30_PRIM_PIPE_CLK,
7008c51cebSShazad Hussain P_USB3_PHY_WRAPPER_GCC_USB30_SEC_PIPE_CLK,
7108c51cebSShazad Hussain };
7208c51cebSShazad Hussain
7308c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_tcxo = { .index = DT_BI_TCXO };
7408c51cebSShazad Hussain
7508c51cebSShazad Hussain static struct clk_alpha_pll gcc_gpll0 = {
7608c51cebSShazad Hussain .offset = 0x0,
7708c51cebSShazad Hussain .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
7808c51cebSShazad Hussain .clkr = {
7908c51cebSShazad Hussain .enable_reg = 0x4b028,
8008c51cebSShazad Hussain .enable_mask = BIT(0),
8108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
8208c51cebSShazad Hussain .name = "gcc_gpll0",
8308c51cebSShazad Hussain .parent_data = &gcc_parent_data_tcxo,
8408c51cebSShazad Hussain .num_parents = 1,
8508c51cebSShazad Hussain .ops = &clk_alpha_pll_fixed_lucid_evo_ops,
8608c51cebSShazad Hussain },
8708c51cebSShazad Hussain },
8808c51cebSShazad Hussain };
8908c51cebSShazad Hussain
9008c51cebSShazad Hussain static const struct clk_div_table post_div_table_gcc_gpll0_out_even[] = {
9108c51cebSShazad Hussain { 0x1, 2 },
9208c51cebSShazad Hussain { }
9308c51cebSShazad Hussain };
9408c51cebSShazad Hussain
9508c51cebSShazad Hussain static struct clk_alpha_pll_postdiv gcc_gpll0_out_even = {
9608c51cebSShazad Hussain .offset = 0x0,
9708c51cebSShazad Hussain .post_div_shift = 10,
9808c51cebSShazad Hussain .post_div_table = post_div_table_gcc_gpll0_out_even,
9908c51cebSShazad Hussain .num_post_div = ARRAY_SIZE(post_div_table_gcc_gpll0_out_even),
10008c51cebSShazad Hussain .width = 4,
10108c51cebSShazad Hussain .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
10208c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
10308c51cebSShazad Hussain .name = "gcc_gpll0_out_even",
10408c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
10508c51cebSShazad Hussain &gcc_gpll0.clkr.hw,
10608c51cebSShazad Hussain },
10708c51cebSShazad Hussain .num_parents = 1,
10808c51cebSShazad Hussain .ops = &clk_alpha_pll_postdiv_lucid_evo_ops,
10908c51cebSShazad Hussain },
11008c51cebSShazad Hussain };
11108c51cebSShazad Hussain
11208c51cebSShazad Hussain static struct clk_alpha_pll gcc_gpll1 = {
11308c51cebSShazad Hussain .offset = 0x1000,
11408c51cebSShazad Hussain .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
11508c51cebSShazad Hussain .clkr = {
11608c51cebSShazad Hussain .enable_reg = 0x4b028,
11708c51cebSShazad Hussain .enable_mask = BIT(1),
11808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
11908c51cebSShazad Hussain .name = "gcc_gpll1",
12008c51cebSShazad Hussain .parent_data = &gcc_parent_data_tcxo,
12108c51cebSShazad Hussain .num_parents = 1,
12208c51cebSShazad Hussain .ops = &clk_alpha_pll_fixed_lucid_evo_ops,
12308c51cebSShazad Hussain },
12408c51cebSShazad Hussain },
12508c51cebSShazad Hussain };
12608c51cebSShazad Hussain
12708c51cebSShazad Hussain static struct clk_alpha_pll gcc_gpll4 = {
12808c51cebSShazad Hussain .offset = 0x4000,
12908c51cebSShazad Hussain .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
13008c51cebSShazad Hussain .clkr = {
13108c51cebSShazad Hussain .enable_reg = 0x4b028,
13208c51cebSShazad Hussain .enable_mask = BIT(4),
13308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
13408c51cebSShazad Hussain .name = "gcc_gpll4",
13508c51cebSShazad Hussain .parent_data = &gcc_parent_data_tcxo,
13608c51cebSShazad Hussain .num_parents = 1,
13708c51cebSShazad Hussain .ops = &clk_alpha_pll_fixed_lucid_evo_ops,
13808c51cebSShazad Hussain },
13908c51cebSShazad Hussain },
14008c51cebSShazad Hussain };
14108c51cebSShazad Hussain
14208c51cebSShazad Hussain static struct clk_alpha_pll gcc_gpll5 = {
14308c51cebSShazad Hussain .offset = 0x5000,
14408c51cebSShazad Hussain .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
14508c51cebSShazad Hussain .clkr = {
14608c51cebSShazad Hussain .enable_reg = 0x4b028,
14708c51cebSShazad Hussain .enable_mask = BIT(5),
14808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
14908c51cebSShazad Hussain .name = "gcc_gpll5",
15008c51cebSShazad Hussain .parent_data = &gcc_parent_data_tcxo,
15108c51cebSShazad Hussain .num_parents = 1,
15208c51cebSShazad Hussain .ops = &clk_alpha_pll_fixed_lucid_evo_ops,
15308c51cebSShazad Hussain },
15408c51cebSShazad Hussain },
15508c51cebSShazad Hussain };
15608c51cebSShazad Hussain
15708c51cebSShazad Hussain static struct clk_alpha_pll gcc_gpll7 = {
15808c51cebSShazad Hussain .offset = 0x7000,
15908c51cebSShazad Hussain .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
16008c51cebSShazad Hussain .clkr = {
16108c51cebSShazad Hussain .enable_reg = 0x4b028,
16208c51cebSShazad Hussain .enable_mask = BIT(7),
16308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
16408c51cebSShazad Hussain .name = "gcc_gpll7",
16508c51cebSShazad Hussain .parent_data = &gcc_parent_data_tcxo,
16608c51cebSShazad Hussain .num_parents = 1,
16708c51cebSShazad Hussain .ops = &clk_alpha_pll_fixed_lucid_evo_ops,
16808c51cebSShazad Hussain },
16908c51cebSShazad Hussain },
17008c51cebSShazad Hussain };
17108c51cebSShazad Hussain
17208c51cebSShazad Hussain static struct clk_alpha_pll gcc_gpll9 = {
17308c51cebSShazad Hussain .offset = 0x9000,
17408c51cebSShazad Hussain .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_LUCID_EVO],
17508c51cebSShazad Hussain .clkr = {
17608c51cebSShazad Hussain .enable_reg = 0x4b028,
17708c51cebSShazad Hussain .enable_mask = BIT(9),
17808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
17908c51cebSShazad Hussain .name = "gcc_gpll9",
18008c51cebSShazad Hussain .parent_data = &gcc_parent_data_tcxo,
18108c51cebSShazad Hussain .num_parents = 1,
18208c51cebSShazad Hussain .ops = &clk_alpha_pll_fixed_lucid_evo_ops,
18308c51cebSShazad Hussain },
18408c51cebSShazad Hussain },
18508c51cebSShazad Hussain };
18608c51cebSShazad Hussain
18708c51cebSShazad Hussain static const struct parent_map gcc_parent_map_0[] = {
18808c51cebSShazad Hussain { P_BI_TCXO, 0 },
18908c51cebSShazad Hussain { P_GCC_GPLL0_OUT_MAIN, 1 },
19008c51cebSShazad Hussain { P_GCC_GPLL0_OUT_EVEN, 6 },
19108c51cebSShazad Hussain };
19208c51cebSShazad Hussain
19308c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_0[] = {
19408c51cebSShazad Hussain { .index = DT_BI_TCXO },
19508c51cebSShazad Hussain { .hw = &gcc_gpll0.clkr.hw },
19608c51cebSShazad Hussain { .hw = &gcc_gpll0_out_even.clkr.hw },
19708c51cebSShazad Hussain };
19808c51cebSShazad Hussain
19908c51cebSShazad Hussain static const struct parent_map gcc_parent_map_1[] = {
20008c51cebSShazad Hussain { P_BI_TCXO, 0 },
20108c51cebSShazad Hussain { P_GCC_GPLL0_OUT_MAIN, 1 },
20208c51cebSShazad Hussain { P_GCC_GPLL4_OUT_MAIN, 5 },
20308c51cebSShazad Hussain { P_GCC_GPLL0_OUT_EVEN, 6 },
20408c51cebSShazad Hussain };
20508c51cebSShazad Hussain
20608c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_1[] = {
20708c51cebSShazad Hussain { .index = DT_BI_TCXO },
20808c51cebSShazad Hussain { .hw = &gcc_gpll0.clkr.hw },
20908c51cebSShazad Hussain { .hw = &gcc_gpll4.clkr.hw },
21008c51cebSShazad Hussain { .hw = &gcc_gpll0_out_even.clkr.hw },
21108c51cebSShazad Hussain };
21208c51cebSShazad Hussain
21308c51cebSShazad Hussain static const struct parent_map gcc_parent_map_2[] = {
21408c51cebSShazad Hussain { P_BI_TCXO, 0 },
21508c51cebSShazad Hussain { P_GCC_GPLL0_OUT_MAIN, 1 },
21608c51cebSShazad Hussain { P_SLEEP_CLK, 5 },
21708c51cebSShazad Hussain { P_GCC_GPLL0_OUT_EVEN, 6 },
21808c51cebSShazad Hussain };
21908c51cebSShazad Hussain
22008c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_2[] = {
22108c51cebSShazad Hussain { .index = DT_BI_TCXO },
22208c51cebSShazad Hussain { .hw = &gcc_gpll0.clkr.hw },
22308c51cebSShazad Hussain { .index = DT_SLEEP_CLK },
22408c51cebSShazad Hussain { .hw = &gcc_gpll0_out_even.clkr.hw },
22508c51cebSShazad Hussain };
22608c51cebSShazad Hussain
22708c51cebSShazad Hussain static const struct parent_map gcc_parent_map_3[] = {
22808c51cebSShazad Hussain { P_BI_TCXO, 0 },
22908c51cebSShazad Hussain { P_SLEEP_CLK, 5 },
23008c51cebSShazad Hussain };
23108c51cebSShazad Hussain
23208c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_3[] = {
23308c51cebSShazad Hussain { .index = DT_BI_TCXO },
23408c51cebSShazad Hussain { .index = DT_SLEEP_CLK },
23508c51cebSShazad Hussain };
23608c51cebSShazad Hussain
23708c51cebSShazad Hussain static const struct parent_map gcc_parent_map_4[] = {
23808c51cebSShazad Hussain { P_BI_TCXO, 0 },
23908c51cebSShazad Hussain { P_GCC_GPLL0_OUT_MAIN, 1 },
24008c51cebSShazad Hussain { P_GCC_GPLL1_OUT_MAIN, 4 },
24108c51cebSShazad Hussain { P_GCC_GPLL4_OUT_MAIN, 5 },
24208c51cebSShazad Hussain { P_GCC_GPLL0_OUT_EVEN, 6 },
24308c51cebSShazad Hussain };
24408c51cebSShazad Hussain
24508c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_4[] = {
24608c51cebSShazad Hussain { .index = DT_BI_TCXO },
24708c51cebSShazad Hussain { .hw = &gcc_gpll0.clkr.hw },
24808c51cebSShazad Hussain { .hw = &gcc_gpll1.clkr.hw },
24908c51cebSShazad Hussain { .hw = &gcc_gpll4.clkr.hw },
25008c51cebSShazad Hussain { .hw = &gcc_gpll0_out_even.clkr.hw },
25108c51cebSShazad Hussain };
25208c51cebSShazad Hussain
25308c51cebSShazad Hussain static const struct parent_map gcc_parent_map_5[] = {
25408c51cebSShazad Hussain { P_BI_TCXO, 0 },
25508c51cebSShazad Hussain };
25608c51cebSShazad Hussain
25708c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_5[] = {
25808c51cebSShazad Hussain { .index = DT_BI_TCXO },
25908c51cebSShazad Hussain };
26008c51cebSShazad Hussain
26108c51cebSShazad Hussain static const struct parent_map gcc_parent_map_6[] = {
26208c51cebSShazad Hussain { P_BI_TCXO, 0 },
26308c51cebSShazad Hussain { P_GCC_GPLL7_OUT_MAIN, 2 },
26408c51cebSShazad Hussain { P_GCC_GPLL4_OUT_MAIN, 5 },
26508c51cebSShazad Hussain { P_GCC_GPLL0_OUT_EVEN, 6 },
26608c51cebSShazad Hussain };
26708c51cebSShazad Hussain
26808c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_6[] = {
26908c51cebSShazad Hussain { .index = DT_BI_TCXO },
27008c51cebSShazad Hussain { .hw = &gcc_gpll7.clkr.hw },
27108c51cebSShazad Hussain { .hw = &gcc_gpll4.clkr.hw },
27208c51cebSShazad Hussain { .hw = &gcc_gpll0_out_even.clkr.hw },
27308c51cebSShazad Hussain };
27408c51cebSShazad Hussain
27508c51cebSShazad Hussain static const struct parent_map gcc_parent_map_7[] = {
27608c51cebSShazad Hussain { P_BI_TCXO, 0 },
27708c51cebSShazad Hussain { P_GCC_GPLL7_OUT_MAIN, 2 },
27808c51cebSShazad Hussain { P_RXC0_REF_CLK, 3 },
27908c51cebSShazad Hussain { P_GCC_GPLL0_OUT_EVEN, 6 },
28008c51cebSShazad Hussain };
28108c51cebSShazad Hussain
28208c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_7[] = {
28308c51cebSShazad Hussain { .index = DT_BI_TCXO },
28408c51cebSShazad Hussain { .hw = &gcc_gpll7.clkr.hw },
28508c51cebSShazad Hussain { .index = DT_RXC0_REF_CLK },
28608c51cebSShazad Hussain { .hw = &gcc_gpll0_out_even.clkr.hw },
28708c51cebSShazad Hussain };
28808c51cebSShazad Hussain
28908c51cebSShazad Hussain static const struct parent_map gcc_parent_map_8[] = {
29008c51cebSShazad Hussain { P_BI_TCXO, 0 },
29108c51cebSShazad Hussain { P_GCC_GPLL7_OUT_MAIN, 2 },
29208c51cebSShazad Hussain { P_RXC1_REF_CLK, 3 },
29308c51cebSShazad Hussain { P_GCC_GPLL0_OUT_EVEN, 6 },
29408c51cebSShazad Hussain };
29508c51cebSShazad Hussain
29608c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_8[] = {
29708c51cebSShazad Hussain { .index = DT_BI_TCXO },
29808c51cebSShazad Hussain { .hw = &gcc_gpll7.clkr.hw },
29908c51cebSShazad Hussain { .index = DT_RXC1_REF_CLK },
30008c51cebSShazad Hussain { .hw = &gcc_gpll0_out_even.clkr.hw },
30108c51cebSShazad Hussain };
30208c51cebSShazad Hussain
30308c51cebSShazad Hussain static const struct parent_map gcc_parent_map_9[] = {
30408c51cebSShazad Hussain { P_PCIE_PHY_AUX_CLK, 1 },
30508c51cebSShazad Hussain { P_BI_TCXO, 2 },
30608c51cebSShazad Hussain };
30708c51cebSShazad Hussain
30808c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_9[] = {
30908c51cebSShazad Hussain { .index = DT_PCIE_PHY_AUX_CLK },
31008c51cebSShazad Hussain { .index = DT_BI_TCXO },
31108c51cebSShazad Hussain };
31208c51cebSShazad Hussain
31308c51cebSShazad Hussain static const struct parent_map gcc_parent_map_11[] = {
31408c51cebSShazad Hussain { P_PCIE_PHY_AUX_CLK, 1 },
31508c51cebSShazad Hussain { P_BI_TCXO, 2 },
31608c51cebSShazad Hussain };
31708c51cebSShazad Hussain
31808c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_11[] = {
31908c51cebSShazad Hussain { .index = DT_PCIE_PHY_AUX_CLK },
32008c51cebSShazad Hussain { .index = DT_BI_TCXO },
32108c51cebSShazad Hussain };
32208c51cebSShazad Hussain
32308c51cebSShazad Hussain static const struct parent_map gcc_parent_map_13[] = {
32408c51cebSShazad Hussain { P_BI_TCXO, 0 },
32508c51cebSShazad Hussain { P_GCC_GPLL0_OUT_MAIN, 1 },
32608c51cebSShazad Hussain { P_GCC_GPLL9_OUT_MAIN, 2 },
32708c51cebSShazad Hussain { P_GCC_GPLL4_OUT_MAIN, 5 },
32808c51cebSShazad Hussain { P_GCC_GPLL0_OUT_EVEN, 6 },
32908c51cebSShazad Hussain };
33008c51cebSShazad Hussain
33108c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_13[] = {
33208c51cebSShazad Hussain { .index = DT_BI_TCXO },
33308c51cebSShazad Hussain { .hw = &gcc_gpll0.clkr.hw },
33408c51cebSShazad Hussain { .hw = &gcc_gpll9.clkr.hw },
33508c51cebSShazad Hussain { .hw = &gcc_gpll4.clkr.hw },
33608c51cebSShazad Hussain { .hw = &gcc_gpll0_out_even.clkr.hw },
33708c51cebSShazad Hussain };
33808c51cebSShazad Hussain
33908c51cebSShazad Hussain static const struct parent_map gcc_parent_map_14[] = {
34008c51cebSShazad Hussain { P_BI_TCXO, 0 },
34108c51cebSShazad Hussain { P_GCC_GPLL0_OUT_MAIN, 1 },
34208c51cebSShazad Hussain };
34308c51cebSShazad Hussain
34408c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_14[] = {
34508c51cebSShazad Hussain { .index = DT_BI_TCXO },
34608c51cebSShazad Hussain { .hw = &gcc_gpll0.clkr.hw },
34708c51cebSShazad Hussain };
34808c51cebSShazad Hussain
34908c51cebSShazad Hussain static const struct parent_map gcc_parent_map_15[] = {
35008c51cebSShazad Hussain { P_BI_TCXO, 0 },
35108c51cebSShazad Hussain { P_GCC_GPLL7_OUT_MAIN, 2 },
35208c51cebSShazad Hussain { P_GCC_GPLL5_OUT_MAIN, 3 },
35308c51cebSShazad Hussain { P_GCC_GPLL4_OUT_MAIN, 5 },
35408c51cebSShazad Hussain { P_GCC_GPLL0_OUT_EVEN, 6 },
35508c51cebSShazad Hussain };
35608c51cebSShazad Hussain
35708c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_15[] = {
35808c51cebSShazad Hussain { .index = DT_BI_TCXO },
35908c51cebSShazad Hussain { .hw = &gcc_gpll7.clkr.hw },
36008c51cebSShazad Hussain { .hw = &gcc_gpll5.clkr.hw },
36108c51cebSShazad Hussain { .hw = &gcc_gpll4.clkr.hw },
36208c51cebSShazad Hussain { .hw = &gcc_gpll0_out_even.clkr.hw },
36308c51cebSShazad Hussain };
36408c51cebSShazad Hussain
36508c51cebSShazad Hussain static const struct parent_map gcc_parent_map_16[] = {
36608c51cebSShazad Hussain { P_UFS_CARD_RX_SYMBOL_0_CLK, 0 },
36708c51cebSShazad Hussain { P_BI_TCXO, 2 },
36808c51cebSShazad Hussain };
36908c51cebSShazad Hussain
37008c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_16[] = {
37108c51cebSShazad Hussain { .index = DT_UFS_CARD_RX_SYMBOL_0_CLK },
37208c51cebSShazad Hussain { .index = DT_BI_TCXO },
37308c51cebSShazad Hussain };
37408c51cebSShazad Hussain
37508c51cebSShazad Hussain static const struct parent_map gcc_parent_map_17[] = {
37608c51cebSShazad Hussain { P_UFS_CARD_RX_SYMBOL_1_CLK, 0 },
37708c51cebSShazad Hussain { P_BI_TCXO, 2 },
37808c51cebSShazad Hussain };
37908c51cebSShazad Hussain
38008c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_17[] = {
38108c51cebSShazad Hussain { .index = DT_UFS_CARD_RX_SYMBOL_1_CLK },
38208c51cebSShazad Hussain { .index = DT_BI_TCXO },
38308c51cebSShazad Hussain };
38408c51cebSShazad Hussain
38508c51cebSShazad Hussain static const struct parent_map gcc_parent_map_18[] = {
38608c51cebSShazad Hussain { P_UFS_CARD_TX_SYMBOL_0_CLK, 0 },
38708c51cebSShazad Hussain { P_BI_TCXO, 2 },
38808c51cebSShazad Hussain };
38908c51cebSShazad Hussain
39008c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_18[] = {
39108c51cebSShazad Hussain { .index = DT_UFS_CARD_TX_SYMBOL_0_CLK },
39208c51cebSShazad Hussain { .index = DT_BI_TCXO },
39308c51cebSShazad Hussain };
39408c51cebSShazad Hussain
39508c51cebSShazad Hussain static const struct parent_map gcc_parent_map_19[] = {
39608c51cebSShazad Hussain { P_UFS_PHY_RX_SYMBOL_0_CLK, 0 },
39708c51cebSShazad Hussain { P_BI_TCXO, 2 },
39808c51cebSShazad Hussain };
39908c51cebSShazad Hussain
40008c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_19[] = {
40108c51cebSShazad Hussain { .index = DT_UFS_PHY_RX_SYMBOL_0_CLK },
40208c51cebSShazad Hussain { .index = DT_BI_TCXO },
40308c51cebSShazad Hussain };
40408c51cebSShazad Hussain
40508c51cebSShazad Hussain static const struct parent_map gcc_parent_map_20[] = {
40608c51cebSShazad Hussain { P_UFS_PHY_RX_SYMBOL_1_CLK, 0 },
40708c51cebSShazad Hussain { P_BI_TCXO, 2 },
40808c51cebSShazad Hussain };
40908c51cebSShazad Hussain
41008c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_20[] = {
41108c51cebSShazad Hussain { .index = DT_UFS_PHY_RX_SYMBOL_1_CLK },
41208c51cebSShazad Hussain { .index = DT_BI_TCXO },
41308c51cebSShazad Hussain };
41408c51cebSShazad Hussain
41508c51cebSShazad Hussain static const struct parent_map gcc_parent_map_21[] = {
41608c51cebSShazad Hussain { P_UFS_PHY_TX_SYMBOL_0_CLK, 0 },
41708c51cebSShazad Hussain { P_BI_TCXO, 2 },
41808c51cebSShazad Hussain };
41908c51cebSShazad Hussain
42008c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_21[] = {
42108c51cebSShazad Hussain { .index = DT_UFS_PHY_TX_SYMBOL_0_CLK },
42208c51cebSShazad Hussain { .index = DT_BI_TCXO },
42308c51cebSShazad Hussain };
42408c51cebSShazad Hussain
42508c51cebSShazad Hussain static const struct parent_map gcc_parent_map_22[] = {
42608c51cebSShazad Hussain { P_USB3_PHY_WRAPPER_GCC_USB30_PRIM_PIPE_CLK, 0 },
42708c51cebSShazad Hussain { P_BI_TCXO, 2 },
42808c51cebSShazad Hussain };
42908c51cebSShazad Hussain
43008c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_22[] = {
43108c51cebSShazad Hussain { .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PRIM_PIPE_CLK },
43208c51cebSShazad Hussain { .index = DT_BI_TCXO },
43308c51cebSShazad Hussain };
43408c51cebSShazad Hussain
43508c51cebSShazad Hussain static const struct parent_map gcc_parent_map_23[] = {
43608c51cebSShazad Hussain { P_USB3_PHY_WRAPPER_GCC_USB30_SEC_PIPE_CLK, 0 },
43708c51cebSShazad Hussain { P_BI_TCXO, 2 },
43808c51cebSShazad Hussain };
43908c51cebSShazad Hussain
44008c51cebSShazad Hussain static const struct clk_parent_data gcc_parent_data_23[] = {
44108c51cebSShazad Hussain { .index = DT_USB3_PHY_WRAPPER_GCC_USB30_SEC_PIPE_CLK },
44208c51cebSShazad Hussain { .index = DT_BI_TCXO },
44308c51cebSShazad Hussain };
44408c51cebSShazad Hussain
44508c51cebSShazad Hussain static struct clk_regmap_mux gcc_pcie_0_phy_aux_clk_src = {
44608c51cebSShazad Hussain .reg = 0xa9074,
44708c51cebSShazad Hussain .shift = 0,
44808c51cebSShazad Hussain .width = 2,
44908c51cebSShazad Hussain .parent_map = gcc_parent_map_9,
45008c51cebSShazad Hussain .clkr = {
45108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
45208c51cebSShazad Hussain .name = "gcc_pcie_0_phy_aux_clk_src",
45308c51cebSShazad Hussain .parent_data = gcc_parent_data_9,
45408c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_9),
45508c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
45608c51cebSShazad Hussain },
45708c51cebSShazad Hussain },
45808c51cebSShazad Hussain };
45908c51cebSShazad Hussain
46008c51cebSShazad Hussain static struct clk_regmap_phy_mux gcc_pcie_0_pipe_clk_src = {
46108c51cebSShazad Hussain .reg = 0xa906c,
46208c51cebSShazad Hussain .clkr = {
46308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
46408c51cebSShazad Hussain .name = "gcc_pcie_0_pipe_clk_src",
46508c51cebSShazad Hussain .parent_data = &(const struct clk_parent_data){
46608c51cebSShazad Hussain .index = DT_PCIE_0_PIPE_CLK,
46708c51cebSShazad Hussain },
46808c51cebSShazad Hussain .num_parents = 1,
46908c51cebSShazad Hussain .ops = &clk_regmap_phy_mux_ops,
47008c51cebSShazad Hussain },
47108c51cebSShazad Hussain },
47208c51cebSShazad Hussain };
47308c51cebSShazad Hussain
47408c51cebSShazad Hussain static struct clk_regmap_mux gcc_pcie_1_phy_aux_clk_src = {
47508c51cebSShazad Hussain .reg = 0x77074,
47608c51cebSShazad Hussain .shift = 0,
47708c51cebSShazad Hussain .width = 2,
47808c51cebSShazad Hussain .parent_map = gcc_parent_map_11,
47908c51cebSShazad Hussain .clkr = {
48008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
48108c51cebSShazad Hussain .name = "gcc_pcie_1_phy_aux_clk_src",
48208c51cebSShazad Hussain .parent_data = gcc_parent_data_11,
48308c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_11),
48408c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
48508c51cebSShazad Hussain },
48608c51cebSShazad Hussain },
48708c51cebSShazad Hussain };
48808c51cebSShazad Hussain
48908c51cebSShazad Hussain static struct clk_regmap_phy_mux gcc_pcie_1_pipe_clk_src = {
49008c51cebSShazad Hussain .reg = 0x7706c,
49108c51cebSShazad Hussain .clkr = {
49208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
49308c51cebSShazad Hussain .name = "gcc_pcie_1_pipe_clk_src",
49408c51cebSShazad Hussain .parent_data = &(const struct clk_parent_data) {
49508c51cebSShazad Hussain .index = DT_PCIE_1_PIPE_CLK,
49608c51cebSShazad Hussain },
49708c51cebSShazad Hussain .num_parents = 1,
49808c51cebSShazad Hussain .ops = &clk_regmap_phy_mux_ops,
49908c51cebSShazad Hussain },
50008c51cebSShazad Hussain },
50108c51cebSShazad Hussain };
50208c51cebSShazad Hussain
50308c51cebSShazad Hussain static struct clk_regmap_mux gcc_ufs_card_rx_symbol_0_clk_src = {
50408c51cebSShazad Hussain .reg = 0x81060,
50508c51cebSShazad Hussain .shift = 0,
50608c51cebSShazad Hussain .width = 2,
50708c51cebSShazad Hussain .parent_map = gcc_parent_map_16,
50808c51cebSShazad Hussain .clkr = {
50908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
51008c51cebSShazad Hussain .name = "gcc_ufs_card_rx_symbol_0_clk_src",
51108c51cebSShazad Hussain .parent_data = gcc_parent_data_16,
51208c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_16),
51308c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
51408c51cebSShazad Hussain },
51508c51cebSShazad Hussain },
51608c51cebSShazad Hussain };
51708c51cebSShazad Hussain
51808c51cebSShazad Hussain static struct clk_regmap_mux gcc_ufs_card_rx_symbol_1_clk_src = {
51908c51cebSShazad Hussain .reg = 0x810d0,
52008c51cebSShazad Hussain .shift = 0,
52108c51cebSShazad Hussain .width = 2,
52208c51cebSShazad Hussain .parent_map = gcc_parent_map_17,
52308c51cebSShazad Hussain .clkr = {
52408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
52508c51cebSShazad Hussain .name = "gcc_ufs_card_rx_symbol_1_clk_src",
52608c51cebSShazad Hussain .parent_data = gcc_parent_data_17,
52708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_17),
52808c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
52908c51cebSShazad Hussain },
53008c51cebSShazad Hussain },
53108c51cebSShazad Hussain };
53208c51cebSShazad Hussain
53308c51cebSShazad Hussain static struct clk_regmap_mux gcc_ufs_card_tx_symbol_0_clk_src = {
53408c51cebSShazad Hussain .reg = 0x81050,
53508c51cebSShazad Hussain .shift = 0,
53608c51cebSShazad Hussain .width = 2,
53708c51cebSShazad Hussain .parent_map = gcc_parent_map_18,
53808c51cebSShazad Hussain .clkr = {
53908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
54008c51cebSShazad Hussain .name = "gcc_ufs_card_tx_symbol_0_clk_src",
54108c51cebSShazad Hussain .parent_data = gcc_parent_data_18,
54208c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_18),
54308c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
54408c51cebSShazad Hussain },
54508c51cebSShazad Hussain },
54608c51cebSShazad Hussain };
54708c51cebSShazad Hussain
54808c51cebSShazad Hussain static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_0_clk_src = {
54908c51cebSShazad Hussain .reg = 0x83060,
55008c51cebSShazad Hussain .shift = 0,
55108c51cebSShazad Hussain .width = 2,
55208c51cebSShazad Hussain .parent_map = gcc_parent_map_19,
55308c51cebSShazad Hussain .clkr = {
55408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
55508c51cebSShazad Hussain .name = "gcc_ufs_phy_rx_symbol_0_clk_src",
55608c51cebSShazad Hussain .parent_data = gcc_parent_data_19,
55708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_19),
55808c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
55908c51cebSShazad Hussain },
56008c51cebSShazad Hussain },
56108c51cebSShazad Hussain };
56208c51cebSShazad Hussain
56308c51cebSShazad Hussain static struct clk_regmap_mux gcc_ufs_phy_rx_symbol_1_clk_src = {
56408c51cebSShazad Hussain .reg = 0x830d0,
56508c51cebSShazad Hussain .shift = 0,
56608c51cebSShazad Hussain .width = 2,
56708c51cebSShazad Hussain .parent_map = gcc_parent_map_20,
56808c51cebSShazad Hussain .clkr = {
56908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
57008c51cebSShazad Hussain .name = "gcc_ufs_phy_rx_symbol_1_clk_src",
57108c51cebSShazad Hussain .parent_data = gcc_parent_data_20,
57208c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_20),
57308c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
57408c51cebSShazad Hussain },
57508c51cebSShazad Hussain },
57608c51cebSShazad Hussain };
57708c51cebSShazad Hussain
57808c51cebSShazad Hussain static struct clk_regmap_mux gcc_ufs_phy_tx_symbol_0_clk_src = {
57908c51cebSShazad Hussain .reg = 0x83050,
58008c51cebSShazad Hussain .shift = 0,
58108c51cebSShazad Hussain .width = 2,
58208c51cebSShazad Hussain .parent_map = gcc_parent_map_21,
58308c51cebSShazad Hussain .clkr = {
58408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
58508c51cebSShazad Hussain .name = "gcc_ufs_phy_tx_symbol_0_clk_src",
58608c51cebSShazad Hussain .parent_data = gcc_parent_data_21,
58708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_21),
58808c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
58908c51cebSShazad Hussain },
59008c51cebSShazad Hussain },
59108c51cebSShazad Hussain };
59208c51cebSShazad Hussain
59308c51cebSShazad Hussain static struct clk_regmap_mux gcc_usb3_prim_phy_pipe_clk_src = {
59408c51cebSShazad Hussain .reg = 0x1b068,
59508c51cebSShazad Hussain .shift = 0,
59608c51cebSShazad Hussain .width = 2,
59708c51cebSShazad Hussain .parent_map = gcc_parent_map_22,
59808c51cebSShazad Hussain .clkr = {
59908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
60008c51cebSShazad Hussain .name = "gcc_usb3_prim_phy_pipe_clk_src",
60108c51cebSShazad Hussain .parent_data = gcc_parent_data_22,
60208c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_22),
60308c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
60408c51cebSShazad Hussain },
60508c51cebSShazad Hussain },
60608c51cebSShazad Hussain };
60708c51cebSShazad Hussain
60808c51cebSShazad Hussain static struct clk_regmap_mux gcc_usb3_sec_phy_pipe_clk_src = {
60908c51cebSShazad Hussain .reg = 0x2f068,
61008c51cebSShazad Hussain .shift = 0,
61108c51cebSShazad Hussain .width = 2,
61208c51cebSShazad Hussain .parent_map = gcc_parent_map_23,
61308c51cebSShazad Hussain .clkr = {
61408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
61508c51cebSShazad Hussain .name = "gcc_usb3_sec_phy_pipe_clk_src",
61608c51cebSShazad Hussain .parent_data = gcc_parent_data_23,
61708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_23),
61808c51cebSShazad Hussain .ops = &clk_regmap_mux_closest_ops,
61908c51cebSShazad Hussain },
62008c51cebSShazad Hussain },
62108c51cebSShazad Hussain };
62208c51cebSShazad Hussain
62308c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_emac0_phy_aux_clk_src[] = {
62408c51cebSShazad Hussain F(19200000, P_BI_TCXO, 1, 0, 0),
62508c51cebSShazad Hussain { }
62608c51cebSShazad Hussain };
62708c51cebSShazad Hussain
62808c51cebSShazad Hussain static struct clk_rcg2 gcc_emac0_phy_aux_clk_src = {
62908c51cebSShazad Hussain .cmd_rcgr = 0xb6028,
63008c51cebSShazad Hussain .mnd_width = 0,
63108c51cebSShazad Hussain .hid_width = 5,
63208c51cebSShazad Hussain .parent_map = gcc_parent_map_3,
63308c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
63408c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
63508c51cebSShazad Hussain .name = "gcc_emac0_phy_aux_clk_src",
63608c51cebSShazad Hussain .parent_data = gcc_parent_data_3,
63708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_3),
63808c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
63908c51cebSShazad Hussain },
64008c51cebSShazad Hussain };
64108c51cebSShazad Hussain
64208c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_emac0_ptp_clk_src[] = {
64308c51cebSShazad Hussain F(125000000, P_GCC_GPLL7_OUT_MAIN, 8, 0, 0),
64408c51cebSShazad Hussain F(230400000, P_GCC_GPLL4_OUT_MAIN, 3.5, 0, 0),
64508c51cebSShazad Hussain { }
64608c51cebSShazad Hussain };
64708c51cebSShazad Hussain
64808c51cebSShazad Hussain static struct clk_rcg2 gcc_emac0_ptp_clk_src = {
64908c51cebSShazad Hussain .cmd_rcgr = 0xb6060,
65008c51cebSShazad Hussain .mnd_width = 16,
65108c51cebSShazad Hussain .hid_width = 5,
65208c51cebSShazad Hussain .parent_map = gcc_parent_map_6,
65308c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
65408c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
65508c51cebSShazad Hussain .name = "gcc_emac0_ptp_clk_src",
65608c51cebSShazad Hussain .parent_data = gcc_parent_data_6,
65708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_6),
65808c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
65908c51cebSShazad Hussain },
66008c51cebSShazad Hussain };
66108c51cebSShazad Hussain
66208c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_emac0_rgmii_clk_src[] = {
66308c51cebSShazad Hussain F(125000000, P_GCC_GPLL7_OUT_MAIN, 8, 0, 0),
66408c51cebSShazad Hussain F(250000000, P_GCC_GPLL7_OUT_MAIN, 4, 0, 0),
66508c51cebSShazad Hussain { }
66608c51cebSShazad Hussain };
66708c51cebSShazad Hussain
66808c51cebSShazad Hussain static struct clk_rcg2 gcc_emac0_rgmii_clk_src = {
66908c51cebSShazad Hussain .cmd_rcgr = 0xb6048,
67008c51cebSShazad Hussain .mnd_width = 16,
67108c51cebSShazad Hussain .hid_width = 5,
67208c51cebSShazad Hussain .parent_map = gcc_parent_map_7,
67308c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
67408c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
67508c51cebSShazad Hussain .name = "gcc_emac0_rgmii_clk_src",
67608c51cebSShazad Hussain .parent_data = gcc_parent_data_7,
67708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_7),
67808c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
67908c51cebSShazad Hussain },
68008c51cebSShazad Hussain };
68108c51cebSShazad Hussain
68208c51cebSShazad Hussain static struct clk_rcg2 gcc_emac1_phy_aux_clk_src = {
68308c51cebSShazad Hussain .cmd_rcgr = 0xb4028,
68408c51cebSShazad Hussain .mnd_width = 0,
68508c51cebSShazad Hussain .hid_width = 5,
68608c51cebSShazad Hussain .parent_map = gcc_parent_map_3,
68708c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
68808c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
68908c51cebSShazad Hussain .name = "gcc_emac1_phy_aux_clk_src",
69008c51cebSShazad Hussain .parent_data = gcc_parent_data_3,
69108c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_3),
69208c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
69308c51cebSShazad Hussain },
69408c51cebSShazad Hussain };
69508c51cebSShazad Hussain
69608c51cebSShazad Hussain static struct clk_rcg2 gcc_emac1_ptp_clk_src = {
69708c51cebSShazad Hussain .cmd_rcgr = 0xb4060,
69808c51cebSShazad Hussain .mnd_width = 16,
69908c51cebSShazad Hussain .hid_width = 5,
70008c51cebSShazad Hussain .parent_map = gcc_parent_map_6,
70108c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
70208c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
70308c51cebSShazad Hussain .name = "gcc_emac1_ptp_clk_src",
70408c51cebSShazad Hussain .parent_data = gcc_parent_data_6,
70508c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_6),
70608c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
70708c51cebSShazad Hussain },
70808c51cebSShazad Hussain };
70908c51cebSShazad Hussain
71008c51cebSShazad Hussain static struct clk_rcg2 gcc_emac1_rgmii_clk_src = {
71108c51cebSShazad Hussain .cmd_rcgr = 0xb4048,
71208c51cebSShazad Hussain .mnd_width = 16,
71308c51cebSShazad Hussain .hid_width = 5,
71408c51cebSShazad Hussain .parent_map = gcc_parent_map_8,
71508c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
71608c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
71708c51cebSShazad Hussain .name = "gcc_emac1_rgmii_clk_src",
71808c51cebSShazad Hussain .parent_data = gcc_parent_data_8,
71908c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_8),
72008c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
72108c51cebSShazad Hussain },
72208c51cebSShazad Hussain };
72308c51cebSShazad Hussain
72408c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
72508c51cebSShazad Hussain F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
72608c51cebSShazad Hussain F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
72708c51cebSShazad Hussain { }
72808c51cebSShazad Hussain };
72908c51cebSShazad Hussain
73008c51cebSShazad Hussain static struct clk_rcg2 gcc_gp1_clk_src = {
73108c51cebSShazad Hussain .cmd_rcgr = 0x70004,
73208c51cebSShazad Hussain .mnd_width = 16,
73308c51cebSShazad Hussain .hid_width = 5,
73408c51cebSShazad Hussain .parent_map = gcc_parent_map_2,
73508c51cebSShazad Hussain .freq_tbl = ftbl_gcc_gp1_clk_src,
73608c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
73708c51cebSShazad Hussain .name = "gcc_gp1_clk_src",
73808c51cebSShazad Hussain .parent_data = gcc_parent_data_2,
73908c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_2),
74008c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
74108c51cebSShazad Hussain },
74208c51cebSShazad Hussain };
74308c51cebSShazad Hussain
74408c51cebSShazad Hussain static struct clk_rcg2 gcc_gp2_clk_src = {
74508c51cebSShazad Hussain .cmd_rcgr = 0x71004,
74608c51cebSShazad Hussain .mnd_width = 16,
74708c51cebSShazad Hussain .hid_width = 5,
74808c51cebSShazad Hussain .parent_map = gcc_parent_map_2,
74908c51cebSShazad Hussain .freq_tbl = ftbl_gcc_gp1_clk_src,
75008c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
75108c51cebSShazad Hussain .name = "gcc_gp2_clk_src",
75208c51cebSShazad Hussain .parent_data = gcc_parent_data_2,
75308c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_2),
75408c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
75508c51cebSShazad Hussain },
75608c51cebSShazad Hussain };
75708c51cebSShazad Hussain
75808c51cebSShazad Hussain static struct clk_rcg2 gcc_gp3_clk_src = {
75908c51cebSShazad Hussain .cmd_rcgr = 0x62004,
76008c51cebSShazad Hussain .mnd_width = 16,
76108c51cebSShazad Hussain .hid_width = 5,
76208c51cebSShazad Hussain .parent_map = gcc_parent_map_2,
76308c51cebSShazad Hussain .freq_tbl = ftbl_gcc_gp1_clk_src,
76408c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
76508c51cebSShazad Hussain .name = "gcc_gp3_clk_src",
76608c51cebSShazad Hussain .parent_data = gcc_parent_data_2,
76708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_2),
76808c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
76908c51cebSShazad Hussain },
77008c51cebSShazad Hussain };
77108c51cebSShazad Hussain
77208c51cebSShazad Hussain static struct clk_rcg2 gcc_gp4_clk_src = {
77308c51cebSShazad Hussain .cmd_rcgr = 0x1e004,
77408c51cebSShazad Hussain .mnd_width = 16,
77508c51cebSShazad Hussain .hid_width = 5,
77608c51cebSShazad Hussain .parent_map = gcc_parent_map_2,
77708c51cebSShazad Hussain .freq_tbl = ftbl_gcc_gp1_clk_src,
77808c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
77908c51cebSShazad Hussain .name = "gcc_gp4_clk_src",
78008c51cebSShazad Hussain .parent_data = gcc_parent_data_2,
78108c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_2),
78208c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
78308c51cebSShazad Hussain },
78408c51cebSShazad Hussain };
78508c51cebSShazad Hussain
78608c51cebSShazad Hussain static struct clk_rcg2 gcc_gp5_clk_src = {
78708c51cebSShazad Hussain .cmd_rcgr = 0x1f004,
78808c51cebSShazad Hussain .mnd_width = 16,
78908c51cebSShazad Hussain .hid_width = 5,
79008c51cebSShazad Hussain .parent_map = gcc_parent_map_2,
79108c51cebSShazad Hussain .freq_tbl = ftbl_gcc_gp1_clk_src,
79208c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
79308c51cebSShazad Hussain .name = "gcc_gp5_clk_src",
79408c51cebSShazad Hussain .parent_data = gcc_parent_data_2,
79508c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_2),
79608c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
79708c51cebSShazad Hussain },
79808c51cebSShazad Hussain };
79908c51cebSShazad Hussain
80008c51cebSShazad Hussain static struct clk_rcg2 gcc_pcie_0_aux_clk_src = {
80108c51cebSShazad Hussain .cmd_rcgr = 0xa9078,
80208c51cebSShazad Hussain .mnd_width = 16,
80308c51cebSShazad Hussain .hid_width = 5,
80408c51cebSShazad Hussain .parent_map = gcc_parent_map_3,
80508c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
80608c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
80708c51cebSShazad Hussain .name = "gcc_pcie_0_aux_clk_src",
80808c51cebSShazad Hussain .parent_data = gcc_parent_data_3,
80908c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_3),
81008c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
81108c51cebSShazad Hussain },
81208c51cebSShazad Hussain };
81308c51cebSShazad Hussain
81408c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_pcie_0_phy_rchng_clk_src[] = {
81508c51cebSShazad Hussain F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
81608c51cebSShazad Hussain { }
81708c51cebSShazad Hussain };
81808c51cebSShazad Hussain
81908c51cebSShazad Hussain static struct clk_rcg2 gcc_pcie_0_phy_rchng_clk_src = {
82008c51cebSShazad Hussain .cmd_rcgr = 0xa9054,
82108c51cebSShazad Hussain .mnd_width = 0,
82208c51cebSShazad Hussain .hid_width = 5,
82308c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
82408c51cebSShazad Hussain .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
82508c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
82608c51cebSShazad Hussain .name = "gcc_pcie_0_phy_rchng_clk_src",
82708c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
82808c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
82908c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
83008c51cebSShazad Hussain },
83108c51cebSShazad Hussain };
83208c51cebSShazad Hussain
83308c51cebSShazad Hussain static struct clk_rcg2 gcc_pcie_1_aux_clk_src = {
83408c51cebSShazad Hussain .cmd_rcgr = 0x77078,
83508c51cebSShazad Hussain .mnd_width = 16,
83608c51cebSShazad Hussain .hid_width = 5,
83708c51cebSShazad Hussain .parent_map = gcc_parent_map_3,
83808c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
83908c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
84008c51cebSShazad Hussain .name = "gcc_pcie_1_aux_clk_src",
84108c51cebSShazad Hussain .parent_data = gcc_parent_data_3,
84208c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_3),
84308c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
84408c51cebSShazad Hussain },
84508c51cebSShazad Hussain };
84608c51cebSShazad Hussain
84708c51cebSShazad Hussain static struct clk_rcg2 gcc_pcie_1_phy_rchng_clk_src = {
84808c51cebSShazad Hussain .cmd_rcgr = 0x77054,
84908c51cebSShazad Hussain .mnd_width = 0,
85008c51cebSShazad Hussain .hid_width = 5,
85108c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
85208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_pcie_0_phy_rchng_clk_src,
85308c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
85408c51cebSShazad Hussain .name = "gcc_pcie_1_phy_rchng_clk_src",
85508c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
85608c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
85708c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
85808c51cebSShazad Hussain },
85908c51cebSShazad Hussain };
86008c51cebSShazad Hussain
86108c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
86208c51cebSShazad Hussain F(60000000, P_GCC_GPLL0_OUT_MAIN, 10, 0, 0),
86308c51cebSShazad Hussain { }
86408c51cebSShazad Hussain };
86508c51cebSShazad Hussain
86608c51cebSShazad Hussain static struct clk_rcg2 gcc_pdm2_clk_src = {
86708c51cebSShazad Hussain .cmd_rcgr = 0x3f010,
86808c51cebSShazad Hussain .mnd_width = 0,
86908c51cebSShazad Hussain .hid_width = 5,
87008c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
87108c51cebSShazad Hussain .freq_tbl = ftbl_gcc_pdm2_clk_src,
87208c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
87308c51cebSShazad Hussain .name = "gcc_pdm2_clk_src",
87408c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
87508c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
87608c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
87708c51cebSShazad Hussain },
87808c51cebSShazad Hussain };
87908c51cebSShazad Hussain
88008c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
88108c51cebSShazad Hussain F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
88208c51cebSShazad Hussain F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
88308c51cebSShazad Hussain F(19200000, P_BI_TCXO, 1, 0, 0),
88408c51cebSShazad Hussain F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
88508c51cebSShazad Hussain F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
88608c51cebSShazad Hussain F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
88708c51cebSShazad Hussain F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
88808c51cebSShazad Hussain F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
88908c51cebSShazad Hussain F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
89008c51cebSShazad Hussain F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
89108c51cebSShazad Hussain { }
89208c51cebSShazad Hussain };
89308c51cebSShazad Hussain
89408c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
89508c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s0_clk_src",
89608c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
89708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
89808c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
89908c51cebSShazad Hussain };
90008c51cebSShazad Hussain
90108c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
90208c51cebSShazad Hussain .cmd_rcgr = 0x23154,
90308c51cebSShazad Hussain .mnd_width = 16,
90408c51cebSShazad Hussain .hid_width = 5,
90508c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
90608c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
90708c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
90808c51cebSShazad Hussain };
90908c51cebSShazad Hussain
91008c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
91108c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s1_clk_src",
91208c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
91308c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
91408c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
91508c51cebSShazad Hussain };
91608c51cebSShazad Hussain
91708c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
91808c51cebSShazad Hussain .cmd_rcgr = 0x23288,
91908c51cebSShazad Hussain .mnd_width = 16,
92008c51cebSShazad Hussain .hid_width = 5,
92108c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
92208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
92308c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
92408c51cebSShazad Hussain };
92508c51cebSShazad Hussain
92608c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s2_clk_src[] = {
92708c51cebSShazad Hussain F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
92808c51cebSShazad Hussain F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
92908c51cebSShazad Hussain F(19200000, P_BI_TCXO, 1, 0, 0),
93008c51cebSShazad Hussain F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
93108c51cebSShazad Hussain F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
93208c51cebSShazad Hussain F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
93308c51cebSShazad Hussain F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
93408c51cebSShazad Hussain F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
93508c51cebSShazad Hussain F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
93608c51cebSShazad Hussain F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
93708c51cebSShazad Hussain { }
93808c51cebSShazad Hussain };
93908c51cebSShazad Hussain
94008c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
94108c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s2_clk_src",
94208c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
94308c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
94408c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
94508c51cebSShazad Hussain };
94608c51cebSShazad Hussain
94708c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
94808c51cebSShazad Hussain .cmd_rcgr = 0x233bc,
94908c51cebSShazad Hussain .mnd_width = 16,
95008c51cebSShazad Hussain .hid_width = 5,
95108c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
95208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
95308c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
95408c51cebSShazad Hussain };
95508c51cebSShazad Hussain
95608c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
95708c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s3_clk_src",
95808c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
95908c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
96008c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
96108c51cebSShazad Hussain };
96208c51cebSShazad Hussain
96308c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
96408c51cebSShazad Hussain .cmd_rcgr = 0x234f0,
96508c51cebSShazad Hussain .mnd_width = 16,
96608c51cebSShazad Hussain .hid_width = 5,
96708c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
96808c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
96908c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
97008c51cebSShazad Hussain };
97108c51cebSShazad Hussain
97208c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
97308c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s4_clk_src",
97408c51cebSShazad Hussain .parent_data = gcc_parent_data_1,
97508c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_1),
97608c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
97708c51cebSShazad Hussain };
97808c51cebSShazad Hussain
97908c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
98008c51cebSShazad Hussain .cmd_rcgr = 0x23624,
98108c51cebSShazad Hussain .mnd_width = 16,
98208c51cebSShazad Hussain .hid_width = 5,
98308c51cebSShazad Hussain .parent_map = gcc_parent_map_1,
98408c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
98508c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
98608c51cebSShazad Hussain };
98708c51cebSShazad Hussain
98808c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
98908c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s5_clk_src",
99008c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
99108c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
99208c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
99308c51cebSShazad Hussain };
99408c51cebSShazad Hussain
99508c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
99608c51cebSShazad Hussain .cmd_rcgr = 0x23758,
99708c51cebSShazad Hussain .mnd_width = 16,
99808c51cebSShazad Hussain .hid_width = 5,
99908c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
100008c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
100108c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
100208c51cebSShazad Hussain };
100308c51cebSShazad Hussain
100408c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
100508c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s6_clk_src",
100608c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
100708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
100808c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
100908c51cebSShazad Hussain };
101008c51cebSShazad Hussain
101108c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
101208c51cebSShazad Hussain .cmd_rcgr = 0x2388c,
101308c51cebSShazad Hussain .mnd_width = 16,
101408c51cebSShazad Hussain .hid_width = 5,
101508c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
101608c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
101708c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
101808c51cebSShazad Hussain };
101908c51cebSShazad Hussain
102008c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
102108c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s0_clk_src",
102208c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
102308c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
102408c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
102508c51cebSShazad Hussain };
102608c51cebSShazad Hussain
102708c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
102808c51cebSShazad Hussain .cmd_rcgr = 0x24154,
102908c51cebSShazad Hussain .mnd_width = 16,
103008c51cebSShazad Hussain .hid_width = 5,
103108c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
103208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
103308c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
103408c51cebSShazad Hussain };
103508c51cebSShazad Hussain
103608c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
103708c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s1_clk_src",
103808c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
103908c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
104008c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
104108c51cebSShazad Hussain };
104208c51cebSShazad Hussain
104308c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
104408c51cebSShazad Hussain .cmd_rcgr = 0x24288,
104508c51cebSShazad Hussain .mnd_width = 16,
104608c51cebSShazad Hussain .hid_width = 5,
104708c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
104808c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
104908c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
105008c51cebSShazad Hussain };
105108c51cebSShazad Hussain
105208c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = {
105308c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s2_clk_src",
105408c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
105508c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
105608c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
105708c51cebSShazad Hussain };
105808c51cebSShazad Hussain
105908c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = {
106008c51cebSShazad Hussain .cmd_rcgr = 0x243bc,
106108c51cebSShazad Hussain .mnd_width = 16,
106208c51cebSShazad Hussain .hid_width = 5,
106308c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
106408c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
106508c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
106608c51cebSShazad Hussain };
106708c51cebSShazad Hussain
106808c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
106908c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s3_clk_src",
107008c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
107108c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
107208c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
107308c51cebSShazad Hussain };
107408c51cebSShazad Hussain
107508c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
107608c51cebSShazad Hussain .cmd_rcgr = 0x244f0,
107708c51cebSShazad Hussain .mnd_width = 16,
107808c51cebSShazad Hussain .hid_width = 5,
107908c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
108008c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
108108c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
108208c51cebSShazad Hussain };
108308c51cebSShazad Hussain
108408c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
108508c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s4_clk_src",
108608c51cebSShazad Hussain .parent_data = gcc_parent_data_1,
108708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_1),
108808c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
108908c51cebSShazad Hussain };
109008c51cebSShazad Hussain
109108c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
109208c51cebSShazad Hussain .cmd_rcgr = 0x24624,
109308c51cebSShazad Hussain .mnd_width = 16,
109408c51cebSShazad Hussain .hid_width = 5,
109508c51cebSShazad Hussain .parent_map = gcc_parent_map_1,
109608c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
109708c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
109808c51cebSShazad Hussain };
109908c51cebSShazad Hussain
110008c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
110108c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s5_clk_src",
110208c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
110308c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
110408c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
110508c51cebSShazad Hussain };
110608c51cebSShazad Hussain
110708c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
110808c51cebSShazad Hussain .cmd_rcgr = 0x24758,
110908c51cebSShazad Hussain .mnd_width = 16,
111008c51cebSShazad Hussain .hid_width = 5,
111108c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
111208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
111308c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
111408c51cebSShazad Hussain };
111508c51cebSShazad Hussain
111608c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
111708c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s6_clk_src",
111808c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
111908c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
112008c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
112108c51cebSShazad Hussain };
112208c51cebSShazad Hussain
112308c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
112408c51cebSShazad Hussain .cmd_rcgr = 0x2488c,
112508c51cebSShazad Hussain .mnd_width = 16,
112608c51cebSShazad Hussain .hid_width = 5,
112708c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
112808c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
112908c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap1_s6_clk_src_init,
113008c51cebSShazad Hussain };
113108c51cebSShazad Hussain
113208c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
113308c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s0_clk_src",
113408c51cebSShazad Hussain .parent_data = gcc_parent_data_1,
113508c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_1),
113608c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
113708c51cebSShazad Hussain };
113808c51cebSShazad Hussain
113908c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
114008c51cebSShazad Hussain .cmd_rcgr = 0x2a154,
114108c51cebSShazad Hussain .mnd_width = 16,
114208c51cebSShazad Hussain .hid_width = 5,
114308c51cebSShazad Hussain .parent_map = gcc_parent_map_1,
114408c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
114508c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap2_s0_clk_src_init,
114608c51cebSShazad Hussain };
114708c51cebSShazad Hussain
114808c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
114908c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s1_clk_src",
115008c51cebSShazad Hussain .parent_data = gcc_parent_data_1,
115108c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_1),
115208c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
115308c51cebSShazad Hussain };
115408c51cebSShazad Hussain
115508c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
115608c51cebSShazad Hussain .cmd_rcgr = 0x2a288,
115708c51cebSShazad Hussain .mnd_width = 16,
115808c51cebSShazad Hussain .hid_width = 5,
115908c51cebSShazad Hussain .parent_map = gcc_parent_map_1,
116008c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
116108c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap2_s1_clk_src_init,
116208c51cebSShazad Hussain };
116308c51cebSShazad Hussain
116408c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
116508c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s2_clk_src",
116608c51cebSShazad Hussain .parent_data = gcc_parent_data_1,
116708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_1),
116808c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
116908c51cebSShazad Hussain };
117008c51cebSShazad Hussain
117108c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
117208c51cebSShazad Hussain .cmd_rcgr = 0x2a3bc,
117308c51cebSShazad Hussain .mnd_width = 16,
117408c51cebSShazad Hussain .hid_width = 5,
117508c51cebSShazad Hussain .parent_map = gcc_parent_map_1,
117608c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
117708c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap2_s2_clk_src_init,
117808c51cebSShazad Hussain };
117908c51cebSShazad Hussain
118008c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
118108c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s3_clk_src",
118208c51cebSShazad Hussain .parent_data = gcc_parent_data_1,
118308c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_1),
118408c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
118508c51cebSShazad Hussain };
118608c51cebSShazad Hussain
118708c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
118808c51cebSShazad Hussain .cmd_rcgr = 0x2a4f0,
118908c51cebSShazad Hussain .mnd_width = 16,
119008c51cebSShazad Hussain .hid_width = 5,
119108c51cebSShazad Hussain .parent_map = gcc_parent_map_1,
119208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
119308c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap2_s3_clk_src_init,
119408c51cebSShazad Hussain };
119508c51cebSShazad Hussain
119608c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
119708c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s4_clk_src",
119808c51cebSShazad Hussain .parent_data = gcc_parent_data_1,
119908c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_1),
120008c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
120108c51cebSShazad Hussain };
120208c51cebSShazad Hussain
120308c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
120408c51cebSShazad Hussain .cmd_rcgr = 0x2a624,
120508c51cebSShazad Hussain .mnd_width = 16,
120608c51cebSShazad Hussain .hid_width = 5,
120708c51cebSShazad Hussain .parent_map = gcc_parent_map_1,
120808c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
120908c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap2_s4_clk_src_init,
121008c51cebSShazad Hussain };
121108c51cebSShazad Hussain
121208c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
121308c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s5_clk_src",
121408c51cebSShazad Hussain .parent_data = gcc_parent_data_1,
121508c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_1),
121608c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
121708c51cebSShazad Hussain };
121808c51cebSShazad Hussain
121908c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
122008c51cebSShazad Hussain .cmd_rcgr = 0x2a758,
122108c51cebSShazad Hussain .mnd_width = 16,
122208c51cebSShazad Hussain .hid_width = 5,
122308c51cebSShazad Hussain .parent_map = gcc_parent_map_1,
122408c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
122508c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap2_s5_clk_src_init,
122608c51cebSShazad Hussain };
122708c51cebSShazad Hussain
122808c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = {
122908c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s6_clk_src",
123008c51cebSShazad Hussain .parent_data = gcc_parent_data_1,
123108c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_1),
123208c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
123308c51cebSShazad Hussain };
123408c51cebSShazad Hussain
123508c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
123608c51cebSShazad Hussain .cmd_rcgr = 0x2a88c,
123708c51cebSShazad Hussain .mnd_width = 16,
123808c51cebSShazad Hussain .hid_width = 5,
123908c51cebSShazad Hussain .parent_map = gcc_parent_map_1,
124008c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap0_s2_clk_src,
124108c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap2_s6_clk_src_init,
124208c51cebSShazad Hussain };
124308c51cebSShazad Hussain
124408c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_qupv3_wrap3_s0_clk_src[] = {
124508c51cebSShazad Hussain F(7372800, P_GCC_GPLL0_OUT_EVEN, 1, 384, 15625),
124608c51cebSShazad Hussain F(14745600, P_GCC_GPLL0_OUT_EVEN, 1, 768, 15625),
124708c51cebSShazad Hussain F(19200000, P_BI_TCXO, 1, 0, 0),
124808c51cebSShazad Hussain F(29491200, P_GCC_GPLL0_OUT_EVEN, 1, 1536, 15625),
124908c51cebSShazad Hussain F(32000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 75),
125008c51cebSShazad Hussain F(48000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 25),
125108c51cebSShazad Hussain F(64000000, P_GCC_GPLL0_OUT_EVEN, 1, 16, 75),
125208c51cebSShazad Hussain F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
125308c51cebSShazad Hussain F(80000000, P_GCC_GPLL0_OUT_EVEN, 1, 4, 15),
125408c51cebSShazad Hussain F(96000000, P_GCC_GPLL0_OUT_EVEN, 1, 8, 25),
125508c51cebSShazad Hussain F(100000000, P_GCC_GPLL0_OUT_MAIN, 6, 0, 0),
125608c51cebSShazad Hussain F(403200000, P_GCC_GPLL4_OUT_MAIN, 2, 0, 0),
125708c51cebSShazad Hussain { }
125808c51cebSShazad Hussain };
125908c51cebSShazad Hussain
126008c51cebSShazad Hussain static struct clk_init_data gcc_qupv3_wrap3_s0_clk_src_init = {
126108c51cebSShazad Hussain .name = "gcc_qupv3_wrap3_s0_clk_src",
126208c51cebSShazad Hussain .parent_data = gcc_parent_data_4,
126308c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_4),
126408c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
126508c51cebSShazad Hussain };
126608c51cebSShazad Hussain
126708c51cebSShazad Hussain static struct clk_rcg2 gcc_qupv3_wrap3_s0_clk_src = {
126808c51cebSShazad Hussain .cmd_rcgr = 0xc4154,
126908c51cebSShazad Hussain .mnd_width = 16,
127008c51cebSShazad Hussain .hid_width = 5,
127108c51cebSShazad Hussain .parent_map = gcc_parent_map_4,
127208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_qupv3_wrap3_s0_clk_src,
127308c51cebSShazad Hussain .clkr.hw.init = &gcc_qupv3_wrap3_s0_clk_src_init,
127408c51cebSShazad Hussain };
127508c51cebSShazad Hussain
127608c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
127708c51cebSShazad Hussain F(144000, P_BI_TCXO, 16, 3, 25),
127808c51cebSShazad Hussain F(400000, P_BI_TCXO, 12, 1, 4),
127908c51cebSShazad Hussain F(19200000, P_BI_TCXO, 1, 0, 0),
128008c51cebSShazad Hussain F(20000000, P_GCC_GPLL0_OUT_EVEN, 5, 1, 3),
128108c51cebSShazad Hussain F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
128208c51cebSShazad Hussain F(50000000, P_GCC_GPLL0_OUT_EVEN, 6, 0, 0),
128308c51cebSShazad Hussain F(100000000, P_GCC_GPLL0_OUT_EVEN, 3, 0, 0),
128408c51cebSShazad Hussain F(192000000, P_GCC_GPLL9_OUT_MAIN, 4, 0, 0),
128508c51cebSShazad Hussain F(384000000, P_GCC_GPLL9_OUT_MAIN, 2, 0, 0),
128608c51cebSShazad Hussain { }
128708c51cebSShazad Hussain };
128808c51cebSShazad Hussain
128908c51cebSShazad Hussain static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
129008c51cebSShazad Hussain .cmd_rcgr = 0x20014,
129108c51cebSShazad Hussain .mnd_width = 8,
129208c51cebSShazad Hussain .hid_width = 5,
129308c51cebSShazad Hussain .parent_map = gcc_parent_map_13,
129408c51cebSShazad Hussain .freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
129508c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
129608c51cebSShazad Hussain .name = "gcc_sdcc1_apps_clk_src",
129708c51cebSShazad Hussain .parent_data = gcc_parent_data_13,
129808c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_13),
129908c51cebSShazad Hussain .ops = &clk_rcg2_floor_ops,
130008c51cebSShazad Hussain },
130108c51cebSShazad Hussain };
130208c51cebSShazad Hussain
130308c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
130408c51cebSShazad Hussain F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
130508c51cebSShazad Hussain F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
130608c51cebSShazad Hussain { }
130708c51cebSShazad Hussain };
130808c51cebSShazad Hussain
130908c51cebSShazad Hussain static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
131008c51cebSShazad Hussain .cmd_rcgr = 0x2002c,
131108c51cebSShazad Hussain .mnd_width = 0,
131208c51cebSShazad Hussain .hid_width = 5,
131308c51cebSShazad Hussain .parent_map = gcc_parent_map_14,
131408c51cebSShazad Hussain .freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
131508c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
131608c51cebSShazad Hussain .name = "gcc_sdcc1_ice_core_clk_src",
131708c51cebSShazad Hussain .parent_data = gcc_parent_data_14,
131808c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_14),
131908c51cebSShazad Hussain .ops = &clk_rcg2_floor_ops,
132008c51cebSShazad Hussain },
132108c51cebSShazad Hussain };
132208c51cebSShazad Hussain
132308c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_tscss_cntr_clk_src[] = {
132408c51cebSShazad Hussain F(15625000, P_GCC_GPLL7_OUT_MAIN, 16, 1, 4),
132508c51cebSShazad Hussain { }
132608c51cebSShazad Hussain };
132708c51cebSShazad Hussain
132808c51cebSShazad Hussain static struct clk_rcg2 gcc_tscss_cntr_clk_src = {
132908c51cebSShazad Hussain .cmd_rcgr = 0x21008,
133008c51cebSShazad Hussain .mnd_width = 16,
133108c51cebSShazad Hussain .hid_width = 5,
133208c51cebSShazad Hussain .parent_map = gcc_parent_map_15,
133308c51cebSShazad Hussain .freq_tbl = ftbl_gcc_tscss_cntr_clk_src,
133408c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
133508c51cebSShazad Hussain .name = "gcc_tscss_cntr_clk_src",
133608c51cebSShazad Hussain .parent_data = gcc_parent_data_15,
133708c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_15),
133808c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
133908c51cebSShazad Hussain },
134008c51cebSShazad Hussain };
134108c51cebSShazad Hussain
134208c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src[] = {
134308c51cebSShazad Hussain F(25000000, P_GCC_GPLL0_OUT_EVEN, 12, 0, 0),
134408c51cebSShazad Hussain F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
134508c51cebSShazad Hussain F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
134608c51cebSShazad Hussain F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
134708c51cebSShazad Hussain F(600000000, P_GCC_GPLL0_OUT_MAIN, 1, 0, 0),
134808c51cebSShazad Hussain { }
134908c51cebSShazad Hussain };
135008c51cebSShazad Hussain
135108c51cebSShazad Hussain static struct clk_rcg2 gcc_ufs_card_axi_clk_src = {
135208c51cebSShazad Hussain .cmd_rcgr = 0x8102c,
135308c51cebSShazad Hussain .mnd_width = 8,
135408c51cebSShazad Hussain .hid_width = 5,
135508c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
135608c51cebSShazad Hussain .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
135708c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
135808c51cebSShazad Hussain .name = "gcc_ufs_card_axi_clk_src",
135908c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
136008c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
136108c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
136208c51cebSShazad Hussain },
136308c51cebSShazad Hussain };
136408c51cebSShazad Hussain
136508c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src[] = {
136608c51cebSShazad Hussain F(75000000, P_GCC_GPLL0_OUT_EVEN, 4, 0, 0),
136708c51cebSShazad Hussain F(150000000, P_GCC_GPLL0_OUT_MAIN, 4, 0, 0),
136808c51cebSShazad Hussain F(300000000, P_GCC_GPLL0_OUT_MAIN, 2, 0, 0),
136908c51cebSShazad Hussain F(600000000, P_GCC_GPLL0_OUT_MAIN, 1, 0, 0),
137008c51cebSShazad Hussain { }
137108c51cebSShazad Hussain };
137208c51cebSShazad Hussain
137308c51cebSShazad Hussain static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = {
137408c51cebSShazad Hussain .cmd_rcgr = 0x81074,
137508c51cebSShazad Hussain .mnd_width = 0,
137608c51cebSShazad Hussain .hid_width = 5,
137708c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
137808c51cebSShazad Hussain .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
137908c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
138008c51cebSShazad Hussain .name = "gcc_ufs_card_ice_core_clk_src",
138108c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
138208c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
138308c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
138408c51cebSShazad Hussain },
138508c51cebSShazad Hussain };
138608c51cebSShazad Hussain
138708c51cebSShazad Hussain static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = {
138808c51cebSShazad Hussain .cmd_rcgr = 0x810a8,
138908c51cebSShazad Hussain .mnd_width = 0,
139008c51cebSShazad Hussain .hid_width = 5,
139108c51cebSShazad Hussain .parent_map = gcc_parent_map_5,
139208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
139308c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
139408c51cebSShazad Hussain .name = "gcc_ufs_card_phy_aux_clk_src",
139508c51cebSShazad Hussain .parent_data = gcc_parent_data_5,
139608c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_5),
139708c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
139808c51cebSShazad Hussain },
139908c51cebSShazad Hussain };
140008c51cebSShazad Hussain
140108c51cebSShazad Hussain static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = {
140208c51cebSShazad Hussain .cmd_rcgr = 0x8108c,
140308c51cebSShazad Hussain .mnd_width = 0,
140408c51cebSShazad Hussain .hid_width = 5,
140508c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
140608c51cebSShazad Hussain .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
140708c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
140808c51cebSShazad Hussain .name = "gcc_ufs_card_unipro_core_clk_src",
140908c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
141008c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
141108c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
141208c51cebSShazad Hussain },
141308c51cebSShazad Hussain };
141408c51cebSShazad Hussain
141508c51cebSShazad Hussain static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = {
141608c51cebSShazad Hussain .cmd_rcgr = 0x8302c,
141708c51cebSShazad Hussain .mnd_width = 8,
141808c51cebSShazad Hussain .hid_width = 5,
141908c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
142008c51cebSShazad Hussain .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src,
142108c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
142208c51cebSShazad Hussain .name = "gcc_ufs_phy_axi_clk_src",
142308c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
142408c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
142508c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
142608c51cebSShazad Hussain },
142708c51cebSShazad Hussain };
142808c51cebSShazad Hussain
142908c51cebSShazad Hussain static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = {
143008c51cebSShazad Hussain .cmd_rcgr = 0x83074,
143108c51cebSShazad Hussain .mnd_width = 0,
143208c51cebSShazad Hussain .hid_width = 5,
143308c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
143408c51cebSShazad Hussain .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
143508c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
143608c51cebSShazad Hussain .name = "gcc_ufs_phy_ice_core_clk_src",
143708c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
143808c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
143908c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
144008c51cebSShazad Hussain },
144108c51cebSShazad Hussain };
144208c51cebSShazad Hussain
144308c51cebSShazad Hussain static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = {
144408c51cebSShazad Hussain .cmd_rcgr = 0x830a8,
144508c51cebSShazad Hussain .mnd_width = 0,
144608c51cebSShazad Hussain .hid_width = 5,
144708c51cebSShazad Hussain .parent_map = gcc_parent_map_5,
144808c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
144908c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
145008c51cebSShazad Hussain .name = "gcc_ufs_phy_phy_aux_clk_src",
145108c51cebSShazad Hussain .parent_data = gcc_parent_data_5,
145208c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_5),
145308c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
145408c51cebSShazad Hussain },
145508c51cebSShazad Hussain };
145608c51cebSShazad Hussain
145708c51cebSShazad Hussain static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = {
145808c51cebSShazad Hussain .cmd_rcgr = 0x8308c,
145908c51cebSShazad Hussain .mnd_width = 0,
146008c51cebSShazad Hussain .hid_width = 5,
146108c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
146208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src,
146308c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
146408c51cebSShazad Hussain .name = "gcc_ufs_phy_unipro_core_clk_src",
146508c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
146608c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
146708c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
146808c51cebSShazad Hussain },
146908c51cebSShazad Hussain };
147008c51cebSShazad Hussain
147108c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_usb20_master_clk_src[] = {
147208c51cebSShazad Hussain F(120000000, P_GCC_GPLL0_OUT_MAIN, 5, 0, 0),
147308c51cebSShazad Hussain { }
147408c51cebSShazad Hussain };
147508c51cebSShazad Hussain
147608c51cebSShazad Hussain static struct clk_rcg2 gcc_usb20_master_clk_src = {
147708c51cebSShazad Hussain .cmd_rcgr = 0x1c028,
147808c51cebSShazad Hussain .mnd_width = 8,
147908c51cebSShazad Hussain .hid_width = 5,
148008c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
148108c51cebSShazad Hussain .freq_tbl = ftbl_gcc_usb20_master_clk_src,
148208c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
148308c51cebSShazad Hussain .name = "gcc_usb20_master_clk_src",
148408c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
148508c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
148608c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
148708c51cebSShazad Hussain },
148808c51cebSShazad Hussain };
148908c51cebSShazad Hussain
149008c51cebSShazad Hussain static struct clk_rcg2 gcc_usb20_mock_utmi_clk_src = {
149108c51cebSShazad Hussain .cmd_rcgr = 0x1c040,
149208c51cebSShazad Hussain .mnd_width = 0,
149308c51cebSShazad Hussain .hid_width = 5,
149408c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
149508c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
149608c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
149708c51cebSShazad Hussain .name = "gcc_usb20_mock_utmi_clk_src",
149808c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
149908c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
150008c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
150108c51cebSShazad Hussain },
150208c51cebSShazad Hussain };
150308c51cebSShazad Hussain
150408c51cebSShazad Hussain static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
150508c51cebSShazad Hussain F(133333333, P_GCC_GPLL0_OUT_MAIN, 4.5, 0, 0),
150608c51cebSShazad Hussain F(200000000, P_GCC_GPLL0_OUT_MAIN, 3, 0, 0),
150708c51cebSShazad Hussain F(240000000, P_GCC_GPLL0_OUT_MAIN, 2.5, 0, 0),
150808c51cebSShazad Hussain { }
150908c51cebSShazad Hussain };
151008c51cebSShazad Hussain
151108c51cebSShazad Hussain static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
151208c51cebSShazad Hussain .cmd_rcgr = 0x1b028,
151308c51cebSShazad Hussain .mnd_width = 8,
151408c51cebSShazad Hussain .hid_width = 5,
151508c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
151608c51cebSShazad Hussain .freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
151708c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
151808c51cebSShazad Hussain .name = "gcc_usb30_prim_master_clk_src",
151908c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
152008c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
152108c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
152208c51cebSShazad Hussain },
152308c51cebSShazad Hussain };
152408c51cebSShazad Hussain
152508c51cebSShazad Hussain static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
152608c51cebSShazad Hussain .cmd_rcgr = 0x1b040,
152708c51cebSShazad Hussain .mnd_width = 0,
152808c51cebSShazad Hussain .hid_width = 5,
152908c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
153008c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
153108c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
153208c51cebSShazad Hussain .name = "gcc_usb30_prim_mock_utmi_clk_src",
153308c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
153408c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
153508c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
153608c51cebSShazad Hussain },
153708c51cebSShazad Hussain };
153808c51cebSShazad Hussain
153908c51cebSShazad Hussain static struct clk_rcg2 gcc_usb30_sec_master_clk_src = {
154008c51cebSShazad Hussain .cmd_rcgr = 0x2f028,
154108c51cebSShazad Hussain .mnd_width = 8,
154208c51cebSShazad Hussain .hid_width = 5,
154308c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
154408c51cebSShazad Hussain .freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
154508c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
154608c51cebSShazad Hussain .name = "gcc_usb30_sec_master_clk_src",
154708c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
154808c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
154908c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
155008c51cebSShazad Hussain },
155108c51cebSShazad Hussain };
155208c51cebSShazad Hussain
155308c51cebSShazad Hussain static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = {
155408c51cebSShazad Hussain .cmd_rcgr = 0x2f040,
155508c51cebSShazad Hussain .mnd_width = 0,
155608c51cebSShazad Hussain .hid_width = 5,
155708c51cebSShazad Hussain .parent_map = gcc_parent_map_0,
155808c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
155908c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
156008c51cebSShazad Hussain .name = "gcc_usb30_sec_mock_utmi_clk_src",
156108c51cebSShazad Hussain .parent_data = gcc_parent_data_0,
156208c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_0),
156308c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
156408c51cebSShazad Hussain },
156508c51cebSShazad Hussain };
156608c51cebSShazad Hussain
156708c51cebSShazad Hussain static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
156808c51cebSShazad Hussain .cmd_rcgr = 0x1b06c,
156908c51cebSShazad Hussain .mnd_width = 0,
157008c51cebSShazad Hussain .hid_width = 5,
157108c51cebSShazad Hussain .parent_map = gcc_parent_map_3,
157208c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
157308c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
157408c51cebSShazad Hussain .name = "gcc_usb3_prim_phy_aux_clk_src",
157508c51cebSShazad Hussain .parent_data = gcc_parent_data_3,
157608c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_3),
157708c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
157808c51cebSShazad Hussain },
157908c51cebSShazad Hussain };
158008c51cebSShazad Hussain
158108c51cebSShazad Hussain static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = {
158208c51cebSShazad Hussain .cmd_rcgr = 0x2f06c,
158308c51cebSShazad Hussain .mnd_width = 0,
158408c51cebSShazad Hussain .hid_width = 5,
158508c51cebSShazad Hussain .parent_map = gcc_parent_map_3,
158608c51cebSShazad Hussain .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
158708c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data){
158808c51cebSShazad Hussain .name = "gcc_usb3_sec_phy_aux_clk_src",
158908c51cebSShazad Hussain .parent_data = gcc_parent_data_3,
159008c51cebSShazad Hussain .num_parents = ARRAY_SIZE(gcc_parent_data_3),
159108c51cebSShazad Hussain .ops = &clk_rcg2_shared_ops,
159208c51cebSShazad Hussain },
159308c51cebSShazad Hussain };
159408c51cebSShazad Hussain
159508c51cebSShazad Hussain static struct clk_regmap_div gcc_pcie_0_pipe_div_clk_src = {
159608c51cebSShazad Hussain .reg = 0xa9070,
159708c51cebSShazad Hussain .shift = 0,
159808c51cebSShazad Hussain .width = 4,
159908c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data) {
160008c51cebSShazad Hussain .name = "gcc_pcie_0_pipe_div_clk_src",
160108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
160208c51cebSShazad Hussain &gcc_pcie_0_pipe_clk_src.clkr.hw,
160308c51cebSShazad Hussain },
160408c51cebSShazad Hussain .num_parents = 1,
160508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
160608c51cebSShazad Hussain .ops = &clk_regmap_div_ro_ops,
160708c51cebSShazad Hussain },
160808c51cebSShazad Hussain };
160908c51cebSShazad Hussain
161008c51cebSShazad Hussain static struct clk_regmap_div gcc_pcie_1_pipe_div_clk_src = {
161108c51cebSShazad Hussain .reg = 0x77070,
161208c51cebSShazad Hussain .shift = 0,
161308c51cebSShazad Hussain .width = 4,
161408c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data) {
161508c51cebSShazad Hussain .name = "gcc_pcie_1_pipe_div_clk_src",
161608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
161708c51cebSShazad Hussain &gcc_pcie_1_pipe_clk_src.clkr.hw,
161808c51cebSShazad Hussain },
161908c51cebSShazad Hussain .num_parents = 1,
162008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
162108c51cebSShazad Hussain .ops = &clk_regmap_div_ro_ops,
162208c51cebSShazad Hussain },
162308c51cebSShazad Hussain };
162408c51cebSShazad Hussain
162508c51cebSShazad Hussain static struct clk_regmap_div gcc_qupv3_wrap3_s0_div_clk_src = {
162608c51cebSShazad Hussain .reg = 0xc4284,
162708c51cebSShazad Hussain .shift = 0,
162808c51cebSShazad Hussain .width = 4,
162908c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data) {
163008c51cebSShazad Hussain .name = "gcc_qupv3_wrap3_s0_div_clk_src",
163108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
163208c51cebSShazad Hussain &gcc_qupv3_wrap3_s0_clk_src.clkr.hw,
163308c51cebSShazad Hussain },
163408c51cebSShazad Hussain .num_parents = 1,
163508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
163608c51cebSShazad Hussain .ops = &clk_regmap_div_ro_ops,
163708c51cebSShazad Hussain },
163808c51cebSShazad Hussain };
163908c51cebSShazad Hussain
164008c51cebSShazad Hussain static struct clk_regmap_div gcc_usb20_mock_utmi_postdiv_clk_src = {
164108c51cebSShazad Hussain .reg = 0x1c058,
164208c51cebSShazad Hussain .shift = 0,
164308c51cebSShazad Hussain .width = 4,
164408c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data) {
164508c51cebSShazad Hussain .name = "gcc_usb20_mock_utmi_postdiv_clk_src",
164608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
164708c51cebSShazad Hussain &gcc_usb20_mock_utmi_clk_src.clkr.hw,
164808c51cebSShazad Hussain },
164908c51cebSShazad Hussain .num_parents = 1,
165008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
165108c51cebSShazad Hussain .ops = &clk_regmap_div_ro_ops,
165208c51cebSShazad Hussain },
165308c51cebSShazad Hussain };
165408c51cebSShazad Hussain
165508c51cebSShazad Hussain static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
165608c51cebSShazad Hussain .reg = 0x1b058,
165708c51cebSShazad Hussain .shift = 0,
165808c51cebSShazad Hussain .width = 4,
165908c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data) {
166008c51cebSShazad Hussain .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
166108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
166208c51cebSShazad Hussain &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
166308c51cebSShazad Hussain },
166408c51cebSShazad Hussain .num_parents = 1,
166508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
166608c51cebSShazad Hussain .ops = &clk_regmap_div_ro_ops,
166708c51cebSShazad Hussain },
166808c51cebSShazad Hussain };
166908c51cebSShazad Hussain
167008c51cebSShazad Hussain static struct clk_regmap_div gcc_usb30_sec_mock_utmi_postdiv_clk_src = {
167108c51cebSShazad Hussain .reg = 0x2f058,
167208c51cebSShazad Hussain .shift = 0,
167308c51cebSShazad Hussain .width = 4,
167408c51cebSShazad Hussain .clkr.hw.init = &(const struct clk_init_data) {
167508c51cebSShazad Hussain .name = "gcc_usb30_sec_mock_utmi_postdiv_clk_src",
167608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
167708c51cebSShazad Hussain &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw,
167808c51cebSShazad Hussain },
167908c51cebSShazad Hussain .num_parents = 1,
168008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
168108c51cebSShazad Hussain .ops = &clk_regmap_div_ro_ops,
168208c51cebSShazad Hussain },
168308c51cebSShazad Hussain };
168408c51cebSShazad Hussain
168508c51cebSShazad Hussain static struct clk_branch gcc_aggre_noc_qupv3_axi_clk = {
168608c51cebSShazad Hussain .halt_reg = 0x8e200,
168708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
168808c51cebSShazad Hussain .hwcg_reg = 0x8e200,
168908c51cebSShazad Hussain .hwcg_bit = 1,
169008c51cebSShazad Hussain .clkr = {
169108c51cebSShazad Hussain .enable_reg = 0x4b000,
169208c51cebSShazad Hussain .enable_mask = BIT(28),
169308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
169408c51cebSShazad Hussain .name = "gcc_aggre_noc_qupv3_axi_clk",
169508c51cebSShazad Hussain .ops = &clk_branch2_ops,
169608c51cebSShazad Hussain },
169708c51cebSShazad Hussain },
169808c51cebSShazad Hussain };
169908c51cebSShazad Hussain
170008c51cebSShazad Hussain static struct clk_branch gcc_aggre_ufs_card_axi_clk = {
170108c51cebSShazad Hussain .halt_reg = 0x810d4,
170208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
170308c51cebSShazad Hussain .hwcg_reg = 0x810d4,
170408c51cebSShazad Hussain .hwcg_bit = 1,
170508c51cebSShazad Hussain .clkr = {
170608c51cebSShazad Hussain .enable_reg = 0x810d4,
170708c51cebSShazad Hussain .enable_mask = BIT(0),
170808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
170908c51cebSShazad Hussain .name = "gcc_aggre_ufs_card_axi_clk",
171008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
171108c51cebSShazad Hussain &gcc_ufs_card_axi_clk_src.clkr.hw,
171208c51cebSShazad Hussain },
171308c51cebSShazad Hussain .num_parents = 1,
171408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
171508c51cebSShazad Hussain .ops = &clk_branch2_ops,
171608c51cebSShazad Hussain },
171708c51cebSShazad Hussain },
171808c51cebSShazad Hussain };
171908c51cebSShazad Hussain
172008c51cebSShazad Hussain static struct clk_branch gcc_aggre_ufs_phy_axi_clk = {
172108c51cebSShazad Hussain .halt_reg = 0x830d4,
172208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
172308c51cebSShazad Hussain .hwcg_reg = 0x830d4,
172408c51cebSShazad Hussain .hwcg_bit = 1,
172508c51cebSShazad Hussain .clkr = {
172608c51cebSShazad Hussain .enable_reg = 0x830d4,
172708c51cebSShazad Hussain .enable_mask = BIT(0),
172808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
172908c51cebSShazad Hussain .name = "gcc_aggre_ufs_phy_axi_clk",
173008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
173108c51cebSShazad Hussain &gcc_ufs_phy_axi_clk_src.clkr.hw,
173208c51cebSShazad Hussain },
173308c51cebSShazad Hussain .num_parents = 1,
173408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
173508c51cebSShazad Hussain .ops = &clk_branch2_ops,
173608c51cebSShazad Hussain },
173708c51cebSShazad Hussain },
173808c51cebSShazad Hussain };
173908c51cebSShazad Hussain
174008c51cebSShazad Hussain static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = {
174108c51cebSShazad Hussain .halt_reg = 0x830d4,
174208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
174308c51cebSShazad Hussain .hwcg_reg = 0x830d4,
174408c51cebSShazad Hussain .hwcg_bit = 1,
174508c51cebSShazad Hussain .clkr = {
174608c51cebSShazad Hussain .enable_reg = 0x830d4,
174708c51cebSShazad Hussain .enable_mask = BIT(1),
174808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
174908c51cebSShazad Hussain .name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk",
175008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
175108c51cebSShazad Hussain &gcc_ufs_phy_axi_clk_src.clkr.hw,
175208c51cebSShazad Hussain },
175308c51cebSShazad Hussain .num_parents = 1,
175408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
175508c51cebSShazad Hussain .ops = &clk_branch2_ops,
175608c51cebSShazad Hussain },
175708c51cebSShazad Hussain },
175808c51cebSShazad Hussain };
175908c51cebSShazad Hussain
176008c51cebSShazad Hussain static struct clk_branch gcc_aggre_usb2_prim_axi_clk = {
176108c51cebSShazad Hussain .halt_reg = 0x1c05c,
176208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
176308c51cebSShazad Hussain .hwcg_reg = 0x1c05c,
176408c51cebSShazad Hussain .hwcg_bit = 1,
176508c51cebSShazad Hussain .clkr = {
176608c51cebSShazad Hussain .enable_reg = 0x1c05c,
176708c51cebSShazad Hussain .enable_mask = BIT(0),
176808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
176908c51cebSShazad Hussain .name = "gcc_aggre_usb2_prim_axi_clk",
177008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
177108c51cebSShazad Hussain &gcc_usb20_master_clk_src.clkr.hw,
177208c51cebSShazad Hussain },
177308c51cebSShazad Hussain .num_parents = 1,
177408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
177508c51cebSShazad Hussain .ops = &clk_branch2_ops,
177608c51cebSShazad Hussain },
177708c51cebSShazad Hussain },
177808c51cebSShazad Hussain };
177908c51cebSShazad Hussain
178008c51cebSShazad Hussain static struct clk_branch gcc_aggre_usb3_prim_axi_clk = {
178108c51cebSShazad Hussain .halt_reg = 0x1b084,
178208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
178308c51cebSShazad Hussain .hwcg_reg = 0x1b084,
178408c51cebSShazad Hussain .hwcg_bit = 1,
178508c51cebSShazad Hussain .clkr = {
178608c51cebSShazad Hussain .enable_reg = 0x1b084,
178708c51cebSShazad Hussain .enable_mask = BIT(0),
178808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
178908c51cebSShazad Hussain .name = "gcc_aggre_usb3_prim_axi_clk",
179008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
179108c51cebSShazad Hussain &gcc_usb30_prim_master_clk_src.clkr.hw,
179208c51cebSShazad Hussain },
179308c51cebSShazad Hussain .num_parents = 1,
179408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
179508c51cebSShazad Hussain .ops = &clk_branch2_ops,
179608c51cebSShazad Hussain },
179708c51cebSShazad Hussain },
179808c51cebSShazad Hussain };
179908c51cebSShazad Hussain
180008c51cebSShazad Hussain static struct clk_branch gcc_aggre_usb3_sec_axi_clk = {
180108c51cebSShazad Hussain .halt_reg = 0x2f088,
180208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
180308c51cebSShazad Hussain .hwcg_reg = 0x2f088,
180408c51cebSShazad Hussain .hwcg_bit = 1,
180508c51cebSShazad Hussain .clkr = {
180608c51cebSShazad Hussain .enable_reg = 0x2f088,
180708c51cebSShazad Hussain .enable_mask = BIT(0),
180808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
180908c51cebSShazad Hussain .name = "gcc_aggre_usb3_sec_axi_clk",
181008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
181108c51cebSShazad Hussain &gcc_usb30_sec_master_clk_src.clkr.hw,
181208c51cebSShazad Hussain },
181308c51cebSShazad Hussain .num_parents = 1,
181408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
181508c51cebSShazad Hussain .ops = &clk_branch2_ops,
181608c51cebSShazad Hussain },
181708c51cebSShazad Hussain },
181808c51cebSShazad Hussain };
181908c51cebSShazad Hussain
182008c51cebSShazad Hussain static struct clk_branch gcc_ahb2phy0_clk = {
182108c51cebSShazad Hussain .halt_reg = 0x76004,
182208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
182308c51cebSShazad Hussain .hwcg_reg = 0x76004,
182408c51cebSShazad Hussain .hwcg_bit = 1,
182508c51cebSShazad Hussain .clkr = {
182608c51cebSShazad Hussain .enable_reg = 0x76004,
182708c51cebSShazad Hussain .enable_mask = BIT(0),
182808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
182908c51cebSShazad Hussain .name = "gcc_ahb2phy0_clk",
183008c51cebSShazad Hussain .ops = &clk_branch2_ops,
183108c51cebSShazad Hussain },
183208c51cebSShazad Hussain },
183308c51cebSShazad Hussain };
183408c51cebSShazad Hussain
183508c51cebSShazad Hussain static struct clk_branch gcc_ahb2phy2_clk = {
183608c51cebSShazad Hussain .halt_reg = 0x76008,
183708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
183808c51cebSShazad Hussain .hwcg_reg = 0x76008,
183908c51cebSShazad Hussain .hwcg_bit = 1,
184008c51cebSShazad Hussain .clkr = {
184108c51cebSShazad Hussain .enable_reg = 0x76008,
184208c51cebSShazad Hussain .enable_mask = BIT(0),
184308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
184408c51cebSShazad Hussain .name = "gcc_ahb2phy2_clk",
184508c51cebSShazad Hussain .ops = &clk_branch2_ops,
184608c51cebSShazad Hussain },
184708c51cebSShazad Hussain },
184808c51cebSShazad Hussain };
184908c51cebSShazad Hussain
185008c51cebSShazad Hussain static struct clk_branch gcc_ahb2phy3_clk = {
185108c51cebSShazad Hussain .halt_reg = 0x7600c,
185208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
185308c51cebSShazad Hussain .hwcg_reg = 0x7600c,
185408c51cebSShazad Hussain .hwcg_bit = 1,
185508c51cebSShazad Hussain .clkr = {
185608c51cebSShazad Hussain .enable_reg = 0x7600c,
185708c51cebSShazad Hussain .enable_mask = BIT(0),
185808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
185908c51cebSShazad Hussain .name = "gcc_ahb2phy3_clk",
186008c51cebSShazad Hussain .ops = &clk_branch2_ops,
186108c51cebSShazad Hussain },
186208c51cebSShazad Hussain },
186308c51cebSShazad Hussain };
186408c51cebSShazad Hussain
186508c51cebSShazad Hussain static struct clk_branch gcc_boot_rom_ahb_clk = {
186608c51cebSShazad Hussain .halt_reg = 0x44004,
186708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
186808c51cebSShazad Hussain .hwcg_reg = 0x44004,
186908c51cebSShazad Hussain .hwcg_bit = 1,
187008c51cebSShazad Hussain .clkr = {
187108c51cebSShazad Hussain .enable_reg = 0x4b000,
187208c51cebSShazad Hussain .enable_mask = BIT(10),
187308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
187408c51cebSShazad Hussain .name = "gcc_boot_rom_ahb_clk",
187508c51cebSShazad Hussain .ops = &clk_branch2_ops,
187608c51cebSShazad Hussain },
187708c51cebSShazad Hussain },
187808c51cebSShazad Hussain };
187908c51cebSShazad Hussain
188008c51cebSShazad Hussain static struct clk_branch gcc_camera_hf_axi_clk = {
188108c51cebSShazad Hussain .halt_reg = 0x32010,
188208c51cebSShazad Hussain .halt_check = BRANCH_HALT_SKIP,
188308c51cebSShazad Hussain .hwcg_reg = 0x32010,
188408c51cebSShazad Hussain .hwcg_bit = 1,
188508c51cebSShazad Hussain .clkr = {
188608c51cebSShazad Hussain .enable_reg = 0x32010,
188708c51cebSShazad Hussain .enable_mask = BIT(0),
188808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
188908c51cebSShazad Hussain .name = "gcc_camera_hf_axi_clk",
189008c51cebSShazad Hussain .ops = &clk_branch2_ops,
189108c51cebSShazad Hussain },
189208c51cebSShazad Hussain },
189308c51cebSShazad Hussain };
189408c51cebSShazad Hussain
189508c51cebSShazad Hussain static struct clk_branch gcc_camera_sf_axi_clk = {
189608c51cebSShazad Hussain .halt_reg = 0x32018,
189708c51cebSShazad Hussain .halt_check = BRANCH_HALT_SKIP,
189808c51cebSShazad Hussain .hwcg_reg = 0x32018,
189908c51cebSShazad Hussain .hwcg_bit = 1,
190008c51cebSShazad Hussain .clkr = {
190108c51cebSShazad Hussain .enable_reg = 0x32018,
190208c51cebSShazad Hussain .enable_mask = BIT(0),
190308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
190408c51cebSShazad Hussain .name = "gcc_camera_sf_axi_clk",
190508c51cebSShazad Hussain .ops = &clk_branch2_ops,
190608c51cebSShazad Hussain },
190708c51cebSShazad Hussain },
190808c51cebSShazad Hussain };
190908c51cebSShazad Hussain
191008c51cebSShazad Hussain static struct clk_branch gcc_camera_throttle_xo_clk = {
191108c51cebSShazad Hussain .halt_reg = 0x32024,
191208c51cebSShazad Hussain .halt_check = BRANCH_HALT,
191308c51cebSShazad Hussain .clkr = {
191408c51cebSShazad Hussain .enable_reg = 0x32024,
191508c51cebSShazad Hussain .enable_mask = BIT(0),
191608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
191708c51cebSShazad Hussain .name = "gcc_camera_throttle_xo_clk",
191808c51cebSShazad Hussain .ops = &clk_branch2_ops,
191908c51cebSShazad Hussain },
192008c51cebSShazad Hussain },
192108c51cebSShazad Hussain };
192208c51cebSShazad Hussain
192308c51cebSShazad Hussain static struct clk_branch gcc_cfg_noc_usb2_prim_axi_clk = {
192408c51cebSShazad Hussain .halt_reg = 0x1c060,
192508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
192608c51cebSShazad Hussain .hwcg_reg = 0x1c060,
192708c51cebSShazad Hussain .hwcg_bit = 1,
192808c51cebSShazad Hussain .clkr = {
192908c51cebSShazad Hussain .enable_reg = 0x1c060,
193008c51cebSShazad Hussain .enable_mask = BIT(0),
193108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
193208c51cebSShazad Hussain .name = "gcc_cfg_noc_usb2_prim_axi_clk",
193308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
193408c51cebSShazad Hussain &gcc_usb20_master_clk_src.clkr.hw,
193508c51cebSShazad Hussain },
193608c51cebSShazad Hussain .num_parents = 1,
193708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
193808c51cebSShazad Hussain .ops = &clk_branch2_ops,
193908c51cebSShazad Hussain },
194008c51cebSShazad Hussain },
194108c51cebSShazad Hussain };
194208c51cebSShazad Hussain
194308c51cebSShazad Hussain static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
194408c51cebSShazad Hussain .halt_reg = 0x1b088,
194508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
194608c51cebSShazad Hussain .hwcg_reg = 0x1b088,
194708c51cebSShazad Hussain .hwcg_bit = 1,
194808c51cebSShazad Hussain .clkr = {
194908c51cebSShazad Hussain .enable_reg = 0x1b088,
195008c51cebSShazad Hussain .enable_mask = BIT(0),
195108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
195208c51cebSShazad Hussain .name = "gcc_cfg_noc_usb3_prim_axi_clk",
195308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
195408c51cebSShazad Hussain &gcc_usb30_prim_master_clk_src.clkr.hw,
195508c51cebSShazad Hussain },
195608c51cebSShazad Hussain .num_parents = 1,
195708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
195808c51cebSShazad Hussain .ops = &clk_branch2_ops,
195908c51cebSShazad Hussain },
196008c51cebSShazad Hussain },
196108c51cebSShazad Hussain };
196208c51cebSShazad Hussain
196308c51cebSShazad Hussain static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = {
196408c51cebSShazad Hussain .halt_reg = 0x2f084,
196508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
196608c51cebSShazad Hussain .hwcg_reg = 0x2f084,
196708c51cebSShazad Hussain .hwcg_bit = 1,
196808c51cebSShazad Hussain .clkr = {
196908c51cebSShazad Hussain .enable_reg = 0x2f084,
197008c51cebSShazad Hussain .enable_mask = BIT(0),
197108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
197208c51cebSShazad Hussain .name = "gcc_cfg_noc_usb3_sec_axi_clk",
197308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
197408c51cebSShazad Hussain &gcc_usb30_sec_master_clk_src.clkr.hw,
197508c51cebSShazad Hussain },
197608c51cebSShazad Hussain .num_parents = 1,
197708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
197808c51cebSShazad Hussain .ops = &clk_branch2_ops,
197908c51cebSShazad Hussain },
198008c51cebSShazad Hussain },
198108c51cebSShazad Hussain };
198208c51cebSShazad Hussain
198308c51cebSShazad Hussain static struct clk_branch gcc_ddrss_gpu_axi_clk = {
198408c51cebSShazad Hussain .halt_reg = 0x7d164,
198508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
198608c51cebSShazad Hussain .hwcg_reg = 0x7d164,
198708c51cebSShazad Hussain .hwcg_bit = 1,
198808c51cebSShazad Hussain .clkr = {
198908c51cebSShazad Hussain .enable_reg = 0x7d164,
199008c51cebSShazad Hussain .enable_mask = BIT(0),
199108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
199208c51cebSShazad Hussain .name = "gcc_ddrss_gpu_axi_clk",
199308c51cebSShazad Hussain .ops = &clk_branch2_aon_ops,
199408c51cebSShazad Hussain },
199508c51cebSShazad Hussain },
199608c51cebSShazad Hussain };
199708c51cebSShazad Hussain
199808c51cebSShazad Hussain static struct clk_branch gcc_disp1_hf_axi_clk = {
199908c51cebSShazad Hussain .halt_reg = 0xc7010,
200008c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
200108c51cebSShazad Hussain .hwcg_reg = 0xc7010,
200208c51cebSShazad Hussain .hwcg_bit = 1,
200308c51cebSShazad Hussain .clkr = {
200408c51cebSShazad Hussain .enable_reg = 0xc7010,
200508c51cebSShazad Hussain .enable_mask = BIT(0),
200608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
200708c51cebSShazad Hussain .name = "gcc_disp1_hf_axi_clk",
200808c51cebSShazad Hussain .ops = &clk_branch2_ops,
200908c51cebSShazad Hussain },
201008c51cebSShazad Hussain },
201108c51cebSShazad Hussain };
201208c51cebSShazad Hussain
201308c51cebSShazad Hussain static struct clk_branch gcc_disp_hf_axi_clk = {
201408c51cebSShazad Hussain .halt_reg = 0x33010,
201508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
201608c51cebSShazad Hussain .hwcg_reg = 0x33010,
201708c51cebSShazad Hussain .hwcg_bit = 1,
201808c51cebSShazad Hussain .clkr = {
201908c51cebSShazad Hussain .enable_reg = 0x33010,
202008c51cebSShazad Hussain .enable_mask = BIT(0),
202108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
202208c51cebSShazad Hussain .name = "gcc_disp_hf_axi_clk",
202308c51cebSShazad Hussain .ops = &clk_branch2_ops,
202408c51cebSShazad Hussain },
202508c51cebSShazad Hussain },
202608c51cebSShazad Hussain };
202708c51cebSShazad Hussain
202808c51cebSShazad Hussain static struct clk_branch gcc_edp_ref_clkref_en = {
202908c51cebSShazad Hussain .halt_reg = 0x97448,
203008c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
203108c51cebSShazad Hussain .clkr = {
203208c51cebSShazad Hussain .enable_reg = 0x97448,
203308c51cebSShazad Hussain .enable_mask = BIT(0),
203408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
203508c51cebSShazad Hussain .name = "gcc_edp_ref_clkref_en",
203608c51cebSShazad Hussain .ops = &clk_branch2_ops,
203708c51cebSShazad Hussain },
203808c51cebSShazad Hussain },
203908c51cebSShazad Hussain };
204008c51cebSShazad Hussain
204108c51cebSShazad Hussain static struct clk_branch gcc_emac0_axi_clk = {
204208c51cebSShazad Hussain .halt_reg = 0xb6018,
204308c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
204408c51cebSShazad Hussain .hwcg_reg = 0xb6018,
204508c51cebSShazad Hussain .hwcg_bit = 1,
204608c51cebSShazad Hussain .clkr = {
204708c51cebSShazad Hussain .enable_reg = 0xb6018,
204808c51cebSShazad Hussain .enable_mask = BIT(0),
204908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
205008c51cebSShazad Hussain .name = "gcc_emac0_axi_clk",
205108c51cebSShazad Hussain .ops = &clk_branch2_ops,
205208c51cebSShazad Hussain },
205308c51cebSShazad Hussain },
205408c51cebSShazad Hussain };
205508c51cebSShazad Hussain
205608c51cebSShazad Hussain static struct clk_branch gcc_emac0_phy_aux_clk = {
205708c51cebSShazad Hussain .halt_reg = 0xb6024,
205808c51cebSShazad Hussain .halt_check = BRANCH_HALT,
205908c51cebSShazad Hussain .clkr = {
206008c51cebSShazad Hussain .enable_reg = 0xb6024,
206108c51cebSShazad Hussain .enable_mask = BIT(0),
206208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
206308c51cebSShazad Hussain .name = "gcc_emac0_phy_aux_clk",
206408c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
206508c51cebSShazad Hussain &gcc_emac0_phy_aux_clk_src.clkr.hw,
206608c51cebSShazad Hussain },
206708c51cebSShazad Hussain .num_parents = 1,
206808c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
206908c51cebSShazad Hussain .ops = &clk_branch2_ops,
207008c51cebSShazad Hussain },
207108c51cebSShazad Hussain },
207208c51cebSShazad Hussain };
207308c51cebSShazad Hussain
207408c51cebSShazad Hussain static struct clk_branch gcc_emac0_ptp_clk = {
207508c51cebSShazad Hussain .halt_reg = 0xb6040,
207608c51cebSShazad Hussain .halt_check = BRANCH_HALT,
207708c51cebSShazad Hussain .clkr = {
207808c51cebSShazad Hussain .enable_reg = 0xb6040,
207908c51cebSShazad Hussain .enable_mask = BIT(0),
208008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
208108c51cebSShazad Hussain .name = "gcc_emac0_ptp_clk",
208208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
208308c51cebSShazad Hussain &gcc_emac0_ptp_clk_src.clkr.hw,
208408c51cebSShazad Hussain },
208508c51cebSShazad Hussain .num_parents = 1,
208608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
208708c51cebSShazad Hussain .ops = &clk_branch2_ops,
208808c51cebSShazad Hussain },
208908c51cebSShazad Hussain },
209008c51cebSShazad Hussain };
209108c51cebSShazad Hussain
209208c51cebSShazad Hussain static struct clk_branch gcc_emac0_rgmii_clk = {
209308c51cebSShazad Hussain .halt_reg = 0xb6044,
209408c51cebSShazad Hussain .halt_check = BRANCH_HALT,
209508c51cebSShazad Hussain .clkr = {
209608c51cebSShazad Hussain .enable_reg = 0xb6044,
209708c51cebSShazad Hussain .enable_mask = BIT(0),
209808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
209908c51cebSShazad Hussain .name = "gcc_emac0_rgmii_clk",
210008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
210108c51cebSShazad Hussain &gcc_emac0_rgmii_clk_src.clkr.hw,
210208c51cebSShazad Hussain },
210308c51cebSShazad Hussain .num_parents = 1,
210408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
210508c51cebSShazad Hussain .ops = &clk_branch2_ops,
210608c51cebSShazad Hussain },
210708c51cebSShazad Hussain },
210808c51cebSShazad Hussain };
210908c51cebSShazad Hussain
211008c51cebSShazad Hussain static struct clk_branch gcc_emac0_slv_ahb_clk = {
211108c51cebSShazad Hussain .halt_reg = 0xb6020,
211208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
211308c51cebSShazad Hussain .hwcg_reg = 0xb6020,
211408c51cebSShazad Hussain .hwcg_bit = 1,
211508c51cebSShazad Hussain .clkr = {
211608c51cebSShazad Hussain .enable_reg = 0xb6020,
211708c51cebSShazad Hussain .enable_mask = BIT(0),
211808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
211908c51cebSShazad Hussain .name = "gcc_emac0_slv_ahb_clk",
212008c51cebSShazad Hussain .ops = &clk_branch2_ops,
212108c51cebSShazad Hussain },
212208c51cebSShazad Hussain },
212308c51cebSShazad Hussain };
212408c51cebSShazad Hussain
212508c51cebSShazad Hussain static struct clk_branch gcc_emac1_axi_clk = {
212608c51cebSShazad Hussain .halt_reg = 0xb4018,
212708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
212808c51cebSShazad Hussain .hwcg_reg = 0xb4018,
212908c51cebSShazad Hussain .hwcg_bit = 1,
213008c51cebSShazad Hussain .clkr = {
213108c51cebSShazad Hussain .enable_reg = 0xb4018,
213208c51cebSShazad Hussain .enable_mask = BIT(0),
213308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
213408c51cebSShazad Hussain .name = "gcc_emac1_axi_clk",
213508c51cebSShazad Hussain .ops = &clk_branch2_ops,
213608c51cebSShazad Hussain },
213708c51cebSShazad Hussain },
213808c51cebSShazad Hussain };
213908c51cebSShazad Hussain
214008c51cebSShazad Hussain static struct clk_branch gcc_emac1_phy_aux_clk = {
214108c51cebSShazad Hussain .halt_reg = 0xb4024,
214208c51cebSShazad Hussain .halt_check = BRANCH_HALT,
214308c51cebSShazad Hussain .clkr = {
214408c51cebSShazad Hussain .enable_reg = 0xb4024,
214508c51cebSShazad Hussain .enable_mask = BIT(0),
214608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
214708c51cebSShazad Hussain .name = "gcc_emac1_phy_aux_clk",
214808c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
214908c51cebSShazad Hussain &gcc_emac1_phy_aux_clk_src.clkr.hw,
215008c51cebSShazad Hussain },
215108c51cebSShazad Hussain .num_parents = 1,
215208c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
215308c51cebSShazad Hussain .ops = &clk_branch2_ops,
215408c51cebSShazad Hussain },
215508c51cebSShazad Hussain },
215608c51cebSShazad Hussain };
215708c51cebSShazad Hussain
215808c51cebSShazad Hussain static struct clk_branch gcc_emac1_ptp_clk = {
215908c51cebSShazad Hussain .halt_reg = 0xb4040,
216008c51cebSShazad Hussain .halt_check = BRANCH_HALT,
216108c51cebSShazad Hussain .clkr = {
216208c51cebSShazad Hussain .enable_reg = 0xb4040,
216308c51cebSShazad Hussain .enable_mask = BIT(0),
216408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
216508c51cebSShazad Hussain .name = "gcc_emac1_ptp_clk",
216608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
216708c51cebSShazad Hussain &gcc_emac1_ptp_clk_src.clkr.hw,
216808c51cebSShazad Hussain },
216908c51cebSShazad Hussain .num_parents = 1,
217008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
217108c51cebSShazad Hussain .ops = &clk_branch2_ops,
217208c51cebSShazad Hussain },
217308c51cebSShazad Hussain },
217408c51cebSShazad Hussain };
217508c51cebSShazad Hussain
217608c51cebSShazad Hussain static struct clk_branch gcc_emac1_rgmii_clk = {
217708c51cebSShazad Hussain .halt_reg = 0xb4044,
217808c51cebSShazad Hussain .halt_check = BRANCH_HALT,
217908c51cebSShazad Hussain .clkr = {
218008c51cebSShazad Hussain .enable_reg = 0xb4044,
218108c51cebSShazad Hussain .enable_mask = BIT(0),
218208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
218308c51cebSShazad Hussain .name = "gcc_emac1_rgmii_clk",
218408c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
218508c51cebSShazad Hussain &gcc_emac1_rgmii_clk_src.clkr.hw,
218608c51cebSShazad Hussain },
218708c51cebSShazad Hussain .num_parents = 1,
218808c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
218908c51cebSShazad Hussain .ops = &clk_branch2_ops,
219008c51cebSShazad Hussain },
219108c51cebSShazad Hussain },
219208c51cebSShazad Hussain };
219308c51cebSShazad Hussain
219408c51cebSShazad Hussain static struct clk_branch gcc_emac1_slv_ahb_clk = {
219508c51cebSShazad Hussain .halt_reg = 0xb4020,
219608c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
219708c51cebSShazad Hussain .hwcg_reg = 0xb4020,
219808c51cebSShazad Hussain .hwcg_bit = 1,
219908c51cebSShazad Hussain .clkr = {
220008c51cebSShazad Hussain .enable_reg = 0xb4020,
220108c51cebSShazad Hussain .enable_mask = BIT(0),
220208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
220308c51cebSShazad Hussain .name = "gcc_emac1_slv_ahb_clk",
220408c51cebSShazad Hussain .ops = &clk_branch2_ops,
220508c51cebSShazad Hussain },
220608c51cebSShazad Hussain },
220708c51cebSShazad Hussain };
220808c51cebSShazad Hussain
220908c51cebSShazad Hussain static struct clk_branch gcc_gp1_clk = {
221008c51cebSShazad Hussain .halt_reg = 0x70000,
221108c51cebSShazad Hussain .halt_check = BRANCH_HALT,
221208c51cebSShazad Hussain .clkr = {
221308c51cebSShazad Hussain .enable_reg = 0x70000,
221408c51cebSShazad Hussain .enable_mask = BIT(0),
221508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
221608c51cebSShazad Hussain .name = "gcc_gp1_clk",
221708c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
221808c51cebSShazad Hussain &gcc_gp1_clk_src.clkr.hw,
221908c51cebSShazad Hussain },
222008c51cebSShazad Hussain .num_parents = 1,
222108c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
222208c51cebSShazad Hussain .ops = &clk_branch2_ops,
222308c51cebSShazad Hussain },
222408c51cebSShazad Hussain },
222508c51cebSShazad Hussain };
222608c51cebSShazad Hussain
222708c51cebSShazad Hussain static struct clk_branch gcc_gp2_clk = {
222808c51cebSShazad Hussain .halt_reg = 0x71000,
222908c51cebSShazad Hussain .halt_check = BRANCH_HALT,
223008c51cebSShazad Hussain .clkr = {
223108c51cebSShazad Hussain .enable_reg = 0x71000,
223208c51cebSShazad Hussain .enable_mask = BIT(0),
223308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
223408c51cebSShazad Hussain .name = "gcc_gp2_clk",
223508c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
223608c51cebSShazad Hussain &gcc_gp2_clk_src.clkr.hw,
223708c51cebSShazad Hussain },
223808c51cebSShazad Hussain .num_parents = 1,
223908c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
224008c51cebSShazad Hussain .ops = &clk_branch2_ops,
224108c51cebSShazad Hussain },
224208c51cebSShazad Hussain },
224308c51cebSShazad Hussain };
224408c51cebSShazad Hussain
224508c51cebSShazad Hussain static struct clk_branch gcc_gp3_clk = {
224608c51cebSShazad Hussain .halt_reg = 0x62000,
224708c51cebSShazad Hussain .halt_check = BRANCH_HALT,
224808c51cebSShazad Hussain .clkr = {
224908c51cebSShazad Hussain .enable_reg = 0x62000,
225008c51cebSShazad Hussain .enable_mask = BIT(0),
225108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
225208c51cebSShazad Hussain .name = "gcc_gp3_clk",
225308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
225408c51cebSShazad Hussain &gcc_gp3_clk_src.clkr.hw,
225508c51cebSShazad Hussain },
225608c51cebSShazad Hussain .num_parents = 1,
225708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
225808c51cebSShazad Hussain .ops = &clk_branch2_ops,
225908c51cebSShazad Hussain },
226008c51cebSShazad Hussain },
226108c51cebSShazad Hussain };
226208c51cebSShazad Hussain
226308c51cebSShazad Hussain static struct clk_branch gcc_gp4_clk = {
226408c51cebSShazad Hussain .halt_reg = 0x1e000,
226508c51cebSShazad Hussain .halt_check = BRANCH_HALT,
226608c51cebSShazad Hussain .clkr = {
226708c51cebSShazad Hussain .enable_reg = 0x1e000,
226808c51cebSShazad Hussain .enable_mask = BIT(0),
226908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
227008c51cebSShazad Hussain .name = "gcc_gp4_clk",
227108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
227208c51cebSShazad Hussain &gcc_gp4_clk_src.clkr.hw,
227308c51cebSShazad Hussain },
227408c51cebSShazad Hussain .num_parents = 1,
227508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
227608c51cebSShazad Hussain .ops = &clk_branch2_ops,
227708c51cebSShazad Hussain },
227808c51cebSShazad Hussain },
227908c51cebSShazad Hussain };
228008c51cebSShazad Hussain
228108c51cebSShazad Hussain static struct clk_branch gcc_gp5_clk = {
228208c51cebSShazad Hussain .halt_reg = 0x1f000,
228308c51cebSShazad Hussain .halt_check = BRANCH_HALT,
228408c51cebSShazad Hussain .clkr = {
228508c51cebSShazad Hussain .enable_reg = 0x1f000,
228608c51cebSShazad Hussain .enable_mask = BIT(0),
228708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
228808c51cebSShazad Hussain .name = "gcc_gp5_clk",
228908c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
229008c51cebSShazad Hussain &gcc_gp5_clk_src.clkr.hw,
229108c51cebSShazad Hussain },
229208c51cebSShazad Hussain .num_parents = 1,
229308c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
229408c51cebSShazad Hussain .ops = &clk_branch2_ops,
229508c51cebSShazad Hussain },
229608c51cebSShazad Hussain },
229708c51cebSShazad Hussain };
229808c51cebSShazad Hussain
229908c51cebSShazad Hussain static struct clk_branch gcc_gpu_gpll0_clk_src = {
230008c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
230108c51cebSShazad Hussain .clkr = {
230208c51cebSShazad Hussain .enable_reg = 0x4b000,
230308c51cebSShazad Hussain .enable_mask = BIT(15),
230408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
230508c51cebSShazad Hussain .name = "gcc_gpu_gpll0_clk_src",
230608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
230708c51cebSShazad Hussain &gcc_gpll0.clkr.hw,
230808c51cebSShazad Hussain },
230908c51cebSShazad Hussain .num_parents = 1,
231008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
231108c51cebSShazad Hussain .ops = &clk_branch2_ops,
231208c51cebSShazad Hussain },
231308c51cebSShazad Hussain },
231408c51cebSShazad Hussain };
231508c51cebSShazad Hussain
231608c51cebSShazad Hussain static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
231708c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
231808c51cebSShazad Hussain .clkr = {
231908c51cebSShazad Hussain .enable_reg = 0x4b000,
232008c51cebSShazad Hussain .enable_mask = BIT(16),
232108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
232208c51cebSShazad Hussain .name = "gcc_gpu_gpll0_div_clk_src",
232308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
232408c51cebSShazad Hussain &gcc_gpll0_out_even.clkr.hw,
232508c51cebSShazad Hussain },
232608c51cebSShazad Hussain .num_parents = 1,
232708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
232808c51cebSShazad Hussain .ops = &clk_branch2_ops,
232908c51cebSShazad Hussain },
233008c51cebSShazad Hussain },
233108c51cebSShazad Hussain };
233208c51cebSShazad Hussain
233308c51cebSShazad Hussain static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
233408c51cebSShazad Hussain .halt_reg = 0x7d010,
233508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
233608c51cebSShazad Hussain .hwcg_reg = 0x7d010,
233708c51cebSShazad Hussain .hwcg_bit = 1,
233808c51cebSShazad Hussain .clkr = {
233908c51cebSShazad Hussain .enable_reg = 0x7d010,
234008c51cebSShazad Hussain .enable_mask = BIT(0),
234108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
234208c51cebSShazad Hussain .name = "gcc_gpu_memnoc_gfx_clk",
234308c51cebSShazad Hussain .ops = &clk_branch2_aon_ops,
234408c51cebSShazad Hussain },
234508c51cebSShazad Hussain },
234608c51cebSShazad Hussain };
234708c51cebSShazad Hussain
234808c51cebSShazad Hussain static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
234908c51cebSShazad Hussain .halt_reg = 0x7d01c,
235008c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
235108c51cebSShazad Hussain .clkr = {
235208c51cebSShazad Hussain .enable_reg = 0x7d01c,
235308c51cebSShazad Hussain .enable_mask = BIT(0),
235408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
235508c51cebSShazad Hussain .name = "gcc_gpu_snoc_dvm_gfx_clk",
235608c51cebSShazad Hussain .ops = &clk_branch2_aon_ops,
235708c51cebSShazad Hussain },
235808c51cebSShazad Hussain },
235908c51cebSShazad Hussain };
236008c51cebSShazad Hussain
236108c51cebSShazad Hussain static struct clk_branch gcc_gpu_tcu_throttle_ahb_clk = {
236208c51cebSShazad Hussain .halt_reg = 0x7d008,
236308c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
236408c51cebSShazad Hussain .hwcg_reg = 0x7d008,
236508c51cebSShazad Hussain .hwcg_bit = 1,
236608c51cebSShazad Hussain .clkr = {
236708c51cebSShazad Hussain .enable_reg = 0x7d008,
236808c51cebSShazad Hussain .enable_mask = BIT(0),
236908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
237008c51cebSShazad Hussain .name = "gcc_gpu_tcu_throttle_ahb_clk",
237108c51cebSShazad Hussain .ops = &clk_branch2_ops,
237208c51cebSShazad Hussain },
237308c51cebSShazad Hussain },
237408c51cebSShazad Hussain };
237508c51cebSShazad Hussain
237608c51cebSShazad Hussain static struct clk_branch gcc_gpu_tcu_throttle_clk = {
237708c51cebSShazad Hussain .halt_reg = 0x7d014,
237808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
237908c51cebSShazad Hussain .hwcg_reg = 0x7d014,
238008c51cebSShazad Hussain .hwcg_bit = 1,
238108c51cebSShazad Hussain .clkr = {
238208c51cebSShazad Hussain .enable_reg = 0x7d014,
238308c51cebSShazad Hussain .enable_mask = BIT(0),
238408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
238508c51cebSShazad Hussain .name = "gcc_gpu_tcu_throttle_clk",
238608c51cebSShazad Hussain .ops = &clk_branch2_ops,
238708c51cebSShazad Hussain },
238808c51cebSShazad Hussain },
238908c51cebSShazad Hussain };
239008c51cebSShazad Hussain
239108c51cebSShazad Hussain static struct clk_branch gcc_pcie_0_aux_clk = {
239208c51cebSShazad Hussain .halt_reg = 0xa9038,
239308c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
239408c51cebSShazad Hussain .clkr = {
239508c51cebSShazad Hussain .enable_reg = 0x4b010,
239608c51cebSShazad Hussain .enable_mask = BIT(16),
239708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
239808c51cebSShazad Hussain .name = "gcc_pcie_0_aux_clk",
239908c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
240008c51cebSShazad Hussain &gcc_pcie_0_aux_clk_src.clkr.hw,
240108c51cebSShazad Hussain },
240208c51cebSShazad Hussain .num_parents = 1,
240308c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
240408c51cebSShazad Hussain .ops = &clk_branch2_ops,
240508c51cebSShazad Hussain },
240608c51cebSShazad Hussain },
240708c51cebSShazad Hussain };
240808c51cebSShazad Hussain
240908c51cebSShazad Hussain static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
241008c51cebSShazad Hussain .halt_reg = 0xa902c,
241108c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
241208c51cebSShazad Hussain .hwcg_reg = 0xa902c,
241308c51cebSShazad Hussain .hwcg_bit = 1,
241408c51cebSShazad Hussain .clkr = {
241508c51cebSShazad Hussain .enable_reg = 0x4b010,
241608c51cebSShazad Hussain .enable_mask = BIT(12),
241708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
241808c51cebSShazad Hussain .name = "gcc_pcie_0_cfg_ahb_clk",
241908c51cebSShazad Hussain .ops = &clk_branch2_ops,
242008c51cebSShazad Hussain },
242108c51cebSShazad Hussain },
242208c51cebSShazad Hussain };
242308c51cebSShazad Hussain
242408c51cebSShazad Hussain static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
242508c51cebSShazad Hussain .halt_reg = 0xa9024,
242608c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
242708c51cebSShazad Hussain .clkr = {
242808c51cebSShazad Hussain .enable_reg = 0x4b010,
242908c51cebSShazad Hussain .enable_mask = BIT(11),
243008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
243108c51cebSShazad Hussain .name = "gcc_pcie_0_mstr_axi_clk",
243208c51cebSShazad Hussain .ops = &clk_branch2_ops,
243308c51cebSShazad Hussain },
243408c51cebSShazad Hussain },
243508c51cebSShazad Hussain };
243608c51cebSShazad Hussain
243708c51cebSShazad Hussain static struct clk_branch gcc_pcie_0_phy_aux_clk = {
243808c51cebSShazad Hussain .halt_reg = 0xa9030,
243908c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
244008c51cebSShazad Hussain .clkr = {
244108c51cebSShazad Hussain .enable_reg = 0x4b010,
244208c51cebSShazad Hussain .enable_mask = BIT(13),
244308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
244408c51cebSShazad Hussain .name = "gcc_pcie_0_phy_aux_clk",
244508c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
244608c51cebSShazad Hussain &gcc_pcie_0_phy_aux_clk_src.clkr.hw,
244708c51cebSShazad Hussain },
244808c51cebSShazad Hussain .num_parents = 1,
244908c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
245008c51cebSShazad Hussain .ops = &clk_branch2_ops,
245108c51cebSShazad Hussain },
245208c51cebSShazad Hussain },
245308c51cebSShazad Hussain };
245408c51cebSShazad Hussain
245508c51cebSShazad Hussain static struct clk_branch gcc_pcie_0_phy_rchng_clk = {
245608c51cebSShazad Hussain .halt_reg = 0xa9050,
245708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
245808c51cebSShazad Hussain .clkr = {
245908c51cebSShazad Hussain .enable_reg = 0x4b010,
246008c51cebSShazad Hussain .enable_mask = BIT(15),
246108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
246208c51cebSShazad Hussain .name = "gcc_pcie_0_phy_rchng_clk",
246308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
246408c51cebSShazad Hussain &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
246508c51cebSShazad Hussain },
246608c51cebSShazad Hussain .num_parents = 1,
246708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
246808c51cebSShazad Hussain .ops = &clk_branch2_ops,
246908c51cebSShazad Hussain },
247008c51cebSShazad Hussain },
247108c51cebSShazad Hussain };
247208c51cebSShazad Hussain
247308c51cebSShazad Hussain static struct clk_branch gcc_pcie_0_pipe_clk = {
247408c51cebSShazad Hussain .halt_reg = 0xa9040,
247508c51cebSShazad Hussain .halt_check = BRANCH_HALT_SKIP,
247608c51cebSShazad Hussain .clkr = {
247708c51cebSShazad Hussain .enable_reg = 0x4b010,
247808c51cebSShazad Hussain .enable_mask = BIT(14),
247908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
248008c51cebSShazad Hussain .name = "gcc_pcie_0_pipe_clk",
248108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
248208c51cebSShazad Hussain &gcc_pcie_0_pipe_clk_src.clkr.hw,
248308c51cebSShazad Hussain },
248408c51cebSShazad Hussain .num_parents = 1,
248508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
248608c51cebSShazad Hussain .ops = &clk_branch2_ops,
248708c51cebSShazad Hussain },
248808c51cebSShazad Hussain },
248908c51cebSShazad Hussain };
249008c51cebSShazad Hussain
249108c51cebSShazad Hussain static struct clk_branch gcc_pcie_0_pipediv2_clk = {
249208c51cebSShazad Hussain .halt_reg = 0xa9048,
249308c51cebSShazad Hussain .halt_check = BRANCH_HALT_SKIP,
249408c51cebSShazad Hussain .clkr = {
249508c51cebSShazad Hussain .enable_reg = 0x4b018,
249608c51cebSShazad Hussain .enable_mask = BIT(22),
249708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
249808c51cebSShazad Hussain .name = "gcc_pcie_0_pipediv2_clk",
249908c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
250008c51cebSShazad Hussain &gcc_pcie_0_pipe_div_clk_src.clkr.hw,
250108c51cebSShazad Hussain },
250208c51cebSShazad Hussain .num_parents = 1,
250308c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
250408c51cebSShazad Hussain .ops = &clk_branch2_ops,
250508c51cebSShazad Hussain },
250608c51cebSShazad Hussain },
250708c51cebSShazad Hussain };
250808c51cebSShazad Hussain
250908c51cebSShazad Hussain static struct clk_branch gcc_pcie_0_slv_axi_clk = {
251008c51cebSShazad Hussain .halt_reg = 0xa901c,
251108c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
251208c51cebSShazad Hussain .clkr = {
251308c51cebSShazad Hussain .enable_reg = 0x4b010,
251408c51cebSShazad Hussain .enable_mask = BIT(10),
251508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
251608c51cebSShazad Hussain .name = "gcc_pcie_0_slv_axi_clk",
251708c51cebSShazad Hussain .ops = &clk_branch2_ops,
251808c51cebSShazad Hussain },
251908c51cebSShazad Hussain },
252008c51cebSShazad Hussain };
252108c51cebSShazad Hussain
252208c51cebSShazad Hussain static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = {
252308c51cebSShazad Hussain .halt_reg = 0xa9018,
252408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
252508c51cebSShazad Hussain .clkr = {
252608c51cebSShazad Hussain .enable_reg = 0x4b018,
252708c51cebSShazad Hussain .enable_mask = BIT(12),
252808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
252908c51cebSShazad Hussain .name = "gcc_pcie_0_slv_q2a_axi_clk",
253008c51cebSShazad Hussain .ops = &clk_branch2_ops,
253108c51cebSShazad Hussain },
253208c51cebSShazad Hussain },
253308c51cebSShazad Hussain };
253408c51cebSShazad Hussain
253508c51cebSShazad Hussain static struct clk_branch gcc_pcie_1_aux_clk = {
253608c51cebSShazad Hussain .halt_reg = 0x77038,
253708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
253808c51cebSShazad Hussain .clkr = {
253908c51cebSShazad Hussain .enable_reg = 0x4b000,
254008c51cebSShazad Hussain .enable_mask = BIT(31),
254108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
254208c51cebSShazad Hussain .name = "gcc_pcie_1_aux_clk",
254308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
254408c51cebSShazad Hussain &gcc_pcie_1_aux_clk_src.clkr.hw,
254508c51cebSShazad Hussain },
254608c51cebSShazad Hussain .num_parents = 1,
254708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
254808c51cebSShazad Hussain .ops = &clk_branch2_ops,
254908c51cebSShazad Hussain },
255008c51cebSShazad Hussain },
255108c51cebSShazad Hussain };
255208c51cebSShazad Hussain
255308c51cebSShazad Hussain static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
255408c51cebSShazad Hussain .halt_reg = 0x7702c,
255508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
255608c51cebSShazad Hussain .hwcg_reg = 0x7702c,
255708c51cebSShazad Hussain .hwcg_bit = 1,
255808c51cebSShazad Hussain .clkr = {
255908c51cebSShazad Hussain .enable_reg = 0x4b008,
256008c51cebSShazad Hussain .enable_mask = BIT(2),
256108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
256208c51cebSShazad Hussain .name = "gcc_pcie_1_cfg_ahb_clk",
256308c51cebSShazad Hussain .ops = &clk_branch2_ops,
256408c51cebSShazad Hussain },
256508c51cebSShazad Hussain },
256608c51cebSShazad Hussain };
256708c51cebSShazad Hussain
256808c51cebSShazad Hussain static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
256908c51cebSShazad Hussain .halt_reg = 0x77024,
257008c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
257108c51cebSShazad Hussain .clkr = {
257208c51cebSShazad Hussain .enable_reg = 0x4b008,
257308c51cebSShazad Hussain .enable_mask = BIT(1),
257408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
257508c51cebSShazad Hussain .name = "gcc_pcie_1_mstr_axi_clk",
257608c51cebSShazad Hussain .ops = &clk_branch2_ops,
257708c51cebSShazad Hussain },
257808c51cebSShazad Hussain },
257908c51cebSShazad Hussain };
258008c51cebSShazad Hussain
258108c51cebSShazad Hussain static struct clk_branch gcc_pcie_1_phy_aux_clk = {
258208c51cebSShazad Hussain .halt_reg = 0x77030,
258308c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
258408c51cebSShazad Hussain .clkr = {
258508c51cebSShazad Hussain .enable_reg = 0x4b008,
258608c51cebSShazad Hussain .enable_mask = BIT(3),
258708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
258808c51cebSShazad Hussain .name = "gcc_pcie_1_phy_aux_clk",
258908c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
259008c51cebSShazad Hussain &gcc_pcie_1_phy_aux_clk_src.clkr.hw,
259108c51cebSShazad Hussain },
259208c51cebSShazad Hussain .num_parents = 1,
259308c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
259408c51cebSShazad Hussain .ops = &clk_branch2_ops,
259508c51cebSShazad Hussain },
259608c51cebSShazad Hussain },
259708c51cebSShazad Hussain };
259808c51cebSShazad Hussain
259908c51cebSShazad Hussain static struct clk_branch gcc_pcie_1_phy_rchng_clk = {
260008c51cebSShazad Hussain .halt_reg = 0x77050,
260108c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
260208c51cebSShazad Hussain .clkr = {
260308c51cebSShazad Hussain .enable_reg = 0x4b000,
260408c51cebSShazad Hussain .enable_mask = BIT(22),
260508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
260608c51cebSShazad Hussain .name = "gcc_pcie_1_phy_rchng_clk",
260708c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
260808c51cebSShazad Hussain &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
260908c51cebSShazad Hussain },
261008c51cebSShazad Hussain .num_parents = 1,
261108c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
261208c51cebSShazad Hussain .ops = &clk_branch2_ops,
261308c51cebSShazad Hussain },
261408c51cebSShazad Hussain },
261508c51cebSShazad Hussain };
261608c51cebSShazad Hussain
261708c51cebSShazad Hussain static struct clk_branch gcc_pcie_1_pipe_clk = {
261808c51cebSShazad Hussain .halt_reg = 0x77040,
261908c51cebSShazad Hussain .halt_check = BRANCH_HALT_SKIP,
262008c51cebSShazad Hussain .clkr = {
262108c51cebSShazad Hussain .enable_reg = 0x4b008,
262208c51cebSShazad Hussain .enable_mask = BIT(4),
262308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
262408c51cebSShazad Hussain .name = "gcc_pcie_1_pipe_clk",
262508c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
262608c51cebSShazad Hussain &gcc_pcie_1_pipe_clk_src.clkr.hw,
262708c51cebSShazad Hussain },
262808c51cebSShazad Hussain .num_parents = 1,
262908c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
263008c51cebSShazad Hussain .ops = &clk_branch2_ops,
263108c51cebSShazad Hussain },
263208c51cebSShazad Hussain },
263308c51cebSShazad Hussain };
263408c51cebSShazad Hussain
263508c51cebSShazad Hussain static struct clk_branch gcc_pcie_1_pipediv2_clk = {
263608c51cebSShazad Hussain .halt_reg = 0x77048,
263708c51cebSShazad Hussain .halt_check = BRANCH_HALT_SKIP,
263808c51cebSShazad Hussain .clkr = {
263908c51cebSShazad Hussain .enable_reg = 0x4b018,
264008c51cebSShazad Hussain .enable_mask = BIT(16),
264108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
264208c51cebSShazad Hussain .name = "gcc_pcie_1_pipediv2_clk",
264308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
264408c51cebSShazad Hussain &gcc_pcie_1_pipe_div_clk_src.clkr.hw,
264508c51cebSShazad Hussain },
264608c51cebSShazad Hussain .num_parents = 1,
264708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
264808c51cebSShazad Hussain .ops = &clk_branch2_ops,
264908c51cebSShazad Hussain },
265008c51cebSShazad Hussain },
265108c51cebSShazad Hussain };
265208c51cebSShazad Hussain
265308c51cebSShazad Hussain static struct clk_branch gcc_pcie_1_slv_axi_clk = {
265408c51cebSShazad Hussain .halt_reg = 0x7701c,
265508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
265608c51cebSShazad Hussain .clkr = {
265708c51cebSShazad Hussain .enable_reg = 0x4b008,
265808c51cebSShazad Hussain .enable_mask = BIT(0),
265908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
266008c51cebSShazad Hussain .name = "gcc_pcie_1_slv_axi_clk",
266108c51cebSShazad Hussain .ops = &clk_branch2_ops,
266208c51cebSShazad Hussain },
266308c51cebSShazad Hussain },
266408c51cebSShazad Hussain };
266508c51cebSShazad Hussain
266608c51cebSShazad Hussain static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = {
266708c51cebSShazad Hussain .halt_reg = 0x77018,
266808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
266908c51cebSShazad Hussain .clkr = {
267008c51cebSShazad Hussain .enable_reg = 0x4b008,
267108c51cebSShazad Hussain .enable_mask = BIT(5),
267208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
267308c51cebSShazad Hussain .name = "gcc_pcie_1_slv_q2a_axi_clk",
267408c51cebSShazad Hussain .ops = &clk_branch2_ops,
267508c51cebSShazad Hussain },
267608c51cebSShazad Hussain },
267708c51cebSShazad Hussain };
267808c51cebSShazad Hussain
267908c51cebSShazad Hussain static struct clk_branch gcc_pcie_clkref_en = {
268008c51cebSShazad Hussain .halt_reg = 0x9746c,
268108c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
268208c51cebSShazad Hussain .clkr = {
268308c51cebSShazad Hussain .enable_reg = 0x9746c,
268408c51cebSShazad Hussain .enable_mask = BIT(0),
268508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
268608c51cebSShazad Hussain .name = "gcc_pcie_clkref_en",
268708c51cebSShazad Hussain .ops = &clk_branch2_ops,
268808c51cebSShazad Hussain },
268908c51cebSShazad Hussain },
269008c51cebSShazad Hussain };
269108c51cebSShazad Hussain
269208c51cebSShazad Hussain static struct clk_branch gcc_pcie_throttle_cfg_clk = {
269308c51cebSShazad Hussain .halt_reg = 0xb2034,
269408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
269508c51cebSShazad Hussain .clkr = {
269608c51cebSShazad Hussain .enable_reg = 0x4b020,
269708c51cebSShazad Hussain .enable_mask = BIT(15),
269808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
269908c51cebSShazad Hussain .name = "gcc_pcie_throttle_cfg_clk",
270008c51cebSShazad Hussain .ops = &clk_branch2_ops,
270108c51cebSShazad Hussain },
270208c51cebSShazad Hussain },
270308c51cebSShazad Hussain };
270408c51cebSShazad Hussain
270508c51cebSShazad Hussain static struct clk_branch gcc_pdm2_clk = {
270608c51cebSShazad Hussain .halt_reg = 0x3f00c,
270708c51cebSShazad Hussain .halt_check = BRANCH_HALT,
270808c51cebSShazad Hussain .clkr = {
270908c51cebSShazad Hussain .enable_reg = 0x3f00c,
271008c51cebSShazad Hussain .enable_mask = BIT(0),
271108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
271208c51cebSShazad Hussain .name = "gcc_pdm2_clk",
271308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
271408c51cebSShazad Hussain &gcc_pdm2_clk_src.clkr.hw,
271508c51cebSShazad Hussain },
271608c51cebSShazad Hussain .num_parents = 1,
271708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
271808c51cebSShazad Hussain .ops = &clk_branch2_ops,
271908c51cebSShazad Hussain },
272008c51cebSShazad Hussain },
272108c51cebSShazad Hussain };
272208c51cebSShazad Hussain
272308c51cebSShazad Hussain static struct clk_branch gcc_pdm_ahb_clk = {
272408c51cebSShazad Hussain .halt_reg = 0x3f004,
272508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
272608c51cebSShazad Hussain .hwcg_reg = 0x3f004,
272708c51cebSShazad Hussain .hwcg_bit = 1,
272808c51cebSShazad Hussain .clkr = {
272908c51cebSShazad Hussain .enable_reg = 0x3f004,
273008c51cebSShazad Hussain .enable_mask = BIT(0),
273108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
273208c51cebSShazad Hussain .name = "gcc_pdm_ahb_clk",
273308c51cebSShazad Hussain .ops = &clk_branch2_ops,
273408c51cebSShazad Hussain },
273508c51cebSShazad Hussain },
273608c51cebSShazad Hussain };
273708c51cebSShazad Hussain
273808c51cebSShazad Hussain static struct clk_branch gcc_pdm_xo4_clk = {
273908c51cebSShazad Hussain .halt_reg = 0x3f008,
274008c51cebSShazad Hussain .halt_check = BRANCH_HALT,
274108c51cebSShazad Hussain .clkr = {
274208c51cebSShazad Hussain .enable_reg = 0x3f008,
274308c51cebSShazad Hussain .enable_mask = BIT(0),
274408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
274508c51cebSShazad Hussain .name = "gcc_pdm_xo4_clk",
274608c51cebSShazad Hussain .ops = &clk_branch2_ops,
274708c51cebSShazad Hussain },
274808c51cebSShazad Hussain },
274908c51cebSShazad Hussain };
275008c51cebSShazad Hussain
275108c51cebSShazad Hussain static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
275208c51cebSShazad Hussain .halt_reg = 0x32008,
275308c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
275408c51cebSShazad Hussain .hwcg_reg = 0x32008,
275508c51cebSShazad Hussain .hwcg_bit = 1,
275608c51cebSShazad Hussain .clkr = {
275708c51cebSShazad Hussain .enable_reg = 0x32008,
275808c51cebSShazad Hussain .enable_mask = BIT(0),
275908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
276008c51cebSShazad Hussain .name = "gcc_qmip_camera_nrt_ahb_clk",
276108c51cebSShazad Hussain .ops = &clk_branch2_ops,
276208c51cebSShazad Hussain },
276308c51cebSShazad Hussain },
276408c51cebSShazad Hussain };
276508c51cebSShazad Hussain
276608c51cebSShazad Hussain static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
276708c51cebSShazad Hussain .halt_reg = 0x3200c,
276808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
276908c51cebSShazad Hussain .hwcg_reg = 0x3200c,
277008c51cebSShazad Hussain .hwcg_bit = 1,
277108c51cebSShazad Hussain .clkr = {
277208c51cebSShazad Hussain .enable_reg = 0x3200c,
277308c51cebSShazad Hussain .enable_mask = BIT(0),
277408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
277508c51cebSShazad Hussain .name = "gcc_qmip_camera_rt_ahb_clk",
277608c51cebSShazad Hussain .ops = &clk_branch2_ops,
277708c51cebSShazad Hussain },
277808c51cebSShazad Hussain },
277908c51cebSShazad Hussain };
278008c51cebSShazad Hussain
278108c51cebSShazad Hussain static struct clk_branch gcc_qmip_disp1_ahb_clk = {
278208c51cebSShazad Hussain .halt_reg = 0xc7008,
278308c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
278408c51cebSShazad Hussain .hwcg_reg = 0xc7008,
278508c51cebSShazad Hussain .hwcg_bit = 1,
278608c51cebSShazad Hussain .clkr = {
278708c51cebSShazad Hussain .enable_reg = 0xc7008,
278808c51cebSShazad Hussain .enable_mask = BIT(0),
278908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
279008c51cebSShazad Hussain .name = "gcc_qmip_disp1_ahb_clk",
279108c51cebSShazad Hussain .ops = &clk_branch2_ops,
279208c51cebSShazad Hussain },
279308c51cebSShazad Hussain },
279408c51cebSShazad Hussain };
279508c51cebSShazad Hussain
279608c51cebSShazad Hussain static struct clk_branch gcc_qmip_disp1_rot_ahb_clk = {
279708c51cebSShazad Hussain .halt_reg = 0xc700c,
279808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
279908c51cebSShazad Hussain .clkr = {
280008c51cebSShazad Hussain .enable_reg = 0xc700c,
280108c51cebSShazad Hussain .enable_mask = BIT(0),
280208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
280308c51cebSShazad Hussain .name = "gcc_qmip_disp1_rot_ahb_clk",
280408c51cebSShazad Hussain .ops = &clk_branch2_ops,
280508c51cebSShazad Hussain },
280608c51cebSShazad Hussain },
280708c51cebSShazad Hussain };
280808c51cebSShazad Hussain
280908c51cebSShazad Hussain static struct clk_branch gcc_qmip_disp_ahb_clk = {
281008c51cebSShazad Hussain .halt_reg = 0x33008,
281108c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
281208c51cebSShazad Hussain .hwcg_reg = 0x33008,
281308c51cebSShazad Hussain .hwcg_bit = 1,
281408c51cebSShazad Hussain .clkr = {
281508c51cebSShazad Hussain .enable_reg = 0x33008,
281608c51cebSShazad Hussain .enable_mask = BIT(0),
281708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
281808c51cebSShazad Hussain .name = "gcc_qmip_disp_ahb_clk",
281908c51cebSShazad Hussain .ops = &clk_branch2_ops,
282008c51cebSShazad Hussain },
282108c51cebSShazad Hussain },
282208c51cebSShazad Hussain };
282308c51cebSShazad Hussain
282408c51cebSShazad Hussain static struct clk_branch gcc_qmip_disp_rot_ahb_clk = {
282508c51cebSShazad Hussain .halt_reg = 0x3300c,
282608c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
282708c51cebSShazad Hussain .clkr = {
282808c51cebSShazad Hussain .enable_reg = 0x3300c,
282908c51cebSShazad Hussain .enable_mask = BIT(0),
283008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
283108c51cebSShazad Hussain .name = "gcc_qmip_disp_rot_ahb_clk",
283208c51cebSShazad Hussain .ops = &clk_branch2_ops,
283308c51cebSShazad Hussain },
283408c51cebSShazad Hussain },
283508c51cebSShazad Hussain };
283608c51cebSShazad Hussain
283708c51cebSShazad Hussain static struct clk_branch gcc_qmip_video_cvp_ahb_clk = {
283808c51cebSShazad Hussain .halt_reg = 0x34008,
283908c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
284008c51cebSShazad Hussain .hwcg_reg = 0x34008,
284108c51cebSShazad Hussain .hwcg_bit = 1,
284208c51cebSShazad Hussain .clkr = {
284308c51cebSShazad Hussain .enable_reg = 0x34008,
284408c51cebSShazad Hussain .enable_mask = BIT(0),
284508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
284608c51cebSShazad Hussain .name = "gcc_qmip_video_cvp_ahb_clk",
284708c51cebSShazad Hussain .ops = &clk_branch2_ops,
284808c51cebSShazad Hussain },
284908c51cebSShazad Hussain },
285008c51cebSShazad Hussain };
285108c51cebSShazad Hussain
285208c51cebSShazad Hussain static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
285308c51cebSShazad Hussain .halt_reg = 0x3400c,
285408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
285508c51cebSShazad Hussain .hwcg_reg = 0x3400c,
285608c51cebSShazad Hussain .hwcg_bit = 1,
285708c51cebSShazad Hussain .clkr = {
285808c51cebSShazad Hussain .enable_reg = 0x3400c,
285908c51cebSShazad Hussain .enable_mask = BIT(0),
286008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
286108c51cebSShazad Hussain .name = "gcc_qmip_video_vcodec_ahb_clk",
286208c51cebSShazad Hussain .ops = &clk_branch2_ops,
286308c51cebSShazad Hussain },
286408c51cebSShazad Hussain },
286508c51cebSShazad Hussain };
286608c51cebSShazad Hussain
286708c51cebSShazad Hussain static struct clk_branch gcc_qmip_video_vcpu_ahb_clk = {
286808c51cebSShazad Hussain .halt_reg = 0x34010,
286908c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
287008c51cebSShazad Hussain .hwcg_reg = 0x34010,
287108c51cebSShazad Hussain .hwcg_bit = 1,
287208c51cebSShazad Hussain .clkr = {
287308c51cebSShazad Hussain .enable_reg = 0x34010,
287408c51cebSShazad Hussain .enable_mask = BIT(0),
287508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
287608c51cebSShazad Hussain .name = "gcc_qmip_video_vcpu_ahb_clk",
287708c51cebSShazad Hussain .ops = &clk_branch2_ops,
287808c51cebSShazad Hussain },
287908c51cebSShazad Hussain },
288008c51cebSShazad Hussain };
288108c51cebSShazad Hussain
288208c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
288308c51cebSShazad Hussain .halt_reg = 0x23018,
288408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
288508c51cebSShazad Hussain .clkr = {
288608c51cebSShazad Hussain .enable_reg = 0x4b008,
288708c51cebSShazad Hussain .enable_mask = BIT(9),
288808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
288908c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_core_2x_clk",
289008c51cebSShazad Hussain .ops = &clk_branch2_ops,
289108c51cebSShazad Hussain },
289208c51cebSShazad Hussain },
289308c51cebSShazad Hussain };
289408c51cebSShazad Hussain
289508c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap0_core_clk = {
289608c51cebSShazad Hussain .halt_reg = 0x2300c,
289708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
289808c51cebSShazad Hussain .clkr = {
289908c51cebSShazad Hussain .enable_reg = 0x4b008,
290008c51cebSShazad Hussain .enable_mask = BIT(8),
290108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
290208c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_core_clk",
290308c51cebSShazad Hussain .ops = &clk_branch2_ops,
290408c51cebSShazad Hussain },
290508c51cebSShazad Hussain },
290608c51cebSShazad Hussain };
290708c51cebSShazad Hussain
290808c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
290908c51cebSShazad Hussain .halt_reg = 0x2314c,
291008c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
291108c51cebSShazad Hussain .clkr = {
291208c51cebSShazad Hussain .enable_reg = 0x4b008,
291308c51cebSShazad Hussain .enable_mask = BIT(10),
291408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
291508c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s0_clk",
291608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
291708c51cebSShazad Hussain &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
291808c51cebSShazad Hussain },
291908c51cebSShazad Hussain .num_parents = 1,
292008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
292108c51cebSShazad Hussain .ops = &clk_branch2_ops,
292208c51cebSShazad Hussain },
292308c51cebSShazad Hussain },
292408c51cebSShazad Hussain };
292508c51cebSShazad Hussain
292608c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
292708c51cebSShazad Hussain .halt_reg = 0x23280,
292808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
292908c51cebSShazad Hussain .clkr = {
293008c51cebSShazad Hussain .enable_reg = 0x4b008,
293108c51cebSShazad Hussain .enable_mask = BIT(11),
293208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
293308c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s1_clk",
293408c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
293508c51cebSShazad Hussain &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
293608c51cebSShazad Hussain },
293708c51cebSShazad Hussain .num_parents = 1,
293808c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
293908c51cebSShazad Hussain .ops = &clk_branch2_ops,
294008c51cebSShazad Hussain },
294108c51cebSShazad Hussain },
294208c51cebSShazad Hussain };
294308c51cebSShazad Hussain
294408c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
294508c51cebSShazad Hussain .halt_reg = 0x233b4,
294608c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
294708c51cebSShazad Hussain .clkr = {
294808c51cebSShazad Hussain .enable_reg = 0x4b008,
294908c51cebSShazad Hussain .enable_mask = BIT(12),
295008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
295108c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s2_clk",
295208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
295308c51cebSShazad Hussain &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
295408c51cebSShazad Hussain },
295508c51cebSShazad Hussain .num_parents = 1,
295608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
295708c51cebSShazad Hussain .ops = &clk_branch2_ops,
295808c51cebSShazad Hussain },
295908c51cebSShazad Hussain },
296008c51cebSShazad Hussain };
296108c51cebSShazad Hussain
296208c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
296308c51cebSShazad Hussain .halt_reg = 0x234e8,
296408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
296508c51cebSShazad Hussain .clkr = {
296608c51cebSShazad Hussain .enable_reg = 0x4b008,
296708c51cebSShazad Hussain .enable_mask = BIT(13),
296808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
296908c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s3_clk",
297008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
297108c51cebSShazad Hussain &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
297208c51cebSShazad Hussain },
297308c51cebSShazad Hussain .num_parents = 1,
297408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
297508c51cebSShazad Hussain .ops = &clk_branch2_ops,
297608c51cebSShazad Hussain },
297708c51cebSShazad Hussain },
297808c51cebSShazad Hussain };
297908c51cebSShazad Hussain
298008c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
298108c51cebSShazad Hussain .halt_reg = 0x2361c,
298208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
298308c51cebSShazad Hussain .clkr = {
298408c51cebSShazad Hussain .enable_reg = 0x4b008,
298508c51cebSShazad Hussain .enable_mask = BIT(14),
298608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
298708c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s4_clk",
298808c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
298908c51cebSShazad Hussain &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
299008c51cebSShazad Hussain },
299108c51cebSShazad Hussain .num_parents = 1,
299208c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
299308c51cebSShazad Hussain .ops = &clk_branch2_ops,
299408c51cebSShazad Hussain },
299508c51cebSShazad Hussain },
299608c51cebSShazad Hussain };
299708c51cebSShazad Hussain
299808c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
299908c51cebSShazad Hussain .halt_reg = 0x23750,
300008c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
300108c51cebSShazad Hussain .clkr = {
300208c51cebSShazad Hussain .enable_reg = 0x4b008,
300308c51cebSShazad Hussain .enable_mask = BIT(15),
300408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
300508c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s5_clk",
300608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
300708c51cebSShazad Hussain &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
300808c51cebSShazad Hussain },
300908c51cebSShazad Hussain .num_parents = 1,
301008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
301108c51cebSShazad Hussain .ops = &clk_branch2_ops,
301208c51cebSShazad Hussain },
301308c51cebSShazad Hussain },
301408c51cebSShazad Hussain };
301508c51cebSShazad Hussain
301608c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
301708c51cebSShazad Hussain .halt_reg = 0x23884,
301808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
301908c51cebSShazad Hussain .clkr = {
302008c51cebSShazad Hussain .enable_reg = 0x4b008,
302108c51cebSShazad Hussain .enable_mask = BIT(16),
302208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
302308c51cebSShazad Hussain .name = "gcc_qupv3_wrap0_s6_clk",
302408c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
302508c51cebSShazad Hussain &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
302608c51cebSShazad Hussain },
302708c51cebSShazad Hussain .num_parents = 1,
302808c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
302908c51cebSShazad Hussain .ops = &clk_branch2_ops,
303008c51cebSShazad Hussain },
303108c51cebSShazad Hussain },
303208c51cebSShazad Hussain };
303308c51cebSShazad Hussain
303408c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = {
303508c51cebSShazad Hussain .halt_reg = 0x24018,
303608c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
303708c51cebSShazad Hussain .clkr = {
303808c51cebSShazad Hussain .enable_reg = 0x4b008,
303908c51cebSShazad Hussain .enable_mask = BIT(18),
304008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
304108c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_core_2x_clk",
304208c51cebSShazad Hussain .ops = &clk_branch2_ops,
304308c51cebSShazad Hussain },
304408c51cebSShazad Hussain },
304508c51cebSShazad Hussain };
304608c51cebSShazad Hussain
304708c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap1_core_clk = {
304808c51cebSShazad Hussain .halt_reg = 0x2400c,
304908c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
305008c51cebSShazad Hussain .clkr = {
305108c51cebSShazad Hussain .enable_reg = 0x4b008,
305208c51cebSShazad Hussain .enable_mask = BIT(19),
305308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
305408c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_core_clk",
305508c51cebSShazad Hussain .ops = &clk_branch2_ops,
305608c51cebSShazad Hussain },
305708c51cebSShazad Hussain },
305808c51cebSShazad Hussain };
305908c51cebSShazad Hussain
306008c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap1_s0_clk = {
306108c51cebSShazad Hussain .halt_reg = 0x2414c,
306208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
306308c51cebSShazad Hussain .clkr = {
306408c51cebSShazad Hussain .enable_reg = 0x4b008,
306508c51cebSShazad Hussain .enable_mask = BIT(22),
306608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
306708c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s0_clk",
306808c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
306908c51cebSShazad Hussain &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
307008c51cebSShazad Hussain },
307108c51cebSShazad Hussain .num_parents = 1,
307208c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
307308c51cebSShazad Hussain .ops = &clk_branch2_ops,
307408c51cebSShazad Hussain },
307508c51cebSShazad Hussain },
307608c51cebSShazad Hussain };
307708c51cebSShazad Hussain
307808c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap1_s1_clk = {
307908c51cebSShazad Hussain .halt_reg = 0x24280,
308008c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
308108c51cebSShazad Hussain .clkr = {
308208c51cebSShazad Hussain .enable_reg = 0x4b008,
308308c51cebSShazad Hussain .enable_mask = BIT(23),
308408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
308508c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s1_clk",
308608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
308708c51cebSShazad Hussain &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
308808c51cebSShazad Hussain },
308908c51cebSShazad Hussain .num_parents = 1,
309008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
309108c51cebSShazad Hussain .ops = &clk_branch2_ops,
309208c51cebSShazad Hussain },
309308c51cebSShazad Hussain },
309408c51cebSShazad Hussain };
309508c51cebSShazad Hussain
309608c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap1_s2_clk = {
309708c51cebSShazad Hussain .halt_reg = 0x243b4,
309808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
309908c51cebSShazad Hussain .clkr = {
310008c51cebSShazad Hussain .enable_reg = 0x4b008,
310108c51cebSShazad Hussain .enable_mask = BIT(24),
310208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
310308c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s2_clk",
310408c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
310508c51cebSShazad Hussain &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
310608c51cebSShazad Hussain },
310708c51cebSShazad Hussain .num_parents = 1,
310808c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
310908c51cebSShazad Hussain .ops = &clk_branch2_ops,
311008c51cebSShazad Hussain },
311108c51cebSShazad Hussain },
311208c51cebSShazad Hussain };
311308c51cebSShazad Hussain
311408c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap1_s3_clk = {
311508c51cebSShazad Hussain .halt_reg = 0x244e8,
311608c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
311708c51cebSShazad Hussain .clkr = {
311808c51cebSShazad Hussain .enable_reg = 0x4b008,
311908c51cebSShazad Hussain .enable_mask = BIT(25),
312008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
312108c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s3_clk",
312208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
312308c51cebSShazad Hussain &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
312408c51cebSShazad Hussain },
312508c51cebSShazad Hussain .num_parents = 1,
312608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
312708c51cebSShazad Hussain .ops = &clk_branch2_ops,
312808c51cebSShazad Hussain },
312908c51cebSShazad Hussain },
313008c51cebSShazad Hussain };
313108c51cebSShazad Hussain
313208c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap1_s4_clk = {
313308c51cebSShazad Hussain .halt_reg = 0x2461c,
313408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
313508c51cebSShazad Hussain .clkr = {
313608c51cebSShazad Hussain .enable_reg = 0x4b008,
313708c51cebSShazad Hussain .enable_mask = BIT(26),
313808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
313908c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s4_clk",
314008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
314108c51cebSShazad Hussain &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
314208c51cebSShazad Hussain },
314308c51cebSShazad Hussain .num_parents = 1,
314408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
314508c51cebSShazad Hussain .ops = &clk_branch2_ops,
314608c51cebSShazad Hussain },
314708c51cebSShazad Hussain },
314808c51cebSShazad Hussain };
314908c51cebSShazad Hussain
315008c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap1_s5_clk = {
315108c51cebSShazad Hussain .halt_reg = 0x24750,
315208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
315308c51cebSShazad Hussain .clkr = {
315408c51cebSShazad Hussain .enable_reg = 0x4b008,
315508c51cebSShazad Hussain .enable_mask = BIT(27),
315608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
315708c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s5_clk",
315808c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
315908c51cebSShazad Hussain &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
316008c51cebSShazad Hussain },
316108c51cebSShazad Hussain .num_parents = 1,
316208c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
316308c51cebSShazad Hussain .ops = &clk_branch2_ops,
316408c51cebSShazad Hussain },
316508c51cebSShazad Hussain },
316608c51cebSShazad Hussain };
316708c51cebSShazad Hussain
316808c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap1_s6_clk = {
316908c51cebSShazad Hussain .halt_reg = 0x24884,
317008c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
317108c51cebSShazad Hussain .clkr = {
317208c51cebSShazad Hussain .enable_reg = 0x4b018,
317308c51cebSShazad Hussain .enable_mask = BIT(27),
317408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
317508c51cebSShazad Hussain .name = "gcc_qupv3_wrap1_s6_clk",
317608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
317708c51cebSShazad Hussain &gcc_qupv3_wrap1_s6_clk_src.clkr.hw,
317808c51cebSShazad Hussain },
317908c51cebSShazad Hussain .num_parents = 1,
318008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
318108c51cebSShazad Hussain .ops = &clk_branch2_ops,
318208c51cebSShazad Hussain },
318308c51cebSShazad Hussain },
318408c51cebSShazad Hussain };
318508c51cebSShazad Hussain
318608c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap2_core_2x_clk = {
318708c51cebSShazad Hussain .halt_reg = 0x2a018,
318808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
318908c51cebSShazad Hussain .clkr = {
319008c51cebSShazad Hussain .enable_reg = 0x4b010,
319108c51cebSShazad Hussain .enable_mask = BIT(3),
319208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
319308c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_core_2x_clk",
319408c51cebSShazad Hussain .ops = &clk_branch2_ops,
319508c51cebSShazad Hussain },
319608c51cebSShazad Hussain },
319708c51cebSShazad Hussain };
319808c51cebSShazad Hussain
319908c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap2_core_clk = {
320008c51cebSShazad Hussain .halt_reg = 0x2a00c,
320108c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
320208c51cebSShazad Hussain .clkr = {
320308c51cebSShazad Hussain .enable_reg = 0x4b010,
320408c51cebSShazad Hussain .enable_mask = BIT(0),
320508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
320608c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_core_clk",
320708c51cebSShazad Hussain .ops = &clk_branch2_ops,
320808c51cebSShazad Hussain },
320908c51cebSShazad Hussain },
321008c51cebSShazad Hussain };
321108c51cebSShazad Hussain
321208c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap2_s0_clk = {
321308c51cebSShazad Hussain .halt_reg = 0x2a14c,
321408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
321508c51cebSShazad Hussain .clkr = {
321608c51cebSShazad Hussain .enable_reg = 0x4b010,
321708c51cebSShazad Hussain .enable_mask = BIT(4),
321808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
321908c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s0_clk",
322008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
322108c51cebSShazad Hussain &gcc_qupv3_wrap2_s0_clk_src.clkr.hw,
322208c51cebSShazad Hussain },
322308c51cebSShazad Hussain .num_parents = 1,
322408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
322508c51cebSShazad Hussain .ops = &clk_branch2_ops,
322608c51cebSShazad Hussain },
322708c51cebSShazad Hussain },
322808c51cebSShazad Hussain };
322908c51cebSShazad Hussain
323008c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap2_s1_clk = {
323108c51cebSShazad Hussain .halt_reg = 0x2a280,
323208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
323308c51cebSShazad Hussain .clkr = {
323408c51cebSShazad Hussain .enable_reg = 0x4b010,
323508c51cebSShazad Hussain .enable_mask = BIT(5),
323608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
323708c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s1_clk",
323808c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
323908c51cebSShazad Hussain &gcc_qupv3_wrap2_s1_clk_src.clkr.hw,
324008c51cebSShazad Hussain },
324108c51cebSShazad Hussain .num_parents = 1,
324208c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
324308c51cebSShazad Hussain .ops = &clk_branch2_ops,
324408c51cebSShazad Hussain },
324508c51cebSShazad Hussain },
324608c51cebSShazad Hussain };
324708c51cebSShazad Hussain
324808c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap2_s2_clk = {
324908c51cebSShazad Hussain .halt_reg = 0x2a3b4,
325008c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
325108c51cebSShazad Hussain .clkr = {
325208c51cebSShazad Hussain .enable_reg = 0x4b010,
325308c51cebSShazad Hussain .enable_mask = BIT(6),
325408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
325508c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s2_clk",
325608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
325708c51cebSShazad Hussain &gcc_qupv3_wrap2_s2_clk_src.clkr.hw,
325808c51cebSShazad Hussain },
325908c51cebSShazad Hussain .num_parents = 1,
326008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
326108c51cebSShazad Hussain .ops = &clk_branch2_ops,
326208c51cebSShazad Hussain },
326308c51cebSShazad Hussain },
326408c51cebSShazad Hussain };
326508c51cebSShazad Hussain
326608c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap2_s3_clk = {
326708c51cebSShazad Hussain .halt_reg = 0x2a4e8,
326808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
326908c51cebSShazad Hussain .clkr = {
327008c51cebSShazad Hussain .enable_reg = 0x4b010,
327108c51cebSShazad Hussain .enable_mask = BIT(7),
327208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
327308c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s3_clk",
327408c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
327508c51cebSShazad Hussain &gcc_qupv3_wrap2_s3_clk_src.clkr.hw,
327608c51cebSShazad Hussain },
327708c51cebSShazad Hussain .num_parents = 1,
327808c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
327908c51cebSShazad Hussain .ops = &clk_branch2_ops,
328008c51cebSShazad Hussain },
328108c51cebSShazad Hussain },
328208c51cebSShazad Hussain };
328308c51cebSShazad Hussain
328408c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap2_s4_clk = {
328508c51cebSShazad Hussain .halt_reg = 0x2a61c,
328608c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
328708c51cebSShazad Hussain .clkr = {
328808c51cebSShazad Hussain .enable_reg = 0x4b010,
328908c51cebSShazad Hussain .enable_mask = BIT(8),
329008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
329108c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s4_clk",
329208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
329308c51cebSShazad Hussain &gcc_qupv3_wrap2_s4_clk_src.clkr.hw,
329408c51cebSShazad Hussain },
329508c51cebSShazad Hussain .num_parents = 1,
329608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
329708c51cebSShazad Hussain .ops = &clk_branch2_ops,
329808c51cebSShazad Hussain },
329908c51cebSShazad Hussain },
330008c51cebSShazad Hussain };
330108c51cebSShazad Hussain
330208c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap2_s5_clk = {
330308c51cebSShazad Hussain .halt_reg = 0x2a750,
330408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
330508c51cebSShazad Hussain .clkr = {
330608c51cebSShazad Hussain .enable_reg = 0x4b010,
330708c51cebSShazad Hussain .enable_mask = BIT(9),
330808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
330908c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s5_clk",
331008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
331108c51cebSShazad Hussain &gcc_qupv3_wrap2_s5_clk_src.clkr.hw,
331208c51cebSShazad Hussain },
331308c51cebSShazad Hussain .num_parents = 1,
331408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
331508c51cebSShazad Hussain .ops = &clk_branch2_ops,
331608c51cebSShazad Hussain },
331708c51cebSShazad Hussain },
331808c51cebSShazad Hussain };
331908c51cebSShazad Hussain
332008c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap2_s6_clk = {
332108c51cebSShazad Hussain .halt_reg = 0x2a884,
332208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
332308c51cebSShazad Hussain .clkr = {
332408c51cebSShazad Hussain .enable_reg = 0x4b018,
332508c51cebSShazad Hussain .enable_mask = BIT(29),
332608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
332708c51cebSShazad Hussain .name = "gcc_qupv3_wrap2_s6_clk",
332808c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
332908c51cebSShazad Hussain &gcc_qupv3_wrap2_s6_clk_src.clkr.hw,
333008c51cebSShazad Hussain },
333108c51cebSShazad Hussain .num_parents = 1,
333208c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
333308c51cebSShazad Hussain .ops = &clk_branch2_ops,
333408c51cebSShazad Hussain },
333508c51cebSShazad Hussain },
333608c51cebSShazad Hussain };
333708c51cebSShazad Hussain
333808c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap3_core_2x_clk = {
333908c51cebSShazad Hussain .halt_reg = 0xc4018,
334008c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
334108c51cebSShazad Hussain .clkr = {
334208c51cebSShazad Hussain .enable_reg = 0x4b000,
334308c51cebSShazad Hussain .enable_mask = BIT(24),
334408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
334508c51cebSShazad Hussain .name = "gcc_qupv3_wrap3_core_2x_clk",
334608c51cebSShazad Hussain .ops = &clk_branch2_ops,
334708c51cebSShazad Hussain },
334808c51cebSShazad Hussain },
334908c51cebSShazad Hussain };
335008c51cebSShazad Hussain
335108c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap3_core_clk = {
335208c51cebSShazad Hussain .halt_reg = 0xc400c,
335308c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
335408c51cebSShazad Hussain .clkr = {
335508c51cebSShazad Hussain .enable_reg = 0x4b000,
335608c51cebSShazad Hussain .enable_mask = BIT(23),
335708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
335808c51cebSShazad Hussain .name = "gcc_qupv3_wrap3_core_clk",
335908c51cebSShazad Hussain .ops = &clk_branch2_ops,
336008c51cebSShazad Hussain },
336108c51cebSShazad Hussain },
336208c51cebSShazad Hussain };
336308c51cebSShazad Hussain
336408c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap3_qspi_clk = {
336508c51cebSShazad Hussain .halt_reg = 0xc4280,
336608c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
336708c51cebSShazad Hussain .clkr = {
336808c51cebSShazad Hussain .enable_reg = 0x4b000,
336908c51cebSShazad Hussain .enable_mask = BIT(26),
337008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
337108c51cebSShazad Hussain .name = "gcc_qupv3_wrap3_qspi_clk",
337208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
337308c51cebSShazad Hussain &gcc_qupv3_wrap3_s0_clk_src.clkr.hw,
337408c51cebSShazad Hussain },
337508c51cebSShazad Hussain .num_parents = 1,
337608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
337708c51cebSShazad Hussain .ops = &clk_branch2_ops,
337808c51cebSShazad Hussain },
337908c51cebSShazad Hussain },
338008c51cebSShazad Hussain };
338108c51cebSShazad Hussain
338208c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap3_s0_clk = {
338308c51cebSShazad Hussain .halt_reg = 0xc414c,
338408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
338508c51cebSShazad Hussain .clkr = {
338608c51cebSShazad Hussain .enable_reg = 0x4b000,
338708c51cebSShazad Hussain .enable_mask = BIT(25),
338808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
338908c51cebSShazad Hussain .name = "gcc_qupv3_wrap3_s0_clk",
339008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
339108c51cebSShazad Hussain &gcc_qupv3_wrap3_s0_div_clk_src.clkr.hw,
339208c51cebSShazad Hussain },
339308c51cebSShazad Hussain .num_parents = 1,
339408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
339508c51cebSShazad Hussain .ops = &clk_branch2_ops,
339608c51cebSShazad Hussain },
339708c51cebSShazad Hussain },
339808c51cebSShazad Hussain };
339908c51cebSShazad Hussain
340008c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
340108c51cebSShazad Hussain .halt_reg = 0x23004,
340208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
340308c51cebSShazad Hussain .hwcg_reg = 0x23004,
340408c51cebSShazad Hussain .hwcg_bit = 1,
340508c51cebSShazad Hussain .clkr = {
340608c51cebSShazad Hussain .enable_reg = 0x4b008,
340708c51cebSShazad Hussain .enable_mask = BIT(6),
340808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
340908c51cebSShazad Hussain .name = "gcc_qupv3_wrap_0_m_ahb_clk",
341008c51cebSShazad Hussain .ops = &clk_branch2_ops,
341108c51cebSShazad Hussain },
341208c51cebSShazad Hussain },
341308c51cebSShazad Hussain };
341408c51cebSShazad Hussain
341508c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
341608c51cebSShazad Hussain .halt_reg = 0x23008,
341708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
341808c51cebSShazad Hussain .hwcg_reg = 0x23008,
341908c51cebSShazad Hussain .hwcg_bit = 1,
342008c51cebSShazad Hussain .clkr = {
342108c51cebSShazad Hussain .enable_reg = 0x4b008,
342208c51cebSShazad Hussain .enable_mask = BIT(7),
342308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
342408c51cebSShazad Hussain .name = "gcc_qupv3_wrap_0_s_ahb_clk",
342508c51cebSShazad Hussain .ops = &clk_branch2_ops,
342608c51cebSShazad Hussain },
342708c51cebSShazad Hussain },
342808c51cebSShazad Hussain };
342908c51cebSShazad Hussain
343008c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = {
343108c51cebSShazad Hussain .halt_reg = 0x24004,
343208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
343308c51cebSShazad Hussain .hwcg_reg = 0x24004,
343408c51cebSShazad Hussain .hwcg_bit = 1,
343508c51cebSShazad Hussain .clkr = {
343608c51cebSShazad Hussain .enable_reg = 0x4b008,
343708c51cebSShazad Hussain .enable_mask = BIT(20),
343808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
343908c51cebSShazad Hussain .name = "gcc_qupv3_wrap_1_m_ahb_clk",
344008c51cebSShazad Hussain .ops = &clk_branch2_ops,
344108c51cebSShazad Hussain },
344208c51cebSShazad Hussain },
344308c51cebSShazad Hussain };
344408c51cebSShazad Hussain
344508c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = {
344608c51cebSShazad Hussain .halt_reg = 0x24008,
344708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
344808c51cebSShazad Hussain .hwcg_reg = 0x24008,
344908c51cebSShazad Hussain .hwcg_bit = 1,
345008c51cebSShazad Hussain .clkr = {
345108c51cebSShazad Hussain .enable_reg = 0x4b008,
345208c51cebSShazad Hussain .enable_mask = BIT(21),
345308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
345408c51cebSShazad Hussain .name = "gcc_qupv3_wrap_1_s_ahb_clk",
345508c51cebSShazad Hussain .ops = &clk_branch2_ops,
345608c51cebSShazad Hussain },
345708c51cebSShazad Hussain },
345808c51cebSShazad Hussain };
345908c51cebSShazad Hussain
346008c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = {
346108c51cebSShazad Hussain .halt_reg = 0x2a004,
346208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
346308c51cebSShazad Hussain .hwcg_reg = 0x2a004,
346408c51cebSShazad Hussain .hwcg_bit = 1,
346508c51cebSShazad Hussain .clkr = {
346608c51cebSShazad Hussain .enable_reg = 0x4b010,
346708c51cebSShazad Hussain .enable_mask = BIT(2),
346808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
346908c51cebSShazad Hussain .name = "gcc_qupv3_wrap_2_m_ahb_clk",
347008c51cebSShazad Hussain .ops = &clk_branch2_ops,
347108c51cebSShazad Hussain },
347208c51cebSShazad Hussain },
347308c51cebSShazad Hussain };
347408c51cebSShazad Hussain
347508c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = {
347608c51cebSShazad Hussain .halt_reg = 0x2a008,
347708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
347808c51cebSShazad Hussain .hwcg_reg = 0x2a008,
347908c51cebSShazad Hussain .hwcg_bit = 1,
348008c51cebSShazad Hussain .clkr = {
348108c51cebSShazad Hussain .enable_reg = 0x4b010,
348208c51cebSShazad Hussain .enable_mask = BIT(1),
348308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
348408c51cebSShazad Hussain .name = "gcc_qupv3_wrap_2_s_ahb_clk",
348508c51cebSShazad Hussain .ops = &clk_branch2_ops,
348608c51cebSShazad Hussain },
348708c51cebSShazad Hussain },
348808c51cebSShazad Hussain };
348908c51cebSShazad Hussain
349008c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap_3_m_ahb_clk = {
349108c51cebSShazad Hussain .halt_reg = 0xc4004,
349208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
349308c51cebSShazad Hussain .hwcg_reg = 0xc4004,
349408c51cebSShazad Hussain .hwcg_bit = 1,
349508c51cebSShazad Hussain .clkr = {
349608c51cebSShazad Hussain .enable_reg = 0x4b000,
349708c51cebSShazad Hussain .enable_mask = BIT(27),
349808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
349908c51cebSShazad Hussain .name = "gcc_qupv3_wrap_3_m_ahb_clk",
350008c51cebSShazad Hussain .ops = &clk_branch2_ops,
350108c51cebSShazad Hussain },
350208c51cebSShazad Hussain },
350308c51cebSShazad Hussain };
350408c51cebSShazad Hussain
350508c51cebSShazad Hussain static struct clk_branch gcc_qupv3_wrap_3_s_ahb_clk = {
350608c51cebSShazad Hussain .halt_reg = 0xc4008,
350708c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
350808c51cebSShazad Hussain .hwcg_reg = 0xc4008,
350908c51cebSShazad Hussain .hwcg_bit = 1,
351008c51cebSShazad Hussain .clkr = {
351108c51cebSShazad Hussain .enable_reg = 0x4b000,
351208c51cebSShazad Hussain .enable_mask = BIT(20),
351308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
351408c51cebSShazad Hussain .name = "gcc_qupv3_wrap_3_s_ahb_clk",
351508c51cebSShazad Hussain .ops = &clk_branch2_ops,
351608c51cebSShazad Hussain },
351708c51cebSShazad Hussain },
351808c51cebSShazad Hussain };
351908c51cebSShazad Hussain
352008c51cebSShazad Hussain static struct clk_branch gcc_sdcc1_ahb_clk = {
352108c51cebSShazad Hussain .halt_reg = 0x2000c,
352208c51cebSShazad Hussain .halt_check = BRANCH_HALT,
352308c51cebSShazad Hussain .clkr = {
352408c51cebSShazad Hussain .enable_reg = 0x2000c,
352508c51cebSShazad Hussain .enable_mask = BIT(0),
352608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
352708c51cebSShazad Hussain .name = "gcc_sdcc1_ahb_clk",
352808c51cebSShazad Hussain .ops = &clk_branch2_ops,
352908c51cebSShazad Hussain },
353008c51cebSShazad Hussain },
353108c51cebSShazad Hussain };
353208c51cebSShazad Hussain
353308c51cebSShazad Hussain static struct clk_branch gcc_sdcc1_apps_clk = {
353408c51cebSShazad Hussain .halt_reg = 0x20004,
353508c51cebSShazad Hussain .halt_check = BRANCH_HALT,
353608c51cebSShazad Hussain .clkr = {
353708c51cebSShazad Hussain .enable_reg = 0x20004,
353808c51cebSShazad Hussain .enable_mask = BIT(0),
353908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
354008c51cebSShazad Hussain .name = "gcc_sdcc1_apps_clk",
354108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
354208c51cebSShazad Hussain &gcc_sdcc1_apps_clk_src.clkr.hw,
354308c51cebSShazad Hussain },
354408c51cebSShazad Hussain .num_parents = 1,
354508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
354608c51cebSShazad Hussain .ops = &clk_branch2_ops,
354708c51cebSShazad Hussain },
354808c51cebSShazad Hussain },
354908c51cebSShazad Hussain };
355008c51cebSShazad Hussain
355108c51cebSShazad Hussain static struct clk_branch gcc_sdcc1_ice_core_clk = {
355208c51cebSShazad Hussain .halt_reg = 0x20044,
355308c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
355408c51cebSShazad Hussain .hwcg_reg = 0x20044,
355508c51cebSShazad Hussain .hwcg_bit = 1,
355608c51cebSShazad Hussain .clkr = {
355708c51cebSShazad Hussain .enable_reg = 0x20044,
355808c51cebSShazad Hussain .enable_mask = BIT(0),
355908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
356008c51cebSShazad Hussain .name = "gcc_sdcc1_ice_core_clk",
356108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
356208c51cebSShazad Hussain &gcc_sdcc1_ice_core_clk_src.clkr.hw,
356308c51cebSShazad Hussain },
356408c51cebSShazad Hussain .num_parents = 1,
356508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
356608c51cebSShazad Hussain .ops = &clk_branch2_ops,
356708c51cebSShazad Hussain },
356808c51cebSShazad Hussain },
356908c51cebSShazad Hussain };
357008c51cebSShazad Hussain
357108c51cebSShazad Hussain static struct clk_branch gcc_sgmi_clkref_en = {
357208c51cebSShazad Hussain .halt_reg = 0x9c034,
357308c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
357408c51cebSShazad Hussain .clkr = {
357508c51cebSShazad Hussain .enable_reg = 0x9c034,
357608c51cebSShazad Hussain .enable_mask = BIT(0),
357708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
357808c51cebSShazad Hussain .name = "gcc_sgmi_clkref_en",
357908c51cebSShazad Hussain .ops = &clk_branch2_ops,
358008c51cebSShazad Hussain },
358108c51cebSShazad Hussain },
358208c51cebSShazad Hussain };
358308c51cebSShazad Hussain
358408c51cebSShazad Hussain static struct clk_branch gcc_tscss_ahb_clk = {
358508c51cebSShazad Hussain .halt_reg = 0x21024,
358608c51cebSShazad Hussain .halt_check = BRANCH_HALT,
358708c51cebSShazad Hussain .clkr = {
358808c51cebSShazad Hussain .enable_reg = 0x21024,
358908c51cebSShazad Hussain .enable_mask = BIT(0),
359008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
359108c51cebSShazad Hussain .name = "gcc_tscss_ahb_clk",
359208c51cebSShazad Hussain .ops = &clk_branch2_ops,
359308c51cebSShazad Hussain },
359408c51cebSShazad Hussain },
359508c51cebSShazad Hussain };
359608c51cebSShazad Hussain
359708c51cebSShazad Hussain static struct clk_branch gcc_tscss_etu_clk = {
359808c51cebSShazad Hussain .halt_reg = 0x21020,
359908c51cebSShazad Hussain .halt_check = BRANCH_HALT,
360008c51cebSShazad Hussain .clkr = {
360108c51cebSShazad Hussain .enable_reg = 0x21020,
360208c51cebSShazad Hussain .enable_mask = BIT(0),
360308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
360408c51cebSShazad Hussain .name = "gcc_tscss_etu_clk",
360508c51cebSShazad Hussain .ops = &clk_branch2_ops,
360608c51cebSShazad Hussain },
360708c51cebSShazad Hussain },
360808c51cebSShazad Hussain };
360908c51cebSShazad Hussain
361008c51cebSShazad Hussain static struct clk_branch gcc_tscss_global_cntr_clk = {
361108c51cebSShazad Hussain .halt_reg = 0x21004,
361208c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
361308c51cebSShazad Hussain .clkr = {
361408c51cebSShazad Hussain .enable_reg = 0x21004,
361508c51cebSShazad Hussain .enable_mask = BIT(0),
361608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
361708c51cebSShazad Hussain .name = "gcc_tscss_global_cntr_clk",
361808c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
361908c51cebSShazad Hussain &gcc_tscss_cntr_clk_src.clkr.hw,
362008c51cebSShazad Hussain },
362108c51cebSShazad Hussain .num_parents = 1,
362208c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
362308c51cebSShazad Hussain .ops = &clk_branch2_ops,
362408c51cebSShazad Hussain },
362508c51cebSShazad Hussain },
362608c51cebSShazad Hussain };
362708c51cebSShazad Hussain
362808c51cebSShazad Hussain static struct clk_branch gcc_ufs_card_ahb_clk = {
362908c51cebSShazad Hussain .halt_reg = 0x81020,
363008c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
363108c51cebSShazad Hussain .hwcg_reg = 0x81020,
363208c51cebSShazad Hussain .hwcg_bit = 1,
363308c51cebSShazad Hussain .clkr = {
363408c51cebSShazad Hussain .enable_reg = 0x81020,
363508c51cebSShazad Hussain .enable_mask = BIT(0),
363608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
363708c51cebSShazad Hussain .name = "gcc_ufs_card_ahb_clk",
363808c51cebSShazad Hussain .ops = &clk_branch2_ops,
363908c51cebSShazad Hussain },
364008c51cebSShazad Hussain },
364108c51cebSShazad Hussain };
364208c51cebSShazad Hussain
364308c51cebSShazad Hussain static struct clk_branch gcc_ufs_card_axi_clk = {
364408c51cebSShazad Hussain .halt_reg = 0x81018,
364508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
364608c51cebSShazad Hussain .hwcg_reg = 0x81018,
364708c51cebSShazad Hussain .hwcg_bit = 1,
364808c51cebSShazad Hussain .clkr = {
364908c51cebSShazad Hussain .enable_reg = 0x81018,
365008c51cebSShazad Hussain .enable_mask = BIT(0),
365108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
365208c51cebSShazad Hussain .name = "gcc_ufs_card_axi_clk",
365308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
365408c51cebSShazad Hussain &gcc_ufs_card_axi_clk_src.clkr.hw,
365508c51cebSShazad Hussain },
365608c51cebSShazad Hussain .num_parents = 1,
365708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
365808c51cebSShazad Hussain .ops = &clk_branch2_ops,
365908c51cebSShazad Hussain },
366008c51cebSShazad Hussain },
366108c51cebSShazad Hussain };
366208c51cebSShazad Hussain
366308c51cebSShazad Hussain static struct clk_branch gcc_ufs_card_ice_core_clk = {
366408c51cebSShazad Hussain .halt_reg = 0x8106c,
366508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
366608c51cebSShazad Hussain .hwcg_reg = 0x8106c,
366708c51cebSShazad Hussain .hwcg_bit = 1,
366808c51cebSShazad Hussain .clkr = {
366908c51cebSShazad Hussain .enable_reg = 0x8106c,
367008c51cebSShazad Hussain .enable_mask = BIT(0),
367108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
367208c51cebSShazad Hussain .name = "gcc_ufs_card_ice_core_clk",
367308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
367408c51cebSShazad Hussain &gcc_ufs_card_ice_core_clk_src.clkr.hw,
367508c51cebSShazad Hussain },
367608c51cebSShazad Hussain .num_parents = 1,
367708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
367808c51cebSShazad Hussain .ops = &clk_branch2_ops,
367908c51cebSShazad Hussain },
368008c51cebSShazad Hussain },
368108c51cebSShazad Hussain };
368208c51cebSShazad Hussain
368308c51cebSShazad Hussain static struct clk_branch gcc_ufs_card_phy_aux_clk = {
368408c51cebSShazad Hussain .halt_reg = 0x810a4,
368508c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
368608c51cebSShazad Hussain .hwcg_reg = 0x810a4,
368708c51cebSShazad Hussain .hwcg_bit = 1,
368808c51cebSShazad Hussain .clkr = {
368908c51cebSShazad Hussain .enable_reg = 0x810a4,
369008c51cebSShazad Hussain .enable_mask = BIT(0),
369108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
369208c51cebSShazad Hussain .name = "gcc_ufs_card_phy_aux_clk",
369308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
369408c51cebSShazad Hussain &gcc_ufs_card_phy_aux_clk_src.clkr.hw,
369508c51cebSShazad Hussain },
369608c51cebSShazad Hussain .num_parents = 1,
369708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
369808c51cebSShazad Hussain .ops = &clk_branch2_ops,
369908c51cebSShazad Hussain },
370008c51cebSShazad Hussain },
370108c51cebSShazad Hussain };
370208c51cebSShazad Hussain
370308c51cebSShazad Hussain static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = {
370408c51cebSShazad Hussain .halt_reg = 0x81028,
370508c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
370608c51cebSShazad Hussain .clkr = {
370708c51cebSShazad Hussain .enable_reg = 0x81028,
370808c51cebSShazad Hussain .enable_mask = BIT(0),
370908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
371008c51cebSShazad Hussain .name = "gcc_ufs_card_rx_symbol_0_clk",
371108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
371208c51cebSShazad Hussain &gcc_ufs_card_rx_symbol_0_clk_src.clkr.hw,
371308c51cebSShazad Hussain },
371408c51cebSShazad Hussain .num_parents = 1,
371508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
371608c51cebSShazad Hussain .ops = &clk_branch2_ops,
371708c51cebSShazad Hussain },
371808c51cebSShazad Hussain },
371908c51cebSShazad Hussain };
372008c51cebSShazad Hussain
372108c51cebSShazad Hussain static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = {
372208c51cebSShazad Hussain .halt_reg = 0x810c0,
372308c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
372408c51cebSShazad Hussain .clkr = {
372508c51cebSShazad Hussain .enable_reg = 0x810c0,
372608c51cebSShazad Hussain .enable_mask = BIT(0),
372708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
372808c51cebSShazad Hussain .name = "gcc_ufs_card_rx_symbol_1_clk",
372908c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
373008c51cebSShazad Hussain &gcc_ufs_card_rx_symbol_1_clk_src.clkr.hw,
373108c51cebSShazad Hussain },
373208c51cebSShazad Hussain .num_parents = 1,
373308c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
373408c51cebSShazad Hussain .ops = &clk_branch2_ops,
373508c51cebSShazad Hussain },
373608c51cebSShazad Hussain },
373708c51cebSShazad Hussain };
373808c51cebSShazad Hussain
373908c51cebSShazad Hussain static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = {
374008c51cebSShazad Hussain .halt_reg = 0x81024,
374108c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
374208c51cebSShazad Hussain .clkr = {
374308c51cebSShazad Hussain .enable_reg = 0x81024,
374408c51cebSShazad Hussain .enable_mask = BIT(0),
374508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
374608c51cebSShazad Hussain .name = "gcc_ufs_card_tx_symbol_0_clk",
374708c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
374808c51cebSShazad Hussain &gcc_ufs_card_tx_symbol_0_clk_src.clkr.hw,
374908c51cebSShazad Hussain },
375008c51cebSShazad Hussain .num_parents = 1,
375108c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
375208c51cebSShazad Hussain .ops = &clk_branch2_ops,
375308c51cebSShazad Hussain },
375408c51cebSShazad Hussain },
375508c51cebSShazad Hussain };
375608c51cebSShazad Hussain
375708c51cebSShazad Hussain static struct clk_branch gcc_ufs_card_unipro_core_clk = {
375808c51cebSShazad Hussain .halt_reg = 0x81064,
375908c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
376008c51cebSShazad Hussain .hwcg_reg = 0x81064,
376108c51cebSShazad Hussain .hwcg_bit = 1,
376208c51cebSShazad Hussain .clkr = {
376308c51cebSShazad Hussain .enable_reg = 0x81064,
376408c51cebSShazad Hussain .enable_mask = BIT(0),
376508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
376608c51cebSShazad Hussain .name = "gcc_ufs_card_unipro_core_clk",
376708c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
376808c51cebSShazad Hussain &gcc_ufs_card_unipro_core_clk_src.clkr.hw,
376908c51cebSShazad Hussain },
377008c51cebSShazad Hussain .num_parents = 1,
377108c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
377208c51cebSShazad Hussain .ops = &clk_branch2_ops,
377308c51cebSShazad Hussain },
377408c51cebSShazad Hussain },
377508c51cebSShazad Hussain };
377608c51cebSShazad Hussain
377708c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_ahb_clk = {
377808c51cebSShazad Hussain .halt_reg = 0x83020,
377908c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
378008c51cebSShazad Hussain .hwcg_reg = 0x83020,
378108c51cebSShazad Hussain .hwcg_bit = 1,
378208c51cebSShazad Hussain .clkr = {
378308c51cebSShazad Hussain .enable_reg = 0x83020,
378408c51cebSShazad Hussain .enable_mask = BIT(0),
378508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
378608c51cebSShazad Hussain .name = "gcc_ufs_phy_ahb_clk",
378708c51cebSShazad Hussain .ops = &clk_branch2_ops,
378808c51cebSShazad Hussain },
378908c51cebSShazad Hussain },
379008c51cebSShazad Hussain };
379108c51cebSShazad Hussain
379208c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_axi_clk = {
379308c51cebSShazad Hussain .halt_reg = 0x83018,
379408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
379508c51cebSShazad Hussain .hwcg_reg = 0x83018,
379608c51cebSShazad Hussain .hwcg_bit = 1,
379708c51cebSShazad Hussain .clkr = {
379808c51cebSShazad Hussain .enable_reg = 0x83018,
379908c51cebSShazad Hussain .enable_mask = BIT(0),
380008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
380108c51cebSShazad Hussain .name = "gcc_ufs_phy_axi_clk",
380208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
380308c51cebSShazad Hussain &gcc_ufs_phy_axi_clk_src.clkr.hw,
380408c51cebSShazad Hussain },
380508c51cebSShazad Hussain .num_parents = 1,
380608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
380708c51cebSShazad Hussain .ops = &clk_branch2_ops,
380808c51cebSShazad Hussain },
380908c51cebSShazad Hussain },
381008c51cebSShazad Hussain };
381108c51cebSShazad Hussain
381208c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = {
381308c51cebSShazad Hussain .halt_reg = 0x83018,
381408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
381508c51cebSShazad Hussain .hwcg_reg = 0x83018,
381608c51cebSShazad Hussain .hwcg_bit = 1,
381708c51cebSShazad Hussain .clkr = {
381808c51cebSShazad Hussain .enable_reg = 0x83018,
381908c51cebSShazad Hussain .enable_mask = BIT(1),
382008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
382108c51cebSShazad Hussain .name = "gcc_ufs_phy_axi_hw_ctl_clk",
382208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
382308c51cebSShazad Hussain &gcc_ufs_phy_axi_clk_src.clkr.hw,
382408c51cebSShazad Hussain },
382508c51cebSShazad Hussain .num_parents = 1,
382608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
382708c51cebSShazad Hussain .ops = &clk_branch2_ops,
382808c51cebSShazad Hussain },
382908c51cebSShazad Hussain },
383008c51cebSShazad Hussain };
383108c51cebSShazad Hussain
383208c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_ice_core_clk = {
383308c51cebSShazad Hussain .halt_reg = 0x8306c,
383408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
383508c51cebSShazad Hussain .hwcg_reg = 0x8306c,
383608c51cebSShazad Hussain .hwcg_bit = 1,
383708c51cebSShazad Hussain .clkr = {
383808c51cebSShazad Hussain .enable_reg = 0x8306c,
383908c51cebSShazad Hussain .enable_mask = BIT(0),
384008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
384108c51cebSShazad Hussain .name = "gcc_ufs_phy_ice_core_clk",
384208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
384308c51cebSShazad Hussain &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
384408c51cebSShazad Hussain },
384508c51cebSShazad Hussain .num_parents = 1,
384608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
384708c51cebSShazad Hussain .ops = &clk_branch2_ops,
384808c51cebSShazad Hussain },
384908c51cebSShazad Hussain },
385008c51cebSShazad Hussain };
385108c51cebSShazad Hussain
385208c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = {
385308c51cebSShazad Hussain .halt_reg = 0x8306c,
385408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
385508c51cebSShazad Hussain .hwcg_reg = 0x8306c,
385608c51cebSShazad Hussain .hwcg_bit = 1,
385708c51cebSShazad Hussain .clkr = {
385808c51cebSShazad Hussain .enable_reg = 0x8306c,
385908c51cebSShazad Hussain .enable_mask = BIT(1),
386008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
386108c51cebSShazad Hussain .name = "gcc_ufs_phy_ice_core_hw_ctl_clk",
386208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
386308c51cebSShazad Hussain &gcc_ufs_phy_ice_core_clk_src.clkr.hw,
386408c51cebSShazad Hussain },
386508c51cebSShazad Hussain .num_parents = 1,
386608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
386708c51cebSShazad Hussain .ops = &clk_branch2_ops,
386808c51cebSShazad Hussain },
386908c51cebSShazad Hussain },
387008c51cebSShazad Hussain };
387108c51cebSShazad Hussain
387208c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_phy_aux_clk = {
387308c51cebSShazad Hussain .halt_reg = 0x830a4,
387408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
387508c51cebSShazad Hussain .hwcg_reg = 0x830a4,
387608c51cebSShazad Hussain .hwcg_bit = 1,
387708c51cebSShazad Hussain .clkr = {
387808c51cebSShazad Hussain .enable_reg = 0x830a4,
387908c51cebSShazad Hussain .enable_mask = BIT(0),
388008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
388108c51cebSShazad Hussain .name = "gcc_ufs_phy_phy_aux_clk",
388208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
388308c51cebSShazad Hussain &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
388408c51cebSShazad Hussain },
388508c51cebSShazad Hussain .num_parents = 1,
388608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
388708c51cebSShazad Hussain .ops = &clk_branch2_ops,
388808c51cebSShazad Hussain },
388908c51cebSShazad Hussain },
389008c51cebSShazad Hussain };
389108c51cebSShazad Hussain
389208c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = {
389308c51cebSShazad Hussain .halt_reg = 0x830a4,
389408c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
389508c51cebSShazad Hussain .hwcg_reg = 0x830a4,
389608c51cebSShazad Hussain .hwcg_bit = 1,
389708c51cebSShazad Hussain .clkr = {
389808c51cebSShazad Hussain .enable_reg = 0x830a4,
389908c51cebSShazad Hussain .enable_mask = BIT(1),
390008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
390108c51cebSShazad Hussain .name = "gcc_ufs_phy_phy_aux_hw_ctl_clk",
390208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
390308c51cebSShazad Hussain &gcc_ufs_phy_phy_aux_clk_src.clkr.hw,
390408c51cebSShazad Hussain },
390508c51cebSShazad Hussain .num_parents = 1,
390608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
390708c51cebSShazad Hussain .ops = &clk_branch2_ops,
390808c51cebSShazad Hussain },
390908c51cebSShazad Hussain },
391008c51cebSShazad Hussain };
391108c51cebSShazad Hussain
391208c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = {
391308c51cebSShazad Hussain .halt_reg = 0x83028,
391408c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
391508c51cebSShazad Hussain .clkr = {
391608c51cebSShazad Hussain .enable_reg = 0x83028,
391708c51cebSShazad Hussain .enable_mask = BIT(0),
391808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
391908c51cebSShazad Hussain .name = "gcc_ufs_phy_rx_symbol_0_clk",
392008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
392108c51cebSShazad Hussain &gcc_ufs_phy_rx_symbol_0_clk_src.clkr.hw,
392208c51cebSShazad Hussain },
392308c51cebSShazad Hussain .num_parents = 1,
392408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
392508c51cebSShazad Hussain .ops = &clk_branch2_ops,
392608c51cebSShazad Hussain },
392708c51cebSShazad Hussain },
392808c51cebSShazad Hussain };
392908c51cebSShazad Hussain
393008c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = {
393108c51cebSShazad Hussain .halt_reg = 0x830c0,
393208c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
393308c51cebSShazad Hussain .clkr = {
393408c51cebSShazad Hussain .enable_reg = 0x830c0,
393508c51cebSShazad Hussain .enable_mask = BIT(0),
393608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
393708c51cebSShazad Hussain .name = "gcc_ufs_phy_rx_symbol_1_clk",
393808c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
393908c51cebSShazad Hussain &gcc_ufs_phy_rx_symbol_1_clk_src.clkr.hw,
394008c51cebSShazad Hussain },
394108c51cebSShazad Hussain .num_parents = 1,
394208c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
394308c51cebSShazad Hussain .ops = &clk_branch2_ops,
394408c51cebSShazad Hussain },
394508c51cebSShazad Hussain },
394608c51cebSShazad Hussain };
394708c51cebSShazad Hussain
394808c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = {
394908c51cebSShazad Hussain .halt_reg = 0x83024,
395008c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
395108c51cebSShazad Hussain .clkr = {
395208c51cebSShazad Hussain .enable_reg = 0x83024,
395308c51cebSShazad Hussain .enable_mask = BIT(0),
395408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
395508c51cebSShazad Hussain .name = "gcc_ufs_phy_tx_symbol_0_clk",
395608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
395708c51cebSShazad Hussain &gcc_ufs_phy_tx_symbol_0_clk_src.clkr.hw,
395808c51cebSShazad Hussain },
395908c51cebSShazad Hussain .num_parents = 1,
396008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
396108c51cebSShazad Hussain .ops = &clk_branch2_ops,
396208c51cebSShazad Hussain },
396308c51cebSShazad Hussain },
396408c51cebSShazad Hussain };
396508c51cebSShazad Hussain
396608c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_unipro_core_clk = {
396708c51cebSShazad Hussain .halt_reg = 0x83064,
396808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
396908c51cebSShazad Hussain .hwcg_reg = 0x83064,
397008c51cebSShazad Hussain .hwcg_bit = 1,
397108c51cebSShazad Hussain .clkr = {
397208c51cebSShazad Hussain .enable_reg = 0x83064,
397308c51cebSShazad Hussain .enable_mask = BIT(0),
397408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
397508c51cebSShazad Hussain .name = "gcc_ufs_phy_unipro_core_clk",
397608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
397708c51cebSShazad Hussain &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
397808c51cebSShazad Hussain },
397908c51cebSShazad Hussain .num_parents = 1,
398008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
398108c51cebSShazad Hussain .ops = &clk_branch2_ops,
398208c51cebSShazad Hussain },
398308c51cebSShazad Hussain },
398408c51cebSShazad Hussain };
398508c51cebSShazad Hussain
398608c51cebSShazad Hussain static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = {
398708c51cebSShazad Hussain .halt_reg = 0x83064,
398808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
398908c51cebSShazad Hussain .hwcg_reg = 0x83064,
399008c51cebSShazad Hussain .hwcg_bit = 1,
399108c51cebSShazad Hussain .clkr = {
399208c51cebSShazad Hussain .enable_reg = 0x83064,
399308c51cebSShazad Hussain .enable_mask = BIT(1),
399408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
399508c51cebSShazad Hussain .name = "gcc_ufs_phy_unipro_core_hw_ctl_clk",
399608c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
399708c51cebSShazad Hussain &gcc_ufs_phy_unipro_core_clk_src.clkr.hw,
399808c51cebSShazad Hussain },
399908c51cebSShazad Hussain .num_parents = 1,
400008c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
400108c51cebSShazad Hussain .ops = &clk_branch2_ops,
400208c51cebSShazad Hussain },
400308c51cebSShazad Hussain },
400408c51cebSShazad Hussain };
400508c51cebSShazad Hussain
400608c51cebSShazad Hussain static struct clk_branch gcc_usb20_master_clk = {
400708c51cebSShazad Hussain .halt_reg = 0x1c018,
400808c51cebSShazad Hussain .halt_check = BRANCH_HALT,
400908c51cebSShazad Hussain .clkr = {
401008c51cebSShazad Hussain .enable_reg = 0x1c018,
401108c51cebSShazad Hussain .enable_mask = BIT(0),
401208c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
401308c51cebSShazad Hussain .name = "gcc_usb20_master_clk",
401408c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
401508c51cebSShazad Hussain &gcc_usb20_master_clk_src.clkr.hw,
401608c51cebSShazad Hussain },
401708c51cebSShazad Hussain .num_parents = 1,
401808c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
401908c51cebSShazad Hussain .ops = &clk_branch2_ops,
402008c51cebSShazad Hussain },
402108c51cebSShazad Hussain },
402208c51cebSShazad Hussain };
402308c51cebSShazad Hussain
402408c51cebSShazad Hussain static struct clk_branch gcc_usb20_mock_utmi_clk = {
402508c51cebSShazad Hussain .halt_reg = 0x1c024,
402608c51cebSShazad Hussain .halt_check = BRANCH_HALT,
402708c51cebSShazad Hussain .clkr = {
402808c51cebSShazad Hussain .enable_reg = 0x1c024,
402908c51cebSShazad Hussain .enable_mask = BIT(0),
403008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
403108c51cebSShazad Hussain .name = "gcc_usb20_mock_utmi_clk",
403208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
403308c51cebSShazad Hussain &gcc_usb20_mock_utmi_postdiv_clk_src.clkr.hw,
403408c51cebSShazad Hussain },
403508c51cebSShazad Hussain .num_parents = 1,
403608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
403708c51cebSShazad Hussain .ops = &clk_branch2_ops,
403808c51cebSShazad Hussain },
403908c51cebSShazad Hussain },
404008c51cebSShazad Hussain };
404108c51cebSShazad Hussain
404208c51cebSShazad Hussain static struct clk_branch gcc_usb20_sleep_clk = {
404308c51cebSShazad Hussain .halt_reg = 0x1c020,
404408c51cebSShazad Hussain .halt_check = BRANCH_HALT,
404508c51cebSShazad Hussain .clkr = {
404608c51cebSShazad Hussain .enable_reg = 0x1c020,
404708c51cebSShazad Hussain .enable_mask = BIT(0),
404808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
404908c51cebSShazad Hussain .name = "gcc_usb20_sleep_clk",
405008c51cebSShazad Hussain .ops = &clk_branch2_ops,
405108c51cebSShazad Hussain },
405208c51cebSShazad Hussain },
405308c51cebSShazad Hussain };
405408c51cebSShazad Hussain
405508c51cebSShazad Hussain static struct clk_branch gcc_usb30_prim_master_clk = {
405608c51cebSShazad Hussain .halt_reg = 0x1b018,
405708c51cebSShazad Hussain .halt_check = BRANCH_HALT,
405808c51cebSShazad Hussain .clkr = {
405908c51cebSShazad Hussain .enable_reg = 0x1b018,
406008c51cebSShazad Hussain .enable_mask = BIT(0),
406108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
406208c51cebSShazad Hussain .name = "gcc_usb30_prim_master_clk",
406308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
406408c51cebSShazad Hussain &gcc_usb30_prim_master_clk_src.clkr.hw,
406508c51cebSShazad Hussain },
406608c51cebSShazad Hussain .num_parents = 1,
406708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
406808c51cebSShazad Hussain .ops = &clk_branch2_ops,
406908c51cebSShazad Hussain },
407008c51cebSShazad Hussain },
407108c51cebSShazad Hussain };
407208c51cebSShazad Hussain
407308c51cebSShazad Hussain static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
407408c51cebSShazad Hussain .halt_reg = 0x1b024,
407508c51cebSShazad Hussain .halt_check = BRANCH_HALT,
407608c51cebSShazad Hussain .clkr = {
407708c51cebSShazad Hussain .enable_reg = 0x1b024,
407808c51cebSShazad Hussain .enable_mask = BIT(0),
407908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
408008c51cebSShazad Hussain .name = "gcc_usb30_prim_mock_utmi_clk",
408108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
408208c51cebSShazad Hussain &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
408308c51cebSShazad Hussain },
408408c51cebSShazad Hussain .num_parents = 1,
408508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
408608c51cebSShazad Hussain .ops = &clk_branch2_ops,
408708c51cebSShazad Hussain },
408808c51cebSShazad Hussain },
408908c51cebSShazad Hussain };
409008c51cebSShazad Hussain
409108c51cebSShazad Hussain static struct clk_branch gcc_usb30_prim_sleep_clk = {
409208c51cebSShazad Hussain .halt_reg = 0x1b020,
409308c51cebSShazad Hussain .halt_check = BRANCH_HALT,
409408c51cebSShazad Hussain .clkr = {
409508c51cebSShazad Hussain .enable_reg = 0x1b020,
409608c51cebSShazad Hussain .enable_mask = BIT(0),
409708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
409808c51cebSShazad Hussain .name = "gcc_usb30_prim_sleep_clk",
409908c51cebSShazad Hussain .ops = &clk_branch2_ops,
410008c51cebSShazad Hussain },
410108c51cebSShazad Hussain },
410208c51cebSShazad Hussain };
410308c51cebSShazad Hussain
410408c51cebSShazad Hussain static struct clk_branch gcc_usb30_sec_master_clk = {
410508c51cebSShazad Hussain .halt_reg = 0x2f018,
410608c51cebSShazad Hussain .halt_check = BRANCH_HALT,
410708c51cebSShazad Hussain .clkr = {
410808c51cebSShazad Hussain .enable_reg = 0x2f018,
410908c51cebSShazad Hussain .enable_mask = BIT(0),
411008c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
411108c51cebSShazad Hussain .name = "gcc_usb30_sec_master_clk",
411208c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
411308c51cebSShazad Hussain &gcc_usb30_sec_master_clk_src.clkr.hw,
411408c51cebSShazad Hussain },
411508c51cebSShazad Hussain .num_parents = 1,
411608c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
411708c51cebSShazad Hussain .ops = &clk_branch2_ops,
411808c51cebSShazad Hussain },
411908c51cebSShazad Hussain },
412008c51cebSShazad Hussain };
412108c51cebSShazad Hussain
412208c51cebSShazad Hussain static struct clk_branch gcc_usb30_sec_mock_utmi_clk = {
412308c51cebSShazad Hussain .halt_reg = 0x2f024,
412408c51cebSShazad Hussain .halt_check = BRANCH_HALT,
412508c51cebSShazad Hussain .clkr = {
412608c51cebSShazad Hussain .enable_reg = 0x2f024,
412708c51cebSShazad Hussain .enable_mask = BIT(0),
412808c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
412908c51cebSShazad Hussain .name = "gcc_usb30_sec_mock_utmi_clk",
413008c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
413108c51cebSShazad Hussain &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr.hw,
413208c51cebSShazad Hussain },
413308c51cebSShazad Hussain .num_parents = 1,
413408c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
413508c51cebSShazad Hussain .ops = &clk_branch2_ops,
413608c51cebSShazad Hussain },
413708c51cebSShazad Hussain },
413808c51cebSShazad Hussain };
413908c51cebSShazad Hussain
414008c51cebSShazad Hussain static struct clk_branch gcc_usb30_sec_sleep_clk = {
414108c51cebSShazad Hussain .halt_reg = 0x2f020,
414208c51cebSShazad Hussain .halt_check = BRANCH_HALT,
414308c51cebSShazad Hussain .clkr = {
414408c51cebSShazad Hussain .enable_reg = 0x2f020,
414508c51cebSShazad Hussain .enable_mask = BIT(0),
414608c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
414708c51cebSShazad Hussain .name = "gcc_usb30_sec_sleep_clk",
414808c51cebSShazad Hussain .ops = &clk_branch2_ops,
414908c51cebSShazad Hussain },
415008c51cebSShazad Hussain },
415108c51cebSShazad Hussain };
415208c51cebSShazad Hussain
415308c51cebSShazad Hussain static struct clk_branch gcc_usb3_prim_phy_aux_clk = {
415408c51cebSShazad Hussain .halt_reg = 0x1b05c,
415508c51cebSShazad Hussain .halt_check = BRANCH_HALT,
415608c51cebSShazad Hussain .clkr = {
415708c51cebSShazad Hussain .enable_reg = 0x1b05c,
415808c51cebSShazad Hussain .enable_mask = BIT(0),
415908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
416008c51cebSShazad Hussain .name = "gcc_usb3_prim_phy_aux_clk",
416108c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
416208c51cebSShazad Hussain &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
416308c51cebSShazad Hussain },
416408c51cebSShazad Hussain .num_parents = 1,
416508c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
416608c51cebSShazad Hussain .ops = &clk_branch2_ops,
416708c51cebSShazad Hussain },
416808c51cebSShazad Hussain },
416908c51cebSShazad Hussain };
417008c51cebSShazad Hussain
417108c51cebSShazad Hussain static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
417208c51cebSShazad Hussain .halt_reg = 0x1b060,
417308c51cebSShazad Hussain .halt_check = BRANCH_HALT,
417408c51cebSShazad Hussain .clkr = {
417508c51cebSShazad Hussain .enable_reg = 0x1b060,
417608c51cebSShazad Hussain .enable_mask = BIT(0),
417708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
417808c51cebSShazad Hussain .name = "gcc_usb3_prim_phy_com_aux_clk",
417908c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
418008c51cebSShazad Hussain &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
418108c51cebSShazad Hussain },
418208c51cebSShazad Hussain .num_parents = 1,
418308c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
418408c51cebSShazad Hussain .ops = &clk_branch2_ops,
418508c51cebSShazad Hussain },
418608c51cebSShazad Hussain },
418708c51cebSShazad Hussain };
418808c51cebSShazad Hussain
418908c51cebSShazad Hussain static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
419008c51cebSShazad Hussain .halt_reg = 0x1b064,
419108c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
419208c51cebSShazad Hussain .hwcg_reg = 0x1b064,
419308c51cebSShazad Hussain .hwcg_bit = 1,
419408c51cebSShazad Hussain .clkr = {
419508c51cebSShazad Hussain .enable_reg = 0x1b064,
419608c51cebSShazad Hussain .enable_mask = BIT(0),
419708c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
419808c51cebSShazad Hussain .name = "gcc_usb3_prim_phy_pipe_clk",
419908c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
420008c51cebSShazad Hussain &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
420108c51cebSShazad Hussain },
420208c51cebSShazad Hussain .num_parents = 1,
420308c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
420408c51cebSShazad Hussain .ops = &clk_branch2_ops,
420508c51cebSShazad Hussain },
420608c51cebSShazad Hussain },
420708c51cebSShazad Hussain };
420808c51cebSShazad Hussain
420908c51cebSShazad Hussain static struct clk_branch gcc_usb3_sec_phy_aux_clk = {
421008c51cebSShazad Hussain .halt_reg = 0x2f05c,
421108c51cebSShazad Hussain .halt_check = BRANCH_HALT,
421208c51cebSShazad Hussain .clkr = {
421308c51cebSShazad Hussain .enable_reg = 0x2f05c,
421408c51cebSShazad Hussain .enable_mask = BIT(0),
421508c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
421608c51cebSShazad Hussain .name = "gcc_usb3_sec_phy_aux_clk",
421708c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
421808c51cebSShazad Hussain &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
421908c51cebSShazad Hussain },
422008c51cebSShazad Hussain .num_parents = 1,
422108c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
422208c51cebSShazad Hussain .ops = &clk_branch2_ops,
422308c51cebSShazad Hussain },
422408c51cebSShazad Hussain },
422508c51cebSShazad Hussain };
422608c51cebSShazad Hussain
422708c51cebSShazad Hussain static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
422808c51cebSShazad Hussain .halt_reg = 0x2f060,
422908c51cebSShazad Hussain .halt_check = BRANCH_HALT,
423008c51cebSShazad Hussain .clkr = {
423108c51cebSShazad Hussain .enable_reg = 0x2f060,
423208c51cebSShazad Hussain .enable_mask = BIT(0),
423308c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
423408c51cebSShazad Hussain .name = "gcc_usb3_sec_phy_com_aux_clk",
423508c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
423608c51cebSShazad Hussain &gcc_usb3_sec_phy_aux_clk_src.clkr.hw,
423708c51cebSShazad Hussain },
423808c51cebSShazad Hussain .num_parents = 1,
423908c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
424008c51cebSShazad Hussain .ops = &clk_branch2_ops,
424108c51cebSShazad Hussain },
424208c51cebSShazad Hussain },
424308c51cebSShazad Hussain };
424408c51cebSShazad Hussain
424508c51cebSShazad Hussain static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
424608c51cebSShazad Hussain .halt_reg = 0x2f064,
424708c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
424808c51cebSShazad Hussain .clkr = {
424908c51cebSShazad Hussain .enable_reg = 0x2f064,
425008c51cebSShazad Hussain .enable_mask = BIT(0),
425108c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
425208c51cebSShazad Hussain .name = "gcc_usb3_sec_phy_pipe_clk",
425308c51cebSShazad Hussain .parent_hws = (const struct clk_hw*[]){
425408c51cebSShazad Hussain &gcc_usb3_sec_phy_pipe_clk_src.clkr.hw,
425508c51cebSShazad Hussain },
425608c51cebSShazad Hussain .num_parents = 1,
425708c51cebSShazad Hussain .flags = CLK_SET_RATE_PARENT,
425808c51cebSShazad Hussain .ops = &clk_branch2_ops,
425908c51cebSShazad Hussain },
426008c51cebSShazad Hussain },
426108c51cebSShazad Hussain };
426208c51cebSShazad Hussain
426308c51cebSShazad Hussain static struct clk_branch gcc_usb_clkref_en = {
426408c51cebSShazad Hussain .halt_reg = 0x97468,
426508c51cebSShazad Hussain .halt_check = BRANCH_HALT_DELAY,
426608c51cebSShazad Hussain .clkr = {
426708c51cebSShazad Hussain .enable_reg = 0x97468,
426808c51cebSShazad Hussain .enable_mask = BIT(0),
426908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
427008c51cebSShazad Hussain .name = "gcc_usb_clkref_en",
427108c51cebSShazad Hussain .ops = &clk_branch2_ops,
427208c51cebSShazad Hussain },
427308c51cebSShazad Hussain },
427408c51cebSShazad Hussain };
427508c51cebSShazad Hussain
427608c51cebSShazad Hussain static struct clk_branch gcc_video_axi0_clk = {
427708c51cebSShazad Hussain .halt_reg = 0x34014,
427808c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
427908c51cebSShazad Hussain .hwcg_reg = 0x34014,
428008c51cebSShazad Hussain .hwcg_bit = 1,
428108c51cebSShazad Hussain .clkr = {
428208c51cebSShazad Hussain .enable_reg = 0x34014,
428308c51cebSShazad Hussain .enable_mask = BIT(0),
428408c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
428508c51cebSShazad Hussain .name = "gcc_video_axi0_clk",
428608c51cebSShazad Hussain .ops = &clk_branch2_ops,
428708c51cebSShazad Hussain },
428808c51cebSShazad Hussain },
428908c51cebSShazad Hussain };
429008c51cebSShazad Hussain
429108c51cebSShazad Hussain static struct clk_branch gcc_video_axi1_clk = {
429208c51cebSShazad Hussain .halt_reg = 0x3401c,
429308c51cebSShazad Hussain .halt_check = BRANCH_HALT_VOTED,
429408c51cebSShazad Hussain .hwcg_reg = 0x3401c,
429508c51cebSShazad Hussain .hwcg_bit = 1,
429608c51cebSShazad Hussain .clkr = {
429708c51cebSShazad Hussain .enable_reg = 0x3401c,
429808c51cebSShazad Hussain .enable_mask = BIT(0),
429908c51cebSShazad Hussain .hw.init = &(const struct clk_init_data){
430008c51cebSShazad Hussain .name = "gcc_video_axi1_clk",
430108c51cebSShazad Hussain .ops = &clk_branch2_ops,
430208c51cebSShazad Hussain },
430308c51cebSShazad Hussain },
430408c51cebSShazad Hussain };
430508c51cebSShazad Hussain
430608c51cebSShazad Hussain static struct gdsc pcie_0_gdsc = {
430708c51cebSShazad Hussain .gdscr = 0xa9004,
4308*e37d8e79STaniya Das .collapse_ctrl = 0x4b104,
4309*e37d8e79STaniya Das .collapse_mask = BIT(0),
4310*e37d8e79STaniya Das .en_rest_wait_val = 0x2,
4311*e37d8e79STaniya Das .en_few_wait_val = 0x2,
4312*e37d8e79STaniya Das .clk_dis_wait_val = 0xf,
431308c51cebSShazad Hussain .pd = {
431408c51cebSShazad Hussain .name = "pcie_0_gdsc",
431508c51cebSShazad Hussain },
431608c51cebSShazad Hussain .pwrsts = PWRSTS_OFF_ON,
4317*e37d8e79STaniya Das .flags = VOTABLE | RETAIN_FF_ENABLE | POLL_CFG_GDSCR,
431808c51cebSShazad Hussain };
431908c51cebSShazad Hussain
432008c51cebSShazad Hussain static struct gdsc pcie_1_gdsc = {
432108c51cebSShazad Hussain .gdscr = 0x77004,
4322*e37d8e79STaniya Das .collapse_ctrl = 0x4b104,
4323*e37d8e79STaniya Das .collapse_mask = BIT(1),
4324*e37d8e79STaniya Das .en_rest_wait_val = 0x2,
4325*e37d8e79STaniya Das .en_few_wait_val = 0x2,
4326*e37d8e79STaniya Das .clk_dis_wait_val = 0xf,
432708c51cebSShazad Hussain .pd = {
432808c51cebSShazad Hussain .name = "pcie_1_gdsc",
432908c51cebSShazad Hussain },
433008c51cebSShazad Hussain .pwrsts = PWRSTS_OFF_ON,
4331*e37d8e79STaniya Das .flags = VOTABLE | RETAIN_FF_ENABLE | POLL_CFG_GDSCR,
433208c51cebSShazad Hussain };
433308c51cebSShazad Hussain
433408c51cebSShazad Hussain static struct gdsc ufs_card_gdsc = {
433508c51cebSShazad Hussain .gdscr = 0x81004,
4336*e37d8e79STaniya Das .en_rest_wait_val = 0x2,
4337*e37d8e79STaniya Das .en_few_wait_val = 0x2,
4338*e37d8e79STaniya Das .clk_dis_wait_val = 0xf,
433908c51cebSShazad Hussain .pd = {
434008c51cebSShazad Hussain .name = "ufs_card_gdsc",
434108c51cebSShazad Hussain },
434208c51cebSShazad Hussain .pwrsts = PWRSTS_OFF_ON,
4343*e37d8e79STaniya Das .flags = RETAIN_FF_ENABLE | POLL_CFG_GDSCR,
434408c51cebSShazad Hussain };
434508c51cebSShazad Hussain
434608c51cebSShazad Hussain static struct gdsc ufs_phy_gdsc = {
434708c51cebSShazad Hussain .gdscr = 0x83004,
4348*e37d8e79STaniya Das .en_rest_wait_val = 0x2,
4349*e37d8e79STaniya Das .en_few_wait_val = 0x2,
4350*e37d8e79STaniya Das .clk_dis_wait_val = 0xf,
435108c51cebSShazad Hussain .pd = {
435208c51cebSShazad Hussain .name = "ufs_phy_gdsc",
435308c51cebSShazad Hussain },
435408c51cebSShazad Hussain .pwrsts = PWRSTS_OFF_ON,
4355*e37d8e79STaniya Das .flags = RETAIN_FF_ENABLE | POLL_CFG_GDSCR,
435608c51cebSShazad Hussain };
435708c51cebSShazad Hussain
435808c51cebSShazad Hussain static struct gdsc usb20_prim_gdsc = {
435908c51cebSShazad Hussain .gdscr = 0x1c004,
4360*e37d8e79STaniya Das .en_rest_wait_val = 0x2,
4361*e37d8e79STaniya Das .en_few_wait_val = 0x2,
4362*e37d8e79STaniya Das .clk_dis_wait_val = 0xf,
436308c51cebSShazad Hussain .pd = {
436408c51cebSShazad Hussain .name = "usb20_prim_gdsc",
436508c51cebSShazad Hussain },
436608c51cebSShazad Hussain .pwrsts = PWRSTS_OFF_ON,
4367*e37d8e79STaniya Das .flags = RETAIN_FF_ENABLE | POLL_CFG_GDSCR,
436808c51cebSShazad Hussain };
436908c51cebSShazad Hussain
437008c51cebSShazad Hussain static struct gdsc usb30_prim_gdsc = {
437108c51cebSShazad Hussain .gdscr = 0x1b004,
4372*e37d8e79STaniya Das .en_rest_wait_val = 0x2,
4373*e37d8e79STaniya Das .en_few_wait_val = 0x2,
4374*e37d8e79STaniya Das .clk_dis_wait_val = 0xf,
437508c51cebSShazad Hussain .pd = {
437608c51cebSShazad Hussain .name = "usb30_prim_gdsc",
437708c51cebSShazad Hussain },
437808c51cebSShazad Hussain .pwrsts = PWRSTS_OFF_ON,
4379*e37d8e79STaniya Das .flags = RETAIN_FF_ENABLE | POLL_CFG_GDSCR,
438008c51cebSShazad Hussain };
438108c51cebSShazad Hussain
438208c51cebSShazad Hussain static struct gdsc usb30_sec_gdsc = {
438308c51cebSShazad Hussain .gdscr = 0x2f004,
4384*e37d8e79STaniya Das .en_rest_wait_val = 0x2,
4385*e37d8e79STaniya Das .en_few_wait_val = 0x2,
4386*e37d8e79STaniya Das .clk_dis_wait_val = 0xf,
438708c51cebSShazad Hussain .pd = {
438808c51cebSShazad Hussain .name = "usb30_sec_gdsc",
438908c51cebSShazad Hussain },
439008c51cebSShazad Hussain .pwrsts = PWRSTS_OFF_ON,
4391*e37d8e79STaniya Das .flags = RETAIN_FF_ENABLE | POLL_CFG_GDSCR,
439208c51cebSShazad Hussain };
439308c51cebSShazad Hussain
439408c51cebSShazad Hussain static struct gdsc emac0_gdsc = {
439508c51cebSShazad Hussain .gdscr = 0xb6004,
4396*e37d8e79STaniya Das .en_rest_wait_val = 0x2,
4397*e37d8e79STaniya Das .en_few_wait_val = 0x2,
4398*e37d8e79STaniya Das .clk_dis_wait_val = 0xf,
439908c51cebSShazad Hussain .pd = {
440008c51cebSShazad Hussain .name = "emac0_gdsc",
440108c51cebSShazad Hussain },
440208c51cebSShazad Hussain .pwrsts = PWRSTS_OFF_ON,
4403*e37d8e79STaniya Das .flags = RETAIN_FF_ENABLE | POLL_CFG_GDSCR,
440408c51cebSShazad Hussain };
440508c51cebSShazad Hussain
440608c51cebSShazad Hussain static struct gdsc emac1_gdsc = {
440708c51cebSShazad Hussain .gdscr = 0xb4004,
4408*e37d8e79STaniya Das .en_rest_wait_val = 0x2,
4409*e37d8e79STaniya Das .en_few_wait_val = 0x2,
4410*e37d8e79STaniya Das .clk_dis_wait_val = 0xf,
441108c51cebSShazad Hussain .pd = {
441208c51cebSShazad Hussain .name = "emac1_gdsc",
441308c51cebSShazad Hussain },
441408c51cebSShazad Hussain .pwrsts = PWRSTS_OFF_ON,
4415*e37d8e79STaniya Das .flags = RETAIN_FF_ENABLE | POLL_CFG_GDSCR,
441608c51cebSShazad Hussain };
441708c51cebSShazad Hussain
441808c51cebSShazad Hussain static struct clk_regmap *gcc_sa8775p_clocks[] = {
441908c51cebSShazad Hussain [GCC_AGGRE_NOC_QUPV3_AXI_CLK] = &gcc_aggre_noc_qupv3_axi_clk.clkr,
442008c51cebSShazad Hussain [GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr,
442108c51cebSShazad Hussain [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr,
442208c51cebSShazad Hussain [GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_phy_axi_hw_ctl_clk.clkr,
442308c51cebSShazad Hussain [GCC_AGGRE_USB2_PRIM_AXI_CLK] = &gcc_aggre_usb2_prim_axi_clk.clkr,
442408c51cebSShazad Hussain [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
442508c51cebSShazad Hussain [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr,
442608c51cebSShazad Hussain [GCC_AHB2PHY0_CLK] = &gcc_ahb2phy0_clk.clkr,
442708c51cebSShazad Hussain [GCC_AHB2PHY2_CLK] = &gcc_ahb2phy2_clk.clkr,
442808c51cebSShazad Hussain [GCC_AHB2PHY3_CLK] = &gcc_ahb2phy3_clk.clkr,
442908c51cebSShazad Hussain [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
443008c51cebSShazad Hussain [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr,
443108c51cebSShazad Hussain [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr,
443208c51cebSShazad Hussain [GCC_CAMERA_THROTTLE_XO_CLK] = &gcc_camera_throttle_xo_clk.clkr,
443308c51cebSShazad Hussain [GCC_CFG_NOC_USB2_PRIM_AXI_CLK] = &gcc_cfg_noc_usb2_prim_axi_clk.clkr,
443408c51cebSShazad Hussain [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
443508c51cebSShazad Hussain [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr,
443608c51cebSShazad Hussain [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
443708c51cebSShazad Hussain [GCC_DISP1_HF_AXI_CLK] = &gcc_disp1_hf_axi_clk.clkr,
443808c51cebSShazad Hussain [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
443908c51cebSShazad Hussain [GCC_EDP_REF_CLKREF_EN] = &gcc_edp_ref_clkref_en.clkr,
444008c51cebSShazad Hussain [GCC_EMAC0_AXI_CLK] = &gcc_emac0_axi_clk.clkr,
444108c51cebSShazad Hussain [GCC_EMAC0_PHY_AUX_CLK] = &gcc_emac0_phy_aux_clk.clkr,
444208c51cebSShazad Hussain [GCC_EMAC0_PHY_AUX_CLK_SRC] = &gcc_emac0_phy_aux_clk_src.clkr,
444308c51cebSShazad Hussain [GCC_EMAC0_PTP_CLK] = &gcc_emac0_ptp_clk.clkr,
444408c51cebSShazad Hussain [GCC_EMAC0_PTP_CLK_SRC] = &gcc_emac0_ptp_clk_src.clkr,
444508c51cebSShazad Hussain [GCC_EMAC0_RGMII_CLK] = &gcc_emac0_rgmii_clk.clkr,
444608c51cebSShazad Hussain [GCC_EMAC0_RGMII_CLK_SRC] = &gcc_emac0_rgmii_clk_src.clkr,
444708c51cebSShazad Hussain [GCC_EMAC0_SLV_AHB_CLK] = &gcc_emac0_slv_ahb_clk.clkr,
444808c51cebSShazad Hussain [GCC_EMAC1_AXI_CLK] = &gcc_emac1_axi_clk.clkr,
444908c51cebSShazad Hussain [GCC_EMAC1_PHY_AUX_CLK] = &gcc_emac1_phy_aux_clk.clkr,
445008c51cebSShazad Hussain [GCC_EMAC1_PHY_AUX_CLK_SRC] = &gcc_emac1_phy_aux_clk_src.clkr,
445108c51cebSShazad Hussain [GCC_EMAC1_PTP_CLK] = &gcc_emac1_ptp_clk.clkr,
445208c51cebSShazad Hussain [GCC_EMAC1_PTP_CLK_SRC] = &gcc_emac1_ptp_clk_src.clkr,
445308c51cebSShazad Hussain [GCC_EMAC1_RGMII_CLK] = &gcc_emac1_rgmii_clk.clkr,
445408c51cebSShazad Hussain [GCC_EMAC1_RGMII_CLK_SRC] = &gcc_emac1_rgmii_clk_src.clkr,
445508c51cebSShazad Hussain [GCC_EMAC1_SLV_AHB_CLK] = &gcc_emac1_slv_ahb_clk.clkr,
445608c51cebSShazad Hussain [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
445708c51cebSShazad Hussain [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
445808c51cebSShazad Hussain [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
445908c51cebSShazad Hussain [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
446008c51cebSShazad Hussain [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
446108c51cebSShazad Hussain [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
446208c51cebSShazad Hussain [GCC_GP4_CLK] = &gcc_gp4_clk.clkr,
446308c51cebSShazad Hussain [GCC_GP4_CLK_SRC] = &gcc_gp4_clk_src.clkr,
446408c51cebSShazad Hussain [GCC_GP5_CLK] = &gcc_gp5_clk.clkr,
446508c51cebSShazad Hussain [GCC_GP5_CLK_SRC] = &gcc_gp5_clk_src.clkr,
446608c51cebSShazad Hussain [GCC_GPLL0] = &gcc_gpll0.clkr,
446708c51cebSShazad Hussain [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
446808c51cebSShazad Hussain [GCC_GPLL1] = &gcc_gpll1.clkr,
446908c51cebSShazad Hussain [GCC_GPLL4] = &gcc_gpll4.clkr,
447008c51cebSShazad Hussain [GCC_GPLL5] = &gcc_gpll5.clkr,
447108c51cebSShazad Hussain [GCC_GPLL7] = &gcc_gpll7.clkr,
447208c51cebSShazad Hussain [GCC_GPLL9] = &gcc_gpll9.clkr,
447308c51cebSShazad Hussain [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
447408c51cebSShazad Hussain [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
447508c51cebSShazad Hussain [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
447608c51cebSShazad Hussain [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
447708c51cebSShazad Hussain [GCC_GPU_TCU_THROTTLE_AHB_CLK] = &gcc_gpu_tcu_throttle_ahb_clk.clkr,
447808c51cebSShazad Hussain [GCC_GPU_TCU_THROTTLE_CLK] = &gcc_gpu_tcu_throttle_clk.clkr,
447908c51cebSShazad Hussain [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
448008c51cebSShazad Hussain [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
448108c51cebSShazad Hussain [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
448208c51cebSShazad Hussain [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
448308c51cebSShazad Hussain [GCC_PCIE_0_PHY_AUX_CLK] = &gcc_pcie_0_phy_aux_clk.clkr,
448408c51cebSShazad Hussain [GCC_PCIE_0_PHY_AUX_CLK_SRC] = &gcc_pcie_0_phy_aux_clk_src.clkr,
448508c51cebSShazad Hussain [GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr,
448608c51cebSShazad Hussain [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
448708c51cebSShazad Hussain [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
448808c51cebSShazad Hussain [GCC_PCIE_0_PIPE_CLK_SRC] = &gcc_pcie_0_pipe_clk_src.clkr,
448908c51cebSShazad Hussain [GCC_PCIE_0_PIPE_DIV_CLK_SRC] = &gcc_pcie_0_pipe_div_clk_src.clkr,
449008c51cebSShazad Hussain [GCC_PCIE_0_PIPEDIV2_CLK] = &gcc_pcie_0_pipediv2_clk.clkr,
449108c51cebSShazad Hussain [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
449208c51cebSShazad Hussain [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
449308c51cebSShazad Hussain [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
449408c51cebSShazad Hussain [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
449508c51cebSShazad Hussain [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
449608c51cebSShazad Hussain [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
449708c51cebSShazad Hussain [GCC_PCIE_1_PHY_AUX_CLK] = &gcc_pcie_1_phy_aux_clk.clkr,
449808c51cebSShazad Hussain [GCC_PCIE_1_PHY_AUX_CLK_SRC] = &gcc_pcie_1_phy_aux_clk_src.clkr,
449908c51cebSShazad Hussain [GCC_PCIE_1_PHY_RCHNG_CLK] = &gcc_pcie_1_phy_rchng_clk.clkr,
450008c51cebSShazad Hussain [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
450108c51cebSShazad Hussain [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
450208c51cebSShazad Hussain [GCC_PCIE_1_PIPE_CLK_SRC] = &gcc_pcie_1_pipe_clk_src.clkr,
450308c51cebSShazad Hussain [GCC_PCIE_1_PIPE_DIV_CLK_SRC] = &gcc_pcie_1_pipe_div_clk_src.clkr,
450408c51cebSShazad Hussain [GCC_PCIE_1_PIPEDIV2_CLK] = &gcc_pcie_1_pipediv2_clk.clkr,
450508c51cebSShazad Hussain [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
450608c51cebSShazad Hussain [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
450708c51cebSShazad Hussain [GCC_PCIE_CLKREF_EN] = &gcc_pcie_clkref_en.clkr,
450808c51cebSShazad Hussain [GCC_PCIE_THROTTLE_CFG_CLK] = &gcc_pcie_throttle_cfg_clk.clkr,
450908c51cebSShazad Hussain [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
451008c51cebSShazad Hussain [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
451108c51cebSShazad Hussain [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
451208c51cebSShazad Hussain [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
451308c51cebSShazad Hussain [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
451408c51cebSShazad Hussain [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
451508c51cebSShazad Hussain [GCC_QMIP_DISP1_AHB_CLK] = &gcc_qmip_disp1_ahb_clk.clkr,
451608c51cebSShazad Hussain [GCC_QMIP_DISP1_ROT_AHB_CLK] = &gcc_qmip_disp1_rot_ahb_clk.clkr,
451708c51cebSShazad Hussain [GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
451808c51cebSShazad Hussain [GCC_QMIP_DISP_ROT_AHB_CLK] = &gcc_qmip_disp_rot_ahb_clk.clkr,
451908c51cebSShazad Hussain [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
452008c51cebSShazad Hussain [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
452108c51cebSShazad Hussain [GCC_QMIP_VIDEO_VCPU_AHB_CLK] = &gcc_qmip_video_vcpu_ahb_clk.clkr,
452208c51cebSShazad Hussain [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
452308c51cebSShazad Hussain [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
452408c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
452508c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
452608c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
452708c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
452808c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
452908c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
453008c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
453108c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
453208c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
453308c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
453408c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
453508c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
453608c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
453708c51cebSShazad Hussain [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
453808c51cebSShazad Hussain [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
453908c51cebSShazad Hussain [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
454008c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
454108c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
454208c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
454308c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
454408c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
454508c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
454608c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
454708c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
454808c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
454908c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
455008c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
455108c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
455208c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S6_CLK] = &gcc_qupv3_wrap1_s6_clk.clkr,
455308c51cebSShazad Hussain [GCC_QUPV3_WRAP1_S6_CLK_SRC] = &gcc_qupv3_wrap1_s6_clk_src.clkr,
455408c51cebSShazad Hussain [GCC_QUPV3_WRAP2_CORE_2X_CLK] = &gcc_qupv3_wrap2_core_2x_clk.clkr,
455508c51cebSShazad Hussain [GCC_QUPV3_WRAP2_CORE_CLK] = &gcc_qupv3_wrap2_core_clk.clkr,
455608c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr,
455708c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr,
455808c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr,
455908c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr,
456008c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr,
456108c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr,
456208c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr,
456308c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr,
456408c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr,
456508c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr,
456608c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr,
456708c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr,
456808c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S6_CLK] = &gcc_qupv3_wrap2_s6_clk.clkr,
456908c51cebSShazad Hussain [GCC_QUPV3_WRAP2_S6_CLK_SRC] = &gcc_qupv3_wrap2_s6_clk_src.clkr,
457008c51cebSShazad Hussain [GCC_QUPV3_WRAP3_CORE_2X_CLK] = &gcc_qupv3_wrap3_core_2x_clk.clkr,
457108c51cebSShazad Hussain [GCC_QUPV3_WRAP3_CORE_CLK] = &gcc_qupv3_wrap3_core_clk.clkr,
457208c51cebSShazad Hussain [GCC_QUPV3_WRAP3_QSPI_CLK] = &gcc_qupv3_wrap3_qspi_clk.clkr,
457308c51cebSShazad Hussain [GCC_QUPV3_WRAP3_S0_CLK] = &gcc_qupv3_wrap3_s0_clk.clkr,
457408c51cebSShazad Hussain [GCC_QUPV3_WRAP3_S0_CLK_SRC] = &gcc_qupv3_wrap3_s0_clk_src.clkr,
457508c51cebSShazad Hussain [GCC_QUPV3_WRAP3_S0_DIV_CLK_SRC] = &gcc_qupv3_wrap3_s0_div_clk_src.clkr,
457608c51cebSShazad Hussain [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
457708c51cebSShazad Hussain [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
457808c51cebSShazad Hussain [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
457908c51cebSShazad Hussain [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
458008c51cebSShazad Hussain [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr,
458108c51cebSShazad Hussain [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr,
458208c51cebSShazad Hussain [GCC_QUPV3_WRAP_3_M_AHB_CLK] = &gcc_qupv3_wrap_3_m_ahb_clk.clkr,
458308c51cebSShazad Hussain [GCC_QUPV3_WRAP_3_S_AHB_CLK] = &gcc_qupv3_wrap_3_s_ahb_clk.clkr,
458408c51cebSShazad Hussain [GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
458508c51cebSShazad Hussain [GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
458608c51cebSShazad Hussain [GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
458708c51cebSShazad Hussain [GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
458808c51cebSShazad Hussain [GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
458908c51cebSShazad Hussain [GCC_SGMI_CLKREF_EN] = &gcc_sgmi_clkref_en.clkr,
459008c51cebSShazad Hussain [GCC_TSCSS_AHB_CLK] = &gcc_tscss_ahb_clk.clkr,
459108c51cebSShazad Hussain [GCC_TSCSS_CNTR_CLK_SRC] = &gcc_tscss_cntr_clk_src.clkr,
459208c51cebSShazad Hussain [GCC_TSCSS_ETU_CLK] = &gcc_tscss_etu_clk.clkr,
459308c51cebSShazad Hussain [GCC_TSCSS_GLOBAL_CNTR_CLK] = &gcc_tscss_global_cntr_clk.clkr,
459408c51cebSShazad Hussain [GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr,
459508c51cebSShazad Hussain [GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr,
459608c51cebSShazad Hussain [GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr,
459708c51cebSShazad Hussain [GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr,
459808c51cebSShazad Hussain [GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr,
459908c51cebSShazad Hussain [GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr,
460008c51cebSShazad Hussain [GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr,
460108c51cebSShazad Hussain [GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr,
460208c51cebSShazad Hussain [GCC_UFS_CARD_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_rx_symbol_0_clk_src.clkr,
460308c51cebSShazad Hussain [GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr,
460408c51cebSShazad Hussain [GCC_UFS_CARD_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_card_rx_symbol_1_clk_src.clkr,
460508c51cebSShazad Hussain [GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr,
460608c51cebSShazad Hussain [GCC_UFS_CARD_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_card_tx_symbol_0_clk_src.clkr,
460708c51cebSShazad Hussain [GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr,
460808c51cebSShazad Hussain [GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_card_unipro_core_clk_src.clkr,
460908c51cebSShazad Hussain [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr,
461008c51cebSShazad Hussain [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr,
461108c51cebSShazad Hussain [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr,
461208c51cebSShazad Hussain [GCC_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_ufs_phy_axi_hw_ctl_clk.clkr,
461308c51cebSShazad Hussain [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr,
461408c51cebSShazad Hussain [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr,
461508c51cebSShazad Hussain [GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_phy_ice_core_hw_ctl_clk.clkr,
461608c51cebSShazad Hussain [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr,
461708c51cebSShazad Hussain [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr,
461808c51cebSShazad Hussain [GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr,
461908c51cebSShazad Hussain [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr,
462008c51cebSShazad Hussain [GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_rx_symbol_0_clk_src.clkr,
462108c51cebSShazad Hussain [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr,
462208c51cebSShazad Hussain [GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC] = &gcc_ufs_phy_rx_symbol_1_clk_src.clkr,
462308c51cebSShazad Hussain [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr,
462408c51cebSShazad Hussain [GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC] = &gcc_ufs_phy_tx_symbol_0_clk_src.clkr,
462508c51cebSShazad Hussain [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr,
462608c51cebSShazad Hussain [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr,
462708c51cebSShazad Hussain [GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_phy_unipro_core_hw_ctl_clk.clkr,
462808c51cebSShazad Hussain [GCC_USB20_MASTER_CLK] = &gcc_usb20_master_clk.clkr,
462908c51cebSShazad Hussain [GCC_USB20_MASTER_CLK_SRC] = &gcc_usb20_master_clk_src.clkr,
463008c51cebSShazad Hussain [GCC_USB20_MOCK_UTMI_CLK] = &gcc_usb20_mock_utmi_clk.clkr,
463108c51cebSShazad Hussain [GCC_USB20_MOCK_UTMI_CLK_SRC] = &gcc_usb20_mock_utmi_clk_src.clkr,
463208c51cebSShazad Hussain [GCC_USB20_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb20_mock_utmi_postdiv_clk_src.clkr,
463308c51cebSShazad Hussain [GCC_USB20_SLEEP_CLK] = &gcc_usb20_sleep_clk.clkr,
463408c51cebSShazad Hussain [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
463508c51cebSShazad Hussain [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
463608c51cebSShazad Hussain [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
463708c51cebSShazad Hussain [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
463808c51cebSShazad Hussain [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
463908c51cebSShazad Hussain [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
464008c51cebSShazad Hussain [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr,
464108c51cebSShazad Hussain [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr,
464208c51cebSShazad Hussain [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr,
464308c51cebSShazad Hussain [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr,
464408c51cebSShazad Hussain [GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_sec_mock_utmi_postdiv_clk_src.clkr,
464508c51cebSShazad Hussain [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr,
464608c51cebSShazad Hussain [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
464708c51cebSShazad Hussain [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
464808c51cebSShazad Hussain [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
464908c51cebSShazad Hussain [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
465008c51cebSShazad Hussain [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
465108c51cebSShazad Hussain [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr,
465208c51cebSShazad Hussain [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr,
465308c51cebSShazad Hussain [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr,
465408c51cebSShazad Hussain [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr,
465508c51cebSShazad Hussain [GCC_USB3_SEC_PHY_PIPE_CLK_SRC] = &gcc_usb3_sec_phy_pipe_clk_src.clkr,
465608c51cebSShazad Hussain [GCC_USB_CLKREF_EN] = &gcc_usb_clkref_en.clkr,
465708c51cebSShazad Hussain [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
465808c51cebSShazad Hussain [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
465908c51cebSShazad Hussain };
466008c51cebSShazad Hussain
466108c51cebSShazad Hussain static const struct qcom_reset_map gcc_sa8775p_resets[] = {
466208c51cebSShazad Hussain [GCC_CAMERA_BCR] = { 0x32000 },
466308c51cebSShazad Hussain [GCC_DISPLAY1_BCR] = { 0xc7000 },
466408c51cebSShazad Hussain [GCC_DISPLAY_BCR] = { 0x33000 },
466508c51cebSShazad Hussain [GCC_EMAC0_BCR] = { 0xb6000 },
466608c51cebSShazad Hussain [GCC_EMAC1_BCR] = { 0xb4000 },
466708c51cebSShazad Hussain [GCC_GPU_BCR] = { 0x7d000 },
466808c51cebSShazad Hussain [GCC_MMSS_BCR] = { 0x17000 },
466908c51cebSShazad Hussain [GCC_PCIE_0_BCR] = { 0xa9000 },
467008c51cebSShazad Hussain [GCC_PCIE_0_LINK_DOWN_BCR] = { 0xbf000 },
467108c51cebSShazad Hussain [GCC_PCIE_0_NOCSR_COM_PHY_BCR] = { 0xbf008 },
467208c51cebSShazad Hussain [GCC_PCIE_0_PHY_BCR] = { 0xad144 },
467308c51cebSShazad Hussain [GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR] = { 0xbf00c },
467408c51cebSShazad Hussain [GCC_PCIE_1_BCR] = { 0x77000 },
467508c51cebSShazad Hussain [GCC_PCIE_1_LINK_DOWN_BCR] = { 0xae084 },
467608c51cebSShazad Hussain [GCC_PCIE_1_NOCSR_COM_PHY_BCR] = { 0xae090 },
467708c51cebSShazad Hussain [GCC_PCIE_1_PHY_BCR] = { 0xae08c },
467808c51cebSShazad Hussain [GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR] = { 0xae094 },
467908c51cebSShazad Hussain [GCC_PDM_BCR] = { 0x3f000 },
468008c51cebSShazad Hussain [GCC_QUPV3_WRAPPER_0_BCR] = { 0x23000 },
468108c51cebSShazad Hussain [GCC_QUPV3_WRAPPER_1_BCR] = { 0x24000 },
468208c51cebSShazad Hussain [GCC_QUPV3_WRAPPER_2_BCR] = { 0x2a000 },
468308c51cebSShazad Hussain [GCC_QUPV3_WRAPPER_3_BCR] = { 0xc4000 },
468408c51cebSShazad Hussain [GCC_SDCC1_BCR] = { 0x20000 },
468508c51cebSShazad Hussain [GCC_TSCSS_BCR] = { 0x21000 },
468608c51cebSShazad Hussain [GCC_UFS_CARD_BCR] = { 0x81000 },
468708c51cebSShazad Hussain [GCC_UFS_PHY_BCR] = { 0x83000 },
468808c51cebSShazad Hussain [GCC_USB20_PRIM_BCR] = { 0x1c000 },
468908c51cebSShazad Hussain [GCC_USB2_PHY_PRIM_BCR] = { 0x5c028 },
469008c51cebSShazad Hussain [GCC_USB2_PHY_SEC_BCR] = { 0x5c02c },
469108c51cebSShazad Hussain [GCC_USB30_PRIM_BCR] = { 0x1b000 },
469208c51cebSShazad Hussain [GCC_USB30_SEC_BCR] = { 0x2f000 },
469308c51cebSShazad Hussain [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x5c008 },
469408c51cebSShazad Hussain [GCC_USB3_DP_PHY_SEC_BCR] = { 0x5c014 },
469508c51cebSShazad Hussain [GCC_USB3_PHY_PRIM_BCR] = { 0x5c000 },
469608c51cebSShazad Hussain [GCC_USB3_PHY_SEC_BCR] = { 0x5c00c },
469708c51cebSShazad Hussain [GCC_USB3_PHY_TERT_BCR] = { 0x5c030 },
469808c51cebSShazad Hussain [GCC_USB3_UNIPHY_MP0_BCR] = { 0x5c018 },
469908c51cebSShazad Hussain [GCC_USB3_UNIPHY_MP1_BCR] = { 0x5c01c },
470008c51cebSShazad Hussain [GCC_USB3PHY_PHY_PRIM_BCR] = { 0x5c004 },
470108c51cebSShazad Hussain [GCC_USB3PHY_PHY_SEC_BCR] = { 0x5c010 },
470208c51cebSShazad Hussain [GCC_USB3UNIPHY_PHY_MP0_BCR] = { 0x5c020 },
470308c51cebSShazad Hussain [GCC_USB3UNIPHY_PHY_MP1_BCR] = { 0x5c024 },
470408c51cebSShazad Hussain [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x76000 },
470508c51cebSShazad Hussain [GCC_VIDEO_AXI0_CLK_ARES] = { 0x34014, 2 },
470608c51cebSShazad Hussain [GCC_VIDEO_AXI1_CLK_ARES] = { 0x3401c, 2 },
470708c51cebSShazad Hussain [GCC_VIDEO_BCR] = { 0x34000 },
470808c51cebSShazad Hussain };
470908c51cebSShazad Hussain
471008c51cebSShazad Hussain static struct gdsc *gcc_sa8775p_gdscs[] = {
471108c51cebSShazad Hussain [PCIE_0_GDSC] = &pcie_0_gdsc,
471208c51cebSShazad Hussain [PCIE_1_GDSC] = &pcie_1_gdsc,
471308c51cebSShazad Hussain [UFS_CARD_GDSC] = &ufs_card_gdsc,
471408c51cebSShazad Hussain [UFS_PHY_GDSC] = &ufs_phy_gdsc,
471508c51cebSShazad Hussain [USB20_PRIM_GDSC] = &usb20_prim_gdsc,
471608c51cebSShazad Hussain [USB30_PRIM_GDSC] = &usb30_prim_gdsc,
471708c51cebSShazad Hussain [USB30_SEC_GDSC] = &usb30_sec_gdsc,
471808c51cebSShazad Hussain [EMAC0_GDSC] = &emac0_gdsc,
471908c51cebSShazad Hussain [EMAC1_GDSC] = &emac1_gdsc,
472008c51cebSShazad Hussain };
472108c51cebSShazad Hussain
472208c51cebSShazad Hussain static const struct clk_rcg_dfs_data gcc_dfs_clocks[] = {
472308c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
472408c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
472508c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
472608c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
472708c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
472808c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
472908c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
473008c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src),
473108c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src),
473208c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src),
473308c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src),
473408c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src),
473508c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src),
473608c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap1_s6_clk_src),
473708c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap2_s0_clk_src),
473808c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap2_s1_clk_src),
473908c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap2_s2_clk_src),
474008c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap2_s3_clk_src),
474108c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap2_s4_clk_src),
474208c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap2_s5_clk_src),
474308c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap2_s6_clk_src),
474408c51cebSShazad Hussain DEFINE_RCG_DFS(gcc_qupv3_wrap3_s0_clk_src),
474508c51cebSShazad Hussain };
474608c51cebSShazad Hussain
474708c51cebSShazad Hussain static const struct regmap_config gcc_sa8775p_regmap_config = {
474808c51cebSShazad Hussain .reg_bits = 32,
474908c51cebSShazad Hussain .reg_stride = 4,
475008c51cebSShazad Hussain .val_bits = 32,
475108c51cebSShazad Hussain .max_register = 0xc7018,
475208c51cebSShazad Hussain .fast_io = true,
475308c51cebSShazad Hussain };
475408c51cebSShazad Hussain
475508c51cebSShazad Hussain static const struct qcom_cc_desc gcc_sa8775p_desc = {
475608c51cebSShazad Hussain .config = &gcc_sa8775p_regmap_config,
475708c51cebSShazad Hussain .clks = gcc_sa8775p_clocks,
475808c51cebSShazad Hussain .num_clks = ARRAY_SIZE(gcc_sa8775p_clocks),
475908c51cebSShazad Hussain .resets = gcc_sa8775p_resets,
476008c51cebSShazad Hussain .num_resets = ARRAY_SIZE(gcc_sa8775p_resets),
476108c51cebSShazad Hussain .gdscs = gcc_sa8775p_gdscs,
476208c51cebSShazad Hussain .num_gdscs = ARRAY_SIZE(gcc_sa8775p_gdscs),
476308c51cebSShazad Hussain };
476408c51cebSShazad Hussain
476508c51cebSShazad Hussain static const struct of_device_id gcc_sa8775p_match_table[] = {
476608c51cebSShazad Hussain { .compatible = "qcom,sa8775p-gcc" },
476708c51cebSShazad Hussain { }
476808c51cebSShazad Hussain };
476908c51cebSShazad Hussain MODULE_DEVICE_TABLE(of, gcc_sa8775p_match_table);
477008c51cebSShazad Hussain
gcc_sa8775p_probe(struct platform_device * pdev)477108c51cebSShazad Hussain static int gcc_sa8775p_probe(struct platform_device *pdev)
477208c51cebSShazad Hussain {
477308c51cebSShazad Hussain struct regmap *regmap;
477408c51cebSShazad Hussain int ret;
477508c51cebSShazad Hussain
477608c51cebSShazad Hussain regmap = qcom_cc_map(pdev, &gcc_sa8775p_desc);
477708c51cebSShazad Hussain if (IS_ERR(regmap))
477808c51cebSShazad Hussain return PTR_ERR(regmap);
477908c51cebSShazad Hussain
478008c51cebSShazad Hussain ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks,
478108c51cebSShazad Hussain ARRAY_SIZE(gcc_dfs_clocks));
478208c51cebSShazad Hussain if (ret)
478308c51cebSShazad Hussain return ret;
478408c51cebSShazad Hussain
478508c51cebSShazad Hussain /*
478608c51cebSShazad Hussain * Keep the clocks always-ON
478708c51cebSShazad Hussain * GCC_CAMERA_AHB_CLK, GCC_CAMERA_XO_CLK, GCC_DISP1_AHB_CLK,
478808c51cebSShazad Hussain * GCC_DISP1_XO_CLK, GCC_DISP_AHB_CLK, GCC_DISP_XO_CLK,
478908c51cebSShazad Hussain * GCC_GPU_CFG_AHB_CLK, GCC_VIDEO_AHB_CLK, GCC_VIDEO_XO_CLK.
479008c51cebSShazad Hussain */
479108c51cebSShazad Hussain regmap_update_bits(regmap, 0x32004, BIT(0), BIT(0));
479208c51cebSShazad Hussain regmap_update_bits(regmap, 0x32020, BIT(0), BIT(0));
479308c51cebSShazad Hussain regmap_update_bits(regmap, 0xc7004, BIT(0), BIT(0));
479408c51cebSShazad Hussain regmap_update_bits(regmap, 0xc7018, BIT(0), BIT(0));
479508c51cebSShazad Hussain regmap_update_bits(regmap, 0x33004, BIT(0), BIT(0));
479608c51cebSShazad Hussain regmap_update_bits(regmap, 0x33018, BIT(0), BIT(0));
479708c51cebSShazad Hussain regmap_update_bits(regmap, 0x7d004, BIT(0), BIT(0));
479808c51cebSShazad Hussain regmap_update_bits(regmap, 0x34004, BIT(0), BIT(0));
479908c51cebSShazad Hussain regmap_update_bits(regmap, 0x34024, BIT(0), BIT(0));
480008c51cebSShazad Hussain
480108c51cebSShazad Hussain return qcom_cc_really_probe(pdev, &gcc_sa8775p_desc, regmap);
480208c51cebSShazad Hussain }
480308c51cebSShazad Hussain
480408c51cebSShazad Hussain static struct platform_driver gcc_sa8775p_driver = {
480508c51cebSShazad Hussain .probe = gcc_sa8775p_probe,
480608c51cebSShazad Hussain .driver = {
480708c51cebSShazad Hussain .name = "sa8775p-gcc",
480808c51cebSShazad Hussain .of_match_table = gcc_sa8775p_match_table,
480908c51cebSShazad Hussain },
481008c51cebSShazad Hussain };
481108c51cebSShazad Hussain
gcc_sa8775p_init(void)481208c51cebSShazad Hussain static int __init gcc_sa8775p_init(void)
481308c51cebSShazad Hussain {
481408c51cebSShazad Hussain return platform_driver_register(&gcc_sa8775p_driver);
481508c51cebSShazad Hussain }
481608c51cebSShazad Hussain core_initcall(gcc_sa8775p_init);
481708c51cebSShazad Hussain
gcc_sa8775p_exit(void)481808c51cebSShazad Hussain static void __exit gcc_sa8775p_exit(void)
481908c51cebSShazad Hussain {
482008c51cebSShazad Hussain platform_driver_unregister(&gcc_sa8775p_driver);
482108c51cebSShazad Hussain }
482208c51cebSShazad Hussain module_exit(gcc_sa8775p_exit);
482308c51cebSShazad Hussain
482408c51cebSShazad Hussain MODULE_DESCRIPTION("Qualcomm SA8775P GCC driver");
482508c51cebSShazad Hussain MODULE_LICENSE("GPL");
4826