117269568STaniya Das // SPDX-License-Identifier: GPL-2.0-only 217269568STaniya Das /* 3253a0af5STaniya Das * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. 417269568STaniya Das */ 517269568STaniya Das 617269568STaniya Das #include <linux/clk-provider.h> 717269568STaniya Das #include <linux/err.h> 817269568STaniya Das #include <linux/kernel.h> 917269568STaniya Das #include <linux/module.h> 1017269568STaniya Das #include <linux/of.h> 1117269568STaniya Das #include <linux/of_device.h> 1217269568STaniya Das #include <linux/regmap.h> 1317269568STaniya Das 1417269568STaniya Das #include <dt-bindings/clock/qcom,gcc-sc7180.h> 1517269568STaniya Das 1617269568STaniya Das #include "clk-alpha-pll.h" 1717269568STaniya Das #include "clk-branch.h" 1817269568STaniya Das #include "clk-rcg.h" 1917269568STaniya Das #include "clk-regmap.h" 2017269568STaniya Das #include "common.h" 2117269568STaniya Das #include "gdsc.h" 2217269568STaniya Das #include "reset.h" 2317269568STaniya Das 2417269568STaniya Das enum { 2517269568STaniya Das P_BI_TCXO, 2617269568STaniya Das P_CORE_BI_PLL_TEST_SE, 2717269568STaniya Das P_GPLL0_OUT_EVEN, 2817269568STaniya Das P_GPLL0_OUT_MAIN, 2917269568STaniya Das P_GPLL1_OUT_MAIN, 3017269568STaniya Das P_GPLL4_OUT_MAIN, 3117269568STaniya Das P_GPLL6_OUT_MAIN, 3217269568STaniya Das P_GPLL7_OUT_MAIN, 3317269568STaniya Das P_SLEEP_CLK, 3417269568STaniya Das }; 3517269568STaniya Das 3617269568STaniya Das static struct clk_alpha_pll gpll0 = { 3717269568STaniya Das .offset = 0x0, 3817269568STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA], 3917269568STaniya Das .clkr = { 4017269568STaniya Das .enable_reg = 0x52010, 4117269568STaniya Das .enable_mask = BIT(0), 4217269568STaniya Das .hw.init = &(struct clk_init_data){ 4317269568STaniya Das .name = "gpll0", 4417269568STaniya Das .parent_data = &(const struct clk_parent_data){ 4517269568STaniya Das .fw_name = "bi_tcxo", 4617269568STaniya Das .name = "bi_tcxo", 4717269568STaniya Das }, 4817269568STaniya Das .num_parents = 1, 4917269568STaniya Das .ops = &clk_alpha_pll_fixed_fabia_ops, 5017269568STaniya Das }, 5117269568STaniya Das }, 5217269568STaniya Das }; 5317269568STaniya Das 5417269568STaniya Das static const struct clk_div_table post_div_table_gpll0_out_even[] = { 5517269568STaniya Das { 0x1, 2 }, 5617269568STaniya Das { } 5717269568STaniya Das }; 5817269568STaniya Das 5917269568STaniya Das static struct clk_alpha_pll_postdiv gpll0_out_even = { 6017269568STaniya Das .offset = 0x0, 6117269568STaniya Das .post_div_shift = 8, 6217269568STaniya Das .post_div_table = post_div_table_gpll0_out_even, 6317269568STaniya Das .num_post_div = ARRAY_SIZE(post_div_table_gpll0_out_even), 6417269568STaniya Das .width = 4, 6517269568STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA], 6617269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 6717269568STaniya Das .name = "gpll0_out_even", 6817269568STaniya Das .parent_data = &(const struct clk_parent_data){ 6917269568STaniya Das .hw = &gpll0.clkr.hw, 7017269568STaniya Das }, 7117269568STaniya Das .num_parents = 1, 7217269568STaniya Das .ops = &clk_alpha_pll_postdiv_fabia_ops, 7317269568STaniya Das }, 7417269568STaniya Das }; 7517269568STaniya Das 7617269568STaniya Das static struct clk_fixed_factor gcc_pll0_main_div_cdiv = { 7717269568STaniya Das .mult = 1, 7817269568STaniya Das .div = 2, 7917269568STaniya Das .hw.init = &(struct clk_init_data){ 8017269568STaniya Das .name = "gcc_pll0_main_div_cdiv", 8117269568STaniya Das .parent_data = &(const struct clk_parent_data){ 8217269568STaniya Das .hw = &gpll0.clkr.hw, 8317269568STaniya Das }, 8417269568STaniya Das .num_parents = 1, 8517269568STaniya Das .ops = &clk_fixed_factor_ops, 8617269568STaniya Das }, 8717269568STaniya Das }; 8817269568STaniya Das 8917269568STaniya Das static struct clk_alpha_pll gpll1 = { 9017269568STaniya Das .offset = 0x01000, 9117269568STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA], 9217269568STaniya Das .clkr = { 9317269568STaniya Das .enable_reg = 0x52010, 9417269568STaniya Das .enable_mask = BIT(1), 9517269568STaniya Das .hw.init = &(struct clk_init_data){ 9617269568STaniya Das .name = "gpll1", 9717269568STaniya Das .parent_data = &(const struct clk_parent_data){ 9817269568STaniya Das .fw_name = "bi_tcxo", 9917269568STaniya Das .name = "bi_tcxo", 10017269568STaniya Das }, 10117269568STaniya Das .num_parents = 1, 10217269568STaniya Das .ops = &clk_alpha_pll_fixed_fabia_ops, 10317269568STaniya Das }, 10417269568STaniya Das }, 10517269568STaniya Das }; 10617269568STaniya Das 10717269568STaniya Das static struct clk_alpha_pll gpll4 = { 10817269568STaniya Das .offset = 0x76000, 10917269568STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA], 11017269568STaniya Das .clkr = { 11117269568STaniya Das .enable_reg = 0x52010, 11217269568STaniya Das .enable_mask = BIT(4), 11317269568STaniya Das .hw.init = &(struct clk_init_data){ 11417269568STaniya Das .name = "gpll4", 11517269568STaniya Das .parent_data = &(const struct clk_parent_data){ 11617269568STaniya Das .fw_name = "bi_tcxo", 11717269568STaniya Das .name = "bi_tcxo", 11817269568STaniya Das }, 11917269568STaniya Das .num_parents = 1, 12017269568STaniya Das .ops = &clk_alpha_pll_fixed_fabia_ops, 12117269568STaniya Das }, 12217269568STaniya Das }, 12317269568STaniya Das }; 12417269568STaniya Das 12517269568STaniya Das static struct clk_alpha_pll gpll6 = { 12617269568STaniya Das .offset = 0x13000, 12717269568STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA], 12817269568STaniya Das .clkr = { 12917269568STaniya Das .enable_reg = 0x52010, 13017269568STaniya Das .enable_mask = BIT(6), 13117269568STaniya Das .hw.init = &(struct clk_init_data){ 13217269568STaniya Das .name = "gpll6", 13317269568STaniya Das .parent_data = &(const struct clk_parent_data){ 13417269568STaniya Das .fw_name = "bi_tcxo", 13517269568STaniya Das .name = "bi_tcxo", 13617269568STaniya Das }, 13717269568STaniya Das .num_parents = 1, 13817269568STaniya Das .ops = &clk_alpha_pll_fixed_fabia_ops, 13917269568STaniya Das }, 14017269568STaniya Das }, 14117269568STaniya Das }; 14217269568STaniya Das 14317269568STaniya Das static struct clk_alpha_pll gpll7 = { 14417269568STaniya Das .offset = 0x27000, 14517269568STaniya Das .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_FABIA], 14617269568STaniya Das .clkr = { 14717269568STaniya Das .enable_reg = 0x52010, 14817269568STaniya Das .enable_mask = BIT(7), 14917269568STaniya Das .hw.init = &(struct clk_init_data){ 15017269568STaniya Das .name = "gpll7", 15117269568STaniya Das .parent_data = &(const struct clk_parent_data){ 15217269568STaniya Das .fw_name = "bi_tcxo", 15317269568STaniya Das .name = "bi_tcxo", 15417269568STaniya Das }, 15517269568STaniya Das .num_parents = 1, 15617269568STaniya Das .ops = &clk_alpha_pll_fixed_fabia_ops, 15717269568STaniya Das }, 15817269568STaniya Das }, 15917269568STaniya Das }; 16017269568STaniya Das 16117269568STaniya Das static const struct parent_map gcc_parent_map_0[] = { 16217269568STaniya Das { P_BI_TCXO, 0 }, 16317269568STaniya Das { P_GPLL0_OUT_MAIN, 1 }, 16417269568STaniya Das { P_GPLL0_OUT_EVEN, 6 }, 16517269568STaniya Das { P_CORE_BI_PLL_TEST_SE, 7 }, 16617269568STaniya Das }; 16717269568STaniya Das 16817269568STaniya Das static const struct clk_parent_data gcc_parent_data_0[] = { 16917269568STaniya Das { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 17017269568STaniya Das { .hw = &gpll0.clkr.hw }, 17117269568STaniya Das { .hw = &gpll0_out_even.clkr.hw }, 17217269568STaniya Das { .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" }, 17317269568STaniya Das }; 17417269568STaniya Das 17517269568STaniya Das static const struct clk_parent_data gcc_parent_data_0_ao[] = { 17617269568STaniya Das { .fw_name = "bi_tcxo_ao", .name = "bi_tcxo_ao" }, 17717269568STaniya Das { .hw = &gpll0.clkr.hw }, 17817269568STaniya Das { .hw = &gpll0_out_even.clkr.hw }, 17917269568STaniya Das { .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" }, 18017269568STaniya Das }; 18117269568STaniya Das 18217269568STaniya Das static const struct parent_map gcc_parent_map_1[] = { 18317269568STaniya Das { P_BI_TCXO, 0 }, 18417269568STaniya Das { P_GPLL0_OUT_MAIN, 1 }, 18517269568STaniya Das { P_GPLL6_OUT_MAIN, 2 }, 18617269568STaniya Das { P_GPLL0_OUT_EVEN, 6 }, 18717269568STaniya Das { P_CORE_BI_PLL_TEST_SE, 7 }, 18817269568STaniya Das }; 18917269568STaniya Das 19017269568STaniya Das static const struct clk_parent_data gcc_parent_data_1[] = { 19117269568STaniya Das { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 19217269568STaniya Das { .hw = &gpll0.clkr.hw }, 19317269568STaniya Das { .hw = &gpll6.clkr.hw }, 19417269568STaniya Das { .hw = &gpll0_out_even.clkr.hw }, 19517269568STaniya Das { .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" }, 19617269568STaniya Das }; 19717269568STaniya Das 19817269568STaniya Das static const struct parent_map gcc_parent_map_2[] = { 19917269568STaniya Das { P_BI_TCXO, 0 }, 20017269568STaniya Das { P_GPLL0_OUT_MAIN, 1 }, 20117269568STaniya Das { P_GPLL1_OUT_MAIN, 4 }, 20217269568STaniya Das { P_GPLL4_OUT_MAIN, 5 }, 20317269568STaniya Das { P_GPLL0_OUT_EVEN, 6 }, 20417269568STaniya Das { P_CORE_BI_PLL_TEST_SE, 7 }, 20517269568STaniya Das }; 20617269568STaniya Das 20717269568STaniya Das static const struct clk_parent_data gcc_parent_data_2[] = { 20817269568STaniya Das { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 20917269568STaniya Das { .hw = &gpll0.clkr.hw }, 21017269568STaniya Das { .hw = &gpll1.clkr.hw }, 21117269568STaniya Das { .hw = &gpll4.clkr.hw }, 21217269568STaniya Das { .hw = &gpll0_out_even.clkr.hw }, 21317269568STaniya Das { .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" }, 21417269568STaniya Das }; 21517269568STaniya Das 21617269568STaniya Das static const struct parent_map gcc_parent_map_3[] = { 21717269568STaniya Das { P_BI_TCXO, 0 }, 21817269568STaniya Das { P_GPLL0_OUT_MAIN, 1 }, 21917269568STaniya Das { P_CORE_BI_PLL_TEST_SE, 7 }, 22017269568STaniya Das }; 22117269568STaniya Das 22217269568STaniya Das static const struct clk_parent_data gcc_parent_data_3[] = { 22317269568STaniya Das { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 22417269568STaniya Das { .hw = &gpll0.clkr.hw }, 22517269568STaniya Das { .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" }, 22617269568STaniya Das }; 22717269568STaniya Das 22817269568STaniya Das static const struct parent_map gcc_parent_map_4[] = { 22917269568STaniya Das { P_BI_TCXO, 0 }, 23017269568STaniya Das { P_GPLL0_OUT_MAIN, 1 }, 23117269568STaniya Das { P_SLEEP_CLK, 5 }, 23217269568STaniya Das { P_GPLL0_OUT_EVEN, 6 }, 23317269568STaniya Das { P_CORE_BI_PLL_TEST_SE, 7 }, 23417269568STaniya Das }; 23517269568STaniya Das 23617269568STaniya Das static const struct clk_parent_data gcc_parent_data_4[] = { 23717269568STaniya Das { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 23817269568STaniya Das { .hw = &gpll0.clkr.hw }, 23917269568STaniya Das { .fw_name = "sleep_clk", .name = "sleep_clk" }, 24017269568STaniya Das { .hw = &gpll0_out_even.clkr.hw }, 24117269568STaniya Das { .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" }, 24217269568STaniya Das }; 24317269568STaniya Das 24417269568STaniya Das static const struct parent_map gcc_parent_map_5[] = { 24517269568STaniya Das { P_BI_TCXO, 0 }, 24617269568STaniya Das { P_GPLL0_OUT_MAIN, 1 }, 24717269568STaniya Das { P_GPLL7_OUT_MAIN, 3 }, 24817269568STaniya Das { P_GPLL0_OUT_EVEN, 6 }, 24917269568STaniya Das { P_CORE_BI_PLL_TEST_SE, 7 }, 25017269568STaniya Das }; 25117269568STaniya Das 25217269568STaniya Das static const struct clk_parent_data gcc_parent_data_5[] = { 25317269568STaniya Das { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 25417269568STaniya Das { .hw = &gpll0.clkr.hw }, 25517269568STaniya Das { .hw = &gpll7.clkr.hw }, 25617269568STaniya Das { .hw = &gpll0_out_even.clkr.hw }, 25717269568STaniya Das { .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" }, 25817269568STaniya Das }; 25917269568STaniya Das 26017269568STaniya Das static const struct parent_map gcc_parent_map_6[] = { 26117269568STaniya Das { P_BI_TCXO, 0 }, 26217269568STaniya Das { P_GPLL0_OUT_MAIN, 1 }, 26317269568STaniya Das { P_SLEEP_CLK, 5 }, 26417269568STaniya Das { P_CORE_BI_PLL_TEST_SE, 7 }, 26517269568STaniya Das }; 26617269568STaniya Das 26717269568STaniya Das static const struct clk_parent_data gcc_parent_data_6[] = { 26817269568STaniya Das { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 26917269568STaniya Das { .hw = &gpll0.clkr.hw }, 27017269568STaniya Das { .fw_name = "sleep_clk", .name = "sleep_clk" }, 27117269568STaniya Das { .fw_name = "core_bi_pll_test_se", .name = "core_bi_pll_test_se" }, 27217269568STaniya Das }; 27317269568STaniya Das 27417269568STaniya Das static const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = { 27517269568STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 27617269568STaniya Das { } 27717269568STaniya Das }; 27817269568STaniya Das 27917269568STaniya Das static struct clk_rcg2 gcc_cpuss_ahb_clk_src = { 28017269568STaniya Das .cmd_rcgr = 0x48014, 28117269568STaniya Das .mnd_width = 0, 28217269568STaniya Das .hid_width = 5, 28317269568STaniya Das .parent_map = gcc_parent_map_0, 28417269568STaniya Das .freq_tbl = ftbl_gcc_cpuss_ahb_clk_src, 28517269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 28617269568STaniya Das .name = "gcc_cpuss_ahb_clk_src", 28717269568STaniya Das .parent_data = gcc_parent_data_0_ao, 28817269568STaniya Das .num_parents = 4, 28917269568STaniya Das .flags = CLK_SET_RATE_PARENT, 29017269568STaniya Das .ops = &clk_rcg2_ops, 29117269568STaniya Das }, 29217269568STaniya Das }; 29317269568STaniya Das 29417269568STaniya Das static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = { 29517269568STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 29617269568STaniya Das F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 29717269568STaniya Das F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 29817269568STaniya Das F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0), 29917269568STaniya Das F(200000000, P_GPLL0_OUT_EVEN, 1.5, 0, 0), 30017269568STaniya Das { } 30117269568STaniya Das }; 30217269568STaniya Das 30317269568STaniya Das static struct clk_rcg2 gcc_gp1_clk_src = { 30417269568STaniya Das .cmd_rcgr = 0x64004, 30517269568STaniya Das .mnd_width = 8, 30617269568STaniya Das .hid_width = 5, 30717269568STaniya Das .parent_map = gcc_parent_map_4, 30817269568STaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 30917269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 31017269568STaniya Das .name = "gcc_gp1_clk_src", 31117269568STaniya Das .parent_data = gcc_parent_data_4, 31217269568STaniya Das .num_parents = 5, 31317269568STaniya Das .ops = &clk_rcg2_ops, 31417269568STaniya Das }, 31517269568STaniya Das }; 31617269568STaniya Das 31717269568STaniya Das static struct clk_rcg2 gcc_gp2_clk_src = { 31817269568STaniya Das .cmd_rcgr = 0x65004, 31917269568STaniya Das .mnd_width = 8, 32017269568STaniya Das .hid_width = 5, 32117269568STaniya Das .parent_map = gcc_parent_map_4, 32217269568STaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 32317269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 32417269568STaniya Das .name = "gcc_gp2_clk_src", 32517269568STaniya Das .parent_data = gcc_parent_data_4, 32617269568STaniya Das .num_parents = 5, 32717269568STaniya Das .ops = &clk_rcg2_ops, 32817269568STaniya Das }, 32917269568STaniya Das }; 33017269568STaniya Das 33117269568STaniya Das static struct clk_rcg2 gcc_gp3_clk_src = { 33217269568STaniya Das .cmd_rcgr = 0x66004, 33317269568STaniya Das .mnd_width = 8, 33417269568STaniya Das .hid_width = 5, 33517269568STaniya Das .parent_map = gcc_parent_map_4, 33617269568STaniya Das .freq_tbl = ftbl_gcc_gp1_clk_src, 33717269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 33817269568STaniya Das .name = "gcc_gp3_clk_src", 33917269568STaniya Das .parent_data = gcc_parent_data_4, 34017269568STaniya Das .num_parents = 5, 34117269568STaniya Das .ops = &clk_rcg2_ops, 34217269568STaniya Das }, 34317269568STaniya Das }; 34417269568STaniya Das 34517269568STaniya Das static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = { 34617269568STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 34717269568STaniya Das F(60000000, P_GPLL0_OUT_EVEN, 5, 0, 0), 34817269568STaniya Das { } 34917269568STaniya Das }; 35017269568STaniya Das 35117269568STaniya Das static struct clk_rcg2 gcc_pdm2_clk_src = { 35217269568STaniya Das .cmd_rcgr = 0x33010, 35317269568STaniya Das .mnd_width = 0, 35417269568STaniya Das .hid_width = 5, 35517269568STaniya Das .parent_map = gcc_parent_map_0, 35617269568STaniya Das .freq_tbl = ftbl_gcc_pdm2_clk_src, 35717269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 35817269568STaniya Das .name = "gcc_pdm2_clk_src", 35917269568STaniya Das .parent_data = gcc_parent_data_0, 36017269568STaniya Das .num_parents = 4, 36117269568STaniya Das .ops = &clk_rcg2_ops, 36217269568STaniya Das }, 36317269568STaniya Das }; 36417269568STaniya Das 36517269568STaniya Das static const struct freq_tbl ftbl_gcc_qspi_core_clk_src[] = { 36617269568STaniya Das F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 36717269568STaniya Das F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0), 36817269568STaniya Das F(300000000, P_GPLL0_OUT_EVEN, 1, 0, 0), 36917269568STaniya Das { } 37017269568STaniya Das }; 37117269568STaniya Das 37217269568STaniya Das static struct clk_rcg2 gcc_qspi_core_clk_src = { 37317269568STaniya Das .cmd_rcgr = 0x4b00c, 37417269568STaniya Das .mnd_width = 0, 37517269568STaniya Das .hid_width = 5, 37617269568STaniya Das .parent_map = gcc_parent_map_2, 37717269568STaniya Das .freq_tbl = ftbl_gcc_qspi_core_clk_src, 37817269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 37917269568STaniya Das .name = "gcc_qspi_core_clk_src", 38017269568STaniya Das .parent_data = gcc_parent_data_2, 38117269568STaniya Das .num_parents = 6, 38217269568STaniya Das .ops = &clk_rcg2_ops, 38317269568STaniya Das }, 38417269568STaniya Das }; 38517269568STaniya Das 38617269568STaniya Das static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = { 38717269568STaniya Das F(7372800, P_GPLL0_OUT_EVEN, 1, 384, 15625), 38817269568STaniya Das F(14745600, P_GPLL0_OUT_EVEN, 1, 768, 15625), 38917269568STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 39017269568STaniya Das F(29491200, P_GPLL0_OUT_EVEN, 1, 1536, 15625), 39117269568STaniya Das F(32000000, P_GPLL0_OUT_EVEN, 1, 8, 75), 39217269568STaniya Das F(48000000, P_GPLL0_OUT_EVEN, 1, 4, 25), 3931b70061fSTaniya Das F(51200000, P_GPLL6_OUT_MAIN, 7.5, 0, 0), 39417269568STaniya Das F(64000000, P_GPLL0_OUT_EVEN, 1, 16, 75), 39517269568STaniya Das F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 39617269568STaniya Das F(80000000, P_GPLL0_OUT_EVEN, 1, 4, 15), 39717269568STaniya Das F(96000000, P_GPLL0_OUT_EVEN, 1, 8, 25), 39817269568STaniya Das F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0), 39917269568STaniya Das F(102400000, P_GPLL0_OUT_EVEN, 1, 128, 375), 40017269568STaniya Das F(112000000, P_GPLL0_OUT_EVEN, 1, 28, 75), 40117269568STaniya Das F(117964800, P_GPLL0_OUT_EVEN, 1, 6144, 15625), 40217269568STaniya Das F(120000000, P_GPLL0_OUT_EVEN, 2.5, 0, 0), 40317269568STaniya Das F(128000000, P_GPLL6_OUT_MAIN, 3, 0, 0), 40417269568STaniya Das { } 40517269568STaniya Das }; 40617269568STaniya Das 40717269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s0_clk_src_init = { 40817269568STaniya Das .name = "gcc_qupv3_wrap0_s0_clk_src", 4091b70061fSTaniya Das .parent_data = gcc_parent_data_1, 4101b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 41117269568STaniya Das .ops = &clk_rcg2_ops, 41217269568STaniya Das }; 41317269568STaniya Das 41417269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = { 41517269568STaniya Das .cmd_rcgr = 0x17034, 41617269568STaniya Das .mnd_width = 16, 41717269568STaniya Das .hid_width = 5, 4181b70061fSTaniya Das .parent_map = gcc_parent_map_1, 41917269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 42017269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init, 42117269568STaniya Das }; 42217269568STaniya Das 42317269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s1_clk_src_init = { 42417269568STaniya Das .name = "gcc_qupv3_wrap0_s1_clk_src", 4251b70061fSTaniya Das .parent_data = gcc_parent_data_1, 4261b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 42717269568STaniya Das .ops = &clk_rcg2_ops, 42817269568STaniya Das }; 42917269568STaniya Das 43017269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = { 43117269568STaniya Das .cmd_rcgr = 0x17164, 43217269568STaniya Das .mnd_width = 16, 43317269568STaniya Das .hid_width = 5, 4341b70061fSTaniya Das .parent_map = gcc_parent_map_1, 43517269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 43617269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init, 43717269568STaniya Das }; 43817269568STaniya Das 43917269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s2_clk_src_init = { 44017269568STaniya Das .name = "gcc_qupv3_wrap0_s2_clk_src", 4411b70061fSTaniya Das .parent_data = gcc_parent_data_1, 4421b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 44317269568STaniya Das .ops = &clk_rcg2_ops, 44417269568STaniya Das }; 44517269568STaniya Das 44617269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = { 44717269568STaniya Das .cmd_rcgr = 0x17294, 44817269568STaniya Das .mnd_width = 16, 44917269568STaniya Das .hid_width = 5, 4501b70061fSTaniya Das .parent_map = gcc_parent_map_1, 45117269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 45217269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init, 45317269568STaniya Das }; 45417269568STaniya Das 45517269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s3_clk_src_init = { 45617269568STaniya Das .name = "gcc_qupv3_wrap0_s3_clk_src", 4571b70061fSTaniya Das .parent_data = gcc_parent_data_1, 4581b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 45917269568STaniya Das .ops = &clk_rcg2_ops, 46017269568STaniya Das }; 46117269568STaniya Das 46217269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = { 46317269568STaniya Das .cmd_rcgr = 0x173c4, 46417269568STaniya Das .mnd_width = 16, 46517269568STaniya Das .hid_width = 5, 4661b70061fSTaniya Das .parent_map = gcc_parent_map_1, 46717269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 46817269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init, 46917269568STaniya Das }; 47017269568STaniya Das 47117269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s4_clk_src_init = { 47217269568STaniya Das .name = "gcc_qupv3_wrap0_s4_clk_src", 4731b70061fSTaniya Das .parent_data = gcc_parent_data_1, 4741b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 47517269568STaniya Das .ops = &clk_rcg2_ops, 47617269568STaniya Das }; 47717269568STaniya Das 47817269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = { 47917269568STaniya Das .cmd_rcgr = 0x174f4, 48017269568STaniya Das .mnd_width = 16, 48117269568STaniya Das .hid_width = 5, 4821b70061fSTaniya Das .parent_map = gcc_parent_map_1, 48317269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 48417269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init, 48517269568STaniya Das }; 48617269568STaniya Das 48717269568STaniya Das static struct clk_init_data gcc_qupv3_wrap0_s5_clk_src_init = { 48817269568STaniya Das .name = "gcc_qupv3_wrap0_s5_clk_src", 4891b70061fSTaniya Das .parent_data = gcc_parent_data_1, 4901b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 49117269568STaniya Das .ops = &clk_rcg2_ops, 49217269568STaniya Das }; 49317269568STaniya Das 49417269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = { 49517269568STaniya Das .cmd_rcgr = 0x17624, 49617269568STaniya Das .mnd_width = 16, 49717269568STaniya Das .hid_width = 5, 4981b70061fSTaniya Das .parent_map = gcc_parent_map_1, 49917269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 50017269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init, 50117269568STaniya Das }; 50217269568STaniya Das 50317269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = { 50417269568STaniya Das .name = "gcc_qupv3_wrap1_s0_clk_src", 5051b70061fSTaniya Das .parent_data = gcc_parent_data_1, 5061b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 50717269568STaniya Das .ops = &clk_rcg2_ops, 50817269568STaniya Das }; 50917269568STaniya Das 51017269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = { 51117269568STaniya Das .cmd_rcgr = 0x18018, 51217269568STaniya Das .mnd_width = 16, 51317269568STaniya Das .hid_width = 5, 5141b70061fSTaniya Das .parent_map = gcc_parent_map_1, 51517269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 51617269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init, 51717269568STaniya Das }; 51817269568STaniya Das 51917269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = { 52017269568STaniya Das .name = "gcc_qupv3_wrap1_s1_clk_src", 5211b70061fSTaniya Das .parent_data = gcc_parent_data_1, 5221b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 52317269568STaniya Das .ops = &clk_rcg2_ops, 52417269568STaniya Das }; 52517269568STaniya Das 52617269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = { 52717269568STaniya Das .cmd_rcgr = 0x18148, 52817269568STaniya Das .mnd_width = 16, 52917269568STaniya Das .hid_width = 5, 5301b70061fSTaniya Das .parent_map = gcc_parent_map_1, 53117269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 53217269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init, 53317269568STaniya Das }; 53417269568STaniya Das 53517269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s2_clk_src_init = { 53617269568STaniya Das .name = "gcc_qupv3_wrap1_s2_clk_src", 5371b70061fSTaniya Das .parent_data = gcc_parent_data_1, 5381b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 53917269568STaniya Das .ops = &clk_rcg2_ops, 54017269568STaniya Das }; 54117269568STaniya Das 54217269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = { 54317269568STaniya Das .cmd_rcgr = 0x18278, 54417269568STaniya Das .mnd_width = 16, 54517269568STaniya Das .hid_width = 5, 5461b70061fSTaniya Das .parent_map = gcc_parent_map_1, 54717269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 54817269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init, 54917269568STaniya Das }; 55017269568STaniya Das 55117269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = { 55217269568STaniya Das .name = "gcc_qupv3_wrap1_s3_clk_src", 5531b70061fSTaniya Das .parent_data = gcc_parent_data_1, 5541b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 55517269568STaniya Das .ops = &clk_rcg2_ops, 55617269568STaniya Das }; 55717269568STaniya Das 55817269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = { 55917269568STaniya Das .cmd_rcgr = 0x183a8, 56017269568STaniya Das .mnd_width = 16, 56117269568STaniya Das .hid_width = 5, 5621b70061fSTaniya Das .parent_map = gcc_parent_map_1, 56317269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 56417269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init, 56517269568STaniya Das }; 56617269568STaniya Das 56717269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = { 56817269568STaniya Das .name = "gcc_qupv3_wrap1_s4_clk_src", 5691b70061fSTaniya Das .parent_data = gcc_parent_data_1, 5701b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 57117269568STaniya Das .ops = &clk_rcg2_ops, 57217269568STaniya Das }; 57317269568STaniya Das 57417269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = { 57517269568STaniya Das .cmd_rcgr = 0x184d8, 57617269568STaniya Das .mnd_width = 16, 57717269568STaniya Das .hid_width = 5, 5781b70061fSTaniya Das .parent_map = gcc_parent_map_1, 57917269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 58017269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init, 58117269568STaniya Das }; 58217269568STaniya Das 58317269568STaniya Das static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = { 58417269568STaniya Das .name = "gcc_qupv3_wrap1_s5_clk_src", 5851b70061fSTaniya Das .parent_data = gcc_parent_data_1, 5861b70061fSTaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_1), 58717269568STaniya Das .ops = &clk_rcg2_ops, 58817269568STaniya Das }; 58917269568STaniya Das 59017269568STaniya Das static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = { 59117269568STaniya Das .cmd_rcgr = 0x18608, 59217269568STaniya Das .mnd_width = 16, 59317269568STaniya Das .hid_width = 5, 5941b70061fSTaniya Das .parent_map = gcc_parent_map_1, 59517269568STaniya Das .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 59617269568STaniya Das .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init, 59717269568STaniya Das }; 59817269568STaniya Das 59917269568STaniya Das 60017269568STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = { 60117269568STaniya Das F(144000, P_BI_TCXO, 16, 3, 25), 60217269568STaniya Das F(400000, P_BI_TCXO, 12, 1, 4), 60317269568STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 60417269568STaniya Das F(20000000, P_GPLL0_OUT_EVEN, 5, 1, 3), 60517269568STaniya Das F(25000000, P_GPLL0_OUT_EVEN, 6, 1, 2), 60617269568STaniya Das F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 60717269568STaniya Das F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0), 60817269568STaniya Das F(192000000, P_GPLL6_OUT_MAIN, 2, 0, 0), 60917269568STaniya Das F(384000000, P_GPLL6_OUT_MAIN, 1, 0, 0), 61017269568STaniya Das { } 61117269568STaniya Das }; 61217269568STaniya Das 61317269568STaniya Das static struct clk_rcg2 gcc_sdcc1_apps_clk_src = { 61417269568STaniya Das .cmd_rcgr = 0x12028, 61517269568STaniya Das .mnd_width = 8, 61617269568STaniya Das .hid_width = 5, 61717269568STaniya Das .parent_map = gcc_parent_map_1, 61817269568STaniya Das .freq_tbl = ftbl_gcc_sdcc1_apps_clk_src, 61917269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 62017269568STaniya Das .name = "gcc_sdcc1_apps_clk_src", 62117269568STaniya Das .parent_data = gcc_parent_data_1, 62217269568STaniya Das .num_parents = 5, 62317269568STaniya Das .ops = &clk_rcg2_ops, 62417269568STaniya Das }, 62517269568STaniya Das }; 62617269568STaniya Das 62717269568STaniya Das static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = { 62817269568STaniya Das F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0), 62917269568STaniya Das F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0), 63017269568STaniya Das F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 63117269568STaniya Das F(300000000, P_GPLL0_OUT_EVEN, 1, 0, 0), 63217269568STaniya Das { } 63317269568STaniya Das }; 63417269568STaniya Das 63517269568STaniya Das static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = { 63617269568STaniya Das .cmd_rcgr = 0x12010, 63717269568STaniya Das .mnd_width = 0, 63817269568STaniya Das .hid_width = 5, 63917269568STaniya Das .parent_map = gcc_parent_map_0, 64017269568STaniya Das .freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src, 64117269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 64217269568STaniya Das .name = "gcc_sdcc1_ice_core_clk_src", 64317269568STaniya Das .parent_data = gcc_parent_data_0, 64417269568STaniya Das .num_parents = 4, 645*6d37a8d1SDouglas Anderson .ops = &clk_rcg2_floor_ops, 64617269568STaniya Das }, 64717269568STaniya Das }; 64817269568STaniya Das 64917269568STaniya Das static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = { 65017269568STaniya Das F(400000, P_BI_TCXO, 12, 1, 4), 65117269568STaniya Das F(9600000, P_BI_TCXO, 2, 0, 0), 65217269568STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 65317269568STaniya Das F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 65417269568STaniya Das F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0), 65517269568STaniya Das F(202000000, P_GPLL7_OUT_MAIN, 4, 0, 0), 65617269568STaniya Das { } 65717269568STaniya Das }; 65817269568STaniya Das 65917269568STaniya Das static struct clk_rcg2 gcc_sdcc2_apps_clk_src = { 66017269568STaniya Das .cmd_rcgr = 0x1400c, 66117269568STaniya Das .mnd_width = 8, 66217269568STaniya Das .hid_width = 5, 66317269568STaniya Das .parent_map = gcc_parent_map_5, 66417269568STaniya Das .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src, 66517269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 66617269568STaniya Das .name = "gcc_sdcc2_apps_clk_src", 66717269568STaniya Das .parent_data = gcc_parent_data_5, 66817269568STaniya Das .num_parents = 5, 669*6d37a8d1SDouglas Anderson .ops = &clk_rcg2_floor_ops, 67017269568STaniya Das }, 67117269568STaniya Das }; 67217269568STaniya Das 67317269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = { 67417269568STaniya Das F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 67517269568STaniya Das F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 67617269568STaniya Das F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0), 67717269568STaniya Das F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 67817269568STaniya Das F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0), 67917269568STaniya Das { } 68017269568STaniya Das }; 68117269568STaniya Das 68217269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = { 68317269568STaniya Das .cmd_rcgr = 0x77020, 68417269568STaniya Das .mnd_width = 8, 68517269568STaniya Das .hid_width = 5, 68617269568STaniya Das .parent_map = gcc_parent_map_0, 68717269568STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src, 68817269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 68917269568STaniya Das .name = "gcc_ufs_phy_axi_clk_src", 69017269568STaniya Das .parent_data = gcc_parent_data_0, 69117269568STaniya Das .num_parents = 4, 69217269568STaniya Das .ops = &clk_rcg2_ops, 69317269568STaniya Das }, 69417269568STaniya Das }; 69517269568STaniya Das 69617269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_ice_core_clk_src[] = { 69717269568STaniya Das F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0), 69817269568STaniya Das F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 69917269568STaniya Das F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0), 70017269568STaniya Das F(300000000, P_GPLL0_OUT_EVEN, 1, 0, 0), 70117269568STaniya Das { } 70217269568STaniya Das }; 70317269568STaniya Das 70417269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = { 70517269568STaniya Das .cmd_rcgr = 0x77048, 70617269568STaniya Das .mnd_width = 0, 70717269568STaniya Das .hid_width = 5, 70817269568STaniya Das .parent_map = gcc_parent_map_0, 70917269568STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_ice_core_clk_src, 71017269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 71117269568STaniya Das .name = "gcc_ufs_phy_ice_core_clk_src", 71217269568STaniya Das .parent_data = gcc_parent_data_0, 71317269568STaniya Das .num_parents = 4, 71417269568STaniya Das .ops = &clk_rcg2_ops, 71517269568STaniya Das }, 71617269568STaniya Das }; 71717269568STaniya Das 71817269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_phy_aux_clk_src[] = { 71917269568STaniya Das F(9600000, P_BI_TCXO, 2, 0, 0), 72017269568STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 72117269568STaniya Das { } 72217269568STaniya Das }; 72317269568STaniya Das 72417269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = { 72517269568STaniya Das .cmd_rcgr = 0x77098, 72617269568STaniya Das .mnd_width = 0, 72717269568STaniya Das .hid_width = 5, 72817269568STaniya Das .parent_map = gcc_parent_map_3, 72917269568STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_phy_aux_clk_src, 73017269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 73117269568STaniya Das .name = "gcc_ufs_phy_phy_aux_clk_src", 73217269568STaniya Das .parent_data = gcc_parent_data_3, 73317269568STaniya Das .num_parents = 3, 73417269568STaniya Das .ops = &clk_rcg2_ops, 73517269568STaniya Das }, 73617269568STaniya Das }; 73717269568STaniya Das 73817269568STaniya Das static const struct freq_tbl ftbl_gcc_ufs_phy_unipro_core_clk_src[] = { 73917269568STaniya Das F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0), 74017269568STaniya Das F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 74117269568STaniya Das F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0), 74217269568STaniya Das { } 74317269568STaniya Das }; 74417269568STaniya Das 74517269568STaniya Das static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = { 74617269568STaniya Das .cmd_rcgr = 0x77060, 74717269568STaniya Das .mnd_width = 0, 74817269568STaniya Das .hid_width = 5, 74917269568STaniya Das .parent_map = gcc_parent_map_0, 75017269568STaniya Das .freq_tbl = ftbl_gcc_ufs_phy_unipro_core_clk_src, 75117269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 75217269568STaniya Das .name = "gcc_ufs_phy_unipro_core_clk_src", 75317269568STaniya Das .parent_data = gcc_parent_data_0, 75417269568STaniya Das .num_parents = 4, 75517269568STaniya Das .ops = &clk_rcg2_ops, 75617269568STaniya Das }, 75717269568STaniya Das }; 75817269568STaniya Das 75917269568STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = { 76017269568STaniya Das F(66666667, P_GPLL0_OUT_EVEN, 4.5, 0, 0), 76117269568STaniya Das F(133333333, P_GPLL0_OUT_MAIN, 4.5, 0, 0), 76217269568STaniya Das F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 76317269568STaniya Das F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0), 76417269568STaniya Das { } 76517269568STaniya Das }; 76617269568STaniya Das 76717269568STaniya Das static struct clk_rcg2 gcc_usb30_prim_master_clk_src = { 76817269568STaniya Das .cmd_rcgr = 0xf01c, 76917269568STaniya Das .mnd_width = 8, 77017269568STaniya Das .hid_width = 5, 77117269568STaniya Das .parent_map = gcc_parent_map_0, 77217269568STaniya Das .freq_tbl = ftbl_gcc_usb30_prim_master_clk_src, 77317269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 77417269568STaniya Das .name = "gcc_usb30_prim_master_clk_src", 77517269568STaniya Das .parent_data = gcc_parent_data_0, 77617269568STaniya Das .num_parents = 4, 77717269568STaniya Das .ops = &clk_rcg2_ops, 77817269568STaniya Das }, 77917269568STaniya Das }; 78017269568STaniya Das 78117269568STaniya Das static const struct freq_tbl ftbl_gcc_usb30_prim_mock_utmi_clk_src[] = { 78217269568STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 78317269568STaniya Das F(20000000, P_GPLL0_OUT_EVEN, 15, 0, 0), 78417269568STaniya Das { } 78517269568STaniya Das }; 78617269568STaniya Das 78717269568STaniya Das static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = { 78817269568STaniya Das .cmd_rcgr = 0xf034, 78917269568STaniya Das .mnd_width = 0, 79017269568STaniya Das .hid_width = 5, 79117269568STaniya Das .parent_map = gcc_parent_map_0, 79217269568STaniya Das .freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src, 79317269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 79417269568STaniya Das .name = "gcc_usb30_prim_mock_utmi_clk_src", 79517269568STaniya Das .parent_data = gcc_parent_data_0, 79617269568STaniya Das .num_parents = 4, 79717269568STaniya Das .ops = &clk_rcg2_ops, 79817269568STaniya Das }, 79917269568STaniya Das }; 80017269568STaniya Das 80117269568STaniya Das static const struct freq_tbl ftbl_gcc_usb3_prim_phy_aux_clk_src[] = { 80217269568STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 80317269568STaniya Das { } 80417269568STaniya Das }; 80517269568STaniya Das 80617269568STaniya Das static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = { 80717269568STaniya Das .cmd_rcgr = 0xf060, 80817269568STaniya Das .mnd_width = 0, 80917269568STaniya Das .hid_width = 5, 81017269568STaniya Das .parent_map = gcc_parent_map_6, 81117269568STaniya Das .freq_tbl = ftbl_gcc_usb3_prim_phy_aux_clk_src, 81217269568STaniya Das .clkr.hw.init = &(struct clk_init_data){ 81317269568STaniya Das .name = "gcc_usb3_prim_phy_aux_clk_src", 81417269568STaniya Das .parent_data = gcc_parent_data_6, 81517269568STaniya Das .num_parents = 4, 81617269568STaniya Das .ops = &clk_rcg2_ops, 81717269568STaniya Das }, 81817269568STaniya Das }; 81917269568STaniya Das 820bd4bb225STaniya Das static const struct freq_tbl ftbl_gcc_sec_ctrl_clk_src[] = { 821bd4bb225STaniya Das F(4800000, P_BI_TCXO, 4, 0, 0), 822bd4bb225STaniya Das F(19200000, P_BI_TCXO, 1, 0, 0), 823bd4bb225STaniya Das { } 824bd4bb225STaniya Das }; 825bd4bb225STaniya Das 826bd4bb225STaniya Das static struct clk_rcg2 gcc_sec_ctrl_clk_src = { 827bd4bb225STaniya Das .cmd_rcgr = 0x3d030, 828bd4bb225STaniya Das .mnd_width = 0, 829bd4bb225STaniya Das .hid_width = 5, 830bd4bb225STaniya Das .parent_map = gcc_parent_map_3, 831bd4bb225STaniya Das .freq_tbl = ftbl_gcc_sec_ctrl_clk_src, 832bd4bb225STaniya Das .clkr.hw.init = &(struct clk_init_data){ 833bd4bb225STaniya Das .name = "gcc_sec_ctrl_clk_src", 834bd4bb225STaniya Das .parent_data = gcc_parent_data_3, 835bd4bb225STaniya Das .num_parents = ARRAY_SIZE(gcc_parent_data_3), 836bd4bb225STaniya Das .ops = &clk_rcg2_ops, 837bd4bb225STaniya Das }, 838bd4bb225STaniya Das }; 839bd4bb225STaniya Das 84017269568STaniya Das static struct clk_branch gcc_aggre_ufs_phy_axi_clk = { 84117269568STaniya Das .halt_reg = 0x82024, 84217269568STaniya Das .halt_check = BRANCH_HALT_DELAY, 84317269568STaniya Das .hwcg_reg = 0x82024, 84417269568STaniya Das .hwcg_bit = 1, 84517269568STaniya Das .clkr = { 84617269568STaniya Das .enable_reg = 0x82024, 84717269568STaniya Das .enable_mask = BIT(0), 84817269568STaniya Das .hw.init = &(struct clk_init_data){ 84917269568STaniya Das .name = "gcc_aggre_ufs_phy_axi_clk", 85017269568STaniya Das .parent_data = &(const struct clk_parent_data){ 85117269568STaniya Das .hw = &gcc_ufs_phy_axi_clk_src.clkr.hw, 85217269568STaniya Das }, 85317269568STaniya Das .num_parents = 1, 85417269568STaniya Das .flags = CLK_SET_RATE_PARENT, 85517269568STaniya Das .ops = &clk_branch2_ops, 85617269568STaniya Das }, 85717269568STaniya Das }, 85817269568STaniya Das }; 85917269568STaniya Das 86017269568STaniya Das static struct clk_branch gcc_aggre_usb3_prim_axi_clk = { 86117269568STaniya Das .halt_reg = 0x8201c, 86217269568STaniya Das .halt_check = BRANCH_HALT, 86317269568STaniya Das .clkr = { 86417269568STaniya Das .enable_reg = 0x8201c, 86517269568STaniya Das .enable_mask = BIT(0), 86617269568STaniya Das .hw.init = &(struct clk_init_data){ 86717269568STaniya Das .name = "gcc_aggre_usb3_prim_axi_clk", 86817269568STaniya Das .parent_data = &(const struct clk_parent_data){ 86917269568STaniya Das .hw = &gcc_usb30_prim_master_clk_src.clkr.hw, 87017269568STaniya Das }, 87117269568STaniya Das .num_parents = 1, 87217269568STaniya Das .flags = CLK_SET_RATE_PARENT, 87317269568STaniya Das .ops = &clk_branch2_ops, 87417269568STaniya Das }, 87517269568STaniya Das }, 87617269568STaniya Das }; 87717269568STaniya Das 87817269568STaniya Das static struct clk_branch gcc_boot_rom_ahb_clk = { 87917269568STaniya Das .halt_reg = 0x38004, 88017269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 88117269568STaniya Das .hwcg_reg = 0x38004, 88217269568STaniya Das .hwcg_bit = 1, 88317269568STaniya Das .clkr = { 88417269568STaniya Das .enable_reg = 0x52000, 88517269568STaniya Das .enable_mask = BIT(10), 88617269568STaniya Das .hw.init = &(struct clk_init_data){ 88717269568STaniya Das .name = "gcc_boot_rom_ahb_clk", 88817269568STaniya Das .ops = &clk_branch2_ops, 88917269568STaniya Das }, 89017269568STaniya Das }, 89117269568STaniya Das }; 89217269568STaniya Das 89317269568STaniya Das static struct clk_branch gcc_camera_ahb_clk = { 89417269568STaniya Das .halt_reg = 0xb008, 89517269568STaniya Das .halt_check = BRANCH_HALT, 89617269568STaniya Das .hwcg_reg = 0xb008, 89717269568STaniya Das .hwcg_bit = 1, 89817269568STaniya Das .clkr = { 89917269568STaniya Das .enable_reg = 0xb008, 90017269568STaniya Das .enable_mask = BIT(0), 90117269568STaniya Das .hw.init = &(struct clk_init_data){ 90217269568STaniya Das .name = "gcc_camera_ahb_clk", 90317269568STaniya Das .ops = &clk_branch2_ops, 90417269568STaniya Das }, 90517269568STaniya Das }, 90617269568STaniya Das }; 90717269568STaniya Das 90817269568STaniya Das static struct clk_branch gcc_camera_hf_axi_clk = { 90917269568STaniya Das .halt_reg = 0xb020, 91017269568STaniya Das .halt_check = BRANCH_HALT, 91117269568STaniya Das .clkr = { 91217269568STaniya Das .enable_reg = 0xb020, 91317269568STaniya Das .enable_mask = BIT(0), 91417269568STaniya Das .hw.init = &(struct clk_init_data){ 91517269568STaniya Das .name = "gcc_camera_hf_axi_clk", 91617269568STaniya Das .ops = &clk_branch2_ops, 91717269568STaniya Das }, 91817269568STaniya Das }, 91917269568STaniya Das }; 92017269568STaniya Das 92117269568STaniya Das static struct clk_branch gcc_camera_throttle_hf_axi_clk = { 92217269568STaniya Das .halt_reg = 0xb080, 92317269568STaniya Das .halt_check = BRANCH_HALT, 92417269568STaniya Das .hwcg_reg = 0xb080, 92517269568STaniya Das .hwcg_bit = 1, 92617269568STaniya Das .clkr = { 92717269568STaniya Das .enable_reg = 0xb080, 92817269568STaniya Das .enable_mask = BIT(0), 92917269568STaniya Das .hw.init = &(struct clk_init_data){ 93017269568STaniya Das .name = "gcc_camera_throttle_hf_axi_clk", 93117269568STaniya Das .ops = &clk_branch2_ops, 93217269568STaniya Das }, 93317269568STaniya Das }, 93417269568STaniya Das }; 93517269568STaniya Das 93617269568STaniya Das static struct clk_branch gcc_camera_xo_clk = { 93717269568STaniya Das .halt_reg = 0xb02c, 93817269568STaniya Das .halt_check = BRANCH_HALT, 93917269568STaniya Das .clkr = { 94017269568STaniya Das .enable_reg = 0xb02c, 94117269568STaniya Das .enable_mask = BIT(0), 94217269568STaniya Das .hw.init = &(struct clk_init_data){ 94317269568STaniya Das .name = "gcc_camera_xo_clk", 94417269568STaniya Das .ops = &clk_branch2_ops, 94517269568STaniya Das }, 94617269568STaniya Das }, 94717269568STaniya Das }; 94817269568STaniya Das 94917269568STaniya Das static struct clk_branch gcc_ce1_ahb_clk = { 95017269568STaniya Das .halt_reg = 0x4100c, 95117269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 95217269568STaniya Das .hwcg_reg = 0x4100c, 95317269568STaniya Das .hwcg_bit = 1, 95417269568STaniya Das .clkr = { 95517269568STaniya Das .enable_reg = 0x52000, 95617269568STaniya Das .enable_mask = BIT(3), 95717269568STaniya Das .hw.init = &(struct clk_init_data){ 95817269568STaniya Das .name = "gcc_ce1_ahb_clk", 95917269568STaniya Das .ops = &clk_branch2_ops, 96017269568STaniya Das }, 96117269568STaniya Das }, 96217269568STaniya Das }; 96317269568STaniya Das 96417269568STaniya Das static struct clk_branch gcc_ce1_axi_clk = { 96517269568STaniya Das .halt_reg = 0x41008, 96617269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 96717269568STaniya Das .clkr = { 96817269568STaniya Das .enable_reg = 0x52000, 96917269568STaniya Das .enable_mask = BIT(4), 97017269568STaniya Das .hw.init = &(struct clk_init_data){ 97117269568STaniya Das .name = "gcc_ce1_axi_clk", 97217269568STaniya Das .ops = &clk_branch2_ops, 97317269568STaniya Das }, 97417269568STaniya Das }, 97517269568STaniya Das }; 97617269568STaniya Das 97717269568STaniya Das static struct clk_branch gcc_ce1_clk = { 97817269568STaniya Das .halt_reg = 0x41004, 97917269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 98017269568STaniya Das .clkr = { 98117269568STaniya Das .enable_reg = 0x52000, 98217269568STaniya Das .enable_mask = BIT(5), 98317269568STaniya Das .hw.init = &(struct clk_init_data){ 98417269568STaniya Das .name = "gcc_ce1_clk", 98517269568STaniya Das .ops = &clk_branch2_ops, 98617269568STaniya Das }, 98717269568STaniya Das }, 98817269568STaniya Das }; 98917269568STaniya Das 99017269568STaniya Das static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = { 99117269568STaniya Das .halt_reg = 0x502c, 99217269568STaniya Das .halt_check = BRANCH_HALT, 99317269568STaniya Das .clkr = { 99417269568STaniya Das .enable_reg = 0x502c, 99517269568STaniya Das .enable_mask = BIT(0), 99617269568STaniya Das .hw.init = &(struct clk_init_data){ 99717269568STaniya Das .name = "gcc_cfg_noc_usb3_prim_axi_clk", 99817269568STaniya Das .parent_data = &(const struct clk_parent_data){ 99917269568STaniya Das .hw = &gcc_usb30_prim_master_clk_src.clkr.hw, 100017269568STaniya Das }, 100117269568STaniya Das .num_parents = 1, 100217269568STaniya Das .flags = CLK_SET_RATE_PARENT, 100317269568STaniya Das .ops = &clk_branch2_ops, 100417269568STaniya Das }, 100517269568STaniya Das }, 100617269568STaniya Das }; 100717269568STaniya Das 100817269568STaniya Das /* For CPUSS functionality the AHB clock needs to be left enabled */ 100917269568STaniya Das static struct clk_branch gcc_cpuss_ahb_clk = { 101017269568STaniya Das .halt_reg = 0x48000, 101117269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 101217269568STaniya Das .clkr = { 101317269568STaniya Das .enable_reg = 0x52000, 101417269568STaniya Das .enable_mask = BIT(21), 101517269568STaniya Das .hw.init = &(struct clk_init_data){ 101617269568STaniya Das .name = "gcc_cpuss_ahb_clk", 101717269568STaniya Das .parent_data = &(const struct clk_parent_data){ 101817269568STaniya Das .hw = &gcc_cpuss_ahb_clk_src.clkr.hw, 101917269568STaniya Das }, 102017269568STaniya Das .num_parents = 1, 102117269568STaniya Das .flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT, 102217269568STaniya Das .ops = &clk_branch2_ops, 102317269568STaniya Das }, 102417269568STaniya Das }, 102517269568STaniya Das }; 102617269568STaniya Das 102717269568STaniya Das static struct clk_branch gcc_cpuss_rbcpr_clk = { 102817269568STaniya Das .halt_reg = 0x48008, 102917269568STaniya Das .halt_check = BRANCH_HALT, 103017269568STaniya Das .clkr = { 103117269568STaniya Das .enable_reg = 0x48008, 103217269568STaniya Das .enable_mask = BIT(0), 103317269568STaniya Das .hw.init = &(struct clk_init_data){ 103417269568STaniya Das .name = "gcc_cpuss_rbcpr_clk", 103517269568STaniya Das .ops = &clk_branch2_ops, 103617269568STaniya Das }, 103717269568STaniya Das }, 103817269568STaniya Das }; 103917269568STaniya Das 104017269568STaniya Das static struct clk_branch gcc_ddrss_gpu_axi_clk = { 104117269568STaniya Das .halt_reg = 0x4452c, 104217269568STaniya Das .halt_check = BRANCH_VOTED, 104317269568STaniya Das .clkr = { 104417269568STaniya Das .enable_reg = 0x4452c, 104517269568STaniya Das .enable_mask = BIT(0), 104617269568STaniya Das .hw.init = &(struct clk_init_data){ 104717269568STaniya Das .name = "gcc_ddrss_gpu_axi_clk", 104817269568STaniya Das .ops = &clk_branch2_ops, 104917269568STaniya Das }, 105017269568STaniya Das }, 105117269568STaniya Das }; 105217269568STaniya Das 105317269568STaniya Das static struct clk_branch gcc_disp_gpll0_clk_src = { 105417269568STaniya Das .halt_check = BRANCH_HALT_DELAY, 105517269568STaniya Das .clkr = { 105617269568STaniya Das .enable_reg = 0x52000, 105717269568STaniya Das .enable_mask = BIT(18), 105817269568STaniya Das .hw.init = &(struct clk_init_data){ 105917269568STaniya Das .name = "gcc_disp_gpll0_clk_src", 106017269568STaniya Das .parent_data = &(const struct clk_parent_data){ 106117269568STaniya Das .hw = &gpll0.clkr.hw, 106217269568STaniya Das }, 106317269568STaniya Das .num_parents = 1, 10649c3df2b1STaniya Das .ops = &clk_branch2_aon_ops, 106517269568STaniya Das }, 106617269568STaniya Das }, 106717269568STaniya Das }; 106817269568STaniya Das 106917269568STaniya Das static struct clk_branch gcc_disp_gpll0_div_clk_src = { 107017269568STaniya Das .halt_check = BRANCH_HALT_DELAY, 107117269568STaniya Das .clkr = { 107217269568STaniya Das .enable_reg = 0x52000, 107317269568STaniya Das .enable_mask = BIT(19), 107417269568STaniya Das .hw.init = &(struct clk_init_data){ 107517269568STaniya Das .name = "gcc_disp_gpll0_div_clk_src", 107617269568STaniya Das .parent_data = &(const struct clk_parent_data){ 107717269568STaniya Das .hw = &gcc_pll0_main_div_cdiv.hw, 107817269568STaniya Das }, 107917269568STaniya Das .num_parents = 1, 108017269568STaniya Das .ops = &clk_branch2_ops, 108117269568STaniya Das }, 108217269568STaniya Das }, 108317269568STaniya Das }; 108417269568STaniya Das 108517269568STaniya Das static struct clk_branch gcc_disp_hf_axi_clk = { 108617269568STaniya Das .halt_reg = 0xb024, 108717269568STaniya Das .halt_check = BRANCH_HALT, 108817269568STaniya Das .clkr = { 108917269568STaniya Das .enable_reg = 0xb024, 109017269568STaniya Das .enable_mask = BIT(0), 109117269568STaniya Das .hw.init = &(struct clk_init_data){ 109217269568STaniya Das .name = "gcc_disp_hf_axi_clk", 109317269568STaniya Das .ops = &clk_branch2_ops, 109417269568STaniya Das }, 109517269568STaniya Das }, 109617269568STaniya Das }; 109717269568STaniya Das 109817269568STaniya Das static struct clk_branch gcc_disp_throttle_hf_axi_clk = { 109917269568STaniya Das .halt_reg = 0xb084, 110017269568STaniya Das .halt_check = BRANCH_HALT, 110117269568STaniya Das .hwcg_reg = 0xb084, 110217269568STaniya Das .hwcg_bit = 1, 110317269568STaniya Das .clkr = { 110417269568STaniya Das .enable_reg = 0xb084, 110517269568STaniya Das .enable_mask = BIT(0), 110617269568STaniya Das .hw.init = &(struct clk_init_data){ 110717269568STaniya Das .name = "gcc_disp_throttle_hf_axi_clk", 110817269568STaniya Das .ops = &clk_branch2_ops, 110917269568STaniya Das }, 111017269568STaniya Das }, 111117269568STaniya Das }; 111217269568STaniya Das 111317269568STaniya Das static struct clk_branch gcc_disp_xo_clk = { 111417269568STaniya Das .halt_reg = 0xb030, 111517269568STaniya Das .halt_check = BRANCH_HALT, 111617269568STaniya Das .clkr = { 111717269568STaniya Das .enable_reg = 0xb030, 111817269568STaniya Das .enable_mask = BIT(0), 111917269568STaniya Das .hw.init = &(struct clk_init_data){ 112017269568STaniya Das .name = "gcc_disp_xo_clk", 112117269568STaniya Das .ops = &clk_branch2_ops, 112217269568STaniya Das }, 112317269568STaniya Das }, 112417269568STaniya Das }; 112517269568STaniya Das 112617269568STaniya Das static struct clk_branch gcc_gp1_clk = { 112717269568STaniya Das .halt_reg = 0x64000, 112817269568STaniya Das .halt_check = BRANCH_HALT, 112917269568STaniya Das .clkr = { 113017269568STaniya Das .enable_reg = 0x64000, 113117269568STaniya Das .enable_mask = BIT(0), 113217269568STaniya Das .hw.init = &(struct clk_init_data){ 113317269568STaniya Das .name = "gcc_gp1_clk", 113417269568STaniya Das .parent_data = &(const struct clk_parent_data){ 113517269568STaniya Das .hw = &gcc_gp1_clk_src.clkr.hw, 113617269568STaniya Das }, 113717269568STaniya Das .num_parents = 1, 113817269568STaniya Das .flags = CLK_SET_RATE_PARENT, 113917269568STaniya Das .ops = &clk_branch2_ops, 114017269568STaniya Das }, 114117269568STaniya Das }, 114217269568STaniya Das }; 114317269568STaniya Das 114417269568STaniya Das static struct clk_branch gcc_gp2_clk = { 114517269568STaniya Das .halt_reg = 0x65000, 114617269568STaniya Das .halt_check = BRANCH_HALT, 114717269568STaniya Das .clkr = { 114817269568STaniya Das .enable_reg = 0x65000, 114917269568STaniya Das .enable_mask = BIT(0), 115017269568STaniya Das .hw.init = &(struct clk_init_data){ 115117269568STaniya Das .name = "gcc_gp2_clk", 115217269568STaniya Das .parent_data = &(const struct clk_parent_data){ 115317269568STaniya Das .hw = &gcc_gp2_clk_src.clkr.hw, 115417269568STaniya Das }, 115517269568STaniya Das .num_parents = 1, 115617269568STaniya Das .flags = CLK_SET_RATE_PARENT, 115717269568STaniya Das .ops = &clk_branch2_ops, 115817269568STaniya Das }, 115917269568STaniya Das }, 116017269568STaniya Das }; 116117269568STaniya Das 116217269568STaniya Das static struct clk_branch gcc_gp3_clk = { 116317269568STaniya Das .halt_reg = 0x66000, 116417269568STaniya Das .halt_check = BRANCH_HALT, 116517269568STaniya Das .clkr = { 116617269568STaniya Das .enable_reg = 0x66000, 116717269568STaniya Das .enable_mask = BIT(0), 116817269568STaniya Das .hw.init = &(struct clk_init_data){ 116917269568STaniya Das .name = "gcc_gp3_clk", 117017269568STaniya Das .parent_data = &(const struct clk_parent_data){ 117117269568STaniya Das .hw = &gcc_gp3_clk_src.clkr.hw, 117217269568STaniya Das }, 117317269568STaniya Das .num_parents = 1, 117417269568STaniya Das .flags = CLK_SET_RATE_PARENT, 117517269568STaniya Das .ops = &clk_branch2_ops, 117617269568STaniya Das }, 117717269568STaniya Das }, 117817269568STaniya Das }; 117917269568STaniya Das 118017269568STaniya Das static struct clk_branch gcc_gpu_gpll0_clk_src = { 118117269568STaniya Das .halt_check = BRANCH_HALT_DELAY, 118217269568STaniya Das .clkr = { 118317269568STaniya Das .enable_reg = 0x52000, 118417269568STaniya Das .enable_mask = BIT(15), 118517269568STaniya Das .hw.init = &(struct clk_init_data){ 118617269568STaniya Das .name = "gcc_gpu_gpll0_clk_src", 118717269568STaniya Das .parent_data = &(const struct clk_parent_data){ 118817269568STaniya Das .hw = &gpll0.clkr.hw, 118917269568STaniya Das }, 119017269568STaniya Das .num_parents = 1, 119117269568STaniya Das .ops = &clk_branch2_ops, 119217269568STaniya Das }, 119317269568STaniya Das }, 119417269568STaniya Das }; 119517269568STaniya Das 119617269568STaniya Das static struct clk_branch gcc_gpu_gpll0_div_clk_src = { 119717269568STaniya Das .halt_check = BRANCH_HALT_DELAY, 119817269568STaniya Das .clkr = { 119917269568STaniya Das .enable_reg = 0x52000, 120017269568STaniya Das .enable_mask = BIT(16), 120117269568STaniya Das .hw.init = &(struct clk_init_data){ 120217269568STaniya Das .name = "gcc_gpu_gpll0_div_clk_src", 120317269568STaniya Das .parent_data = &(const struct clk_parent_data){ 120417269568STaniya Das .hw = &gcc_pll0_main_div_cdiv.hw, 120517269568STaniya Das }, 120617269568STaniya Das .num_parents = 1, 120717269568STaniya Das .ops = &clk_branch2_ops, 120817269568STaniya Das }, 120917269568STaniya Das }, 121017269568STaniya Das }; 121117269568STaniya Das 121217269568STaniya Das static struct clk_branch gcc_gpu_memnoc_gfx_clk = { 121317269568STaniya Das .halt_reg = 0x7100c, 121417269568STaniya Das .halt_check = BRANCH_VOTED, 121517269568STaniya Das .clkr = { 121617269568STaniya Das .enable_reg = 0x7100c, 121717269568STaniya Das .enable_mask = BIT(0), 121817269568STaniya Das .hw.init = &(struct clk_init_data){ 121917269568STaniya Das .name = "gcc_gpu_memnoc_gfx_clk", 122017269568STaniya Das .ops = &clk_branch2_ops, 122117269568STaniya Das }, 122217269568STaniya Das }, 122317269568STaniya Das }; 122417269568STaniya Das 122517269568STaniya Das static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = { 122617269568STaniya Das .halt_reg = 0x71018, 122717269568STaniya Das .halt_check = BRANCH_HALT, 122817269568STaniya Das .clkr = { 122917269568STaniya Das .enable_reg = 0x71018, 123017269568STaniya Das .enable_mask = BIT(0), 123117269568STaniya Das .hw.init = &(struct clk_init_data){ 123217269568STaniya Das .name = "gcc_gpu_snoc_dvm_gfx_clk", 123317269568STaniya Das .ops = &clk_branch2_ops, 123417269568STaniya Das }, 123517269568STaniya Das }, 123617269568STaniya Das }; 123717269568STaniya Das 123817269568STaniya Das static struct clk_branch gcc_npu_axi_clk = { 123917269568STaniya Das .halt_reg = 0x4d008, 124017269568STaniya Das .halt_check = BRANCH_HALT, 124117269568STaniya Das .clkr = { 124217269568STaniya Das .enable_reg = 0x4d008, 124317269568STaniya Das .enable_mask = BIT(0), 124417269568STaniya Das .hw.init = &(struct clk_init_data){ 124517269568STaniya Das .name = "gcc_npu_axi_clk", 124617269568STaniya Das .ops = &clk_branch2_ops, 124717269568STaniya Das }, 124817269568STaniya Das }, 124917269568STaniya Das }; 125017269568STaniya Das 125117269568STaniya Das static struct clk_branch gcc_npu_bwmon_axi_clk = { 125217269568STaniya Das .halt_reg = 0x73008, 125317269568STaniya Das .halt_check = BRANCH_HALT, 125417269568STaniya Das .clkr = { 125517269568STaniya Das .enable_reg = 0x73008, 125617269568STaniya Das .enable_mask = BIT(0), 125717269568STaniya Das .hw.init = &(struct clk_init_data){ 125817269568STaniya Das .name = "gcc_npu_bwmon_axi_clk", 125917269568STaniya Das .ops = &clk_branch2_ops, 126017269568STaniya Das }, 126117269568STaniya Das }, 126217269568STaniya Das }; 126317269568STaniya Das 126417269568STaniya Das static struct clk_branch gcc_npu_bwmon_dma_cfg_ahb_clk = { 126517269568STaniya Das .halt_reg = 0x73018, 126617269568STaniya Das .halt_check = BRANCH_HALT, 126717269568STaniya Das .clkr = { 126817269568STaniya Das .enable_reg = 0x73018, 126917269568STaniya Das .enable_mask = BIT(0), 127017269568STaniya Das .hw.init = &(struct clk_init_data){ 127117269568STaniya Das .name = "gcc_npu_bwmon_dma_cfg_ahb_clk", 127217269568STaniya Das .ops = &clk_branch2_ops, 127317269568STaniya Das }, 127417269568STaniya Das }, 127517269568STaniya Das }; 127617269568STaniya Das 127717269568STaniya Das static struct clk_branch gcc_npu_bwmon_dsp_cfg_ahb_clk = { 127817269568STaniya Das .halt_reg = 0x7301c, 127917269568STaniya Das .halt_check = BRANCH_HALT, 128017269568STaniya Das .clkr = { 128117269568STaniya Das .enable_reg = 0x7301c, 128217269568STaniya Das .enable_mask = BIT(0), 128317269568STaniya Das .hw.init = &(struct clk_init_data){ 128417269568STaniya Das .name = "gcc_npu_bwmon_dsp_cfg_ahb_clk", 128517269568STaniya Das .ops = &clk_branch2_ops, 128617269568STaniya Das }, 128717269568STaniya Das }, 128817269568STaniya Das }; 128917269568STaniya Das 129017269568STaniya Das static struct clk_branch gcc_npu_cfg_ahb_clk = { 129117269568STaniya Das .halt_reg = 0x4d004, 129217269568STaniya Das .halt_check = BRANCH_HALT, 129317269568STaniya Das .hwcg_reg = 0x4d004, 129417269568STaniya Das .hwcg_bit = 1, 129517269568STaniya Das .clkr = { 129617269568STaniya Das .enable_reg = 0x4d004, 129717269568STaniya Das .enable_mask = BIT(0), 129817269568STaniya Das .hw.init = &(struct clk_init_data){ 129917269568STaniya Das .name = "gcc_npu_cfg_ahb_clk", 130017269568STaniya Das .ops = &clk_branch2_ops, 130117269568STaniya Das }, 130217269568STaniya Das }, 130317269568STaniya Das }; 130417269568STaniya Das 130517269568STaniya Das static struct clk_branch gcc_npu_dma_clk = { 130617269568STaniya Das .halt_reg = 0x4d1a0, 130717269568STaniya Das .halt_check = BRANCH_HALT, 130817269568STaniya Das .hwcg_reg = 0x4d1a0, 130917269568STaniya Das .hwcg_bit = 1, 131017269568STaniya Das .clkr = { 131117269568STaniya Das .enable_reg = 0x4d1a0, 131217269568STaniya Das .enable_mask = BIT(0), 131317269568STaniya Das .hw.init = &(struct clk_init_data){ 131417269568STaniya Das .name = "gcc_npu_dma_clk", 131517269568STaniya Das .ops = &clk_branch2_ops, 131617269568STaniya Das }, 131717269568STaniya Das }, 131817269568STaniya Das }; 131917269568STaniya Das 132017269568STaniya Das static struct clk_branch gcc_npu_gpll0_clk_src = { 132117269568STaniya Das .halt_check = BRANCH_HALT_DELAY, 132217269568STaniya Das .clkr = { 132317269568STaniya Das .enable_reg = 0x52000, 132417269568STaniya Das .enable_mask = BIT(25), 132517269568STaniya Das .hw.init = &(struct clk_init_data){ 132617269568STaniya Das .name = "gcc_npu_gpll0_clk_src", 132717269568STaniya Das .parent_data = &(const struct clk_parent_data){ 132817269568STaniya Das .hw = &gpll0.clkr.hw, 132917269568STaniya Das }, 133017269568STaniya Das .num_parents = 1, 133117269568STaniya Das .ops = &clk_branch2_ops, 133217269568STaniya Das }, 133317269568STaniya Das }, 133417269568STaniya Das }; 133517269568STaniya Das 133617269568STaniya Das static struct clk_branch gcc_npu_gpll0_div_clk_src = { 133717269568STaniya Das .halt_check = BRANCH_HALT_DELAY, 133817269568STaniya Das .clkr = { 133917269568STaniya Das .enable_reg = 0x52000, 134017269568STaniya Das .enable_mask = BIT(26), 134117269568STaniya Das .hw.init = &(struct clk_init_data){ 134217269568STaniya Das .name = "gcc_npu_gpll0_div_clk_src", 134317269568STaniya Das .parent_data = &(const struct clk_parent_data){ 134417269568STaniya Das .hw = &gcc_pll0_main_div_cdiv.hw, 134517269568STaniya Das }, 134617269568STaniya Das .num_parents = 1, 134717269568STaniya Das .flags = CLK_SET_RATE_PARENT, 134817269568STaniya Das .ops = &clk_branch2_ops, 134917269568STaniya Das }, 135017269568STaniya Das }, 135117269568STaniya Das }; 135217269568STaniya Das 135317269568STaniya Das static struct clk_branch gcc_pdm2_clk = { 135417269568STaniya Das .halt_reg = 0x3300c, 135517269568STaniya Das .halt_check = BRANCH_HALT, 135617269568STaniya Das .clkr = { 135717269568STaniya Das .enable_reg = 0x3300c, 135817269568STaniya Das .enable_mask = BIT(0), 135917269568STaniya Das .hw.init = &(struct clk_init_data){ 136017269568STaniya Das .name = "gcc_pdm2_clk", 136117269568STaniya Das .parent_data = &(const struct clk_parent_data){ 136217269568STaniya Das .hw = &gcc_pdm2_clk_src.clkr.hw, 136317269568STaniya Das }, 136417269568STaniya Das .num_parents = 1, 136517269568STaniya Das .flags = CLK_SET_RATE_PARENT, 136617269568STaniya Das .ops = &clk_branch2_ops, 136717269568STaniya Das }, 136817269568STaniya Das }, 136917269568STaniya Das }; 137017269568STaniya Das 137117269568STaniya Das static struct clk_branch gcc_pdm_ahb_clk = { 137217269568STaniya Das .halt_reg = 0x33004, 137317269568STaniya Das .halt_check = BRANCH_HALT, 137417269568STaniya Das .hwcg_reg = 0x33004, 137517269568STaniya Das .hwcg_bit = 1, 137617269568STaniya Das .clkr = { 137717269568STaniya Das .enable_reg = 0x33004, 137817269568STaniya Das .enable_mask = BIT(0), 137917269568STaniya Das .hw.init = &(struct clk_init_data){ 138017269568STaniya Das .name = "gcc_pdm_ahb_clk", 138117269568STaniya Das .ops = &clk_branch2_ops, 138217269568STaniya Das }, 138317269568STaniya Das }, 138417269568STaniya Das }; 138517269568STaniya Das 138617269568STaniya Das static struct clk_branch gcc_pdm_xo4_clk = { 138717269568STaniya Das .halt_reg = 0x33008, 138817269568STaniya Das .halt_check = BRANCH_HALT, 138917269568STaniya Das .clkr = { 139017269568STaniya Das .enable_reg = 0x33008, 139117269568STaniya Das .enable_mask = BIT(0), 139217269568STaniya Das .hw.init = &(struct clk_init_data){ 139317269568STaniya Das .name = "gcc_pdm_xo4_clk", 139417269568STaniya Das .ops = &clk_branch2_ops, 139517269568STaniya Das }, 139617269568STaniya Das }, 139717269568STaniya Das }; 139817269568STaniya Das 139917269568STaniya Das static struct clk_branch gcc_prng_ahb_clk = { 140017269568STaniya Das .halt_reg = 0x34004, 140117269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 140217269568STaniya Das .hwcg_reg = 0x34004, 140317269568STaniya Das .hwcg_bit = 1, 140417269568STaniya Das .clkr = { 140517269568STaniya Das .enable_reg = 0x52000, 140617269568STaniya Das .enable_mask = BIT(13), 140717269568STaniya Das .hw.init = &(struct clk_init_data){ 140817269568STaniya Das .name = "gcc_prng_ahb_clk", 140917269568STaniya Das .ops = &clk_branch2_ops, 141017269568STaniya Das }, 141117269568STaniya Das }, 141217269568STaniya Das }; 141317269568STaniya Das 141417269568STaniya Das static struct clk_branch gcc_qspi_cnoc_periph_ahb_clk = { 141517269568STaniya Das .halt_reg = 0x4b004, 141617269568STaniya Das .halt_check = BRANCH_HALT, 141717269568STaniya Das .hwcg_reg = 0x4b004, 141817269568STaniya Das .hwcg_bit = 1, 141917269568STaniya Das .clkr = { 142017269568STaniya Das .enable_reg = 0x4b004, 142117269568STaniya Das .enable_mask = BIT(0), 142217269568STaniya Das .hw.init = &(struct clk_init_data){ 142317269568STaniya Das .name = "gcc_qspi_cnoc_periph_ahb_clk", 142417269568STaniya Das .ops = &clk_branch2_ops, 142517269568STaniya Das }, 142617269568STaniya Das }, 142717269568STaniya Das }; 142817269568STaniya Das 142917269568STaniya Das static struct clk_branch gcc_qspi_core_clk = { 143017269568STaniya Das .halt_reg = 0x4b008, 143117269568STaniya Das .halt_check = BRANCH_HALT, 143217269568STaniya Das .clkr = { 143317269568STaniya Das .enable_reg = 0x4b008, 143417269568STaniya Das .enable_mask = BIT(0), 143517269568STaniya Das .hw.init = &(struct clk_init_data){ 143617269568STaniya Das .name = "gcc_qspi_core_clk", 143717269568STaniya Das .parent_data = &(const struct clk_parent_data){ 143817269568STaniya Das .hw = &gcc_qspi_core_clk_src.clkr.hw, 143917269568STaniya Das }, 144017269568STaniya Das .num_parents = 1, 144117269568STaniya Das .flags = CLK_SET_RATE_PARENT, 144217269568STaniya Das .ops = &clk_branch2_ops, 144317269568STaniya Das }, 144417269568STaniya Das }, 144517269568STaniya Das }; 144617269568STaniya Das 144717269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_core_2x_clk = { 144817269568STaniya Das .halt_reg = 0x17014, 144917269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 145017269568STaniya Das .clkr = { 145117269568STaniya Das .enable_reg = 0x52008, 145217269568STaniya Das .enable_mask = BIT(9), 145317269568STaniya Das .hw.init = &(struct clk_init_data){ 145417269568STaniya Das .name = "gcc_qupv3_wrap0_core_2x_clk", 145517269568STaniya Das .ops = &clk_branch2_ops, 145617269568STaniya Das }, 145717269568STaniya Das }, 145817269568STaniya Das }; 145917269568STaniya Das 146017269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_core_clk = { 146117269568STaniya Das .halt_reg = 0x1700c, 146217269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 146317269568STaniya Das .clkr = { 146417269568STaniya Das .enable_reg = 0x52008, 146517269568STaniya Das .enable_mask = BIT(8), 146617269568STaniya Das .hw.init = &(struct clk_init_data){ 146717269568STaniya Das .name = "gcc_qupv3_wrap0_core_clk", 146817269568STaniya Das .ops = &clk_branch2_ops, 146917269568STaniya Das }, 147017269568STaniya Das }, 147117269568STaniya Das }; 147217269568STaniya Das 147317269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s0_clk = { 147417269568STaniya Das .halt_reg = 0x17030, 147517269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 147617269568STaniya Das .clkr = { 147717269568STaniya Das .enable_reg = 0x52008, 147817269568STaniya Das .enable_mask = BIT(10), 147917269568STaniya Das .hw.init = &(struct clk_init_data){ 148017269568STaniya Das .name = "gcc_qupv3_wrap0_s0_clk", 148117269568STaniya Das .parent_data = &(const struct clk_parent_data){ 148217269568STaniya Das .hw = &gcc_qupv3_wrap0_s0_clk_src.clkr.hw, 148317269568STaniya Das }, 148417269568STaniya Das .num_parents = 1, 148517269568STaniya Das .flags = CLK_SET_RATE_PARENT, 148617269568STaniya Das .ops = &clk_branch2_ops, 148717269568STaniya Das }, 148817269568STaniya Das }, 148917269568STaniya Das }; 149017269568STaniya Das 149117269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s1_clk = { 149217269568STaniya Das .halt_reg = 0x17160, 149317269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 149417269568STaniya Das .clkr = { 149517269568STaniya Das .enable_reg = 0x52008, 149617269568STaniya Das .enable_mask = BIT(11), 149717269568STaniya Das .hw.init = &(struct clk_init_data){ 149817269568STaniya Das .name = "gcc_qupv3_wrap0_s1_clk", 149917269568STaniya Das .parent_data = &(const struct clk_parent_data){ 150017269568STaniya Das .hw = &gcc_qupv3_wrap0_s1_clk_src.clkr.hw, 150117269568STaniya Das }, 150217269568STaniya Das .num_parents = 1, 150317269568STaniya Das .flags = CLK_SET_RATE_PARENT, 150417269568STaniya Das .ops = &clk_branch2_ops, 150517269568STaniya Das }, 150617269568STaniya Das }, 150717269568STaniya Das }; 150817269568STaniya Das 150917269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s2_clk = { 151017269568STaniya Das .halt_reg = 0x17290, 151117269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 151217269568STaniya Das .clkr = { 151317269568STaniya Das .enable_reg = 0x52008, 151417269568STaniya Das .enable_mask = BIT(12), 151517269568STaniya Das .hw.init = &(struct clk_init_data){ 151617269568STaniya Das .name = "gcc_qupv3_wrap0_s2_clk", 151717269568STaniya Das .parent_data = &(const struct clk_parent_data){ 151817269568STaniya Das .hw = &gcc_qupv3_wrap0_s2_clk_src.clkr.hw, 151917269568STaniya Das }, 152017269568STaniya Das .num_parents = 1, 152117269568STaniya Das .flags = CLK_SET_RATE_PARENT, 152217269568STaniya Das .ops = &clk_branch2_ops, 152317269568STaniya Das }, 152417269568STaniya Das }, 152517269568STaniya Das }; 152617269568STaniya Das 152717269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s3_clk = { 152817269568STaniya Das .halt_reg = 0x173c0, 152917269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 153017269568STaniya Das .clkr = { 153117269568STaniya Das .enable_reg = 0x52008, 153217269568STaniya Das .enable_mask = BIT(13), 153317269568STaniya Das .hw.init = &(struct clk_init_data){ 153417269568STaniya Das .name = "gcc_qupv3_wrap0_s3_clk", 153517269568STaniya Das .parent_data = &(const struct clk_parent_data){ 153617269568STaniya Das .hw = &gcc_qupv3_wrap0_s3_clk_src.clkr.hw, 153717269568STaniya Das }, 153817269568STaniya Das .num_parents = 1, 153917269568STaniya Das .flags = CLK_SET_RATE_PARENT, 154017269568STaniya Das .ops = &clk_branch2_ops, 154117269568STaniya Das }, 154217269568STaniya Das }, 154317269568STaniya Das }; 154417269568STaniya Das 154517269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s4_clk = { 154617269568STaniya Das .halt_reg = 0x174f0, 154717269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 154817269568STaniya Das .clkr = { 154917269568STaniya Das .enable_reg = 0x52008, 155017269568STaniya Das .enable_mask = BIT(14), 155117269568STaniya Das .hw.init = &(struct clk_init_data){ 155217269568STaniya Das .name = "gcc_qupv3_wrap0_s4_clk", 155317269568STaniya Das .parent_data = &(const struct clk_parent_data){ 155417269568STaniya Das .hw = &gcc_qupv3_wrap0_s4_clk_src.clkr.hw, 155517269568STaniya Das }, 155617269568STaniya Das .num_parents = 1, 155717269568STaniya Das .flags = CLK_SET_RATE_PARENT, 155817269568STaniya Das .ops = &clk_branch2_ops, 155917269568STaniya Das }, 156017269568STaniya Das }, 156117269568STaniya Das }; 156217269568STaniya Das 156317269568STaniya Das static struct clk_branch gcc_qupv3_wrap0_s5_clk = { 156417269568STaniya Das .halt_reg = 0x17620, 156517269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 156617269568STaniya Das .clkr = { 156717269568STaniya Das .enable_reg = 0x52008, 156817269568STaniya Das .enable_mask = BIT(15), 156917269568STaniya Das .hw.init = &(struct clk_init_data){ 157017269568STaniya Das .name = "gcc_qupv3_wrap0_s5_clk", 157117269568STaniya Das .parent_data = &(const struct clk_parent_data){ 157217269568STaniya Das .hw = &gcc_qupv3_wrap0_s5_clk_src.clkr.hw, 157317269568STaniya Das }, 157417269568STaniya Das .num_parents = 1, 157517269568STaniya Das .flags = CLK_SET_RATE_PARENT, 157617269568STaniya Das .ops = &clk_branch2_ops, 157717269568STaniya Das }, 157817269568STaniya Das }, 157917269568STaniya Das }; 158017269568STaniya Das 158117269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_2x_clk = { 158217269568STaniya Das .halt_reg = 0x18004, 158317269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 158417269568STaniya Das .clkr = { 158517269568STaniya Das .enable_reg = 0x52008, 158617269568STaniya Das .enable_mask = BIT(18), 158717269568STaniya Das .hw.init = &(struct clk_init_data){ 158817269568STaniya Das .name = "gcc_qupv3_wrap1_core_2x_clk", 158917269568STaniya Das .ops = &clk_branch2_ops, 159017269568STaniya Das }, 159117269568STaniya Das }, 159217269568STaniya Das }; 159317269568STaniya Das 159417269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_core_clk = { 159517269568STaniya Das .halt_reg = 0x18008, 159617269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 159717269568STaniya Das .clkr = { 159817269568STaniya Das .enable_reg = 0x52008, 159917269568STaniya Das .enable_mask = BIT(19), 160017269568STaniya Das .hw.init = &(struct clk_init_data){ 160117269568STaniya Das .name = "gcc_qupv3_wrap1_core_clk", 160217269568STaniya Das .ops = &clk_branch2_ops, 160317269568STaniya Das }, 160417269568STaniya Das }, 160517269568STaniya Das }; 160617269568STaniya Das 160717269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s0_clk = { 160817269568STaniya Das .halt_reg = 0x18014, 160917269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 161017269568STaniya Das .clkr = { 161117269568STaniya Das .enable_reg = 0x52008, 161217269568STaniya Das .enable_mask = BIT(22), 161317269568STaniya Das .hw.init = &(struct clk_init_data){ 161417269568STaniya Das .name = "gcc_qupv3_wrap1_s0_clk", 161517269568STaniya Das .parent_data = &(const struct clk_parent_data){ 161617269568STaniya Das .hw = &gcc_qupv3_wrap1_s0_clk_src.clkr.hw, 161717269568STaniya Das }, 161817269568STaniya Das .num_parents = 1, 161917269568STaniya Das .flags = CLK_SET_RATE_PARENT, 162017269568STaniya Das .ops = &clk_branch2_ops, 162117269568STaniya Das }, 162217269568STaniya Das }, 162317269568STaniya Das }; 162417269568STaniya Das 162517269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s1_clk = { 162617269568STaniya Das .halt_reg = 0x18144, 162717269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 162817269568STaniya Das .clkr = { 162917269568STaniya Das .enable_reg = 0x52008, 163017269568STaniya Das .enable_mask = BIT(23), 163117269568STaniya Das .hw.init = &(struct clk_init_data){ 163217269568STaniya Das .name = "gcc_qupv3_wrap1_s1_clk", 163317269568STaniya Das .parent_data = &(const struct clk_parent_data){ 163417269568STaniya Das .hw = &gcc_qupv3_wrap1_s1_clk_src.clkr.hw, 163517269568STaniya Das }, 163617269568STaniya Das .num_parents = 1, 163717269568STaniya Das .flags = CLK_SET_RATE_PARENT, 163817269568STaniya Das .ops = &clk_branch2_ops, 163917269568STaniya Das }, 164017269568STaniya Das }, 164117269568STaniya Das }; 164217269568STaniya Das 164317269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s2_clk = { 164417269568STaniya Das .halt_reg = 0x18274, 164517269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 164617269568STaniya Das .clkr = { 164717269568STaniya Das .enable_reg = 0x52008, 164817269568STaniya Das .enable_mask = BIT(24), 164917269568STaniya Das .hw.init = &(struct clk_init_data){ 165017269568STaniya Das .name = "gcc_qupv3_wrap1_s2_clk", 165117269568STaniya Das .parent_data = &(const struct clk_parent_data){ 165217269568STaniya Das .hw = &gcc_qupv3_wrap1_s2_clk_src.clkr.hw, 165317269568STaniya Das }, 165417269568STaniya Das .num_parents = 1, 165517269568STaniya Das .flags = CLK_SET_RATE_PARENT, 165617269568STaniya Das .ops = &clk_branch2_ops, 165717269568STaniya Das }, 165817269568STaniya Das }, 165917269568STaniya Das }; 166017269568STaniya Das 166117269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s3_clk = { 166217269568STaniya Das .halt_reg = 0x183a4, 166317269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 166417269568STaniya Das .clkr = { 166517269568STaniya Das .enable_reg = 0x52008, 166617269568STaniya Das .enable_mask = BIT(25), 166717269568STaniya Das .hw.init = &(struct clk_init_data){ 166817269568STaniya Das .name = "gcc_qupv3_wrap1_s3_clk", 166917269568STaniya Das .parent_data = &(const struct clk_parent_data){ 167017269568STaniya Das .hw = &gcc_qupv3_wrap1_s3_clk_src.clkr.hw, 167117269568STaniya Das }, 167217269568STaniya Das .num_parents = 1, 167317269568STaniya Das .flags = CLK_SET_RATE_PARENT, 167417269568STaniya Das .ops = &clk_branch2_ops, 167517269568STaniya Das }, 167617269568STaniya Das }, 167717269568STaniya Das }; 167817269568STaniya Das 167917269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s4_clk = { 168017269568STaniya Das .halt_reg = 0x184d4, 168117269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 168217269568STaniya Das .clkr = { 168317269568STaniya Das .enable_reg = 0x52008, 168417269568STaniya Das .enable_mask = BIT(26), 168517269568STaniya Das .hw.init = &(struct clk_init_data){ 168617269568STaniya Das .name = "gcc_qupv3_wrap1_s4_clk", 168717269568STaniya Das .parent_data = &(const struct clk_parent_data){ 168817269568STaniya Das .hw = &gcc_qupv3_wrap1_s4_clk_src.clkr.hw, 168917269568STaniya Das }, 169017269568STaniya Das .num_parents = 1, 169117269568STaniya Das .flags = CLK_SET_RATE_PARENT, 169217269568STaniya Das .ops = &clk_branch2_ops, 169317269568STaniya Das }, 169417269568STaniya Das }, 169517269568STaniya Das }; 169617269568STaniya Das 169717269568STaniya Das static struct clk_branch gcc_qupv3_wrap1_s5_clk = { 169817269568STaniya Das .halt_reg = 0x18604, 169917269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 170017269568STaniya Das .clkr = { 170117269568STaniya Das .enable_reg = 0x52008, 170217269568STaniya Das .enable_mask = BIT(27), 170317269568STaniya Das .hw.init = &(struct clk_init_data){ 170417269568STaniya Das .name = "gcc_qupv3_wrap1_s5_clk", 170517269568STaniya Das .parent_data = &(const struct clk_parent_data){ 170617269568STaniya Das .hw = &gcc_qupv3_wrap1_s5_clk_src.clkr.hw, 170717269568STaniya Das }, 170817269568STaniya Das .num_parents = 1, 170917269568STaniya Das .flags = CLK_SET_RATE_PARENT, 171017269568STaniya Das .ops = &clk_branch2_ops, 171117269568STaniya Das }, 171217269568STaniya Das }, 171317269568STaniya Das }; 171417269568STaniya Das 171517269568STaniya Das static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = { 171617269568STaniya Das .halt_reg = 0x17004, 171717269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 171817269568STaniya Das .clkr = { 171917269568STaniya Das .enable_reg = 0x52008, 172017269568STaniya Das .enable_mask = BIT(6), 172117269568STaniya Das .hw.init = &(struct clk_init_data){ 172217269568STaniya Das .name = "gcc_qupv3_wrap_0_m_ahb_clk", 172317269568STaniya Das .ops = &clk_branch2_ops, 172417269568STaniya Das }, 172517269568STaniya Das }, 172617269568STaniya Das }; 172717269568STaniya Das 172817269568STaniya Das static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = { 172917269568STaniya Das .halt_reg = 0x17008, 173017269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 173117269568STaniya Das .hwcg_reg = 0x17008, 173217269568STaniya Das .hwcg_bit = 1, 173317269568STaniya Das .clkr = { 173417269568STaniya Das .enable_reg = 0x52008, 173517269568STaniya Das .enable_mask = BIT(7), 173617269568STaniya Das .hw.init = &(struct clk_init_data){ 173717269568STaniya Das .name = "gcc_qupv3_wrap_0_s_ahb_clk", 173817269568STaniya Das .ops = &clk_branch2_ops, 173917269568STaniya Das }, 174017269568STaniya Das }, 174117269568STaniya Das }; 174217269568STaniya Das 174317269568STaniya Das static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = { 174417269568STaniya Das .halt_reg = 0x1800c, 174517269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 174617269568STaniya Das .clkr = { 174717269568STaniya Das .enable_reg = 0x52008, 174817269568STaniya Das .enable_mask = BIT(20), 174917269568STaniya Das .hw.init = &(struct clk_init_data){ 175017269568STaniya Das .name = "gcc_qupv3_wrap_1_m_ahb_clk", 175117269568STaniya Das .ops = &clk_branch2_ops, 175217269568STaniya Das }, 175317269568STaniya Das }, 175417269568STaniya Das }; 175517269568STaniya Das 175617269568STaniya Das static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = { 175717269568STaniya Das .halt_reg = 0x18010, 175817269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 175917269568STaniya Das .hwcg_reg = 0x18010, 176017269568STaniya Das .hwcg_bit = 1, 176117269568STaniya Das .clkr = { 176217269568STaniya Das .enable_reg = 0x52008, 176317269568STaniya Das .enable_mask = BIT(21), 176417269568STaniya Das .hw.init = &(struct clk_init_data){ 176517269568STaniya Das .name = "gcc_qupv3_wrap_1_s_ahb_clk", 176617269568STaniya Das .ops = &clk_branch2_ops, 176717269568STaniya Das }, 176817269568STaniya Das }, 176917269568STaniya Das }; 177017269568STaniya Das 177117269568STaniya Das static struct clk_branch gcc_sdcc1_ahb_clk = { 177217269568STaniya Das .halt_reg = 0x12008, 177317269568STaniya Das .halt_check = BRANCH_HALT, 177417269568STaniya Das .clkr = { 177517269568STaniya Das .enable_reg = 0x12008, 177617269568STaniya Das .enable_mask = BIT(0), 177717269568STaniya Das .hw.init = &(struct clk_init_data){ 177817269568STaniya Das .name = "gcc_sdcc1_ahb_clk", 177917269568STaniya Das .ops = &clk_branch2_ops, 178017269568STaniya Das }, 178117269568STaniya Das }, 178217269568STaniya Das }; 178317269568STaniya Das 178417269568STaniya Das static struct clk_branch gcc_sdcc1_apps_clk = { 178517269568STaniya Das .halt_reg = 0x1200c, 178617269568STaniya Das .halt_check = BRANCH_HALT, 178717269568STaniya Das .clkr = { 178817269568STaniya Das .enable_reg = 0x1200c, 178917269568STaniya Das .enable_mask = BIT(0), 179017269568STaniya Das .hw.init = &(struct clk_init_data){ 179117269568STaniya Das .name = "gcc_sdcc1_apps_clk", 179217269568STaniya Das .parent_data = &(const struct clk_parent_data){ 179317269568STaniya Das .hw = &gcc_sdcc1_apps_clk_src.clkr.hw, 179417269568STaniya Das }, 179517269568STaniya Das .num_parents = 1, 179617269568STaniya Das .flags = CLK_SET_RATE_PARENT, 179717269568STaniya Das .ops = &clk_branch2_ops, 179817269568STaniya Das }, 179917269568STaniya Das }, 180017269568STaniya Das }; 180117269568STaniya Das 180217269568STaniya Das static struct clk_branch gcc_sdcc1_ice_core_clk = { 180317269568STaniya Das .halt_reg = 0x12040, 180417269568STaniya Das .halt_check = BRANCH_HALT, 180517269568STaniya Das .clkr = { 180617269568STaniya Das .enable_reg = 0x12040, 180717269568STaniya Das .enable_mask = BIT(0), 180817269568STaniya Das .hw.init = &(struct clk_init_data){ 180917269568STaniya Das .name = "gcc_sdcc1_ice_core_clk", 181017269568STaniya Das .parent_data = &(const struct clk_parent_data){ 181117269568STaniya Das .hw = &gcc_sdcc1_ice_core_clk_src.clkr.hw, 181217269568STaniya Das }, 181317269568STaniya Das .num_parents = 1, 181417269568STaniya Das .flags = CLK_SET_RATE_PARENT, 181517269568STaniya Das .ops = &clk_branch2_ops, 181617269568STaniya Das }, 181717269568STaniya Das }, 181817269568STaniya Das }; 181917269568STaniya Das 182017269568STaniya Das static struct clk_branch gcc_sdcc2_ahb_clk = { 182117269568STaniya Das .halt_reg = 0x14008, 182217269568STaniya Das .halt_check = BRANCH_HALT, 182317269568STaniya Das .clkr = { 182417269568STaniya Das .enable_reg = 0x14008, 182517269568STaniya Das .enable_mask = BIT(0), 182617269568STaniya Das .hw.init = &(struct clk_init_data){ 182717269568STaniya Das .name = "gcc_sdcc2_ahb_clk", 182817269568STaniya Das .ops = &clk_branch2_ops, 182917269568STaniya Das }, 183017269568STaniya Das }, 183117269568STaniya Das }; 183217269568STaniya Das 183317269568STaniya Das static struct clk_branch gcc_sdcc2_apps_clk = { 183417269568STaniya Das .halt_reg = 0x14004, 183517269568STaniya Das .halt_check = BRANCH_HALT, 183617269568STaniya Das .clkr = { 183717269568STaniya Das .enable_reg = 0x14004, 183817269568STaniya Das .enable_mask = BIT(0), 183917269568STaniya Das .hw.init = &(struct clk_init_data){ 184017269568STaniya Das .name = "gcc_sdcc2_apps_clk", 184117269568STaniya Das .parent_data = &(const struct clk_parent_data){ 184217269568STaniya Das .hw = &gcc_sdcc2_apps_clk_src.clkr.hw, 184317269568STaniya Das }, 184417269568STaniya Das .num_parents = 1, 184517269568STaniya Das .flags = CLK_SET_RATE_PARENT, 184617269568STaniya Das .ops = &clk_branch2_ops, 184717269568STaniya Das }, 184817269568STaniya Das }, 184917269568STaniya Das }; 185017269568STaniya Das 185117269568STaniya Das /* For CPUSS functionality the SYS NOC clock needs to be left enabled */ 185217269568STaniya Das static struct clk_branch gcc_sys_noc_cpuss_ahb_clk = { 185317269568STaniya Das .halt_reg = 0x4144, 185417269568STaniya Das .halt_check = BRANCH_HALT_VOTED, 185517269568STaniya Das .clkr = { 185617269568STaniya Das .enable_reg = 0x52000, 185717269568STaniya Das .enable_mask = BIT(0), 185817269568STaniya Das .hw.init = &(struct clk_init_data){ 185917269568STaniya Das .name = "gcc_sys_noc_cpuss_ahb_clk", 186017269568STaniya Das .parent_data = &(const struct clk_parent_data){ 186117269568STaniya Das .hw = &gcc_cpuss_ahb_clk_src.clkr.hw, 186217269568STaniya Das }, 186317269568STaniya Das .num_parents = 1, 186417269568STaniya Das .flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT, 186517269568STaniya Das .ops = &clk_branch2_ops, 186617269568STaniya Das }, 186717269568STaniya Das }, 186817269568STaniya Das }; 186917269568STaniya Das 187017269568STaniya Das static struct clk_branch gcc_ufs_mem_clkref_clk = { 187117269568STaniya Das .halt_reg = 0x8c000, 187217269568STaniya Das .halt_check = BRANCH_HALT, 187317269568STaniya Das .clkr = { 187417269568STaniya Das .enable_reg = 0x8c000, 187517269568STaniya Das .enable_mask = BIT(0), 187617269568STaniya Das .hw.init = &(struct clk_init_data){ 187717269568STaniya Das .name = "gcc_ufs_mem_clkref_clk", 187817269568STaniya Das .ops = &clk_branch2_ops, 187917269568STaniya Das }, 188017269568STaniya Das }, 188117269568STaniya Das }; 188217269568STaniya Das 188317269568STaniya Das static struct clk_branch gcc_ufs_phy_ahb_clk = { 188417269568STaniya Das .halt_reg = 0x77014, 188517269568STaniya Das .halt_check = BRANCH_HALT, 188617269568STaniya Das .hwcg_reg = 0x77014, 188717269568STaniya Das .hwcg_bit = 1, 188817269568STaniya Das .clkr = { 188917269568STaniya Das .enable_reg = 0x77014, 189017269568STaniya Das .enable_mask = BIT(0), 189117269568STaniya Das .hw.init = &(struct clk_init_data){ 189217269568STaniya Das .name = "gcc_ufs_phy_ahb_clk", 189317269568STaniya Das .ops = &clk_branch2_ops, 189417269568STaniya Das }, 189517269568STaniya Das }, 189617269568STaniya Das }; 189717269568STaniya Das 189817269568STaniya Das static struct clk_branch gcc_ufs_phy_axi_clk = { 189917269568STaniya Das .halt_reg = 0x77038, 190017269568STaniya Das .halt_check = BRANCH_HALT, 190117269568STaniya Das .hwcg_reg = 0x77038, 190217269568STaniya Das .hwcg_bit = 1, 190317269568STaniya Das .clkr = { 190417269568STaniya Das .enable_reg = 0x77038, 190517269568STaniya Das .enable_mask = BIT(0), 190617269568STaniya Das .hw.init = &(struct clk_init_data){ 190717269568STaniya Das .name = "gcc_ufs_phy_axi_clk", 190817269568STaniya Das .parent_data = &(const struct clk_parent_data){ 190917269568STaniya Das .hw = &gcc_ufs_phy_axi_clk_src.clkr.hw, 191017269568STaniya Das }, 191117269568STaniya Das .num_parents = 1, 191217269568STaniya Das .flags = CLK_SET_RATE_PARENT, 191317269568STaniya Das .ops = &clk_branch2_ops, 191417269568STaniya Das }, 191517269568STaniya Das }, 191617269568STaniya Das }; 191717269568STaniya Das 191817269568STaniya Das static struct clk_branch gcc_ufs_phy_ice_core_clk = { 191917269568STaniya Das .halt_reg = 0x77090, 192017269568STaniya Das .halt_check = BRANCH_HALT, 192117269568STaniya Das .hwcg_reg = 0x77090, 192217269568STaniya Das .hwcg_bit = 1, 192317269568STaniya Das .clkr = { 192417269568STaniya Das .enable_reg = 0x77090, 192517269568STaniya Das .enable_mask = BIT(0), 192617269568STaniya Das .hw.init = &(struct clk_init_data){ 192717269568STaniya Das .name = "gcc_ufs_phy_ice_core_clk", 192817269568STaniya Das .parent_data = &(const struct clk_parent_data){ 192917269568STaniya Das .hw = &gcc_ufs_phy_ice_core_clk_src.clkr.hw, 193017269568STaniya Das }, 193117269568STaniya Das .num_parents = 1, 193217269568STaniya Das .flags = CLK_SET_RATE_PARENT, 193317269568STaniya Das .ops = &clk_branch2_ops, 193417269568STaniya Das }, 193517269568STaniya Das }, 193617269568STaniya Das }; 193717269568STaniya Das 193817269568STaniya Das static struct clk_branch gcc_ufs_phy_phy_aux_clk = { 193917269568STaniya Das .halt_reg = 0x77094, 194017269568STaniya Das .halt_check = BRANCH_HALT, 194117269568STaniya Das .hwcg_reg = 0x77094, 194217269568STaniya Das .hwcg_bit = 1, 194317269568STaniya Das .clkr = { 194417269568STaniya Das .enable_reg = 0x77094, 194517269568STaniya Das .enable_mask = BIT(0), 194617269568STaniya Das .hw.init = &(struct clk_init_data){ 194717269568STaniya Das .name = "gcc_ufs_phy_phy_aux_clk", 194817269568STaniya Das .parent_data = &(const struct clk_parent_data){ 194917269568STaniya Das .hw = &gcc_ufs_phy_phy_aux_clk_src.clkr.hw, 195017269568STaniya Das }, 195117269568STaniya Das .num_parents = 1, 195217269568STaniya Das .flags = CLK_SET_RATE_PARENT, 195317269568STaniya Das .ops = &clk_branch2_ops, 195417269568STaniya Das }, 195517269568STaniya Das }, 195617269568STaniya Das }; 195717269568STaniya Das 195817269568STaniya Das static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = { 195917269568STaniya Das .halt_reg = 0x7701c, 196017269568STaniya Das .halt_check = BRANCH_HALT_SKIP, 196117269568STaniya Das .clkr = { 196217269568STaniya Das .enable_reg = 0x7701c, 196317269568STaniya Das .enable_mask = BIT(0), 196417269568STaniya Das .hw.init = &(struct clk_init_data){ 196517269568STaniya Das .name = "gcc_ufs_phy_rx_symbol_0_clk", 196617269568STaniya Das .ops = &clk_branch2_ops, 196717269568STaniya Das }, 196817269568STaniya Das }, 196917269568STaniya Das }; 197017269568STaniya Das 197117269568STaniya Das static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = { 197217269568STaniya Das .halt_reg = 0x77018, 197317269568STaniya Das .halt_check = BRANCH_HALT_SKIP, 197417269568STaniya Das .clkr = { 197517269568STaniya Das .enable_reg = 0x77018, 197617269568STaniya Das .enable_mask = BIT(0), 197717269568STaniya Das .hw.init = &(struct clk_init_data){ 197817269568STaniya Das .name = "gcc_ufs_phy_tx_symbol_0_clk", 197917269568STaniya Das .ops = &clk_branch2_ops, 198017269568STaniya Das }, 198117269568STaniya Das }, 198217269568STaniya Das }; 198317269568STaniya Das 198417269568STaniya Das static struct clk_branch gcc_ufs_phy_unipro_core_clk = { 198517269568STaniya Das .halt_reg = 0x7708c, 198617269568STaniya Das .halt_check = BRANCH_HALT, 198717269568STaniya Das .hwcg_reg = 0x7708c, 198817269568STaniya Das .hwcg_bit = 1, 198917269568STaniya Das .clkr = { 199017269568STaniya Das .enable_reg = 0x7708c, 199117269568STaniya Das .enable_mask = BIT(0), 199217269568STaniya Das .hw.init = &(struct clk_init_data){ 199317269568STaniya Das .name = "gcc_ufs_phy_unipro_core_clk", 199417269568STaniya Das .parent_data = &(const struct clk_parent_data){ 199517269568STaniya Das .hw = &gcc_ufs_phy_unipro_core_clk_src.clkr.hw, 199617269568STaniya Das }, 199717269568STaniya Das .num_parents = 1, 199817269568STaniya Das .flags = CLK_SET_RATE_PARENT, 199917269568STaniya Das .ops = &clk_branch2_ops, 200017269568STaniya Das }, 200117269568STaniya Das }, 200217269568STaniya Das }; 200317269568STaniya Das 200417269568STaniya Das static struct clk_branch gcc_usb30_prim_master_clk = { 200517269568STaniya Das .halt_reg = 0xf010, 200617269568STaniya Das .halt_check = BRANCH_HALT, 200717269568STaniya Das .clkr = { 200817269568STaniya Das .enable_reg = 0xf010, 200917269568STaniya Das .enable_mask = BIT(0), 201017269568STaniya Das .hw.init = &(struct clk_init_data){ 201117269568STaniya Das .name = "gcc_usb30_prim_master_clk", 201217269568STaniya Das .parent_data = &(const struct clk_parent_data){ 201317269568STaniya Das .hw = &gcc_usb30_prim_master_clk_src.clkr.hw, 201417269568STaniya Das }, 201517269568STaniya Das .num_parents = 1, 201617269568STaniya Das .flags = CLK_SET_RATE_PARENT, 201717269568STaniya Das .ops = &clk_branch2_ops, 201817269568STaniya Das }, 201917269568STaniya Das }, 202017269568STaniya Das }; 202117269568STaniya Das 202217269568STaniya Das static struct clk_branch gcc_usb30_prim_mock_utmi_clk = { 202317269568STaniya Das .halt_reg = 0xf018, 202417269568STaniya Das .halt_check = BRANCH_HALT, 202517269568STaniya Das .clkr = { 202617269568STaniya Das .enable_reg = 0xf018, 202717269568STaniya Das .enable_mask = BIT(0), 202817269568STaniya Das .hw.init = &(struct clk_init_data){ 202917269568STaniya Das .name = "gcc_usb30_prim_mock_utmi_clk", 203017269568STaniya Das .parent_data = &(const struct clk_parent_data){ 203117269568STaniya Das .hw = 203217269568STaniya Das &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw, 203317269568STaniya Das }, 203417269568STaniya Das .num_parents = 1, 203517269568STaniya Das .flags = CLK_SET_RATE_PARENT, 203617269568STaniya Das .ops = &clk_branch2_ops, 203717269568STaniya Das }, 203817269568STaniya Das }, 203917269568STaniya Das }; 204017269568STaniya Das 204117269568STaniya Das static struct clk_branch gcc_usb30_prim_sleep_clk = { 204217269568STaniya Das .halt_reg = 0xf014, 204317269568STaniya Das .halt_check = BRANCH_HALT, 204417269568STaniya Das .clkr = { 204517269568STaniya Das .enable_reg = 0xf014, 204617269568STaniya Das .enable_mask = BIT(0), 204717269568STaniya Das .hw.init = &(struct clk_init_data){ 204817269568STaniya Das .name = "gcc_usb30_prim_sleep_clk", 204917269568STaniya Das .ops = &clk_branch2_ops, 205017269568STaniya Das }, 205117269568STaniya Das }, 205217269568STaniya Das }; 205317269568STaniya Das 205417269568STaniya Das static struct clk_branch gcc_usb3_prim_clkref_clk = { 205517269568STaniya Das .halt_reg = 0x8c010, 205617269568STaniya Das .halt_check = BRANCH_HALT, 205717269568STaniya Das .clkr = { 205817269568STaniya Das .enable_reg = 0x8c010, 205917269568STaniya Das .enable_mask = BIT(0), 206017269568STaniya Das .hw.init = &(struct clk_init_data){ 206117269568STaniya Das .name = "gcc_usb3_prim_clkref_clk", 206217269568STaniya Das .ops = &clk_branch2_ops, 206317269568STaniya Das }, 206417269568STaniya Das }, 206517269568STaniya Das }; 206617269568STaniya Das 206717269568STaniya Das static struct clk_branch gcc_usb3_prim_phy_aux_clk = { 206817269568STaniya Das .halt_reg = 0xf050, 206917269568STaniya Das .halt_check = BRANCH_HALT, 207017269568STaniya Das .clkr = { 207117269568STaniya Das .enable_reg = 0xf050, 207217269568STaniya Das .enable_mask = BIT(0), 207317269568STaniya Das .hw.init = &(struct clk_init_data){ 207417269568STaniya Das .name = "gcc_usb3_prim_phy_aux_clk", 207517269568STaniya Das .parent_data = &(const struct clk_parent_data){ 207617269568STaniya Das .hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 207717269568STaniya Das }, 207817269568STaniya Das .num_parents = 1, 207917269568STaniya Das .flags = CLK_SET_RATE_PARENT, 208017269568STaniya Das .ops = &clk_branch2_ops, 208117269568STaniya Das }, 208217269568STaniya Das }, 208317269568STaniya Das }; 208417269568STaniya Das 208517269568STaniya Das static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = { 208617269568STaniya Das .halt_reg = 0xf054, 208717269568STaniya Das .halt_check = BRANCH_HALT, 208817269568STaniya Das .clkr = { 208917269568STaniya Das .enable_reg = 0xf054, 209017269568STaniya Das .enable_mask = BIT(0), 209117269568STaniya Das .hw.init = &(struct clk_init_data){ 209217269568STaniya Das .name = "gcc_usb3_prim_phy_com_aux_clk", 209317269568STaniya Das .parent_data = &(const struct clk_parent_data){ 209417269568STaniya Das .hw = &gcc_usb3_prim_phy_aux_clk_src.clkr.hw, 209517269568STaniya Das }, 209617269568STaniya Das .num_parents = 1, 209717269568STaniya Das .flags = CLK_SET_RATE_PARENT, 209817269568STaniya Das .ops = &clk_branch2_ops, 209917269568STaniya Das }, 210017269568STaniya Das }, 210117269568STaniya Das }; 210217269568STaniya Das 210317269568STaniya Das static struct clk_branch gcc_usb3_prim_phy_pipe_clk = { 210417269568STaniya Das .halt_reg = 0xf058, 210517269568STaniya Das .halt_check = BRANCH_HALT_SKIP, 210617269568STaniya Das .clkr = { 210717269568STaniya Das .enable_reg = 0xf058, 210817269568STaniya Das .enable_mask = BIT(0), 210917269568STaniya Das .hw.init = &(struct clk_init_data){ 211017269568STaniya Das .name = "gcc_usb3_prim_phy_pipe_clk", 211117269568STaniya Das .ops = &clk_branch2_ops, 211217269568STaniya Das }, 211317269568STaniya Das }, 211417269568STaniya Das }; 211517269568STaniya Das 211617269568STaniya Das static struct clk_branch gcc_usb_phy_cfg_ahb2phy_clk = { 211717269568STaniya Das .halt_reg = 0x6a004, 211817269568STaniya Das .halt_check = BRANCH_HALT, 211917269568STaniya Das .hwcg_reg = 0x6a004, 212017269568STaniya Das .hwcg_bit = 1, 212117269568STaniya Das .clkr = { 212217269568STaniya Das .enable_reg = 0x6a004, 212317269568STaniya Das .enable_mask = BIT(0), 212417269568STaniya Das .hw.init = &(struct clk_init_data){ 212517269568STaniya Das .name = "gcc_usb_phy_cfg_ahb2phy_clk", 212617269568STaniya Das .ops = &clk_branch2_ops, 212717269568STaniya Das }, 212817269568STaniya Das }, 212917269568STaniya Das }; 213017269568STaniya Das 213117269568STaniya Das static struct clk_branch gcc_video_axi_clk = { 213217269568STaniya Das .halt_reg = 0xb01c, 213317269568STaniya Das .halt_check = BRANCH_HALT, 213417269568STaniya Das .clkr = { 213517269568STaniya Das .enable_reg = 0xb01c, 213617269568STaniya Das .enable_mask = BIT(0), 213717269568STaniya Das .hw.init = &(struct clk_init_data){ 213817269568STaniya Das .name = "gcc_video_axi_clk", 213917269568STaniya Das .ops = &clk_branch2_ops, 214017269568STaniya Das }, 214117269568STaniya Das }, 214217269568STaniya Das }; 214317269568STaniya Das 214417269568STaniya Das static struct clk_branch gcc_video_gpll0_div_clk_src = { 214517269568STaniya Das .halt_check = BRANCH_HALT_DELAY, 214617269568STaniya Das .clkr = { 214717269568STaniya Das .enable_reg = 0x52000, 214817269568STaniya Das .enable_mask = BIT(20), 214917269568STaniya Das .hw.init = &(struct clk_init_data){ 215017269568STaniya Das .name = "gcc_video_gpll0_div_clk_src", 215117269568STaniya Das .parent_data = &(const struct clk_parent_data){ 215217269568STaniya Das .hw = &gcc_pll0_main_div_cdiv.hw, 215317269568STaniya Das }, 215417269568STaniya Das .num_parents = 1, 215517269568STaniya Das .flags = CLK_SET_RATE_PARENT, 215617269568STaniya Das .ops = &clk_branch2_ops, 215717269568STaniya Das }, 215817269568STaniya Das }, 215917269568STaniya Das }; 216017269568STaniya Das 216117269568STaniya Das static struct clk_branch gcc_video_throttle_axi_clk = { 216217269568STaniya Das .halt_reg = 0xb07c, 216317269568STaniya Das .halt_check = BRANCH_HALT, 216417269568STaniya Das .hwcg_reg = 0xb07c, 216517269568STaniya Das .hwcg_bit = 1, 216617269568STaniya Das .clkr = { 216717269568STaniya Das .enable_reg = 0xb07c, 216817269568STaniya Das .enable_mask = BIT(0), 216917269568STaniya Das .hw.init = &(struct clk_init_data){ 217017269568STaniya Das .name = "gcc_video_throttle_axi_clk", 217117269568STaniya Das .ops = &clk_branch2_ops, 217217269568STaniya Das }, 217317269568STaniya Das }, 217417269568STaniya Das }; 217517269568STaniya Das 217617269568STaniya Das static struct clk_branch gcc_video_xo_clk = { 217717269568STaniya Das .halt_reg = 0xb028, 217817269568STaniya Das .halt_check = BRANCH_HALT, 217917269568STaniya Das .clkr = { 218017269568STaniya Das .enable_reg = 0xb028, 218117269568STaniya Das .enable_mask = BIT(0), 218217269568STaniya Das .hw.init = &(struct clk_init_data){ 218317269568STaniya Das .name = "gcc_video_xo_clk", 218417269568STaniya Das .ops = &clk_branch2_ops, 218517269568STaniya Das }, 218617269568STaniya Das }, 218717269568STaniya Das }; 218817269568STaniya Das 2189253a0af5STaniya Das static struct clk_branch gcc_mss_cfg_ahb_clk = { 2190253a0af5STaniya Das .halt_reg = 0x8a000, 2191253a0af5STaniya Das .halt_check = BRANCH_HALT, 2192253a0af5STaniya Das .clkr = { 2193253a0af5STaniya Das .enable_reg = 0x8a000, 2194253a0af5STaniya Das .enable_mask = BIT(0), 2195253a0af5STaniya Das .hw.init = &(struct clk_init_data){ 2196253a0af5STaniya Das .name = "gcc_mss_cfg_ahb_clk", 2197253a0af5STaniya Das .ops = &clk_branch2_ops, 2198253a0af5STaniya Das }, 2199253a0af5STaniya Das }, 2200253a0af5STaniya Das }; 2201253a0af5STaniya Das 2202253a0af5STaniya Das static struct clk_branch gcc_mss_mfab_axis_clk = { 2203253a0af5STaniya Das .halt_reg = 0x8a004, 2204253a0af5STaniya Das .halt_check = BRANCH_HALT_VOTED, 2205253a0af5STaniya Das .clkr = { 2206253a0af5STaniya Das .enable_reg = 0x8a004, 2207253a0af5STaniya Das .enable_mask = BIT(0), 2208253a0af5STaniya Das .hw.init = &(struct clk_init_data){ 2209253a0af5STaniya Das .name = "gcc_mss_mfab_axis_clk", 2210253a0af5STaniya Das .ops = &clk_branch2_ops, 2211253a0af5STaniya Das }, 2212253a0af5STaniya Das }, 2213253a0af5STaniya Das }; 2214253a0af5STaniya Das 2215253a0af5STaniya Das static struct clk_branch gcc_mss_nav_axi_clk = { 2216253a0af5STaniya Das .halt_reg = 0x8a00c, 2217253a0af5STaniya Das .halt_check = BRANCH_HALT_VOTED, 2218253a0af5STaniya Das .clkr = { 2219253a0af5STaniya Das .enable_reg = 0x8a00c, 2220253a0af5STaniya Das .enable_mask = BIT(0), 2221253a0af5STaniya Das .hw.init = &(struct clk_init_data){ 2222253a0af5STaniya Das .name = "gcc_mss_nav_axi_clk", 2223253a0af5STaniya Das .ops = &clk_branch2_ops, 2224253a0af5STaniya Das }, 2225253a0af5STaniya Das }, 2226253a0af5STaniya Das }; 2227253a0af5STaniya Das 2228253a0af5STaniya Das static struct clk_branch gcc_mss_snoc_axi_clk = { 2229253a0af5STaniya Das .halt_reg = 0x8a150, 2230253a0af5STaniya Das .halt_check = BRANCH_HALT, 2231253a0af5STaniya Das .clkr = { 2232253a0af5STaniya Das .enable_reg = 0x8a150, 2233253a0af5STaniya Das .enable_mask = BIT(0), 2234253a0af5STaniya Das .hw.init = &(struct clk_init_data){ 2235253a0af5STaniya Das .name = "gcc_mss_snoc_axi_clk", 2236253a0af5STaniya Das .ops = &clk_branch2_ops, 2237253a0af5STaniya Das }, 2238253a0af5STaniya Das }, 2239253a0af5STaniya Das }; 2240253a0af5STaniya Das 2241253a0af5STaniya Das static struct clk_branch gcc_mss_q6_memnoc_axi_clk = { 2242253a0af5STaniya Das .halt_reg = 0x8a154, 2243253a0af5STaniya Das .halt_check = BRANCH_HALT, 2244253a0af5STaniya Das .clkr = { 2245253a0af5STaniya Das .enable_reg = 0x8a154, 2246253a0af5STaniya Das .enable_mask = BIT(0), 2247253a0af5STaniya Das .hw.init = &(struct clk_init_data){ 2248253a0af5STaniya Das .name = "gcc_mss_q6_memnoc_axi_clk", 2249253a0af5STaniya Das .ops = &clk_branch2_ops, 2250253a0af5STaniya Das }, 2251253a0af5STaniya Das }, 2252253a0af5STaniya Das }; 2253253a0af5STaniya Das 225447110b6aSTaniya Das static struct clk_branch gcc_lpass_cfg_noc_sway_clk = { 225547110b6aSTaniya Das .halt_reg = 0x47018, 225647110b6aSTaniya Das .halt_check = BRANCH_HALT_DELAY, 225747110b6aSTaniya Das .clkr = { 225847110b6aSTaniya Das .enable_reg = 0x47018, 225947110b6aSTaniya Das .enable_mask = BIT(0), 226047110b6aSTaniya Das .hw.init = &(struct clk_init_data){ 226147110b6aSTaniya Das .name = "gcc_lpass_cfg_noc_sway_clk", 226247110b6aSTaniya Das .ops = &clk_branch2_ops, 226347110b6aSTaniya Das }, 226447110b6aSTaniya Das }, 226547110b6aSTaniya Das }; 226647110b6aSTaniya Das 226717269568STaniya Das static struct gdsc ufs_phy_gdsc = { 226817269568STaniya Das .gdscr = 0x77004, 226917269568STaniya Das .pd = { 227017269568STaniya Das .name = "ufs_phy_gdsc", 227117269568STaniya Das }, 227217269568STaniya Das .pwrsts = PWRSTS_OFF_ON, 227317269568STaniya Das }; 227417269568STaniya Das 227517269568STaniya Das static struct gdsc usb30_prim_gdsc = { 227617269568STaniya Das .gdscr = 0x0f004, 227717269568STaniya Das .pd = { 227817269568STaniya Das .name = "usb30_prim_gdsc", 227917269568STaniya Das }, 228017269568STaniya Das .pwrsts = PWRSTS_OFF_ON, 228117269568STaniya Das }; 228217269568STaniya Das 228317269568STaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = { 228417269568STaniya Das .gdscr = 0x7d040, 228517269568STaniya Das .pd = { 228617269568STaniya Das .name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc", 228717269568STaniya Das }, 22888d20c39fSMatthias Kaehlcke .pwrsts = PWRSTS_OFF_ON, 22898d20c39fSMatthias Kaehlcke .flags = VOTABLE, 229017269568STaniya Das }; 229117269568STaniya Das 229217269568STaniya Das static struct gdsc hlos1_vote_mmnoc_mmu_tbu_sf_gdsc = { 229317269568STaniya Das .gdscr = 0x7d044, 229417269568STaniya Das .pd = { 229517269568STaniya Das .name = "hlos1_vote_mmnoc_mmu_tbu_sf_gdsc", 229617269568STaniya Das }, 22978d20c39fSMatthias Kaehlcke .pwrsts = PWRSTS_OFF_ON, 22988d20c39fSMatthias Kaehlcke .flags = VOTABLE, 229917269568STaniya Das }; 230017269568STaniya Das 230117269568STaniya Das static struct gdsc *gcc_sc7180_gdscs[] = { 230217269568STaniya Das [UFS_PHY_GDSC] = &ufs_phy_gdsc, 230317269568STaniya Das [USB30_PRIM_GDSC] = &usb30_prim_gdsc, 230417269568STaniya Das [HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC] = 230517269568STaniya Das &hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc, 230617269568STaniya Das [HLOS1_VOTE_MMNOC_MMU_TBU_SF_GDSC] = 230717269568STaniya Das &hlos1_vote_mmnoc_mmu_tbu_sf_gdsc, 230817269568STaniya Das }; 230917269568STaniya Das 231017269568STaniya Das 231117269568STaniya Das static struct clk_hw *gcc_sc7180_hws[] = { 231217269568STaniya Das [GCC_GPLL0_MAIN_DIV_CDIV] = &gcc_pll0_main_div_cdiv.hw, 231317269568STaniya Das }; 231417269568STaniya Das 231517269568STaniya Das static struct clk_regmap *gcc_sc7180_clocks[] = { 231617269568STaniya Das [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr, 231717269568STaniya Das [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr, 231817269568STaniya Das [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr, 231917269568STaniya Das [GCC_CAMERA_AHB_CLK] = &gcc_camera_ahb_clk.clkr, 232017269568STaniya Das [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr, 232117269568STaniya Das [GCC_CAMERA_THROTTLE_HF_AXI_CLK] = &gcc_camera_throttle_hf_axi_clk.clkr, 232217269568STaniya Das [GCC_CAMERA_XO_CLK] = &gcc_camera_xo_clk.clkr, 232317269568STaniya Das [GCC_CE1_AHB_CLK] = &gcc_ce1_ahb_clk.clkr, 232417269568STaniya Das [GCC_CE1_AXI_CLK] = &gcc_ce1_axi_clk.clkr, 232517269568STaniya Das [GCC_CE1_CLK] = &gcc_ce1_clk.clkr, 232617269568STaniya Das [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr, 232717269568STaniya Das [GCC_CPUSS_AHB_CLK] = &gcc_cpuss_ahb_clk.clkr, 232817269568STaniya Das [GCC_CPUSS_AHB_CLK_SRC] = &gcc_cpuss_ahb_clk_src.clkr, 232917269568STaniya Das [GCC_CPUSS_RBCPR_CLK] = &gcc_cpuss_rbcpr_clk.clkr, 233017269568STaniya Das [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr, 233117269568STaniya Das [GCC_DISP_GPLL0_CLK_SRC] = &gcc_disp_gpll0_clk_src.clkr, 233217269568STaniya Das [GCC_DISP_GPLL0_DIV_CLK_SRC] = &gcc_disp_gpll0_div_clk_src.clkr, 233317269568STaniya Das [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr, 233417269568STaniya Das [GCC_DISP_THROTTLE_HF_AXI_CLK] = &gcc_disp_throttle_hf_axi_clk.clkr, 233517269568STaniya Das [GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr, 233617269568STaniya Das [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, 233717269568STaniya Das [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr, 233817269568STaniya Das [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, 233917269568STaniya Das [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr, 234017269568STaniya Das [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, 234117269568STaniya Das [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr, 234217269568STaniya Das [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr, 234317269568STaniya Das [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr, 234417269568STaniya Das [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr, 234517269568STaniya Das [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr, 234617269568STaniya Das [GCC_NPU_AXI_CLK] = &gcc_npu_axi_clk.clkr, 234717269568STaniya Das [GCC_NPU_BWMON_AXI_CLK] = &gcc_npu_bwmon_axi_clk.clkr, 234817269568STaniya Das [GCC_NPU_BWMON_DMA_CFG_AHB_CLK] = &gcc_npu_bwmon_dma_cfg_ahb_clk.clkr, 234917269568STaniya Das [GCC_NPU_BWMON_DSP_CFG_AHB_CLK] = &gcc_npu_bwmon_dsp_cfg_ahb_clk.clkr, 235017269568STaniya Das [GCC_NPU_CFG_AHB_CLK] = &gcc_npu_cfg_ahb_clk.clkr, 235117269568STaniya Das [GCC_NPU_DMA_CLK] = &gcc_npu_dma_clk.clkr, 235217269568STaniya Das [GCC_NPU_GPLL0_CLK_SRC] = &gcc_npu_gpll0_clk_src.clkr, 235317269568STaniya Das [GCC_NPU_GPLL0_DIV_CLK_SRC] = &gcc_npu_gpll0_div_clk_src.clkr, 235417269568STaniya Das [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr, 235517269568STaniya Das [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr, 235617269568STaniya Das [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr, 235717269568STaniya Das [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr, 235817269568STaniya Das [GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr, 235917269568STaniya Das [GCC_QSPI_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_cnoc_periph_ahb_clk.clkr, 236017269568STaniya Das [GCC_QSPI_CORE_CLK] = &gcc_qspi_core_clk.clkr, 236117269568STaniya Das [GCC_QSPI_CORE_CLK_SRC] = &gcc_qspi_core_clk_src.clkr, 236217269568STaniya Das [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr, 236317269568STaniya Das [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr, 236417269568STaniya Das [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr, 236517269568STaniya Das [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr, 236617269568STaniya Das [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr, 236717269568STaniya Das [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr, 236817269568STaniya Das [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr, 236917269568STaniya Das [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr, 237017269568STaniya Das [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr, 237117269568STaniya Das [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr, 237217269568STaniya Das [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr, 237317269568STaniya Das [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr, 237417269568STaniya Das [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr, 237517269568STaniya Das [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr, 237617269568STaniya Das [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr, 237717269568STaniya Das [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr, 237817269568STaniya Das [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr, 237917269568STaniya Das [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr, 238017269568STaniya Das [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr, 238117269568STaniya Das [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr, 238217269568STaniya Das [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr, 238317269568STaniya Das [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr, 238417269568STaniya Das [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr, 238517269568STaniya Das [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr, 238617269568STaniya Das [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr, 238717269568STaniya Das [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr, 238817269568STaniya Das [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr, 238917269568STaniya Das [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr, 239017269568STaniya Das [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr, 239117269568STaniya Das [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr, 239217269568STaniya Das [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr, 239317269568STaniya Das [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr, 239417269568STaniya Das [GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr, 239517269568STaniya Das [GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr, 239617269568STaniya Das [GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr, 239717269568STaniya Das [GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr, 239817269568STaniya Das [GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr, 239917269568STaniya Das [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr, 240017269568STaniya Das [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr, 240117269568STaniya Das [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr, 240217269568STaniya Das [GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr, 240317269568STaniya Das [GCC_UFS_MEM_CLKREF_CLK] = &gcc_ufs_mem_clkref_clk.clkr, 240417269568STaniya Das [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr, 240517269568STaniya Das [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr, 240617269568STaniya Das [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr, 240717269568STaniya Das [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr, 240817269568STaniya Das [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr, 240917269568STaniya Das [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr, 241017269568STaniya Das [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr, 241117269568STaniya Das [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr, 241217269568STaniya Das [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr, 241317269568STaniya Das [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr, 241417269568STaniya Das [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = 241517269568STaniya Das &gcc_ufs_phy_unipro_core_clk_src.clkr, 241617269568STaniya Das [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr, 241717269568STaniya Das [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr, 241817269568STaniya Das [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr, 241917269568STaniya Das [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = 242017269568STaniya Das &gcc_usb30_prim_mock_utmi_clk_src.clkr, 242117269568STaniya Das [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr, 242217269568STaniya Das [GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr, 242317269568STaniya Das [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr, 242417269568STaniya Das [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr, 242517269568STaniya Das [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr, 242617269568STaniya Das [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr, 242717269568STaniya Das [GCC_USB_PHY_CFG_AHB2PHY_CLK] = &gcc_usb_phy_cfg_ahb2phy_clk.clkr, 242817269568STaniya Das [GCC_VIDEO_AXI_CLK] = &gcc_video_axi_clk.clkr, 242917269568STaniya Das [GCC_VIDEO_GPLL0_DIV_CLK_SRC] = &gcc_video_gpll0_div_clk_src.clkr, 243017269568STaniya Das [GCC_VIDEO_THROTTLE_AXI_CLK] = &gcc_video_throttle_axi_clk.clkr, 243117269568STaniya Das [GCC_VIDEO_XO_CLK] = &gcc_video_xo_clk.clkr, 243217269568STaniya Das [GPLL0] = &gpll0.clkr, 243317269568STaniya Das [GPLL0_OUT_EVEN] = &gpll0_out_even.clkr, 243417269568STaniya Das [GPLL6] = &gpll6.clkr, 243517269568STaniya Das [GPLL7] = &gpll7.clkr, 243617269568STaniya Das [GPLL4] = &gpll4.clkr, 243717269568STaniya Das [GPLL1] = &gpll1.clkr, 2438253a0af5STaniya Das [GCC_MSS_CFG_AHB_CLK] = &gcc_mss_cfg_ahb_clk.clkr, 2439253a0af5STaniya Das [GCC_MSS_MFAB_AXIS_CLK] = &gcc_mss_mfab_axis_clk.clkr, 2440253a0af5STaniya Das [GCC_MSS_NAV_AXI_CLK] = &gcc_mss_nav_axi_clk.clkr, 2441253a0af5STaniya Das [GCC_MSS_Q6_MEMNOC_AXI_CLK] = &gcc_mss_q6_memnoc_axi_clk.clkr, 2442253a0af5STaniya Das [GCC_MSS_SNOC_AXI_CLK] = &gcc_mss_snoc_axi_clk.clkr, 2443bd4bb225STaniya Das [GCC_SEC_CTRL_CLK_SRC] = &gcc_sec_ctrl_clk_src.clkr, 244447110b6aSTaniya Das [GCC_LPASS_CFG_NOC_SWAY_CLK] = &gcc_lpass_cfg_noc_sway_clk.clkr, 244517269568STaniya Das }; 244617269568STaniya Das 244717269568STaniya Das static const struct qcom_reset_map gcc_sc7180_resets[] = { 244817269568STaniya Das [GCC_QUSB2PHY_PRIM_BCR] = { 0x26000 }, 244917269568STaniya Das [GCC_QUSB2PHY_SEC_BCR] = { 0x26004 }, 245017269568STaniya Das [GCC_UFS_PHY_BCR] = { 0x77000 }, 245117269568STaniya Das [GCC_USB30_PRIM_BCR] = { 0xf000 }, 245217269568STaniya Das [GCC_USB3_PHY_PRIM_BCR] = { 0x50000 }, 245317269568STaniya Das [GCC_USB3PHY_PHY_PRIM_BCR] = { 0x50004 }, 245417269568STaniya Das [GCC_USB3_PHY_SEC_BCR] = { 0x5000c }, 245517269568STaniya Das [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 }, 245617269568STaniya Das [GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 }, 245717269568STaniya Das [GCC_USB3_DP_PHY_SEC_BCR] = { 0x50014 }, 245817269568STaniya Das [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 }, 245917269568STaniya Das }; 246017269568STaniya Das 246117269568STaniya Das static struct clk_rcg_dfs_data gcc_dfs_clocks[] = { 246217269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s0_clk_src), 246317269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s1_clk_src), 246417269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s2_clk_src), 246517269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s3_clk_src), 246617269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s4_clk_src), 246717269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap0_s5_clk_src), 246817269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s0_clk_src), 246917269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s1_clk_src), 247017269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s2_clk_src), 247117269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s3_clk_src), 247217269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s4_clk_src), 247317269568STaniya Das DEFINE_RCG_DFS(gcc_qupv3_wrap1_s5_clk_src), 247417269568STaniya Das }; 247517269568STaniya Das 247617269568STaniya Das static const struct regmap_config gcc_sc7180_regmap_config = { 247717269568STaniya Das .reg_bits = 32, 247817269568STaniya Das .reg_stride = 4, 247917269568STaniya Das .val_bits = 32, 248017269568STaniya Das .max_register = 0x18208c, 248117269568STaniya Das .fast_io = true, 248217269568STaniya Das }; 248317269568STaniya Das 248417269568STaniya Das static const struct qcom_cc_desc gcc_sc7180_desc = { 248517269568STaniya Das .config = &gcc_sc7180_regmap_config, 248617269568STaniya Das .clk_hws = gcc_sc7180_hws, 248717269568STaniya Das .num_clk_hws = ARRAY_SIZE(gcc_sc7180_hws), 248817269568STaniya Das .clks = gcc_sc7180_clocks, 248917269568STaniya Das .num_clks = ARRAY_SIZE(gcc_sc7180_clocks), 249017269568STaniya Das .resets = gcc_sc7180_resets, 249117269568STaniya Das .num_resets = ARRAY_SIZE(gcc_sc7180_resets), 249217269568STaniya Das .gdscs = gcc_sc7180_gdscs, 249317269568STaniya Das .num_gdscs = ARRAY_SIZE(gcc_sc7180_gdscs), 249417269568STaniya Das }; 249517269568STaniya Das 249617269568STaniya Das static const struct of_device_id gcc_sc7180_match_table[] = { 249717269568STaniya Das { .compatible = "qcom,gcc-sc7180" }, 249817269568STaniya Das { } 249917269568STaniya Das }; 250017269568STaniya Das MODULE_DEVICE_TABLE(of, gcc_sc7180_match_table); 250117269568STaniya Das 250217269568STaniya Das static int gcc_sc7180_probe(struct platform_device *pdev) 250317269568STaniya Das { 250417269568STaniya Das struct regmap *regmap; 250517269568STaniya Das int ret; 250617269568STaniya Das 250717269568STaniya Das regmap = qcom_cc_map(pdev, &gcc_sc7180_desc); 250817269568STaniya Das if (IS_ERR(regmap)) 250917269568STaniya Das return PTR_ERR(regmap); 251017269568STaniya Das 251117269568STaniya Das /* 251217269568STaniya Das * Disable the GPLL0 active input to MM blocks, NPU 251317269568STaniya Das * and GPU via MISC registers. 251417269568STaniya Das */ 251517269568STaniya Das regmap_update_bits(regmap, 0x09ffc, 0x3, 0x3); 251617269568STaniya Das regmap_update_bits(regmap, 0x4d110, 0x3, 0x3); 251717269568STaniya Das regmap_update_bits(regmap, 0x71028, 0x3, 0x3); 251817269568STaniya Das 251917269568STaniya Das /* 252017269568STaniya Das * Keep the clocks always-ON 252117269568STaniya Das * GCC_CPUSS_GNOC_CLK, GCC_VIDEO_AHB_CLK, GCC_DISP_AHB_CLK 252217269568STaniya Das * GCC_GPU_CFG_AHB_CLK 252317269568STaniya Das */ 252417269568STaniya Das regmap_update_bits(regmap, 0x48004, BIT(0), BIT(0)); 252517269568STaniya Das regmap_update_bits(regmap, 0x0b004, BIT(0), BIT(0)); 252617269568STaniya Das regmap_update_bits(regmap, 0x0b00c, BIT(0), BIT(0)); 252717269568STaniya Das regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0)); 252817269568STaniya Das 252917269568STaniya Das ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, 253017269568STaniya Das ARRAY_SIZE(gcc_dfs_clocks)); 253117269568STaniya Das if (ret) 253217269568STaniya Das return ret; 253317269568STaniya Das 253417269568STaniya Das return qcom_cc_really_probe(pdev, &gcc_sc7180_desc, regmap); 253517269568STaniya Das } 253617269568STaniya Das 253717269568STaniya Das static struct platform_driver gcc_sc7180_driver = { 253817269568STaniya Das .probe = gcc_sc7180_probe, 253917269568STaniya Das .driver = { 254017269568STaniya Das .name = "gcc-sc7180", 254117269568STaniya Das .of_match_table = gcc_sc7180_match_table, 254217269568STaniya Das }, 254317269568STaniya Das }; 254417269568STaniya Das 254517269568STaniya Das static int __init gcc_sc7180_init(void) 254617269568STaniya Das { 254717269568STaniya Das return platform_driver_register(&gcc_sc7180_driver); 254817269568STaniya Das } 254917269568STaniya Das core_initcall(gcc_sc7180_init); 255017269568STaniya Das 255117269568STaniya Das static void __exit gcc_sc7180_exit(void) 255217269568STaniya Das { 255317269568STaniya Das platform_driver_unregister(&gcc_sc7180_driver); 255417269568STaniya Das } 255517269568STaniya Das module_exit(gcc_sc7180_exit); 255617269568STaniya Das 255717269568STaniya Das MODULE_DESCRIPTION("QTI GCC SC7180 Driver"); 255817269568STaniya Das MODULE_LICENSE("GPL v2"); 2559