101cf3e27SImran Shaik // SPDX-License-Identifier: GPL-2.0-only
201cf3e27SImran Shaik /*
301cf3e27SImran Shaik * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
401cf3e27SImran Shaik */
501cf3e27SImran Shaik
601cf3e27SImran Shaik #include <linux/clk-provider.h>
701cf3e27SImran Shaik #include <linux/module.h>
801cf3e27SImran Shaik #include <linux/platform_device.h>
901cf3e27SImran Shaik #include <linux/regmap.h>
1001cf3e27SImran Shaik
1101cf3e27SImran Shaik #include <dt-bindings/clock/qcom,shikra-gcc.h>
1201cf3e27SImran Shaik
1301cf3e27SImran Shaik #include "clk-alpha-pll.h"
1401cf3e27SImran Shaik #include "clk-branch.h"
1501cf3e27SImran Shaik #include "clk-pll.h"
1601cf3e27SImran Shaik #include "clk-rcg.h"
1701cf3e27SImran Shaik #include "clk-regmap.h"
1801cf3e27SImran Shaik #include "clk-regmap-divider.h"
1901cf3e27SImran Shaik #include "clk-regmap-mux.h"
2001cf3e27SImran Shaik #include "clk-regmap-phy-mux.h"
2101cf3e27SImran Shaik #include "common.h"
2201cf3e27SImran Shaik #include "gdsc.h"
2301cf3e27SImran Shaik #include "reset.h"
2401cf3e27SImran Shaik
2501cf3e27SImran Shaik enum {
2601cf3e27SImran Shaik DT_BI_TCXO,
2701cf3e27SImran Shaik DT_SLEEP_CLK,
2801cf3e27SImran Shaik DT_EMAC0_SGMIIPHY_RCLK,
2901cf3e27SImran Shaik DT_EMAC0_SGMIIPHY_TCLK,
3001cf3e27SImran Shaik DT_EMAC1_SGMIIPHY_RCLK,
3101cf3e27SImran Shaik DT_EMAC1_SGMIIPHY_TCLK,
3201cf3e27SImran Shaik DT_PCIE_PIPE_CLK,
3301cf3e27SImran Shaik DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
3401cf3e27SImran Shaik };
3501cf3e27SImran Shaik
3601cf3e27SImran Shaik enum {
3701cf3e27SImran Shaik P_BI_TCXO,
3801cf3e27SImran Shaik P_EMAC0_SGMIIPHY_RCLK,
3901cf3e27SImran Shaik P_EMAC0_SGMIIPHY_TCLK,
4001cf3e27SImran Shaik P_EMAC1_SGMIIPHY_RCLK,
4101cf3e27SImran Shaik P_EMAC1_SGMIIPHY_TCLK,
4201cf3e27SImran Shaik P_GPLL0_OUT_AUX2,
4301cf3e27SImran Shaik P_GPLL0_OUT_EARLY,
4401cf3e27SImran Shaik P_GPLL10_OUT_MAIN,
4501cf3e27SImran Shaik P_GPLL11_OUT_AUX,
4601cf3e27SImran Shaik P_GPLL11_OUT_AUX2,
4701cf3e27SImran Shaik P_GPLL11_OUT_MAIN,
4801cf3e27SImran Shaik P_GPLL12_OUT_AUX2,
4901cf3e27SImran Shaik P_GPLL12_OUT_EARLY,
5001cf3e27SImran Shaik P_GPLL3_OUT_EARLY,
5101cf3e27SImran Shaik P_GPLL3_OUT_MAIN,
5201cf3e27SImran Shaik P_GPLL4_OUT_MAIN,
5301cf3e27SImran Shaik P_GPLL5_OUT_MAIN,
5401cf3e27SImran Shaik P_GPLL6_OUT_EARLY,
5501cf3e27SImran Shaik P_GPLL6_OUT_MAIN,
5601cf3e27SImran Shaik P_GPLL7_OUT_MAIN,
5701cf3e27SImran Shaik P_GPLL8_OUT_EARLY,
5801cf3e27SImran Shaik P_GPLL8_OUT_MAIN,
5901cf3e27SImran Shaik P_GPLL9_OUT_EARLY,
6001cf3e27SImran Shaik P_GPLL9_OUT_MAIN,
6101cf3e27SImran Shaik P_PCIE_PIPE_CLK,
6201cf3e27SImran Shaik P_SLEEP_CLK,
6301cf3e27SImran Shaik P_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
6401cf3e27SImran Shaik };
6501cf3e27SImran Shaik
6601cf3e27SImran Shaik static const struct pll_vco brammo_vco[] = {
6701cf3e27SImran Shaik { 500000000, 1250000000, 0 },
6801cf3e27SImran Shaik };
6901cf3e27SImran Shaik
7001cf3e27SImran Shaik static const struct pll_vco default_vco[] = {
7101cf3e27SImran Shaik { 500000000, 1000000000, 2 },
7201cf3e27SImran Shaik };
7301cf3e27SImran Shaik
7401cf3e27SImran Shaik static const struct pll_vco spark_vco[] = {
7501cf3e27SImran Shaik { 750000000, 1500000000, 1 },
7601cf3e27SImran Shaik };
7701cf3e27SImran Shaik
7801cf3e27SImran Shaik static struct clk_alpha_pll gpll0 = {
7901cf3e27SImran Shaik .offset = 0x0,
8001cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
8101cf3e27SImran Shaik .clkr = {
8201cf3e27SImran Shaik .enable_reg = 0x79000,
8301cf3e27SImran Shaik .enable_mask = BIT(0),
8401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
8501cf3e27SImran Shaik .name = "gpll0",
8601cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
8701cf3e27SImran Shaik .index = DT_BI_TCXO,
8801cf3e27SImran Shaik },
8901cf3e27SImran Shaik .num_parents = 1,
9001cf3e27SImran Shaik .ops = &clk_alpha_pll_fixed_ops,
9101cf3e27SImran Shaik },
9201cf3e27SImran Shaik },
9301cf3e27SImran Shaik };
9401cf3e27SImran Shaik
9501cf3e27SImran Shaik static const struct clk_div_table post_div_table_gpll0_out_aux2[] = {
9601cf3e27SImran Shaik { 0x1, 2 },
9701cf3e27SImran Shaik { }
9801cf3e27SImran Shaik };
9901cf3e27SImran Shaik
10001cf3e27SImran Shaik static struct clk_alpha_pll_postdiv gpll0_out_aux2 = {
10101cf3e27SImran Shaik .offset = 0x0,
10201cf3e27SImran Shaik .post_div_shift = 8,
10301cf3e27SImran Shaik .post_div_table = post_div_table_gpll0_out_aux2,
10401cf3e27SImran Shaik .num_post_div = ARRAY_SIZE(post_div_table_gpll0_out_aux2),
10501cf3e27SImran Shaik .width = 4,
10601cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
10701cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
10801cf3e27SImran Shaik .name = "gpll0_out_aux2",
10901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
11001cf3e27SImran Shaik &gpll0.clkr.hw,
11101cf3e27SImran Shaik },
11201cf3e27SImran Shaik .num_parents = 1,
11301cf3e27SImran Shaik .ops = &clk_alpha_pll_postdiv_ro_ops,
11401cf3e27SImran Shaik },
11501cf3e27SImran Shaik };
11601cf3e27SImran Shaik
11701cf3e27SImran Shaik /* 1152.0 MHz Configuration */
11801cf3e27SImran Shaik static const struct alpha_pll_config gpll10_config = {
11901cf3e27SImran Shaik .l = 0x3c,
12001cf3e27SImran Shaik .alpha = 0x0,
12101cf3e27SImran Shaik .vco_val = BIT(20),
12201cf3e27SImran Shaik .vco_mask = GENMASK(21, 20),
12301cf3e27SImran Shaik .main_output_mask = BIT(0),
12401cf3e27SImran Shaik .config_ctl_val = 0x4001055b,
125*830ead32SImran Shaik .test_ctl_hi_val = 0x1,
12601cf3e27SImran Shaik };
12701cf3e27SImran Shaik
12801cf3e27SImran Shaik static struct clk_alpha_pll gpll10 = {
12901cf3e27SImran Shaik .offset = 0xa000,
13001cf3e27SImran Shaik .config = &gpll10_config,
13101cf3e27SImran Shaik .vco_table = spark_vco,
13201cf3e27SImran Shaik .num_vco = ARRAY_SIZE(spark_vco),
13301cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
13401cf3e27SImran Shaik .clkr = {
13501cf3e27SImran Shaik .enable_reg = 0x79000,
13601cf3e27SImran Shaik .enable_mask = BIT(10),
13701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
13801cf3e27SImran Shaik .name = "gpll10",
13901cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
14001cf3e27SImran Shaik .index = DT_BI_TCXO,
14101cf3e27SImran Shaik },
14201cf3e27SImran Shaik .num_parents = 1,
14301cf3e27SImran Shaik .ops = &clk_alpha_pll_ops,
14401cf3e27SImran Shaik },
14501cf3e27SImran Shaik },
14601cf3e27SImran Shaik };
14701cf3e27SImran Shaik
14801cf3e27SImran Shaik /* 600.0 MHz Configuration */
14901cf3e27SImran Shaik static const struct alpha_pll_config gpll11_config = {
15001cf3e27SImran Shaik .l = 0x1f,
15101cf3e27SImran Shaik .alpha = 0x0,
15201cf3e27SImran Shaik .alpha_hi = 0x40,
15301cf3e27SImran Shaik .alpha_en_mask = BIT(24),
15401cf3e27SImran Shaik .vco_val = BIT(21),
15501cf3e27SImran Shaik .vco_mask = GENMASK(21, 20),
15601cf3e27SImran Shaik .main_output_mask = BIT(0),
15701cf3e27SImran Shaik .config_ctl_val = 0x4001055b,
158*830ead32SImran Shaik .test_ctl_hi_val = 0x1,
15901cf3e27SImran Shaik };
16001cf3e27SImran Shaik
16101cf3e27SImran Shaik static struct clk_alpha_pll gpll11 = {
16201cf3e27SImran Shaik .offset = 0xb000,
16301cf3e27SImran Shaik .config = &gpll11_config,
16401cf3e27SImran Shaik .vco_table = default_vco,
16501cf3e27SImran Shaik .num_vco = ARRAY_SIZE(default_vco),
16601cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
16701cf3e27SImran Shaik .flags = SUPPORTS_DYNAMIC_UPDATE,
16801cf3e27SImran Shaik .clkr = {
16901cf3e27SImran Shaik .enable_reg = 0x79000,
17001cf3e27SImran Shaik .enable_mask = BIT(11),
17101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
17201cf3e27SImran Shaik .name = "gpll11",
17301cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
17401cf3e27SImran Shaik .index = DT_BI_TCXO,
17501cf3e27SImran Shaik },
17601cf3e27SImran Shaik .num_parents = 1,
17701cf3e27SImran Shaik .ops = &clk_alpha_pll_ops,
17801cf3e27SImran Shaik },
17901cf3e27SImran Shaik },
18001cf3e27SImran Shaik };
18101cf3e27SImran Shaik
18201cf3e27SImran Shaik static struct clk_alpha_pll gpll12 = {
18301cf3e27SImran Shaik .offset = 0xc000,
18401cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
18501cf3e27SImran Shaik .clkr = {
18601cf3e27SImran Shaik .enable_reg = 0x79000,
18701cf3e27SImran Shaik .enable_mask = BIT(12),
18801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
18901cf3e27SImran Shaik .name = "gpll12",
19001cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
19101cf3e27SImran Shaik .index = DT_BI_TCXO,
19201cf3e27SImran Shaik },
19301cf3e27SImran Shaik .num_parents = 1,
19401cf3e27SImran Shaik .ops = &clk_alpha_pll_fixed_ops,
19501cf3e27SImran Shaik },
19601cf3e27SImran Shaik },
19701cf3e27SImran Shaik };
19801cf3e27SImran Shaik
19901cf3e27SImran Shaik static const struct clk_div_table post_div_table_gpll12_out_aux2[] = {
20001cf3e27SImran Shaik { 0x1, 2 },
20101cf3e27SImran Shaik { }
20201cf3e27SImran Shaik };
20301cf3e27SImran Shaik
20401cf3e27SImran Shaik static struct clk_alpha_pll_postdiv gpll12_out_aux2 = {
20501cf3e27SImran Shaik .offset = 0xc000,
20601cf3e27SImran Shaik .post_div_shift = 8,
20701cf3e27SImran Shaik .post_div_table = post_div_table_gpll12_out_aux2,
20801cf3e27SImran Shaik .num_post_div = ARRAY_SIZE(post_div_table_gpll12_out_aux2),
20901cf3e27SImran Shaik .width = 4,
21001cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
21101cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
21201cf3e27SImran Shaik .name = "gpll12_out_aux2",
21301cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
21401cf3e27SImran Shaik &gpll12.clkr.hw,
21501cf3e27SImran Shaik },
21601cf3e27SImran Shaik .num_parents = 1,
21701cf3e27SImran Shaik .ops = &clk_alpha_pll_postdiv_ro_ops,
21801cf3e27SImran Shaik },
21901cf3e27SImran Shaik };
22001cf3e27SImran Shaik
22101cf3e27SImran Shaik static struct clk_alpha_pll gpll3 = {
22201cf3e27SImran Shaik .offset = 0x3000,
22301cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
22401cf3e27SImran Shaik .clkr = {
22501cf3e27SImran Shaik .enable_reg = 0x79000,
22601cf3e27SImran Shaik .enable_mask = BIT(3),
22701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
22801cf3e27SImran Shaik .name = "gpll3",
22901cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
23001cf3e27SImran Shaik .index = DT_BI_TCXO,
23101cf3e27SImran Shaik },
23201cf3e27SImran Shaik .num_parents = 1,
23301cf3e27SImran Shaik .ops = &clk_alpha_pll_fixed_ops,
23401cf3e27SImran Shaik },
23501cf3e27SImran Shaik },
23601cf3e27SImran Shaik };
23701cf3e27SImran Shaik
23801cf3e27SImran Shaik static const struct clk_div_table post_div_table_gpll3_out_main[] = {
23901cf3e27SImran Shaik { 0x1, 2 },
24001cf3e27SImran Shaik { }
24101cf3e27SImran Shaik };
24201cf3e27SImran Shaik
24301cf3e27SImran Shaik static struct clk_alpha_pll_postdiv gpll3_out_main = {
24401cf3e27SImran Shaik .offset = 0x3000,
24501cf3e27SImran Shaik .post_div_shift = 8,
24601cf3e27SImran Shaik .post_div_table = post_div_table_gpll3_out_main,
24701cf3e27SImran Shaik .num_post_div = ARRAY_SIZE(post_div_table_gpll3_out_main),
24801cf3e27SImran Shaik .width = 4,
24901cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
25001cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
25101cf3e27SImran Shaik .name = "gpll3_out_main",
25201cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
25301cf3e27SImran Shaik &gpll3.clkr.hw,
25401cf3e27SImran Shaik },
25501cf3e27SImran Shaik .num_parents = 1,
25601cf3e27SImran Shaik .ops = &clk_alpha_pll_postdiv_ro_ops,
25701cf3e27SImran Shaik },
25801cf3e27SImran Shaik };
25901cf3e27SImran Shaik
26001cf3e27SImran Shaik static struct clk_alpha_pll gpll4 = {
26101cf3e27SImran Shaik .offset = 0x4000,
26201cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
26301cf3e27SImran Shaik .clkr = {
26401cf3e27SImran Shaik .enable_reg = 0x79000,
26501cf3e27SImran Shaik .enable_mask = BIT(4),
26601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
26701cf3e27SImran Shaik .name = "gpll4",
26801cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
26901cf3e27SImran Shaik .index = DT_BI_TCXO,
27001cf3e27SImran Shaik },
27101cf3e27SImran Shaik .num_parents = 1,
27201cf3e27SImran Shaik .ops = &clk_alpha_pll_fixed_ops,
27301cf3e27SImran Shaik },
27401cf3e27SImran Shaik },
27501cf3e27SImran Shaik };
27601cf3e27SImran Shaik
27701cf3e27SImran Shaik static struct clk_alpha_pll gpll5 = {
27801cf3e27SImran Shaik .offset = 0x5000,
27901cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
28001cf3e27SImran Shaik .clkr = {
28101cf3e27SImran Shaik .enable_reg = 0x79000,
28201cf3e27SImran Shaik .enable_mask = BIT(5),
28301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
28401cf3e27SImran Shaik .name = "gpll5",
28501cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
28601cf3e27SImran Shaik .index = DT_BI_TCXO,
28701cf3e27SImran Shaik },
28801cf3e27SImran Shaik .num_parents = 1,
28901cf3e27SImran Shaik .ops = &clk_alpha_pll_fixed_ops,
29001cf3e27SImran Shaik },
29101cf3e27SImran Shaik },
29201cf3e27SImran Shaik };
29301cf3e27SImran Shaik
29401cf3e27SImran Shaik static struct clk_alpha_pll gpll6 = {
29501cf3e27SImran Shaik .offset = 0x6000,
29601cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
29701cf3e27SImran Shaik .clkr = {
29801cf3e27SImran Shaik .enable_reg = 0x79000,
29901cf3e27SImran Shaik .enable_mask = BIT(6),
30001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
30101cf3e27SImran Shaik .name = "gpll6",
30201cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
30301cf3e27SImran Shaik .index = DT_BI_TCXO,
30401cf3e27SImran Shaik },
30501cf3e27SImran Shaik .num_parents = 1,
30601cf3e27SImran Shaik .ops = &clk_alpha_pll_fixed_ops,
30701cf3e27SImran Shaik },
30801cf3e27SImran Shaik },
30901cf3e27SImran Shaik };
31001cf3e27SImran Shaik
31101cf3e27SImran Shaik static const struct clk_div_table post_div_table_gpll6_out_main[] = {
31201cf3e27SImran Shaik { 0x1, 2 },
31301cf3e27SImran Shaik { }
31401cf3e27SImran Shaik };
31501cf3e27SImran Shaik
31601cf3e27SImran Shaik static struct clk_alpha_pll_postdiv gpll6_out_main = {
31701cf3e27SImran Shaik .offset = 0x6000,
31801cf3e27SImran Shaik .post_div_shift = 8,
31901cf3e27SImran Shaik .post_div_table = post_div_table_gpll6_out_main,
32001cf3e27SImran Shaik .num_post_div = ARRAY_SIZE(post_div_table_gpll6_out_main),
32101cf3e27SImran Shaik .width = 4,
32201cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
32301cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
32401cf3e27SImran Shaik .name = "gpll6_out_main",
32501cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
32601cf3e27SImran Shaik &gpll6.clkr.hw,
32701cf3e27SImran Shaik },
32801cf3e27SImran Shaik .num_parents = 1,
32901cf3e27SImran Shaik .ops = &clk_alpha_pll_postdiv_ro_ops,
33001cf3e27SImran Shaik },
33101cf3e27SImran Shaik };
33201cf3e27SImran Shaik
33301cf3e27SImran Shaik static struct clk_alpha_pll gpll7 = {
33401cf3e27SImran Shaik .offset = 0x7000,
33501cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
33601cf3e27SImran Shaik .clkr = {
33701cf3e27SImran Shaik .enable_reg = 0x79000,
33801cf3e27SImran Shaik .enable_mask = BIT(7),
33901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
34001cf3e27SImran Shaik .name = "gpll7",
34101cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
34201cf3e27SImran Shaik .index = DT_BI_TCXO,
34301cf3e27SImran Shaik },
34401cf3e27SImran Shaik .num_parents = 1,
34501cf3e27SImran Shaik .ops = &clk_alpha_pll_fixed_ops,
34601cf3e27SImran Shaik },
34701cf3e27SImran Shaik },
34801cf3e27SImran Shaik };
34901cf3e27SImran Shaik
35001cf3e27SImran Shaik /* 533.2 MHz Configuration */
35101cf3e27SImran Shaik static const struct alpha_pll_config gpll8_config = {
35201cf3e27SImran Shaik .l = 0x1b,
35301cf3e27SImran Shaik .alpha = 0x55555555,
35401cf3e27SImran Shaik .alpha_hi = 0xc5,
35501cf3e27SImran Shaik .alpha_en_mask = BIT(24),
35601cf3e27SImran Shaik .vco_val = BIT(21),
35701cf3e27SImran Shaik .vco_mask = GENMASK(21, 20),
35801cf3e27SImran Shaik .main_output_mask = BIT(0),
35901cf3e27SImran Shaik .early_output_mask = BIT(3),
36001cf3e27SImran Shaik .post_div_val = BIT(8),
36101cf3e27SImran Shaik .post_div_mask = GENMASK(11, 8),
36201cf3e27SImran Shaik .config_ctl_val = 0x4001055b,
363*830ead32SImran Shaik .test_ctl_hi_val = 0x1,
36401cf3e27SImran Shaik };
36501cf3e27SImran Shaik
36601cf3e27SImran Shaik static struct clk_alpha_pll gpll8 = {
36701cf3e27SImran Shaik .offset = 0x8000,
36801cf3e27SImran Shaik .config = &gpll8_config,
36901cf3e27SImran Shaik .vco_table = default_vco,
37001cf3e27SImran Shaik .num_vco = ARRAY_SIZE(default_vco),
37101cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
37201cf3e27SImran Shaik .flags = SUPPORTS_DYNAMIC_UPDATE,
37301cf3e27SImran Shaik .clkr = {
37401cf3e27SImran Shaik .enable_reg = 0x79000,
37501cf3e27SImran Shaik .enable_mask = BIT(8),
37601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
37701cf3e27SImran Shaik .name = "gpll8",
37801cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
37901cf3e27SImran Shaik .index = DT_BI_TCXO,
38001cf3e27SImran Shaik },
38101cf3e27SImran Shaik .num_parents = 1,
38201cf3e27SImran Shaik .ops = &clk_alpha_pll_ops,
38301cf3e27SImran Shaik },
38401cf3e27SImran Shaik },
38501cf3e27SImran Shaik };
38601cf3e27SImran Shaik
38701cf3e27SImran Shaik static const struct clk_div_table post_div_table_gpll8_out_main[] = {
38801cf3e27SImran Shaik { 0x1, 2 },
38901cf3e27SImran Shaik { }
39001cf3e27SImran Shaik };
39101cf3e27SImran Shaik
39201cf3e27SImran Shaik static struct clk_alpha_pll_postdiv gpll8_out_main = {
39301cf3e27SImran Shaik .offset = 0x8000,
39401cf3e27SImran Shaik .post_div_shift = 8,
39501cf3e27SImran Shaik .post_div_table = post_div_table_gpll8_out_main,
39601cf3e27SImran Shaik .num_post_div = ARRAY_SIZE(post_div_table_gpll8_out_main),
39701cf3e27SImran Shaik .width = 4,
39801cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
39901cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
40001cf3e27SImran Shaik .name = "gpll8_out_main",
40101cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
40201cf3e27SImran Shaik &gpll8.clkr.hw,
40301cf3e27SImran Shaik },
40401cf3e27SImran Shaik .num_parents = 1,
40501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
40601cf3e27SImran Shaik .ops = &clk_alpha_pll_postdiv_ro_ops,
40701cf3e27SImran Shaik },
40801cf3e27SImran Shaik };
40901cf3e27SImran Shaik
41001cf3e27SImran Shaik /* 1152.0 MHz Configuration */
41101cf3e27SImran Shaik static const struct alpha_pll_config gpll9_config = {
41201cf3e27SImran Shaik .l = 0x3c,
41301cf3e27SImran Shaik .alpha = 0x0,
41401cf3e27SImran Shaik .post_div_val = BIT(8),
41501cf3e27SImran Shaik .post_div_mask = GENMASK(9, 8),
41601cf3e27SImran Shaik .main_output_mask = BIT(0),
41701cf3e27SImran Shaik .early_output_mask = BIT(3),
41801cf3e27SImran Shaik .config_ctl_val = 0x00004289,
41901cf3e27SImran Shaik .test_ctl_val = 0x08000000,
42001cf3e27SImran Shaik };
42101cf3e27SImran Shaik
42201cf3e27SImran Shaik static struct clk_alpha_pll gpll9 = {
42301cf3e27SImran Shaik .offset = 0x9000,
42401cf3e27SImran Shaik .config = &gpll9_config,
42501cf3e27SImran Shaik .vco_table = brammo_vco,
42601cf3e27SImran Shaik .num_vco = ARRAY_SIZE(brammo_vco),
42701cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_BRAMMO_EVO],
42801cf3e27SImran Shaik .clkr = {
42901cf3e27SImran Shaik .enable_reg = 0x79000,
43001cf3e27SImran Shaik .enable_mask = BIT(9),
43101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
43201cf3e27SImran Shaik .name = "gpll9",
43301cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
43401cf3e27SImran Shaik .index = DT_BI_TCXO,
43501cf3e27SImran Shaik },
43601cf3e27SImran Shaik .num_parents = 1,
43701cf3e27SImran Shaik .ops = &clk_alpha_pll_ops,
43801cf3e27SImran Shaik },
43901cf3e27SImran Shaik },
44001cf3e27SImran Shaik };
44101cf3e27SImran Shaik
44201cf3e27SImran Shaik static const struct clk_div_table post_div_table_gpll9_out_main[] = {
44301cf3e27SImran Shaik { 0x1, 2 },
44401cf3e27SImran Shaik { }
44501cf3e27SImran Shaik };
44601cf3e27SImran Shaik
44701cf3e27SImran Shaik static struct clk_alpha_pll_postdiv gpll9_out_main = {
44801cf3e27SImran Shaik .offset = 0x9000,
44901cf3e27SImran Shaik .post_div_shift = 8,
45001cf3e27SImran Shaik .post_div_table = post_div_table_gpll9_out_main,
45101cf3e27SImran Shaik .num_post_div = ARRAY_SIZE(post_div_table_gpll9_out_main),
45201cf3e27SImran Shaik .width = 2,
45301cf3e27SImran Shaik .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_BRAMMO_EVO],
45401cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
45501cf3e27SImran Shaik .name = "gpll9_out_main",
45601cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
45701cf3e27SImran Shaik &gpll9.clkr.hw,
45801cf3e27SImran Shaik },
45901cf3e27SImran Shaik .num_parents = 1,
46001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
46101cf3e27SImran Shaik .ops = &clk_alpha_pll_postdiv_ro_ops,
46201cf3e27SImran Shaik },
46301cf3e27SImran Shaik };
46401cf3e27SImran Shaik
46501cf3e27SImran Shaik static const struct parent_map gcc_parent_map_0[] = {
46601cf3e27SImran Shaik { P_BI_TCXO, 0 },
46701cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
46801cf3e27SImran Shaik { P_GPLL0_OUT_AUX2, 2 },
46901cf3e27SImran Shaik };
47001cf3e27SImran Shaik
47101cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_0[] = {
47201cf3e27SImran Shaik { .index = DT_BI_TCXO },
47301cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
47401cf3e27SImran Shaik { .hw = &gpll0_out_aux2.clkr.hw },
47501cf3e27SImran Shaik };
47601cf3e27SImran Shaik
47701cf3e27SImran Shaik static const struct parent_map gcc_parent_map_1[] = {
47801cf3e27SImran Shaik { P_BI_TCXO, 0 },
47901cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
48001cf3e27SImran Shaik { P_GPLL0_OUT_AUX2, 2 },
48101cf3e27SImran Shaik { P_GPLL6_OUT_MAIN, 4 },
48201cf3e27SImran Shaik };
48301cf3e27SImran Shaik
48401cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_1[] = {
48501cf3e27SImran Shaik { .index = DT_BI_TCXO },
48601cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
48701cf3e27SImran Shaik { .hw = &gpll0_out_aux2.clkr.hw },
48801cf3e27SImran Shaik { .hw = &gpll6_out_main.clkr.hw },
48901cf3e27SImran Shaik };
49001cf3e27SImran Shaik
49101cf3e27SImran Shaik static const struct parent_map gcc_parent_map_2[] = {
49201cf3e27SImran Shaik { P_BI_TCXO, 0 },
49301cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
49401cf3e27SImran Shaik { P_GPLL0_OUT_AUX2, 2 },
49501cf3e27SImran Shaik { P_SLEEP_CLK, 5 },
49601cf3e27SImran Shaik };
49701cf3e27SImran Shaik
49801cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_2[] = {
49901cf3e27SImran Shaik { .index = DT_BI_TCXO },
50001cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
50101cf3e27SImran Shaik { .hw = &gpll0_out_aux2.clkr.hw },
50201cf3e27SImran Shaik { .index = DT_SLEEP_CLK },
50301cf3e27SImran Shaik };
50401cf3e27SImran Shaik
50501cf3e27SImran Shaik static const struct parent_map gcc_parent_map_3[] = {
50601cf3e27SImran Shaik { P_BI_TCXO, 0 },
50701cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
50801cf3e27SImran Shaik { P_GPLL9_OUT_EARLY, 2 },
50901cf3e27SImran Shaik { P_GPLL10_OUT_MAIN, 3 },
51001cf3e27SImran Shaik { P_GPLL9_OUT_MAIN, 5 },
51101cf3e27SImran Shaik { P_GPLL3_OUT_MAIN, 6 },
51201cf3e27SImran Shaik };
51301cf3e27SImran Shaik
51401cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_3[] = {
51501cf3e27SImran Shaik { .index = DT_BI_TCXO },
51601cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
51701cf3e27SImran Shaik { .hw = &gpll9.clkr.hw },
51801cf3e27SImran Shaik { .hw = &gpll10.clkr.hw },
51901cf3e27SImran Shaik { .hw = &gpll9_out_main.clkr.hw },
52001cf3e27SImran Shaik { .hw = &gpll3_out_main.clkr.hw },
52101cf3e27SImran Shaik };
52201cf3e27SImran Shaik
52301cf3e27SImran Shaik static const struct parent_map gcc_parent_map_4[] = {
52401cf3e27SImran Shaik { P_BI_TCXO, 0 },
52501cf3e27SImran Shaik { P_SLEEP_CLK, 5 },
52601cf3e27SImran Shaik };
52701cf3e27SImran Shaik
52801cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_4[] = {
52901cf3e27SImran Shaik { .index = DT_BI_TCXO },
53001cf3e27SImran Shaik { .index = DT_SLEEP_CLK },
53101cf3e27SImran Shaik };
53201cf3e27SImran Shaik
53301cf3e27SImran Shaik static const struct parent_map gcc_parent_map_5[] = {
53401cf3e27SImran Shaik { P_BI_TCXO, 0 },
53501cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
53601cf3e27SImran Shaik { P_GPLL0_OUT_AUX2, 2 },
53701cf3e27SImran Shaik { P_GPLL10_OUT_MAIN, 3 },
53801cf3e27SImran Shaik { P_GPLL4_OUT_MAIN, 5 },
53901cf3e27SImran Shaik { P_GPLL3_OUT_EARLY, 6 },
54001cf3e27SImran Shaik };
54101cf3e27SImran Shaik
54201cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_5[] = {
54301cf3e27SImran Shaik { .index = DT_BI_TCXO },
54401cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
54501cf3e27SImran Shaik { .hw = &gpll0_out_aux2.clkr.hw },
54601cf3e27SImran Shaik { .hw = &gpll10.clkr.hw },
54701cf3e27SImran Shaik { .hw = &gpll4.clkr.hw },
54801cf3e27SImran Shaik { .hw = &gpll3.clkr.hw },
54901cf3e27SImran Shaik };
55001cf3e27SImran Shaik
55101cf3e27SImran Shaik static const struct parent_map gcc_parent_map_6[] = {
55201cf3e27SImran Shaik { P_BI_TCXO, 0 },
55301cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
55401cf3e27SImran Shaik { P_GPLL0_OUT_AUX2, 2 },
55501cf3e27SImran Shaik { P_GPLL4_OUT_MAIN, 5 },
55601cf3e27SImran Shaik { P_GPLL3_OUT_MAIN, 6 },
55701cf3e27SImran Shaik };
55801cf3e27SImran Shaik
55901cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_6[] = {
56001cf3e27SImran Shaik { .index = DT_BI_TCXO },
56101cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
56201cf3e27SImran Shaik { .hw = &gpll0_out_aux2.clkr.hw },
56301cf3e27SImran Shaik { .hw = &gpll4.clkr.hw },
56401cf3e27SImran Shaik { .hw = &gpll3_out_main.clkr.hw },
56501cf3e27SImran Shaik };
56601cf3e27SImran Shaik
56701cf3e27SImran Shaik static const struct parent_map gcc_parent_map_7[] = {
56801cf3e27SImran Shaik { P_BI_TCXO, 0 },
56901cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
57001cf3e27SImran Shaik { P_GPLL8_OUT_EARLY, 2 },
57101cf3e27SImran Shaik { P_GPLL10_OUT_MAIN, 3 },
57201cf3e27SImran Shaik { P_GPLL8_OUT_MAIN, 4 },
57301cf3e27SImran Shaik { P_GPLL9_OUT_MAIN, 5 },
57401cf3e27SImran Shaik { P_GPLL3_OUT_EARLY, 6 },
57501cf3e27SImran Shaik };
57601cf3e27SImran Shaik
57701cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_7[] = {
57801cf3e27SImran Shaik { .index = DT_BI_TCXO },
57901cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
58001cf3e27SImran Shaik { .hw = &gpll8.clkr.hw },
58101cf3e27SImran Shaik { .hw = &gpll10.clkr.hw },
58201cf3e27SImran Shaik { .hw = &gpll8_out_main.clkr.hw },
58301cf3e27SImran Shaik { .hw = &gpll9.clkr.hw },
58401cf3e27SImran Shaik { .hw = &gpll3.clkr.hw },
58501cf3e27SImran Shaik };
58601cf3e27SImran Shaik
58701cf3e27SImran Shaik static const struct parent_map gcc_parent_map_8[] = {
58801cf3e27SImran Shaik { P_BI_TCXO, 0 },
58901cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
59001cf3e27SImran Shaik { P_GPLL8_OUT_EARLY, 2 },
59101cf3e27SImran Shaik { P_GPLL10_OUT_MAIN, 3 },
59201cf3e27SImran Shaik { P_GPLL8_OUT_MAIN, 4 },
59301cf3e27SImran Shaik { P_GPLL9_OUT_MAIN, 5 },
59401cf3e27SImran Shaik { P_GPLL3_OUT_MAIN, 6 },
59501cf3e27SImran Shaik };
59601cf3e27SImran Shaik
59701cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_8[] = {
59801cf3e27SImran Shaik { .index = DT_BI_TCXO },
59901cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
60001cf3e27SImran Shaik { .hw = &gpll8.clkr.hw },
60101cf3e27SImran Shaik { .hw = &gpll10.clkr.hw },
60201cf3e27SImran Shaik { .hw = &gpll8_out_main.clkr.hw },
60301cf3e27SImran Shaik { .hw = &gpll9.clkr.hw },
60401cf3e27SImran Shaik { .hw = &gpll3_out_main.clkr.hw },
60501cf3e27SImran Shaik };
60601cf3e27SImran Shaik
60701cf3e27SImran Shaik static const struct parent_map gcc_parent_map_9[] = {
60801cf3e27SImran Shaik { P_BI_TCXO, 0 },
60901cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
61001cf3e27SImran Shaik { P_GPLL8_OUT_EARLY, 2 },
61101cf3e27SImran Shaik { P_GPLL10_OUT_MAIN, 3 },
61201cf3e27SImran Shaik { P_GPLL6_OUT_MAIN, 4 },
61301cf3e27SImran Shaik { P_GPLL9_OUT_MAIN, 5 },
61401cf3e27SImran Shaik { P_GPLL3_OUT_EARLY, 6 },
61501cf3e27SImran Shaik };
61601cf3e27SImran Shaik
61701cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_9[] = {
61801cf3e27SImran Shaik { .index = DT_BI_TCXO },
61901cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
62001cf3e27SImran Shaik { .hw = &gpll8.clkr.hw },
62101cf3e27SImran Shaik { .hw = &gpll10.clkr.hw },
62201cf3e27SImran Shaik { .hw = &gpll6_out_main.clkr.hw },
62301cf3e27SImran Shaik { .hw = &gpll9.clkr.hw },
62401cf3e27SImran Shaik { .hw = &gpll3.clkr.hw },
62501cf3e27SImran Shaik };
62601cf3e27SImran Shaik
62701cf3e27SImran Shaik static const struct parent_map gcc_parent_map_10[] = {
62801cf3e27SImran Shaik { P_BI_TCXO, 0 },
62901cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
63001cf3e27SImran Shaik { P_SLEEP_CLK, 5 },
63101cf3e27SImran Shaik };
63201cf3e27SImran Shaik
63301cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_10[] = {
63401cf3e27SImran Shaik { .index = DT_BI_TCXO },
63501cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
63601cf3e27SImran Shaik { .index = DT_SLEEP_CLK },
63701cf3e27SImran Shaik };
63801cf3e27SImran Shaik
63901cf3e27SImran Shaik static const struct parent_map gcc_parent_map_11[] = {
64001cf3e27SImran Shaik { P_BI_TCXO, 0 },
64101cf3e27SImran Shaik { P_GPLL12_OUT_EARLY, 1 },
64201cf3e27SImran Shaik { P_GPLL12_OUT_AUX2, 4 },
64301cf3e27SImran Shaik { P_GPLL3_OUT_EARLY, 6 },
64401cf3e27SImran Shaik };
64501cf3e27SImran Shaik
64601cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_11[] = {
64701cf3e27SImran Shaik { .index = DT_BI_TCXO },
64801cf3e27SImran Shaik { .hw = &gpll12.clkr.hw },
64901cf3e27SImran Shaik { .hw = &gpll12_out_aux2.clkr.hw },
65001cf3e27SImran Shaik { .hw = &gpll3.clkr.hw },
65101cf3e27SImran Shaik };
65201cf3e27SImran Shaik
65301cf3e27SImran Shaik static const struct parent_map gcc_parent_map_12[] = {
65401cf3e27SImran Shaik { P_BI_TCXO, 0 },
65501cf3e27SImran Shaik { P_GPLL12_OUT_EARLY, 1 },
65601cf3e27SImran Shaik { P_GPLL0_OUT_AUX2, 2 },
65701cf3e27SImran Shaik { P_GPLL12_OUT_AUX2, 4 },
65801cf3e27SImran Shaik };
65901cf3e27SImran Shaik
66001cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_12[] = {
66101cf3e27SImran Shaik { .index = DT_BI_TCXO },
66201cf3e27SImran Shaik { .hw = &gpll12.clkr.hw },
66301cf3e27SImran Shaik { .hw = &gpll0_out_aux2.clkr.hw },
66401cf3e27SImran Shaik { .hw = &gpll12_out_aux2.clkr.hw },
66501cf3e27SImran Shaik };
66601cf3e27SImran Shaik
66701cf3e27SImran Shaik static const struct parent_map gcc_parent_map_13[] = {
66801cf3e27SImran Shaik { P_BI_TCXO, 0 },
66901cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
67001cf3e27SImran Shaik };
67101cf3e27SImran Shaik
67201cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_13[] = {
67301cf3e27SImran Shaik { .index = DT_BI_TCXO },
67401cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
67501cf3e27SImran Shaik };
67601cf3e27SImran Shaik
67701cf3e27SImran Shaik static const struct parent_map gcc_parent_map_14[] = {
67801cf3e27SImran Shaik { P_BI_TCXO, 0 },
67901cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
68001cf3e27SImran Shaik { P_GPLL0_OUT_AUX2, 2 },
68101cf3e27SImran Shaik { P_GPLL10_OUT_MAIN, 3 },
68201cf3e27SImran Shaik { P_GPLL8_OUT_MAIN, 4 },
68301cf3e27SImran Shaik { P_GPLL9_OUT_MAIN, 5 },
68401cf3e27SImran Shaik { P_GPLL3_OUT_EARLY, 6 },
68501cf3e27SImran Shaik };
68601cf3e27SImran Shaik
68701cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_14[] = {
68801cf3e27SImran Shaik { .index = DT_BI_TCXO },
68901cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
69001cf3e27SImran Shaik { .hw = &gpll0_out_aux2.clkr.hw },
69101cf3e27SImran Shaik { .hw = &gpll10.clkr.hw },
69201cf3e27SImran Shaik { .hw = &gpll8_out_main.clkr.hw },
69301cf3e27SImran Shaik { .hw = &gpll9.clkr.hw },
69401cf3e27SImran Shaik { .hw = &gpll3.clkr.hw },
69501cf3e27SImran Shaik };
69601cf3e27SImran Shaik
69701cf3e27SImran Shaik static const struct parent_map gcc_parent_map_15[] = {
69801cf3e27SImran Shaik { P_BI_TCXO, 0 },
69901cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
70001cf3e27SImran Shaik { P_GPLL8_OUT_EARLY, 2 },
70101cf3e27SImran Shaik { P_GPLL10_OUT_MAIN, 3 },
70201cf3e27SImran Shaik { P_GPLL6_OUT_EARLY, 5 },
70301cf3e27SImran Shaik { P_GPLL3_OUT_MAIN, 6 },
70401cf3e27SImran Shaik };
70501cf3e27SImran Shaik
70601cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_15[] = {
70701cf3e27SImran Shaik { .index = DT_BI_TCXO },
70801cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
70901cf3e27SImran Shaik { .hw = &gpll8.clkr.hw },
71001cf3e27SImran Shaik { .hw = &gpll10.clkr.hw },
71101cf3e27SImran Shaik { .hw = &gpll6.clkr.hw },
71201cf3e27SImran Shaik { .hw = &gpll3_out_main.clkr.hw },
71301cf3e27SImran Shaik };
71401cf3e27SImran Shaik
71501cf3e27SImran Shaik static const struct parent_map gcc_parent_map_21[] = {
71601cf3e27SImran Shaik { P_BI_TCXO, 0 },
71701cf3e27SImran Shaik { P_GPLL0_OUT_EARLY, 1 },
71801cf3e27SImran Shaik { P_GPLL0_OUT_AUX2, 2 },
71901cf3e27SImran Shaik { P_GPLL7_OUT_MAIN, 3 },
72001cf3e27SImran Shaik { P_GPLL4_OUT_MAIN, 5 },
72101cf3e27SImran Shaik };
72201cf3e27SImran Shaik
72301cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_21[] = {
72401cf3e27SImran Shaik { .index = DT_BI_TCXO },
72501cf3e27SImran Shaik { .hw = &gpll0.clkr.hw },
72601cf3e27SImran Shaik { .hw = &gpll0_out_aux2.clkr.hw },
72701cf3e27SImran Shaik { .hw = &gpll7.clkr.hw },
72801cf3e27SImran Shaik { .hw = &gpll4.clkr.hw },
72901cf3e27SImran Shaik };
73001cf3e27SImran Shaik
73101cf3e27SImran Shaik static const struct parent_map gcc_parent_map_22[] = {
73201cf3e27SImran Shaik { P_BI_TCXO, 0 },
73301cf3e27SImran Shaik { P_GPLL12_OUT_EARLY, 1 },
73401cf3e27SImran Shaik { P_GPLL5_OUT_MAIN, 3 },
73501cf3e27SImran Shaik { P_GPLL12_OUT_AUX2, 4 },
73601cf3e27SImran Shaik { P_GPLL3_OUT_EARLY, 6 },
73701cf3e27SImran Shaik };
73801cf3e27SImran Shaik
73901cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_22[] = {
74001cf3e27SImran Shaik { .index = DT_BI_TCXO },
74101cf3e27SImran Shaik { .hw = &gpll12.clkr.hw },
74201cf3e27SImran Shaik { .hw = &gpll5.clkr.hw },
74301cf3e27SImran Shaik { .hw = &gpll12_out_aux2.clkr.hw },
74401cf3e27SImran Shaik { .hw = &gpll3.clkr.hw },
74501cf3e27SImran Shaik };
74601cf3e27SImran Shaik
74701cf3e27SImran Shaik static const struct parent_map gcc_parent_map_24[] = {
74801cf3e27SImran Shaik { P_BI_TCXO, 0 },
74901cf3e27SImran Shaik { P_GPLL11_OUT_MAIN, 1 },
75001cf3e27SImran Shaik { P_GPLL11_OUT_AUX, 2 },
75101cf3e27SImran Shaik { P_GPLL11_OUT_AUX2, 3 },
75201cf3e27SImran Shaik };
75301cf3e27SImran Shaik
75401cf3e27SImran Shaik static const struct clk_parent_data gcc_parent_data_24[] = {
75501cf3e27SImran Shaik { .index = DT_BI_TCXO },
75601cf3e27SImran Shaik { .hw = &gpll11.clkr.hw },
75701cf3e27SImran Shaik { .hw = &gpll11.clkr.hw },
75801cf3e27SImran Shaik { .hw = &gpll11.clkr.hw },
75901cf3e27SImran Shaik };
76001cf3e27SImran Shaik
76101cf3e27SImran Shaik static struct clk_regmap_phy_mux gcc_emac0_cc_sgmiiphy_rx_clk_src = {
76201cf3e27SImran Shaik .reg = 0xad048,
76301cf3e27SImran Shaik .clkr = {
76401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
76501cf3e27SImran Shaik .name = "gcc_emac0_cc_sgmiiphy_rx_clk_src",
76601cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
76701cf3e27SImran Shaik .index = DT_EMAC0_SGMIIPHY_RCLK,
76801cf3e27SImran Shaik },
76901cf3e27SImran Shaik .num_parents = 1,
77001cf3e27SImran Shaik .ops = &clk_regmap_phy_mux_ops,
77101cf3e27SImran Shaik },
77201cf3e27SImran Shaik },
77301cf3e27SImran Shaik };
77401cf3e27SImran Shaik
77501cf3e27SImran Shaik static struct clk_regmap_phy_mux gcc_emac0_cc_sgmiiphy_tx_clk_src = {
77601cf3e27SImran Shaik .reg = 0xad040,
77701cf3e27SImran Shaik .clkr = {
77801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
77901cf3e27SImran Shaik .name = "gcc_emac0_cc_sgmiiphy_tx_clk_src",
78001cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
78101cf3e27SImran Shaik .index = DT_EMAC0_SGMIIPHY_TCLK,
78201cf3e27SImran Shaik },
78301cf3e27SImran Shaik .num_parents = 1,
78401cf3e27SImran Shaik .ops = &clk_regmap_phy_mux_ops,
78501cf3e27SImran Shaik },
78601cf3e27SImran Shaik },
78701cf3e27SImran Shaik };
78801cf3e27SImran Shaik
78901cf3e27SImran Shaik static struct clk_regmap_phy_mux gcc_emac1_cc_sgmiiphy_rx_clk_src = {
79001cf3e27SImran Shaik .reg = 0xae048,
79101cf3e27SImran Shaik .clkr = {
79201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
79301cf3e27SImran Shaik .name = "gcc_emac1_cc_sgmiiphy_rx_clk_src",
79401cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
79501cf3e27SImran Shaik .index = DT_EMAC1_SGMIIPHY_RCLK,
79601cf3e27SImran Shaik },
79701cf3e27SImran Shaik .num_parents = 1,
79801cf3e27SImran Shaik .ops = &clk_regmap_phy_mux_ops,
79901cf3e27SImran Shaik },
80001cf3e27SImran Shaik },
80101cf3e27SImran Shaik };
80201cf3e27SImran Shaik
80301cf3e27SImran Shaik static struct clk_regmap_phy_mux gcc_emac1_cc_sgmiiphy_tx_clk_src = {
80401cf3e27SImran Shaik .reg = 0xae040,
80501cf3e27SImran Shaik .clkr = {
80601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
80701cf3e27SImran Shaik .name = "gcc_emac1_cc_sgmiiphy_tx_clk_src",
80801cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
80901cf3e27SImran Shaik .index = DT_EMAC1_SGMIIPHY_TCLK,
81001cf3e27SImran Shaik },
81101cf3e27SImran Shaik .num_parents = 1,
81201cf3e27SImran Shaik .ops = &clk_regmap_phy_mux_ops,
81301cf3e27SImran Shaik },
81401cf3e27SImran Shaik },
81501cf3e27SImran Shaik };
81601cf3e27SImran Shaik
81701cf3e27SImran Shaik static struct clk_regmap_phy_mux gcc_pcie_pipe_clk_src = {
81801cf3e27SImran Shaik .reg = 0xaf058,
81901cf3e27SImran Shaik .clkr = {
82001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
82101cf3e27SImran Shaik .name = "gcc_pcie_pipe_clk_src",
82201cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
82301cf3e27SImran Shaik .index = DT_PCIE_PIPE_CLK,
82401cf3e27SImran Shaik },
82501cf3e27SImran Shaik .num_parents = 1,
82601cf3e27SImran Shaik .ops = &clk_regmap_phy_mux_ops,
82701cf3e27SImran Shaik },
82801cf3e27SImran Shaik },
82901cf3e27SImran Shaik };
83001cf3e27SImran Shaik
83101cf3e27SImran Shaik static struct clk_regmap_phy_mux gcc_usb3_prim_phy_pipe_clk_src = {
83201cf3e27SImran Shaik .reg = 0x1a05c,
83301cf3e27SImran Shaik .clkr = {
83401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
83501cf3e27SImran Shaik .name = "gcc_usb3_prim_phy_pipe_clk_src",
83601cf3e27SImran Shaik .parent_data = &(const struct clk_parent_data) {
83701cf3e27SImran Shaik .index = DT_USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK,
83801cf3e27SImran Shaik },
83901cf3e27SImran Shaik .num_parents = 1,
84001cf3e27SImran Shaik .ops = &clk_regmap_phy_mux_ops,
84101cf3e27SImran Shaik },
84201cf3e27SImran Shaik },
84301cf3e27SImran Shaik };
84401cf3e27SImran Shaik
84501cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_axi_clk_src[] = {
84601cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
84701cf3e27SImran Shaik F(150000000, P_GPLL0_OUT_AUX2, 2, 0, 0),
84801cf3e27SImran Shaik F(200000000, P_GPLL0_OUT_AUX2, 1.5, 0, 0),
84901cf3e27SImran Shaik F(300000000, P_GPLL0_OUT_AUX2, 1, 0, 0),
85001cf3e27SImran Shaik { }
85101cf3e27SImran Shaik };
85201cf3e27SImran Shaik
85301cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_axi_clk_src = {
85401cf3e27SImran Shaik .cmd_rcgr = 0x5802c,
85501cf3e27SImran Shaik .mnd_width = 0,
85601cf3e27SImran Shaik .hid_width = 5,
85701cf3e27SImran Shaik .parent_map = gcc_parent_map_5,
85801cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_axi_clk_src,
85901cf3e27SImran Shaik .hw_clk_ctrl = true,
86001cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
86101cf3e27SImran Shaik .name = "gcc_camss_axi_clk_src",
86201cf3e27SImran Shaik .parent_data = gcc_parent_data_5,
86301cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_5),
86401cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
86501cf3e27SImran Shaik },
86601cf3e27SImran Shaik };
86701cf3e27SImran Shaik
86801cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_cci_clk_src[] = {
86901cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
87001cf3e27SImran Shaik F(37500000, P_GPLL0_OUT_AUX2, 8, 0, 0),
87101cf3e27SImran Shaik { }
87201cf3e27SImran Shaik };
87301cf3e27SImran Shaik
87401cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_cci_clk_src = {
87501cf3e27SImran Shaik .cmd_rcgr = 0x56000,
87601cf3e27SImran Shaik .mnd_width = 0,
87701cf3e27SImran Shaik .hid_width = 5,
87801cf3e27SImran Shaik .parent_map = gcc_parent_map_14,
87901cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_cci_clk_src,
88001cf3e27SImran Shaik .hw_clk_ctrl = true,
88101cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
88201cf3e27SImran Shaik .name = "gcc_camss_cci_clk_src",
88301cf3e27SImran Shaik .parent_data = gcc_parent_data_14,
88401cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_14),
88501cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
88601cf3e27SImran Shaik },
88701cf3e27SImran Shaik };
88801cf3e27SImran Shaik
88901cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_csi0phytimer_clk_src[] = {
89001cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
89101cf3e27SImran Shaik F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
89201cf3e27SImran Shaik F(200000000, P_GPLL0_OUT_AUX2, 1.5, 0, 0),
89301cf3e27SImran Shaik F(268800000, P_GPLL4_OUT_MAIN, 3, 0, 0),
89401cf3e27SImran Shaik { }
89501cf3e27SImran Shaik };
89601cf3e27SImran Shaik
89701cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_csi0phytimer_clk_src = {
89801cf3e27SImran Shaik .cmd_rcgr = 0x45000,
89901cf3e27SImran Shaik .mnd_width = 0,
90001cf3e27SImran Shaik .hid_width = 5,
90101cf3e27SImran Shaik .parent_map = gcc_parent_map_6,
90201cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_csi0phytimer_clk_src,
90301cf3e27SImran Shaik .hw_clk_ctrl = true,
90401cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
90501cf3e27SImran Shaik .name = "gcc_camss_csi0phytimer_clk_src",
90601cf3e27SImran Shaik .parent_data = gcc_parent_data_6,
90701cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_6),
90801cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
90901cf3e27SImran Shaik },
91001cf3e27SImran Shaik };
91101cf3e27SImran Shaik
91201cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_csi1phytimer_clk_src = {
91301cf3e27SImran Shaik .cmd_rcgr = 0x4501c,
91401cf3e27SImran Shaik .mnd_width = 0,
91501cf3e27SImran Shaik .hid_width = 5,
91601cf3e27SImran Shaik .parent_map = gcc_parent_map_6,
91701cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_csi0phytimer_clk_src,
91801cf3e27SImran Shaik .hw_clk_ctrl = true,
91901cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
92001cf3e27SImran Shaik .name = "gcc_camss_csi1phytimer_clk_src",
92101cf3e27SImran Shaik .parent_data = gcc_parent_data_6,
92201cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_6),
92301cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
92401cf3e27SImran Shaik },
92501cf3e27SImran Shaik };
92601cf3e27SImran Shaik
92701cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_mclk0_clk_src[] = {
92801cf3e27SImran Shaik F(19200000, P_GPLL9_OUT_EARLY, 1, 1, 60),
92901cf3e27SImran Shaik F(24000000, P_GPLL9_OUT_MAIN, 1, 1, 24),
93001cf3e27SImran Shaik F(64000000, P_GPLL9_OUT_EARLY, 9, 1, 2),
93101cf3e27SImran Shaik { }
93201cf3e27SImran Shaik };
93301cf3e27SImran Shaik
93401cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_mclk0_clk_src = {
93501cf3e27SImran Shaik .cmd_rcgr = 0x51000,
93601cf3e27SImran Shaik .mnd_width = 8,
93701cf3e27SImran Shaik .hid_width = 5,
93801cf3e27SImran Shaik .parent_map = gcc_parent_map_3,
93901cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_mclk0_clk_src,
94001cf3e27SImran Shaik .hw_clk_ctrl = true,
94101cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
94201cf3e27SImran Shaik .name = "gcc_camss_mclk0_clk_src",
94301cf3e27SImran Shaik .parent_data = gcc_parent_data_3,
94401cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_3),
94501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
94601cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
94701cf3e27SImran Shaik },
94801cf3e27SImran Shaik };
94901cf3e27SImran Shaik
95001cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_mclk1_clk_src = {
95101cf3e27SImran Shaik .cmd_rcgr = 0x5101c,
95201cf3e27SImran Shaik .mnd_width = 8,
95301cf3e27SImran Shaik .hid_width = 5,
95401cf3e27SImran Shaik .parent_map = gcc_parent_map_3,
95501cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_mclk0_clk_src,
95601cf3e27SImran Shaik .hw_clk_ctrl = true,
95701cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
95801cf3e27SImran Shaik .name = "gcc_camss_mclk1_clk_src",
95901cf3e27SImran Shaik .parent_data = gcc_parent_data_3,
96001cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_3),
96101cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
96201cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
96301cf3e27SImran Shaik },
96401cf3e27SImran Shaik };
96501cf3e27SImran Shaik
96601cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_mclk2_clk_src = {
96701cf3e27SImran Shaik .cmd_rcgr = 0x51038,
96801cf3e27SImran Shaik .mnd_width = 8,
96901cf3e27SImran Shaik .hid_width = 5,
97001cf3e27SImran Shaik .parent_map = gcc_parent_map_3,
97101cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_mclk0_clk_src,
97201cf3e27SImran Shaik .hw_clk_ctrl = true,
97301cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
97401cf3e27SImran Shaik .name = "gcc_camss_mclk2_clk_src",
97501cf3e27SImran Shaik .parent_data = gcc_parent_data_3,
97601cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_3),
97701cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
97801cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
97901cf3e27SImran Shaik },
98001cf3e27SImran Shaik };
98101cf3e27SImran Shaik
98201cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_mclk3_clk_src = {
98301cf3e27SImran Shaik .cmd_rcgr = 0x51054,
98401cf3e27SImran Shaik .mnd_width = 8,
98501cf3e27SImran Shaik .hid_width = 5,
98601cf3e27SImran Shaik .parent_map = gcc_parent_map_3,
98701cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_mclk0_clk_src,
98801cf3e27SImran Shaik .hw_clk_ctrl = true,
98901cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
99001cf3e27SImran Shaik .name = "gcc_camss_mclk3_clk_src",
99101cf3e27SImran Shaik .parent_data = gcc_parent_data_3,
99201cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_3),
99301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
99401cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
99501cf3e27SImran Shaik },
99601cf3e27SImran Shaik };
99701cf3e27SImran Shaik
99801cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_ope_ahb_clk_src[] = {
99901cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
100001cf3e27SImran Shaik F(171428571, P_GPLL0_OUT_EARLY, 3.5, 0, 0),
100101cf3e27SImran Shaik F(240000000, P_GPLL0_OUT_EARLY, 2.5, 0, 0),
100201cf3e27SImran Shaik { }
100301cf3e27SImran Shaik };
100401cf3e27SImran Shaik
100501cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_ope_ahb_clk_src = {
100601cf3e27SImran Shaik .cmd_rcgr = 0x55024,
100701cf3e27SImran Shaik .mnd_width = 0,
100801cf3e27SImran Shaik .hid_width = 5,
100901cf3e27SImran Shaik .parent_map = gcc_parent_map_7,
101001cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_ope_ahb_clk_src,
101101cf3e27SImran Shaik .hw_clk_ctrl = true,
101201cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
101301cf3e27SImran Shaik .name = "gcc_camss_ope_ahb_clk_src",
101401cf3e27SImran Shaik .parent_data = gcc_parent_data_7,
101501cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_7),
101601cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
101701cf3e27SImran Shaik },
101801cf3e27SImran Shaik };
101901cf3e27SImran Shaik
102001cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_ope_clk_src[] = {
102101cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
102201cf3e27SImran Shaik F(200000000, P_GPLL8_OUT_MAIN, 2, 0, 0),
102301cf3e27SImran Shaik F(266600000, P_GPLL8_OUT_MAIN, 1, 0, 0),
102401cf3e27SImran Shaik F(465000000, P_GPLL8_OUT_MAIN, 1, 0, 0),
102501cf3e27SImran Shaik F(580000000, P_GPLL8_OUT_EARLY, 1, 0, 0),
102601cf3e27SImran Shaik { }
102701cf3e27SImran Shaik };
102801cf3e27SImran Shaik
102901cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_ope_clk_src = {
103001cf3e27SImran Shaik .cmd_rcgr = 0x55004,
103101cf3e27SImran Shaik .mnd_width = 0,
103201cf3e27SImran Shaik .hid_width = 5,
103301cf3e27SImran Shaik .parent_map = gcc_parent_map_7,
103401cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_ope_clk_src,
103501cf3e27SImran Shaik .hw_clk_ctrl = true,
103601cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
103701cf3e27SImran Shaik .name = "gcc_camss_ope_clk_src",
103801cf3e27SImran Shaik .parent_data = gcc_parent_data_7,
103901cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_7),
104001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
104101cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
104201cf3e27SImran Shaik },
104301cf3e27SImran Shaik };
104401cf3e27SImran Shaik
104501cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_tfe_0_clk_src[] = {
104601cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
104701cf3e27SImran Shaik F(128000000, P_GPLL10_OUT_MAIN, 9, 0, 0),
104801cf3e27SImran Shaik F(135529412, P_GPLL10_OUT_MAIN, 8.5, 0, 0),
104901cf3e27SImran Shaik F(144000000, P_GPLL10_OUT_MAIN, 8, 0, 0),
105001cf3e27SImran Shaik F(153600000, P_GPLL10_OUT_MAIN, 7.5, 0, 0),
105101cf3e27SImran Shaik F(164571429, P_GPLL10_OUT_MAIN, 7, 0, 0),
105201cf3e27SImran Shaik F(177230769, P_GPLL10_OUT_MAIN, 6.5, 0, 0),
105301cf3e27SImran Shaik F(192000000, P_GPLL10_OUT_MAIN, 6, 0, 0),
105401cf3e27SImran Shaik F(209454545, P_GPLL10_OUT_MAIN, 5.5, 0, 0),
105501cf3e27SImran Shaik F(230400000, P_GPLL10_OUT_MAIN, 5, 0, 0),
105601cf3e27SImran Shaik F(256000000, P_GPLL10_OUT_MAIN, 4.5, 0, 0),
105701cf3e27SImran Shaik F(288000000, P_GPLL10_OUT_MAIN, 4, 0, 0),
105801cf3e27SImran Shaik F(329142857, P_GPLL10_OUT_MAIN, 3.5, 0, 0),
105901cf3e27SImran Shaik F(384000000, P_GPLL10_OUT_MAIN, 3, 0, 0),
106001cf3e27SImran Shaik F(460800000, P_GPLL10_OUT_MAIN, 2.5, 0, 0),
106101cf3e27SImran Shaik F(576000000, P_GPLL10_OUT_MAIN, 2, 0, 0),
106201cf3e27SImran Shaik { }
106301cf3e27SImran Shaik };
106401cf3e27SImran Shaik
106501cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_tfe_0_clk_src = {
106601cf3e27SImran Shaik .cmd_rcgr = 0x52004,
106701cf3e27SImran Shaik .mnd_width = 8,
106801cf3e27SImran Shaik .hid_width = 5,
106901cf3e27SImran Shaik .parent_map = gcc_parent_map_8,
107001cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_tfe_0_clk_src,
107101cf3e27SImran Shaik .hw_clk_ctrl = true,
107201cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
107301cf3e27SImran Shaik .name = "gcc_camss_tfe_0_clk_src",
107401cf3e27SImran Shaik .parent_data = gcc_parent_data_8,
107501cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_8),
107601cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
107701cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
107801cf3e27SImran Shaik },
107901cf3e27SImran Shaik };
108001cf3e27SImran Shaik
108101cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_tfe_0_csid_clk_src[] = {
108201cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
108301cf3e27SImran Shaik F(120000000, P_GPLL0_OUT_EARLY, 5, 0, 0),
108401cf3e27SImran Shaik F(192000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
108501cf3e27SImran Shaik F(240000000, P_GPLL0_OUT_EARLY, 2.5, 0, 0),
108601cf3e27SImran Shaik F(384000000, P_GPLL6_OUT_MAIN, 1, 0, 0),
108701cf3e27SImran Shaik F(426400000, P_GPLL3_OUT_EARLY, 2.5, 0, 0),
108801cf3e27SImran Shaik { }
108901cf3e27SImran Shaik };
109001cf3e27SImran Shaik
109101cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_tfe_0_csid_clk_src = {
109201cf3e27SImran Shaik .cmd_rcgr = 0x52094,
109301cf3e27SImran Shaik .mnd_width = 0,
109401cf3e27SImran Shaik .hid_width = 5,
109501cf3e27SImran Shaik .parent_map = gcc_parent_map_9,
109601cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_tfe_0_csid_clk_src,
109701cf3e27SImran Shaik .hw_clk_ctrl = true,
109801cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
109901cf3e27SImran Shaik .name = "gcc_camss_tfe_0_csid_clk_src",
110001cf3e27SImran Shaik .parent_data = gcc_parent_data_9,
110101cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_9),
110201cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
110301cf3e27SImran Shaik },
110401cf3e27SImran Shaik };
110501cf3e27SImran Shaik
110601cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_tfe_1_clk_src = {
110701cf3e27SImran Shaik .cmd_rcgr = 0x52024,
110801cf3e27SImran Shaik .mnd_width = 8,
110901cf3e27SImran Shaik .hid_width = 5,
111001cf3e27SImran Shaik .parent_map = gcc_parent_map_8,
111101cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_tfe_0_clk_src,
111201cf3e27SImran Shaik .hw_clk_ctrl = true,
111301cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
111401cf3e27SImran Shaik .name = "gcc_camss_tfe_1_clk_src",
111501cf3e27SImran Shaik .parent_data = gcc_parent_data_8,
111601cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_8),
111701cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
111801cf3e27SImran Shaik },
111901cf3e27SImran Shaik };
112001cf3e27SImran Shaik
112101cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_tfe_1_csid_clk_src = {
112201cf3e27SImran Shaik .cmd_rcgr = 0x520b4,
112301cf3e27SImran Shaik .mnd_width = 0,
112401cf3e27SImran Shaik .hid_width = 5,
112501cf3e27SImran Shaik .parent_map = gcc_parent_map_9,
112601cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_tfe_0_csid_clk_src,
112701cf3e27SImran Shaik .hw_clk_ctrl = true,
112801cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
112901cf3e27SImran Shaik .name = "gcc_camss_tfe_1_csid_clk_src",
113001cf3e27SImran Shaik .parent_data = gcc_parent_data_9,
113101cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_9),
113201cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
113301cf3e27SImran Shaik },
113401cf3e27SImran Shaik };
113501cf3e27SImran Shaik
113601cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_tfe_cphy_rx_clk_src[] = {
113701cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
113801cf3e27SImran Shaik F(240000000, P_GPLL0_OUT_EARLY, 2.5, 0, 0),
113901cf3e27SImran Shaik F(341333333, P_GPLL6_OUT_EARLY, 1, 4, 9),
114001cf3e27SImran Shaik F(384000000, P_GPLL6_OUT_EARLY, 2, 0, 0),
114101cf3e27SImran Shaik { }
114201cf3e27SImran Shaik };
114301cf3e27SImran Shaik
114401cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_tfe_cphy_rx_clk_src = {
114501cf3e27SImran Shaik .cmd_rcgr = 0x52064,
114601cf3e27SImran Shaik .mnd_width = 16,
114701cf3e27SImran Shaik .hid_width = 5,
114801cf3e27SImran Shaik .parent_map = gcc_parent_map_15,
114901cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_tfe_cphy_rx_clk_src,
115001cf3e27SImran Shaik .hw_clk_ctrl = true,
115101cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
115201cf3e27SImran Shaik .name = "gcc_camss_tfe_cphy_rx_clk_src",
115301cf3e27SImran Shaik .parent_data = gcc_parent_data_15,
115401cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_15),
115501cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
115601cf3e27SImran Shaik },
115701cf3e27SImran Shaik };
115801cf3e27SImran Shaik
115901cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_camss_top_ahb_clk_src[] = {
116001cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
116101cf3e27SImran Shaik F(40000000, P_GPLL0_OUT_AUX2, 7.5, 0, 0),
116201cf3e27SImran Shaik F(80000000, P_GPLL0_OUT_EARLY, 7.5, 0, 0),
116301cf3e27SImran Shaik { }
116401cf3e27SImran Shaik };
116501cf3e27SImran Shaik
116601cf3e27SImran Shaik static struct clk_rcg2 gcc_camss_top_ahb_clk_src = {
116701cf3e27SImran Shaik .cmd_rcgr = 0x58010,
116801cf3e27SImran Shaik .mnd_width = 0,
116901cf3e27SImran Shaik .hid_width = 5,
117001cf3e27SImran Shaik .parent_map = gcc_parent_map_5,
117101cf3e27SImran Shaik .freq_tbl = ftbl_gcc_camss_top_ahb_clk_src,
117201cf3e27SImran Shaik .hw_clk_ctrl = true,
117301cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
117401cf3e27SImran Shaik .name = "gcc_camss_top_ahb_clk_src",
117501cf3e27SImran Shaik .parent_data = gcc_parent_data_5,
117601cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_5),
117701cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
117801cf3e27SImran Shaik },
117901cf3e27SImran Shaik };
118001cf3e27SImran Shaik
118101cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_emac0_axi_clk_src[] = {
118201cf3e27SImran Shaik F(75000000, P_GPLL0_OUT_AUX2, 4, 0, 0),
118301cf3e27SImran Shaik F(120000000, P_GPLL0_OUT_AUX2, 2.5, 0, 0),
118401cf3e27SImran Shaik F(150000000, P_GPLL0_OUT_AUX2, 2, 0, 0),
118501cf3e27SImran Shaik F(200000000, P_GPLL0_OUT_AUX2, 1.5, 0, 0),
118601cf3e27SImran Shaik F(240000000, P_GPLL0_OUT_EARLY, 2.5, 0, 0),
118701cf3e27SImran Shaik { }
118801cf3e27SImran Shaik };
118901cf3e27SImran Shaik
119001cf3e27SImran Shaik static struct clk_rcg2 gcc_emac0_axi_clk_src = {
119101cf3e27SImran Shaik .cmd_rcgr = 0x109dc,
119201cf3e27SImran Shaik .mnd_width = 0,
119301cf3e27SImran Shaik .hid_width = 5,
119401cf3e27SImran Shaik .parent_map = gcc_parent_map_0,
119501cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_axi_clk_src,
119601cf3e27SImran Shaik .hw_clk_ctrl = true,
119701cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
119801cf3e27SImran Shaik .name = "gcc_emac0_axi_clk_src",
119901cf3e27SImran Shaik .parent_data = gcc_parent_data_0,
120001cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_0),
120101cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
120201cf3e27SImran Shaik },
120301cf3e27SImran Shaik };
120401cf3e27SImran Shaik
120501cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_emac0_phy_aux_clk_src[] = {
120601cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
120701cf3e27SImran Shaik { }
120801cf3e27SImran Shaik };
120901cf3e27SImran Shaik
121001cf3e27SImran Shaik static struct clk_rcg2 gcc_emac0_phy_aux_clk_src = {
121101cf3e27SImran Shaik .cmd_rcgr = 0xad01c,
121201cf3e27SImran Shaik .mnd_width = 0,
121301cf3e27SImran Shaik .hid_width = 5,
121401cf3e27SImran Shaik .parent_map = gcc_parent_map_10,
121501cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
121601cf3e27SImran Shaik .hw_clk_ctrl = true,
121701cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
121801cf3e27SImran Shaik .name = "gcc_emac0_phy_aux_clk_src",
121901cf3e27SImran Shaik .parent_data = gcc_parent_data_10,
122001cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_10),
122101cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
122201cf3e27SImran Shaik },
122301cf3e27SImran Shaik };
122401cf3e27SImran Shaik
122501cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_emac0_ptp_clk_src[] = {
122601cf3e27SImran Shaik F(250000000, P_GPLL12_OUT_AUX2, 2, 0, 0),
122701cf3e27SImran Shaik { }
122801cf3e27SImran Shaik };
122901cf3e27SImran Shaik
123001cf3e27SImran Shaik static struct clk_rcg2 gcc_emac0_ptp_clk_src = {
123101cf3e27SImran Shaik .cmd_rcgr = 0xad064,
123201cf3e27SImran Shaik .mnd_width = 0,
123301cf3e27SImran Shaik .hid_width = 5,
123401cf3e27SImran Shaik .parent_map = gcc_parent_map_11,
123501cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
123601cf3e27SImran Shaik .hw_clk_ctrl = true,
123701cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
123801cf3e27SImran Shaik .name = "gcc_emac0_ptp_clk_src",
123901cf3e27SImran Shaik .parent_data = gcc_parent_data_11,
124001cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_11),
124101cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
124201cf3e27SImran Shaik },
124301cf3e27SImran Shaik };
124401cf3e27SImran Shaik
124501cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_emac0_rgmii_clk_src[] = {
124660276a94SImran Shaik F(2500000, P_GPLL0_OUT_AUX2, 10, 1, 12),
124760276a94SImran Shaik F(25000000, P_GPLL0_OUT_AUX2, 12, 0, 0),
124801cf3e27SImran Shaik F(50000000, P_GPLL0_OUT_AUX2, 6, 0, 0),
124901cf3e27SImran Shaik F(125000000, P_GPLL12_OUT_AUX2, 4, 0, 0),
125001cf3e27SImran Shaik F(250000000, P_GPLL12_OUT_EARLY, 4, 0, 0),
125101cf3e27SImran Shaik { }
125201cf3e27SImran Shaik };
125301cf3e27SImran Shaik
125401cf3e27SImran Shaik static struct clk_rcg2 gcc_emac0_rgmii_clk_src = {
125501cf3e27SImran Shaik .cmd_rcgr = 0xad04c,
125601cf3e27SImran Shaik .mnd_width = 8,
125701cf3e27SImran Shaik .hid_width = 5,
125801cf3e27SImran Shaik .parent_map = gcc_parent_map_12,
125901cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
126001cf3e27SImran Shaik .hw_clk_ctrl = true,
126101cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
126201cf3e27SImran Shaik .name = "gcc_emac0_rgmii_clk_src",
126301cf3e27SImran Shaik .parent_data = gcc_parent_data_12,
126401cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_12),
126501cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
126601cf3e27SImran Shaik },
126701cf3e27SImran Shaik };
126801cf3e27SImran Shaik
126901cf3e27SImran Shaik static struct clk_rcg2 gcc_emac1_axi_clk_src = {
127001cf3e27SImran Shaik .cmd_rcgr = 0x109fc,
127101cf3e27SImran Shaik .mnd_width = 0,
127201cf3e27SImran Shaik .hid_width = 5,
127301cf3e27SImran Shaik .parent_map = gcc_parent_map_0,
127401cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_axi_clk_src,
127501cf3e27SImran Shaik .hw_clk_ctrl = true,
127601cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
127701cf3e27SImran Shaik .name = "gcc_emac1_axi_clk_src",
127801cf3e27SImran Shaik .parent_data = gcc_parent_data_0,
127901cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_0),
128001cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
128101cf3e27SImran Shaik },
128201cf3e27SImran Shaik };
128301cf3e27SImran Shaik
128401cf3e27SImran Shaik static struct clk_rcg2 gcc_emac1_phy_aux_clk_src = {
128501cf3e27SImran Shaik .cmd_rcgr = 0xae01c,
128601cf3e27SImran Shaik .mnd_width = 0,
128701cf3e27SImran Shaik .hid_width = 5,
128801cf3e27SImran Shaik .parent_map = gcc_parent_map_10,
128901cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
129001cf3e27SImran Shaik .hw_clk_ctrl = true,
129101cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
129201cf3e27SImran Shaik .name = "gcc_emac1_phy_aux_clk_src",
129301cf3e27SImran Shaik .parent_data = gcc_parent_data_10,
129401cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_10),
129501cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
129601cf3e27SImran Shaik },
129701cf3e27SImran Shaik };
129801cf3e27SImran Shaik
129901cf3e27SImran Shaik static struct clk_rcg2 gcc_emac1_ptp_clk_src = {
130001cf3e27SImran Shaik .cmd_rcgr = 0xae064,
130101cf3e27SImran Shaik .mnd_width = 0,
130201cf3e27SImran Shaik .hid_width = 5,
130301cf3e27SImran Shaik .parent_map = gcc_parent_map_11,
130401cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
130501cf3e27SImran Shaik .hw_clk_ctrl = true,
130601cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
130701cf3e27SImran Shaik .name = "gcc_emac1_ptp_clk_src",
130801cf3e27SImran Shaik .parent_data = gcc_parent_data_11,
130901cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_11),
131001cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
131101cf3e27SImran Shaik },
131201cf3e27SImran Shaik };
131301cf3e27SImran Shaik
131401cf3e27SImran Shaik static struct clk_rcg2 gcc_emac1_rgmii_clk_src = {
131501cf3e27SImran Shaik .cmd_rcgr = 0xae04c,
131601cf3e27SImran Shaik .mnd_width = 8,
131701cf3e27SImran Shaik .hid_width = 5,
131801cf3e27SImran Shaik .parent_map = gcc_parent_map_12,
131901cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_rgmii_clk_src,
132001cf3e27SImran Shaik .hw_clk_ctrl = true,
132101cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
132201cf3e27SImran Shaik .name = "gcc_emac1_rgmii_clk_src",
132301cf3e27SImran Shaik .parent_data = gcc_parent_data_12,
132401cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_12),
132501cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
132601cf3e27SImran Shaik },
132701cf3e27SImran Shaik };
132801cf3e27SImran Shaik
132901cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
133001cf3e27SImran Shaik F(25000000, P_GPLL0_OUT_AUX2, 12, 0, 0),
133101cf3e27SImran Shaik F(50000000, P_GPLL0_OUT_AUX2, 6, 0, 0),
133201cf3e27SImran Shaik F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
133301cf3e27SImran Shaik F(200000000, P_GPLL0_OUT_AUX2, 1.5, 0, 0),
133401cf3e27SImran Shaik { }
133501cf3e27SImran Shaik };
133601cf3e27SImran Shaik
133701cf3e27SImran Shaik static struct clk_rcg2 gcc_gp1_clk_src = {
133801cf3e27SImran Shaik .cmd_rcgr = 0x4d004,
133901cf3e27SImran Shaik .mnd_width = 8,
134001cf3e27SImran Shaik .hid_width = 5,
134101cf3e27SImran Shaik .parent_map = gcc_parent_map_2,
134201cf3e27SImran Shaik .freq_tbl = ftbl_gcc_gp1_clk_src,
134301cf3e27SImran Shaik .hw_clk_ctrl = true,
134401cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
134501cf3e27SImran Shaik .name = "gcc_gp1_clk_src",
134601cf3e27SImran Shaik .parent_data = gcc_parent_data_2,
134701cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_2),
134801cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
134901cf3e27SImran Shaik },
135001cf3e27SImran Shaik };
135101cf3e27SImran Shaik
135201cf3e27SImran Shaik static struct clk_rcg2 gcc_gp2_clk_src = {
135301cf3e27SImran Shaik .cmd_rcgr = 0x4e004,
135401cf3e27SImran Shaik .mnd_width = 8,
135501cf3e27SImran Shaik .hid_width = 5,
135601cf3e27SImran Shaik .parent_map = gcc_parent_map_2,
135701cf3e27SImran Shaik .freq_tbl = ftbl_gcc_gp1_clk_src,
135801cf3e27SImran Shaik .hw_clk_ctrl = true,
135901cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
136001cf3e27SImran Shaik .name = "gcc_gp2_clk_src",
136101cf3e27SImran Shaik .parent_data = gcc_parent_data_2,
136201cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_2),
136301cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
136401cf3e27SImran Shaik },
136501cf3e27SImran Shaik };
136601cf3e27SImran Shaik
136701cf3e27SImran Shaik static struct clk_rcg2 gcc_gp3_clk_src = {
136801cf3e27SImran Shaik .cmd_rcgr = 0x4f004,
136901cf3e27SImran Shaik .mnd_width = 8,
137001cf3e27SImran Shaik .hid_width = 5,
137101cf3e27SImran Shaik .parent_map = gcc_parent_map_2,
137201cf3e27SImran Shaik .freq_tbl = ftbl_gcc_gp1_clk_src,
137301cf3e27SImran Shaik .hw_clk_ctrl = true,
137401cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
137501cf3e27SImran Shaik .name = "gcc_gp3_clk_src",
137601cf3e27SImran Shaik .parent_data = gcc_parent_data_2,
137701cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_2),
137801cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
137901cf3e27SImran Shaik },
138001cf3e27SImran Shaik };
138101cf3e27SImran Shaik
138201cf3e27SImran Shaik static struct clk_rcg2 gcc_pcie_aux_clk_src = {
138301cf3e27SImran Shaik .cmd_rcgr = 0xaf074,
138401cf3e27SImran Shaik .mnd_width = 16,
138501cf3e27SImran Shaik .hid_width = 5,
138601cf3e27SImran Shaik .parent_map = gcc_parent_map_4,
138701cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
138801cf3e27SImran Shaik .hw_clk_ctrl = true,
138901cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
139001cf3e27SImran Shaik .name = "gcc_pcie_aux_clk_src",
139101cf3e27SImran Shaik .parent_data = gcc_parent_data_4,
139201cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_4),
139301cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
139401cf3e27SImran Shaik },
139501cf3e27SImran Shaik };
139601cf3e27SImran Shaik
139701cf3e27SImran Shaik static struct clk_rcg2 gcc_pcie_aux_phy_clk_src = {
139801cf3e27SImran Shaik .cmd_rcgr = 0xaf05c,
139901cf3e27SImran Shaik .mnd_width = 0,
140001cf3e27SImran Shaik .hid_width = 5,
140101cf3e27SImran Shaik .parent_map = gcc_parent_map_4,
140201cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
140301cf3e27SImran Shaik .hw_clk_ctrl = true,
140401cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
140501cf3e27SImran Shaik .name = "gcc_pcie_aux_phy_clk_src",
140601cf3e27SImran Shaik .parent_data = gcc_parent_data_4,
140701cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_4),
140801cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
140901cf3e27SImran Shaik },
141001cf3e27SImran Shaik };
141101cf3e27SImran Shaik
141201cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_pcie_rchng_phy_clk_src[] = {
141301cf3e27SImran Shaik F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
141401cf3e27SImran Shaik { }
141501cf3e27SImran Shaik };
141601cf3e27SImran Shaik
141701cf3e27SImran Shaik static struct clk_rcg2 gcc_pcie_rchng_phy_clk_src = {
141801cf3e27SImran Shaik .cmd_rcgr = 0xaf028,
141901cf3e27SImran Shaik .mnd_width = 0,
142001cf3e27SImran Shaik .hid_width = 5,
142101cf3e27SImran Shaik .parent_map = gcc_parent_map_0,
142201cf3e27SImran Shaik .freq_tbl = ftbl_gcc_pcie_rchng_phy_clk_src,
142301cf3e27SImran Shaik .hw_clk_ctrl = true,
142401cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
142501cf3e27SImran Shaik .name = "gcc_pcie_rchng_phy_clk_src",
142601cf3e27SImran Shaik .parent_data = gcc_parent_data_0,
142701cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_0),
142801cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
142901cf3e27SImran Shaik },
143001cf3e27SImran Shaik };
143101cf3e27SImran Shaik
143201cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = {
143301cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
143401cf3e27SImran Shaik F(60000000, P_GPLL0_OUT_AUX2, 5, 0, 0),
143501cf3e27SImran Shaik { }
143601cf3e27SImran Shaik };
143701cf3e27SImran Shaik
143801cf3e27SImran Shaik static struct clk_rcg2 gcc_pdm2_clk_src = {
143901cf3e27SImran Shaik .cmd_rcgr = 0x20010,
144001cf3e27SImran Shaik .mnd_width = 0,
144101cf3e27SImran Shaik .hid_width = 5,
144201cf3e27SImran Shaik .parent_map = gcc_parent_map_0,
144301cf3e27SImran Shaik .freq_tbl = ftbl_gcc_pdm2_clk_src,
144401cf3e27SImran Shaik .hw_clk_ctrl = true,
144501cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
144601cf3e27SImran Shaik .name = "gcc_pdm2_clk_src",
144701cf3e27SImran Shaik .parent_data = gcc_parent_data_0,
144801cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_0),
144901cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
145001cf3e27SImran Shaik },
145101cf3e27SImran Shaik };
145201cf3e27SImran Shaik
145301cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = {
145401cf3e27SImran Shaik F(7372800, P_GPLL0_OUT_AUX2, 1, 384, 15625),
145501cf3e27SImran Shaik F(14745600, P_GPLL0_OUT_AUX2, 1, 768, 15625),
145601cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
145701cf3e27SImran Shaik F(29491200, P_GPLL0_OUT_AUX2, 1, 1536, 15625),
145801cf3e27SImran Shaik F(32000000, P_GPLL0_OUT_AUX2, 1, 8, 75),
145901cf3e27SImran Shaik F(48000000, P_GPLL0_OUT_AUX2, 1, 4, 25),
146001cf3e27SImran Shaik F(64000000, P_GPLL0_OUT_AUX2, 1, 16, 75),
146101cf3e27SImran Shaik F(75000000, P_GPLL0_OUT_AUX2, 4, 0, 0),
146201cf3e27SImran Shaik F(80000000, P_GPLL0_OUT_AUX2, 1, 4, 15),
146301cf3e27SImran Shaik F(96000000, P_GPLL0_OUT_AUX2, 1, 8, 25),
146401cf3e27SImran Shaik F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
146501cf3e27SImran Shaik F(102400000, P_GPLL0_OUT_AUX2, 1, 128, 375),
146601cf3e27SImran Shaik F(112000000, P_GPLL0_OUT_AUX2, 1, 28, 75),
146701cf3e27SImran Shaik F(117964800, P_GPLL0_OUT_AUX2, 1, 6144, 15625),
146801cf3e27SImran Shaik F(120000000, P_GPLL0_OUT_AUX2, 2.5, 0, 0),
146901cf3e27SImran Shaik F(128000000, P_GPLL6_OUT_MAIN, 3, 0, 0),
147001cf3e27SImran Shaik { }
147101cf3e27SImran Shaik };
147201cf3e27SImran Shaik
147301cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = {
147401cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s0_clk_src",
147501cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
147601cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
147701cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
147801cf3e27SImran Shaik };
147901cf3e27SImran Shaik
148001cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = {
148101cf3e27SImran Shaik .cmd_rcgr = 0x1f148,
148201cf3e27SImran Shaik .mnd_width = 16,
148301cf3e27SImran Shaik .hid_width = 5,
148401cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
148501cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
148601cf3e27SImran Shaik .hw_clk_ctrl = true,
148701cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
148801cf3e27SImran Shaik };
148901cf3e27SImran Shaik
149001cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = {
149101cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s1_clk_src",
149201cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
149301cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
149401cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
149501cf3e27SImran Shaik };
149601cf3e27SImran Shaik
149701cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = {
149801cf3e27SImran Shaik .cmd_rcgr = 0x1f278,
149901cf3e27SImran Shaik .mnd_width = 16,
150001cf3e27SImran Shaik .hid_width = 5,
150101cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
150201cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
150301cf3e27SImran Shaik .hw_clk_ctrl = true,
150401cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
150501cf3e27SImran Shaik };
150601cf3e27SImran Shaik
150701cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = {
150801cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s2_clk_src",
150901cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
151001cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
151101cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
151201cf3e27SImran Shaik };
151301cf3e27SImran Shaik
151401cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = {
151501cf3e27SImran Shaik .cmd_rcgr = 0x1f3a8,
151601cf3e27SImran Shaik .mnd_width = 16,
151701cf3e27SImran Shaik .hid_width = 5,
151801cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
151901cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
152001cf3e27SImran Shaik .hw_clk_ctrl = true,
152101cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
152201cf3e27SImran Shaik };
152301cf3e27SImran Shaik
152401cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = {
152501cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s3_clk_src",
152601cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
152701cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
152801cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
152901cf3e27SImran Shaik };
153001cf3e27SImran Shaik
153101cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = {
153201cf3e27SImran Shaik .cmd_rcgr = 0x1f4d8,
153301cf3e27SImran Shaik .mnd_width = 16,
153401cf3e27SImran Shaik .hid_width = 5,
153501cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
153601cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
153701cf3e27SImran Shaik .hw_clk_ctrl = true,
153801cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
153901cf3e27SImran Shaik };
154001cf3e27SImran Shaik
154101cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = {
154201cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s4_clk_src",
154301cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
154401cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
154501cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
154601cf3e27SImran Shaik };
154701cf3e27SImran Shaik
154801cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = {
154901cf3e27SImran Shaik .cmd_rcgr = 0x1f608,
155001cf3e27SImran Shaik .mnd_width = 16,
155101cf3e27SImran Shaik .hid_width = 5,
155201cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
155301cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
155401cf3e27SImran Shaik .hw_clk_ctrl = true,
155501cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
155601cf3e27SImran Shaik };
155701cf3e27SImran Shaik
155801cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = {
155901cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s5_clk_src",
156001cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
156101cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
156201cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
156301cf3e27SImran Shaik };
156401cf3e27SImran Shaik
156501cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = {
156601cf3e27SImran Shaik .cmd_rcgr = 0x1f738,
156701cf3e27SImran Shaik .mnd_width = 16,
156801cf3e27SImran Shaik .hid_width = 5,
156901cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
157001cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
157101cf3e27SImran Shaik .hw_clk_ctrl = true,
157201cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
157301cf3e27SImran Shaik };
157401cf3e27SImran Shaik
157501cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s6_clk_src_init = {
157601cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s6_clk_src",
157701cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
157801cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
157901cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
158001cf3e27SImran Shaik };
158101cf3e27SImran Shaik
158201cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = {
158301cf3e27SImran Shaik .cmd_rcgr = 0x1f868,
158401cf3e27SImran Shaik .mnd_width = 16,
158501cf3e27SImran Shaik .hid_width = 5,
158601cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
158701cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
158801cf3e27SImran Shaik .hw_clk_ctrl = true,
158901cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s6_clk_src_init,
159001cf3e27SImran Shaik };
159101cf3e27SImran Shaik
159201cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s7_clk_src_init = {
159301cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s7_clk_src",
159401cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
159501cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
159601cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
159701cf3e27SImran Shaik };
159801cf3e27SImran Shaik
159901cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = {
160001cf3e27SImran Shaik .cmd_rcgr = 0x1f998,
160101cf3e27SImran Shaik .mnd_width = 16,
160201cf3e27SImran Shaik .hid_width = 5,
160301cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
160401cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
160501cf3e27SImran Shaik .hw_clk_ctrl = true,
160601cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s7_clk_src_init,
160701cf3e27SImran Shaik };
160801cf3e27SImran Shaik
160901cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s8_clk_src_init = {
161001cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s8_clk_src",
161101cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
161201cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
161301cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
161401cf3e27SImran Shaik };
161501cf3e27SImran Shaik
161601cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s8_clk_src = {
161701cf3e27SImran Shaik .cmd_rcgr = 0x1fac8,
161801cf3e27SImran Shaik .mnd_width = 16,
161901cf3e27SImran Shaik .hid_width = 5,
162001cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
162101cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
162201cf3e27SImran Shaik .hw_clk_ctrl = true,
162301cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s8_clk_src_init,
162401cf3e27SImran Shaik };
162501cf3e27SImran Shaik
162601cf3e27SImran Shaik static struct clk_init_data gcc_qupv3_wrap0_s9_clk_src_init = {
162701cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s9_clk_src",
162801cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
162901cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
163001cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
163101cf3e27SImran Shaik };
163201cf3e27SImran Shaik
163301cf3e27SImran Shaik static struct clk_rcg2 gcc_qupv3_wrap0_s9_clk_src = {
163401cf3e27SImran Shaik .cmd_rcgr = 0x1fbf8,
163501cf3e27SImran Shaik .mnd_width = 16,
163601cf3e27SImran Shaik .hid_width = 5,
163701cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
163801cf3e27SImran Shaik .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src,
163901cf3e27SImran Shaik .hw_clk_ctrl = true,
164001cf3e27SImran Shaik .clkr.hw.init = &gcc_qupv3_wrap0_s9_clk_src_init,
164101cf3e27SImran Shaik };
164201cf3e27SImran Shaik
164301cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
164401cf3e27SImran Shaik F(144000, P_BI_TCXO, 16, 3, 25),
164501cf3e27SImran Shaik F(400000, P_BI_TCXO, 12, 1, 4),
164601cf3e27SImran Shaik F(20000000, P_GPLL0_OUT_AUX2, 5, 1, 3),
164701cf3e27SImran Shaik F(25000000, P_GPLL0_OUT_AUX2, 6, 1, 2),
164801cf3e27SImran Shaik F(50000000, P_GPLL0_OUT_AUX2, 6, 0, 0),
164901cf3e27SImran Shaik F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
165001cf3e27SImran Shaik F(192000000, P_GPLL6_OUT_MAIN, 2, 0, 0),
165101cf3e27SImran Shaik F(384000000, P_GPLL6_OUT_MAIN, 1, 0, 0),
165201cf3e27SImran Shaik { }
165301cf3e27SImran Shaik };
165401cf3e27SImran Shaik
165501cf3e27SImran Shaik static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
165601cf3e27SImran Shaik .cmd_rcgr = 0x38028,
165701cf3e27SImran Shaik .mnd_width = 8,
165801cf3e27SImran Shaik .hid_width = 5,
165901cf3e27SImran Shaik .parent_map = gcc_parent_map_1,
166001cf3e27SImran Shaik .freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
166101cf3e27SImran Shaik .hw_clk_ctrl = true,
166201cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
166301cf3e27SImran Shaik .name = "gcc_sdcc1_apps_clk_src",
166401cf3e27SImran Shaik .parent_data = gcc_parent_data_1,
166501cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_1),
166601cf3e27SImran Shaik .ops = &clk_rcg2_shared_floor_ops,
166701cf3e27SImran Shaik },
166801cf3e27SImran Shaik };
166901cf3e27SImran Shaik
167001cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
167101cf3e27SImran Shaik F(75000000, P_GPLL0_OUT_AUX2, 4, 0, 0),
167201cf3e27SImran Shaik F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
167301cf3e27SImran Shaik F(150000000, P_GPLL0_OUT_AUX2, 2, 0, 0),
167401cf3e27SImran Shaik F(200000000, P_GPLL0_OUT_EARLY, 3, 0, 0),
167501cf3e27SImran Shaik F(300000000, P_GPLL0_OUT_AUX2, 1, 0, 0),
167601cf3e27SImran Shaik { }
167701cf3e27SImran Shaik };
167801cf3e27SImran Shaik
167901cf3e27SImran Shaik static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
168001cf3e27SImran Shaik .cmd_rcgr = 0x38010,
168101cf3e27SImran Shaik .mnd_width = 0,
168201cf3e27SImran Shaik .hid_width = 5,
168301cf3e27SImran Shaik .parent_map = gcc_parent_map_0,
168401cf3e27SImran Shaik .freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
168501cf3e27SImran Shaik .hw_clk_ctrl = true,
168601cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
168701cf3e27SImran Shaik .name = "gcc_sdcc1_ice_core_clk_src",
168801cf3e27SImran Shaik .parent_data = gcc_parent_data_0,
168901cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_0),
169001cf3e27SImran Shaik .ops = &clk_rcg2_shared_floor_ops,
169101cf3e27SImran Shaik },
169201cf3e27SImran Shaik };
169301cf3e27SImran Shaik
169401cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = {
169501cf3e27SImran Shaik F(400000, P_BI_TCXO, 12, 1, 4),
169601cf3e27SImran Shaik F(19200000, P_BI_TCXO, 1, 0, 0),
169701cf3e27SImran Shaik F(25000000, P_GPLL0_OUT_AUX2, 12, 0, 0),
169801cf3e27SImran Shaik F(50000000, P_GPLL0_OUT_AUX2, 6, 0, 0),
169901cf3e27SImran Shaik F(100000000, P_GPLL0_OUT_AUX2, 3, 0, 0),
170001cf3e27SImran Shaik F(202000000, P_GPLL7_OUT_MAIN, 4, 0, 0),
170101cf3e27SImran Shaik { }
170201cf3e27SImran Shaik };
170301cf3e27SImran Shaik
170401cf3e27SImran Shaik static struct clk_rcg2 gcc_sdcc2_apps_clk_src = {
170501cf3e27SImran Shaik .cmd_rcgr = 0x1e00c,
170601cf3e27SImran Shaik .mnd_width = 8,
170701cf3e27SImran Shaik .hid_width = 5,
170801cf3e27SImran Shaik .parent_map = gcc_parent_map_21,
170901cf3e27SImran Shaik .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src,
171001cf3e27SImran Shaik .hw_clk_ctrl = true,
171101cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
171201cf3e27SImran Shaik .name = "gcc_sdcc2_apps_clk_src",
171301cf3e27SImran Shaik .parent_data = gcc_parent_data_21,
171401cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_21),
171501cf3e27SImran Shaik .ops = &clk_rcg2_shared_floor_ops,
171601cf3e27SImran Shaik },
171701cf3e27SImran Shaik };
171801cf3e27SImran Shaik
171901cf3e27SImran Shaik static struct clk_rcg2 gcc_tscss_clk_src = {
172001cf3e27SImran Shaik .cmd_rcgr = 0xac004,
172101cf3e27SImran Shaik .mnd_width = 0,
172201cf3e27SImran Shaik .hid_width = 5,
172301cf3e27SImran Shaik .parent_map = gcc_parent_map_22,
172401cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_ptp_clk_src,
172501cf3e27SImran Shaik .hw_clk_ctrl = true,
172601cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
172701cf3e27SImran Shaik .name = "gcc_tscss_clk_src",
172801cf3e27SImran Shaik .parent_data = gcc_parent_data_22,
172901cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_22),
173001cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
173101cf3e27SImran Shaik },
173201cf3e27SImran Shaik };
173301cf3e27SImran Shaik
173401cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_usb20_master_clk_src[] = {
173501cf3e27SImran Shaik F(60000000, P_GPLL0_OUT_AUX2, 5, 0, 0),
173601cf3e27SImran Shaik F(120000000, P_GPLL0_OUT_EARLY, 5, 0, 0),
173701cf3e27SImran Shaik { }
173801cf3e27SImran Shaik };
173901cf3e27SImran Shaik
174001cf3e27SImran Shaik static struct clk_rcg2 gcc_usb20_master_clk_src = {
174101cf3e27SImran Shaik .cmd_rcgr = 0xb003c,
174201cf3e27SImran Shaik .mnd_width = 8,
174301cf3e27SImran Shaik .hid_width = 5,
174401cf3e27SImran Shaik .parent_map = gcc_parent_map_0,
174501cf3e27SImran Shaik .freq_tbl = ftbl_gcc_usb20_master_clk_src,
174601cf3e27SImran Shaik .hw_clk_ctrl = true,
174701cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
174801cf3e27SImran Shaik .name = "gcc_usb20_master_clk_src",
174901cf3e27SImran Shaik .parent_data = gcc_parent_data_0,
175001cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_0),
175101cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
175201cf3e27SImran Shaik },
175301cf3e27SImran Shaik };
175401cf3e27SImran Shaik
175501cf3e27SImran Shaik static struct clk_rcg2 gcc_usb20_mock_utmi_clk_src = {
175601cf3e27SImran Shaik .cmd_rcgr = 0xb0020,
175701cf3e27SImran Shaik .mnd_width = 0,
175801cf3e27SImran Shaik .hid_width = 5,
175901cf3e27SImran Shaik .parent_map = gcc_parent_map_13,
176001cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
176101cf3e27SImran Shaik .hw_clk_ctrl = true,
176201cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
176301cf3e27SImran Shaik .name = "gcc_usb20_mock_utmi_clk_src",
176401cf3e27SImran Shaik .parent_data = gcc_parent_data_13,
176501cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_13),
176601cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
176701cf3e27SImran Shaik },
176801cf3e27SImran Shaik };
176901cf3e27SImran Shaik
177001cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = {
177101cf3e27SImran Shaik F(66666667, P_GPLL0_OUT_AUX2, 4.5, 0, 0),
177201cf3e27SImran Shaik F(133333333, P_GPLL0_OUT_EARLY, 4.5, 0, 0),
177301cf3e27SImran Shaik F(200000000, P_GPLL0_OUT_EARLY, 3, 0, 0),
177401cf3e27SImran Shaik F(240000000, P_GPLL0_OUT_EARLY, 2.5, 0, 0),
177501cf3e27SImran Shaik { }
177601cf3e27SImran Shaik };
177701cf3e27SImran Shaik
177801cf3e27SImran Shaik static struct clk_rcg2 gcc_usb30_prim_master_clk_src = {
177901cf3e27SImran Shaik .cmd_rcgr = 0x1a01c,
178001cf3e27SImran Shaik .mnd_width = 8,
178101cf3e27SImran Shaik .hid_width = 5,
178201cf3e27SImran Shaik .parent_map = gcc_parent_map_0,
178301cf3e27SImran Shaik .freq_tbl = ftbl_gcc_usb30_prim_master_clk_src,
178401cf3e27SImran Shaik .hw_clk_ctrl = true,
178501cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
178601cf3e27SImran Shaik .name = "gcc_usb30_prim_master_clk_src",
178701cf3e27SImran Shaik .parent_data = gcc_parent_data_0,
178801cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_0),
178901cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
179001cf3e27SImran Shaik },
179101cf3e27SImran Shaik };
179201cf3e27SImran Shaik
179301cf3e27SImran Shaik static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = {
179401cf3e27SImran Shaik .cmd_rcgr = 0x1a034,
179501cf3e27SImran Shaik .mnd_width = 0,
179601cf3e27SImran Shaik .hid_width = 5,
179701cf3e27SImran Shaik .parent_map = gcc_parent_map_0,
179801cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
179901cf3e27SImran Shaik .hw_clk_ctrl = true,
180001cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
180101cf3e27SImran Shaik .name = "gcc_usb30_prim_mock_utmi_clk_src",
180201cf3e27SImran Shaik .parent_data = gcc_parent_data_0,
180301cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_0),
180401cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
180501cf3e27SImran Shaik },
180601cf3e27SImran Shaik };
180701cf3e27SImran Shaik
180801cf3e27SImran Shaik static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = {
180901cf3e27SImran Shaik .cmd_rcgr = 0x1a060,
181001cf3e27SImran Shaik .mnd_width = 0,
181101cf3e27SImran Shaik .hid_width = 5,
181201cf3e27SImran Shaik .parent_map = gcc_parent_map_4,
181301cf3e27SImran Shaik .freq_tbl = ftbl_gcc_emac0_phy_aux_clk_src,
181401cf3e27SImran Shaik .hw_clk_ctrl = true,
181501cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
181601cf3e27SImran Shaik .name = "gcc_usb3_prim_phy_aux_clk_src",
181701cf3e27SImran Shaik .parent_data = gcc_parent_data_4,
181801cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_4),
181901cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
182001cf3e27SImran Shaik },
182101cf3e27SImran Shaik };
182201cf3e27SImran Shaik
182301cf3e27SImran Shaik static const struct freq_tbl ftbl_gcc_video_venus_clk_src[] = {
182401cf3e27SImran Shaik F(133333333, P_GPLL11_OUT_MAIN, 4.5, 0, 0),
182501cf3e27SImran Shaik F(240000000, P_GPLL11_OUT_MAIN, 2.5, 0, 0),
182601cf3e27SImran Shaik F(300000000, P_GPLL11_OUT_MAIN, 2, 0, 0),
182701cf3e27SImran Shaik F(384000000, P_GPLL11_OUT_MAIN, 2, 0, 0),
182801cf3e27SImran Shaik { }
182901cf3e27SImran Shaik };
183001cf3e27SImran Shaik
183101cf3e27SImran Shaik static struct clk_rcg2 gcc_video_venus_clk_src = {
183201cf3e27SImran Shaik .cmd_rcgr = 0x6d000,
183301cf3e27SImran Shaik .mnd_width = 0,
183401cf3e27SImran Shaik .hid_width = 5,
183501cf3e27SImran Shaik .parent_map = gcc_parent_map_24,
183601cf3e27SImran Shaik .freq_tbl = ftbl_gcc_video_venus_clk_src,
183701cf3e27SImran Shaik .hw_clk_ctrl = true,
183801cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
183901cf3e27SImran Shaik .name = "gcc_video_venus_clk_src",
184001cf3e27SImran Shaik .parent_data = gcc_parent_data_24,
184101cf3e27SImran Shaik .num_parents = ARRAY_SIZE(gcc_parent_data_24),
184201cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
184301cf3e27SImran Shaik .ops = &clk_rcg2_shared_ops,
184401cf3e27SImran Shaik },
184501cf3e27SImran Shaik };
184601cf3e27SImran Shaik
184701cf3e27SImran Shaik static struct clk_regmap_div gcc_disp_gpll0_clk_src = {
184801cf3e27SImran Shaik .reg = 0x17058,
184901cf3e27SImran Shaik .shift = 0,
185001cf3e27SImran Shaik .width = 2,
185101cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
185201cf3e27SImran Shaik .name = "gcc_disp_gpll0_clk_src",
185301cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
185401cf3e27SImran Shaik &gpll0.clkr.hw,
185501cf3e27SImran Shaik },
185601cf3e27SImran Shaik .num_parents = 1,
185701cf3e27SImran Shaik .ops = &clk_regmap_div_ops,
185801cf3e27SImran Shaik },
185901cf3e27SImran Shaik };
186001cf3e27SImran Shaik
186101cf3e27SImran Shaik static struct clk_regmap_div gcc_usb20_mock_utmi_postdiv_clk_src = {
186201cf3e27SImran Shaik .reg = 0xb0038,
186301cf3e27SImran Shaik .shift = 0,
186401cf3e27SImran Shaik .width = 4,
186501cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
186601cf3e27SImran Shaik .name = "gcc_usb20_mock_utmi_postdiv_clk_src",
186701cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
186801cf3e27SImran Shaik &gcc_usb20_mock_utmi_clk_src.clkr.hw,
186901cf3e27SImran Shaik },
187001cf3e27SImran Shaik .num_parents = 1,
187101cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
187201cf3e27SImran Shaik .ops = &clk_regmap_div_ro_ops,
187301cf3e27SImran Shaik },
187401cf3e27SImran Shaik };
187501cf3e27SImran Shaik
187601cf3e27SImran Shaik static struct clk_regmap_div gcc_usb30_prim_mock_utmi_postdiv_clk_src = {
187701cf3e27SImran Shaik .reg = 0x1a04c,
187801cf3e27SImran Shaik .shift = 0,
187901cf3e27SImran Shaik .width = 2,
188001cf3e27SImran Shaik .clkr.hw.init = &(const struct clk_init_data) {
188101cf3e27SImran Shaik .name = "gcc_usb30_prim_mock_utmi_postdiv_clk_src",
188201cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
188301cf3e27SImran Shaik &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
188401cf3e27SImran Shaik },
188501cf3e27SImran Shaik .num_parents = 1,
188601cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
188701cf3e27SImran Shaik .ops = &clk_regmap_div_ro_ops,
188801cf3e27SImran Shaik },
188901cf3e27SImran Shaik };
189001cf3e27SImran Shaik
189101cf3e27SImran Shaik static struct clk_branch gcc_ahb2phy_csi_clk = {
189201cf3e27SImran Shaik .halt_reg = 0x1d004,
189301cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
189401cf3e27SImran Shaik .hwcg_reg = 0x1d004,
189501cf3e27SImran Shaik .hwcg_bit = 1,
189601cf3e27SImran Shaik .clkr = {
189701cf3e27SImran Shaik .enable_reg = 0x1d004,
189801cf3e27SImran Shaik .enable_mask = BIT(0),
189901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
190001cf3e27SImran Shaik .name = "gcc_ahb2phy_csi_clk",
190101cf3e27SImran Shaik .ops = &clk_branch2_ops,
190201cf3e27SImran Shaik },
190301cf3e27SImran Shaik },
190401cf3e27SImran Shaik };
190501cf3e27SImran Shaik
190601cf3e27SImran Shaik static struct clk_branch gcc_ahb2phy_usb_clk = {
190701cf3e27SImran Shaik .halt_reg = 0x1d008,
190801cf3e27SImran Shaik .halt_check = BRANCH_HALT,
190901cf3e27SImran Shaik .hwcg_reg = 0x1d008,
191001cf3e27SImran Shaik .hwcg_bit = 1,
191101cf3e27SImran Shaik .clkr = {
191201cf3e27SImran Shaik .enable_reg = 0x1d008,
191301cf3e27SImran Shaik .enable_mask = BIT(0),
191401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
191501cf3e27SImran Shaik .name = "gcc_ahb2phy_usb_clk",
191601cf3e27SImran Shaik .ops = &clk_branch2_ops,
191701cf3e27SImran Shaik },
191801cf3e27SImran Shaik },
191901cf3e27SImran Shaik };
192001cf3e27SImran Shaik
192101cf3e27SImran Shaik static struct clk_branch gcc_boot_rom_ahb_clk = {
192201cf3e27SImran Shaik .halt_reg = 0x23004,
192301cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
192401cf3e27SImran Shaik .hwcg_reg = 0x23004,
192501cf3e27SImran Shaik .hwcg_bit = 1,
192601cf3e27SImran Shaik .clkr = {
192701cf3e27SImran Shaik .enable_reg = 0x7900c,
192801cf3e27SImran Shaik .enable_mask = BIT(1),
192901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
193001cf3e27SImran Shaik .name = "gcc_boot_rom_ahb_clk",
193101cf3e27SImran Shaik .ops = &clk_branch2_ops,
193201cf3e27SImran Shaik },
193301cf3e27SImran Shaik },
193401cf3e27SImran Shaik };
193501cf3e27SImran Shaik
193601cf3e27SImran Shaik static struct clk_branch gcc_cam_throttle_nrt_clk = {
193701cf3e27SImran Shaik .halt_reg = 0x17070,
193801cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
193901cf3e27SImran Shaik .hwcg_reg = 0x17070,
194001cf3e27SImran Shaik .hwcg_bit = 1,
194101cf3e27SImran Shaik .clkr = {
194201cf3e27SImran Shaik .enable_reg = 0x79004,
194301cf3e27SImran Shaik .enable_mask = BIT(16),
194401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
194501cf3e27SImran Shaik .name = "gcc_cam_throttle_nrt_clk",
194601cf3e27SImran Shaik .ops = &clk_branch2_ops,
194701cf3e27SImran Shaik },
194801cf3e27SImran Shaik },
194901cf3e27SImran Shaik };
195001cf3e27SImran Shaik
195101cf3e27SImran Shaik static struct clk_branch gcc_cam_throttle_rt_clk = {
195201cf3e27SImran Shaik .halt_reg = 0x1706c,
195301cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
195401cf3e27SImran Shaik .hwcg_reg = 0x1706c,
195501cf3e27SImran Shaik .hwcg_bit = 1,
195601cf3e27SImran Shaik .clkr = {
195701cf3e27SImran Shaik .enable_reg = 0x79004,
195801cf3e27SImran Shaik .enable_mask = BIT(15),
195901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
196001cf3e27SImran Shaik .name = "gcc_cam_throttle_rt_clk",
196101cf3e27SImran Shaik .ops = &clk_branch2_ops,
196201cf3e27SImran Shaik },
196301cf3e27SImran Shaik },
196401cf3e27SImran Shaik };
196501cf3e27SImran Shaik
196601cf3e27SImran Shaik static struct clk_branch gcc_camss_axi_clk = {
196701cf3e27SImran Shaik .halt_reg = 0x58044,
196801cf3e27SImran Shaik .halt_check = BRANCH_HALT,
196901cf3e27SImran Shaik .clkr = {
197001cf3e27SImran Shaik .enable_reg = 0x58044,
197101cf3e27SImran Shaik .enable_mask = BIT(0),
197201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
197301cf3e27SImran Shaik .name = "gcc_camss_axi_clk",
197401cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
197501cf3e27SImran Shaik &gcc_camss_axi_clk_src.clkr.hw,
197601cf3e27SImran Shaik },
197701cf3e27SImran Shaik .num_parents = 1,
197801cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
197901cf3e27SImran Shaik .ops = &clk_branch2_ops,
198001cf3e27SImran Shaik },
198101cf3e27SImran Shaik },
198201cf3e27SImran Shaik };
198301cf3e27SImran Shaik
198401cf3e27SImran Shaik static struct clk_branch gcc_camss_camnoc_atb_clk = {
198501cf3e27SImran Shaik .halt_reg = 0x5804c,
198601cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
198701cf3e27SImran Shaik .hwcg_reg = 0x5804c,
198801cf3e27SImran Shaik .hwcg_bit = 1,
198901cf3e27SImran Shaik .clkr = {
199001cf3e27SImran Shaik .enable_reg = 0x5804c,
199101cf3e27SImran Shaik .enable_mask = BIT(0),
199201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
199301cf3e27SImran Shaik .name = "gcc_camss_camnoc_atb_clk",
199401cf3e27SImran Shaik .ops = &clk_branch2_ops,
199501cf3e27SImran Shaik },
199601cf3e27SImran Shaik },
199701cf3e27SImran Shaik };
199801cf3e27SImran Shaik
199901cf3e27SImran Shaik static struct clk_branch gcc_camss_camnoc_dragonlink_atb_clk = {
200001cf3e27SImran Shaik .halt_reg = 0x58060,
200101cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
200201cf3e27SImran Shaik .hwcg_reg = 0x58060,
200301cf3e27SImran Shaik .hwcg_bit = 1,
200401cf3e27SImran Shaik .clkr = {
200501cf3e27SImran Shaik .enable_reg = 0x58060,
200601cf3e27SImran Shaik .enable_mask = BIT(0),
200701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
200801cf3e27SImran Shaik .name = "gcc_camss_camnoc_dragonlink_atb_clk",
200901cf3e27SImran Shaik .ops = &clk_branch2_ops,
201001cf3e27SImran Shaik },
201101cf3e27SImran Shaik },
201201cf3e27SImran Shaik };
201301cf3e27SImran Shaik
201401cf3e27SImran Shaik static struct clk_branch gcc_camss_camnoc_nts_xo_clk = {
201501cf3e27SImran Shaik .halt_reg = 0x58050,
201601cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
201701cf3e27SImran Shaik .hwcg_reg = 0x58050,
201801cf3e27SImran Shaik .hwcg_bit = 1,
201901cf3e27SImran Shaik .clkr = {
202001cf3e27SImran Shaik .enable_reg = 0x58050,
202101cf3e27SImran Shaik .enable_mask = BIT(0),
202201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
202301cf3e27SImran Shaik .name = "gcc_camss_camnoc_nts_xo_clk",
202401cf3e27SImran Shaik .ops = &clk_branch2_ops,
202501cf3e27SImran Shaik },
202601cf3e27SImran Shaik },
202701cf3e27SImran Shaik };
202801cf3e27SImran Shaik
202901cf3e27SImran Shaik static struct clk_branch gcc_camss_cci_0_clk = {
203001cf3e27SImran Shaik .halt_reg = 0x56018,
203101cf3e27SImran Shaik .halt_check = BRANCH_HALT,
203201cf3e27SImran Shaik .clkr = {
203301cf3e27SImran Shaik .enable_reg = 0x56018,
203401cf3e27SImran Shaik .enable_mask = BIT(0),
203501cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
203601cf3e27SImran Shaik .name = "gcc_camss_cci_0_clk",
203701cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
203801cf3e27SImran Shaik &gcc_camss_cci_clk_src.clkr.hw,
203901cf3e27SImran Shaik },
204001cf3e27SImran Shaik .num_parents = 1,
204101cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
204201cf3e27SImran Shaik .ops = &clk_branch2_ops,
204301cf3e27SImran Shaik },
204401cf3e27SImran Shaik },
204501cf3e27SImran Shaik };
204601cf3e27SImran Shaik
204701cf3e27SImran Shaik static struct clk_branch gcc_camss_cphy_0_clk = {
204801cf3e27SImran Shaik .halt_reg = 0x52088,
204901cf3e27SImran Shaik .halt_check = BRANCH_HALT,
205001cf3e27SImran Shaik .clkr = {
205101cf3e27SImran Shaik .enable_reg = 0x52088,
205201cf3e27SImran Shaik .enable_mask = BIT(0),
205301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
205401cf3e27SImran Shaik .name = "gcc_camss_cphy_0_clk",
205501cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
205601cf3e27SImran Shaik &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
205701cf3e27SImran Shaik },
205801cf3e27SImran Shaik .num_parents = 1,
205901cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
206001cf3e27SImran Shaik .ops = &clk_branch2_ops,
206101cf3e27SImran Shaik },
206201cf3e27SImran Shaik },
206301cf3e27SImran Shaik };
206401cf3e27SImran Shaik
206501cf3e27SImran Shaik static struct clk_branch gcc_camss_cphy_1_clk = {
206601cf3e27SImran Shaik .halt_reg = 0x5208c,
206701cf3e27SImran Shaik .halt_check = BRANCH_HALT,
206801cf3e27SImran Shaik .clkr = {
206901cf3e27SImran Shaik .enable_reg = 0x5208c,
207001cf3e27SImran Shaik .enable_mask = BIT(0),
207101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
207201cf3e27SImran Shaik .name = "gcc_camss_cphy_1_clk",
207301cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
207401cf3e27SImran Shaik &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
207501cf3e27SImran Shaik },
207601cf3e27SImran Shaik .num_parents = 1,
207701cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
207801cf3e27SImran Shaik .ops = &clk_branch2_ops,
207901cf3e27SImran Shaik },
208001cf3e27SImran Shaik },
208101cf3e27SImran Shaik };
208201cf3e27SImran Shaik
208301cf3e27SImran Shaik static struct clk_branch gcc_camss_csi0phytimer_clk = {
208401cf3e27SImran Shaik .halt_reg = 0x45018,
208501cf3e27SImran Shaik .halt_check = BRANCH_HALT,
208601cf3e27SImran Shaik .clkr = {
208701cf3e27SImran Shaik .enable_reg = 0x45018,
208801cf3e27SImran Shaik .enable_mask = BIT(0),
208901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
209001cf3e27SImran Shaik .name = "gcc_camss_csi0phytimer_clk",
209101cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
209201cf3e27SImran Shaik &gcc_camss_csi0phytimer_clk_src.clkr.hw,
209301cf3e27SImran Shaik },
209401cf3e27SImran Shaik .num_parents = 1,
209501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
209601cf3e27SImran Shaik .ops = &clk_branch2_ops,
209701cf3e27SImran Shaik },
209801cf3e27SImran Shaik },
209901cf3e27SImran Shaik };
210001cf3e27SImran Shaik
210101cf3e27SImran Shaik static struct clk_branch gcc_camss_csi1phytimer_clk = {
210201cf3e27SImran Shaik .halt_reg = 0x45034,
210301cf3e27SImran Shaik .halt_check = BRANCH_HALT,
210401cf3e27SImran Shaik .clkr = {
210501cf3e27SImran Shaik .enable_reg = 0x45034,
210601cf3e27SImran Shaik .enable_mask = BIT(0),
210701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
210801cf3e27SImran Shaik .name = "gcc_camss_csi1phytimer_clk",
210901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
211001cf3e27SImran Shaik &gcc_camss_csi1phytimer_clk_src.clkr.hw,
211101cf3e27SImran Shaik },
211201cf3e27SImran Shaik .num_parents = 1,
211301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
211401cf3e27SImran Shaik .ops = &clk_branch2_ops,
211501cf3e27SImran Shaik },
211601cf3e27SImran Shaik },
211701cf3e27SImran Shaik };
211801cf3e27SImran Shaik
211901cf3e27SImran Shaik static struct clk_branch gcc_camss_mclk0_clk = {
212001cf3e27SImran Shaik .halt_reg = 0x51018,
212101cf3e27SImran Shaik .halt_check = BRANCH_HALT,
212201cf3e27SImran Shaik .clkr = {
212301cf3e27SImran Shaik .enable_reg = 0x51018,
212401cf3e27SImran Shaik .enable_mask = BIT(0),
212501cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
212601cf3e27SImran Shaik .name = "gcc_camss_mclk0_clk",
212701cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
212801cf3e27SImran Shaik &gcc_camss_mclk0_clk_src.clkr.hw,
212901cf3e27SImran Shaik },
213001cf3e27SImran Shaik .num_parents = 1,
213101cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
213201cf3e27SImran Shaik .ops = &clk_branch2_ops,
213301cf3e27SImran Shaik },
213401cf3e27SImran Shaik },
213501cf3e27SImran Shaik };
213601cf3e27SImran Shaik
213701cf3e27SImran Shaik static struct clk_branch gcc_camss_mclk1_clk = {
213801cf3e27SImran Shaik .halt_reg = 0x51034,
213901cf3e27SImran Shaik .halt_check = BRANCH_HALT,
214001cf3e27SImran Shaik .clkr = {
214101cf3e27SImran Shaik .enable_reg = 0x51034,
214201cf3e27SImran Shaik .enable_mask = BIT(0),
214301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
214401cf3e27SImran Shaik .name = "gcc_camss_mclk1_clk",
214501cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
214601cf3e27SImran Shaik &gcc_camss_mclk1_clk_src.clkr.hw,
214701cf3e27SImran Shaik },
214801cf3e27SImran Shaik .num_parents = 1,
214901cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
215001cf3e27SImran Shaik .ops = &clk_branch2_ops,
215101cf3e27SImran Shaik },
215201cf3e27SImran Shaik },
215301cf3e27SImran Shaik };
215401cf3e27SImran Shaik
215501cf3e27SImran Shaik static struct clk_branch gcc_camss_mclk2_clk = {
215601cf3e27SImran Shaik .halt_reg = 0x51050,
215701cf3e27SImran Shaik .halt_check = BRANCH_HALT,
215801cf3e27SImran Shaik .clkr = {
215901cf3e27SImran Shaik .enable_reg = 0x51050,
216001cf3e27SImran Shaik .enable_mask = BIT(0),
216101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
216201cf3e27SImran Shaik .name = "gcc_camss_mclk2_clk",
216301cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
216401cf3e27SImran Shaik &gcc_camss_mclk2_clk_src.clkr.hw,
216501cf3e27SImran Shaik },
216601cf3e27SImran Shaik .num_parents = 1,
216701cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
216801cf3e27SImran Shaik .ops = &clk_branch2_ops,
216901cf3e27SImran Shaik },
217001cf3e27SImran Shaik },
217101cf3e27SImran Shaik };
217201cf3e27SImran Shaik
217301cf3e27SImran Shaik static struct clk_branch gcc_camss_mclk3_clk = {
217401cf3e27SImran Shaik .halt_reg = 0x5106c,
217501cf3e27SImran Shaik .halt_check = BRANCH_HALT,
217601cf3e27SImran Shaik .clkr = {
217701cf3e27SImran Shaik .enable_reg = 0x5106c,
217801cf3e27SImran Shaik .enable_mask = BIT(0),
217901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
218001cf3e27SImran Shaik .name = "gcc_camss_mclk3_clk",
218101cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
218201cf3e27SImran Shaik &gcc_camss_mclk3_clk_src.clkr.hw,
218301cf3e27SImran Shaik },
218401cf3e27SImran Shaik .num_parents = 1,
218501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
218601cf3e27SImran Shaik .ops = &clk_branch2_ops,
218701cf3e27SImran Shaik },
218801cf3e27SImran Shaik },
218901cf3e27SImran Shaik };
219001cf3e27SImran Shaik
219101cf3e27SImran Shaik static struct clk_branch gcc_camss_nrt_axi_clk = {
219201cf3e27SImran Shaik .halt_reg = 0x58054,
219301cf3e27SImran Shaik .halt_check = BRANCH_HALT,
219401cf3e27SImran Shaik .clkr = {
219501cf3e27SImran Shaik .enable_reg = 0x58054,
219601cf3e27SImran Shaik .enable_mask = BIT(0),
219701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
219801cf3e27SImran Shaik .name = "gcc_camss_nrt_axi_clk",
219901cf3e27SImran Shaik .ops = &clk_branch2_ops,
220001cf3e27SImran Shaik },
220101cf3e27SImran Shaik },
220201cf3e27SImran Shaik };
220301cf3e27SImran Shaik
220401cf3e27SImran Shaik static struct clk_branch gcc_camss_ope_ahb_clk = {
220501cf3e27SImran Shaik .halt_reg = 0x5503c,
220601cf3e27SImran Shaik .halt_check = BRANCH_HALT,
220701cf3e27SImran Shaik .clkr = {
220801cf3e27SImran Shaik .enable_reg = 0x5503c,
220901cf3e27SImran Shaik .enable_mask = BIT(0),
221001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
221101cf3e27SImran Shaik .name = "gcc_camss_ope_ahb_clk",
221201cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
221301cf3e27SImran Shaik &gcc_camss_ope_ahb_clk_src.clkr.hw,
221401cf3e27SImran Shaik },
221501cf3e27SImran Shaik .num_parents = 1,
221601cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
221701cf3e27SImran Shaik .ops = &clk_branch2_ops,
221801cf3e27SImran Shaik },
221901cf3e27SImran Shaik },
222001cf3e27SImran Shaik };
222101cf3e27SImran Shaik
222201cf3e27SImran Shaik static struct clk_branch gcc_camss_ope_clk = {
222301cf3e27SImran Shaik .halt_reg = 0x5501c,
222401cf3e27SImran Shaik .halt_check = BRANCH_HALT,
222501cf3e27SImran Shaik .clkr = {
222601cf3e27SImran Shaik .enable_reg = 0x5501c,
222701cf3e27SImran Shaik .enable_mask = BIT(0),
222801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
222901cf3e27SImran Shaik .name = "gcc_camss_ope_clk",
223001cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
223101cf3e27SImran Shaik &gcc_camss_ope_clk_src.clkr.hw,
223201cf3e27SImran Shaik },
223301cf3e27SImran Shaik .num_parents = 1,
223401cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
223501cf3e27SImran Shaik .ops = &clk_branch2_ops,
223601cf3e27SImran Shaik },
223701cf3e27SImran Shaik },
223801cf3e27SImran Shaik };
223901cf3e27SImran Shaik
224001cf3e27SImran Shaik static struct clk_branch gcc_camss_rt_axi_clk = {
224101cf3e27SImran Shaik .halt_reg = 0x5805c,
224201cf3e27SImran Shaik .halt_check = BRANCH_HALT,
224301cf3e27SImran Shaik .clkr = {
224401cf3e27SImran Shaik .enable_reg = 0x5805c,
224501cf3e27SImran Shaik .enable_mask = BIT(0),
224601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
224701cf3e27SImran Shaik .name = "gcc_camss_rt_axi_clk",
224801cf3e27SImran Shaik .ops = &clk_branch2_ops,
224901cf3e27SImran Shaik },
225001cf3e27SImran Shaik },
225101cf3e27SImran Shaik };
225201cf3e27SImran Shaik
225301cf3e27SImran Shaik static struct clk_branch gcc_camss_tfe_0_clk = {
225401cf3e27SImran Shaik .halt_reg = 0x5201c,
225501cf3e27SImran Shaik .halt_check = BRANCH_HALT,
225601cf3e27SImran Shaik .clkr = {
225701cf3e27SImran Shaik .enable_reg = 0x5201c,
225801cf3e27SImran Shaik .enable_mask = BIT(0),
225901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
226001cf3e27SImran Shaik .name = "gcc_camss_tfe_0_clk",
226101cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
226201cf3e27SImran Shaik &gcc_camss_tfe_0_clk_src.clkr.hw,
226301cf3e27SImran Shaik },
226401cf3e27SImran Shaik .num_parents = 1,
226501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
226601cf3e27SImran Shaik .ops = &clk_branch2_ops,
226701cf3e27SImran Shaik },
226801cf3e27SImran Shaik },
226901cf3e27SImran Shaik };
227001cf3e27SImran Shaik
227101cf3e27SImran Shaik static struct clk_branch gcc_camss_tfe_0_cphy_rx_clk = {
227201cf3e27SImran Shaik .halt_reg = 0x5207c,
227301cf3e27SImran Shaik .halt_check = BRANCH_HALT,
227401cf3e27SImran Shaik .clkr = {
227501cf3e27SImran Shaik .enable_reg = 0x5207c,
227601cf3e27SImran Shaik .enable_mask = BIT(0),
227701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
227801cf3e27SImran Shaik .name = "gcc_camss_tfe_0_cphy_rx_clk",
227901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
228001cf3e27SImran Shaik &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
228101cf3e27SImran Shaik },
228201cf3e27SImran Shaik .num_parents = 1,
228301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
228401cf3e27SImran Shaik .ops = &clk_branch2_ops,
228501cf3e27SImran Shaik },
228601cf3e27SImran Shaik },
228701cf3e27SImran Shaik };
228801cf3e27SImran Shaik
228901cf3e27SImran Shaik static struct clk_branch gcc_camss_tfe_0_csid_clk = {
229001cf3e27SImran Shaik .halt_reg = 0x520ac,
229101cf3e27SImran Shaik .halt_check = BRANCH_HALT,
229201cf3e27SImran Shaik .clkr = {
229301cf3e27SImran Shaik .enable_reg = 0x520ac,
229401cf3e27SImran Shaik .enable_mask = BIT(0),
229501cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
229601cf3e27SImran Shaik .name = "gcc_camss_tfe_0_csid_clk",
229701cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
229801cf3e27SImran Shaik &gcc_camss_tfe_0_csid_clk_src.clkr.hw,
229901cf3e27SImran Shaik },
230001cf3e27SImran Shaik .num_parents = 1,
230101cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
230201cf3e27SImran Shaik .ops = &clk_branch2_ops,
230301cf3e27SImran Shaik },
230401cf3e27SImran Shaik },
230501cf3e27SImran Shaik };
230601cf3e27SImran Shaik
230701cf3e27SImran Shaik static struct clk_branch gcc_camss_tfe_1_clk = {
230801cf3e27SImran Shaik .halt_reg = 0x5203c,
230901cf3e27SImran Shaik .halt_check = BRANCH_HALT,
231001cf3e27SImran Shaik .clkr = {
231101cf3e27SImran Shaik .enable_reg = 0x5203c,
231201cf3e27SImran Shaik .enable_mask = BIT(0),
231301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
231401cf3e27SImran Shaik .name = "gcc_camss_tfe_1_clk",
231501cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
231601cf3e27SImran Shaik &gcc_camss_tfe_1_clk_src.clkr.hw,
231701cf3e27SImran Shaik },
231801cf3e27SImran Shaik .num_parents = 1,
231901cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
232001cf3e27SImran Shaik .ops = &clk_branch2_ops,
232101cf3e27SImran Shaik },
232201cf3e27SImran Shaik },
232301cf3e27SImran Shaik };
232401cf3e27SImran Shaik
232501cf3e27SImran Shaik static struct clk_branch gcc_camss_tfe_1_cphy_rx_clk = {
232601cf3e27SImran Shaik .halt_reg = 0x52080,
232701cf3e27SImran Shaik .halt_check = BRANCH_HALT,
232801cf3e27SImran Shaik .clkr = {
232901cf3e27SImran Shaik .enable_reg = 0x52080,
233001cf3e27SImran Shaik .enable_mask = BIT(0),
233101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
233201cf3e27SImran Shaik .name = "gcc_camss_tfe_1_cphy_rx_clk",
233301cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
233401cf3e27SImran Shaik &gcc_camss_tfe_cphy_rx_clk_src.clkr.hw,
233501cf3e27SImran Shaik },
233601cf3e27SImran Shaik .num_parents = 1,
233701cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
233801cf3e27SImran Shaik .ops = &clk_branch2_ops,
233901cf3e27SImran Shaik },
234001cf3e27SImran Shaik },
234101cf3e27SImran Shaik };
234201cf3e27SImran Shaik
234301cf3e27SImran Shaik static struct clk_branch gcc_camss_tfe_1_csid_clk = {
234401cf3e27SImran Shaik .halt_reg = 0x520cc,
234501cf3e27SImran Shaik .halt_check = BRANCH_HALT,
234601cf3e27SImran Shaik .clkr = {
234701cf3e27SImran Shaik .enable_reg = 0x520cc,
234801cf3e27SImran Shaik .enable_mask = BIT(0),
234901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
235001cf3e27SImran Shaik .name = "gcc_camss_tfe_1_csid_clk",
235101cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
235201cf3e27SImran Shaik &gcc_camss_tfe_1_csid_clk_src.clkr.hw,
235301cf3e27SImran Shaik },
235401cf3e27SImran Shaik .num_parents = 1,
235501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
235601cf3e27SImran Shaik .ops = &clk_branch2_ops,
235701cf3e27SImran Shaik },
235801cf3e27SImran Shaik },
235901cf3e27SImran Shaik };
236001cf3e27SImran Shaik
236101cf3e27SImran Shaik static struct clk_branch gcc_camss_top_ahb_clk = {
236201cf3e27SImran Shaik .halt_reg = 0x58028,
236301cf3e27SImran Shaik .halt_check = BRANCH_HALT,
236401cf3e27SImran Shaik .clkr = {
236501cf3e27SImran Shaik .enable_reg = 0x58028,
236601cf3e27SImran Shaik .enable_mask = BIT(0),
236701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
236801cf3e27SImran Shaik .name = "gcc_camss_top_ahb_clk",
236901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
237001cf3e27SImran Shaik &gcc_camss_top_ahb_clk_src.clkr.hw,
237101cf3e27SImran Shaik },
237201cf3e27SImran Shaik .num_parents = 1,
237301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
237401cf3e27SImran Shaik .ops = &clk_branch2_ops,
237501cf3e27SImran Shaik },
237601cf3e27SImran Shaik },
237701cf3e27SImran Shaik };
237801cf3e27SImran Shaik
237901cf3e27SImran Shaik static struct clk_branch gcc_cfg_noc_usb2_prim_axi_clk = {
238001cf3e27SImran Shaik .halt_reg = 0x111c4,
238101cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
238201cf3e27SImran Shaik .hwcg_reg = 0x111c4,
238301cf3e27SImran Shaik .hwcg_bit = 1,
238401cf3e27SImran Shaik .clkr = {
238501cf3e27SImran Shaik .enable_reg = 0x111c4,
238601cf3e27SImran Shaik .enable_mask = BIT(0),
238701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
238801cf3e27SImran Shaik .name = "gcc_cfg_noc_usb2_prim_axi_clk",
238901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
239001cf3e27SImran Shaik &gcc_usb20_master_clk_src.clkr.hw,
239101cf3e27SImran Shaik },
239201cf3e27SImran Shaik .num_parents = 1,
239301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
239401cf3e27SImran Shaik .ops = &clk_branch2_ops,
239501cf3e27SImran Shaik },
239601cf3e27SImran Shaik },
239701cf3e27SImran Shaik };
239801cf3e27SImran Shaik
239901cf3e27SImran Shaik static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = {
240001cf3e27SImran Shaik .halt_reg = 0x1a07c,
240101cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
240201cf3e27SImran Shaik .hwcg_reg = 0x1a07c,
240301cf3e27SImran Shaik .hwcg_bit = 1,
240401cf3e27SImran Shaik .clkr = {
240501cf3e27SImran Shaik .enable_reg = 0x1a07c,
240601cf3e27SImran Shaik .enable_mask = BIT(0),
240701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
240801cf3e27SImran Shaik .name = "gcc_cfg_noc_usb3_prim_axi_clk",
240901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
241001cf3e27SImran Shaik &gcc_usb30_prim_master_clk_src.clkr.hw,
241101cf3e27SImran Shaik },
241201cf3e27SImran Shaik .num_parents = 1,
241301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
241401cf3e27SImran Shaik .ops = &clk_branch2_ops,
241501cf3e27SImran Shaik },
241601cf3e27SImran Shaik },
241701cf3e27SImran Shaik };
241801cf3e27SImran Shaik
241901cf3e27SImran Shaik static struct clk_branch gcc_ddrss_gpu_axi_clk = {
242001cf3e27SImran Shaik .halt_reg = 0x71000,
242101cf3e27SImran Shaik .halt_check = BRANCH_HALT_SKIP,
242201cf3e27SImran Shaik .hwcg_reg = 0x71000,
242301cf3e27SImran Shaik .hwcg_bit = 1,
242401cf3e27SImran Shaik .clkr = {
242501cf3e27SImran Shaik .enable_reg = 0x71000,
242601cf3e27SImran Shaik .enable_mask = BIT(0),
242701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
242801cf3e27SImran Shaik .name = "gcc_ddrss_gpu_axi_clk",
242901cf3e27SImran Shaik .ops = &clk_branch2_aon_ops,
243001cf3e27SImran Shaik },
243101cf3e27SImran Shaik },
243201cf3e27SImran Shaik };
243301cf3e27SImran Shaik
243401cf3e27SImran Shaik static struct clk_branch gcc_ddrss_memnoc_pcie_sf_clk = {
243501cf3e27SImran Shaik .halt_reg = 0x29044,
243601cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
243701cf3e27SImran Shaik .hwcg_reg = 0x29044,
243801cf3e27SImran Shaik .hwcg_bit = 1,
243901cf3e27SImran Shaik .clkr = {
244001cf3e27SImran Shaik .enable_reg = 0x29044,
244101cf3e27SImran Shaik .enable_mask = BIT(0),
244201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
244301cf3e27SImran Shaik .name = "gcc_ddrss_memnoc_pcie_sf_clk",
244401cf3e27SImran Shaik .ops = &clk_branch2_ops,
244501cf3e27SImran Shaik },
244601cf3e27SImran Shaik },
244701cf3e27SImran Shaik };
244801cf3e27SImran Shaik
244901cf3e27SImran Shaik static struct clk_branch gcc_disp_gpll0_div_clk_src = {
245001cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
245101cf3e27SImran Shaik .clkr = {
245201cf3e27SImran Shaik .enable_reg = 0x79004,
245301cf3e27SImran Shaik .enable_mask = BIT(11),
245401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
245501cf3e27SImran Shaik .name = "gcc_disp_gpll0_div_clk_src",
245601cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
245701cf3e27SImran Shaik &gcc_disp_gpll0_clk_src.clkr.hw,
245801cf3e27SImran Shaik },
245901cf3e27SImran Shaik .num_parents = 1,
246001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
246101cf3e27SImran Shaik .ops = &clk_branch2_ops,
246201cf3e27SImran Shaik },
246301cf3e27SImran Shaik },
246401cf3e27SImran Shaik };
246501cf3e27SImran Shaik
246601cf3e27SImran Shaik static struct clk_branch gcc_disp_hf_axi_clk = {
246701cf3e27SImran Shaik .halt_reg = 0x17020,
246801cf3e27SImran Shaik .halt_check = BRANCH_HALT,
246901cf3e27SImran Shaik .hwcg_reg = 0x17020,
247001cf3e27SImran Shaik .hwcg_bit = 1,
247101cf3e27SImran Shaik .clkr = {
247201cf3e27SImran Shaik .enable_reg = 0x17020,
247301cf3e27SImran Shaik .enable_mask = BIT(0),
247401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
247501cf3e27SImran Shaik .name = "gcc_disp_hf_axi_clk",
247601cf3e27SImran Shaik .ops = &clk_branch2_ops,
247701cf3e27SImran Shaik },
247801cf3e27SImran Shaik },
247901cf3e27SImran Shaik };
248001cf3e27SImran Shaik
248101cf3e27SImran Shaik static struct clk_branch gcc_disp_throttle_core_clk = {
248201cf3e27SImran Shaik .halt_reg = 0x17064,
248301cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
248401cf3e27SImran Shaik .hwcg_reg = 0x17064,
248501cf3e27SImran Shaik .hwcg_bit = 1,
248601cf3e27SImran Shaik .clkr = {
248701cf3e27SImran Shaik .enable_reg = 0x79004,
248801cf3e27SImran Shaik .enable_mask = BIT(13),
248901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
249001cf3e27SImran Shaik .name = "gcc_disp_throttle_core_clk",
249101cf3e27SImran Shaik .ops = &clk_branch2_ops,
249201cf3e27SImran Shaik },
249301cf3e27SImran Shaik },
249401cf3e27SImran Shaik };
249501cf3e27SImran Shaik
249601cf3e27SImran Shaik static struct clk_branch gcc_emac0_ahb_clk = {
249701cf3e27SImran Shaik .halt_reg = 0xad010,
249801cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
249901cf3e27SImran Shaik .hwcg_reg = 0xad010,
250001cf3e27SImran Shaik .hwcg_bit = 1,
250101cf3e27SImran Shaik .clkr = {
250201cf3e27SImran Shaik .enable_reg = 0xad010,
250301cf3e27SImran Shaik .enable_mask = BIT(0),
250401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
250501cf3e27SImran Shaik .name = "gcc_emac0_ahb_clk",
250601cf3e27SImran Shaik .ops = &clk_branch2_ops,
250701cf3e27SImran Shaik },
250801cf3e27SImran Shaik },
250901cf3e27SImran Shaik };
251001cf3e27SImran Shaik
251101cf3e27SImran Shaik static struct clk_branch gcc_emac0_axi_clk = {
251201cf3e27SImran Shaik .halt_reg = 0xad014,
251301cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
251401cf3e27SImran Shaik .hwcg_reg = 0xad014,
251501cf3e27SImran Shaik .hwcg_bit = 1,
251601cf3e27SImran Shaik .clkr = {
251701cf3e27SImran Shaik .enable_reg = 0xad014,
251801cf3e27SImran Shaik .enable_mask = BIT(0),
251901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
252001cf3e27SImran Shaik .name = "gcc_emac0_axi_clk",
252101cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
252201cf3e27SImran Shaik &gcc_emac0_axi_clk_src.clkr.hw,
252301cf3e27SImran Shaik },
252401cf3e27SImran Shaik .num_parents = 1,
252501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
252601cf3e27SImran Shaik .ops = &clk_branch2_ops,
252701cf3e27SImran Shaik },
252801cf3e27SImran Shaik },
252901cf3e27SImran Shaik };
253001cf3e27SImran Shaik
253101cf3e27SImran Shaik static struct clk_branch gcc_emac0_axi_sys_noc_clk = {
253201cf3e27SImran Shaik .halt_reg = 0x109d4,
253301cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
253401cf3e27SImran Shaik .hwcg_reg = 0x109d4,
253501cf3e27SImran Shaik .hwcg_bit = 1,
253601cf3e27SImran Shaik .clkr = {
253701cf3e27SImran Shaik .enable_reg = 0x109d4,
253801cf3e27SImran Shaik .enable_mask = BIT(0),
253901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
254001cf3e27SImran Shaik .name = "gcc_emac0_axi_sys_noc_clk",
254101cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
254201cf3e27SImran Shaik &gcc_emac0_axi_clk_src.clkr.hw,
254301cf3e27SImran Shaik },
254401cf3e27SImran Shaik .num_parents = 1,
254501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
254601cf3e27SImran Shaik .ops = &clk_branch2_ops,
254701cf3e27SImran Shaik },
254801cf3e27SImran Shaik },
254901cf3e27SImran Shaik };
255001cf3e27SImran Shaik
255101cf3e27SImran Shaik static struct clk_branch gcc_emac0_cc_sgmiiphy_rx_clk = {
255201cf3e27SImran Shaik .halt_reg = 0xad044,
255301cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
255401cf3e27SImran Shaik .clkr = {
255501cf3e27SImran Shaik .enable_reg = 0xad044,
255601cf3e27SImran Shaik .enable_mask = BIT(0),
255701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
255801cf3e27SImran Shaik .name = "gcc_emac0_cc_sgmiiphy_rx_clk",
255901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
256001cf3e27SImran Shaik &gcc_emac0_cc_sgmiiphy_rx_clk_src.clkr.hw,
256101cf3e27SImran Shaik },
256201cf3e27SImran Shaik .num_parents = 1,
256301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
256401cf3e27SImran Shaik .ops = &clk_branch2_ops,
256501cf3e27SImran Shaik },
256601cf3e27SImran Shaik },
256701cf3e27SImran Shaik };
256801cf3e27SImran Shaik
256901cf3e27SImran Shaik static struct clk_branch gcc_emac0_cc_sgmiiphy_tx_clk = {
257001cf3e27SImran Shaik .halt_reg = 0xad03c,
257101cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
257201cf3e27SImran Shaik .hwcg_reg = 0xad03c,
257301cf3e27SImran Shaik .hwcg_bit = 1,
257401cf3e27SImran Shaik .clkr = {
257501cf3e27SImran Shaik .enable_reg = 0xad03c,
257601cf3e27SImran Shaik .enable_mask = BIT(0),
257701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
257801cf3e27SImran Shaik .name = "gcc_emac0_cc_sgmiiphy_tx_clk",
257901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
258001cf3e27SImran Shaik &gcc_emac0_cc_sgmiiphy_tx_clk_src.clkr.hw,
258101cf3e27SImran Shaik },
258201cf3e27SImran Shaik .num_parents = 1,
258301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
258401cf3e27SImran Shaik .ops = &clk_branch2_ops,
258501cf3e27SImran Shaik },
258601cf3e27SImran Shaik },
258701cf3e27SImran Shaik };
258801cf3e27SImran Shaik
258901cf3e27SImran Shaik static struct clk_branch gcc_emac0_phy_aux_clk = {
259001cf3e27SImran Shaik .halt_reg = 0xad018,
259101cf3e27SImran Shaik .halt_check = BRANCH_HALT,
259201cf3e27SImran Shaik .clkr = {
259301cf3e27SImran Shaik .enable_reg = 0xad018,
259401cf3e27SImran Shaik .enable_mask = BIT(0),
259501cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
259601cf3e27SImran Shaik .name = "gcc_emac0_phy_aux_clk",
259701cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
259801cf3e27SImran Shaik &gcc_emac0_phy_aux_clk_src.clkr.hw,
259901cf3e27SImran Shaik },
260001cf3e27SImran Shaik .num_parents = 1,
260101cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
260201cf3e27SImran Shaik .ops = &clk_branch2_ops,
260301cf3e27SImran Shaik },
260401cf3e27SImran Shaik },
260501cf3e27SImran Shaik };
260601cf3e27SImran Shaik
260701cf3e27SImran Shaik static struct clk_branch gcc_emac0_ptp_clk = {
260801cf3e27SImran Shaik .halt_reg = 0xad034,
260901cf3e27SImran Shaik .halt_check = BRANCH_HALT,
261001cf3e27SImran Shaik .clkr = {
261101cf3e27SImran Shaik .enable_reg = 0xad034,
261201cf3e27SImran Shaik .enable_mask = BIT(0),
261301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
261401cf3e27SImran Shaik .name = "gcc_emac0_ptp_clk",
261501cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
261601cf3e27SImran Shaik &gcc_emac0_ptp_clk_src.clkr.hw,
261701cf3e27SImran Shaik },
261801cf3e27SImran Shaik .num_parents = 1,
261901cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
262001cf3e27SImran Shaik .ops = &clk_branch2_ops,
262101cf3e27SImran Shaik },
262201cf3e27SImran Shaik },
262301cf3e27SImran Shaik };
262401cf3e27SImran Shaik
262501cf3e27SImran Shaik static struct clk_branch gcc_emac0_rgmii_clk = {
262601cf3e27SImran Shaik .halt_reg = 0xad038,
262701cf3e27SImran Shaik .halt_check = BRANCH_HALT,
262801cf3e27SImran Shaik .clkr = {
262901cf3e27SImran Shaik .enable_reg = 0xad038,
263001cf3e27SImran Shaik .enable_mask = BIT(0),
263101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
263201cf3e27SImran Shaik .name = "gcc_emac0_rgmii_clk",
263301cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
263401cf3e27SImran Shaik &gcc_emac0_rgmii_clk_src.clkr.hw,
263501cf3e27SImran Shaik },
263601cf3e27SImran Shaik .num_parents = 1,
263701cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
263801cf3e27SImran Shaik .ops = &clk_branch2_ops,
263901cf3e27SImran Shaik },
264001cf3e27SImran Shaik },
264101cf3e27SImran Shaik };
264201cf3e27SImran Shaik
264301cf3e27SImran Shaik static struct clk_branch gcc_emac1_ahb_clk = {
264401cf3e27SImran Shaik .halt_reg = 0xae010,
264501cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
264601cf3e27SImran Shaik .hwcg_reg = 0xae010,
264701cf3e27SImran Shaik .hwcg_bit = 1,
264801cf3e27SImran Shaik .clkr = {
264901cf3e27SImran Shaik .enable_reg = 0xae010,
265001cf3e27SImran Shaik .enable_mask = BIT(0),
265101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
265201cf3e27SImran Shaik .name = "gcc_emac1_ahb_clk",
265301cf3e27SImran Shaik .ops = &clk_branch2_ops,
265401cf3e27SImran Shaik },
265501cf3e27SImran Shaik },
265601cf3e27SImran Shaik };
265701cf3e27SImran Shaik
265801cf3e27SImran Shaik static struct clk_branch gcc_emac1_axi_clk = {
265901cf3e27SImran Shaik .halt_reg = 0xae014,
266001cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
266101cf3e27SImran Shaik .hwcg_reg = 0xae014,
266201cf3e27SImran Shaik .hwcg_bit = 1,
266301cf3e27SImran Shaik .clkr = {
266401cf3e27SImran Shaik .enable_reg = 0xae014,
266501cf3e27SImran Shaik .enable_mask = BIT(0),
266601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
266701cf3e27SImran Shaik .name = "gcc_emac1_axi_clk",
266801cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
266901cf3e27SImran Shaik &gcc_emac1_axi_clk_src.clkr.hw,
267001cf3e27SImran Shaik },
267101cf3e27SImran Shaik .num_parents = 1,
267201cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
267301cf3e27SImran Shaik .ops = &clk_branch2_ops,
267401cf3e27SImran Shaik },
267501cf3e27SImran Shaik },
267601cf3e27SImran Shaik };
267701cf3e27SImran Shaik
267801cf3e27SImran Shaik static struct clk_branch gcc_emac1_axi_sys_noc_clk = {
267901cf3e27SImran Shaik .halt_reg = 0x109f4,
268001cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
268101cf3e27SImran Shaik .hwcg_reg = 0x109f4,
268201cf3e27SImran Shaik .hwcg_bit = 1,
268301cf3e27SImran Shaik .clkr = {
268401cf3e27SImran Shaik .enable_reg = 0x109f4,
268501cf3e27SImran Shaik .enable_mask = BIT(0),
268601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
268701cf3e27SImran Shaik .name = "gcc_emac1_axi_sys_noc_clk",
268801cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
268901cf3e27SImran Shaik &gcc_emac1_axi_clk_src.clkr.hw,
269001cf3e27SImran Shaik },
269101cf3e27SImran Shaik .num_parents = 1,
269201cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
269301cf3e27SImran Shaik .ops = &clk_branch2_ops,
269401cf3e27SImran Shaik },
269501cf3e27SImran Shaik },
269601cf3e27SImran Shaik };
269701cf3e27SImran Shaik
269801cf3e27SImran Shaik static struct clk_branch gcc_emac1_cc_sgmiiphy_rx_clk = {
269901cf3e27SImran Shaik .halt_reg = 0xae044,
270001cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
270101cf3e27SImran Shaik .clkr = {
270201cf3e27SImran Shaik .enable_reg = 0xae044,
270301cf3e27SImran Shaik .enable_mask = BIT(0),
270401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
270501cf3e27SImran Shaik .name = "gcc_emac1_cc_sgmiiphy_rx_clk",
270601cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
270701cf3e27SImran Shaik &gcc_emac1_cc_sgmiiphy_rx_clk_src.clkr.hw,
270801cf3e27SImran Shaik },
270901cf3e27SImran Shaik .num_parents = 1,
271001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
271101cf3e27SImran Shaik .ops = &clk_branch2_ops,
271201cf3e27SImran Shaik },
271301cf3e27SImran Shaik },
271401cf3e27SImran Shaik };
271501cf3e27SImran Shaik
271601cf3e27SImran Shaik static struct clk_branch gcc_emac1_cc_sgmiiphy_tx_clk = {
271701cf3e27SImran Shaik .halt_reg = 0xae03c,
271801cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
271901cf3e27SImran Shaik .hwcg_reg = 0xae03c,
272001cf3e27SImran Shaik .hwcg_bit = 1,
272101cf3e27SImran Shaik .clkr = {
272201cf3e27SImran Shaik .enable_reg = 0xae03c,
272301cf3e27SImran Shaik .enable_mask = BIT(0),
272401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
272501cf3e27SImran Shaik .name = "gcc_emac1_cc_sgmiiphy_tx_clk",
272601cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
272701cf3e27SImran Shaik &gcc_emac1_cc_sgmiiphy_tx_clk_src.clkr.hw,
272801cf3e27SImran Shaik },
272901cf3e27SImran Shaik .num_parents = 1,
273001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
273101cf3e27SImran Shaik .ops = &clk_branch2_ops,
273201cf3e27SImran Shaik },
273301cf3e27SImran Shaik },
273401cf3e27SImran Shaik };
273501cf3e27SImran Shaik
273601cf3e27SImran Shaik static struct clk_branch gcc_emac1_phy_aux_clk = {
273701cf3e27SImran Shaik .halt_reg = 0xae018,
273801cf3e27SImran Shaik .halt_check = BRANCH_HALT,
273901cf3e27SImran Shaik .clkr = {
274001cf3e27SImran Shaik .enable_reg = 0xae018,
274101cf3e27SImran Shaik .enable_mask = BIT(0),
274201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
274301cf3e27SImran Shaik .name = "gcc_emac1_phy_aux_clk",
274401cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
274501cf3e27SImran Shaik &gcc_emac1_phy_aux_clk_src.clkr.hw,
274601cf3e27SImran Shaik },
274701cf3e27SImran Shaik .num_parents = 1,
274801cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
274901cf3e27SImran Shaik .ops = &clk_branch2_ops,
275001cf3e27SImran Shaik },
275101cf3e27SImran Shaik },
275201cf3e27SImran Shaik };
275301cf3e27SImran Shaik
275401cf3e27SImran Shaik static struct clk_branch gcc_emac1_ptp_clk = {
275501cf3e27SImran Shaik .halt_reg = 0xae034,
275601cf3e27SImran Shaik .halt_check = BRANCH_HALT,
275701cf3e27SImran Shaik .clkr = {
275801cf3e27SImran Shaik .enable_reg = 0xae034,
275901cf3e27SImran Shaik .enable_mask = BIT(0),
276001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
276101cf3e27SImran Shaik .name = "gcc_emac1_ptp_clk",
276201cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
276301cf3e27SImran Shaik &gcc_emac1_ptp_clk_src.clkr.hw,
276401cf3e27SImran Shaik },
276501cf3e27SImran Shaik .num_parents = 1,
276601cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
276701cf3e27SImran Shaik .ops = &clk_branch2_ops,
276801cf3e27SImran Shaik },
276901cf3e27SImran Shaik },
277001cf3e27SImran Shaik };
277101cf3e27SImran Shaik
277201cf3e27SImran Shaik static struct clk_branch gcc_emac1_rgmii_clk = {
277301cf3e27SImran Shaik .halt_reg = 0xae038,
277401cf3e27SImran Shaik .halt_check = BRANCH_HALT,
277501cf3e27SImran Shaik .clkr = {
277601cf3e27SImran Shaik .enable_reg = 0xae038,
277701cf3e27SImran Shaik .enable_mask = BIT(0),
277801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
277901cf3e27SImran Shaik .name = "gcc_emac1_rgmii_clk",
278001cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
278101cf3e27SImran Shaik &gcc_emac1_rgmii_clk_src.clkr.hw,
278201cf3e27SImran Shaik },
278301cf3e27SImran Shaik .num_parents = 1,
278401cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
278501cf3e27SImran Shaik .ops = &clk_branch2_ops,
278601cf3e27SImran Shaik },
278701cf3e27SImran Shaik },
278801cf3e27SImran Shaik };
278901cf3e27SImran Shaik
279001cf3e27SImran Shaik static struct clk_branch gcc_gp1_clk = {
279101cf3e27SImran Shaik .halt_reg = 0x4d000,
279201cf3e27SImran Shaik .halt_check = BRANCH_HALT,
279301cf3e27SImran Shaik .clkr = {
279401cf3e27SImran Shaik .enable_reg = 0x4d000,
279501cf3e27SImran Shaik .enable_mask = BIT(0),
279601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
279701cf3e27SImran Shaik .name = "gcc_gp1_clk",
279801cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
279901cf3e27SImran Shaik &gcc_gp1_clk_src.clkr.hw,
280001cf3e27SImran Shaik },
280101cf3e27SImran Shaik .num_parents = 1,
280201cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
280301cf3e27SImran Shaik .ops = &clk_branch2_ops,
280401cf3e27SImran Shaik },
280501cf3e27SImran Shaik },
280601cf3e27SImran Shaik };
280701cf3e27SImran Shaik
280801cf3e27SImran Shaik static struct clk_branch gcc_gp2_clk = {
280901cf3e27SImran Shaik .halt_reg = 0x4e000,
281001cf3e27SImran Shaik .halt_check = BRANCH_HALT,
281101cf3e27SImran Shaik .clkr = {
281201cf3e27SImran Shaik .enable_reg = 0x4e000,
281301cf3e27SImran Shaik .enable_mask = BIT(0),
281401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
281501cf3e27SImran Shaik .name = "gcc_gp2_clk",
281601cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
281701cf3e27SImran Shaik &gcc_gp2_clk_src.clkr.hw,
281801cf3e27SImran Shaik },
281901cf3e27SImran Shaik .num_parents = 1,
282001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
282101cf3e27SImran Shaik .ops = &clk_branch2_ops,
282201cf3e27SImran Shaik },
282301cf3e27SImran Shaik },
282401cf3e27SImran Shaik };
282501cf3e27SImran Shaik
282601cf3e27SImran Shaik static struct clk_branch gcc_gp3_clk = {
282701cf3e27SImran Shaik .halt_reg = 0x4f000,
282801cf3e27SImran Shaik .halt_check = BRANCH_HALT,
282901cf3e27SImran Shaik .clkr = {
283001cf3e27SImran Shaik .enable_reg = 0x4f000,
283101cf3e27SImran Shaik .enable_mask = BIT(0),
283201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
283301cf3e27SImran Shaik .name = "gcc_gp3_clk",
283401cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
283501cf3e27SImran Shaik &gcc_gp3_clk_src.clkr.hw,
283601cf3e27SImran Shaik },
283701cf3e27SImran Shaik .num_parents = 1,
283801cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
283901cf3e27SImran Shaik .ops = &clk_branch2_ops,
284001cf3e27SImran Shaik },
284101cf3e27SImran Shaik },
284201cf3e27SImran Shaik };
284301cf3e27SImran Shaik
284401cf3e27SImran Shaik static struct clk_branch gcc_gpu_gpll0_clk_src = {
284501cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
284601cf3e27SImran Shaik .clkr = {
284701cf3e27SImran Shaik .enable_reg = 0x7900c,
284801cf3e27SImran Shaik .enable_mask = BIT(18),
284901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
285001cf3e27SImran Shaik .name = "gcc_gpu_gpll0_clk_src",
285101cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
285201cf3e27SImran Shaik &gpll0.clkr.hw,
285301cf3e27SImran Shaik },
285401cf3e27SImran Shaik .num_parents = 1,
285501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
285601cf3e27SImran Shaik .ops = &clk_branch2_ops,
285701cf3e27SImran Shaik },
285801cf3e27SImran Shaik },
285901cf3e27SImran Shaik };
286001cf3e27SImran Shaik
286101cf3e27SImran Shaik static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
286201cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
286301cf3e27SImran Shaik .clkr = {
286401cf3e27SImran Shaik .enable_reg = 0x7900c,
286501cf3e27SImran Shaik .enable_mask = BIT(19),
286601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
286701cf3e27SImran Shaik .name = "gcc_gpu_gpll0_div_clk_src",
286801cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
286901cf3e27SImran Shaik &gpll0_out_aux2.clkr.hw,
287001cf3e27SImran Shaik },
287101cf3e27SImran Shaik .num_parents = 1,
287201cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
287301cf3e27SImran Shaik .ops = &clk_branch2_ops,
287401cf3e27SImran Shaik },
287501cf3e27SImran Shaik },
287601cf3e27SImran Shaik };
287701cf3e27SImran Shaik
287801cf3e27SImran Shaik static struct clk_branch gcc_gpu_memnoc_gfx_clk = {
287901cf3e27SImran Shaik .halt_reg = 0x3600c,
288001cf3e27SImran Shaik .halt_check = BRANCH_VOTED,
288101cf3e27SImran Shaik .hwcg_reg = 0x3600c,
288201cf3e27SImran Shaik .hwcg_bit = 1,
288301cf3e27SImran Shaik .clkr = {
288401cf3e27SImran Shaik .enable_reg = 0x3600c,
288501cf3e27SImran Shaik .enable_mask = BIT(0),
288601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
288701cf3e27SImran Shaik .name = "gcc_gpu_memnoc_gfx_clk",
288801cf3e27SImran Shaik .ops = &clk_branch2_aon_ops,
288901cf3e27SImran Shaik },
289001cf3e27SImran Shaik },
289101cf3e27SImran Shaik };
289201cf3e27SImran Shaik
289301cf3e27SImran Shaik static struct clk_branch gcc_gpu_smmu_vote_clk = {
289401cf3e27SImran Shaik .halt_reg = 0x7d000,
289501cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
289601cf3e27SImran Shaik .clkr = {
289701cf3e27SImran Shaik .enable_reg = 0x7d000,
289801cf3e27SImran Shaik .enable_mask = BIT(0),
289901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
290001cf3e27SImran Shaik .name = "gcc_gpu_smmu_vote_clk",
290101cf3e27SImran Shaik .ops = &clk_branch2_ops,
290201cf3e27SImran Shaik },
290301cf3e27SImran Shaik },
290401cf3e27SImran Shaik };
290501cf3e27SImran Shaik
290601cf3e27SImran Shaik static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = {
290701cf3e27SImran Shaik .halt_reg = 0x36018,
290801cf3e27SImran Shaik .halt_check = BRANCH_HALT,
290901cf3e27SImran Shaik .clkr = {
291001cf3e27SImran Shaik .enable_reg = 0x36018,
291101cf3e27SImran Shaik .enable_mask = BIT(0),
291201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
291301cf3e27SImran Shaik .name = "gcc_gpu_snoc_dvm_gfx_clk",
291401cf3e27SImran Shaik .ops = &clk_branch2_ops,
291501cf3e27SImran Shaik },
291601cf3e27SImran Shaik },
291701cf3e27SImran Shaik };
291801cf3e27SImran Shaik
291901cf3e27SImran Shaik static struct clk_branch gcc_gpu_throttle_core_clk = {
292001cf3e27SImran Shaik .halt_reg = 0x36048,
292101cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
292201cf3e27SImran Shaik .hwcg_reg = 0x36048,
292301cf3e27SImran Shaik .hwcg_bit = 1,
292401cf3e27SImran Shaik .clkr = {
292501cf3e27SImran Shaik .enable_reg = 0x7900c,
292601cf3e27SImran Shaik .enable_mask = BIT(21),
292701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
292801cf3e27SImran Shaik .name = "gcc_gpu_throttle_core_clk",
292901cf3e27SImran Shaik .ops = &clk_branch2_ops,
293001cf3e27SImran Shaik },
293101cf3e27SImran Shaik },
293201cf3e27SImran Shaik };
293301cf3e27SImran Shaik
293401cf3e27SImran Shaik static struct clk_branch gcc_mmu_tcu_vote_clk = {
293501cf3e27SImran Shaik .halt_reg = 0x7d06c,
293601cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
293701cf3e27SImran Shaik .clkr = {
293801cf3e27SImran Shaik .enable_reg = 0x7d06c,
293901cf3e27SImran Shaik .enable_mask = BIT(0),
294001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
294101cf3e27SImran Shaik .name = "gcc_mmu_tcu_vote_clk",
294201cf3e27SImran Shaik .ops = &clk_branch2_ops,
294301cf3e27SImran Shaik },
294401cf3e27SImran Shaik },
294501cf3e27SImran Shaik };
294601cf3e27SImran Shaik
294701cf3e27SImran Shaik static struct clk_branch gcc_pcie_aux_clk = {
294801cf3e27SImran Shaik .halt_reg = 0xaf044,
294901cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
295001cf3e27SImran Shaik .hwcg_reg = 0xaf044,
295101cf3e27SImran Shaik .hwcg_bit = 1,
295201cf3e27SImran Shaik .clkr = {
295301cf3e27SImran Shaik .enable_reg = 0x79018,
295401cf3e27SImran Shaik .enable_mask = BIT(0),
295501cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
295601cf3e27SImran Shaik .name = "gcc_pcie_aux_clk",
295701cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
295801cf3e27SImran Shaik &gcc_pcie_aux_clk_src.clkr.hw,
295901cf3e27SImran Shaik },
296001cf3e27SImran Shaik .num_parents = 1,
296101cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
296201cf3e27SImran Shaik .ops = &clk_branch2_ops,
296301cf3e27SImran Shaik },
296401cf3e27SImran Shaik },
296501cf3e27SImran Shaik };
296601cf3e27SImran Shaik
296701cf3e27SImran Shaik static struct clk_branch gcc_pcie_cfg_ahb_clk = {
296801cf3e27SImran Shaik .halt_reg = 0xaf010,
296901cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
297001cf3e27SImran Shaik .hwcg_reg = 0xaf010,
297101cf3e27SImran Shaik .hwcg_bit = 1,
297201cf3e27SImran Shaik .clkr = {
297301cf3e27SImran Shaik .enable_reg = 0x7900c,
297401cf3e27SImran Shaik .enable_mask = BIT(27),
297501cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
297601cf3e27SImran Shaik .name = "gcc_pcie_cfg_ahb_clk",
297701cf3e27SImran Shaik .ops = &clk_branch2_ops,
297801cf3e27SImran Shaik },
297901cf3e27SImran Shaik },
298001cf3e27SImran Shaik };
298101cf3e27SImran Shaik
298201cf3e27SImran Shaik static struct clk_branch gcc_pcie_clkref_en = {
298301cf3e27SImran Shaik .halt_reg = 0xb8000,
298401cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
298501cf3e27SImran Shaik .clkr = {
298601cf3e27SImran Shaik .enable_reg = 0xb8000,
298701cf3e27SImran Shaik .enable_mask = BIT(0),
298801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
298901cf3e27SImran Shaik .name = "gcc_pcie_clkref_en",
299001cf3e27SImran Shaik .ops = &clk_branch2_ops,
299101cf3e27SImran Shaik },
299201cf3e27SImran Shaik },
299301cf3e27SImran Shaik };
299401cf3e27SImran Shaik
299501cf3e27SImran Shaik static struct clk_branch gcc_pcie_mstr_axi_clk = {
299601cf3e27SImran Shaik .halt_reg = 0xaf020,
299701cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
299801cf3e27SImran Shaik .hwcg_reg = 0xaf020,
299901cf3e27SImran Shaik .hwcg_bit = 1,
300001cf3e27SImran Shaik .clkr = {
300101cf3e27SImran Shaik .enable_reg = 0x7900c,
300201cf3e27SImran Shaik .enable_mask = BIT(30),
300301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
300401cf3e27SImran Shaik .name = "gcc_pcie_mstr_axi_clk",
300501cf3e27SImran Shaik .ops = &clk_branch2_ops,
300601cf3e27SImran Shaik },
300701cf3e27SImran Shaik },
300801cf3e27SImran Shaik };
300901cf3e27SImran Shaik
301001cf3e27SImran Shaik static struct clk_branch gcc_pcie_pipe_clk = {
301101cf3e27SImran Shaik .halt_reg = 0xaf050,
301201cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
301301cf3e27SImran Shaik .hwcg_reg = 0xaf050,
301401cf3e27SImran Shaik .hwcg_bit = 1,
301501cf3e27SImran Shaik .clkr = {
301601cf3e27SImran Shaik .enable_reg = 0x79018,
301701cf3e27SImran Shaik .enable_mask = BIT(2),
301801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
301901cf3e27SImran Shaik .name = "gcc_pcie_pipe_clk",
302001cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
302101cf3e27SImran Shaik &gcc_pcie_pipe_clk_src.clkr.hw,
302201cf3e27SImran Shaik },
302301cf3e27SImran Shaik .num_parents = 1,
302401cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
302501cf3e27SImran Shaik .ops = &clk_branch2_ops,
302601cf3e27SImran Shaik },
302701cf3e27SImran Shaik },
302801cf3e27SImran Shaik };
302901cf3e27SImran Shaik
303001cf3e27SImran Shaik static struct clk_branch gcc_pcie_rchng_phy_clk = {
303101cf3e27SImran Shaik .halt_reg = 0xaf040,
303201cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
303301cf3e27SImran Shaik .hwcg_reg = 0xaf040,
303401cf3e27SImran Shaik .hwcg_bit = 1,
303501cf3e27SImran Shaik .clkr = {
303601cf3e27SImran Shaik .enable_reg = 0x7900c,
303701cf3e27SImran Shaik .enable_mask = BIT(31),
303801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
303901cf3e27SImran Shaik .name = "gcc_pcie_rchng_phy_clk",
304001cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
304101cf3e27SImran Shaik &gcc_pcie_rchng_phy_clk_src.clkr.hw,
304201cf3e27SImran Shaik },
304301cf3e27SImran Shaik .num_parents = 1,
304401cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
304501cf3e27SImran Shaik .ops = &clk_branch2_ops,
304601cf3e27SImran Shaik },
304701cf3e27SImran Shaik },
304801cf3e27SImran Shaik };
304901cf3e27SImran Shaik
305001cf3e27SImran Shaik static struct clk_branch gcc_pcie_sleep_clk = {
305101cf3e27SImran Shaik .halt_reg = 0xaf04c,
305201cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
305301cf3e27SImran Shaik .hwcg_reg = 0xaf04c,
305401cf3e27SImran Shaik .hwcg_bit = 1,
305501cf3e27SImran Shaik .clkr = {
305601cf3e27SImran Shaik .enable_reg = 0x79018,
305701cf3e27SImran Shaik .enable_mask = BIT(1),
305801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
305901cf3e27SImran Shaik .name = "gcc_pcie_sleep_clk",
306001cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
306101cf3e27SImran Shaik &gcc_pcie_aux_phy_clk_src.clkr.hw,
306201cf3e27SImran Shaik },
306301cf3e27SImran Shaik .num_parents = 1,
306401cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
306501cf3e27SImran Shaik .ops = &clk_branch2_ops,
306601cf3e27SImran Shaik },
306701cf3e27SImran Shaik },
306801cf3e27SImran Shaik };
306901cf3e27SImran Shaik
307001cf3e27SImran Shaik static struct clk_branch gcc_pcie_slv_axi_clk = {
307101cf3e27SImran Shaik .halt_reg = 0xaf018,
307201cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
307301cf3e27SImran Shaik .clkr = {
307401cf3e27SImran Shaik .enable_reg = 0x7900c,
307501cf3e27SImran Shaik .enable_mask = BIT(29),
307601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
307701cf3e27SImran Shaik .name = "gcc_pcie_slv_axi_clk",
307801cf3e27SImran Shaik .ops = &clk_branch2_ops,
307901cf3e27SImran Shaik },
308001cf3e27SImran Shaik },
308101cf3e27SImran Shaik };
308201cf3e27SImran Shaik
308301cf3e27SImran Shaik static struct clk_branch gcc_pcie_slv_q2a_axi_clk = {
308401cf3e27SImran Shaik .halt_reg = 0xaf014,
308501cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
308601cf3e27SImran Shaik .hwcg_reg = 0xaf014,
308701cf3e27SImran Shaik .hwcg_bit = 1,
308801cf3e27SImran Shaik .clkr = {
308901cf3e27SImran Shaik .enable_reg = 0x7900c,
309001cf3e27SImran Shaik .enable_mask = BIT(28),
309101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
309201cf3e27SImran Shaik .name = "gcc_pcie_slv_q2a_axi_clk",
309301cf3e27SImran Shaik .ops = &clk_branch2_ops,
309401cf3e27SImran Shaik },
309501cf3e27SImran Shaik },
309601cf3e27SImran Shaik };
309701cf3e27SImran Shaik
309801cf3e27SImran Shaik static struct clk_branch gcc_pcie_tbu_clk = {
309901cf3e27SImran Shaik .halt_reg = 0xaf098,
310001cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
310101cf3e27SImran Shaik .hwcg_reg = 0xaf098,
310201cf3e27SImran Shaik .hwcg_bit = 1,
310301cf3e27SImran Shaik .clkr = {
310401cf3e27SImran Shaik .enable_reg = 0x79018,
310501cf3e27SImran Shaik .enable_mask = BIT(6),
310601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
310701cf3e27SImran Shaik .name = "gcc_pcie_tbu_clk",
310801cf3e27SImran Shaik .ops = &clk_branch2_ops,
310901cf3e27SImran Shaik },
311001cf3e27SImran Shaik },
311101cf3e27SImran Shaik };
311201cf3e27SImran Shaik
311301cf3e27SImran Shaik static struct clk_branch gcc_pcie_throttle_core_clk = {
311401cf3e27SImran Shaik .halt_reg = 0xaf094,
311501cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
311601cf3e27SImran Shaik .hwcg_reg = 0xaf094,
311701cf3e27SImran Shaik .hwcg_bit = 1,
311801cf3e27SImran Shaik .clkr = {
311901cf3e27SImran Shaik .enable_reg = 0x79018,
312001cf3e27SImran Shaik .enable_mask = BIT(5),
312101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
312201cf3e27SImran Shaik .name = "gcc_pcie_throttle_core_clk",
312301cf3e27SImran Shaik .ops = &clk_branch2_ops,
312401cf3e27SImran Shaik },
312501cf3e27SImran Shaik },
312601cf3e27SImran Shaik };
312701cf3e27SImran Shaik
312801cf3e27SImran Shaik static struct clk_branch gcc_pcie_throttle_xo_clk = {
312901cf3e27SImran Shaik .halt_reg = 0xaf090,
313001cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
313101cf3e27SImran Shaik .clkr = {
313201cf3e27SImran Shaik .enable_reg = 0x79018,
313301cf3e27SImran Shaik .enable_mask = BIT(4),
313401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
313501cf3e27SImran Shaik .name = "gcc_pcie_throttle_xo_clk",
313601cf3e27SImran Shaik .ops = &clk_branch2_ops,
313701cf3e27SImran Shaik },
313801cf3e27SImran Shaik },
313901cf3e27SImran Shaik };
314001cf3e27SImran Shaik
314101cf3e27SImran Shaik static struct clk_branch gcc_pcie_tile_axi_sys_noc_clk = {
314201cf3e27SImran Shaik .halt_reg = 0x10f2c,
314301cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
314401cf3e27SImran Shaik .hwcg_reg = 0x10f2c,
314501cf3e27SImran Shaik .hwcg_bit = 1,
314601cf3e27SImran Shaik .clkr = {
314701cf3e27SImran Shaik .enable_reg = 0x10f2c,
314801cf3e27SImran Shaik .enable_mask = BIT(0),
314901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
315001cf3e27SImran Shaik .name = "gcc_pcie_tile_axi_sys_noc_clk",
315101cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
315201cf3e27SImran Shaik &gcc_emac0_axi_clk_src.clkr.hw,
315301cf3e27SImran Shaik },
315401cf3e27SImran Shaik .num_parents = 1,
315501cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
315601cf3e27SImran Shaik .ops = &clk_branch2_ops,
315701cf3e27SImran Shaik },
315801cf3e27SImran Shaik },
315901cf3e27SImran Shaik };
316001cf3e27SImran Shaik
316101cf3e27SImran Shaik static struct clk_branch gcc_pdm2_clk = {
316201cf3e27SImran Shaik .halt_reg = 0x2000c,
316301cf3e27SImran Shaik .halt_check = BRANCH_HALT,
316401cf3e27SImran Shaik .clkr = {
316501cf3e27SImran Shaik .enable_reg = 0x2000c,
316601cf3e27SImran Shaik .enable_mask = BIT(0),
316701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
316801cf3e27SImran Shaik .name = "gcc_pdm2_clk",
316901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
317001cf3e27SImran Shaik &gcc_pdm2_clk_src.clkr.hw,
317101cf3e27SImran Shaik },
317201cf3e27SImran Shaik .num_parents = 1,
317301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
317401cf3e27SImran Shaik .ops = &clk_branch2_ops,
317501cf3e27SImran Shaik },
317601cf3e27SImran Shaik },
317701cf3e27SImran Shaik };
317801cf3e27SImran Shaik
317901cf3e27SImran Shaik static struct clk_branch gcc_pdm_ahb_clk = {
318001cf3e27SImran Shaik .halt_reg = 0x20004,
318101cf3e27SImran Shaik .halt_check = BRANCH_HALT,
318201cf3e27SImran Shaik .hwcg_reg = 0x20004,
318301cf3e27SImran Shaik .hwcg_bit = 1,
318401cf3e27SImran Shaik .clkr = {
318501cf3e27SImran Shaik .enable_reg = 0x20004,
318601cf3e27SImran Shaik .enable_mask = BIT(0),
318701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
318801cf3e27SImran Shaik .name = "gcc_pdm_ahb_clk",
318901cf3e27SImran Shaik .ops = &clk_branch2_ops,
319001cf3e27SImran Shaik },
319101cf3e27SImran Shaik },
319201cf3e27SImran Shaik };
319301cf3e27SImran Shaik
319401cf3e27SImran Shaik static struct clk_branch gcc_pdm_xo4_clk = {
319501cf3e27SImran Shaik .halt_reg = 0x20008,
319601cf3e27SImran Shaik .halt_check = BRANCH_HALT,
319701cf3e27SImran Shaik .clkr = {
319801cf3e27SImran Shaik .enable_reg = 0x20008,
319901cf3e27SImran Shaik .enable_mask = BIT(0),
320001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
320101cf3e27SImran Shaik .name = "gcc_pdm_xo4_clk",
320201cf3e27SImran Shaik .ops = &clk_branch2_ops,
320301cf3e27SImran Shaik },
320401cf3e27SImran Shaik },
320501cf3e27SImran Shaik };
320601cf3e27SImran Shaik
320701cf3e27SImran Shaik static struct clk_branch gcc_pwm0_xo512_clk = {
320801cf3e27SImran Shaik .halt_reg = 0x2002c,
320901cf3e27SImran Shaik .halt_check = BRANCH_HALT,
321001cf3e27SImran Shaik .clkr = {
321101cf3e27SImran Shaik .enable_reg = 0x2002c,
321201cf3e27SImran Shaik .enable_mask = BIT(0),
321301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
321401cf3e27SImran Shaik .name = "gcc_pwm0_xo512_clk",
321501cf3e27SImran Shaik .ops = &clk_branch2_ops,
321601cf3e27SImran Shaik },
321701cf3e27SImran Shaik },
321801cf3e27SImran Shaik };
321901cf3e27SImran Shaik
322001cf3e27SImran Shaik static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = {
322101cf3e27SImran Shaik .halt_reg = 0x17014,
322201cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
322301cf3e27SImran Shaik .hwcg_reg = 0x17014,
322401cf3e27SImran Shaik .hwcg_bit = 1,
322501cf3e27SImran Shaik .clkr = {
322601cf3e27SImran Shaik .enable_reg = 0x79004,
322701cf3e27SImran Shaik .enable_mask = BIT(9),
322801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
322901cf3e27SImran Shaik .name = "gcc_qmip_camera_nrt_ahb_clk",
323001cf3e27SImran Shaik .ops = &clk_branch2_ops,
323101cf3e27SImran Shaik },
323201cf3e27SImran Shaik },
323301cf3e27SImran Shaik };
323401cf3e27SImran Shaik
323501cf3e27SImran Shaik static struct clk_branch gcc_qmip_camera_rt_ahb_clk = {
323601cf3e27SImran Shaik .halt_reg = 0x17060,
323701cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
323801cf3e27SImran Shaik .hwcg_reg = 0x17060,
323901cf3e27SImran Shaik .hwcg_bit = 1,
324001cf3e27SImran Shaik .clkr = {
324101cf3e27SImran Shaik .enable_reg = 0x79004,
324201cf3e27SImran Shaik .enable_mask = BIT(12),
324301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
324401cf3e27SImran Shaik .name = "gcc_qmip_camera_rt_ahb_clk",
324501cf3e27SImran Shaik .ops = &clk_branch2_ops,
324601cf3e27SImran Shaik },
324701cf3e27SImran Shaik },
324801cf3e27SImran Shaik };
324901cf3e27SImran Shaik
325001cf3e27SImran Shaik static struct clk_branch gcc_qmip_disp_ahb_clk = {
325101cf3e27SImran Shaik .halt_reg = 0x17018,
325201cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
325301cf3e27SImran Shaik .hwcg_reg = 0x17018,
325401cf3e27SImran Shaik .hwcg_bit = 1,
325501cf3e27SImran Shaik .clkr = {
325601cf3e27SImran Shaik .enable_reg = 0x79004,
325701cf3e27SImran Shaik .enable_mask = BIT(10),
325801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
325901cf3e27SImran Shaik .name = "gcc_qmip_disp_ahb_clk",
326001cf3e27SImran Shaik .ops = &clk_branch2_ops,
326101cf3e27SImran Shaik },
326201cf3e27SImran Shaik },
326301cf3e27SImran Shaik };
326401cf3e27SImran Shaik
326501cf3e27SImran Shaik static struct clk_branch gcc_qmip_gpu_cfg_ahb_clk = {
326601cf3e27SImran Shaik .halt_reg = 0x36040,
326701cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
326801cf3e27SImran Shaik .hwcg_reg = 0x36040,
326901cf3e27SImran Shaik .hwcg_bit = 1,
327001cf3e27SImran Shaik .clkr = {
327101cf3e27SImran Shaik .enable_reg = 0x7900c,
327201cf3e27SImran Shaik .enable_mask = BIT(20),
327301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
327401cf3e27SImran Shaik .name = "gcc_qmip_gpu_cfg_ahb_clk",
327501cf3e27SImran Shaik .ops = &clk_branch2_ops,
327601cf3e27SImran Shaik },
327701cf3e27SImran Shaik },
327801cf3e27SImran Shaik };
327901cf3e27SImran Shaik
328001cf3e27SImran Shaik static struct clk_branch gcc_qmip_pcie_cfg_ahb_clk = {
328101cf3e27SImran Shaik .halt_reg = 0xaf08c,
328201cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
328301cf3e27SImran Shaik .hwcg_reg = 0xaf08c,
328401cf3e27SImran Shaik .hwcg_bit = 1,
328501cf3e27SImran Shaik .clkr = {
328601cf3e27SImran Shaik .enable_reg = 0x79018,
328701cf3e27SImran Shaik .enable_mask = BIT(3),
328801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
328901cf3e27SImran Shaik .name = "gcc_qmip_pcie_cfg_ahb_clk",
329001cf3e27SImran Shaik .ops = &clk_branch2_ops,
329101cf3e27SImran Shaik },
329201cf3e27SImran Shaik },
329301cf3e27SImran Shaik };
329401cf3e27SImran Shaik
329501cf3e27SImran Shaik static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = {
329601cf3e27SImran Shaik .halt_reg = 0x17010,
329701cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
329801cf3e27SImran Shaik .hwcg_reg = 0x17010,
329901cf3e27SImran Shaik .hwcg_bit = 1,
330001cf3e27SImran Shaik .clkr = {
330101cf3e27SImran Shaik .enable_reg = 0x79004,
330201cf3e27SImran Shaik .enable_mask = BIT(8),
330301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
330401cf3e27SImran Shaik .name = "gcc_qmip_video_vcodec_ahb_clk",
330501cf3e27SImran Shaik .ops = &clk_branch2_ops,
330601cf3e27SImran Shaik },
330701cf3e27SImran Shaik },
330801cf3e27SImran Shaik };
330901cf3e27SImran Shaik
331001cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = {
331101cf3e27SImran Shaik .halt_reg = 0x1f014,
331201cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
331301cf3e27SImran Shaik .clkr = {
331401cf3e27SImran Shaik .enable_reg = 0x79004,
331501cf3e27SImran Shaik .enable_mask = BIT(21),
331601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
331701cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_core_2x_clk",
331801cf3e27SImran Shaik .ops = &clk_branch2_ops,
331901cf3e27SImran Shaik },
332001cf3e27SImran Shaik },
332101cf3e27SImran Shaik };
332201cf3e27SImran Shaik
332301cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_core_clk = {
332401cf3e27SImran Shaik .halt_reg = 0x1f00c,
332501cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
332601cf3e27SImran Shaik .clkr = {
332701cf3e27SImran Shaik .enable_reg = 0x79004,
332801cf3e27SImran Shaik .enable_mask = BIT(20),
332901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
333001cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_core_clk",
333101cf3e27SImran Shaik .ops = &clk_branch2_ops,
333201cf3e27SImran Shaik },
333301cf3e27SImran Shaik },
333401cf3e27SImran Shaik };
333501cf3e27SImran Shaik
333601cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s0_clk = {
333701cf3e27SImran Shaik .halt_reg = 0x1f144,
333801cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
333901cf3e27SImran Shaik .clkr = {
334001cf3e27SImran Shaik .enable_reg = 0x79004,
334101cf3e27SImran Shaik .enable_mask = BIT(22),
334201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
334301cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s0_clk",
334401cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
334501cf3e27SImran Shaik &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
334601cf3e27SImran Shaik },
334701cf3e27SImran Shaik .num_parents = 1,
334801cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
334901cf3e27SImran Shaik .ops = &clk_branch2_ops,
335001cf3e27SImran Shaik },
335101cf3e27SImran Shaik },
335201cf3e27SImran Shaik };
335301cf3e27SImran Shaik
335401cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s1_clk = {
335501cf3e27SImran Shaik .halt_reg = 0x1f274,
335601cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
335701cf3e27SImran Shaik .clkr = {
335801cf3e27SImran Shaik .enable_reg = 0x79004,
335901cf3e27SImran Shaik .enable_mask = BIT(23),
336001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
336101cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s1_clk",
336201cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
336301cf3e27SImran Shaik &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
336401cf3e27SImran Shaik },
336501cf3e27SImran Shaik .num_parents = 1,
336601cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
336701cf3e27SImran Shaik .ops = &clk_branch2_ops,
336801cf3e27SImran Shaik },
336901cf3e27SImran Shaik },
337001cf3e27SImran Shaik };
337101cf3e27SImran Shaik
337201cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s2_clk = {
337301cf3e27SImran Shaik .halt_reg = 0x1f3a4,
337401cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
337501cf3e27SImran Shaik .clkr = {
337601cf3e27SImran Shaik .enable_reg = 0x79004,
337701cf3e27SImran Shaik .enable_mask = BIT(24),
337801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
337901cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s2_clk",
338001cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
338101cf3e27SImran Shaik &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
338201cf3e27SImran Shaik },
338301cf3e27SImran Shaik .num_parents = 1,
338401cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
338501cf3e27SImran Shaik .ops = &clk_branch2_ops,
338601cf3e27SImran Shaik },
338701cf3e27SImran Shaik },
338801cf3e27SImran Shaik };
338901cf3e27SImran Shaik
339001cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s3_clk = {
339101cf3e27SImran Shaik .halt_reg = 0x1f4d4,
339201cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
339301cf3e27SImran Shaik .clkr = {
339401cf3e27SImran Shaik .enable_reg = 0x79004,
339501cf3e27SImran Shaik .enable_mask = BIT(25),
339601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
339701cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s3_clk",
339801cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
339901cf3e27SImran Shaik &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
340001cf3e27SImran Shaik },
340101cf3e27SImran Shaik .num_parents = 1,
340201cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
340301cf3e27SImran Shaik .ops = &clk_branch2_ops,
340401cf3e27SImran Shaik },
340501cf3e27SImran Shaik },
340601cf3e27SImran Shaik };
340701cf3e27SImran Shaik
340801cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s4_clk = {
340901cf3e27SImran Shaik .halt_reg = 0x1f604,
341001cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
341101cf3e27SImran Shaik .clkr = {
341201cf3e27SImran Shaik .enable_reg = 0x79004,
341301cf3e27SImran Shaik .enable_mask = BIT(26),
341401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
341501cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s4_clk",
341601cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
341701cf3e27SImran Shaik &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
341801cf3e27SImran Shaik },
341901cf3e27SImran Shaik .num_parents = 1,
342001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
342101cf3e27SImran Shaik .ops = &clk_branch2_ops,
342201cf3e27SImran Shaik },
342301cf3e27SImran Shaik },
342401cf3e27SImran Shaik };
342501cf3e27SImran Shaik
342601cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s5_clk = {
342701cf3e27SImran Shaik .halt_reg = 0x1f734,
342801cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
342901cf3e27SImran Shaik .clkr = {
343001cf3e27SImran Shaik .enable_reg = 0x79004,
343101cf3e27SImran Shaik .enable_mask = BIT(27),
343201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
343301cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s5_clk",
343401cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
343501cf3e27SImran Shaik &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
343601cf3e27SImran Shaik },
343701cf3e27SImran Shaik .num_parents = 1,
343801cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
343901cf3e27SImran Shaik .ops = &clk_branch2_ops,
344001cf3e27SImran Shaik },
344101cf3e27SImran Shaik },
344201cf3e27SImran Shaik };
344301cf3e27SImran Shaik
344401cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s6_clk = {
344501cf3e27SImran Shaik .halt_reg = 0x1f864,
344601cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
344701cf3e27SImran Shaik .clkr = {
344801cf3e27SImran Shaik .enable_reg = 0x79004,
344901cf3e27SImran Shaik .enable_mask = BIT(28),
345001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
345101cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s6_clk",
345201cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
345301cf3e27SImran Shaik &gcc_qupv3_wrap0_s6_clk_src.clkr.hw,
345401cf3e27SImran Shaik },
345501cf3e27SImran Shaik .num_parents = 1,
345601cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
345701cf3e27SImran Shaik .ops = &clk_branch2_ops,
345801cf3e27SImran Shaik },
345901cf3e27SImran Shaik },
346001cf3e27SImran Shaik };
346101cf3e27SImran Shaik
346201cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s7_clk = {
346301cf3e27SImran Shaik .halt_reg = 0x1f994,
346401cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
346501cf3e27SImran Shaik .clkr = {
346601cf3e27SImran Shaik .enable_reg = 0x79004,
346701cf3e27SImran Shaik .enable_mask = BIT(29),
346801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
346901cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s7_clk",
347001cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
347101cf3e27SImran Shaik &gcc_qupv3_wrap0_s7_clk_src.clkr.hw,
347201cf3e27SImran Shaik },
347301cf3e27SImran Shaik .num_parents = 1,
347401cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
347501cf3e27SImran Shaik .ops = &clk_branch2_ops,
347601cf3e27SImran Shaik },
347701cf3e27SImran Shaik },
347801cf3e27SImran Shaik };
347901cf3e27SImran Shaik
348001cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s8_clk = {
348101cf3e27SImran Shaik .halt_reg = 0x1fac4,
348201cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
348301cf3e27SImran Shaik .clkr = {
348401cf3e27SImran Shaik .enable_reg = 0x79004,
348501cf3e27SImran Shaik .enable_mask = BIT(30),
348601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
348701cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s8_clk",
348801cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
348901cf3e27SImran Shaik &gcc_qupv3_wrap0_s8_clk_src.clkr.hw,
349001cf3e27SImran Shaik },
349101cf3e27SImran Shaik .num_parents = 1,
349201cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
349301cf3e27SImran Shaik .ops = &clk_branch2_ops,
349401cf3e27SImran Shaik },
349501cf3e27SImran Shaik },
349601cf3e27SImran Shaik };
349701cf3e27SImran Shaik
349801cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap0_s9_clk = {
349901cf3e27SImran Shaik .halt_reg = 0x1fbf4,
350001cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
350101cf3e27SImran Shaik .clkr = {
350201cf3e27SImran Shaik .enable_reg = 0x79004,
350301cf3e27SImran Shaik .enable_mask = BIT(31),
350401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
350501cf3e27SImran Shaik .name = "gcc_qupv3_wrap0_s9_clk",
350601cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
350701cf3e27SImran Shaik &gcc_qupv3_wrap0_s9_clk_src.clkr.hw,
350801cf3e27SImran Shaik },
350901cf3e27SImran Shaik .num_parents = 1,
351001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
351101cf3e27SImran Shaik .ops = &clk_branch2_ops,
351201cf3e27SImran Shaik },
351301cf3e27SImran Shaik },
351401cf3e27SImran Shaik };
351501cf3e27SImran Shaik
351601cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = {
351701cf3e27SImran Shaik .halt_reg = 0x1f004,
351801cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
351901cf3e27SImran Shaik .hwcg_reg = 0x1f004,
352001cf3e27SImran Shaik .hwcg_bit = 1,
352101cf3e27SImran Shaik .clkr = {
352201cf3e27SImran Shaik .enable_reg = 0x79004,
352301cf3e27SImran Shaik .enable_mask = BIT(18),
352401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
352501cf3e27SImran Shaik .name = "gcc_qupv3_wrap_0_m_ahb_clk",
352601cf3e27SImran Shaik .ops = &clk_branch2_ops,
352701cf3e27SImran Shaik },
352801cf3e27SImran Shaik },
352901cf3e27SImran Shaik };
353001cf3e27SImran Shaik
353101cf3e27SImran Shaik static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = {
353201cf3e27SImran Shaik .halt_reg = 0x1f008,
353301cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
353401cf3e27SImran Shaik .hwcg_reg = 0x1f008,
353501cf3e27SImran Shaik .hwcg_bit = 1,
353601cf3e27SImran Shaik .clkr = {
353701cf3e27SImran Shaik .enable_reg = 0x79004,
353801cf3e27SImran Shaik .enable_mask = BIT(19),
353901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
354001cf3e27SImran Shaik .name = "gcc_qupv3_wrap_0_s_ahb_clk",
354101cf3e27SImran Shaik .ops = &clk_branch2_ops,
354201cf3e27SImran Shaik },
354301cf3e27SImran Shaik },
354401cf3e27SImran Shaik };
354501cf3e27SImran Shaik
354601cf3e27SImran Shaik static struct clk_branch gcc_sdcc1_ahb_clk = {
354701cf3e27SImran Shaik .halt_reg = 0x38008,
354801cf3e27SImran Shaik .halt_check = BRANCH_HALT,
354901cf3e27SImran Shaik .hwcg_reg = 0x38008,
355001cf3e27SImran Shaik .hwcg_bit = 1,
355101cf3e27SImran Shaik .clkr = {
355201cf3e27SImran Shaik .enable_reg = 0x38008,
355301cf3e27SImran Shaik .enable_mask = BIT(0),
355401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
355501cf3e27SImran Shaik .name = "gcc_sdcc1_ahb_clk",
355601cf3e27SImran Shaik .ops = &clk_branch2_ops,
355701cf3e27SImran Shaik },
355801cf3e27SImran Shaik },
355901cf3e27SImran Shaik };
356001cf3e27SImran Shaik
356101cf3e27SImran Shaik static struct clk_branch gcc_sdcc1_apps_clk = {
356201cf3e27SImran Shaik .halt_reg = 0x38004,
356301cf3e27SImran Shaik .halt_check = BRANCH_HALT,
356401cf3e27SImran Shaik .clkr = {
356501cf3e27SImran Shaik .enable_reg = 0x38004,
356601cf3e27SImran Shaik .enable_mask = BIT(0),
356701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
356801cf3e27SImran Shaik .name = "gcc_sdcc1_apps_clk",
356901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
357001cf3e27SImran Shaik &gcc_sdcc1_apps_clk_src.clkr.hw,
357101cf3e27SImran Shaik },
357201cf3e27SImran Shaik .num_parents = 1,
357301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
357401cf3e27SImran Shaik .ops = &clk_branch2_ops,
357501cf3e27SImran Shaik },
357601cf3e27SImran Shaik },
357701cf3e27SImran Shaik };
357801cf3e27SImran Shaik
357901cf3e27SImran Shaik static struct clk_branch gcc_sdcc1_ice_core_clk = {
358001cf3e27SImran Shaik .halt_reg = 0x3800c,
358101cf3e27SImran Shaik .halt_check = BRANCH_HALT,
358201cf3e27SImran Shaik .hwcg_reg = 0x3800c,
358301cf3e27SImran Shaik .hwcg_bit = 1,
358401cf3e27SImran Shaik .clkr = {
358501cf3e27SImran Shaik .enable_reg = 0x3800c,
358601cf3e27SImran Shaik .enable_mask = BIT(0),
358701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
358801cf3e27SImran Shaik .name = "gcc_sdcc1_ice_core_clk",
358901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
359001cf3e27SImran Shaik &gcc_sdcc1_ice_core_clk_src.clkr.hw,
359101cf3e27SImran Shaik },
359201cf3e27SImran Shaik .num_parents = 1,
359301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
359401cf3e27SImran Shaik .ops = &clk_branch2_ops,
359501cf3e27SImran Shaik },
359601cf3e27SImran Shaik },
359701cf3e27SImran Shaik };
359801cf3e27SImran Shaik
359901cf3e27SImran Shaik static struct clk_branch gcc_sdcc2_ahb_clk = {
360001cf3e27SImran Shaik .halt_reg = 0x1e008,
360101cf3e27SImran Shaik .halt_check = BRANCH_HALT,
360201cf3e27SImran Shaik .hwcg_reg = 0x1e008,
360301cf3e27SImran Shaik .hwcg_bit = 1,
360401cf3e27SImran Shaik .clkr = {
360501cf3e27SImran Shaik .enable_reg = 0x1e008,
360601cf3e27SImran Shaik .enable_mask = BIT(0),
360701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
360801cf3e27SImran Shaik .name = "gcc_sdcc2_ahb_clk",
360901cf3e27SImran Shaik .ops = &clk_branch2_ops,
361001cf3e27SImran Shaik },
361101cf3e27SImran Shaik },
361201cf3e27SImran Shaik };
361301cf3e27SImran Shaik
361401cf3e27SImran Shaik static struct clk_branch gcc_sdcc2_apps_clk = {
361501cf3e27SImran Shaik .halt_reg = 0x1e004,
361601cf3e27SImran Shaik .halt_check = BRANCH_HALT,
361701cf3e27SImran Shaik .clkr = {
361801cf3e27SImran Shaik .enable_reg = 0x1e004,
361901cf3e27SImran Shaik .enable_mask = BIT(0),
362001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
362101cf3e27SImran Shaik .name = "gcc_sdcc2_apps_clk",
362201cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
362301cf3e27SImran Shaik &gcc_sdcc2_apps_clk_src.clkr.hw,
362401cf3e27SImran Shaik },
362501cf3e27SImran Shaik .num_parents = 1,
362601cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
362701cf3e27SImran Shaik .ops = &clk_branch2_ops,
362801cf3e27SImran Shaik },
362901cf3e27SImran Shaik },
363001cf3e27SImran Shaik };
363101cf3e27SImran Shaik
363201cf3e27SImran Shaik static struct clk_branch gcc_sys_noc_usb2_prim_axi_clk = {
363301cf3e27SImran Shaik .halt_reg = 0x10a14,
363401cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
363501cf3e27SImran Shaik .hwcg_reg = 0x10a14,
363601cf3e27SImran Shaik .hwcg_bit = 1,
363701cf3e27SImran Shaik .clkr = {
363801cf3e27SImran Shaik .enable_reg = 0x10a14,
363901cf3e27SImran Shaik .enable_mask = BIT(0),
364001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
364101cf3e27SImran Shaik .name = "gcc_sys_noc_usb2_prim_axi_clk",
364201cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
364301cf3e27SImran Shaik &gcc_usb20_master_clk_src.clkr.hw,
364401cf3e27SImran Shaik },
364501cf3e27SImran Shaik .num_parents = 1,
364601cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
364701cf3e27SImran Shaik .ops = &clk_branch2_ops,
364801cf3e27SImran Shaik },
364901cf3e27SImran Shaik },
365001cf3e27SImran Shaik };
365101cf3e27SImran Shaik
365201cf3e27SImran Shaik static struct clk_branch gcc_sys_noc_usb3_prim_axi_clk = {
365301cf3e27SImran Shaik .halt_reg = 0x1a078,
365401cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
365501cf3e27SImran Shaik .hwcg_reg = 0x1a078,
365601cf3e27SImran Shaik .hwcg_bit = 1,
365701cf3e27SImran Shaik .clkr = {
365801cf3e27SImran Shaik .enable_reg = 0x1a078,
365901cf3e27SImran Shaik .enable_mask = BIT(0),
366001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
366101cf3e27SImran Shaik .name = "gcc_sys_noc_usb3_prim_axi_clk",
366201cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
366301cf3e27SImran Shaik &gcc_usb30_prim_master_clk_src.clkr.hw,
366401cf3e27SImran Shaik },
366501cf3e27SImran Shaik .num_parents = 1,
366601cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
366701cf3e27SImran Shaik .ops = &clk_branch2_ops,
366801cf3e27SImran Shaik },
366901cf3e27SImran Shaik },
367001cf3e27SImran Shaik };
367101cf3e27SImran Shaik
367201cf3e27SImran Shaik static struct clk_branch gcc_tscss_ahb_clk = {
367301cf3e27SImran Shaik .halt_reg = 0xac024,
367401cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
367501cf3e27SImran Shaik .hwcg_reg = 0xac024,
367601cf3e27SImran Shaik .hwcg_bit = 1,
367701cf3e27SImran Shaik .clkr = {
367801cf3e27SImran Shaik .enable_reg = 0xac024,
367901cf3e27SImran Shaik .enable_mask = BIT(0),
368001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
368101cf3e27SImran Shaik .name = "gcc_tscss_ahb_clk",
368201cf3e27SImran Shaik .ops = &clk_branch2_ops,
368301cf3e27SImran Shaik },
368401cf3e27SImran Shaik },
368501cf3e27SImran Shaik };
368601cf3e27SImran Shaik
368701cf3e27SImran Shaik static struct clk_branch gcc_tscss_cntr_clk = {
368801cf3e27SImran Shaik .halt_reg = 0xac020,
368901cf3e27SImran Shaik .halt_check = BRANCH_HALT,
369001cf3e27SImran Shaik .clkr = {
369101cf3e27SImran Shaik .enable_reg = 0xac020,
369201cf3e27SImran Shaik .enable_mask = BIT(0),
369301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
369401cf3e27SImran Shaik .name = "gcc_tscss_cntr_clk",
369501cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
369601cf3e27SImran Shaik &gcc_tscss_clk_src.clkr.hw,
369701cf3e27SImran Shaik },
369801cf3e27SImran Shaik .num_parents = 1,
369901cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
370001cf3e27SImran Shaik .ops = &clk_branch2_ops,
370101cf3e27SImran Shaik },
370201cf3e27SImran Shaik },
370301cf3e27SImran Shaik };
370401cf3e27SImran Shaik
370501cf3e27SImran Shaik static struct clk_branch gcc_tscss_etu_clk = {
370601cf3e27SImran Shaik .halt_reg = 0xac01c,
370701cf3e27SImran Shaik .halt_check = BRANCH_HALT,
370801cf3e27SImran Shaik .clkr = {
370901cf3e27SImran Shaik .enable_reg = 0xac01c,
371001cf3e27SImran Shaik .enable_mask = BIT(0),
371101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
371201cf3e27SImran Shaik .name = "gcc_tscss_etu_clk",
371301cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
371401cf3e27SImran Shaik &gcc_tscss_clk_src.clkr.hw,
371501cf3e27SImran Shaik },
371601cf3e27SImran Shaik .num_parents = 1,
371701cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
371801cf3e27SImran Shaik .ops = &clk_branch2_ops,
371901cf3e27SImran Shaik },
372001cf3e27SImran Shaik },
372101cf3e27SImran Shaik };
372201cf3e27SImran Shaik
372301cf3e27SImran Shaik static struct clk_branch gcc_ufs_clkref_en = {
372401cf3e27SImran Shaik .halt_reg = 0x8c000,
372501cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
372601cf3e27SImran Shaik .clkr = {
372701cf3e27SImran Shaik .enable_reg = 0x8c000,
372801cf3e27SImran Shaik .enable_mask = BIT(0),
372901cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
373001cf3e27SImran Shaik .name = "gcc_ufs_clkref_en",
373101cf3e27SImran Shaik .ops = &clk_branch2_ops,
373201cf3e27SImran Shaik },
373301cf3e27SImran Shaik },
373401cf3e27SImran Shaik };
373501cf3e27SImran Shaik
373601cf3e27SImran Shaik static struct clk_branch gcc_usb20_master_clk = {
373701cf3e27SImran Shaik .halt_reg = 0xb0010,
373801cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
373901cf3e27SImran Shaik .hwcg_reg = 0xb0010,
374001cf3e27SImran Shaik .hwcg_bit = 1,
374101cf3e27SImran Shaik .clkr = {
374201cf3e27SImran Shaik .enable_reg = 0xb0010,
374301cf3e27SImran Shaik .enable_mask = BIT(0),
374401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
374501cf3e27SImran Shaik .name = "gcc_usb20_master_clk",
374601cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
374701cf3e27SImran Shaik &gcc_usb20_master_clk_src.clkr.hw,
374801cf3e27SImran Shaik },
374901cf3e27SImran Shaik .num_parents = 1,
375001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
375101cf3e27SImran Shaik .ops = &clk_branch2_ops,
375201cf3e27SImran Shaik },
375301cf3e27SImran Shaik },
375401cf3e27SImran Shaik };
375501cf3e27SImran Shaik
375601cf3e27SImran Shaik static struct clk_branch gcc_usb20_mock_utmi_clk = {
375701cf3e27SImran Shaik .halt_reg = 0xb001c,
375801cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
375901cf3e27SImran Shaik .clkr = {
376001cf3e27SImran Shaik .enable_reg = 0xb001c,
376101cf3e27SImran Shaik .enable_mask = BIT(0),
376201cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
376301cf3e27SImran Shaik .name = "gcc_usb20_mock_utmi_clk",
376401cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
376501cf3e27SImran Shaik &gcc_usb20_mock_utmi_postdiv_clk_src.clkr.hw,
376601cf3e27SImran Shaik },
376701cf3e27SImran Shaik .num_parents = 1,
376801cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
376901cf3e27SImran Shaik .ops = &clk_branch2_ops,
377001cf3e27SImran Shaik },
377101cf3e27SImran Shaik },
377201cf3e27SImran Shaik };
377301cf3e27SImran Shaik
377401cf3e27SImran Shaik static struct clk_branch gcc_usb20_sleep_clk = {
377501cf3e27SImran Shaik .halt_reg = 0xb0018,
377601cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
377701cf3e27SImran Shaik .clkr = {
377801cf3e27SImran Shaik .enable_reg = 0xb0018,
377901cf3e27SImran Shaik .enable_mask = BIT(0),
378001cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
378101cf3e27SImran Shaik .name = "gcc_usb20_sleep_clk",
378201cf3e27SImran Shaik .ops = &clk_branch2_ops,
378301cf3e27SImran Shaik },
378401cf3e27SImran Shaik },
378501cf3e27SImran Shaik };
378601cf3e27SImran Shaik
378701cf3e27SImran Shaik static struct clk_branch gcc_usb30_prim_master_clk = {
378801cf3e27SImran Shaik .halt_reg = 0x1a010,
378901cf3e27SImran Shaik .halt_check = BRANCH_HALT,
379001cf3e27SImran Shaik .hwcg_reg = 0x1a010,
379101cf3e27SImran Shaik .hwcg_bit = 1,
379201cf3e27SImran Shaik .clkr = {
379301cf3e27SImran Shaik .enable_reg = 0x1a010,
379401cf3e27SImran Shaik .enable_mask = BIT(0),
379501cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
379601cf3e27SImran Shaik .name = "gcc_usb30_prim_master_clk",
379701cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
379801cf3e27SImran Shaik &gcc_usb30_prim_master_clk_src.clkr.hw,
379901cf3e27SImran Shaik },
380001cf3e27SImran Shaik .num_parents = 1,
380101cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
380201cf3e27SImran Shaik .ops = &clk_branch2_ops,
380301cf3e27SImran Shaik },
380401cf3e27SImran Shaik },
380501cf3e27SImran Shaik };
380601cf3e27SImran Shaik
380701cf3e27SImran Shaik static struct clk_branch gcc_usb30_prim_mock_utmi_clk = {
380801cf3e27SImran Shaik .halt_reg = 0x1a018,
380901cf3e27SImran Shaik .halt_check = BRANCH_HALT,
381001cf3e27SImran Shaik .clkr = {
381101cf3e27SImran Shaik .enable_reg = 0x1a018,
381201cf3e27SImran Shaik .enable_mask = BIT(0),
381301cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
381401cf3e27SImran Shaik .name = "gcc_usb30_prim_mock_utmi_clk",
381501cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
381601cf3e27SImran Shaik &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
381701cf3e27SImran Shaik },
381801cf3e27SImran Shaik .num_parents = 1,
381901cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
382001cf3e27SImran Shaik .ops = &clk_branch2_ops,
382101cf3e27SImran Shaik },
382201cf3e27SImran Shaik },
382301cf3e27SImran Shaik };
382401cf3e27SImran Shaik
382501cf3e27SImran Shaik static struct clk_branch gcc_usb30_prim_sleep_clk = {
382601cf3e27SImran Shaik .halt_reg = 0x1a014,
382701cf3e27SImran Shaik .halt_check = BRANCH_HALT,
382801cf3e27SImran Shaik .clkr = {
382901cf3e27SImran Shaik .enable_reg = 0x1a014,
383001cf3e27SImran Shaik .enable_mask = BIT(0),
383101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
383201cf3e27SImran Shaik .name = "gcc_usb30_prim_sleep_clk",
383301cf3e27SImran Shaik .ops = &clk_branch2_ops,
383401cf3e27SImran Shaik },
383501cf3e27SImran Shaik },
383601cf3e27SImran Shaik };
383701cf3e27SImran Shaik
383801cf3e27SImran Shaik static struct clk_branch gcc_usb3_prim_clkref_en = {
383901cf3e27SImran Shaik .halt_reg = 0x9f000,
384001cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
384101cf3e27SImran Shaik .clkr = {
384201cf3e27SImran Shaik .enable_reg = 0x9f000,
384301cf3e27SImran Shaik .enable_mask = BIT(0),
384401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
384501cf3e27SImran Shaik .name = "gcc_usb3_prim_clkref_en",
384601cf3e27SImran Shaik .ops = &clk_branch2_ops,
384701cf3e27SImran Shaik },
384801cf3e27SImran Shaik },
384901cf3e27SImran Shaik };
385001cf3e27SImran Shaik
385101cf3e27SImran Shaik static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
385201cf3e27SImran Shaik .halt_reg = 0x1a054,
385301cf3e27SImran Shaik .halt_check = BRANCH_HALT,
385401cf3e27SImran Shaik .clkr = {
385501cf3e27SImran Shaik .enable_reg = 0x1a054,
385601cf3e27SImran Shaik .enable_mask = BIT(0),
385701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
385801cf3e27SImran Shaik .name = "gcc_usb3_prim_phy_com_aux_clk",
385901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
386001cf3e27SImran Shaik &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
386101cf3e27SImran Shaik },
386201cf3e27SImran Shaik .num_parents = 1,
386301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
386401cf3e27SImran Shaik .ops = &clk_branch2_ops,
386501cf3e27SImran Shaik },
386601cf3e27SImran Shaik },
386701cf3e27SImran Shaik };
386801cf3e27SImran Shaik
386901cf3e27SImran Shaik static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
387001cf3e27SImran Shaik .halt_reg = 0x1a058,
387101cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
387201cf3e27SImran Shaik .hwcg_reg = 0x1a058,
387301cf3e27SImran Shaik .hwcg_bit = 1,
387401cf3e27SImran Shaik .clkr = {
387501cf3e27SImran Shaik .enable_reg = 0x1a058,
387601cf3e27SImran Shaik .enable_mask = BIT(0),
387701cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
387801cf3e27SImran Shaik .name = "gcc_usb3_prim_phy_pipe_clk",
387901cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
388001cf3e27SImran Shaik &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
388101cf3e27SImran Shaik },
388201cf3e27SImran Shaik .num_parents = 1,
388301cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
388401cf3e27SImran Shaik .ops = &clk_branch2_ops,
388501cf3e27SImran Shaik },
388601cf3e27SImran Shaik },
388701cf3e27SImran Shaik };
388801cf3e27SImran Shaik
388901cf3e27SImran Shaik static struct clk_branch gcc_vcodec0_axi_clk = {
389001cf3e27SImran Shaik .halt_reg = 0x6e008,
389101cf3e27SImran Shaik .halt_check = BRANCH_HALT,
389201cf3e27SImran Shaik .clkr = {
389301cf3e27SImran Shaik .enable_reg = 0x6e008,
389401cf3e27SImran Shaik .enable_mask = BIT(0),
389501cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
389601cf3e27SImran Shaik .name = "gcc_vcodec0_axi_clk",
389701cf3e27SImran Shaik .ops = &clk_branch2_ops,
389801cf3e27SImran Shaik },
389901cf3e27SImran Shaik },
390001cf3e27SImran Shaik };
390101cf3e27SImran Shaik
390201cf3e27SImran Shaik static struct clk_branch gcc_venus_ahb_clk = {
390301cf3e27SImran Shaik .halt_reg = 0x6e010,
390401cf3e27SImran Shaik .halt_check = BRANCH_HALT,
390501cf3e27SImran Shaik .clkr = {
390601cf3e27SImran Shaik .enable_reg = 0x6e010,
390701cf3e27SImran Shaik .enable_mask = BIT(0),
390801cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
390901cf3e27SImran Shaik .name = "gcc_venus_ahb_clk",
391001cf3e27SImran Shaik .ops = &clk_branch2_ops,
391101cf3e27SImran Shaik },
391201cf3e27SImran Shaik },
391301cf3e27SImran Shaik };
391401cf3e27SImran Shaik
391501cf3e27SImran Shaik static struct clk_branch gcc_venus_ctl_axi_clk = {
391601cf3e27SImran Shaik .halt_reg = 0x6e004,
391701cf3e27SImran Shaik .halt_check = BRANCH_HALT,
391801cf3e27SImran Shaik .clkr = {
391901cf3e27SImran Shaik .enable_reg = 0x6e004,
392001cf3e27SImran Shaik .enable_mask = BIT(0),
392101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
392201cf3e27SImran Shaik .name = "gcc_venus_ctl_axi_clk",
392301cf3e27SImran Shaik .ops = &clk_branch2_ops,
392401cf3e27SImran Shaik },
392501cf3e27SImran Shaik },
392601cf3e27SImran Shaik };
392701cf3e27SImran Shaik
392801cf3e27SImran Shaik static struct clk_branch gcc_video_axi0_clk = {
392901cf3e27SImran Shaik .halt_reg = 0x1701c,
393001cf3e27SImran Shaik .halt_check = BRANCH_HALT,
393101cf3e27SImran Shaik .hwcg_reg = 0x1701c,
393201cf3e27SImran Shaik .hwcg_bit = 1,
393301cf3e27SImran Shaik .clkr = {
393401cf3e27SImran Shaik .enable_reg = 0x1701c,
393501cf3e27SImran Shaik .enable_mask = BIT(0),
393601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
393701cf3e27SImran Shaik .name = "gcc_video_axi0_clk",
393801cf3e27SImran Shaik .ops = &clk_branch2_ops,
393901cf3e27SImran Shaik },
394001cf3e27SImran Shaik },
394101cf3e27SImran Shaik };
394201cf3e27SImran Shaik
394301cf3e27SImran Shaik static struct clk_branch gcc_video_throttle_core_clk = {
394401cf3e27SImran Shaik .halt_reg = 0x17068,
394501cf3e27SImran Shaik .halt_check = BRANCH_HALT_VOTED,
394601cf3e27SImran Shaik .hwcg_reg = 0x17068,
394701cf3e27SImran Shaik .hwcg_bit = 1,
394801cf3e27SImran Shaik .clkr = {
394901cf3e27SImran Shaik .enable_reg = 0x79004,
395001cf3e27SImran Shaik .enable_mask = BIT(14),
395101cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
395201cf3e27SImran Shaik .name = "gcc_video_throttle_core_clk",
395301cf3e27SImran Shaik .ops = &clk_branch2_ops,
395401cf3e27SImran Shaik },
395501cf3e27SImran Shaik },
395601cf3e27SImran Shaik };
395701cf3e27SImran Shaik
395801cf3e27SImran Shaik static struct clk_branch gcc_video_vcodec0_sys_clk = {
395901cf3e27SImran Shaik .halt_reg = 0x6d044,
396001cf3e27SImran Shaik .halt_check = BRANCH_HALT_DELAY,
396101cf3e27SImran Shaik .hwcg_reg = 0x6d044,
396201cf3e27SImran Shaik .hwcg_bit = 1,
396301cf3e27SImran Shaik .clkr = {
396401cf3e27SImran Shaik .enable_reg = 0x6d044,
396501cf3e27SImran Shaik .enable_mask = BIT(0),
396601cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
396701cf3e27SImran Shaik .name = "gcc_video_vcodec0_sys_clk",
396801cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
396901cf3e27SImran Shaik &gcc_video_venus_clk_src.clkr.hw,
397001cf3e27SImran Shaik },
397101cf3e27SImran Shaik .num_parents = 1,
397201cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
397301cf3e27SImran Shaik .ops = &clk_branch2_ops,
397401cf3e27SImran Shaik },
397501cf3e27SImran Shaik },
397601cf3e27SImran Shaik };
397701cf3e27SImran Shaik
397801cf3e27SImran Shaik static struct clk_branch gcc_video_venus_ctl_clk = {
397901cf3e27SImran Shaik .halt_reg = 0x6d02c,
398001cf3e27SImran Shaik .halt_check = BRANCH_HALT,
398101cf3e27SImran Shaik .clkr = {
398201cf3e27SImran Shaik .enable_reg = 0x6d02c,
398301cf3e27SImran Shaik .enable_mask = BIT(0),
398401cf3e27SImran Shaik .hw.init = &(const struct clk_init_data) {
398501cf3e27SImran Shaik .name = "gcc_video_venus_ctl_clk",
398601cf3e27SImran Shaik .parent_hws = (const struct clk_hw*[]) {
398701cf3e27SImran Shaik &gcc_video_venus_clk_src.clkr.hw,
398801cf3e27SImran Shaik },
398901cf3e27SImran Shaik .num_parents = 1,
399001cf3e27SImran Shaik .flags = CLK_SET_RATE_PARENT,
399101cf3e27SImran Shaik .ops = &clk_branch2_ops,
399201cf3e27SImran Shaik },
399301cf3e27SImran Shaik },
399401cf3e27SImran Shaik };
399501cf3e27SImran Shaik
399601cf3e27SImran Shaik static struct gdsc gcc_camss_top_gdsc = {
399701cf3e27SImran Shaik .gdscr = 0x58004,
399801cf3e27SImran Shaik .en_rest_wait_val = 0x2,
399901cf3e27SImran Shaik .en_few_wait_val = 0x2,
400001cf3e27SImran Shaik .clk_dis_wait_val = 0xf,
400101cf3e27SImran Shaik .pd = {
400201cf3e27SImran Shaik .name = "gcc_camss_top_gdsc",
400301cf3e27SImran Shaik },
400401cf3e27SImran Shaik .pwrsts = PWRSTS_OFF_ON,
400501cf3e27SImran Shaik .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
400601cf3e27SImran Shaik };
400701cf3e27SImran Shaik
400801cf3e27SImran Shaik static struct gdsc gcc_emac0_gdsc = {
400901cf3e27SImran Shaik .gdscr = 0xad004,
401001cf3e27SImran Shaik .en_rest_wait_val = 0x2,
401101cf3e27SImran Shaik .en_few_wait_val = 0x2,
401201cf3e27SImran Shaik .clk_dis_wait_val = 0x2,
401301cf3e27SImran Shaik .pd = {
401401cf3e27SImran Shaik .name = "gcc_emac0_gdsc",
401501cf3e27SImran Shaik },
401601cf3e27SImran Shaik .pwrsts = PWRSTS_OFF_ON,
401701cf3e27SImran Shaik .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
401801cf3e27SImran Shaik };
401901cf3e27SImran Shaik
402001cf3e27SImran Shaik static struct gdsc gcc_emac1_gdsc = {
402101cf3e27SImran Shaik .gdscr = 0xae004,
402201cf3e27SImran Shaik .en_rest_wait_val = 0x2,
402301cf3e27SImran Shaik .en_few_wait_val = 0x2,
402401cf3e27SImran Shaik .clk_dis_wait_val = 0x2,
402501cf3e27SImran Shaik .pd = {
402601cf3e27SImran Shaik .name = "gcc_emac1_gdsc",
402701cf3e27SImran Shaik },
402801cf3e27SImran Shaik .pwrsts = PWRSTS_OFF_ON,
402901cf3e27SImran Shaik .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
403001cf3e27SImran Shaik };
403101cf3e27SImran Shaik
403201cf3e27SImran Shaik static struct gdsc gcc_pcie_gdsc = {
403301cf3e27SImran Shaik .gdscr = 0xaf004,
403401cf3e27SImran Shaik .en_rest_wait_val = 0x2,
403501cf3e27SImran Shaik .en_few_wait_val = 0x2,
403601cf3e27SImran Shaik .clk_dis_wait_val = 0xf,
403701cf3e27SImran Shaik .pd = {
403801cf3e27SImran Shaik .name = "gcc_pcie_gdsc",
403901cf3e27SImran Shaik },
404001cf3e27SImran Shaik .pwrsts = PWRSTS_OFF_ON,
404101cf3e27SImran Shaik .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
404201cf3e27SImran Shaik };
404301cf3e27SImran Shaik
404401cf3e27SImran Shaik static struct gdsc gcc_usb20_gdsc = {
404501cf3e27SImran Shaik .gdscr = 0xb0004,
404601cf3e27SImran Shaik .en_rest_wait_val = 0x2,
404701cf3e27SImran Shaik .en_few_wait_val = 0x2,
404801cf3e27SImran Shaik .clk_dis_wait_val = 0xf,
404901cf3e27SImran Shaik .pd = {
405001cf3e27SImran Shaik .name = "gcc_usb20_gdsc",
405101cf3e27SImran Shaik },
405201cf3e27SImran Shaik .pwrsts = PWRSTS_OFF_ON,
405301cf3e27SImran Shaik .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
405401cf3e27SImran Shaik };
405501cf3e27SImran Shaik
405601cf3e27SImran Shaik static struct gdsc gcc_usb30_prim_gdsc = {
405701cf3e27SImran Shaik .gdscr = 0x1a004,
405801cf3e27SImran Shaik .en_rest_wait_val = 0x2,
405901cf3e27SImran Shaik .en_few_wait_val = 0x2,
406001cf3e27SImran Shaik .clk_dis_wait_val = 0x2,
406101cf3e27SImran Shaik .pd = {
406201cf3e27SImran Shaik .name = "gcc_usb30_prim_gdsc",
406301cf3e27SImran Shaik },
406401cf3e27SImran Shaik .pwrsts = PWRSTS_OFF_ON,
406501cf3e27SImran Shaik .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
406601cf3e27SImran Shaik };
406701cf3e27SImran Shaik
406801cf3e27SImran Shaik static struct gdsc gcc_venus_gdsc = {
406901cf3e27SImran Shaik .gdscr = 0x6d01c,
407001cf3e27SImran Shaik .en_rest_wait_val = 0x2,
407101cf3e27SImran Shaik .en_few_wait_val = 0x2,
407201cf3e27SImran Shaik .clk_dis_wait_val = 0xf,
407301cf3e27SImran Shaik .pd = {
407401cf3e27SImran Shaik .name = "gcc_venus_gdsc",
407501cf3e27SImran Shaik },
407601cf3e27SImran Shaik .pwrsts = PWRSTS_OFF_ON,
407701cf3e27SImran Shaik .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
407801cf3e27SImran Shaik };
407901cf3e27SImran Shaik
408001cf3e27SImran Shaik static struct gdsc gcc_vcodec0_gdsc = {
408101cf3e27SImran Shaik .gdscr = 0x6d038,
408201cf3e27SImran Shaik .en_rest_wait_val = 0x2,
408301cf3e27SImran Shaik .en_few_wait_val = 0x2,
408401cf3e27SImran Shaik .clk_dis_wait_val = 0xf,
408501cf3e27SImran Shaik .pd = {
408601cf3e27SImran Shaik .name = "gcc_vcodec0_gdsc",
408701cf3e27SImran Shaik },
408801cf3e27SImran Shaik .pwrsts = PWRSTS_OFF_ON,
408901cf3e27SImran Shaik .parent = &gcc_venus_gdsc.pd,
409001cf3e27SImran Shaik .flags = HW_CTRL_TRIGGER | POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
409101cf3e27SImran Shaik };
409201cf3e27SImran Shaik
409301cf3e27SImran Shaik static struct clk_regmap *gcc_shikra_clocks[] = {
409401cf3e27SImran Shaik [GCC_AHB2PHY_CSI_CLK] = &gcc_ahb2phy_csi_clk.clkr,
409501cf3e27SImran Shaik [GCC_AHB2PHY_USB_CLK] = &gcc_ahb2phy_usb_clk.clkr,
409601cf3e27SImran Shaik [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
409701cf3e27SImran Shaik [GCC_CAM_THROTTLE_NRT_CLK] = &gcc_cam_throttle_nrt_clk.clkr,
409801cf3e27SImran Shaik [GCC_CAM_THROTTLE_RT_CLK] = &gcc_cam_throttle_rt_clk.clkr,
409901cf3e27SImran Shaik [GCC_CAMSS_AXI_CLK] = &gcc_camss_axi_clk.clkr,
410001cf3e27SImran Shaik [GCC_CAMSS_AXI_CLK_SRC] = &gcc_camss_axi_clk_src.clkr,
410101cf3e27SImran Shaik [GCC_CAMSS_CAMNOC_ATB_CLK] = &gcc_camss_camnoc_atb_clk.clkr,
410201cf3e27SImran Shaik [GCC_CAMSS_CAMNOC_DRAGONLINK_ATB_CLK] = &gcc_camss_camnoc_dragonlink_atb_clk.clkr,
410301cf3e27SImran Shaik [GCC_CAMSS_CAMNOC_NTS_XO_CLK] = &gcc_camss_camnoc_nts_xo_clk.clkr,
410401cf3e27SImran Shaik [GCC_CAMSS_CCI_0_CLK] = &gcc_camss_cci_0_clk.clkr,
410501cf3e27SImran Shaik [GCC_CAMSS_CCI_CLK_SRC] = &gcc_camss_cci_clk_src.clkr,
410601cf3e27SImran Shaik [GCC_CAMSS_CPHY_0_CLK] = &gcc_camss_cphy_0_clk.clkr,
410701cf3e27SImran Shaik [GCC_CAMSS_CPHY_1_CLK] = &gcc_camss_cphy_1_clk.clkr,
410801cf3e27SImran Shaik [GCC_CAMSS_CSI0PHYTIMER_CLK] = &gcc_camss_csi0phytimer_clk.clkr,
410901cf3e27SImran Shaik [GCC_CAMSS_CSI0PHYTIMER_CLK_SRC] = &gcc_camss_csi0phytimer_clk_src.clkr,
411001cf3e27SImran Shaik [GCC_CAMSS_CSI1PHYTIMER_CLK] = &gcc_camss_csi1phytimer_clk.clkr,
411101cf3e27SImran Shaik [GCC_CAMSS_CSI1PHYTIMER_CLK_SRC] = &gcc_camss_csi1phytimer_clk_src.clkr,
411201cf3e27SImran Shaik [GCC_CAMSS_MCLK0_CLK] = &gcc_camss_mclk0_clk.clkr,
411301cf3e27SImran Shaik [GCC_CAMSS_MCLK0_CLK_SRC] = &gcc_camss_mclk0_clk_src.clkr,
411401cf3e27SImran Shaik [GCC_CAMSS_MCLK1_CLK] = &gcc_camss_mclk1_clk.clkr,
411501cf3e27SImran Shaik [GCC_CAMSS_MCLK1_CLK_SRC] = &gcc_camss_mclk1_clk_src.clkr,
411601cf3e27SImran Shaik [GCC_CAMSS_MCLK2_CLK] = &gcc_camss_mclk2_clk.clkr,
411701cf3e27SImran Shaik [GCC_CAMSS_MCLK2_CLK_SRC] = &gcc_camss_mclk2_clk_src.clkr,
411801cf3e27SImran Shaik [GCC_CAMSS_MCLK3_CLK] = &gcc_camss_mclk3_clk.clkr,
411901cf3e27SImran Shaik [GCC_CAMSS_MCLK3_CLK_SRC] = &gcc_camss_mclk3_clk_src.clkr,
412001cf3e27SImran Shaik [GCC_CAMSS_NRT_AXI_CLK] = &gcc_camss_nrt_axi_clk.clkr,
412101cf3e27SImran Shaik [GCC_CAMSS_OPE_AHB_CLK] = &gcc_camss_ope_ahb_clk.clkr,
412201cf3e27SImran Shaik [GCC_CAMSS_OPE_AHB_CLK_SRC] = &gcc_camss_ope_ahb_clk_src.clkr,
412301cf3e27SImran Shaik [GCC_CAMSS_OPE_CLK] = &gcc_camss_ope_clk.clkr,
412401cf3e27SImran Shaik [GCC_CAMSS_OPE_CLK_SRC] = &gcc_camss_ope_clk_src.clkr,
412501cf3e27SImran Shaik [GCC_CAMSS_RT_AXI_CLK] = &gcc_camss_rt_axi_clk.clkr,
412601cf3e27SImran Shaik [GCC_CAMSS_TFE_0_CLK] = &gcc_camss_tfe_0_clk.clkr,
412701cf3e27SImran Shaik [GCC_CAMSS_TFE_0_CLK_SRC] = &gcc_camss_tfe_0_clk_src.clkr,
412801cf3e27SImran Shaik [GCC_CAMSS_TFE_0_CPHY_RX_CLK] = &gcc_camss_tfe_0_cphy_rx_clk.clkr,
412901cf3e27SImran Shaik [GCC_CAMSS_TFE_0_CSID_CLK] = &gcc_camss_tfe_0_csid_clk.clkr,
413001cf3e27SImran Shaik [GCC_CAMSS_TFE_0_CSID_CLK_SRC] = &gcc_camss_tfe_0_csid_clk_src.clkr,
413101cf3e27SImran Shaik [GCC_CAMSS_TFE_1_CLK] = &gcc_camss_tfe_1_clk.clkr,
413201cf3e27SImran Shaik [GCC_CAMSS_TFE_1_CLK_SRC] = &gcc_camss_tfe_1_clk_src.clkr,
413301cf3e27SImran Shaik [GCC_CAMSS_TFE_1_CPHY_RX_CLK] = &gcc_camss_tfe_1_cphy_rx_clk.clkr,
413401cf3e27SImran Shaik [GCC_CAMSS_TFE_1_CSID_CLK] = &gcc_camss_tfe_1_csid_clk.clkr,
413501cf3e27SImran Shaik [GCC_CAMSS_TFE_1_CSID_CLK_SRC] = &gcc_camss_tfe_1_csid_clk_src.clkr,
413601cf3e27SImran Shaik [GCC_CAMSS_TFE_CPHY_RX_CLK_SRC] = &gcc_camss_tfe_cphy_rx_clk_src.clkr,
413701cf3e27SImran Shaik [GCC_CAMSS_TOP_AHB_CLK] = &gcc_camss_top_ahb_clk.clkr,
413801cf3e27SImran Shaik [GCC_CAMSS_TOP_AHB_CLK_SRC] = &gcc_camss_top_ahb_clk_src.clkr,
413901cf3e27SImran Shaik [GCC_CFG_NOC_USB2_PRIM_AXI_CLK] = &gcc_cfg_noc_usb2_prim_axi_clk.clkr,
414001cf3e27SImran Shaik [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
414101cf3e27SImran Shaik [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
414201cf3e27SImran Shaik [GCC_DDRSS_MEMNOC_PCIE_SF_CLK] = &gcc_ddrss_memnoc_pcie_sf_clk.clkr,
414301cf3e27SImran Shaik [GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr,
414401cf3e27SImran Shaik [GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr,
414501cf3e27SImran Shaik [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
414601cf3e27SImran Shaik [GCC_DISP_THROTTLE_CORE_CLK] = &gcc_disp_throttle_core_clk.clkr,
414701cf3e27SImran Shaik [GCC_EMAC0_AHB_CLK] = &gcc_emac0_ahb_clk.clkr,
414801cf3e27SImran Shaik [GCC_EMAC0_AXI_CLK] = &gcc_emac0_axi_clk.clkr,
414901cf3e27SImran Shaik [GCC_EMAC0_AXI_CLK_SRC] = &gcc_emac0_axi_clk_src.clkr,
415001cf3e27SImran Shaik [GCC_EMAC0_AXI_SYS_NOC_CLK] = &gcc_emac0_axi_sys_noc_clk.clkr,
415101cf3e27SImran Shaik [GCC_EMAC0_CC_SGMIIPHY_RX_CLK] = &gcc_emac0_cc_sgmiiphy_rx_clk.clkr,
415201cf3e27SImran Shaik [GCC_EMAC0_CC_SGMIIPHY_RX_CLK_SRC] = &gcc_emac0_cc_sgmiiphy_rx_clk_src.clkr,
415301cf3e27SImran Shaik [GCC_EMAC0_CC_SGMIIPHY_TX_CLK] = &gcc_emac0_cc_sgmiiphy_tx_clk.clkr,
415401cf3e27SImran Shaik [GCC_EMAC0_CC_SGMIIPHY_TX_CLK_SRC] = &gcc_emac0_cc_sgmiiphy_tx_clk_src.clkr,
415501cf3e27SImran Shaik [GCC_EMAC0_PHY_AUX_CLK] = &gcc_emac0_phy_aux_clk.clkr,
415601cf3e27SImran Shaik [GCC_EMAC0_PHY_AUX_CLK_SRC] = &gcc_emac0_phy_aux_clk_src.clkr,
415701cf3e27SImran Shaik [GCC_EMAC0_PTP_CLK] = &gcc_emac0_ptp_clk.clkr,
415801cf3e27SImran Shaik [GCC_EMAC0_PTP_CLK_SRC] = &gcc_emac0_ptp_clk_src.clkr,
415901cf3e27SImran Shaik [GCC_EMAC0_RGMII_CLK] = &gcc_emac0_rgmii_clk.clkr,
416001cf3e27SImran Shaik [GCC_EMAC0_RGMII_CLK_SRC] = &gcc_emac0_rgmii_clk_src.clkr,
416101cf3e27SImran Shaik [GCC_EMAC1_AHB_CLK] = &gcc_emac1_ahb_clk.clkr,
416201cf3e27SImran Shaik [GCC_EMAC1_AXI_CLK] = &gcc_emac1_axi_clk.clkr,
416301cf3e27SImran Shaik [GCC_EMAC1_AXI_CLK_SRC] = &gcc_emac1_axi_clk_src.clkr,
416401cf3e27SImran Shaik [GCC_EMAC1_AXI_SYS_NOC_CLK] = &gcc_emac1_axi_sys_noc_clk.clkr,
416501cf3e27SImran Shaik [GCC_EMAC1_CC_SGMIIPHY_RX_CLK] = &gcc_emac1_cc_sgmiiphy_rx_clk.clkr,
416601cf3e27SImran Shaik [GCC_EMAC1_CC_SGMIIPHY_RX_CLK_SRC] = &gcc_emac1_cc_sgmiiphy_rx_clk_src.clkr,
416701cf3e27SImran Shaik [GCC_EMAC1_CC_SGMIIPHY_TX_CLK] = &gcc_emac1_cc_sgmiiphy_tx_clk.clkr,
416801cf3e27SImran Shaik [GCC_EMAC1_CC_SGMIIPHY_TX_CLK_SRC] = &gcc_emac1_cc_sgmiiphy_tx_clk_src.clkr,
416901cf3e27SImran Shaik [GCC_EMAC1_PHY_AUX_CLK] = &gcc_emac1_phy_aux_clk.clkr,
417001cf3e27SImran Shaik [GCC_EMAC1_PHY_AUX_CLK_SRC] = &gcc_emac1_phy_aux_clk_src.clkr,
417101cf3e27SImran Shaik [GCC_EMAC1_PTP_CLK] = &gcc_emac1_ptp_clk.clkr,
417201cf3e27SImran Shaik [GCC_EMAC1_PTP_CLK_SRC] = &gcc_emac1_ptp_clk_src.clkr,
417301cf3e27SImran Shaik [GCC_EMAC1_RGMII_CLK] = &gcc_emac1_rgmii_clk.clkr,
417401cf3e27SImran Shaik [GCC_EMAC1_RGMII_CLK_SRC] = &gcc_emac1_rgmii_clk_src.clkr,
417501cf3e27SImran Shaik [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
417601cf3e27SImran Shaik [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
417701cf3e27SImran Shaik [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
417801cf3e27SImran Shaik [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
417901cf3e27SImran Shaik [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
418001cf3e27SImran Shaik [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
418101cf3e27SImran Shaik [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
418201cf3e27SImran Shaik [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
418301cf3e27SImran Shaik [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
418401cf3e27SImran Shaik [GCC_GPU_SMMU_VOTE_CLK] = &gcc_gpu_smmu_vote_clk.clkr,
418501cf3e27SImran Shaik [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
418601cf3e27SImran Shaik [GCC_GPU_THROTTLE_CORE_CLK] = &gcc_gpu_throttle_core_clk.clkr,
418701cf3e27SImran Shaik [GCC_MMU_TCU_VOTE_CLK] = &gcc_mmu_tcu_vote_clk.clkr,
418801cf3e27SImran Shaik [GCC_PCIE_AUX_CLK] = &gcc_pcie_aux_clk.clkr,
418901cf3e27SImran Shaik [GCC_PCIE_AUX_CLK_SRC] = &gcc_pcie_aux_clk_src.clkr,
419001cf3e27SImran Shaik [GCC_PCIE_AUX_PHY_CLK_SRC] = &gcc_pcie_aux_phy_clk_src.clkr,
419101cf3e27SImran Shaik [GCC_PCIE_CFG_AHB_CLK] = &gcc_pcie_cfg_ahb_clk.clkr,
419201cf3e27SImran Shaik [GCC_PCIE_CLKREF_EN] = &gcc_pcie_clkref_en.clkr,
419301cf3e27SImran Shaik [GCC_PCIE_MSTR_AXI_CLK] = &gcc_pcie_mstr_axi_clk.clkr,
419401cf3e27SImran Shaik [GCC_PCIE_PIPE_CLK] = &gcc_pcie_pipe_clk.clkr,
419501cf3e27SImran Shaik [GCC_PCIE_PIPE_CLK_SRC] = &gcc_pcie_pipe_clk_src.clkr,
419601cf3e27SImran Shaik [GCC_PCIE_RCHNG_PHY_CLK] = &gcc_pcie_rchng_phy_clk.clkr,
419701cf3e27SImran Shaik [GCC_PCIE_RCHNG_PHY_CLK_SRC] = &gcc_pcie_rchng_phy_clk_src.clkr,
419801cf3e27SImran Shaik [GCC_PCIE_SLEEP_CLK] = &gcc_pcie_sleep_clk.clkr,
419901cf3e27SImran Shaik [GCC_PCIE_SLV_AXI_CLK] = &gcc_pcie_slv_axi_clk.clkr,
420001cf3e27SImran Shaik [GCC_PCIE_SLV_Q2A_AXI_CLK] = &gcc_pcie_slv_q2a_axi_clk.clkr,
420101cf3e27SImran Shaik [GCC_PCIE_TBU_CLK] = &gcc_pcie_tbu_clk.clkr,
420201cf3e27SImran Shaik [GCC_PCIE_THROTTLE_CORE_CLK] = &gcc_pcie_throttle_core_clk.clkr,
420301cf3e27SImran Shaik [GCC_PCIE_THROTTLE_XO_CLK] = &gcc_pcie_throttle_xo_clk.clkr,
420401cf3e27SImran Shaik [GCC_PCIE_TILE_AXI_SYS_NOC_CLK] = &gcc_pcie_tile_axi_sys_noc_clk.clkr,
420501cf3e27SImran Shaik [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
420601cf3e27SImran Shaik [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
420701cf3e27SImran Shaik [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
420801cf3e27SImran Shaik [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
420901cf3e27SImran Shaik [GCC_PWM0_XO512_CLK] = &gcc_pwm0_xo512_clk.clkr,
421001cf3e27SImran Shaik [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr,
421101cf3e27SImran Shaik [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr,
421201cf3e27SImran Shaik [GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr,
421301cf3e27SImran Shaik [GCC_QMIP_GPU_CFG_AHB_CLK] = &gcc_qmip_gpu_cfg_ahb_clk.clkr,
421401cf3e27SImran Shaik [GCC_QMIP_PCIE_CFG_AHB_CLK] = &gcc_qmip_pcie_cfg_ahb_clk.clkr,
421501cf3e27SImran Shaik [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
421601cf3e27SImran Shaik [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
421701cf3e27SImran Shaik [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
421801cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
421901cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
422001cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
422101cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
422201cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
422301cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
422401cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
422501cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
422601cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
422701cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
422801cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
422901cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
423001cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr,
423101cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr,
423201cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr,
423301cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr,
423401cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S8_CLK] = &gcc_qupv3_wrap0_s8_clk.clkr,
423501cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S8_CLK_SRC] = &gcc_qupv3_wrap0_s8_clk_src.clkr,
423601cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S9_CLK] = &gcc_qupv3_wrap0_s9_clk.clkr,
423701cf3e27SImran Shaik [GCC_QUPV3_WRAP0_S9_CLK_SRC] = &gcc_qupv3_wrap0_s9_clk_src.clkr,
423801cf3e27SImran Shaik [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
423901cf3e27SImran Shaik [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
424001cf3e27SImran Shaik [GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
424101cf3e27SImran Shaik [GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
424201cf3e27SImran Shaik [GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
424301cf3e27SImran Shaik [GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
424401cf3e27SImran Shaik [GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
424501cf3e27SImran Shaik [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
424601cf3e27SImran Shaik [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
424701cf3e27SImran Shaik [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr,
424801cf3e27SImran Shaik [GCC_SYS_NOC_USB2_PRIM_AXI_CLK] = &gcc_sys_noc_usb2_prim_axi_clk.clkr,
424901cf3e27SImran Shaik [GCC_SYS_NOC_USB3_PRIM_AXI_CLK] = &gcc_sys_noc_usb3_prim_axi_clk.clkr,
425001cf3e27SImran Shaik [GCC_TSCSS_AHB_CLK] = &gcc_tscss_ahb_clk.clkr,
425101cf3e27SImran Shaik [GCC_TSCSS_CLK_SRC] = &gcc_tscss_clk_src.clkr,
425201cf3e27SImran Shaik [GCC_TSCSS_CNTR_CLK] = &gcc_tscss_cntr_clk.clkr,
425301cf3e27SImran Shaik [GCC_TSCSS_ETU_CLK] = &gcc_tscss_etu_clk.clkr,
425401cf3e27SImran Shaik [GCC_UFS_CLKREF_EN] = &gcc_ufs_clkref_en.clkr,
425501cf3e27SImran Shaik [GCC_USB20_MASTER_CLK] = &gcc_usb20_master_clk.clkr,
425601cf3e27SImran Shaik [GCC_USB20_MASTER_CLK_SRC] = &gcc_usb20_master_clk_src.clkr,
425701cf3e27SImran Shaik [GCC_USB20_MOCK_UTMI_CLK] = &gcc_usb20_mock_utmi_clk.clkr,
425801cf3e27SImran Shaik [GCC_USB20_MOCK_UTMI_CLK_SRC] = &gcc_usb20_mock_utmi_clk_src.clkr,
425901cf3e27SImran Shaik [GCC_USB20_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb20_mock_utmi_postdiv_clk_src.clkr,
426001cf3e27SImran Shaik [GCC_USB20_SLEEP_CLK] = &gcc_usb20_sleep_clk.clkr,
426101cf3e27SImran Shaik [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
426201cf3e27SImran Shaik [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
426301cf3e27SImran Shaik [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
426401cf3e27SImran Shaik [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
426501cf3e27SImran Shaik [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
426601cf3e27SImran Shaik [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
426701cf3e27SImran Shaik [GCC_USB3_PRIM_CLKREF_EN] = &gcc_usb3_prim_clkref_en.clkr,
426801cf3e27SImran Shaik [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
426901cf3e27SImran Shaik [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
427001cf3e27SImran Shaik [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
427101cf3e27SImran Shaik [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
427201cf3e27SImran Shaik [GCC_VCODEC0_AXI_CLK] = &gcc_vcodec0_axi_clk.clkr,
427301cf3e27SImran Shaik [GCC_VENUS_AHB_CLK] = &gcc_venus_ahb_clk.clkr,
427401cf3e27SImran Shaik [GCC_VENUS_CTL_AXI_CLK] = &gcc_venus_ctl_axi_clk.clkr,
427501cf3e27SImran Shaik [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
427601cf3e27SImran Shaik [GCC_VIDEO_THROTTLE_CORE_CLK] = &gcc_video_throttle_core_clk.clkr,
427701cf3e27SImran Shaik [GCC_VIDEO_VCODEC0_SYS_CLK] = &gcc_video_vcodec0_sys_clk.clkr,
427801cf3e27SImran Shaik [GCC_VIDEO_VENUS_CLK_SRC] = &gcc_video_venus_clk_src.clkr,
427901cf3e27SImran Shaik [GCC_VIDEO_VENUS_CTL_CLK] = &gcc_video_venus_ctl_clk.clkr,
428001cf3e27SImran Shaik [GPLL0] = &gpll0.clkr,
428101cf3e27SImran Shaik [GPLL0_OUT_AUX2] = &gpll0_out_aux2.clkr,
428201cf3e27SImran Shaik [GPLL10] = &gpll10.clkr,
428301cf3e27SImran Shaik [GPLL11] = &gpll11.clkr,
428401cf3e27SImran Shaik [GPLL12] = &gpll12.clkr,
428501cf3e27SImran Shaik [GPLL12_OUT_AUX2] = &gpll12_out_aux2.clkr,
428601cf3e27SImran Shaik [GPLL3] = &gpll3.clkr,
428701cf3e27SImran Shaik [GPLL3_OUT_MAIN] = &gpll3_out_main.clkr,
428801cf3e27SImran Shaik [GPLL4] = &gpll4.clkr,
428901cf3e27SImran Shaik [GPLL5] = &gpll5.clkr,
429001cf3e27SImran Shaik [GPLL6] = &gpll6.clkr,
429101cf3e27SImran Shaik [GPLL6_OUT_MAIN] = &gpll6_out_main.clkr,
429201cf3e27SImran Shaik [GPLL7] = &gpll7.clkr,
429301cf3e27SImran Shaik [GPLL8] = &gpll8.clkr,
429401cf3e27SImran Shaik [GPLL8_OUT_MAIN] = &gpll8_out_main.clkr,
429501cf3e27SImran Shaik [GPLL9] = &gpll9.clkr,
429601cf3e27SImran Shaik [GPLL9_OUT_MAIN] = &gpll9_out_main.clkr,
429701cf3e27SImran Shaik };
429801cf3e27SImran Shaik
429901cf3e27SImran Shaik static struct gdsc *gcc_shikra_gdscs[] = {
430001cf3e27SImran Shaik [GCC_CAMSS_TOP_GDSC] = &gcc_camss_top_gdsc,
430101cf3e27SImran Shaik [GCC_EMAC0_GDSC] = &gcc_emac0_gdsc,
430201cf3e27SImran Shaik [GCC_EMAC1_GDSC] = &gcc_emac1_gdsc,
430301cf3e27SImran Shaik [GCC_PCIE_GDSC] = &gcc_pcie_gdsc,
430401cf3e27SImran Shaik [GCC_USB20_GDSC] = &gcc_usb20_gdsc,
430501cf3e27SImran Shaik [GCC_USB30_PRIM_GDSC] = &gcc_usb30_prim_gdsc,
430601cf3e27SImran Shaik [GCC_VCODEC0_GDSC] = &gcc_vcodec0_gdsc,
430701cf3e27SImran Shaik [GCC_VENUS_GDSC] = &gcc_venus_gdsc,
430801cf3e27SImran Shaik };
430901cf3e27SImran Shaik
431001cf3e27SImran Shaik static const struct qcom_reset_map gcc_shikra_resets[] = {
431101cf3e27SImran Shaik [GCC_CAMSS_OPE_BCR] = { 0x55000 },
431201cf3e27SImran Shaik [GCC_CAMSS_TFE_BCR] = { 0x52000 },
431301cf3e27SImran Shaik [GCC_CAMSS_TOP_BCR] = { 0x58000 },
431401cf3e27SImran Shaik [GCC_EMAC0_BCR] = { 0xad000 },
431501cf3e27SImran Shaik [GCC_EMAC1_BCR] = { 0xae000 },
431601cf3e27SImran Shaik [GCC_GPU_BCR] = { 0x36000 },
431701cf3e27SImran Shaik [GCC_MMSS_BCR] = { 0x17000 },
431801cf3e27SImran Shaik [GCC_PCIE_BCR] = { 0xaf000 },
431901cf3e27SImran Shaik [GCC_PCIE_PHY_BCR] = { 0xb1000 },
432001cf3e27SImran Shaik [GCC_PDM_BCR] = { 0x20000 },
432101cf3e27SImran Shaik [GCC_QUPV3_WRAPPER_0_BCR] = { 0x1f000 },
432201cf3e27SImran Shaik [GCC_QUSB2PHY_PRIM_BCR] = { 0x1c000 },
432301cf3e27SImran Shaik [GCC_QUSB2PHY_SEC_BCR] = { 0x1c004 },
432401cf3e27SImran Shaik [GCC_SDCC1_BCR] = { 0x38000 },
432501cf3e27SImran Shaik [GCC_SDCC2_BCR] = { 0x1e000 },
432601cf3e27SImran Shaik [GCC_TSCSS_BCR] = { 0xac000 },
432701cf3e27SImran Shaik [GCC_USB20_BCR] = { 0xb0000 },
432801cf3e27SImran Shaik [GCC_USB30_PRIM_BCR] = { 0x1a000 },
432901cf3e27SImran Shaik [GCC_USB3PHY_PHY_PRIM_SP0_BCR] = { 0x1b008 },
433001cf3e27SImran Shaik [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x1b020 },
433101cf3e27SImran Shaik [GCC_USB3_PHY_PRIM_SP0_BCR] = { 0x1b000 },
433201cf3e27SImran Shaik [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x1d000 },
433301cf3e27SImran Shaik [GCC_VCODEC0_BCR] = { 0x6d034 },
433401cf3e27SImran Shaik [GCC_VENUS_BCR] = { 0x6d018 },
433501cf3e27SImran Shaik [GCC_VIDEO_INTERFACE_BCR] = { 0x6e000 },
433601cf3e27SImran Shaik };
433701cf3e27SImran Shaik
433801cf3e27SImran Shaik static struct clk_alpha_pll *gcc_shikra_plls[] = {
433901cf3e27SImran Shaik &gpll10,
434001cf3e27SImran Shaik &gpll11,
434101cf3e27SImran Shaik &gpll8,
434201cf3e27SImran Shaik &gpll9,
434301cf3e27SImran Shaik };
434401cf3e27SImran Shaik
434501cf3e27SImran Shaik static const u32 gcc_shikra_critical_cbcrs[] = {
434601cf3e27SImran Shaik 0x17008, /* GCC_CAMERA_AHB_CLK */
434701cf3e27SImran Shaik 0x17028, /* GCC_CAMERA_XO_CLK */
434801cf3e27SImran Shaik 0x1700c, /* GCC_DISP_AHB_CLK */
434901cf3e27SImran Shaik 0x1702c, /* GCC_DISP_XO_CLK */
435001cf3e27SImran Shaik 0x36004, /* GCC_GPU_CFG_AHB_CLK */
435101cf3e27SImran Shaik 0x36100, /* GCC_GPU_IREF_CLK */
435201cf3e27SImran Shaik 0x3a00c, /* GCC_LPASS_CONFIG_CLK */
435301cf3e27SImran Shaik 0x3a008, /* GCC_LPASS_CORE_AXIM_CLK */
435401cf3e27SImran Shaik 0x79004, /* GCC_SYS_NOC_CPUSS_AHB_CLK */
435501cf3e27SImran Shaik 0x17004, /* GCC_VIDEO_AHB_CLK */
435601cf3e27SImran Shaik 0x17024, /* GCC_VIDEO_XO_CLK */
435701cf3e27SImran Shaik };
435801cf3e27SImran Shaik
435901cf3e27SImran Shaik static const struct clk_rcg_dfs_data gcc_shikra_dfs_clocks[] = {
436001cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src),
436101cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src),
436201cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src),
436301cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src),
436401cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src),
436501cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src),
436601cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s6_clk_src),
436701cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s7_clk_src),
436801cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s8_clk_src),
436901cf3e27SImran Shaik DEFINE_RCG_DFS(gcc_qupv3_wrap0_s9_clk_src),
437001cf3e27SImran Shaik };
437101cf3e27SImran Shaik
437201cf3e27SImran Shaik static const struct regmap_config gcc_shikra_regmap_config = {
437301cf3e27SImran Shaik .reg_bits = 32,
437401cf3e27SImran Shaik .reg_stride = 4,
437501cf3e27SImran Shaik .val_bits = 32,
437601cf3e27SImran Shaik .max_register = 0xc7000,
437701cf3e27SImran Shaik .fast_io = true,
437801cf3e27SImran Shaik };
437901cf3e27SImran Shaik
438001cf3e27SImran Shaik static const struct qcom_cc_driver_data gcc_shikra_driver_data = {
438101cf3e27SImran Shaik .alpha_plls = gcc_shikra_plls,
438201cf3e27SImran Shaik .num_alpha_plls = ARRAY_SIZE(gcc_shikra_plls),
438301cf3e27SImran Shaik .clk_cbcrs = gcc_shikra_critical_cbcrs,
438401cf3e27SImran Shaik .num_clk_cbcrs = ARRAY_SIZE(gcc_shikra_critical_cbcrs),
438501cf3e27SImran Shaik .dfs_rcgs = gcc_shikra_dfs_clocks,
438601cf3e27SImran Shaik .num_dfs_rcgs = ARRAY_SIZE(gcc_shikra_dfs_clocks),
438701cf3e27SImran Shaik };
438801cf3e27SImran Shaik
438901cf3e27SImran Shaik static const struct qcom_cc_desc gcc_shikra_desc = {
439001cf3e27SImran Shaik .config = &gcc_shikra_regmap_config,
439101cf3e27SImran Shaik .clks = gcc_shikra_clocks,
439201cf3e27SImran Shaik .num_clks = ARRAY_SIZE(gcc_shikra_clocks),
439301cf3e27SImran Shaik .resets = gcc_shikra_resets,
439401cf3e27SImran Shaik .num_resets = ARRAY_SIZE(gcc_shikra_resets),
439501cf3e27SImran Shaik .gdscs = gcc_shikra_gdscs,
439601cf3e27SImran Shaik .num_gdscs = ARRAY_SIZE(gcc_shikra_gdscs),
439701cf3e27SImran Shaik .driver_data = &gcc_shikra_driver_data,
439801cf3e27SImran Shaik };
439901cf3e27SImran Shaik
440001cf3e27SImran Shaik static const struct of_device_id gcc_shikra_match_table[] = {
440101cf3e27SImran Shaik { .compatible = "qcom,shikra-gcc" },
440201cf3e27SImran Shaik { }
440301cf3e27SImran Shaik };
440401cf3e27SImran Shaik MODULE_DEVICE_TABLE(of, gcc_shikra_match_table);
440501cf3e27SImran Shaik
gcc_shikra_probe(struct platform_device * pdev)440601cf3e27SImran Shaik static int gcc_shikra_probe(struct platform_device *pdev)
440701cf3e27SImran Shaik {
440801cf3e27SImran Shaik return qcom_cc_probe(pdev, &gcc_shikra_desc);
440901cf3e27SImran Shaik }
441001cf3e27SImran Shaik
441101cf3e27SImran Shaik static struct platform_driver gcc_shikra_driver = {
441201cf3e27SImran Shaik .probe = gcc_shikra_probe,
441301cf3e27SImran Shaik .driver = {
441401cf3e27SImran Shaik .name = "gcc-shikra",
441501cf3e27SImran Shaik .of_match_table = gcc_shikra_match_table,
441601cf3e27SImran Shaik },
441701cf3e27SImran Shaik };
441801cf3e27SImran Shaik
gcc_shikra_init(void)441901cf3e27SImran Shaik static int __init gcc_shikra_init(void)
442001cf3e27SImran Shaik {
442101cf3e27SImran Shaik return platform_driver_register(&gcc_shikra_driver);
442201cf3e27SImran Shaik }
442301cf3e27SImran Shaik subsys_initcall(gcc_shikra_init);
442401cf3e27SImran Shaik
gcc_shikra_exit(void)442501cf3e27SImran Shaik static void __exit gcc_shikra_exit(void)
442601cf3e27SImran Shaik {
442701cf3e27SImran Shaik platform_driver_unregister(&gcc_shikra_driver);
442801cf3e27SImran Shaik }
442901cf3e27SImran Shaik module_exit(gcc_shikra_exit);
443001cf3e27SImran Shaik
443101cf3e27SImran Shaik MODULE_DESCRIPTION("QTI GCC Shikra Driver");
443201cf3e27SImran Shaik MODULE_LICENSE("GPL");
4433