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