14433594bSBjorn Andersson // SPDX-License-Identifier: GPL-2.0 24433594bSBjorn Andersson /* 34433594bSBjorn Andersson * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. 44433594bSBjorn Andersson * Copyright (c) 2020-2021, Linaro Ltd. 54433594bSBjorn Andersson */ 64433594bSBjorn Andersson 74433594bSBjorn Andersson #include <linux/bitops.h> 84433594bSBjorn Andersson #include <linux/clk-provider.h> 94433594bSBjorn Andersson #include <linux/err.h> 104433594bSBjorn Andersson #include <linux/kernel.h> 114433594bSBjorn Andersson #include <linux/module.h> 124433594bSBjorn Andersson #include <linux/of.h> 134433594bSBjorn Andersson #include <linux/platform_device.h> 144433594bSBjorn Andersson #include <linux/regmap.h> 154433594bSBjorn Andersson #include <linux/reset-controller.h> 164433594bSBjorn Andersson 174433594bSBjorn Andersson #include <dt-bindings/clock/qcom,gcc-sc8180x.h> 184433594bSBjorn Andersson 194433594bSBjorn Andersson #include "common.h" 204433594bSBjorn Andersson #include "clk-alpha-pll.h" 214433594bSBjorn Andersson #include "clk-branch.h" 224433594bSBjorn Andersson #include "clk-pll.h" 234433594bSBjorn Andersson #include "clk-rcg.h" 244433594bSBjorn Andersson #include "clk-regmap.h" 254433594bSBjorn Andersson #include "gdsc.h" 264433594bSBjorn Andersson #include "reset.h" 274433594bSBjorn Andersson 284433594bSBjorn Andersson enum { 294433594bSBjorn Andersson P_AUD_REF_CLK, 304433594bSBjorn Andersson P_BI_TCXO, 314433594bSBjorn Andersson P_GPLL0_OUT_EVEN, 324433594bSBjorn Andersson P_GPLL0_OUT_MAIN, 334433594bSBjorn Andersson P_GPLL1_OUT_MAIN, 344433594bSBjorn Andersson P_GPLL2_OUT_MAIN, 354433594bSBjorn Andersson P_GPLL4_OUT_MAIN, 364433594bSBjorn Andersson P_GPLL5_OUT_MAIN, 374433594bSBjorn Andersson P_GPLL7_OUT_MAIN, 384433594bSBjorn Andersson P_GPLL9_OUT_MAIN, 394433594bSBjorn Andersson P_SLEEP_CLK, 404433594bSBjorn Andersson }; 414433594bSBjorn Andersson 424433594bSBjorn Andersson static struct pll_vco trion_vco[] = { 434433594bSBjorn Andersson { 249600000, 2000000000, 0 }, 444433594bSBjorn Andersson }; 454433594bSBjorn Andersson 464433594bSBjorn Andersson static struct clk_alpha_pll gpll0 = { 474433594bSBjorn Andersson .offset = 0x0, 484433594bSBjorn Andersson .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION], 494433594bSBjorn Andersson .vco_table = trion_vco, 504433594bSBjorn Andersson .num_vco = ARRAY_SIZE(trion_vco), 514433594bSBjorn Andersson .clkr = { 524433594bSBjorn Andersson .enable_reg = 0x52000, 534433594bSBjorn Andersson .enable_mask = BIT(0), 544433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 554433594bSBjorn Andersson .name = "gpll0", 564433594bSBjorn Andersson .parent_data = &(const struct clk_parent_data){ 574433594bSBjorn Andersson .fw_name = "bi_tcxo", 584433594bSBjorn Andersson }, 594433594bSBjorn Andersson .num_parents = 1, 604433594bSBjorn Andersson .ops = &clk_alpha_pll_fixed_trion_ops, 614433594bSBjorn Andersson }, 624433594bSBjorn Andersson }, 634433594bSBjorn Andersson }; 644433594bSBjorn Andersson 654433594bSBjorn Andersson static const struct clk_div_table post_div_table_trion_even[] = { 664433594bSBjorn Andersson { 0x0, 1 }, 674433594bSBjorn Andersson { 0x1, 2 }, 684433594bSBjorn Andersson { 0x3, 4 }, 694433594bSBjorn Andersson { 0x7, 8 }, 704433594bSBjorn Andersson { } 714433594bSBjorn Andersson }; 724433594bSBjorn Andersson 734433594bSBjorn Andersson static struct clk_alpha_pll_postdiv gpll0_out_even = { 744433594bSBjorn Andersson .offset = 0x0, 754433594bSBjorn Andersson .post_div_shift = 8, 764433594bSBjorn Andersson .post_div_table = post_div_table_trion_even, 774433594bSBjorn Andersson .num_post_div = ARRAY_SIZE(post_div_table_trion_even), 784433594bSBjorn Andersson .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION], 794433594bSBjorn Andersson .width = 4, 804433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 814433594bSBjorn Andersson .name = "gpll0_out_even", 824433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ &gpll0.clkr.hw }, 834433594bSBjorn Andersson .num_parents = 1, 844433594bSBjorn Andersson .ops = &clk_alpha_pll_postdiv_trion_ops, 854433594bSBjorn Andersson }, 864433594bSBjorn Andersson }; 874433594bSBjorn Andersson 884433594bSBjorn Andersson static struct clk_alpha_pll gpll1 = { 894433594bSBjorn Andersson .offset = 0x1000, 904433594bSBjorn Andersson .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION], 914433594bSBjorn Andersson .vco_table = trion_vco, 924433594bSBjorn Andersson .num_vco = ARRAY_SIZE(trion_vco), 934433594bSBjorn Andersson .clkr = { 944433594bSBjorn Andersson .enable_reg = 0x52000, 954433594bSBjorn Andersson .enable_mask = BIT(1), 964433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 974433594bSBjorn Andersson .name = "gpll1", 984433594bSBjorn Andersson .parent_data = &(const struct clk_parent_data){ 994433594bSBjorn Andersson .fw_name = "bi_tcxo", 1004433594bSBjorn Andersson }, 1014433594bSBjorn Andersson .num_parents = 1, 1024433594bSBjorn Andersson .ops = &clk_alpha_pll_fixed_trion_ops, 1034433594bSBjorn Andersson }, 1044433594bSBjorn Andersson }, 1054433594bSBjorn Andersson }; 1064433594bSBjorn Andersson 1074433594bSBjorn Andersson static struct clk_alpha_pll gpll4 = { 1084433594bSBjorn Andersson .offset = 0x76000, 1094433594bSBjorn Andersson .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION], 1104433594bSBjorn Andersson .vco_table = trion_vco, 1114433594bSBjorn Andersson .num_vco = ARRAY_SIZE(trion_vco), 1124433594bSBjorn Andersson .clkr = { 1134433594bSBjorn Andersson .enable_reg = 0x52000, 1144433594bSBjorn Andersson .enable_mask = BIT(4), 1154433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 1164433594bSBjorn Andersson .name = "gpll4", 1174433594bSBjorn Andersson .parent_data = &(const struct clk_parent_data){ 1184433594bSBjorn Andersson .fw_name = "bi_tcxo", 1194433594bSBjorn Andersson }, 1204433594bSBjorn Andersson .num_parents = 1, 1214433594bSBjorn Andersson .ops = &clk_alpha_pll_fixed_trion_ops, 1224433594bSBjorn Andersson }, 1234433594bSBjorn Andersson }, 1244433594bSBjorn Andersson }; 1254433594bSBjorn Andersson 1264433594bSBjorn Andersson static struct clk_alpha_pll gpll7 = { 1274433594bSBjorn Andersson .offset = 0x1a000, 1284433594bSBjorn Andersson .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION], 1294433594bSBjorn Andersson .vco_table = trion_vco, 1304433594bSBjorn Andersson .num_vco = ARRAY_SIZE(trion_vco), 1314433594bSBjorn Andersson .clkr = { 1324433594bSBjorn Andersson .enable_reg = 0x52000, 1334433594bSBjorn Andersson .enable_mask = BIT(7), 1344433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 1354433594bSBjorn Andersson .name = "gpll7", 1364433594bSBjorn Andersson .parent_data = &(const struct clk_parent_data){ 1374433594bSBjorn Andersson .fw_name = "bi_tcxo", 1384433594bSBjorn Andersson }, 1394433594bSBjorn Andersson .num_parents = 1, 1404433594bSBjorn Andersson .ops = &clk_alpha_pll_fixed_trion_ops, 1414433594bSBjorn Andersson }, 1424433594bSBjorn Andersson }, 1434433594bSBjorn Andersson }; 1444433594bSBjorn Andersson 1454433594bSBjorn Andersson static const struct parent_map gcc_parent_map_0[] = { 1464433594bSBjorn Andersson { P_BI_TCXO, 0 }, 1474433594bSBjorn Andersson { P_GPLL0_OUT_MAIN, 1 }, 1484433594bSBjorn Andersson { P_GPLL0_OUT_EVEN, 6 }, 1494433594bSBjorn Andersson }; 1504433594bSBjorn Andersson 1514433594bSBjorn Andersson static const struct clk_parent_data gcc_parents_0[] = { 1524433594bSBjorn Andersson { .fw_name = "bi_tcxo" }, 1534433594bSBjorn Andersson { .hw = &gpll0.clkr.hw }, 1544433594bSBjorn Andersson { .hw = &gpll0_out_even.clkr.hw }, 1554433594bSBjorn Andersson }; 1564433594bSBjorn Andersson 1574433594bSBjorn Andersson static const struct parent_map gcc_parent_map_1[] = { 1584433594bSBjorn Andersson { P_BI_TCXO, 0 }, 1594433594bSBjorn Andersson { P_GPLL0_OUT_MAIN, 1 }, 1604433594bSBjorn Andersson { P_SLEEP_CLK, 5 }, 1614433594bSBjorn Andersson { P_GPLL0_OUT_EVEN, 6 }, 1624433594bSBjorn Andersson }; 1634433594bSBjorn Andersson 1644433594bSBjorn Andersson static const struct clk_parent_data gcc_parents_1[] = { 1654433594bSBjorn Andersson { .fw_name = "bi_tcxo", }, 1664433594bSBjorn Andersson { .hw = &gpll0.clkr.hw }, 1674433594bSBjorn Andersson { .fw_name = "sleep_clk", }, 1684433594bSBjorn Andersson { .hw = &gpll0_out_even.clkr.hw }, 1694433594bSBjorn Andersson }; 1704433594bSBjorn Andersson 1714433594bSBjorn Andersson static const struct parent_map gcc_parent_map_2[] = { 1724433594bSBjorn Andersson { P_BI_TCXO, 0 }, 1734433594bSBjorn Andersson { P_SLEEP_CLK, 5 }, 1744433594bSBjorn Andersson }; 1754433594bSBjorn Andersson 1764433594bSBjorn Andersson static const struct clk_parent_data gcc_parents_2[] = { 1774433594bSBjorn Andersson { .fw_name = "bi_tcxo", }, 1784433594bSBjorn Andersson { .fw_name = "sleep_clk", }, 1794433594bSBjorn Andersson }; 1804433594bSBjorn Andersson 1814433594bSBjorn Andersson static const struct parent_map gcc_parent_map_3[] = { 1824433594bSBjorn Andersson { P_BI_TCXO, 0 }, 1834433594bSBjorn Andersson { P_GPLL0_OUT_MAIN, 1 }, 1844433594bSBjorn Andersson { P_GPLL2_OUT_MAIN, 2 }, 1854433594bSBjorn Andersson { P_GPLL5_OUT_MAIN, 3 }, 1864433594bSBjorn Andersson { P_GPLL1_OUT_MAIN, 4 }, 1874433594bSBjorn Andersson { P_GPLL4_OUT_MAIN, 5 }, 1884433594bSBjorn Andersson { P_GPLL0_OUT_EVEN, 6 }, 1894433594bSBjorn Andersson }; 1904433594bSBjorn Andersson 1914433594bSBjorn Andersson static const struct clk_parent_data gcc_parents_3[] = { 1924433594bSBjorn Andersson { .fw_name = "bi_tcxo", }, 1934433594bSBjorn Andersson { .hw = &gpll0.clkr.hw }, 1944433594bSBjorn Andersson { .name = "gpll2" }, 1954433594bSBjorn Andersson { .name = "gpll5" }, 1964433594bSBjorn Andersson { .hw = &gpll1.clkr.hw }, 1974433594bSBjorn Andersson { .hw = &gpll4.clkr.hw }, 1984433594bSBjorn Andersson { .hw = &gpll0_out_even.clkr.hw }, 1994433594bSBjorn Andersson }; 2004433594bSBjorn Andersson 2014433594bSBjorn Andersson static const struct parent_map gcc_parent_map_4[] = { 2024433594bSBjorn Andersson { P_BI_TCXO, 0 }, 2034433594bSBjorn Andersson }; 2044433594bSBjorn Andersson 2054433594bSBjorn Andersson static const struct clk_parent_data gcc_parents_4[] = { 2064433594bSBjorn Andersson { .fw_name = "bi_tcxo", }, 2074433594bSBjorn Andersson }; 2084433594bSBjorn Andersson 2094433594bSBjorn Andersson static const struct parent_map gcc_parent_map_5[] = { 2104433594bSBjorn Andersson { P_BI_TCXO, 0 }, 2114433594bSBjorn Andersson { P_GPLL0_OUT_MAIN, 1 }, 2124433594bSBjorn Andersson }; 2134433594bSBjorn Andersson 2144433594bSBjorn Andersson static const struct clk_parent_data gcc_parents_5[] = { 2154433594bSBjorn Andersson { .fw_name = "bi_tcxo", }, 2164433594bSBjorn Andersson { .hw = &gpll0.clkr.hw }, 2174433594bSBjorn Andersson }; 2184433594bSBjorn Andersson 2194433594bSBjorn Andersson static const struct parent_map gcc_parent_map_6[] = { 2204433594bSBjorn Andersson { P_BI_TCXO, 0 }, 2214433594bSBjorn Andersson { P_GPLL0_OUT_MAIN, 1 }, 2224433594bSBjorn Andersson { P_GPLL7_OUT_MAIN, 3 }, 2234433594bSBjorn Andersson { P_GPLL0_OUT_EVEN, 6 }, 2244433594bSBjorn Andersson }; 2254433594bSBjorn Andersson 2264433594bSBjorn Andersson static const struct clk_parent_data gcc_parents_6[] = { 2274433594bSBjorn Andersson { .fw_name = "bi_tcxo", }, 2284433594bSBjorn Andersson { .hw = &gpll0.clkr.hw }, 2294433594bSBjorn Andersson { .hw = &gpll7.clkr.hw }, 2304433594bSBjorn Andersson { .hw = &gpll0_out_even.clkr.hw }, 2314433594bSBjorn Andersson }; 2324433594bSBjorn Andersson 2334433594bSBjorn Andersson static const struct parent_map gcc_parent_map_7[] = { 2344433594bSBjorn Andersson { P_BI_TCXO, 0 }, 2354433594bSBjorn Andersson { P_GPLL0_OUT_MAIN, 1 }, 2364433594bSBjorn Andersson { P_GPLL9_OUT_MAIN, 2 }, 2374433594bSBjorn Andersson { P_GPLL4_OUT_MAIN, 5 }, 2384433594bSBjorn Andersson { P_GPLL0_OUT_EVEN, 6 }, 2394433594bSBjorn Andersson }; 2404433594bSBjorn Andersson 2414433594bSBjorn Andersson static const struct clk_parent_data gcc_parents_7[] = { 2424433594bSBjorn Andersson { .fw_name = "bi_tcxo", }, 2434433594bSBjorn Andersson { .hw = &gpll0.clkr.hw }, 2444433594bSBjorn Andersson { .name = "gppl9" }, 2454433594bSBjorn Andersson { .hw = &gpll4.clkr.hw }, 2464433594bSBjorn Andersson { .hw = &gpll0_out_even.clkr.hw }, 2474433594bSBjorn Andersson }; 2484433594bSBjorn Andersson 2494433594bSBjorn Andersson static const struct parent_map gcc_parent_map_8[] = { 2504433594bSBjorn Andersson { P_BI_TCXO, 0 }, 2514433594bSBjorn Andersson { P_GPLL0_OUT_MAIN, 1 }, 2524433594bSBjorn Andersson { P_AUD_REF_CLK, 2 }, 2534433594bSBjorn Andersson { P_GPLL0_OUT_EVEN, 6 }, 2544433594bSBjorn Andersson }; 2554433594bSBjorn Andersson 2564433594bSBjorn Andersson static const struct clk_parent_data gcc_parents_8[] = { 2574433594bSBjorn Andersson { .fw_name = "bi_tcxo", }, 2584433594bSBjorn Andersson { .hw = &gpll0.clkr.hw }, 2594433594bSBjorn Andersson { .name = "aud_ref_clk" }, 2604433594bSBjorn Andersson { .hw = &gpll0_out_even.clkr.hw }, 2614433594bSBjorn Andersson }; 2624433594bSBjorn Andersson 2634433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = { 2644433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 2654433594bSBjorn Andersson F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0), 2664433594bSBjorn Andersson F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 2674433594bSBjorn Andersson { } 2684433594bSBjorn Andersson }; 2694433594bSBjorn Andersson 2704433594bSBjorn Andersson static struct clk_rcg2 gcc_cpuss_ahb_clk_src = { 2714433594bSBjorn Andersson .cmd_rcgr = 0x48014, 2724433594bSBjorn Andersson .mnd_width = 0, 2734433594bSBjorn Andersson .hid_width = 5, 2744433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 2754433594bSBjorn Andersson .freq_tbl = ftbl_gcc_cpuss_ahb_clk_src, 2764433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 2774433594bSBjorn Andersson .name = "gcc_cpuss_ahb_clk_src", 2784433594bSBjorn Andersson .parent_data = gcc_parents_0, 279b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 2804433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 2814433594bSBjorn Andersson .ops = &clk_rcg2_ops, 2824433594bSBjorn Andersson }, 2834433594bSBjorn Andersson }; 2844433594bSBjorn Andersson 2854433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_emac_ptp_clk_src[] = { 2864433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 2874433594bSBjorn Andersson F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 2884433594bSBjorn Andersson F(125000000, P_GPLL7_OUT_MAIN, 4, 0, 0), 2894433594bSBjorn Andersson F(250000000, P_GPLL7_OUT_MAIN, 2, 0, 0), 2904433594bSBjorn Andersson { } 2914433594bSBjorn Andersson }; 2924433594bSBjorn Andersson 2934433594bSBjorn Andersson static struct clk_rcg2 gcc_emac_ptp_clk_src = { 2944433594bSBjorn Andersson .cmd_rcgr = 0x6038, 2954433594bSBjorn Andersson .mnd_width = 0, 2964433594bSBjorn Andersson .hid_width = 5, 2974433594bSBjorn Andersson .parent_map = gcc_parent_map_6, 2984433594bSBjorn Andersson .freq_tbl = ftbl_gcc_emac_ptp_clk_src, 2994433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 3004433594bSBjorn Andersson .name = "gcc_emac_ptp_clk_src", 3014433594bSBjorn Andersson .parent_data = gcc_parents_6, 302b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_6), 3034433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 3044433594bSBjorn Andersson .ops = &clk_rcg2_ops, 3054433594bSBjorn Andersson }, 3064433594bSBjorn Andersson }; 3074433594bSBjorn Andersson 3084433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_emac_rgmii_clk_src[] = { 3094433594bSBjorn Andersson F(2500000, P_BI_TCXO, 1, 25, 192), 3104433594bSBjorn Andersson F(5000000, P_BI_TCXO, 1, 25, 96), 3114433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 3124433594bSBjorn Andersson F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 3134433594bSBjorn Andersson F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 3144433594bSBjorn Andersson F(125000000, P_GPLL7_OUT_MAIN, 4, 0, 0), 3154433594bSBjorn Andersson F(250000000, P_GPLL7_OUT_MAIN, 2, 0, 0), 3164433594bSBjorn Andersson { } 3174433594bSBjorn Andersson }; 3184433594bSBjorn Andersson 3194433594bSBjorn Andersson static struct clk_rcg2 gcc_emac_rgmii_clk_src = { 3204433594bSBjorn Andersson .cmd_rcgr = 0x601c, 3214433594bSBjorn Andersson .mnd_width = 8, 3224433594bSBjorn Andersson .hid_width = 5, 3234433594bSBjorn Andersson .parent_map = gcc_parent_map_6, 3244433594bSBjorn Andersson .freq_tbl = ftbl_gcc_emac_rgmii_clk_src, 3254433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 3264433594bSBjorn Andersson .name = "gcc_emac_rgmii_clk_src", 3274433594bSBjorn Andersson .parent_data = gcc_parents_6, 328b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_6), 3294433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 3304433594bSBjorn Andersson .ops = &clk_rcg2_ops, 3314433594bSBjorn Andersson }, 3324433594bSBjorn Andersson }; 3334433594bSBjorn Andersson 3344433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = { 3354433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 3364433594bSBjorn Andersson F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 3374433594bSBjorn Andersson F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 3384433594bSBjorn Andersson F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 3394433594bSBjorn Andersson F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 3404433594bSBjorn Andersson { } 3414433594bSBjorn Andersson }; 3424433594bSBjorn Andersson 3434433594bSBjorn Andersson static struct clk_rcg2 gcc_gp1_clk_src = { 3444433594bSBjorn Andersson .cmd_rcgr = 0x64004, 3454433594bSBjorn Andersson .mnd_width = 8, 3464433594bSBjorn Andersson .hid_width = 5, 3474433594bSBjorn Andersson .parent_map = gcc_parent_map_1, 3484433594bSBjorn Andersson .freq_tbl = ftbl_gcc_gp1_clk_src, 3494433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 3504433594bSBjorn Andersson .name = "gcc_gp1_clk_src", 3514433594bSBjorn Andersson .parent_data = gcc_parents_1, 352b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_1), 3534433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 3544433594bSBjorn Andersson .ops = &clk_rcg2_ops, 3554433594bSBjorn Andersson }, 3564433594bSBjorn Andersson }; 3574433594bSBjorn Andersson 3584433594bSBjorn Andersson static struct clk_rcg2 gcc_gp2_clk_src = { 3594433594bSBjorn Andersson .cmd_rcgr = 0x65004, 3604433594bSBjorn Andersson .mnd_width = 8, 3614433594bSBjorn Andersson .hid_width = 5, 3624433594bSBjorn Andersson .parent_map = gcc_parent_map_1, 3634433594bSBjorn Andersson .freq_tbl = ftbl_gcc_gp1_clk_src, 3644433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 3654433594bSBjorn Andersson .name = "gcc_gp2_clk_src", 3664433594bSBjorn Andersson .parent_data = gcc_parents_1, 367b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_1), 3684433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 3694433594bSBjorn Andersson .ops = &clk_rcg2_ops, 3704433594bSBjorn Andersson }, 3714433594bSBjorn Andersson }; 3724433594bSBjorn Andersson 3734433594bSBjorn Andersson static struct clk_rcg2 gcc_gp3_clk_src = { 3744433594bSBjorn Andersson .cmd_rcgr = 0x66004, 3754433594bSBjorn Andersson .mnd_width = 8, 3764433594bSBjorn Andersson .hid_width = 5, 3774433594bSBjorn Andersson .parent_map = gcc_parent_map_1, 3784433594bSBjorn Andersson .freq_tbl = ftbl_gcc_gp1_clk_src, 3794433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 3804433594bSBjorn Andersson .name = "gcc_gp3_clk_src", 3814433594bSBjorn Andersson .parent_data = gcc_parents_1, 382b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_1), 3834433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 3844433594bSBjorn Andersson .ops = &clk_rcg2_ops, 3854433594bSBjorn Andersson }, 3864433594bSBjorn Andersson }; 3874433594bSBjorn Andersson 3884433594bSBjorn Andersson static struct clk_rcg2 gcc_gp4_clk_src = { 3894433594bSBjorn Andersson .cmd_rcgr = 0xbe004, 3904433594bSBjorn Andersson .mnd_width = 8, 3914433594bSBjorn Andersson .hid_width = 5, 3924433594bSBjorn Andersson .parent_map = gcc_parent_map_1, 3934433594bSBjorn Andersson .freq_tbl = ftbl_gcc_gp1_clk_src, 3944433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 3954433594bSBjorn Andersson .name = "gcc_gp4_clk_src", 3964433594bSBjorn Andersson .parent_data = gcc_parents_1, 397b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_1), 3984433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 3994433594bSBjorn Andersson .ops = &clk_rcg2_ops, 4004433594bSBjorn Andersson }, 4014433594bSBjorn Andersson }; 4024433594bSBjorn Andersson 4034433594bSBjorn Andersson static struct clk_rcg2 gcc_gp5_clk_src = { 4044433594bSBjorn Andersson .cmd_rcgr = 0xbf004, 4054433594bSBjorn Andersson .mnd_width = 8, 4064433594bSBjorn Andersson .hid_width = 5, 4074433594bSBjorn Andersson .parent_map = gcc_parent_map_1, 4084433594bSBjorn Andersson .freq_tbl = ftbl_gcc_gp1_clk_src, 4094433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 4104433594bSBjorn Andersson .name = "gcc_gp5_clk_src", 4114433594bSBjorn Andersson .parent_data = gcc_parents_1, 412b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_1), 4134433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 4144433594bSBjorn Andersson .ops = &clk_rcg2_ops, 4154433594bSBjorn Andersson }, 4164433594bSBjorn Andersson }; 4174433594bSBjorn Andersson 4184433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_npu_axi_clk_src[] = { 4194433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 4204433594bSBjorn Andersson F(60000000, P_GPLL0_OUT_EVEN, 5, 0, 0), 4214433594bSBjorn Andersson F(150000000, P_GPLL0_OUT_EVEN, 2, 0, 0), 4224433594bSBjorn Andersson F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 4234433594bSBjorn Andersson F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0), 4244433594bSBjorn Andersson F(403000000, P_GPLL4_OUT_MAIN, 2, 0, 0), 4254433594bSBjorn Andersson F(533000000, P_GPLL1_OUT_MAIN, 2, 0, 0), 4264433594bSBjorn Andersson { } 4274433594bSBjorn Andersson }; 4284433594bSBjorn Andersson 4294433594bSBjorn Andersson static struct clk_rcg2 gcc_npu_axi_clk_src = { 4304433594bSBjorn Andersson .cmd_rcgr = 0x4d014, 4314433594bSBjorn Andersson .mnd_width = 0, 4324433594bSBjorn Andersson .hid_width = 5, 4334433594bSBjorn Andersson .parent_map = gcc_parent_map_3, 4344433594bSBjorn Andersson .freq_tbl = ftbl_gcc_npu_axi_clk_src, 4354433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 4364433594bSBjorn Andersson .name = "gcc_npu_axi_clk_src", 4374433594bSBjorn Andersson .parent_data = gcc_parents_3, 438b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_3), 4394433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 4404433594bSBjorn Andersson .ops = &clk_rcg2_ops, 4414433594bSBjorn Andersson }, 4424433594bSBjorn Andersson }; 4434433594bSBjorn Andersson 4444433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = { 4454433594bSBjorn Andersson F(9600000, P_BI_TCXO, 2, 0, 0), 4464433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 4474433594bSBjorn Andersson { } 4484433594bSBjorn Andersson }; 4494433594bSBjorn Andersson 4504433594bSBjorn Andersson static struct clk_rcg2 gcc_pcie_0_aux_clk_src = { 4514433594bSBjorn Andersson .cmd_rcgr = 0x6b02c, 4524433594bSBjorn Andersson .mnd_width = 16, 4534433594bSBjorn Andersson .hid_width = 5, 4544433594bSBjorn Andersson .parent_map = gcc_parent_map_2, 4554433594bSBjorn Andersson .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 4564433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 4574433594bSBjorn Andersson .name = "gcc_pcie_0_aux_clk_src", 4584433594bSBjorn Andersson .parent_data = gcc_parents_2, 459b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_2), 4604433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 4614433594bSBjorn Andersson .ops = &clk_rcg2_ops, 4624433594bSBjorn Andersson }, 4634433594bSBjorn Andersson }; 4644433594bSBjorn Andersson 4654433594bSBjorn Andersson static struct clk_rcg2 gcc_pcie_1_aux_clk_src = { 4664433594bSBjorn Andersson .cmd_rcgr = 0x8d02c, 4674433594bSBjorn Andersson .mnd_width = 16, 4684433594bSBjorn Andersson .hid_width = 5, 4694433594bSBjorn Andersson .parent_map = gcc_parent_map_2, 4704433594bSBjorn Andersson .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 4714433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 4724433594bSBjorn Andersson .name = "gcc_pcie_1_aux_clk_src", 4734433594bSBjorn Andersson .parent_data = gcc_parents_2, 474b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_2), 4754433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 4764433594bSBjorn Andersson .ops = &clk_rcg2_ops, 4774433594bSBjorn Andersson }, 4784433594bSBjorn Andersson }; 4794433594bSBjorn Andersson 4804433594bSBjorn Andersson static struct clk_rcg2 gcc_pcie_2_aux_clk_src = { 4814433594bSBjorn Andersson .cmd_rcgr = 0x9d02c, 4824433594bSBjorn Andersson .mnd_width = 16, 4834433594bSBjorn Andersson .hid_width = 5, 4844433594bSBjorn Andersson .parent_map = gcc_parent_map_2, 4854433594bSBjorn Andersson .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 4864433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 4874433594bSBjorn Andersson .name = "gcc_pcie_2_aux_clk_src", 4884433594bSBjorn Andersson .parent_data = gcc_parents_2, 489b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_2), 4904433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 4914433594bSBjorn Andersson .ops = &clk_rcg2_ops, 4924433594bSBjorn Andersson }, 4934433594bSBjorn Andersson }; 4944433594bSBjorn Andersson 4954433594bSBjorn Andersson static struct clk_rcg2 gcc_pcie_3_aux_clk_src = { 4964433594bSBjorn Andersson .cmd_rcgr = 0xa302c, 4974433594bSBjorn Andersson .mnd_width = 16, 4984433594bSBjorn Andersson .hid_width = 5, 4994433594bSBjorn Andersson .parent_map = gcc_parent_map_2, 5004433594bSBjorn Andersson .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 5014433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 5024433594bSBjorn Andersson .name = "gcc_pcie_3_aux_clk_src", 5034433594bSBjorn Andersson .parent_data = gcc_parents_2, 504b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_2), 5054433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 5064433594bSBjorn Andersson .ops = &clk_rcg2_ops, 5074433594bSBjorn Andersson }, 5084433594bSBjorn Andersson }; 5094433594bSBjorn Andersson 5104433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_pcie_phy_refgen_clk_src[] = { 5114433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 5124433594bSBjorn Andersson F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 5134433594bSBjorn Andersson { } 5144433594bSBjorn Andersson }; 5154433594bSBjorn Andersson 5164433594bSBjorn Andersson static struct clk_rcg2 gcc_pcie_phy_refgen_clk_src = { 5174433594bSBjorn Andersson .cmd_rcgr = 0x6f014, 5184433594bSBjorn Andersson .mnd_width = 0, 5194433594bSBjorn Andersson .hid_width = 5, 5204433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 5214433594bSBjorn Andersson .freq_tbl = ftbl_gcc_pcie_phy_refgen_clk_src, 5224433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 5234433594bSBjorn Andersson .name = "gcc_pcie_phy_refgen_clk_src", 5244433594bSBjorn Andersson .parent_data = gcc_parents_0, 525b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 5264433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 5274433594bSBjorn Andersson .ops = &clk_rcg2_ops, 5284433594bSBjorn Andersson }, 5294433594bSBjorn Andersson }; 5304433594bSBjorn Andersson 5314433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = { 5324433594bSBjorn Andersson F(9600000, P_BI_TCXO, 2, 0, 0), 5334433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 5344433594bSBjorn Andersson F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0), 5354433594bSBjorn Andersson { } 5364433594bSBjorn Andersson }; 5374433594bSBjorn Andersson 5384433594bSBjorn Andersson static struct clk_rcg2 gcc_pdm2_clk_src = { 5394433594bSBjorn Andersson .cmd_rcgr = 0x33010, 5404433594bSBjorn Andersson .mnd_width = 0, 5414433594bSBjorn Andersson .hid_width = 5, 5424433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 5434433594bSBjorn Andersson .freq_tbl = ftbl_gcc_pdm2_clk_src, 5444433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 5454433594bSBjorn Andersson .name = "gcc_pdm2_clk_src", 5464433594bSBjorn Andersson .parent_data = gcc_parents_0, 547b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 5484433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 5494433594bSBjorn Andersson .ops = &clk_rcg2_ops, 5504433594bSBjorn Andersson }, 5514433594bSBjorn Andersson }; 5524433594bSBjorn Andersson 5534433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_qspi_1_core_clk_src[] = { 5544433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 5554433594bSBjorn Andersson F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 5564433594bSBjorn Andersson F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 5574433594bSBjorn Andersson F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0), 5584433594bSBjorn Andersson { } 5594433594bSBjorn Andersson }; 5604433594bSBjorn Andersson 5614433594bSBjorn Andersson static struct clk_rcg2 gcc_qspi_1_core_clk_src = { 5624433594bSBjorn Andersson .cmd_rcgr = 0x4a00c, 5634433594bSBjorn Andersson .mnd_width = 0, 5644433594bSBjorn Andersson .hid_width = 5, 5654433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 5664433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qspi_1_core_clk_src, 5674433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 5684433594bSBjorn Andersson .name = "gcc_qspi_1_core_clk_src", 5694433594bSBjorn Andersson .parent_data = gcc_parents_0, 570b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 5714433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 5724433594bSBjorn Andersson .ops = &clk_rcg2_ops, 5734433594bSBjorn Andersson }, 5744433594bSBjorn Andersson }; 5754433594bSBjorn Andersson 5764433594bSBjorn Andersson static struct clk_rcg2 gcc_qspi_core_clk_src = { 5774433594bSBjorn Andersson .cmd_rcgr = 0x4b008, 5784433594bSBjorn Andersson .mnd_width = 0, 5794433594bSBjorn Andersson .hid_width = 5, 5804433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 5814433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qspi_1_core_clk_src, 5824433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 5834433594bSBjorn Andersson .name = "gcc_qspi_core_clk_src", 5844433594bSBjorn Andersson .parent_data = gcc_parents_0, 585b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 5864433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 5874433594bSBjorn Andersson .ops = &clk_rcg2_ops, 5884433594bSBjorn Andersson }, 5894433594bSBjorn Andersson }; 5904433594bSBjorn Andersson 5914433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = { 5924433594bSBjorn Andersson F(7372800, P_GPLL0_OUT_EVEN, 1, 384, 15625), 5934433594bSBjorn Andersson F(14745600, P_GPLL0_OUT_EVEN, 1, 768, 15625), 5944433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 5954433594bSBjorn Andersson F(29491200, P_GPLL0_OUT_EVEN, 1, 1536, 15625), 5964433594bSBjorn Andersson F(32000000, P_GPLL0_OUT_EVEN, 1, 8, 75), 5974433594bSBjorn Andersson F(48000000, P_GPLL0_OUT_EVEN, 1, 4, 25), 5984433594bSBjorn Andersson F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 5994433594bSBjorn Andersson F(64000000, P_GPLL0_OUT_EVEN, 1, 16, 75), 6004433594bSBjorn Andersson F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 6014433594bSBjorn Andersson F(80000000, P_GPLL0_OUT_EVEN, 1, 4, 15), 6024433594bSBjorn Andersson F(96000000, P_GPLL0_OUT_EVEN, 1, 8, 25), 6034433594bSBjorn Andersson F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 6044433594bSBjorn Andersson F(102400000, P_GPLL0_OUT_EVEN, 1, 128, 375), 6054433594bSBjorn Andersson F(112000000, P_GPLL0_OUT_EVEN, 1, 28, 75), 6064433594bSBjorn Andersson F(117964800, P_GPLL0_OUT_EVEN, 1, 6144, 15625), 6074433594bSBjorn Andersson F(120000000, P_GPLL0_OUT_EVEN, 2.5, 0, 0), 6084433594bSBjorn Andersson F(128000000, P_GPLL0_OUT_MAIN, 1, 16, 75), 6094433594bSBjorn Andersson { } 6104433594bSBjorn Andersson }; 6114433594bSBjorn Andersson 6124433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = { 6134433594bSBjorn Andersson .cmd_rcgr = 0x17148, 6144433594bSBjorn Andersson .mnd_width = 16, 6154433594bSBjorn Andersson .hid_width = 5, 6164433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 6174433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6184433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 6194433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s0_clk_src", 6204433594bSBjorn Andersson .parent_data = gcc_parents_0, 621b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 6224433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 6234433594bSBjorn Andersson .ops = &clk_rcg2_ops, 6244433594bSBjorn Andersson }, 6254433594bSBjorn Andersson }; 6264433594bSBjorn Andersson 6274433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = { 6284433594bSBjorn Andersson .cmd_rcgr = 0x17278, 6294433594bSBjorn Andersson .mnd_width = 16, 6304433594bSBjorn Andersson .hid_width = 5, 6314433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 6324433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6334433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 6344433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s1_clk_src", 6354433594bSBjorn Andersson .parent_data = gcc_parents_0, 636b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 6374433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 6384433594bSBjorn Andersson .ops = &clk_rcg2_ops, 6394433594bSBjorn Andersson }, 6404433594bSBjorn Andersson }; 6414433594bSBjorn Andersson 6424433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = { 6434433594bSBjorn Andersson .cmd_rcgr = 0x173a8, 6444433594bSBjorn Andersson .mnd_width = 16, 6454433594bSBjorn Andersson .hid_width = 5, 6464433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 6474433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6484433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 6494433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s2_clk_src", 6504433594bSBjorn Andersson .parent_data = gcc_parents_0, 651b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 6524433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 6534433594bSBjorn Andersson .ops = &clk_rcg2_ops, 6544433594bSBjorn Andersson }, 6554433594bSBjorn Andersson }; 6564433594bSBjorn Andersson 6574433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = { 6584433594bSBjorn Andersson .cmd_rcgr = 0x174d8, 6594433594bSBjorn Andersson .mnd_width = 16, 6604433594bSBjorn Andersson .hid_width = 5, 6614433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 6624433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6634433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 6644433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s3_clk_src", 6654433594bSBjorn Andersson .parent_data = gcc_parents_0, 666b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 6674433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 6684433594bSBjorn Andersson .ops = &clk_rcg2_ops, 6694433594bSBjorn Andersson }, 6704433594bSBjorn Andersson }; 6714433594bSBjorn Andersson 6724433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = { 6734433594bSBjorn Andersson .cmd_rcgr = 0x17608, 6744433594bSBjorn Andersson .mnd_width = 16, 6754433594bSBjorn Andersson .hid_width = 5, 6764433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 6774433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6784433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 6794433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s4_clk_src", 6804433594bSBjorn Andersson .parent_data = gcc_parents_0, 681b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 6824433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 6834433594bSBjorn Andersson .ops = &clk_rcg2_ops, 6844433594bSBjorn Andersson }, 6854433594bSBjorn Andersson }; 6864433594bSBjorn Andersson 6874433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = { 6884433594bSBjorn Andersson .cmd_rcgr = 0x17738, 6894433594bSBjorn Andersson .mnd_width = 16, 6904433594bSBjorn Andersson .hid_width = 5, 6914433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 6924433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6934433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 6944433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s5_clk_src", 6954433594bSBjorn Andersson .parent_data = gcc_parents_0, 696b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 6974433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 6984433594bSBjorn Andersson .ops = &clk_rcg2_ops, 6994433594bSBjorn Andersson }, 7004433594bSBjorn Andersson }; 7014433594bSBjorn Andersson 7024433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = { 7034433594bSBjorn Andersson .cmd_rcgr = 0x17868, 7044433594bSBjorn Andersson .mnd_width = 16, 7054433594bSBjorn Andersson .hid_width = 5, 7064433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 7074433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7084433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 7094433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s6_clk_src", 7104433594bSBjorn Andersson .parent_data = gcc_parents_0, 711b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 7124433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 7134433594bSBjorn Andersson .ops = &clk_rcg2_ops, 7144433594bSBjorn Andersson }, 7154433594bSBjorn Andersson }; 7164433594bSBjorn Andersson 7174433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = { 7184433594bSBjorn Andersson .cmd_rcgr = 0x17998, 7194433594bSBjorn Andersson .mnd_width = 16, 7204433594bSBjorn Andersson .hid_width = 5, 7214433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 7224433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7234433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 7244433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s7_clk_src", 7254433594bSBjorn Andersson .parent_data = gcc_parents_0, 726b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 7274433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 7284433594bSBjorn Andersson .ops = &clk_rcg2_ops, 7294433594bSBjorn Andersson }, 7304433594bSBjorn Andersson }; 7314433594bSBjorn Andersson 7324433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = { 7334433594bSBjorn Andersson .cmd_rcgr = 0x18148, 7344433594bSBjorn Andersson .mnd_width = 16, 7354433594bSBjorn Andersson .hid_width = 5, 7364433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 7374433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7384433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 7394433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s0_clk_src", 7404433594bSBjorn Andersson .parent_data = gcc_parents_0, 741b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 7424433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 7434433594bSBjorn Andersson .ops = &clk_rcg2_ops, 7444433594bSBjorn Andersson }, 7454433594bSBjorn Andersson }; 7464433594bSBjorn Andersson 7474433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = { 7484433594bSBjorn Andersson .cmd_rcgr = 0x18278, 7494433594bSBjorn Andersson .mnd_width = 16, 7504433594bSBjorn Andersson .hid_width = 5, 7514433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 7524433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7534433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 7544433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s1_clk_src", 7554433594bSBjorn Andersson .parent_data = gcc_parents_0, 756b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 7574433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 7584433594bSBjorn Andersson .ops = &clk_rcg2_ops, 7594433594bSBjorn Andersson }, 7604433594bSBjorn Andersson }; 7614433594bSBjorn Andersson 7624433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = { 7634433594bSBjorn Andersson .cmd_rcgr = 0x183a8, 7644433594bSBjorn Andersson .mnd_width = 16, 7654433594bSBjorn Andersson .hid_width = 5, 7664433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 7674433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7684433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 7694433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s2_clk_src", 7704433594bSBjorn Andersson .parent_data = gcc_parents_0, 771b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 7724433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 7734433594bSBjorn Andersson .ops = &clk_rcg2_ops, 7744433594bSBjorn Andersson }, 7754433594bSBjorn Andersson }; 7764433594bSBjorn Andersson 7774433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = { 7784433594bSBjorn Andersson .cmd_rcgr = 0x184d8, 7794433594bSBjorn Andersson .mnd_width = 16, 7804433594bSBjorn Andersson .hid_width = 5, 7814433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 7824433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7834433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 7844433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s3_clk_src", 7854433594bSBjorn Andersson .parent_data = gcc_parents_0, 786b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 7874433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 7884433594bSBjorn Andersson .ops = &clk_rcg2_ops, 7894433594bSBjorn Andersson }, 7904433594bSBjorn Andersson }; 7914433594bSBjorn Andersson 7924433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = { 7934433594bSBjorn Andersson .cmd_rcgr = 0x18608, 7944433594bSBjorn Andersson .mnd_width = 16, 7954433594bSBjorn Andersson .hid_width = 5, 7964433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 7974433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7984433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 7994433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s4_clk_src", 8004433594bSBjorn Andersson .parent_data = gcc_parents_0, 801b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 8024433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 8034433594bSBjorn Andersson .ops = &clk_rcg2_ops, 8044433594bSBjorn Andersson }, 8054433594bSBjorn Andersson }; 8064433594bSBjorn Andersson 8074433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = { 8084433594bSBjorn Andersson .cmd_rcgr = 0x18738, 8094433594bSBjorn Andersson .mnd_width = 16, 8104433594bSBjorn Andersson .hid_width = 5, 8114433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 8124433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8134433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 8144433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s5_clk_src", 8154433594bSBjorn Andersson .parent_data = gcc_parents_0, 816b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 8174433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 8184433594bSBjorn Andersson .ops = &clk_rcg2_ops, 8194433594bSBjorn Andersson }, 8204433594bSBjorn Andersson }; 8214433594bSBjorn Andersson 8224433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = { 8234433594bSBjorn Andersson .cmd_rcgr = 0x1e148, 8244433594bSBjorn Andersson .mnd_width = 16, 8254433594bSBjorn Andersson .hid_width = 5, 8264433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 8274433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8284433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 8294433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s0_clk_src", 8304433594bSBjorn Andersson .parent_data = gcc_parents_0, 831b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 8324433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 8334433594bSBjorn Andersson .ops = &clk_rcg2_ops, 8344433594bSBjorn Andersson }, 8354433594bSBjorn Andersson }; 8364433594bSBjorn Andersson 8374433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = { 8384433594bSBjorn Andersson .cmd_rcgr = 0x1e278, 8394433594bSBjorn Andersson .mnd_width = 16, 8404433594bSBjorn Andersson .hid_width = 5, 8414433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 8424433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8434433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 8444433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s1_clk_src", 8454433594bSBjorn Andersson .parent_data = gcc_parents_0, 846b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 8474433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 8484433594bSBjorn Andersson .ops = &clk_rcg2_ops, 8494433594bSBjorn Andersson }, 8504433594bSBjorn Andersson }; 8514433594bSBjorn Andersson 8524433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = { 8534433594bSBjorn Andersson .cmd_rcgr = 0x1e3a8, 8544433594bSBjorn Andersson .mnd_width = 16, 8554433594bSBjorn Andersson .hid_width = 5, 8564433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 8574433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8584433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 8594433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s2_clk_src", 8604433594bSBjorn Andersson .parent_data = gcc_parents_0, 861b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 8624433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 8634433594bSBjorn Andersson .ops = &clk_rcg2_ops, 8644433594bSBjorn Andersson }, 8654433594bSBjorn Andersson }; 8664433594bSBjorn Andersson 8674433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = { 8684433594bSBjorn Andersson .cmd_rcgr = 0x1e4d8, 8694433594bSBjorn Andersson .mnd_width = 16, 8704433594bSBjorn Andersson .hid_width = 5, 8714433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 8724433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8734433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 8744433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s3_clk_src", 8754433594bSBjorn Andersson .parent_data = gcc_parents_0, 876b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 8774433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 8784433594bSBjorn Andersson .ops = &clk_rcg2_ops, 8794433594bSBjorn Andersson }, 8804433594bSBjorn Andersson }; 8814433594bSBjorn Andersson 8824433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = { 8834433594bSBjorn Andersson .cmd_rcgr = 0x1e608, 8844433594bSBjorn Andersson .mnd_width = 16, 8854433594bSBjorn Andersson .hid_width = 5, 8864433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 8874433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 8884433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 8894433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s4_clk_src", 8904433594bSBjorn Andersson .parent_data = gcc_parents_0, 891b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 8924433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 8934433594bSBjorn Andersson .ops = &clk_rcg2_ops, 8944433594bSBjorn Andersson }, 8954433594bSBjorn Andersson }; 8964433594bSBjorn Andersson 8974433594bSBjorn Andersson static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = { 8984433594bSBjorn Andersson .cmd_rcgr = 0x1e738, 8994433594bSBjorn Andersson .mnd_width = 16, 9004433594bSBjorn Andersson .hid_width = 5, 9014433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 9024433594bSBjorn Andersson .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 9034433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 9044433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s5_clk_src", 9054433594bSBjorn Andersson .parent_data = gcc_parents_0, 906b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 9074433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 9084433594bSBjorn Andersson .ops = &clk_rcg2_ops, 9094433594bSBjorn Andersson }, 9104433594bSBjorn Andersson }; 9114433594bSBjorn Andersson 9124433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = { 9134433594bSBjorn Andersson F(400000, P_BI_TCXO, 12, 1, 4), 9144433594bSBjorn Andersson F(9600000, P_BI_TCXO, 2, 0, 0), 9154433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 9164433594bSBjorn Andersson F(25000000, P_GPLL0_OUT_MAIN, 12, 1, 2), 9174433594bSBjorn Andersson F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0), 9184433594bSBjorn Andersson F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 9194433594bSBjorn Andersson F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 9204433594bSBjorn Andersson { } 9214433594bSBjorn Andersson }; 9224433594bSBjorn Andersson 9234433594bSBjorn Andersson static struct clk_rcg2 gcc_sdcc2_apps_clk_src = { 9244433594bSBjorn Andersson .cmd_rcgr = 0x1400c, 9254433594bSBjorn Andersson .mnd_width = 8, 9264433594bSBjorn Andersson .hid_width = 5, 9274433594bSBjorn Andersson .parent_map = gcc_parent_map_7, 9284433594bSBjorn Andersson .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src, 9294433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 9304433594bSBjorn Andersson .name = "gcc_sdcc2_apps_clk_src", 9314433594bSBjorn Andersson .parent_data = gcc_parents_7, 932b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_7), 9334433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 9344433594bSBjorn Andersson .ops = &clk_rcg2_floor_ops, 9354433594bSBjorn Andersson }, 9364433594bSBjorn Andersson }; 9374433594bSBjorn Andersson 9384433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = { 9394433594bSBjorn Andersson F(400000, P_BI_TCXO, 12, 1, 4), 9404433594bSBjorn Andersson F(9600000, P_BI_TCXO, 2, 0, 0), 9414433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 9424433594bSBjorn Andersson F(37500000, P_GPLL0_OUT_MAIN, 16, 0, 0), 9434433594bSBjorn Andersson F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0), 9444433594bSBjorn Andersson F(75000000, P_GPLL0_OUT_MAIN, 8, 0, 0), 9454433594bSBjorn Andersson { } 9464433594bSBjorn Andersson }; 9474433594bSBjorn Andersson 9484433594bSBjorn Andersson static struct clk_rcg2 gcc_sdcc4_apps_clk_src = { 9494433594bSBjorn Andersson .cmd_rcgr = 0x1600c, 9504433594bSBjorn Andersson .mnd_width = 8, 9514433594bSBjorn Andersson .hid_width = 5, 9524433594bSBjorn Andersson .parent_map = gcc_parent_map_5, 9534433594bSBjorn Andersson .freq_tbl = ftbl_gcc_sdcc4_apps_clk_src, 9544433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 9554433594bSBjorn Andersson .name = "gcc_sdcc4_apps_clk_src", 9564433594bSBjorn Andersson .parent_data = gcc_parents_5, 957b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_5), 9584433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 9594433594bSBjorn Andersson .ops = &clk_rcg2_floor_ops, 9604433594bSBjorn Andersson }, 9614433594bSBjorn Andersson }; 9624433594bSBjorn Andersson 9634433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_tsif_ref_clk_src[] = { 9644433594bSBjorn Andersson F(105495, P_BI_TCXO, 2, 1, 91), 9654433594bSBjorn Andersson { } 9664433594bSBjorn Andersson }; 9674433594bSBjorn Andersson 9684433594bSBjorn Andersson static struct clk_rcg2 gcc_tsif_ref_clk_src = { 9694433594bSBjorn Andersson .cmd_rcgr = 0x36010, 9704433594bSBjorn Andersson .mnd_width = 8, 9714433594bSBjorn Andersson .hid_width = 5, 9724433594bSBjorn Andersson .parent_map = gcc_parent_map_8, 9734433594bSBjorn Andersson .freq_tbl = ftbl_gcc_tsif_ref_clk_src, 9744433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 9754433594bSBjorn Andersson .name = "gcc_tsif_ref_clk_src", 9764433594bSBjorn Andersson .parent_data = gcc_parents_8, 977b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_8), 9784433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 9794433594bSBjorn Andersson .ops = &clk_rcg2_ops, 9804433594bSBjorn Andersson }, 9814433594bSBjorn Andersson }; 9824433594bSBjorn Andersson 9834433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_ufs_card_2_axi_clk_src[] = { 9844433594bSBjorn Andersson F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0), 9854433594bSBjorn Andersson F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 9864433594bSBjorn Andersson F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 9874433594bSBjorn Andersson F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0), 9884433594bSBjorn Andersson { } 9894433594bSBjorn Andersson }; 9904433594bSBjorn Andersson 9914433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_card_2_axi_clk_src = { 9924433594bSBjorn Andersson .cmd_rcgr = 0xa2020, 9934433594bSBjorn Andersson .mnd_width = 8, 9944433594bSBjorn Andersson .hid_width = 5, 9954433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 9964433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_axi_clk_src, 9974433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 9984433594bSBjorn Andersson .name = "gcc_ufs_card_2_axi_clk_src", 9994433594bSBjorn Andersson .parent_data = gcc_parents_0, 1000b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 10014433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 10024433594bSBjorn Andersson .ops = &clk_rcg2_ops, 10034433594bSBjorn Andersson }, 10044433594bSBjorn Andersson }; 10054433594bSBjorn Andersson 10064433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_card_2_ice_core_clk_src = { 10074433594bSBjorn Andersson .cmd_rcgr = 0xa2060, 10084433594bSBjorn Andersson .mnd_width = 0, 10094433594bSBjorn Andersson .hid_width = 5, 10104433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 10114433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_axi_clk_src, 10124433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 10134433594bSBjorn Andersson .name = "gcc_ufs_card_2_ice_core_clk_src", 10144433594bSBjorn Andersson .parent_data = gcc_parents_0, 1015b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 10164433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 10174433594bSBjorn Andersson .ops = &clk_rcg2_ops, 10184433594bSBjorn Andersson }, 10194433594bSBjorn Andersson }; 10204433594bSBjorn Andersson 10214433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_ufs_card_2_phy_aux_clk_src[] = { 10224433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 10234433594bSBjorn Andersson { } 10244433594bSBjorn Andersson }; 10254433594bSBjorn Andersson 10264433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_card_2_phy_aux_clk_src = { 10274433594bSBjorn Andersson .cmd_rcgr = 0xa2094, 10284433594bSBjorn Andersson .mnd_width = 0, 10294433594bSBjorn Andersson .hid_width = 5, 10304433594bSBjorn Andersson .parent_map = gcc_parent_map_4, 10314433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_phy_aux_clk_src, 10324433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 10334433594bSBjorn Andersson .name = "gcc_ufs_card_2_phy_aux_clk_src", 10344433594bSBjorn Andersson .parent_data = gcc_parents_4, 1035b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_4), 10364433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 10374433594bSBjorn Andersson .ops = &clk_rcg2_ops, 10384433594bSBjorn Andersson }, 10394433594bSBjorn Andersson }; 10404433594bSBjorn Andersson 10414433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_card_2_unipro_core_clk_src = { 10424433594bSBjorn Andersson .cmd_rcgr = 0xa2078, 10434433594bSBjorn Andersson .mnd_width = 0, 10444433594bSBjorn Andersson .hid_width = 5, 10454433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 10464433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_axi_clk_src, 10474433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 10484433594bSBjorn Andersson .name = "gcc_ufs_card_2_unipro_core_clk_src", 10494433594bSBjorn Andersson .parent_data = gcc_parents_0, 1050b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 10514433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 10524433594bSBjorn Andersson .ops = &clk_rcg2_ops, 10534433594bSBjorn Andersson }, 10544433594bSBjorn Andersson }; 10554433594bSBjorn Andersson 10564433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src[] = { 10574433594bSBjorn Andersson F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 10584433594bSBjorn Andersson F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 10594433594bSBjorn Andersson F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 10604433594bSBjorn Andersson F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 10614433594bSBjorn Andersson F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0), 10624433594bSBjorn Andersson { } 10634433594bSBjorn Andersson }; 10644433594bSBjorn Andersson 10654433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_card_axi_clk_src = { 10664433594bSBjorn Andersson .cmd_rcgr = 0x75020, 10674433594bSBjorn Andersson .mnd_width = 8, 10684433594bSBjorn Andersson .hid_width = 5, 10694433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 10704433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src, 10714433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 10724433594bSBjorn Andersson .name = "gcc_ufs_card_axi_clk_src", 10734433594bSBjorn Andersson .parent_data = gcc_parents_0, 1074b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 10754433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 10764433594bSBjorn Andersson .ops = &clk_rcg2_ops, 10774433594bSBjorn Andersson }, 10784433594bSBjorn Andersson }; 10794433594bSBjorn Andersson 10804433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src[] = { 10814433594bSBjorn Andersson F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 10824433594bSBjorn Andersson F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 10834433594bSBjorn Andersson F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0), 10844433594bSBjorn Andersson { } 10854433594bSBjorn Andersson }; 10864433594bSBjorn Andersson 10874433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = { 10884433594bSBjorn Andersson .cmd_rcgr = 0x75060, 10894433594bSBjorn Andersson .mnd_width = 0, 10904433594bSBjorn Andersson .hid_width = 5, 10914433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 10924433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src, 10934433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 10944433594bSBjorn Andersson .name = "gcc_ufs_card_ice_core_clk_src", 10954433594bSBjorn Andersson .parent_data = gcc_parents_0, 1096b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 10974433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 10984433594bSBjorn Andersson .ops = &clk_rcg2_ops, 10994433594bSBjorn Andersson }, 11004433594bSBjorn Andersson }; 11014433594bSBjorn Andersson 11024433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = { 11034433594bSBjorn Andersson .cmd_rcgr = 0x75094, 11044433594bSBjorn Andersson .mnd_width = 0, 11054433594bSBjorn Andersson .hid_width = 5, 11064433594bSBjorn Andersson .parent_map = gcc_parent_map_4, 11074433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_phy_aux_clk_src, 11084433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 11094433594bSBjorn Andersson .name = "gcc_ufs_card_phy_aux_clk_src", 11104433594bSBjorn Andersson .parent_data = gcc_parents_4, 1111b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_4), 11124433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 11134433594bSBjorn Andersson .ops = &clk_rcg2_ops, 11144433594bSBjorn Andersson }, 11154433594bSBjorn Andersson }; 11164433594bSBjorn Andersson 11174433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_ufs_card_unipro_core_clk_src[] = { 11184433594bSBjorn Andersson F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0), 11194433594bSBjorn Andersson F(75000000, P_GPLL0_OUT_MAIN, 8, 0, 0), 11204433594bSBjorn Andersson F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 11214433594bSBjorn Andersson { } 11224433594bSBjorn Andersson }; 11234433594bSBjorn Andersson 11244433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = { 11254433594bSBjorn Andersson .cmd_rcgr = 0x75078, 11264433594bSBjorn Andersson .mnd_width = 0, 11274433594bSBjorn Andersson .hid_width = 5, 11284433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 11294433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_unipro_core_clk_src, 11304433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 11314433594bSBjorn Andersson .name = "gcc_ufs_card_unipro_core_clk_src", 11324433594bSBjorn Andersson .parent_data = gcc_parents_0, 1133b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 11344433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 11354433594bSBjorn Andersson .ops = &clk_rcg2_ops, 11364433594bSBjorn Andersson }, 11374433594bSBjorn Andersson }; 11384433594bSBjorn Andersson 11394433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = { 11404433594bSBjorn Andersson F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 11414433594bSBjorn Andersson F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0), 11424433594bSBjorn Andersson F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 11434433594bSBjorn Andersson F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 11444433594bSBjorn Andersson F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0), 11454433594bSBjorn Andersson { } 11464433594bSBjorn Andersson }; 11474433594bSBjorn Andersson 11484433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_phy_axi_clk_src = { 11494433594bSBjorn Andersson .cmd_rcgr = 0x77020, 11504433594bSBjorn Andersson .mnd_width = 8, 11514433594bSBjorn Andersson .hid_width = 5, 11524433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 11534433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src, 11544433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 11554433594bSBjorn Andersson .name = "gcc_ufs_phy_axi_clk_src", 11564433594bSBjorn Andersson .parent_data = gcc_parents_0, 1157b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 11584433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 11594433594bSBjorn Andersson .ops = &clk_rcg2_ops, 11604433594bSBjorn Andersson }, 11614433594bSBjorn Andersson }; 11624433594bSBjorn Andersson 11634433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = { 11644433594bSBjorn Andersson .cmd_rcgr = 0x77060, 11654433594bSBjorn Andersson .mnd_width = 0, 11664433594bSBjorn Andersson .hid_width = 5, 11674433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 11684433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_axi_clk_src, 11694433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 11704433594bSBjorn Andersson .name = "gcc_ufs_phy_ice_core_clk_src", 11714433594bSBjorn Andersson .parent_data = gcc_parents_0, 1172b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 11734433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 11744433594bSBjorn Andersson .ops = &clk_rcg2_ops, 11754433594bSBjorn Andersson }, 11764433594bSBjorn Andersson }; 11774433594bSBjorn Andersson 11784433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = { 11794433594bSBjorn Andersson .cmd_rcgr = 0x77094, 11804433594bSBjorn Andersson .mnd_width = 0, 11814433594bSBjorn Andersson .hid_width = 5, 11824433594bSBjorn Andersson .parent_map = gcc_parent_map_4, 11834433594bSBjorn Andersson .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 11844433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 11854433594bSBjorn Andersson .name = "gcc_ufs_phy_phy_aux_clk_src", 11864433594bSBjorn Andersson .parent_data = gcc_parents_4, 1187b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_4), 11884433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 11894433594bSBjorn Andersson .ops = &clk_rcg2_ops, 11904433594bSBjorn Andersson }, 11914433594bSBjorn Andersson }; 11924433594bSBjorn Andersson 11934433594bSBjorn Andersson static struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = { 11944433594bSBjorn Andersson .cmd_rcgr = 0x77078, 11954433594bSBjorn Andersson .mnd_width = 0, 11964433594bSBjorn Andersson .hid_width = 5, 11974433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 11984433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_axi_clk_src, 11994433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 12004433594bSBjorn Andersson .name = "gcc_ufs_phy_unipro_core_clk_src", 12014433594bSBjorn Andersson .parent_data = gcc_parents_0, 1202b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 12034433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 12044433594bSBjorn Andersson .ops = &clk_rcg2_ops, 12054433594bSBjorn Andersson }, 12064433594bSBjorn Andersson }; 12074433594bSBjorn Andersson 12084433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_usb30_mp_master_clk_src[] = { 12094433594bSBjorn Andersson F(33333333, P_GPLL0_OUT_EVEN, 9, 0, 0), 12104433594bSBjorn Andersson F(66666667, P_GPLL0_OUT_EVEN, 4.5, 0, 0), 12114433594bSBjorn Andersson F(133333333, P_GPLL0_OUT_MAIN, 4.5, 0, 0), 12124433594bSBjorn Andersson F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 12134433594bSBjorn Andersson F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0), 12144433594bSBjorn Andersson { } 12154433594bSBjorn Andersson }; 12164433594bSBjorn Andersson 12174433594bSBjorn Andersson static struct clk_rcg2 gcc_usb30_mp_master_clk_src = { 12184433594bSBjorn Andersson .cmd_rcgr = 0xa601c, 12194433594bSBjorn Andersson .mnd_width = 8, 12204433594bSBjorn Andersson .hid_width = 5, 12214433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 12224433594bSBjorn Andersson .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src, 12234433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 12244433594bSBjorn Andersson .name = "gcc_usb30_mp_master_clk_src", 12254433594bSBjorn Andersson .parent_data = gcc_parents_0, 1226b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 12274433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 12284433594bSBjorn Andersson .ops = &clk_rcg2_ops, 12294433594bSBjorn Andersson }, 12304433594bSBjorn Andersson }; 12314433594bSBjorn Andersson 12324433594bSBjorn Andersson static const struct freq_tbl ftbl_gcc_usb30_mp_mock_utmi_clk_src[] = { 12334433594bSBjorn Andersson F(19200000, P_BI_TCXO, 1, 0, 0), 12344433594bSBjorn Andersson F(20000000, P_GPLL0_OUT_EVEN, 15, 0, 0), 12354433594bSBjorn Andersson F(40000000, P_GPLL0_OUT_EVEN, 7.5, 0, 0), 12364433594bSBjorn Andersson F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0), 12374433594bSBjorn Andersson { } 12384433594bSBjorn Andersson }; 12394433594bSBjorn Andersson 12404433594bSBjorn Andersson static struct clk_rcg2 gcc_usb30_mp_mock_utmi_clk_src = { 12414433594bSBjorn Andersson .cmd_rcgr = 0xa6034, 12424433594bSBjorn Andersson .mnd_width = 0, 12434433594bSBjorn Andersson .hid_width = 5, 12444433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 12454433594bSBjorn Andersson .freq_tbl = ftbl_gcc_usb30_mp_mock_utmi_clk_src, 12464433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 12474433594bSBjorn Andersson .name = "gcc_usb30_mp_mock_utmi_clk_src", 12484433594bSBjorn Andersson .parent_data = gcc_parents_0, 1249b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 12504433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 12514433594bSBjorn Andersson .ops = &clk_rcg2_ops, 12524433594bSBjorn Andersson }, 12534433594bSBjorn Andersson }; 12544433594bSBjorn Andersson 12554433594bSBjorn Andersson static struct clk_rcg2 gcc_usb30_prim_master_clk_src = { 12564433594bSBjorn Andersson .cmd_rcgr = 0xf01c, 12574433594bSBjorn Andersson .mnd_width = 8, 12584433594bSBjorn Andersson .hid_width = 5, 12594433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 12604433594bSBjorn Andersson .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src, 12614433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 12624433594bSBjorn Andersson .name = "gcc_usb30_prim_master_clk_src", 12634433594bSBjorn Andersson .parent_data = gcc_parents_0, 1264b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 12654433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 12664433594bSBjorn Andersson .ops = &clk_rcg2_ops, 12674433594bSBjorn Andersson }, 12684433594bSBjorn Andersson }; 12694433594bSBjorn Andersson 12704433594bSBjorn Andersson static struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = { 12714433594bSBjorn Andersson .cmd_rcgr = 0xf034, 12724433594bSBjorn Andersson .mnd_width = 0, 12734433594bSBjorn Andersson .hid_width = 5, 12744433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 12754433594bSBjorn Andersson .freq_tbl = ftbl_gcc_usb30_mp_mock_utmi_clk_src, 12764433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 12774433594bSBjorn Andersson .name = "gcc_usb30_prim_mock_utmi_clk_src", 12784433594bSBjorn Andersson .parent_data = gcc_parents_0, 1279b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 12804433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 12814433594bSBjorn Andersson .ops = &clk_rcg2_ops, 12824433594bSBjorn Andersson }, 12834433594bSBjorn Andersson }; 12844433594bSBjorn Andersson 12854433594bSBjorn Andersson static struct clk_rcg2 gcc_usb30_sec_master_clk_src = { 12864433594bSBjorn Andersson .cmd_rcgr = 0x1001c, 12874433594bSBjorn Andersson .mnd_width = 8, 12884433594bSBjorn Andersson .hid_width = 5, 12894433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 12904433594bSBjorn Andersson .freq_tbl = ftbl_gcc_usb30_mp_master_clk_src, 12914433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 12924433594bSBjorn Andersson .name = "gcc_usb30_sec_master_clk_src", 12934433594bSBjorn Andersson .parent_data = gcc_parents_0, 1294b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 12954433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 12964433594bSBjorn Andersson .ops = &clk_rcg2_ops, 12974433594bSBjorn Andersson }, 12984433594bSBjorn Andersson }; 12994433594bSBjorn Andersson 13004433594bSBjorn Andersson static struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = { 13014433594bSBjorn Andersson .cmd_rcgr = 0x10034, 13024433594bSBjorn Andersson .mnd_width = 0, 13034433594bSBjorn Andersson .hid_width = 5, 13044433594bSBjorn Andersson .parent_map = gcc_parent_map_0, 13054433594bSBjorn Andersson .freq_tbl = ftbl_gcc_usb30_mp_mock_utmi_clk_src, 13064433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 13074433594bSBjorn Andersson .name = "gcc_usb30_sec_mock_utmi_clk_src", 13084433594bSBjorn Andersson .parent_data = gcc_parents_0, 1309b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_0), 13104433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 13114433594bSBjorn Andersson .ops = &clk_rcg2_ops, 13124433594bSBjorn Andersson }, 13134433594bSBjorn Andersson }; 13144433594bSBjorn Andersson 13154433594bSBjorn Andersson static struct clk_rcg2 gcc_usb3_mp_phy_aux_clk_src = { 13164433594bSBjorn Andersson .cmd_rcgr = 0xa6068, 13174433594bSBjorn Andersson .mnd_width = 0, 13184433594bSBjorn Andersson .hid_width = 5, 13194433594bSBjorn Andersson .parent_map = gcc_parent_map_2, 13204433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_phy_aux_clk_src, 13214433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 13224433594bSBjorn Andersson .name = "gcc_usb3_mp_phy_aux_clk_src", 13234433594bSBjorn Andersson .parent_data = gcc_parents_2, 1324b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_2), 13254433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 13264433594bSBjorn Andersson .ops = &clk_rcg2_ops, 13274433594bSBjorn Andersson }, 13284433594bSBjorn Andersson }; 13294433594bSBjorn Andersson 13304433594bSBjorn Andersson static struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = { 13314433594bSBjorn Andersson .cmd_rcgr = 0xf060, 13324433594bSBjorn Andersson .mnd_width = 0, 13334433594bSBjorn Andersson .hid_width = 5, 13344433594bSBjorn Andersson .parent_map = gcc_parent_map_2, 13354433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_phy_aux_clk_src, 13364433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 13374433594bSBjorn Andersson .name = "gcc_usb3_prim_phy_aux_clk_src", 13384433594bSBjorn Andersson .parent_data = gcc_parents_2, 1339b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_2), 13404433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 13414433594bSBjorn Andersson .ops = &clk_rcg2_ops, 13424433594bSBjorn Andersson }, 13434433594bSBjorn Andersson }; 13444433594bSBjorn Andersson 13454433594bSBjorn Andersson static struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = { 13464433594bSBjorn Andersson .cmd_rcgr = 0x10060, 13474433594bSBjorn Andersson .mnd_width = 0, 13484433594bSBjorn Andersson .hid_width = 5, 13494433594bSBjorn Andersson .parent_map = gcc_parent_map_2, 13504433594bSBjorn Andersson .freq_tbl = ftbl_gcc_ufs_card_2_phy_aux_clk_src, 13514433594bSBjorn Andersson .clkr.hw.init = &(struct clk_init_data){ 13524433594bSBjorn Andersson .name = "gcc_usb3_sec_phy_aux_clk_src", 13534433594bSBjorn Andersson .parent_data = gcc_parents_2, 1354b6cf77a7SDmitry Baryshkov .num_parents = ARRAY_SIZE(gcc_parents_2), 13554433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 13564433594bSBjorn Andersson .ops = &clk_rcg2_ops, 13574433594bSBjorn Andersson }, 13584433594bSBjorn Andersson }; 13594433594bSBjorn Andersson 13604433594bSBjorn Andersson static struct clk_branch gcc_aggre_noc_pcie_tbu_clk = { 13614433594bSBjorn Andersson .halt_reg = 0x90018, 13624433594bSBjorn Andersson .halt_check = BRANCH_HALT, 13634433594bSBjorn Andersson .clkr = { 13644433594bSBjorn Andersson .enable_reg = 0x90018, 13654433594bSBjorn Andersson .enable_mask = BIT(0), 13664433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 13674433594bSBjorn Andersson .name = "gcc_aggre_noc_pcie_tbu_clk", 13684433594bSBjorn Andersson .ops = &clk_branch2_ops, 13694433594bSBjorn Andersson }, 13704433594bSBjorn Andersson }, 13714433594bSBjorn Andersson }; 13724433594bSBjorn Andersson 13734433594bSBjorn Andersson static struct clk_branch gcc_aggre_ufs_card_axi_clk = { 13744433594bSBjorn Andersson .halt_reg = 0x750c0, 13754433594bSBjorn Andersson .halt_check = BRANCH_HALT, 13764433594bSBjorn Andersson .hwcg_reg = 0x750c0, 13774433594bSBjorn Andersson .hwcg_bit = 1, 13784433594bSBjorn Andersson .clkr = { 13794433594bSBjorn Andersson .enable_reg = 0x750c0, 13804433594bSBjorn Andersson .enable_mask = BIT(0), 13814433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 13824433594bSBjorn Andersson .name = "gcc_aggre_ufs_card_axi_clk", 13834433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 13844433594bSBjorn Andersson &gcc_ufs_card_axi_clk_src.clkr.hw 13854433594bSBjorn Andersson }, 13864433594bSBjorn Andersson .num_parents = 1, 13874433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 13884433594bSBjorn Andersson .ops = &clk_branch2_ops, 13894433594bSBjorn Andersson }, 13904433594bSBjorn Andersson }, 13914433594bSBjorn Andersson }; 13924433594bSBjorn Andersson 13934433594bSBjorn Andersson static struct clk_branch gcc_aggre_ufs_card_axi_hw_ctl_clk = { 13944433594bSBjorn Andersson .halt_reg = 0x750c0, 13954433594bSBjorn Andersson .halt_check = BRANCH_HALT, 13964433594bSBjorn Andersson .hwcg_reg = 0x750c0, 13974433594bSBjorn Andersson .hwcg_bit = 1, 13984433594bSBjorn Andersson .clkr = { 13994433594bSBjorn Andersson .enable_reg = 0x750c0, 14004433594bSBjorn Andersson .enable_mask = BIT(1), 14014433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 14024433594bSBjorn Andersson .name = "gcc_aggre_ufs_card_axi_hw_ctl_clk", 14034433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 14044433594bSBjorn Andersson &gcc_aggre_ufs_card_axi_clk.clkr.hw 14054433594bSBjorn Andersson }, 14064433594bSBjorn Andersson .num_parents = 1, 14074433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 14084433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 14094433594bSBjorn Andersson }, 14104433594bSBjorn Andersson }, 14114433594bSBjorn Andersson }; 14124433594bSBjorn Andersson 14134433594bSBjorn Andersson static struct clk_branch gcc_aggre_ufs_phy_axi_clk = { 14144433594bSBjorn Andersson .halt_reg = 0x770c0, 14154433594bSBjorn Andersson .halt_check = BRANCH_HALT, 14164433594bSBjorn Andersson .hwcg_reg = 0x770c0, 14174433594bSBjorn Andersson .hwcg_bit = 1, 14184433594bSBjorn Andersson .clkr = { 14194433594bSBjorn Andersson .enable_reg = 0x770c0, 14204433594bSBjorn Andersson .enable_mask = BIT(0), 14214433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 14224433594bSBjorn Andersson .name = "gcc_aggre_ufs_phy_axi_clk", 14234433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 14244433594bSBjorn Andersson &gcc_ufs_phy_axi_clk_src.clkr.hw 14254433594bSBjorn Andersson }, 14264433594bSBjorn Andersson .num_parents = 1, 14274433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 14284433594bSBjorn Andersson .ops = &clk_branch2_ops, 14294433594bSBjorn Andersson }, 14304433594bSBjorn Andersson }, 14314433594bSBjorn Andersson }; 14324433594bSBjorn Andersson 14334433594bSBjorn Andersson static struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = { 14344433594bSBjorn Andersson .halt_reg = 0x770c0, 14354433594bSBjorn Andersson .halt_check = BRANCH_HALT, 14364433594bSBjorn Andersson .hwcg_reg = 0x770c0, 14374433594bSBjorn Andersson .hwcg_bit = 1, 14384433594bSBjorn Andersson .clkr = { 14394433594bSBjorn Andersson .enable_reg = 0x770c0, 14404433594bSBjorn Andersson .enable_mask = BIT(1), 14414433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 14424433594bSBjorn Andersson .name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk", 14434433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 14444433594bSBjorn Andersson &gcc_aggre_ufs_phy_axi_clk.clkr.hw 14454433594bSBjorn Andersson }, 14464433594bSBjorn Andersson .num_parents = 1, 14474433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 14484433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 14494433594bSBjorn Andersson }, 14504433594bSBjorn Andersson }, 14514433594bSBjorn Andersson }; 14524433594bSBjorn Andersson 14534433594bSBjorn Andersson static struct clk_branch gcc_aggre_usb3_mp_axi_clk = { 14544433594bSBjorn Andersson .halt_reg = 0xa6084, 14554433594bSBjorn Andersson .halt_check = BRANCH_HALT, 14564433594bSBjorn Andersson .clkr = { 14574433594bSBjorn Andersson .enable_reg = 0xa6084, 14584433594bSBjorn Andersson .enable_mask = BIT(0), 14594433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 14604433594bSBjorn Andersson .name = "gcc_aggre_usb3_mp_axi_clk", 14614433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 14624433594bSBjorn Andersson &gcc_usb30_mp_master_clk_src.clkr.hw 14634433594bSBjorn Andersson }, 14644433594bSBjorn Andersson .num_parents = 1, 14654433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 14664433594bSBjorn Andersson .ops = &clk_branch2_ops, 14674433594bSBjorn Andersson }, 14684433594bSBjorn Andersson }, 14694433594bSBjorn Andersson }; 14704433594bSBjorn Andersson 14714433594bSBjorn Andersson static struct clk_branch gcc_aggre_usb3_prim_axi_clk = { 14724433594bSBjorn Andersson .halt_reg = 0xf07c, 14734433594bSBjorn Andersson .halt_check = BRANCH_HALT, 14744433594bSBjorn Andersson .clkr = { 14754433594bSBjorn Andersson .enable_reg = 0xf07c, 14764433594bSBjorn Andersson .enable_mask = BIT(0), 14774433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 14784433594bSBjorn Andersson .name = "gcc_aggre_usb3_prim_axi_clk", 14794433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 14804433594bSBjorn Andersson &gcc_usb30_prim_master_clk_src.clkr.hw 14814433594bSBjorn Andersson }, 14824433594bSBjorn Andersson .num_parents = 1, 14834433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 14844433594bSBjorn Andersson .ops = &clk_branch2_ops, 14854433594bSBjorn Andersson }, 14864433594bSBjorn Andersson }, 14874433594bSBjorn Andersson }; 14884433594bSBjorn Andersson 14894433594bSBjorn Andersson static struct clk_branch gcc_aggre_usb3_sec_axi_clk = { 14904433594bSBjorn Andersson .halt_reg = 0x1007c, 14914433594bSBjorn Andersson .halt_check = BRANCH_HALT, 14924433594bSBjorn Andersson .clkr = { 14934433594bSBjorn Andersson .enable_reg = 0x1007c, 14944433594bSBjorn Andersson .enable_mask = BIT(0), 14954433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 14964433594bSBjorn Andersson .name = "gcc_aggre_usb3_sec_axi_clk", 14974433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 14984433594bSBjorn Andersson &gcc_usb30_sec_master_clk_src.clkr.hw 14994433594bSBjorn Andersson }, 15004433594bSBjorn Andersson .num_parents = 1, 15014433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 15024433594bSBjorn Andersson .ops = &clk_branch2_ops, 15034433594bSBjorn Andersson }, 15044433594bSBjorn Andersson }, 15054433594bSBjorn Andersson }; 15064433594bSBjorn Andersson 15074433594bSBjorn Andersson static struct clk_branch gcc_boot_rom_ahb_clk = { 15084433594bSBjorn Andersson .halt_reg = 0x38004, 15094433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 15104433594bSBjorn Andersson .hwcg_reg = 0x38004, 15114433594bSBjorn Andersson .hwcg_bit = 1, 15124433594bSBjorn Andersson .clkr = { 15134433594bSBjorn Andersson .enable_reg = 0x52004, 15144433594bSBjorn Andersson .enable_mask = BIT(10), 15154433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 15164433594bSBjorn Andersson .name = "gcc_boot_rom_ahb_clk", 15174433594bSBjorn Andersson .ops = &clk_branch2_ops, 15184433594bSBjorn Andersson }, 15194433594bSBjorn Andersson }, 15204433594bSBjorn Andersson }; 15214433594bSBjorn Andersson 15224433594bSBjorn Andersson static struct clk_branch gcc_camera_hf_axi_clk = { 15234433594bSBjorn Andersson .halt_reg = 0xb030, 15244433594bSBjorn Andersson .halt_check = BRANCH_HALT, 15254433594bSBjorn Andersson .clkr = { 15264433594bSBjorn Andersson .enable_reg = 0xb030, 15274433594bSBjorn Andersson .enable_mask = BIT(0), 15284433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 15294433594bSBjorn Andersson .name = "gcc_camera_hf_axi_clk", 15304433594bSBjorn Andersson .ops = &clk_branch2_ops, 15314433594bSBjorn Andersson }, 15324433594bSBjorn Andersson }, 15334433594bSBjorn Andersson }; 15344433594bSBjorn Andersson 15354433594bSBjorn Andersson static struct clk_branch gcc_camera_sf_axi_clk = { 15364433594bSBjorn Andersson .halt_reg = 0xb034, 15374433594bSBjorn Andersson .halt_check = BRANCH_HALT, 15384433594bSBjorn Andersson .clkr = { 15394433594bSBjorn Andersson .enable_reg = 0xb034, 15404433594bSBjorn Andersson .enable_mask = BIT(0), 15414433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 15424433594bSBjorn Andersson .name = "gcc_camera_sf_axi_clk", 15434433594bSBjorn Andersson .ops = &clk_branch2_ops, 15444433594bSBjorn Andersson }, 15454433594bSBjorn Andersson }, 15464433594bSBjorn Andersson }; 15474433594bSBjorn Andersson 15484433594bSBjorn Andersson static struct clk_branch gcc_cfg_noc_usb3_mp_axi_clk = { 15494433594bSBjorn Andersson .halt_reg = 0xa609c, 15504433594bSBjorn Andersson .halt_check = BRANCH_HALT, 15514433594bSBjorn Andersson .clkr = { 15524433594bSBjorn Andersson .enable_reg = 0xa609c, 15534433594bSBjorn Andersson .enable_mask = BIT(0), 15544433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 15554433594bSBjorn Andersson .name = "gcc_cfg_noc_usb3_mp_axi_clk", 15564433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 15574433594bSBjorn Andersson &gcc_usb30_mp_master_clk_src.clkr.hw 15584433594bSBjorn Andersson }, 15594433594bSBjorn Andersson .num_parents = 1, 15604433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 15614433594bSBjorn Andersson .ops = &clk_branch2_ops, 15624433594bSBjorn Andersson }, 15634433594bSBjorn Andersson }, 15644433594bSBjorn Andersson }; 15654433594bSBjorn Andersson 15664433594bSBjorn Andersson static struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = { 15674433594bSBjorn Andersson .halt_reg = 0xf078, 15684433594bSBjorn Andersson .halt_check = BRANCH_HALT, 15694433594bSBjorn Andersson .clkr = { 15704433594bSBjorn Andersson .enable_reg = 0xf078, 15714433594bSBjorn Andersson .enable_mask = BIT(0), 15724433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 15734433594bSBjorn Andersson .name = "gcc_cfg_noc_usb3_prim_axi_clk", 15744433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 15754433594bSBjorn Andersson &gcc_usb30_prim_master_clk_src.clkr.hw 15764433594bSBjorn Andersson }, 15774433594bSBjorn Andersson .num_parents = 1, 15784433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 15794433594bSBjorn Andersson .ops = &clk_branch2_ops, 15804433594bSBjorn Andersson }, 15814433594bSBjorn Andersson }, 15824433594bSBjorn Andersson }; 15834433594bSBjorn Andersson 15844433594bSBjorn Andersson static struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = { 15854433594bSBjorn Andersson .halt_reg = 0x10078, 15864433594bSBjorn Andersson .halt_check = BRANCH_HALT, 15874433594bSBjorn Andersson .clkr = { 15884433594bSBjorn Andersson .enable_reg = 0x10078, 15894433594bSBjorn Andersson .enable_mask = BIT(0), 15904433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 15914433594bSBjorn Andersson .name = "gcc_cfg_noc_usb3_sec_axi_clk", 15924433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 15934433594bSBjorn Andersson &gcc_usb30_sec_master_clk_src.clkr.hw 15944433594bSBjorn Andersson }, 15954433594bSBjorn Andersson .num_parents = 1, 15964433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 15974433594bSBjorn Andersson .ops = &clk_branch2_ops, 15984433594bSBjorn Andersson }, 15994433594bSBjorn Andersson }, 16004433594bSBjorn Andersson }; 16014433594bSBjorn Andersson 16024433594bSBjorn Andersson /* For CPUSS functionality the AHB clock needs to be left enabled */ 16034433594bSBjorn Andersson static struct clk_branch gcc_cpuss_ahb_clk = { 16044433594bSBjorn Andersson .halt_reg = 0x48000, 16054433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 16064433594bSBjorn Andersson .clkr = { 16074433594bSBjorn Andersson .enable_reg = 0x52004, 16084433594bSBjorn Andersson .enable_mask = BIT(21), 16094433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 16104433594bSBjorn Andersson .name = "gcc_cpuss_ahb_clk", 16114433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 16124433594bSBjorn Andersson &gcc_cpuss_ahb_clk_src.clkr.hw 16134433594bSBjorn Andersson }, 16144433594bSBjorn Andersson .num_parents = 1, 16154433594bSBjorn Andersson .flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT, 16164433594bSBjorn Andersson .ops = &clk_branch2_ops, 16174433594bSBjorn Andersson }, 16184433594bSBjorn Andersson }, 16194433594bSBjorn Andersson }; 16204433594bSBjorn Andersson 16214433594bSBjorn Andersson static struct clk_branch gcc_cpuss_rbcpr_clk = { 16224433594bSBjorn Andersson .halt_reg = 0x48008, 16234433594bSBjorn Andersson .halt_check = BRANCH_HALT, 16244433594bSBjorn Andersson .clkr = { 16254433594bSBjorn Andersson .enable_reg = 0x48008, 16264433594bSBjorn Andersson .enable_mask = BIT(0), 16274433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 16284433594bSBjorn Andersson .name = "gcc_cpuss_rbcpr_clk", 16294433594bSBjorn Andersson .ops = &clk_branch2_ops, 16304433594bSBjorn Andersson }, 16314433594bSBjorn Andersson }, 16324433594bSBjorn Andersson }; 16334433594bSBjorn Andersson 16344433594bSBjorn Andersson static struct clk_branch gcc_ddrss_gpu_axi_clk = { 16354433594bSBjorn Andersson .halt_reg = 0x71154, 16364433594bSBjorn Andersson .halt_check = BRANCH_VOTED, 16374433594bSBjorn Andersson .clkr = { 16384433594bSBjorn Andersson .enable_reg = 0x71154, 16394433594bSBjorn Andersson .enable_mask = BIT(0), 16404433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 16414433594bSBjorn Andersson .name = "gcc_ddrss_gpu_axi_clk", 16424433594bSBjorn Andersson .ops = &clk_branch2_ops, 16434433594bSBjorn Andersson }, 16444433594bSBjorn Andersson }, 16454433594bSBjorn Andersson }; 16464433594bSBjorn Andersson 16474433594bSBjorn Andersson static struct clk_branch gcc_disp_hf_axi_clk = { 16484433594bSBjorn Andersson .halt_reg = 0xb038, 16494433594bSBjorn Andersson .halt_check = BRANCH_HALT, 16504433594bSBjorn Andersson .clkr = { 16514433594bSBjorn Andersson .enable_reg = 0xb038, 16524433594bSBjorn Andersson .enable_mask = BIT(0), 16534433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 16544433594bSBjorn Andersson .name = "gcc_disp_hf_axi_clk", 16554433594bSBjorn Andersson .ops = &clk_branch2_ops, 16564433594bSBjorn Andersson }, 16574433594bSBjorn Andersson }, 16584433594bSBjorn Andersson }; 16594433594bSBjorn Andersson 16604433594bSBjorn Andersson static struct clk_branch gcc_disp_sf_axi_clk = { 16614433594bSBjorn Andersson .halt_reg = 0xb03c, 16624433594bSBjorn Andersson .halt_check = BRANCH_HALT, 16634433594bSBjorn Andersson .clkr = { 16644433594bSBjorn Andersson .enable_reg = 0xb03c, 16654433594bSBjorn Andersson .enable_mask = BIT(0), 16664433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 16674433594bSBjorn Andersson .name = "gcc_disp_sf_axi_clk", 16684433594bSBjorn Andersson .ops = &clk_branch2_ops, 16694433594bSBjorn Andersson }, 16704433594bSBjorn Andersson }, 16714433594bSBjorn Andersson }; 16724433594bSBjorn Andersson 16734433594bSBjorn Andersson static struct clk_branch gcc_emac_axi_clk = { 16744433594bSBjorn Andersson .halt_reg = 0x6010, 16754433594bSBjorn Andersson .halt_check = BRANCH_HALT, 16764433594bSBjorn Andersson .clkr = { 16774433594bSBjorn Andersson .enable_reg = 0x6010, 16784433594bSBjorn Andersson .enable_mask = BIT(0), 16794433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 16804433594bSBjorn Andersson .name = "gcc_emac_axi_clk", 16814433594bSBjorn Andersson .ops = &clk_branch2_ops, 16824433594bSBjorn Andersson }, 16834433594bSBjorn Andersson }, 16844433594bSBjorn Andersson }; 16854433594bSBjorn Andersson 16864433594bSBjorn Andersson static struct clk_branch gcc_emac_ptp_clk = { 16874433594bSBjorn Andersson .halt_reg = 0x6034, 16884433594bSBjorn Andersson .halt_check = BRANCH_HALT, 16894433594bSBjorn Andersson .clkr = { 16904433594bSBjorn Andersson .enable_reg = 0x6034, 16914433594bSBjorn Andersson .enable_mask = BIT(0), 16924433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 16934433594bSBjorn Andersson .name = "gcc_emac_ptp_clk", 16944433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 16954433594bSBjorn Andersson &gcc_emac_ptp_clk_src.clkr.hw 16964433594bSBjorn Andersson }, 16974433594bSBjorn Andersson .num_parents = 1, 16984433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 16994433594bSBjorn Andersson .ops = &clk_branch2_ops, 17004433594bSBjorn Andersson }, 17014433594bSBjorn Andersson }, 17024433594bSBjorn Andersson }; 17034433594bSBjorn Andersson 17044433594bSBjorn Andersson static struct clk_branch gcc_emac_rgmii_clk = { 17054433594bSBjorn Andersson .halt_reg = 0x6018, 17064433594bSBjorn Andersson .halt_check = BRANCH_HALT, 17074433594bSBjorn Andersson .clkr = { 17084433594bSBjorn Andersson .enable_reg = 0x6018, 17094433594bSBjorn Andersson .enable_mask = BIT(0), 17104433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 17114433594bSBjorn Andersson .name = "gcc_emac_rgmii_clk", 17124433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 17134433594bSBjorn Andersson &gcc_emac_rgmii_clk_src.clkr.hw 17144433594bSBjorn Andersson }, 17154433594bSBjorn Andersson .num_parents = 1, 17164433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 17174433594bSBjorn Andersson .ops = &clk_branch2_ops, 17184433594bSBjorn Andersson }, 17194433594bSBjorn Andersson }, 17204433594bSBjorn Andersson }; 17214433594bSBjorn Andersson 17224433594bSBjorn Andersson static struct clk_branch gcc_emac_slv_ahb_clk = { 17234433594bSBjorn Andersson .halt_reg = 0x6014, 17244433594bSBjorn Andersson .halt_check = BRANCH_HALT, 17254433594bSBjorn Andersson .hwcg_reg = 0x6014, 17264433594bSBjorn Andersson .hwcg_bit = 1, 17274433594bSBjorn Andersson .clkr = { 17284433594bSBjorn Andersson .enable_reg = 0x6014, 17294433594bSBjorn Andersson .enable_mask = BIT(0), 17304433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 17314433594bSBjorn Andersson .name = "gcc_emac_slv_ahb_clk", 17324433594bSBjorn Andersson .ops = &clk_branch2_ops, 17334433594bSBjorn Andersson }, 17344433594bSBjorn Andersson }, 17354433594bSBjorn Andersson }; 17364433594bSBjorn Andersson 17374433594bSBjorn Andersson static struct clk_branch gcc_gp1_clk = { 17384433594bSBjorn Andersson .halt_reg = 0x64000, 17394433594bSBjorn Andersson .halt_check = BRANCH_HALT, 17404433594bSBjorn Andersson .clkr = { 17414433594bSBjorn Andersson .enable_reg = 0x64000, 17424433594bSBjorn Andersson .enable_mask = BIT(0), 17434433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 17444433594bSBjorn Andersson .name = "gcc_gp1_clk", 17454433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 17464433594bSBjorn Andersson &gcc_gp1_clk_src.clkr.hw 17474433594bSBjorn Andersson }, 17484433594bSBjorn Andersson .num_parents = 1, 17494433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 17504433594bSBjorn Andersson .ops = &clk_branch2_ops, 17514433594bSBjorn Andersson }, 17524433594bSBjorn Andersson }, 17534433594bSBjorn Andersson }; 17544433594bSBjorn Andersson 17554433594bSBjorn Andersson static struct clk_branch gcc_gp2_clk = { 17564433594bSBjorn Andersson .halt_reg = 0x65000, 17574433594bSBjorn Andersson .halt_check = BRANCH_HALT, 17584433594bSBjorn Andersson .clkr = { 17594433594bSBjorn Andersson .enable_reg = 0x65000, 17604433594bSBjorn Andersson .enable_mask = BIT(0), 17614433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 17624433594bSBjorn Andersson .name = "gcc_gp2_clk", 17634433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 17644433594bSBjorn Andersson &gcc_gp2_clk_src.clkr.hw 17654433594bSBjorn Andersson }, 17664433594bSBjorn Andersson .num_parents = 1, 17674433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 17684433594bSBjorn Andersson .ops = &clk_branch2_ops, 17694433594bSBjorn Andersson }, 17704433594bSBjorn Andersson }, 17714433594bSBjorn Andersson }; 17724433594bSBjorn Andersson 17734433594bSBjorn Andersson static struct clk_branch gcc_gp3_clk = { 17744433594bSBjorn Andersson .halt_reg = 0x66000, 17754433594bSBjorn Andersson .halt_check = BRANCH_HALT, 17764433594bSBjorn Andersson .clkr = { 17774433594bSBjorn Andersson .enable_reg = 0x66000, 17784433594bSBjorn Andersson .enable_mask = BIT(0), 17794433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 17804433594bSBjorn Andersson .name = "gcc_gp3_clk", 17814433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 17824433594bSBjorn Andersson &gcc_gp3_clk_src.clkr.hw 17834433594bSBjorn Andersson }, 17844433594bSBjorn Andersson .num_parents = 1, 17854433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 17864433594bSBjorn Andersson .ops = &clk_branch2_ops, 17874433594bSBjorn Andersson }, 17884433594bSBjorn Andersson }, 17894433594bSBjorn Andersson }; 17904433594bSBjorn Andersson 17914433594bSBjorn Andersson static struct clk_branch gcc_gp4_clk = { 17924433594bSBjorn Andersson .halt_reg = 0xbe000, 17934433594bSBjorn Andersson .halt_check = BRANCH_HALT, 17944433594bSBjorn Andersson .clkr = { 17954433594bSBjorn Andersson .enable_reg = 0xbe000, 17964433594bSBjorn Andersson .enable_mask = BIT(0), 17974433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 17984433594bSBjorn Andersson .name = "gcc_gp4_clk", 17994433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 18004433594bSBjorn Andersson &gcc_gp4_clk_src.clkr.hw 18014433594bSBjorn Andersson }, 18024433594bSBjorn Andersson .num_parents = 1, 18034433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 18044433594bSBjorn Andersson .ops = &clk_branch2_ops, 18054433594bSBjorn Andersson }, 18064433594bSBjorn Andersson }, 18074433594bSBjorn Andersson }; 18084433594bSBjorn Andersson 18094433594bSBjorn Andersson static struct clk_branch gcc_gp5_clk = { 18104433594bSBjorn Andersson .halt_reg = 0xbf000, 18114433594bSBjorn Andersson .halt_check = BRANCH_HALT, 18124433594bSBjorn Andersson .clkr = { 18134433594bSBjorn Andersson .enable_reg = 0xbf000, 18144433594bSBjorn Andersson .enable_mask = BIT(0), 18154433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 18164433594bSBjorn Andersson .name = "gcc_gp5_clk", 18174433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 18184433594bSBjorn Andersson &gcc_gp5_clk_src.clkr.hw 18194433594bSBjorn Andersson }, 18204433594bSBjorn Andersson .num_parents = 1, 18214433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 18224433594bSBjorn Andersson .ops = &clk_branch2_ops, 18234433594bSBjorn Andersson }, 18244433594bSBjorn Andersson }, 18254433594bSBjorn Andersson }; 18264433594bSBjorn Andersson 18274433594bSBjorn Andersson static struct clk_branch gcc_gpu_gpll0_clk_src = { 18284433594bSBjorn Andersson .halt_check = BRANCH_HALT_DELAY, 18294433594bSBjorn Andersson .clkr = { 18304433594bSBjorn Andersson .enable_reg = 0x52004, 18314433594bSBjorn Andersson .enable_mask = BIT(15), 18324433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 18334433594bSBjorn Andersson .name = "gcc_gpu_gpll0_clk_src", 18344433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ &gpll0.clkr.hw }, 18354433594bSBjorn Andersson .num_parents = 1, 18364433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 18374433594bSBjorn Andersson .ops = &clk_branch2_ops, 18384433594bSBjorn Andersson }, 18394433594bSBjorn Andersson }, 18404433594bSBjorn Andersson }; 18414433594bSBjorn Andersson 18424433594bSBjorn Andersson static struct clk_branch gcc_gpu_gpll0_div_clk_src = { 18434433594bSBjorn Andersson .halt_check = BRANCH_HALT_DELAY, 18444433594bSBjorn Andersson .clkr = { 18454433594bSBjorn Andersson .enable_reg = 0x52004, 18464433594bSBjorn Andersson .enable_mask = BIT(16), 18474433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 18484433594bSBjorn Andersson .name = "gcc_gpu_gpll0_div_clk_src", 18494433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 18504433594bSBjorn Andersson &gpll0_out_even.clkr.hw 18514433594bSBjorn Andersson }, 18524433594bSBjorn Andersson .num_parents = 1, 18534433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 18544433594bSBjorn Andersson .ops = &clk_branch2_ops, 18554433594bSBjorn Andersson }, 18564433594bSBjorn Andersson }, 18574433594bSBjorn Andersson }; 18584433594bSBjorn Andersson 18594433594bSBjorn Andersson static struct clk_branch gcc_gpu_memnoc_gfx_clk = { 18604433594bSBjorn Andersson .halt_reg = 0x7100c, 18614433594bSBjorn Andersson .halt_check = BRANCH_VOTED, 18624433594bSBjorn Andersson .clkr = { 18634433594bSBjorn Andersson .enable_reg = 0x7100c, 18644433594bSBjorn Andersson .enable_mask = BIT(0), 18654433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 18664433594bSBjorn Andersson .name = "gcc_gpu_memnoc_gfx_clk", 18674433594bSBjorn Andersson .ops = &clk_branch2_ops, 18684433594bSBjorn Andersson }, 18694433594bSBjorn Andersson }, 18704433594bSBjorn Andersson }; 18714433594bSBjorn Andersson 18724433594bSBjorn Andersson static struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = { 18734433594bSBjorn Andersson .halt_reg = 0x71018, 18744433594bSBjorn Andersson .halt_check = BRANCH_HALT, 18754433594bSBjorn Andersson .clkr = { 18764433594bSBjorn Andersson .enable_reg = 0x71018, 18774433594bSBjorn Andersson .enable_mask = BIT(0), 18784433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 18794433594bSBjorn Andersson .name = "gcc_gpu_snoc_dvm_gfx_clk", 18804433594bSBjorn Andersson .ops = &clk_branch2_ops, 18814433594bSBjorn Andersson }, 18824433594bSBjorn Andersson }, 18834433594bSBjorn Andersson }; 18844433594bSBjorn Andersson 18854433594bSBjorn Andersson static struct clk_branch gcc_npu_at_clk = { 18864433594bSBjorn Andersson .halt_reg = 0x4d010, 18874433594bSBjorn Andersson .halt_check = BRANCH_VOTED, 18884433594bSBjorn Andersson .clkr = { 18894433594bSBjorn Andersson .enable_reg = 0x4d010, 18904433594bSBjorn Andersson .enable_mask = BIT(0), 18914433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 18924433594bSBjorn Andersson .name = "gcc_npu_at_clk", 18934433594bSBjorn Andersson .ops = &clk_branch2_ops, 18944433594bSBjorn Andersson }, 18954433594bSBjorn Andersson }, 18964433594bSBjorn Andersson }; 18974433594bSBjorn Andersson 18984433594bSBjorn Andersson static struct clk_branch gcc_npu_axi_clk = { 18994433594bSBjorn Andersson .halt_reg = 0x4d008, 19004433594bSBjorn Andersson .halt_check = BRANCH_VOTED, 19014433594bSBjorn Andersson .clkr = { 19024433594bSBjorn Andersson .enable_reg = 0x4d008, 19034433594bSBjorn Andersson .enable_mask = BIT(0), 19044433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 19054433594bSBjorn Andersson .name = "gcc_npu_axi_clk", 19064433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 19074433594bSBjorn Andersson &gcc_npu_axi_clk_src.clkr.hw 19084433594bSBjorn Andersson }, 19094433594bSBjorn Andersson .num_parents = 1, 19104433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 19114433594bSBjorn Andersson .ops = &clk_branch2_ops, 19124433594bSBjorn Andersson }, 19134433594bSBjorn Andersson }, 19144433594bSBjorn Andersson }; 19154433594bSBjorn Andersson 19164433594bSBjorn Andersson static struct clk_branch gcc_npu_gpll0_clk_src = { 19174433594bSBjorn Andersson .halt_check = BRANCH_HALT_DELAY, 19184433594bSBjorn Andersson .clkr = { 19194433594bSBjorn Andersson .enable_reg = 0x52004, 19204433594bSBjorn Andersson .enable_mask = BIT(18), 19214433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 19224433594bSBjorn Andersson .name = "gcc_npu_gpll0_clk_src", 19234433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ &gpll0.clkr.hw }, 19244433594bSBjorn Andersson .num_parents = 1, 19254433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 19264433594bSBjorn Andersson .ops = &clk_branch2_ops, 19274433594bSBjorn Andersson }, 19284433594bSBjorn Andersson }, 19294433594bSBjorn Andersson }; 19304433594bSBjorn Andersson 19314433594bSBjorn Andersson static struct clk_branch gcc_npu_gpll0_div_clk_src = { 19324433594bSBjorn Andersson .halt_check = BRANCH_HALT_DELAY, 19334433594bSBjorn Andersson .clkr = { 19344433594bSBjorn Andersson .enable_reg = 0x52004, 19354433594bSBjorn Andersson .enable_mask = BIT(19), 19364433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 19374433594bSBjorn Andersson .name = "gcc_npu_gpll0_div_clk_src", 19384433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 19394433594bSBjorn Andersson &gpll0_out_even.clkr.hw 19404433594bSBjorn Andersson }, 19414433594bSBjorn Andersson .num_parents = 1, 19424433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 19434433594bSBjorn Andersson .ops = &clk_branch2_ops, 19444433594bSBjorn Andersson }, 19454433594bSBjorn Andersson }, 19464433594bSBjorn Andersson }; 19474433594bSBjorn Andersson 19484433594bSBjorn Andersson static struct clk_branch gcc_npu_trig_clk = { 19494433594bSBjorn Andersson .halt_reg = 0x4d00c, 19504433594bSBjorn Andersson .halt_check = BRANCH_VOTED, 19514433594bSBjorn Andersson .clkr = { 19524433594bSBjorn Andersson .enable_reg = 0x4d00c, 19534433594bSBjorn Andersson .enable_mask = BIT(0), 19544433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 19554433594bSBjorn Andersson .name = "gcc_npu_trig_clk", 19564433594bSBjorn Andersson .ops = &clk_branch2_ops, 19574433594bSBjorn Andersson }, 19584433594bSBjorn Andersson }, 19594433594bSBjorn Andersson }; 19604433594bSBjorn Andersson 19614433594bSBjorn Andersson static struct clk_branch gcc_pcie0_phy_refgen_clk = { 19624433594bSBjorn Andersson .halt_reg = 0x6f02c, 19634433594bSBjorn Andersson .halt_check = BRANCH_HALT, 19644433594bSBjorn Andersson .clkr = { 19654433594bSBjorn Andersson .enable_reg = 0x6f02c, 19664433594bSBjorn Andersson .enable_mask = BIT(0), 19674433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 19684433594bSBjorn Andersson .name = "gcc_pcie0_phy_refgen_clk", 19694433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 19704433594bSBjorn Andersson &gcc_pcie_phy_refgen_clk_src.clkr.hw 19714433594bSBjorn Andersson }, 19724433594bSBjorn Andersson .num_parents = 1, 19734433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 19744433594bSBjorn Andersson .ops = &clk_branch2_ops, 19754433594bSBjorn Andersson }, 19764433594bSBjorn Andersson }, 19774433594bSBjorn Andersson }; 19784433594bSBjorn Andersson 19794433594bSBjorn Andersson static struct clk_branch gcc_pcie1_phy_refgen_clk = { 19804433594bSBjorn Andersson .halt_reg = 0x6f030, 19814433594bSBjorn Andersson .halt_check = BRANCH_HALT, 19824433594bSBjorn Andersson .clkr = { 19834433594bSBjorn Andersson .enable_reg = 0x6f030, 19844433594bSBjorn Andersson .enable_mask = BIT(0), 19854433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 19864433594bSBjorn Andersson .name = "gcc_pcie1_phy_refgen_clk", 19874433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 19884433594bSBjorn Andersson &gcc_pcie_phy_refgen_clk_src.clkr.hw 19894433594bSBjorn Andersson }, 19904433594bSBjorn Andersson .num_parents = 1, 19914433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 19924433594bSBjorn Andersson .ops = &clk_branch2_ops, 19934433594bSBjorn Andersson }, 19944433594bSBjorn Andersson }, 19954433594bSBjorn Andersson }; 19964433594bSBjorn Andersson 19974433594bSBjorn Andersson static struct clk_branch gcc_pcie2_phy_refgen_clk = { 19984433594bSBjorn Andersson .halt_reg = 0x6f034, 19994433594bSBjorn Andersson .halt_check = BRANCH_HALT, 20004433594bSBjorn Andersson .clkr = { 20014433594bSBjorn Andersson .enable_reg = 0x6f034, 20024433594bSBjorn Andersson .enable_mask = BIT(0), 20034433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 20044433594bSBjorn Andersson .name = "gcc_pcie2_phy_refgen_clk", 20054433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 20064433594bSBjorn Andersson &gcc_pcie_phy_refgen_clk_src.clkr.hw 20074433594bSBjorn Andersson }, 20084433594bSBjorn Andersson .num_parents = 1, 20094433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 20104433594bSBjorn Andersson .ops = &clk_branch2_ops, 20114433594bSBjorn Andersson }, 20124433594bSBjorn Andersson }, 20134433594bSBjorn Andersson }; 20144433594bSBjorn Andersson 20154433594bSBjorn Andersson static struct clk_branch gcc_pcie3_phy_refgen_clk = { 20164433594bSBjorn Andersson .halt_reg = 0x6f038, 20174433594bSBjorn Andersson .halt_check = BRANCH_HALT, 20184433594bSBjorn Andersson .clkr = { 20194433594bSBjorn Andersson .enable_reg = 0x6f038, 20204433594bSBjorn Andersson .enable_mask = BIT(0), 20214433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 20224433594bSBjorn Andersson .name = "gcc_pcie3_phy_refgen_clk", 20234433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 20244433594bSBjorn Andersson &gcc_pcie_phy_refgen_clk_src.clkr.hw 20254433594bSBjorn Andersson }, 20264433594bSBjorn Andersson .num_parents = 1, 20274433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 20284433594bSBjorn Andersson .ops = &clk_branch2_ops, 20294433594bSBjorn Andersson }, 20304433594bSBjorn Andersson }, 20314433594bSBjorn Andersson }; 20324433594bSBjorn Andersson 20334433594bSBjorn Andersson static struct clk_branch gcc_pcie_0_aux_clk = { 20344433594bSBjorn Andersson .halt_reg = 0x6b020, 20354433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 20364433594bSBjorn Andersson .clkr = { 20374433594bSBjorn Andersson .enable_reg = 0x5200c, 20384433594bSBjorn Andersson .enable_mask = BIT(3), 20394433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 20404433594bSBjorn Andersson .name = "gcc_pcie_0_aux_clk", 20414433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 20424433594bSBjorn Andersson &gcc_pcie_0_aux_clk_src.clkr.hw 20434433594bSBjorn Andersson }, 20444433594bSBjorn Andersson .num_parents = 1, 20454433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 20464433594bSBjorn Andersson .ops = &clk_branch2_ops, 20474433594bSBjorn Andersson }, 20484433594bSBjorn Andersson }, 20494433594bSBjorn Andersson }; 20504433594bSBjorn Andersson 20514433594bSBjorn Andersson static struct clk_branch gcc_pcie_0_cfg_ahb_clk = { 20524433594bSBjorn Andersson .halt_reg = 0x6b01c, 20534433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 20544433594bSBjorn Andersson .hwcg_reg = 0x6b01c, 20554433594bSBjorn Andersson .hwcg_bit = 1, 20564433594bSBjorn Andersson .clkr = { 20574433594bSBjorn Andersson .enable_reg = 0x5200c, 20584433594bSBjorn Andersson .enable_mask = BIT(2), 20594433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 20604433594bSBjorn Andersson .name = "gcc_pcie_0_cfg_ahb_clk", 20614433594bSBjorn Andersson .ops = &clk_branch2_ops, 20624433594bSBjorn Andersson }, 20634433594bSBjorn Andersson }, 20644433594bSBjorn Andersson }; 20654433594bSBjorn Andersson 20664433594bSBjorn Andersson static struct clk_branch gcc_pcie_0_clkref_clk = { 20674433594bSBjorn Andersson .halt_reg = 0x8c00c, 20684433594bSBjorn Andersson .halt_check = BRANCH_HALT, 20694433594bSBjorn Andersson .clkr = { 20704433594bSBjorn Andersson .enable_reg = 0x8c00c, 20714433594bSBjorn Andersson .enable_mask = BIT(0), 20724433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 20734433594bSBjorn Andersson .name = "gcc_pcie_0_clkref_clk", 20744433594bSBjorn Andersson .ops = &clk_branch2_ops, 20754433594bSBjorn Andersson }, 20764433594bSBjorn Andersson }, 20774433594bSBjorn Andersson }; 20784433594bSBjorn Andersson 20794433594bSBjorn Andersson static struct clk_branch gcc_pcie_0_mstr_axi_clk = { 20804433594bSBjorn Andersson .halt_reg = 0x6b018, 20814433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 20824433594bSBjorn Andersson .clkr = { 20834433594bSBjorn Andersson .enable_reg = 0x5200c, 20844433594bSBjorn Andersson .enable_mask = BIT(1), 20854433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 20864433594bSBjorn Andersson .name = "gcc_pcie_0_mstr_axi_clk", 20874433594bSBjorn Andersson .ops = &clk_branch2_ops, 20884433594bSBjorn Andersson }, 20894433594bSBjorn Andersson }, 20904433594bSBjorn Andersson }; 20914433594bSBjorn Andersson 20924433594bSBjorn Andersson static struct clk_branch gcc_pcie_0_pipe_clk = { 20934433594bSBjorn Andersson .halt_reg = 0x6b024, 20944433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 20954433594bSBjorn Andersson .clkr = { 20964433594bSBjorn Andersson .enable_reg = 0x5200c, 20974433594bSBjorn Andersson .enable_mask = BIT(4), 20984433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 20994433594bSBjorn Andersson .name = "gcc_pcie_0_pipe_clk", 21004433594bSBjorn Andersson .ops = &clk_branch2_ops, 21014433594bSBjorn Andersson }, 21024433594bSBjorn Andersson }, 21034433594bSBjorn Andersson }; 21044433594bSBjorn Andersson 21054433594bSBjorn Andersson static struct clk_branch gcc_pcie_0_slv_axi_clk = { 21064433594bSBjorn Andersson .halt_reg = 0x6b014, 21074433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 21084433594bSBjorn Andersson .hwcg_reg = 0x6b014, 21094433594bSBjorn Andersson .hwcg_bit = 1, 21104433594bSBjorn Andersson .clkr = { 21114433594bSBjorn Andersson .enable_reg = 0x5200c, 21124433594bSBjorn Andersson .enable_mask = BIT(0), 21134433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 21144433594bSBjorn Andersson .name = "gcc_pcie_0_slv_axi_clk", 21154433594bSBjorn Andersson .ops = &clk_branch2_ops, 21164433594bSBjorn Andersson }, 21174433594bSBjorn Andersson }, 21184433594bSBjorn Andersson }; 21194433594bSBjorn Andersson 21204433594bSBjorn Andersson static struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = { 21214433594bSBjorn Andersson .halt_reg = 0x6b010, 21224433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 21234433594bSBjorn Andersson .clkr = { 21244433594bSBjorn Andersson .enable_reg = 0x5200c, 21254433594bSBjorn Andersson .enable_mask = BIT(5), 21264433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 21274433594bSBjorn Andersson .name = "gcc_pcie_0_slv_q2a_axi_clk", 21284433594bSBjorn Andersson .ops = &clk_branch2_ops, 21294433594bSBjorn Andersson }, 21304433594bSBjorn Andersson }, 21314433594bSBjorn Andersson }; 21324433594bSBjorn Andersson 21334433594bSBjorn Andersson static struct clk_branch gcc_pcie_1_aux_clk = { 21344433594bSBjorn Andersson .halt_reg = 0x8d020, 21354433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 21364433594bSBjorn Andersson .clkr = { 21374433594bSBjorn Andersson .enable_reg = 0x52004, 21384433594bSBjorn Andersson .enable_mask = BIT(29), 21394433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 21404433594bSBjorn Andersson .name = "gcc_pcie_1_aux_clk", 21414433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 21424433594bSBjorn Andersson &gcc_pcie_1_aux_clk_src.clkr.hw 21434433594bSBjorn Andersson }, 21444433594bSBjorn Andersson .num_parents = 1, 21454433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 21464433594bSBjorn Andersson .ops = &clk_branch2_ops, 21474433594bSBjorn Andersson }, 21484433594bSBjorn Andersson }, 21494433594bSBjorn Andersson }; 21504433594bSBjorn Andersson 21514433594bSBjorn Andersson static struct clk_branch gcc_pcie_1_cfg_ahb_clk = { 21524433594bSBjorn Andersson .halt_reg = 0x8d01c, 21534433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 21544433594bSBjorn Andersson .hwcg_reg = 0x8d01c, 21554433594bSBjorn Andersson .hwcg_bit = 1, 21564433594bSBjorn Andersson .clkr = { 21574433594bSBjorn Andersson .enable_reg = 0x52004, 21584433594bSBjorn Andersson .enable_mask = BIT(28), 21594433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 21604433594bSBjorn Andersson .name = "gcc_pcie_1_cfg_ahb_clk", 21614433594bSBjorn Andersson .ops = &clk_branch2_ops, 21624433594bSBjorn Andersson }, 21634433594bSBjorn Andersson }, 21644433594bSBjorn Andersson }; 21654433594bSBjorn Andersson 21664433594bSBjorn Andersson static struct clk_branch gcc_pcie_1_clkref_clk = { 21674433594bSBjorn Andersson .halt_reg = 0x8c02c, 21684433594bSBjorn Andersson .halt_check = BRANCH_HALT, 21694433594bSBjorn Andersson .clkr = { 21704433594bSBjorn Andersson .enable_reg = 0x8c02c, 21714433594bSBjorn Andersson .enable_mask = BIT(0), 21724433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 21734433594bSBjorn Andersson .name = "gcc_pcie_1_clkref_clk", 21744433594bSBjorn Andersson .ops = &clk_branch2_ops, 21754433594bSBjorn Andersson }, 21764433594bSBjorn Andersson }, 21774433594bSBjorn Andersson }; 21784433594bSBjorn Andersson 21794433594bSBjorn Andersson static struct clk_branch gcc_pcie_1_mstr_axi_clk = { 21804433594bSBjorn Andersson .halt_reg = 0x8d018, 21814433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 21824433594bSBjorn Andersson .clkr = { 21834433594bSBjorn Andersson .enable_reg = 0x52004, 21844433594bSBjorn Andersson .enable_mask = BIT(27), 21854433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 21864433594bSBjorn Andersson .name = "gcc_pcie_1_mstr_axi_clk", 21874433594bSBjorn Andersson .ops = &clk_branch2_ops, 21884433594bSBjorn Andersson }, 21894433594bSBjorn Andersson }, 21904433594bSBjorn Andersson }; 21914433594bSBjorn Andersson 21924433594bSBjorn Andersson static struct clk_branch gcc_pcie_1_pipe_clk = { 21934433594bSBjorn Andersson .halt_reg = 0x8d024, 21944433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 21954433594bSBjorn Andersson .clkr = { 21964433594bSBjorn Andersson .enable_reg = 0x52004, 21974433594bSBjorn Andersson .enable_mask = BIT(30), 21984433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 21994433594bSBjorn Andersson .name = "gcc_pcie_1_pipe_clk", 22004433594bSBjorn Andersson .ops = &clk_branch2_ops, 22014433594bSBjorn Andersson }, 22024433594bSBjorn Andersson }, 22034433594bSBjorn Andersson }; 22044433594bSBjorn Andersson 22054433594bSBjorn Andersson static struct clk_branch gcc_pcie_1_slv_axi_clk = { 22064433594bSBjorn Andersson .halt_reg = 0x8d014, 22074433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 22084433594bSBjorn Andersson .hwcg_reg = 0x8d014, 22094433594bSBjorn Andersson .hwcg_bit = 1, 22104433594bSBjorn Andersson .clkr = { 22114433594bSBjorn Andersson .enable_reg = 0x52004, 22124433594bSBjorn Andersson .enable_mask = BIT(26), 22134433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 22144433594bSBjorn Andersson .name = "gcc_pcie_1_slv_axi_clk", 22154433594bSBjorn Andersson .ops = &clk_branch2_ops, 22164433594bSBjorn Andersson }, 22174433594bSBjorn Andersson }, 22184433594bSBjorn Andersson }; 22194433594bSBjorn Andersson 22204433594bSBjorn Andersson static struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = { 22214433594bSBjorn Andersson .halt_reg = 0x8d010, 22224433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 22234433594bSBjorn Andersson .clkr = { 22244433594bSBjorn Andersson .enable_reg = 0x52004, 22254433594bSBjorn Andersson .enable_mask = BIT(25), 22264433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 22274433594bSBjorn Andersson .name = "gcc_pcie_1_slv_q2a_axi_clk", 22284433594bSBjorn Andersson .ops = &clk_branch2_ops, 22294433594bSBjorn Andersson }, 22304433594bSBjorn Andersson }, 22314433594bSBjorn Andersson }; 22324433594bSBjorn Andersson 22334433594bSBjorn Andersson static struct clk_branch gcc_pcie_2_aux_clk = { 22344433594bSBjorn Andersson .halt_reg = 0x9d020, 22354433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 22364433594bSBjorn Andersson .clkr = { 22374433594bSBjorn Andersson .enable_reg = 0x52014, 22384433594bSBjorn Andersson .enable_mask = BIT(14), 22394433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 22404433594bSBjorn Andersson .name = "gcc_pcie_2_aux_clk", 22414433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 22424433594bSBjorn Andersson &gcc_pcie_2_aux_clk_src.clkr.hw 22434433594bSBjorn Andersson }, 22444433594bSBjorn Andersson .num_parents = 1, 22454433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 22464433594bSBjorn Andersson .ops = &clk_branch2_ops, 22474433594bSBjorn Andersson }, 22484433594bSBjorn Andersson }, 22494433594bSBjorn Andersson }; 22504433594bSBjorn Andersson 22514433594bSBjorn Andersson static struct clk_branch gcc_pcie_2_cfg_ahb_clk = { 22524433594bSBjorn Andersson .halt_reg = 0x9d01c, 22534433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 22544433594bSBjorn Andersson .hwcg_reg = 0x9d01c, 22554433594bSBjorn Andersson .hwcg_bit = 1, 22564433594bSBjorn Andersson .clkr = { 22574433594bSBjorn Andersson .enable_reg = 0x52014, 22584433594bSBjorn Andersson .enable_mask = BIT(13), 22594433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 22604433594bSBjorn Andersson .name = "gcc_pcie_2_cfg_ahb_clk", 22614433594bSBjorn Andersson .ops = &clk_branch2_ops, 22624433594bSBjorn Andersson }, 22634433594bSBjorn Andersson }, 22644433594bSBjorn Andersson }; 22654433594bSBjorn Andersson 22664433594bSBjorn Andersson static struct clk_branch gcc_pcie_2_clkref_clk = { 22674433594bSBjorn Andersson .halt_reg = 0x8c014, 22684433594bSBjorn Andersson .halt_check = BRANCH_HALT, 22694433594bSBjorn Andersson .clkr = { 22704433594bSBjorn Andersson .enable_reg = 0x8c014, 22714433594bSBjorn Andersson .enable_mask = BIT(0), 22724433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 22734433594bSBjorn Andersson .name = "gcc_pcie_2_clkref_clk", 22744433594bSBjorn Andersson .ops = &clk_branch2_ops, 22754433594bSBjorn Andersson }, 22764433594bSBjorn Andersson }, 22774433594bSBjorn Andersson }; 22784433594bSBjorn Andersson 22794433594bSBjorn Andersson static struct clk_branch gcc_pcie_2_mstr_axi_clk = { 22804433594bSBjorn Andersson .halt_reg = 0x9d018, 22814433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 22824433594bSBjorn Andersson .clkr = { 22834433594bSBjorn Andersson .enable_reg = 0x52014, 22844433594bSBjorn Andersson .enable_mask = BIT(12), 22854433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 22864433594bSBjorn Andersson .name = "gcc_pcie_2_mstr_axi_clk", 22874433594bSBjorn Andersson .ops = &clk_branch2_ops, 22884433594bSBjorn Andersson }, 22894433594bSBjorn Andersson }, 22904433594bSBjorn Andersson }; 22914433594bSBjorn Andersson 22924433594bSBjorn Andersson static struct clk_branch gcc_pcie_2_pipe_clk = { 22934433594bSBjorn Andersson .halt_reg = 0x9d024, 22944433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 22954433594bSBjorn Andersson .clkr = { 22964433594bSBjorn Andersson .enable_reg = 0x52014, 22974433594bSBjorn Andersson .enable_mask = BIT(15), 22984433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 22994433594bSBjorn Andersson .name = "gcc_pcie_2_pipe_clk", 23004433594bSBjorn Andersson .ops = &clk_branch2_ops, 23014433594bSBjorn Andersson }, 23024433594bSBjorn Andersson }, 23034433594bSBjorn Andersson }; 23044433594bSBjorn Andersson 23054433594bSBjorn Andersson static struct clk_branch gcc_pcie_2_slv_axi_clk = { 23064433594bSBjorn Andersson .halt_reg = 0x9d014, 23074433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 23084433594bSBjorn Andersson .hwcg_reg = 0x9d014, 23094433594bSBjorn Andersson .hwcg_bit = 1, 23104433594bSBjorn Andersson .clkr = { 23114433594bSBjorn Andersson .enable_reg = 0x52014, 23124433594bSBjorn Andersson .enable_mask = BIT(11), 23134433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 23144433594bSBjorn Andersson .name = "gcc_pcie_2_slv_axi_clk", 23154433594bSBjorn Andersson .ops = &clk_branch2_ops, 23164433594bSBjorn Andersson }, 23174433594bSBjorn Andersson }, 23184433594bSBjorn Andersson }; 23194433594bSBjorn Andersson 23204433594bSBjorn Andersson static struct clk_branch gcc_pcie_2_slv_q2a_axi_clk = { 23214433594bSBjorn Andersson .halt_reg = 0x9d010, 23224433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 23234433594bSBjorn Andersson .clkr = { 23244433594bSBjorn Andersson .enable_reg = 0x52014, 23254433594bSBjorn Andersson .enable_mask = BIT(10), 23264433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 23274433594bSBjorn Andersson .name = "gcc_pcie_2_slv_q2a_axi_clk", 23284433594bSBjorn Andersson .ops = &clk_branch2_ops, 23294433594bSBjorn Andersson }, 23304433594bSBjorn Andersson }, 23314433594bSBjorn Andersson }; 23324433594bSBjorn Andersson 23334433594bSBjorn Andersson static struct clk_branch gcc_pcie_3_aux_clk = { 23344433594bSBjorn Andersson .halt_reg = 0xa3020, 23354433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 23364433594bSBjorn Andersson .clkr = { 23374433594bSBjorn Andersson .enable_reg = 0x52014, 23384433594bSBjorn Andersson .enable_mask = BIT(20), 23394433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 23404433594bSBjorn Andersson .name = "gcc_pcie_3_aux_clk", 23414433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 23424433594bSBjorn Andersson &gcc_pcie_3_aux_clk_src.clkr.hw 23434433594bSBjorn Andersson }, 23444433594bSBjorn Andersson .num_parents = 1, 23454433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 23464433594bSBjorn Andersson .ops = &clk_branch2_ops, 23474433594bSBjorn Andersson }, 23484433594bSBjorn Andersson }, 23494433594bSBjorn Andersson }; 23504433594bSBjorn Andersson 23514433594bSBjorn Andersson static struct clk_branch gcc_pcie_3_cfg_ahb_clk = { 23524433594bSBjorn Andersson .halt_reg = 0xa301c, 23534433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 23544433594bSBjorn Andersson .hwcg_reg = 0xa301c, 23554433594bSBjorn Andersson .hwcg_bit = 1, 23564433594bSBjorn Andersson .clkr = { 23574433594bSBjorn Andersson .enable_reg = 0x52014, 23584433594bSBjorn Andersson .enable_mask = BIT(19), 23594433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 23604433594bSBjorn Andersson .name = "gcc_pcie_3_cfg_ahb_clk", 23614433594bSBjorn Andersson .ops = &clk_branch2_ops, 23624433594bSBjorn Andersson }, 23634433594bSBjorn Andersson }, 23644433594bSBjorn Andersson }; 23654433594bSBjorn Andersson 23664433594bSBjorn Andersson static struct clk_branch gcc_pcie_3_clkref_clk = { 23674433594bSBjorn Andersson .halt_reg = 0x8c018, 23684433594bSBjorn Andersson .halt_check = BRANCH_HALT, 23694433594bSBjorn Andersson .clkr = { 23704433594bSBjorn Andersson .enable_reg = 0x8c018, 23714433594bSBjorn Andersson .enable_mask = BIT(0), 23724433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 23734433594bSBjorn Andersson .name = "gcc_pcie_3_clkref_clk", 23744433594bSBjorn Andersson .ops = &clk_branch2_ops, 23754433594bSBjorn Andersson }, 23764433594bSBjorn Andersson }, 23774433594bSBjorn Andersson }; 23784433594bSBjorn Andersson 23794433594bSBjorn Andersson static struct clk_branch gcc_pcie_3_mstr_axi_clk = { 23804433594bSBjorn Andersson .halt_reg = 0xa3018, 23814433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 23824433594bSBjorn Andersson .clkr = { 23834433594bSBjorn Andersson .enable_reg = 0x52014, 23844433594bSBjorn Andersson .enable_mask = BIT(18), 23854433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 23864433594bSBjorn Andersson .name = "gcc_pcie_3_mstr_axi_clk", 23874433594bSBjorn Andersson .ops = &clk_branch2_ops, 23884433594bSBjorn Andersson }, 23894433594bSBjorn Andersson }, 23904433594bSBjorn Andersson }; 23914433594bSBjorn Andersson 23924433594bSBjorn Andersson static struct clk_branch gcc_pcie_3_pipe_clk = { 23934433594bSBjorn Andersson .halt_reg = 0xa3024, 23944433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 23954433594bSBjorn Andersson .clkr = { 23964433594bSBjorn Andersson .enable_reg = 0x52014, 23974433594bSBjorn Andersson .enable_mask = BIT(21), 23984433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 23994433594bSBjorn Andersson .name = "gcc_pcie_3_pipe_clk", 24004433594bSBjorn Andersson .ops = &clk_branch2_ops, 24014433594bSBjorn Andersson }, 24024433594bSBjorn Andersson }, 24034433594bSBjorn Andersson }; 24044433594bSBjorn Andersson 24054433594bSBjorn Andersson static struct clk_branch gcc_pcie_3_slv_axi_clk = { 24064433594bSBjorn Andersson .halt_reg = 0xa3014, 24074433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 24084433594bSBjorn Andersson .hwcg_reg = 0xa3014, 24094433594bSBjorn Andersson .hwcg_bit = 1, 24104433594bSBjorn Andersson .clkr = { 24114433594bSBjorn Andersson .enable_reg = 0x52014, 24124433594bSBjorn Andersson .enable_mask = BIT(17), 24134433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 24144433594bSBjorn Andersson .name = "gcc_pcie_3_slv_axi_clk", 24154433594bSBjorn Andersson .ops = &clk_branch2_ops, 24164433594bSBjorn Andersson }, 24174433594bSBjorn Andersson }, 24184433594bSBjorn Andersson }; 24194433594bSBjorn Andersson 24204433594bSBjorn Andersson static struct clk_branch gcc_pcie_3_slv_q2a_axi_clk = { 24214433594bSBjorn Andersson .halt_reg = 0xa3010, 24224433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 24234433594bSBjorn Andersson .clkr = { 24244433594bSBjorn Andersson .enable_reg = 0x52014, 24254433594bSBjorn Andersson .enable_mask = BIT(16), 24264433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 24274433594bSBjorn Andersson .name = "gcc_pcie_3_slv_q2a_axi_clk", 24284433594bSBjorn Andersson .ops = &clk_branch2_ops, 24294433594bSBjorn Andersson }, 24304433594bSBjorn Andersson }, 24314433594bSBjorn Andersson }; 24324433594bSBjorn Andersson 24334433594bSBjorn Andersson static struct clk_branch gcc_pcie_phy_aux_clk = { 24344433594bSBjorn Andersson .halt_reg = 0x6f004, 24354433594bSBjorn Andersson .halt_check = BRANCH_HALT, 24364433594bSBjorn Andersson .clkr = { 24374433594bSBjorn Andersson .enable_reg = 0x6f004, 24384433594bSBjorn Andersson .enable_mask = BIT(0), 24394433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 24404433594bSBjorn Andersson .name = "gcc_pcie_phy_aux_clk", 24414433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 24424433594bSBjorn Andersson &gcc_pcie_0_aux_clk_src.clkr.hw 24434433594bSBjorn Andersson }, 24444433594bSBjorn Andersson .num_parents = 1, 24454433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 24464433594bSBjorn Andersson .ops = &clk_branch2_ops, 24474433594bSBjorn Andersson }, 24484433594bSBjorn Andersson }, 24494433594bSBjorn Andersson }; 24504433594bSBjorn Andersson 24514433594bSBjorn Andersson static struct clk_branch gcc_pdm2_clk = { 24524433594bSBjorn Andersson .halt_reg = 0x3300c, 24534433594bSBjorn Andersson .halt_check = BRANCH_HALT, 24544433594bSBjorn Andersson .clkr = { 24554433594bSBjorn Andersson .enable_reg = 0x3300c, 24564433594bSBjorn Andersson .enable_mask = BIT(0), 24574433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 24584433594bSBjorn Andersson .name = "gcc_pdm2_clk", 24594433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 24604433594bSBjorn Andersson &gcc_pdm2_clk_src.clkr.hw 24614433594bSBjorn Andersson }, 24624433594bSBjorn Andersson .num_parents = 1, 24634433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 24644433594bSBjorn Andersson .ops = &clk_branch2_ops, 24654433594bSBjorn Andersson }, 24664433594bSBjorn Andersson }, 24674433594bSBjorn Andersson }; 24684433594bSBjorn Andersson 24694433594bSBjorn Andersson static struct clk_branch gcc_pdm_ahb_clk = { 24704433594bSBjorn Andersson .halt_reg = 0x33004, 24714433594bSBjorn Andersson .halt_check = BRANCH_HALT, 24724433594bSBjorn Andersson .hwcg_reg = 0x33004, 24734433594bSBjorn Andersson .hwcg_bit = 1, 24744433594bSBjorn Andersson .clkr = { 24754433594bSBjorn Andersson .enable_reg = 0x33004, 24764433594bSBjorn Andersson .enable_mask = BIT(0), 24774433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 24784433594bSBjorn Andersson .name = "gcc_pdm_ahb_clk", 24794433594bSBjorn Andersson .ops = &clk_branch2_ops, 24804433594bSBjorn Andersson }, 24814433594bSBjorn Andersson }, 24824433594bSBjorn Andersson }; 24834433594bSBjorn Andersson 24844433594bSBjorn Andersson static struct clk_branch gcc_pdm_xo4_clk = { 24854433594bSBjorn Andersson .halt_reg = 0x33008, 24864433594bSBjorn Andersson .halt_check = BRANCH_HALT, 24874433594bSBjorn Andersson .clkr = { 24884433594bSBjorn Andersson .enable_reg = 0x33008, 24894433594bSBjorn Andersson .enable_mask = BIT(0), 24904433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 24914433594bSBjorn Andersson .name = "gcc_pdm_xo4_clk", 24924433594bSBjorn Andersson .ops = &clk_branch2_ops, 24934433594bSBjorn Andersson }, 24944433594bSBjorn Andersson }, 24954433594bSBjorn Andersson }; 24964433594bSBjorn Andersson 24974433594bSBjorn Andersson static struct clk_branch gcc_prng_ahb_clk = { 24984433594bSBjorn Andersson .halt_reg = 0x34004, 24994433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 25004433594bSBjorn Andersson .clkr = { 25014433594bSBjorn Andersson .enable_reg = 0x52004, 25024433594bSBjorn Andersson .enable_mask = BIT(13), 25034433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 25044433594bSBjorn Andersson .name = "gcc_prng_ahb_clk", 25054433594bSBjorn Andersson .ops = &clk_branch2_ops, 25064433594bSBjorn Andersson }, 25074433594bSBjorn Andersson }, 25084433594bSBjorn Andersson }; 25094433594bSBjorn Andersson 25104433594bSBjorn Andersson static struct clk_branch gcc_qmip_camera_nrt_ahb_clk = { 25114433594bSBjorn Andersson .halt_reg = 0xb018, 25124433594bSBjorn Andersson .halt_check = BRANCH_HALT, 25134433594bSBjorn Andersson .hwcg_reg = 0xb018, 25144433594bSBjorn Andersson .hwcg_bit = 1, 25154433594bSBjorn Andersson .clkr = { 25164433594bSBjorn Andersson .enable_reg = 0xb018, 25174433594bSBjorn Andersson .enable_mask = BIT(0), 25184433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 25194433594bSBjorn Andersson .name = "gcc_qmip_camera_nrt_ahb_clk", 25204433594bSBjorn Andersson .ops = &clk_branch2_ops, 25214433594bSBjorn Andersson }, 25224433594bSBjorn Andersson }, 25234433594bSBjorn Andersson }; 25244433594bSBjorn Andersson 25254433594bSBjorn Andersson static struct clk_branch gcc_qmip_camera_rt_ahb_clk = { 25264433594bSBjorn Andersson .halt_reg = 0xb01c, 25274433594bSBjorn Andersson .halt_check = BRANCH_HALT, 25284433594bSBjorn Andersson .hwcg_reg = 0xb01c, 25294433594bSBjorn Andersson .hwcg_bit = 1, 25304433594bSBjorn Andersson .clkr = { 25314433594bSBjorn Andersson .enable_reg = 0xb01c, 25324433594bSBjorn Andersson .enable_mask = BIT(0), 25334433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 25344433594bSBjorn Andersson .name = "gcc_qmip_camera_rt_ahb_clk", 25354433594bSBjorn Andersson .ops = &clk_branch2_ops, 25364433594bSBjorn Andersson }, 25374433594bSBjorn Andersson }, 25384433594bSBjorn Andersson }; 25394433594bSBjorn Andersson 25404433594bSBjorn Andersson static struct clk_branch gcc_qmip_disp_ahb_clk = { 25414433594bSBjorn Andersson .halt_reg = 0xb020, 25424433594bSBjorn Andersson .halt_check = BRANCH_HALT, 25434433594bSBjorn Andersson .hwcg_reg = 0xb020, 25444433594bSBjorn Andersson .hwcg_bit = 1, 25454433594bSBjorn Andersson .clkr = { 25464433594bSBjorn Andersson .enable_reg = 0xb020, 25474433594bSBjorn Andersson .enable_mask = BIT(0), 25484433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 25494433594bSBjorn Andersson .name = "gcc_qmip_disp_ahb_clk", 25504433594bSBjorn Andersson .ops = &clk_branch2_ops, 25514433594bSBjorn Andersson }, 25524433594bSBjorn Andersson }, 25534433594bSBjorn Andersson }; 25544433594bSBjorn Andersson 25554433594bSBjorn Andersson static struct clk_branch gcc_qmip_video_cvp_ahb_clk = { 25564433594bSBjorn Andersson .halt_reg = 0xb010, 25574433594bSBjorn Andersson .halt_check = BRANCH_HALT, 25584433594bSBjorn Andersson .hwcg_reg = 0xb010, 25594433594bSBjorn Andersson .hwcg_bit = 1, 25604433594bSBjorn Andersson .clkr = { 25614433594bSBjorn Andersson .enable_reg = 0xb010, 25624433594bSBjorn Andersson .enable_mask = BIT(0), 25634433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 25644433594bSBjorn Andersson .name = "gcc_qmip_video_cvp_ahb_clk", 25654433594bSBjorn Andersson .ops = &clk_branch2_ops, 25664433594bSBjorn Andersson }, 25674433594bSBjorn Andersson }, 25684433594bSBjorn Andersson }; 25694433594bSBjorn Andersson 25704433594bSBjorn Andersson static struct clk_branch gcc_qmip_video_vcodec_ahb_clk = { 25714433594bSBjorn Andersson .halt_reg = 0xb014, 25724433594bSBjorn Andersson .halt_check = BRANCH_HALT, 25734433594bSBjorn Andersson .hwcg_reg = 0xb014, 25744433594bSBjorn Andersson .hwcg_bit = 1, 25754433594bSBjorn Andersson .clkr = { 25764433594bSBjorn Andersson .enable_reg = 0xb014, 25774433594bSBjorn Andersson .enable_mask = BIT(0), 25784433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 25794433594bSBjorn Andersson .name = "gcc_qmip_video_vcodec_ahb_clk", 25804433594bSBjorn Andersson .ops = &clk_branch2_ops, 25814433594bSBjorn Andersson }, 25824433594bSBjorn Andersson }, 25834433594bSBjorn Andersson }; 25844433594bSBjorn Andersson 25854433594bSBjorn Andersson static struct clk_branch gcc_qspi_1_cnoc_periph_ahb_clk = { 25864433594bSBjorn Andersson .halt_reg = 0x4a004, 25874433594bSBjorn Andersson .halt_check = BRANCH_HALT, 25884433594bSBjorn Andersson .clkr = { 25894433594bSBjorn Andersson .enable_reg = 0x4a004, 25904433594bSBjorn Andersson .enable_mask = BIT(0), 25914433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 25924433594bSBjorn Andersson .name = "gcc_qspi_1_cnoc_periph_ahb_clk", 25934433594bSBjorn Andersson .ops = &clk_branch2_ops, 25944433594bSBjorn Andersson }, 25954433594bSBjorn Andersson }, 25964433594bSBjorn Andersson }; 25974433594bSBjorn Andersson 25984433594bSBjorn Andersson static struct clk_branch gcc_qspi_1_core_clk = { 25994433594bSBjorn Andersson .halt_reg = 0x4a008, 26004433594bSBjorn Andersson .halt_check = BRANCH_HALT, 26014433594bSBjorn Andersson .clkr = { 26024433594bSBjorn Andersson .enable_reg = 0x4a008, 26034433594bSBjorn Andersson .enable_mask = BIT(0), 26044433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 26054433594bSBjorn Andersson .name = "gcc_qspi_1_core_clk", 26064433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 26074433594bSBjorn Andersson &gcc_qspi_1_core_clk_src.clkr.hw 26084433594bSBjorn Andersson }, 26094433594bSBjorn Andersson .num_parents = 1, 26104433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 26114433594bSBjorn Andersson .ops = &clk_branch2_ops, 26124433594bSBjorn Andersson }, 26134433594bSBjorn Andersson }, 26144433594bSBjorn Andersson }; 26154433594bSBjorn Andersson 26164433594bSBjorn Andersson static struct clk_branch gcc_qspi_cnoc_periph_ahb_clk = { 26174433594bSBjorn Andersson .halt_reg = 0x4b000, 26184433594bSBjorn Andersson .halt_check = BRANCH_HALT, 26194433594bSBjorn Andersson .clkr = { 26204433594bSBjorn Andersson .enable_reg = 0x4b000, 26214433594bSBjorn Andersson .enable_mask = BIT(0), 26224433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 26234433594bSBjorn Andersson .name = "gcc_qspi_cnoc_periph_ahb_clk", 26244433594bSBjorn Andersson .ops = &clk_branch2_ops, 26254433594bSBjorn Andersson }, 26264433594bSBjorn Andersson }, 26274433594bSBjorn Andersson }; 26284433594bSBjorn Andersson 26294433594bSBjorn Andersson static struct clk_branch gcc_qspi_core_clk = { 26304433594bSBjorn Andersson .halt_reg = 0x4b004, 26314433594bSBjorn Andersson .halt_check = BRANCH_HALT, 26324433594bSBjorn Andersson .clkr = { 26334433594bSBjorn Andersson .enable_reg = 0x4b004, 26344433594bSBjorn Andersson .enable_mask = BIT(0), 26354433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 26364433594bSBjorn Andersson .name = "gcc_qspi_core_clk", 26374433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 26384433594bSBjorn Andersson &gcc_qspi_core_clk_src.clkr.hw 26394433594bSBjorn Andersson }, 26404433594bSBjorn Andersson .num_parents = 1, 26414433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 26424433594bSBjorn Andersson .ops = &clk_branch2_ops, 26434433594bSBjorn Andersson }, 26444433594bSBjorn Andersson }, 26454433594bSBjorn Andersson }; 26464433594bSBjorn Andersson 26474433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap0_s0_clk = { 26484433594bSBjorn Andersson .halt_reg = 0x17144, 26494433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 26504433594bSBjorn Andersson .clkr = { 26514433594bSBjorn Andersson .enable_reg = 0x5200c, 26524433594bSBjorn Andersson .enable_mask = BIT(10), 26534433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 26544433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s0_clk", 26554433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 26564433594bSBjorn Andersson &gcc_qupv3_wrap0_s0_clk_src.clkr.hw 26574433594bSBjorn Andersson }, 26584433594bSBjorn Andersson .num_parents = 1, 26594433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 26604433594bSBjorn Andersson .ops = &clk_branch2_ops, 26614433594bSBjorn Andersson }, 26624433594bSBjorn Andersson }, 26634433594bSBjorn Andersson }; 26644433594bSBjorn Andersson 26654433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap0_s1_clk = { 26664433594bSBjorn Andersson .halt_reg = 0x17274, 26674433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 26684433594bSBjorn Andersson .clkr = { 26694433594bSBjorn Andersson .enable_reg = 0x5200c, 26704433594bSBjorn Andersson .enable_mask = BIT(11), 26714433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 26724433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s1_clk", 26734433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 26744433594bSBjorn Andersson &gcc_qupv3_wrap0_s1_clk_src.clkr.hw 26754433594bSBjorn Andersson }, 26764433594bSBjorn Andersson .num_parents = 1, 26774433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 26784433594bSBjorn Andersson .ops = &clk_branch2_ops, 26794433594bSBjorn Andersson }, 26804433594bSBjorn Andersson }, 26814433594bSBjorn Andersson }; 26824433594bSBjorn Andersson 26834433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap0_s2_clk = { 26844433594bSBjorn Andersson .halt_reg = 0x173a4, 26854433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 26864433594bSBjorn Andersson .clkr = { 26874433594bSBjorn Andersson .enable_reg = 0x5200c, 26884433594bSBjorn Andersson .enable_mask = BIT(12), 26894433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 26904433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s2_clk", 26914433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 26924433594bSBjorn Andersson &gcc_qupv3_wrap0_s2_clk_src.clkr.hw 26934433594bSBjorn Andersson }, 26944433594bSBjorn Andersson .num_parents = 1, 26954433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 26964433594bSBjorn Andersson .ops = &clk_branch2_ops, 26974433594bSBjorn Andersson }, 26984433594bSBjorn Andersson }, 26994433594bSBjorn Andersson }; 27004433594bSBjorn Andersson 27014433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap0_s3_clk = { 27024433594bSBjorn Andersson .halt_reg = 0x174d4, 27034433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 27044433594bSBjorn Andersson .clkr = { 27054433594bSBjorn Andersson .enable_reg = 0x5200c, 27064433594bSBjorn Andersson .enable_mask = BIT(13), 27074433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 27084433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s3_clk", 27094433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 27104433594bSBjorn Andersson &gcc_qupv3_wrap0_s3_clk_src.clkr.hw 27114433594bSBjorn Andersson }, 27124433594bSBjorn Andersson .num_parents = 1, 27134433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 27144433594bSBjorn Andersson .ops = &clk_branch2_ops, 27154433594bSBjorn Andersson }, 27164433594bSBjorn Andersson }, 27174433594bSBjorn Andersson }; 27184433594bSBjorn Andersson 27194433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap0_s4_clk = { 27204433594bSBjorn Andersson .halt_reg = 0x17604, 27214433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 27224433594bSBjorn Andersson .clkr = { 27234433594bSBjorn Andersson .enable_reg = 0x5200c, 27244433594bSBjorn Andersson .enable_mask = BIT(14), 27254433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 27264433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s4_clk", 27274433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 27284433594bSBjorn Andersson &gcc_qupv3_wrap0_s4_clk_src.clkr.hw 27294433594bSBjorn Andersson }, 27304433594bSBjorn Andersson .num_parents = 1, 27314433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 27324433594bSBjorn Andersson .ops = &clk_branch2_ops, 27334433594bSBjorn Andersson }, 27344433594bSBjorn Andersson }, 27354433594bSBjorn Andersson }; 27364433594bSBjorn Andersson 27374433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap0_s5_clk = { 27384433594bSBjorn Andersson .halt_reg = 0x17734, 27394433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 27404433594bSBjorn Andersson .clkr = { 27414433594bSBjorn Andersson .enable_reg = 0x5200c, 27424433594bSBjorn Andersson .enable_mask = BIT(15), 27434433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 27444433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s5_clk", 27454433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 27464433594bSBjorn Andersson &gcc_qupv3_wrap0_s5_clk_src.clkr.hw 27474433594bSBjorn Andersson }, 27484433594bSBjorn Andersson .num_parents = 1, 27494433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 27504433594bSBjorn Andersson .ops = &clk_branch2_ops, 27514433594bSBjorn Andersson }, 27524433594bSBjorn Andersson }, 27534433594bSBjorn Andersson }; 27544433594bSBjorn Andersson 27554433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap0_s6_clk = { 27564433594bSBjorn Andersson .halt_reg = 0x17864, 27574433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 27584433594bSBjorn Andersson .clkr = { 27594433594bSBjorn Andersson .enable_reg = 0x5200c, 27604433594bSBjorn Andersson .enable_mask = BIT(16), 27614433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 27624433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s6_clk", 27634433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 27644433594bSBjorn Andersson &gcc_qupv3_wrap0_s6_clk_src.clkr.hw 27654433594bSBjorn Andersson }, 27664433594bSBjorn Andersson .num_parents = 1, 27674433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 27684433594bSBjorn Andersson .ops = &clk_branch2_ops, 27694433594bSBjorn Andersson }, 27704433594bSBjorn Andersson }, 27714433594bSBjorn Andersson }; 27724433594bSBjorn Andersson 27734433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap0_s7_clk = { 27744433594bSBjorn Andersson .halt_reg = 0x17994, 27754433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 27764433594bSBjorn Andersson .clkr = { 27774433594bSBjorn Andersson .enable_reg = 0x5200c, 27784433594bSBjorn Andersson .enable_mask = BIT(17), 27794433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 27804433594bSBjorn Andersson .name = "gcc_qupv3_wrap0_s7_clk", 27814433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 27824433594bSBjorn Andersson &gcc_qupv3_wrap0_s7_clk_src.clkr.hw 27834433594bSBjorn Andersson }, 27844433594bSBjorn Andersson .num_parents = 1, 27854433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 27864433594bSBjorn Andersson .ops = &clk_branch2_ops, 27874433594bSBjorn Andersson }, 27884433594bSBjorn Andersson }, 27894433594bSBjorn Andersson }; 27904433594bSBjorn Andersson 27914433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap1_s0_clk = { 27924433594bSBjorn Andersson .halt_reg = 0x18144, 27934433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 27944433594bSBjorn Andersson .clkr = { 27954433594bSBjorn Andersson .enable_reg = 0x5200c, 27964433594bSBjorn Andersson .enable_mask = BIT(22), 27974433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 27984433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s0_clk", 27994433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 28004433594bSBjorn Andersson &gcc_qupv3_wrap1_s0_clk_src.clkr.hw 28014433594bSBjorn Andersson }, 28024433594bSBjorn Andersson .num_parents = 1, 28034433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 28044433594bSBjorn Andersson .ops = &clk_branch2_ops, 28054433594bSBjorn Andersson }, 28064433594bSBjorn Andersson }, 28074433594bSBjorn Andersson }; 28084433594bSBjorn Andersson 28094433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap1_s1_clk = { 28104433594bSBjorn Andersson .halt_reg = 0x18274, 28114433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 28124433594bSBjorn Andersson .clkr = { 28134433594bSBjorn Andersson .enable_reg = 0x5200c, 28144433594bSBjorn Andersson .enable_mask = BIT(23), 28154433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 28164433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s1_clk", 28174433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 28184433594bSBjorn Andersson &gcc_qupv3_wrap1_s1_clk_src.clkr.hw 28194433594bSBjorn Andersson }, 28204433594bSBjorn Andersson .num_parents = 1, 28214433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 28224433594bSBjorn Andersson .ops = &clk_branch2_ops, 28234433594bSBjorn Andersson }, 28244433594bSBjorn Andersson }, 28254433594bSBjorn Andersson }; 28264433594bSBjorn Andersson 28274433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap1_s2_clk = { 28284433594bSBjorn Andersson .halt_reg = 0x183a4, 28294433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 28304433594bSBjorn Andersson .clkr = { 28314433594bSBjorn Andersson .enable_reg = 0x5200c, 28324433594bSBjorn Andersson .enable_mask = BIT(24), 28334433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 28344433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s2_clk", 28354433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 28364433594bSBjorn Andersson &gcc_qupv3_wrap1_s2_clk_src.clkr.hw 28374433594bSBjorn Andersson }, 28384433594bSBjorn Andersson .num_parents = 1, 28394433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 28404433594bSBjorn Andersson .ops = &clk_branch2_ops, 28414433594bSBjorn Andersson }, 28424433594bSBjorn Andersson }, 28434433594bSBjorn Andersson }; 28444433594bSBjorn Andersson 28454433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap1_s3_clk = { 28464433594bSBjorn Andersson .halt_reg = 0x184d4, 28474433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 28484433594bSBjorn Andersson .clkr = { 28494433594bSBjorn Andersson .enable_reg = 0x5200c, 28504433594bSBjorn Andersson .enable_mask = BIT(25), 28514433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 28524433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s3_clk", 28534433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 28544433594bSBjorn Andersson &gcc_qupv3_wrap1_s3_clk_src.clkr.hw 28554433594bSBjorn Andersson }, 28564433594bSBjorn Andersson .num_parents = 1, 28574433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 28584433594bSBjorn Andersson .ops = &clk_branch2_ops, 28594433594bSBjorn Andersson }, 28604433594bSBjorn Andersson }, 28614433594bSBjorn Andersson }; 28624433594bSBjorn Andersson 28634433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap1_s4_clk = { 28644433594bSBjorn Andersson .halt_reg = 0x18604, 28654433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 28664433594bSBjorn Andersson .clkr = { 28674433594bSBjorn Andersson .enable_reg = 0x5200c, 28684433594bSBjorn Andersson .enable_mask = BIT(26), 28694433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 28704433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s4_clk", 28714433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 28724433594bSBjorn Andersson &gcc_qupv3_wrap1_s4_clk_src.clkr.hw 28734433594bSBjorn Andersson }, 28744433594bSBjorn Andersson .num_parents = 1, 28754433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 28764433594bSBjorn Andersson .ops = &clk_branch2_ops, 28774433594bSBjorn Andersson }, 28784433594bSBjorn Andersson }, 28794433594bSBjorn Andersson }; 28804433594bSBjorn Andersson 28814433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap1_s5_clk = { 28824433594bSBjorn Andersson .halt_reg = 0x18734, 28834433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 28844433594bSBjorn Andersson .clkr = { 28854433594bSBjorn Andersson .enable_reg = 0x5200c, 28864433594bSBjorn Andersson .enable_mask = BIT(27), 28874433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 28884433594bSBjorn Andersson .name = "gcc_qupv3_wrap1_s5_clk", 28894433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 28904433594bSBjorn Andersson &gcc_qupv3_wrap1_s5_clk_src.clkr.hw 28914433594bSBjorn Andersson }, 28924433594bSBjorn Andersson .num_parents = 1, 28934433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 28944433594bSBjorn Andersson .ops = &clk_branch2_ops, 28954433594bSBjorn Andersson }, 28964433594bSBjorn Andersson }, 28974433594bSBjorn Andersson }; 28984433594bSBjorn Andersson 28994433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap2_s0_clk = { 29004433594bSBjorn Andersson .halt_reg = 0x1e144, 29014433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 29024433594bSBjorn Andersson .clkr = { 29034433594bSBjorn Andersson .enable_reg = 0x52014, 29044433594bSBjorn Andersson .enable_mask = BIT(4), 29054433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 29064433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s0_clk", 29074433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 29084433594bSBjorn Andersson &gcc_qupv3_wrap2_s0_clk_src.clkr.hw 29094433594bSBjorn Andersson }, 29104433594bSBjorn Andersson .num_parents = 1, 29114433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 29124433594bSBjorn Andersson .ops = &clk_branch2_ops, 29134433594bSBjorn Andersson }, 29144433594bSBjorn Andersson }, 29154433594bSBjorn Andersson }; 29164433594bSBjorn Andersson 29174433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap2_s1_clk = { 29184433594bSBjorn Andersson .halt_reg = 0x1e274, 29194433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 29204433594bSBjorn Andersson .clkr = { 29214433594bSBjorn Andersson .enable_reg = 0x52014, 29224433594bSBjorn Andersson .enable_mask = BIT(5), 29234433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 29244433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s1_clk", 29254433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 29264433594bSBjorn Andersson &gcc_qupv3_wrap2_s1_clk_src.clkr.hw 29274433594bSBjorn Andersson }, 29284433594bSBjorn Andersson .num_parents = 1, 29294433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 29304433594bSBjorn Andersson .ops = &clk_branch2_ops, 29314433594bSBjorn Andersson }, 29324433594bSBjorn Andersson }, 29334433594bSBjorn Andersson }; 29344433594bSBjorn Andersson 29354433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap2_s2_clk = { 29364433594bSBjorn Andersson .halt_reg = 0x1e3a4, 29374433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 29384433594bSBjorn Andersson .clkr = { 29394433594bSBjorn Andersson .enable_reg = 0x52014, 29404433594bSBjorn Andersson .enable_mask = BIT(6), 29414433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 29424433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s2_clk", 29434433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 29444433594bSBjorn Andersson &gcc_qupv3_wrap2_s2_clk_src.clkr.hw 29454433594bSBjorn Andersson }, 29464433594bSBjorn Andersson .num_parents = 1, 29474433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 29484433594bSBjorn Andersson .ops = &clk_branch2_ops, 29494433594bSBjorn Andersson }, 29504433594bSBjorn Andersson }, 29514433594bSBjorn Andersson }; 29524433594bSBjorn Andersson 29534433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap2_s3_clk = { 29544433594bSBjorn Andersson .halt_reg = 0x1e4d4, 29554433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 29564433594bSBjorn Andersson .clkr = { 29574433594bSBjorn Andersson .enable_reg = 0x52014, 29584433594bSBjorn Andersson .enable_mask = BIT(7), 29594433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 29604433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s3_clk", 29614433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 29624433594bSBjorn Andersson &gcc_qupv3_wrap2_s3_clk_src.clkr.hw 29634433594bSBjorn Andersson }, 29644433594bSBjorn Andersson .num_parents = 1, 29654433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 29664433594bSBjorn Andersson .ops = &clk_branch2_ops, 29674433594bSBjorn Andersson }, 29684433594bSBjorn Andersson }, 29694433594bSBjorn Andersson }; 29704433594bSBjorn Andersson 29714433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap2_s4_clk = { 29724433594bSBjorn Andersson .halt_reg = 0x1e604, 29734433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 29744433594bSBjorn Andersson .clkr = { 29754433594bSBjorn Andersson .enable_reg = 0x52014, 29764433594bSBjorn Andersson .enable_mask = BIT(8), 29774433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 29784433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s4_clk", 29794433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 29804433594bSBjorn Andersson &gcc_qupv3_wrap2_s4_clk_src.clkr.hw 29814433594bSBjorn Andersson }, 29824433594bSBjorn Andersson .num_parents = 1, 29834433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 29844433594bSBjorn Andersson .ops = &clk_branch2_ops, 29854433594bSBjorn Andersson }, 29864433594bSBjorn Andersson }, 29874433594bSBjorn Andersson }; 29884433594bSBjorn Andersson 29894433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap2_s5_clk = { 29904433594bSBjorn Andersson .halt_reg = 0x1e734, 29914433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 29924433594bSBjorn Andersson .clkr = { 29934433594bSBjorn Andersson .enable_reg = 0x52014, 29944433594bSBjorn Andersson .enable_mask = BIT(9), 29954433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 29964433594bSBjorn Andersson .name = "gcc_qupv3_wrap2_s5_clk", 29974433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 29984433594bSBjorn Andersson &gcc_qupv3_wrap2_s5_clk_src.clkr.hw 29994433594bSBjorn Andersson }, 30004433594bSBjorn Andersson .num_parents = 1, 30014433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 30024433594bSBjorn Andersson .ops = &clk_branch2_ops, 30034433594bSBjorn Andersson }, 30044433594bSBjorn Andersson }, 30054433594bSBjorn Andersson }; 30064433594bSBjorn Andersson 30074433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = { 30084433594bSBjorn Andersson .halt_reg = 0x17004, 30094433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 30104433594bSBjorn Andersson .clkr = { 30114433594bSBjorn Andersson .enable_reg = 0x5200c, 30124433594bSBjorn Andersson .enable_mask = BIT(6), 30134433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 30144433594bSBjorn Andersson .name = "gcc_qupv3_wrap_0_m_ahb_clk", 30154433594bSBjorn Andersson .ops = &clk_branch2_ops, 30164433594bSBjorn Andersson }, 30174433594bSBjorn Andersson }, 30184433594bSBjorn Andersson }; 30194433594bSBjorn Andersson 30204433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = { 30214433594bSBjorn Andersson .halt_reg = 0x17008, 30224433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 30234433594bSBjorn Andersson .hwcg_reg = 0x17008, 30244433594bSBjorn Andersson .hwcg_bit = 1, 30254433594bSBjorn Andersson .clkr = { 30264433594bSBjorn Andersson .enable_reg = 0x5200c, 30274433594bSBjorn Andersson .enable_mask = BIT(7), 30284433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 30294433594bSBjorn Andersson .name = "gcc_qupv3_wrap_0_s_ahb_clk", 30304433594bSBjorn Andersson .ops = &clk_branch2_ops, 30314433594bSBjorn Andersson }, 30324433594bSBjorn Andersson }, 30334433594bSBjorn Andersson }; 30344433594bSBjorn Andersson 30354433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = { 30364433594bSBjorn Andersson .halt_reg = 0x18004, 30374433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 30384433594bSBjorn Andersson .clkr = { 30394433594bSBjorn Andersson .enable_reg = 0x5200c, 30404433594bSBjorn Andersson .enable_mask = BIT(20), 30414433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 30424433594bSBjorn Andersson .name = "gcc_qupv3_wrap_1_m_ahb_clk", 30434433594bSBjorn Andersson .ops = &clk_branch2_ops, 30444433594bSBjorn Andersson }, 30454433594bSBjorn Andersson }, 30464433594bSBjorn Andersson }; 30474433594bSBjorn Andersson 30484433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = { 30494433594bSBjorn Andersson .halt_reg = 0x18008, 30504433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 30514433594bSBjorn Andersson .hwcg_reg = 0x18008, 30524433594bSBjorn Andersson .hwcg_bit = 1, 30534433594bSBjorn Andersson .clkr = { 30544433594bSBjorn Andersson .enable_reg = 0x5200c, 30554433594bSBjorn Andersson .enable_mask = BIT(21), 30564433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 30574433594bSBjorn Andersson .name = "gcc_qupv3_wrap_1_s_ahb_clk", 30584433594bSBjorn Andersson .ops = &clk_branch2_ops, 30594433594bSBjorn Andersson }, 30604433594bSBjorn Andersson }, 30614433594bSBjorn Andersson }; 30624433594bSBjorn Andersson 30634433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = { 30644433594bSBjorn Andersson .halt_reg = 0x1e004, 30654433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 30664433594bSBjorn Andersson .clkr = { 30674433594bSBjorn Andersson .enable_reg = 0x52014, 30684433594bSBjorn Andersson .enable_mask = BIT(2), 30694433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 30704433594bSBjorn Andersson .name = "gcc_qupv3_wrap_2_m_ahb_clk", 30714433594bSBjorn Andersson .ops = &clk_branch2_ops, 30724433594bSBjorn Andersson }, 30734433594bSBjorn Andersson }, 30744433594bSBjorn Andersson }; 30754433594bSBjorn Andersson 30764433594bSBjorn Andersson static struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = { 30774433594bSBjorn Andersson .halt_reg = 0x1e008, 30784433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 30794433594bSBjorn Andersson .hwcg_reg = 0x1e008, 30804433594bSBjorn Andersson .hwcg_bit = 1, 30814433594bSBjorn Andersson .clkr = { 30824433594bSBjorn Andersson .enable_reg = 0x52014, 30834433594bSBjorn Andersson .enable_mask = BIT(1), 30844433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 30854433594bSBjorn Andersson .name = "gcc_qupv3_wrap_2_s_ahb_clk", 30864433594bSBjorn Andersson .ops = &clk_branch2_ops, 30874433594bSBjorn Andersson }, 30884433594bSBjorn Andersson }, 30894433594bSBjorn Andersson }; 30904433594bSBjorn Andersson 30914433594bSBjorn Andersson static struct clk_branch gcc_sdcc2_ahb_clk = { 30924433594bSBjorn Andersson .halt_reg = 0x14008, 30934433594bSBjorn Andersson .halt_check = BRANCH_HALT, 30944433594bSBjorn Andersson .clkr = { 30954433594bSBjorn Andersson .enable_reg = 0x14008, 30964433594bSBjorn Andersson .enable_mask = BIT(0), 30974433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 30984433594bSBjorn Andersson .name = "gcc_sdcc2_ahb_clk", 30994433594bSBjorn Andersson .ops = &clk_branch2_ops, 31004433594bSBjorn Andersson }, 31014433594bSBjorn Andersson }, 31024433594bSBjorn Andersson }; 31034433594bSBjorn Andersson 31044433594bSBjorn Andersson static struct clk_branch gcc_sdcc2_apps_clk = { 31054433594bSBjorn Andersson .halt_reg = 0x14004, 31064433594bSBjorn Andersson .halt_check = BRANCH_HALT, 31074433594bSBjorn Andersson .clkr = { 31084433594bSBjorn Andersson .enable_reg = 0x14004, 31094433594bSBjorn Andersson .enable_mask = BIT(0), 31104433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 31114433594bSBjorn Andersson .name = "gcc_sdcc2_apps_clk", 31124433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 31134433594bSBjorn Andersson &gcc_sdcc2_apps_clk_src.clkr.hw 31144433594bSBjorn Andersson }, 31154433594bSBjorn Andersson .num_parents = 1, 31164433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 31174433594bSBjorn Andersson .ops = &clk_branch2_ops, 31184433594bSBjorn Andersson }, 31194433594bSBjorn Andersson }, 31204433594bSBjorn Andersson }; 31214433594bSBjorn Andersson 31224433594bSBjorn Andersson static struct clk_branch gcc_sdcc4_ahb_clk = { 31234433594bSBjorn Andersson .halt_reg = 0x16008, 31244433594bSBjorn Andersson .halt_check = BRANCH_HALT, 31254433594bSBjorn Andersson .clkr = { 31264433594bSBjorn Andersson .enable_reg = 0x16008, 31274433594bSBjorn Andersson .enable_mask = BIT(0), 31284433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 31294433594bSBjorn Andersson .name = "gcc_sdcc4_ahb_clk", 31304433594bSBjorn Andersson .ops = &clk_branch2_ops, 31314433594bSBjorn Andersson }, 31324433594bSBjorn Andersson }, 31334433594bSBjorn Andersson }; 31344433594bSBjorn Andersson 31354433594bSBjorn Andersson static struct clk_branch gcc_sdcc4_apps_clk = { 31364433594bSBjorn Andersson .halt_reg = 0x16004, 31374433594bSBjorn Andersson .halt_check = BRANCH_HALT, 31384433594bSBjorn Andersson .clkr = { 31394433594bSBjorn Andersson .enable_reg = 0x16004, 31404433594bSBjorn Andersson .enable_mask = BIT(0), 31414433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 31424433594bSBjorn Andersson .name = "gcc_sdcc4_apps_clk", 31434433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 31444433594bSBjorn Andersson &gcc_sdcc4_apps_clk_src.clkr.hw 31454433594bSBjorn Andersson }, 31464433594bSBjorn Andersson .num_parents = 1, 31474433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 31484433594bSBjorn Andersson .ops = &clk_branch2_ops, 31494433594bSBjorn Andersson }, 31504433594bSBjorn Andersson }, 31514433594bSBjorn Andersson }; 31524433594bSBjorn Andersson 31534433594bSBjorn Andersson /* For CPUSS functionality the SYS NOC clock needs to be left enabled */ 31544433594bSBjorn Andersson static struct clk_branch gcc_sys_noc_cpuss_ahb_clk = { 31554433594bSBjorn Andersson .halt_reg = 0x4819c, 31564433594bSBjorn Andersson .halt_check = BRANCH_HALT_VOTED, 31574433594bSBjorn Andersson .clkr = { 31584433594bSBjorn Andersson .enable_reg = 0x52004, 31594433594bSBjorn Andersson .enable_mask = BIT(0), 31604433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 31614433594bSBjorn Andersson .name = "gcc_sys_noc_cpuss_ahb_clk", 31624433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 31634433594bSBjorn Andersson &gcc_cpuss_ahb_clk_src.clkr.hw 31644433594bSBjorn Andersson }, 31654433594bSBjorn Andersson .num_parents = 1, 31664433594bSBjorn Andersson .flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT, 31674433594bSBjorn Andersson .ops = &clk_branch2_ops, 31684433594bSBjorn Andersson }, 31694433594bSBjorn Andersson }, 31704433594bSBjorn Andersson }; 31714433594bSBjorn Andersson 31724433594bSBjorn Andersson static struct clk_branch gcc_tsif_ahb_clk = { 31734433594bSBjorn Andersson .halt_reg = 0x36004, 31744433594bSBjorn Andersson .halt_check = BRANCH_HALT, 31754433594bSBjorn Andersson .clkr = { 31764433594bSBjorn Andersson .enable_reg = 0x36004, 31774433594bSBjorn Andersson .enable_mask = BIT(0), 31784433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 31794433594bSBjorn Andersson .name = "gcc_tsif_ahb_clk", 31804433594bSBjorn Andersson .ops = &clk_branch2_ops, 31814433594bSBjorn Andersson }, 31824433594bSBjorn Andersson }, 31834433594bSBjorn Andersson }; 31844433594bSBjorn Andersson 31854433594bSBjorn Andersson static struct clk_branch gcc_tsif_inactivity_timers_clk = { 31864433594bSBjorn Andersson .halt_reg = 0x3600c, 31874433594bSBjorn Andersson .halt_check = BRANCH_HALT, 31884433594bSBjorn Andersson .clkr = { 31894433594bSBjorn Andersson .enable_reg = 0x3600c, 31904433594bSBjorn Andersson .enable_mask = BIT(0), 31914433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 31924433594bSBjorn Andersson .name = "gcc_tsif_inactivity_timers_clk", 31934433594bSBjorn Andersson .ops = &clk_branch2_ops, 31944433594bSBjorn Andersson }, 31954433594bSBjorn Andersson }, 31964433594bSBjorn Andersson }; 31974433594bSBjorn Andersson 31984433594bSBjorn Andersson static struct clk_branch gcc_tsif_ref_clk = { 31994433594bSBjorn Andersson .halt_reg = 0x36008, 32004433594bSBjorn Andersson .halt_check = BRANCH_HALT, 32014433594bSBjorn Andersson .clkr = { 32024433594bSBjorn Andersson .enable_reg = 0x36008, 32034433594bSBjorn Andersson .enable_mask = BIT(0), 32044433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 32054433594bSBjorn Andersson .name = "gcc_tsif_ref_clk", 32064433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 32074433594bSBjorn Andersson &gcc_tsif_ref_clk_src.clkr.hw 32084433594bSBjorn Andersson }, 32094433594bSBjorn Andersson .num_parents = 1, 32104433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 32114433594bSBjorn Andersson .ops = &clk_branch2_ops, 32124433594bSBjorn Andersson }, 32134433594bSBjorn Andersson }, 32144433594bSBjorn Andersson }; 32154433594bSBjorn Andersson 32164433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_2_ahb_clk = { 32174433594bSBjorn Andersson .halt_reg = 0xa2014, 32184433594bSBjorn Andersson .halt_check = BRANCH_HALT, 32194433594bSBjorn Andersson .hwcg_reg = 0xa2014, 32204433594bSBjorn Andersson .hwcg_bit = 1, 32214433594bSBjorn Andersson .clkr = { 32224433594bSBjorn Andersson .enable_reg = 0xa2014, 32234433594bSBjorn Andersson .enable_mask = BIT(0), 32244433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 32254433594bSBjorn Andersson .name = "gcc_ufs_card_2_ahb_clk", 32264433594bSBjorn Andersson .ops = &clk_branch2_ops, 32274433594bSBjorn Andersson }, 32284433594bSBjorn Andersson }, 32294433594bSBjorn Andersson }; 32304433594bSBjorn Andersson 32314433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_2_axi_clk = { 32324433594bSBjorn Andersson .halt_reg = 0xa2010, 32334433594bSBjorn Andersson .halt_check = BRANCH_HALT, 32344433594bSBjorn Andersson .hwcg_reg = 0xa2010, 32354433594bSBjorn Andersson .hwcg_bit = 1, 32364433594bSBjorn Andersson .clkr = { 32374433594bSBjorn Andersson .enable_reg = 0xa2010, 32384433594bSBjorn Andersson .enable_mask = BIT(0), 32394433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 32404433594bSBjorn Andersson .name = "gcc_ufs_card_2_axi_clk", 32414433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 32424433594bSBjorn Andersson &gcc_ufs_card_2_axi_clk_src.clkr.hw 32434433594bSBjorn Andersson }, 32444433594bSBjorn Andersson .num_parents = 1, 32454433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 32464433594bSBjorn Andersson .ops = &clk_branch2_ops, 32474433594bSBjorn Andersson }, 32484433594bSBjorn Andersson }, 32494433594bSBjorn Andersson }; 32504433594bSBjorn Andersson 32514433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_2_ice_core_clk = { 32524433594bSBjorn Andersson .halt_reg = 0xa205c, 32534433594bSBjorn Andersson .halt_check = BRANCH_HALT, 32544433594bSBjorn Andersson .hwcg_reg = 0xa205c, 32554433594bSBjorn Andersson .hwcg_bit = 1, 32564433594bSBjorn Andersson .clkr = { 32574433594bSBjorn Andersson .enable_reg = 0xa205c, 32584433594bSBjorn Andersson .enable_mask = BIT(0), 32594433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 32604433594bSBjorn Andersson .name = "gcc_ufs_card_2_ice_core_clk", 32614433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 32624433594bSBjorn Andersson &gcc_ufs_card_2_ice_core_clk_src.clkr.hw 32634433594bSBjorn Andersson }, 32644433594bSBjorn Andersson .num_parents = 1, 32654433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 32664433594bSBjorn Andersson .ops = &clk_branch2_ops, 32674433594bSBjorn Andersson }, 32684433594bSBjorn Andersson }, 32694433594bSBjorn Andersson }; 32704433594bSBjorn Andersson 32714433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_2_phy_aux_clk = { 32724433594bSBjorn Andersson .halt_reg = 0xa2090, 32734433594bSBjorn Andersson .halt_check = BRANCH_HALT, 32744433594bSBjorn Andersson .hwcg_reg = 0xa2090, 32754433594bSBjorn Andersson .hwcg_bit = 1, 32764433594bSBjorn Andersson .clkr = { 32774433594bSBjorn Andersson .enable_reg = 0xa2090, 32784433594bSBjorn Andersson .enable_mask = BIT(0), 32794433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 32804433594bSBjorn Andersson .name = "gcc_ufs_card_2_phy_aux_clk", 32814433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 32824433594bSBjorn Andersson &gcc_ufs_card_2_phy_aux_clk_src.clkr.hw 32834433594bSBjorn Andersson }, 32844433594bSBjorn Andersson .num_parents = 1, 32854433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 32864433594bSBjorn Andersson .ops = &clk_branch2_ops, 32874433594bSBjorn Andersson }, 32884433594bSBjorn Andersson }, 32894433594bSBjorn Andersson }; 32904433594bSBjorn Andersson 32914433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_2_rx_symbol_0_clk = { 32924433594bSBjorn Andersson .halt_reg = 0xa201c, 32934433594bSBjorn Andersson .halt_check = BRANCH_HALT, 32944433594bSBjorn Andersson .clkr = { 32954433594bSBjorn Andersson .enable_reg = 0xa201c, 32964433594bSBjorn Andersson .enable_mask = BIT(0), 32974433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 32984433594bSBjorn Andersson .name = "gcc_ufs_card_2_rx_symbol_0_clk", 32994433594bSBjorn Andersson .ops = &clk_branch2_ops, 33004433594bSBjorn Andersson }, 33014433594bSBjorn Andersson }, 33024433594bSBjorn Andersson }; 33034433594bSBjorn Andersson 33044433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_2_rx_symbol_1_clk = { 33054433594bSBjorn Andersson .halt_reg = 0xa20ac, 33064433594bSBjorn Andersson .halt_check = BRANCH_HALT, 33074433594bSBjorn Andersson .clkr = { 33084433594bSBjorn Andersson .enable_reg = 0xa20ac, 33094433594bSBjorn Andersson .enable_mask = BIT(0), 33104433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 33114433594bSBjorn Andersson .name = "gcc_ufs_card_2_rx_symbol_1_clk", 33124433594bSBjorn Andersson .ops = &clk_branch2_ops, 33134433594bSBjorn Andersson }, 33144433594bSBjorn Andersson }, 33154433594bSBjorn Andersson }; 33164433594bSBjorn Andersson 33174433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_2_tx_symbol_0_clk = { 33184433594bSBjorn Andersson .halt_reg = 0xa2018, 33194433594bSBjorn Andersson .halt_check = BRANCH_HALT, 33204433594bSBjorn Andersson .clkr = { 33214433594bSBjorn Andersson .enable_reg = 0xa2018, 33224433594bSBjorn Andersson .enable_mask = BIT(0), 33234433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 33244433594bSBjorn Andersson .name = "gcc_ufs_card_2_tx_symbol_0_clk", 33254433594bSBjorn Andersson .ops = &clk_branch2_ops, 33264433594bSBjorn Andersson }, 33274433594bSBjorn Andersson }, 33284433594bSBjorn Andersson }; 33294433594bSBjorn Andersson 33304433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_2_unipro_core_clk = { 33314433594bSBjorn Andersson .halt_reg = 0xa2058, 33324433594bSBjorn Andersson .halt_check = BRANCH_HALT, 33334433594bSBjorn Andersson .hwcg_reg = 0xa2058, 33344433594bSBjorn Andersson .hwcg_bit = 1, 33354433594bSBjorn Andersson .clkr = { 33364433594bSBjorn Andersson .enable_reg = 0xa2058, 33374433594bSBjorn Andersson .enable_mask = BIT(0), 33384433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 33394433594bSBjorn Andersson .name = "gcc_ufs_card_2_unipro_core_clk", 33404433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 33414433594bSBjorn Andersson &gcc_ufs_card_2_unipro_core_clk_src.clkr.hw 33424433594bSBjorn Andersson }, 33434433594bSBjorn Andersson .num_parents = 1, 33444433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 33454433594bSBjorn Andersson .ops = &clk_branch2_ops, 33464433594bSBjorn Andersson }, 33474433594bSBjorn Andersson }, 33484433594bSBjorn Andersson }; 33494433594bSBjorn Andersson 33504433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_ahb_clk = { 33514433594bSBjorn Andersson .halt_reg = 0x75014, 33524433594bSBjorn Andersson .halt_check = BRANCH_HALT, 33534433594bSBjorn Andersson .hwcg_reg = 0x75014, 33544433594bSBjorn Andersson .hwcg_bit = 1, 33554433594bSBjorn Andersson .clkr = { 33564433594bSBjorn Andersson .enable_reg = 0x75014, 33574433594bSBjorn Andersson .enable_mask = BIT(0), 33584433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 33594433594bSBjorn Andersson .name = "gcc_ufs_card_ahb_clk", 33604433594bSBjorn Andersson .ops = &clk_branch2_ops, 33614433594bSBjorn Andersson }, 33624433594bSBjorn Andersson }, 33634433594bSBjorn Andersson }; 33644433594bSBjorn Andersson 33654433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_axi_clk = { 33664433594bSBjorn Andersson .halt_reg = 0x75010, 33674433594bSBjorn Andersson .halt_check = BRANCH_HALT, 33684433594bSBjorn Andersson .hwcg_reg = 0x75010, 33694433594bSBjorn Andersson .hwcg_bit = 1, 33704433594bSBjorn Andersson .clkr = { 33714433594bSBjorn Andersson .enable_reg = 0x75010, 33724433594bSBjorn Andersson .enable_mask = BIT(0), 33734433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 33744433594bSBjorn Andersson .name = "gcc_ufs_card_axi_clk", 33754433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 33764433594bSBjorn Andersson &gcc_ufs_card_axi_clk_src.clkr.hw 33774433594bSBjorn Andersson }, 33784433594bSBjorn Andersson .num_parents = 1, 33794433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 33804433594bSBjorn Andersson .ops = &clk_branch2_ops, 33814433594bSBjorn Andersson }, 33824433594bSBjorn Andersson }, 33834433594bSBjorn Andersson }; 33844433594bSBjorn Andersson 33854433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_axi_hw_ctl_clk = { 33864433594bSBjorn Andersson .halt_reg = 0x75010, 33874433594bSBjorn Andersson .halt_check = BRANCH_HALT, 33884433594bSBjorn Andersson .hwcg_reg = 0x75010, 33894433594bSBjorn Andersson .hwcg_bit = 1, 33904433594bSBjorn Andersson .clkr = { 33914433594bSBjorn Andersson .enable_reg = 0x75010, 33924433594bSBjorn Andersson .enable_mask = BIT(1), 33934433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 33944433594bSBjorn Andersson .name = "gcc_ufs_card_axi_hw_ctl_clk", 33954433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 33964433594bSBjorn Andersson &gcc_ufs_card_axi_clk.clkr.hw 33974433594bSBjorn Andersson }, 33984433594bSBjorn Andersson .num_parents = 1, 33994433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 34004433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 34014433594bSBjorn Andersson }, 34024433594bSBjorn Andersson }, 34034433594bSBjorn Andersson }; 34044433594bSBjorn Andersson 34054433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_ice_core_clk = { 34064433594bSBjorn Andersson .halt_reg = 0x7505c, 34074433594bSBjorn Andersson .halt_check = BRANCH_HALT, 34084433594bSBjorn Andersson .hwcg_reg = 0x7505c, 34094433594bSBjorn Andersson .hwcg_bit = 1, 34104433594bSBjorn Andersson .clkr = { 34114433594bSBjorn Andersson .enable_reg = 0x7505c, 34124433594bSBjorn Andersson .enable_mask = BIT(0), 34134433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 34144433594bSBjorn Andersson .name = "gcc_ufs_card_ice_core_clk", 34154433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 34164433594bSBjorn Andersson &gcc_ufs_card_ice_core_clk_src.clkr.hw 34174433594bSBjorn Andersson }, 34184433594bSBjorn Andersson .num_parents = 1, 34194433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 34204433594bSBjorn Andersson .ops = &clk_branch2_ops, 34214433594bSBjorn Andersson }, 34224433594bSBjorn Andersson }, 34234433594bSBjorn Andersson }; 34244433594bSBjorn Andersson 34254433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_ice_core_hw_ctl_clk = { 34264433594bSBjorn Andersson .halt_reg = 0x7505c, 34274433594bSBjorn Andersson .halt_check = BRANCH_HALT, 34284433594bSBjorn Andersson .hwcg_reg = 0x7505c, 34294433594bSBjorn Andersson .hwcg_bit = 1, 34304433594bSBjorn Andersson .clkr = { 34314433594bSBjorn Andersson .enable_reg = 0x7505c, 34324433594bSBjorn Andersson .enable_mask = BIT(1), 34334433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 34344433594bSBjorn Andersson .name = "gcc_ufs_card_ice_core_hw_ctl_clk", 34354433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 34364433594bSBjorn Andersson &gcc_ufs_card_ice_core_clk.clkr.hw 34374433594bSBjorn Andersson }, 34384433594bSBjorn Andersson .num_parents = 1, 34394433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 34404433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 34414433594bSBjorn Andersson }, 34424433594bSBjorn Andersson }, 34434433594bSBjorn Andersson }; 34444433594bSBjorn Andersson 34454433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_phy_aux_clk = { 34464433594bSBjorn Andersson .halt_reg = 0x75090, 34474433594bSBjorn Andersson .halt_check = BRANCH_HALT, 34484433594bSBjorn Andersson .hwcg_reg = 0x75090, 34494433594bSBjorn Andersson .hwcg_bit = 1, 34504433594bSBjorn Andersson .clkr = { 34514433594bSBjorn Andersson .enable_reg = 0x75090, 34524433594bSBjorn Andersson .enable_mask = BIT(0), 34534433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 34544433594bSBjorn Andersson .name = "gcc_ufs_card_phy_aux_clk", 34554433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 34564433594bSBjorn Andersson &gcc_ufs_card_phy_aux_clk_src.clkr.hw 34574433594bSBjorn Andersson }, 34584433594bSBjorn Andersson .num_parents = 1, 34594433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 34604433594bSBjorn Andersson .ops = &clk_branch2_ops, 34614433594bSBjorn Andersson }, 34624433594bSBjorn Andersson }, 34634433594bSBjorn Andersson }; 34644433594bSBjorn Andersson 34654433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_phy_aux_hw_ctl_clk = { 34664433594bSBjorn Andersson .halt_reg = 0x75090, 34674433594bSBjorn Andersson .halt_check = BRANCH_HALT, 34684433594bSBjorn Andersson .hwcg_reg = 0x75090, 34694433594bSBjorn Andersson .hwcg_bit = 1, 34704433594bSBjorn Andersson .clkr = { 34714433594bSBjorn Andersson .enable_reg = 0x75090, 34724433594bSBjorn Andersson .enable_mask = BIT(1), 34734433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 34744433594bSBjorn Andersson .name = "gcc_ufs_card_phy_aux_hw_ctl_clk", 34754433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 34764433594bSBjorn Andersson &gcc_ufs_card_phy_aux_clk.clkr.hw 34774433594bSBjorn Andersson }, 34784433594bSBjorn Andersson .num_parents = 1, 34794433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 34804433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 34814433594bSBjorn Andersson }, 34824433594bSBjorn Andersson }, 34834433594bSBjorn Andersson }; 34844433594bSBjorn Andersson 34854433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = { 34864433594bSBjorn Andersson .halt_reg = 0x7501c, 34874433594bSBjorn Andersson .halt_check = BRANCH_HALT_DELAY, 34884433594bSBjorn Andersson .clkr = { 34894433594bSBjorn Andersson .enable_reg = 0x7501c, 34904433594bSBjorn Andersson .enable_mask = BIT(0), 34914433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 34924433594bSBjorn Andersson .name = "gcc_ufs_card_rx_symbol_0_clk", 34934433594bSBjorn Andersson .ops = &clk_branch2_ops, 34944433594bSBjorn Andersson }, 34954433594bSBjorn Andersson }, 34964433594bSBjorn Andersson }; 34974433594bSBjorn Andersson 34984433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = { 34994433594bSBjorn Andersson .halt_reg = 0x750ac, 35004433594bSBjorn Andersson .halt_check = BRANCH_HALT_DELAY, 35014433594bSBjorn Andersson .clkr = { 35024433594bSBjorn Andersson .enable_reg = 0x750ac, 35034433594bSBjorn Andersson .enable_mask = BIT(0), 35044433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 35054433594bSBjorn Andersson .name = "gcc_ufs_card_rx_symbol_1_clk", 35064433594bSBjorn Andersson .ops = &clk_branch2_ops, 35074433594bSBjorn Andersson }, 35084433594bSBjorn Andersson }, 35094433594bSBjorn Andersson }; 35104433594bSBjorn Andersson 35114433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = { 35124433594bSBjorn Andersson .halt_reg = 0x75018, 35134433594bSBjorn Andersson .halt_check = BRANCH_HALT_DELAY, 35144433594bSBjorn Andersson .clkr = { 35154433594bSBjorn Andersson .enable_reg = 0x75018, 35164433594bSBjorn Andersson .enable_mask = BIT(0), 35174433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 35184433594bSBjorn Andersson .name = "gcc_ufs_card_tx_symbol_0_clk", 35194433594bSBjorn Andersson .ops = &clk_branch2_ops, 35204433594bSBjorn Andersson }, 35214433594bSBjorn Andersson }, 35224433594bSBjorn Andersson }; 35234433594bSBjorn Andersson 35244433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_unipro_core_clk = { 35254433594bSBjorn Andersson .halt_reg = 0x75058, 35264433594bSBjorn Andersson .halt_check = BRANCH_HALT, 35274433594bSBjorn Andersson .hwcg_reg = 0x75058, 35284433594bSBjorn Andersson .hwcg_bit = 1, 35294433594bSBjorn Andersson .clkr = { 35304433594bSBjorn Andersson .enable_reg = 0x75058, 35314433594bSBjorn Andersson .enable_mask = BIT(0), 35324433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 35334433594bSBjorn Andersson .name = "gcc_ufs_card_unipro_core_clk", 35344433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 35354433594bSBjorn Andersson &gcc_ufs_card_unipro_core_clk_src.clkr.hw 35364433594bSBjorn Andersson }, 35374433594bSBjorn Andersson .num_parents = 1, 35384433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 35394433594bSBjorn Andersson .ops = &clk_branch2_ops, 35404433594bSBjorn Andersson }, 35414433594bSBjorn Andersson }, 35424433594bSBjorn Andersson }; 35434433594bSBjorn Andersson 35444433594bSBjorn Andersson static struct clk_branch gcc_ufs_card_unipro_core_hw_ctl_clk = { 35454433594bSBjorn Andersson .halt_reg = 0x75058, 35464433594bSBjorn Andersson .halt_check = BRANCH_HALT, 35474433594bSBjorn Andersson .hwcg_reg = 0x75058, 35484433594bSBjorn Andersson .hwcg_bit = 1, 35494433594bSBjorn Andersson .clkr = { 35504433594bSBjorn Andersson .enable_reg = 0x75058, 35514433594bSBjorn Andersson .enable_mask = BIT(1), 35524433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 35534433594bSBjorn Andersson .name = "gcc_ufs_card_unipro_core_hw_ctl_clk", 35544433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 35554433594bSBjorn Andersson &gcc_ufs_card_unipro_core_clk.clkr.hw 35564433594bSBjorn Andersson }, 35574433594bSBjorn Andersson .num_parents = 1, 35584433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 35594433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 35604433594bSBjorn Andersson }, 35614433594bSBjorn Andersson }, 35624433594bSBjorn Andersson }; 35634433594bSBjorn Andersson 35644433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_ahb_clk = { 35654433594bSBjorn Andersson .halt_reg = 0x77014, 35664433594bSBjorn Andersson .halt_check = BRANCH_HALT, 35674433594bSBjorn Andersson .hwcg_reg = 0x77014, 35684433594bSBjorn Andersson .hwcg_bit = 1, 35694433594bSBjorn Andersson .clkr = { 35704433594bSBjorn Andersson .enable_reg = 0x77014, 35714433594bSBjorn Andersson .enable_mask = BIT(0), 35724433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 35734433594bSBjorn Andersson .name = "gcc_ufs_phy_ahb_clk", 35744433594bSBjorn Andersson .ops = &clk_branch2_ops, 35754433594bSBjorn Andersson }, 35764433594bSBjorn Andersson }, 35774433594bSBjorn Andersson }; 35784433594bSBjorn Andersson 35794433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_axi_clk = { 35804433594bSBjorn Andersson .halt_reg = 0x77010, 35814433594bSBjorn Andersson .halt_check = BRANCH_HALT, 35824433594bSBjorn Andersson .hwcg_reg = 0x77010, 35834433594bSBjorn Andersson .hwcg_bit = 1, 35844433594bSBjorn Andersson .clkr = { 35854433594bSBjorn Andersson .enable_reg = 0x77010, 35864433594bSBjorn Andersson .enable_mask = BIT(0), 35874433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 35884433594bSBjorn Andersson .name = "gcc_ufs_phy_axi_clk", 35894433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 35904433594bSBjorn Andersson &gcc_ufs_phy_axi_clk_src.clkr.hw 35914433594bSBjorn Andersson }, 35924433594bSBjorn Andersson .num_parents = 1, 35934433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 35944433594bSBjorn Andersson .ops = &clk_branch2_ops, 35954433594bSBjorn Andersson }, 35964433594bSBjorn Andersson }, 35974433594bSBjorn Andersson }; 35984433594bSBjorn Andersson 35994433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = { 36004433594bSBjorn Andersson .halt_reg = 0x77010, 36014433594bSBjorn Andersson .halt_check = BRANCH_HALT, 36024433594bSBjorn Andersson .hwcg_reg = 0x77010, 36034433594bSBjorn Andersson .hwcg_bit = 1, 36044433594bSBjorn Andersson .clkr = { 36054433594bSBjorn Andersson .enable_reg = 0x77010, 36064433594bSBjorn Andersson .enable_mask = BIT(1), 36074433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 36084433594bSBjorn Andersson .name = "gcc_ufs_phy_axi_hw_ctl_clk", 36094433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 36104433594bSBjorn Andersson &gcc_ufs_phy_axi_clk.clkr.hw 36114433594bSBjorn Andersson }, 36124433594bSBjorn Andersson .num_parents = 1, 36134433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 36144433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 36154433594bSBjorn Andersson }, 36164433594bSBjorn Andersson }, 36174433594bSBjorn Andersson }; 36184433594bSBjorn Andersson 36194433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_ice_core_clk = { 36204433594bSBjorn Andersson .halt_reg = 0x7705c, 36214433594bSBjorn Andersson .halt_check = BRANCH_HALT, 36224433594bSBjorn Andersson .hwcg_reg = 0x7705c, 36234433594bSBjorn Andersson .hwcg_bit = 1, 36244433594bSBjorn Andersson .clkr = { 36254433594bSBjorn Andersson .enable_reg = 0x7705c, 36264433594bSBjorn Andersson .enable_mask = BIT(0), 36274433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 36284433594bSBjorn Andersson .name = "gcc_ufs_phy_ice_core_clk", 36294433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 36304433594bSBjorn Andersson &gcc_ufs_phy_ice_core_clk_src.clkr.hw 36314433594bSBjorn Andersson }, 36324433594bSBjorn Andersson .num_parents = 1, 36334433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 36344433594bSBjorn Andersson .ops = &clk_branch2_ops, 36354433594bSBjorn Andersson }, 36364433594bSBjorn Andersson }, 36374433594bSBjorn Andersson }; 36384433594bSBjorn Andersson 36394433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = { 36404433594bSBjorn Andersson .halt_reg = 0x7705c, 36414433594bSBjorn Andersson .halt_check = BRANCH_HALT, 36424433594bSBjorn Andersson .hwcg_reg = 0x7705c, 36434433594bSBjorn Andersson .hwcg_bit = 1, 36444433594bSBjorn Andersson .clkr = { 36454433594bSBjorn Andersson .enable_reg = 0x7705c, 36464433594bSBjorn Andersson .enable_mask = BIT(1), 36474433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 36484433594bSBjorn Andersson .name = "gcc_ufs_phy_ice_core_hw_ctl_clk", 36494433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 36504433594bSBjorn Andersson &gcc_ufs_phy_ice_core_clk.clkr.hw 36514433594bSBjorn Andersson }, 36524433594bSBjorn Andersson .num_parents = 1, 36534433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 36544433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 36554433594bSBjorn Andersson }, 36564433594bSBjorn Andersson }, 36574433594bSBjorn Andersson }; 36584433594bSBjorn Andersson 36594433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_phy_aux_clk = { 36604433594bSBjorn Andersson .halt_reg = 0x77090, 36614433594bSBjorn Andersson .halt_check = BRANCH_HALT, 36624433594bSBjorn Andersson .hwcg_reg = 0x77090, 36634433594bSBjorn Andersson .hwcg_bit = 1, 36644433594bSBjorn Andersson .clkr = { 36654433594bSBjorn Andersson .enable_reg = 0x77090, 36664433594bSBjorn Andersson .enable_mask = BIT(0), 36674433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 36684433594bSBjorn Andersson .name = "gcc_ufs_phy_phy_aux_clk", 36694433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 36704433594bSBjorn Andersson &gcc_ufs_phy_phy_aux_clk_src.clkr.hw 36714433594bSBjorn Andersson }, 36724433594bSBjorn Andersson .num_parents = 1, 36734433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 36744433594bSBjorn Andersson .ops = &clk_branch2_ops, 36754433594bSBjorn Andersson }, 36764433594bSBjorn Andersson }, 36774433594bSBjorn Andersson }; 36784433594bSBjorn Andersson 36794433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = { 36804433594bSBjorn Andersson .halt_reg = 0x77090, 36814433594bSBjorn Andersson .halt_check = BRANCH_HALT, 36824433594bSBjorn Andersson .hwcg_reg = 0x77090, 36834433594bSBjorn Andersson .hwcg_bit = 1, 36844433594bSBjorn Andersson .clkr = { 36854433594bSBjorn Andersson .enable_reg = 0x77090, 36864433594bSBjorn Andersson .enable_mask = BIT(1), 36874433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 36884433594bSBjorn Andersson .name = "gcc_ufs_phy_phy_aux_hw_ctl_clk", 36894433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 36904433594bSBjorn Andersson &gcc_ufs_phy_phy_aux_clk.clkr.hw 36914433594bSBjorn Andersson }, 36924433594bSBjorn Andersson .num_parents = 1, 36934433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 36944433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 36954433594bSBjorn Andersson }, 36964433594bSBjorn Andersson }, 36974433594bSBjorn Andersson }; 36984433594bSBjorn Andersson 36994433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = { 37004433594bSBjorn Andersson .halt_reg = 0x7701c, 37014433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 37024433594bSBjorn Andersson .clkr = { 37034433594bSBjorn Andersson .enable_reg = 0x7701c, 37044433594bSBjorn Andersson .enable_mask = BIT(0), 37054433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 37064433594bSBjorn Andersson .name = "gcc_ufs_phy_rx_symbol_0_clk", 37074433594bSBjorn Andersson .ops = &clk_branch2_ops, 37084433594bSBjorn Andersson }, 37094433594bSBjorn Andersson }, 37104433594bSBjorn Andersson }; 37114433594bSBjorn Andersson 37124433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = { 37134433594bSBjorn Andersson .halt_reg = 0x770ac, 37144433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 37154433594bSBjorn Andersson .clkr = { 37164433594bSBjorn Andersson .enable_reg = 0x770ac, 37174433594bSBjorn Andersson .enable_mask = BIT(0), 37184433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 37194433594bSBjorn Andersson .name = "gcc_ufs_phy_rx_symbol_1_clk", 37204433594bSBjorn Andersson .ops = &clk_branch2_ops, 37214433594bSBjorn Andersson }, 37224433594bSBjorn Andersson }, 37234433594bSBjorn Andersson }; 37244433594bSBjorn Andersson 37254433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = { 37264433594bSBjorn Andersson .halt_reg = 0x77018, 37274433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 37284433594bSBjorn Andersson .clkr = { 37294433594bSBjorn Andersson .enable_reg = 0x77018, 37304433594bSBjorn Andersson .enable_mask = BIT(0), 37314433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 37324433594bSBjorn Andersson .name = "gcc_ufs_phy_tx_symbol_0_clk", 37334433594bSBjorn Andersson .ops = &clk_branch2_ops, 37344433594bSBjorn Andersson }, 37354433594bSBjorn Andersson }, 37364433594bSBjorn Andersson }; 37374433594bSBjorn Andersson 37384433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_unipro_core_clk = { 37394433594bSBjorn Andersson .halt_reg = 0x77058, 37404433594bSBjorn Andersson .halt_check = BRANCH_HALT, 37414433594bSBjorn Andersson .hwcg_reg = 0x77058, 37424433594bSBjorn Andersson .hwcg_bit = 1, 37434433594bSBjorn Andersson .clkr = { 37444433594bSBjorn Andersson .enable_reg = 0x77058, 37454433594bSBjorn Andersson .enable_mask = BIT(0), 37464433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 37474433594bSBjorn Andersson .name = "gcc_ufs_phy_unipro_core_clk", 37484433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 37494433594bSBjorn Andersson &gcc_ufs_phy_unipro_core_clk_src.clkr.hw 37504433594bSBjorn Andersson }, 37514433594bSBjorn Andersson .num_parents = 1, 37524433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 37534433594bSBjorn Andersson .ops = &clk_branch2_ops, 37544433594bSBjorn Andersson }, 37554433594bSBjorn Andersson }, 37564433594bSBjorn Andersson }; 37574433594bSBjorn Andersson 37584433594bSBjorn Andersson static struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = { 37594433594bSBjorn Andersson .halt_reg = 0x77058, 37604433594bSBjorn Andersson .halt_check = BRANCH_HALT, 37614433594bSBjorn Andersson .hwcg_reg = 0x77058, 37624433594bSBjorn Andersson .hwcg_bit = 1, 37634433594bSBjorn Andersson .clkr = { 37644433594bSBjorn Andersson .enable_reg = 0x77058, 37654433594bSBjorn Andersson .enable_mask = BIT(1), 37664433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 37674433594bSBjorn Andersson .name = "gcc_ufs_phy_unipro_core_hw_ctl_clk", 37684433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 37694433594bSBjorn Andersson &gcc_ufs_phy_unipro_core_clk.clkr.hw 37704433594bSBjorn Andersson }, 37714433594bSBjorn Andersson .num_parents = 1, 37724433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 37734433594bSBjorn Andersson .ops = &clk_branch_simple_ops, 37744433594bSBjorn Andersson }, 37754433594bSBjorn Andersson }, 37764433594bSBjorn Andersson }; 37774433594bSBjorn Andersson 37784433594bSBjorn Andersson static struct clk_branch gcc_usb30_mp_master_clk = { 37794433594bSBjorn Andersson .halt_reg = 0xa6010, 37804433594bSBjorn Andersson .halt_check = BRANCH_HALT, 37814433594bSBjorn Andersson .clkr = { 37824433594bSBjorn Andersson .enable_reg = 0xa6010, 37834433594bSBjorn Andersson .enable_mask = BIT(0), 37844433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 37854433594bSBjorn Andersson .name = "gcc_usb30_mp_master_clk", 37864433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 37874433594bSBjorn Andersson &gcc_usb30_mp_master_clk_src.clkr.hw }, 37884433594bSBjorn Andersson .num_parents = 1, 37894433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 37904433594bSBjorn Andersson .ops = &clk_branch2_ops, 37914433594bSBjorn Andersson }, 37924433594bSBjorn Andersson }, 37934433594bSBjorn Andersson }; 37944433594bSBjorn Andersson 37954433594bSBjorn Andersson static struct clk_branch gcc_usb30_mp_mock_utmi_clk = { 37964433594bSBjorn Andersson .halt_reg = 0xa6018, 37974433594bSBjorn Andersson .halt_check = BRANCH_HALT, 37984433594bSBjorn Andersson .clkr = { 37994433594bSBjorn Andersson .enable_reg = 0xa6018, 38004433594bSBjorn Andersson .enable_mask = BIT(0), 38014433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 38024433594bSBjorn Andersson .name = "gcc_usb30_mp_mock_utmi_clk", 38034433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 38044433594bSBjorn Andersson &gcc_usb30_mp_mock_utmi_clk_src.clkr.hw 38054433594bSBjorn Andersson }, 38064433594bSBjorn Andersson .num_parents = 1, 38074433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 38084433594bSBjorn Andersson .ops = &clk_branch2_ops, 38094433594bSBjorn Andersson }, 38104433594bSBjorn Andersson }, 38114433594bSBjorn Andersson }; 38124433594bSBjorn Andersson 38134433594bSBjorn Andersson static struct clk_branch gcc_usb30_mp_sleep_clk = { 38144433594bSBjorn Andersson .halt_reg = 0xa6014, 38154433594bSBjorn Andersson .halt_check = BRANCH_HALT, 38164433594bSBjorn Andersson .clkr = { 38174433594bSBjorn Andersson .enable_reg = 0xa6014, 38184433594bSBjorn Andersson .enable_mask = BIT(0), 38194433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 38204433594bSBjorn Andersson .name = "gcc_usb30_mp_sleep_clk", 38214433594bSBjorn Andersson .ops = &clk_branch2_ops, 38224433594bSBjorn Andersson }, 38234433594bSBjorn Andersson }, 38244433594bSBjorn Andersson }; 38254433594bSBjorn Andersson 38264433594bSBjorn Andersson static struct clk_branch gcc_usb30_prim_master_clk = { 38274433594bSBjorn Andersson .halt_reg = 0xf010, 38284433594bSBjorn Andersson .halt_check = BRANCH_HALT, 38294433594bSBjorn Andersson .clkr = { 38304433594bSBjorn Andersson .enable_reg = 0xf010, 38314433594bSBjorn Andersson .enable_mask = BIT(0), 38324433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 38334433594bSBjorn Andersson .name = "gcc_usb30_prim_master_clk", 38344433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 38354433594bSBjorn Andersson &gcc_usb30_prim_master_clk_src.clkr.hw }, 38364433594bSBjorn Andersson .num_parents = 1, 38374433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 38384433594bSBjorn Andersson .ops = &clk_branch2_ops, 38394433594bSBjorn Andersson }, 38404433594bSBjorn Andersson }, 38414433594bSBjorn Andersson }; 38424433594bSBjorn Andersson 38434433594bSBjorn Andersson static struct clk_branch gcc_usb30_prim_mock_utmi_clk = { 38444433594bSBjorn Andersson .halt_reg = 0xf018, 38454433594bSBjorn Andersson .halt_check = BRANCH_HALT, 38464433594bSBjorn Andersson .clkr = { 38474433594bSBjorn Andersson .enable_reg = 0xf018, 38484433594bSBjorn Andersson .enable_mask = BIT(0), 38494433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 38504433594bSBjorn Andersson .name = "gcc_usb30_prim_mock_utmi_clk", 38514433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 38524433594bSBjorn Andersson &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw 38534433594bSBjorn Andersson }, 38544433594bSBjorn Andersson .num_parents = 1, 38554433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 38564433594bSBjorn Andersson .ops = &clk_branch2_ops, 38574433594bSBjorn Andersson }, 38584433594bSBjorn Andersson }, 38594433594bSBjorn Andersson }; 38604433594bSBjorn Andersson 38614433594bSBjorn Andersson static struct clk_branch gcc_usb30_prim_sleep_clk = { 38624433594bSBjorn Andersson .halt_reg = 0xf014, 38634433594bSBjorn Andersson .halt_check = BRANCH_HALT, 38644433594bSBjorn Andersson .clkr = { 38654433594bSBjorn Andersson .enable_reg = 0xf014, 38664433594bSBjorn Andersson .enable_mask = BIT(0), 38674433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 38684433594bSBjorn Andersson .name = "gcc_usb30_prim_sleep_clk", 38694433594bSBjorn Andersson .ops = &clk_branch2_ops, 38704433594bSBjorn Andersson }, 38714433594bSBjorn Andersson }, 38724433594bSBjorn Andersson }; 38734433594bSBjorn Andersson 38744433594bSBjorn Andersson static struct clk_branch gcc_usb30_sec_master_clk = { 38754433594bSBjorn Andersson .halt_reg = 0x10010, 38764433594bSBjorn Andersson .halt_check = BRANCH_HALT, 38774433594bSBjorn Andersson .clkr = { 38784433594bSBjorn Andersson .enable_reg = 0x10010, 38794433594bSBjorn Andersson .enable_mask = BIT(0), 38804433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 38814433594bSBjorn Andersson .name = "gcc_usb30_sec_master_clk", 38824433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 38834433594bSBjorn Andersson &gcc_usb30_sec_master_clk_src.clkr.hw }, 38844433594bSBjorn Andersson .num_parents = 1, 38854433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 38864433594bSBjorn Andersson .ops = &clk_branch2_ops, 38874433594bSBjorn Andersson }, 38884433594bSBjorn Andersson }, 38894433594bSBjorn Andersson }; 38904433594bSBjorn Andersson 38914433594bSBjorn Andersson static struct clk_branch gcc_usb30_sec_mock_utmi_clk = { 38924433594bSBjorn Andersson .halt_reg = 0x10018, 38934433594bSBjorn Andersson .halt_check = BRANCH_HALT, 38944433594bSBjorn Andersson .clkr = { 38954433594bSBjorn Andersson .enable_reg = 0x10018, 38964433594bSBjorn Andersson .enable_mask = BIT(0), 38974433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 38984433594bSBjorn Andersson .name = "gcc_usb30_sec_mock_utmi_clk", 38994433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 39004433594bSBjorn Andersson &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw 39014433594bSBjorn Andersson }, 39024433594bSBjorn Andersson .num_parents = 1, 39034433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 39044433594bSBjorn Andersson .ops = &clk_branch2_ops, 39054433594bSBjorn Andersson }, 39064433594bSBjorn Andersson }, 39074433594bSBjorn Andersson }; 39084433594bSBjorn Andersson 39094433594bSBjorn Andersson static struct clk_branch gcc_usb30_sec_sleep_clk = { 39104433594bSBjorn Andersson .halt_reg = 0x10014, 39114433594bSBjorn Andersson .halt_check = BRANCH_HALT, 39124433594bSBjorn Andersson .clkr = { 39134433594bSBjorn Andersson .enable_reg = 0x10014, 39144433594bSBjorn Andersson .enable_mask = BIT(0), 39154433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 39164433594bSBjorn Andersson .name = "gcc_usb30_sec_sleep_clk", 39174433594bSBjorn Andersson .ops = &clk_branch2_ops, 39184433594bSBjorn Andersson }, 39194433594bSBjorn Andersson }, 39204433594bSBjorn Andersson }; 39214433594bSBjorn Andersson 39224433594bSBjorn Andersson static struct clk_branch gcc_usb3_mp_phy_aux_clk = { 39234433594bSBjorn Andersson .halt_reg = 0xa6050, 39244433594bSBjorn Andersson .halt_check = BRANCH_HALT, 39254433594bSBjorn Andersson .clkr = { 39264433594bSBjorn Andersson .enable_reg = 0xa6050, 39274433594bSBjorn Andersson .enable_mask = BIT(0), 39284433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 39294433594bSBjorn Andersson .name = "gcc_usb3_mp_phy_aux_clk", 39304433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 39314433594bSBjorn Andersson &gcc_usb3_mp_phy_aux_clk_src.clkr.hw 39324433594bSBjorn Andersson }, 39334433594bSBjorn Andersson .num_parents = 1, 39344433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 39354433594bSBjorn Andersson .ops = &clk_branch2_ops, 39364433594bSBjorn Andersson }, 39374433594bSBjorn Andersson }, 39384433594bSBjorn Andersson }; 39394433594bSBjorn Andersson 39404433594bSBjorn Andersson static struct clk_branch gcc_usb3_mp_phy_com_aux_clk = { 39414433594bSBjorn Andersson .halt_reg = 0xa6054, 39424433594bSBjorn Andersson .halt_check = BRANCH_HALT, 39434433594bSBjorn Andersson .clkr = { 39444433594bSBjorn Andersson .enable_reg = 0xa6054, 39454433594bSBjorn Andersson .enable_mask = BIT(0), 39464433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 39474433594bSBjorn Andersson .name = "gcc_usb3_mp_phy_com_aux_clk", 39484433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 39494433594bSBjorn Andersson &gcc_usb3_mp_phy_aux_clk_src.clkr.hw 39504433594bSBjorn Andersson }, 39514433594bSBjorn Andersson .num_parents = 1, 39524433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 39534433594bSBjorn Andersson .ops = &clk_branch2_ops, 39544433594bSBjorn Andersson }, 39554433594bSBjorn Andersson }, 39564433594bSBjorn Andersson }; 39574433594bSBjorn Andersson 39584433594bSBjorn Andersson static struct clk_branch gcc_usb3_mp_phy_pipe_0_clk = { 39594433594bSBjorn Andersson .halt_reg = 0xa6058, 39604433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 39614433594bSBjorn Andersson .clkr = { 39624433594bSBjorn Andersson .enable_reg = 0xa6058, 39634433594bSBjorn Andersson .enable_mask = BIT(0), 39644433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 39654433594bSBjorn Andersson .name = "gcc_usb3_mp_phy_pipe_0_clk", 39664433594bSBjorn Andersson .ops = &clk_branch2_ops, 39674433594bSBjorn Andersson }, 39684433594bSBjorn Andersson }, 39694433594bSBjorn Andersson }; 39704433594bSBjorn Andersson 39714433594bSBjorn Andersson static struct clk_branch gcc_usb3_mp_phy_pipe_1_clk = { 39724433594bSBjorn Andersson .halt_reg = 0xa605c, 39734433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 39744433594bSBjorn Andersson .clkr = { 39754433594bSBjorn Andersson .enable_reg = 0xa605c, 39764433594bSBjorn Andersson .enable_mask = BIT(0), 39774433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 39784433594bSBjorn Andersson .name = "gcc_usb3_mp_phy_pipe_1_clk", 39794433594bSBjorn Andersson .ops = &clk_branch2_ops, 39804433594bSBjorn Andersson }, 39814433594bSBjorn Andersson }, 39824433594bSBjorn Andersson }; 39834433594bSBjorn Andersson 39844433594bSBjorn Andersson static struct clk_branch gcc_usb3_prim_clkref_clk = { 39854433594bSBjorn Andersson .halt_reg = 0x8c008, 39864433594bSBjorn Andersson .halt_check = BRANCH_HALT, 39874433594bSBjorn Andersson .clkr = { 39884433594bSBjorn Andersson .enable_reg = 0x8c008, 39894433594bSBjorn Andersson .enable_mask = BIT(0), 39904433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 39914433594bSBjorn Andersson .name = "gcc_usb3_prim_clkref_clk", 39924433594bSBjorn Andersson .ops = &clk_branch2_ops, 39934433594bSBjorn Andersson }, 39944433594bSBjorn Andersson }, 39954433594bSBjorn Andersson }; 39964433594bSBjorn Andersson 39974433594bSBjorn Andersson static struct clk_branch gcc_usb3_prim_phy_aux_clk = { 39984433594bSBjorn Andersson .halt_reg = 0xf050, 39994433594bSBjorn Andersson .halt_check = BRANCH_HALT, 40004433594bSBjorn Andersson .clkr = { 40014433594bSBjorn Andersson .enable_reg = 0xf050, 40024433594bSBjorn Andersson .enable_mask = BIT(0), 40034433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 40044433594bSBjorn Andersson .name = "gcc_usb3_prim_phy_aux_clk", 40054433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 40064433594bSBjorn Andersson &gcc_usb3_prim_phy_aux_clk_src.clkr.hw 40074433594bSBjorn Andersson }, 40084433594bSBjorn Andersson .num_parents = 1, 40094433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 40104433594bSBjorn Andersson .ops = &clk_branch2_ops, 40114433594bSBjorn Andersson }, 40124433594bSBjorn Andersson }, 40134433594bSBjorn Andersson }; 40144433594bSBjorn Andersson 40154433594bSBjorn Andersson static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = { 40164433594bSBjorn Andersson .halt_reg = 0xf054, 40174433594bSBjorn Andersson .halt_check = BRANCH_HALT, 40184433594bSBjorn Andersson .clkr = { 40194433594bSBjorn Andersson .enable_reg = 0xf054, 40204433594bSBjorn Andersson .enable_mask = BIT(0), 40214433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 40224433594bSBjorn Andersson .name = "gcc_usb3_prim_phy_com_aux_clk", 40234433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 40244433594bSBjorn Andersson &gcc_usb3_prim_phy_aux_clk_src.clkr.hw 40254433594bSBjorn Andersson }, 40264433594bSBjorn Andersson .num_parents = 1, 40274433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 40284433594bSBjorn Andersson .ops = &clk_branch2_ops, 40294433594bSBjorn Andersson }, 40304433594bSBjorn Andersson }, 40314433594bSBjorn Andersson }; 40324433594bSBjorn Andersson 40334433594bSBjorn Andersson static struct clk_branch gcc_usb3_prim_phy_pipe_clk = { 40344433594bSBjorn Andersson .halt_reg = 0xf058, 40354433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 40364433594bSBjorn Andersson .clkr = { 40374433594bSBjorn Andersson .enable_reg = 0xf058, 40384433594bSBjorn Andersson .enable_mask = BIT(0), 40394433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 40404433594bSBjorn Andersson .name = "gcc_usb3_prim_phy_pipe_clk", 40414433594bSBjorn Andersson .ops = &clk_branch2_ops, 40424433594bSBjorn Andersson }, 40434433594bSBjorn Andersson }, 40444433594bSBjorn Andersson }; 40454433594bSBjorn Andersson 40464433594bSBjorn Andersson static struct clk_branch gcc_usb3_sec_clkref_clk = { 40474433594bSBjorn Andersson .halt_reg = 0x8c028, 40484433594bSBjorn Andersson .halt_check = BRANCH_HALT, 40494433594bSBjorn Andersson .clkr = { 40504433594bSBjorn Andersson .enable_reg = 0x8c028, 40514433594bSBjorn Andersson .enable_mask = BIT(0), 40524433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 40534433594bSBjorn Andersson .name = "gcc_usb3_sec_clkref_clk", 40544433594bSBjorn Andersson .ops = &clk_branch2_ops, 40554433594bSBjorn Andersson }, 40564433594bSBjorn Andersson }, 40574433594bSBjorn Andersson }; 40584433594bSBjorn Andersson 40594433594bSBjorn Andersson static struct clk_branch gcc_usb3_sec_phy_aux_clk = { 40604433594bSBjorn Andersson .halt_reg = 0x10050, 40614433594bSBjorn Andersson .halt_check = BRANCH_HALT, 40624433594bSBjorn Andersson .clkr = { 40634433594bSBjorn Andersson .enable_reg = 0x10050, 40644433594bSBjorn Andersson .enable_mask = BIT(0), 40654433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 40664433594bSBjorn Andersson .name = "gcc_usb3_sec_phy_aux_clk", 40674433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 40684433594bSBjorn Andersson &gcc_usb3_sec_phy_aux_clk_src.clkr.hw 40694433594bSBjorn Andersson }, 40704433594bSBjorn Andersson .num_parents = 1, 40714433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 40724433594bSBjorn Andersson .ops = &clk_branch2_ops, 40734433594bSBjorn Andersson }, 40744433594bSBjorn Andersson }, 40754433594bSBjorn Andersson }; 40764433594bSBjorn Andersson 40774433594bSBjorn Andersson static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = { 40784433594bSBjorn Andersson .halt_reg = 0x10054, 40794433594bSBjorn Andersson .halt_check = BRANCH_HALT, 40804433594bSBjorn Andersson .clkr = { 40814433594bSBjorn Andersson .enable_reg = 0x10054, 40824433594bSBjorn Andersson .enable_mask = BIT(0), 40834433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 40844433594bSBjorn Andersson .name = "gcc_usb3_sec_phy_com_aux_clk", 40854433594bSBjorn Andersson .parent_hws = (const struct clk_hw *[]){ 40864433594bSBjorn Andersson &gcc_usb3_sec_phy_aux_clk_src.clkr.hw 40874433594bSBjorn Andersson }, 40884433594bSBjorn Andersson .num_parents = 1, 40894433594bSBjorn Andersson .flags = CLK_SET_RATE_PARENT, 40904433594bSBjorn Andersson .ops = &clk_branch2_ops, 40914433594bSBjorn Andersson }, 40924433594bSBjorn Andersson }, 40934433594bSBjorn Andersson }; 40944433594bSBjorn Andersson 40954433594bSBjorn Andersson static struct clk_branch gcc_usb3_sec_phy_pipe_clk = { 40964433594bSBjorn Andersson .halt_reg = 0x10058, 40974433594bSBjorn Andersson .halt_check = BRANCH_HALT_SKIP, 40984433594bSBjorn Andersson .clkr = { 40994433594bSBjorn Andersson .enable_reg = 0x10058, 41004433594bSBjorn Andersson .enable_mask = BIT(0), 41014433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 41024433594bSBjorn Andersson .name = "gcc_usb3_sec_phy_pipe_clk", 41034433594bSBjorn Andersson .ops = &clk_branch2_ops, 41044433594bSBjorn Andersson }, 41054433594bSBjorn Andersson }, 41064433594bSBjorn Andersson }; 41074433594bSBjorn Andersson 41084433594bSBjorn Andersson static struct clk_branch gcc_video_axi0_clk = { 41094433594bSBjorn Andersson .halt_reg = 0xb024, 41104433594bSBjorn Andersson .halt_check = BRANCH_HALT, 41114433594bSBjorn Andersson .clkr = { 41124433594bSBjorn Andersson .enable_reg = 0xb024, 41134433594bSBjorn Andersson .enable_mask = BIT(0), 41144433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 41154433594bSBjorn Andersson .name = "gcc_video_axi0_clk", 41164433594bSBjorn Andersson .ops = &clk_branch2_ops, 41174433594bSBjorn Andersson }, 41184433594bSBjorn Andersson }, 41194433594bSBjorn Andersson }; 41204433594bSBjorn Andersson 41214433594bSBjorn Andersson static struct clk_branch gcc_video_axi1_clk = { 41224433594bSBjorn Andersson .halt_reg = 0xb028, 41234433594bSBjorn Andersson .halt_check = BRANCH_HALT, 41244433594bSBjorn Andersson .clkr = { 41254433594bSBjorn Andersson .enable_reg = 0xb028, 41264433594bSBjorn Andersson .enable_mask = BIT(0), 41274433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 41284433594bSBjorn Andersson .name = "gcc_video_axi1_clk", 41294433594bSBjorn Andersson .ops = &clk_branch2_ops, 41304433594bSBjorn Andersson }, 41314433594bSBjorn Andersson }, 41324433594bSBjorn Andersson }; 41334433594bSBjorn Andersson 41344433594bSBjorn Andersson static struct clk_branch gcc_video_axic_clk = { 41354433594bSBjorn Andersson .halt_reg = 0xb02c, 41364433594bSBjorn Andersson .halt_check = BRANCH_HALT, 41374433594bSBjorn Andersson .clkr = { 41384433594bSBjorn Andersson .enable_reg = 0xb02c, 41394433594bSBjorn Andersson .enable_mask = BIT(0), 41404433594bSBjorn Andersson .hw.init = &(struct clk_init_data){ 41414433594bSBjorn Andersson .name = "gcc_video_axic_clk", 41424433594bSBjorn Andersson .ops = &clk_branch2_ops, 41434433594bSBjorn Andersson }, 41444433594bSBjorn Andersson }, 41454433594bSBjorn Andersson }; 41464433594bSBjorn Andersson 41474433594bSBjorn Andersson static struct gdsc usb30_sec_gdsc = { 41484433594bSBjorn Andersson .gdscr = 0x10004, 41494433594bSBjorn Andersson .pd = { 41504433594bSBjorn Andersson .name = "usb30_sec_gdsc", 41514433594bSBjorn Andersson }, 41524433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 41534433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 41544433594bSBjorn Andersson }; 41554433594bSBjorn Andersson 41564433594bSBjorn Andersson static struct gdsc emac_gdsc = { 41574433594bSBjorn Andersson .gdscr = 0x6004, 41584433594bSBjorn Andersson .pd = { 41594433594bSBjorn Andersson .name = "emac_gdsc", 41604433594bSBjorn Andersson }, 41614433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 41624433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 41634433594bSBjorn Andersson }; 41644433594bSBjorn Andersson 41654433594bSBjorn Andersson static struct gdsc usb30_prim_gdsc = { 41664433594bSBjorn Andersson .gdscr = 0xf004, 41674433594bSBjorn Andersson .pd = { 41684433594bSBjorn Andersson .name = "usb30_prim_gdsc", 41694433594bSBjorn Andersson }, 41704433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 41714433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 41724433594bSBjorn Andersson }; 41734433594bSBjorn Andersson 41744433594bSBjorn Andersson static struct gdsc pcie_0_gdsc = { 41754433594bSBjorn Andersson .gdscr = 0x6b004, 41764433594bSBjorn Andersson .pd = { 41774433594bSBjorn Andersson .name = "pcie_0_gdsc", 41784433594bSBjorn Andersson }, 41794433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 41804433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 41814433594bSBjorn Andersson }; 41824433594bSBjorn Andersson 41834433594bSBjorn Andersson static struct gdsc ufs_card_gdsc = { 41844433594bSBjorn Andersson .gdscr = 0x75004, 41854433594bSBjorn Andersson .pd = { 41864433594bSBjorn Andersson .name = "ufs_card_gdsc", 41874433594bSBjorn Andersson }, 41884433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 41894433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 41904433594bSBjorn Andersson }; 41914433594bSBjorn Andersson 41924433594bSBjorn Andersson static struct gdsc ufs_phy_gdsc = { 41934433594bSBjorn Andersson .gdscr = 0x77004, 41944433594bSBjorn Andersson .pd = { 41954433594bSBjorn Andersson .name = "ufs_phy_gdsc", 41964433594bSBjorn Andersson }, 41974433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 41984433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 41994433594bSBjorn Andersson }; 42004433594bSBjorn Andersson 42014433594bSBjorn Andersson static struct gdsc pcie_1_gdsc = { 42024433594bSBjorn Andersson .gdscr = 0x8d004, 42034433594bSBjorn Andersson .pd = { 42044433594bSBjorn Andersson .name = "pcie_1_gdsc", 42054433594bSBjorn Andersson }, 42064433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 42074433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 42084433594bSBjorn Andersson }; 42094433594bSBjorn Andersson 42104433594bSBjorn Andersson static struct gdsc pcie_2_gdsc = { 42114433594bSBjorn Andersson .gdscr = 0x9d004, 42124433594bSBjorn Andersson .pd = { 42134433594bSBjorn Andersson .name = "pcie_2_gdsc", 42144433594bSBjorn Andersson }, 42154433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 42164433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 42174433594bSBjorn Andersson }; 42184433594bSBjorn Andersson 42194433594bSBjorn Andersson static struct gdsc ufs_card_2_gdsc = { 42204433594bSBjorn Andersson .gdscr = 0xa2004, 42214433594bSBjorn Andersson .pd = { 42224433594bSBjorn Andersson .name = "ufs_card_2_gdsc", 42234433594bSBjorn Andersson }, 42244433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 42254433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 42264433594bSBjorn Andersson }; 42274433594bSBjorn Andersson 42284433594bSBjorn Andersson static struct gdsc pcie_3_gdsc = { 42294433594bSBjorn Andersson .gdscr = 0xa3004, 42304433594bSBjorn Andersson .pd = { 42314433594bSBjorn Andersson .name = "pcie_3_gdsc", 42324433594bSBjorn Andersson }, 42334433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 42344433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 42354433594bSBjorn Andersson }; 42364433594bSBjorn Andersson 42374433594bSBjorn Andersson static struct gdsc usb30_mp_gdsc = { 42384433594bSBjorn Andersson .gdscr = 0xa6004, 42394433594bSBjorn Andersson .pd = { 42404433594bSBjorn Andersson .name = "usb30_mp_gdsc", 42414433594bSBjorn Andersson }, 42424433594bSBjorn Andersson .pwrsts = PWRSTS_OFF_ON, 42434433594bSBjorn Andersson .flags = POLL_CFG_GDSCR, 42444433594bSBjorn Andersson }; 42454433594bSBjorn Andersson 42464433594bSBjorn Andersson static struct clk_regmap *gcc_sc8180x_clocks[] = { 42474433594bSBjorn Andersson [GCC_AGGRE_NOC_PCIE_TBU_CLK] = &gcc_aggre_noc_pcie_tbu_clk.clkr, 42484433594bSBjorn Andersson [GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr, 42494433594bSBjorn Andersson [GCC_AGGRE_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_card_axi_hw_ctl_clk.clkr, 42504433594bSBjorn Andersson [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr, 42514433594bSBjorn Andersson [GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_aggre_ufs_phy_axi_hw_ctl_clk.clkr, 42524433594bSBjorn Andersson [GCC_AGGRE_USB3_MP_AXI_CLK] = &gcc_aggre_usb3_mp_axi_clk.clkr, 42534433594bSBjorn Andersson [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr, 42544433594bSBjorn Andersson [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr, 42554433594bSBjorn Andersson [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr, 42564433594bSBjorn Andersson [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr, 42574433594bSBjorn Andersson [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr, 42584433594bSBjorn Andersson [GCC_CFG_NOC_USB3_MP_AXI_CLK] = &gcc_cfg_noc_usb3_mp_axi_clk.clkr, 42594433594bSBjorn Andersson [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr, 42604433594bSBjorn Andersson [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr, 42614433594bSBjorn Andersson [GCC_CPUSS_AHB_CLK] = &gcc_cpuss_ahb_clk.clkr, 42624433594bSBjorn Andersson [GCC_CPUSS_AHB_CLK_SRC] = &gcc_cpuss_ahb_clk_src.clkr, 42634433594bSBjorn Andersson [GCC_CPUSS_RBCPR_CLK] = &gcc_cpuss_rbcpr_clk.clkr, 42644433594bSBjorn Andersson [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr, 42654433594bSBjorn Andersson [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr, 42664433594bSBjorn Andersson [GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr, 42674433594bSBjorn Andersson [GCC_EMAC_AXI_CLK] = &gcc_emac_axi_clk.clkr, 42684433594bSBjorn Andersson [GCC_EMAC_PTP_CLK] = &gcc_emac_ptp_clk.clkr, 42694433594bSBjorn Andersson [GCC_EMAC_PTP_CLK_SRC] = &gcc_emac_ptp_clk_src.clkr, 42704433594bSBjorn Andersson [GCC_EMAC_RGMII_CLK] = &gcc_emac_rgmii_clk.clkr, 42714433594bSBjorn Andersson [GCC_EMAC_RGMII_CLK_SRC] = &gcc_emac_rgmii_clk_src.clkr, 42724433594bSBjorn Andersson [GCC_EMAC_SLV_AHB_CLK] = &gcc_emac_slv_ahb_clk.clkr, 42734433594bSBjorn Andersson [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, 42744433594bSBjorn Andersson [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr, 42754433594bSBjorn Andersson [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, 42764433594bSBjorn Andersson [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr, 42774433594bSBjorn Andersson [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, 42784433594bSBjorn Andersson [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr, 42794433594bSBjorn Andersson [GCC_GP4_CLK] = &gcc_gp4_clk.clkr, 42804433594bSBjorn Andersson [GCC_GP4_CLK_SRC] = &gcc_gp4_clk_src.clkr, 42814433594bSBjorn Andersson [GCC_GP5_CLK] = &gcc_gp5_clk.clkr, 42824433594bSBjorn Andersson [GCC_GP5_CLK_SRC] = &gcc_gp5_clk_src.clkr, 42834433594bSBjorn Andersson [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr, 42844433594bSBjorn Andersson [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr, 42854433594bSBjorn Andersson [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr, 42864433594bSBjorn Andersson [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr, 42874433594bSBjorn Andersson [GCC_NPU_AT_CLK] = &gcc_npu_at_clk.clkr, 42884433594bSBjorn Andersson [GCC_NPU_AXI_CLK] = &gcc_npu_axi_clk.clkr, 42894433594bSBjorn Andersson [GCC_NPU_AXI_CLK_SRC] = &gcc_npu_axi_clk_src.clkr, 42904433594bSBjorn Andersson [GCC_NPU_GPLL0_CLK_SRC] = &gcc_npu_gpll0_clk_src.clkr, 42914433594bSBjorn Andersson [GCC_NPU_GPLL0_DIV_CLK_SRC] = &gcc_npu_gpll0_div_clk_src.clkr, 42924433594bSBjorn Andersson [GCC_NPU_TRIG_CLK] = &gcc_npu_trig_clk.clkr, 42934433594bSBjorn Andersson [GCC_PCIE0_PHY_REFGEN_CLK] = &gcc_pcie0_phy_refgen_clk.clkr, 42944433594bSBjorn Andersson [GCC_PCIE1_PHY_REFGEN_CLK] = &gcc_pcie1_phy_refgen_clk.clkr, 42954433594bSBjorn Andersson [GCC_PCIE2_PHY_REFGEN_CLK] = &gcc_pcie2_phy_refgen_clk.clkr, 42964433594bSBjorn Andersson [GCC_PCIE3_PHY_REFGEN_CLK] = &gcc_pcie3_phy_refgen_clk.clkr, 42974433594bSBjorn Andersson [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr, 42984433594bSBjorn Andersson [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr, 42994433594bSBjorn Andersson [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr, 43004433594bSBjorn Andersson [GCC_PCIE_0_CLKREF_CLK] = &gcc_pcie_0_clkref_clk.clkr, 43014433594bSBjorn Andersson [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr, 43024433594bSBjorn Andersson [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr, 43034433594bSBjorn Andersson [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr, 43044433594bSBjorn Andersson [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr, 43054433594bSBjorn Andersson [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr, 43064433594bSBjorn Andersson [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr, 43074433594bSBjorn Andersson [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr, 43084433594bSBjorn Andersson [GCC_PCIE_1_CLKREF_CLK] = &gcc_pcie_1_clkref_clk.clkr, 43094433594bSBjorn Andersson [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr, 43104433594bSBjorn Andersson [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr, 43114433594bSBjorn Andersson [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr, 43124433594bSBjorn Andersson [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr, 43134433594bSBjorn Andersson [GCC_PCIE_2_AUX_CLK] = &gcc_pcie_2_aux_clk.clkr, 43144433594bSBjorn Andersson [GCC_PCIE_2_AUX_CLK_SRC] = &gcc_pcie_2_aux_clk_src.clkr, 43154433594bSBjorn Andersson [GCC_PCIE_2_CFG_AHB_CLK] = &gcc_pcie_2_cfg_ahb_clk.clkr, 43164433594bSBjorn Andersson [GCC_PCIE_2_CLKREF_CLK] = &gcc_pcie_2_clkref_clk.clkr, 43174433594bSBjorn Andersson [GCC_PCIE_2_MSTR_AXI_CLK] = &gcc_pcie_2_mstr_axi_clk.clkr, 43184433594bSBjorn Andersson [GCC_PCIE_2_PIPE_CLK] = &gcc_pcie_2_pipe_clk.clkr, 43194433594bSBjorn Andersson [GCC_PCIE_2_SLV_AXI_CLK] = &gcc_pcie_2_slv_axi_clk.clkr, 43204433594bSBjorn Andersson [GCC_PCIE_2_SLV_Q2A_AXI_CLK] = &gcc_pcie_2_slv_q2a_axi_clk.clkr, 43214433594bSBjorn Andersson [GCC_PCIE_3_AUX_CLK] = &gcc_pcie_3_aux_clk.clkr, 43224433594bSBjorn Andersson [GCC_PCIE_3_AUX_CLK_SRC] = &gcc_pcie_3_aux_clk_src.clkr, 43234433594bSBjorn Andersson [GCC_PCIE_3_CFG_AHB_CLK] = &gcc_pcie_3_cfg_ahb_clk.clkr, 43244433594bSBjorn Andersson [GCC_PCIE_3_CLKREF_CLK] = &gcc_pcie_3_clkref_clk.clkr, 43254433594bSBjorn Andersson [GCC_PCIE_3_MSTR_AXI_CLK] = &gcc_pcie_3_mstr_axi_clk.clkr, 43264433594bSBjorn Andersson [GCC_PCIE_3_PIPE_CLK] = &gcc_pcie_3_pipe_clk.clkr, 43274433594bSBjorn Andersson [GCC_PCIE_3_SLV_AXI_CLK] = &gcc_pcie_3_slv_axi_clk.clkr, 43284433594bSBjorn Andersson [GCC_PCIE_3_SLV_Q2A_AXI_CLK] = &gcc_pcie_3_slv_q2a_axi_clk.clkr, 43294433594bSBjorn Andersson [GCC_PCIE_PHY_AUX_CLK] = &gcc_pcie_phy_aux_clk.clkr, 43304433594bSBjorn Andersson [GCC_PCIE_PHY_REFGEN_CLK_SRC] = &gcc_pcie_phy_refgen_clk_src.clkr, 43314433594bSBjorn Andersson [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr, 43324433594bSBjorn Andersson [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr, 43334433594bSBjorn Andersson [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr, 43344433594bSBjorn Andersson [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr, 43354433594bSBjorn Andersson [GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr, 43364433594bSBjorn Andersson [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr, 43374433594bSBjorn Andersson [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr, 43384433594bSBjorn Andersson [GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr, 43394433594bSBjorn Andersson [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr, 43404433594bSBjorn Andersson [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr, 43414433594bSBjorn Andersson [GCC_QSPI_1_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_1_cnoc_periph_ahb_clk.clkr, 43424433594bSBjorn Andersson [GCC_QSPI_1_CORE_CLK] = &gcc_qspi_1_core_clk.clkr, 43434433594bSBjorn Andersson [GCC_QSPI_1_CORE_CLK_SRC] = &gcc_qspi_1_core_clk_src.clkr, 43444433594bSBjorn Andersson [GCC_QSPI_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_cnoc_periph_ahb_clk.clkr, 43454433594bSBjorn Andersson [GCC_QSPI_CORE_CLK] = &gcc_qspi_core_clk.clkr, 43464433594bSBjorn Andersson [GCC_QSPI_CORE_CLK_SRC] = &gcc_qspi_core_clk_src.clkr, 43474433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr, 43484433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr, 43494433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr, 43504433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr, 43514433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr, 43524433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr, 43534433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr, 43544433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr, 43554433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr, 43564433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr, 43574433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr, 43584433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr, 43594433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr, 43604433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr, 43614433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr, 43624433594bSBjorn Andersson [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr, 43634433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr, 43644433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr, 43654433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr, 43664433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr, 43674433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr, 43684433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr, 43694433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr, 43704433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr, 43714433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr, 43724433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr, 43734433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr, 43744433594bSBjorn Andersson [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr, 43754433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr, 43764433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr, 43774433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr, 43784433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr, 43794433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr, 43804433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr, 43814433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr, 43824433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr, 43834433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr, 43844433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr, 43854433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr, 43864433594bSBjorn Andersson [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr, 43874433594bSBjorn Andersson [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr, 43884433594bSBjorn Andersson [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr, 43894433594bSBjorn Andersson [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr, 43904433594bSBjorn Andersson [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr, 43914433594bSBjorn Andersson [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr, 43924433594bSBjorn Andersson [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr, 43934433594bSBjorn Andersson [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr, 43944433594bSBjorn Andersson [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr, 43954433594bSBjorn Andersson [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr, 43964433594bSBjorn Andersson [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr, 43974433594bSBjorn Andersson [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr, 43984433594bSBjorn Andersson [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr, 43994433594bSBjorn Andersson [GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr, 44004433594bSBjorn Andersson [GCC_TSIF_AHB_CLK] = &gcc_tsif_ahb_clk.clkr, 44014433594bSBjorn Andersson [GCC_TSIF_INACTIVITY_TIMERS_CLK] = &gcc_tsif_inactivity_timers_clk.clkr, 44024433594bSBjorn Andersson [GCC_TSIF_REF_CLK] = &gcc_tsif_ref_clk.clkr, 44034433594bSBjorn Andersson [GCC_TSIF_REF_CLK_SRC] = &gcc_tsif_ref_clk_src.clkr, 44044433594bSBjorn Andersson [GCC_UFS_CARD_2_AHB_CLK] = &gcc_ufs_card_2_ahb_clk.clkr, 44054433594bSBjorn Andersson [GCC_UFS_CARD_2_AXI_CLK] = &gcc_ufs_card_2_axi_clk.clkr, 44064433594bSBjorn Andersson [GCC_UFS_CARD_2_AXI_CLK_SRC] = &gcc_ufs_card_2_axi_clk_src.clkr, 44074433594bSBjorn Andersson [GCC_UFS_CARD_2_ICE_CORE_CLK] = &gcc_ufs_card_2_ice_core_clk.clkr, 44084433594bSBjorn Andersson [GCC_UFS_CARD_2_ICE_CORE_CLK_SRC] = &gcc_ufs_card_2_ice_core_clk_src.clkr, 44094433594bSBjorn Andersson [GCC_UFS_CARD_2_PHY_AUX_CLK] = &gcc_ufs_card_2_phy_aux_clk.clkr, 44104433594bSBjorn Andersson [GCC_UFS_CARD_2_PHY_AUX_CLK_SRC] = &gcc_ufs_card_2_phy_aux_clk_src.clkr, 44114433594bSBjorn Andersson [GCC_UFS_CARD_2_RX_SYMBOL_0_CLK] = &gcc_ufs_card_2_rx_symbol_0_clk.clkr, 44124433594bSBjorn Andersson [GCC_UFS_CARD_2_RX_SYMBOL_1_CLK] = &gcc_ufs_card_2_rx_symbol_1_clk.clkr, 44134433594bSBjorn Andersson [GCC_UFS_CARD_2_TX_SYMBOL_0_CLK] = &gcc_ufs_card_2_tx_symbol_0_clk.clkr, 44144433594bSBjorn Andersson [GCC_UFS_CARD_2_UNIPRO_CORE_CLK] = &gcc_ufs_card_2_unipro_core_clk.clkr, 44154433594bSBjorn Andersson [GCC_UFS_CARD_2_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_card_2_unipro_core_clk_src.clkr, 44164433594bSBjorn Andersson [GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr, 44174433594bSBjorn Andersson [GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr, 44184433594bSBjorn Andersson [GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr, 44194433594bSBjorn Andersson [GCC_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_ufs_card_axi_hw_ctl_clk.clkr, 44204433594bSBjorn Andersson [GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr, 44214433594bSBjorn Andersson [GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr, 44224433594bSBjorn Andersson [GCC_UFS_CARD_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_card_ice_core_hw_ctl_clk.clkr, 44234433594bSBjorn Andersson [GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr, 44244433594bSBjorn Andersson [GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr, 44254433594bSBjorn Andersson [GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_card_phy_aux_hw_ctl_clk.clkr, 44264433594bSBjorn Andersson [GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr, 44274433594bSBjorn Andersson [GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr, 44284433594bSBjorn Andersson [GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr, 44294433594bSBjorn Andersson [GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr, 44304433594bSBjorn Andersson [GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_card_unipro_core_clk_src.clkr, 44314433594bSBjorn Andersson [GCC_UFS_CARD_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_card_unipro_core_hw_ctl_clk.clkr, 44324433594bSBjorn Andersson [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr, 44334433594bSBjorn Andersson [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr, 44344433594bSBjorn Andersson [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr, 44354433594bSBjorn Andersson [GCC_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_ufs_phy_axi_hw_ctl_clk.clkr, 44364433594bSBjorn Andersson [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr, 44374433594bSBjorn Andersson [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr, 44384433594bSBjorn Andersson [GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK] = &gcc_ufs_phy_ice_core_hw_ctl_clk.clkr, 44394433594bSBjorn Andersson [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr, 44404433594bSBjorn Andersson [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr, 44414433594bSBjorn Andersson [GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr, 44424433594bSBjorn Andersson [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr, 44434433594bSBjorn Andersson [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr, 44444433594bSBjorn Andersson [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr, 44454433594bSBjorn Andersson [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr, 44464433594bSBjorn Andersson [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr, 44474433594bSBjorn Andersson [GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK] = &gcc_ufs_phy_unipro_core_hw_ctl_clk.clkr, 44484433594bSBjorn Andersson [GCC_USB30_MP_MASTER_CLK] = &gcc_usb30_mp_master_clk.clkr, 44494433594bSBjorn Andersson [GCC_USB30_MP_MASTER_CLK_SRC] = &gcc_usb30_mp_master_clk_src.clkr, 44504433594bSBjorn Andersson [GCC_USB30_MP_MOCK_UTMI_CLK] = &gcc_usb30_mp_mock_utmi_clk.clkr, 44514433594bSBjorn Andersson [GCC_USB30_MP_MOCK_UTMI_CLK_SRC] = &gcc_usb30_mp_mock_utmi_clk_src.clkr, 44524433594bSBjorn Andersson [GCC_USB30_MP_SLEEP_CLK] = &gcc_usb30_mp_sleep_clk.clkr, 44534433594bSBjorn Andersson [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr, 44544433594bSBjorn Andersson [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr, 44554433594bSBjorn Andersson [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr, 44564433594bSBjorn Andersson [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr, 44574433594bSBjorn Andersson [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr, 44584433594bSBjorn Andersson [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr, 44594433594bSBjorn Andersson [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr, 44604433594bSBjorn Andersson [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr, 44614433594bSBjorn Andersson [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = &gcc_usb30_sec_mock_utmi_clk_src.clkr, 44624433594bSBjorn Andersson [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr, 44634433594bSBjorn Andersson [GCC_USB3_MP_PHY_AUX_CLK] = &gcc_usb3_mp_phy_aux_clk.clkr, 44644433594bSBjorn Andersson [GCC_USB3_MP_PHY_AUX_CLK_SRC] = &gcc_usb3_mp_phy_aux_clk_src.clkr, 44654433594bSBjorn Andersson [GCC_USB3_MP_PHY_COM_AUX_CLK] = &gcc_usb3_mp_phy_com_aux_clk.clkr, 44664433594bSBjorn Andersson [GCC_USB3_MP_PHY_PIPE_0_CLK] = &gcc_usb3_mp_phy_pipe_0_clk.clkr, 44674433594bSBjorn Andersson [GCC_USB3_MP_PHY_PIPE_1_CLK] = &gcc_usb3_mp_phy_pipe_1_clk.clkr, 44684433594bSBjorn Andersson [GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr, 44694433594bSBjorn Andersson [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr, 44704433594bSBjorn Andersson [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr, 44714433594bSBjorn Andersson [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr, 44724433594bSBjorn Andersson [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr, 44734433594bSBjorn Andersson [GCC_USB3_SEC_CLKREF_CLK] = &gcc_usb3_sec_clkref_clk.clkr, 44744433594bSBjorn Andersson [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr, 44754433594bSBjorn Andersson [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr, 44764433594bSBjorn Andersson [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr, 44774433594bSBjorn Andersson [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr, 44784433594bSBjorn Andersson [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr, 44794433594bSBjorn Andersson [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr, 44804433594bSBjorn Andersson [GCC_VIDEO_AXIC_CLK] = &gcc_video_axic_clk.clkr, 44814433594bSBjorn Andersson [GPLL0] = &gpll0.clkr, 44824433594bSBjorn Andersson [GPLL0_OUT_EVEN] = &gpll0_out_even.clkr, 44834433594bSBjorn Andersson [GPLL1] = &gpll1.clkr, 44844433594bSBjorn Andersson [GPLL4] = &gpll4.clkr, 44854433594bSBjorn Andersson [GPLL7] = &gpll7.clkr, 44864433594bSBjorn Andersson }; 44874433594bSBjorn Andersson 44884433594bSBjorn Andersson static const struct qcom_reset_map gcc_sc8180x_resets[] = { 44894433594bSBjorn Andersson [GCC_EMAC_BCR] = { 0x6000 }, 44904433594bSBjorn Andersson [GCC_GPU_BCR] = { 0x71000 }, 44914433594bSBjorn Andersson [GCC_MMSS_BCR] = { 0xb000 }, 44924433594bSBjorn Andersson [GCC_NPU_BCR] = { 0x4d000 }, 44934433594bSBjorn Andersson [GCC_PCIE_0_BCR] = { 0x6b000 }, 44944433594bSBjorn Andersson [GCC_PCIE_0_PHY_BCR] = { 0x6c01c }, 44954433594bSBjorn Andersson [GCC_PCIE_1_BCR] = { 0x8d000 }, 44964433594bSBjorn Andersson [GCC_PCIE_1_PHY_BCR] = { 0x8e01c }, 44974433594bSBjorn Andersson [GCC_PCIE_2_BCR] = { 0x9d000 }, 44984433594bSBjorn Andersson [GCC_PCIE_2_PHY_BCR] = { 0xa701c }, 44994433594bSBjorn Andersson [GCC_PCIE_3_BCR] = { 0xa3000 }, 45004433594bSBjorn Andersson [GCC_PCIE_3_PHY_BCR] = { 0xa801c }, 45014433594bSBjorn Andersson [GCC_PCIE_PHY_BCR] = { 0x6f000 }, 45024433594bSBjorn Andersson [GCC_PDM_BCR] = { 0x33000 }, 45034433594bSBjorn Andersson [GCC_PRNG_BCR] = { 0x34000 }, 45044433594bSBjorn Andersson [GCC_QSPI_1_BCR] = { 0x4a000 }, 45054433594bSBjorn Andersson [GCC_QSPI_BCR] = { 0x24008 }, 45064433594bSBjorn Andersson [GCC_QUPV3_WRAPPER_0_BCR] = { 0x17000 }, 45074433594bSBjorn Andersson [GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 }, 45084433594bSBjorn Andersson [GCC_QUPV3_WRAPPER_2_BCR] = { 0x1e000 }, 45094433594bSBjorn Andersson [GCC_QUSB2PHY_5_BCR] = { 0x12010 }, 45104433594bSBjorn Andersson [GCC_QUSB2PHY_MP0_BCR] = { 0x12008 }, 45114433594bSBjorn Andersson [GCC_QUSB2PHY_MP1_BCR] = { 0x1200c }, 45124433594bSBjorn Andersson [GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 }, 45134433594bSBjorn Andersson [GCC_QUSB2PHY_SEC_BCR] = { 0x12004 }, 45144433594bSBjorn Andersson [GCC_USB3_PHY_PRIM_SP0_BCR] = { 0x50000 }, 45154433594bSBjorn Andersson [GCC_USB3_PHY_PRIM_SP1_BCR] = { 0x50004 }, 45164433594bSBjorn Andersson [GCC_USB3_DP_PHY_PRIM_SP0_BCR] = { 0x50010 }, 45174433594bSBjorn Andersson [GCC_USB3_DP_PHY_PRIM_SP1_BCR] = { 0x50014 }, 45184433594bSBjorn Andersson [GCC_USB3_PHY_SEC_BCR] = { 0x50018 }, 45194433594bSBjorn Andersson [GCC_USB3PHY_PHY_SEC_BCR] = { 0x5001c }, 45204433594bSBjorn Andersson [GCC_USB3_DP_PHY_SEC_BCR] = { 0x50020 }, 45214433594bSBjorn Andersson [GCC_SDCC2_BCR] = { 0x14000 }, 45224433594bSBjorn Andersson [GCC_SDCC4_BCR] = { 0x16000 }, 45234433594bSBjorn Andersson [GCC_TSIF_BCR] = { 0x36000 }, 45244433594bSBjorn Andersson [GCC_UFS_CARD_2_BCR] = { 0xa2000 }, 45254433594bSBjorn Andersson [GCC_UFS_CARD_BCR] = { 0x75000 }, 45264433594bSBjorn Andersson [GCC_UFS_PHY_BCR] = { 0x77000 }, 45274433594bSBjorn Andersson [GCC_USB30_MP_BCR] = { 0xa6000 }, 45284433594bSBjorn Andersson [GCC_USB30_PRIM_BCR] = { 0xf000 }, 45294433594bSBjorn Andersson [GCC_USB30_SEC_BCR] = { 0x10000 }, 45304433594bSBjorn Andersson [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 }, 4531*e4036615SKonrad Dybcio [GCC_VIDEO_AXIC_CLK_BCR] = { .reg = 0xb02c, .bit = 2, .udelay = 150 }, 4532*e4036615SKonrad Dybcio [GCC_VIDEO_AXI0_CLK_BCR] = { .reg = 0xb024, .bit = 2, .udelay = 150 }, 4533*e4036615SKonrad Dybcio [GCC_VIDEO_AXI1_CLK_BCR] = { .reg = 0xb028, .bit = 2, .udelay = 150 }, 45344433594bSBjorn Andersson }; 45354433594bSBjorn Andersson 45364433594bSBjorn Andersson static struct gdsc *gcc_sc8180x_gdscs[] = { 45374433594bSBjorn Andersson [EMAC_GDSC] = &emac_gdsc, 45384433594bSBjorn Andersson [PCIE_0_GDSC] = &pcie_0_gdsc, 45394433594bSBjorn Andersson [PCIE_1_GDSC] = &pcie_1_gdsc, 45404433594bSBjorn Andersson [PCIE_2_GDSC] = &pcie_2_gdsc, 45414433594bSBjorn Andersson [PCIE_3_GDSC] = &pcie_3_gdsc, 45424433594bSBjorn Andersson [UFS_CARD_GDSC] = &ufs_card_gdsc, 45434433594bSBjorn Andersson [UFS_CARD_2_GDSC] = &ufs_card_2_gdsc, 45444433594bSBjorn Andersson [UFS_PHY_GDSC] = &ufs_phy_gdsc, 45454433594bSBjorn Andersson [USB30_MP_GDSC] = &usb30_mp_gdsc, 45464433594bSBjorn Andersson [USB30_PRIM_GDSC] = &usb30_prim_gdsc, 45474433594bSBjorn Andersson [USB30_SEC_GDSC] = &usb30_sec_gdsc, 45484433594bSBjorn Andersson }; 45494433594bSBjorn Andersson 45504433594bSBjorn Andersson static const struct regmap_config gcc_sc8180x_regmap_config = { 45514433594bSBjorn Andersson .reg_bits = 32, 45524433594bSBjorn Andersson .reg_stride = 4, 45534433594bSBjorn Andersson .val_bits = 32, 45544433594bSBjorn Andersson .max_register = 0xc0004, 45554433594bSBjorn Andersson .fast_io = true, 45564433594bSBjorn Andersson }; 45574433594bSBjorn Andersson 45584433594bSBjorn Andersson static const struct qcom_cc_desc gcc_sc8180x_desc = { 45594433594bSBjorn Andersson .config = &gcc_sc8180x_regmap_config, 45604433594bSBjorn Andersson .clks = gcc_sc8180x_clocks, 45614433594bSBjorn Andersson .num_clks = ARRAY_SIZE(gcc_sc8180x_clocks), 45624433594bSBjorn Andersson .resets = gcc_sc8180x_resets, 45634433594bSBjorn Andersson .num_resets = ARRAY_SIZE(gcc_sc8180x_resets), 45644433594bSBjorn Andersson .gdscs = gcc_sc8180x_gdscs, 45654433594bSBjorn Andersson .num_gdscs = ARRAY_SIZE(gcc_sc8180x_gdscs), 45664433594bSBjorn Andersson }; 45674433594bSBjorn Andersson 45684433594bSBjorn Andersson static const struct of_device_id gcc_sc8180x_match_table[] = { 45694433594bSBjorn Andersson { .compatible = "qcom,gcc-sc8180x" }, 45704433594bSBjorn Andersson { } 45714433594bSBjorn Andersson }; 45724433594bSBjorn Andersson MODULE_DEVICE_TABLE(of, gcc_sc8180x_match_table); 45734433594bSBjorn Andersson 45744433594bSBjorn Andersson static int gcc_sc8180x_probe(struct platform_device *pdev) 45754433594bSBjorn Andersson { 45764433594bSBjorn Andersson struct regmap *regmap; 45774433594bSBjorn Andersson 45784433594bSBjorn Andersson regmap = qcom_cc_map(pdev, &gcc_sc8180x_desc); 45794433594bSBjorn Andersson if (IS_ERR(regmap)) 45804433594bSBjorn Andersson return PTR_ERR(regmap); 45814433594bSBjorn Andersson 45824433594bSBjorn Andersson /* 45834433594bSBjorn Andersson * Enable the following always-on clocks: 45844433594bSBjorn Andersson * GCC_VIDEO_AHB_CLK, GCC_CAMERA_AHB_CLK, GCC_DISP_AHB_CLK, 45854433594bSBjorn Andersson * GCC_VIDEO_XO_CLK, GCC_CAMERA_XO_CLK, GCC_DISP_XO_CLK, 45864433594bSBjorn Andersson * GCC_CPUSS_GNOC_CLK, GCC_CPUSS_DVM_BUS_CLK, GCC_NPU_CFG_AHB_CLK and 45874433594bSBjorn Andersson * GCC_GPU_CFG_AHB_CLK 45884433594bSBjorn Andersson */ 45894433594bSBjorn Andersson regmap_update_bits(regmap, 0xb004, BIT(0), BIT(0)); 45904433594bSBjorn Andersson regmap_update_bits(regmap, 0xb008, BIT(0), BIT(0)); 45914433594bSBjorn Andersson regmap_update_bits(regmap, 0xb00c, BIT(0), BIT(0)); 45924433594bSBjorn Andersson regmap_update_bits(regmap, 0xb040, BIT(0), BIT(0)); 45934433594bSBjorn Andersson regmap_update_bits(regmap, 0xb044, BIT(0), BIT(0)); 45944433594bSBjorn Andersson regmap_update_bits(regmap, 0xb048, BIT(0), BIT(0)); 45954433594bSBjorn Andersson regmap_update_bits(regmap, 0x48004, BIT(0), BIT(0)); 45964433594bSBjorn Andersson regmap_update_bits(regmap, 0x48190, BIT(0), BIT(0)); 45974433594bSBjorn Andersson regmap_update_bits(regmap, 0x4d004, BIT(0), BIT(0)); 45984433594bSBjorn Andersson regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0)); 45994433594bSBjorn Andersson 46004433594bSBjorn Andersson /* Disable the GPLL0 active input to NPU and GPU via MISC registers */ 46014433594bSBjorn Andersson regmap_update_bits(regmap, 0x4d110, 0x3, 0x3); 46024433594bSBjorn Andersson regmap_update_bits(regmap, 0x71028, 0x3, 0x3); 46034433594bSBjorn Andersson 46044433594bSBjorn Andersson return qcom_cc_really_probe(pdev, &gcc_sc8180x_desc, regmap); 46054433594bSBjorn Andersson } 46064433594bSBjorn Andersson 46074433594bSBjorn Andersson static struct platform_driver gcc_sc8180x_driver = { 46084433594bSBjorn Andersson .probe = gcc_sc8180x_probe, 46094433594bSBjorn Andersson .driver = { 46104433594bSBjorn Andersson .name = "gcc-sc8180x", 46114433594bSBjorn Andersson .of_match_table = gcc_sc8180x_match_table, 46124433594bSBjorn Andersson }, 46134433594bSBjorn Andersson }; 46144433594bSBjorn Andersson 46154433594bSBjorn Andersson static int __init gcc_sc8180x_init(void) 46164433594bSBjorn Andersson { 46174433594bSBjorn Andersson return platform_driver_register(&gcc_sc8180x_driver); 46184433594bSBjorn Andersson } 46194433594bSBjorn Andersson core_initcall(gcc_sc8180x_init); 46204433594bSBjorn Andersson 46214433594bSBjorn Andersson static void __exit gcc_sc8180x_exit(void) 46224433594bSBjorn Andersson { 46234433594bSBjorn Andersson platform_driver_unregister(&gcc_sc8180x_driver); 46244433594bSBjorn Andersson } 46254433594bSBjorn Andersson module_exit(gcc_sc8180x_exit); 46264433594bSBjorn Andersson 46274433594bSBjorn Andersson MODULE_DESCRIPTION("QTI GCC SC8180x driver"); 46284433594bSBjorn Andersson MODULE_LICENSE("GPL v2"); 4629