18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci// Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#include <linux/kernel.h> 58c2ecf20Sopenharmony_ci#include <linux/bitops.h> 68c2ecf20Sopenharmony_ci#include <linux/err.h> 78c2ecf20Sopenharmony_ci#include <linux/platform_device.h> 88c2ecf20Sopenharmony_ci#include <linux/module.h> 98c2ecf20Sopenharmony_ci#include <linux/of.h> 108c2ecf20Sopenharmony_ci#include <linux/of_device.h> 118c2ecf20Sopenharmony_ci#include <linux/clk-provider.h> 128c2ecf20Sopenharmony_ci#include <linux/regmap.h> 138c2ecf20Sopenharmony_ci#include <linux/reset-controller.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#include <dt-bindings/clock/qcom,gcc-sm8150.h> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#include "common.h" 188c2ecf20Sopenharmony_ci#include "clk-alpha-pll.h" 198c2ecf20Sopenharmony_ci#include "clk-branch.h" 208c2ecf20Sopenharmony_ci#include "clk-pll.h" 218c2ecf20Sopenharmony_ci#include "clk-rcg.h" 228c2ecf20Sopenharmony_ci#include "clk-regmap.h" 238c2ecf20Sopenharmony_ci#include "reset.h" 248c2ecf20Sopenharmony_ci#include "gdsc.h" 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_cienum { 278c2ecf20Sopenharmony_ci P_BI_TCXO, 288c2ecf20Sopenharmony_ci P_AUD_REF_CLK, 298c2ecf20Sopenharmony_ci P_CORE_BI_PLL_TEST_SE, 308c2ecf20Sopenharmony_ci P_GPLL0_OUT_EVEN, 318c2ecf20Sopenharmony_ci P_GPLL0_OUT_MAIN, 328c2ecf20Sopenharmony_ci P_GPLL7_OUT_MAIN, 338c2ecf20Sopenharmony_ci P_GPLL9_OUT_MAIN, 348c2ecf20Sopenharmony_ci P_SLEEP_CLK, 358c2ecf20Sopenharmony_ci}; 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_cistatic struct clk_alpha_pll gpll0 = { 388c2ecf20Sopenharmony_ci .offset = 0x0, 398c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION], 408c2ecf20Sopenharmony_ci .clkr = { 418c2ecf20Sopenharmony_ci .enable_reg = 0x52000, 428c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 448c2ecf20Sopenharmony_ci .name = "gpll0", 458c2ecf20Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 468c2ecf20Sopenharmony_ci .fw_name = "bi_tcxo", 478c2ecf20Sopenharmony_ci .name = "bi_tcxo", 488c2ecf20Sopenharmony_ci }, 498c2ecf20Sopenharmony_ci .num_parents = 1, 508c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_fixed_trion_ops, 518c2ecf20Sopenharmony_ci }, 528c2ecf20Sopenharmony_ci }, 538c2ecf20Sopenharmony_ci}; 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_cistatic const struct clk_div_table post_div_table_trion_even[] = { 568c2ecf20Sopenharmony_ci { 0x0, 1 }, 578c2ecf20Sopenharmony_ci { 0x1, 2 }, 588c2ecf20Sopenharmony_ci { 0x3, 4 }, 598c2ecf20Sopenharmony_ci { 0x7, 8 }, 608c2ecf20Sopenharmony_ci { } 618c2ecf20Sopenharmony_ci}; 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll0_out_even = { 648c2ecf20Sopenharmony_ci .offset = 0x0, 658c2ecf20Sopenharmony_ci .post_div_shift = 8, 668c2ecf20Sopenharmony_ci .post_div_table = post_div_table_trion_even, 678c2ecf20Sopenharmony_ci .num_post_div = ARRAY_SIZE(post_div_table_trion_even), 688c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION], 698c2ecf20Sopenharmony_ci .width = 4, 708c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 718c2ecf20Sopenharmony_ci .name = "gpll0_out_even", 728c2ecf20Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 738c2ecf20Sopenharmony_ci .hw = &gpll0.clkr.hw, 748c2ecf20Sopenharmony_ci }, 758c2ecf20Sopenharmony_ci .num_parents = 1, 768c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_trion_ops, 778c2ecf20Sopenharmony_ci }, 788c2ecf20Sopenharmony_ci}; 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_cistatic struct clk_alpha_pll gpll7 = { 818c2ecf20Sopenharmony_ci .offset = 0x1a000, 828c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION], 838c2ecf20Sopenharmony_ci .clkr = { 848c2ecf20Sopenharmony_ci .enable_reg = 0x52000, 858c2ecf20Sopenharmony_ci .enable_mask = BIT(7), 868c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 878c2ecf20Sopenharmony_ci .name = "gpll7", 888c2ecf20Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 898c2ecf20Sopenharmony_ci .fw_name = "bi_tcxo", 908c2ecf20Sopenharmony_ci .name = "bi_tcxo", 918c2ecf20Sopenharmony_ci }, 928c2ecf20Sopenharmony_ci .num_parents = 1, 938c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_fixed_trion_ops, 948c2ecf20Sopenharmony_ci }, 958c2ecf20Sopenharmony_ci }, 968c2ecf20Sopenharmony_ci}; 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_cistatic struct clk_alpha_pll gpll9 = { 998c2ecf20Sopenharmony_ci .offset = 0x1c000, 1008c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION], 1018c2ecf20Sopenharmony_ci .clkr = { 1028c2ecf20Sopenharmony_ci .enable_reg = 0x52000, 1038c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 1048c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 1058c2ecf20Sopenharmony_ci .name = "gpll9", 1068c2ecf20Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 1078c2ecf20Sopenharmony_ci .fw_name = "bi_tcxo", 1088c2ecf20Sopenharmony_ci .name = "bi_tcxo", 1098c2ecf20Sopenharmony_ci }, 1108c2ecf20Sopenharmony_ci .num_parents = 1, 1118c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_fixed_trion_ops, 1128c2ecf20Sopenharmony_ci }, 1138c2ecf20Sopenharmony_ci }, 1148c2ecf20Sopenharmony_ci}; 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_0[] = { 1178c2ecf20Sopenharmony_ci { P_BI_TCXO, 0 }, 1188c2ecf20Sopenharmony_ci { P_GPLL0_OUT_MAIN, 1 }, 1198c2ecf20Sopenharmony_ci { P_GPLL0_OUT_EVEN, 6 }, 1208c2ecf20Sopenharmony_ci { P_CORE_BI_PLL_TEST_SE, 7 }, 1218c2ecf20Sopenharmony_ci}; 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_cistatic const struct clk_parent_data gcc_parents_0[] = { 1248c2ecf20Sopenharmony_ci { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 1258c2ecf20Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 1268c2ecf20Sopenharmony_ci { .hw = &gpll0_out_even.clkr.hw }, 1278c2ecf20Sopenharmony_ci { .fw_name = "core_bi_pll_test_se" }, 1288c2ecf20Sopenharmony_ci}; 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_1[] = { 1318c2ecf20Sopenharmony_ci { P_BI_TCXO, 0 }, 1328c2ecf20Sopenharmony_ci { P_GPLL0_OUT_MAIN, 1 }, 1338c2ecf20Sopenharmony_ci { P_SLEEP_CLK, 5 }, 1348c2ecf20Sopenharmony_ci { P_GPLL0_OUT_EVEN, 6 }, 1358c2ecf20Sopenharmony_ci { P_CORE_BI_PLL_TEST_SE, 7 }, 1368c2ecf20Sopenharmony_ci}; 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_cistatic const struct clk_parent_data gcc_parents_1[] = { 1398c2ecf20Sopenharmony_ci { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 1408c2ecf20Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 1418c2ecf20Sopenharmony_ci { .fw_name = "sleep_clk", .name = "sleep_clk" }, 1428c2ecf20Sopenharmony_ci { .hw = &gpll0_out_even.clkr.hw }, 1438c2ecf20Sopenharmony_ci { .fw_name = "core_bi_pll_test_se" }, 1448c2ecf20Sopenharmony_ci}; 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_2[] = { 1478c2ecf20Sopenharmony_ci { P_BI_TCXO, 0 }, 1488c2ecf20Sopenharmony_ci { P_SLEEP_CLK, 5 }, 1498c2ecf20Sopenharmony_ci { P_CORE_BI_PLL_TEST_SE, 7 }, 1508c2ecf20Sopenharmony_ci}; 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_cistatic const struct clk_parent_data gcc_parents_2[] = { 1538c2ecf20Sopenharmony_ci { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 1548c2ecf20Sopenharmony_ci { .fw_name = "sleep_clk", .name = "sleep_clk" }, 1558c2ecf20Sopenharmony_ci { .fw_name = "core_bi_pll_test_se" }, 1568c2ecf20Sopenharmony_ci}; 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_3[] = { 1598c2ecf20Sopenharmony_ci { P_BI_TCXO, 0 }, 1608c2ecf20Sopenharmony_ci { P_GPLL0_OUT_MAIN, 1 }, 1618c2ecf20Sopenharmony_ci { P_CORE_BI_PLL_TEST_SE, 7 }, 1628c2ecf20Sopenharmony_ci}; 1638c2ecf20Sopenharmony_ci 1648c2ecf20Sopenharmony_cistatic const struct clk_parent_data gcc_parents_3[] = { 1658c2ecf20Sopenharmony_ci { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 1668c2ecf20Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 1678c2ecf20Sopenharmony_ci { .fw_name = "core_bi_pll_test_se"}, 1688c2ecf20Sopenharmony_ci}; 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_4[] = { 1718c2ecf20Sopenharmony_ci { P_BI_TCXO, 0 }, 1728c2ecf20Sopenharmony_ci { P_CORE_BI_PLL_TEST_SE, 7 }, 1738c2ecf20Sopenharmony_ci}; 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_cistatic const struct clk_parent_data gcc_parents_4[] = { 1768c2ecf20Sopenharmony_ci { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 1778c2ecf20Sopenharmony_ci { .fw_name = "core_bi_pll_test_se" }, 1788c2ecf20Sopenharmony_ci}; 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_5[] = { 1818c2ecf20Sopenharmony_ci { P_BI_TCXO, 0 }, 1828c2ecf20Sopenharmony_ci { P_GPLL0_OUT_MAIN, 1 }, 1838c2ecf20Sopenharmony_ci { P_GPLL7_OUT_MAIN, 3 }, 1848c2ecf20Sopenharmony_ci { P_GPLL0_OUT_EVEN, 6 }, 1858c2ecf20Sopenharmony_ci { P_CORE_BI_PLL_TEST_SE, 7 }, 1868c2ecf20Sopenharmony_ci}; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_cistatic const struct clk_parent_data gcc_parents_5[] = { 1898c2ecf20Sopenharmony_ci { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 1908c2ecf20Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 1918c2ecf20Sopenharmony_ci { .hw = &gpll7.clkr.hw }, 1928c2ecf20Sopenharmony_ci { .hw = &gpll0_out_even.clkr.hw }, 1938c2ecf20Sopenharmony_ci { .fw_name = "core_bi_pll_test_se" }, 1948c2ecf20Sopenharmony_ci}; 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_6[] = { 1978c2ecf20Sopenharmony_ci { P_BI_TCXO, 0 }, 1988c2ecf20Sopenharmony_ci { P_GPLL0_OUT_MAIN, 1 }, 1998c2ecf20Sopenharmony_ci { P_GPLL9_OUT_MAIN, 2 }, 2008c2ecf20Sopenharmony_ci { P_GPLL0_OUT_EVEN, 6 }, 2018c2ecf20Sopenharmony_ci { P_CORE_BI_PLL_TEST_SE, 7 }, 2028c2ecf20Sopenharmony_ci}; 2038c2ecf20Sopenharmony_ci 2048c2ecf20Sopenharmony_cistatic const struct clk_parent_data gcc_parents_6[] = { 2058c2ecf20Sopenharmony_ci { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 2068c2ecf20Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 2078c2ecf20Sopenharmony_ci { .hw = &gpll9.clkr.hw }, 2088c2ecf20Sopenharmony_ci { .hw = &gpll0_out_even.clkr.hw }, 2098c2ecf20Sopenharmony_ci { .fw_name = "core_bi_pll_test_se" }, 2108c2ecf20Sopenharmony_ci}; 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_cistatic const struct parent_map gcc_parent_map_7[] = { 2138c2ecf20Sopenharmony_ci { P_BI_TCXO, 0 }, 2148c2ecf20Sopenharmony_ci { P_GPLL0_OUT_MAIN, 1 }, 2158c2ecf20Sopenharmony_ci { P_AUD_REF_CLK, 2 }, 2168c2ecf20Sopenharmony_ci { P_GPLL0_OUT_EVEN, 6 }, 2178c2ecf20Sopenharmony_ci { P_CORE_BI_PLL_TEST_SE, 7 }, 2188c2ecf20Sopenharmony_ci}; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_cistatic const struct clk_parent_data gcc_parents_7[] = { 2218c2ecf20Sopenharmony_ci { .fw_name = "bi_tcxo", .name = "bi_tcxo" }, 2228c2ecf20Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 2238c2ecf20Sopenharmony_ci { .fw_name = "aud_ref_clk", .name = "aud_ref_clk" }, 2248c2ecf20Sopenharmony_ci { .hw = &gpll0_out_even.clkr.hw }, 2258c2ecf20Sopenharmony_ci { .fw_name = "core_bi_pll_test_se" }, 2268c2ecf20Sopenharmony_ci}; 2278c2ecf20Sopenharmony_ci 2288c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = { 2298c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 2308c2ecf20Sopenharmony_ci F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0), 2318c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 2328c2ecf20Sopenharmony_ci { } 2338c2ecf20Sopenharmony_ci}; 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_cpuss_ahb_clk_src = { 2368c2ecf20Sopenharmony_ci .cmd_rcgr = 0x48014, 2378c2ecf20Sopenharmony_ci .mnd_width = 0, 2388c2ecf20Sopenharmony_ci .hid_width = 5, 2398c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 2408c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_cpuss_ahb_clk_src, 2418c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 2428c2ecf20Sopenharmony_ci .name = "gcc_cpuss_ahb_clk_src", 2438c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 2448c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 2458c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 2468c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 2478c2ecf20Sopenharmony_ci }, 2488c2ecf20Sopenharmony_ci}; 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_emac_ptp_clk_src[] = { 2518c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 2528c2ecf20Sopenharmony_ci F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 2538c2ecf20Sopenharmony_ci F(125000000, P_GPLL7_OUT_MAIN, 4, 0, 0), 2548c2ecf20Sopenharmony_ci F(250000000, P_GPLL7_OUT_MAIN, 2, 0, 0), 2558c2ecf20Sopenharmony_ci { } 2568c2ecf20Sopenharmony_ci}; 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_emac_ptp_clk_src = { 2598c2ecf20Sopenharmony_ci .cmd_rcgr = 0x6038, 2608c2ecf20Sopenharmony_ci .mnd_width = 0, 2618c2ecf20Sopenharmony_ci .hid_width = 5, 2628c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_5, 2638c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_emac_ptp_clk_src, 2648c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 2658c2ecf20Sopenharmony_ci .name = "gcc_emac_ptp_clk_src", 2668c2ecf20Sopenharmony_ci .parent_data = gcc_parents_5, 2678c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_5), 2688c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 2698c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 2708c2ecf20Sopenharmony_ci }, 2718c2ecf20Sopenharmony_ci}; 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_emac_rgmii_clk_src[] = { 2748c2ecf20Sopenharmony_ci F(2500000, P_BI_TCXO, 1, 25, 192), 2758c2ecf20Sopenharmony_ci F(5000000, P_BI_TCXO, 1, 25, 96), 2768c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 2778c2ecf20Sopenharmony_ci F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 2788c2ecf20Sopenharmony_ci F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 2798c2ecf20Sopenharmony_ci F(125000000, P_GPLL7_OUT_MAIN, 4, 0, 0), 2808c2ecf20Sopenharmony_ci F(250000000, P_GPLL7_OUT_MAIN, 2, 0, 0), 2818c2ecf20Sopenharmony_ci { } 2828c2ecf20Sopenharmony_ci}; 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_emac_rgmii_clk_src = { 2858c2ecf20Sopenharmony_ci .cmd_rcgr = 0x601c, 2868c2ecf20Sopenharmony_ci .mnd_width = 8, 2878c2ecf20Sopenharmony_ci .hid_width = 5, 2888c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_5, 2898c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_emac_rgmii_clk_src, 2908c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 2918c2ecf20Sopenharmony_ci .name = "gcc_emac_rgmii_clk_src", 2928c2ecf20Sopenharmony_ci .parent_data = gcc_parents_5, 2938c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_5), 2948c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 2958c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 2968c2ecf20Sopenharmony_ci }, 2978c2ecf20Sopenharmony_ci}; 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_gp1_clk_src[] = { 3008c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 3018c2ecf20Sopenharmony_ci F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 3028c2ecf20Sopenharmony_ci F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 3038c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 3048c2ecf20Sopenharmony_ci F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 3058c2ecf20Sopenharmony_ci { } 3068c2ecf20Sopenharmony_ci}; 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_gp1_clk_src = { 3098c2ecf20Sopenharmony_ci .cmd_rcgr = 0x64004, 3108c2ecf20Sopenharmony_ci .mnd_width = 8, 3118c2ecf20Sopenharmony_ci .hid_width = 5, 3128c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_1, 3138c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_gp1_clk_src, 3148c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3158c2ecf20Sopenharmony_ci .name = "gcc_gp1_clk_src", 3168c2ecf20Sopenharmony_ci .parent_data = gcc_parents_1, 3178c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_1), 3188c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3198c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 3208c2ecf20Sopenharmony_ci }, 3218c2ecf20Sopenharmony_ci}; 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_gp2_clk_src = { 3248c2ecf20Sopenharmony_ci .cmd_rcgr = 0x65004, 3258c2ecf20Sopenharmony_ci .mnd_width = 8, 3268c2ecf20Sopenharmony_ci .hid_width = 5, 3278c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_1, 3288c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_gp1_clk_src, 3298c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3308c2ecf20Sopenharmony_ci .name = "gcc_gp2_clk_src", 3318c2ecf20Sopenharmony_ci .parent_data = gcc_parents_1, 3328c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_1), 3338c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3348c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 3358c2ecf20Sopenharmony_ci }, 3368c2ecf20Sopenharmony_ci}; 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_gp3_clk_src = { 3398c2ecf20Sopenharmony_ci .cmd_rcgr = 0x66004, 3408c2ecf20Sopenharmony_ci .mnd_width = 8, 3418c2ecf20Sopenharmony_ci .hid_width = 5, 3428c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_1, 3438c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_gp1_clk_src, 3448c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3458c2ecf20Sopenharmony_ci .name = "gcc_gp3_clk_src", 3468c2ecf20Sopenharmony_ci .parent_data = gcc_parents_1, 3478c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_1), 3488c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3498c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 3508c2ecf20Sopenharmony_ci }, 3518c2ecf20Sopenharmony_ci}; 3528c2ecf20Sopenharmony_ci 3538c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pcie_0_aux_clk_src[] = { 3548c2ecf20Sopenharmony_ci F(9600000, P_BI_TCXO, 2, 0, 0), 3558c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 3568c2ecf20Sopenharmony_ci { } 3578c2ecf20Sopenharmony_ci}; 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_pcie_0_aux_clk_src = { 3608c2ecf20Sopenharmony_ci .cmd_rcgr = 0x6b02c, 3618c2ecf20Sopenharmony_ci .mnd_width = 16, 3628c2ecf20Sopenharmony_ci .hid_width = 5, 3638c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_2, 3648c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 3658c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3668c2ecf20Sopenharmony_ci .name = "gcc_pcie_0_aux_clk_src", 3678c2ecf20Sopenharmony_ci .parent_data = gcc_parents_2, 3688c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_2), 3698c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3708c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 3718c2ecf20Sopenharmony_ci }, 3728c2ecf20Sopenharmony_ci}; 3738c2ecf20Sopenharmony_ci 3748c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_pcie_1_aux_clk_src = { 3758c2ecf20Sopenharmony_ci .cmd_rcgr = 0x8d02c, 3768c2ecf20Sopenharmony_ci .mnd_width = 16, 3778c2ecf20Sopenharmony_ci .hid_width = 5, 3788c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_2, 3798c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 3808c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3818c2ecf20Sopenharmony_ci .name = "gcc_pcie_1_aux_clk_src", 3828c2ecf20Sopenharmony_ci .parent_data = gcc_parents_2, 3838c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_2), 3848c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3858c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 3868c2ecf20Sopenharmony_ci }, 3878c2ecf20Sopenharmony_ci}; 3888c2ecf20Sopenharmony_ci 3898c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pcie_phy_refgen_clk_src[] = { 3908c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 3918c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 3928c2ecf20Sopenharmony_ci { } 3938c2ecf20Sopenharmony_ci}; 3948c2ecf20Sopenharmony_ci 3958c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_pcie_phy_refgen_clk_src = { 3968c2ecf20Sopenharmony_ci .cmd_rcgr = 0x6f014, 3978c2ecf20Sopenharmony_ci .mnd_width = 0, 3988c2ecf20Sopenharmony_ci .hid_width = 5, 3998c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 4008c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_pcie_phy_refgen_clk_src, 4018c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4028c2ecf20Sopenharmony_ci .name = "gcc_pcie_phy_refgen_clk_src", 4038c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 4048c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 4058c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 4068c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4078c2ecf20Sopenharmony_ci }, 4088c2ecf20Sopenharmony_ci}; 4098c2ecf20Sopenharmony_ci 4108c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_pdm2_clk_src[] = { 4118c2ecf20Sopenharmony_ci F(9600000, P_BI_TCXO, 2, 0, 0), 4128c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 4138c2ecf20Sopenharmony_ci F(60000000, P_GPLL0_OUT_MAIN, 10, 0, 0), 4148c2ecf20Sopenharmony_ci { } 4158c2ecf20Sopenharmony_ci}; 4168c2ecf20Sopenharmony_ci 4178c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_pdm2_clk_src = { 4188c2ecf20Sopenharmony_ci .cmd_rcgr = 0x33010, 4198c2ecf20Sopenharmony_ci .mnd_width = 0, 4208c2ecf20Sopenharmony_ci .hid_width = 5, 4218c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 4228c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_pdm2_clk_src, 4238c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4248c2ecf20Sopenharmony_ci .name = "gcc_pdm2_clk_src", 4258c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 4268c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 4278c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 4288c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4298c2ecf20Sopenharmony_ci }, 4308c2ecf20Sopenharmony_ci}; 4318c2ecf20Sopenharmony_ci 4328c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_qspi_core_clk_src[] = { 4338c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 4348c2ecf20Sopenharmony_ci F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 4358c2ecf20Sopenharmony_ci F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 4368c2ecf20Sopenharmony_ci F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0), 4378c2ecf20Sopenharmony_ci { } 4388c2ecf20Sopenharmony_ci}; 4398c2ecf20Sopenharmony_ci 4408c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qspi_core_clk_src = { 4418c2ecf20Sopenharmony_ci .cmd_rcgr = 0x4b008, 4428c2ecf20Sopenharmony_ci .mnd_width = 0, 4438c2ecf20Sopenharmony_ci .hid_width = 5, 4448c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 4458c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qspi_core_clk_src, 4468c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4478c2ecf20Sopenharmony_ci .name = "gcc_qspi_core_clk_src", 4488c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 4498c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 4508c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 4518c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4528c2ecf20Sopenharmony_ci }, 4538c2ecf20Sopenharmony_ci}; 4548c2ecf20Sopenharmony_ci 4558c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_qupv3_wrap0_s0_clk_src[] = { 4568c2ecf20Sopenharmony_ci F(7372800, P_GPLL0_OUT_EVEN, 1, 384, 15625), 4578c2ecf20Sopenharmony_ci F(14745600, P_GPLL0_OUT_EVEN, 1, 768, 15625), 4588c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 4598c2ecf20Sopenharmony_ci F(29491200, P_GPLL0_OUT_EVEN, 1, 1536, 15625), 4608c2ecf20Sopenharmony_ci F(32000000, P_GPLL0_OUT_EVEN, 1, 8, 75), 4618c2ecf20Sopenharmony_ci F(48000000, P_GPLL0_OUT_EVEN, 1, 4, 25), 4628c2ecf20Sopenharmony_ci F(64000000, P_GPLL0_OUT_EVEN, 1, 16, 75), 4638c2ecf20Sopenharmony_ci F(80000000, P_GPLL0_OUT_EVEN, 1, 4, 15), 4648c2ecf20Sopenharmony_ci F(96000000, P_GPLL0_OUT_EVEN, 1, 8, 25), 4658c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_OUT_EVEN, 3, 0, 0), 4668c2ecf20Sopenharmony_ci F(102400000, P_GPLL0_OUT_EVEN, 1, 128, 375), 4678c2ecf20Sopenharmony_ci F(112000000, P_GPLL0_OUT_EVEN, 1, 28, 75), 4688c2ecf20Sopenharmony_ci F(117964800, P_GPLL0_OUT_EVEN, 1, 6144, 15625), 4698c2ecf20Sopenharmony_ci F(120000000, P_GPLL0_OUT_EVEN, 2.5, 0, 0), 4708c2ecf20Sopenharmony_ci F(128000000, P_GPLL0_OUT_MAIN, 1, 16, 75), 4718c2ecf20Sopenharmony_ci { } 4728c2ecf20Sopenharmony_ci}; 4738c2ecf20Sopenharmony_ci 4748c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s0_clk_src = { 4758c2ecf20Sopenharmony_ci .cmd_rcgr = 0x17148, 4768c2ecf20Sopenharmony_ci .mnd_width = 16, 4778c2ecf20Sopenharmony_ci .hid_width = 5, 4788c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 4798c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 4808c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4818c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s0_clk_src", 4828c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 4838c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 4848c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 4858c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4868c2ecf20Sopenharmony_ci }, 4878c2ecf20Sopenharmony_ci}; 4888c2ecf20Sopenharmony_ci 4898c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s1_clk_src = { 4908c2ecf20Sopenharmony_ci .cmd_rcgr = 0x17278, 4918c2ecf20Sopenharmony_ci .mnd_width = 16, 4928c2ecf20Sopenharmony_ci .hid_width = 5, 4938c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 4948c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 4958c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4968c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s1_clk_src", 4978c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 4988c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 4998c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5008c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5018c2ecf20Sopenharmony_ci }, 5028c2ecf20Sopenharmony_ci}; 5038c2ecf20Sopenharmony_ci 5048c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s2_clk_src = { 5058c2ecf20Sopenharmony_ci .cmd_rcgr = 0x173a8, 5068c2ecf20Sopenharmony_ci .mnd_width = 16, 5078c2ecf20Sopenharmony_ci .hid_width = 5, 5088c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 5098c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 5108c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5118c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s2_clk_src", 5128c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 5138c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 5148c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5158c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5168c2ecf20Sopenharmony_ci }, 5178c2ecf20Sopenharmony_ci}; 5188c2ecf20Sopenharmony_ci 5198c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s3_clk_src = { 5208c2ecf20Sopenharmony_ci .cmd_rcgr = 0x174d8, 5218c2ecf20Sopenharmony_ci .mnd_width = 16, 5228c2ecf20Sopenharmony_ci .hid_width = 5, 5238c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 5248c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 5258c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5268c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s3_clk_src", 5278c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 5288c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 5298c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5308c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5318c2ecf20Sopenharmony_ci }, 5328c2ecf20Sopenharmony_ci}; 5338c2ecf20Sopenharmony_ci 5348c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s4_clk_src = { 5358c2ecf20Sopenharmony_ci .cmd_rcgr = 0x17608, 5368c2ecf20Sopenharmony_ci .mnd_width = 16, 5378c2ecf20Sopenharmony_ci .hid_width = 5, 5388c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 5398c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 5408c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5418c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s4_clk_src", 5428c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 5438c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 5448c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5458c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5468c2ecf20Sopenharmony_ci }, 5478c2ecf20Sopenharmony_ci}; 5488c2ecf20Sopenharmony_ci 5498c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s5_clk_src = { 5508c2ecf20Sopenharmony_ci .cmd_rcgr = 0x17738, 5518c2ecf20Sopenharmony_ci .mnd_width = 16, 5528c2ecf20Sopenharmony_ci .hid_width = 5, 5538c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 5548c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 5558c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5568c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s5_clk_src", 5578c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 5588c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 5598c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5608c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5618c2ecf20Sopenharmony_ci }, 5628c2ecf20Sopenharmony_ci}; 5638c2ecf20Sopenharmony_ci 5648c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s6_clk_src = { 5658c2ecf20Sopenharmony_ci .cmd_rcgr = 0x17868, 5668c2ecf20Sopenharmony_ci .mnd_width = 16, 5678c2ecf20Sopenharmony_ci .hid_width = 5, 5688c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 5698c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 5708c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5718c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s6_clk_src", 5728c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 5738c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 5748c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5758c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5768c2ecf20Sopenharmony_ci }, 5778c2ecf20Sopenharmony_ci}; 5788c2ecf20Sopenharmony_ci 5798c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap0_s7_clk_src = { 5808c2ecf20Sopenharmony_ci .cmd_rcgr = 0x17998, 5818c2ecf20Sopenharmony_ci .mnd_width = 16, 5828c2ecf20Sopenharmony_ci .hid_width = 5, 5838c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 5848c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 5858c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5868c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s7_clk_src", 5878c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 5888c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 5898c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5908c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5918c2ecf20Sopenharmony_ci }, 5928c2ecf20Sopenharmony_ci}; 5938c2ecf20Sopenharmony_ci 5948c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = { 5958c2ecf20Sopenharmony_ci .cmd_rcgr = 0x18148, 5968c2ecf20Sopenharmony_ci .mnd_width = 16, 5978c2ecf20Sopenharmony_ci .hid_width = 5, 5988c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 5998c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6008c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6018c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s0_clk_src", 6028c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 6038c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 6048c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6058c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6068c2ecf20Sopenharmony_ci }, 6078c2ecf20Sopenharmony_ci}; 6088c2ecf20Sopenharmony_ci 6098c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = { 6108c2ecf20Sopenharmony_ci .cmd_rcgr = 0x18278, 6118c2ecf20Sopenharmony_ci .mnd_width = 16, 6128c2ecf20Sopenharmony_ci .hid_width = 5, 6138c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 6148c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6158c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6168c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s1_clk_src", 6178c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 6188c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 6198c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6208c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6218c2ecf20Sopenharmony_ci }, 6228c2ecf20Sopenharmony_ci}; 6238c2ecf20Sopenharmony_ci 6248c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s2_clk_src = { 6258c2ecf20Sopenharmony_ci .cmd_rcgr = 0x183a8, 6268c2ecf20Sopenharmony_ci .mnd_width = 16, 6278c2ecf20Sopenharmony_ci .hid_width = 5, 6288c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 6298c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6308c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6318c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s2_clk_src", 6328c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 6338c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 6348c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6358c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6368c2ecf20Sopenharmony_ci }, 6378c2ecf20Sopenharmony_ci}; 6388c2ecf20Sopenharmony_ci 6398c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = { 6408c2ecf20Sopenharmony_ci .cmd_rcgr = 0x184d8, 6418c2ecf20Sopenharmony_ci .mnd_width = 16, 6428c2ecf20Sopenharmony_ci .hid_width = 5, 6438c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 6448c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6458c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6468c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s3_clk_src", 6478c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 6488c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 6498c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6508c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6518c2ecf20Sopenharmony_ci }, 6528c2ecf20Sopenharmony_ci}; 6538c2ecf20Sopenharmony_ci 6548c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = { 6558c2ecf20Sopenharmony_ci .cmd_rcgr = 0x18608, 6568c2ecf20Sopenharmony_ci .mnd_width = 16, 6578c2ecf20Sopenharmony_ci .hid_width = 5, 6588c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 6598c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6608c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6618c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s4_clk_src", 6628c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 6638c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 6648c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6658c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6668c2ecf20Sopenharmony_ci }, 6678c2ecf20Sopenharmony_ci}; 6688c2ecf20Sopenharmony_ci 6698c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = { 6708c2ecf20Sopenharmony_ci .cmd_rcgr = 0x18738, 6718c2ecf20Sopenharmony_ci .mnd_width = 16, 6728c2ecf20Sopenharmony_ci .hid_width = 5, 6738c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 6748c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6758c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6768c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s5_clk_src", 6778c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 6788c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 6798c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6808c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6818c2ecf20Sopenharmony_ci }, 6828c2ecf20Sopenharmony_ci}; 6838c2ecf20Sopenharmony_ci 6848c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = { 6858c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1e148, 6868c2ecf20Sopenharmony_ci .mnd_width = 16, 6878c2ecf20Sopenharmony_ci .hid_width = 5, 6888c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 6898c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 6908c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6918c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s0_clk_src", 6928c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 6938c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 6948c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6958c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6968c2ecf20Sopenharmony_ci }, 6978c2ecf20Sopenharmony_ci}; 6988c2ecf20Sopenharmony_ci 6998c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = { 7008c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1e278, 7018c2ecf20Sopenharmony_ci .mnd_width = 16, 7028c2ecf20Sopenharmony_ci .hid_width = 5, 7038c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 7048c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7058c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7068c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s1_clk_src", 7078c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 7088c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 7098c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 7108c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7118c2ecf20Sopenharmony_ci }, 7128c2ecf20Sopenharmony_ci}; 7138c2ecf20Sopenharmony_ci 7148c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = { 7158c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1e3a8, 7168c2ecf20Sopenharmony_ci .mnd_width = 16, 7178c2ecf20Sopenharmony_ci .hid_width = 5, 7188c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 7198c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7208c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7218c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s2_clk_src", 7228c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 7238c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 7248c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 7258c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7268c2ecf20Sopenharmony_ci }, 7278c2ecf20Sopenharmony_ci}; 7288c2ecf20Sopenharmony_ci 7298c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = { 7308c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1e4d8, 7318c2ecf20Sopenharmony_ci .mnd_width = 16, 7328c2ecf20Sopenharmony_ci .hid_width = 5, 7338c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 7348c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7358c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7368c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s3_clk_src", 7378c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 7388c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 7398c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 7408c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7418c2ecf20Sopenharmony_ci }, 7428c2ecf20Sopenharmony_ci}; 7438c2ecf20Sopenharmony_ci 7448c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = { 7458c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1e608, 7468c2ecf20Sopenharmony_ci .mnd_width = 16, 7478c2ecf20Sopenharmony_ci .hid_width = 5, 7488c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 7498c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7508c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7518c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s4_clk_src", 7528c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 7538c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 7548c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 7558c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7568c2ecf20Sopenharmony_ci }, 7578c2ecf20Sopenharmony_ci}; 7588c2ecf20Sopenharmony_ci 7598c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = { 7608c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1e738, 7618c2ecf20Sopenharmony_ci .mnd_width = 16, 7628c2ecf20Sopenharmony_ci .hid_width = 5, 7638c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 7648c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_qupv3_wrap0_s0_clk_src, 7658c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7668c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s5_clk_src", 7678c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 7688c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 7698c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 7708c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7718c2ecf20Sopenharmony_ci }, 7728c2ecf20Sopenharmony_ci}; 7738c2ecf20Sopenharmony_ci 7748c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc2_apps_clk_src[] = { 7758c2ecf20Sopenharmony_ci F(400000, P_BI_TCXO, 12, 1, 4), 7768c2ecf20Sopenharmony_ci F(9600000, P_BI_TCXO, 2, 0, 0), 7778c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 7788c2ecf20Sopenharmony_ci F(25000000, P_GPLL0_OUT_MAIN, 12, 1, 2), 7798c2ecf20Sopenharmony_ci F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0), 7808c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 7818c2ecf20Sopenharmony_ci F(202000000, P_GPLL9_OUT_MAIN, 4, 0, 0), 7828c2ecf20Sopenharmony_ci { } 7838c2ecf20Sopenharmony_ci}; 7848c2ecf20Sopenharmony_ci 7858c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc2_apps_clk_src = { 7868c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1400c, 7878c2ecf20Sopenharmony_ci .mnd_width = 8, 7888c2ecf20Sopenharmony_ci .hid_width = 5, 7898c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_6, 7908c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_sdcc2_apps_clk_src, 7918c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7928c2ecf20Sopenharmony_ci .name = "gcc_sdcc2_apps_clk_src", 7938c2ecf20Sopenharmony_ci .parent_data = gcc_parents_6, 7948c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_6), 7958c2ecf20Sopenharmony_ci .flags = CLK_OPS_PARENT_ENABLE, 7968c2ecf20Sopenharmony_ci .ops = &clk_rcg2_floor_ops, 7978c2ecf20Sopenharmony_ci }, 7988c2ecf20Sopenharmony_ci}; 7998c2ecf20Sopenharmony_ci 8008c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_sdcc4_apps_clk_src[] = { 8018c2ecf20Sopenharmony_ci F(400000, P_BI_TCXO, 12, 1, 4), 8028c2ecf20Sopenharmony_ci F(9600000, P_BI_TCXO, 2, 0, 0), 8038c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 8048c2ecf20Sopenharmony_ci F(25000000, P_GPLL0_OUT_MAIN, 12, 1, 2), 8058c2ecf20Sopenharmony_ci F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0), 8068c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 8078c2ecf20Sopenharmony_ci { } 8088c2ecf20Sopenharmony_ci}; 8098c2ecf20Sopenharmony_ci 8108c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_sdcc4_apps_clk_src = { 8118c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1600c, 8128c2ecf20Sopenharmony_ci .mnd_width = 8, 8138c2ecf20Sopenharmony_ci .hid_width = 5, 8148c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_3, 8158c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_sdcc4_apps_clk_src, 8168c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8178c2ecf20Sopenharmony_ci .name = "gcc_sdcc4_apps_clk_src", 8188c2ecf20Sopenharmony_ci .parent_data = gcc_parents_3, 8198c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_3), 8208c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 8218c2ecf20Sopenharmony_ci .ops = &clk_rcg2_floor_ops, 8228c2ecf20Sopenharmony_ci }, 8238c2ecf20Sopenharmony_ci}; 8248c2ecf20Sopenharmony_ci 8258c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_tsif_ref_clk_src[] = { 8268c2ecf20Sopenharmony_ci F(105495, P_BI_TCXO, 2, 1, 91), 8278c2ecf20Sopenharmony_ci { } 8288c2ecf20Sopenharmony_ci}; 8298c2ecf20Sopenharmony_ci 8308c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_tsif_ref_clk_src = { 8318c2ecf20Sopenharmony_ci .cmd_rcgr = 0x36010, 8328c2ecf20Sopenharmony_ci .mnd_width = 8, 8338c2ecf20Sopenharmony_ci .hid_width = 5, 8348c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_7, 8358c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_tsif_ref_clk_src, 8368c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8378c2ecf20Sopenharmony_ci .name = "gcc_tsif_ref_clk_src", 8388c2ecf20Sopenharmony_ci .parent_data = gcc_parents_7, 8398c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_7), 8408c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 8418c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8428c2ecf20Sopenharmony_ci }, 8438c2ecf20Sopenharmony_ci}; 8448c2ecf20Sopenharmony_ci 8458c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_ufs_card_axi_clk_src[] = { 8468c2ecf20Sopenharmony_ci F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 8478c2ecf20Sopenharmony_ci F(50000000, P_GPLL0_OUT_EVEN, 6, 0, 0), 8488c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0), 8498c2ecf20Sopenharmony_ci F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 8508c2ecf20Sopenharmony_ci F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0), 8518c2ecf20Sopenharmony_ci { } 8528c2ecf20Sopenharmony_ci}; 8538c2ecf20Sopenharmony_ci 8548c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_card_axi_clk_src = { 8558c2ecf20Sopenharmony_ci .cmd_rcgr = 0x75020, 8568c2ecf20Sopenharmony_ci .mnd_width = 8, 8578c2ecf20Sopenharmony_ci .hid_width = 5, 8588c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 8598c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_ufs_card_axi_clk_src, 8608c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8618c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_axi_clk_src", 8628c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 8638c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 8648c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 8658c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8668c2ecf20Sopenharmony_ci }, 8678c2ecf20Sopenharmony_ci}; 8688c2ecf20Sopenharmony_ci 8698c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_ufs_card_ice_core_clk_src[] = { 8708c2ecf20Sopenharmony_ci F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0), 8718c2ecf20Sopenharmony_ci F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 8728c2ecf20Sopenharmony_ci F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 8738c2ecf20Sopenharmony_ci F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0), 8748c2ecf20Sopenharmony_ci { } 8758c2ecf20Sopenharmony_ci}; 8768c2ecf20Sopenharmony_ci 8778c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_card_ice_core_clk_src = { 8788c2ecf20Sopenharmony_ci .cmd_rcgr = 0x75060, 8798c2ecf20Sopenharmony_ci .mnd_width = 0, 8808c2ecf20Sopenharmony_ci .hid_width = 5, 8818c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 8828c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src, 8838c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8848c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_ice_core_clk_src", 8858c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 8868c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 8878c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 8888c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8898c2ecf20Sopenharmony_ci }, 8908c2ecf20Sopenharmony_ci}; 8918c2ecf20Sopenharmony_ci 8928c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_ufs_card_phy_aux_clk_src[] = { 8938c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 8948c2ecf20Sopenharmony_ci { } 8958c2ecf20Sopenharmony_ci}; 8968c2ecf20Sopenharmony_ci 8978c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_card_phy_aux_clk_src = { 8988c2ecf20Sopenharmony_ci .cmd_rcgr = 0x75094, 8998c2ecf20Sopenharmony_ci .mnd_width = 0, 9008c2ecf20Sopenharmony_ci .hid_width = 5, 9018c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_4, 9028c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_ufs_card_phy_aux_clk_src, 9038c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9048c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_phy_aux_clk_src", 9058c2ecf20Sopenharmony_ci .parent_data = gcc_parents_4, 9068c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_4), 9078c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 9088c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9098c2ecf20Sopenharmony_ci }, 9108c2ecf20Sopenharmony_ci}; 9118c2ecf20Sopenharmony_ci 9128c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_ufs_card_unipro_core_clk_src[] = { 9138c2ecf20Sopenharmony_ci F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0), 9148c2ecf20Sopenharmony_ci F(75000000, P_GPLL0_OUT_MAIN, 8, 0, 0), 9158c2ecf20Sopenharmony_ci F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 9168c2ecf20Sopenharmony_ci { } 9178c2ecf20Sopenharmony_ci}; 9188c2ecf20Sopenharmony_ci 9198c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_card_unipro_core_clk_src = { 9208c2ecf20Sopenharmony_ci .cmd_rcgr = 0x75078, 9218c2ecf20Sopenharmony_ci .mnd_width = 0, 9228c2ecf20Sopenharmony_ci .hid_width = 5, 9238c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 9248c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_ufs_card_unipro_core_clk_src, 9258c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9268c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_unipro_core_clk_src", 9278c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 9288c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 9298c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 9308c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9318c2ecf20Sopenharmony_ci }, 9328c2ecf20Sopenharmony_ci}; 9338c2ecf20Sopenharmony_ci 9348c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_ufs_phy_axi_clk_src[] = { 9358c2ecf20Sopenharmony_ci F(25000000, P_GPLL0_OUT_EVEN, 12, 0, 0), 9368c2ecf20Sopenharmony_ci F(37500000, P_GPLL0_OUT_EVEN, 8, 0, 0), 9378c2ecf20Sopenharmony_ci F(75000000, P_GPLL0_OUT_EVEN, 4, 0, 0), 9388c2ecf20Sopenharmony_ci F(150000000, P_GPLL0_OUT_MAIN, 4, 0, 0), 9398c2ecf20Sopenharmony_ci F(300000000, P_GPLL0_OUT_MAIN, 2, 0, 0), 9408c2ecf20Sopenharmony_ci { } 9418c2ecf20Sopenharmony_ci}; 9428c2ecf20Sopenharmony_ci 9438c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_phy_axi_clk_src = { 9448c2ecf20Sopenharmony_ci .cmd_rcgr = 0x77020, 9458c2ecf20Sopenharmony_ci .mnd_width = 8, 9468c2ecf20Sopenharmony_ci .hid_width = 5, 9478c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 9488c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_ufs_phy_axi_clk_src, 9498c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9508c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_axi_clk_src", 9518c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 9528c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 9538c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 9548c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9558c2ecf20Sopenharmony_ci }, 9568c2ecf20Sopenharmony_ci}; 9578c2ecf20Sopenharmony_ci 9588c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_phy_ice_core_clk_src = { 9598c2ecf20Sopenharmony_ci .cmd_rcgr = 0x77060, 9608c2ecf20Sopenharmony_ci .mnd_width = 0, 9618c2ecf20Sopenharmony_ci .hid_width = 5, 9628c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 9638c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src, 9648c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9658c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_ice_core_clk_src", 9668c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 9678c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 9688c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 9698c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9708c2ecf20Sopenharmony_ci }, 9718c2ecf20Sopenharmony_ci}; 9728c2ecf20Sopenharmony_ci 9738c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_phy_phy_aux_clk_src = { 9748c2ecf20Sopenharmony_ci .cmd_rcgr = 0x77094, 9758c2ecf20Sopenharmony_ci .mnd_width = 0, 9768c2ecf20Sopenharmony_ci .hid_width = 5, 9778c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_4, 9788c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_pcie_0_aux_clk_src, 9798c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9808c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_phy_aux_clk_src", 9818c2ecf20Sopenharmony_ci .parent_data = gcc_parents_4, 9828c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_4), 9838c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 9848c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9858c2ecf20Sopenharmony_ci }, 9868c2ecf20Sopenharmony_ci}; 9878c2ecf20Sopenharmony_ci 9888c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_ufs_phy_unipro_core_clk_src = { 9898c2ecf20Sopenharmony_ci .cmd_rcgr = 0x77078, 9908c2ecf20Sopenharmony_ci .mnd_width = 0, 9918c2ecf20Sopenharmony_ci .hid_width = 5, 9928c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 9938c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_ufs_card_ice_core_clk_src, 9948c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9958c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_unipro_core_clk_src", 9968c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 9978c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 9988c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 9998c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10008c2ecf20Sopenharmony_ci }, 10018c2ecf20Sopenharmony_ci}; 10028c2ecf20Sopenharmony_ci 10038c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_usb30_prim_master_clk_src[] = { 10048c2ecf20Sopenharmony_ci F(33333333, P_GPLL0_OUT_EVEN, 9, 0, 0), 10058c2ecf20Sopenharmony_ci F(66666667, P_GPLL0_OUT_EVEN, 4.5, 0, 0), 10068c2ecf20Sopenharmony_ci F(133333333, P_GPLL0_OUT_MAIN, 4.5, 0, 0), 10078c2ecf20Sopenharmony_ci F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0), 10088c2ecf20Sopenharmony_ci F(240000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0), 10098c2ecf20Sopenharmony_ci { } 10108c2ecf20Sopenharmony_ci}; 10118c2ecf20Sopenharmony_ci 10128c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_prim_master_clk_src = { 10138c2ecf20Sopenharmony_ci .cmd_rcgr = 0xf01c, 10148c2ecf20Sopenharmony_ci .mnd_width = 8, 10158c2ecf20Sopenharmony_ci .hid_width = 5, 10168c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 10178c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_usb30_prim_master_clk_src, 10188c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10198c2ecf20Sopenharmony_ci .name = "gcc_usb30_prim_master_clk_src", 10208c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 10218c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 10228c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 10238c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10248c2ecf20Sopenharmony_ci }, 10258c2ecf20Sopenharmony_ci}; 10268c2ecf20Sopenharmony_ci 10278c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_usb30_prim_mock_utmi_clk_src[] = { 10288c2ecf20Sopenharmony_ci F(19200000, P_BI_TCXO, 1, 0, 0), 10298c2ecf20Sopenharmony_ci F(20000000, P_GPLL0_OUT_EVEN, 15, 0, 0), 10308c2ecf20Sopenharmony_ci F(60000000, P_GPLL0_OUT_EVEN, 5, 0, 0), 10318c2ecf20Sopenharmony_ci { } 10328c2ecf20Sopenharmony_ci}; 10338c2ecf20Sopenharmony_ci 10348c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_prim_mock_utmi_clk_src = { 10358c2ecf20Sopenharmony_ci .cmd_rcgr = 0xf034, 10368c2ecf20Sopenharmony_ci .mnd_width = 0, 10378c2ecf20Sopenharmony_ci .hid_width = 5, 10388c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 10398c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src, 10408c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10418c2ecf20Sopenharmony_ci .name = "gcc_usb30_prim_mock_utmi_clk_src", 10428c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 10438c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 10448c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 10458c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10468c2ecf20Sopenharmony_ci }, 10478c2ecf20Sopenharmony_ci}; 10488c2ecf20Sopenharmony_ci 10498c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_sec_master_clk_src = { 10508c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1001c, 10518c2ecf20Sopenharmony_ci .mnd_width = 8, 10528c2ecf20Sopenharmony_ci .hid_width = 5, 10538c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 10548c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_usb30_prim_master_clk_src, 10558c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10568c2ecf20Sopenharmony_ci .name = "gcc_usb30_sec_master_clk_src", 10578c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 10588c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 10598c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 10608c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10618c2ecf20Sopenharmony_ci }, 10628c2ecf20Sopenharmony_ci}; 10638c2ecf20Sopenharmony_ci 10648c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_usb30_sec_mock_utmi_clk_src = { 10658c2ecf20Sopenharmony_ci .cmd_rcgr = 0x10034, 10668c2ecf20Sopenharmony_ci .mnd_width = 0, 10678c2ecf20Sopenharmony_ci .hid_width = 5, 10688c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_0, 10698c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_usb30_prim_mock_utmi_clk_src, 10708c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10718c2ecf20Sopenharmony_ci .name = "gcc_usb30_sec_mock_utmi_clk_src", 10728c2ecf20Sopenharmony_ci .parent_data = gcc_parents_0, 10738c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_0), 10748c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 10758c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10768c2ecf20Sopenharmony_ci }, 10778c2ecf20Sopenharmony_ci}; 10788c2ecf20Sopenharmony_ci 10798c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_usb3_prim_phy_aux_clk_src = { 10808c2ecf20Sopenharmony_ci .cmd_rcgr = 0xf060, 10818c2ecf20Sopenharmony_ci .mnd_width = 0, 10828c2ecf20Sopenharmony_ci .hid_width = 5, 10838c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_2, 10848c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_ufs_card_phy_aux_clk_src, 10858c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10868c2ecf20Sopenharmony_ci .name = "gcc_usb3_prim_phy_aux_clk_src", 10878c2ecf20Sopenharmony_ci .parent_data = gcc_parents_2, 10888c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_2), 10898c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 10908c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10918c2ecf20Sopenharmony_ci }, 10928c2ecf20Sopenharmony_ci}; 10938c2ecf20Sopenharmony_ci 10948c2ecf20Sopenharmony_cistatic struct clk_rcg2 gcc_usb3_sec_phy_aux_clk_src = { 10958c2ecf20Sopenharmony_ci .cmd_rcgr = 0x10060, 10968c2ecf20Sopenharmony_ci .mnd_width = 0, 10978c2ecf20Sopenharmony_ci .hid_width = 5, 10988c2ecf20Sopenharmony_ci .parent_map = gcc_parent_map_2, 10998c2ecf20Sopenharmony_ci .freq_tbl = ftbl_gcc_ufs_card_phy_aux_clk_src, 11008c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 11018c2ecf20Sopenharmony_ci .name = "gcc_usb3_sec_phy_aux_clk_src", 11028c2ecf20Sopenharmony_ci .parent_data = gcc_parents_2, 11038c2ecf20Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_parents_2), 11048c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11058c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 11068c2ecf20Sopenharmony_ci }, 11078c2ecf20Sopenharmony_ci}; 11088c2ecf20Sopenharmony_ci 11098c2ecf20Sopenharmony_cistatic struct clk_branch gcc_aggre_noc_pcie_tbu_clk = { 11108c2ecf20Sopenharmony_ci .halt_reg = 0x90018, 11118c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 11128c2ecf20Sopenharmony_ci .clkr = { 11138c2ecf20Sopenharmony_ci .enable_reg = 0x90018, 11148c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 11158c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11168c2ecf20Sopenharmony_ci .name = "gcc_aggre_noc_pcie_tbu_clk", 11178c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 11188c2ecf20Sopenharmony_ci }, 11198c2ecf20Sopenharmony_ci }, 11208c2ecf20Sopenharmony_ci}; 11218c2ecf20Sopenharmony_ci 11228c2ecf20Sopenharmony_cistatic struct clk_branch gcc_aggre_ufs_card_axi_clk = { 11238c2ecf20Sopenharmony_ci .halt_reg = 0x750c0, 11248c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 11258c2ecf20Sopenharmony_ci .hwcg_reg = 0x750c0, 11268c2ecf20Sopenharmony_ci .hwcg_bit = 1, 11278c2ecf20Sopenharmony_ci .clkr = { 11288c2ecf20Sopenharmony_ci .enable_reg = 0x750c0, 11298c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 11308c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11318c2ecf20Sopenharmony_ci .name = "gcc_aggre_ufs_card_axi_clk", 11328c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 11338c2ecf20Sopenharmony_ci &gcc_ufs_card_axi_clk_src.clkr.hw }, 11348c2ecf20Sopenharmony_ci .num_parents = 1, 11358c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11368c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 11378c2ecf20Sopenharmony_ci }, 11388c2ecf20Sopenharmony_ci }, 11398c2ecf20Sopenharmony_ci}; 11408c2ecf20Sopenharmony_ci 11418c2ecf20Sopenharmony_cistatic struct clk_branch gcc_aggre_ufs_card_axi_hw_ctl_clk = { 11428c2ecf20Sopenharmony_ci .halt_reg = 0x750c0, 11438c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 11448c2ecf20Sopenharmony_ci .hwcg_reg = 0x750c0, 11458c2ecf20Sopenharmony_ci .hwcg_bit = 1, 11468c2ecf20Sopenharmony_ci .clkr = { 11478c2ecf20Sopenharmony_ci .enable_reg = 0x750c0, 11488c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 11498c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11508c2ecf20Sopenharmony_ci .name = "gcc_aggre_ufs_card_axi_hw_ctl_clk", 11518c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 11528c2ecf20Sopenharmony_ci &gcc_aggre_ufs_card_axi_clk.clkr.hw }, 11538c2ecf20Sopenharmony_ci .num_parents = 1, 11548c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11558c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 11568c2ecf20Sopenharmony_ci }, 11578c2ecf20Sopenharmony_ci }, 11588c2ecf20Sopenharmony_ci}; 11598c2ecf20Sopenharmony_ci 11608c2ecf20Sopenharmony_cistatic struct clk_branch gcc_aggre_ufs_phy_axi_clk = { 11618c2ecf20Sopenharmony_ci .halt_reg = 0x770c0, 11628c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 11638c2ecf20Sopenharmony_ci .hwcg_reg = 0x770c0, 11648c2ecf20Sopenharmony_ci .hwcg_bit = 1, 11658c2ecf20Sopenharmony_ci .clkr = { 11668c2ecf20Sopenharmony_ci .enable_reg = 0x770c0, 11678c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 11688c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11698c2ecf20Sopenharmony_ci .name = "gcc_aggre_ufs_phy_axi_clk", 11708c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 11718c2ecf20Sopenharmony_ci &gcc_ufs_phy_axi_clk_src.clkr.hw }, 11728c2ecf20Sopenharmony_ci .num_parents = 1, 11738c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11748c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 11758c2ecf20Sopenharmony_ci }, 11768c2ecf20Sopenharmony_ci }, 11778c2ecf20Sopenharmony_ci}; 11788c2ecf20Sopenharmony_ci 11798c2ecf20Sopenharmony_cistatic struct clk_branch gcc_aggre_ufs_phy_axi_hw_ctl_clk = { 11808c2ecf20Sopenharmony_ci .halt_reg = 0x770c0, 11818c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 11828c2ecf20Sopenharmony_ci .hwcg_reg = 0x770c0, 11838c2ecf20Sopenharmony_ci .hwcg_bit = 1, 11848c2ecf20Sopenharmony_ci .clkr = { 11858c2ecf20Sopenharmony_ci .enable_reg = 0x770c0, 11868c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 11878c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11888c2ecf20Sopenharmony_ci .name = "gcc_aggre_ufs_phy_axi_hw_ctl_clk", 11898c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 11908c2ecf20Sopenharmony_ci &gcc_aggre_ufs_phy_axi_clk.clkr.hw }, 11918c2ecf20Sopenharmony_ci .num_parents = 1, 11928c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11938c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 11948c2ecf20Sopenharmony_ci }, 11958c2ecf20Sopenharmony_ci }, 11968c2ecf20Sopenharmony_ci}; 11978c2ecf20Sopenharmony_ci 11988c2ecf20Sopenharmony_cistatic struct clk_branch gcc_aggre_usb3_prim_axi_clk = { 11998c2ecf20Sopenharmony_ci .halt_reg = 0xf07c, 12008c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 12018c2ecf20Sopenharmony_ci .clkr = { 12028c2ecf20Sopenharmony_ci .enable_reg = 0xf07c, 12038c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12048c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12058c2ecf20Sopenharmony_ci .name = "gcc_aggre_usb3_prim_axi_clk", 12068c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 12078c2ecf20Sopenharmony_ci &gcc_usb30_prim_master_clk_src.clkr.hw }, 12088c2ecf20Sopenharmony_ci .num_parents = 1, 12098c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12108c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12118c2ecf20Sopenharmony_ci }, 12128c2ecf20Sopenharmony_ci }, 12138c2ecf20Sopenharmony_ci}; 12148c2ecf20Sopenharmony_ci 12158c2ecf20Sopenharmony_cistatic struct clk_branch gcc_aggre_usb3_sec_axi_clk = { 12168c2ecf20Sopenharmony_ci .halt_reg = 0x1007c, 12178c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 12188c2ecf20Sopenharmony_ci .clkr = { 12198c2ecf20Sopenharmony_ci .enable_reg = 0x1007c, 12208c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12218c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12228c2ecf20Sopenharmony_ci .name = "gcc_aggre_usb3_sec_axi_clk", 12238c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 12248c2ecf20Sopenharmony_ci &gcc_usb30_sec_master_clk_src.clkr.hw }, 12258c2ecf20Sopenharmony_ci .num_parents = 1, 12268c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12278c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12288c2ecf20Sopenharmony_ci }, 12298c2ecf20Sopenharmony_ci }, 12308c2ecf20Sopenharmony_ci}; 12318c2ecf20Sopenharmony_ci 12328c2ecf20Sopenharmony_cistatic struct clk_branch gcc_boot_rom_ahb_clk = { 12338c2ecf20Sopenharmony_ci .halt_reg = 0x38004, 12348c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 12358c2ecf20Sopenharmony_ci .hwcg_reg = 0x38004, 12368c2ecf20Sopenharmony_ci .hwcg_bit = 1, 12378c2ecf20Sopenharmony_ci .clkr = { 12388c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 12398c2ecf20Sopenharmony_ci .enable_mask = BIT(10), 12408c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12418c2ecf20Sopenharmony_ci .name = "gcc_boot_rom_ahb_clk", 12428c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12438c2ecf20Sopenharmony_ci }, 12448c2ecf20Sopenharmony_ci }, 12458c2ecf20Sopenharmony_ci}; 12468c2ecf20Sopenharmony_ci 12478c2ecf20Sopenharmony_ci/* 12488c2ecf20Sopenharmony_ci * Clock ON depends on external parent 'config noc', so cant poll 12498c2ecf20Sopenharmony_ci * delay and also mark as crtitical for camss boot 12508c2ecf20Sopenharmony_ci */ 12518c2ecf20Sopenharmony_cistatic struct clk_branch gcc_camera_ahb_clk = { 12528c2ecf20Sopenharmony_ci .halt_reg = 0xb008, 12538c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 12548c2ecf20Sopenharmony_ci .hwcg_reg = 0xb008, 12558c2ecf20Sopenharmony_ci .hwcg_bit = 1, 12568c2ecf20Sopenharmony_ci .clkr = { 12578c2ecf20Sopenharmony_ci .enable_reg = 0xb008, 12588c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12598c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12608c2ecf20Sopenharmony_ci .name = "gcc_camera_ahb_clk", 12618c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 12628c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12638c2ecf20Sopenharmony_ci }, 12648c2ecf20Sopenharmony_ci }, 12658c2ecf20Sopenharmony_ci}; 12668c2ecf20Sopenharmony_ci 12678c2ecf20Sopenharmony_cistatic struct clk_branch gcc_camera_hf_axi_clk = { 12688c2ecf20Sopenharmony_ci .halt_reg = 0xb030, 12698c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 12708c2ecf20Sopenharmony_ci .clkr = { 12718c2ecf20Sopenharmony_ci .enable_reg = 0xb030, 12728c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12748c2ecf20Sopenharmony_ci .name = "gcc_camera_hf_axi_clk", 12758c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12768c2ecf20Sopenharmony_ci }, 12778c2ecf20Sopenharmony_ci }, 12788c2ecf20Sopenharmony_ci}; 12798c2ecf20Sopenharmony_ci 12808c2ecf20Sopenharmony_cistatic struct clk_branch gcc_camera_sf_axi_clk = { 12818c2ecf20Sopenharmony_ci .halt_reg = 0xb034, 12828c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 12838c2ecf20Sopenharmony_ci .clkr = { 12848c2ecf20Sopenharmony_ci .enable_reg = 0xb034, 12858c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12868c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12878c2ecf20Sopenharmony_ci .name = "gcc_camera_sf_axi_clk", 12888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12898c2ecf20Sopenharmony_ci }, 12908c2ecf20Sopenharmony_ci }, 12918c2ecf20Sopenharmony_ci}; 12928c2ecf20Sopenharmony_ci 12938c2ecf20Sopenharmony_ci/* XO critical input to camss, so no need to poll */ 12948c2ecf20Sopenharmony_cistatic struct clk_branch gcc_camera_xo_clk = { 12958c2ecf20Sopenharmony_ci .halt_reg = 0xb044, 12968c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 12978c2ecf20Sopenharmony_ci .clkr = { 12988c2ecf20Sopenharmony_ci .enable_reg = 0xb044, 12998c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13008c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13018c2ecf20Sopenharmony_ci .name = "gcc_camera_xo_clk", 13028c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 13038c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13048c2ecf20Sopenharmony_ci }, 13058c2ecf20Sopenharmony_ci }, 13068c2ecf20Sopenharmony_ci}; 13078c2ecf20Sopenharmony_ci 13088c2ecf20Sopenharmony_cistatic struct clk_branch gcc_cfg_noc_usb3_prim_axi_clk = { 13098c2ecf20Sopenharmony_ci .halt_reg = 0xf078, 13108c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 13118c2ecf20Sopenharmony_ci .clkr = { 13128c2ecf20Sopenharmony_ci .enable_reg = 0xf078, 13138c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13148c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13158c2ecf20Sopenharmony_ci .name = "gcc_cfg_noc_usb3_prim_axi_clk", 13168c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 13178c2ecf20Sopenharmony_ci &gcc_usb30_prim_master_clk_src.clkr.hw }, 13188c2ecf20Sopenharmony_ci .num_parents = 1, 13198c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13208c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13218c2ecf20Sopenharmony_ci }, 13228c2ecf20Sopenharmony_ci }, 13238c2ecf20Sopenharmony_ci}; 13248c2ecf20Sopenharmony_ci 13258c2ecf20Sopenharmony_cistatic struct clk_branch gcc_cfg_noc_usb3_sec_axi_clk = { 13268c2ecf20Sopenharmony_ci .halt_reg = 0x10078, 13278c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 13288c2ecf20Sopenharmony_ci .clkr = { 13298c2ecf20Sopenharmony_ci .enable_reg = 0x10078, 13308c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13318c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13328c2ecf20Sopenharmony_ci .name = "gcc_cfg_noc_usb3_sec_axi_clk", 13338c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 13348c2ecf20Sopenharmony_ci &gcc_usb30_sec_master_clk_src.clkr.hw }, 13358c2ecf20Sopenharmony_ci .num_parents = 1, 13368c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13378c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13388c2ecf20Sopenharmony_ci }, 13398c2ecf20Sopenharmony_ci }, 13408c2ecf20Sopenharmony_ci}; 13418c2ecf20Sopenharmony_ci 13428c2ecf20Sopenharmony_cistatic struct clk_branch gcc_cpuss_ahb_clk = { 13438c2ecf20Sopenharmony_ci .halt_reg = 0x48000, 13448c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 13458c2ecf20Sopenharmony_ci .clkr = { 13468c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 13478c2ecf20Sopenharmony_ci .enable_mask = BIT(21), 13488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13498c2ecf20Sopenharmony_ci .name = "gcc_cpuss_ahb_clk", 13508c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 13518c2ecf20Sopenharmony_ci &gcc_cpuss_ahb_clk_src.clkr.hw }, 13528c2ecf20Sopenharmony_ci .num_parents = 1, 13538c2ecf20Sopenharmony_ci /* required for cpuss */ 13548c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT, 13558c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13568c2ecf20Sopenharmony_ci }, 13578c2ecf20Sopenharmony_ci }, 13588c2ecf20Sopenharmony_ci}; 13598c2ecf20Sopenharmony_ci 13608c2ecf20Sopenharmony_cistatic struct clk_branch gcc_cpuss_dvm_bus_clk = { 13618c2ecf20Sopenharmony_ci .halt_reg = 0x48190, 13628c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 13638c2ecf20Sopenharmony_ci .clkr = { 13648c2ecf20Sopenharmony_ci .enable_reg = 0x48190, 13658c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13668c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13678c2ecf20Sopenharmony_ci .name = "gcc_cpuss_dvm_bus_clk", 13688c2ecf20Sopenharmony_ci /* required for cpuss */ 13698c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 13708c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13718c2ecf20Sopenharmony_ci }, 13728c2ecf20Sopenharmony_ci }, 13738c2ecf20Sopenharmony_ci}; 13748c2ecf20Sopenharmony_ci 13758c2ecf20Sopenharmony_cistatic struct clk_branch gcc_cpuss_gnoc_clk = { 13768c2ecf20Sopenharmony_ci .halt_reg = 0x48004, 13778c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 13788c2ecf20Sopenharmony_ci .hwcg_reg = 0x48004, 13798c2ecf20Sopenharmony_ci .hwcg_bit = 1, 13808c2ecf20Sopenharmony_ci .clkr = { 13818c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 13828c2ecf20Sopenharmony_ci .enable_mask = BIT(22), 13838c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13848c2ecf20Sopenharmony_ci .name = "gcc_cpuss_gnoc_clk", 13858c2ecf20Sopenharmony_ci /* required for cpuss */ 13868c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 13878c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13888c2ecf20Sopenharmony_ci }, 13898c2ecf20Sopenharmony_ci }, 13908c2ecf20Sopenharmony_ci}; 13918c2ecf20Sopenharmony_ci 13928c2ecf20Sopenharmony_cistatic struct clk_branch gcc_cpuss_rbcpr_clk = { 13938c2ecf20Sopenharmony_ci .halt_reg = 0x48008, 13948c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 13958c2ecf20Sopenharmony_ci .clkr = { 13968c2ecf20Sopenharmony_ci .enable_reg = 0x48008, 13978c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13988c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13998c2ecf20Sopenharmony_ci .name = "gcc_cpuss_rbcpr_clk", 14008c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14018c2ecf20Sopenharmony_ci }, 14028c2ecf20Sopenharmony_ci }, 14038c2ecf20Sopenharmony_ci}; 14048c2ecf20Sopenharmony_ci 14058c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ddrss_gpu_axi_clk = { 14068c2ecf20Sopenharmony_ci .halt_reg = 0x71154, 14078c2ecf20Sopenharmony_ci .halt_check = BRANCH_VOTED, 14088c2ecf20Sopenharmony_ci .clkr = { 14098c2ecf20Sopenharmony_ci .enable_reg = 0x71154, 14108c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14118c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14128c2ecf20Sopenharmony_ci .name = "gcc_ddrss_gpu_axi_clk", 14138c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14148c2ecf20Sopenharmony_ci }, 14158c2ecf20Sopenharmony_ci }, 14168c2ecf20Sopenharmony_ci}; 14178c2ecf20Sopenharmony_ci 14188c2ecf20Sopenharmony_ci/* 14198c2ecf20Sopenharmony_ci * Clock ON depends on external parent 'config noc', so cant poll 14208c2ecf20Sopenharmony_ci * delay and also mark as crtitical for disp boot 14218c2ecf20Sopenharmony_ci */ 14228c2ecf20Sopenharmony_cistatic struct clk_branch gcc_disp_ahb_clk = { 14238c2ecf20Sopenharmony_ci .halt_reg = 0xb00c, 14248c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 14258c2ecf20Sopenharmony_ci .hwcg_reg = 0xb00c, 14268c2ecf20Sopenharmony_ci .hwcg_bit = 1, 14278c2ecf20Sopenharmony_ci .clkr = { 14288c2ecf20Sopenharmony_ci .enable_reg = 0xb00c, 14298c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14308c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14318c2ecf20Sopenharmony_ci .name = "gcc_disp_ahb_clk", 14328c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 14338c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14348c2ecf20Sopenharmony_ci }, 14358c2ecf20Sopenharmony_ci }, 14368c2ecf20Sopenharmony_ci}; 14378c2ecf20Sopenharmony_ci 14388c2ecf20Sopenharmony_cistatic struct clk_branch gcc_disp_hf_axi_clk = { 14398c2ecf20Sopenharmony_ci .halt_reg = 0xb038, 14408c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 14418c2ecf20Sopenharmony_ci .clkr = { 14428c2ecf20Sopenharmony_ci .enable_reg = 0xb038, 14438c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14448c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14458c2ecf20Sopenharmony_ci .name = "gcc_disp_hf_axi_clk", 14468c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14478c2ecf20Sopenharmony_ci }, 14488c2ecf20Sopenharmony_ci }, 14498c2ecf20Sopenharmony_ci}; 14508c2ecf20Sopenharmony_ci 14518c2ecf20Sopenharmony_cistatic struct clk_branch gcc_disp_sf_axi_clk = { 14528c2ecf20Sopenharmony_ci .halt_reg = 0xb03c, 14538c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 14548c2ecf20Sopenharmony_ci .clkr = { 14558c2ecf20Sopenharmony_ci .enable_reg = 0xb03c, 14568c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14578c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14588c2ecf20Sopenharmony_ci .name = "gcc_disp_sf_axi_clk", 14598c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14608c2ecf20Sopenharmony_ci }, 14618c2ecf20Sopenharmony_ci }, 14628c2ecf20Sopenharmony_ci}; 14638c2ecf20Sopenharmony_ci 14648c2ecf20Sopenharmony_ci/* XO critical input to disp, so no need to poll */ 14658c2ecf20Sopenharmony_cistatic struct clk_branch gcc_disp_xo_clk = { 14668c2ecf20Sopenharmony_ci .halt_reg = 0xb048, 14678c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 14688c2ecf20Sopenharmony_ci .clkr = { 14698c2ecf20Sopenharmony_ci .enable_reg = 0xb048, 14708c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14718c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14728c2ecf20Sopenharmony_ci .name = "gcc_disp_xo_clk", 14738c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 14748c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14758c2ecf20Sopenharmony_ci }, 14768c2ecf20Sopenharmony_ci }, 14778c2ecf20Sopenharmony_ci}; 14788c2ecf20Sopenharmony_ci 14798c2ecf20Sopenharmony_cistatic struct clk_branch gcc_emac_axi_clk = { 14808c2ecf20Sopenharmony_ci .halt_reg = 0x6010, 14818c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 14828c2ecf20Sopenharmony_ci .clkr = { 14838c2ecf20Sopenharmony_ci .enable_reg = 0x6010, 14848c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14858c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14868c2ecf20Sopenharmony_ci .name = "gcc_emac_axi_clk", 14878c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14888c2ecf20Sopenharmony_ci }, 14898c2ecf20Sopenharmony_ci }, 14908c2ecf20Sopenharmony_ci}; 14918c2ecf20Sopenharmony_ci 14928c2ecf20Sopenharmony_cistatic struct clk_branch gcc_emac_ptp_clk = { 14938c2ecf20Sopenharmony_ci .halt_reg = 0x6034, 14948c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 14958c2ecf20Sopenharmony_ci .clkr = { 14968c2ecf20Sopenharmony_ci .enable_reg = 0x6034, 14978c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14988c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14998c2ecf20Sopenharmony_ci .name = "gcc_emac_ptp_clk", 15008c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 15018c2ecf20Sopenharmony_ci &gcc_emac_ptp_clk_src.clkr.hw }, 15028c2ecf20Sopenharmony_ci .num_parents = 1, 15038c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15048c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15058c2ecf20Sopenharmony_ci }, 15068c2ecf20Sopenharmony_ci }, 15078c2ecf20Sopenharmony_ci}; 15088c2ecf20Sopenharmony_ci 15098c2ecf20Sopenharmony_cistatic struct clk_branch gcc_emac_rgmii_clk = { 15108c2ecf20Sopenharmony_ci .halt_reg = 0x6018, 15118c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 15128c2ecf20Sopenharmony_ci .clkr = { 15138c2ecf20Sopenharmony_ci .enable_reg = 0x6018, 15148c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15158c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15168c2ecf20Sopenharmony_ci .name = "gcc_emac_rgmii_clk", 15178c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 15188c2ecf20Sopenharmony_ci &gcc_emac_rgmii_clk_src.clkr.hw }, 15198c2ecf20Sopenharmony_ci .num_parents = 1, 15208c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15218c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15228c2ecf20Sopenharmony_ci }, 15238c2ecf20Sopenharmony_ci }, 15248c2ecf20Sopenharmony_ci}; 15258c2ecf20Sopenharmony_ci 15268c2ecf20Sopenharmony_cistatic struct clk_branch gcc_emac_slv_ahb_clk = { 15278c2ecf20Sopenharmony_ci .halt_reg = 0x6014, 15288c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 15298c2ecf20Sopenharmony_ci .hwcg_reg = 0x6014, 15308c2ecf20Sopenharmony_ci .hwcg_bit = 1, 15318c2ecf20Sopenharmony_ci .clkr = { 15328c2ecf20Sopenharmony_ci .enable_reg = 0x6014, 15338c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15348c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15358c2ecf20Sopenharmony_ci .name = "gcc_emac_slv_ahb_clk", 15368c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15378c2ecf20Sopenharmony_ci }, 15388c2ecf20Sopenharmony_ci }, 15398c2ecf20Sopenharmony_ci}; 15408c2ecf20Sopenharmony_ci 15418c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gp1_clk = { 15428c2ecf20Sopenharmony_ci .halt_reg = 0x64000, 15438c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 15448c2ecf20Sopenharmony_ci .clkr = { 15458c2ecf20Sopenharmony_ci .enable_reg = 0x64000, 15468c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15478c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15488c2ecf20Sopenharmony_ci .name = "gcc_gp1_clk", 15498c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 15508c2ecf20Sopenharmony_ci &gcc_gp1_clk_src.clkr.hw }, 15518c2ecf20Sopenharmony_ci .num_parents = 1, 15528c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15538c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15548c2ecf20Sopenharmony_ci }, 15558c2ecf20Sopenharmony_ci }, 15568c2ecf20Sopenharmony_ci}; 15578c2ecf20Sopenharmony_ci 15588c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gp2_clk = { 15598c2ecf20Sopenharmony_ci .halt_reg = 0x65000, 15608c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 15618c2ecf20Sopenharmony_ci .clkr = { 15628c2ecf20Sopenharmony_ci .enable_reg = 0x65000, 15638c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15648c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15658c2ecf20Sopenharmony_ci .name = "gcc_gp2_clk", 15668c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 15678c2ecf20Sopenharmony_ci &gcc_gp2_clk_src.clkr.hw }, 15688c2ecf20Sopenharmony_ci .num_parents = 1, 15698c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15708c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15718c2ecf20Sopenharmony_ci }, 15728c2ecf20Sopenharmony_ci }, 15738c2ecf20Sopenharmony_ci}; 15748c2ecf20Sopenharmony_ci 15758c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gp3_clk = { 15768c2ecf20Sopenharmony_ci .halt_reg = 0x66000, 15778c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 15788c2ecf20Sopenharmony_ci .clkr = { 15798c2ecf20Sopenharmony_ci .enable_reg = 0x66000, 15808c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15818c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15828c2ecf20Sopenharmony_ci .name = "gcc_gp3_clk", 15838c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 15848c2ecf20Sopenharmony_ci &gcc_gp3_clk_src.clkr.hw }, 15858c2ecf20Sopenharmony_ci .num_parents = 1, 15868c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15878c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15888c2ecf20Sopenharmony_ci }, 15898c2ecf20Sopenharmony_ci }, 15908c2ecf20Sopenharmony_ci}; 15918c2ecf20Sopenharmony_ci 15928c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_cfg_ahb_clk = { 15938c2ecf20Sopenharmony_ci .halt_reg = 0x71004, 15948c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 15958c2ecf20Sopenharmony_ci .hwcg_reg = 0x71004, 15968c2ecf20Sopenharmony_ci .hwcg_bit = 1, 15978c2ecf20Sopenharmony_ci .clkr = { 15988c2ecf20Sopenharmony_ci .enable_reg = 0x71004, 15998c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16008c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16018c2ecf20Sopenharmony_ci .name = "gcc_gpu_cfg_ahb_clk", 16028c2ecf20Sopenharmony_ci /* required for gpu */ 16038c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 16048c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16058c2ecf20Sopenharmony_ci }, 16068c2ecf20Sopenharmony_ci }, 16078c2ecf20Sopenharmony_ci}; 16088c2ecf20Sopenharmony_ci 16098c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_gpll0_clk_src = { 16108c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 16118c2ecf20Sopenharmony_ci .clkr = { 16128c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 16138c2ecf20Sopenharmony_ci .enable_mask = BIT(15), 16148c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16158c2ecf20Sopenharmony_ci .name = "gcc_gpu_gpll0_clk_src", 16168c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 16178c2ecf20Sopenharmony_ci &gpll0.clkr.hw }, 16188c2ecf20Sopenharmony_ci .num_parents = 1, 16198c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16208c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16218c2ecf20Sopenharmony_ci }, 16228c2ecf20Sopenharmony_ci }, 16238c2ecf20Sopenharmony_ci}; 16248c2ecf20Sopenharmony_ci 16258c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_gpll0_div_clk_src = { 16268c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 16278c2ecf20Sopenharmony_ci .clkr = { 16288c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 16298c2ecf20Sopenharmony_ci .enable_mask = BIT(16), 16308c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16318c2ecf20Sopenharmony_ci .name = "gcc_gpu_gpll0_div_clk_src", 16328c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 16338c2ecf20Sopenharmony_ci &gpll0_out_even.clkr.hw }, 16348c2ecf20Sopenharmony_ci .num_parents = 1, 16358c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16368c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16378c2ecf20Sopenharmony_ci }, 16388c2ecf20Sopenharmony_ci }, 16398c2ecf20Sopenharmony_ci}; 16408c2ecf20Sopenharmony_ci 16418c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_iref_clk = { 16428c2ecf20Sopenharmony_ci .halt_reg = 0x8c010, 16438c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 16448c2ecf20Sopenharmony_ci .clkr = { 16458c2ecf20Sopenharmony_ci .enable_reg = 0x8c010, 16468c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16478c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16488c2ecf20Sopenharmony_ci .name = "gcc_gpu_iref_clk", 16498c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16508c2ecf20Sopenharmony_ci }, 16518c2ecf20Sopenharmony_ci }, 16528c2ecf20Sopenharmony_ci}; 16538c2ecf20Sopenharmony_ci 16548c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_memnoc_gfx_clk = { 16558c2ecf20Sopenharmony_ci .halt_reg = 0x7100c, 16568c2ecf20Sopenharmony_ci .halt_check = BRANCH_VOTED, 16578c2ecf20Sopenharmony_ci .clkr = { 16588c2ecf20Sopenharmony_ci .enable_reg = 0x7100c, 16598c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16608c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16618c2ecf20Sopenharmony_ci .name = "gcc_gpu_memnoc_gfx_clk", 16628c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16638c2ecf20Sopenharmony_ci }, 16648c2ecf20Sopenharmony_ci }, 16658c2ecf20Sopenharmony_ci}; 16668c2ecf20Sopenharmony_ci 16678c2ecf20Sopenharmony_cistatic struct clk_branch gcc_gpu_snoc_dvm_gfx_clk = { 16688c2ecf20Sopenharmony_ci .halt_reg = 0x71018, 16698c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 16708c2ecf20Sopenharmony_ci .clkr = { 16718c2ecf20Sopenharmony_ci .enable_reg = 0x71018, 16728c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16748c2ecf20Sopenharmony_ci .name = "gcc_gpu_snoc_dvm_gfx_clk", 16758c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16768c2ecf20Sopenharmony_ci }, 16778c2ecf20Sopenharmony_ci }, 16788c2ecf20Sopenharmony_ci}; 16798c2ecf20Sopenharmony_ci 16808c2ecf20Sopenharmony_cistatic struct clk_branch gcc_npu_at_clk = { 16818c2ecf20Sopenharmony_ci .halt_reg = 0x4d010, 16828c2ecf20Sopenharmony_ci .halt_check = BRANCH_VOTED, 16838c2ecf20Sopenharmony_ci .clkr = { 16848c2ecf20Sopenharmony_ci .enable_reg = 0x4d010, 16858c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16868c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16878c2ecf20Sopenharmony_ci .name = "gcc_npu_at_clk", 16888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16898c2ecf20Sopenharmony_ci }, 16908c2ecf20Sopenharmony_ci }, 16918c2ecf20Sopenharmony_ci}; 16928c2ecf20Sopenharmony_ci 16938c2ecf20Sopenharmony_cistatic struct clk_branch gcc_npu_axi_clk = { 16948c2ecf20Sopenharmony_ci .halt_reg = 0x4d008, 16958c2ecf20Sopenharmony_ci .halt_check = BRANCH_VOTED, 16968c2ecf20Sopenharmony_ci .clkr = { 16978c2ecf20Sopenharmony_ci .enable_reg = 0x4d008, 16988c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16998c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17008c2ecf20Sopenharmony_ci .name = "gcc_npu_axi_clk", 17018c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17028c2ecf20Sopenharmony_ci }, 17038c2ecf20Sopenharmony_ci }, 17048c2ecf20Sopenharmony_ci}; 17058c2ecf20Sopenharmony_ci 17068c2ecf20Sopenharmony_cistatic struct clk_branch gcc_npu_cfg_ahb_clk = { 17078c2ecf20Sopenharmony_ci .halt_reg = 0x4d004, 17088c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 17098c2ecf20Sopenharmony_ci .hwcg_reg = 0x4d004, 17108c2ecf20Sopenharmony_ci .hwcg_bit = 1, 17118c2ecf20Sopenharmony_ci .clkr = { 17128c2ecf20Sopenharmony_ci .enable_reg = 0x4d004, 17138c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17148c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17158c2ecf20Sopenharmony_ci .name = "gcc_npu_cfg_ahb_clk", 17168c2ecf20Sopenharmony_ci /* required for npu */ 17178c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 17188c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17198c2ecf20Sopenharmony_ci }, 17208c2ecf20Sopenharmony_ci }, 17218c2ecf20Sopenharmony_ci}; 17228c2ecf20Sopenharmony_ci 17238c2ecf20Sopenharmony_cistatic struct clk_branch gcc_npu_gpll0_clk_src = { 17248c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 17258c2ecf20Sopenharmony_ci .clkr = { 17268c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 17278c2ecf20Sopenharmony_ci .enable_mask = BIT(18), 17288c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17298c2ecf20Sopenharmony_ci .name = "gcc_npu_gpll0_clk_src", 17308c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 17318c2ecf20Sopenharmony_ci &gpll0.clkr.hw }, 17328c2ecf20Sopenharmony_ci .num_parents = 1, 17338c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17348c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17358c2ecf20Sopenharmony_ci }, 17368c2ecf20Sopenharmony_ci }, 17378c2ecf20Sopenharmony_ci}; 17388c2ecf20Sopenharmony_ci 17398c2ecf20Sopenharmony_cistatic struct clk_branch gcc_npu_gpll0_div_clk_src = { 17408c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 17418c2ecf20Sopenharmony_ci .clkr = { 17428c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 17438c2ecf20Sopenharmony_ci .enable_mask = BIT(19), 17448c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17458c2ecf20Sopenharmony_ci .name = "gcc_npu_gpll0_div_clk_src", 17468c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 17478c2ecf20Sopenharmony_ci &gpll0_out_even.clkr.hw }, 17488c2ecf20Sopenharmony_ci .num_parents = 1, 17498c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17508c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17518c2ecf20Sopenharmony_ci }, 17528c2ecf20Sopenharmony_ci }, 17538c2ecf20Sopenharmony_ci}; 17548c2ecf20Sopenharmony_ci 17558c2ecf20Sopenharmony_cistatic struct clk_branch gcc_npu_trig_clk = { 17568c2ecf20Sopenharmony_ci .halt_reg = 0x4d00c, 17578c2ecf20Sopenharmony_ci .halt_check = BRANCH_VOTED, 17588c2ecf20Sopenharmony_ci .clkr = { 17598c2ecf20Sopenharmony_ci .enable_reg = 0x4d00c, 17608c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17618c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17628c2ecf20Sopenharmony_ci .name = "gcc_npu_trig_clk", 17638c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17648c2ecf20Sopenharmony_ci }, 17658c2ecf20Sopenharmony_ci }, 17668c2ecf20Sopenharmony_ci}; 17678c2ecf20Sopenharmony_ci 17688c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie0_phy_refgen_clk = { 17698c2ecf20Sopenharmony_ci .halt_reg = 0x6f02c, 17708c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 17718c2ecf20Sopenharmony_ci .clkr = { 17728c2ecf20Sopenharmony_ci .enable_reg = 0x6f02c, 17738c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17748c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17758c2ecf20Sopenharmony_ci .name = "gcc_pcie0_phy_refgen_clk", 17768c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 17778c2ecf20Sopenharmony_ci &gcc_pcie_phy_refgen_clk_src.clkr.hw }, 17788c2ecf20Sopenharmony_ci .num_parents = 1, 17798c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17808c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17818c2ecf20Sopenharmony_ci }, 17828c2ecf20Sopenharmony_ci }, 17838c2ecf20Sopenharmony_ci}; 17848c2ecf20Sopenharmony_ci 17858c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie1_phy_refgen_clk = { 17868c2ecf20Sopenharmony_ci .halt_reg = 0x6f030, 17878c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 17888c2ecf20Sopenharmony_ci .clkr = { 17898c2ecf20Sopenharmony_ci .enable_reg = 0x6f030, 17908c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17918c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17928c2ecf20Sopenharmony_ci .name = "gcc_pcie1_phy_refgen_clk", 17938c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 17948c2ecf20Sopenharmony_ci &gcc_pcie_phy_refgen_clk_src.clkr.hw }, 17958c2ecf20Sopenharmony_ci .num_parents = 1, 17968c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17978c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17988c2ecf20Sopenharmony_ci }, 17998c2ecf20Sopenharmony_ci }, 18008c2ecf20Sopenharmony_ci}; 18018c2ecf20Sopenharmony_ci 18028c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_0_aux_clk = { 18038c2ecf20Sopenharmony_ci .halt_reg = 0x6b020, 18048c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 18058c2ecf20Sopenharmony_ci .clkr = { 18068c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 18078c2ecf20Sopenharmony_ci .enable_mask = BIT(3), 18088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18098c2ecf20Sopenharmony_ci .name = "gcc_pcie_0_aux_clk", 18108c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 18118c2ecf20Sopenharmony_ci &gcc_pcie_0_aux_clk_src.clkr.hw }, 18128c2ecf20Sopenharmony_ci .num_parents = 1, 18138c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18148c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18158c2ecf20Sopenharmony_ci }, 18168c2ecf20Sopenharmony_ci }, 18178c2ecf20Sopenharmony_ci}; 18188c2ecf20Sopenharmony_ci 18198c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_0_cfg_ahb_clk = { 18208c2ecf20Sopenharmony_ci .halt_reg = 0x6b01c, 18218c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 18228c2ecf20Sopenharmony_ci .hwcg_reg = 0x6b01c, 18238c2ecf20Sopenharmony_ci .hwcg_bit = 1, 18248c2ecf20Sopenharmony_ci .clkr = { 18258c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 18268c2ecf20Sopenharmony_ci .enable_mask = BIT(2), 18278c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18288c2ecf20Sopenharmony_ci .name = "gcc_pcie_0_cfg_ahb_clk", 18298c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18308c2ecf20Sopenharmony_ci }, 18318c2ecf20Sopenharmony_ci }, 18328c2ecf20Sopenharmony_ci}; 18338c2ecf20Sopenharmony_ci 18348c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_0_clkref_clk = { 18358c2ecf20Sopenharmony_ci .halt_reg = 0x8c00c, 18368c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 18378c2ecf20Sopenharmony_ci .clkr = { 18388c2ecf20Sopenharmony_ci .enable_reg = 0x8c00c, 18398c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18408c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18418c2ecf20Sopenharmony_ci .name = "gcc_pcie_0_clkref_clk", 18428c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18438c2ecf20Sopenharmony_ci }, 18448c2ecf20Sopenharmony_ci }, 18458c2ecf20Sopenharmony_ci}; 18468c2ecf20Sopenharmony_ci 18478c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_0_mstr_axi_clk = { 18488c2ecf20Sopenharmony_ci .halt_reg = 0x6b018, 18498c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 18508c2ecf20Sopenharmony_ci .clkr = { 18518c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 18528c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 18538c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18548c2ecf20Sopenharmony_ci .name = "gcc_pcie_0_mstr_axi_clk", 18558c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18568c2ecf20Sopenharmony_ci }, 18578c2ecf20Sopenharmony_ci }, 18588c2ecf20Sopenharmony_ci}; 18598c2ecf20Sopenharmony_ci 18608c2ecf20Sopenharmony_ci/* Clock ON depends on external parent 'PIPE' clock, so dont poll */ 18618c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_0_pipe_clk = { 18628c2ecf20Sopenharmony_ci .halt_reg = 0x6b024, 18638c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 18648c2ecf20Sopenharmony_ci .clkr = { 18658c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 18668c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 18678c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18688c2ecf20Sopenharmony_ci .name = "gcc_pcie_0_pipe_clk", 18698c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18708c2ecf20Sopenharmony_ci }, 18718c2ecf20Sopenharmony_ci }, 18728c2ecf20Sopenharmony_ci}; 18738c2ecf20Sopenharmony_ci 18748c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_0_slv_axi_clk = { 18758c2ecf20Sopenharmony_ci .halt_reg = 0x6b014, 18768c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 18778c2ecf20Sopenharmony_ci .hwcg_reg = 0x6b014, 18788c2ecf20Sopenharmony_ci .hwcg_bit = 1, 18798c2ecf20Sopenharmony_ci .clkr = { 18808c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 18818c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18828c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18838c2ecf20Sopenharmony_ci .name = "gcc_pcie_0_slv_axi_clk", 18848c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18858c2ecf20Sopenharmony_ci }, 18868c2ecf20Sopenharmony_ci }, 18878c2ecf20Sopenharmony_ci}; 18888c2ecf20Sopenharmony_ci 18898c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_0_slv_q2a_axi_clk = { 18908c2ecf20Sopenharmony_ci .halt_reg = 0x6b010, 18918c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 18928c2ecf20Sopenharmony_ci .clkr = { 18938c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 18948c2ecf20Sopenharmony_ci .enable_mask = BIT(5), 18958c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18968c2ecf20Sopenharmony_ci .name = "gcc_pcie_0_slv_q2a_axi_clk", 18978c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18988c2ecf20Sopenharmony_ci }, 18998c2ecf20Sopenharmony_ci }, 19008c2ecf20Sopenharmony_ci}; 19018c2ecf20Sopenharmony_ci 19028c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_1_aux_clk = { 19038c2ecf20Sopenharmony_ci .halt_reg = 0x8d020, 19048c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 19058c2ecf20Sopenharmony_ci .clkr = { 19068c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 19078c2ecf20Sopenharmony_ci .enable_mask = BIT(29), 19088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19098c2ecf20Sopenharmony_ci .name = "gcc_pcie_1_aux_clk", 19108c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 19118c2ecf20Sopenharmony_ci &gcc_pcie_1_aux_clk_src.clkr.hw }, 19128c2ecf20Sopenharmony_ci .num_parents = 1, 19138c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19148c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19158c2ecf20Sopenharmony_ci }, 19168c2ecf20Sopenharmony_ci }, 19178c2ecf20Sopenharmony_ci}; 19188c2ecf20Sopenharmony_ci 19198c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_1_cfg_ahb_clk = { 19208c2ecf20Sopenharmony_ci .halt_reg = 0x8d01c, 19218c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 19228c2ecf20Sopenharmony_ci .hwcg_reg = 0x8d01c, 19238c2ecf20Sopenharmony_ci .hwcg_bit = 1, 19248c2ecf20Sopenharmony_ci .clkr = { 19258c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 19268c2ecf20Sopenharmony_ci .enable_mask = BIT(28), 19278c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19288c2ecf20Sopenharmony_ci .name = "gcc_pcie_1_cfg_ahb_clk", 19298c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19308c2ecf20Sopenharmony_ci }, 19318c2ecf20Sopenharmony_ci }, 19328c2ecf20Sopenharmony_ci}; 19338c2ecf20Sopenharmony_ci 19348c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_1_clkref_clk = { 19358c2ecf20Sopenharmony_ci .halt_reg = 0x8c02c, 19368c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 19378c2ecf20Sopenharmony_ci .clkr = { 19388c2ecf20Sopenharmony_ci .enable_reg = 0x8c02c, 19398c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19408c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19418c2ecf20Sopenharmony_ci .name = "gcc_pcie_1_clkref_clk", 19428c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19438c2ecf20Sopenharmony_ci }, 19448c2ecf20Sopenharmony_ci }, 19458c2ecf20Sopenharmony_ci}; 19468c2ecf20Sopenharmony_ci 19478c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_1_mstr_axi_clk = { 19488c2ecf20Sopenharmony_ci .halt_reg = 0x8d018, 19498c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 19508c2ecf20Sopenharmony_ci .clkr = { 19518c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 19528c2ecf20Sopenharmony_ci .enable_mask = BIT(27), 19538c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19548c2ecf20Sopenharmony_ci .name = "gcc_pcie_1_mstr_axi_clk", 19558c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19568c2ecf20Sopenharmony_ci }, 19578c2ecf20Sopenharmony_ci }, 19588c2ecf20Sopenharmony_ci}; 19598c2ecf20Sopenharmony_ci 19608c2ecf20Sopenharmony_ci/* Clock ON depends on external parent 'PIPE' clock, so dont poll */ 19618c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_1_pipe_clk = { 19628c2ecf20Sopenharmony_ci .halt_reg = 0x8d024, 19638c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 19648c2ecf20Sopenharmony_ci .clkr = { 19658c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 19668c2ecf20Sopenharmony_ci .enable_mask = BIT(30), 19678c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19688c2ecf20Sopenharmony_ci .name = "gcc_pcie_1_pipe_clk", 19698c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19708c2ecf20Sopenharmony_ci }, 19718c2ecf20Sopenharmony_ci }, 19728c2ecf20Sopenharmony_ci}; 19738c2ecf20Sopenharmony_ci 19748c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_1_slv_axi_clk = { 19758c2ecf20Sopenharmony_ci .halt_reg = 0x8d014, 19768c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 19778c2ecf20Sopenharmony_ci .hwcg_reg = 0x8d014, 19788c2ecf20Sopenharmony_ci .hwcg_bit = 1, 19798c2ecf20Sopenharmony_ci .clkr = { 19808c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 19818c2ecf20Sopenharmony_ci .enable_mask = BIT(26), 19828c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19838c2ecf20Sopenharmony_ci .name = "gcc_pcie_1_slv_axi_clk", 19848c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19858c2ecf20Sopenharmony_ci }, 19868c2ecf20Sopenharmony_ci }, 19878c2ecf20Sopenharmony_ci}; 19888c2ecf20Sopenharmony_ci 19898c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_1_slv_q2a_axi_clk = { 19908c2ecf20Sopenharmony_ci .halt_reg = 0x8d010, 19918c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 19928c2ecf20Sopenharmony_ci .clkr = { 19938c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 19948c2ecf20Sopenharmony_ci .enable_mask = BIT(25), 19958c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19968c2ecf20Sopenharmony_ci .name = "gcc_pcie_1_slv_q2a_axi_clk", 19978c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19988c2ecf20Sopenharmony_ci }, 19998c2ecf20Sopenharmony_ci }, 20008c2ecf20Sopenharmony_ci}; 20018c2ecf20Sopenharmony_ci 20028c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pcie_phy_aux_clk = { 20038c2ecf20Sopenharmony_ci .halt_reg = 0x6f004, 20048c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 20058c2ecf20Sopenharmony_ci .clkr = { 20068c2ecf20Sopenharmony_ci .enable_reg = 0x6f004, 20078c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20098c2ecf20Sopenharmony_ci .name = "gcc_pcie_phy_aux_clk", 20108c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 20118c2ecf20Sopenharmony_ci &gcc_pcie_0_aux_clk_src.clkr.hw }, 20128c2ecf20Sopenharmony_ci .num_parents = 1, 20138c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20148c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20158c2ecf20Sopenharmony_ci }, 20168c2ecf20Sopenharmony_ci }, 20178c2ecf20Sopenharmony_ci}; 20188c2ecf20Sopenharmony_ci 20198c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pdm2_clk = { 20208c2ecf20Sopenharmony_ci .halt_reg = 0x3300c, 20218c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 20228c2ecf20Sopenharmony_ci .clkr = { 20238c2ecf20Sopenharmony_ci .enable_reg = 0x3300c, 20248c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20258c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20268c2ecf20Sopenharmony_ci .name = "gcc_pdm2_clk", 20278c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 20288c2ecf20Sopenharmony_ci &gcc_pdm2_clk_src.clkr.hw }, 20298c2ecf20Sopenharmony_ci .num_parents = 1, 20308c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20318c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20328c2ecf20Sopenharmony_ci }, 20338c2ecf20Sopenharmony_ci }, 20348c2ecf20Sopenharmony_ci}; 20358c2ecf20Sopenharmony_ci 20368c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pdm_ahb_clk = { 20378c2ecf20Sopenharmony_ci .halt_reg = 0x33004, 20388c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 20398c2ecf20Sopenharmony_ci .hwcg_reg = 0x33004, 20408c2ecf20Sopenharmony_ci .hwcg_bit = 1, 20418c2ecf20Sopenharmony_ci .clkr = { 20428c2ecf20Sopenharmony_ci .enable_reg = 0x33004, 20438c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20448c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20458c2ecf20Sopenharmony_ci .name = "gcc_pdm_ahb_clk", 20468c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20478c2ecf20Sopenharmony_ci }, 20488c2ecf20Sopenharmony_ci }, 20498c2ecf20Sopenharmony_ci}; 20508c2ecf20Sopenharmony_ci 20518c2ecf20Sopenharmony_cistatic struct clk_branch gcc_pdm_xo4_clk = { 20528c2ecf20Sopenharmony_ci .halt_reg = 0x33008, 20538c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 20548c2ecf20Sopenharmony_ci .clkr = { 20558c2ecf20Sopenharmony_ci .enable_reg = 0x33008, 20568c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20578c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20588c2ecf20Sopenharmony_ci .name = "gcc_pdm_xo4_clk", 20598c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20608c2ecf20Sopenharmony_ci }, 20618c2ecf20Sopenharmony_ci }, 20628c2ecf20Sopenharmony_ci}; 20638c2ecf20Sopenharmony_ci 20648c2ecf20Sopenharmony_cistatic struct clk_branch gcc_prng_ahb_clk = { 20658c2ecf20Sopenharmony_ci .halt_reg = 0x34004, 20668c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 20678c2ecf20Sopenharmony_ci .clkr = { 20688c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 20698c2ecf20Sopenharmony_ci .enable_mask = BIT(13), 20708c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20718c2ecf20Sopenharmony_ci .name = "gcc_prng_ahb_clk", 20728c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20738c2ecf20Sopenharmony_ci }, 20748c2ecf20Sopenharmony_ci }, 20758c2ecf20Sopenharmony_ci}; 20768c2ecf20Sopenharmony_ci 20778c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qmip_camera_nrt_ahb_clk = { 20788c2ecf20Sopenharmony_ci .halt_reg = 0xb018, 20798c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 20808c2ecf20Sopenharmony_ci .hwcg_reg = 0xb018, 20818c2ecf20Sopenharmony_ci .hwcg_bit = 1, 20828c2ecf20Sopenharmony_ci .clkr = { 20838c2ecf20Sopenharmony_ci .enable_reg = 0xb018, 20848c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20858c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20868c2ecf20Sopenharmony_ci .name = "gcc_qmip_camera_nrt_ahb_clk", 20878c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20888c2ecf20Sopenharmony_ci }, 20898c2ecf20Sopenharmony_ci }, 20908c2ecf20Sopenharmony_ci}; 20918c2ecf20Sopenharmony_ci 20928c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qmip_camera_rt_ahb_clk = { 20938c2ecf20Sopenharmony_ci .halt_reg = 0xb01c, 20948c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 20958c2ecf20Sopenharmony_ci .hwcg_reg = 0xb01c, 20968c2ecf20Sopenharmony_ci .hwcg_bit = 1, 20978c2ecf20Sopenharmony_ci .clkr = { 20988c2ecf20Sopenharmony_ci .enable_reg = 0xb01c, 20998c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21008c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21018c2ecf20Sopenharmony_ci .name = "gcc_qmip_camera_rt_ahb_clk", 21028c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21038c2ecf20Sopenharmony_ci }, 21048c2ecf20Sopenharmony_ci }, 21058c2ecf20Sopenharmony_ci}; 21068c2ecf20Sopenharmony_ci 21078c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qmip_disp_ahb_clk = { 21088c2ecf20Sopenharmony_ci .halt_reg = 0xb020, 21098c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 21108c2ecf20Sopenharmony_ci .hwcg_reg = 0xb020, 21118c2ecf20Sopenharmony_ci .hwcg_bit = 1, 21128c2ecf20Sopenharmony_ci .clkr = { 21138c2ecf20Sopenharmony_ci .enable_reg = 0xb020, 21148c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21158c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21168c2ecf20Sopenharmony_ci .name = "gcc_qmip_disp_ahb_clk", 21178c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21188c2ecf20Sopenharmony_ci }, 21198c2ecf20Sopenharmony_ci }, 21208c2ecf20Sopenharmony_ci}; 21218c2ecf20Sopenharmony_ci 21228c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qmip_video_cvp_ahb_clk = { 21238c2ecf20Sopenharmony_ci .halt_reg = 0xb010, 21248c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 21258c2ecf20Sopenharmony_ci .hwcg_reg = 0xb010, 21268c2ecf20Sopenharmony_ci .hwcg_bit = 1, 21278c2ecf20Sopenharmony_ci .clkr = { 21288c2ecf20Sopenharmony_ci .enable_reg = 0xb010, 21298c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21308c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21318c2ecf20Sopenharmony_ci .name = "gcc_qmip_video_cvp_ahb_clk", 21328c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21338c2ecf20Sopenharmony_ci }, 21348c2ecf20Sopenharmony_ci }, 21358c2ecf20Sopenharmony_ci}; 21368c2ecf20Sopenharmony_ci 21378c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qmip_video_vcodec_ahb_clk = { 21388c2ecf20Sopenharmony_ci .halt_reg = 0xb014, 21398c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 21408c2ecf20Sopenharmony_ci .hwcg_reg = 0xb014, 21418c2ecf20Sopenharmony_ci .hwcg_bit = 1, 21428c2ecf20Sopenharmony_ci .clkr = { 21438c2ecf20Sopenharmony_ci .enable_reg = 0xb014, 21448c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21458c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21468c2ecf20Sopenharmony_ci .name = "gcc_qmip_video_vcodec_ahb_clk", 21478c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21488c2ecf20Sopenharmony_ci }, 21498c2ecf20Sopenharmony_ci }, 21508c2ecf20Sopenharmony_ci}; 21518c2ecf20Sopenharmony_ci 21528c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qspi_cnoc_periph_ahb_clk = { 21538c2ecf20Sopenharmony_ci .halt_reg = 0x4b000, 21548c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 21558c2ecf20Sopenharmony_ci .clkr = { 21568c2ecf20Sopenharmony_ci .enable_reg = 0x4b000, 21578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21598c2ecf20Sopenharmony_ci .name = "gcc_qspi_cnoc_periph_ahb_clk", 21608c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21618c2ecf20Sopenharmony_ci }, 21628c2ecf20Sopenharmony_ci }, 21638c2ecf20Sopenharmony_ci}; 21648c2ecf20Sopenharmony_ci 21658c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qspi_core_clk = { 21668c2ecf20Sopenharmony_ci .halt_reg = 0x4b004, 21678c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 21688c2ecf20Sopenharmony_ci .clkr = { 21698c2ecf20Sopenharmony_ci .enable_reg = 0x4b004, 21708c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21718c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21728c2ecf20Sopenharmony_ci .name = "gcc_qspi_core_clk", 21738c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 21748c2ecf20Sopenharmony_ci &gcc_qspi_core_clk_src.clkr.hw }, 21758c2ecf20Sopenharmony_ci .num_parents = 1, 21768c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21778c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21788c2ecf20Sopenharmony_ci }, 21798c2ecf20Sopenharmony_ci }, 21808c2ecf20Sopenharmony_ci}; 21818c2ecf20Sopenharmony_ci 21828c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s0_clk = { 21838c2ecf20Sopenharmony_ci .halt_reg = 0x17144, 21848c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 21858c2ecf20Sopenharmony_ci .clkr = { 21868c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 21878c2ecf20Sopenharmony_ci .enable_mask = BIT(10), 21888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21898c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s0_clk", 21908c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 21918c2ecf20Sopenharmony_ci &gcc_qupv3_wrap0_s0_clk_src.clkr.hw }, 21928c2ecf20Sopenharmony_ci .num_parents = 1, 21938c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21948c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21958c2ecf20Sopenharmony_ci }, 21968c2ecf20Sopenharmony_ci }, 21978c2ecf20Sopenharmony_ci}; 21988c2ecf20Sopenharmony_ci 21998c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s1_clk = { 22008c2ecf20Sopenharmony_ci .halt_reg = 0x17274, 22018c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 22028c2ecf20Sopenharmony_ci .clkr = { 22038c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 22048c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 22058c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22068c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s1_clk", 22078c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 22088c2ecf20Sopenharmony_ci &gcc_qupv3_wrap0_s1_clk_src.clkr.hw }, 22098c2ecf20Sopenharmony_ci .num_parents = 1, 22108c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22118c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22128c2ecf20Sopenharmony_ci }, 22138c2ecf20Sopenharmony_ci }, 22148c2ecf20Sopenharmony_ci}; 22158c2ecf20Sopenharmony_ci 22168c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s2_clk = { 22178c2ecf20Sopenharmony_ci .halt_reg = 0x173a4, 22188c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 22198c2ecf20Sopenharmony_ci .clkr = { 22208c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 22218c2ecf20Sopenharmony_ci .enable_mask = BIT(12), 22228c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22238c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s2_clk", 22248c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 22258c2ecf20Sopenharmony_ci &gcc_qupv3_wrap0_s2_clk_src.clkr.hw }, 22268c2ecf20Sopenharmony_ci .num_parents = 1, 22278c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22288c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22298c2ecf20Sopenharmony_ci }, 22308c2ecf20Sopenharmony_ci }, 22318c2ecf20Sopenharmony_ci}; 22328c2ecf20Sopenharmony_ci 22338c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s3_clk = { 22348c2ecf20Sopenharmony_ci .halt_reg = 0x174d4, 22358c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 22368c2ecf20Sopenharmony_ci .clkr = { 22378c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 22388c2ecf20Sopenharmony_ci .enable_mask = BIT(13), 22398c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22408c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s3_clk", 22418c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 22428c2ecf20Sopenharmony_ci &gcc_qupv3_wrap0_s3_clk_src.clkr.hw }, 22438c2ecf20Sopenharmony_ci .num_parents = 1, 22448c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22458c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22468c2ecf20Sopenharmony_ci }, 22478c2ecf20Sopenharmony_ci }, 22488c2ecf20Sopenharmony_ci}; 22498c2ecf20Sopenharmony_ci 22508c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s4_clk = { 22518c2ecf20Sopenharmony_ci .halt_reg = 0x17604, 22528c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 22538c2ecf20Sopenharmony_ci .clkr = { 22548c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 22558c2ecf20Sopenharmony_ci .enable_mask = BIT(14), 22568c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22578c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s4_clk", 22588c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 22598c2ecf20Sopenharmony_ci &gcc_qupv3_wrap0_s4_clk_src.clkr.hw }, 22608c2ecf20Sopenharmony_ci .num_parents = 1, 22618c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22628c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22638c2ecf20Sopenharmony_ci }, 22648c2ecf20Sopenharmony_ci }, 22658c2ecf20Sopenharmony_ci}; 22668c2ecf20Sopenharmony_ci 22678c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s5_clk = { 22688c2ecf20Sopenharmony_ci .halt_reg = 0x17734, 22698c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 22708c2ecf20Sopenharmony_ci .clkr = { 22718c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 22728c2ecf20Sopenharmony_ci .enable_mask = BIT(15), 22738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22748c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s5_clk", 22758c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 22768c2ecf20Sopenharmony_ci &gcc_qupv3_wrap0_s5_clk_src.clkr.hw }, 22778c2ecf20Sopenharmony_ci .num_parents = 1, 22788c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22798c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22808c2ecf20Sopenharmony_ci }, 22818c2ecf20Sopenharmony_ci }, 22828c2ecf20Sopenharmony_ci}; 22838c2ecf20Sopenharmony_ci 22848c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s6_clk = { 22858c2ecf20Sopenharmony_ci .halt_reg = 0x17864, 22868c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 22878c2ecf20Sopenharmony_ci .clkr = { 22888c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 22898c2ecf20Sopenharmony_ci .enable_mask = BIT(16), 22908c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22918c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s6_clk", 22928c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 22938c2ecf20Sopenharmony_ci &gcc_qupv3_wrap0_s6_clk_src.clkr.hw }, 22948c2ecf20Sopenharmony_ci .num_parents = 1, 22958c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22968c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22978c2ecf20Sopenharmony_ci }, 22988c2ecf20Sopenharmony_ci }, 22998c2ecf20Sopenharmony_ci}; 23008c2ecf20Sopenharmony_ci 23018c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap0_s7_clk = { 23028c2ecf20Sopenharmony_ci .halt_reg = 0x17994, 23038c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23048c2ecf20Sopenharmony_ci .clkr = { 23058c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 23068c2ecf20Sopenharmony_ci .enable_mask = BIT(17), 23078c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23088c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap0_s7_clk", 23098c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 23108c2ecf20Sopenharmony_ci &gcc_qupv3_wrap0_s7_clk_src.clkr.hw }, 23118c2ecf20Sopenharmony_ci .num_parents = 1, 23128c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23138c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23148c2ecf20Sopenharmony_ci }, 23158c2ecf20Sopenharmony_ci }, 23168c2ecf20Sopenharmony_ci}; 23178c2ecf20Sopenharmony_ci 23188c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s0_clk = { 23198c2ecf20Sopenharmony_ci .halt_reg = 0x18144, 23208c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23218c2ecf20Sopenharmony_ci .clkr = { 23228c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 23238c2ecf20Sopenharmony_ci .enable_mask = BIT(22), 23248c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23258c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s0_clk", 23268c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 23278c2ecf20Sopenharmony_ci &gcc_qupv3_wrap1_s0_clk_src.clkr.hw }, 23288c2ecf20Sopenharmony_ci .num_parents = 1, 23298c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23308c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23318c2ecf20Sopenharmony_ci }, 23328c2ecf20Sopenharmony_ci }, 23338c2ecf20Sopenharmony_ci}; 23348c2ecf20Sopenharmony_ci 23358c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s1_clk = { 23368c2ecf20Sopenharmony_ci .halt_reg = 0x18274, 23378c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23388c2ecf20Sopenharmony_ci .clkr = { 23398c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 23408c2ecf20Sopenharmony_ci .enable_mask = BIT(23), 23418c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23428c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s1_clk", 23438c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 23448c2ecf20Sopenharmony_ci &gcc_qupv3_wrap1_s1_clk_src.clkr.hw }, 23458c2ecf20Sopenharmony_ci .num_parents = 1, 23468c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23478c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23488c2ecf20Sopenharmony_ci }, 23498c2ecf20Sopenharmony_ci }, 23508c2ecf20Sopenharmony_ci}; 23518c2ecf20Sopenharmony_ci 23528c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s2_clk = { 23538c2ecf20Sopenharmony_ci .halt_reg = 0x183a4, 23548c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23558c2ecf20Sopenharmony_ci .clkr = { 23568c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 23578c2ecf20Sopenharmony_ci .enable_mask = BIT(24), 23588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23598c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s2_clk", 23608c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 23618c2ecf20Sopenharmony_ci &gcc_qupv3_wrap1_s2_clk_src.clkr.hw }, 23628c2ecf20Sopenharmony_ci .num_parents = 1, 23638c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23648c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23658c2ecf20Sopenharmony_ci }, 23668c2ecf20Sopenharmony_ci }, 23678c2ecf20Sopenharmony_ci}; 23688c2ecf20Sopenharmony_ci 23698c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s3_clk = { 23708c2ecf20Sopenharmony_ci .halt_reg = 0x184d4, 23718c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23728c2ecf20Sopenharmony_ci .clkr = { 23738c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 23748c2ecf20Sopenharmony_ci .enable_mask = BIT(25), 23758c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23768c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s3_clk", 23778c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 23788c2ecf20Sopenharmony_ci &gcc_qupv3_wrap1_s3_clk_src.clkr.hw }, 23798c2ecf20Sopenharmony_ci .num_parents = 1, 23808c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23818c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23828c2ecf20Sopenharmony_ci }, 23838c2ecf20Sopenharmony_ci }, 23848c2ecf20Sopenharmony_ci}; 23858c2ecf20Sopenharmony_ci 23868c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s4_clk = { 23878c2ecf20Sopenharmony_ci .halt_reg = 0x18604, 23888c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23898c2ecf20Sopenharmony_ci .clkr = { 23908c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 23918c2ecf20Sopenharmony_ci .enable_mask = BIT(26), 23928c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23938c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s4_clk", 23948c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 23958c2ecf20Sopenharmony_ci &gcc_qupv3_wrap1_s4_clk_src.clkr.hw }, 23968c2ecf20Sopenharmony_ci .num_parents = 1, 23978c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23988c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23998c2ecf20Sopenharmony_ci }, 24008c2ecf20Sopenharmony_ci }, 24018c2ecf20Sopenharmony_ci}; 24028c2ecf20Sopenharmony_ci 24038c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap1_s5_clk = { 24048c2ecf20Sopenharmony_ci .halt_reg = 0x18734, 24058c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 24068c2ecf20Sopenharmony_ci .clkr = { 24078c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 24088c2ecf20Sopenharmony_ci .enable_mask = BIT(27), 24098c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24108c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap1_s5_clk", 24118c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 24128c2ecf20Sopenharmony_ci &gcc_qupv3_wrap1_s5_clk_src.clkr.hw }, 24138c2ecf20Sopenharmony_ci .num_parents = 1, 24148c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24158c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24168c2ecf20Sopenharmony_ci }, 24178c2ecf20Sopenharmony_ci }, 24188c2ecf20Sopenharmony_ci}; 24198c2ecf20Sopenharmony_ci 24208c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap2_s0_clk = { 24218c2ecf20Sopenharmony_ci .halt_reg = 0x1e144, 24228c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 24238c2ecf20Sopenharmony_ci .clkr = { 24248c2ecf20Sopenharmony_ci .enable_reg = 0x52014, 24258c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 24268c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24278c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s0_clk", 24288c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 24298c2ecf20Sopenharmony_ci &gcc_qupv3_wrap2_s0_clk_src.clkr.hw }, 24308c2ecf20Sopenharmony_ci .num_parents = 1, 24318c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24328c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24338c2ecf20Sopenharmony_ci }, 24348c2ecf20Sopenharmony_ci }, 24358c2ecf20Sopenharmony_ci}; 24368c2ecf20Sopenharmony_ci 24378c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap2_s1_clk = { 24388c2ecf20Sopenharmony_ci .halt_reg = 0x1e274, 24398c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 24408c2ecf20Sopenharmony_ci .clkr = { 24418c2ecf20Sopenharmony_ci .enable_reg = 0x52014, 24428c2ecf20Sopenharmony_ci .enable_mask = BIT(5), 24438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24448c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s1_clk", 24458c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 24468c2ecf20Sopenharmony_ci &gcc_qupv3_wrap2_s1_clk_src.clkr.hw }, 24478c2ecf20Sopenharmony_ci .num_parents = 1, 24488c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24498c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24508c2ecf20Sopenharmony_ci }, 24518c2ecf20Sopenharmony_ci }, 24528c2ecf20Sopenharmony_ci}; 24538c2ecf20Sopenharmony_ci 24548c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap2_s2_clk = { 24558c2ecf20Sopenharmony_ci .halt_reg = 0x1e3a4, 24568c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 24578c2ecf20Sopenharmony_ci .clkr = { 24588c2ecf20Sopenharmony_ci .enable_reg = 0x52014, 24598c2ecf20Sopenharmony_ci .enable_mask = BIT(6), 24608c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24618c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s2_clk", 24628c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 24638c2ecf20Sopenharmony_ci &gcc_qupv3_wrap2_s2_clk_src.clkr.hw }, 24648c2ecf20Sopenharmony_ci .num_parents = 1, 24658c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24668c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24678c2ecf20Sopenharmony_ci }, 24688c2ecf20Sopenharmony_ci }, 24698c2ecf20Sopenharmony_ci}; 24708c2ecf20Sopenharmony_ci 24718c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap2_s3_clk = { 24728c2ecf20Sopenharmony_ci .halt_reg = 0x1e4d4, 24738c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 24748c2ecf20Sopenharmony_ci .clkr = { 24758c2ecf20Sopenharmony_ci .enable_reg = 0x52014, 24768c2ecf20Sopenharmony_ci .enable_mask = BIT(7), 24778c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24788c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s3_clk", 24798c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 24808c2ecf20Sopenharmony_ci &gcc_qupv3_wrap2_s3_clk_src.clkr.hw }, 24818c2ecf20Sopenharmony_ci .num_parents = 1, 24828c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24838c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24848c2ecf20Sopenharmony_ci }, 24858c2ecf20Sopenharmony_ci }, 24868c2ecf20Sopenharmony_ci}; 24878c2ecf20Sopenharmony_ci 24888c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap2_s4_clk = { 24898c2ecf20Sopenharmony_ci .halt_reg = 0x1e604, 24908c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 24918c2ecf20Sopenharmony_ci .clkr = { 24928c2ecf20Sopenharmony_ci .enable_reg = 0x52014, 24938c2ecf20Sopenharmony_ci .enable_mask = BIT(8), 24948c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24958c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s4_clk", 24968c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 24978c2ecf20Sopenharmony_ci &gcc_qupv3_wrap2_s4_clk_src.clkr.hw }, 24988c2ecf20Sopenharmony_ci .num_parents = 1, 24998c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25008c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25018c2ecf20Sopenharmony_ci }, 25028c2ecf20Sopenharmony_ci }, 25038c2ecf20Sopenharmony_ci}; 25048c2ecf20Sopenharmony_ci 25058c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap2_s5_clk = { 25068c2ecf20Sopenharmony_ci .halt_reg = 0x1e734, 25078c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 25088c2ecf20Sopenharmony_ci .clkr = { 25098c2ecf20Sopenharmony_ci .enable_reg = 0x52014, 25108c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 25118c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25128c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap2_s5_clk", 25138c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 25148c2ecf20Sopenharmony_ci &gcc_qupv3_wrap2_s5_clk_src.clkr.hw }, 25158c2ecf20Sopenharmony_ci .num_parents = 1, 25168c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25178c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25188c2ecf20Sopenharmony_ci }, 25198c2ecf20Sopenharmony_ci }, 25208c2ecf20Sopenharmony_ci}; 25218c2ecf20Sopenharmony_ci 25228c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_0_m_ahb_clk = { 25238c2ecf20Sopenharmony_ci .halt_reg = 0x17004, 25248c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 25258c2ecf20Sopenharmony_ci .clkr = { 25268c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 25278c2ecf20Sopenharmony_ci .enable_mask = BIT(6), 25288c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25298c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap_0_m_ahb_clk", 25308c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25318c2ecf20Sopenharmony_ci }, 25328c2ecf20Sopenharmony_ci }, 25338c2ecf20Sopenharmony_ci}; 25348c2ecf20Sopenharmony_ci 25358c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_0_s_ahb_clk = { 25368c2ecf20Sopenharmony_ci .halt_reg = 0x17008, 25378c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 25388c2ecf20Sopenharmony_ci .hwcg_reg = 0x17008, 25398c2ecf20Sopenharmony_ci .hwcg_bit = 1, 25408c2ecf20Sopenharmony_ci .clkr = { 25418c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 25428c2ecf20Sopenharmony_ci .enable_mask = BIT(7), 25438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25448c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap_0_s_ahb_clk", 25458c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25468c2ecf20Sopenharmony_ci }, 25478c2ecf20Sopenharmony_ci }, 25488c2ecf20Sopenharmony_ci}; 25498c2ecf20Sopenharmony_ci 25508c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_1_m_ahb_clk = { 25518c2ecf20Sopenharmony_ci .halt_reg = 0x18004, 25528c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 25538c2ecf20Sopenharmony_ci .clkr = { 25548c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 25558c2ecf20Sopenharmony_ci .enable_mask = BIT(20), 25568c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25578c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap_1_m_ahb_clk", 25588c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25598c2ecf20Sopenharmony_ci }, 25608c2ecf20Sopenharmony_ci }, 25618c2ecf20Sopenharmony_ci}; 25628c2ecf20Sopenharmony_ci 25638c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_1_s_ahb_clk = { 25648c2ecf20Sopenharmony_ci .halt_reg = 0x18008, 25658c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 25668c2ecf20Sopenharmony_ci .hwcg_reg = 0x18008, 25678c2ecf20Sopenharmony_ci .hwcg_bit = 1, 25688c2ecf20Sopenharmony_ci .clkr = { 25698c2ecf20Sopenharmony_ci .enable_reg = 0x5200c, 25708c2ecf20Sopenharmony_ci .enable_mask = BIT(21), 25718c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25728c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap_1_s_ahb_clk", 25738c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25748c2ecf20Sopenharmony_ci }, 25758c2ecf20Sopenharmony_ci }, 25768c2ecf20Sopenharmony_ci}; 25778c2ecf20Sopenharmony_ci 25788c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_2_m_ahb_clk = { 25798c2ecf20Sopenharmony_ci .halt_reg = 0x1e004, 25808c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 25818c2ecf20Sopenharmony_ci .clkr = { 25828c2ecf20Sopenharmony_ci .enable_reg = 0x52014, 25838c2ecf20Sopenharmony_ci .enable_mask = BIT(2), 25848c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25858c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap_2_m_ahb_clk", 25868c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25878c2ecf20Sopenharmony_ci }, 25888c2ecf20Sopenharmony_ci }, 25898c2ecf20Sopenharmony_ci}; 25908c2ecf20Sopenharmony_ci 25918c2ecf20Sopenharmony_cistatic struct clk_branch gcc_qupv3_wrap_2_s_ahb_clk = { 25928c2ecf20Sopenharmony_ci .halt_reg = 0x1e008, 25938c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 25948c2ecf20Sopenharmony_ci .hwcg_reg = 0x1e008, 25958c2ecf20Sopenharmony_ci .hwcg_bit = 1, 25968c2ecf20Sopenharmony_ci .clkr = { 25978c2ecf20Sopenharmony_ci .enable_reg = 0x52014, 25988c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 25998c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26008c2ecf20Sopenharmony_ci .name = "gcc_qupv3_wrap_2_s_ahb_clk", 26018c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26028c2ecf20Sopenharmony_ci }, 26038c2ecf20Sopenharmony_ci }, 26048c2ecf20Sopenharmony_ci}; 26058c2ecf20Sopenharmony_ci 26068c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sdcc2_ahb_clk = { 26078c2ecf20Sopenharmony_ci .halt_reg = 0x14008, 26088c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 26098c2ecf20Sopenharmony_ci .clkr = { 26108c2ecf20Sopenharmony_ci .enable_reg = 0x14008, 26118c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26128c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26138c2ecf20Sopenharmony_ci .name = "gcc_sdcc2_ahb_clk", 26148c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26158c2ecf20Sopenharmony_ci }, 26168c2ecf20Sopenharmony_ci }, 26178c2ecf20Sopenharmony_ci}; 26188c2ecf20Sopenharmony_ci 26198c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sdcc2_apps_clk = { 26208c2ecf20Sopenharmony_ci .halt_reg = 0x14004, 26218c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 26228c2ecf20Sopenharmony_ci .clkr = { 26238c2ecf20Sopenharmony_ci .enable_reg = 0x14004, 26248c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26258c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26268c2ecf20Sopenharmony_ci .name = "gcc_sdcc2_apps_clk", 26278c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 26288c2ecf20Sopenharmony_ci &gcc_sdcc2_apps_clk_src.clkr.hw }, 26298c2ecf20Sopenharmony_ci .num_parents = 1, 26308c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26318c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26328c2ecf20Sopenharmony_ci }, 26338c2ecf20Sopenharmony_ci }, 26348c2ecf20Sopenharmony_ci}; 26358c2ecf20Sopenharmony_ci 26368c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sdcc4_ahb_clk = { 26378c2ecf20Sopenharmony_ci .halt_reg = 0x16008, 26388c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 26398c2ecf20Sopenharmony_ci .clkr = { 26408c2ecf20Sopenharmony_ci .enable_reg = 0x16008, 26418c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26428c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26438c2ecf20Sopenharmony_ci .name = "gcc_sdcc4_ahb_clk", 26448c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26458c2ecf20Sopenharmony_ci }, 26468c2ecf20Sopenharmony_ci }, 26478c2ecf20Sopenharmony_ci}; 26488c2ecf20Sopenharmony_ci 26498c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sdcc4_apps_clk = { 26508c2ecf20Sopenharmony_ci .halt_reg = 0x16004, 26518c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 26528c2ecf20Sopenharmony_ci .clkr = { 26538c2ecf20Sopenharmony_ci .enable_reg = 0x16004, 26548c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26558c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26568c2ecf20Sopenharmony_ci .name = "gcc_sdcc4_apps_clk", 26578c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 26588c2ecf20Sopenharmony_ci &gcc_sdcc4_apps_clk_src.clkr.hw }, 26598c2ecf20Sopenharmony_ci .num_parents = 1, 26608c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26618c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26628c2ecf20Sopenharmony_ci }, 26638c2ecf20Sopenharmony_ci }, 26648c2ecf20Sopenharmony_ci}; 26658c2ecf20Sopenharmony_ci 26668c2ecf20Sopenharmony_cistatic struct clk_branch gcc_sys_noc_cpuss_ahb_clk = { 26678c2ecf20Sopenharmony_ci .halt_reg = 0x4819c, 26688c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 26698c2ecf20Sopenharmony_ci .clkr = { 26708c2ecf20Sopenharmony_ci .enable_reg = 0x52004, 26718c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26728c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26738c2ecf20Sopenharmony_ci .name = "gcc_sys_noc_cpuss_ahb_clk", 26748c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 26758c2ecf20Sopenharmony_ci &gcc_cpuss_ahb_clk_src.clkr.hw }, 26768c2ecf20Sopenharmony_ci .num_parents = 1, 26778c2ecf20Sopenharmony_ci /* required for cpuss */ 26788c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT, 26798c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26808c2ecf20Sopenharmony_ci }, 26818c2ecf20Sopenharmony_ci }, 26828c2ecf20Sopenharmony_ci}; 26838c2ecf20Sopenharmony_ci 26848c2ecf20Sopenharmony_cistatic struct clk_branch gcc_tsif_ahb_clk = { 26858c2ecf20Sopenharmony_ci .halt_reg = 0x36004, 26868c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 26878c2ecf20Sopenharmony_ci .clkr = { 26888c2ecf20Sopenharmony_ci .enable_reg = 0x36004, 26898c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26908c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26918c2ecf20Sopenharmony_ci .name = "gcc_tsif_ahb_clk", 26928c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26938c2ecf20Sopenharmony_ci }, 26948c2ecf20Sopenharmony_ci }, 26958c2ecf20Sopenharmony_ci}; 26968c2ecf20Sopenharmony_ci 26978c2ecf20Sopenharmony_cistatic struct clk_branch gcc_tsif_inactivity_timers_clk = { 26988c2ecf20Sopenharmony_ci .halt_reg = 0x3600c, 26998c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 27008c2ecf20Sopenharmony_ci .clkr = { 27018c2ecf20Sopenharmony_ci .enable_reg = 0x3600c, 27028c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27038c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27048c2ecf20Sopenharmony_ci .name = "gcc_tsif_inactivity_timers_clk", 27058c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27068c2ecf20Sopenharmony_ci }, 27078c2ecf20Sopenharmony_ci }, 27088c2ecf20Sopenharmony_ci}; 27098c2ecf20Sopenharmony_ci 27108c2ecf20Sopenharmony_cistatic struct clk_branch gcc_tsif_ref_clk = { 27118c2ecf20Sopenharmony_ci .halt_reg = 0x36008, 27128c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 27138c2ecf20Sopenharmony_ci .clkr = { 27148c2ecf20Sopenharmony_ci .enable_reg = 0x36008, 27158c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27168c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27178c2ecf20Sopenharmony_ci .name = "gcc_tsif_ref_clk", 27188c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 27198c2ecf20Sopenharmony_ci &gcc_tsif_ref_clk_src.clkr.hw }, 27208c2ecf20Sopenharmony_ci .num_parents = 1, 27218c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27228c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27238c2ecf20Sopenharmony_ci }, 27248c2ecf20Sopenharmony_ci }, 27258c2ecf20Sopenharmony_ci}; 27268c2ecf20Sopenharmony_ci 27278c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_ahb_clk = { 27288c2ecf20Sopenharmony_ci .halt_reg = 0x75014, 27298c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 27308c2ecf20Sopenharmony_ci .hwcg_reg = 0x75014, 27318c2ecf20Sopenharmony_ci .hwcg_bit = 1, 27328c2ecf20Sopenharmony_ci .clkr = { 27338c2ecf20Sopenharmony_ci .enable_reg = 0x75014, 27348c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27358c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27368c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_ahb_clk", 27378c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27388c2ecf20Sopenharmony_ci }, 27398c2ecf20Sopenharmony_ci }, 27408c2ecf20Sopenharmony_ci}; 27418c2ecf20Sopenharmony_ci 27428c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_axi_clk = { 27438c2ecf20Sopenharmony_ci .halt_reg = 0x75010, 27448c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 27458c2ecf20Sopenharmony_ci .hwcg_reg = 0x75010, 27468c2ecf20Sopenharmony_ci .hwcg_bit = 1, 27478c2ecf20Sopenharmony_ci .clkr = { 27488c2ecf20Sopenharmony_ci .enable_reg = 0x75010, 27498c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27508c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27518c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_axi_clk", 27528c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 27538c2ecf20Sopenharmony_ci &gcc_ufs_card_axi_clk_src.clkr.hw }, 27548c2ecf20Sopenharmony_ci .num_parents = 1, 27558c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27568c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27578c2ecf20Sopenharmony_ci }, 27588c2ecf20Sopenharmony_ci }, 27598c2ecf20Sopenharmony_ci}; 27608c2ecf20Sopenharmony_ci 27618c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_axi_hw_ctl_clk = { 27628c2ecf20Sopenharmony_ci .halt_reg = 0x75010, 27638c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 27648c2ecf20Sopenharmony_ci .hwcg_reg = 0x75010, 27658c2ecf20Sopenharmony_ci .hwcg_bit = 1, 27668c2ecf20Sopenharmony_ci .clkr = { 27678c2ecf20Sopenharmony_ci .enable_reg = 0x75010, 27688c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 27698c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27708c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_axi_hw_ctl_clk", 27718c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 27728c2ecf20Sopenharmony_ci &gcc_ufs_card_axi_clk.clkr.hw }, 27738c2ecf20Sopenharmony_ci .num_parents = 1, 27748c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27758c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 27768c2ecf20Sopenharmony_ci }, 27778c2ecf20Sopenharmony_ci }, 27788c2ecf20Sopenharmony_ci}; 27798c2ecf20Sopenharmony_ci 27808c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_clkref_clk = { 27818c2ecf20Sopenharmony_ci .halt_reg = 0x8c004, 27828c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 27838c2ecf20Sopenharmony_ci .clkr = { 27848c2ecf20Sopenharmony_ci .enable_reg = 0x8c004, 27858c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27868c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27878c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_clkref_clk", 27888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27898c2ecf20Sopenharmony_ci }, 27908c2ecf20Sopenharmony_ci }, 27918c2ecf20Sopenharmony_ci}; 27928c2ecf20Sopenharmony_ci 27938c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_ice_core_clk = { 27948c2ecf20Sopenharmony_ci .halt_reg = 0x7505c, 27958c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 27968c2ecf20Sopenharmony_ci .hwcg_reg = 0x7505c, 27978c2ecf20Sopenharmony_ci .hwcg_bit = 1, 27988c2ecf20Sopenharmony_ci .clkr = { 27998c2ecf20Sopenharmony_ci .enable_reg = 0x7505c, 28008c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28018c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28028c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_ice_core_clk", 28038c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 28048c2ecf20Sopenharmony_ci &gcc_ufs_card_ice_core_clk_src.clkr.hw }, 28058c2ecf20Sopenharmony_ci .num_parents = 1, 28068c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28078c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28088c2ecf20Sopenharmony_ci }, 28098c2ecf20Sopenharmony_ci }, 28108c2ecf20Sopenharmony_ci}; 28118c2ecf20Sopenharmony_ci 28128c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_ice_core_hw_ctl_clk = { 28138c2ecf20Sopenharmony_ci .halt_reg = 0x7505c, 28148c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 28158c2ecf20Sopenharmony_ci .hwcg_reg = 0x7505c, 28168c2ecf20Sopenharmony_ci .hwcg_bit = 1, 28178c2ecf20Sopenharmony_ci .clkr = { 28188c2ecf20Sopenharmony_ci .enable_reg = 0x7505c, 28198c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 28208c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28218c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_ice_core_hw_ctl_clk", 28228c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 28238c2ecf20Sopenharmony_ci &gcc_ufs_card_ice_core_clk.clkr.hw }, 28248c2ecf20Sopenharmony_ci .num_parents = 1, 28258c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28268c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 28278c2ecf20Sopenharmony_ci }, 28288c2ecf20Sopenharmony_ci }, 28298c2ecf20Sopenharmony_ci}; 28308c2ecf20Sopenharmony_ci 28318c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_phy_aux_clk = { 28328c2ecf20Sopenharmony_ci .halt_reg = 0x75090, 28338c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 28348c2ecf20Sopenharmony_ci .hwcg_reg = 0x75090, 28358c2ecf20Sopenharmony_ci .hwcg_bit = 1, 28368c2ecf20Sopenharmony_ci .clkr = { 28378c2ecf20Sopenharmony_ci .enable_reg = 0x75090, 28388c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28398c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28408c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_phy_aux_clk", 28418c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 28428c2ecf20Sopenharmony_ci &gcc_ufs_card_phy_aux_clk_src.clkr.hw }, 28438c2ecf20Sopenharmony_ci .num_parents = 1, 28448c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28458c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28468c2ecf20Sopenharmony_ci }, 28478c2ecf20Sopenharmony_ci }, 28488c2ecf20Sopenharmony_ci}; 28498c2ecf20Sopenharmony_ci 28508c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_phy_aux_hw_ctl_clk = { 28518c2ecf20Sopenharmony_ci .halt_reg = 0x75090, 28528c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 28538c2ecf20Sopenharmony_ci .hwcg_reg = 0x75090, 28548c2ecf20Sopenharmony_ci .hwcg_bit = 1, 28558c2ecf20Sopenharmony_ci .clkr = { 28568c2ecf20Sopenharmony_ci .enable_reg = 0x75090, 28578c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 28588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28598c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_phy_aux_hw_ctl_clk", 28608c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 28618c2ecf20Sopenharmony_ci &gcc_ufs_card_phy_aux_clk.clkr.hw }, 28628c2ecf20Sopenharmony_ci .num_parents = 1, 28638c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28648c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 28658c2ecf20Sopenharmony_ci }, 28668c2ecf20Sopenharmony_ci }, 28678c2ecf20Sopenharmony_ci}; 28688c2ecf20Sopenharmony_ci 28698c2ecf20Sopenharmony_ci/* external clocks so add BRANCH_HALT_SKIP */ 28708c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_rx_symbol_0_clk = { 28718c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 28728c2ecf20Sopenharmony_ci .clkr = { 28738c2ecf20Sopenharmony_ci .enable_reg = 0x7501c, 28748c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28758c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28768c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_rx_symbol_0_clk", 28778c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28788c2ecf20Sopenharmony_ci }, 28798c2ecf20Sopenharmony_ci }, 28808c2ecf20Sopenharmony_ci}; 28818c2ecf20Sopenharmony_ci 28828c2ecf20Sopenharmony_ci/* external clocks so add BRANCH_HALT_SKIP */ 28838c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_rx_symbol_1_clk = { 28848c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 28858c2ecf20Sopenharmony_ci .clkr = { 28868c2ecf20Sopenharmony_ci .enable_reg = 0x750ac, 28878c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28898c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_rx_symbol_1_clk", 28908c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28918c2ecf20Sopenharmony_ci }, 28928c2ecf20Sopenharmony_ci }, 28938c2ecf20Sopenharmony_ci}; 28948c2ecf20Sopenharmony_ci 28958c2ecf20Sopenharmony_ci/* external clocks so add BRANCH_HALT_SKIP */ 28968c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_tx_symbol_0_clk = { 28978c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 28988c2ecf20Sopenharmony_ci .clkr = { 28998c2ecf20Sopenharmony_ci .enable_reg = 0x75018, 29008c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29018c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29028c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_tx_symbol_0_clk", 29038c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29048c2ecf20Sopenharmony_ci }, 29058c2ecf20Sopenharmony_ci }, 29068c2ecf20Sopenharmony_ci}; 29078c2ecf20Sopenharmony_ci 29088c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_unipro_core_clk = { 29098c2ecf20Sopenharmony_ci .halt_reg = 0x75058, 29108c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 29118c2ecf20Sopenharmony_ci .hwcg_reg = 0x75058, 29128c2ecf20Sopenharmony_ci .hwcg_bit = 1, 29138c2ecf20Sopenharmony_ci .clkr = { 29148c2ecf20Sopenharmony_ci .enable_reg = 0x75058, 29158c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29168c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29178c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_unipro_core_clk", 29188c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 29198c2ecf20Sopenharmony_ci &gcc_ufs_card_unipro_core_clk_src.clkr.hw }, 29208c2ecf20Sopenharmony_ci .num_parents = 1, 29218c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 29228c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29238c2ecf20Sopenharmony_ci }, 29248c2ecf20Sopenharmony_ci }, 29258c2ecf20Sopenharmony_ci}; 29268c2ecf20Sopenharmony_ci 29278c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_card_unipro_core_hw_ctl_clk = { 29288c2ecf20Sopenharmony_ci .halt_reg = 0x75058, 29298c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 29308c2ecf20Sopenharmony_ci .hwcg_reg = 0x75058, 29318c2ecf20Sopenharmony_ci .hwcg_bit = 1, 29328c2ecf20Sopenharmony_ci .clkr = { 29338c2ecf20Sopenharmony_ci .enable_reg = 0x75058, 29348c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 29358c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29368c2ecf20Sopenharmony_ci .name = "gcc_ufs_card_unipro_core_hw_ctl_clk", 29378c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 29388c2ecf20Sopenharmony_ci &gcc_ufs_card_unipro_core_clk.clkr.hw }, 29398c2ecf20Sopenharmony_ci .num_parents = 1, 29408c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 29418c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 29428c2ecf20Sopenharmony_ci }, 29438c2ecf20Sopenharmony_ci }, 29448c2ecf20Sopenharmony_ci}; 29458c2ecf20Sopenharmony_ci 29468c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_mem_clkref_clk = { 29478c2ecf20Sopenharmony_ci .halt_reg = 0x8c000, 29488c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 29498c2ecf20Sopenharmony_ci .clkr = { 29508c2ecf20Sopenharmony_ci .enable_reg = 0x8c000, 29518c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29528c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29538c2ecf20Sopenharmony_ci .name = "gcc_ufs_mem_clkref_clk", 29548c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29558c2ecf20Sopenharmony_ci }, 29568c2ecf20Sopenharmony_ci }, 29578c2ecf20Sopenharmony_ci}; 29588c2ecf20Sopenharmony_ci 29598c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_ahb_clk = { 29608c2ecf20Sopenharmony_ci .halt_reg = 0x77014, 29618c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 29628c2ecf20Sopenharmony_ci .hwcg_reg = 0x77014, 29638c2ecf20Sopenharmony_ci .hwcg_bit = 1, 29648c2ecf20Sopenharmony_ci .clkr = { 29658c2ecf20Sopenharmony_ci .enable_reg = 0x77014, 29668c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29678c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29688c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_ahb_clk", 29698c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29708c2ecf20Sopenharmony_ci }, 29718c2ecf20Sopenharmony_ci }, 29728c2ecf20Sopenharmony_ci}; 29738c2ecf20Sopenharmony_ci 29748c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_axi_clk = { 29758c2ecf20Sopenharmony_ci .halt_reg = 0x77010, 29768c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 29778c2ecf20Sopenharmony_ci .hwcg_reg = 0x77010, 29788c2ecf20Sopenharmony_ci .hwcg_bit = 1, 29798c2ecf20Sopenharmony_ci .clkr = { 29808c2ecf20Sopenharmony_ci .enable_reg = 0x77010, 29818c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29828c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29838c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_axi_clk", 29848c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 29858c2ecf20Sopenharmony_ci &gcc_ufs_phy_axi_clk_src.clkr.hw }, 29868c2ecf20Sopenharmony_ci .num_parents = 1, 29878c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 29888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29898c2ecf20Sopenharmony_ci }, 29908c2ecf20Sopenharmony_ci }, 29918c2ecf20Sopenharmony_ci}; 29928c2ecf20Sopenharmony_ci 29938c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_axi_hw_ctl_clk = { 29948c2ecf20Sopenharmony_ci .halt_reg = 0x77010, 29958c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 29968c2ecf20Sopenharmony_ci .hwcg_reg = 0x77010, 29978c2ecf20Sopenharmony_ci .hwcg_bit = 1, 29988c2ecf20Sopenharmony_ci .clkr = { 29998c2ecf20Sopenharmony_ci .enable_reg = 0x77010, 30008c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 30018c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 30028c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_axi_hw_ctl_clk", 30038c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 30048c2ecf20Sopenharmony_ci &gcc_ufs_phy_axi_clk.clkr.hw }, 30058c2ecf20Sopenharmony_ci .num_parents = 1, 30068c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 30078c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 30088c2ecf20Sopenharmony_ci }, 30098c2ecf20Sopenharmony_ci }, 30108c2ecf20Sopenharmony_ci}; 30118c2ecf20Sopenharmony_ci 30128c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_ice_core_clk = { 30138c2ecf20Sopenharmony_ci .halt_reg = 0x7705c, 30148c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 30158c2ecf20Sopenharmony_ci .hwcg_reg = 0x7705c, 30168c2ecf20Sopenharmony_ci .hwcg_bit = 1, 30178c2ecf20Sopenharmony_ci .clkr = { 30188c2ecf20Sopenharmony_ci .enable_reg = 0x7705c, 30198c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 30208c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 30218c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_ice_core_clk", 30228c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 30238c2ecf20Sopenharmony_ci &gcc_ufs_phy_ice_core_clk_src.clkr.hw }, 30248c2ecf20Sopenharmony_ci .num_parents = 1, 30258c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 30268c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 30278c2ecf20Sopenharmony_ci }, 30288c2ecf20Sopenharmony_ci }, 30298c2ecf20Sopenharmony_ci}; 30308c2ecf20Sopenharmony_ci 30318c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_ice_core_hw_ctl_clk = { 30328c2ecf20Sopenharmony_ci .halt_reg = 0x7705c, 30338c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 30348c2ecf20Sopenharmony_ci .hwcg_reg = 0x7705c, 30358c2ecf20Sopenharmony_ci .hwcg_bit = 1, 30368c2ecf20Sopenharmony_ci .clkr = { 30378c2ecf20Sopenharmony_ci .enable_reg = 0x7705c, 30388c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 30398c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 30408c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_ice_core_hw_ctl_clk", 30418c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 30428c2ecf20Sopenharmony_ci &gcc_ufs_phy_ice_core_clk.clkr.hw }, 30438c2ecf20Sopenharmony_ci .num_parents = 1, 30448c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 30458c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 30468c2ecf20Sopenharmony_ci }, 30478c2ecf20Sopenharmony_ci }, 30488c2ecf20Sopenharmony_ci}; 30498c2ecf20Sopenharmony_ci 30508c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_phy_aux_clk = { 30518c2ecf20Sopenharmony_ci .halt_reg = 0x77090, 30528c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 30538c2ecf20Sopenharmony_ci .hwcg_reg = 0x77090, 30548c2ecf20Sopenharmony_ci .hwcg_bit = 1, 30558c2ecf20Sopenharmony_ci .clkr = { 30568c2ecf20Sopenharmony_ci .enable_reg = 0x77090, 30578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 30588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 30598c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_phy_aux_clk", 30608c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 30618c2ecf20Sopenharmony_ci &gcc_ufs_phy_phy_aux_clk_src.clkr.hw }, 30628c2ecf20Sopenharmony_ci .num_parents = 1, 30638c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 30648c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 30658c2ecf20Sopenharmony_ci }, 30668c2ecf20Sopenharmony_ci }, 30678c2ecf20Sopenharmony_ci}; 30688c2ecf20Sopenharmony_ci 30698c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_phy_aux_hw_ctl_clk = { 30708c2ecf20Sopenharmony_ci .halt_reg = 0x77090, 30718c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 30728c2ecf20Sopenharmony_ci .hwcg_reg = 0x77090, 30738c2ecf20Sopenharmony_ci .hwcg_bit = 1, 30748c2ecf20Sopenharmony_ci .clkr = { 30758c2ecf20Sopenharmony_ci .enable_reg = 0x77090, 30768c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 30778c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 30788c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_phy_aux_hw_ctl_clk", 30798c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 30808c2ecf20Sopenharmony_ci &gcc_ufs_phy_phy_aux_clk.clkr.hw }, 30818c2ecf20Sopenharmony_ci .num_parents = 1, 30828c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 30838c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 30848c2ecf20Sopenharmony_ci }, 30858c2ecf20Sopenharmony_ci }, 30868c2ecf20Sopenharmony_ci}; 30878c2ecf20Sopenharmony_ci 30888c2ecf20Sopenharmony_ci/* external clocks so add BRANCH_HALT_SKIP */ 30898c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = { 30908c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 30918c2ecf20Sopenharmony_ci .clkr = { 30928c2ecf20Sopenharmony_ci .enable_reg = 0x7701c, 30938c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 30948c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 30958c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_rx_symbol_0_clk", 30968c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 30978c2ecf20Sopenharmony_ci }, 30988c2ecf20Sopenharmony_ci }, 30998c2ecf20Sopenharmony_ci}; 31008c2ecf20Sopenharmony_ci 31018c2ecf20Sopenharmony_ci/* external clocks so add BRANCH_HALT_SKIP */ 31028c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = { 31038c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 31048c2ecf20Sopenharmony_ci .clkr = { 31058c2ecf20Sopenharmony_ci .enable_reg = 0x770ac, 31068c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 31078c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 31088c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_rx_symbol_1_clk", 31098c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 31108c2ecf20Sopenharmony_ci }, 31118c2ecf20Sopenharmony_ci }, 31128c2ecf20Sopenharmony_ci}; 31138c2ecf20Sopenharmony_ci 31148c2ecf20Sopenharmony_ci/* external clocks so add BRANCH_HALT_SKIP */ 31158c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = { 31168c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 31178c2ecf20Sopenharmony_ci .clkr = { 31188c2ecf20Sopenharmony_ci .enable_reg = 0x77018, 31198c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 31208c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 31218c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_tx_symbol_0_clk", 31228c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 31238c2ecf20Sopenharmony_ci }, 31248c2ecf20Sopenharmony_ci }, 31258c2ecf20Sopenharmony_ci}; 31268c2ecf20Sopenharmony_ci 31278c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_unipro_core_clk = { 31288c2ecf20Sopenharmony_ci .halt_reg = 0x77058, 31298c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 31308c2ecf20Sopenharmony_ci .hwcg_reg = 0x77058, 31318c2ecf20Sopenharmony_ci .hwcg_bit = 1, 31328c2ecf20Sopenharmony_ci .clkr = { 31338c2ecf20Sopenharmony_ci .enable_reg = 0x77058, 31348c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 31358c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 31368c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_unipro_core_clk", 31378c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 31388c2ecf20Sopenharmony_ci &gcc_ufs_phy_unipro_core_clk_src.clkr.hw }, 31398c2ecf20Sopenharmony_ci .num_parents = 1, 31408c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 31418c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 31428c2ecf20Sopenharmony_ci }, 31438c2ecf20Sopenharmony_ci }, 31448c2ecf20Sopenharmony_ci}; 31458c2ecf20Sopenharmony_ci 31468c2ecf20Sopenharmony_cistatic struct clk_branch gcc_ufs_phy_unipro_core_hw_ctl_clk = { 31478c2ecf20Sopenharmony_ci .halt_reg = 0x77058, 31488c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 31498c2ecf20Sopenharmony_ci .hwcg_reg = 0x77058, 31508c2ecf20Sopenharmony_ci .hwcg_bit = 1, 31518c2ecf20Sopenharmony_ci .clkr = { 31528c2ecf20Sopenharmony_ci .enable_reg = 0x77058, 31538c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 31548c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 31558c2ecf20Sopenharmony_ci .name = "gcc_ufs_phy_unipro_core_hw_ctl_clk", 31568c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 31578c2ecf20Sopenharmony_ci &gcc_ufs_phy_unipro_core_clk.clkr.hw }, 31588c2ecf20Sopenharmony_ci .num_parents = 1, 31598c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 31608c2ecf20Sopenharmony_ci .ops = &clk_branch_simple_ops, 31618c2ecf20Sopenharmony_ci }, 31628c2ecf20Sopenharmony_ci }, 31638c2ecf20Sopenharmony_ci}; 31648c2ecf20Sopenharmony_ci 31658c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_master_clk = { 31668c2ecf20Sopenharmony_ci .halt_reg = 0xf010, 31678c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 31688c2ecf20Sopenharmony_ci .clkr = { 31698c2ecf20Sopenharmony_ci .enable_reg = 0xf010, 31708c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 31718c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 31728c2ecf20Sopenharmony_ci .name = "gcc_usb30_prim_master_clk", 31738c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 31748c2ecf20Sopenharmony_ci &gcc_usb30_prim_master_clk_src.clkr.hw }, 31758c2ecf20Sopenharmony_ci .num_parents = 1, 31768c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 31778c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 31788c2ecf20Sopenharmony_ci }, 31798c2ecf20Sopenharmony_ci }, 31808c2ecf20Sopenharmony_ci}; 31818c2ecf20Sopenharmony_ci 31828c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_mock_utmi_clk = { 31838c2ecf20Sopenharmony_ci .halt_reg = 0xf018, 31848c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 31858c2ecf20Sopenharmony_ci .clkr = { 31868c2ecf20Sopenharmony_ci .enable_reg = 0xf018, 31878c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 31888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 31898c2ecf20Sopenharmony_ci .name = "gcc_usb30_prim_mock_utmi_clk", 31908c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 31918c2ecf20Sopenharmony_ci &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw }, 31928c2ecf20Sopenharmony_ci .num_parents = 1, 31938c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 31948c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 31958c2ecf20Sopenharmony_ci }, 31968c2ecf20Sopenharmony_ci }, 31978c2ecf20Sopenharmony_ci}; 31988c2ecf20Sopenharmony_ci 31998c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb30_prim_sleep_clk = { 32008c2ecf20Sopenharmony_ci .halt_reg = 0xf014, 32018c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 32028c2ecf20Sopenharmony_ci .clkr = { 32038c2ecf20Sopenharmony_ci .enable_reg = 0xf014, 32048c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 32058c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 32068c2ecf20Sopenharmony_ci .name = "gcc_usb30_prim_sleep_clk", 32078c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 32088c2ecf20Sopenharmony_ci }, 32098c2ecf20Sopenharmony_ci }, 32108c2ecf20Sopenharmony_ci}; 32118c2ecf20Sopenharmony_ci 32128c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb30_sec_master_clk = { 32138c2ecf20Sopenharmony_ci .halt_reg = 0x10010, 32148c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 32158c2ecf20Sopenharmony_ci .clkr = { 32168c2ecf20Sopenharmony_ci .enable_reg = 0x10010, 32178c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 32188c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 32198c2ecf20Sopenharmony_ci .name = "gcc_usb30_sec_master_clk", 32208c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 32218c2ecf20Sopenharmony_ci &gcc_usb30_sec_master_clk_src.clkr.hw }, 32228c2ecf20Sopenharmony_ci .num_parents = 1, 32238c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 32248c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 32258c2ecf20Sopenharmony_ci }, 32268c2ecf20Sopenharmony_ci }, 32278c2ecf20Sopenharmony_ci}; 32288c2ecf20Sopenharmony_ci 32298c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb30_sec_mock_utmi_clk = { 32308c2ecf20Sopenharmony_ci .halt_reg = 0x10018, 32318c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 32328c2ecf20Sopenharmony_ci .clkr = { 32338c2ecf20Sopenharmony_ci .enable_reg = 0x10018, 32348c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 32358c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 32368c2ecf20Sopenharmony_ci .name = "gcc_usb30_sec_mock_utmi_clk", 32378c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 32388c2ecf20Sopenharmony_ci &gcc_usb30_sec_mock_utmi_clk_src.clkr.hw }, 32398c2ecf20Sopenharmony_ci .num_parents = 1, 32408c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 32418c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 32428c2ecf20Sopenharmony_ci }, 32438c2ecf20Sopenharmony_ci }, 32448c2ecf20Sopenharmony_ci}; 32458c2ecf20Sopenharmony_ci 32468c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb30_sec_sleep_clk = { 32478c2ecf20Sopenharmony_ci .halt_reg = 0x10014, 32488c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 32498c2ecf20Sopenharmony_ci .clkr = { 32508c2ecf20Sopenharmony_ci .enable_reg = 0x10014, 32518c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 32528c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 32538c2ecf20Sopenharmony_ci .name = "gcc_usb30_sec_sleep_clk", 32548c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 32558c2ecf20Sopenharmony_ci }, 32568c2ecf20Sopenharmony_ci }, 32578c2ecf20Sopenharmony_ci}; 32588c2ecf20Sopenharmony_ci 32598c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_clkref_clk = { 32608c2ecf20Sopenharmony_ci .halt_reg = 0x8c008, 32618c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 32628c2ecf20Sopenharmony_ci .clkr = { 32638c2ecf20Sopenharmony_ci .enable_reg = 0x8c008, 32648c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 32658c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 32668c2ecf20Sopenharmony_ci .name = "gcc_usb3_prim_clkref_clk", 32678c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 32688c2ecf20Sopenharmony_ci }, 32698c2ecf20Sopenharmony_ci }, 32708c2ecf20Sopenharmony_ci}; 32718c2ecf20Sopenharmony_ci 32728c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_aux_clk = { 32738c2ecf20Sopenharmony_ci .halt_reg = 0xf050, 32748c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 32758c2ecf20Sopenharmony_ci .clkr = { 32768c2ecf20Sopenharmony_ci .enable_reg = 0xf050, 32778c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 32788c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 32798c2ecf20Sopenharmony_ci .name = "gcc_usb3_prim_phy_aux_clk", 32808c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 32818c2ecf20Sopenharmony_ci &gcc_usb3_prim_phy_aux_clk_src.clkr.hw }, 32828c2ecf20Sopenharmony_ci .num_parents = 1, 32838c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 32848c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 32858c2ecf20Sopenharmony_ci }, 32868c2ecf20Sopenharmony_ci }, 32878c2ecf20Sopenharmony_ci}; 32888c2ecf20Sopenharmony_ci 32898c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_com_aux_clk = { 32908c2ecf20Sopenharmony_ci .halt_reg = 0xf054, 32918c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 32928c2ecf20Sopenharmony_ci .clkr = { 32938c2ecf20Sopenharmony_ci .enable_reg = 0xf054, 32948c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 32958c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 32968c2ecf20Sopenharmony_ci .name = "gcc_usb3_prim_phy_com_aux_clk", 32978c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 32988c2ecf20Sopenharmony_ci &gcc_usb3_prim_phy_aux_clk_src.clkr.hw }, 32998c2ecf20Sopenharmony_ci .num_parents = 1, 33008c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 33018c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 33028c2ecf20Sopenharmony_ci }, 33038c2ecf20Sopenharmony_ci }, 33048c2ecf20Sopenharmony_ci}; 33058c2ecf20Sopenharmony_ci 33068c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_prim_phy_pipe_clk = { 33078c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 33088c2ecf20Sopenharmony_ci .clkr = { 33098c2ecf20Sopenharmony_ci .enable_reg = 0xf058, 33108c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 33118c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 33128c2ecf20Sopenharmony_ci .name = "gcc_usb3_prim_phy_pipe_clk", 33138c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 33148c2ecf20Sopenharmony_ci }, 33158c2ecf20Sopenharmony_ci }, 33168c2ecf20Sopenharmony_ci}; 33178c2ecf20Sopenharmony_ci 33188c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_sec_clkref_clk = { 33198c2ecf20Sopenharmony_ci .halt_reg = 0x8c028, 33208c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 33218c2ecf20Sopenharmony_ci .clkr = { 33228c2ecf20Sopenharmony_ci .enable_reg = 0x8c028, 33238c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 33248c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 33258c2ecf20Sopenharmony_ci .name = "gcc_usb3_sec_clkref_clk", 33268c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 33278c2ecf20Sopenharmony_ci }, 33288c2ecf20Sopenharmony_ci }, 33298c2ecf20Sopenharmony_ci}; 33308c2ecf20Sopenharmony_ci 33318c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_sec_phy_aux_clk = { 33328c2ecf20Sopenharmony_ci .halt_reg = 0x10050, 33338c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 33348c2ecf20Sopenharmony_ci .clkr = { 33358c2ecf20Sopenharmony_ci .enable_reg = 0x10050, 33368c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 33378c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 33388c2ecf20Sopenharmony_ci .name = "gcc_usb3_sec_phy_aux_clk", 33398c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 33408c2ecf20Sopenharmony_ci &gcc_usb3_sec_phy_aux_clk_src.clkr.hw }, 33418c2ecf20Sopenharmony_ci .num_parents = 1, 33428c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 33438c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 33448c2ecf20Sopenharmony_ci }, 33458c2ecf20Sopenharmony_ci }, 33468c2ecf20Sopenharmony_ci}; 33478c2ecf20Sopenharmony_ci 33488c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_sec_phy_com_aux_clk = { 33498c2ecf20Sopenharmony_ci .halt_reg = 0x10054, 33508c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 33518c2ecf20Sopenharmony_ci .clkr = { 33528c2ecf20Sopenharmony_ci .enable_reg = 0x10054, 33538c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 33548c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 33558c2ecf20Sopenharmony_ci .name = "gcc_usb3_sec_phy_com_aux_clk", 33568c2ecf20Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 33578c2ecf20Sopenharmony_ci &gcc_usb3_sec_phy_aux_clk_src.clkr.hw }, 33588c2ecf20Sopenharmony_ci .num_parents = 1, 33598c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 33608c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 33618c2ecf20Sopenharmony_ci }, 33628c2ecf20Sopenharmony_ci }, 33638c2ecf20Sopenharmony_ci}; 33648c2ecf20Sopenharmony_ci 33658c2ecf20Sopenharmony_cistatic struct clk_branch gcc_usb3_sec_phy_pipe_clk = { 33668c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 33678c2ecf20Sopenharmony_ci .clkr = { 33688c2ecf20Sopenharmony_ci .enable_reg = 0x10058, 33698c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 33708c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 33718c2ecf20Sopenharmony_ci .name = "gcc_usb3_sec_phy_pipe_clk", 33728c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 33738c2ecf20Sopenharmony_ci }, 33748c2ecf20Sopenharmony_ci }, 33758c2ecf20Sopenharmony_ci}; 33768c2ecf20Sopenharmony_ci 33778c2ecf20Sopenharmony_ci/* 33788c2ecf20Sopenharmony_ci * Clock ON depends on external parent 'config noc', so cant poll 33798c2ecf20Sopenharmony_ci * delay and also mark as crtitical for video boot 33808c2ecf20Sopenharmony_ci */ 33818c2ecf20Sopenharmony_cistatic struct clk_branch gcc_video_ahb_clk = { 33828c2ecf20Sopenharmony_ci .halt_reg = 0xb004, 33838c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 33848c2ecf20Sopenharmony_ci .hwcg_reg = 0xb004, 33858c2ecf20Sopenharmony_ci .hwcg_bit = 1, 33868c2ecf20Sopenharmony_ci .clkr = { 33878c2ecf20Sopenharmony_ci .enable_reg = 0xb004, 33888c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 33898c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 33908c2ecf20Sopenharmony_ci .name = "gcc_video_ahb_clk", 33918c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 33928c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 33938c2ecf20Sopenharmony_ci }, 33948c2ecf20Sopenharmony_ci }, 33958c2ecf20Sopenharmony_ci}; 33968c2ecf20Sopenharmony_ci 33978c2ecf20Sopenharmony_cistatic struct clk_branch gcc_video_axi0_clk = { 33988c2ecf20Sopenharmony_ci .halt_reg = 0xb024, 33998c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 34008c2ecf20Sopenharmony_ci .clkr = { 34018c2ecf20Sopenharmony_ci .enable_reg = 0xb024, 34028c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 34038c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 34048c2ecf20Sopenharmony_ci .name = "gcc_video_axi0_clk", 34058c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 34068c2ecf20Sopenharmony_ci }, 34078c2ecf20Sopenharmony_ci }, 34088c2ecf20Sopenharmony_ci}; 34098c2ecf20Sopenharmony_ci 34108c2ecf20Sopenharmony_cistatic struct clk_branch gcc_video_axi1_clk = { 34118c2ecf20Sopenharmony_ci .halt_reg = 0xb028, 34128c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 34138c2ecf20Sopenharmony_ci .clkr = { 34148c2ecf20Sopenharmony_ci .enable_reg = 0xb028, 34158c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 34168c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 34178c2ecf20Sopenharmony_ci .name = "gcc_video_axi1_clk", 34188c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 34198c2ecf20Sopenharmony_ci }, 34208c2ecf20Sopenharmony_ci }, 34218c2ecf20Sopenharmony_ci}; 34228c2ecf20Sopenharmony_ci 34238c2ecf20Sopenharmony_cistatic struct clk_branch gcc_video_axic_clk = { 34248c2ecf20Sopenharmony_ci .halt_reg = 0xb02c, 34258c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT, 34268c2ecf20Sopenharmony_ci .clkr = { 34278c2ecf20Sopenharmony_ci .enable_reg = 0xb02c, 34288c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 34298c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 34308c2ecf20Sopenharmony_ci .name = "gcc_video_axic_clk", 34318c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 34328c2ecf20Sopenharmony_ci }, 34338c2ecf20Sopenharmony_ci }, 34348c2ecf20Sopenharmony_ci}; 34358c2ecf20Sopenharmony_ci 34368c2ecf20Sopenharmony_ci/* XO critical input to video, so no need to poll */ 34378c2ecf20Sopenharmony_cistatic struct clk_branch gcc_video_xo_clk = { 34388c2ecf20Sopenharmony_ci .halt_reg = 0xb040, 34398c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 34408c2ecf20Sopenharmony_ci .clkr = { 34418c2ecf20Sopenharmony_ci .enable_reg = 0xb040, 34428c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 34438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 34448c2ecf20Sopenharmony_ci .name = "gcc_video_xo_clk", 34458c2ecf20Sopenharmony_ci .flags = CLK_IS_CRITICAL, 34468c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 34478c2ecf20Sopenharmony_ci }, 34488c2ecf20Sopenharmony_ci }, 34498c2ecf20Sopenharmony_ci}; 34508c2ecf20Sopenharmony_ci 34518c2ecf20Sopenharmony_cistatic struct gdsc usb30_prim_gdsc = { 34528c2ecf20Sopenharmony_ci .gdscr = 0xf004, 34538c2ecf20Sopenharmony_ci .pd = { 34548c2ecf20Sopenharmony_ci .name = "usb30_prim_gdsc", 34558c2ecf20Sopenharmony_ci }, 34568c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 34578c2ecf20Sopenharmony_ci .flags = POLL_CFG_GDSCR, 34588c2ecf20Sopenharmony_ci}; 34598c2ecf20Sopenharmony_ci 34608c2ecf20Sopenharmony_cistatic struct gdsc usb30_sec_gdsc = { 34618c2ecf20Sopenharmony_ci .gdscr = 0x10004, 34628c2ecf20Sopenharmony_ci .pd = { 34638c2ecf20Sopenharmony_ci .name = "usb30_sec_gdsc", 34648c2ecf20Sopenharmony_ci }, 34658c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 34668c2ecf20Sopenharmony_ci .flags = POLL_CFG_GDSCR, 34678c2ecf20Sopenharmony_ci}; 34688c2ecf20Sopenharmony_ci 34698c2ecf20Sopenharmony_cistatic struct clk_regmap *gcc_sm8150_clocks[] = { 34708c2ecf20Sopenharmony_ci [GCC_AGGRE_NOC_PCIE_TBU_CLK] = &gcc_aggre_noc_pcie_tbu_clk.clkr, 34718c2ecf20Sopenharmony_ci [GCC_AGGRE_UFS_CARD_AXI_CLK] = &gcc_aggre_ufs_card_axi_clk.clkr, 34728c2ecf20Sopenharmony_ci [GCC_AGGRE_UFS_CARD_AXI_HW_CTL_CLK] = 34738c2ecf20Sopenharmony_ci &gcc_aggre_ufs_card_axi_hw_ctl_clk.clkr, 34748c2ecf20Sopenharmony_ci [GCC_AGGRE_UFS_PHY_AXI_CLK] = &gcc_aggre_ufs_phy_axi_clk.clkr, 34758c2ecf20Sopenharmony_ci [GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK] = 34768c2ecf20Sopenharmony_ci &gcc_aggre_ufs_phy_axi_hw_ctl_clk.clkr, 34778c2ecf20Sopenharmony_ci [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr, 34788c2ecf20Sopenharmony_ci [GCC_AGGRE_USB3_SEC_AXI_CLK] = &gcc_aggre_usb3_sec_axi_clk.clkr, 34798c2ecf20Sopenharmony_ci [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr, 34808c2ecf20Sopenharmony_ci [GCC_CAMERA_AHB_CLK] = &gcc_camera_ahb_clk.clkr, 34818c2ecf20Sopenharmony_ci [GCC_CAMERA_HF_AXI_CLK] = &gcc_camera_hf_axi_clk.clkr, 34828c2ecf20Sopenharmony_ci [GCC_CAMERA_SF_AXI_CLK] = &gcc_camera_sf_axi_clk.clkr, 34838c2ecf20Sopenharmony_ci [GCC_CAMERA_XO_CLK] = &gcc_camera_xo_clk.clkr, 34848c2ecf20Sopenharmony_ci [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr, 34858c2ecf20Sopenharmony_ci [GCC_CFG_NOC_USB3_SEC_AXI_CLK] = &gcc_cfg_noc_usb3_sec_axi_clk.clkr, 34868c2ecf20Sopenharmony_ci [GCC_CPUSS_AHB_CLK] = &gcc_cpuss_ahb_clk.clkr, 34878c2ecf20Sopenharmony_ci [GCC_CPUSS_AHB_CLK_SRC] = &gcc_cpuss_ahb_clk_src.clkr, 34888c2ecf20Sopenharmony_ci [GCC_CPUSS_DVM_BUS_CLK] = &gcc_cpuss_dvm_bus_clk.clkr, 34898c2ecf20Sopenharmony_ci [GCC_CPUSS_GNOC_CLK] = &gcc_cpuss_gnoc_clk.clkr, 34908c2ecf20Sopenharmony_ci [GCC_CPUSS_RBCPR_CLK] = &gcc_cpuss_rbcpr_clk.clkr, 34918c2ecf20Sopenharmony_ci [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr, 34928c2ecf20Sopenharmony_ci [GCC_DISP_AHB_CLK] = &gcc_disp_ahb_clk.clkr, 34938c2ecf20Sopenharmony_ci [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr, 34948c2ecf20Sopenharmony_ci [GCC_DISP_SF_AXI_CLK] = &gcc_disp_sf_axi_clk.clkr, 34958c2ecf20Sopenharmony_ci [GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr, 34968c2ecf20Sopenharmony_ci [GCC_EMAC_AXI_CLK] = &gcc_emac_axi_clk.clkr, 34978c2ecf20Sopenharmony_ci [GCC_EMAC_PTP_CLK] = &gcc_emac_ptp_clk.clkr, 34988c2ecf20Sopenharmony_ci [GCC_EMAC_PTP_CLK_SRC] = &gcc_emac_ptp_clk_src.clkr, 34998c2ecf20Sopenharmony_ci [GCC_EMAC_RGMII_CLK] = &gcc_emac_rgmii_clk.clkr, 35008c2ecf20Sopenharmony_ci [GCC_EMAC_RGMII_CLK_SRC] = &gcc_emac_rgmii_clk_src.clkr, 35018c2ecf20Sopenharmony_ci [GCC_EMAC_SLV_AHB_CLK] = &gcc_emac_slv_ahb_clk.clkr, 35028c2ecf20Sopenharmony_ci [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, 35038c2ecf20Sopenharmony_ci [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr, 35048c2ecf20Sopenharmony_ci [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, 35058c2ecf20Sopenharmony_ci [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr, 35068c2ecf20Sopenharmony_ci [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, 35078c2ecf20Sopenharmony_ci [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr, 35088c2ecf20Sopenharmony_ci [GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr, 35098c2ecf20Sopenharmony_ci [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr, 35108c2ecf20Sopenharmony_ci [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr, 35118c2ecf20Sopenharmony_ci [GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr, 35128c2ecf20Sopenharmony_ci [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr, 35138c2ecf20Sopenharmony_ci [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr, 35148c2ecf20Sopenharmony_ci [GCC_NPU_AT_CLK] = &gcc_npu_at_clk.clkr, 35158c2ecf20Sopenharmony_ci [GCC_NPU_AXI_CLK] = &gcc_npu_axi_clk.clkr, 35168c2ecf20Sopenharmony_ci [GCC_NPU_CFG_AHB_CLK] = &gcc_npu_cfg_ahb_clk.clkr, 35178c2ecf20Sopenharmony_ci [GCC_NPU_GPLL0_CLK_SRC] = &gcc_npu_gpll0_clk_src.clkr, 35188c2ecf20Sopenharmony_ci [GCC_NPU_GPLL0_DIV_CLK_SRC] = &gcc_npu_gpll0_div_clk_src.clkr, 35198c2ecf20Sopenharmony_ci [GCC_NPU_TRIG_CLK] = &gcc_npu_trig_clk.clkr, 35208c2ecf20Sopenharmony_ci [GCC_PCIE0_PHY_REFGEN_CLK] = &gcc_pcie0_phy_refgen_clk.clkr, 35218c2ecf20Sopenharmony_ci [GCC_PCIE1_PHY_REFGEN_CLK] = &gcc_pcie1_phy_refgen_clk.clkr, 35228c2ecf20Sopenharmony_ci [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr, 35238c2ecf20Sopenharmony_ci [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr, 35248c2ecf20Sopenharmony_ci [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr, 35258c2ecf20Sopenharmony_ci [GCC_PCIE_0_CLKREF_CLK] = &gcc_pcie_0_clkref_clk.clkr, 35268c2ecf20Sopenharmony_ci [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr, 35278c2ecf20Sopenharmony_ci [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr, 35288c2ecf20Sopenharmony_ci [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr, 35298c2ecf20Sopenharmony_ci [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr, 35308c2ecf20Sopenharmony_ci [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr, 35318c2ecf20Sopenharmony_ci [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr, 35328c2ecf20Sopenharmony_ci [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr, 35338c2ecf20Sopenharmony_ci [GCC_PCIE_1_CLKREF_CLK] = &gcc_pcie_1_clkref_clk.clkr, 35348c2ecf20Sopenharmony_ci [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr, 35358c2ecf20Sopenharmony_ci [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr, 35368c2ecf20Sopenharmony_ci [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr, 35378c2ecf20Sopenharmony_ci [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr, 35388c2ecf20Sopenharmony_ci [GCC_PCIE_PHY_AUX_CLK] = &gcc_pcie_phy_aux_clk.clkr, 35398c2ecf20Sopenharmony_ci [GCC_PCIE_PHY_REFGEN_CLK_SRC] = &gcc_pcie_phy_refgen_clk_src.clkr, 35408c2ecf20Sopenharmony_ci [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr, 35418c2ecf20Sopenharmony_ci [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr, 35428c2ecf20Sopenharmony_ci [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr, 35438c2ecf20Sopenharmony_ci [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr, 35448c2ecf20Sopenharmony_ci [GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr, 35458c2ecf20Sopenharmony_ci [GCC_QMIP_CAMERA_NRT_AHB_CLK] = &gcc_qmip_camera_nrt_ahb_clk.clkr, 35468c2ecf20Sopenharmony_ci [GCC_QMIP_CAMERA_RT_AHB_CLK] = &gcc_qmip_camera_rt_ahb_clk.clkr, 35478c2ecf20Sopenharmony_ci [GCC_QMIP_DISP_AHB_CLK] = &gcc_qmip_disp_ahb_clk.clkr, 35488c2ecf20Sopenharmony_ci [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr, 35498c2ecf20Sopenharmony_ci [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr, 35508c2ecf20Sopenharmony_ci [GCC_QSPI_CNOC_PERIPH_AHB_CLK] = &gcc_qspi_cnoc_periph_ahb_clk.clkr, 35518c2ecf20Sopenharmony_ci [GCC_QSPI_CORE_CLK] = &gcc_qspi_core_clk.clkr, 35528c2ecf20Sopenharmony_ci [GCC_QSPI_CORE_CLK_SRC] = &gcc_qspi_core_clk_src.clkr, 35538c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr, 35548c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr, 35558c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr, 35568c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr, 35578c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr, 35588c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr, 35598c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr, 35608c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr, 35618c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr, 35628c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr, 35638c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr, 35648c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr, 35658c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S6_CLK] = &gcc_qupv3_wrap0_s6_clk.clkr, 35668c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S6_CLK_SRC] = &gcc_qupv3_wrap0_s6_clk_src.clkr, 35678c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S7_CLK] = &gcc_qupv3_wrap0_s7_clk.clkr, 35688c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP0_S7_CLK_SRC] = &gcc_qupv3_wrap0_s7_clk_src.clkr, 35698c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr, 35708c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr, 35718c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr, 35728c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr, 35738c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr, 35748c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr, 35758c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr, 35768c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr, 35778c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr, 35788c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr, 35798c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr, 35808c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr, 35818c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S0_CLK] = &gcc_qupv3_wrap2_s0_clk.clkr, 35828c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S0_CLK_SRC] = &gcc_qupv3_wrap2_s0_clk_src.clkr, 35838c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S1_CLK] = &gcc_qupv3_wrap2_s1_clk.clkr, 35848c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S1_CLK_SRC] = &gcc_qupv3_wrap2_s1_clk_src.clkr, 35858c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S2_CLK] = &gcc_qupv3_wrap2_s2_clk.clkr, 35868c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S2_CLK_SRC] = &gcc_qupv3_wrap2_s2_clk_src.clkr, 35878c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S3_CLK] = &gcc_qupv3_wrap2_s3_clk.clkr, 35888c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S3_CLK_SRC] = &gcc_qupv3_wrap2_s3_clk_src.clkr, 35898c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S4_CLK] = &gcc_qupv3_wrap2_s4_clk.clkr, 35908c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S4_CLK_SRC] = &gcc_qupv3_wrap2_s4_clk_src.clkr, 35918c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S5_CLK] = &gcc_qupv3_wrap2_s5_clk.clkr, 35928c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP2_S5_CLK_SRC] = &gcc_qupv3_wrap2_s5_clk_src.clkr, 35938c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr, 35948c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr, 35958c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr, 35968c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr, 35978c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP_2_M_AHB_CLK] = &gcc_qupv3_wrap_2_m_ahb_clk.clkr, 35988c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAP_2_S_AHB_CLK] = &gcc_qupv3_wrap_2_s_ahb_clk.clkr, 35998c2ecf20Sopenharmony_ci [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr, 36008c2ecf20Sopenharmony_ci [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr, 36018c2ecf20Sopenharmony_ci [GCC_SDCC2_APPS_CLK_SRC] = &gcc_sdcc2_apps_clk_src.clkr, 36028c2ecf20Sopenharmony_ci [GCC_SDCC4_AHB_CLK] = &gcc_sdcc4_ahb_clk.clkr, 36038c2ecf20Sopenharmony_ci [GCC_SDCC4_APPS_CLK] = &gcc_sdcc4_apps_clk.clkr, 36048c2ecf20Sopenharmony_ci [GCC_SDCC4_APPS_CLK_SRC] = &gcc_sdcc4_apps_clk_src.clkr, 36058c2ecf20Sopenharmony_ci [GCC_SYS_NOC_CPUSS_AHB_CLK] = &gcc_sys_noc_cpuss_ahb_clk.clkr, 36068c2ecf20Sopenharmony_ci [GCC_TSIF_AHB_CLK] = &gcc_tsif_ahb_clk.clkr, 36078c2ecf20Sopenharmony_ci [GCC_TSIF_INACTIVITY_TIMERS_CLK] = &gcc_tsif_inactivity_timers_clk.clkr, 36088c2ecf20Sopenharmony_ci [GCC_TSIF_REF_CLK] = &gcc_tsif_ref_clk.clkr, 36098c2ecf20Sopenharmony_ci [GCC_TSIF_REF_CLK_SRC] = &gcc_tsif_ref_clk_src.clkr, 36108c2ecf20Sopenharmony_ci [GCC_UFS_CARD_AHB_CLK] = &gcc_ufs_card_ahb_clk.clkr, 36118c2ecf20Sopenharmony_ci [GCC_UFS_CARD_AXI_CLK] = &gcc_ufs_card_axi_clk.clkr, 36128c2ecf20Sopenharmony_ci [GCC_UFS_CARD_AXI_CLK_SRC] = &gcc_ufs_card_axi_clk_src.clkr, 36138c2ecf20Sopenharmony_ci [GCC_UFS_CARD_AXI_HW_CTL_CLK] = &gcc_ufs_card_axi_hw_ctl_clk.clkr, 36148c2ecf20Sopenharmony_ci [GCC_UFS_CARD_CLKREF_CLK] = &gcc_ufs_card_clkref_clk.clkr, 36158c2ecf20Sopenharmony_ci [GCC_UFS_CARD_ICE_CORE_CLK] = &gcc_ufs_card_ice_core_clk.clkr, 36168c2ecf20Sopenharmony_ci [GCC_UFS_CARD_ICE_CORE_CLK_SRC] = &gcc_ufs_card_ice_core_clk_src.clkr, 36178c2ecf20Sopenharmony_ci [GCC_UFS_CARD_ICE_CORE_HW_CTL_CLK] = 36188c2ecf20Sopenharmony_ci &gcc_ufs_card_ice_core_hw_ctl_clk.clkr, 36198c2ecf20Sopenharmony_ci [GCC_UFS_CARD_PHY_AUX_CLK] = &gcc_ufs_card_phy_aux_clk.clkr, 36208c2ecf20Sopenharmony_ci [GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr, 36218c2ecf20Sopenharmony_ci [GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] = 36228c2ecf20Sopenharmony_ci &gcc_ufs_card_phy_aux_hw_ctl_clk.clkr, 36238c2ecf20Sopenharmony_ci [GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr, 36248c2ecf20Sopenharmony_ci [GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr, 36258c2ecf20Sopenharmony_ci [GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr, 36268c2ecf20Sopenharmony_ci [GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr, 36278c2ecf20Sopenharmony_ci [GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] = 36288c2ecf20Sopenharmony_ci &gcc_ufs_card_unipro_core_clk_src.clkr, 36298c2ecf20Sopenharmony_ci [GCC_UFS_CARD_UNIPRO_CORE_HW_CTL_CLK] = 36308c2ecf20Sopenharmony_ci &gcc_ufs_card_unipro_core_hw_ctl_clk.clkr, 36318c2ecf20Sopenharmony_ci [GCC_UFS_MEM_CLKREF_CLK] = &gcc_ufs_mem_clkref_clk.clkr, 36328c2ecf20Sopenharmony_ci [GCC_UFS_PHY_AHB_CLK] = &gcc_ufs_phy_ahb_clk.clkr, 36338c2ecf20Sopenharmony_ci [GCC_UFS_PHY_AXI_CLK] = &gcc_ufs_phy_axi_clk.clkr, 36348c2ecf20Sopenharmony_ci [GCC_UFS_PHY_AXI_CLK_SRC] = &gcc_ufs_phy_axi_clk_src.clkr, 36358c2ecf20Sopenharmony_ci [GCC_UFS_PHY_AXI_HW_CTL_CLK] = &gcc_ufs_phy_axi_hw_ctl_clk.clkr, 36368c2ecf20Sopenharmony_ci [GCC_UFS_PHY_ICE_CORE_CLK] = &gcc_ufs_phy_ice_core_clk.clkr, 36378c2ecf20Sopenharmony_ci [GCC_UFS_PHY_ICE_CORE_CLK_SRC] = &gcc_ufs_phy_ice_core_clk_src.clkr, 36388c2ecf20Sopenharmony_ci [GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK] = 36398c2ecf20Sopenharmony_ci &gcc_ufs_phy_ice_core_hw_ctl_clk.clkr, 36408c2ecf20Sopenharmony_ci [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr, 36418c2ecf20Sopenharmony_ci [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr, 36428c2ecf20Sopenharmony_ci [GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr, 36438c2ecf20Sopenharmony_ci [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr, 36448c2ecf20Sopenharmony_ci [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr, 36458c2ecf20Sopenharmony_ci [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr, 36468c2ecf20Sopenharmony_ci [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr, 36478c2ecf20Sopenharmony_ci [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = 36488c2ecf20Sopenharmony_ci &gcc_ufs_phy_unipro_core_clk_src.clkr, 36498c2ecf20Sopenharmony_ci [GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK] = 36508c2ecf20Sopenharmony_ci &gcc_ufs_phy_unipro_core_hw_ctl_clk.clkr, 36518c2ecf20Sopenharmony_ci [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr, 36528c2ecf20Sopenharmony_ci [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr, 36538c2ecf20Sopenharmony_ci [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr, 36548c2ecf20Sopenharmony_ci [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = 36558c2ecf20Sopenharmony_ci &gcc_usb30_prim_mock_utmi_clk_src.clkr, 36568c2ecf20Sopenharmony_ci [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr, 36578c2ecf20Sopenharmony_ci [GCC_USB30_SEC_MASTER_CLK] = &gcc_usb30_sec_master_clk.clkr, 36588c2ecf20Sopenharmony_ci [GCC_USB30_SEC_MASTER_CLK_SRC] = &gcc_usb30_sec_master_clk_src.clkr, 36598c2ecf20Sopenharmony_ci [GCC_USB30_SEC_MOCK_UTMI_CLK] = &gcc_usb30_sec_mock_utmi_clk.clkr, 36608c2ecf20Sopenharmony_ci [GCC_USB30_SEC_MOCK_UTMI_CLK_SRC] = 36618c2ecf20Sopenharmony_ci &gcc_usb30_sec_mock_utmi_clk_src.clkr, 36628c2ecf20Sopenharmony_ci [GCC_USB30_SEC_SLEEP_CLK] = &gcc_usb30_sec_sleep_clk.clkr, 36638c2ecf20Sopenharmony_ci [GCC_USB3_PRIM_CLKREF_CLK] = &gcc_usb3_prim_clkref_clk.clkr, 36648c2ecf20Sopenharmony_ci [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr, 36658c2ecf20Sopenharmony_ci [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr, 36668c2ecf20Sopenharmony_ci [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr, 36678c2ecf20Sopenharmony_ci [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr, 36688c2ecf20Sopenharmony_ci [GCC_USB3_SEC_CLKREF_CLK] = &gcc_usb3_sec_clkref_clk.clkr, 36698c2ecf20Sopenharmony_ci [GCC_USB3_SEC_PHY_AUX_CLK] = &gcc_usb3_sec_phy_aux_clk.clkr, 36708c2ecf20Sopenharmony_ci [GCC_USB3_SEC_PHY_AUX_CLK_SRC] = &gcc_usb3_sec_phy_aux_clk_src.clkr, 36718c2ecf20Sopenharmony_ci [GCC_USB3_SEC_PHY_COM_AUX_CLK] = &gcc_usb3_sec_phy_com_aux_clk.clkr, 36728c2ecf20Sopenharmony_ci [GCC_USB3_SEC_PHY_PIPE_CLK] = &gcc_usb3_sec_phy_pipe_clk.clkr, 36738c2ecf20Sopenharmony_ci [GCC_VIDEO_AHB_CLK] = &gcc_video_ahb_clk.clkr, 36748c2ecf20Sopenharmony_ci [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr, 36758c2ecf20Sopenharmony_ci [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr, 36768c2ecf20Sopenharmony_ci [GCC_VIDEO_AXIC_CLK] = &gcc_video_axic_clk.clkr, 36778c2ecf20Sopenharmony_ci [GCC_VIDEO_XO_CLK] = &gcc_video_xo_clk.clkr, 36788c2ecf20Sopenharmony_ci [GPLL0] = &gpll0.clkr, 36798c2ecf20Sopenharmony_ci [GPLL0_OUT_EVEN] = &gpll0_out_even.clkr, 36808c2ecf20Sopenharmony_ci [GPLL7] = &gpll7.clkr, 36818c2ecf20Sopenharmony_ci [GPLL9] = &gpll9.clkr, 36828c2ecf20Sopenharmony_ci}; 36838c2ecf20Sopenharmony_ci 36848c2ecf20Sopenharmony_cistatic const struct qcom_reset_map gcc_sm8150_resets[] = { 36858c2ecf20Sopenharmony_ci [GCC_EMAC_BCR] = { 0x6000 }, 36868c2ecf20Sopenharmony_ci [GCC_GPU_BCR] = { 0x71000 }, 36878c2ecf20Sopenharmony_ci [GCC_MMSS_BCR] = { 0xb000 }, 36888c2ecf20Sopenharmony_ci [GCC_NPU_BCR] = { 0x4d000 }, 36898c2ecf20Sopenharmony_ci [GCC_PCIE_0_BCR] = { 0x6b000 }, 36908c2ecf20Sopenharmony_ci [GCC_PCIE_0_PHY_BCR] = { 0x6c01c }, 36918c2ecf20Sopenharmony_ci [GCC_PCIE_1_BCR] = { 0x8d000 }, 36928c2ecf20Sopenharmony_ci [GCC_PCIE_1_PHY_BCR] = { 0x8e01c }, 36938c2ecf20Sopenharmony_ci [GCC_PCIE_PHY_BCR] = { 0x6f000 }, 36948c2ecf20Sopenharmony_ci [GCC_PDM_BCR] = { 0x33000 }, 36958c2ecf20Sopenharmony_ci [GCC_PRNG_BCR] = { 0x34000 }, 36968c2ecf20Sopenharmony_ci [GCC_QSPI_BCR] = { 0x24008 }, 36978c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAPPER_0_BCR] = { 0x17000 }, 36988c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAPPER_1_BCR] = { 0x18000 }, 36998c2ecf20Sopenharmony_ci [GCC_QUPV3_WRAPPER_2_BCR] = { 0x1e000 }, 37008c2ecf20Sopenharmony_ci [GCC_QUSB2PHY_PRIM_BCR] = { 0x12000 }, 37018c2ecf20Sopenharmony_ci [GCC_QUSB2PHY_SEC_BCR] = { 0x12004 }, 37028c2ecf20Sopenharmony_ci [GCC_USB3_PHY_PRIM_BCR] = { 0x50000 }, 37038c2ecf20Sopenharmony_ci [GCC_USB3_DP_PHY_PRIM_BCR] = { 0x50008 }, 37048c2ecf20Sopenharmony_ci [GCC_USB3_PHY_SEC_BCR] = { 0x5000c }, 37058c2ecf20Sopenharmony_ci [GCC_USB3PHY_PHY_SEC_BCR] = { 0x50010 }, 37068c2ecf20Sopenharmony_ci [GCC_SDCC2_BCR] = { 0x14000 }, 37078c2ecf20Sopenharmony_ci [GCC_SDCC4_BCR] = { 0x16000 }, 37088c2ecf20Sopenharmony_ci [GCC_TSIF_BCR] = { 0x36000 }, 37098c2ecf20Sopenharmony_ci [GCC_UFS_CARD_BCR] = { 0x75000 }, 37108c2ecf20Sopenharmony_ci [GCC_UFS_PHY_BCR] = { 0x77000 }, 37118c2ecf20Sopenharmony_ci [GCC_USB30_PRIM_BCR] = { 0xf000 }, 37128c2ecf20Sopenharmony_ci [GCC_USB30_SEC_BCR] = { 0x10000 }, 37138c2ecf20Sopenharmony_ci [GCC_USB_PHY_CFG_AHB2PHY_BCR] = { 0x6a000 }, 37148c2ecf20Sopenharmony_ci}; 37158c2ecf20Sopenharmony_ci 37168c2ecf20Sopenharmony_cistatic struct gdsc *gcc_sm8150_gdscs[] = { 37178c2ecf20Sopenharmony_ci [USB30_PRIM_GDSC] = &usb30_prim_gdsc, 37188c2ecf20Sopenharmony_ci [USB30_SEC_GDSC] = &usb30_sec_gdsc, 37198c2ecf20Sopenharmony_ci}; 37208c2ecf20Sopenharmony_ci 37218c2ecf20Sopenharmony_cistatic const struct regmap_config gcc_sm8150_regmap_config = { 37228c2ecf20Sopenharmony_ci .reg_bits = 32, 37238c2ecf20Sopenharmony_ci .reg_stride = 4, 37248c2ecf20Sopenharmony_ci .val_bits = 32, 37258c2ecf20Sopenharmony_ci .max_register = 0x9c040, 37268c2ecf20Sopenharmony_ci .fast_io = true, 37278c2ecf20Sopenharmony_ci}; 37288c2ecf20Sopenharmony_ci 37298c2ecf20Sopenharmony_cistatic const struct qcom_cc_desc gcc_sm8150_desc = { 37308c2ecf20Sopenharmony_ci .config = &gcc_sm8150_regmap_config, 37318c2ecf20Sopenharmony_ci .clks = gcc_sm8150_clocks, 37328c2ecf20Sopenharmony_ci .num_clks = ARRAY_SIZE(gcc_sm8150_clocks), 37338c2ecf20Sopenharmony_ci .resets = gcc_sm8150_resets, 37348c2ecf20Sopenharmony_ci .num_resets = ARRAY_SIZE(gcc_sm8150_resets), 37358c2ecf20Sopenharmony_ci .gdscs = gcc_sm8150_gdscs, 37368c2ecf20Sopenharmony_ci .num_gdscs = ARRAY_SIZE(gcc_sm8150_gdscs), 37378c2ecf20Sopenharmony_ci}; 37388c2ecf20Sopenharmony_ci 37398c2ecf20Sopenharmony_cistatic const struct of_device_id gcc_sm8150_match_table[] = { 37408c2ecf20Sopenharmony_ci { .compatible = "qcom,gcc-sm8150" }, 37418c2ecf20Sopenharmony_ci { } 37428c2ecf20Sopenharmony_ci}; 37438c2ecf20Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_sm8150_match_table); 37448c2ecf20Sopenharmony_ci 37458c2ecf20Sopenharmony_cistatic int gcc_sm8150_probe(struct platform_device *pdev) 37468c2ecf20Sopenharmony_ci{ 37478c2ecf20Sopenharmony_ci struct regmap *regmap; 37488c2ecf20Sopenharmony_ci 37498c2ecf20Sopenharmony_ci regmap = qcom_cc_map(pdev, &gcc_sm8150_desc); 37508c2ecf20Sopenharmony_ci if (IS_ERR(regmap)) 37518c2ecf20Sopenharmony_ci return PTR_ERR(regmap); 37528c2ecf20Sopenharmony_ci 37538c2ecf20Sopenharmony_ci /* Disable the GPLL0 active input to NPU and GPU via MISC registers */ 37548c2ecf20Sopenharmony_ci regmap_update_bits(regmap, 0x4d110, 0x3, 0x3); 37558c2ecf20Sopenharmony_ci regmap_update_bits(regmap, 0x71028, 0x3, 0x3); 37568c2ecf20Sopenharmony_ci 37578c2ecf20Sopenharmony_ci return qcom_cc_really_probe(pdev, &gcc_sm8150_desc, regmap); 37588c2ecf20Sopenharmony_ci} 37598c2ecf20Sopenharmony_ci 37608c2ecf20Sopenharmony_cistatic struct platform_driver gcc_sm8150_driver = { 37618c2ecf20Sopenharmony_ci .probe = gcc_sm8150_probe, 37628c2ecf20Sopenharmony_ci .driver = { 37638c2ecf20Sopenharmony_ci .name = "gcc-sm8150", 37648c2ecf20Sopenharmony_ci .of_match_table = gcc_sm8150_match_table, 37658c2ecf20Sopenharmony_ci }, 37668c2ecf20Sopenharmony_ci}; 37678c2ecf20Sopenharmony_ci 37688c2ecf20Sopenharmony_cistatic int __init gcc_sm8150_init(void) 37698c2ecf20Sopenharmony_ci{ 37708c2ecf20Sopenharmony_ci return platform_driver_register(&gcc_sm8150_driver); 37718c2ecf20Sopenharmony_ci} 37728c2ecf20Sopenharmony_cisubsys_initcall(gcc_sm8150_init); 37738c2ecf20Sopenharmony_ci 37748c2ecf20Sopenharmony_cistatic void __exit gcc_sm8150_exit(void) 37758c2ecf20Sopenharmony_ci{ 37768c2ecf20Sopenharmony_ci platform_driver_unregister(&gcc_sm8150_driver); 37778c2ecf20Sopenharmony_ci} 37788c2ecf20Sopenharmony_cimodule_exit(gcc_sm8150_exit); 37798c2ecf20Sopenharmony_ci 37808c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("QTI GCC SM8150 Driver"); 37818c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL v2"); 3782