18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/*x 38c2ecf20Sopenharmony_ci * Copyright (c) 2015, 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#include <linux/clk.h> 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci#include <dt-bindings/clock/qcom,mmcc-msm8996.h> 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci#include "common.h" 218c2ecf20Sopenharmony_ci#include "clk-regmap.h" 228c2ecf20Sopenharmony_ci#include "clk-regmap-divider.h" 238c2ecf20Sopenharmony_ci#include "clk-alpha-pll.h" 248c2ecf20Sopenharmony_ci#include "clk-rcg.h" 258c2ecf20Sopenharmony_ci#include "clk-branch.h" 268c2ecf20Sopenharmony_ci#include "reset.h" 278c2ecf20Sopenharmony_ci#include "gdsc.h" 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_cienum { 308c2ecf20Sopenharmony_ci P_XO, 318c2ecf20Sopenharmony_ci P_MMPLL0, 328c2ecf20Sopenharmony_ci P_GPLL0, 338c2ecf20Sopenharmony_ci P_GPLL0_DIV, 348c2ecf20Sopenharmony_ci P_MMPLL1, 358c2ecf20Sopenharmony_ci P_MMPLL9, 368c2ecf20Sopenharmony_ci P_MMPLL2, 378c2ecf20Sopenharmony_ci P_MMPLL8, 388c2ecf20Sopenharmony_ci P_MMPLL3, 398c2ecf20Sopenharmony_ci P_DSI0PLL, 408c2ecf20Sopenharmony_ci P_DSI1PLL, 418c2ecf20Sopenharmony_ci P_MMPLL5, 428c2ecf20Sopenharmony_ci P_HDMIPLL, 438c2ecf20Sopenharmony_ci P_DSI0PLL_BYTE, 448c2ecf20Sopenharmony_ci P_DSI1PLL_BYTE, 458c2ecf20Sopenharmony_ci P_MMPLL4, 468c2ecf20Sopenharmony_ci}; 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_hdmi_map[] = { 498c2ecf20Sopenharmony_ci { P_XO, 0 }, 508c2ecf20Sopenharmony_ci { P_HDMIPLL, 1 } 518c2ecf20Sopenharmony_ci}; 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_cistatic const char * const mmss_xo_hdmi[] = { 548c2ecf20Sopenharmony_ci "xo", 558c2ecf20Sopenharmony_ci "hdmipll" 568c2ecf20Sopenharmony_ci}; 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_dsi0pll_dsi1pll_map[] = { 598c2ecf20Sopenharmony_ci { P_XO, 0 }, 608c2ecf20Sopenharmony_ci { P_DSI0PLL, 1 }, 618c2ecf20Sopenharmony_ci { P_DSI1PLL, 2 } 628c2ecf20Sopenharmony_ci}; 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_cistatic const char * const mmss_xo_dsi0pll_dsi1pll[] = { 658c2ecf20Sopenharmony_ci "xo", 668c2ecf20Sopenharmony_ci "dsi0pll", 678c2ecf20Sopenharmony_ci "dsi1pll" 688c2ecf20Sopenharmony_ci}; 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_gpll0_gpll0_div_map[] = { 718c2ecf20Sopenharmony_ci { P_XO, 0 }, 728c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 738c2ecf20Sopenharmony_ci { P_GPLL0_DIV, 6 } 748c2ecf20Sopenharmony_ci}; 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_cistatic const char * const mmss_xo_gpll0_gpll0_div[] = { 778c2ecf20Sopenharmony_ci "xo", 788c2ecf20Sopenharmony_ci "gpll0", 798c2ecf20Sopenharmony_ci "gpll0_div" 808c2ecf20Sopenharmony_ci}; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_dsibyte_map[] = { 838c2ecf20Sopenharmony_ci { P_XO, 0 }, 848c2ecf20Sopenharmony_ci { P_DSI0PLL_BYTE, 1 }, 858c2ecf20Sopenharmony_ci { P_DSI1PLL_BYTE, 2 } 868c2ecf20Sopenharmony_ci}; 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_cistatic const char * const mmss_xo_dsibyte[] = { 898c2ecf20Sopenharmony_ci "xo", 908c2ecf20Sopenharmony_ci "dsi0pllbyte", 918c2ecf20Sopenharmony_ci "dsi1pllbyte" 928c2ecf20Sopenharmony_ci}; 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_gpll0_gpll0_div_map[] = { 958c2ecf20Sopenharmony_ci { P_XO, 0 }, 968c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 978c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 988c2ecf20Sopenharmony_ci { P_GPLL0_DIV, 6 } 998c2ecf20Sopenharmony_ci}; 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_cistatic const char * const mmss_xo_mmpll0_gpll0_gpll0_div[] = { 1028c2ecf20Sopenharmony_ci "xo", 1038c2ecf20Sopenharmony_ci "mmpll0", 1048c2ecf20Sopenharmony_ci "gpll0", 1058c2ecf20Sopenharmony_ci "gpll0_div" 1068c2ecf20Sopenharmony_ci}; 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map[] = { 1098c2ecf20Sopenharmony_ci { P_XO, 0 }, 1108c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 1118c2ecf20Sopenharmony_ci { P_MMPLL1, 2 }, 1128c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 1138c2ecf20Sopenharmony_ci { P_GPLL0_DIV, 6 } 1148c2ecf20Sopenharmony_ci}; 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_cistatic const char * const mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div[] = { 1178c2ecf20Sopenharmony_ci "xo", 1188c2ecf20Sopenharmony_ci "mmpll0", 1198c2ecf20Sopenharmony_ci "mmpll1", 1208c2ecf20Sopenharmony_ci "gpll0", 1218c2ecf20Sopenharmony_ci "gpll0_div" 1228c2ecf20Sopenharmony_ci}; 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div_map[] = { 1258c2ecf20Sopenharmony_ci { P_XO, 0 }, 1268c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 1278c2ecf20Sopenharmony_ci { P_MMPLL3, 3 }, 1288c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 1298c2ecf20Sopenharmony_ci { P_GPLL0_DIV, 6 } 1308c2ecf20Sopenharmony_ci}; 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_cistatic const char * const mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div[] = { 1338c2ecf20Sopenharmony_ci "xo", 1348c2ecf20Sopenharmony_ci "mmpll0", 1358c2ecf20Sopenharmony_ci "mmpll3", 1368c2ecf20Sopenharmony_ci "gpll0", 1378c2ecf20Sopenharmony_ci "gpll0_div" 1388c2ecf20Sopenharmony_ci}; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div_map[] = { 1418c2ecf20Sopenharmony_ci { P_XO, 0 }, 1428c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 1438c2ecf20Sopenharmony_ci { P_MMPLL5, 2 }, 1448c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 1458c2ecf20Sopenharmony_ci { P_GPLL0_DIV, 6 } 1468c2ecf20Sopenharmony_ci}; 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_cistatic const char * const mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div[] = { 1498c2ecf20Sopenharmony_ci "xo", 1508c2ecf20Sopenharmony_ci "mmpll0", 1518c2ecf20Sopenharmony_ci "mmpll5", 1528c2ecf20Sopenharmony_ci "gpll0", 1538c2ecf20Sopenharmony_ci "gpll0_div" 1548c2ecf20Sopenharmony_ci}; 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map[] = { 1578c2ecf20Sopenharmony_ci { P_XO, 0 }, 1588c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 1598c2ecf20Sopenharmony_ci { P_MMPLL4, 3 }, 1608c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 1618c2ecf20Sopenharmony_ci { P_GPLL0_DIV, 6 } 1628c2ecf20Sopenharmony_ci}; 1638c2ecf20Sopenharmony_ci 1648c2ecf20Sopenharmony_cistatic const char * const mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div[] = { 1658c2ecf20Sopenharmony_ci "xo", 1668c2ecf20Sopenharmony_ci "mmpll0", 1678c2ecf20Sopenharmony_ci "mmpll4", 1688c2ecf20Sopenharmony_ci "gpll0", 1698c2ecf20Sopenharmony_ci "gpll0_div" 1708c2ecf20Sopenharmony_ci}; 1718c2ecf20Sopenharmony_ci 1728c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_map[] = { 1738c2ecf20Sopenharmony_ci { P_XO, 0 }, 1748c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 1758c2ecf20Sopenharmony_ci { P_MMPLL9, 2 }, 1768c2ecf20Sopenharmony_ci { P_MMPLL2, 3 }, 1778c2ecf20Sopenharmony_ci { P_MMPLL8, 4 }, 1788c2ecf20Sopenharmony_ci { P_GPLL0, 5 } 1798c2ecf20Sopenharmony_ci}; 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_cistatic const char * const mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0[] = { 1828c2ecf20Sopenharmony_ci "xo", 1838c2ecf20Sopenharmony_ci "mmpll0", 1848c2ecf20Sopenharmony_ci "mmpll9", 1858c2ecf20Sopenharmony_ci "mmpll2", 1868c2ecf20Sopenharmony_ci "mmpll8", 1878c2ecf20Sopenharmony_ci "gpll0" 1888c2ecf20Sopenharmony_ci}; 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_gpll0_div_map[] = { 1918c2ecf20Sopenharmony_ci { P_XO, 0 }, 1928c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 1938c2ecf20Sopenharmony_ci { P_MMPLL9, 2 }, 1948c2ecf20Sopenharmony_ci { P_MMPLL2, 3 }, 1958c2ecf20Sopenharmony_ci { P_MMPLL8, 4 }, 1968c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 1978c2ecf20Sopenharmony_ci { P_GPLL0_DIV, 6 } 1988c2ecf20Sopenharmony_ci}; 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_cistatic const char * const mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_gpll0_div[] = { 2018c2ecf20Sopenharmony_ci "xo", 2028c2ecf20Sopenharmony_ci "mmpll0", 2038c2ecf20Sopenharmony_ci "mmpll9", 2048c2ecf20Sopenharmony_ci "mmpll2", 2058c2ecf20Sopenharmony_ci "mmpll8", 2068c2ecf20Sopenharmony_ci "gpll0", 2078c2ecf20Sopenharmony_ci "gpll0_div" 2088c2ecf20Sopenharmony_ci}; 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_cistatic const struct parent_map mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map[] = { 2118c2ecf20Sopenharmony_ci { P_XO, 0 }, 2128c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 2138c2ecf20Sopenharmony_ci { P_MMPLL1, 2 }, 2148c2ecf20Sopenharmony_ci { P_MMPLL4, 3 }, 2158c2ecf20Sopenharmony_ci { P_MMPLL3, 4 }, 2168c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 2178c2ecf20Sopenharmony_ci { P_GPLL0_DIV, 6 } 2188c2ecf20Sopenharmony_ci}; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_cistatic const char * const mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div[] = { 2218c2ecf20Sopenharmony_ci "xo", 2228c2ecf20Sopenharmony_ci "mmpll0", 2238c2ecf20Sopenharmony_ci "mmpll1", 2248c2ecf20Sopenharmony_ci "mmpll4", 2258c2ecf20Sopenharmony_ci "mmpll3", 2268c2ecf20Sopenharmony_ci "gpll0", 2278c2ecf20Sopenharmony_ci "gpll0_div" 2288c2ecf20Sopenharmony_ci}; 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_cistatic struct clk_fixed_factor gpll0_div = { 2318c2ecf20Sopenharmony_ci .mult = 1, 2328c2ecf20Sopenharmony_ci .div = 2, 2338c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 2348c2ecf20Sopenharmony_ci .name = "gpll0_div", 2358c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gpll0" }, 2368c2ecf20Sopenharmony_ci .num_parents = 1, 2378c2ecf20Sopenharmony_ci .ops = &clk_fixed_factor_ops, 2388c2ecf20Sopenharmony_ci }, 2398c2ecf20Sopenharmony_ci}; 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_cistatic struct pll_vco mmpll_p_vco[] = { 2428c2ecf20Sopenharmony_ci { 250000000, 500000000, 3 }, 2438c2ecf20Sopenharmony_ci { 500000000, 1000000000, 2 }, 2448c2ecf20Sopenharmony_ci { 1000000000, 1500000000, 1 }, 2458c2ecf20Sopenharmony_ci { 1500000000, 2000000000, 0 }, 2468c2ecf20Sopenharmony_ci}; 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_cistatic struct pll_vco mmpll_gfx_vco[] = { 2498c2ecf20Sopenharmony_ci { 400000000, 1000000000, 2 }, 2508c2ecf20Sopenharmony_ci { 1000000000, 1500000000, 1 }, 2518c2ecf20Sopenharmony_ci { 1500000000, 2000000000, 0 }, 2528c2ecf20Sopenharmony_ci}; 2538c2ecf20Sopenharmony_ci 2548c2ecf20Sopenharmony_cistatic struct pll_vco mmpll_t_vco[] = { 2558c2ecf20Sopenharmony_ci { 500000000, 1500000000, 0 }, 2568c2ecf20Sopenharmony_ci}; 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_cistatic struct clk_alpha_pll mmpll0_early = { 2598c2ecf20Sopenharmony_ci .offset = 0x0, 2608c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 2618c2ecf20Sopenharmony_ci .vco_table = mmpll_p_vco, 2628c2ecf20Sopenharmony_ci .num_vco = ARRAY_SIZE(mmpll_p_vco), 2638c2ecf20Sopenharmony_ci .clkr = { 2648c2ecf20Sopenharmony_ci .enable_reg = 0x100, 2658c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 2668c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 2678c2ecf20Sopenharmony_ci .name = "mmpll0_early", 2688c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 2698c2ecf20Sopenharmony_ci .num_parents = 1, 2708c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_ops, 2718c2ecf20Sopenharmony_ci }, 2728c2ecf20Sopenharmony_ci }, 2738c2ecf20Sopenharmony_ci}; 2748c2ecf20Sopenharmony_ci 2758c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll0 = { 2768c2ecf20Sopenharmony_ci .offset = 0x0, 2778c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 2788c2ecf20Sopenharmony_ci .width = 4, 2798c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 2808c2ecf20Sopenharmony_ci .name = "mmpll0", 2818c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll0_early" }, 2828c2ecf20Sopenharmony_ci .num_parents = 1, 2838c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ops, 2848c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 2858c2ecf20Sopenharmony_ci }, 2868c2ecf20Sopenharmony_ci}; 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_cistatic struct clk_alpha_pll mmpll1_early = { 2898c2ecf20Sopenharmony_ci .offset = 0x30, 2908c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 2918c2ecf20Sopenharmony_ci .vco_table = mmpll_p_vco, 2928c2ecf20Sopenharmony_ci .num_vco = ARRAY_SIZE(mmpll_p_vco), 2938c2ecf20Sopenharmony_ci .clkr = { 2948c2ecf20Sopenharmony_ci .enable_reg = 0x100, 2958c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 2968c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 2978c2ecf20Sopenharmony_ci .name = "mmpll1_early", 2988c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 2998c2ecf20Sopenharmony_ci .num_parents = 1, 3008c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_ops, 3018c2ecf20Sopenharmony_ci } 3028c2ecf20Sopenharmony_ci }, 3038c2ecf20Sopenharmony_ci}; 3048c2ecf20Sopenharmony_ci 3058c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll1 = { 3068c2ecf20Sopenharmony_ci .offset = 0x30, 3078c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 3088c2ecf20Sopenharmony_ci .width = 4, 3098c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3108c2ecf20Sopenharmony_ci .name = "mmpll1", 3118c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll1_early" }, 3128c2ecf20Sopenharmony_ci .num_parents = 1, 3138c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ops, 3148c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3158c2ecf20Sopenharmony_ci }, 3168c2ecf20Sopenharmony_ci}; 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_cistatic struct clk_alpha_pll mmpll2_early = { 3198c2ecf20Sopenharmony_ci .offset = 0x4100, 3208c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 3218c2ecf20Sopenharmony_ci .vco_table = mmpll_gfx_vco, 3228c2ecf20Sopenharmony_ci .num_vco = ARRAY_SIZE(mmpll_gfx_vco), 3238c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3248c2ecf20Sopenharmony_ci .name = "mmpll2_early", 3258c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 3268c2ecf20Sopenharmony_ci .num_parents = 1, 3278c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_ops, 3288c2ecf20Sopenharmony_ci }, 3298c2ecf20Sopenharmony_ci}; 3308c2ecf20Sopenharmony_ci 3318c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll2 = { 3328c2ecf20Sopenharmony_ci .offset = 0x4100, 3338c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 3348c2ecf20Sopenharmony_ci .width = 4, 3358c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3368c2ecf20Sopenharmony_ci .name = "mmpll2", 3378c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll2_early" }, 3388c2ecf20Sopenharmony_ci .num_parents = 1, 3398c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ops, 3408c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3418c2ecf20Sopenharmony_ci }, 3428c2ecf20Sopenharmony_ci}; 3438c2ecf20Sopenharmony_ci 3448c2ecf20Sopenharmony_cistatic struct clk_alpha_pll mmpll3_early = { 3458c2ecf20Sopenharmony_ci .offset = 0x60, 3468c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 3478c2ecf20Sopenharmony_ci .vco_table = mmpll_p_vco, 3488c2ecf20Sopenharmony_ci .num_vco = ARRAY_SIZE(mmpll_p_vco), 3498c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3508c2ecf20Sopenharmony_ci .name = "mmpll3_early", 3518c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 3528c2ecf20Sopenharmony_ci .num_parents = 1, 3538c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_ops, 3548c2ecf20Sopenharmony_ci }, 3558c2ecf20Sopenharmony_ci}; 3568c2ecf20Sopenharmony_ci 3578c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll3 = { 3588c2ecf20Sopenharmony_ci .offset = 0x60, 3598c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 3608c2ecf20Sopenharmony_ci .width = 4, 3618c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3628c2ecf20Sopenharmony_ci .name = "mmpll3", 3638c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll3_early" }, 3648c2ecf20Sopenharmony_ci .num_parents = 1, 3658c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ops, 3668c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3678c2ecf20Sopenharmony_ci }, 3688c2ecf20Sopenharmony_ci}; 3698c2ecf20Sopenharmony_ci 3708c2ecf20Sopenharmony_cistatic struct clk_alpha_pll mmpll4_early = { 3718c2ecf20Sopenharmony_ci .offset = 0x90, 3728c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 3738c2ecf20Sopenharmony_ci .vco_table = mmpll_t_vco, 3748c2ecf20Sopenharmony_ci .num_vco = ARRAY_SIZE(mmpll_t_vco), 3758c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3768c2ecf20Sopenharmony_ci .name = "mmpll4_early", 3778c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 3788c2ecf20Sopenharmony_ci .num_parents = 1, 3798c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_ops, 3808c2ecf20Sopenharmony_ci }, 3818c2ecf20Sopenharmony_ci}; 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll4 = { 3848c2ecf20Sopenharmony_ci .offset = 0x90, 3858c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 3868c2ecf20Sopenharmony_ci .width = 2, 3878c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3888c2ecf20Sopenharmony_ci .name = "mmpll4", 3898c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll4_early" }, 3908c2ecf20Sopenharmony_ci .num_parents = 1, 3918c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ops, 3928c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3938c2ecf20Sopenharmony_ci }, 3948c2ecf20Sopenharmony_ci}; 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_cistatic struct clk_alpha_pll mmpll5_early = { 3978c2ecf20Sopenharmony_ci .offset = 0xc0, 3988c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 3998c2ecf20Sopenharmony_ci .vco_table = mmpll_p_vco, 4008c2ecf20Sopenharmony_ci .num_vco = ARRAY_SIZE(mmpll_p_vco), 4018c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4028c2ecf20Sopenharmony_ci .name = "mmpll5_early", 4038c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 4048c2ecf20Sopenharmony_ci .num_parents = 1, 4058c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_ops, 4068c2ecf20Sopenharmony_ci }, 4078c2ecf20Sopenharmony_ci}; 4088c2ecf20Sopenharmony_ci 4098c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll5 = { 4108c2ecf20Sopenharmony_ci .offset = 0xc0, 4118c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 4128c2ecf20Sopenharmony_ci .width = 4, 4138c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4148c2ecf20Sopenharmony_ci .name = "mmpll5", 4158c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll5_early" }, 4168c2ecf20Sopenharmony_ci .num_parents = 1, 4178c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ops, 4188c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 4198c2ecf20Sopenharmony_ci }, 4208c2ecf20Sopenharmony_ci}; 4218c2ecf20Sopenharmony_ci 4228c2ecf20Sopenharmony_cistatic struct clk_alpha_pll mmpll8_early = { 4238c2ecf20Sopenharmony_ci .offset = 0x4130, 4248c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 4258c2ecf20Sopenharmony_ci .vco_table = mmpll_gfx_vco, 4268c2ecf20Sopenharmony_ci .num_vco = ARRAY_SIZE(mmpll_gfx_vco), 4278c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4288c2ecf20Sopenharmony_ci .name = "mmpll8_early", 4298c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 4308c2ecf20Sopenharmony_ci .num_parents = 1, 4318c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_ops, 4328c2ecf20Sopenharmony_ci }, 4338c2ecf20Sopenharmony_ci}; 4348c2ecf20Sopenharmony_ci 4358c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll8 = { 4368c2ecf20Sopenharmony_ci .offset = 0x4130, 4378c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 4388c2ecf20Sopenharmony_ci .width = 4, 4398c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4408c2ecf20Sopenharmony_ci .name = "mmpll8", 4418c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll8_early" }, 4428c2ecf20Sopenharmony_ci .num_parents = 1, 4438c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ops, 4448c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 4458c2ecf20Sopenharmony_ci }, 4468c2ecf20Sopenharmony_ci}; 4478c2ecf20Sopenharmony_ci 4488c2ecf20Sopenharmony_cistatic struct clk_alpha_pll mmpll9_early = { 4498c2ecf20Sopenharmony_ci .offset = 0x4200, 4508c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 4518c2ecf20Sopenharmony_ci .vco_table = mmpll_t_vco, 4528c2ecf20Sopenharmony_ci .num_vco = ARRAY_SIZE(mmpll_t_vco), 4538c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4548c2ecf20Sopenharmony_ci .name = "mmpll9_early", 4558c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 4568c2ecf20Sopenharmony_ci .num_parents = 1, 4578c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_ops, 4588c2ecf20Sopenharmony_ci }, 4598c2ecf20Sopenharmony_ci}; 4608c2ecf20Sopenharmony_ci 4618c2ecf20Sopenharmony_cistatic struct clk_alpha_pll_postdiv mmpll9 = { 4628c2ecf20Sopenharmony_ci .offset = 0x4200, 4638c2ecf20Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 4648c2ecf20Sopenharmony_ci .width = 2, 4658c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4668c2ecf20Sopenharmony_ci .name = "mmpll9", 4678c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll9_early" }, 4688c2ecf20Sopenharmony_ci .num_parents = 1, 4698c2ecf20Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ops, 4708c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 4718c2ecf20Sopenharmony_ci }, 4728c2ecf20Sopenharmony_ci}; 4738c2ecf20Sopenharmony_ci 4748c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_ahb_clk_src[] = { 4758c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 4768c2ecf20Sopenharmony_ci F(40000000, P_GPLL0_DIV, 7.5, 0, 0), 4778c2ecf20Sopenharmony_ci F(80000000, P_MMPLL0, 10, 0, 0), 4788c2ecf20Sopenharmony_ci { } 4798c2ecf20Sopenharmony_ci}; 4808c2ecf20Sopenharmony_ci 4818c2ecf20Sopenharmony_cistatic struct clk_rcg2 ahb_clk_src = { 4828c2ecf20Sopenharmony_ci .cmd_rcgr = 0x5000, 4838c2ecf20Sopenharmony_ci .hid_width = 5, 4848c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_gpll0_gpll0_div_map, 4858c2ecf20Sopenharmony_ci .freq_tbl = ftbl_ahb_clk_src, 4868c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4878c2ecf20Sopenharmony_ci .name = "ahb_clk_src", 4888c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_gpll0_gpll0_div, 4898c2ecf20Sopenharmony_ci .num_parents = 4, 4908c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4918c2ecf20Sopenharmony_ci }, 4928c2ecf20Sopenharmony_ci}; 4938c2ecf20Sopenharmony_ci 4948c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_axi_clk_src[] = { 4958c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 4968c2ecf20Sopenharmony_ci F(75000000, P_GPLL0_DIV, 4, 0, 0), 4978c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 4988c2ecf20Sopenharmony_ci F(171430000, P_GPLL0, 3.5, 0, 0), 4998c2ecf20Sopenharmony_ci F(200000000, P_GPLL0, 3, 0, 0), 5008c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 5018c2ecf20Sopenharmony_ci F(400000000, P_MMPLL0, 2, 0, 0), 5028c2ecf20Sopenharmony_ci { } 5038c2ecf20Sopenharmony_ci}; 5048c2ecf20Sopenharmony_ci 5058c2ecf20Sopenharmony_cistatic struct clk_rcg2 axi_clk_src = { 5068c2ecf20Sopenharmony_ci .cmd_rcgr = 0x5040, 5078c2ecf20Sopenharmony_ci .hid_width = 5, 5088c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map, 5098c2ecf20Sopenharmony_ci .freq_tbl = ftbl_axi_clk_src, 5108c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5118c2ecf20Sopenharmony_ci .name = "axi_clk_src", 5128c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div, 5138c2ecf20Sopenharmony_ci .num_parents = 5, 5148c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5158c2ecf20Sopenharmony_ci }, 5168c2ecf20Sopenharmony_ci}; 5178c2ecf20Sopenharmony_ci 5188c2ecf20Sopenharmony_cistatic struct clk_rcg2 maxi_clk_src = { 5198c2ecf20Sopenharmony_ci .cmd_rcgr = 0x5090, 5208c2ecf20Sopenharmony_ci .hid_width = 5, 5218c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div_map, 5228c2ecf20Sopenharmony_ci .freq_tbl = ftbl_axi_clk_src, 5238c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5248c2ecf20Sopenharmony_ci .name = "maxi_clk_src", 5258c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_gpll0_gpll0_div, 5268c2ecf20Sopenharmony_ci .num_parents = 5, 5278c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5288c2ecf20Sopenharmony_ci }, 5298c2ecf20Sopenharmony_ci}; 5308c2ecf20Sopenharmony_ci 5318c2ecf20Sopenharmony_cistatic struct clk_rcg2 gfx3d_clk_src = { 5328c2ecf20Sopenharmony_ci .cmd_rcgr = 0x4000, 5338c2ecf20Sopenharmony_ci .hid_width = 5, 5348c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_map, 5358c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5368c2ecf20Sopenharmony_ci .name = "gfx3d_clk_src", 5378c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0, 5388c2ecf20Sopenharmony_ci .num_parents = 6, 5398c2ecf20Sopenharmony_ci .ops = &clk_gfx3d_ops, 5408c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5418c2ecf20Sopenharmony_ci }, 5428c2ecf20Sopenharmony_ci}; 5438c2ecf20Sopenharmony_ci 5448c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_rbbmtimer_clk_src[] = { 5458c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 5468c2ecf20Sopenharmony_ci { } 5478c2ecf20Sopenharmony_ci}; 5488c2ecf20Sopenharmony_ci 5498c2ecf20Sopenharmony_cistatic struct clk_rcg2 rbbmtimer_clk_src = { 5508c2ecf20Sopenharmony_ci .cmd_rcgr = 0x4090, 5518c2ecf20Sopenharmony_ci .hid_width = 5, 5528c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_gpll0_gpll0_div_map, 5538c2ecf20Sopenharmony_ci .freq_tbl = ftbl_rbbmtimer_clk_src, 5548c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5558c2ecf20Sopenharmony_ci .name = "rbbmtimer_clk_src", 5568c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_gpll0_gpll0_div, 5578c2ecf20Sopenharmony_ci .num_parents = 4, 5588c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5598c2ecf20Sopenharmony_ci }, 5608c2ecf20Sopenharmony_ci}; 5618c2ecf20Sopenharmony_ci 5628c2ecf20Sopenharmony_cistatic struct clk_rcg2 isense_clk_src = { 5638c2ecf20Sopenharmony_ci .cmd_rcgr = 0x4010, 5648c2ecf20Sopenharmony_ci .hid_width = 5, 5658c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_gpll0_div_map, 5668c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5678c2ecf20Sopenharmony_ci .name = "isense_clk_src", 5688c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll9_mmpll2_mmpll8_gpll0_gpll0_div, 5698c2ecf20Sopenharmony_ci .num_parents = 7, 5708c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5718c2ecf20Sopenharmony_ci }, 5728c2ecf20Sopenharmony_ci}; 5738c2ecf20Sopenharmony_ci 5748c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_rbcpr_clk_src[] = { 5758c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 5768c2ecf20Sopenharmony_ci F(50000000, P_GPLL0, 12, 0, 0), 5778c2ecf20Sopenharmony_ci { } 5788c2ecf20Sopenharmony_ci}; 5798c2ecf20Sopenharmony_ci 5808c2ecf20Sopenharmony_cistatic struct clk_rcg2 rbcpr_clk_src = { 5818c2ecf20Sopenharmony_ci .cmd_rcgr = 0x4060, 5828c2ecf20Sopenharmony_ci .hid_width = 5, 5838c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_gpll0_gpll0_div_map, 5848c2ecf20Sopenharmony_ci .freq_tbl = ftbl_rbcpr_clk_src, 5858c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5868c2ecf20Sopenharmony_ci .name = "rbcpr_clk_src", 5878c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_gpll0_gpll0_div, 5888c2ecf20Sopenharmony_ci .num_parents = 4, 5898c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5908c2ecf20Sopenharmony_ci }, 5918c2ecf20Sopenharmony_ci}; 5928c2ecf20Sopenharmony_ci 5938c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_video_core_clk_src[] = { 5948c2ecf20Sopenharmony_ci F(75000000, P_GPLL0_DIV, 4, 0, 0), 5958c2ecf20Sopenharmony_ci F(150000000, P_GPLL0, 4, 0, 0), 5968c2ecf20Sopenharmony_ci F(346666667, P_MMPLL3, 3, 0, 0), 5978c2ecf20Sopenharmony_ci F(520000000, P_MMPLL3, 2, 0, 0), 5988c2ecf20Sopenharmony_ci { } 5998c2ecf20Sopenharmony_ci}; 6008c2ecf20Sopenharmony_ci 6018c2ecf20Sopenharmony_cistatic struct clk_rcg2 video_core_clk_src = { 6028c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1000, 6038c2ecf20Sopenharmony_ci .mnd_width = 8, 6048c2ecf20Sopenharmony_ci .hid_width = 5, 6058c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div_map, 6068c2ecf20Sopenharmony_ci .freq_tbl = ftbl_video_core_clk_src, 6078c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6088c2ecf20Sopenharmony_ci .name = "video_core_clk_src", 6098c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div, 6108c2ecf20Sopenharmony_ci .num_parents = 5, 6118c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6128c2ecf20Sopenharmony_ci }, 6138c2ecf20Sopenharmony_ci}; 6148c2ecf20Sopenharmony_ci 6158c2ecf20Sopenharmony_cistatic struct clk_rcg2 video_subcore0_clk_src = { 6168c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1060, 6178c2ecf20Sopenharmony_ci .mnd_width = 8, 6188c2ecf20Sopenharmony_ci .hid_width = 5, 6198c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div_map, 6208c2ecf20Sopenharmony_ci .freq_tbl = ftbl_video_core_clk_src, 6218c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6228c2ecf20Sopenharmony_ci .name = "video_subcore0_clk_src", 6238c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div, 6248c2ecf20Sopenharmony_ci .num_parents = 5, 6258c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6268c2ecf20Sopenharmony_ci }, 6278c2ecf20Sopenharmony_ci}; 6288c2ecf20Sopenharmony_ci 6298c2ecf20Sopenharmony_cistatic struct clk_rcg2 video_subcore1_clk_src = { 6308c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1080, 6318c2ecf20Sopenharmony_ci .mnd_width = 8, 6328c2ecf20Sopenharmony_ci .hid_width = 5, 6338c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div_map, 6348c2ecf20Sopenharmony_ci .freq_tbl = ftbl_video_core_clk_src, 6358c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6368c2ecf20Sopenharmony_ci .name = "video_subcore1_clk_src", 6378c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll3_gpll0_gpll0_div, 6388c2ecf20Sopenharmony_ci .num_parents = 5, 6398c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6408c2ecf20Sopenharmony_ci }, 6418c2ecf20Sopenharmony_ci}; 6428c2ecf20Sopenharmony_ci 6438c2ecf20Sopenharmony_cistatic struct clk_rcg2 pclk0_clk_src = { 6448c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2000, 6458c2ecf20Sopenharmony_ci .mnd_width = 8, 6468c2ecf20Sopenharmony_ci .hid_width = 5, 6478c2ecf20Sopenharmony_ci .parent_map = mmss_xo_dsi0pll_dsi1pll_map, 6488c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6498c2ecf20Sopenharmony_ci .name = "pclk0_clk_src", 6508c2ecf20Sopenharmony_ci .parent_names = mmss_xo_dsi0pll_dsi1pll, 6518c2ecf20Sopenharmony_ci .num_parents = 3, 6528c2ecf20Sopenharmony_ci .ops = &clk_pixel_ops, 6538c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6548c2ecf20Sopenharmony_ci }, 6558c2ecf20Sopenharmony_ci}; 6568c2ecf20Sopenharmony_ci 6578c2ecf20Sopenharmony_cistatic struct clk_rcg2 pclk1_clk_src = { 6588c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2020, 6598c2ecf20Sopenharmony_ci .mnd_width = 8, 6608c2ecf20Sopenharmony_ci .hid_width = 5, 6618c2ecf20Sopenharmony_ci .parent_map = mmss_xo_dsi0pll_dsi1pll_map, 6628c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6638c2ecf20Sopenharmony_ci .name = "pclk1_clk_src", 6648c2ecf20Sopenharmony_ci .parent_names = mmss_xo_dsi0pll_dsi1pll, 6658c2ecf20Sopenharmony_ci .num_parents = 3, 6668c2ecf20Sopenharmony_ci .ops = &clk_pixel_ops, 6678c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6688c2ecf20Sopenharmony_ci }, 6698c2ecf20Sopenharmony_ci}; 6708c2ecf20Sopenharmony_ci 6718c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_mdp_clk_src[] = { 6728c2ecf20Sopenharmony_ci F(85714286, P_GPLL0, 7, 0, 0), 6738c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 6748c2ecf20Sopenharmony_ci F(150000000, P_GPLL0, 4, 0, 0), 6758c2ecf20Sopenharmony_ci F(171428571, P_GPLL0, 3.5, 0, 0), 6768c2ecf20Sopenharmony_ci F(200000000, P_GPLL0, 3, 0, 0), 6778c2ecf20Sopenharmony_ci F(275000000, P_MMPLL5, 3, 0, 0), 6788c2ecf20Sopenharmony_ci F(300000000, P_GPLL0, 2, 0, 0), 6798c2ecf20Sopenharmony_ci F(330000000, P_MMPLL5, 2.5, 0, 0), 6808c2ecf20Sopenharmony_ci F(412500000, P_MMPLL5, 2, 0, 0), 6818c2ecf20Sopenharmony_ci { } 6828c2ecf20Sopenharmony_ci}; 6838c2ecf20Sopenharmony_ci 6848c2ecf20Sopenharmony_cistatic struct clk_rcg2 mdp_clk_src = { 6858c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2040, 6868c2ecf20Sopenharmony_ci .hid_width = 5, 6878c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div_map, 6888c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdp_clk_src, 6898c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6908c2ecf20Sopenharmony_ci .name = "mdp_clk_src", 6918c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll5_gpll0_gpll0_div, 6928c2ecf20Sopenharmony_ci .num_parents = 5, 6938c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6948c2ecf20Sopenharmony_ci }, 6958c2ecf20Sopenharmony_ci}; 6968c2ecf20Sopenharmony_ci 6978c2ecf20Sopenharmony_cistatic struct freq_tbl extpclk_freq_tbl[] = { 6988c2ecf20Sopenharmony_ci { .src = P_HDMIPLL }, 6998c2ecf20Sopenharmony_ci { } 7008c2ecf20Sopenharmony_ci}; 7018c2ecf20Sopenharmony_ci 7028c2ecf20Sopenharmony_cistatic struct clk_rcg2 extpclk_clk_src = { 7038c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2060, 7048c2ecf20Sopenharmony_ci .hid_width = 5, 7058c2ecf20Sopenharmony_ci .parent_map = mmss_xo_hdmi_map, 7068c2ecf20Sopenharmony_ci .freq_tbl = extpclk_freq_tbl, 7078c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7088c2ecf20Sopenharmony_ci .name = "extpclk_clk_src", 7098c2ecf20Sopenharmony_ci .parent_names = mmss_xo_hdmi, 7108c2ecf20Sopenharmony_ci .num_parents = 2, 7118c2ecf20Sopenharmony_ci .ops = &clk_byte_ops, 7128c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 7138c2ecf20Sopenharmony_ci }, 7148c2ecf20Sopenharmony_ci}; 7158c2ecf20Sopenharmony_ci 7168c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mdss_vsync_clk[] = { 7178c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 7188c2ecf20Sopenharmony_ci { } 7198c2ecf20Sopenharmony_ci}; 7208c2ecf20Sopenharmony_ci 7218c2ecf20Sopenharmony_cistatic struct clk_rcg2 vsync_clk_src = { 7228c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2080, 7238c2ecf20Sopenharmony_ci .hid_width = 5, 7248c2ecf20Sopenharmony_ci .parent_map = mmss_xo_gpll0_gpll0_div_map, 7258c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_vsync_clk, 7268c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7278c2ecf20Sopenharmony_ci .name = "vsync_clk_src", 7288c2ecf20Sopenharmony_ci .parent_names = mmss_xo_gpll0_gpll0_div, 7298c2ecf20Sopenharmony_ci .num_parents = 3, 7308c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7318c2ecf20Sopenharmony_ci }, 7328c2ecf20Sopenharmony_ci}; 7338c2ecf20Sopenharmony_ci 7348c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mdss_hdmi_clk[] = { 7358c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 7368c2ecf20Sopenharmony_ci { } 7378c2ecf20Sopenharmony_ci}; 7388c2ecf20Sopenharmony_ci 7398c2ecf20Sopenharmony_cistatic struct clk_rcg2 hdmi_clk_src = { 7408c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2100, 7418c2ecf20Sopenharmony_ci .hid_width = 5, 7428c2ecf20Sopenharmony_ci .parent_map = mmss_xo_gpll0_gpll0_div_map, 7438c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_hdmi_clk, 7448c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7458c2ecf20Sopenharmony_ci .name = "hdmi_clk_src", 7468c2ecf20Sopenharmony_ci .parent_names = mmss_xo_gpll0_gpll0_div, 7478c2ecf20Sopenharmony_ci .num_parents = 3, 7488c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7498c2ecf20Sopenharmony_ci }, 7508c2ecf20Sopenharmony_ci}; 7518c2ecf20Sopenharmony_ci 7528c2ecf20Sopenharmony_cistatic struct clk_rcg2 byte0_clk_src = { 7538c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2120, 7548c2ecf20Sopenharmony_ci .hid_width = 5, 7558c2ecf20Sopenharmony_ci .parent_map = mmss_xo_dsibyte_map, 7568c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7578c2ecf20Sopenharmony_ci .name = "byte0_clk_src", 7588c2ecf20Sopenharmony_ci .parent_names = mmss_xo_dsibyte, 7598c2ecf20Sopenharmony_ci .num_parents = 3, 7608c2ecf20Sopenharmony_ci .ops = &clk_byte2_ops, 7618c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 7628c2ecf20Sopenharmony_ci }, 7638c2ecf20Sopenharmony_ci}; 7648c2ecf20Sopenharmony_ci 7658c2ecf20Sopenharmony_cistatic struct clk_rcg2 byte1_clk_src = { 7668c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2140, 7678c2ecf20Sopenharmony_ci .hid_width = 5, 7688c2ecf20Sopenharmony_ci .parent_map = mmss_xo_dsibyte_map, 7698c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7708c2ecf20Sopenharmony_ci .name = "byte1_clk_src", 7718c2ecf20Sopenharmony_ci .parent_names = mmss_xo_dsibyte, 7728c2ecf20Sopenharmony_ci .num_parents = 3, 7738c2ecf20Sopenharmony_ci .ops = &clk_byte2_ops, 7748c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 7758c2ecf20Sopenharmony_ci }, 7768c2ecf20Sopenharmony_ci}; 7778c2ecf20Sopenharmony_ci 7788c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mdss_esc0_1_clk[] = { 7798c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 7808c2ecf20Sopenharmony_ci { } 7818c2ecf20Sopenharmony_ci}; 7828c2ecf20Sopenharmony_ci 7838c2ecf20Sopenharmony_cistatic struct clk_rcg2 esc0_clk_src = { 7848c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2160, 7858c2ecf20Sopenharmony_ci .hid_width = 5, 7868c2ecf20Sopenharmony_ci .parent_map = mmss_xo_dsibyte_map, 7878c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_esc0_1_clk, 7888c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7898c2ecf20Sopenharmony_ci .name = "esc0_clk_src", 7908c2ecf20Sopenharmony_ci .parent_names = mmss_xo_dsibyte, 7918c2ecf20Sopenharmony_ci .num_parents = 3, 7928c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7938c2ecf20Sopenharmony_ci }, 7948c2ecf20Sopenharmony_ci}; 7958c2ecf20Sopenharmony_ci 7968c2ecf20Sopenharmony_cistatic struct clk_rcg2 esc1_clk_src = { 7978c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2180, 7988c2ecf20Sopenharmony_ci .hid_width = 5, 7998c2ecf20Sopenharmony_ci .parent_map = mmss_xo_dsibyte_map, 8008c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_esc0_1_clk, 8018c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8028c2ecf20Sopenharmony_ci .name = "esc1_clk_src", 8038c2ecf20Sopenharmony_ci .parent_names = mmss_xo_dsibyte, 8048c2ecf20Sopenharmony_ci .num_parents = 3, 8058c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8068c2ecf20Sopenharmony_ci }, 8078c2ecf20Sopenharmony_ci}; 8088c2ecf20Sopenharmony_ci 8098c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_camss_gp0_clk_src[] = { 8108c2ecf20Sopenharmony_ci F(10000, P_XO, 16, 1, 120), 8118c2ecf20Sopenharmony_ci F(24000, P_XO, 16, 1, 50), 8128c2ecf20Sopenharmony_ci F(6000000, P_GPLL0_DIV, 10, 1, 5), 8138c2ecf20Sopenharmony_ci F(12000000, P_GPLL0_DIV, 1, 1, 25), 8148c2ecf20Sopenharmony_ci F(13000000, P_GPLL0_DIV, 2, 13, 150), 8158c2ecf20Sopenharmony_ci F(24000000, P_GPLL0_DIV, 1, 2, 25), 8168c2ecf20Sopenharmony_ci { } 8178c2ecf20Sopenharmony_ci}; 8188c2ecf20Sopenharmony_ci 8198c2ecf20Sopenharmony_cistatic struct clk_rcg2 camss_gp0_clk_src = { 8208c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3420, 8218c2ecf20Sopenharmony_ci .mnd_width = 8, 8228c2ecf20Sopenharmony_ci .hid_width = 5, 8238c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map, 8248c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_gp0_clk_src, 8258c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8268c2ecf20Sopenharmony_ci .name = "camss_gp0_clk_src", 8278c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div, 8288c2ecf20Sopenharmony_ci .num_parents = 5, 8298c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8308c2ecf20Sopenharmony_ci }, 8318c2ecf20Sopenharmony_ci}; 8328c2ecf20Sopenharmony_ci 8338c2ecf20Sopenharmony_cistatic struct clk_rcg2 camss_gp1_clk_src = { 8348c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3450, 8358c2ecf20Sopenharmony_ci .mnd_width = 8, 8368c2ecf20Sopenharmony_ci .hid_width = 5, 8378c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map, 8388c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_gp0_clk_src, 8398c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8408c2ecf20Sopenharmony_ci .name = "camss_gp1_clk_src", 8418c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div, 8428c2ecf20Sopenharmony_ci .num_parents = 5, 8438c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8448c2ecf20Sopenharmony_ci }, 8458c2ecf20Sopenharmony_ci}; 8468c2ecf20Sopenharmony_ci 8478c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_mclk0_clk_src[] = { 8488c2ecf20Sopenharmony_ci F(4800000, P_XO, 4, 0, 0), 8498c2ecf20Sopenharmony_ci F(6000000, P_GPLL0_DIV, 10, 1, 5), 8508c2ecf20Sopenharmony_ci F(8000000, P_GPLL0_DIV, 1, 2, 75), 8518c2ecf20Sopenharmony_ci F(9600000, P_XO, 2, 0, 0), 8528c2ecf20Sopenharmony_ci F(16666667, P_GPLL0_DIV, 2, 1, 9), 8538c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 8548c2ecf20Sopenharmony_ci F(24000000, P_GPLL0_DIV, 1, 2, 25), 8558c2ecf20Sopenharmony_ci F(33333333, P_GPLL0_DIV, 1, 1, 9), 8568c2ecf20Sopenharmony_ci F(48000000, P_GPLL0, 1, 2, 25), 8578c2ecf20Sopenharmony_ci F(66666667, P_GPLL0, 1, 1, 9), 8588c2ecf20Sopenharmony_ci { } 8598c2ecf20Sopenharmony_ci}; 8608c2ecf20Sopenharmony_ci 8618c2ecf20Sopenharmony_cistatic struct clk_rcg2 mclk0_clk_src = { 8628c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3360, 8638c2ecf20Sopenharmony_ci .mnd_width = 8, 8648c2ecf20Sopenharmony_ci .hid_width = 5, 8658c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map, 8668c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mclk0_clk_src, 8678c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8688c2ecf20Sopenharmony_ci .name = "mclk0_clk_src", 8698c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div, 8708c2ecf20Sopenharmony_ci .num_parents = 5, 8718c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8728c2ecf20Sopenharmony_ci }, 8738c2ecf20Sopenharmony_ci}; 8748c2ecf20Sopenharmony_ci 8758c2ecf20Sopenharmony_cistatic struct clk_rcg2 mclk1_clk_src = { 8768c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3390, 8778c2ecf20Sopenharmony_ci .mnd_width = 8, 8788c2ecf20Sopenharmony_ci .hid_width = 5, 8798c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map, 8808c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mclk0_clk_src, 8818c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8828c2ecf20Sopenharmony_ci .name = "mclk1_clk_src", 8838c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div, 8848c2ecf20Sopenharmony_ci .num_parents = 5, 8858c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8868c2ecf20Sopenharmony_ci }, 8878c2ecf20Sopenharmony_ci}; 8888c2ecf20Sopenharmony_ci 8898c2ecf20Sopenharmony_cistatic struct clk_rcg2 mclk2_clk_src = { 8908c2ecf20Sopenharmony_ci .cmd_rcgr = 0x33c0, 8918c2ecf20Sopenharmony_ci .mnd_width = 8, 8928c2ecf20Sopenharmony_ci .hid_width = 5, 8938c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map, 8948c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mclk0_clk_src, 8958c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8968c2ecf20Sopenharmony_ci .name = "mclk2_clk_src", 8978c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div, 8988c2ecf20Sopenharmony_ci .num_parents = 5, 8998c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9008c2ecf20Sopenharmony_ci }, 9018c2ecf20Sopenharmony_ci}; 9028c2ecf20Sopenharmony_ci 9038c2ecf20Sopenharmony_cistatic struct clk_rcg2 mclk3_clk_src = { 9048c2ecf20Sopenharmony_ci .cmd_rcgr = 0x33f0, 9058c2ecf20Sopenharmony_ci .mnd_width = 8, 9068c2ecf20Sopenharmony_ci .hid_width = 5, 9078c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map, 9088c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mclk0_clk_src, 9098c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9108c2ecf20Sopenharmony_ci .name = "mclk3_clk_src", 9118c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div, 9128c2ecf20Sopenharmony_ci .num_parents = 5, 9138c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9148c2ecf20Sopenharmony_ci }, 9158c2ecf20Sopenharmony_ci}; 9168c2ecf20Sopenharmony_ci 9178c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_cci_clk_src[] = { 9188c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 9198c2ecf20Sopenharmony_ci F(37500000, P_GPLL0, 16, 0, 0), 9208c2ecf20Sopenharmony_ci F(50000000, P_GPLL0, 12, 0, 0), 9218c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 9228c2ecf20Sopenharmony_ci { } 9238c2ecf20Sopenharmony_ci}; 9248c2ecf20Sopenharmony_ci 9258c2ecf20Sopenharmony_cistatic struct clk_rcg2 cci_clk_src = { 9268c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3300, 9278c2ecf20Sopenharmony_ci .mnd_width = 8, 9288c2ecf20Sopenharmony_ci .hid_width = 5, 9298c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map, 9308c2ecf20Sopenharmony_ci .freq_tbl = ftbl_cci_clk_src, 9318c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9328c2ecf20Sopenharmony_ci .name = "cci_clk_src", 9338c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div, 9348c2ecf20Sopenharmony_ci .num_parents = 5, 9358c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9368c2ecf20Sopenharmony_ci }, 9378c2ecf20Sopenharmony_ci}; 9388c2ecf20Sopenharmony_ci 9398c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_csi0phytimer_clk_src[] = { 9408c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_DIV, 3, 0, 0), 9418c2ecf20Sopenharmony_ci F(200000000, P_GPLL0, 3, 0, 0), 9428c2ecf20Sopenharmony_ci F(266666667, P_MMPLL0, 3, 0, 0), 9438c2ecf20Sopenharmony_ci { } 9448c2ecf20Sopenharmony_ci}; 9458c2ecf20Sopenharmony_ci 9468c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi0phytimer_clk_src = { 9478c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3000, 9488c2ecf20Sopenharmony_ci .hid_width = 5, 9498c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 9508c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csi0phytimer_clk_src, 9518c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9528c2ecf20Sopenharmony_ci .name = "csi0phytimer_clk_src", 9538c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 9548c2ecf20Sopenharmony_ci .num_parents = 7, 9558c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9568c2ecf20Sopenharmony_ci }, 9578c2ecf20Sopenharmony_ci}; 9588c2ecf20Sopenharmony_ci 9598c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi1phytimer_clk_src = { 9608c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3030, 9618c2ecf20Sopenharmony_ci .hid_width = 5, 9628c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 9638c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csi0phytimer_clk_src, 9648c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9658c2ecf20Sopenharmony_ci .name = "csi1phytimer_clk_src", 9668c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 9678c2ecf20Sopenharmony_ci .num_parents = 7, 9688c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9698c2ecf20Sopenharmony_ci }, 9708c2ecf20Sopenharmony_ci}; 9718c2ecf20Sopenharmony_ci 9728c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi2phytimer_clk_src = { 9738c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3060, 9748c2ecf20Sopenharmony_ci .hid_width = 5, 9758c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 9768c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csi0phytimer_clk_src, 9778c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9788c2ecf20Sopenharmony_ci .name = "csi2phytimer_clk_src", 9798c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 9808c2ecf20Sopenharmony_ci .num_parents = 7, 9818c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9828c2ecf20Sopenharmony_ci }, 9838c2ecf20Sopenharmony_ci}; 9848c2ecf20Sopenharmony_ci 9858c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_csiphy0_3p_clk_src[] = { 9868c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_DIV, 3, 0, 0), 9878c2ecf20Sopenharmony_ci F(200000000, P_GPLL0, 3, 0, 0), 9888c2ecf20Sopenharmony_ci F(320000000, P_MMPLL4, 3, 0, 0), 9898c2ecf20Sopenharmony_ci F(384000000, P_MMPLL4, 2.5, 0, 0), 9908c2ecf20Sopenharmony_ci { } 9918c2ecf20Sopenharmony_ci}; 9928c2ecf20Sopenharmony_ci 9938c2ecf20Sopenharmony_cistatic struct clk_rcg2 csiphy0_3p_clk_src = { 9948c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3240, 9958c2ecf20Sopenharmony_ci .hid_width = 5, 9968c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 9978c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csiphy0_3p_clk_src, 9988c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9998c2ecf20Sopenharmony_ci .name = "csiphy0_3p_clk_src", 10008c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 10018c2ecf20Sopenharmony_ci .num_parents = 7, 10028c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10038c2ecf20Sopenharmony_ci }, 10048c2ecf20Sopenharmony_ci}; 10058c2ecf20Sopenharmony_ci 10068c2ecf20Sopenharmony_cistatic struct clk_rcg2 csiphy1_3p_clk_src = { 10078c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3260, 10088c2ecf20Sopenharmony_ci .hid_width = 5, 10098c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 10108c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csiphy0_3p_clk_src, 10118c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10128c2ecf20Sopenharmony_ci .name = "csiphy1_3p_clk_src", 10138c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 10148c2ecf20Sopenharmony_ci .num_parents = 7, 10158c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10168c2ecf20Sopenharmony_ci }, 10178c2ecf20Sopenharmony_ci}; 10188c2ecf20Sopenharmony_ci 10198c2ecf20Sopenharmony_cistatic struct clk_rcg2 csiphy2_3p_clk_src = { 10208c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3280, 10218c2ecf20Sopenharmony_ci .hid_width = 5, 10228c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 10238c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csiphy0_3p_clk_src, 10248c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10258c2ecf20Sopenharmony_ci .name = "csiphy2_3p_clk_src", 10268c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 10278c2ecf20Sopenharmony_ci .num_parents = 7, 10288c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10298c2ecf20Sopenharmony_ci }, 10308c2ecf20Sopenharmony_ci}; 10318c2ecf20Sopenharmony_ci 10328c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_jpeg0_clk_src[] = { 10338c2ecf20Sopenharmony_ci F(75000000, P_GPLL0_DIV, 4, 0, 0), 10348c2ecf20Sopenharmony_ci F(150000000, P_GPLL0, 4, 0, 0), 10358c2ecf20Sopenharmony_ci F(228571429, P_MMPLL0, 3.5, 0, 0), 10368c2ecf20Sopenharmony_ci F(266666667, P_MMPLL0, 3, 0, 0), 10378c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 10388c2ecf20Sopenharmony_ci F(480000000, P_MMPLL4, 2, 0, 0), 10398c2ecf20Sopenharmony_ci { } 10408c2ecf20Sopenharmony_ci}; 10418c2ecf20Sopenharmony_ci 10428c2ecf20Sopenharmony_cistatic struct clk_rcg2 jpeg0_clk_src = { 10438c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3500, 10448c2ecf20Sopenharmony_ci .hid_width = 5, 10458c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 10468c2ecf20Sopenharmony_ci .freq_tbl = ftbl_jpeg0_clk_src, 10478c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10488c2ecf20Sopenharmony_ci .name = "jpeg0_clk_src", 10498c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 10508c2ecf20Sopenharmony_ci .num_parents = 7, 10518c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10528c2ecf20Sopenharmony_ci }, 10538c2ecf20Sopenharmony_ci}; 10548c2ecf20Sopenharmony_ci 10558c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_jpeg2_clk_src[] = { 10568c2ecf20Sopenharmony_ci F(75000000, P_GPLL0_DIV, 4, 0, 0), 10578c2ecf20Sopenharmony_ci F(150000000, P_GPLL0, 4, 0, 0), 10588c2ecf20Sopenharmony_ci F(228571429, P_MMPLL0, 3.5, 0, 0), 10598c2ecf20Sopenharmony_ci F(266666667, P_MMPLL0, 3, 0, 0), 10608c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 10618c2ecf20Sopenharmony_ci { } 10628c2ecf20Sopenharmony_ci}; 10638c2ecf20Sopenharmony_ci 10648c2ecf20Sopenharmony_cistatic struct clk_rcg2 jpeg2_clk_src = { 10658c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3540, 10668c2ecf20Sopenharmony_ci .hid_width = 5, 10678c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 10688c2ecf20Sopenharmony_ci .freq_tbl = ftbl_jpeg2_clk_src, 10698c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10708c2ecf20Sopenharmony_ci .name = "jpeg2_clk_src", 10718c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 10728c2ecf20Sopenharmony_ci .num_parents = 7, 10738c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10748c2ecf20Sopenharmony_ci }, 10758c2ecf20Sopenharmony_ci}; 10768c2ecf20Sopenharmony_ci 10778c2ecf20Sopenharmony_cistatic struct clk_rcg2 jpeg_dma_clk_src = { 10788c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3560, 10798c2ecf20Sopenharmony_ci .hid_width = 5, 10808c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 10818c2ecf20Sopenharmony_ci .freq_tbl = ftbl_jpeg0_clk_src, 10828c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10838c2ecf20Sopenharmony_ci .name = "jpeg_dma_clk_src", 10848c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 10858c2ecf20Sopenharmony_ci .num_parents = 7, 10868c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10878c2ecf20Sopenharmony_ci }, 10888c2ecf20Sopenharmony_ci}; 10898c2ecf20Sopenharmony_ci 10908c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_vfe0_clk_src[] = { 10918c2ecf20Sopenharmony_ci F(75000000, P_GPLL0_DIV, 4, 0, 0), 10928c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_DIV, 3, 0, 0), 10938c2ecf20Sopenharmony_ci F(300000000, P_GPLL0, 2, 0, 0), 10948c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 10958c2ecf20Sopenharmony_ci F(480000000, P_MMPLL4, 2, 0, 0), 10968c2ecf20Sopenharmony_ci F(600000000, P_GPLL0, 1, 0, 0), 10978c2ecf20Sopenharmony_ci { } 10988c2ecf20Sopenharmony_ci}; 10998c2ecf20Sopenharmony_ci 11008c2ecf20Sopenharmony_cistatic struct clk_rcg2 vfe0_clk_src = { 11018c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3600, 11028c2ecf20Sopenharmony_ci .hid_width = 5, 11038c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 11048c2ecf20Sopenharmony_ci .freq_tbl = ftbl_vfe0_clk_src, 11058c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 11068c2ecf20Sopenharmony_ci .name = "vfe0_clk_src", 11078c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 11088c2ecf20Sopenharmony_ci .num_parents = 7, 11098c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 11108c2ecf20Sopenharmony_ci }, 11118c2ecf20Sopenharmony_ci}; 11128c2ecf20Sopenharmony_ci 11138c2ecf20Sopenharmony_cistatic struct clk_rcg2 vfe1_clk_src = { 11148c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3620, 11158c2ecf20Sopenharmony_ci .hid_width = 5, 11168c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 11178c2ecf20Sopenharmony_ci .freq_tbl = ftbl_vfe0_clk_src, 11188c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 11198c2ecf20Sopenharmony_ci .name = "vfe1_clk_src", 11208c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 11218c2ecf20Sopenharmony_ci .num_parents = 7, 11228c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 11238c2ecf20Sopenharmony_ci }, 11248c2ecf20Sopenharmony_ci}; 11258c2ecf20Sopenharmony_ci 11268c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_cpp_clk_src[] = { 11278c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_DIV, 3, 0, 0), 11288c2ecf20Sopenharmony_ci F(200000000, P_GPLL0, 3, 0, 0), 11298c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 11308c2ecf20Sopenharmony_ci F(480000000, P_MMPLL4, 2, 0, 0), 11318c2ecf20Sopenharmony_ci F(640000000, P_MMPLL4, 1.5, 0, 0), 11328c2ecf20Sopenharmony_ci { } 11338c2ecf20Sopenharmony_ci}; 11348c2ecf20Sopenharmony_ci 11358c2ecf20Sopenharmony_cistatic struct clk_rcg2 cpp_clk_src = { 11368c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3640, 11378c2ecf20Sopenharmony_ci .hid_width = 5, 11388c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 11398c2ecf20Sopenharmony_ci .freq_tbl = ftbl_cpp_clk_src, 11408c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 11418c2ecf20Sopenharmony_ci .name = "cpp_clk_src", 11428c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 11438c2ecf20Sopenharmony_ci .num_parents = 7, 11448c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 11458c2ecf20Sopenharmony_ci }, 11468c2ecf20Sopenharmony_ci}; 11478c2ecf20Sopenharmony_ci 11488c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_csi0_clk_src[] = { 11498c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_DIV, 3, 0, 0), 11508c2ecf20Sopenharmony_ci F(200000000, P_GPLL0, 3, 0, 0), 11518c2ecf20Sopenharmony_ci F(266666667, P_MMPLL0, 3, 0, 0), 11528c2ecf20Sopenharmony_ci F(480000000, P_MMPLL4, 2, 0, 0), 11538c2ecf20Sopenharmony_ci F(600000000, P_GPLL0, 1, 0, 0), 11548c2ecf20Sopenharmony_ci { } 11558c2ecf20Sopenharmony_ci}; 11568c2ecf20Sopenharmony_ci 11578c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi0_clk_src = { 11588c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3090, 11598c2ecf20Sopenharmony_ci .hid_width = 5, 11608c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 11618c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csi0_clk_src, 11628c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 11638c2ecf20Sopenharmony_ci .name = "csi0_clk_src", 11648c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 11658c2ecf20Sopenharmony_ci .num_parents = 7, 11668c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 11678c2ecf20Sopenharmony_ci }, 11688c2ecf20Sopenharmony_ci}; 11698c2ecf20Sopenharmony_ci 11708c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi1_clk_src = { 11718c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3100, 11728c2ecf20Sopenharmony_ci .hid_width = 5, 11738c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 11748c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csi0_clk_src, 11758c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 11768c2ecf20Sopenharmony_ci .name = "csi1_clk_src", 11778c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 11788c2ecf20Sopenharmony_ci .num_parents = 7, 11798c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 11808c2ecf20Sopenharmony_ci }, 11818c2ecf20Sopenharmony_ci}; 11828c2ecf20Sopenharmony_ci 11838c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi2_clk_src = { 11848c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3160, 11858c2ecf20Sopenharmony_ci .hid_width = 5, 11868c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 11878c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csi0_clk_src, 11888c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 11898c2ecf20Sopenharmony_ci .name = "csi2_clk_src", 11908c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 11918c2ecf20Sopenharmony_ci .num_parents = 7, 11928c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 11938c2ecf20Sopenharmony_ci }, 11948c2ecf20Sopenharmony_ci}; 11958c2ecf20Sopenharmony_ci 11968c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi3_clk_src = { 11978c2ecf20Sopenharmony_ci .cmd_rcgr = 0x31c0, 11988c2ecf20Sopenharmony_ci .hid_width = 5, 11998c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div_map, 12008c2ecf20Sopenharmony_ci .freq_tbl = ftbl_csi0_clk_src, 12018c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 12028c2ecf20Sopenharmony_ci .name = "csi3_clk_src", 12038c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll1_mmpll4_mmpll3_gpll0_gpll0_div, 12048c2ecf20Sopenharmony_ci .num_parents = 7, 12058c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 12068c2ecf20Sopenharmony_ci }, 12078c2ecf20Sopenharmony_ci}; 12088c2ecf20Sopenharmony_ci 12098c2ecf20Sopenharmony_cistatic const struct freq_tbl ftbl_fd_core_clk_src[] = { 12108c2ecf20Sopenharmony_ci F(100000000, P_GPLL0_DIV, 3, 0, 0), 12118c2ecf20Sopenharmony_ci F(200000000, P_GPLL0, 3, 0, 0), 12128c2ecf20Sopenharmony_ci F(400000000, P_MMPLL0, 2, 0, 0), 12138c2ecf20Sopenharmony_ci { } 12148c2ecf20Sopenharmony_ci}; 12158c2ecf20Sopenharmony_ci 12168c2ecf20Sopenharmony_cistatic struct clk_rcg2 fd_core_clk_src = { 12178c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3b00, 12188c2ecf20Sopenharmony_ci .hid_width = 5, 12198c2ecf20Sopenharmony_ci .parent_map = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div_map, 12208c2ecf20Sopenharmony_ci .freq_tbl = ftbl_fd_core_clk_src, 12218c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 12228c2ecf20Sopenharmony_ci .name = "fd_core_clk_src", 12238c2ecf20Sopenharmony_ci .parent_names = mmss_xo_mmpll0_mmpll4_gpll0_gpll0_div, 12248c2ecf20Sopenharmony_ci .num_parents = 5, 12258c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 12268c2ecf20Sopenharmony_ci }, 12278c2ecf20Sopenharmony_ci}; 12288c2ecf20Sopenharmony_ci 12298c2ecf20Sopenharmony_cistatic struct clk_branch mmss_mmagic_ahb_clk = { 12308c2ecf20Sopenharmony_ci .halt_reg = 0x5024, 12318c2ecf20Sopenharmony_ci .clkr = { 12328c2ecf20Sopenharmony_ci .enable_reg = 0x5024, 12338c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12348c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12358c2ecf20Sopenharmony_ci .name = "mmss_mmagic_ahb_clk", 12368c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 12378c2ecf20Sopenharmony_ci .num_parents = 1, 12388c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 12398c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12408c2ecf20Sopenharmony_ci }, 12418c2ecf20Sopenharmony_ci }, 12428c2ecf20Sopenharmony_ci}; 12438c2ecf20Sopenharmony_ci 12448c2ecf20Sopenharmony_cistatic struct clk_branch mmss_mmagic_cfg_ahb_clk = { 12458c2ecf20Sopenharmony_ci .halt_reg = 0x5054, 12468c2ecf20Sopenharmony_ci .clkr = { 12478c2ecf20Sopenharmony_ci .enable_reg = 0x5054, 12488c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12498c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12508c2ecf20Sopenharmony_ci .name = "mmss_mmagic_cfg_ahb_clk", 12518c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 12528c2ecf20Sopenharmony_ci .num_parents = 1, 12538c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 12548c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12558c2ecf20Sopenharmony_ci }, 12568c2ecf20Sopenharmony_ci }, 12578c2ecf20Sopenharmony_ci}; 12588c2ecf20Sopenharmony_ci 12598c2ecf20Sopenharmony_cistatic struct clk_branch mmss_misc_ahb_clk = { 12608c2ecf20Sopenharmony_ci .halt_reg = 0x5018, 12618c2ecf20Sopenharmony_ci .clkr = { 12628c2ecf20Sopenharmony_ci .enable_reg = 0x5018, 12638c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12648c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12658c2ecf20Sopenharmony_ci .name = "mmss_misc_ahb_clk", 12668c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 12678c2ecf20Sopenharmony_ci .num_parents = 1, 12688c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12698c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12708c2ecf20Sopenharmony_ci }, 12718c2ecf20Sopenharmony_ci }, 12728c2ecf20Sopenharmony_ci}; 12738c2ecf20Sopenharmony_ci 12748c2ecf20Sopenharmony_cistatic struct clk_branch mmss_misc_cxo_clk = { 12758c2ecf20Sopenharmony_ci .halt_reg = 0x5014, 12768c2ecf20Sopenharmony_ci .clkr = { 12778c2ecf20Sopenharmony_ci .enable_reg = 0x5014, 12788c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12798c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12808c2ecf20Sopenharmony_ci .name = "mmss_misc_cxo_clk", 12818c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 12828c2ecf20Sopenharmony_ci .num_parents = 1, 12838c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12848c2ecf20Sopenharmony_ci }, 12858c2ecf20Sopenharmony_ci }, 12868c2ecf20Sopenharmony_ci}; 12878c2ecf20Sopenharmony_ci 12888c2ecf20Sopenharmony_cistatic struct clk_branch mmss_mmagic_maxi_clk = { 12898c2ecf20Sopenharmony_ci .halt_reg = 0x5074, 12908c2ecf20Sopenharmony_ci .clkr = { 12918c2ecf20Sopenharmony_ci .enable_reg = 0x5074, 12928c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12938c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12948c2ecf20Sopenharmony_ci .name = "mmss_mmagic_maxi_clk", 12958c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "maxi_clk_src" }, 12968c2ecf20Sopenharmony_ci .num_parents = 1, 12978c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12988c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12998c2ecf20Sopenharmony_ci }, 13008c2ecf20Sopenharmony_ci }, 13018c2ecf20Sopenharmony_ci}; 13028c2ecf20Sopenharmony_ci 13038c2ecf20Sopenharmony_cistatic struct clk_branch mmagic_camss_axi_clk = { 13048c2ecf20Sopenharmony_ci .halt_reg = 0x3c44, 13058c2ecf20Sopenharmony_ci .clkr = { 13068c2ecf20Sopenharmony_ci .enable_reg = 0x3c44, 13078c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13098c2ecf20Sopenharmony_ci .name = "mmagic_camss_axi_clk", 13108c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 13118c2ecf20Sopenharmony_ci .num_parents = 1, 13128c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 13138c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13148c2ecf20Sopenharmony_ci }, 13158c2ecf20Sopenharmony_ci }, 13168c2ecf20Sopenharmony_ci}; 13178c2ecf20Sopenharmony_ci 13188c2ecf20Sopenharmony_cistatic struct clk_branch mmagic_camss_noc_cfg_ahb_clk = { 13198c2ecf20Sopenharmony_ci .halt_reg = 0x3c48, 13208c2ecf20Sopenharmony_ci .clkr = { 13218c2ecf20Sopenharmony_ci .enable_reg = 0x3c48, 13228c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13238c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13248c2ecf20Sopenharmony_ci .name = "mmagic_camss_noc_cfg_ahb_clk", 13258c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gcc_mmss_noc_cfg_ahb_clk" }, 13268c2ecf20Sopenharmony_ci .num_parents = 1, 13278c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 13288c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13298c2ecf20Sopenharmony_ci }, 13308c2ecf20Sopenharmony_ci }, 13318c2ecf20Sopenharmony_ci}; 13328c2ecf20Sopenharmony_ci 13338c2ecf20Sopenharmony_cistatic struct clk_branch smmu_vfe_ahb_clk = { 13348c2ecf20Sopenharmony_ci .halt_reg = 0x3c04, 13358c2ecf20Sopenharmony_ci .clkr = { 13368c2ecf20Sopenharmony_ci .enable_reg = 0x3c04, 13378c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13388c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13398c2ecf20Sopenharmony_ci .name = "smmu_vfe_ahb_clk", 13408c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 13418c2ecf20Sopenharmony_ci .num_parents = 1, 13428c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13438c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13448c2ecf20Sopenharmony_ci }, 13458c2ecf20Sopenharmony_ci }, 13468c2ecf20Sopenharmony_ci}; 13478c2ecf20Sopenharmony_ci 13488c2ecf20Sopenharmony_cistatic struct clk_branch smmu_vfe_axi_clk = { 13498c2ecf20Sopenharmony_ci .halt_reg = 0x3c08, 13508c2ecf20Sopenharmony_ci .clkr = { 13518c2ecf20Sopenharmony_ci .enable_reg = 0x3c08, 13528c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13538c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13548c2ecf20Sopenharmony_ci .name = "smmu_vfe_axi_clk", 13558c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 13568c2ecf20Sopenharmony_ci .num_parents = 1, 13578c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13588c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13598c2ecf20Sopenharmony_ci }, 13608c2ecf20Sopenharmony_ci }, 13618c2ecf20Sopenharmony_ci}; 13628c2ecf20Sopenharmony_ci 13638c2ecf20Sopenharmony_cistatic struct clk_branch smmu_cpp_ahb_clk = { 13648c2ecf20Sopenharmony_ci .halt_reg = 0x3c14, 13658c2ecf20Sopenharmony_ci .clkr = { 13668c2ecf20Sopenharmony_ci .enable_reg = 0x3c14, 13678c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13688c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13698c2ecf20Sopenharmony_ci .name = "smmu_cpp_ahb_clk", 13708c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 13718c2ecf20Sopenharmony_ci .num_parents = 1, 13728c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13738c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13748c2ecf20Sopenharmony_ci }, 13758c2ecf20Sopenharmony_ci }, 13768c2ecf20Sopenharmony_ci}; 13778c2ecf20Sopenharmony_ci 13788c2ecf20Sopenharmony_cistatic struct clk_branch smmu_cpp_axi_clk = { 13798c2ecf20Sopenharmony_ci .halt_reg = 0x3c18, 13808c2ecf20Sopenharmony_ci .clkr = { 13818c2ecf20Sopenharmony_ci .enable_reg = 0x3c18, 13828c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13838c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13848c2ecf20Sopenharmony_ci .name = "smmu_cpp_axi_clk", 13858c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 13868c2ecf20Sopenharmony_ci .num_parents = 1, 13878c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13898c2ecf20Sopenharmony_ci }, 13908c2ecf20Sopenharmony_ci }, 13918c2ecf20Sopenharmony_ci}; 13928c2ecf20Sopenharmony_ci 13938c2ecf20Sopenharmony_cistatic struct clk_branch smmu_jpeg_ahb_clk = { 13948c2ecf20Sopenharmony_ci .halt_reg = 0x3c24, 13958c2ecf20Sopenharmony_ci .clkr = { 13968c2ecf20Sopenharmony_ci .enable_reg = 0x3c24, 13978c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13988c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13998c2ecf20Sopenharmony_ci .name = "smmu_jpeg_ahb_clk", 14008c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 14018c2ecf20Sopenharmony_ci .num_parents = 1, 14028c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14038c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14048c2ecf20Sopenharmony_ci }, 14058c2ecf20Sopenharmony_ci }, 14068c2ecf20Sopenharmony_ci}; 14078c2ecf20Sopenharmony_ci 14088c2ecf20Sopenharmony_cistatic struct clk_branch smmu_jpeg_axi_clk = { 14098c2ecf20Sopenharmony_ci .halt_reg = 0x3c28, 14108c2ecf20Sopenharmony_ci .clkr = { 14118c2ecf20Sopenharmony_ci .enable_reg = 0x3c28, 14128c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14138c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14148c2ecf20Sopenharmony_ci .name = "smmu_jpeg_axi_clk", 14158c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 14168c2ecf20Sopenharmony_ci .num_parents = 1, 14178c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14188c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14198c2ecf20Sopenharmony_ci }, 14208c2ecf20Sopenharmony_ci }, 14218c2ecf20Sopenharmony_ci}; 14228c2ecf20Sopenharmony_ci 14238c2ecf20Sopenharmony_cistatic struct clk_branch mmagic_mdss_axi_clk = { 14248c2ecf20Sopenharmony_ci .halt_reg = 0x2474, 14258c2ecf20Sopenharmony_ci .clkr = { 14268c2ecf20Sopenharmony_ci .enable_reg = 0x2474, 14278c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14288c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14298c2ecf20Sopenharmony_ci .name = "mmagic_mdss_axi_clk", 14308c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 14318c2ecf20Sopenharmony_ci .num_parents = 1, 14328c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 14338c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14348c2ecf20Sopenharmony_ci }, 14358c2ecf20Sopenharmony_ci }, 14368c2ecf20Sopenharmony_ci}; 14378c2ecf20Sopenharmony_ci 14388c2ecf20Sopenharmony_cistatic struct clk_branch mmagic_mdss_noc_cfg_ahb_clk = { 14398c2ecf20Sopenharmony_ci .halt_reg = 0x2478, 14408c2ecf20Sopenharmony_ci .clkr = { 14418c2ecf20Sopenharmony_ci .enable_reg = 0x2478, 14428c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14448c2ecf20Sopenharmony_ci .name = "mmagic_mdss_noc_cfg_ahb_clk", 14458c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gcc_mmss_noc_cfg_ahb_clk" }, 14468c2ecf20Sopenharmony_ci .num_parents = 1, 14478c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 14488c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14498c2ecf20Sopenharmony_ci }, 14508c2ecf20Sopenharmony_ci }, 14518c2ecf20Sopenharmony_ci}; 14528c2ecf20Sopenharmony_ci 14538c2ecf20Sopenharmony_cistatic struct clk_branch smmu_rot_ahb_clk = { 14548c2ecf20Sopenharmony_ci .halt_reg = 0x2444, 14558c2ecf20Sopenharmony_ci .clkr = { 14568c2ecf20Sopenharmony_ci .enable_reg = 0x2444, 14578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14598c2ecf20Sopenharmony_ci .name = "smmu_rot_ahb_clk", 14608c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 14618c2ecf20Sopenharmony_ci .num_parents = 1, 14628c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14638c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14648c2ecf20Sopenharmony_ci }, 14658c2ecf20Sopenharmony_ci }, 14668c2ecf20Sopenharmony_ci}; 14678c2ecf20Sopenharmony_ci 14688c2ecf20Sopenharmony_cistatic struct clk_branch smmu_rot_axi_clk = { 14698c2ecf20Sopenharmony_ci .halt_reg = 0x2448, 14708c2ecf20Sopenharmony_ci .clkr = { 14718c2ecf20Sopenharmony_ci .enable_reg = 0x2448, 14728c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14748c2ecf20Sopenharmony_ci .name = "smmu_rot_axi_clk", 14758c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 14768c2ecf20Sopenharmony_ci .num_parents = 1, 14778c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14788c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14798c2ecf20Sopenharmony_ci }, 14808c2ecf20Sopenharmony_ci }, 14818c2ecf20Sopenharmony_ci}; 14828c2ecf20Sopenharmony_ci 14838c2ecf20Sopenharmony_cistatic struct clk_branch smmu_mdp_ahb_clk = { 14848c2ecf20Sopenharmony_ci .halt_reg = 0x2454, 14858c2ecf20Sopenharmony_ci .clkr = { 14868c2ecf20Sopenharmony_ci .enable_reg = 0x2454, 14878c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14898c2ecf20Sopenharmony_ci .name = "smmu_mdp_ahb_clk", 14908c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 14918c2ecf20Sopenharmony_ci .num_parents = 1, 14928c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14938c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14948c2ecf20Sopenharmony_ci }, 14958c2ecf20Sopenharmony_ci }, 14968c2ecf20Sopenharmony_ci}; 14978c2ecf20Sopenharmony_ci 14988c2ecf20Sopenharmony_cistatic struct clk_branch smmu_mdp_axi_clk = { 14998c2ecf20Sopenharmony_ci .halt_reg = 0x2458, 15008c2ecf20Sopenharmony_ci .clkr = { 15018c2ecf20Sopenharmony_ci .enable_reg = 0x2458, 15028c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15038c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15048c2ecf20Sopenharmony_ci .name = "smmu_mdp_axi_clk", 15058c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 15068c2ecf20Sopenharmony_ci .num_parents = 1, 15078c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15088c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15098c2ecf20Sopenharmony_ci }, 15108c2ecf20Sopenharmony_ci }, 15118c2ecf20Sopenharmony_ci}; 15128c2ecf20Sopenharmony_ci 15138c2ecf20Sopenharmony_cistatic struct clk_branch mmagic_video_axi_clk = { 15148c2ecf20Sopenharmony_ci .halt_reg = 0x1194, 15158c2ecf20Sopenharmony_ci .clkr = { 15168c2ecf20Sopenharmony_ci .enable_reg = 0x1194, 15178c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15188c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15198c2ecf20Sopenharmony_ci .name = "mmagic_video_axi_clk", 15208c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 15218c2ecf20Sopenharmony_ci .num_parents = 1, 15228c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 15238c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15248c2ecf20Sopenharmony_ci }, 15258c2ecf20Sopenharmony_ci }, 15268c2ecf20Sopenharmony_ci}; 15278c2ecf20Sopenharmony_ci 15288c2ecf20Sopenharmony_cistatic struct clk_branch mmagic_video_noc_cfg_ahb_clk = { 15298c2ecf20Sopenharmony_ci .halt_reg = 0x1198, 15308c2ecf20Sopenharmony_ci .clkr = { 15318c2ecf20Sopenharmony_ci .enable_reg = 0x1198, 15328c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15338c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15348c2ecf20Sopenharmony_ci .name = "mmagic_video_noc_cfg_ahb_clk", 15358c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gcc_mmss_noc_cfg_ahb_clk" }, 15368c2ecf20Sopenharmony_ci .num_parents = 1, 15378c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 15388c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15398c2ecf20Sopenharmony_ci }, 15408c2ecf20Sopenharmony_ci }, 15418c2ecf20Sopenharmony_ci}; 15428c2ecf20Sopenharmony_ci 15438c2ecf20Sopenharmony_cistatic struct clk_branch smmu_video_ahb_clk = { 15448c2ecf20Sopenharmony_ci .halt_reg = 0x1174, 15458c2ecf20Sopenharmony_ci .clkr = { 15468c2ecf20Sopenharmony_ci .enable_reg = 0x1174, 15478c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15498c2ecf20Sopenharmony_ci .name = "smmu_video_ahb_clk", 15508c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 15518c2ecf20Sopenharmony_ci .num_parents = 1, 15528c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15538c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15548c2ecf20Sopenharmony_ci }, 15558c2ecf20Sopenharmony_ci }, 15568c2ecf20Sopenharmony_ci}; 15578c2ecf20Sopenharmony_ci 15588c2ecf20Sopenharmony_cistatic struct clk_branch smmu_video_axi_clk = { 15598c2ecf20Sopenharmony_ci .halt_reg = 0x1178, 15608c2ecf20Sopenharmony_ci .clkr = { 15618c2ecf20Sopenharmony_ci .enable_reg = 0x1178, 15628c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15638c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15648c2ecf20Sopenharmony_ci .name = "smmu_video_axi_clk", 15658c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 15668c2ecf20Sopenharmony_ci .num_parents = 1, 15678c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15688c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15698c2ecf20Sopenharmony_ci }, 15708c2ecf20Sopenharmony_ci }, 15718c2ecf20Sopenharmony_ci}; 15728c2ecf20Sopenharmony_ci 15738c2ecf20Sopenharmony_cistatic struct clk_branch mmagic_bimc_noc_cfg_ahb_clk = { 15748c2ecf20Sopenharmony_ci .halt_reg = 0x5298, 15758c2ecf20Sopenharmony_ci .clkr = { 15768c2ecf20Sopenharmony_ci .enable_reg = 0x5298, 15778c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15788c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15798c2ecf20Sopenharmony_ci .name = "mmagic_bimc_noc_cfg_ahb_clk", 15808c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gcc_mmss_noc_cfg_ahb_clk" }, 15818c2ecf20Sopenharmony_ci .num_parents = 1, 15828c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15838c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15848c2ecf20Sopenharmony_ci }, 15858c2ecf20Sopenharmony_ci }, 15868c2ecf20Sopenharmony_ci}; 15878c2ecf20Sopenharmony_ci 15888c2ecf20Sopenharmony_cistatic struct clk_branch gpu_gx_gfx3d_clk = { 15898c2ecf20Sopenharmony_ci .halt_reg = 0x4028, 15908c2ecf20Sopenharmony_ci .clkr = { 15918c2ecf20Sopenharmony_ci .enable_reg = 0x4028, 15928c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15938c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15948c2ecf20Sopenharmony_ci .name = "gpu_gx_gfx3d_clk", 15958c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gfx3d_clk_src" }, 15968c2ecf20Sopenharmony_ci .num_parents = 1, 15978c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15988c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15998c2ecf20Sopenharmony_ci }, 16008c2ecf20Sopenharmony_ci }, 16018c2ecf20Sopenharmony_ci}; 16028c2ecf20Sopenharmony_ci 16038c2ecf20Sopenharmony_cistatic struct clk_branch gpu_gx_rbbmtimer_clk = { 16048c2ecf20Sopenharmony_ci .halt_reg = 0x40b0, 16058c2ecf20Sopenharmony_ci .clkr = { 16068c2ecf20Sopenharmony_ci .enable_reg = 0x40b0, 16078c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16098c2ecf20Sopenharmony_ci .name = "gpu_gx_rbbmtimer_clk", 16108c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "rbbmtimer_clk_src" }, 16118c2ecf20Sopenharmony_ci .num_parents = 1, 16128c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16138c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16148c2ecf20Sopenharmony_ci }, 16158c2ecf20Sopenharmony_ci }, 16168c2ecf20Sopenharmony_ci}; 16178c2ecf20Sopenharmony_ci 16188c2ecf20Sopenharmony_cistatic struct clk_branch gpu_ahb_clk = { 16198c2ecf20Sopenharmony_ci .halt_reg = 0x403c, 16208c2ecf20Sopenharmony_ci .clkr = { 16218c2ecf20Sopenharmony_ci .enable_reg = 0x403c, 16228c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16238c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16248c2ecf20Sopenharmony_ci .name = "gpu_ahb_clk", 16258c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 16268c2ecf20Sopenharmony_ci .num_parents = 1, 16278c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16288c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16298c2ecf20Sopenharmony_ci }, 16308c2ecf20Sopenharmony_ci }, 16318c2ecf20Sopenharmony_ci}; 16328c2ecf20Sopenharmony_ci 16338c2ecf20Sopenharmony_cistatic struct clk_branch gpu_aon_isense_clk = { 16348c2ecf20Sopenharmony_ci .halt_reg = 0x4044, 16358c2ecf20Sopenharmony_ci .clkr = { 16368c2ecf20Sopenharmony_ci .enable_reg = 0x4044, 16378c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16388c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16398c2ecf20Sopenharmony_ci .name = "gpu_aon_isense_clk", 16408c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "isense_clk_src" }, 16418c2ecf20Sopenharmony_ci .num_parents = 1, 16428c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16438c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16448c2ecf20Sopenharmony_ci }, 16458c2ecf20Sopenharmony_ci }, 16468c2ecf20Sopenharmony_ci}; 16478c2ecf20Sopenharmony_ci 16488c2ecf20Sopenharmony_cistatic struct clk_branch vmem_maxi_clk = { 16498c2ecf20Sopenharmony_ci .halt_reg = 0x1204, 16508c2ecf20Sopenharmony_ci .clkr = { 16518c2ecf20Sopenharmony_ci .enable_reg = 0x1204, 16528c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16538c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16548c2ecf20Sopenharmony_ci .name = "vmem_maxi_clk", 16558c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "maxi_clk_src" }, 16568c2ecf20Sopenharmony_ci .num_parents = 1, 16578c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16588c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16598c2ecf20Sopenharmony_ci }, 16608c2ecf20Sopenharmony_ci }, 16618c2ecf20Sopenharmony_ci}; 16628c2ecf20Sopenharmony_ci 16638c2ecf20Sopenharmony_cistatic struct clk_branch vmem_ahb_clk = { 16648c2ecf20Sopenharmony_ci .halt_reg = 0x1208, 16658c2ecf20Sopenharmony_ci .clkr = { 16668c2ecf20Sopenharmony_ci .enable_reg = 0x1208, 16678c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16688c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16698c2ecf20Sopenharmony_ci .name = "vmem_ahb_clk", 16708c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 16718c2ecf20Sopenharmony_ci .num_parents = 1, 16728c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16738c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16748c2ecf20Sopenharmony_ci }, 16758c2ecf20Sopenharmony_ci }, 16768c2ecf20Sopenharmony_ci}; 16778c2ecf20Sopenharmony_ci 16788c2ecf20Sopenharmony_cistatic struct clk_branch mmss_rbcpr_clk = { 16798c2ecf20Sopenharmony_ci .halt_reg = 0x4084, 16808c2ecf20Sopenharmony_ci .clkr = { 16818c2ecf20Sopenharmony_ci .enable_reg = 0x4084, 16828c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16838c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16848c2ecf20Sopenharmony_ci .name = "mmss_rbcpr_clk", 16858c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "rbcpr_clk_src" }, 16868c2ecf20Sopenharmony_ci .num_parents = 1, 16878c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16898c2ecf20Sopenharmony_ci }, 16908c2ecf20Sopenharmony_ci }, 16918c2ecf20Sopenharmony_ci}; 16928c2ecf20Sopenharmony_ci 16938c2ecf20Sopenharmony_cistatic struct clk_branch mmss_rbcpr_ahb_clk = { 16948c2ecf20Sopenharmony_ci .halt_reg = 0x4088, 16958c2ecf20Sopenharmony_ci .clkr = { 16968c2ecf20Sopenharmony_ci .enable_reg = 0x4088, 16978c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16988c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16998c2ecf20Sopenharmony_ci .name = "mmss_rbcpr_ahb_clk", 17008c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 17018c2ecf20Sopenharmony_ci .num_parents = 1, 17028c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17038c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17048c2ecf20Sopenharmony_ci }, 17058c2ecf20Sopenharmony_ci }, 17068c2ecf20Sopenharmony_ci}; 17078c2ecf20Sopenharmony_ci 17088c2ecf20Sopenharmony_cistatic struct clk_branch video_core_clk = { 17098c2ecf20Sopenharmony_ci .halt_reg = 0x1028, 17108c2ecf20Sopenharmony_ci .clkr = { 17118c2ecf20Sopenharmony_ci .enable_reg = 0x1028, 17128c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17138c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17148c2ecf20Sopenharmony_ci .name = "video_core_clk", 17158c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "video_core_clk_src" }, 17168c2ecf20Sopenharmony_ci .num_parents = 1, 17178c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17188c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17198c2ecf20Sopenharmony_ci }, 17208c2ecf20Sopenharmony_ci }, 17218c2ecf20Sopenharmony_ci}; 17228c2ecf20Sopenharmony_ci 17238c2ecf20Sopenharmony_cistatic struct clk_branch video_axi_clk = { 17248c2ecf20Sopenharmony_ci .halt_reg = 0x1034, 17258c2ecf20Sopenharmony_ci .clkr = { 17268c2ecf20Sopenharmony_ci .enable_reg = 0x1034, 17278c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17288c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17298c2ecf20Sopenharmony_ci .name = "video_axi_clk", 17308c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 17318c2ecf20Sopenharmony_ci .num_parents = 1, 17328c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17338c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17348c2ecf20Sopenharmony_ci }, 17358c2ecf20Sopenharmony_ci }, 17368c2ecf20Sopenharmony_ci}; 17378c2ecf20Sopenharmony_ci 17388c2ecf20Sopenharmony_cistatic struct clk_branch video_maxi_clk = { 17398c2ecf20Sopenharmony_ci .halt_reg = 0x1038, 17408c2ecf20Sopenharmony_ci .clkr = { 17418c2ecf20Sopenharmony_ci .enable_reg = 0x1038, 17428c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17448c2ecf20Sopenharmony_ci .name = "video_maxi_clk", 17458c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "maxi_clk_src" }, 17468c2ecf20Sopenharmony_ci .num_parents = 1, 17478c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17488c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17498c2ecf20Sopenharmony_ci }, 17508c2ecf20Sopenharmony_ci }, 17518c2ecf20Sopenharmony_ci}; 17528c2ecf20Sopenharmony_ci 17538c2ecf20Sopenharmony_cistatic struct clk_branch video_ahb_clk = { 17548c2ecf20Sopenharmony_ci .halt_reg = 0x1030, 17558c2ecf20Sopenharmony_ci .clkr = { 17568c2ecf20Sopenharmony_ci .enable_reg = 0x1030, 17578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17598c2ecf20Sopenharmony_ci .name = "video_ahb_clk", 17608c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 17618c2ecf20Sopenharmony_ci .num_parents = 1, 17628c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17638c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17648c2ecf20Sopenharmony_ci }, 17658c2ecf20Sopenharmony_ci }, 17668c2ecf20Sopenharmony_ci}; 17678c2ecf20Sopenharmony_ci 17688c2ecf20Sopenharmony_cistatic struct clk_branch video_subcore0_clk = { 17698c2ecf20Sopenharmony_ci .halt_reg = 0x1048, 17708c2ecf20Sopenharmony_ci .clkr = { 17718c2ecf20Sopenharmony_ci .enable_reg = 0x1048, 17728c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17748c2ecf20Sopenharmony_ci .name = "video_subcore0_clk", 17758c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "video_subcore0_clk_src" }, 17768c2ecf20Sopenharmony_ci .num_parents = 1, 17778c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17788c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17798c2ecf20Sopenharmony_ci }, 17808c2ecf20Sopenharmony_ci }, 17818c2ecf20Sopenharmony_ci}; 17828c2ecf20Sopenharmony_ci 17838c2ecf20Sopenharmony_cistatic struct clk_branch video_subcore1_clk = { 17848c2ecf20Sopenharmony_ci .halt_reg = 0x104c, 17858c2ecf20Sopenharmony_ci .clkr = { 17868c2ecf20Sopenharmony_ci .enable_reg = 0x104c, 17878c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17898c2ecf20Sopenharmony_ci .name = "video_subcore1_clk", 17908c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "video_subcore1_clk_src" }, 17918c2ecf20Sopenharmony_ci .num_parents = 1, 17928c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17938c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17948c2ecf20Sopenharmony_ci }, 17958c2ecf20Sopenharmony_ci }, 17968c2ecf20Sopenharmony_ci}; 17978c2ecf20Sopenharmony_ci 17988c2ecf20Sopenharmony_cistatic struct clk_branch mdss_ahb_clk = { 17998c2ecf20Sopenharmony_ci .halt_reg = 0x2308, 18008c2ecf20Sopenharmony_ci .clkr = { 18018c2ecf20Sopenharmony_ci .enable_reg = 0x2308, 18028c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18038c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18048c2ecf20Sopenharmony_ci .name = "mdss_ahb_clk", 18058c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 18068c2ecf20Sopenharmony_ci .num_parents = 1, 18078c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18088c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18098c2ecf20Sopenharmony_ci }, 18108c2ecf20Sopenharmony_ci }, 18118c2ecf20Sopenharmony_ci}; 18128c2ecf20Sopenharmony_ci 18138c2ecf20Sopenharmony_cistatic struct clk_branch mdss_hdmi_ahb_clk = { 18148c2ecf20Sopenharmony_ci .halt_reg = 0x230c, 18158c2ecf20Sopenharmony_ci .clkr = { 18168c2ecf20Sopenharmony_ci .enable_reg = 0x230c, 18178c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18188c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18198c2ecf20Sopenharmony_ci .name = "mdss_hdmi_ahb_clk", 18208c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 18218c2ecf20Sopenharmony_ci .num_parents = 1, 18228c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18238c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18248c2ecf20Sopenharmony_ci }, 18258c2ecf20Sopenharmony_ci }, 18268c2ecf20Sopenharmony_ci}; 18278c2ecf20Sopenharmony_ci 18288c2ecf20Sopenharmony_cistatic struct clk_branch mdss_axi_clk = { 18298c2ecf20Sopenharmony_ci .halt_reg = 0x2310, 18308c2ecf20Sopenharmony_ci .clkr = { 18318c2ecf20Sopenharmony_ci .enable_reg = 0x2310, 18328c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18338c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18348c2ecf20Sopenharmony_ci .name = "mdss_axi_clk", 18358c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 18368c2ecf20Sopenharmony_ci .num_parents = 1, 18378c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18388c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18398c2ecf20Sopenharmony_ci }, 18408c2ecf20Sopenharmony_ci }, 18418c2ecf20Sopenharmony_ci}; 18428c2ecf20Sopenharmony_ci 18438c2ecf20Sopenharmony_cistatic struct clk_branch mdss_pclk0_clk = { 18448c2ecf20Sopenharmony_ci .halt_reg = 0x2314, 18458c2ecf20Sopenharmony_ci .clkr = { 18468c2ecf20Sopenharmony_ci .enable_reg = 0x2314, 18478c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18498c2ecf20Sopenharmony_ci .name = "mdss_pclk0_clk", 18508c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "pclk0_clk_src" }, 18518c2ecf20Sopenharmony_ci .num_parents = 1, 18528c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18538c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18548c2ecf20Sopenharmony_ci }, 18558c2ecf20Sopenharmony_ci }, 18568c2ecf20Sopenharmony_ci}; 18578c2ecf20Sopenharmony_ci 18588c2ecf20Sopenharmony_cistatic struct clk_branch mdss_pclk1_clk = { 18598c2ecf20Sopenharmony_ci .halt_reg = 0x2318, 18608c2ecf20Sopenharmony_ci .clkr = { 18618c2ecf20Sopenharmony_ci .enable_reg = 0x2318, 18628c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18638c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18648c2ecf20Sopenharmony_ci .name = "mdss_pclk1_clk", 18658c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "pclk1_clk_src" }, 18668c2ecf20Sopenharmony_ci .num_parents = 1, 18678c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18688c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18698c2ecf20Sopenharmony_ci }, 18708c2ecf20Sopenharmony_ci }, 18718c2ecf20Sopenharmony_ci}; 18728c2ecf20Sopenharmony_ci 18738c2ecf20Sopenharmony_cistatic struct clk_branch mdss_mdp_clk = { 18748c2ecf20Sopenharmony_ci .halt_reg = 0x231c, 18758c2ecf20Sopenharmony_ci .clkr = { 18768c2ecf20Sopenharmony_ci .enable_reg = 0x231c, 18778c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18788c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18798c2ecf20Sopenharmony_ci .name = "mdss_mdp_clk", 18808c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mdp_clk_src" }, 18818c2ecf20Sopenharmony_ci .num_parents = 1, 18828c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18838c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18848c2ecf20Sopenharmony_ci }, 18858c2ecf20Sopenharmony_ci }, 18868c2ecf20Sopenharmony_ci}; 18878c2ecf20Sopenharmony_ci 18888c2ecf20Sopenharmony_cistatic struct clk_branch mdss_extpclk_clk = { 18898c2ecf20Sopenharmony_ci .halt_reg = 0x2324, 18908c2ecf20Sopenharmony_ci .clkr = { 18918c2ecf20Sopenharmony_ci .enable_reg = 0x2324, 18928c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18938c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18948c2ecf20Sopenharmony_ci .name = "mdss_extpclk_clk", 18958c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "extpclk_clk_src" }, 18968c2ecf20Sopenharmony_ci .num_parents = 1, 18978c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18988c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18998c2ecf20Sopenharmony_ci }, 19008c2ecf20Sopenharmony_ci }, 19018c2ecf20Sopenharmony_ci}; 19028c2ecf20Sopenharmony_ci 19038c2ecf20Sopenharmony_cistatic struct clk_branch mdss_vsync_clk = { 19048c2ecf20Sopenharmony_ci .halt_reg = 0x2328, 19058c2ecf20Sopenharmony_ci .clkr = { 19068c2ecf20Sopenharmony_ci .enable_reg = 0x2328, 19078c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19098c2ecf20Sopenharmony_ci .name = "mdss_vsync_clk", 19108c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "vsync_clk_src" }, 19118c2ecf20Sopenharmony_ci .num_parents = 1, 19128c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19138c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19148c2ecf20Sopenharmony_ci }, 19158c2ecf20Sopenharmony_ci }, 19168c2ecf20Sopenharmony_ci}; 19178c2ecf20Sopenharmony_ci 19188c2ecf20Sopenharmony_cistatic struct clk_branch mdss_hdmi_clk = { 19198c2ecf20Sopenharmony_ci .halt_reg = 0x2338, 19208c2ecf20Sopenharmony_ci .clkr = { 19218c2ecf20Sopenharmony_ci .enable_reg = 0x2338, 19228c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19238c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19248c2ecf20Sopenharmony_ci .name = "mdss_hdmi_clk", 19258c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "hdmi_clk_src" }, 19268c2ecf20Sopenharmony_ci .num_parents = 1, 19278c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19288c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19298c2ecf20Sopenharmony_ci }, 19308c2ecf20Sopenharmony_ci }, 19318c2ecf20Sopenharmony_ci}; 19328c2ecf20Sopenharmony_ci 19338c2ecf20Sopenharmony_cistatic struct clk_branch mdss_byte0_clk = { 19348c2ecf20Sopenharmony_ci .halt_reg = 0x233c, 19358c2ecf20Sopenharmony_ci .clkr = { 19368c2ecf20Sopenharmony_ci .enable_reg = 0x233c, 19378c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19388c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19398c2ecf20Sopenharmony_ci .name = "mdss_byte0_clk", 19408c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "byte0_clk_src" }, 19418c2ecf20Sopenharmony_ci .num_parents = 1, 19428c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19438c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19448c2ecf20Sopenharmony_ci }, 19458c2ecf20Sopenharmony_ci }, 19468c2ecf20Sopenharmony_ci}; 19478c2ecf20Sopenharmony_ci 19488c2ecf20Sopenharmony_cistatic struct clk_branch mdss_byte1_clk = { 19498c2ecf20Sopenharmony_ci .halt_reg = 0x2340, 19508c2ecf20Sopenharmony_ci .clkr = { 19518c2ecf20Sopenharmony_ci .enable_reg = 0x2340, 19528c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19538c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19548c2ecf20Sopenharmony_ci .name = "mdss_byte1_clk", 19558c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "byte1_clk_src" }, 19568c2ecf20Sopenharmony_ci .num_parents = 1, 19578c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19588c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19598c2ecf20Sopenharmony_ci }, 19608c2ecf20Sopenharmony_ci }, 19618c2ecf20Sopenharmony_ci}; 19628c2ecf20Sopenharmony_ci 19638c2ecf20Sopenharmony_cistatic struct clk_branch mdss_esc0_clk = { 19648c2ecf20Sopenharmony_ci .halt_reg = 0x2344, 19658c2ecf20Sopenharmony_ci .clkr = { 19668c2ecf20Sopenharmony_ci .enable_reg = 0x2344, 19678c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19688c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19698c2ecf20Sopenharmony_ci .name = "mdss_esc0_clk", 19708c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "esc0_clk_src" }, 19718c2ecf20Sopenharmony_ci .num_parents = 1, 19728c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19738c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19748c2ecf20Sopenharmony_ci }, 19758c2ecf20Sopenharmony_ci }, 19768c2ecf20Sopenharmony_ci}; 19778c2ecf20Sopenharmony_ci 19788c2ecf20Sopenharmony_cistatic struct clk_branch mdss_esc1_clk = { 19798c2ecf20Sopenharmony_ci .halt_reg = 0x2348, 19808c2ecf20Sopenharmony_ci .clkr = { 19818c2ecf20Sopenharmony_ci .enable_reg = 0x2348, 19828c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19838c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19848c2ecf20Sopenharmony_ci .name = "mdss_esc1_clk", 19858c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "esc1_clk_src" }, 19868c2ecf20Sopenharmony_ci .num_parents = 1, 19878c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19898c2ecf20Sopenharmony_ci }, 19908c2ecf20Sopenharmony_ci }, 19918c2ecf20Sopenharmony_ci}; 19928c2ecf20Sopenharmony_ci 19938c2ecf20Sopenharmony_cistatic struct clk_branch camss_top_ahb_clk = { 19948c2ecf20Sopenharmony_ci .halt_reg = 0x3484, 19958c2ecf20Sopenharmony_ci .clkr = { 19968c2ecf20Sopenharmony_ci .enable_reg = 0x3484, 19978c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19988c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19998c2ecf20Sopenharmony_ci .name = "camss_top_ahb_clk", 20008c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 20018c2ecf20Sopenharmony_ci .num_parents = 1, 20028c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20038c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20048c2ecf20Sopenharmony_ci }, 20058c2ecf20Sopenharmony_ci }, 20068c2ecf20Sopenharmony_ci}; 20078c2ecf20Sopenharmony_ci 20088c2ecf20Sopenharmony_cistatic struct clk_branch camss_ahb_clk = { 20098c2ecf20Sopenharmony_ci .halt_reg = 0x348c, 20108c2ecf20Sopenharmony_ci .clkr = { 20118c2ecf20Sopenharmony_ci .enable_reg = 0x348c, 20128c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20138c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20148c2ecf20Sopenharmony_ci .name = "camss_ahb_clk", 20158c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 20168c2ecf20Sopenharmony_ci .num_parents = 1, 20178c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20188c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20198c2ecf20Sopenharmony_ci }, 20208c2ecf20Sopenharmony_ci }, 20218c2ecf20Sopenharmony_ci}; 20228c2ecf20Sopenharmony_ci 20238c2ecf20Sopenharmony_cistatic struct clk_branch camss_micro_ahb_clk = { 20248c2ecf20Sopenharmony_ci .halt_reg = 0x3494, 20258c2ecf20Sopenharmony_ci .clkr = { 20268c2ecf20Sopenharmony_ci .enable_reg = 0x3494, 20278c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20288c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20298c2ecf20Sopenharmony_ci .name = "camss_micro_ahb_clk", 20308c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 20318c2ecf20Sopenharmony_ci .num_parents = 1, 20328c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20338c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20348c2ecf20Sopenharmony_ci }, 20358c2ecf20Sopenharmony_ci }, 20368c2ecf20Sopenharmony_ci}; 20378c2ecf20Sopenharmony_ci 20388c2ecf20Sopenharmony_cistatic struct clk_branch camss_gp0_clk = { 20398c2ecf20Sopenharmony_ci .halt_reg = 0x3444, 20408c2ecf20Sopenharmony_ci .clkr = { 20418c2ecf20Sopenharmony_ci .enable_reg = 0x3444, 20428c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20448c2ecf20Sopenharmony_ci .name = "camss_gp0_clk", 20458c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "camss_gp0_clk_src" }, 20468c2ecf20Sopenharmony_ci .num_parents = 1, 20478c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20488c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20498c2ecf20Sopenharmony_ci }, 20508c2ecf20Sopenharmony_ci }, 20518c2ecf20Sopenharmony_ci}; 20528c2ecf20Sopenharmony_ci 20538c2ecf20Sopenharmony_cistatic struct clk_branch camss_gp1_clk = { 20548c2ecf20Sopenharmony_ci .halt_reg = 0x3474, 20558c2ecf20Sopenharmony_ci .clkr = { 20568c2ecf20Sopenharmony_ci .enable_reg = 0x3474, 20578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20598c2ecf20Sopenharmony_ci .name = "camss_gp1_clk", 20608c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "camss_gp1_clk_src" }, 20618c2ecf20Sopenharmony_ci .num_parents = 1, 20628c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20638c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20648c2ecf20Sopenharmony_ci }, 20658c2ecf20Sopenharmony_ci }, 20668c2ecf20Sopenharmony_ci}; 20678c2ecf20Sopenharmony_ci 20688c2ecf20Sopenharmony_cistatic struct clk_branch camss_mclk0_clk = { 20698c2ecf20Sopenharmony_ci .halt_reg = 0x3384, 20708c2ecf20Sopenharmony_ci .clkr = { 20718c2ecf20Sopenharmony_ci .enable_reg = 0x3384, 20728c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20748c2ecf20Sopenharmony_ci .name = "camss_mclk0_clk", 20758c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mclk0_clk_src" }, 20768c2ecf20Sopenharmony_ci .num_parents = 1, 20778c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20788c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20798c2ecf20Sopenharmony_ci }, 20808c2ecf20Sopenharmony_ci }, 20818c2ecf20Sopenharmony_ci}; 20828c2ecf20Sopenharmony_ci 20838c2ecf20Sopenharmony_cistatic struct clk_branch camss_mclk1_clk = { 20848c2ecf20Sopenharmony_ci .halt_reg = 0x33b4, 20858c2ecf20Sopenharmony_ci .clkr = { 20868c2ecf20Sopenharmony_ci .enable_reg = 0x33b4, 20878c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20898c2ecf20Sopenharmony_ci .name = "camss_mclk1_clk", 20908c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mclk1_clk_src" }, 20918c2ecf20Sopenharmony_ci .num_parents = 1, 20928c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20938c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20948c2ecf20Sopenharmony_ci }, 20958c2ecf20Sopenharmony_ci }, 20968c2ecf20Sopenharmony_ci}; 20978c2ecf20Sopenharmony_ci 20988c2ecf20Sopenharmony_cistatic struct clk_branch camss_mclk2_clk = { 20998c2ecf20Sopenharmony_ci .halt_reg = 0x33e4, 21008c2ecf20Sopenharmony_ci .clkr = { 21018c2ecf20Sopenharmony_ci .enable_reg = 0x33e4, 21028c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21038c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21048c2ecf20Sopenharmony_ci .name = "camss_mclk2_clk", 21058c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mclk2_clk_src" }, 21068c2ecf20Sopenharmony_ci .num_parents = 1, 21078c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21088c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21098c2ecf20Sopenharmony_ci }, 21108c2ecf20Sopenharmony_ci }, 21118c2ecf20Sopenharmony_ci}; 21128c2ecf20Sopenharmony_ci 21138c2ecf20Sopenharmony_cistatic struct clk_branch camss_mclk3_clk = { 21148c2ecf20Sopenharmony_ci .halt_reg = 0x3414, 21158c2ecf20Sopenharmony_ci .clkr = { 21168c2ecf20Sopenharmony_ci .enable_reg = 0x3414, 21178c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21188c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21198c2ecf20Sopenharmony_ci .name = "camss_mclk3_clk", 21208c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mclk3_clk_src" }, 21218c2ecf20Sopenharmony_ci .num_parents = 1, 21228c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21238c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21248c2ecf20Sopenharmony_ci }, 21258c2ecf20Sopenharmony_ci }, 21268c2ecf20Sopenharmony_ci}; 21278c2ecf20Sopenharmony_ci 21288c2ecf20Sopenharmony_cistatic struct clk_branch camss_cci_clk = { 21298c2ecf20Sopenharmony_ci .halt_reg = 0x3344, 21308c2ecf20Sopenharmony_ci .clkr = { 21318c2ecf20Sopenharmony_ci .enable_reg = 0x3344, 21328c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21338c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21348c2ecf20Sopenharmony_ci .name = "camss_cci_clk", 21358c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "cci_clk_src" }, 21368c2ecf20Sopenharmony_ci .num_parents = 1, 21378c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21388c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21398c2ecf20Sopenharmony_ci }, 21408c2ecf20Sopenharmony_ci }, 21418c2ecf20Sopenharmony_ci}; 21428c2ecf20Sopenharmony_ci 21438c2ecf20Sopenharmony_cistatic struct clk_branch camss_cci_ahb_clk = { 21448c2ecf20Sopenharmony_ci .halt_reg = 0x3348, 21458c2ecf20Sopenharmony_ci .clkr = { 21468c2ecf20Sopenharmony_ci .enable_reg = 0x3348, 21478c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21498c2ecf20Sopenharmony_ci .name = "camss_cci_ahb_clk", 21508c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 21518c2ecf20Sopenharmony_ci .num_parents = 1, 21528c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21538c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21548c2ecf20Sopenharmony_ci }, 21558c2ecf20Sopenharmony_ci }, 21568c2ecf20Sopenharmony_ci}; 21578c2ecf20Sopenharmony_ci 21588c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0phytimer_clk = { 21598c2ecf20Sopenharmony_ci .halt_reg = 0x3024, 21608c2ecf20Sopenharmony_ci .clkr = { 21618c2ecf20Sopenharmony_ci .enable_reg = 0x3024, 21628c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21638c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21648c2ecf20Sopenharmony_ci .name = "camss_csi0phytimer_clk", 21658c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi0phytimer_clk_src" }, 21668c2ecf20Sopenharmony_ci .num_parents = 1, 21678c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21688c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21698c2ecf20Sopenharmony_ci }, 21708c2ecf20Sopenharmony_ci }, 21718c2ecf20Sopenharmony_ci}; 21728c2ecf20Sopenharmony_ci 21738c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1phytimer_clk = { 21748c2ecf20Sopenharmony_ci .halt_reg = 0x3054, 21758c2ecf20Sopenharmony_ci .clkr = { 21768c2ecf20Sopenharmony_ci .enable_reg = 0x3054, 21778c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21788c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21798c2ecf20Sopenharmony_ci .name = "camss_csi1phytimer_clk", 21808c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi1phytimer_clk_src" }, 21818c2ecf20Sopenharmony_ci .num_parents = 1, 21828c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21838c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21848c2ecf20Sopenharmony_ci }, 21858c2ecf20Sopenharmony_ci }, 21868c2ecf20Sopenharmony_ci}; 21878c2ecf20Sopenharmony_ci 21888c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2phytimer_clk = { 21898c2ecf20Sopenharmony_ci .halt_reg = 0x3084, 21908c2ecf20Sopenharmony_ci .clkr = { 21918c2ecf20Sopenharmony_ci .enable_reg = 0x3084, 21928c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21938c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21948c2ecf20Sopenharmony_ci .name = "camss_csi2phytimer_clk", 21958c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi2phytimer_clk_src" }, 21968c2ecf20Sopenharmony_ci .num_parents = 1, 21978c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21988c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21998c2ecf20Sopenharmony_ci }, 22008c2ecf20Sopenharmony_ci }, 22018c2ecf20Sopenharmony_ci}; 22028c2ecf20Sopenharmony_ci 22038c2ecf20Sopenharmony_cistatic struct clk_branch camss_csiphy0_3p_clk = { 22048c2ecf20Sopenharmony_ci .halt_reg = 0x3234, 22058c2ecf20Sopenharmony_ci .clkr = { 22068c2ecf20Sopenharmony_ci .enable_reg = 0x3234, 22078c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22098c2ecf20Sopenharmony_ci .name = "camss_csiphy0_3p_clk", 22108c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csiphy0_3p_clk_src" }, 22118c2ecf20Sopenharmony_ci .num_parents = 1, 22128c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22138c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22148c2ecf20Sopenharmony_ci }, 22158c2ecf20Sopenharmony_ci }, 22168c2ecf20Sopenharmony_ci}; 22178c2ecf20Sopenharmony_ci 22188c2ecf20Sopenharmony_cistatic struct clk_branch camss_csiphy1_3p_clk = { 22198c2ecf20Sopenharmony_ci .halt_reg = 0x3254, 22208c2ecf20Sopenharmony_ci .clkr = { 22218c2ecf20Sopenharmony_ci .enable_reg = 0x3254, 22228c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22238c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22248c2ecf20Sopenharmony_ci .name = "camss_csiphy1_3p_clk", 22258c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csiphy1_3p_clk_src" }, 22268c2ecf20Sopenharmony_ci .num_parents = 1, 22278c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22288c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22298c2ecf20Sopenharmony_ci }, 22308c2ecf20Sopenharmony_ci }, 22318c2ecf20Sopenharmony_ci}; 22328c2ecf20Sopenharmony_ci 22338c2ecf20Sopenharmony_cistatic struct clk_branch camss_csiphy2_3p_clk = { 22348c2ecf20Sopenharmony_ci .halt_reg = 0x3274, 22358c2ecf20Sopenharmony_ci .clkr = { 22368c2ecf20Sopenharmony_ci .enable_reg = 0x3274, 22378c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22388c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22398c2ecf20Sopenharmony_ci .name = "camss_csiphy2_3p_clk", 22408c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csiphy2_3p_clk_src" }, 22418c2ecf20Sopenharmony_ci .num_parents = 1, 22428c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22438c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22448c2ecf20Sopenharmony_ci }, 22458c2ecf20Sopenharmony_ci }, 22468c2ecf20Sopenharmony_ci}; 22478c2ecf20Sopenharmony_ci 22488c2ecf20Sopenharmony_cistatic struct clk_branch camss_jpeg0_clk = { 22498c2ecf20Sopenharmony_ci .halt_reg = 0x35a8, 22508c2ecf20Sopenharmony_ci .clkr = { 22518c2ecf20Sopenharmony_ci .enable_reg = 0x35a8, 22528c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22538c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22548c2ecf20Sopenharmony_ci .name = "camss_jpeg0_clk", 22558c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "jpeg0_clk_src" }, 22568c2ecf20Sopenharmony_ci .num_parents = 1, 22578c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22588c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22598c2ecf20Sopenharmony_ci }, 22608c2ecf20Sopenharmony_ci }, 22618c2ecf20Sopenharmony_ci}; 22628c2ecf20Sopenharmony_ci 22638c2ecf20Sopenharmony_cistatic struct clk_branch camss_jpeg2_clk = { 22648c2ecf20Sopenharmony_ci .halt_reg = 0x35b0, 22658c2ecf20Sopenharmony_ci .clkr = { 22668c2ecf20Sopenharmony_ci .enable_reg = 0x35b0, 22678c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22688c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22698c2ecf20Sopenharmony_ci .name = "camss_jpeg2_clk", 22708c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "jpeg2_clk_src" }, 22718c2ecf20Sopenharmony_ci .num_parents = 1, 22728c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22738c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22748c2ecf20Sopenharmony_ci }, 22758c2ecf20Sopenharmony_ci }, 22768c2ecf20Sopenharmony_ci}; 22778c2ecf20Sopenharmony_ci 22788c2ecf20Sopenharmony_cistatic struct clk_branch camss_jpeg_dma_clk = { 22798c2ecf20Sopenharmony_ci .halt_reg = 0x35c0, 22808c2ecf20Sopenharmony_ci .clkr = { 22818c2ecf20Sopenharmony_ci .enable_reg = 0x35c0, 22828c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22838c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22848c2ecf20Sopenharmony_ci .name = "camss_jpeg_dma_clk", 22858c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "jpeg_dma_clk_src" }, 22868c2ecf20Sopenharmony_ci .num_parents = 1, 22878c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22898c2ecf20Sopenharmony_ci }, 22908c2ecf20Sopenharmony_ci }, 22918c2ecf20Sopenharmony_ci}; 22928c2ecf20Sopenharmony_ci 22938c2ecf20Sopenharmony_cistatic struct clk_branch camss_jpeg_ahb_clk = { 22948c2ecf20Sopenharmony_ci .halt_reg = 0x35b4, 22958c2ecf20Sopenharmony_ci .clkr = { 22968c2ecf20Sopenharmony_ci .enable_reg = 0x35b4, 22978c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22988c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22998c2ecf20Sopenharmony_ci .name = "camss_jpeg_ahb_clk", 23008c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 23018c2ecf20Sopenharmony_ci .num_parents = 1, 23028c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23038c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23048c2ecf20Sopenharmony_ci }, 23058c2ecf20Sopenharmony_ci }, 23068c2ecf20Sopenharmony_ci}; 23078c2ecf20Sopenharmony_ci 23088c2ecf20Sopenharmony_cistatic struct clk_branch camss_jpeg_axi_clk = { 23098c2ecf20Sopenharmony_ci .halt_reg = 0x35b8, 23108c2ecf20Sopenharmony_ci .clkr = { 23118c2ecf20Sopenharmony_ci .enable_reg = 0x35b8, 23128c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23138c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23148c2ecf20Sopenharmony_ci .name = "camss_jpeg_axi_clk", 23158c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 23168c2ecf20Sopenharmony_ci .num_parents = 1, 23178c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23188c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23198c2ecf20Sopenharmony_ci }, 23208c2ecf20Sopenharmony_ci }, 23218c2ecf20Sopenharmony_ci}; 23228c2ecf20Sopenharmony_ci 23238c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe_ahb_clk = { 23248c2ecf20Sopenharmony_ci .halt_reg = 0x36b8, 23258c2ecf20Sopenharmony_ci .clkr = { 23268c2ecf20Sopenharmony_ci .enable_reg = 0x36b8, 23278c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23288c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23298c2ecf20Sopenharmony_ci .name = "camss_vfe_ahb_clk", 23308c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 23318c2ecf20Sopenharmony_ci .num_parents = 1, 23328c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23338c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23348c2ecf20Sopenharmony_ci }, 23358c2ecf20Sopenharmony_ci }, 23368c2ecf20Sopenharmony_ci}; 23378c2ecf20Sopenharmony_ci 23388c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe_axi_clk = { 23398c2ecf20Sopenharmony_ci .halt_reg = 0x36bc, 23408c2ecf20Sopenharmony_ci .clkr = { 23418c2ecf20Sopenharmony_ci .enable_reg = 0x36bc, 23428c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23448c2ecf20Sopenharmony_ci .name = "camss_vfe_axi_clk", 23458c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 23468c2ecf20Sopenharmony_ci .num_parents = 1, 23478c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23488c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23498c2ecf20Sopenharmony_ci }, 23508c2ecf20Sopenharmony_ci }, 23518c2ecf20Sopenharmony_ci}; 23528c2ecf20Sopenharmony_ci 23538c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe0_clk = { 23548c2ecf20Sopenharmony_ci .halt_reg = 0x36a8, 23558c2ecf20Sopenharmony_ci .clkr = { 23568c2ecf20Sopenharmony_ci .enable_reg = 0x36a8, 23578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23598c2ecf20Sopenharmony_ci .name = "camss_vfe0_clk", 23608c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "vfe0_clk_src" }, 23618c2ecf20Sopenharmony_ci .num_parents = 1, 23628c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23638c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23648c2ecf20Sopenharmony_ci }, 23658c2ecf20Sopenharmony_ci }, 23668c2ecf20Sopenharmony_ci}; 23678c2ecf20Sopenharmony_ci 23688c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe0_stream_clk = { 23698c2ecf20Sopenharmony_ci .halt_reg = 0x3720, 23708c2ecf20Sopenharmony_ci .clkr = { 23718c2ecf20Sopenharmony_ci .enable_reg = 0x3720, 23728c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23748c2ecf20Sopenharmony_ci .name = "camss_vfe0_stream_clk", 23758c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "vfe0_clk_src" }, 23768c2ecf20Sopenharmony_ci .num_parents = 1, 23778c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23788c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23798c2ecf20Sopenharmony_ci }, 23808c2ecf20Sopenharmony_ci }, 23818c2ecf20Sopenharmony_ci}; 23828c2ecf20Sopenharmony_ci 23838c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe0_ahb_clk = { 23848c2ecf20Sopenharmony_ci .halt_reg = 0x3668, 23858c2ecf20Sopenharmony_ci .clkr = { 23868c2ecf20Sopenharmony_ci .enable_reg = 0x3668, 23878c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23898c2ecf20Sopenharmony_ci .name = "camss_vfe0_ahb_clk", 23908c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 23918c2ecf20Sopenharmony_ci .num_parents = 1, 23928c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23938c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23948c2ecf20Sopenharmony_ci }, 23958c2ecf20Sopenharmony_ci }, 23968c2ecf20Sopenharmony_ci}; 23978c2ecf20Sopenharmony_ci 23988c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe1_clk = { 23998c2ecf20Sopenharmony_ci .halt_reg = 0x36ac, 24008c2ecf20Sopenharmony_ci .clkr = { 24018c2ecf20Sopenharmony_ci .enable_reg = 0x36ac, 24028c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24038c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24048c2ecf20Sopenharmony_ci .name = "camss_vfe1_clk", 24058c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "vfe1_clk_src" }, 24068c2ecf20Sopenharmony_ci .num_parents = 1, 24078c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24088c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24098c2ecf20Sopenharmony_ci }, 24108c2ecf20Sopenharmony_ci }, 24118c2ecf20Sopenharmony_ci}; 24128c2ecf20Sopenharmony_ci 24138c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe1_stream_clk = { 24148c2ecf20Sopenharmony_ci .halt_reg = 0x3724, 24158c2ecf20Sopenharmony_ci .clkr = { 24168c2ecf20Sopenharmony_ci .enable_reg = 0x3724, 24178c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24188c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24198c2ecf20Sopenharmony_ci .name = "camss_vfe1_stream_clk", 24208c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "vfe1_clk_src" }, 24218c2ecf20Sopenharmony_ci .num_parents = 1, 24228c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24238c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24248c2ecf20Sopenharmony_ci }, 24258c2ecf20Sopenharmony_ci }, 24268c2ecf20Sopenharmony_ci}; 24278c2ecf20Sopenharmony_ci 24288c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe1_ahb_clk = { 24298c2ecf20Sopenharmony_ci .halt_reg = 0x3678, 24308c2ecf20Sopenharmony_ci .clkr = { 24318c2ecf20Sopenharmony_ci .enable_reg = 0x3678, 24328c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24338c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24348c2ecf20Sopenharmony_ci .name = "camss_vfe1_ahb_clk", 24358c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 24368c2ecf20Sopenharmony_ci .num_parents = 1, 24378c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24388c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24398c2ecf20Sopenharmony_ci }, 24408c2ecf20Sopenharmony_ci }, 24418c2ecf20Sopenharmony_ci}; 24428c2ecf20Sopenharmony_ci 24438c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi_vfe0_clk = { 24448c2ecf20Sopenharmony_ci .halt_reg = 0x3704, 24458c2ecf20Sopenharmony_ci .clkr = { 24468c2ecf20Sopenharmony_ci .enable_reg = 0x3704, 24478c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24498c2ecf20Sopenharmony_ci .name = "camss_csi_vfe0_clk", 24508c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "vfe0_clk_src" }, 24518c2ecf20Sopenharmony_ci .num_parents = 1, 24528c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24538c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24548c2ecf20Sopenharmony_ci }, 24558c2ecf20Sopenharmony_ci }, 24568c2ecf20Sopenharmony_ci}; 24578c2ecf20Sopenharmony_ci 24588c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi_vfe1_clk = { 24598c2ecf20Sopenharmony_ci .halt_reg = 0x3714, 24608c2ecf20Sopenharmony_ci .clkr = { 24618c2ecf20Sopenharmony_ci .enable_reg = 0x3714, 24628c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24638c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24648c2ecf20Sopenharmony_ci .name = "camss_csi_vfe1_clk", 24658c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "vfe1_clk_src" }, 24668c2ecf20Sopenharmony_ci .num_parents = 1, 24678c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24688c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24698c2ecf20Sopenharmony_ci }, 24708c2ecf20Sopenharmony_ci }, 24718c2ecf20Sopenharmony_ci}; 24728c2ecf20Sopenharmony_ci 24738c2ecf20Sopenharmony_cistatic struct clk_branch camss_cpp_vbif_ahb_clk = { 24748c2ecf20Sopenharmony_ci .halt_reg = 0x36c8, 24758c2ecf20Sopenharmony_ci .clkr = { 24768c2ecf20Sopenharmony_ci .enable_reg = 0x36c8, 24778c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24788c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24798c2ecf20Sopenharmony_ci .name = "camss_cpp_vbif_ahb_clk", 24808c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 24818c2ecf20Sopenharmony_ci .num_parents = 1, 24828c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24838c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24848c2ecf20Sopenharmony_ci }, 24858c2ecf20Sopenharmony_ci }, 24868c2ecf20Sopenharmony_ci}; 24878c2ecf20Sopenharmony_ci 24888c2ecf20Sopenharmony_cistatic struct clk_branch camss_cpp_axi_clk = { 24898c2ecf20Sopenharmony_ci .halt_reg = 0x36c4, 24908c2ecf20Sopenharmony_ci .clkr = { 24918c2ecf20Sopenharmony_ci .enable_reg = 0x36c4, 24928c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24938c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24948c2ecf20Sopenharmony_ci .name = "camss_cpp_axi_clk", 24958c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "axi_clk_src" }, 24968c2ecf20Sopenharmony_ci .num_parents = 1, 24978c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24988c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24998c2ecf20Sopenharmony_ci }, 25008c2ecf20Sopenharmony_ci }, 25018c2ecf20Sopenharmony_ci}; 25028c2ecf20Sopenharmony_ci 25038c2ecf20Sopenharmony_cistatic struct clk_branch camss_cpp_clk = { 25048c2ecf20Sopenharmony_ci .halt_reg = 0x36b0, 25058c2ecf20Sopenharmony_ci .clkr = { 25068c2ecf20Sopenharmony_ci .enable_reg = 0x36b0, 25078c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25098c2ecf20Sopenharmony_ci .name = "camss_cpp_clk", 25108c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "cpp_clk_src" }, 25118c2ecf20Sopenharmony_ci .num_parents = 1, 25128c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25138c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25148c2ecf20Sopenharmony_ci }, 25158c2ecf20Sopenharmony_ci }, 25168c2ecf20Sopenharmony_ci}; 25178c2ecf20Sopenharmony_ci 25188c2ecf20Sopenharmony_cistatic struct clk_branch camss_cpp_ahb_clk = { 25198c2ecf20Sopenharmony_ci .halt_reg = 0x36b4, 25208c2ecf20Sopenharmony_ci .clkr = { 25218c2ecf20Sopenharmony_ci .enable_reg = 0x36b4, 25228c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25238c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25248c2ecf20Sopenharmony_ci .name = "camss_cpp_ahb_clk", 25258c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 25268c2ecf20Sopenharmony_ci .num_parents = 1, 25278c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25288c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25298c2ecf20Sopenharmony_ci }, 25308c2ecf20Sopenharmony_ci }, 25318c2ecf20Sopenharmony_ci}; 25328c2ecf20Sopenharmony_ci 25338c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0_clk = { 25348c2ecf20Sopenharmony_ci .halt_reg = 0x30b4, 25358c2ecf20Sopenharmony_ci .clkr = { 25368c2ecf20Sopenharmony_ci .enable_reg = 0x30b4, 25378c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25388c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25398c2ecf20Sopenharmony_ci .name = "camss_csi0_clk", 25408c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi0_clk_src" }, 25418c2ecf20Sopenharmony_ci .num_parents = 1, 25428c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25438c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25448c2ecf20Sopenharmony_ci }, 25458c2ecf20Sopenharmony_ci }, 25468c2ecf20Sopenharmony_ci}; 25478c2ecf20Sopenharmony_ci 25488c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0_ahb_clk = { 25498c2ecf20Sopenharmony_ci .halt_reg = 0x30bc, 25508c2ecf20Sopenharmony_ci .clkr = { 25518c2ecf20Sopenharmony_ci .enable_reg = 0x30bc, 25528c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25538c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25548c2ecf20Sopenharmony_ci .name = "camss_csi0_ahb_clk", 25558c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 25568c2ecf20Sopenharmony_ci .num_parents = 1, 25578c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25588c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25598c2ecf20Sopenharmony_ci }, 25608c2ecf20Sopenharmony_ci }, 25618c2ecf20Sopenharmony_ci}; 25628c2ecf20Sopenharmony_ci 25638c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0phy_clk = { 25648c2ecf20Sopenharmony_ci .halt_reg = 0x30c4, 25658c2ecf20Sopenharmony_ci .clkr = { 25668c2ecf20Sopenharmony_ci .enable_reg = 0x30c4, 25678c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25688c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25698c2ecf20Sopenharmony_ci .name = "camss_csi0phy_clk", 25708c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi0_clk_src" }, 25718c2ecf20Sopenharmony_ci .num_parents = 1, 25728c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25738c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25748c2ecf20Sopenharmony_ci }, 25758c2ecf20Sopenharmony_ci }, 25768c2ecf20Sopenharmony_ci}; 25778c2ecf20Sopenharmony_ci 25788c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0rdi_clk = { 25798c2ecf20Sopenharmony_ci .halt_reg = 0x30d4, 25808c2ecf20Sopenharmony_ci .clkr = { 25818c2ecf20Sopenharmony_ci .enable_reg = 0x30d4, 25828c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25838c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25848c2ecf20Sopenharmony_ci .name = "camss_csi0rdi_clk", 25858c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi0_clk_src" }, 25868c2ecf20Sopenharmony_ci .num_parents = 1, 25878c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25898c2ecf20Sopenharmony_ci }, 25908c2ecf20Sopenharmony_ci }, 25918c2ecf20Sopenharmony_ci}; 25928c2ecf20Sopenharmony_ci 25938c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0pix_clk = { 25948c2ecf20Sopenharmony_ci .halt_reg = 0x30e4, 25958c2ecf20Sopenharmony_ci .clkr = { 25968c2ecf20Sopenharmony_ci .enable_reg = 0x30e4, 25978c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25988c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25998c2ecf20Sopenharmony_ci .name = "camss_csi0pix_clk", 26008c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi0_clk_src" }, 26018c2ecf20Sopenharmony_ci .num_parents = 1, 26028c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26038c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26048c2ecf20Sopenharmony_ci }, 26058c2ecf20Sopenharmony_ci }, 26068c2ecf20Sopenharmony_ci}; 26078c2ecf20Sopenharmony_ci 26088c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1_clk = { 26098c2ecf20Sopenharmony_ci .halt_reg = 0x3124, 26108c2ecf20Sopenharmony_ci .clkr = { 26118c2ecf20Sopenharmony_ci .enable_reg = 0x3124, 26128c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26138c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26148c2ecf20Sopenharmony_ci .name = "camss_csi1_clk", 26158c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi1_clk_src" }, 26168c2ecf20Sopenharmony_ci .num_parents = 1, 26178c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26188c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26198c2ecf20Sopenharmony_ci }, 26208c2ecf20Sopenharmony_ci }, 26218c2ecf20Sopenharmony_ci}; 26228c2ecf20Sopenharmony_ci 26238c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1_ahb_clk = { 26248c2ecf20Sopenharmony_ci .halt_reg = 0x3128, 26258c2ecf20Sopenharmony_ci .clkr = { 26268c2ecf20Sopenharmony_ci .enable_reg = 0x3128, 26278c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26288c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26298c2ecf20Sopenharmony_ci .name = "camss_csi1_ahb_clk", 26308c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 26318c2ecf20Sopenharmony_ci .num_parents = 1, 26328c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26338c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26348c2ecf20Sopenharmony_ci }, 26358c2ecf20Sopenharmony_ci }, 26368c2ecf20Sopenharmony_ci}; 26378c2ecf20Sopenharmony_ci 26388c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1phy_clk = { 26398c2ecf20Sopenharmony_ci .halt_reg = 0x3134, 26408c2ecf20Sopenharmony_ci .clkr = { 26418c2ecf20Sopenharmony_ci .enable_reg = 0x3134, 26428c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26448c2ecf20Sopenharmony_ci .name = "camss_csi1phy_clk", 26458c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi1_clk_src" }, 26468c2ecf20Sopenharmony_ci .num_parents = 1, 26478c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26488c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26498c2ecf20Sopenharmony_ci }, 26508c2ecf20Sopenharmony_ci }, 26518c2ecf20Sopenharmony_ci}; 26528c2ecf20Sopenharmony_ci 26538c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1rdi_clk = { 26548c2ecf20Sopenharmony_ci .halt_reg = 0x3144, 26558c2ecf20Sopenharmony_ci .clkr = { 26568c2ecf20Sopenharmony_ci .enable_reg = 0x3144, 26578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26598c2ecf20Sopenharmony_ci .name = "camss_csi1rdi_clk", 26608c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi1_clk_src" }, 26618c2ecf20Sopenharmony_ci .num_parents = 1, 26628c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26638c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26648c2ecf20Sopenharmony_ci }, 26658c2ecf20Sopenharmony_ci }, 26668c2ecf20Sopenharmony_ci}; 26678c2ecf20Sopenharmony_ci 26688c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1pix_clk = { 26698c2ecf20Sopenharmony_ci .halt_reg = 0x3154, 26708c2ecf20Sopenharmony_ci .clkr = { 26718c2ecf20Sopenharmony_ci .enable_reg = 0x3154, 26728c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26748c2ecf20Sopenharmony_ci .name = "camss_csi1pix_clk", 26758c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi1_clk_src" }, 26768c2ecf20Sopenharmony_ci .num_parents = 1, 26778c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26788c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26798c2ecf20Sopenharmony_ci }, 26808c2ecf20Sopenharmony_ci }, 26818c2ecf20Sopenharmony_ci}; 26828c2ecf20Sopenharmony_ci 26838c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2_clk = { 26848c2ecf20Sopenharmony_ci .halt_reg = 0x3184, 26858c2ecf20Sopenharmony_ci .clkr = { 26868c2ecf20Sopenharmony_ci .enable_reg = 0x3184, 26878c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26898c2ecf20Sopenharmony_ci .name = "camss_csi2_clk", 26908c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi2_clk_src" }, 26918c2ecf20Sopenharmony_ci .num_parents = 1, 26928c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26938c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26948c2ecf20Sopenharmony_ci }, 26958c2ecf20Sopenharmony_ci }, 26968c2ecf20Sopenharmony_ci}; 26978c2ecf20Sopenharmony_ci 26988c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2_ahb_clk = { 26998c2ecf20Sopenharmony_ci .halt_reg = 0x3188, 27008c2ecf20Sopenharmony_ci .clkr = { 27018c2ecf20Sopenharmony_ci .enable_reg = 0x3188, 27028c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27038c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27048c2ecf20Sopenharmony_ci .name = "camss_csi2_ahb_clk", 27058c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 27068c2ecf20Sopenharmony_ci .num_parents = 1, 27078c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27088c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27098c2ecf20Sopenharmony_ci }, 27108c2ecf20Sopenharmony_ci }, 27118c2ecf20Sopenharmony_ci}; 27128c2ecf20Sopenharmony_ci 27138c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2phy_clk = { 27148c2ecf20Sopenharmony_ci .halt_reg = 0x3194, 27158c2ecf20Sopenharmony_ci .clkr = { 27168c2ecf20Sopenharmony_ci .enable_reg = 0x3194, 27178c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27188c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27198c2ecf20Sopenharmony_ci .name = "camss_csi2phy_clk", 27208c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi2_clk_src" }, 27218c2ecf20Sopenharmony_ci .num_parents = 1, 27228c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27238c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27248c2ecf20Sopenharmony_ci }, 27258c2ecf20Sopenharmony_ci }, 27268c2ecf20Sopenharmony_ci}; 27278c2ecf20Sopenharmony_ci 27288c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2rdi_clk = { 27298c2ecf20Sopenharmony_ci .halt_reg = 0x31a4, 27308c2ecf20Sopenharmony_ci .clkr = { 27318c2ecf20Sopenharmony_ci .enable_reg = 0x31a4, 27328c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27338c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27348c2ecf20Sopenharmony_ci .name = "camss_csi2rdi_clk", 27358c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi2_clk_src" }, 27368c2ecf20Sopenharmony_ci .num_parents = 1, 27378c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27388c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27398c2ecf20Sopenharmony_ci }, 27408c2ecf20Sopenharmony_ci }, 27418c2ecf20Sopenharmony_ci}; 27428c2ecf20Sopenharmony_ci 27438c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2pix_clk = { 27448c2ecf20Sopenharmony_ci .halt_reg = 0x31b4, 27458c2ecf20Sopenharmony_ci .clkr = { 27468c2ecf20Sopenharmony_ci .enable_reg = 0x31b4, 27478c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27498c2ecf20Sopenharmony_ci .name = "camss_csi2pix_clk", 27508c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi2_clk_src" }, 27518c2ecf20Sopenharmony_ci .num_parents = 1, 27528c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27538c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27548c2ecf20Sopenharmony_ci }, 27558c2ecf20Sopenharmony_ci }, 27568c2ecf20Sopenharmony_ci}; 27578c2ecf20Sopenharmony_ci 27588c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3_clk = { 27598c2ecf20Sopenharmony_ci .halt_reg = 0x31e4, 27608c2ecf20Sopenharmony_ci .clkr = { 27618c2ecf20Sopenharmony_ci .enable_reg = 0x31e4, 27628c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27638c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27648c2ecf20Sopenharmony_ci .name = "camss_csi3_clk", 27658c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi3_clk_src" }, 27668c2ecf20Sopenharmony_ci .num_parents = 1, 27678c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27688c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27698c2ecf20Sopenharmony_ci }, 27708c2ecf20Sopenharmony_ci }, 27718c2ecf20Sopenharmony_ci}; 27728c2ecf20Sopenharmony_ci 27738c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3_ahb_clk = { 27748c2ecf20Sopenharmony_ci .halt_reg = 0x31e8, 27758c2ecf20Sopenharmony_ci .clkr = { 27768c2ecf20Sopenharmony_ci .enable_reg = 0x31e8, 27778c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27788c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27798c2ecf20Sopenharmony_ci .name = "camss_csi3_ahb_clk", 27808c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 27818c2ecf20Sopenharmony_ci .num_parents = 1, 27828c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27838c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27848c2ecf20Sopenharmony_ci }, 27858c2ecf20Sopenharmony_ci }, 27868c2ecf20Sopenharmony_ci}; 27878c2ecf20Sopenharmony_ci 27888c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3phy_clk = { 27898c2ecf20Sopenharmony_ci .halt_reg = 0x31f4, 27908c2ecf20Sopenharmony_ci .clkr = { 27918c2ecf20Sopenharmony_ci .enable_reg = 0x31f4, 27928c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27938c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27948c2ecf20Sopenharmony_ci .name = "camss_csi3phy_clk", 27958c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi3_clk_src" }, 27968c2ecf20Sopenharmony_ci .num_parents = 1, 27978c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27988c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27998c2ecf20Sopenharmony_ci }, 28008c2ecf20Sopenharmony_ci }, 28018c2ecf20Sopenharmony_ci}; 28028c2ecf20Sopenharmony_ci 28038c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3rdi_clk = { 28048c2ecf20Sopenharmony_ci .halt_reg = 0x3204, 28058c2ecf20Sopenharmony_ci .clkr = { 28068c2ecf20Sopenharmony_ci .enable_reg = 0x3204, 28078c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28098c2ecf20Sopenharmony_ci .name = "camss_csi3rdi_clk", 28108c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi3_clk_src" }, 28118c2ecf20Sopenharmony_ci .num_parents = 1, 28128c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28138c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28148c2ecf20Sopenharmony_ci }, 28158c2ecf20Sopenharmony_ci }, 28168c2ecf20Sopenharmony_ci}; 28178c2ecf20Sopenharmony_ci 28188c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3pix_clk = { 28198c2ecf20Sopenharmony_ci .halt_reg = 0x3214, 28208c2ecf20Sopenharmony_ci .clkr = { 28218c2ecf20Sopenharmony_ci .enable_reg = 0x3214, 28228c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28238c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28248c2ecf20Sopenharmony_ci .name = "camss_csi3pix_clk", 28258c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "csi3_clk_src" }, 28268c2ecf20Sopenharmony_ci .num_parents = 1, 28278c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28288c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28298c2ecf20Sopenharmony_ci }, 28308c2ecf20Sopenharmony_ci }, 28318c2ecf20Sopenharmony_ci}; 28328c2ecf20Sopenharmony_ci 28338c2ecf20Sopenharmony_cistatic struct clk_branch camss_ispif_ahb_clk = { 28348c2ecf20Sopenharmony_ci .halt_reg = 0x3224, 28358c2ecf20Sopenharmony_ci .clkr = { 28368c2ecf20Sopenharmony_ci .enable_reg = 0x3224, 28378c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28388c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28398c2ecf20Sopenharmony_ci .name = "camss_ispif_ahb_clk", 28408c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 28418c2ecf20Sopenharmony_ci .num_parents = 1, 28428c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28438c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28448c2ecf20Sopenharmony_ci }, 28458c2ecf20Sopenharmony_ci }, 28468c2ecf20Sopenharmony_ci}; 28478c2ecf20Sopenharmony_ci 28488c2ecf20Sopenharmony_cistatic struct clk_branch fd_core_clk = { 28498c2ecf20Sopenharmony_ci .halt_reg = 0x3b68, 28508c2ecf20Sopenharmony_ci .clkr = { 28518c2ecf20Sopenharmony_ci .enable_reg = 0x3b68, 28528c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28538c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28548c2ecf20Sopenharmony_ci .name = "fd_core_clk", 28558c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "fd_core_clk_src" }, 28568c2ecf20Sopenharmony_ci .num_parents = 1, 28578c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28588c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28598c2ecf20Sopenharmony_ci }, 28608c2ecf20Sopenharmony_ci }, 28618c2ecf20Sopenharmony_ci}; 28628c2ecf20Sopenharmony_ci 28638c2ecf20Sopenharmony_cistatic struct clk_branch fd_core_uar_clk = { 28648c2ecf20Sopenharmony_ci .halt_reg = 0x3b6c, 28658c2ecf20Sopenharmony_ci .clkr = { 28668c2ecf20Sopenharmony_ci .enable_reg = 0x3b6c, 28678c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28688c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28698c2ecf20Sopenharmony_ci .name = "fd_core_uar_clk", 28708c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "fd_core_clk_src" }, 28718c2ecf20Sopenharmony_ci .num_parents = 1, 28728c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28738c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28748c2ecf20Sopenharmony_ci }, 28758c2ecf20Sopenharmony_ci }, 28768c2ecf20Sopenharmony_ci}; 28778c2ecf20Sopenharmony_ci 28788c2ecf20Sopenharmony_cistatic struct clk_branch fd_ahb_clk = { 28798c2ecf20Sopenharmony_ci .halt_reg = 0x3ba74, 28808c2ecf20Sopenharmony_ci .clkr = { 28818c2ecf20Sopenharmony_ci .enable_reg = 0x3ba74, 28828c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28838c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28848c2ecf20Sopenharmony_ci .name = "fd_ahb_clk", 28858c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "ahb_clk_src" }, 28868c2ecf20Sopenharmony_ci .num_parents = 1, 28878c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28888c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28898c2ecf20Sopenharmony_ci }, 28908c2ecf20Sopenharmony_ci }, 28918c2ecf20Sopenharmony_ci}; 28928c2ecf20Sopenharmony_ci 28938c2ecf20Sopenharmony_cistatic struct clk_hw *mmcc_msm8996_hws[] = { 28948c2ecf20Sopenharmony_ci &gpll0_div.hw, 28958c2ecf20Sopenharmony_ci}; 28968c2ecf20Sopenharmony_ci 28978c2ecf20Sopenharmony_cistatic struct gdsc mmagic_bimc_gdsc = { 28988c2ecf20Sopenharmony_ci .gdscr = 0x529c, 28998c2ecf20Sopenharmony_ci .pd = { 29008c2ecf20Sopenharmony_ci .name = "mmagic_bimc", 29018c2ecf20Sopenharmony_ci }, 29028c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 29038c2ecf20Sopenharmony_ci .flags = ALWAYS_ON, 29048c2ecf20Sopenharmony_ci}; 29058c2ecf20Sopenharmony_ci 29068c2ecf20Sopenharmony_cistatic struct gdsc mmagic_video_gdsc = { 29078c2ecf20Sopenharmony_ci .gdscr = 0x119c, 29088c2ecf20Sopenharmony_ci .gds_hw_ctrl = 0x120c, 29098c2ecf20Sopenharmony_ci .pd = { 29108c2ecf20Sopenharmony_ci .name = "mmagic_video", 29118c2ecf20Sopenharmony_ci }, 29128c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 29138c2ecf20Sopenharmony_ci .flags = VOTABLE | ALWAYS_ON, 29148c2ecf20Sopenharmony_ci}; 29158c2ecf20Sopenharmony_ci 29168c2ecf20Sopenharmony_cistatic struct gdsc mmagic_mdss_gdsc = { 29178c2ecf20Sopenharmony_ci .gdscr = 0x247c, 29188c2ecf20Sopenharmony_ci .gds_hw_ctrl = 0x2480, 29198c2ecf20Sopenharmony_ci .pd = { 29208c2ecf20Sopenharmony_ci .name = "mmagic_mdss", 29218c2ecf20Sopenharmony_ci }, 29228c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 29238c2ecf20Sopenharmony_ci .flags = VOTABLE | ALWAYS_ON, 29248c2ecf20Sopenharmony_ci}; 29258c2ecf20Sopenharmony_ci 29268c2ecf20Sopenharmony_cistatic struct gdsc mmagic_camss_gdsc = { 29278c2ecf20Sopenharmony_ci .gdscr = 0x3c4c, 29288c2ecf20Sopenharmony_ci .gds_hw_ctrl = 0x3c50, 29298c2ecf20Sopenharmony_ci .pd = { 29308c2ecf20Sopenharmony_ci .name = "mmagic_camss", 29318c2ecf20Sopenharmony_ci }, 29328c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 29338c2ecf20Sopenharmony_ci .flags = VOTABLE | ALWAYS_ON, 29348c2ecf20Sopenharmony_ci}; 29358c2ecf20Sopenharmony_ci 29368c2ecf20Sopenharmony_cistatic struct gdsc venus_gdsc = { 29378c2ecf20Sopenharmony_ci .gdscr = 0x1024, 29388c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x1028, 0x1034, 0x1038 }, 29398c2ecf20Sopenharmony_ci .cxc_count = 3, 29408c2ecf20Sopenharmony_ci .pd = { 29418c2ecf20Sopenharmony_ci .name = "venus", 29428c2ecf20Sopenharmony_ci }, 29438c2ecf20Sopenharmony_ci .parent = &mmagic_video_gdsc.pd, 29448c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 29458c2ecf20Sopenharmony_ci}; 29468c2ecf20Sopenharmony_ci 29478c2ecf20Sopenharmony_cistatic struct gdsc venus_core0_gdsc = { 29488c2ecf20Sopenharmony_ci .gdscr = 0x1040, 29498c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x1048 }, 29508c2ecf20Sopenharmony_ci .cxc_count = 1, 29518c2ecf20Sopenharmony_ci .pd = { 29528c2ecf20Sopenharmony_ci .name = "venus_core0", 29538c2ecf20Sopenharmony_ci }, 29548c2ecf20Sopenharmony_ci .parent = &venus_gdsc.pd, 29558c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 29568c2ecf20Sopenharmony_ci .flags = HW_CTRL, 29578c2ecf20Sopenharmony_ci}; 29588c2ecf20Sopenharmony_ci 29598c2ecf20Sopenharmony_cistatic struct gdsc venus_core1_gdsc = { 29608c2ecf20Sopenharmony_ci .gdscr = 0x1044, 29618c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x104c }, 29628c2ecf20Sopenharmony_ci .cxc_count = 1, 29638c2ecf20Sopenharmony_ci .pd = { 29648c2ecf20Sopenharmony_ci .name = "venus_core1", 29658c2ecf20Sopenharmony_ci }, 29668c2ecf20Sopenharmony_ci .parent = &venus_gdsc.pd, 29678c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 29688c2ecf20Sopenharmony_ci .flags = HW_CTRL, 29698c2ecf20Sopenharmony_ci}; 29708c2ecf20Sopenharmony_ci 29718c2ecf20Sopenharmony_cistatic struct gdsc camss_gdsc = { 29728c2ecf20Sopenharmony_ci .gdscr = 0x34a0, 29738c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x36bc, 0x36c4 }, 29748c2ecf20Sopenharmony_ci .cxc_count = 2, 29758c2ecf20Sopenharmony_ci .pd = { 29768c2ecf20Sopenharmony_ci .name = "camss", 29778c2ecf20Sopenharmony_ci }, 29788c2ecf20Sopenharmony_ci .parent = &mmagic_camss_gdsc.pd, 29798c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 29808c2ecf20Sopenharmony_ci}; 29818c2ecf20Sopenharmony_ci 29828c2ecf20Sopenharmony_cistatic struct gdsc vfe0_gdsc = { 29838c2ecf20Sopenharmony_ci .gdscr = 0x3664, 29848c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x36a8 }, 29858c2ecf20Sopenharmony_ci .cxc_count = 1, 29868c2ecf20Sopenharmony_ci .pd = { 29878c2ecf20Sopenharmony_ci .name = "vfe0", 29888c2ecf20Sopenharmony_ci }, 29898c2ecf20Sopenharmony_ci .parent = &camss_gdsc.pd, 29908c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 29918c2ecf20Sopenharmony_ci}; 29928c2ecf20Sopenharmony_ci 29938c2ecf20Sopenharmony_cistatic struct gdsc vfe1_gdsc = { 29948c2ecf20Sopenharmony_ci .gdscr = 0x3674, 29958c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x36ac }, 29968c2ecf20Sopenharmony_ci .cxc_count = 1, 29978c2ecf20Sopenharmony_ci .pd = { 29988c2ecf20Sopenharmony_ci .name = "vfe1", 29998c2ecf20Sopenharmony_ci }, 30008c2ecf20Sopenharmony_ci .parent = &camss_gdsc.pd, 30018c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30028c2ecf20Sopenharmony_ci}; 30038c2ecf20Sopenharmony_ci 30048c2ecf20Sopenharmony_cistatic struct gdsc jpeg_gdsc = { 30058c2ecf20Sopenharmony_ci .gdscr = 0x35a4, 30068c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x35a8, 0x35b0, 0x35c0, 0x35b8 }, 30078c2ecf20Sopenharmony_ci .cxc_count = 4, 30088c2ecf20Sopenharmony_ci .pd = { 30098c2ecf20Sopenharmony_ci .name = "jpeg", 30108c2ecf20Sopenharmony_ci }, 30118c2ecf20Sopenharmony_ci .parent = &camss_gdsc.pd, 30128c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30138c2ecf20Sopenharmony_ci}; 30148c2ecf20Sopenharmony_ci 30158c2ecf20Sopenharmony_cistatic struct gdsc cpp_gdsc = { 30168c2ecf20Sopenharmony_ci .gdscr = 0x36d4, 30178c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x36b0 }, 30188c2ecf20Sopenharmony_ci .cxc_count = 1, 30198c2ecf20Sopenharmony_ci .pd = { 30208c2ecf20Sopenharmony_ci .name = "cpp", 30218c2ecf20Sopenharmony_ci }, 30228c2ecf20Sopenharmony_ci .parent = &camss_gdsc.pd, 30238c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30248c2ecf20Sopenharmony_ci}; 30258c2ecf20Sopenharmony_ci 30268c2ecf20Sopenharmony_cistatic struct gdsc fd_gdsc = { 30278c2ecf20Sopenharmony_ci .gdscr = 0x3b64, 30288c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x3b68, 0x3b6c }, 30298c2ecf20Sopenharmony_ci .cxc_count = 2, 30308c2ecf20Sopenharmony_ci .pd = { 30318c2ecf20Sopenharmony_ci .name = "fd", 30328c2ecf20Sopenharmony_ci }, 30338c2ecf20Sopenharmony_ci .parent = &camss_gdsc.pd, 30348c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30358c2ecf20Sopenharmony_ci}; 30368c2ecf20Sopenharmony_ci 30378c2ecf20Sopenharmony_cistatic struct gdsc mdss_gdsc = { 30388c2ecf20Sopenharmony_ci .gdscr = 0x2304, 30398c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x2310, 0x231c }, 30408c2ecf20Sopenharmony_ci .cxc_count = 2, 30418c2ecf20Sopenharmony_ci .pd = { 30428c2ecf20Sopenharmony_ci .name = "mdss", 30438c2ecf20Sopenharmony_ci }, 30448c2ecf20Sopenharmony_ci .parent = &mmagic_mdss_gdsc.pd, 30458c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30468c2ecf20Sopenharmony_ci}; 30478c2ecf20Sopenharmony_ci 30488c2ecf20Sopenharmony_cistatic struct gdsc gpu_gdsc = { 30498c2ecf20Sopenharmony_ci .gdscr = 0x4034, 30508c2ecf20Sopenharmony_ci .gds_hw_ctrl = 0x4038, 30518c2ecf20Sopenharmony_ci .pd = { 30528c2ecf20Sopenharmony_ci .name = "gpu", 30538c2ecf20Sopenharmony_ci }, 30548c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30558c2ecf20Sopenharmony_ci .flags = VOTABLE, 30568c2ecf20Sopenharmony_ci}; 30578c2ecf20Sopenharmony_ci 30588c2ecf20Sopenharmony_cistatic struct gdsc gpu_gx_gdsc = { 30598c2ecf20Sopenharmony_ci .gdscr = 0x4024, 30608c2ecf20Sopenharmony_ci .clamp_io_ctrl = 0x4300, 30618c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x4028 }, 30628c2ecf20Sopenharmony_ci .cxc_count = 1, 30638c2ecf20Sopenharmony_ci .pd = { 30648c2ecf20Sopenharmony_ci .name = "gpu_gx", 30658c2ecf20Sopenharmony_ci }, 30668c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30678c2ecf20Sopenharmony_ci .parent = &gpu_gdsc.pd, 30688c2ecf20Sopenharmony_ci .flags = CLAMP_IO, 30698c2ecf20Sopenharmony_ci .supply = "vdd-gfx", 30708c2ecf20Sopenharmony_ci}; 30718c2ecf20Sopenharmony_ci 30728c2ecf20Sopenharmony_cistatic struct clk_regmap *mmcc_msm8996_clocks[] = { 30738c2ecf20Sopenharmony_ci [MMPLL0_EARLY] = &mmpll0_early.clkr, 30748c2ecf20Sopenharmony_ci [MMPLL0_PLL] = &mmpll0.clkr, 30758c2ecf20Sopenharmony_ci [MMPLL1_EARLY] = &mmpll1_early.clkr, 30768c2ecf20Sopenharmony_ci [MMPLL1_PLL] = &mmpll1.clkr, 30778c2ecf20Sopenharmony_ci [MMPLL2_EARLY] = &mmpll2_early.clkr, 30788c2ecf20Sopenharmony_ci [MMPLL2_PLL] = &mmpll2.clkr, 30798c2ecf20Sopenharmony_ci [MMPLL3_EARLY] = &mmpll3_early.clkr, 30808c2ecf20Sopenharmony_ci [MMPLL3_PLL] = &mmpll3.clkr, 30818c2ecf20Sopenharmony_ci [MMPLL4_EARLY] = &mmpll4_early.clkr, 30828c2ecf20Sopenharmony_ci [MMPLL4_PLL] = &mmpll4.clkr, 30838c2ecf20Sopenharmony_ci [MMPLL5_EARLY] = &mmpll5_early.clkr, 30848c2ecf20Sopenharmony_ci [MMPLL5_PLL] = &mmpll5.clkr, 30858c2ecf20Sopenharmony_ci [MMPLL8_EARLY] = &mmpll8_early.clkr, 30868c2ecf20Sopenharmony_ci [MMPLL8_PLL] = &mmpll8.clkr, 30878c2ecf20Sopenharmony_ci [MMPLL9_EARLY] = &mmpll9_early.clkr, 30888c2ecf20Sopenharmony_ci [MMPLL9_PLL] = &mmpll9.clkr, 30898c2ecf20Sopenharmony_ci [AHB_CLK_SRC] = &ahb_clk_src.clkr, 30908c2ecf20Sopenharmony_ci [AXI_CLK_SRC] = &axi_clk_src.clkr, 30918c2ecf20Sopenharmony_ci [MAXI_CLK_SRC] = &maxi_clk_src.clkr, 30928c2ecf20Sopenharmony_ci [GFX3D_CLK_SRC] = &gfx3d_clk_src.clkr, 30938c2ecf20Sopenharmony_ci [RBBMTIMER_CLK_SRC] = &rbbmtimer_clk_src.clkr, 30948c2ecf20Sopenharmony_ci [ISENSE_CLK_SRC] = &isense_clk_src.clkr, 30958c2ecf20Sopenharmony_ci [RBCPR_CLK_SRC] = &rbcpr_clk_src.clkr, 30968c2ecf20Sopenharmony_ci [VIDEO_CORE_CLK_SRC] = &video_core_clk_src.clkr, 30978c2ecf20Sopenharmony_ci [VIDEO_SUBCORE0_CLK_SRC] = &video_subcore0_clk_src.clkr, 30988c2ecf20Sopenharmony_ci [VIDEO_SUBCORE1_CLK_SRC] = &video_subcore1_clk_src.clkr, 30998c2ecf20Sopenharmony_ci [PCLK0_CLK_SRC] = &pclk0_clk_src.clkr, 31008c2ecf20Sopenharmony_ci [PCLK1_CLK_SRC] = &pclk1_clk_src.clkr, 31018c2ecf20Sopenharmony_ci [MDP_CLK_SRC] = &mdp_clk_src.clkr, 31028c2ecf20Sopenharmony_ci [EXTPCLK_CLK_SRC] = &extpclk_clk_src.clkr, 31038c2ecf20Sopenharmony_ci [VSYNC_CLK_SRC] = &vsync_clk_src.clkr, 31048c2ecf20Sopenharmony_ci [HDMI_CLK_SRC] = &hdmi_clk_src.clkr, 31058c2ecf20Sopenharmony_ci [BYTE0_CLK_SRC] = &byte0_clk_src.clkr, 31068c2ecf20Sopenharmony_ci [BYTE1_CLK_SRC] = &byte1_clk_src.clkr, 31078c2ecf20Sopenharmony_ci [ESC0_CLK_SRC] = &esc0_clk_src.clkr, 31088c2ecf20Sopenharmony_ci [ESC1_CLK_SRC] = &esc1_clk_src.clkr, 31098c2ecf20Sopenharmony_ci [CAMSS_GP0_CLK_SRC] = &camss_gp0_clk_src.clkr, 31108c2ecf20Sopenharmony_ci [CAMSS_GP1_CLK_SRC] = &camss_gp1_clk_src.clkr, 31118c2ecf20Sopenharmony_ci [MCLK0_CLK_SRC] = &mclk0_clk_src.clkr, 31128c2ecf20Sopenharmony_ci [MCLK1_CLK_SRC] = &mclk1_clk_src.clkr, 31138c2ecf20Sopenharmony_ci [MCLK2_CLK_SRC] = &mclk2_clk_src.clkr, 31148c2ecf20Sopenharmony_ci [MCLK3_CLK_SRC] = &mclk3_clk_src.clkr, 31158c2ecf20Sopenharmony_ci [CCI_CLK_SRC] = &cci_clk_src.clkr, 31168c2ecf20Sopenharmony_ci [CSI0PHYTIMER_CLK_SRC] = &csi0phytimer_clk_src.clkr, 31178c2ecf20Sopenharmony_ci [CSI1PHYTIMER_CLK_SRC] = &csi1phytimer_clk_src.clkr, 31188c2ecf20Sopenharmony_ci [CSI2PHYTIMER_CLK_SRC] = &csi2phytimer_clk_src.clkr, 31198c2ecf20Sopenharmony_ci [CSIPHY0_3P_CLK_SRC] = &csiphy0_3p_clk_src.clkr, 31208c2ecf20Sopenharmony_ci [CSIPHY1_3P_CLK_SRC] = &csiphy1_3p_clk_src.clkr, 31218c2ecf20Sopenharmony_ci [CSIPHY2_3P_CLK_SRC] = &csiphy2_3p_clk_src.clkr, 31228c2ecf20Sopenharmony_ci [JPEG0_CLK_SRC] = &jpeg0_clk_src.clkr, 31238c2ecf20Sopenharmony_ci [JPEG2_CLK_SRC] = &jpeg2_clk_src.clkr, 31248c2ecf20Sopenharmony_ci [JPEG_DMA_CLK_SRC] = &jpeg_dma_clk_src.clkr, 31258c2ecf20Sopenharmony_ci [VFE0_CLK_SRC] = &vfe0_clk_src.clkr, 31268c2ecf20Sopenharmony_ci [VFE1_CLK_SRC] = &vfe1_clk_src.clkr, 31278c2ecf20Sopenharmony_ci [CPP_CLK_SRC] = &cpp_clk_src.clkr, 31288c2ecf20Sopenharmony_ci [CSI0_CLK_SRC] = &csi0_clk_src.clkr, 31298c2ecf20Sopenharmony_ci [CSI1_CLK_SRC] = &csi1_clk_src.clkr, 31308c2ecf20Sopenharmony_ci [CSI2_CLK_SRC] = &csi2_clk_src.clkr, 31318c2ecf20Sopenharmony_ci [CSI3_CLK_SRC] = &csi3_clk_src.clkr, 31328c2ecf20Sopenharmony_ci [FD_CORE_CLK_SRC] = &fd_core_clk_src.clkr, 31338c2ecf20Sopenharmony_ci [MMSS_MMAGIC_AHB_CLK] = &mmss_mmagic_ahb_clk.clkr, 31348c2ecf20Sopenharmony_ci [MMSS_MMAGIC_CFG_AHB_CLK] = &mmss_mmagic_cfg_ahb_clk.clkr, 31358c2ecf20Sopenharmony_ci [MMSS_MISC_AHB_CLK] = &mmss_misc_ahb_clk.clkr, 31368c2ecf20Sopenharmony_ci [MMSS_MISC_CXO_CLK] = &mmss_misc_cxo_clk.clkr, 31378c2ecf20Sopenharmony_ci [MMSS_MMAGIC_MAXI_CLK] = &mmss_mmagic_maxi_clk.clkr, 31388c2ecf20Sopenharmony_ci [MMAGIC_CAMSS_AXI_CLK] = &mmagic_camss_axi_clk.clkr, 31398c2ecf20Sopenharmony_ci [MMAGIC_CAMSS_NOC_CFG_AHB_CLK] = &mmagic_camss_noc_cfg_ahb_clk.clkr, 31408c2ecf20Sopenharmony_ci [SMMU_VFE_AHB_CLK] = &smmu_vfe_ahb_clk.clkr, 31418c2ecf20Sopenharmony_ci [SMMU_VFE_AXI_CLK] = &smmu_vfe_axi_clk.clkr, 31428c2ecf20Sopenharmony_ci [SMMU_CPP_AHB_CLK] = &smmu_cpp_ahb_clk.clkr, 31438c2ecf20Sopenharmony_ci [SMMU_CPP_AXI_CLK] = &smmu_cpp_axi_clk.clkr, 31448c2ecf20Sopenharmony_ci [SMMU_JPEG_AHB_CLK] = &smmu_jpeg_ahb_clk.clkr, 31458c2ecf20Sopenharmony_ci [SMMU_JPEG_AXI_CLK] = &smmu_jpeg_axi_clk.clkr, 31468c2ecf20Sopenharmony_ci [MMAGIC_MDSS_AXI_CLK] = &mmagic_mdss_axi_clk.clkr, 31478c2ecf20Sopenharmony_ci [MMAGIC_MDSS_NOC_CFG_AHB_CLK] = &mmagic_mdss_noc_cfg_ahb_clk.clkr, 31488c2ecf20Sopenharmony_ci [SMMU_ROT_AHB_CLK] = &smmu_rot_ahb_clk.clkr, 31498c2ecf20Sopenharmony_ci [SMMU_ROT_AXI_CLK] = &smmu_rot_axi_clk.clkr, 31508c2ecf20Sopenharmony_ci [SMMU_MDP_AHB_CLK] = &smmu_mdp_ahb_clk.clkr, 31518c2ecf20Sopenharmony_ci [SMMU_MDP_AXI_CLK] = &smmu_mdp_axi_clk.clkr, 31528c2ecf20Sopenharmony_ci [MMAGIC_VIDEO_AXI_CLK] = &mmagic_video_axi_clk.clkr, 31538c2ecf20Sopenharmony_ci [MMAGIC_VIDEO_NOC_CFG_AHB_CLK] = &mmagic_video_noc_cfg_ahb_clk.clkr, 31548c2ecf20Sopenharmony_ci [SMMU_VIDEO_AHB_CLK] = &smmu_video_ahb_clk.clkr, 31558c2ecf20Sopenharmony_ci [SMMU_VIDEO_AXI_CLK] = &smmu_video_axi_clk.clkr, 31568c2ecf20Sopenharmony_ci [MMAGIC_BIMC_NOC_CFG_AHB_CLK] = &mmagic_bimc_noc_cfg_ahb_clk.clkr, 31578c2ecf20Sopenharmony_ci [GPU_GX_GFX3D_CLK] = &gpu_gx_gfx3d_clk.clkr, 31588c2ecf20Sopenharmony_ci [GPU_GX_RBBMTIMER_CLK] = &gpu_gx_rbbmtimer_clk.clkr, 31598c2ecf20Sopenharmony_ci [GPU_AHB_CLK] = &gpu_ahb_clk.clkr, 31608c2ecf20Sopenharmony_ci [GPU_AON_ISENSE_CLK] = &gpu_aon_isense_clk.clkr, 31618c2ecf20Sopenharmony_ci [VMEM_MAXI_CLK] = &vmem_maxi_clk.clkr, 31628c2ecf20Sopenharmony_ci [VMEM_AHB_CLK] = &vmem_ahb_clk.clkr, 31638c2ecf20Sopenharmony_ci [MMSS_RBCPR_CLK] = &mmss_rbcpr_clk.clkr, 31648c2ecf20Sopenharmony_ci [MMSS_RBCPR_AHB_CLK] = &mmss_rbcpr_ahb_clk.clkr, 31658c2ecf20Sopenharmony_ci [VIDEO_CORE_CLK] = &video_core_clk.clkr, 31668c2ecf20Sopenharmony_ci [VIDEO_AXI_CLK] = &video_axi_clk.clkr, 31678c2ecf20Sopenharmony_ci [VIDEO_MAXI_CLK] = &video_maxi_clk.clkr, 31688c2ecf20Sopenharmony_ci [VIDEO_AHB_CLK] = &video_ahb_clk.clkr, 31698c2ecf20Sopenharmony_ci [VIDEO_SUBCORE0_CLK] = &video_subcore0_clk.clkr, 31708c2ecf20Sopenharmony_ci [VIDEO_SUBCORE1_CLK] = &video_subcore1_clk.clkr, 31718c2ecf20Sopenharmony_ci [MDSS_AHB_CLK] = &mdss_ahb_clk.clkr, 31728c2ecf20Sopenharmony_ci [MDSS_HDMI_AHB_CLK] = &mdss_hdmi_ahb_clk.clkr, 31738c2ecf20Sopenharmony_ci [MDSS_AXI_CLK] = &mdss_axi_clk.clkr, 31748c2ecf20Sopenharmony_ci [MDSS_PCLK0_CLK] = &mdss_pclk0_clk.clkr, 31758c2ecf20Sopenharmony_ci [MDSS_PCLK1_CLK] = &mdss_pclk1_clk.clkr, 31768c2ecf20Sopenharmony_ci [MDSS_MDP_CLK] = &mdss_mdp_clk.clkr, 31778c2ecf20Sopenharmony_ci [MDSS_EXTPCLK_CLK] = &mdss_extpclk_clk.clkr, 31788c2ecf20Sopenharmony_ci [MDSS_VSYNC_CLK] = &mdss_vsync_clk.clkr, 31798c2ecf20Sopenharmony_ci [MDSS_HDMI_CLK] = &mdss_hdmi_clk.clkr, 31808c2ecf20Sopenharmony_ci [MDSS_BYTE0_CLK] = &mdss_byte0_clk.clkr, 31818c2ecf20Sopenharmony_ci [MDSS_BYTE1_CLK] = &mdss_byte1_clk.clkr, 31828c2ecf20Sopenharmony_ci [MDSS_ESC0_CLK] = &mdss_esc0_clk.clkr, 31838c2ecf20Sopenharmony_ci [MDSS_ESC1_CLK] = &mdss_esc1_clk.clkr, 31848c2ecf20Sopenharmony_ci [CAMSS_TOP_AHB_CLK] = &camss_top_ahb_clk.clkr, 31858c2ecf20Sopenharmony_ci [CAMSS_AHB_CLK] = &camss_ahb_clk.clkr, 31868c2ecf20Sopenharmony_ci [CAMSS_MICRO_AHB_CLK] = &camss_micro_ahb_clk.clkr, 31878c2ecf20Sopenharmony_ci [CAMSS_GP0_CLK] = &camss_gp0_clk.clkr, 31888c2ecf20Sopenharmony_ci [CAMSS_GP1_CLK] = &camss_gp1_clk.clkr, 31898c2ecf20Sopenharmony_ci [CAMSS_MCLK0_CLK] = &camss_mclk0_clk.clkr, 31908c2ecf20Sopenharmony_ci [CAMSS_MCLK1_CLK] = &camss_mclk1_clk.clkr, 31918c2ecf20Sopenharmony_ci [CAMSS_MCLK2_CLK] = &camss_mclk2_clk.clkr, 31928c2ecf20Sopenharmony_ci [CAMSS_MCLK3_CLK] = &camss_mclk3_clk.clkr, 31938c2ecf20Sopenharmony_ci [CAMSS_CCI_CLK] = &camss_cci_clk.clkr, 31948c2ecf20Sopenharmony_ci [CAMSS_CCI_AHB_CLK] = &camss_cci_ahb_clk.clkr, 31958c2ecf20Sopenharmony_ci [CAMSS_CSI0PHYTIMER_CLK] = &camss_csi0phytimer_clk.clkr, 31968c2ecf20Sopenharmony_ci [CAMSS_CSI1PHYTIMER_CLK] = &camss_csi1phytimer_clk.clkr, 31978c2ecf20Sopenharmony_ci [CAMSS_CSI2PHYTIMER_CLK] = &camss_csi2phytimer_clk.clkr, 31988c2ecf20Sopenharmony_ci [CAMSS_CSIPHY0_3P_CLK] = &camss_csiphy0_3p_clk.clkr, 31998c2ecf20Sopenharmony_ci [CAMSS_CSIPHY1_3P_CLK] = &camss_csiphy1_3p_clk.clkr, 32008c2ecf20Sopenharmony_ci [CAMSS_CSIPHY2_3P_CLK] = &camss_csiphy2_3p_clk.clkr, 32018c2ecf20Sopenharmony_ci [CAMSS_JPEG0_CLK] = &camss_jpeg0_clk.clkr, 32028c2ecf20Sopenharmony_ci [CAMSS_JPEG2_CLK] = &camss_jpeg2_clk.clkr, 32038c2ecf20Sopenharmony_ci [CAMSS_JPEG_DMA_CLK] = &camss_jpeg_dma_clk.clkr, 32048c2ecf20Sopenharmony_ci [CAMSS_JPEG_AHB_CLK] = &camss_jpeg_ahb_clk.clkr, 32058c2ecf20Sopenharmony_ci [CAMSS_JPEG_AXI_CLK] = &camss_jpeg_axi_clk.clkr, 32068c2ecf20Sopenharmony_ci [CAMSS_VFE_AHB_CLK] = &camss_vfe_ahb_clk.clkr, 32078c2ecf20Sopenharmony_ci [CAMSS_VFE_AXI_CLK] = &camss_vfe_axi_clk.clkr, 32088c2ecf20Sopenharmony_ci [CAMSS_VFE0_CLK] = &camss_vfe0_clk.clkr, 32098c2ecf20Sopenharmony_ci [CAMSS_VFE0_STREAM_CLK] = &camss_vfe0_stream_clk.clkr, 32108c2ecf20Sopenharmony_ci [CAMSS_VFE0_AHB_CLK] = &camss_vfe0_ahb_clk.clkr, 32118c2ecf20Sopenharmony_ci [CAMSS_VFE1_CLK] = &camss_vfe1_clk.clkr, 32128c2ecf20Sopenharmony_ci [CAMSS_VFE1_STREAM_CLK] = &camss_vfe1_stream_clk.clkr, 32138c2ecf20Sopenharmony_ci [CAMSS_VFE1_AHB_CLK] = &camss_vfe1_ahb_clk.clkr, 32148c2ecf20Sopenharmony_ci [CAMSS_CSI_VFE0_CLK] = &camss_csi_vfe0_clk.clkr, 32158c2ecf20Sopenharmony_ci [CAMSS_CSI_VFE1_CLK] = &camss_csi_vfe1_clk.clkr, 32168c2ecf20Sopenharmony_ci [CAMSS_CPP_VBIF_AHB_CLK] = &camss_cpp_vbif_ahb_clk.clkr, 32178c2ecf20Sopenharmony_ci [CAMSS_CPP_AXI_CLK] = &camss_cpp_axi_clk.clkr, 32188c2ecf20Sopenharmony_ci [CAMSS_CPP_CLK] = &camss_cpp_clk.clkr, 32198c2ecf20Sopenharmony_ci [CAMSS_CPP_AHB_CLK] = &camss_cpp_ahb_clk.clkr, 32208c2ecf20Sopenharmony_ci [CAMSS_CSI0_CLK] = &camss_csi0_clk.clkr, 32218c2ecf20Sopenharmony_ci [CAMSS_CSI0_AHB_CLK] = &camss_csi0_ahb_clk.clkr, 32228c2ecf20Sopenharmony_ci [CAMSS_CSI0PHY_CLK] = &camss_csi0phy_clk.clkr, 32238c2ecf20Sopenharmony_ci [CAMSS_CSI0RDI_CLK] = &camss_csi0rdi_clk.clkr, 32248c2ecf20Sopenharmony_ci [CAMSS_CSI0PIX_CLK] = &camss_csi0pix_clk.clkr, 32258c2ecf20Sopenharmony_ci [CAMSS_CSI1_CLK] = &camss_csi1_clk.clkr, 32268c2ecf20Sopenharmony_ci [CAMSS_CSI1_AHB_CLK] = &camss_csi1_ahb_clk.clkr, 32278c2ecf20Sopenharmony_ci [CAMSS_CSI1PHY_CLK] = &camss_csi1phy_clk.clkr, 32288c2ecf20Sopenharmony_ci [CAMSS_CSI1RDI_CLK] = &camss_csi1rdi_clk.clkr, 32298c2ecf20Sopenharmony_ci [CAMSS_CSI1PIX_CLK] = &camss_csi1pix_clk.clkr, 32308c2ecf20Sopenharmony_ci [CAMSS_CSI2_CLK] = &camss_csi2_clk.clkr, 32318c2ecf20Sopenharmony_ci [CAMSS_CSI2_AHB_CLK] = &camss_csi2_ahb_clk.clkr, 32328c2ecf20Sopenharmony_ci [CAMSS_CSI2PHY_CLK] = &camss_csi2phy_clk.clkr, 32338c2ecf20Sopenharmony_ci [CAMSS_CSI2RDI_CLK] = &camss_csi2rdi_clk.clkr, 32348c2ecf20Sopenharmony_ci [CAMSS_CSI2PIX_CLK] = &camss_csi2pix_clk.clkr, 32358c2ecf20Sopenharmony_ci [CAMSS_CSI3_CLK] = &camss_csi3_clk.clkr, 32368c2ecf20Sopenharmony_ci [CAMSS_CSI3_AHB_CLK] = &camss_csi3_ahb_clk.clkr, 32378c2ecf20Sopenharmony_ci [CAMSS_CSI3PHY_CLK] = &camss_csi3phy_clk.clkr, 32388c2ecf20Sopenharmony_ci [CAMSS_CSI3RDI_CLK] = &camss_csi3rdi_clk.clkr, 32398c2ecf20Sopenharmony_ci [CAMSS_CSI3PIX_CLK] = &camss_csi3pix_clk.clkr, 32408c2ecf20Sopenharmony_ci [CAMSS_ISPIF_AHB_CLK] = &camss_ispif_ahb_clk.clkr, 32418c2ecf20Sopenharmony_ci [FD_CORE_CLK] = &fd_core_clk.clkr, 32428c2ecf20Sopenharmony_ci [FD_CORE_UAR_CLK] = &fd_core_uar_clk.clkr, 32438c2ecf20Sopenharmony_ci [FD_AHB_CLK] = &fd_ahb_clk.clkr, 32448c2ecf20Sopenharmony_ci}; 32458c2ecf20Sopenharmony_ci 32468c2ecf20Sopenharmony_cistatic struct gdsc *mmcc_msm8996_gdscs[] = { 32478c2ecf20Sopenharmony_ci [MMAGIC_BIMC_GDSC] = &mmagic_bimc_gdsc, 32488c2ecf20Sopenharmony_ci [MMAGIC_VIDEO_GDSC] = &mmagic_video_gdsc, 32498c2ecf20Sopenharmony_ci [MMAGIC_MDSS_GDSC] = &mmagic_mdss_gdsc, 32508c2ecf20Sopenharmony_ci [MMAGIC_CAMSS_GDSC] = &mmagic_camss_gdsc, 32518c2ecf20Sopenharmony_ci [VENUS_GDSC] = &venus_gdsc, 32528c2ecf20Sopenharmony_ci [VENUS_CORE0_GDSC] = &venus_core0_gdsc, 32538c2ecf20Sopenharmony_ci [VENUS_CORE1_GDSC] = &venus_core1_gdsc, 32548c2ecf20Sopenharmony_ci [CAMSS_GDSC] = &camss_gdsc, 32558c2ecf20Sopenharmony_ci [VFE0_GDSC] = &vfe0_gdsc, 32568c2ecf20Sopenharmony_ci [VFE1_GDSC] = &vfe1_gdsc, 32578c2ecf20Sopenharmony_ci [JPEG_GDSC] = &jpeg_gdsc, 32588c2ecf20Sopenharmony_ci [CPP_GDSC] = &cpp_gdsc, 32598c2ecf20Sopenharmony_ci [FD_GDSC] = &fd_gdsc, 32608c2ecf20Sopenharmony_ci [MDSS_GDSC] = &mdss_gdsc, 32618c2ecf20Sopenharmony_ci [GPU_GDSC] = &gpu_gdsc, 32628c2ecf20Sopenharmony_ci [GPU_GX_GDSC] = &gpu_gx_gdsc, 32638c2ecf20Sopenharmony_ci}; 32648c2ecf20Sopenharmony_ci 32658c2ecf20Sopenharmony_cistatic const struct qcom_reset_map mmcc_msm8996_resets[] = { 32668c2ecf20Sopenharmony_ci [MMAGICAHB_BCR] = { 0x5020 }, 32678c2ecf20Sopenharmony_ci [MMAGIC_CFG_BCR] = { 0x5050 }, 32688c2ecf20Sopenharmony_ci [MISC_BCR] = { 0x5010 }, 32698c2ecf20Sopenharmony_ci [BTO_BCR] = { 0x5030 }, 32708c2ecf20Sopenharmony_ci [MMAGICAXI_BCR] = { 0x5060 }, 32718c2ecf20Sopenharmony_ci [MMAGICMAXI_BCR] = { 0x5070 }, 32728c2ecf20Sopenharmony_ci [DSA_BCR] = { 0x50a0 }, 32738c2ecf20Sopenharmony_ci [MMAGIC_CAMSS_BCR] = { 0x3c40 }, 32748c2ecf20Sopenharmony_ci [THROTTLE_CAMSS_BCR] = { 0x3c30 }, 32758c2ecf20Sopenharmony_ci [SMMU_VFE_BCR] = { 0x3c00 }, 32768c2ecf20Sopenharmony_ci [SMMU_CPP_BCR] = { 0x3c10 }, 32778c2ecf20Sopenharmony_ci [SMMU_JPEG_BCR] = { 0x3c20 }, 32788c2ecf20Sopenharmony_ci [MMAGIC_MDSS_BCR] = { 0x2470 }, 32798c2ecf20Sopenharmony_ci [THROTTLE_MDSS_BCR] = { 0x2460 }, 32808c2ecf20Sopenharmony_ci [SMMU_ROT_BCR] = { 0x2440 }, 32818c2ecf20Sopenharmony_ci [SMMU_MDP_BCR] = { 0x2450 }, 32828c2ecf20Sopenharmony_ci [MMAGIC_VIDEO_BCR] = { 0x1190 }, 32838c2ecf20Sopenharmony_ci [THROTTLE_VIDEO_BCR] = { 0x1180 }, 32848c2ecf20Sopenharmony_ci [SMMU_VIDEO_BCR] = { 0x1170 }, 32858c2ecf20Sopenharmony_ci [MMAGIC_BIMC_BCR] = { 0x5290 }, 32868c2ecf20Sopenharmony_ci [GPU_GX_BCR] = { 0x4020 }, 32878c2ecf20Sopenharmony_ci [GPU_BCR] = { 0x4030 }, 32888c2ecf20Sopenharmony_ci [GPU_AON_BCR] = { 0x4040 }, 32898c2ecf20Sopenharmony_ci [VMEM_BCR] = { 0x1200 }, 32908c2ecf20Sopenharmony_ci [MMSS_RBCPR_BCR] = { 0x4080 }, 32918c2ecf20Sopenharmony_ci [VIDEO_BCR] = { 0x1020 }, 32928c2ecf20Sopenharmony_ci [MDSS_BCR] = { 0x2300 }, 32938c2ecf20Sopenharmony_ci [CAMSS_TOP_BCR] = { 0x3480 }, 32948c2ecf20Sopenharmony_ci [CAMSS_AHB_BCR] = { 0x3488 }, 32958c2ecf20Sopenharmony_ci [CAMSS_MICRO_BCR] = { 0x3490 }, 32968c2ecf20Sopenharmony_ci [CAMSS_CCI_BCR] = { 0x3340 }, 32978c2ecf20Sopenharmony_ci [CAMSS_PHY0_BCR] = { 0x3020 }, 32988c2ecf20Sopenharmony_ci [CAMSS_PHY1_BCR] = { 0x3050 }, 32998c2ecf20Sopenharmony_ci [CAMSS_PHY2_BCR] = { 0x3080 }, 33008c2ecf20Sopenharmony_ci [CAMSS_CSIPHY0_3P_BCR] = { 0x3230 }, 33018c2ecf20Sopenharmony_ci [CAMSS_CSIPHY1_3P_BCR] = { 0x3250 }, 33028c2ecf20Sopenharmony_ci [CAMSS_CSIPHY2_3P_BCR] = { 0x3270 }, 33038c2ecf20Sopenharmony_ci [CAMSS_JPEG_BCR] = { 0x35a0 }, 33048c2ecf20Sopenharmony_ci [CAMSS_VFE_BCR] = { 0x36a0 }, 33058c2ecf20Sopenharmony_ci [CAMSS_VFE0_BCR] = { 0x3660 }, 33068c2ecf20Sopenharmony_ci [CAMSS_VFE1_BCR] = { 0x3670 }, 33078c2ecf20Sopenharmony_ci [CAMSS_CSI_VFE0_BCR] = { 0x3700 }, 33088c2ecf20Sopenharmony_ci [CAMSS_CSI_VFE1_BCR] = { 0x3710 }, 33098c2ecf20Sopenharmony_ci [CAMSS_CPP_TOP_BCR] = { 0x36c0 }, 33108c2ecf20Sopenharmony_ci [CAMSS_CPP_BCR] = { 0x36d0 }, 33118c2ecf20Sopenharmony_ci [CAMSS_CSI0_BCR] = { 0x30b0 }, 33128c2ecf20Sopenharmony_ci [CAMSS_CSI0RDI_BCR] = { 0x30d0 }, 33138c2ecf20Sopenharmony_ci [CAMSS_CSI0PIX_BCR] = { 0x30e0 }, 33148c2ecf20Sopenharmony_ci [CAMSS_CSI1_BCR] = { 0x3120 }, 33158c2ecf20Sopenharmony_ci [CAMSS_CSI1RDI_BCR] = { 0x3140 }, 33168c2ecf20Sopenharmony_ci [CAMSS_CSI1PIX_BCR] = { 0x3150 }, 33178c2ecf20Sopenharmony_ci [CAMSS_CSI2_BCR] = { 0x3180 }, 33188c2ecf20Sopenharmony_ci [CAMSS_CSI2RDI_BCR] = { 0x31a0 }, 33198c2ecf20Sopenharmony_ci [CAMSS_CSI2PIX_BCR] = { 0x31b0 }, 33208c2ecf20Sopenharmony_ci [CAMSS_CSI3_BCR] = { 0x31e0 }, 33218c2ecf20Sopenharmony_ci [CAMSS_CSI3RDI_BCR] = { 0x3200 }, 33228c2ecf20Sopenharmony_ci [CAMSS_CSI3PIX_BCR] = { 0x3210 }, 33238c2ecf20Sopenharmony_ci [CAMSS_ISPIF_BCR] = { 0x3220 }, 33248c2ecf20Sopenharmony_ci [FD_BCR] = { 0x3b60 }, 33258c2ecf20Sopenharmony_ci [MMSS_SPDM_RM_BCR] = { 0x300 }, 33268c2ecf20Sopenharmony_ci}; 33278c2ecf20Sopenharmony_ci 33288c2ecf20Sopenharmony_cistatic const struct regmap_config mmcc_msm8996_regmap_config = { 33298c2ecf20Sopenharmony_ci .reg_bits = 32, 33308c2ecf20Sopenharmony_ci .reg_stride = 4, 33318c2ecf20Sopenharmony_ci .val_bits = 32, 33328c2ecf20Sopenharmony_ci .max_register = 0xb008, 33338c2ecf20Sopenharmony_ci .fast_io = true, 33348c2ecf20Sopenharmony_ci}; 33358c2ecf20Sopenharmony_ci 33368c2ecf20Sopenharmony_cistatic const struct qcom_cc_desc mmcc_msm8996_desc = { 33378c2ecf20Sopenharmony_ci .config = &mmcc_msm8996_regmap_config, 33388c2ecf20Sopenharmony_ci .clks = mmcc_msm8996_clocks, 33398c2ecf20Sopenharmony_ci .num_clks = ARRAY_SIZE(mmcc_msm8996_clocks), 33408c2ecf20Sopenharmony_ci .resets = mmcc_msm8996_resets, 33418c2ecf20Sopenharmony_ci .num_resets = ARRAY_SIZE(mmcc_msm8996_resets), 33428c2ecf20Sopenharmony_ci .gdscs = mmcc_msm8996_gdscs, 33438c2ecf20Sopenharmony_ci .num_gdscs = ARRAY_SIZE(mmcc_msm8996_gdscs), 33448c2ecf20Sopenharmony_ci .clk_hws = mmcc_msm8996_hws, 33458c2ecf20Sopenharmony_ci .num_clk_hws = ARRAY_SIZE(mmcc_msm8996_hws), 33468c2ecf20Sopenharmony_ci}; 33478c2ecf20Sopenharmony_ci 33488c2ecf20Sopenharmony_cistatic const struct of_device_id mmcc_msm8996_match_table[] = { 33498c2ecf20Sopenharmony_ci { .compatible = "qcom,mmcc-msm8996" }, 33508c2ecf20Sopenharmony_ci { } 33518c2ecf20Sopenharmony_ci}; 33528c2ecf20Sopenharmony_ciMODULE_DEVICE_TABLE(of, mmcc_msm8996_match_table); 33538c2ecf20Sopenharmony_ci 33548c2ecf20Sopenharmony_cistatic int mmcc_msm8996_probe(struct platform_device *pdev) 33558c2ecf20Sopenharmony_ci{ 33568c2ecf20Sopenharmony_ci struct regmap *regmap; 33578c2ecf20Sopenharmony_ci 33588c2ecf20Sopenharmony_ci regmap = qcom_cc_map(pdev, &mmcc_msm8996_desc); 33598c2ecf20Sopenharmony_ci if (IS_ERR(regmap)) 33608c2ecf20Sopenharmony_ci return PTR_ERR(regmap); 33618c2ecf20Sopenharmony_ci 33628c2ecf20Sopenharmony_ci /* Disable the AHB DCD */ 33638c2ecf20Sopenharmony_ci regmap_update_bits(regmap, 0x50d8, BIT(31), 0); 33648c2ecf20Sopenharmony_ci /* Disable the NoC FSM for mmss_mmagic_cfg_ahb_clk */ 33658c2ecf20Sopenharmony_ci regmap_update_bits(regmap, 0x5054, BIT(15), 0); 33668c2ecf20Sopenharmony_ci 33678c2ecf20Sopenharmony_ci return qcom_cc_really_probe(pdev, &mmcc_msm8996_desc, regmap); 33688c2ecf20Sopenharmony_ci} 33698c2ecf20Sopenharmony_ci 33708c2ecf20Sopenharmony_cistatic struct platform_driver mmcc_msm8996_driver = { 33718c2ecf20Sopenharmony_ci .probe = mmcc_msm8996_probe, 33728c2ecf20Sopenharmony_ci .driver = { 33738c2ecf20Sopenharmony_ci .name = "mmcc-msm8996", 33748c2ecf20Sopenharmony_ci .of_match_table = mmcc_msm8996_match_table, 33758c2ecf20Sopenharmony_ci }, 33768c2ecf20Sopenharmony_ci}; 33778c2ecf20Sopenharmony_cimodule_platform_driver(mmcc_msm8996_driver); 33788c2ecf20Sopenharmony_ci 33798c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("QCOM MMCC MSM8996 Driver"); 33808c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL v2"); 33818c2ecf20Sopenharmony_ciMODULE_ALIAS("platform:mmcc-msm8996"); 3382