18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <linux/kernel.h> 78c2ecf20Sopenharmony_ci#include <linux/platform_device.h> 88c2ecf20Sopenharmony_ci#include <linux/module.h> 98c2ecf20Sopenharmony_ci#include <linux/regmap.h> 108c2ecf20Sopenharmony_ci#include <linux/reset-controller.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <dt-bindings/clock/qcom,mmcc-apq8084.h> 138c2ecf20Sopenharmony_ci#include <dt-bindings/reset/qcom,mmcc-apq8084.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#include "common.h" 168c2ecf20Sopenharmony_ci#include "clk-regmap.h" 178c2ecf20Sopenharmony_ci#include "clk-pll.h" 188c2ecf20Sopenharmony_ci#include "clk-rcg.h" 198c2ecf20Sopenharmony_ci#include "clk-branch.h" 208c2ecf20Sopenharmony_ci#include "reset.h" 218c2ecf20Sopenharmony_ci#include "gdsc.h" 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cienum { 248c2ecf20Sopenharmony_ci P_XO, 258c2ecf20Sopenharmony_ci P_MMPLL0, 268c2ecf20Sopenharmony_ci P_EDPLINK, 278c2ecf20Sopenharmony_ci P_MMPLL1, 288c2ecf20Sopenharmony_ci P_HDMIPLL, 298c2ecf20Sopenharmony_ci P_GPLL0, 308c2ecf20Sopenharmony_ci P_EDPVCO, 318c2ecf20Sopenharmony_ci P_MMPLL4, 328c2ecf20Sopenharmony_ci P_DSI0PLL, 338c2ecf20Sopenharmony_ci P_DSI0PLL_BYTE, 348c2ecf20Sopenharmony_ci P_MMPLL2, 358c2ecf20Sopenharmony_ci P_MMPLL3, 368c2ecf20Sopenharmony_ci P_GPLL1, 378c2ecf20Sopenharmony_ci P_DSI1PLL, 388c2ecf20Sopenharmony_ci P_DSI1PLL_BYTE, 398c2ecf20Sopenharmony_ci P_MMSLEEP, 408c2ecf20Sopenharmony_ci}; 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_mmpll1_gpll0_map[] = { 438c2ecf20Sopenharmony_ci { P_XO, 0 }, 448c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 458c2ecf20Sopenharmony_ci { P_MMPLL1, 2 }, 468c2ecf20Sopenharmony_ci { P_GPLL0, 5 } 478c2ecf20Sopenharmony_ci}; 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_mmpll0_mmpll1_gpll0[] = { 508c2ecf20Sopenharmony_ci "xo", 518c2ecf20Sopenharmony_ci "mmpll0_vote", 528c2ecf20Sopenharmony_ci "mmpll1_vote", 538c2ecf20Sopenharmony_ci "mmss_gpll0_vote", 548c2ecf20Sopenharmony_ci}; 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_dsi_hdmi_gpll0_map[] = { 578c2ecf20Sopenharmony_ci { P_XO, 0 }, 588c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 598c2ecf20Sopenharmony_ci { P_HDMIPLL, 4 }, 608c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 618c2ecf20Sopenharmony_ci { P_DSI0PLL, 2 }, 628c2ecf20Sopenharmony_ci { P_DSI1PLL, 3 } 638c2ecf20Sopenharmony_ci}; 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_mmpll0_dsi_hdmi_gpll0[] = { 668c2ecf20Sopenharmony_ci "xo", 678c2ecf20Sopenharmony_ci "mmpll0_vote", 688c2ecf20Sopenharmony_ci "hdmipll", 698c2ecf20Sopenharmony_ci "mmss_gpll0_vote", 708c2ecf20Sopenharmony_ci "dsi0pll", 718c2ecf20Sopenharmony_ci "dsi1pll", 728c2ecf20Sopenharmony_ci}; 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_2_gpll0_map[] = { 758c2ecf20Sopenharmony_ci { P_XO, 0 }, 768c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 778c2ecf20Sopenharmony_ci { P_MMPLL1, 2 }, 788c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 798c2ecf20Sopenharmony_ci { P_MMPLL2, 3 } 808c2ecf20Sopenharmony_ci}; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_mmpll0_1_2_gpll0[] = { 838c2ecf20Sopenharmony_ci "xo", 848c2ecf20Sopenharmony_ci "mmpll0_vote", 858c2ecf20Sopenharmony_ci "mmpll1_vote", 868c2ecf20Sopenharmony_ci "mmss_gpll0_vote", 878c2ecf20Sopenharmony_ci "mmpll2", 888c2ecf20Sopenharmony_ci}; 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_3_gpll0_map[] = { 918c2ecf20Sopenharmony_ci { P_XO, 0 }, 928c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 938c2ecf20Sopenharmony_ci { P_MMPLL1, 2 }, 948c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 958c2ecf20Sopenharmony_ci { P_MMPLL3, 3 } 968c2ecf20Sopenharmony_ci}; 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_mmpll0_1_3_gpll0[] = { 998c2ecf20Sopenharmony_ci "xo", 1008c2ecf20Sopenharmony_ci "mmpll0_vote", 1018c2ecf20Sopenharmony_ci "mmpll1_vote", 1028c2ecf20Sopenharmony_ci "mmss_gpll0_vote", 1038c2ecf20Sopenharmony_ci "mmpll3", 1048c2ecf20Sopenharmony_ci}; 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_dsi_hdmi_edp_map[] = { 1078c2ecf20Sopenharmony_ci { P_XO, 0 }, 1088c2ecf20Sopenharmony_ci { P_EDPLINK, 4 }, 1098c2ecf20Sopenharmony_ci { P_HDMIPLL, 3 }, 1108c2ecf20Sopenharmony_ci { P_EDPVCO, 5 }, 1118c2ecf20Sopenharmony_ci { P_DSI0PLL, 1 }, 1128c2ecf20Sopenharmony_ci { P_DSI1PLL, 2 } 1138c2ecf20Sopenharmony_ci}; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_dsi_hdmi_edp[] = { 1168c2ecf20Sopenharmony_ci "xo", 1178c2ecf20Sopenharmony_ci "edp_link_clk", 1188c2ecf20Sopenharmony_ci "hdmipll", 1198c2ecf20Sopenharmony_ci "edp_vco_div", 1208c2ecf20Sopenharmony_ci "dsi0pll", 1218c2ecf20Sopenharmony_ci "dsi1pll", 1228c2ecf20Sopenharmony_ci}; 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_dsi_hdmi_edp_gpll0_map[] = { 1258c2ecf20Sopenharmony_ci { P_XO, 0 }, 1268c2ecf20Sopenharmony_ci { P_EDPLINK, 4 }, 1278c2ecf20Sopenharmony_ci { P_HDMIPLL, 3 }, 1288c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 1298c2ecf20Sopenharmony_ci { P_DSI0PLL, 1 }, 1308c2ecf20Sopenharmony_ci { P_DSI1PLL, 2 } 1318c2ecf20Sopenharmony_ci}; 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_dsi_hdmi_edp_gpll0[] = { 1348c2ecf20Sopenharmony_ci "xo", 1358c2ecf20Sopenharmony_ci "edp_link_clk", 1368c2ecf20Sopenharmony_ci "hdmipll", 1378c2ecf20Sopenharmony_ci "gpll0_vote", 1388c2ecf20Sopenharmony_ci "dsi0pll", 1398c2ecf20Sopenharmony_ci "dsi1pll", 1408c2ecf20Sopenharmony_ci}; 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_dsibyte_hdmi_edp_gpll0_map[] = { 1438c2ecf20Sopenharmony_ci { P_XO, 0 }, 1448c2ecf20Sopenharmony_ci { P_EDPLINK, 4 }, 1458c2ecf20Sopenharmony_ci { P_HDMIPLL, 3 }, 1468c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 1478c2ecf20Sopenharmony_ci { P_DSI0PLL_BYTE, 1 }, 1488c2ecf20Sopenharmony_ci { P_DSI1PLL_BYTE, 2 } 1498c2ecf20Sopenharmony_ci}; 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_dsibyte_hdmi_edp_gpll0[] = { 1528c2ecf20Sopenharmony_ci "xo", 1538c2ecf20Sopenharmony_ci "edp_link_clk", 1548c2ecf20Sopenharmony_ci "hdmipll", 1558c2ecf20Sopenharmony_ci "gpll0_vote", 1568c2ecf20Sopenharmony_ci "dsi0pllbyte", 1578c2ecf20Sopenharmony_ci "dsi1pllbyte", 1588c2ecf20Sopenharmony_ci}; 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_4_gpll0_map[] = { 1618c2ecf20Sopenharmony_ci { P_XO, 0 }, 1628c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 1638c2ecf20Sopenharmony_ci { P_MMPLL1, 2 }, 1648c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 1658c2ecf20Sopenharmony_ci { P_MMPLL4, 3 } 1668c2ecf20Sopenharmony_ci}; 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_mmpll0_1_4_gpll0[] = { 1698c2ecf20Sopenharmony_ci "xo", 1708c2ecf20Sopenharmony_ci "mmpll0", 1718c2ecf20Sopenharmony_ci "mmpll1", 1728c2ecf20Sopenharmony_ci "mmpll4", 1738c2ecf20Sopenharmony_ci "gpll0", 1748c2ecf20Sopenharmony_ci}; 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_4_gpll1_0_map[] = { 1778c2ecf20Sopenharmony_ci { P_XO, 0 }, 1788c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 1798c2ecf20Sopenharmony_ci { P_MMPLL1, 2 }, 1808c2ecf20Sopenharmony_ci { P_MMPLL4, 3 }, 1818c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 1828c2ecf20Sopenharmony_ci { P_GPLL1, 4 } 1838c2ecf20Sopenharmony_ci}; 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_mmpll0_1_4_gpll1_0[] = { 1868c2ecf20Sopenharmony_ci "xo", 1878c2ecf20Sopenharmony_ci "mmpll0", 1888c2ecf20Sopenharmony_ci "mmpll1", 1898c2ecf20Sopenharmony_ci "mmpll4", 1908c2ecf20Sopenharmony_ci "gpll1", 1918c2ecf20Sopenharmony_ci "gpll0", 1928c2ecf20Sopenharmony_ci}; 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_cistatic const struct parent_map mmcc_xo_mmpll0_1_4_gpll1_0_sleep_map[] = { 1958c2ecf20Sopenharmony_ci { P_XO, 0 }, 1968c2ecf20Sopenharmony_ci { P_MMPLL0, 1 }, 1978c2ecf20Sopenharmony_ci { P_MMPLL1, 2 }, 1988c2ecf20Sopenharmony_ci { P_MMPLL4, 3 }, 1998c2ecf20Sopenharmony_ci { P_GPLL0, 5 }, 2008c2ecf20Sopenharmony_ci { P_GPLL1, 4 }, 2018c2ecf20Sopenharmony_ci { P_MMSLEEP, 6 } 2028c2ecf20Sopenharmony_ci}; 2038c2ecf20Sopenharmony_ci 2048c2ecf20Sopenharmony_cistatic const char * const mmcc_xo_mmpll0_1_4_gpll1_0_sleep[] = { 2058c2ecf20Sopenharmony_ci "xo", 2068c2ecf20Sopenharmony_ci "mmpll0", 2078c2ecf20Sopenharmony_ci "mmpll1", 2088c2ecf20Sopenharmony_ci "mmpll4", 2098c2ecf20Sopenharmony_ci "gpll1", 2108c2ecf20Sopenharmony_ci "gpll0", 2118c2ecf20Sopenharmony_ci "sleep_clk_src", 2128c2ecf20Sopenharmony_ci}; 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_cistatic struct clk_pll mmpll0 = { 2158c2ecf20Sopenharmony_ci .l_reg = 0x0004, 2168c2ecf20Sopenharmony_ci .m_reg = 0x0008, 2178c2ecf20Sopenharmony_ci .n_reg = 0x000c, 2188c2ecf20Sopenharmony_ci .config_reg = 0x0014, 2198c2ecf20Sopenharmony_ci .mode_reg = 0x0000, 2208c2ecf20Sopenharmony_ci .status_reg = 0x001c, 2218c2ecf20Sopenharmony_ci .status_bit = 17, 2228c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 2238c2ecf20Sopenharmony_ci .name = "mmpll0", 2248c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 2258c2ecf20Sopenharmony_ci .num_parents = 1, 2268c2ecf20Sopenharmony_ci .ops = &clk_pll_ops, 2278c2ecf20Sopenharmony_ci }, 2288c2ecf20Sopenharmony_ci}; 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_cistatic struct clk_regmap mmpll0_vote = { 2318c2ecf20Sopenharmony_ci .enable_reg = 0x0100, 2328c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 2338c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 2348c2ecf20Sopenharmony_ci .name = "mmpll0_vote", 2358c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll0" }, 2368c2ecf20Sopenharmony_ci .num_parents = 1, 2378c2ecf20Sopenharmony_ci .ops = &clk_pll_vote_ops, 2388c2ecf20Sopenharmony_ci }, 2398c2ecf20Sopenharmony_ci}; 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_cistatic struct clk_pll mmpll1 = { 2428c2ecf20Sopenharmony_ci .l_reg = 0x0044, 2438c2ecf20Sopenharmony_ci .m_reg = 0x0048, 2448c2ecf20Sopenharmony_ci .n_reg = 0x004c, 2458c2ecf20Sopenharmony_ci .config_reg = 0x0050, 2468c2ecf20Sopenharmony_ci .mode_reg = 0x0040, 2478c2ecf20Sopenharmony_ci .status_reg = 0x005c, 2488c2ecf20Sopenharmony_ci .status_bit = 17, 2498c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 2508c2ecf20Sopenharmony_ci .name = "mmpll1", 2518c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 2528c2ecf20Sopenharmony_ci .num_parents = 1, 2538c2ecf20Sopenharmony_ci .ops = &clk_pll_ops, 2548c2ecf20Sopenharmony_ci }, 2558c2ecf20Sopenharmony_ci}; 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_cistatic struct clk_regmap mmpll1_vote = { 2588c2ecf20Sopenharmony_ci .enable_reg = 0x0100, 2598c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 2608c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 2618c2ecf20Sopenharmony_ci .name = "mmpll1_vote", 2628c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "mmpll1" }, 2638c2ecf20Sopenharmony_ci .num_parents = 1, 2648c2ecf20Sopenharmony_ci .ops = &clk_pll_vote_ops, 2658c2ecf20Sopenharmony_ci }, 2668c2ecf20Sopenharmony_ci}; 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_cistatic struct clk_pll mmpll2 = { 2698c2ecf20Sopenharmony_ci .l_reg = 0x4104, 2708c2ecf20Sopenharmony_ci .m_reg = 0x4108, 2718c2ecf20Sopenharmony_ci .n_reg = 0x410c, 2728c2ecf20Sopenharmony_ci .config_reg = 0x4110, 2738c2ecf20Sopenharmony_ci .mode_reg = 0x4100, 2748c2ecf20Sopenharmony_ci .status_reg = 0x411c, 2758c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 2768c2ecf20Sopenharmony_ci .name = "mmpll2", 2778c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 2788c2ecf20Sopenharmony_ci .num_parents = 1, 2798c2ecf20Sopenharmony_ci .ops = &clk_pll_ops, 2808c2ecf20Sopenharmony_ci }, 2818c2ecf20Sopenharmony_ci}; 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_cistatic struct clk_pll mmpll3 = { 2848c2ecf20Sopenharmony_ci .l_reg = 0x0084, 2858c2ecf20Sopenharmony_ci .m_reg = 0x0088, 2868c2ecf20Sopenharmony_ci .n_reg = 0x008c, 2878c2ecf20Sopenharmony_ci .config_reg = 0x0090, 2888c2ecf20Sopenharmony_ci .mode_reg = 0x0080, 2898c2ecf20Sopenharmony_ci .status_reg = 0x009c, 2908c2ecf20Sopenharmony_ci .status_bit = 17, 2918c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 2928c2ecf20Sopenharmony_ci .name = "mmpll3", 2938c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 2948c2ecf20Sopenharmony_ci .num_parents = 1, 2958c2ecf20Sopenharmony_ci .ops = &clk_pll_ops, 2968c2ecf20Sopenharmony_ci }, 2978c2ecf20Sopenharmony_ci}; 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_cistatic struct clk_pll mmpll4 = { 3008c2ecf20Sopenharmony_ci .l_reg = 0x00a4, 3018c2ecf20Sopenharmony_ci .m_reg = 0x00a8, 3028c2ecf20Sopenharmony_ci .n_reg = 0x00ac, 3038c2ecf20Sopenharmony_ci .config_reg = 0x00b0, 3048c2ecf20Sopenharmony_ci .mode_reg = 0x0080, 3058c2ecf20Sopenharmony_ci .status_reg = 0x00bc, 3068c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3078c2ecf20Sopenharmony_ci .name = "mmpll4", 3088c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 3098c2ecf20Sopenharmony_ci .num_parents = 1, 3108c2ecf20Sopenharmony_ci .ops = &clk_pll_ops, 3118c2ecf20Sopenharmony_ci }, 3128c2ecf20Sopenharmony_ci}; 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_cistatic struct clk_rcg2 mmss_ahb_clk_src = { 3158c2ecf20Sopenharmony_ci .cmd_rcgr = 0x5000, 3168c2ecf20Sopenharmony_ci .hid_width = 5, 3178c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 3188c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3198c2ecf20Sopenharmony_ci .name = "mmss_ahb_clk_src", 3208c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 3218c2ecf20Sopenharmony_ci .num_parents = 4, 3228c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 3238c2ecf20Sopenharmony_ci }, 3248c2ecf20Sopenharmony_ci}; 3258c2ecf20Sopenharmony_ci 3268c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mmss_axi_clk[] = { 3278c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 3288c2ecf20Sopenharmony_ci F(37500000, P_GPLL0, 16, 0, 0), 3298c2ecf20Sopenharmony_ci F(50000000, P_GPLL0, 12, 0, 0), 3308c2ecf20Sopenharmony_ci F(75000000, P_GPLL0, 8, 0, 0), 3318c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 3328c2ecf20Sopenharmony_ci F(150000000, P_GPLL0, 4, 0, 0), 3338c2ecf20Sopenharmony_ci F(333430000, P_MMPLL1, 3.5, 0, 0), 3348c2ecf20Sopenharmony_ci F(400000000, P_MMPLL0, 2, 0, 0), 3358c2ecf20Sopenharmony_ci F(466800000, P_MMPLL1, 2.5, 0, 0), 3368c2ecf20Sopenharmony_ci { } 3378c2ecf20Sopenharmony_ci}; 3388c2ecf20Sopenharmony_ci 3398c2ecf20Sopenharmony_cistatic struct clk_rcg2 mmss_axi_clk_src = { 3408c2ecf20Sopenharmony_ci .cmd_rcgr = 0x5040, 3418c2ecf20Sopenharmony_ci .hid_width = 5, 3428c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 3438c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mmss_axi_clk, 3448c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3458c2ecf20Sopenharmony_ci .name = "mmss_axi_clk_src", 3468c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 3478c2ecf20Sopenharmony_ci .num_parents = 4, 3488c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 3498c2ecf20Sopenharmony_ci }, 3508c2ecf20Sopenharmony_ci}; 3518c2ecf20Sopenharmony_ci 3528c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_ocmemnoc_clk[] = { 3538c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 3548c2ecf20Sopenharmony_ci F(37500000, P_GPLL0, 16, 0, 0), 3558c2ecf20Sopenharmony_ci F(50000000, P_GPLL0, 12, 0, 0), 3568c2ecf20Sopenharmony_ci F(75000000, P_GPLL0, 8, 0, 0), 3578c2ecf20Sopenharmony_ci F(109090000, P_GPLL0, 5.5, 0, 0), 3588c2ecf20Sopenharmony_ci F(150000000, P_GPLL0, 4, 0, 0), 3598c2ecf20Sopenharmony_ci F(228570000, P_MMPLL0, 3.5, 0, 0), 3608c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 3618c2ecf20Sopenharmony_ci { } 3628c2ecf20Sopenharmony_ci}; 3638c2ecf20Sopenharmony_ci 3648c2ecf20Sopenharmony_cistatic struct clk_rcg2 ocmemnoc_clk_src = { 3658c2ecf20Sopenharmony_ci .cmd_rcgr = 0x5090, 3668c2ecf20Sopenharmony_ci .hid_width = 5, 3678c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 3688c2ecf20Sopenharmony_ci .freq_tbl = ftbl_ocmemnoc_clk, 3698c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3708c2ecf20Sopenharmony_ci .name = "ocmemnoc_clk_src", 3718c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 3728c2ecf20Sopenharmony_ci .num_parents = 4, 3738c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 3748c2ecf20Sopenharmony_ci }, 3758c2ecf20Sopenharmony_ci}; 3768c2ecf20Sopenharmony_ci 3778c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_camss_csi0_3_clk[] = { 3788c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 3798c2ecf20Sopenharmony_ci F(200000000, P_MMPLL0, 4, 0, 0), 3808c2ecf20Sopenharmony_ci { } 3818c2ecf20Sopenharmony_ci}; 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi0_clk_src = { 3848c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3090, 3858c2ecf20Sopenharmony_ci .hid_width = 5, 3868c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 3878c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_csi0_3_clk, 3888c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 3898c2ecf20Sopenharmony_ci .name = "csi0_clk_src", 3908c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 3918c2ecf20Sopenharmony_ci .num_parents = 5, 3928c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 3938c2ecf20Sopenharmony_ci }, 3948c2ecf20Sopenharmony_ci}; 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi1_clk_src = { 3978c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3100, 3988c2ecf20Sopenharmony_ci .hid_width = 5, 3998c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 4008c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_csi0_3_clk, 4018c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4028c2ecf20Sopenharmony_ci .name = "csi1_clk_src", 4038c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 4048c2ecf20Sopenharmony_ci .num_parents = 5, 4058c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4068c2ecf20Sopenharmony_ci }, 4078c2ecf20Sopenharmony_ci}; 4088c2ecf20Sopenharmony_ci 4098c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi2_clk_src = { 4108c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3160, 4118c2ecf20Sopenharmony_ci .hid_width = 5, 4128c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 4138c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_csi0_3_clk, 4148c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4158c2ecf20Sopenharmony_ci .name = "csi2_clk_src", 4168c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 4178c2ecf20Sopenharmony_ci .num_parents = 5, 4188c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4198c2ecf20Sopenharmony_ci }, 4208c2ecf20Sopenharmony_ci}; 4218c2ecf20Sopenharmony_ci 4228c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi3_clk_src = { 4238c2ecf20Sopenharmony_ci .cmd_rcgr = 0x31c0, 4248c2ecf20Sopenharmony_ci .hid_width = 5, 4258c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 4268c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_csi0_3_clk, 4278c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4288c2ecf20Sopenharmony_ci .name = "csi3_clk_src", 4298c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 4308c2ecf20Sopenharmony_ci .num_parents = 5, 4318c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4328c2ecf20Sopenharmony_ci }, 4338c2ecf20Sopenharmony_ci}; 4348c2ecf20Sopenharmony_ci 4358c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_camss_vfe_vfe0_1_clk[] = { 4368c2ecf20Sopenharmony_ci F(37500000, P_GPLL0, 16, 0, 0), 4378c2ecf20Sopenharmony_ci F(50000000, P_GPLL0, 12, 0, 0), 4388c2ecf20Sopenharmony_ci F(60000000, P_GPLL0, 10, 0, 0), 4398c2ecf20Sopenharmony_ci F(80000000, P_GPLL0, 7.5, 0, 0), 4408c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 4418c2ecf20Sopenharmony_ci F(109090000, P_GPLL0, 5.5, 0, 0), 4428c2ecf20Sopenharmony_ci F(133330000, P_GPLL0, 4.5, 0, 0), 4438c2ecf20Sopenharmony_ci F(200000000, P_GPLL0, 3, 0, 0), 4448c2ecf20Sopenharmony_ci F(228570000, P_MMPLL0, 3.5, 0, 0), 4458c2ecf20Sopenharmony_ci F(266670000, P_MMPLL0, 3, 0, 0), 4468c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 4478c2ecf20Sopenharmony_ci F(465000000, P_MMPLL4, 2, 0, 0), 4488c2ecf20Sopenharmony_ci F(600000000, P_GPLL0, 1, 0, 0), 4498c2ecf20Sopenharmony_ci { } 4508c2ecf20Sopenharmony_ci}; 4518c2ecf20Sopenharmony_ci 4528c2ecf20Sopenharmony_cistatic struct clk_rcg2 vfe0_clk_src = { 4538c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3600, 4548c2ecf20Sopenharmony_ci .hid_width = 5, 4558c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 4568c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_vfe_vfe0_1_clk, 4578c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4588c2ecf20Sopenharmony_ci .name = "vfe0_clk_src", 4598c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 4608c2ecf20Sopenharmony_ci .num_parents = 5, 4618c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4628c2ecf20Sopenharmony_ci }, 4638c2ecf20Sopenharmony_ci}; 4648c2ecf20Sopenharmony_ci 4658c2ecf20Sopenharmony_cistatic struct clk_rcg2 vfe1_clk_src = { 4668c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3620, 4678c2ecf20Sopenharmony_ci .hid_width = 5, 4688c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 4698c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_vfe_vfe0_1_clk, 4708c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4718c2ecf20Sopenharmony_ci .name = "vfe1_clk_src", 4728c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 4738c2ecf20Sopenharmony_ci .num_parents = 5, 4748c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 4758c2ecf20Sopenharmony_ci }, 4768c2ecf20Sopenharmony_ci}; 4778c2ecf20Sopenharmony_ci 4788c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mdss_mdp_clk[] = { 4798c2ecf20Sopenharmony_ci F(37500000, P_GPLL0, 16, 0, 0), 4808c2ecf20Sopenharmony_ci F(60000000, P_GPLL0, 10, 0, 0), 4818c2ecf20Sopenharmony_ci F(75000000, P_GPLL0, 8, 0, 0), 4828c2ecf20Sopenharmony_ci F(85710000, P_GPLL0, 7, 0, 0), 4838c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 4848c2ecf20Sopenharmony_ci F(150000000, P_GPLL0, 4, 0, 0), 4858c2ecf20Sopenharmony_ci F(160000000, P_MMPLL0, 5, 0, 0), 4868c2ecf20Sopenharmony_ci F(200000000, P_MMPLL0, 4, 0, 0), 4878c2ecf20Sopenharmony_ci F(228570000, P_MMPLL0, 3.5, 0, 0), 4888c2ecf20Sopenharmony_ci F(300000000, P_GPLL0, 2, 0, 0), 4898c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 4908c2ecf20Sopenharmony_ci { } 4918c2ecf20Sopenharmony_ci}; 4928c2ecf20Sopenharmony_ci 4938c2ecf20Sopenharmony_cistatic struct clk_rcg2 mdp_clk_src = { 4948c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2040, 4958c2ecf20Sopenharmony_ci .hid_width = 5, 4968c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_dsi_hdmi_gpll0_map, 4978c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_mdp_clk, 4988c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 4998c2ecf20Sopenharmony_ci .name = "mdp_clk_src", 5008c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_dsi_hdmi_gpll0, 5018c2ecf20Sopenharmony_ci .num_parents = 6, 5028c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5038c2ecf20Sopenharmony_ci }, 5048c2ecf20Sopenharmony_ci}; 5058c2ecf20Sopenharmony_ci 5068c2ecf20Sopenharmony_cistatic struct clk_rcg2 gfx3d_clk_src = { 5078c2ecf20Sopenharmony_ci .cmd_rcgr = 0x4000, 5088c2ecf20Sopenharmony_ci .hid_width = 5, 5098c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_2_gpll0_map, 5108c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5118c2ecf20Sopenharmony_ci .name = "gfx3d_clk_src", 5128c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_2_gpll0, 5138c2ecf20Sopenharmony_ci .num_parents = 5, 5148c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5158c2ecf20Sopenharmony_ci }, 5168c2ecf20Sopenharmony_ci}; 5178c2ecf20Sopenharmony_ci 5188c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_camss_jpeg_jpeg0_2_clk[] = { 5198c2ecf20Sopenharmony_ci F(75000000, P_GPLL0, 8, 0, 0), 5208c2ecf20Sopenharmony_ci F(133330000, P_GPLL0, 4.5, 0, 0), 5218c2ecf20Sopenharmony_ci F(200000000, P_GPLL0, 3, 0, 0), 5228c2ecf20Sopenharmony_ci F(228570000, P_MMPLL0, 3.5, 0, 0), 5238c2ecf20Sopenharmony_ci F(266670000, P_MMPLL0, 3, 0, 0), 5248c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 5258c2ecf20Sopenharmony_ci { } 5268c2ecf20Sopenharmony_ci}; 5278c2ecf20Sopenharmony_ci 5288c2ecf20Sopenharmony_cistatic struct clk_rcg2 jpeg0_clk_src = { 5298c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3500, 5308c2ecf20Sopenharmony_ci .hid_width = 5, 5318c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 5328c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_jpeg_jpeg0_2_clk, 5338c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5348c2ecf20Sopenharmony_ci .name = "jpeg0_clk_src", 5358c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 5368c2ecf20Sopenharmony_ci .num_parents = 5, 5378c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5388c2ecf20Sopenharmony_ci }, 5398c2ecf20Sopenharmony_ci}; 5408c2ecf20Sopenharmony_ci 5418c2ecf20Sopenharmony_cistatic struct clk_rcg2 jpeg1_clk_src = { 5428c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3520, 5438c2ecf20Sopenharmony_ci .hid_width = 5, 5448c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 5458c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_jpeg_jpeg0_2_clk, 5468c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5478c2ecf20Sopenharmony_ci .name = "jpeg1_clk_src", 5488c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 5498c2ecf20Sopenharmony_ci .num_parents = 5, 5508c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5518c2ecf20Sopenharmony_ci }, 5528c2ecf20Sopenharmony_ci}; 5538c2ecf20Sopenharmony_ci 5548c2ecf20Sopenharmony_cistatic struct clk_rcg2 jpeg2_clk_src = { 5558c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3540, 5568c2ecf20Sopenharmony_ci .hid_width = 5, 5578c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 5588c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_jpeg_jpeg0_2_clk, 5598c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5608c2ecf20Sopenharmony_ci .name = "jpeg2_clk_src", 5618c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 5628c2ecf20Sopenharmony_ci .num_parents = 5, 5638c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 5648c2ecf20Sopenharmony_ci }, 5658c2ecf20Sopenharmony_ci}; 5668c2ecf20Sopenharmony_ci 5678c2ecf20Sopenharmony_cistatic struct clk_rcg2 pclk0_clk_src = { 5688c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2000, 5698c2ecf20Sopenharmony_ci .mnd_width = 8, 5708c2ecf20Sopenharmony_ci .hid_width = 5, 5718c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_dsi_hdmi_edp_gpll0_map, 5728c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5738c2ecf20Sopenharmony_ci .name = "pclk0_clk_src", 5748c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_dsi_hdmi_edp_gpll0, 5758c2ecf20Sopenharmony_ci .num_parents = 6, 5768c2ecf20Sopenharmony_ci .ops = &clk_pixel_ops, 5778c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5788c2ecf20Sopenharmony_ci }, 5798c2ecf20Sopenharmony_ci}; 5808c2ecf20Sopenharmony_ci 5818c2ecf20Sopenharmony_cistatic struct clk_rcg2 pclk1_clk_src = { 5828c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2020, 5838c2ecf20Sopenharmony_ci .mnd_width = 8, 5848c2ecf20Sopenharmony_ci .hid_width = 5, 5858c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_dsi_hdmi_edp_gpll0_map, 5868c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 5878c2ecf20Sopenharmony_ci .name = "pclk1_clk_src", 5888c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_dsi_hdmi_edp_gpll0, 5898c2ecf20Sopenharmony_ci .num_parents = 6, 5908c2ecf20Sopenharmony_ci .ops = &clk_pixel_ops, 5918c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5928c2ecf20Sopenharmony_ci }, 5938c2ecf20Sopenharmony_ci}; 5948c2ecf20Sopenharmony_ci 5958c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_venus0_vcodec0_clk[] = { 5968c2ecf20Sopenharmony_ci F(50000000, P_GPLL0, 12, 0, 0), 5978c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 5988c2ecf20Sopenharmony_ci F(133330000, P_GPLL0, 4.5, 0, 0), 5998c2ecf20Sopenharmony_ci F(200000000, P_MMPLL0, 4, 0, 0), 6008c2ecf20Sopenharmony_ci F(266670000, P_MMPLL0, 3, 0, 0), 6018c2ecf20Sopenharmony_ci F(465000000, P_MMPLL3, 2, 0, 0), 6028c2ecf20Sopenharmony_ci { } 6038c2ecf20Sopenharmony_ci}; 6048c2ecf20Sopenharmony_ci 6058c2ecf20Sopenharmony_cistatic struct clk_rcg2 vcodec0_clk_src = { 6068c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1000, 6078c2ecf20Sopenharmony_ci .mnd_width = 8, 6088c2ecf20Sopenharmony_ci .hid_width = 5, 6098c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_3_gpll0_map, 6108c2ecf20Sopenharmony_ci .freq_tbl = ftbl_venus0_vcodec0_clk, 6118c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6128c2ecf20Sopenharmony_ci .name = "vcodec0_clk_src", 6138c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_3_gpll0, 6148c2ecf20Sopenharmony_ci .num_parents = 5, 6158c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6168c2ecf20Sopenharmony_ci }, 6178c2ecf20Sopenharmony_ci}; 6188c2ecf20Sopenharmony_ci 6198c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_avsync_vp_clk[] = { 6208c2ecf20Sopenharmony_ci F(150000000, P_GPLL0, 4, 0, 0), 6218c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 6228c2ecf20Sopenharmony_ci { } 6238c2ecf20Sopenharmony_ci}; 6248c2ecf20Sopenharmony_ci 6258c2ecf20Sopenharmony_cistatic struct clk_rcg2 vp_clk_src = { 6268c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2430, 6278c2ecf20Sopenharmony_ci .hid_width = 5, 6288c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 6298c2ecf20Sopenharmony_ci .freq_tbl = ftbl_avsync_vp_clk, 6308c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6318c2ecf20Sopenharmony_ci .name = "vp_clk_src", 6328c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 6338c2ecf20Sopenharmony_ci .num_parents = 4, 6348c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6358c2ecf20Sopenharmony_ci }, 6368c2ecf20Sopenharmony_ci}; 6378c2ecf20Sopenharmony_ci 6388c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_camss_cci_cci_clk[] = { 6398c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 6408c2ecf20Sopenharmony_ci { } 6418c2ecf20Sopenharmony_ci}; 6428c2ecf20Sopenharmony_ci 6438c2ecf20Sopenharmony_cistatic struct clk_rcg2 cci_clk_src = { 6448c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3300, 6458c2ecf20Sopenharmony_ci .mnd_width = 8, 6468c2ecf20Sopenharmony_ci .hid_width = 5, 6478c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map, 6488c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_cci_cci_clk, 6498c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6508c2ecf20Sopenharmony_ci .name = "cci_clk_src", 6518c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll1_0, 6528c2ecf20Sopenharmony_ci .num_parents = 6, 6538c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6548c2ecf20Sopenharmony_ci }, 6558c2ecf20Sopenharmony_ci}; 6568c2ecf20Sopenharmony_ci 6578c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_camss_gp0_1_clk[] = { 6588c2ecf20Sopenharmony_ci F(10000, P_XO, 16, 1, 120), 6598c2ecf20Sopenharmony_ci F(24000, P_XO, 16, 1, 50), 6608c2ecf20Sopenharmony_ci F(6000000, P_GPLL0, 10, 1, 10), 6618c2ecf20Sopenharmony_ci F(12000000, P_GPLL0, 10, 1, 5), 6628c2ecf20Sopenharmony_ci F(13000000, P_GPLL0, 4, 13, 150), 6638c2ecf20Sopenharmony_ci F(24000000, P_GPLL0, 5, 1, 5), 6648c2ecf20Sopenharmony_ci { } 6658c2ecf20Sopenharmony_ci}; 6668c2ecf20Sopenharmony_ci 6678c2ecf20Sopenharmony_cistatic struct clk_rcg2 camss_gp0_clk_src = { 6688c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3420, 6698c2ecf20Sopenharmony_ci .mnd_width = 8, 6708c2ecf20Sopenharmony_ci .hid_width = 5, 6718c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_sleep_map, 6728c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_gp0_1_clk, 6738c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6748c2ecf20Sopenharmony_ci .name = "camss_gp0_clk_src", 6758c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll1_0_sleep, 6768c2ecf20Sopenharmony_ci .num_parents = 7, 6778c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6788c2ecf20Sopenharmony_ci }, 6798c2ecf20Sopenharmony_ci}; 6808c2ecf20Sopenharmony_ci 6818c2ecf20Sopenharmony_cistatic struct clk_rcg2 camss_gp1_clk_src = { 6828c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3450, 6838c2ecf20Sopenharmony_ci .mnd_width = 8, 6848c2ecf20Sopenharmony_ci .hid_width = 5, 6858c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_sleep_map, 6868c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_gp0_1_clk, 6878c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 6888c2ecf20Sopenharmony_ci .name = "camss_gp1_clk_src", 6898c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll1_0_sleep, 6908c2ecf20Sopenharmony_ci .num_parents = 7, 6918c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 6928c2ecf20Sopenharmony_ci }, 6938c2ecf20Sopenharmony_ci}; 6948c2ecf20Sopenharmony_ci 6958c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_camss_mclk0_3_clk[] = { 6968c2ecf20Sopenharmony_ci F(4800000, P_XO, 4, 0, 0), 6978c2ecf20Sopenharmony_ci F(6000000, P_GPLL0, 10, 1, 10), 6988c2ecf20Sopenharmony_ci F(8000000, P_GPLL0, 15, 1, 5), 6998c2ecf20Sopenharmony_ci F(9600000, P_XO, 2, 0, 0), 7008c2ecf20Sopenharmony_ci F(16000000, P_MMPLL0, 10, 1, 5), 7018c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 7028c2ecf20Sopenharmony_ci F(24000000, P_GPLL0, 5, 1, 5), 7038c2ecf20Sopenharmony_ci F(32000000, P_MMPLL0, 5, 1, 5), 7048c2ecf20Sopenharmony_ci F(48000000, P_GPLL0, 12.5, 0, 0), 7058c2ecf20Sopenharmony_ci F(64000000, P_MMPLL0, 12.5, 0, 0), 7068c2ecf20Sopenharmony_ci { } 7078c2ecf20Sopenharmony_ci}; 7088c2ecf20Sopenharmony_ci 7098c2ecf20Sopenharmony_cistatic struct clk_rcg2 mclk0_clk_src = { 7108c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3360, 7118c2ecf20Sopenharmony_ci .mnd_width = 8, 7128c2ecf20Sopenharmony_ci .hid_width = 5, 7138c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map, 7148c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_mclk0_3_clk, 7158c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7168c2ecf20Sopenharmony_ci .name = "mclk0_clk_src", 7178c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll1_0, 7188c2ecf20Sopenharmony_ci .num_parents = 6, 7198c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7208c2ecf20Sopenharmony_ci }, 7218c2ecf20Sopenharmony_ci}; 7228c2ecf20Sopenharmony_ci 7238c2ecf20Sopenharmony_cistatic struct clk_rcg2 mclk1_clk_src = { 7248c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3390, 7258c2ecf20Sopenharmony_ci .mnd_width = 8, 7268c2ecf20Sopenharmony_ci .hid_width = 5, 7278c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map, 7288c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_mclk0_3_clk, 7298c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7308c2ecf20Sopenharmony_ci .name = "mclk1_clk_src", 7318c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll1_0, 7328c2ecf20Sopenharmony_ci .num_parents = 6, 7338c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7348c2ecf20Sopenharmony_ci }, 7358c2ecf20Sopenharmony_ci}; 7368c2ecf20Sopenharmony_ci 7378c2ecf20Sopenharmony_cistatic struct clk_rcg2 mclk2_clk_src = { 7388c2ecf20Sopenharmony_ci .cmd_rcgr = 0x33c0, 7398c2ecf20Sopenharmony_ci .mnd_width = 8, 7408c2ecf20Sopenharmony_ci .hid_width = 5, 7418c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map, 7428c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_mclk0_3_clk, 7438c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7448c2ecf20Sopenharmony_ci .name = "mclk2_clk_src", 7458c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll1_0, 7468c2ecf20Sopenharmony_ci .num_parents = 6, 7478c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7488c2ecf20Sopenharmony_ci }, 7498c2ecf20Sopenharmony_ci}; 7508c2ecf20Sopenharmony_ci 7518c2ecf20Sopenharmony_cistatic struct clk_rcg2 mclk3_clk_src = { 7528c2ecf20Sopenharmony_ci .cmd_rcgr = 0x33f0, 7538c2ecf20Sopenharmony_ci .mnd_width = 8, 7548c2ecf20Sopenharmony_ci .hid_width = 5, 7558c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll1_0_map, 7568c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_mclk0_3_clk, 7578c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7588c2ecf20Sopenharmony_ci .name = "mclk3_clk_src", 7598c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll1_0, 7608c2ecf20Sopenharmony_ci .num_parents = 6, 7618c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7628c2ecf20Sopenharmony_ci }, 7638c2ecf20Sopenharmony_ci}; 7648c2ecf20Sopenharmony_ci 7658c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_camss_phy0_2_csi0_2phytimer_clk[] = { 7668c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 7678c2ecf20Sopenharmony_ci F(200000000, P_MMPLL0, 4, 0, 0), 7688c2ecf20Sopenharmony_ci { } 7698c2ecf20Sopenharmony_ci}; 7708c2ecf20Sopenharmony_ci 7718c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi0phytimer_clk_src = { 7728c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3000, 7738c2ecf20Sopenharmony_ci .hid_width = 5, 7748c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 7758c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_phy0_2_csi0_2phytimer_clk, 7768c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7778c2ecf20Sopenharmony_ci .name = "csi0phytimer_clk_src", 7788c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 7798c2ecf20Sopenharmony_ci .num_parents = 5, 7808c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7818c2ecf20Sopenharmony_ci }, 7828c2ecf20Sopenharmony_ci}; 7838c2ecf20Sopenharmony_ci 7848c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi1phytimer_clk_src = { 7858c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3030, 7868c2ecf20Sopenharmony_ci .hid_width = 5, 7878c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 7888c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_phy0_2_csi0_2phytimer_clk, 7898c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 7908c2ecf20Sopenharmony_ci .name = "csi1phytimer_clk_src", 7918c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 7928c2ecf20Sopenharmony_ci .num_parents = 5, 7938c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 7948c2ecf20Sopenharmony_ci }, 7958c2ecf20Sopenharmony_ci}; 7968c2ecf20Sopenharmony_ci 7978c2ecf20Sopenharmony_cistatic struct clk_rcg2 csi2phytimer_clk_src = { 7988c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3060, 7998c2ecf20Sopenharmony_ci .hid_width = 5, 8008c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 8018c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_phy0_2_csi0_2phytimer_clk, 8028c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8038c2ecf20Sopenharmony_ci .name = "csi2phytimer_clk_src", 8048c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 8058c2ecf20Sopenharmony_ci .num_parents = 5, 8068c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8078c2ecf20Sopenharmony_ci }, 8088c2ecf20Sopenharmony_ci}; 8098c2ecf20Sopenharmony_ci 8108c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_camss_vfe_cpp_clk[] = { 8118c2ecf20Sopenharmony_ci F(133330000, P_GPLL0, 4.5, 0, 0), 8128c2ecf20Sopenharmony_ci F(266670000, P_MMPLL0, 3, 0, 0), 8138c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 8148c2ecf20Sopenharmony_ci F(372000000, P_MMPLL4, 2.5, 0, 0), 8158c2ecf20Sopenharmony_ci F(465000000, P_MMPLL4, 2, 0, 0), 8168c2ecf20Sopenharmony_ci F(600000000, P_GPLL0, 1, 0, 0), 8178c2ecf20Sopenharmony_ci { } 8188c2ecf20Sopenharmony_ci}; 8198c2ecf20Sopenharmony_ci 8208c2ecf20Sopenharmony_cistatic struct clk_rcg2 cpp_clk_src = { 8218c2ecf20Sopenharmony_ci .cmd_rcgr = 0x3640, 8228c2ecf20Sopenharmony_ci .hid_width = 5, 8238c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_1_4_gpll0_map, 8248c2ecf20Sopenharmony_ci .freq_tbl = ftbl_camss_vfe_cpp_clk, 8258c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8268c2ecf20Sopenharmony_ci .name = "cpp_clk_src", 8278c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_1_4_gpll0, 8288c2ecf20Sopenharmony_ci .num_parents = 5, 8298c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8308c2ecf20Sopenharmony_ci }, 8318c2ecf20Sopenharmony_ci}; 8328c2ecf20Sopenharmony_ci 8338c2ecf20Sopenharmony_cistatic struct clk_rcg2 byte0_clk_src = { 8348c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2120, 8358c2ecf20Sopenharmony_ci .hid_width = 5, 8368c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_dsibyte_hdmi_edp_gpll0_map, 8378c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8388c2ecf20Sopenharmony_ci .name = "byte0_clk_src", 8398c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_dsibyte_hdmi_edp_gpll0, 8408c2ecf20Sopenharmony_ci .num_parents = 6, 8418c2ecf20Sopenharmony_ci .ops = &clk_byte2_ops, 8428c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 8438c2ecf20Sopenharmony_ci }, 8448c2ecf20Sopenharmony_ci}; 8458c2ecf20Sopenharmony_ci 8468c2ecf20Sopenharmony_cistatic struct clk_rcg2 byte1_clk_src = { 8478c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2140, 8488c2ecf20Sopenharmony_ci .hid_width = 5, 8498c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_dsibyte_hdmi_edp_gpll0_map, 8508c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8518c2ecf20Sopenharmony_ci .name = "byte1_clk_src", 8528c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_dsibyte_hdmi_edp_gpll0, 8538c2ecf20Sopenharmony_ci .num_parents = 6, 8548c2ecf20Sopenharmony_ci .ops = &clk_byte2_ops, 8558c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 8568c2ecf20Sopenharmony_ci }, 8578c2ecf20Sopenharmony_ci}; 8588c2ecf20Sopenharmony_ci 8598c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mdss_edpaux_clk[] = { 8608c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 8618c2ecf20Sopenharmony_ci { } 8628c2ecf20Sopenharmony_ci}; 8638c2ecf20Sopenharmony_ci 8648c2ecf20Sopenharmony_cistatic struct clk_rcg2 edpaux_clk_src = { 8658c2ecf20Sopenharmony_ci .cmd_rcgr = 0x20e0, 8668c2ecf20Sopenharmony_ci .hid_width = 5, 8678c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 8688c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_edpaux_clk, 8698c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8708c2ecf20Sopenharmony_ci .name = "edpaux_clk_src", 8718c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 8728c2ecf20Sopenharmony_ci .num_parents = 4, 8738c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8748c2ecf20Sopenharmony_ci }, 8758c2ecf20Sopenharmony_ci}; 8768c2ecf20Sopenharmony_ci 8778c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mdss_edplink_clk[] = { 8788c2ecf20Sopenharmony_ci F(135000000, P_EDPLINK, 2, 0, 0), 8798c2ecf20Sopenharmony_ci F(270000000, P_EDPLINK, 11, 0, 0), 8808c2ecf20Sopenharmony_ci { } 8818c2ecf20Sopenharmony_ci}; 8828c2ecf20Sopenharmony_ci 8838c2ecf20Sopenharmony_cistatic struct clk_rcg2 edplink_clk_src = { 8848c2ecf20Sopenharmony_ci .cmd_rcgr = 0x20c0, 8858c2ecf20Sopenharmony_ci .hid_width = 5, 8868c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_dsi_hdmi_edp_gpll0_map, 8878c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_edplink_clk, 8888c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8898c2ecf20Sopenharmony_ci .name = "edplink_clk_src", 8908c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_dsi_hdmi_edp_gpll0, 8918c2ecf20Sopenharmony_ci .num_parents = 6, 8928c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 8938c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 8948c2ecf20Sopenharmony_ci }, 8958c2ecf20Sopenharmony_ci}; 8968c2ecf20Sopenharmony_ci 8978c2ecf20Sopenharmony_cistatic struct freq_tbl edp_pixel_freq_tbl[] = { 8988c2ecf20Sopenharmony_ci { .src = P_EDPVCO }, 8998c2ecf20Sopenharmony_ci { } 9008c2ecf20Sopenharmony_ci}; 9018c2ecf20Sopenharmony_ci 9028c2ecf20Sopenharmony_cistatic struct clk_rcg2 edppixel_clk_src = { 9038c2ecf20Sopenharmony_ci .cmd_rcgr = 0x20a0, 9048c2ecf20Sopenharmony_ci .mnd_width = 8, 9058c2ecf20Sopenharmony_ci .hid_width = 5, 9068c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_dsi_hdmi_edp_map, 9078c2ecf20Sopenharmony_ci .freq_tbl = edp_pixel_freq_tbl, 9088c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9098c2ecf20Sopenharmony_ci .name = "edppixel_clk_src", 9108c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_dsi_hdmi_edp, 9118c2ecf20Sopenharmony_ci .num_parents = 6, 9128c2ecf20Sopenharmony_ci .ops = &clk_edp_pixel_ops, 9138c2ecf20Sopenharmony_ci }, 9148c2ecf20Sopenharmony_ci}; 9158c2ecf20Sopenharmony_ci 9168c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mdss_esc0_1_clk[] = { 9178c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 9188c2ecf20Sopenharmony_ci { } 9198c2ecf20Sopenharmony_ci}; 9208c2ecf20Sopenharmony_ci 9218c2ecf20Sopenharmony_cistatic struct clk_rcg2 esc0_clk_src = { 9228c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2160, 9238c2ecf20Sopenharmony_ci .hid_width = 5, 9248c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_dsibyte_hdmi_edp_gpll0_map, 9258c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_esc0_1_clk, 9268c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9278c2ecf20Sopenharmony_ci .name = "esc0_clk_src", 9288c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_dsibyte_hdmi_edp_gpll0, 9298c2ecf20Sopenharmony_ci .num_parents = 6, 9308c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9318c2ecf20Sopenharmony_ci }, 9328c2ecf20Sopenharmony_ci}; 9338c2ecf20Sopenharmony_ci 9348c2ecf20Sopenharmony_cistatic struct clk_rcg2 esc1_clk_src = { 9358c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2180, 9368c2ecf20Sopenharmony_ci .hid_width = 5, 9378c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_dsibyte_hdmi_edp_gpll0_map, 9388c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_esc0_1_clk, 9398c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9408c2ecf20Sopenharmony_ci .name = "esc1_clk_src", 9418c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_dsibyte_hdmi_edp_gpll0, 9428c2ecf20Sopenharmony_ci .num_parents = 6, 9438c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9448c2ecf20Sopenharmony_ci }, 9458c2ecf20Sopenharmony_ci}; 9468c2ecf20Sopenharmony_ci 9478c2ecf20Sopenharmony_cistatic struct freq_tbl extpclk_freq_tbl[] = { 9488c2ecf20Sopenharmony_ci { .src = P_HDMIPLL }, 9498c2ecf20Sopenharmony_ci { } 9508c2ecf20Sopenharmony_ci}; 9518c2ecf20Sopenharmony_ci 9528c2ecf20Sopenharmony_cistatic struct clk_rcg2 extpclk_clk_src = { 9538c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2060, 9548c2ecf20Sopenharmony_ci .hid_width = 5, 9558c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_dsi_hdmi_edp_gpll0_map, 9568c2ecf20Sopenharmony_ci .freq_tbl = extpclk_freq_tbl, 9578c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9588c2ecf20Sopenharmony_ci .name = "extpclk_clk_src", 9598c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_dsi_hdmi_edp_gpll0, 9608c2ecf20Sopenharmony_ci .num_parents = 6, 9618c2ecf20Sopenharmony_ci .ops = &clk_byte_ops, 9628c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 9638c2ecf20Sopenharmony_ci }, 9648c2ecf20Sopenharmony_ci}; 9658c2ecf20Sopenharmony_ci 9668c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mdss_hdmi_clk[] = { 9678c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 9688c2ecf20Sopenharmony_ci { } 9698c2ecf20Sopenharmony_ci}; 9708c2ecf20Sopenharmony_ci 9718c2ecf20Sopenharmony_cistatic struct clk_rcg2 hdmi_clk_src = { 9728c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2100, 9738c2ecf20Sopenharmony_ci .hid_width = 5, 9748c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 9758c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_hdmi_clk, 9768c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9778c2ecf20Sopenharmony_ci .name = "hdmi_clk_src", 9788c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 9798c2ecf20Sopenharmony_ci .num_parents = 4, 9808c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9818c2ecf20Sopenharmony_ci }, 9828c2ecf20Sopenharmony_ci}; 9838c2ecf20Sopenharmony_ci 9848c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mdss_vsync_clk[] = { 9858c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 9868c2ecf20Sopenharmony_ci { } 9878c2ecf20Sopenharmony_ci}; 9888c2ecf20Sopenharmony_ci 9898c2ecf20Sopenharmony_cistatic struct clk_rcg2 vsync_clk_src = { 9908c2ecf20Sopenharmony_ci .cmd_rcgr = 0x2080, 9918c2ecf20Sopenharmony_ci .hid_width = 5, 9928c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 9938c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mdss_vsync_clk, 9948c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 9958c2ecf20Sopenharmony_ci .name = "vsync_clk_src", 9968c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 9978c2ecf20Sopenharmony_ci .num_parents = 4, 9988c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 9998c2ecf20Sopenharmony_ci }, 10008c2ecf20Sopenharmony_ci}; 10018c2ecf20Sopenharmony_ci 10028c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_mmss_rbcpr_clk[] = { 10038c2ecf20Sopenharmony_ci F(50000000, P_GPLL0, 12, 0, 0), 10048c2ecf20Sopenharmony_ci { } 10058c2ecf20Sopenharmony_ci}; 10068c2ecf20Sopenharmony_ci 10078c2ecf20Sopenharmony_cistatic struct clk_rcg2 rbcpr_clk_src = { 10088c2ecf20Sopenharmony_ci .cmd_rcgr = 0x4060, 10098c2ecf20Sopenharmony_ci .hid_width = 5, 10108c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 10118c2ecf20Sopenharmony_ci .freq_tbl = ftbl_mmss_rbcpr_clk, 10128c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10138c2ecf20Sopenharmony_ci .name = "rbcpr_clk_src", 10148c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 10158c2ecf20Sopenharmony_ci .num_parents = 4, 10168c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10178c2ecf20Sopenharmony_ci }, 10188c2ecf20Sopenharmony_ci}; 10198c2ecf20Sopenharmony_ci 10208c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_oxili_rbbmtimer_clk[] = { 10218c2ecf20Sopenharmony_ci F(19200000, P_XO, 1, 0, 0), 10228c2ecf20Sopenharmony_ci { } 10238c2ecf20Sopenharmony_ci}; 10248c2ecf20Sopenharmony_ci 10258c2ecf20Sopenharmony_cistatic struct clk_rcg2 rbbmtimer_clk_src = { 10268c2ecf20Sopenharmony_ci .cmd_rcgr = 0x4090, 10278c2ecf20Sopenharmony_ci .hid_width = 5, 10288c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 10298c2ecf20Sopenharmony_ci .freq_tbl = ftbl_oxili_rbbmtimer_clk, 10308c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10318c2ecf20Sopenharmony_ci .name = "rbbmtimer_clk_src", 10328c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 10338c2ecf20Sopenharmony_ci .num_parents = 4, 10348c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10358c2ecf20Sopenharmony_ci }, 10368c2ecf20Sopenharmony_ci}; 10378c2ecf20Sopenharmony_ci 10388c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_vpu_maple_clk[] = { 10398c2ecf20Sopenharmony_ci F(50000000, P_GPLL0, 12, 0, 0), 10408c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 10418c2ecf20Sopenharmony_ci F(133330000, P_GPLL0, 4.5, 0, 0), 10428c2ecf20Sopenharmony_ci F(200000000, P_MMPLL0, 4, 0, 0), 10438c2ecf20Sopenharmony_ci F(266670000, P_MMPLL0, 3, 0, 0), 10448c2ecf20Sopenharmony_ci F(465000000, P_MMPLL3, 2, 0, 0), 10458c2ecf20Sopenharmony_ci { } 10468c2ecf20Sopenharmony_ci}; 10478c2ecf20Sopenharmony_ci 10488c2ecf20Sopenharmony_cistatic struct clk_rcg2 maple_clk_src = { 10498c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1320, 10508c2ecf20Sopenharmony_ci .hid_width = 5, 10518c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 10528c2ecf20Sopenharmony_ci .freq_tbl = ftbl_vpu_maple_clk, 10538c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10548c2ecf20Sopenharmony_ci .name = "maple_clk_src", 10558c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 10568c2ecf20Sopenharmony_ci .num_parents = 4, 10578c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10588c2ecf20Sopenharmony_ci }, 10598c2ecf20Sopenharmony_ci}; 10608c2ecf20Sopenharmony_ci 10618c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_vpu_vdp_clk[] = { 10628c2ecf20Sopenharmony_ci F(50000000, P_GPLL0, 12, 0, 0), 10638c2ecf20Sopenharmony_ci F(100000000, P_GPLL0, 6, 0, 0), 10648c2ecf20Sopenharmony_ci F(200000000, P_MMPLL0, 4, 0, 0), 10658c2ecf20Sopenharmony_ci F(320000000, P_MMPLL0, 2.5, 0, 0), 10668c2ecf20Sopenharmony_ci F(400000000, P_MMPLL0, 2, 0, 0), 10678c2ecf20Sopenharmony_ci { } 10688c2ecf20Sopenharmony_ci}; 10698c2ecf20Sopenharmony_ci 10708c2ecf20Sopenharmony_cistatic struct clk_rcg2 vdp_clk_src = { 10718c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1300, 10728c2ecf20Sopenharmony_ci .hid_width = 5, 10738c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 10748c2ecf20Sopenharmony_ci .freq_tbl = ftbl_vpu_vdp_clk, 10758c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10768c2ecf20Sopenharmony_ci .name = "vdp_clk_src", 10778c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 10788c2ecf20Sopenharmony_ci .num_parents = 4, 10798c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10808c2ecf20Sopenharmony_ci }, 10818c2ecf20Sopenharmony_ci}; 10828c2ecf20Sopenharmony_ci 10838c2ecf20Sopenharmony_cistatic struct freq_tbl ftbl_vpu_bus_clk[] = { 10848c2ecf20Sopenharmony_ci F(40000000, P_GPLL0, 15, 0, 0), 10858c2ecf20Sopenharmony_ci F(80000000, P_MMPLL0, 10, 0, 0), 10868c2ecf20Sopenharmony_ci { } 10878c2ecf20Sopenharmony_ci}; 10888c2ecf20Sopenharmony_ci 10898c2ecf20Sopenharmony_cistatic struct clk_rcg2 vpu_bus_clk_src = { 10908c2ecf20Sopenharmony_ci .cmd_rcgr = 0x1340, 10918c2ecf20Sopenharmony_ci .hid_width = 5, 10928c2ecf20Sopenharmony_ci .parent_map = mmcc_xo_mmpll0_mmpll1_gpll0_map, 10938c2ecf20Sopenharmony_ci .freq_tbl = ftbl_vpu_bus_clk, 10948c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 10958c2ecf20Sopenharmony_ci .name = "vpu_bus_clk_src", 10968c2ecf20Sopenharmony_ci .parent_names = mmcc_xo_mmpll0_mmpll1_gpll0, 10978c2ecf20Sopenharmony_ci .num_parents = 4, 10988c2ecf20Sopenharmony_ci .ops = &clk_rcg2_ops, 10998c2ecf20Sopenharmony_ci }, 11008c2ecf20Sopenharmony_ci}; 11018c2ecf20Sopenharmony_ci 11028c2ecf20Sopenharmony_cistatic struct clk_branch mmss_cxo_clk = { 11038c2ecf20Sopenharmony_ci .halt_reg = 0x5104, 11048c2ecf20Sopenharmony_ci .clkr = { 11058c2ecf20Sopenharmony_ci .enable_reg = 0x5104, 11068c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 11078c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11088c2ecf20Sopenharmony_ci .name = "mmss_cxo_clk", 11098c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 11108c2ecf20Sopenharmony_ci .num_parents = 1, 11118c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11128c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 11138c2ecf20Sopenharmony_ci }, 11148c2ecf20Sopenharmony_ci }, 11158c2ecf20Sopenharmony_ci}; 11168c2ecf20Sopenharmony_ci 11178c2ecf20Sopenharmony_cistatic struct clk_branch mmss_sleepclk_clk = { 11188c2ecf20Sopenharmony_ci .halt_reg = 0x5100, 11198c2ecf20Sopenharmony_ci .clkr = { 11208c2ecf20Sopenharmony_ci .enable_reg = 0x5100, 11218c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 11228c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11238c2ecf20Sopenharmony_ci .name = "mmss_sleepclk_clk", 11248c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 11258c2ecf20Sopenharmony_ci "sleep_clk_src", 11268c2ecf20Sopenharmony_ci }, 11278c2ecf20Sopenharmony_ci .num_parents = 1, 11288c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11298c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 11308c2ecf20Sopenharmony_ci }, 11318c2ecf20Sopenharmony_ci }, 11328c2ecf20Sopenharmony_ci}; 11338c2ecf20Sopenharmony_ci 11348c2ecf20Sopenharmony_cistatic struct clk_branch avsync_ahb_clk = { 11358c2ecf20Sopenharmony_ci .halt_reg = 0x2414, 11368c2ecf20Sopenharmony_ci .clkr = { 11378c2ecf20Sopenharmony_ci .enable_reg = 0x2414, 11388c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 11398c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11408c2ecf20Sopenharmony_ci .name = "avsync_ahb_clk", 11418c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 11428c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 11438c2ecf20Sopenharmony_ci }, 11448c2ecf20Sopenharmony_ci .num_parents = 1, 11458c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11468c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 11478c2ecf20Sopenharmony_ci }, 11488c2ecf20Sopenharmony_ci }, 11498c2ecf20Sopenharmony_ci}; 11508c2ecf20Sopenharmony_ci 11518c2ecf20Sopenharmony_cistatic struct clk_branch avsync_edppixel_clk = { 11528c2ecf20Sopenharmony_ci .halt_reg = 0x2418, 11538c2ecf20Sopenharmony_ci .clkr = { 11548c2ecf20Sopenharmony_ci .enable_reg = 0x2418, 11558c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 11568c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11578c2ecf20Sopenharmony_ci .name = "avsync_edppixel_clk", 11588c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 11598c2ecf20Sopenharmony_ci "edppixel_clk_src", 11608c2ecf20Sopenharmony_ci }, 11618c2ecf20Sopenharmony_ci .num_parents = 1, 11628c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11638c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 11648c2ecf20Sopenharmony_ci }, 11658c2ecf20Sopenharmony_ci }, 11668c2ecf20Sopenharmony_ci}; 11678c2ecf20Sopenharmony_ci 11688c2ecf20Sopenharmony_cistatic struct clk_branch avsync_extpclk_clk = { 11698c2ecf20Sopenharmony_ci .halt_reg = 0x2410, 11708c2ecf20Sopenharmony_ci .clkr = { 11718c2ecf20Sopenharmony_ci .enable_reg = 0x2410, 11728c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 11738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11748c2ecf20Sopenharmony_ci .name = "avsync_extpclk_clk", 11758c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 11768c2ecf20Sopenharmony_ci "extpclk_clk_src", 11778c2ecf20Sopenharmony_ci }, 11788c2ecf20Sopenharmony_ci .num_parents = 1, 11798c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11808c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 11818c2ecf20Sopenharmony_ci }, 11828c2ecf20Sopenharmony_ci }, 11838c2ecf20Sopenharmony_ci}; 11848c2ecf20Sopenharmony_ci 11858c2ecf20Sopenharmony_cistatic struct clk_branch avsync_pclk0_clk = { 11868c2ecf20Sopenharmony_ci .halt_reg = 0x241c, 11878c2ecf20Sopenharmony_ci .clkr = { 11888c2ecf20Sopenharmony_ci .enable_reg = 0x241c, 11898c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 11908c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11918c2ecf20Sopenharmony_ci .name = "avsync_pclk0_clk", 11928c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 11938c2ecf20Sopenharmony_ci "pclk0_clk_src", 11948c2ecf20Sopenharmony_ci }, 11958c2ecf20Sopenharmony_ci .num_parents = 1, 11968c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11978c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 11988c2ecf20Sopenharmony_ci }, 11998c2ecf20Sopenharmony_ci }, 12008c2ecf20Sopenharmony_ci}; 12018c2ecf20Sopenharmony_ci 12028c2ecf20Sopenharmony_cistatic struct clk_branch avsync_pclk1_clk = { 12038c2ecf20Sopenharmony_ci .halt_reg = 0x2420, 12048c2ecf20Sopenharmony_ci .clkr = { 12058c2ecf20Sopenharmony_ci .enable_reg = 0x2420, 12068c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12078c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12088c2ecf20Sopenharmony_ci .name = "avsync_pclk1_clk", 12098c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 12108c2ecf20Sopenharmony_ci "pclk1_clk_src", 12118c2ecf20Sopenharmony_ci }, 12128c2ecf20Sopenharmony_ci .num_parents = 1, 12138c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12148c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12158c2ecf20Sopenharmony_ci }, 12168c2ecf20Sopenharmony_ci }, 12178c2ecf20Sopenharmony_ci}; 12188c2ecf20Sopenharmony_ci 12198c2ecf20Sopenharmony_cistatic struct clk_branch avsync_vp_clk = { 12208c2ecf20Sopenharmony_ci .halt_reg = 0x2404, 12218c2ecf20Sopenharmony_ci .clkr = { 12228c2ecf20Sopenharmony_ci .enable_reg = 0x2404, 12238c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12248c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12258c2ecf20Sopenharmony_ci .name = "avsync_vp_clk", 12268c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 12278c2ecf20Sopenharmony_ci "vp_clk_src", 12288c2ecf20Sopenharmony_ci }, 12298c2ecf20Sopenharmony_ci .num_parents = 1, 12308c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12318c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12328c2ecf20Sopenharmony_ci }, 12338c2ecf20Sopenharmony_ci }, 12348c2ecf20Sopenharmony_ci}; 12358c2ecf20Sopenharmony_ci 12368c2ecf20Sopenharmony_cistatic struct clk_branch camss_ahb_clk = { 12378c2ecf20Sopenharmony_ci .halt_reg = 0x348c, 12388c2ecf20Sopenharmony_ci .clkr = { 12398c2ecf20Sopenharmony_ci .enable_reg = 0x348c, 12408c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12418c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12428c2ecf20Sopenharmony_ci .name = "camss_ahb_clk", 12438c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 12448c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 12458c2ecf20Sopenharmony_ci }, 12468c2ecf20Sopenharmony_ci .num_parents = 1, 12478c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12488c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12498c2ecf20Sopenharmony_ci }, 12508c2ecf20Sopenharmony_ci }, 12518c2ecf20Sopenharmony_ci}; 12528c2ecf20Sopenharmony_ci 12538c2ecf20Sopenharmony_cistatic struct clk_branch camss_cci_cci_ahb_clk = { 12548c2ecf20Sopenharmony_ci .halt_reg = 0x3348, 12558c2ecf20Sopenharmony_ci .clkr = { 12568c2ecf20Sopenharmony_ci .enable_reg = 0x3348, 12578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12598c2ecf20Sopenharmony_ci .name = "camss_cci_cci_ahb_clk", 12608c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 12618c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 12628c2ecf20Sopenharmony_ci }, 12638c2ecf20Sopenharmony_ci .num_parents = 1, 12648c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12658c2ecf20Sopenharmony_ci }, 12668c2ecf20Sopenharmony_ci }, 12678c2ecf20Sopenharmony_ci}; 12688c2ecf20Sopenharmony_ci 12698c2ecf20Sopenharmony_cistatic struct clk_branch camss_cci_cci_clk = { 12708c2ecf20Sopenharmony_ci .halt_reg = 0x3344, 12718c2ecf20Sopenharmony_ci .clkr = { 12728c2ecf20Sopenharmony_ci .enable_reg = 0x3344, 12738c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12748c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12758c2ecf20Sopenharmony_ci .name = "camss_cci_cci_clk", 12768c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 12778c2ecf20Sopenharmony_ci "cci_clk_src", 12788c2ecf20Sopenharmony_ci }, 12798c2ecf20Sopenharmony_ci .num_parents = 1, 12808c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12818c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12828c2ecf20Sopenharmony_ci }, 12838c2ecf20Sopenharmony_ci }, 12848c2ecf20Sopenharmony_ci}; 12858c2ecf20Sopenharmony_ci 12868c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0_ahb_clk = { 12878c2ecf20Sopenharmony_ci .halt_reg = 0x30bc, 12888c2ecf20Sopenharmony_ci .clkr = { 12898c2ecf20Sopenharmony_ci .enable_reg = 0x30bc, 12908c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 12918c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12928c2ecf20Sopenharmony_ci .name = "camss_csi0_ahb_clk", 12938c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 12948c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 12958c2ecf20Sopenharmony_ci }, 12968c2ecf20Sopenharmony_ci .num_parents = 1, 12978c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 12988c2ecf20Sopenharmony_ci }, 12998c2ecf20Sopenharmony_ci }, 13008c2ecf20Sopenharmony_ci}; 13018c2ecf20Sopenharmony_ci 13028c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0_clk = { 13038c2ecf20Sopenharmony_ci .halt_reg = 0x30b4, 13048c2ecf20Sopenharmony_ci .clkr = { 13058c2ecf20Sopenharmony_ci .enable_reg = 0x30b4, 13068c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13078c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13088c2ecf20Sopenharmony_ci .name = "camss_csi0_clk", 13098c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 13108c2ecf20Sopenharmony_ci "csi0_clk_src", 13118c2ecf20Sopenharmony_ci }, 13128c2ecf20Sopenharmony_ci .num_parents = 1, 13138c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13148c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13158c2ecf20Sopenharmony_ci }, 13168c2ecf20Sopenharmony_ci }, 13178c2ecf20Sopenharmony_ci}; 13188c2ecf20Sopenharmony_ci 13198c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0phy_clk = { 13208c2ecf20Sopenharmony_ci .halt_reg = 0x30c4, 13218c2ecf20Sopenharmony_ci .clkr = { 13228c2ecf20Sopenharmony_ci .enable_reg = 0x30c4, 13238c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13248c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13258c2ecf20Sopenharmony_ci .name = "camss_csi0phy_clk", 13268c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 13278c2ecf20Sopenharmony_ci "csi0_clk_src", 13288c2ecf20Sopenharmony_ci }, 13298c2ecf20Sopenharmony_ci .num_parents = 1, 13308c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13318c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13328c2ecf20Sopenharmony_ci }, 13338c2ecf20Sopenharmony_ci }, 13348c2ecf20Sopenharmony_ci}; 13358c2ecf20Sopenharmony_ci 13368c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0pix_clk = { 13378c2ecf20Sopenharmony_ci .halt_reg = 0x30e4, 13388c2ecf20Sopenharmony_ci .clkr = { 13398c2ecf20Sopenharmony_ci .enable_reg = 0x30e4, 13408c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13418c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13428c2ecf20Sopenharmony_ci .name = "camss_csi0pix_clk", 13438c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 13448c2ecf20Sopenharmony_ci "csi0_clk_src", 13458c2ecf20Sopenharmony_ci }, 13468c2ecf20Sopenharmony_ci .num_parents = 1, 13478c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13488c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13498c2ecf20Sopenharmony_ci }, 13508c2ecf20Sopenharmony_ci }, 13518c2ecf20Sopenharmony_ci}; 13528c2ecf20Sopenharmony_ci 13538c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi0rdi_clk = { 13548c2ecf20Sopenharmony_ci .halt_reg = 0x30d4, 13558c2ecf20Sopenharmony_ci .clkr = { 13568c2ecf20Sopenharmony_ci .enable_reg = 0x30d4, 13578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13598c2ecf20Sopenharmony_ci .name = "camss_csi0rdi_clk", 13608c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 13618c2ecf20Sopenharmony_ci "csi0_clk_src", 13628c2ecf20Sopenharmony_ci }, 13638c2ecf20Sopenharmony_ci .num_parents = 1, 13648c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13658c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13668c2ecf20Sopenharmony_ci }, 13678c2ecf20Sopenharmony_ci }, 13688c2ecf20Sopenharmony_ci}; 13698c2ecf20Sopenharmony_ci 13708c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1_ahb_clk = { 13718c2ecf20Sopenharmony_ci .halt_reg = 0x3128, 13728c2ecf20Sopenharmony_ci .clkr = { 13738c2ecf20Sopenharmony_ci .enable_reg = 0x3128, 13748c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13758c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13768c2ecf20Sopenharmony_ci .name = "camss_csi1_ahb_clk", 13778c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 13788c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 13798c2ecf20Sopenharmony_ci }, 13808c2ecf20Sopenharmony_ci .num_parents = 1, 13818c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13828c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 13838c2ecf20Sopenharmony_ci }, 13848c2ecf20Sopenharmony_ci }, 13858c2ecf20Sopenharmony_ci}; 13868c2ecf20Sopenharmony_ci 13878c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1_clk = { 13888c2ecf20Sopenharmony_ci .halt_reg = 0x3124, 13898c2ecf20Sopenharmony_ci .clkr = { 13908c2ecf20Sopenharmony_ci .enable_reg = 0x3124, 13918c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 13928c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13938c2ecf20Sopenharmony_ci .name = "camss_csi1_clk", 13948c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 13958c2ecf20Sopenharmony_ci "csi1_clk_src", 13968c2ecf20Sopenharmony_ci }, 13978c2ecf20Sopenharmony_ci .num_parents = 1, 13988c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13998c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14008c2ecf20Sopenharmony_ci }, 14018c2ecf20Sopenharmony_ci }, 14028c2ecf20Sopenharmony_ci}; 14038c2ecf20Sopenharmony_ci 14048c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1phy_clk = { 14058c2ecf20Sopenharmony_ci .halt_reg = 0x3134, 14068c2ecf20Sopenharmony_ci .clkr = { 14078c2ecf20Sopenharmony_ci .enable_reg = 0x3134, 14088c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14098c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14108c2ecf20Sopenharmony_ci .name = "camss_csi1phy_clk", 14118c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 14128c2ecf20Sopenharmony_ci "csi1_clk_src", 14138c2ecf20Sopenharmony_ci }, 14148c2ecf20Sopenharmony_ci .num_parents = 1, 14158c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14168c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14178c2ecf20Sopenharmony_ci }, 14188c2ecf20Sopenharmony_ci }, 14198c2ecf20Sopenharmony_ci}; 14208c2ecf20Sopenharmony_ci 14218c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1pix_clk = { 14228c2ecf20Sopenharmony_ci .halt_reg = 0x3154, 14238c2ecf20Sopenharmony_ci .clkr = { 14248c2ecf20Sopenharmony_ci .enable_reg = 0x3154, 14258c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14268c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14278c2ecf20Sopenharmony_ci .name = "camss_csi1pix_clk", 14288c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 14298c2ecf20Sopenharmony_ci "csi1_clk_src", 14308c2ecf20Sopenharmony_ci }, 14318c2ecf20Sopenharmony_ci .num_parents = 1, 14328c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14338c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14348c2ecf20Sopenharmony_ci }, 14358c2ecf20Sopenharmony_ci }, 14368c2ecf20Sopenharmony_ci}; 14378c2ecf20Sopenharmony_ci 14388c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi1rdi_clk = { 14398c2ecf20Sopenharmony_ci .halt_reg = 0x3144, 14408c2ecf20Sopenharmony_ci .clkr = { 14418c2ecf20Sopenharmony_ci .enable_reg = 0x3144, 14428c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14448c2ecf20Sopenharmony_ci .name = "camss_csi1rdi_clk", 14458c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 14468c2ecf20Sopenharmony_ci "csi1_clk_src", 14478c2ecf20Sopenharmony_ci }, 14488c2ecf20Sopenharmony_ci .num_parents = 1, 14498c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14508c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14518c2ecf20Sopenharmony_ci }, 14528c2ecf20Sopenharmony_ci }, 14538c2ecf20Sopenharmony_ci}; 14548c2ecf20Sopenharmony_ci 14558c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2_ahb_clk = { 14568c2ecf20Sopenharmony_ci .halt_reg = 0x3188, 14578c2ecf20Sopenharmony_ci .clkr = { 14588c2ecf20Sopenharmony_ci .enable_reg = 0x3188, 14598c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14608c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14618c2ecf20Sopenharmony_ci .name = "camss_csi2_ahb_clk", 14628c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 14638c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 14648c2ecf20Sopenharmony_ci }, 14658c2ecf20Sopenharmony_ci .num_parents = 1, 14668c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14678c2ecf20Sopenharmony_ci }, 14688c2ecf20Sopenharmony_ci }, 14698c2ecf20Sopenharmony_ci}; 14708c2ecf20Sopenharmony_ci 14718c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2_clk = { 14728c2ecf20Sopenharmony_ci .halt_reg = 0x3184, 14738c2ecf20Sopenharmony_ci .clkr = { 14748c2ecf20Sopenharmony_ci .enable_reg = 0x3184, 14758c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14768c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14778c2ecf20Sopenharmony_ci .name = "camss_csi2_clk", 14788c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 14798c2ecf20Sopenharmony_ci "csi2_clk_src", 14808c2ecf20Sopenharmony_ci }, 14818c2ecf20Sopenharmony_ci .num_parents = 1, 14828c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14838c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 14848c2ecf20Sopenharmony_ci }, 14858c2ecf20Sopenharmony_ci }, 14868c2ecf20Sopenharmony_ci}; 14878c2ecf20Sopenharmony_ci 14888c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2phy_clk = { 14898c2ecf20Sopenharmony_ci .halt_reg = 0x3194, 14908c2ecf20Sopenharmony_ci .clkr = { 14918c2ecf20Sopenharmony_ci .enable_reg = 0x3194, 14928c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 14938c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14948c2ecf20Sopenharmony_ci .name = "camss_csi2phy_clk", 14958c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 14968c2ecf20Sopenharmony_ci "csi2_clk_src", 14978c2ecf20Sopenharmony_ci }, 14988c2ecf20Sopenharmony_ci .num_parents = 1, 14998c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15008c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15018c2ecf20Sopenharmony_ci }, 15028c2ecf20Sopenharmony_ci }, 15038c2ecf20Sopenharmony_ci}; 15048c2ecf20Sopenharmony_ci 15058c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2pix_clk = { 15068c2ecf20Sopenharmony_ci .halt_reg = 0x31b4, 15078c2ecf20Sopenharmony_ci .clkr = { 15088c2ecf20Sopenharmony_ci .enable_reg = 0x31b4, 15098c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15108c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15118c2ecf20Sopenharmony_ci .name = "camss_csi2pix_clk", 15128c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 15138c2ecf20Sopenharmony_ci "csi2_clk_src", 15148c2ecf20Sopenharmony_ci }, 15158c2ecf20Sopenharmony_ci .num_parents = 1, 15168c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15178c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15188c2ecf20Sopenharmony_ci }, 15198c2ecf20Sopenharmony_ci }, 15208c2ecf20Sopenharmony_ci}; 15218c2ecf20Sopenharmony_ci 15228c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi2rdi_clk = { 15238c2ecf20Sopenharmony_ci .halt_reg = 0x31a4, 15248c2ecf20Sopenharmony_ci .clkr = { 15258c2ecf20Sopenharmony_ci .enable_reg = 0x31a4, 15268c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15278c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15288c2ecf20Sopenharmony_ci .name = "camss_csi2rdi_clk", 15298c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 15308c2ecf20Sopenharmony_ci "csi2_clk_src", 15318c2ecf20Sopenharmony_ci }, 15328c2ecf20Sopenharmony_ci .num_parents = 1, 15338c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15348c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15358c2ecf20Sopenharmony_ci }, 15368c2ecf20Sopenharmony_ci }, 15378c2ecf20Sopenharmony_ci}; 15388c2ecf20Sopenharmony_ci 15398c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3_ahb_clk = { 15408c2ecf20Sopenharmony_ci .halt_reg = 0x31e8, 15418c2ecf20Sopenharmony_ci .clkr = { 15428c2ecf20Sopenharmony_ci .enable_reg = 0x31e8, 15438c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15448c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15458c2ecf20Sopenharmony_ci .name = "camss_csi3_ahb_clk", 15468c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 15478c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 15488c2ecf20Sopenharmony_ci }, 15498c2ecf20Sopenharmony_ci .num_parents = 1, 15508c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15518c2ecf20Sopenharmony_ci }, 15528c2ecf20Sopenharmony_ci }, 15538c2ecf20Sopenharmony_ci}; 15548c2ecf20Sopenharmony_ci 15558c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3_clk = { 15568c2ecf20Sopenharmony_ci .halt_reg = 0x31e4, 15578c2ecf20Sopenharmony_ci .clkr = { 15588c2ecf20Sopenharmony_ci .enable_reg = 0x31e4, 15598c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15608c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15618c2ecf20Sopenharmony_ci .name = "camss_csi3_clk", 15628c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 15638c2ecf20Sopenharmony_ci "csi3_clk_src", 15648c2ecf20Sopenharmony_ci }, 15658c2ecf20Sopenharmony_ci .num_parents = 1, 15668c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15678c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15688c2ecf20Sopenharmony_ci }, 15698c2ecf20Sopenharmony_ci }, 15708c2ecf20Sopenharmony_ci}; 15718c2ecf20Sopenharmony_ci 15728c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3phy_clk = { 15738c2ecf20Sopenharmony_ci .halt_reg = 0x31f4, 15748c2ecf20Sopenharmony_ci .clkr = { 15758c2ecf20Sopenharmony_ci .enable_reg = 0x31f4, 15768c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15778c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15788c2ecf20Sopenharmony_ci .name = "camss_csi3phy_clk", 15798c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 15808c2ecf20Sopenharmony_ci "csi3_clk_src", 15818c2ecf20Sopenharmony_ci }, 15828c2ecf20Sopenharmony_ci .num_parents = 1, 15838c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15848c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 15858c2ecf20Sopenharmony_ci }, 15868c2ecf20Sopenharmony_ci }, 15878c2ecf20Sopenharmony_ci}; 15888c2ecf20Sopenharmony_ci 15898c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3pix_clk = { 15908c2ecf20Sopenharmony_ci .halt_reg = 0x3214, 15918c2ecf20Sopenharmony_ci .clkr = { 15928c2ecf20Sopenharmony_ci .enable_reg = 0x3214, 15938c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 15948c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15958c2ecf20Sopenharmony_ci .name = "camss_csi3pix_clk", 15968c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 15978c2ecf20Sopenharmony_ci "csi3_clk_src", 15988c2ecf20Sopenharmony_ci }, 15998c2ecf20Sopenharmony_ci .num_parents = 1, 16008c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16018c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16028c2ecf20Sopenharmony_ci }, 16038c2ecf20Sopenharmony_ci }, 16048c2ecf20Sopenharmony_ci}; 16058c2ecf20Sopenharmony_ci 16068c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi3rdi_clk = { 16078c2ecf20Sopenharmony_ci .halt_reg = 0x3204, 16088c2ecf20Sopenharmony_ci .clkr = { 16098c2ecf20Sopenharmony_ci .enable_reg = 0x3204, 16108c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16118c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16128c2ecf20Sopenharmony_ci .name = "camss_csi3rdi_clk", 16138c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 16148c2ecf20Sopenharmony_ci "csi3_clk_src", 16158c2ecf20Sopenharmony_ci }, 16168c2ecf20Sopenharmony_ci .num_parents = 1, 16178c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16188c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16198c2ecf20Sopenharmony_ci }, 16208c2ecf20Sopenharmony_ci }, 16218c2ecf20Sopenharmony_ci}; 16228c2ecf20Sopenharmony_ci 16238c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi_vfe0_clk = { 16248c2ecf20Sopenharmony_ci .halt_reg = 0x3704, 16258c2ecf20Sopenharmony_ci .clkr = { 16268c2ecf20Sopenharmony_ci .enable_reg = 0x3704, 16278c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16288c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16298c2ecf20Sopenharmony_ci .name = "camss_csi_vfe0_clk", 16308c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 16318c2ecf20Sopenharmony_ci "vfe0_clk_src", 16328c2ecf20Sopenharmony_ci }, 16338c2ecf20Sopenharmony_ci .num_parents = 1, 16348c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16358c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16368c2ecf20Sopenharmony_ci }, 16378c2ecf20Sopenharmony_ci }, 16388c2ecf20Sopenharmony_ci}; 16398c2ecf20Sopenharmony_ci 16408c2ecf20Sopenharmony_cistatic struct clk_branch camss_csi_vfe1_clk = { 16418c2ecf20Sopenharmony_ci .halt_reg = 0x3714, 16428c2ecf20Sopenharmony_ci .clkr = { 16438c2ecf20Sopenharmony_ci .enable_reg = 0x3714, 16448c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16458c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16468c2ecf20Sopenharmony_ci .name = "camss_csi_vfe1_clk", 16478c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 16488c2ecf20Sopenharmony_ci "vfe1_clk_src", 16498c2ecf20Sopenharmony_ci }, 16508c2ecf20Sopenharmony_ci .num_parents = 1, 16518c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16528c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16538c2ecf20Sopenharmony_ci }, 16548c2ecf20Sopenharmony_ci }, 16558c2ecf20Sopenharmony_ci}; 16568c2ecf20Sopenharmony_ci 16578c2ecf20Sopenharmony_cistatic struct clk_branch camss_gp0_clk = { 16588c2ecf20Sopenharmony_ci .halt_reg = 0x3444, 16598c2ecf20Sopenharmony_ci .clkr = { 16608c2ecf20Sopenharmony_ci .enable_reg = 0x3444, 16618c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16628c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16638c2ecf20Sopenharmony_ci .name = "camss_gp0_clk", 16648c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 16658c2ecf20Sopenharmony_ci "camss_gp0_clk_src", 16668c2ecf20Sopenharmony_ci }, 16678c2ecf20Sopenharmony_ci .num_parents = 1, 16688c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16698c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16708c2ecf20Sopenharmony_ci }, 16718c2ecf20Sopenharmony_ci }, 16728c2ecf20Sopenharmony_ci}; 16738c2ecf20Sopenharmony_ci 16748c2ecf20Sopenharmony_cistatic struct clk_branch camss_gp1_clk = { 16758c2ecf20Sopenharmony_ci .halt_reg = 0x3474, 16768c2ecf20Sopenharmony_ci .clkr = { 16778c2ecf20Sopenharmony_ci .enable_reg = 0x3474, 16788c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16798c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16808c2ecf20Sopenharmony_ci .name = "camss_gp1_clk", 16818c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 16828c2ecf20Sopenharmony_ci "camss_gp1_clk_src", 16838c2ecf20Sopenharmony_ci }, 16848c2ecf20Sopenharmony_ci .num_parents = 1, 16858c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16868c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 16878c2ecf20Sopenharmony_ci }, 16888c2ecf20Sopenharmony_ci }, 16898c2ecf20Sopenharmony_ci}; 16908c2ecf20Sopenharmony_ci 16918c2ecf20Sopenharmony_cistatic struct clk_branch camss_ispif_ahb_clk = { 16928c2ecf20Sopenharmony_ci .halt_reg = 0x3224, 16938c2ecf20Sopenharmony_ci .clkr = { 16948c2ecf20Sopenharmony_ci .enable_reg = 0x3224, 16958c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 16968c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16978c2ecf20Sopenharmony_ci .name = "camss_ispif_ahb_clk", 16988c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 16998c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 17008c2ecf20Sopenharmony_ci }, 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 camss_jpeg_jpeg0_clk = { 17098c2ecf20Sopenharmony_ci .halt_reg = 0x35a8, 17108c2ecf20Sopenharmony_ci .clkr = { 17118c2ecf20Sopenharmony_ci .enable_reg = 0x35a8, 17128c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17138c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17148c2ecf20Sopenharmony_ci .name = "camss_jpeg_jpeg0_clk", 17158c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 17168c2ecf20Sopenharmony_ci "jpeg0_clk_src", 17178c2ecf20Sopenharmony_ci }, 17188c2ecf20Sopenharmony_ci .num_parents = 1, 17198c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17208c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17218c2ecf20Sopenharmony_ci }, 17228c2ecf20Sopenharmony_ci }, 17238c2ecf20Sopenharmony_ci}; 17248c2ecf20Sopenharmony_ci 17258c2ecf20Sopenharmony_cistatic struct clk_branch camss_jpeg_jpeg1_clk = { 17268c2ecf20Sopenharmony_ci .halt_reg = 0x35ac, 17278c2ecf20Sopenharmony_ci .clkr = { 17288c2ecf20Sopenharmony_ci .enable_reg = 0x35ac, 17298c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17308c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17318c2ecf20Sopenharmony_ci .name = "camss_jpeg_jpeg1_clk", 17328c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 17338c2ecf20Sopenharmony_ci "jpeg1_clk_src", 17348c2ecf20Sopenharmony_ci }, 17358c2ecf20Sopenharmony_ci .num_parents = 1, 17368c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17378c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17388c2ecf20Sopenharmony_ci }, 17398c2ecf20Sopenharmony_ci }, 17408c2ecf20Sopenharmony_ci}; 17418c2ecf20Sopenharmony_ci 17428c2ecf20Sopenharmony_cistatic struct clk_branch camss_jpeg_jpeg2_clk = { 17438c2ecf20Sopenharmony_ci .halt_reg = 0x35b0, 17448c2ecf20Sopenharmony_ci .clkr = { 17458c2ecf20Sopenharmony_ci .enable_reg = 0x35b0, 17468c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17478c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17488c2ecf20Sopenharmony_ci .name = "camss_jpeg_jpeg2_clk", 17498c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 17508c2ecf20Sopenharmony_ci "jpeg2_clk_src", 17518c2ecf20Sopenharmony_ci }, 17528c2ecf20Sopenharmony_ci .num_parents = 1, 17538c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17548c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17558c2ecf20Sopenharmony_ci }, 17568c2ecf20Sopenharmony_ci }, 17578c2ecf20Sopenharmony_ci}; 17588c2ecf20Sopenharmony_ci 17598c2ecf20Sopenharmony_cistatic struct clk_branch camss_jpeg_jpeg_ahb_clk = { 17608c2ecf20Sopenharmony_ci .halt_reg = 0x35b4, 17618c2ecf20Sopenharmony_ci .clkr = { 17628c2ecf20Sopenharmony_ci .enable_reg = 0x35b4, 17638c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17648c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17658c2ecf20Sopenharmony_ci .name = "camss_jpeg_jpeg_ahb_clk", 17668c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 17678c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 17688c2ecf20Sopenharmony_ci }, 17698c2ecf20Sopenharmony_ci .num_parents = 1, 17708c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17718c2ecf20Sopenharmony_ci }, 17728c2ecf20Sopenharmony_ci }, 17738c2ecf20Sopenharmony_ci}; 17748c2ecf20Sopenharmony_ci 17758c2ecf20Sopenharmony_cistatic struct clk_branch camss_jpeg_jpeg_axi_clk = { 17768c2ecf20Sopenharmony_ci .halt_reg = 0x35b8, 17778c2ecf20Sopenharmony_ci .clkr = { 17788c2ecf20Sopenharmony_ci .enable_reg = 0x35b8, 17798c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17808c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17818c2ecf20Sopenharmony_ci .name = "camss_jpeg_jpeg_axi_clk", 17828c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 17838c2ecf20Sopenharmony_ci "mmss_axi_clk_src", 17848c2ecf20Sopenharmony_ci }, 17858c2ecf20Sopenharmony_ci .num_parents = 1, 17868c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 17878c2ecf20Sopenharmony_ci }, 17888c2ecf20Sopenharmony_ci }, 17898c2ecf20Sopenharmony_ci}; 17908c2ecf20Sopenharmony_ci 17918c2ecf20Sopenharmony_cistatic struct clk_branch camss_mclk0_clk = { 17928c2ecf20Sopenharmony_ci .halt_reg = 0x3384, 17938c2ecf20Sopenharmony_ci .clkr = { 17948c2ecf20Sopenharmony_ci .enable_reg = 0x3384, 17958c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 17968c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17978c2ecf20Sopenharmony_ci .name = "camss_mclk0_clk", 17988c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 17998c2ecf20Sopenharmony_ci "mclk0_clk_src", 18008c2ecf20Sopenharmony_ci }, 18018c2ecf20Sopenharmony_ci .num_parents = 1, 18028c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18038c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18048c2ecf20Sopenharmony_ci }, 18058c2ecf20Sopenharmony_ci }, 18068c2ecf20Sopenharmony_ci}; 18078c2ecf20Sopenharmony_ci 18088c2ecf20Sopenharmony_cistatic struct clk_branch camss_mclk1_clk = { 18098c2ecf20Sopenharmony_ci .halt_reg = 0x33b4, 18108c2ecf20Sopenharmony_ci .clkr = { 18118c2ecf20Sopenharmony_ci .enable_reg = 0x33b4, 18128c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18138c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18148c2ecf20Sopenharmony_ci .name = "camss_mclk1_clk", 18158c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 18168c2ecf20Sopenharmony_ci "mclk1_clk_src", 18178c2ecf20Sopenharmony_ci }, 18188c2ecf20Sopenharmony_ci .num_parents = 1, 18198c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18208c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18218c2ecf20Sopenharmony_ci }, 18228c2ecf20Sopenharmony_ci }, 18238c2ecf20Sopenharmony_ci}; 18248c2ecf20Sopenharmony_ci 18258c2ecf20Sopenharmony_cistatic struct clk_branch camss_mclk2_clk = { 18268c2ecf20Sopenharmony_ci .halt_reg = 0x33e4, 18278c2ecf20Sopenharmony_ci .clkr = { 18288c2ecf20Sopenharmony_ci .enable_reg = 0x33e4, 18298c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18308c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18318c2ecf20Sopenharmony_ci .name = "camss_mclk2_clk", 18328c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 18338c2ecf20Sopenharmony_ci "mclk2_clk_src", 18348c2ecf20Sopenharmony_ci }, 18358c2ecf20Sopenharmony_ci .num_parents = 1, 18368c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18378c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18388c2ecf20Sopenharmony_ci }, 18398c2ecf20Sopenharmony_ci }, 18408c2ecf20Sopenharmony_ci}; 18418c2ecf20Sopenharmony_ci 18428c2ecf20Sopenharmony_cistatic struct clk_branch camss_mclk3_clk = { 18438c2ecf20Sopenharmony_ci .halt_reg = 0x3414, 18448c2ecf20Sopenharmony_ci .clkr = { 18458c2ecf20Sopenharmony_ci .enable_reg = 0x3414, 18468c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18478c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18488c2ecf20Sopenharmony_ci .name = "camss_mclk3_clk", 18498c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 18508c2ecf20Sopenharmony_ci "mclk3_clk_src", 18518c2ecf20Sopenharmony_ci }, 18528c2ecf20Sopenharmony_ci .num_parents = 1, 18538c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18548c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18558c2ecf20Sopenharmony_ci }, 18568c2ecf20Sopenharmony_ci }, 18578c2ecf20Sopenharmony_ci}; 18588c2ecf20Sopenharmony_ci 18598c2ecf20Sopenharmony_cistatic struct clk_branch camss_micro_ahb_clk = { 18608c2ecf20Sopenharmony_ci .halt_reg = 0x3494, 18618c2ecf20Sopenharmony_ci .clkr = { 18628c2ecf20Sopenharmony_ci .enable_reg = 0x3494, 18638c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18648c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18658c2ecf20Sopenharmony_ci .name = "camss_micro_ahb_clk", 18668c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 18678c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 18688c2ecf20Sopenharmony_ci }, 18698c2ecf20Sopenharmony_ci .num_parents = 1, 18708c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18718c2ecf20Sopenharmony_ci }, 18728c2ecf20Sopenharmony_ci }, 18738c2ecf20Sopenharmony_ci}; 18748c2ecf20Sopenharmony_ci 18758c2ecf20Sopenharmony_cistatic struct clk_branch camss_phy0_csi0phytimer_clk = { 18768c2ecf20Sopenharmony_ci .halt_reg = 0x3024, 18778c2ecf20Sopenharmony_ci .clkr = { 18788c2ecf20Sopenharmony_ci .enable_reg = 0x3024, 18798c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18808c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18818c2ecf20Sopenharmony_ci .name = "camss_phy0_csi0phytimer_clk", 18828c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 18838c2ecf20Sopenharmony_ci "csi0phytimer_clk_src", 18848c2ecf20Sopenharmony_ci }, 18858c2ecf20Sopenharmony_ci .num_parents = 1, 18868c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18878c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 18888c2ecf20Sopenharmony_ci }, 18898c2ecf20Sopenharmony_ci }, 18908c2ecf20Sopenharmony_ci}; 18918c2ecf20Sopenharmony_ci 18928c2ecf20Sopenharmony_cistatic struct clk_branch camss_phy1_csi1phytimer_clk = { 18938c2ecf20Sopenharmony_ci .halt_reg = 0x3054, 18948c2ecf20Sopenharmony_ci .clkr = { 18958c2ecf20Sopenharmony_ci .enable_reg = 0x3054, 18968c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 18978c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18988c2ecf20Sopenharmony_ci .name = "camss_phy1_csi1phytimer_clk", 18998c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 19008c2ecf20Sopenharmony_ci "csi1phytimer_clk_src", 19018c2ecf20Sopenharmony_ci }, 19028c2ecf20Sopenharmony_ci .num_parents = 1, 19038c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19048c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19058c2ecf20Sopenharmony_ci }, 19068c2ecf20Sopenharmony_ci }, 19078c2ecf20Sopenharmony_ci}; 19088c2ecf20Sopenharmony_ci 19098c2ecf20Sopenharmony_cistatic struct clk_branch camss_phy2_csi2phytimer_clk = { 19108c2ecf20Sopenharmony_ci .halt_reg = 0x3084, 19118c2ecf20Sopenharmony_ci .clkr = { 19128c2ecf20Sopenharmony_ci .enable_reg = 0x3084, 19138c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19148c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19158c2ecf20Sopenharmony_ci .name = "camss_phy2_csi2phytimer_clk", 19168c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 19178c2ecf20Sopenharmony_ci "csi2phytimer_clk_src", 19188c2ecf20Sopenharmony_ci }, 19198c2ecf20Sopenharmony_ci .num_parents = 1, 19208c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19218c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19228c2ecf20Sopenharmony_ci }, 19238c2ecf20Sopenharmony_ci }, 19248c2ecf20Sopenharmony_ci}; 19258c2ecf20Sopenharmony_ci 19268c2ecf20Sopenharmony_cistatic struct clk_branch camss_top_ahb_clk = { 19278c2ecf20Sopenharmony_ci .halt_reg = 0x3484, 19288c2ecf20Sopenharmony_ci .clkr = { 19298c2ecf20Sopenharmony_ci .enable_reg = 0x3484, 19308c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19318c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19328c2ecf20Sopenharmony_ci .name = "camss_top_ahb_clk", 19338c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 19348c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 19358c2ecf20Sopenharmony_ci }, 19368c2ecf20Sopenharmony_ci .num_parents = 1, 19378c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19388c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19398c2ecf20Sopenharmony_ci }, 19408c2ecf20Sopenharmony_ci }, 19418c2ecf20Sopenharmony_ci}; 19428c2ecf20Sopenharmony_ci 19438c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe_cpp_ahb_clk = { 19448c2ecf20Sopenharmony_ci .halt_reg = 0x36b4, 19458c2ecf20Sopenharmony_ci .clkr = { 19468c2ecf20Sopenharmony_ci .enable_reg = 0x36b4, 19478c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19498c2ecf20Sopenharmony_ci .name = "camss_vfe_cpp_ahb_clk", 19508c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 19518c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 19528c2ecf20Sopenharmony_ci }, 19538c2ecf20Sopenharmony_ci .num_parents = 1, 19548c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19558c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19568c2ecf20Sopenharmony_ci }, 19578c2ecf20Sopenharmony_ci }, 19588c2ecf20Sopenharmony_ci}; 19598c2ecf20Sopenharmony_ci 19608c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe_cpp_clk = { 19618c2ecf20Sopenharmony_ci .halt_reg = 0x36b0, 19628c2ecf20Sopenharmony_ci .clkr = { 19638c2ecf20Sopenharmony_ci .enable_reg = 0x36b0, 19648c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19658c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19668c2ecf20Sopenharmony_ci .name = "camss_vfe_cpp_clk", 19678c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 19688c2ecf20Sopenharmony_ci "cpp_clk_src", 19698c2ecf20Sopenharmony_ci }, 19708c2ecf20Sopenharmony_ci .num_parents = 1, 19718c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19728c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19738c2ecf20Sopenharmony_ci }, 19748c2ecf20Sopenharmony_ci }, 19758c2ecf20Sopenharmony_ci}; 19768c2ecf20Sopenharmony_ci 19778c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe_vfe0_clk = { 19788c2ecf20Sopenharmony_ci .halt_reg = 0x36a8, 19798c2ecf20Sopenharmony_ci .clkr = { 19808c2ecf20Sopenharmony_ci .enable_reg = 0x36a8, 19818c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19828c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19838c2ecf20Sopenharmony_ci .name = "camss_vfe_vfe0_clk", 19848c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 19858c2ecf20Sopenharmony_ci "vfe0_clk_src", 19868c2ecf20Sopenharmony_ci }, 19878c2ecf20Sopenharmony_ci .num_parents = 1, 19888c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19898c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 19908c2ecf20Sopenharmony_ci }, 19918c2ecf20Sopenharmony_ci }, 19928c2ecf20Sopenharmony_ci}; 19938c2ecf20Sopenharmony_ci 19948c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe_vfe1_clk = { 19958c2ecf20Sopenharmony_ci .halt_reg = 0x36ac, 19968c2ecf20Sopenharmony_ci .clkr = { 19978c2ecf20Sopenharmony_ci .enable_reg = 0x36ac, 19988c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 19998c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20008c2ecf20Sopenharmony_ci .name = "camss_vfe_vfe1_clk", 20018c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 20028c2ecf20Sopenharmony_ci "vfe1_clk_src", 20038c2ecf20Sopenharmony_ci }, 20048c2ecf20Sopenharmony_ci .num_parents = 1, 20058c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20068c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20078c2ecf20Sopenharmony_ci }, 20088c2ecf20Sopenharmony_ci }, 20098c2ecf20Sopenharmony_ci}; 20108c2ecf20Sopenharmony_ci 20118c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe_vfe_ahb_clk = { 20128c2ecf20Sopenharmony_ci .halt_reg = 0x36b8, 20138c2ecf20Sopenharmony_ci .clkr = { 20148c2ecf20Sopenharmony_ci .enable_reg = 0x36b8, 20158c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20168c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20178c2ecf20Sopenharmony_ci .name = "camss_vfe_vfe_ahb_clk", 20188c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 20198c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 20208c2ecf20Sopenharmony_ci }, 20218c2ecf20Sopenharmony_ci .num_parents = 1, 20228c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20238c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20248c2ecf20Sopenharmony_ci }, 20258c2ecf20Sopenharmony_ci }, 20268c2ecf20Sopenharmony_ci}; 20278c2ecf20Sopenharmony_ci 20288c2ecf20Sopenharmony_cistatic struct clk_branch camss_vfe_vfe_axi_clk = { 20298c2ecf20Sopenharmony_ci .halt_reg = 0x36bc, 20308c2ecf20Sopenharmony_ci .clkr = { 20318c2ecf20Sopenharmony_ci .enable_reg = 0x36bc, 20328c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20338c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20348c2ecf20Sopenharmony_ci .name = "camss_vfe_vfe_axi_clk", 20358c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 20368c2ecf20Sopenharmony_ci "mmss_axi_clk_src", 20378c2ecf20Sopenharmony_ci }, 20388c2ecf20Sopenharmony_ci .num_parents = 1, 20398c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20408c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20418c2ecf20Sopenharmony_ci }, 20428c2ecf20Sopenharmony_ci }, 20438c2ecf20Sopenharmony_ci}; 20448c2ecf20Sopenharmony_ci 20458c2ecf20Sopenharmony_cistatic struct clk_branch mdss_ahb_clk = { 20468c2ecf20Sopenharmony_ci .halt_reg = 0x2308, 20478c2ecf20Sopenharmony_ci .clkr = { 20488c2ecf20Sopenharmony_ci .enable_reg = 0x2308, 20498c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20508c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20518c2ecf20Sopenharmony_ci .name = "mdss_ahb_clk", 20528c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 20538c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 20548c2ecf20Sopenharmony_ci }, 20558c2ecf20Sopenharmony_ci .num_parents = 1, 20568c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20578c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20588c2ecf20Sopenharmony_ci }, 20598c2ecf20Sopenharmony_ci }, 20608c2ecf20Sopenharmony_ci}; 20618c2ecf20Sopenharmony_ci 20628c2ecf20Sopenharmony_cistatic struct clk_branch mdss_axi_clk = { 20638c2ecf20Sopenharmony_ci .halt_reg = 0x2310, 20648c2ecf20Sopenharmony_ci .clkr = { 20658c2ecf20Sopenharmony_ci .enable_reg = 0x2310, 20668c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20678c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20688c2ecf20Sopenharmony_ci .name = "mdss_axi_clk", 20698c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 20708c2ecf20Sopenharmony_ci "mmss_axi_clk_src", 20718c2ecf20Sopenharmony_ci }, 20728c2ecf20Sopenharmony_ci .num_parents = 1, 20738c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20748c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20758c2ecf20Sopenharmony_ci }, 20768c2ecf20Sopenharmony_ci }, 20778c2ecf20Sopenharmony_ci}; 20788c2ecf20Sopenharmony_ci 20798c2ecf20Sopenharmony_cistatic struct clk_branch mdss_byte0_clk = { 20808c2ecf20Sopenharmony_ci .halt_reg = 0x233c, 20818c2ecf20Sopenharmony_ci .clkr = { 20828c2ecf20Sopenharmony_ci .enable_reg = 0x233c, 20838c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 20848c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20858c2ecf20Sopenharmony_ci .name = "mdss_byte0_clk", 20868c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 20878c2ecf20Sopenharmony_ci "byte0_clk_src", 20888c2ecf20Sopenharmony_ci }, 20898c2ecf20Sopenharmony_ci .num_parents = 1, 20908c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20918c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 20928c2ecf20Sopenharmony_ci }, 20938c2ecf20Sopenharmony_ci }, 20948c2ecf20Sopenharmony_ci}; 20958c2ecf20Sopenharmony_ci 20968c2ecf20Sopenharmony_cistatic struct clk_branch mdss_byte1_clk = { 20978c2ecf20Sopenharmony_ci .halt_reg = 0x2340, 20988c2ecf20Sopenharmony_ci .clkr = { 20998c2ecf20Sopenharmony_ci .enable_reg = 0x2340, 21008c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21018c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21028c2ecf20Sopenharmony_ci .name = "mdss_byte1_clk", 21038c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 21048c2ecf20Sopenharmony_ci "byte1_clk_src", 21058c2ecf20Sopenharmony_ci }, 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 mdss_edpaux_clk = { 21148c2ecf20Sopenharmony_ci .halt_reg = 0x2334, 21158c2ecf20Sopenharmony_ci .clkr = { 21168c2ecf20Sopenharmony_ci .enable_reg = 0x2334, 21178c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21188c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21198c2ecf20Sopenharmony_ci .name = "mdss_edpaux_clk", 21208c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 21218c2ecf20Sopenharmony_ci "edpaux_clk_src", 21228c2ecf20Sopenharmony_ci }, 21238c2ecf20Sopenharmony_ci .num_parents = 1, 21248c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21258c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21268c2ecf20Sopenharmony_ci }, 21278c2ecf20Sopenharmony_ci }, 21288c2ecf20Sopenharmony_ci}; 21298c2ecf20Sopenharmony_ci 21308c2ecf20Sopenharmony_cistatic struct clk_branch mdss_edplink_clk = { 21318c2ecf20Sopenharmony_ci .halt_reg = 0x2330, 21328c2ecf20Sopenharmony_ci .clkr = { 21338c2ecf20Sopenharmony_ci .enable_reg = 0x2330, 21348c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21358c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21368c2ecf20Sopenharmony_ci .name = "mdss_edplink_clk", 21378c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 21388c2ecf20Sopenharmony_ci "edplink_clk_src", 21398c2ecf20Sopenharmony_ci }, 21408c2ecf20Sopenharmony_ci .num_parents = 1, 21418c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21428c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21438c2ecf20Sopenharmony_ci }, 21448c2ecf20Sopenharmony_ci }, 21458c2ecf20Sopenharmony_ci}; 21468c2ecf20Sopenharmony_ci 21478c2ecf20Sopenharmony_cistatic struct clk_branch mdss_edppixel_clk = { 21488c2ecf20Sopenharmony_ci .halt_reg = 0x232c, 21498c2ecf20Sopenharmony_ci .clkr = { 21508c2ecf20Sopenharmony_ci .enable_reg = 0x232c, 21518c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21528c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21538c2ecf20Sopenharmony_ci .name = "mdss_edppixel_clk", 21548c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 21558c2ecf20Sopenharmony_ci "edppixel_clk_src", 21568c2ecf20Sopenharmony_ci }, 21578c2ecf20Sopenharmony_ci .num_parents = 1, 21588c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21598c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21608c2ecf20Sopenharmony_ci }, 21618c2ecf20Sopenharmony_ci }, 21628c2ecf20Sopenharmony_ci}; 21638c2ecf20Sopenharmony_ci 21648c2ecf20Sopenharmony_cistatic struct clk_branch mdss_esc0_clk = { 21658c2ecf20Sopenharmony_ci .halt_reg = 0x2344, 21668c2ecf20Sopenharmony_ci .clkr = { 21678c2ecf20Sopenharmony_ci .enable_reg = 0x2344, 21688c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21698c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21708c2ecf20Sopenharmony_ci .name = "mdss_esc0_clk", 21718c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 21728c2ecf20Sopenharmony_ci "esc0_clk_src", 21738c2ecf20Sopenharmony_ci }, 21748c2ecf20Sopenharmony_ci .num_parents = 1, 21758c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21768c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21778c2ecf20Sopenharmony_ci }, 21788c2ecf20Sopenharmony_ci }, 21798c2ecf20Sopenharmony_ci}; 21808c2ecf20Sopenharmony_ci 21818c2ecf20Sopenharmony_cistatic struct clk_branch mdss_esc1_clk = { 21828c2ecf20Sopenharmony_ci .halt_reg = 0x2348, 21838c2ecf20Sopenharmony_ci .clkr = { 21848c2ecf20Sopenharmony_ci .enable_reg = 0x2348, 21858c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 21868c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21878c2ecf20Sopenharmony_ci .name = "mdss_esc1_clk", 21888c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 21898c2ecf20Sopenharmony_ci "esc1_clk_src", 21908c2ecf20Sopenharmony_ci }, 21918c2ecf20Sopenharmony_ci .num_parents = 1, 21928c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 21938c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 21948c2ecf20Sopenharmony_ci }, 21958c2ecf20Sopenharmony_ci }, 21968c2ecf20Sopenharmony_ci}; 21978c2ecf20Sopenharmony_ci 21988c2ecf20Sopenharmony_cistatic struct clk_branch mdss_extpclk_clk = { 21998c2ecf20Sopenharmony_ci .halt_reg = 0x2324, 22008c2ecf20Sopenharmony_ci .clkr = { 22018c2ecf20Sopenharmony_ci .enable_reg = 0x2324, 22028c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22038c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22048c2ecf20Sopenharmony_ci .name = "mdss_extpclk_clk", 22058c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 22068c2ecf20Sopenharmony_ci "extpclk_clk_src", 22078c2ecf20Sopenharmony_ci }, 22088c2ecf20Sopenharmony_ci .num_parents = 1, 22098c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22108c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22118c2ecf20Sopenharmony_ci }, 22128c2ecf20Sopenharmony_ci }, 22138c2ecf20Sopenharmony_ci}; 22148c2ecf20Sopenharmony_ci 22158c2ecf20Sopenharmony_cistatic struct clk_branch mdss_hdmi_ahb_clk = { 22168c2ecf20Sopenharmony_ci .halt_reg = 0x230c, 22178c2ecf20Sopenharmony_ci .clkr = { 22188c2ecf20Sopenharmony_ci .enable_reg = 0x230c, 22198c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22208c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22218c2ecf20Sopenharmony_ci .name = "mdss_hdmi_ahb_clk", 22228c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 22238c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 22248c2ecf20Sopenharmony_ci }, 22258c2ecf20Sopenharmony_ci .num_parents = 1, 22268c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22278c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22288c2ecf20Sopenharmony_ci }, 22298c2ecf20Sopenharmony_ci }, 22308c2ecf20Sopenharmony_ci}; 22318c2ecf20Sopenharmony_ci 22328c2ecf20Sopenharmony_cistatic struct clk_branch mdss_hdmi_clk = { 22338c2ecf20Sopenharmony_ci .halt_reg = 0x2338, 22348c2ecf20Sopenharmony_ci .clkr = { 22358c2ecf20Sopenharmony_ci .enable_reg = 0x2338, 22368c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22378c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22388c2ecf20Sopenharmony_ci .name = "mdss_hdmi_clk", 22398c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 22408c2ecf20Sopenharmony_ci "hdmi_clk_src", 22418c2ecf20Sopenharmony_ci }, 22428c2ecf20Sopenharmony_ci .num_parents = 1, 22438c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22448c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22458c2ecf20Sopenharmony_ci }, 22468c2ecf20Sopenharmony_ci }, 22478c2ecf20Sopenharmony_ci}; 22488c2ecf20Sopenharmony_ci 22498c2ecf20Sopenharmony_cistatic struct clk_branch mdss_mdp_clk = { 22508c2ecf20Sopenharmony_ci .halt_reg = 0x231c, 22518c2ecf20Sopenharmony_ci .clkr = { 22528c2ecf20Sopenharmony_ci .enable_reg = 0x231c, 22538c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22548c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22558c2ecf20Sopenharmony_ci .name = "mdss_mdp_clk", 22568c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 22578c2ecf20Sopenharmony_ci "mdp_clk_src", 22588c2ecf20Sopenharmony_ci }, 22598c2ecf20Sopenharmony_ci .num_parents = 1, 22608c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22618c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22628c2ecf20Sopenharmony_ci }, 22638c2ecf20Sopenharmony_ci }, 22648c2ecf20Sopenharmony_ci}; 22658c2ecf20Sopenharmony_ci 22668c2ecf20Sopenharmony_cistatic struct clk_branch mdss_mdp_lut_clk = { 22678c2ecf20Sopenharmony_ci .halt_reg = 0x2320, 22688c2ecf20Sopenharmony_ci .clkr = { 22698c2ecf20Sopenharmony_ci .enable_reg = 0x2320, 22708c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22718c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22728c2ecf20Sopenharmony_ci .name = "mdss_mdp_lut_clk", 22738c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 22748c2ecf20Sopenharmony_ci "mdp_clk_src", 22758c2ecf20Sopenharmony_ci }, 22768c2ecf20Sopenharmony_ci .num_parents = 1, 22778c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22788c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22798c2ecf20Sopenharmony_ci }, 22808c2ecf20Sopenharmony_ci }, 22818c2ecf20Sopenharmony_ci}; 22828c2ecf20Sopenharmony_ci 22838c2ecf20Sopenharmony_cistatic struct clk_branch mdss_pclk0_clk = { 22848c2ecf20Sopenharmony_ci .halt_reg = 0x2314, 22858c2ecf20Sopenharmony_ci .clkr = { 22868c2ecf20Sopenharmony_ci .enable_reg = 0x2314, 22878c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 22888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22898c2ecf20Sopenharmony_ci .name = "mdss_pclk0_clk", 22908c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 22918c2ecf20Sopenharmony_ci "pclk0_clk_src", 22928c2ecf20Sopenharmony_ci }, 22938c2ecf20Sopenharmony_ci .num_parents = 1, 22948c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 22958c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 22968c2ecf20Sopenharmony_ci }, 22978c2ecf20Sopenharmony_ci }, 22988c2ecf20Sopenharmony_ci}; 22998c2ecf20Sopenharmony_ci 23008c2ecf20Sopenharmony_cistatic struct clk_branch mdss_pclk1_clk = { 23018c2ecf20Sopenharmony_ci .halt_reg = 0x2318, 23028c2ecf20Sopenharmony_ci .clkr = { 23038c2ecf20Sopenharmony_ci .enable_reg = 0x2318, 23048c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23058c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23068c2ecf20Sopenharmony_ci .name = "mdss_pclk1_clk", 23078c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 23088c2ecf20Sopenharmony_ci "pclk1_clk_src", 23098c2ecf20Sopenharmony_ci }, 23108c2ecf20Sopenharmony_ci .num_parents = 1, 23118c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23128c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23138c2ecf20Sopenharmony_ci }, 23148c2ecf20Sopenharmony_ci }, 23158c2ecf20Sopenharmony_ci}; 23168c2ecf20Sopenharmony_ci 23178c2ecf20Sopenharmony_cistatic struct clk_branch mdss_vsync_clk = { 23188c2ecf20Sopenharmony_ci .halt_reg = 0x2328, 23198c2ecf20Sopenharmony_ci .clkr = { 23208c2ecf20Sopenharmony_ci .enable_reg = 0x2328, 23218c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23228c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23238c2ecf20Sopenharmony_ci .name = "mdss_vsync_clk", 23248c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 23258c2ecf20Sopenharmony_ci "vsync_clk_src", 23268c2ecf20Sopenharmony_ci }, 23278c2ecf20Sopenharmony_ci .num_parents = 1, 23288c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23298c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23308c2ecf20Sopenharmony_ci }, 23318c2ecf20Sopenharmony_ci }, 23328c2ecf20Sopenharmony_ci}; 23338c2ecf20Sopenharmony_ci 23348c2ecf20Sopenharmony_cistatic struct clk_branch mmss_rbcpr_ahb_clk = { 23358c2ecf20Sopenharmony_ci .halt_reg = 0x4088, 23368c2ecf20Sopenharmony_ci .clkr = { 23378c2ecf20Sopenharmony_ci .enable_reg = 0x4088, 23388c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23398c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23408c2ecf20Sopenharmony_ci .name = "mmss_rbcpr_ahb_clk", 23418c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 23428c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 23438c2ecf20Sopenharmony_ci }, 23448c2ecf20Sopenharmony_ci .num_parents = 1, 23458c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23468c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23478c2ecf20Sopenharmony_ci }, 23488c2ecf20Sopenharmony_ci }, 23498c2ecf20Sopenharmony_ci}; 23508c2ecf20Sopenharmony_ci 23518c2ecf20Sopenharmony_cistatic struct clk_branch mmss_rbcpr_clk = { 23528c2ecf20Sopenharmony_ci .halt_reg = 0x4084, 23538c2ecf20Sopenharmony_ci .clkr = { 23548c2ecf20Sopenharmony_ci .enable_reg = 0x4084, 23558c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23568c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23578c2ecf20Sopenharmony_ci .name = "mmss_rbcpr_clk", 23588c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 23598c2ecf20Sopenharmony_ci "rbcpr_clk_src", 23608c2ecf20Sopenharmony_ci }, 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 mmss_spdm_ahb_clk = { 23698c2ecf20Sopenharmony_ci .halt_reg = 0x0230, 23708c2ecf20Sopenharmony_ci .clkr = { 23718c2ecf20Sopenharmony_ci .enable_reg = 0x0230, 23728c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23748c2ecf20Sopenharmony_ci .name = "mmss_spdm_ahb_clk", 23758c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 23768c2ecf20Sopenharmony_ci "mmss_spdm_ahb_div_clk", 23778c2ecf20Sopenharmony_ci }, 23788c2ecf20Sopenharmony_ci .num_parents = 1, 23798c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23808c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23818c2ecf20Sopenharmony_ci }, 23828c2ecf20Sopenharmony_ci }, 23838c2ecf20Sopenharmony_ci}; 23848c2ecf20Sopenharmony_ci 23858c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_axi_clk = { 23868c2ecf20Sopenharmony_ci .halt_reg = 0x0210, 23878c2ecf20Sopenharmony_ci .clkr = { 23888c2ecf20Sopenharmony_ci .enable_reg = 0x0210, 23898c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23908c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23918c2ecf20Sopenharmony_ci .name = "mmss_spdm_axi_clk", 23928c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 23938c2ecf20Sopenharmony_ci "mmss_spdm_axi_div_clk", 23948c2ecf20Sopenharmony_ci }, 23958c2ecf20Sopenharmony_ci .num_parents = 1, 23968c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 23978c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 23988c2ecf20Sopenharmony_ci }, 23998c2ecf20Sopenharmony_ci }, 24008c2ecf20Sopenharmony_ci}; 24018c2ecf20Sopenharmony_ci 24028c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_csi0_clk = { 24038c2ecf20Sopenharmony_ci .halt_reg = 0x023c, 24048c2ecf20Sopenharmony_ci .clkr = { 24058c2ecf20Sopenharmony_ci .enable_reg = 0x023c, 24068c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24078c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24088c2ecf20Sopenharmony_ci .name = "mmss_spdm_csi0_clk", 24098c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 24108c2ecf20Sopenharmony_ci "mmss_spdm_csi0_div_clk", 24118c2ecf20Sopenharmony_ci }, 24128c2ecf20Sopenharmony_ci .num_parents = 1, 24138c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24148c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24158c2ecf20Sopenharmony_ci }, 24168c2ecf20Sopenharmony_ci }, 24178c2ecf20Sopenharmony_ci}; 24188c2ecf20Sopenharmony_ci 24198c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_gfx3d_clk = { 24208c2ecf20Sopenharmony_ci .halt_reg = 0x022c, 24218c2ecf20Sopenharmony_ci .clkr = { 24228c2ecf20Sopenharmony_ci .enable_reg = 0x022c, 24238c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24248c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24258c2ecf20Sopenharmony_ci .name = "mmss_spdm_gfx3d_clk", 24268c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 24278c2ecf20Sopenharmony_ci "mmss_spdm_gfx3d_div_clk", 24288c2ecf20Sopenharmony_ci }, 24298c2ecf20Sopenharmony_ci .num_parents = 1, 24308c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24318c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24328c2ecf20Sopenharmony_ci }, 24338c2ecf20Sopenharmony_ci }, 24348c2ecf20Sopenharmony_ci}; 24358c2ecf20Sopenharmony_ci 24368c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_jpeg0_clk = { 24378c2ecf20Sopenharmony_ci .halt_reg = 0x0204, 24388c2ecf20Sopenharmony_ci .clkr = { 24398c2ecf20Sopenharmony_ci .enable_reg = 0x0204, 24408c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24418c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24428c2ecf20Sopenharmony_ci .name = "mmss_spdm_jpeg0_clk", 24438c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 24448c2ecf20Sopenharmony_ci "mmss_spdm_jpeg0_div_clk", 24458c2ecf20Sopenharmony_ci }, 24468c2ecf20Sopenharmony_ci .num_parents = 1, 24478c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24488c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24498c2ecf20Sopenharmony_ci }, 24508c2ecf20Sopenharmony_ci }, 24518c2ecf20Sopenharmony_ci}; 24528c2ecf20Sopenharmony_ci 24538c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_jpeg1_clk = { 24548c2ecf20Sopenharmony_ci .halt_reg = 0x0208, 24558c2ecf20Sopenharmony_ci .clkr = { 24568c2ecf20Sopenharmony_ci .enable_reg = 0x0208, 24578c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24588c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24598c2ecf20Sopenharmony_ci .name = "mmss_spdm_jpeg1_clk", 24608c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 24618c2ecf20Sopenharmony_ci "mmss_spdm_jpeg1_div_clk", 24628c2ecf20Sopenharmony_ci }, 24638c2ecf20Sopenharmony_ci .num_parents = 1, 24648c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24658c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24668c2ecf20Sopenharmony_ci }, 24678c2ecf20Sopenharmony_ci }, 24688c2ecf20Sopenharmony_ci}; 24698c2ecf20Sopenharmony_ci 24708c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_jpeg2_clk = { 24718c2ecf20Sopenharmony_ci .halt_reg = 0x0224, 24728c2ecf20Sopenharmony_ci .clkr = { 24738c2ecf20Sopenharmony_ci .enable_reg = 0x0224, 24748c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24758c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24768c2ecf20Sopenharmony_ci .name = "mmss_spdm_jpeg2_clk", 24778c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 24788c2ecf20Sopenharmony_ci "mmss_spdm_jpeg2_div_clk", 24798c2ecf20Sopenharmony_ci }, 24808c2ecf20Sopenharmony_ci .num_parents = 1, 24818c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24828c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 24838c2ecf20Sopenharmony_ci }, 24848c2ecf20Sopenharmony_ci }, 24858c2ecf20Sopenharmony_ci}; 24868c2ecf20Sopenharmony_ci 24878c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_mdp_clk = { 24888c2ecf20Sopenharmony_ci .halt_reg = 0x020c, 24898c2ecf20Sopenharmony_ci .clkr = { 24908c2ecf20Sopenharmony_ci .enable_reg = 0x020c, 24918c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 24928c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24938c2ecf20Sopenharmony_ci .name = "mmss_spdm_mdp_clk", 24948c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 24958c2ecf20Sopenharmony_ci "mmss_spdm_mdp_div_clk", 24968c2ecf20Sopenharmony_ci }, 24978c2ecf20Sopenharmony_ci .num_parents = 1, 24988c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 24998c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25008c2ecf20Sopenharmony_ci }, 25018c2ecf20Sopenharmony_ci }, 25028c2ecf20Sopenharmony_ci}; 25038c2ecf20Sopenharmony_ci 25048c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_pclk0_clk = { 25058c2ecf20Sopenharmony_ci .halt_reg = 0x0234, 25068c2ecf20Sopenharmony_ci .clkr = { 25078c2ecf20Sopenharmony_ci .enable_reg = 0x0234, 25088c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25098c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25108c2ecf20Sopenharmony_ci .name = "mmss_spdm_pclk0_clk", 25118c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 25128c2ecf20Sopenharmony_ci "mmss_spdm_pclk0_div_clk", 25138c2ecf20Sopenharmony_ci }, 25148c2ecf20Sopenharmony_ci .num_parents = 1, 25158c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25168c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25178c2ecf20Sopenharmony_ci }, 25188c2ecf20Sopenharmony_ci }, 25198c2ecf20Sopenharmony_ci}; 25208c2ecf20Sopenharmony_ci 25218c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_pclk1_clk = { 25228c2ecf20Sopenharmony_ci .halt_reg = 0x0228, 25238c2ecf20Sopenharmony_ci .clkr = { 25248c2ecf20Sopenharmony_ci .enable_reg = 0x0228, 25258c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25268c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25278c2ecf20Sopenharmony_ci .name = "mmss_spdm_pclk1_clk", 25288c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 25298c2ecf20Sopenharmony_ci "mmss_spdm_pclk1_div_clk", 25308c2ecf20Sopenharmony_ci }, 25318c2ecf20Sopenharmony_ci .num_parents = 1, 25328c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25338c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25348c2ecf20Sopenharmony_ci }, 25358c2ecf20Sopenharmony_ci }, 25368c2ecf20Sopenharmony_ci}; 25378c2ecf20Sopenharmony_ci 25388c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_vcodec0_clk = { 25398c2ecf20Sopenharmony_ci .halt_reg = 0x0214, 25408c2ecf20Sopenharmony_ci .clkr = { 25418c2ecf20Sopenharmony_ci .enable_reg = 0x0214, 25428c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25448c2ecf20Sopenharmony_ci .name = "mmss_spdm_vcodec0_clk", 25458c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 25468c2ecf20Sopenharmony_ci "mmss_spdm_vcodec0_div_clk", 25478c2ecf20Sopenharmony_ci }, 25488c2ecf20Sopenharmony_ci .num_parents = 1, 25498c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25508c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25518c2ecf20Sopenharmony_ci }, 25528c2ecf20Sopenharmony_ci }, 25538c2ecf20Sopenharmony_ci}; 25548c2ecf20Sopenharmony_ci 25558c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_vfe0_clk = { 25568c2ecf20Sopenharmony_ci .halt_reg = 0x0218, 25578c2ecf20Sopenharmony_ci .clkr = { 25588c2ecf20Sopenharmony_ci .enable_reg = 0x0218, 25598c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25608c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25618c2ecf20Sopenharmony_ci .name = "mmss_spdm_vfe0_clk", 25628c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 25638c2ecf20Sopenharmony_ci "mmss_spdm_vfe0_div_clk", 25648c2ecf20Sopenharmony_ci }, 25658c2ecf20Sopenharmony_ci .num_parents = 1, 25668c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25678c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25688c2ecf20Sopenharmony_ci }, 25698c2ecf20Sopenharmony_ci }, 25708c2ecf20Sopenharmony_ci}; 25718c2ecf20Sopenharmony_ci 25728c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_vfe1_clk = { 25738c2ecf20Sopenharmony_ci .halt_reg = 0x021c, 25748c2ecf20Sopenharmony_ci .clkr = { 25758c2ecf20Sopenharmony_ci .enable_reg = 0x021c, 25768c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25778c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25788c2ecf20Sopenharmony_ci .name = "mmss_spdm_vfe1_clk", 25798c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 25808c2ecf20Sopenharmony_ci "mmss_spdm_vfe1_div_clk", 25818c2ecf20Sopenharmony_ci }, 25828c2ecf20Sopenharmony_ci .num_parents = 1, 25838c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 25848c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 25858c2ecf20Sopenharmony_ci }, 25868c2ecf20Sopenharmony_ci }, 25878c2ecf20Sopenharmony_ci}; 25888c2ecf20Sopenharmony_ci 25898c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_rm_axi_clk = { 25908c2ecf20Sopenharmony_ci .halt_reg = 0x0304, 25918c2ecf20Sopenharmony_ci .clkr = { 25928c2ecf20Sopenharmony_ci .enable_reg = 0x0304, 25938c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 25948c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25958c2ecf20Sopenharmony_ci .name = "mmss_spdm_rm_axi_clk", 25968c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 25978c2ecf20Sopenharmony_ci "mmss_axi_clk_src", 25988c2ecf20Sopenharmony_ci }, 25998c2ecf20Sopenharmony_ci .num_parents = 1, 26008c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26018c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26028c2ecf20Sopenharmony_ci }, 26038c2ecf20Sopenharmony_ci }, 26048c2ecf20Sopenharmony_ci}; 26058c2ecf20Sopenharmony_ci 26068c2ecf20Sopenharmony_cistatic struct clk_branch mmss_spdm_rm_ocmemnoc_clk = { 26078c2ecf20Sopenharmony_ci .halt_reg = 0x0308, 26088c2ecf20Sopenharmony_ci .clkr = { 26098c2ecf20Sopenharmony_ci .enable_reg = 0x0308, 26108c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26118c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26128c2ecf20Sopenharmony_ci .name = "mmss_spdm_rm_ocmemnoc_clk", 26138c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 26148c2ecf20Sopenharmony_ci "ocmemnoc_clk_src", 26158c2ecf20Sopenharmony_ci }, 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_ci 26248c2ecf20Sopenharmony_cistatic struct clk_branch mmss_misc_ahb_clk = { 26258c2ecf20Sopenharmony_ci .halt_reg = 0x502c, 26268c2ecf20Sopenharmony_ci .clkr = { 26278c2ecf20Sopenharmony_ci .enable_reg = 0x502c, 26288c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26298c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26308c2ecf20Sopenharmony_ci .name = "mmss_misc_ahb_clk", 26318c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 26328c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 26338c2ecf20Sopenharmony_ci }, 26348c2ecf20Sopenharmony_ci .num_parents = 1, 26358c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 26368c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26378c2ecf20Sopenharmony_ci }, 26388c2ecf20Sopenharmony_ci }, 26398c2ecf20Sopenharmony_ci}; 26408c2ecf20Sopenharmony_ci 26418c2ecf20Sopenharmony_cistatic struct clk_branch mmss_mmssnoc_ahb_clk = { 26428c2ecf20Sopenharmony_ci .halt_reg = 0x5024, 26438c2ecf20Sopenharmony_ci .clkr = { 26448c2ecf20Sopenharmony_ci .enable_reg = 0x5024, 26458c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26468c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26478c2ecf20Sopenharmony_ci .name = "mmss_mmssnoc_ahb_clk", 26488c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 26498c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 26508c2ecf20Sopenharmony_ci }, 26518c2ecf20Sopenharmony_ci .num_parents = 1, 26528c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26538c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 26548c2ecf20Sopenharmony_ci }, 26558c2ecf20Sopenharmony_ci }, 26568c2ecf20Sopenharmony_ci}; 26578c2ecf20Sopenharmony_ci 26588c2ecf20Sopenharmony_cistatic struct clk_branch mmss_mmssnoc_bto_ahb_clk = { 26598c2ecf20Sopenharmony_ci .halt_reg = 0x5028, 26608c2ecf20Sopenharmony_ci .clkr = { 26618c2ecf20Sopenharmony_ci .enable_reg = 0x5028, 26628c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26638c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26648c2ecf20Sopenharmony_ci .name = "mmss_mmssnoc_bto_ahb_clk", 26658c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 26668c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 26678c2ecf20Sopenharmony_ci }, 26688c2ecf20Sopenharmony_ci .num_parents = 1, 26698c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26708c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 26718c2ecf20Sopenharmony_ci }, 26728c2ecf20Sopenharmony_ci }, 26738c2ecf20Sopenharmony_ci}; 26748c2ecf20Sopenharmony_ci 26758c2ecf20Sopenharmony_cistatic struct clk_branch mmss_mmssnoc_axi_clk = { 26768c2ecf20Sopenharmony_ci .halt_reg = 0x506c, 26778c2ecf20Sopenharmony_ci .clkr = { 26788c2ecf20Sopenharmony_ci .enable_reg = 0x506c, 26798c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26808c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26818c2ecf20Sopenharmony_ci .name = "mmss_mmssnoc_axi_clk", 26828c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 26838c2ecf20Sopenharmony_ci "mmss_axi_clk_src", 26848c2ecf20Sopenharmony_ci }, 26858c2ecf20Sopenharmony_ci .num_parents = 1, 26868c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 26878c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 26888c2ecf20Sopenharmony_ci }, 26898c2ecf20Sopenharmony_ci }, 26908c2ecf20Sopenharmony_ci}; 26918c2ecf20Sopenharmony_ci 26928c2ecf20Sopenharmony_cistatic struct clk_branch mmss_s0_axi_clk = { 26938c2ecf20Sopenharmony_ci .halt_reg = 0x5064, 26948c2ecf20Sopenharmony_ci .clkr = { 26958c2ecf20Sopenharmony_ci .enable_reg = 0x5064, 26968c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 26978c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 26988c2ecf20Sopenharmony_ci .name = "mmss_s0_axi_clk", 26998c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 27008c2ecf20Sopenharmony_ci "mmss_axi_clk_src", 27018c2ecf20Sopenharmony_ci }, 27028c2ecf20Sopenharmony_ci .num_parents = 1, 27038c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27048c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 27058c2ecf20Sopenharmony_ci }, 27068c2ecf20Sopenharmony_ci }, 27078c2ecf20Sopenharmony_ci}; 27088c2ecf20Sopenharmony_ci 27098c2ecf20Sopenharmony_cistatic struct clk_branch ocmemcx_ahb_clk = { 27108c2ecf20Sopenharmony_ci .halt_reg = 0x405c, 27118c2ecf20Sopenharmony_ci .clkr = { 27128c2ecf20Sopenharmony_ci .enable_reg = 0x405c, 27138c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27148c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27158c2ecf20Sopenharmony_ci .name = "ocmemcx_ahb_clk", 27168c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 27178c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 27188c2ecf20Sopenharmony_ci }, 27198c2ecf20Sopenharmony_ci .num_parents = 1, 27208c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27218c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27228c2ecf20Sopenharmony_ci }, 27238c2ecf20Sopenharmony_ci }, 27248c2ecf20Sopenharmony_ci}; 27258c2ecf20Sopenharmony_ci 27268c2ecf20Sopenharmony_cistatic struct clk_branch ocmemcx_ocmemnoc_clk = { 27278c2ecf20Sopenharmony_ci .halt_reg = 0x4058, 27288c2ecf20Sopenharmony_ci .clkr = { 27298c2ecf20Sopenharmony_ci .enable_reg = 0x4058, 27308c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27318c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27328c2ecf20Sopenharmony_ci .name = "ocmemcx_ocmemnoc_clk", 27338c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 27348c2ecf20Sopenharmony_ci "ocmemnoc_clk_src", 27358c2ecf20Sopenharmony_ci }, 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 oxili_ocmemgx_clk = { 27448c2ecf20Sopenharmony_ci .halt_reg = 0x402c, 27458c2ecf20Sopenharmony_ci .clkr = { 27468c2ecf20Sopenharmony_ci .enable_reg = 0x402c, 27478c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27498c2ecf20Sopenharmony_ci .name = "oxili_ocmemgx_clk", 27508c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 27518c2ecf20Sopenharmony_ci "gfx3d_clk_src", 27528c2ecf20Sopenharmony_ci }, 27538c2ecf20Sopenharmony_ci .num_parents = 1, 27548c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27558c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27568c2ecf20Sopenharmony_ci }, 27578c2ecf20Sopenharmony_ci }, 27588c2ecf20Sopenharmony_ci}; 27598c2ecf20Sopenharmony_ci 27608c2ecf20Sopenharmony_cistatic struct clk_branch oxili_gfx3d_clk = { 27618c2ecf20Sopenharmony_ci .halt_reg = 0x4028, 27628c2ecf20Sopenharmony_ci .clkr = { 27638c2ecf20Sopenharmony_ci .enable_reg = 0x4028, 27648c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27658c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27668c2ecf20Sopenharmony_ci .name = "oxili_gfx3d_clk", 27678c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 27688c2ecf20Sopenharmony_ci "gfx3d_clk_src", 27698c2ecf20Sopenharmony_ci }, 27708c2ecf20Sopenharmony_ci .num_parents = 1, 27718c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27728c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27738c2ecf20Sopenharmony_ci }, 27748c2ecf20Sopenharmony_ci }, 27758c2ecf20Sopenharmony_ci}; 27768c2ecf20Sopenharmony_ci 27778c2ecf20Sopenharmony_cistatic struct clk_branch oxili_rbbmtimer_clk = { 27788c2ecf20Sopenharmony_ci .halt_reg = 0x40b0, 27798c2ecf20Sopenharmony_ci .clkr = { 27808c2ecf20Sopenharmony_ci .enable_reg = 0x40b0, 27818c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27828c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 27838c2ecf20Sopenharmony_ci .name = "oxili_rbbmtimer_clk", 27848c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 27858c2ecf20Sopenharmony_ci "rbbmtimer_clk_src", 27868c2ecf20Sopenharmony_ci }, 27878c2ecf20Sopenharmony_ci .num_parents = 1, 27888c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 27898c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 27908c2ecf20Sopenharmony_ci }, 27918c2ecf20Sopenharmony_ci }, 27928c2ecf20Sopenharmony_ci}; 27938c2ecf20Sopenharmony_ci 27948c2ecf20Sopenharmony_cistatic struct clk_branch oxilicx_ahb_clk = { 27958c2ecf20Sopenharmony_ci .halt_reg = 0x403c, 27968c2ecf20Sopenharmony_ci .clkr = { 27978c2ecf20Sopenharmony_ci .enable_reg = 0x403c, 27988c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 27998c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28008c2ecf20Sopenharmony_ci .name = "oxilicx_ahb_clk", 28018c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 28028c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 28038c2ecf20Sopenharmony_ci }, 28048c2ecf20Sopenharmony_ci .num_parents = 1, 28058c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28068c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28078c2ecf20Sopenharmony_ci }, 28088c2ecf20Sopenharmony_ci }, 28098c2ecf20Sopenharmony_ci}; 28108c2ecf20Sopenharmony_ci 28118c2ecf20Sopenharmony_cistatic struct clk_branch venus0_ahb_clk = { 28128c2ecf20Sopenharmony_ci .halt_reg = 0x1030, 28138c2ecf20Sopenharmony_ci .clkr = { 28148c2ecf20Sopenharmony_ci .enable_reg = 0x1030, 28158c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28168c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28178c2ecf20Sopenharmony_ci .name = "venus0_ahb_clk", 28188c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 28198c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 28208c2ecf20Sopenharmony_ci }, 28218c2ecf20Sopenharmony_ci .num_parents = 1, 28228c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28238c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28248c2ecf20Sopenharmony_ci }, 28258c2ecf20Sopenharmony_ci }, 28268c2ecf20Sopenharmony_ci}; 28278c2ecf20Sopenharmony_ci 28288c2ecf20Sopenharmony_cistatic struct clk_branch venus0_axi_clk = { 28298c2ecf20Sopenharmony_ci .halt_reg = 0x1034, 28308c2ecf20Sopenharmony_ci .clkr = { 28318c2ecf20Sopenharmony_ci .enable_reg = 0x1034, 28328c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28338c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28348c2ecf20Sopenharmony_ci .name = "venus0_axi_clk", 28358c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 28368c2ecf20Sopenharmony_ci "mmss_axi_clk_src", 28378c2ecf20Sopenharmony_ci }, 28388c2ecf20Sopenharmony_ci .num_parents = 1, 28398c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28408c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28418c2ecf20Sopenharmony_ci }, 28428c2ecf20Sopenharmony_ci }, 28438c2ecf20Sopenharmony_ci}; 28448c2ecf20Sopenharmony_ci 28458c2ecf20Sopenharmony_cistatic struct clk_branch venus0_core0_vcodec_clk = { 28468c2ecf20Sopenharmony_ci .halt_reg = 0x1048, 28478c2ecf20Sopenharmony_ci .clkr = { 28488c2ecf20Sopenharmony_ci .enable_reg = 0x1048, 28498c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28508c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28518c2ecf20Sopenharmony_ci .name = "venus0_core0_vcodec_clk", 28528c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 28538c2ecf20Sopenharmony_ci "vcodec0_clk_src", 28548c2ecf20Sopenharmony_ci }, 28558c2ecf20Sopenharmony_ci .num_parents = 1, 28568c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28578c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28588c2ecf20Sopenharmony_ci }, 28598c2ecf20Sopenharmony_ci }, 28608c2ecf20Sopenharmony_ci}; 28618c2ecf20Sopenharmony_ci 28628c2ecf20Sopenharmony_cistatic struct clk_branch venus0_core1_vcodec_clk = { 28638c2ecf20Sopenharmony_ci .halt_reg = 0x104c, 28648c2ecf20Sopenharmony_ci .clkr = { 28658c2ecf20Sopenharmony_ci .enable_reg = 0x104c, 28668c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28678c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28688c2ecf20Sopenharmony_ci .name = "venus0_core1_vcodec_clk", 28698c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 28708c2ecf20Sopenharmony_ci "vcodec0_clk_src", 28718c2ecf20Sopenharmony_ci }, 28728c2ecf20Sopenharmony_ci .num_parents = 1, 28738c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28748c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28758c2ecf20Sopenharmony_ci }, 28768c2ecf20Sopenharmony_ci }, 28778c2ecf20Sopenharmony_ci}; 28788c2ecf20Sopenharmony_ci 28798c2ecf20Sopenharmony_cistatic struct clk_branch venus0_ocmemnoc_clk = { 28808c2ecf20Sopenharmony_ci .halt_reg = 0x1038, 28818c2ecf20Sopenharmony_ci .clkr = { 28828c2ecf20Sopenharmony_ci .enable_reg = 0x1038, 28838c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 28848c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 28858c2ecf20Sopenharmony_ci .name = "venus0_ocmemnoc_clk", 28868c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 28878c2ecf20Sopenharmony_ci "ocmemnoc_clk_src", 28888c2ecf20Sopenharmony_ci }, 28898c2ecf20Sopenharmony_ci .num_parents = 1, 28908c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 28918c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 28928c2ecf20Sopenharmony_ci }, 28938c2ecf20Sopenharmony_ci }, 28948c2ecf20Sopenharmony_ci}; 28958c2ecf20Sopenharmony_ci 28968c2ecf20Sopenharmony_cistatic struct clk_branch venus0_vcodec0_clk = { 28978c2ecf20Sopenharmony_ci .halt_reg = 0x1028, 28988c2ecf20Sopenharmony_ci .clkr = { 28998c2ecf20Sopenharmony_ci .enable_reg = 0x1028, 29008c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29018c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29028c2ecf20Sopenharmony_ci .name = "venus0_vcodec0_clk", 29038c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 29048c2ecf20Sopenharmony_ci "vcodec0_clk_src", 29058c2ecf20Sopenharmony_ci }, 29068c2ecf20Sopenharmony_ci .num_parents = 1, 29078c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 29088c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29098c2ecf20Sopenharmony_ci }, 29108c2ecf20Sopenharmony_ci }, 29118c2ecf20Sopenharmony_ci}; 29128c2ecf20Sopenharmony_ci 29138c2ecf20Sopenharmony_cistatic struct clk_branch vpu_ahb_clk = { 29148c2ecf20Sopenharmony_ci .halt_reg = 0x1430, 29158c2ecf20Sopenharmony_ci .clkr = { 29168c2ecf20Sopenharmony_ci .enable_reg = 0x1430, 29178c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29188c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29198c2ecf20Sopenharmony_ci .name = "vpu_ahb_clk", 29208c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 29218c2ecf20Sopenharmony_ci "mmss_ahb_clk_src", 29228c2ecf20Sopenharmony_ci }, 29238c2ecf20Sopenharmony_ci .num_parents = 1, 29248c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 29258c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29268c2ecf20Sopenharmony_ci }, 29278c2ecf20Sopenharmony_ci }, 29288c2ecf20Sopenharmony_ci}; 29298c2ecf20Sopenharmony_ci 29308c2ecf20Sopenharmony_cistatic struct clk_branch vpu_axi_clk = { 29318c2ecf20Sopenharmony_ci .halt_reg = 0x143c, 29328c2ecf20Sopenharmony_ci .clkr = { 29338c2ecf20Sopenharmony_ci .enable_reg = 0x143c, 29348c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29358c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29368c2ecf20Sopenharmony_ci .name = "vpu_axi_clk", 29378c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 29388c2ecf20Sopenharmony_ci "mmss_axi_clk_src", 29398c2ecf20Sopenharmony_ci }, 29408c2ecf20Sopenharmony_ci .num_parents = 1, 29418c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 29428c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29438c2ecf20Sopenharmony_ci }, 29448c2ecf20Sopenharmony_ci }, 29458c2ecf20Sopenharmony_ci}; 29468c2ecf20Sopenharmony_ci 29478c2ecf20Sopenharmony_cistatic struct clk_branch vpu_bus_clk = { 29488c2ecf20Sopenharmony_ci .halt_reg = 0x1440, 29498c2ecf20Sopenharmony_ci .clkr = { 29508c2ecf20Sopenharmony_ci .enable_reg = 0x1440, 29518c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29528c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29538c2ecf20Sopenharmony_ci .name = "vpu_bus_clk", 29548c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 29558c2ecf20Sopenharmony_ci "vpu_bus_clk_src", 29568c2ecf20Sopenharmony_ci }, 29578c2ecf20Sopenharmony_ci .num_parents = 1, 29588c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 29598c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29608c2ecf20Sopenharmony_ci }, 29618c2ecf20Sopenharmony_ci }, 29628c2ecf20Sopenharmony_ci}; 29638c2ecf20Sopenharmony_ci 29648c2ecf20Sopenharmony_cistatic struct clk_branch vpu_cxo_clk = { 29658c2ecf20Sopenharmony_ci .halt_reg = 0x1434, 29668c2ecf20Sopenharmony_ci .clkr = { 29678c2ecf20Sopenharmony_ci .enable_reg = 0x1434, 29688c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29698c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29708c2ecf20Sopenharmony_ci .name = "vpu_cxo_clk", 29718c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "xo" }, 29728c2ecf20Sopenharmony_ci .num_parents = 1, 29738c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 29748c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29758c2ecf20Sopenharmony_ci }, 29768c2ecf20Sopenharmony_ci }, 29778c2ecf20Sopenharmony_ci}; 29788c2ecf20Sopenharmony_ci 29798c2ecf20Sopenharmony_cistatic struct clk_branch vpu_maple_clk = { 29808c2ecf20Sopenharmony_ci .halt_reg = 0x142c, 29818c2ecf20Sopenharmony_ci .clkr = { 29828c2ecf20Sopenharmony_ci .enable_reg = 0x142c, 29838c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 29848c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 29858c2ecf20Sopenharmony_ci .name = "vpu_maple_clk", 29868c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 29878c2ecf20Sopenharmony_ci "maple_clk_src", 29888c2ecf20Sopenharmony_ci }, 29898c2ecf20Sopenharmony_ci .num_parents = 1, 29908c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 29918c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 29928c2ecf20Sopenharmony_ci }, 29938c2ecf20Sopenharmony_ci }, 29948c2ecf20Sopenharmony_ci}; 29958c2ecf20Sopenharmony_ci 29968c2ecf20Sopenharmony_cistatic struct clk_branch vpu_sleep_clk = { 29978c2ecf20Sopenharmony_ci .halt_reg = 0x1438, 29988c2ecf20Sopenharmony_ci .clkr = { 29998c2ecf20Sopenharmony_ci .enable_reg = 0x1438, 30008c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 30018c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 30028c2ecf20Sopenharmony_ci .name = "vpu_sleep_clk", 30038c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 30048c2ecf20Sopenharmony_ci "sleep_clk_src", 30058c2ecf20Sopenharmony_ci }, 30068c2ecf20Sopenharmony_ci .num_parents = 1, 30078c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 30088c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 30098c2ecf20Sopenharmony_ci }, 30108c2ecf20Sopenharmony_ci }, 30118c2ecf20Sopenharmony_ci}; 30128c2ecf20Sopenharmony_ci 30138c2ecf20Sopenharmony_cistatic struct clk_branch vpu_vdp_clk = { 30148c2ecf20Sopenharmony_ci .halt_reg = 0x1428, 30158c2ecf20Sopenharmony_ci .clkr = { 30168c2ecf20Sopenharmony_ci .enable_reg = 0x1428, 30178c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 30188c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 30198c2ecf20Sopenharmony_ci .name = "vpu_vdp_clk", 30208c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 30218c2ecf20Sopenharmony_ci "vdp_clk_src", 30228c2ecf20Sopenharmony_ci }, 30238c2ecf20Sopenharmony_ci .num_parents = 1, 30248c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 30258c2ecf20Sopenharmony_ci .ops = &clk_branch2_ops, 30268c2ecf20Sopenharmony_ci }, 30278c2ecf20Sopenharmony_ci }, 30288c2ecf20Sopenharmony_ci}; 30298c2ecf20Sopenharmony_ci 30308c2ecf20Sopenharmony_cistatic const struct pll_config mmpll1_config = { 30318c2ecf20Sopenharmony_ci .l = 60, 30328c2ecf20Sopenharmony_ci .m = 25, 30338c2ecf20Sopenharmony_ci .n = 32, 30348c2ecf20Sopenharmony_ci .vco_val = 0x0, 30358c2ecf20Sopenharmony_ci .vco_mask = 0x3 << 20, 30368c2ecf20Sopenharmony_ci .pre_div_val = 0x0, 30378c2ecf20Sopenharmony_ci .pre_div_mask = 0x7 << 12, 30388c2ecf20Sopenharmony_ci .post_div_val = 0x0, 30398c2ecf20Sopenharmony_ci .post_div_mask = 0x3 << 8, 30408c2ecf20Sopenharmony_ci .mn_ena_mask = BIT(24), 30418c2ecf20Sopenharmony_ci .main_output_mask = BIT(0), 30428c2ecf20Sopenharmony_ci}; 30438c2ecf20Sopenharmony_ci 30448c2ecf20Sopenharmony_cistatic const struct pll_config mmpll3_config = { 30458c2ecf20Sopenharmony_ci .l = 48, 30468c2ecf20Sopenharmony_ci .m = 7, 30478c2ecf20Sopenharmony_ci .n = 16, 30488c2ecf20Sopenharmony_ci .vco_val = 0x0, 30498c2ecf20Sopenharmony_ci .vco_mask = 0x3 << 20, 30508c2ecf20Sopenharmony_ci .pre_div_val = 0x0, 30518c2ecf20Sopenharmony_ci .pre_div_mask = 0x7 << 12, 30528c2ecf20Sopenharmony_ci .post_div_val = 0x0, 30538c2ecf20Sopenharmony_ci .post_div_mask = 0x3 << 8, 30548c2ecf20Sopenharmony_ci .mn_ena_mask = BIT(24), 30558c2ecf20Sopenharmony_ci .main_output_mask = BIT(0), 30568c2ecf20Sopenharmony_ci .aux_output_mask = BIT(1), 30578c2ecf20Sopenharmony_ci}; 30588c2ecf20Sopenharmony_ci 30598c2ecf20Sopenharmony_cistatic struct gdsc venus0_gdsc = { 30608c2ecf20Sopenharmony_ci .gdscr = 0x1024, 30618c2ecf20Sopenharmony_ci .pd = { 30628c2ecf20Sopenharmony_ci .name = "venus0", 30638c2ecf20Sopenharmony_ci }, 30648c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30658c2ecf20Sopenharmony_ci}; 30668c2ecf20Sopenharmony_ci 30678c2ecf20Sopenharmony_cistatic struct gdsc venus0_core0_gdsc = { 30688c2ecf20Sopenharmony_ci .gdscr = 0x1040, 30698c2ecf20Sopenharmony_ci .pd = { 30708c2ecf20Sopenharmony_ci .name = "venus0_core0", 30718c2ecf20Sopenharmony_ci }, 30728c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30738c2ecf20Sopenharmony_ci}; 30748c2ecf20Sopenharmony_ci 30758c2ecf20Sopenharmony_cistatic struct gdsc venus0_core1_gdsc = { 30768c2ecf20Sopenharmony_ci .gdscr = 0x1044, 30778c2ecf20Sopenharmony_ci .pd = { 30788c2ecf20Sopenharmony_ci .name = "venus0_core1", 30798c2ecf20Sopenharmony_ci }, 30808c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30818c2ecf20Sopenharmony_ci}; 30828c2ecf20Sopenharmony_ci 30838c2ecf20Sopenharmony_cistatic struct gdsc mdss_gdsc = { 30848c2ecf20Sopenharmony_ci .gdscr = 0x2304, 30858c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x231c, 0x2320 }, 30868c2ecf20Sopenharmony_ci .cxc_count = 2, 30878c2ecf20Sopenharmony_ci .pd = { 30888c2ecf20Sopenharmony_ci .name = "mdss", 30898c2ecf20Sopenharmony_ci }, 30908c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30918c2ecf20Sopenharmony_ci}; 30928c2ecf20Sopenharmony_ci 30938c2ecf20Sopenharmony_cistatic struct gdsc camss_jpeg_gdsc = { 30948c2ecf20Sopenharmony_ci .gdscr = 0x35a4, 30958c2ecf20Sopenharmony_ci .pd = { 30968c2ecf20Sopenharmony_ci .name = "camss_jpeg", 30978c2ecf20Sopenharmony_ci }, 30988c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 30998c2ecf20Sopenharmony_ci}; 31008c2ecf20Sopenharmony_ci 31018c2ecf20Sopenharmony_cistatic struct gdsc camss_vfe_gdsc = { 31028c2ecf20Sopenharmony_ci .gdscr = 0x36a4, 31038c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x36a8, 0x36ac, 0x36b0 }, 31048c2ecf20Sopenharmony_ci .cxc_count = 3, 31058c2ecf20Sopenharmony_ci .pd = { 31068c2ecf20Sopenharmony_ci .name = "camss_vfe", 31078c2ecf20Sopenharmony_ci }, 31088c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 31098c2ecf20Sopenharmony_ci}; 31108c2ecf20Sopenharmony_ci 31118c2ecf20Sopenharmony_cistatic struct gdsc oxili_gdsc = { 31128c2ecf20Sopenharmony_ci .gdscr = 0x4024, 31138c2ecf20Sopenharmony_ci .cxcs = (unsigned int []){ 0x4028 }, 31148c2ecf20Sopenharmony_ci .cxc_count = 1, 31158c2ecf20Sopenharmony_ci .pd = { 31168c2ecf20Sopenharmony_ci .name = "oxili", 31178c2ecf20Sopenharmony_ci }, 31188c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 31198c2ecf20Sopenharmony_ci}; 31208c2ecf20Sopenharmony_ci 31218c2ecf20Sopenharmony_cistatic struct gdsc oxilicx_gdsc = { 31228c2ecf20Sopenharmony_ci .gdscr = 0x4034, 31238c2ecf20Sopenharmony_ci .pd = { 31248c2ecf20Sopenharmony_ci .name = "oxilicx", 31258c2ecf20Sopenharmony_ci }, 31268c2ecf20Sopenharmony_ci .pwrsts = PWRSTS_OFF_ON, 31278c2ecf20Sopenharmony_ci}; 31288c2ecf20Sopenharmony_ci 31298c2ecf20Sopenharmony_cistatic struct clk_regmap *mmcc_apq8084_clocks[] = { 31308c2ecf20Sopenharmony_ci [MMSS_AHB_CLK_SRC] = &mmss_ahb_clk_src.clkr, 31318c2ecf20Sopenharmony_ci [MMSS_AXI_CLK_SRC] = &mmss_axi_clk_src.clkr, 31328c2ecf20Sopenharmony_ci [MMPLL0] = &mmpll0.clkr, 31338c2ecf20Sopenharmony_ci [MMPLL0_VOTE] = &mmpll0_vote, 31348c2ecf20Sopenharmony_ci [MMPLL1] = &mmpll1.clkr, 31358c2ecf20Sopenharmony_ci [MMPLL1_VOTE] = &mmpll1_vote, 31368c2ecf20Sopenharmony_ci [MMPLL2] = &mmpll2.clkr, 31378c2ecf20Sopenharmony_ci [MMPLL3] = &mmpll3.clkr, 31388c2ecf20Sopenharmony_ci [MMPLL4] = &mmpll4.clkr, 31398c2ecf20Sopenharmony_ci [CSI0_CLK_SRC] = &csi0_clk_src.clkr, 31408c2ecf20Sopenharmony_ci [CSI1_CLK_SRC] = &csi1_clk_src.clkr, 31418c2ecf20Sopenharmony_ci [CSI2_CLK_SRC] = &csi2_clk_src.clkr, 31428c2ecf20Sopenharmony_ci [CSI3_CLK_SRC] = &csi3_clk_src.clkr, 31438c2ecf20Sopenharmony_ci [VCODEC0_CLK_SRC] = &vcodec0_clk_src.clkr, 31448c2ecf20Sopenharmony_ci [VFE0_CLK_SRC] = &vfe0_clk_src.clkr, 31458c2ecf20Sopenharmony_ci [VFE1_CLK_SRC] = &vfe1_clk_src.clkr, 31468c2ecf20Sopenharmony_ci [MDP_CLK_SRC] = &mdp_clk_src.clkr, 31478c2ecf20Sopenharmony_ci [PCLK0_CLK_SRC] = &pclk0_clk_src.clkr, 31488c2ecf20Sopenharmony_ci [PCLK1_CLK_SRC] = &pclk1_clk_src.clkr, 31498c2ecf20Sopenharmony_ci [OCMEMNOC_CLK_SRC] = &ocmemnoc_clk_src.clkr, 31508c2ecf20Sopenharmony_ci [GFX3D_CLK_SRC] = &gfx3d_clk_src.clkr, 31518c2ecf20Sopenharmony_ci [JPEG0_CLK_SRC] = &jpeg0_clk_src.clkr, 31528c2ecf20Sopenharmony_ci [JPEG1_CLK_SRC] = &jpeg1_clk_src.clkr, 31538c2ecf20Sopenharmony_ci [JPEG2_CLK_SRC] = &jpeg2_clk_src.clkr, 31548c2ecf20Sopenharmony_ci [EDPPIXEL_CLK_SRC] = &edppixel_clk_src.clkr, 31558c2ecf20Sopenharmony_ci [EXTPCLK_CLK_SRC] = &extpclk_clk_src.clkr, 31568c2ecf20Sopenharmony_ci [VP_CLK_SRC] = &vp_clk_src.clkr, 31578c2ecf20Sopenharmony_ci [CCI_CLK_SRC] = &cci_clk_src.clkr, 31588c2ecf20Sopenharmony_ci [CAMSS_GP0_CLK_SRC] = &camss_gp0_clk_src.clkr, 31598c2ecf20Sopenharmony_ci [CAMSS_GP1_CLK_SRC] = &camss_gp1_clk_src.clkr, 31608c2ecf20Sopenharmony_ci [MCLK0_CLK_SRC] = &mclk0_clk_src.clkr, 31618c2ecf20Sopenharmony_ci [MCLK1_CLK_SRC] = &mclk1_clk_src.clkr, 31628c2ecf20Sopenharmony_ci [MCLK2_CLK_SRC] = &mclk2_clk_src.clkr, 31638c2ecf20Sopenharmony_ci [MCLK3_CLK_SRC] = &mclk3_clk_src.clkr, 31648c2ecf20Sopenharmony_ci [CSI0PHYTIMER_CLK_SRC] = &csi0phytimer_clk_src.clkr, 31658c2ecf20Sopenharmony_ci [CSI1PHYTIMER_CLK_SRC] = &csi1phytimer_clk_src.clkr, 31668c2ecf20Sopenharmony_ci [CSI2PHYTIMER_CLK_SRC] = &csi2phytimer_clk_src.clkr, 31678c2ecf20Sopenharmony_ci [CPP_CLK_SRC] = &cpp_clk_src.clkr, 31688c2ecf20Sopenharmony_ci [BYTE0_CLK_SRC] = &byte0_clk_src.clkr, 31698c2ecf20Sopenharmony_ci [BYTE1_CLK_SRC] = &byte1_clk_src.clkr, 31708c2ecf20Sopenharmony_ci [EDPAUX_CLK_SRC] = &edpaux_clk_src.clkr, 31718c2ecf20Sopenharmony_ci [EDPLINK_CLK_SRC] = &edplink_clk_src.clkr, 31728c2ecf20Sopenharmony_ci [ESC0_CLK_SRC] = &esc0_clk_src.clkr, 31738c2ecf20Sopenharmony_ci [ESC1_CLK_SRC] = &esc1_clk_src.clkr, 31748c2ecf20Sopenharmony_ci [HDMI_CLK_SRC] = &hdmi_clk_src.clkr, 31758c2ecf20Sopenharmony_ci [VSYNC_CLK_SRC] = &vsync_clk_src.clkr, 31768c2ecf20Sopenharmony_ci [MMSS_RBCPR_CLK_SRC] = &rbcpr_clk_src.clkr, 31778c2ecf20Sopenharmony_ci [RBBMTIMER_CLK_SRC] = &rbbmtimer_clk_src.clkr, 31788c2ecf20Sopenharmony_ci [MAPLE_CLK_SRC] = &maple_clk_src.clkr, 31798c2ecf20Sopenharmony_ci [VDP_CLK_SRC] = &vdp_clk_src.clkr, 31808c2ecf20Sopenharmony_ci [VPU_BUS_CLK_SRC] = &vpu_bus_clk_src.clkr, 31818c2ecf20Sopenharmony_ci [MMSS_CXO_CLK] = &mmss_cxo_clk.clkr, 31828c2ecf20Sopenharmony_ci [MMSS_SLEEPCLK_CLK] = &mmss_sleepclk_clk.clkr, 31838c2ecf20Sopenharmony_ci [AVSYNC_AHB_CLK] = &avsync_ahb_clk.clkr, 31848c2ecf20Sopenharmony_ci [AVSYNC_EDPPIXEL_CLK] = &avsync_edppixel_clk.clkr, 31858c2ecf20Sopenharmony_ci [AVSYNC_EXTPCLK_CLK] = &avsync_extpclk_clk.clkr, 31868c2ecf20Sopenharmony_ci [AVSYNC_PCLK0_CLK] = &avsync_pclk0_clk.clkr, 31878c2ecf20Sopenharmony_ci [AVSYNC_PCLK1_CLK] = &avsync_pclk1_clk.clkr, 31888c2ecf20Sopenharmony_ci [AVSYNC_VP_CLK] = &avsync_vp_clk.clkr, 31898c2ecf20Sopenharmony_ci [CAMSS_AHB_CLK] = &camss_ahb_clk.clkr, 31908c2ecf20Sopenharmony_ci [CAMSS_CCI_CCI_AHB_CLK] = &camss_cci_cci_ahb_clk.clkr, 31918c2ecf20Sopenharmony_ci [CAMSS_CCI_CCI_CLK] = &camss_cci_cci_clk.clkr, 31928c2ecf20Sopenharmony_ci [CAMSS_CSI0_AHB_CLK] = &camss_csi0_ahb_clk.clkr, 31938c2ecf20Sopenharmony_ci [CAMSS_CSI0_CLK] = &camss_csi0_clk.clkr, 31948c2ecf20Sopenharmony_ci [CAMSS_CSI0PHY_CLK] = &camss_csi0phy_clk.clkr, 31958c2ecf20Sopenharmony_ci [CAMSS_CSI0PIX_CLK] = &camss_csi0pix_clk.clkr, 31968c2ecf20Sopenharmony_ci [CAMSS_CSI0RDI_CLK] = &camss_csi0rdi_clk.clkr, 31978c2ecf20Sopenharmony_ci [CAMSS_CSI1_AHB_CLK] = &camss_csi1_ahb_clk.clkr, 31988c2ecf20Sopenharmony_ci [CAMSS_CSI1_CLK] = &camss_csi1_clk.clkr, 31998c2ecf20Sopenharmony_ci [CAMSS_CSI1PHY_CLK] = &camss_csi1phy_clk.clkr, 32008c2ecf20Sopenharmony_ci [CAMSS_CSI1PIX_CLK] = &camss_csi1pix_clk.clkr, 32018c2ecf20Sopenharmony_ci [CAMSS_CSI1RDI_CLK] = &camss_csi1rdi_clk.clkr, 32028c2ecf20Sopenharmony_ci [CAMSS_CSI2_AHB_CLK] = &camss_csi2_ahb_clk.clkr, 32038c2ecf20Sopenharmony_ci [CAMSS_CSI2_CLK] = &camss_csi2_clk.clkr, 32048c2ecf20Sopenharmony_ci [CAMSS_CSI2PHY_CLK] = &camss_csi2phy_clk.clkr, 32058c2ecf20Sopenharmony_ci [CAMSS_CSI2PIX_CLK] = &camss_csi2pix_clk.clkr, 32068c2ecf20Sopenharmony_ci [CAMSS_CSI2RDI_CLK] = &camss_csi2rdi_clk.clkr, 32078c2ecf20Sopenharmony_ci [CAMSS_CSI3_AHB_CLK] = &camss_csi3_ahb_clk.clkr, 32088c2ecf20Sopenharmony_ci [CAMSS_CSI3_CLK] = &camss_csi3_clk.clkr, 32098c2ecf20Sopenharmony_ci [CAMSS_CSI3PHY_CLK] = &camss_csi3phy_clk.clkr, 32108c2ecf20Sopenharmony_ci [CAMSS_CSI3PIX_CLK] = &camss_csi3pix_clk.clkr, 32118c2ecf20Sopenharmony_ci [CAMSS_CSI3RDI_CLK] = &camss_csi3rdi_clk.clkr, 32128c2ecf20Sopenharmony_ci [CAMSS_CSI_VFE0_CLK] = &camss_csi_vfe0_clk.clkr, 32138c2ecf20Sopenharmony_ci [CAMSS_CSI_VFE1_CLK] = &camss_csi_vfe1_clk.clkr, 32148c2ecf20Sopenharmony_ci [CAMSS_GP0_CLK] = &camss_gp0_clk.clkr, 32158c2ecf20Sopenharmony_ci [CAMSS_GP1_CLK] = &camss_gp1_clk.clkr, 32168c2ecf20Sopenharmony_ci [CAMSS_ISPIF_AHB_CLK] = &camss_ispif_ahb_clk.clkr, 32178c2ecf20Sopenharmony_ci [CAMSS_JPEG_JPEG0_CLK] = &camss_jpeg_jpeg0_clk.clkr, 32188c2ecf20Sopenharmony_ci [CAMSS_JPEG_JPEG1_CLK] = &camss_jpeg_jpeg1_clk.clkr, 32198c2ecf20Sopenharmony_ci [CAMSS_JPEG_JPEG2_CLK] = &camss_jpeg_jpeg2_clk.clkr, 32208c2ecf20Sopenharmony_ci [CAMSS_JPEG_JPEG_AHB_CLK] = &camss_jpeg_jpeg_ahb_clk.clkr, 32218c2ecf20Sopenharmony_ci [CAMSS_JPEG_JPEG_AXI_CLK] = &camss_jpeg_jpeg_axi_clk.clkr, 32228c2ecf20Sopenharmony_ci [CAMSS_MCLK0_CLK] = &camss_mclk0_clk.clkr, 32238c2ecf20Sopenharmony_ci [CAMSS_MCLK1_CLK] = &camss_mclk1_clk.clkr, 32248c2ecf20Sopenharmony_ci [CAMSS_MCLK2_CLK] = &camss_mclk2_clk.clkr, 32258c2ecf20Sopenharmony_ci [CAMSS_MCLK3_CLK] = &camss_mclk3_clk.clkr, 32268c2ecf20Sopenharmony_ci [CAMSS_MICRO_AHB_CLK] = &camss_micro_ahb_clk.clkr, 32278c2ecf20Sopenharmony_ci [CAMSS_PHY0_CSI0PHYTIMER_CLK] = &camss_phy0_csi0phytimer_clk.clkr, 32288c2ecf20Sopenharmony_ci [CAMSS_PHY1_CSI1PHYTIMER_CLK] = &camss_phy1_csi1phytimer_clk.clkr, 32298c2ecf20Sopenharmony_ci [CAMSS_PHY2_CSI2PHYTIMER_CLK] = &camss_phy2_csi2phytimer_clk.clkr, 32308c2ecf20Sopenharmony_ci [CAMSS_TOP_AHB_CLK] = &camss_top_ahb_clk.clkr, 32318c2ecf20Sopenharmony_ci [CAMSS_VFE_CPP_AHB_CLK] = &camss_vfe_cpp_ahb_clk.clkr, 32328c2ecf20Sopenharmony_ci [CAMSS_VFE_CPP_CLK] = &camss_vfe_cpp_clk.clkr, 32338c2ecf20Sopenharmony_ci [CAMSS_VFE_VFE0_CLK] = &camss_vfe_vfe0_clk.clkr, 32348c2ecf20Sopenharmony_ci [CAMSS_VFE_VFE1_CLK] = &camss_vfe_vfe1_clk.clkr, 32358c2ecf20Sopenharmony_ci [CAMSS_VFE_VFE_AHB_CLK] = &camss_vfe_vfe_ahb_clk.clkr, 32368c2ecf20Sopenharmony_ci [CAMSS_VFE_VFE_AXI_CLK] = &camss_vfe_vfe_axi_clk.clkr, 32378c2ecf20Sopenharmony_ci [MDSS_AHB_CLK] = &mdss_ahb_clk.clkr, 32388c2ecf20Sopenharmony_ci [MDSS_AXI_CLK] = &mdss_axi_clk.clkr, 32398c2ecf20Sopenharmony_ci [MDSS_BYTE0_CLK] = &mdss_byte0_clk.clkr, 32408c2ecf20Sopenharmony_ci [MDSS_BYTE1_CLK] = &mdss_byte1_clk.clkr, 32418c2ecf20Sopenharmony_ci [MDSS_EDPAUX_CLK] = &mdss_edpaux_clk.clkr, 32428c2ecf20Sopenharmony_ci [MDSS_EDPLINK_CLK] = &mdss_edplink_clk.clkr, 32438c2ecf20Sopenharmony_ci [MDSS_EDPPIXEL_CLK] = &mdss_edppixel_clk.clkr, 32448c2ecf20Sopenharmony_ci [MDSS_ESC0_CLK] = &mdss_esc0_clk.clkr, 32458c2ecf20Sopenharmony_ci [MDSS_ESC1_CLK] = &mdss_esc1_clk.clkr, 32468c2ecf20Sopenharmony_ci [MDSS_EXTPCLK_CLK] = &mdss_extpclk_clk.clkr, 32478c2ecf20Sopenharmony_ci [MDSS_HDMI_AHB_CLK] = &mdss_hdmi_ahb_clk.clkr, 32488c2ecf20Sopenharmony_ci [MDSS_HDMI_CLK] = &mdss_hdmi_clk.clkr, 32498c2ecf20Sopenharmony_ci [MDSS_MDP_CLK] = &mdss_mdp_clk.clkr, 32508c2ecf20Sopenharmony_ci [MDSS_MDP_LUT_CLK] = &mdss_mdp_lut_clk.clkr, 32518c2ecf20Sopenharmony_ci [MDSS_PCLK0_CLK] = &mdss_pclk0_clk.clkr, 32528c2ecf20Sopenharmony_ci [MDSS_PCLK1_CLK] = &mdss_pclk1_clk.clkr, 32538c2ecf20Sopenharmony_ci [MDSS_VSYNC_CLK] = &mdss_vsync_clk.clkr, 32548c2ecf20Sopenharmony_ci [MMSS_RBCPR_AHB_CLK] = &mmss_rbcpr_ahb_clk.clkr, 32558c2ecf20Sopenharmony_ci [MMSS_RBCPR_CLK] = &mmss_rbcpr_clk.clkr, 32568c2ecf20Sopenharmony_ci [MMSS_SPDM_AHB_CLK] = &mmss_spdm_ahb_clk.clkr, 32578c2ecf20Sopenharmony_ci [MMSS_SPDM_AXI_CLK] = &mmss_spdm_axi_clk.clkr, 32588c2ecf20Sopenharmony_ci [MMSS_SPDM_CSI0_CLK] = &mmss_spdm_csi0_clk.clkr, 32598c2ecf20Sopenharmony_ci [MMSS_SPDM_GFX3D_CLK] = &mmss_spdm_gfx3d_clk.clkr, 32608c2ecf20Sopenharmony_ci [MMSS_SPDM_JPEG0_CLK] = &mmss_spdm_jpeg0_clk.clkr, 32618c2ecf20Sopenharmony_ci [MMSS_SPDM_JPEG1_CLK] = &mmss_spdm_jpeg1_clk.clkr, 32628c2ecf20Sopenharmony_ci [MMSS_SPDM_JPEG2_CLK] = &mmss_spdm_jpeg2_clk.clkr, 32638c2ecf20Sopenharmony_ci [MMSS_SPDM_MDP_CLK] = &mmss_spdm_mdp_clk.clkr, 32648c2ecf20Sopenharmony_ci [MMSS_SPDM_PCLK0_CLK] = &mmss_spdm_pclk0_clk.clkr, 32658c2ecf20Sopenharmony_ci [MMSS_SPDM_PCLK1_CLK] = &mmss_spdm_pclk1_clk.clkr, 32668c2ecf20Sopenharmony_ci [MMSS_SPDM_VCODEC0_CLK] = &mmss_spdm_vcodec0_clk.clkr, 32678c2ecf20Sopenharmony_ci [MMSS_SPDM_VFE0_CLK] = &mmss_spdm_vfe0_clk.clkr, 32688c2ecf20Sopenharmony_ci [MMSS_SPDM_VFE1_CLK] = &mmss_spdm_vfe1_clk.clkr, 32698c2ecf20Sopenharmony_ci [MMSS_SPDM_RM_AXI_CLK] = &mmss_spdm_rm_axi_clk.clkr, 32708c2ecf20Sopenharmony_ci [MMSS_SPDM_RM_OCMEMNOC_CLK] = &mmss_spdm_rm_ocmemnoc_clk.clkr, 32718c2ecf20Sopenharmony_ci [MMSS_MISC_AHB_CLK] = &mmss_misc_ahb_clk.clkr, 32728c2ecf20Sopenharmony_ci [MMSS_MMSSNOC_AHB_CLK] = &mmss_mmssnoc_ahb_clk.clkr, 32738c2ecf20Sopenharmony_ci [MMSS_MMSSNOC_BTO_AHB_CLK] = &mmss_mmssnoc_bto_ahb_clk.clkr, 32748c2ecf20Sopenharmony_ci [MMSS_MMSSNOC_AXI_CLK] = &mmss_mmssnoc_axi_clk.clkr, 32758c2ecf20Sopenharmony_ci [MMSS_S0_AXI_CLK] = &mmss_s0_axi_clk.clkr, 32768c2ecf20Sopenharmony_ci [OCMEMCX_AHB_CLK] = &ocmemcx_ahb_clk.clkr, 32778c2ecf20Sopenharmony_ci [OCMEMCX_OCMEMNOC_CLK] = &ocmemcx_ocmemnoc_clk.clkr, 32788c2ecf20Sopenharmony_ci [OXILI_OCMEMGX_CLK] = &oxili_ocmemgx_clk.clkr, 32798c2ecf20Sopenharmony_ci [OXILI_GFX3D_CLK] = &oxili_gfx3d_clk.clkr, 32808c2ecf20Sopenharmony_ci [OXILI_RBBMTIMER_CLK] = &oxili_rbbmtimer_clk.clkr, 32818c2ecf20Sopenharmony_ci [OXILICX_AHB_CLK] = &oxilicx_ahb_clk.clkr, 32828c2ecf20Sopenharmony_ci [VENUS0_AHB_CLK] = &venus0_ahb_clk.clkr, 32838c2ecf20Sopenharmony_ci [VENUS0_AXI_CLK] = &venus0_axi_clk.clkr, 32848c2ecf20Sopenharmony_ci [VENUS0_CORE0_VCODEC_CLK] = &venus0_core0_vcodec_clk.clkr, 32858c2ecf20Sopenharmony_ci [VENUS0_CORE1_VCODEC_CLK] = &venus0_core1_vcodec_clk.clkr, 32868c2ecf20Sopenharmony_ci [VENUS0_OCMEMNOC_CLK] = &venus0_ocmemnoc_clk.clkr, 32878c2ecf20Sopenharmony_ci [VENUS0_VCODEC0_CLK] = &venus0_vcodec0_clk.clkr, 32888c2ecf20Sopenharmony_ci [VPU_AHB_CLK] = &vpu_ahb_clk.clkr, 32898c2ecf20Sopenharmony_ci [VPU_AXI_CLK] = &vpu_axi_clk.clkr, 32908c2ecf20Sopenharmony_ci [VPU_BUS_CLK] = &vpu_bus_clk.clkr, 32918c2ecf20Sopenharmony_ci [VPU_CXO_CLK] = &vpu_cxo_clk.clkr, 32928c2ecf20Sopenharmony_ci [VPU_MAPLE_CLK] = &vpu_maple_clk.clkr, 32938c2ecf20Sopenharmony_ci [VPU_SLEEP_CLK] = &vpu_sleep_clk.clkr, 32948c2ecf20Sopenharmony_ci [VPU_VDP_CLK] = &vpu_vdp_clk.clkr, 32958c2ecf20Sopenharmony_ci}; 32968c2ecf20Sopenharmony_ci 32978c2ecf20Sopenharmony_cistatic const struct qcom_reset_map mmcc_apq8084_resets[] = { 32988c2ecf20Sopenharmony_ci [MMSS_SPDM_RESET] = { 0x0200 }, 32998c2ecf20Sopenharmony_ci [MMSS_SPDM_RM_RESET] = { 0x0300 }, 33008c2ecf20Sopenharmony_ci [VENUS0_RESET] = { 0x1020 }, 33018c2ecf20Sopenharmony_ci [VPU_RESET] = { 0x1400 }, 33028c2ecf20Sopenharmony_ci [MDSS_RESET] = { 0x2300 }, 33038c2ecf20Sopenharmony_ci [AVSYNC_RESET] = { 0x2400 }, 33048c2ecf20Sopenharmony_ci [CAMSS_PHY0_RESET] = { 0x3020 }, 33058c2ecf20Sopenharmony_ci [CAMSS_PHY1_RESET] = { 0x3050 }, 33068c2ecf20Sopenharmony_ci [CAMSS_PHY2_RESET] = { 0x3080 }, 33078c2ecf20Sopenharmony_ci [CAMSS_CSI0_RESET] = { 0x30b0 }, 33088c2ecf20Sopenharmony_ci [CAMSS_CSI0PHY_RESET] = { 0x30c0 }, 33098c2ecf20Sopenharmony_ci [CAMSS_CSI0RDI_RESET] = { 0x30d0 }, 33108c2ecf20Sopenharmony_ci [CAMSS_CSI0PIX_RESET] = { 0x30e0 }, 33118c2ecf20Sopenharmony_ci [CAMSS_CSI1_RESET] = { 0x3120 }, 33128c2ecf20Sopenharmony_ci [CAMSS_CSI1PHY_RESET] = { 0x3130 }, 33138c2ecf20Sopenharmony_ci [CAMSS_CSI1RDI_RESET] = { 0x3140 }, 33148c2ecf20Sopenharmony_ci [CAMSS_CSI1PIX_RESET] = { 0x3150 }, 33158c2ecf20Sopenharmony_ci [CAMSS_CSI2_RESET] = { 0x3180 }, 33168c2ecf20Sopenharmony_ci [CAMSS_CSI2PHY_RESET] = { 0x3190 }, 33178c2ecf20Sopenharmony_ci [CAMSS_CSI2RDI_RESET] = { 0x31a0 }, 33188c2ecf20Sopenharmony_ci [CAMSS_CSI2PIX_RESET] = { 0x31b0 }, 33198c2ecf20Sopenharmony_ci [CAMSS_CSI3_RESET] = { 0x31e0 }, 33208c2ecf20Sopenharmony_ci [CAMSS_CSI3PHY_RESET] = { 0x31f0 }, 33218c2ecf20Sopenharmony_ci [CAMSS_CSI3RDI_RESET] = { 0x3200 }, 33228c2ecf20Sopenharmony_ci [CAMSS_CSI3PIX_RESET] = { 0x3210 }, 33238c2ecf20Sopenharmony_ci [CAMSS_ISPIF_RESET] = { 0x3220 }, 33248c2ecf20Sopenharmony_ci [CAMSS_CCI_RESET] = { 0x3340 }, 33258c2ecf20Sopenharmony_ci [CAMSS_MCLK0_RESET] = { 0x3380 }, 33268c2ecf20Sopenharmony_ci [CAMSS_MCLK1_RESET] = { 0x33b0 }, 33278c2ecf20Sopenharmony_ci [CAMSS_MCLK2_RESET] = { 0x33e0 }, 33288c2ecf20Sopenharmony_ci [CAMSS_MCLK3_RESET] = { 0x3410 }, 33298c2ecf20Sopenharmony_ci [CAMSS_GP0_RESET] = { 0x3440 }, 33308c2ecf20Sopenharmony_ci [CAMSS_GP1_RESET] = { 0x3470 }, 33318c2ecf20Sopenharmony_ci [CAMSS_TOP_RESET] = { 0x3480 }, 33328c2ecf20Sopenharmony_ci [CAMSS_AHB_RESET] = { 0x3488 }, 33338c2ecf20Sopenharmony_ci [CAMSS_MICRO_RESET] = { 0x3490 }, 33348c2ecf20Sopenharmony_ci [CAMSS_JPEG_RESET] = { 0x35a0 }, 33358c2ecf20Sopenharmony_ci [CAMSS_VFE_RESET] = { 0x36a0 }, 33368c2ecf20Sopenharmony_ci [CAMSS_CSI_VFE0_RESET] = { 0x3700 }, 33378c2ecf20Sopenharmony_ci [CAMSS_CSI_VFE1_RESET] = { 0x3710 }, 33388c2ecf20Sopenharmony_ci [OXILI_RESET] = { 0x4020 }, 33398c2ecf20Sopenharmony_ci [OXILICX_RESET] = { 0x4030 }, 33408c2ecf20Sopenharmony_ci [OCMEMCX_RESET] = { 0x4050 }, 33418c2ecf20Sopenharmony_ci [MMSS_RBCRP_RESET] = { 0x4080 }, 33428c2ecf20Sopenharmony_ci [MMSSNOCAHB_RESET] = { 0x5020 }, 33438c2ecf20Sopenharmony_ci [MMSSNOCAXI_RESET] = { 0x5060 }, 33448c2ecf20Sopenharmony_ci}; 33458c2ecf20Sopenharmony_ci 33468c2ecf20Sopenharmony_cistatic struct gdsc *mmcc_apq8084_gdscs[] = { 33478c2ecf20Sopenharmony_ci [VENUS0_GDSC] = &venus0_gdsc, 33488c2ecf20Sopenharmony_ci [VENUS0_CORE0_GDSC] = &venus0_core0_gdsc, 33498c2ecf20Sopenharmony_ci [VENUS0_CORE1_GDSC] = &venus0_core1_gdsc, 33508c2ecf20Sopenharmony_ci [MDSS_GDSC] = &mdss_gdsc, 33518c2ecf20Sopenharmony_ci [CAMSS_JPEG_GDSC] = &camss_jpeg_gdsc, 33528c2ecf20Sopenharmony_ci [CAMSS_VFE_GDSC] = &camss_vfe_gdsc, 33538c2ecf20Sopenharmony_ci [OXILI_GDSC] = &oxili_gdsc, 33548c2ecf20Sopenharmony_ci [OXILICX_GDSC] = &oxilicx_gdsc, 33558c2ecf20Sopenharmony_ci}; 33568c2ecf20Sopenharmony_ci 33578c2ecf20Sopenharmony_cistatic const struct regmap_config mmcc_apq8084_regmap_config = { 33588c2ecf20Sopenharmony_ci .reg_bits = 32, 33598c2ecf20Sopenharmony_ci .reg_stride = 4, 33608c2ecf20Sopenharmony_ci .val_bits = 32, 33618c2ecf20Sopenharmony_ci .max_register = 0x5104, 33628c2ecf20Sopenharmony_ci .fast_io = true, 33638c2ecf20Sopenharmony_ci}; 33648c2ecf20Sopenharmony_ci 33658c2ecf20Sopenharmony_cistatic const struct qcom_cc_desc mmcc_apq8084_desc = { 33668c2ecf20Sopenharmony_ci .config = &mmcc_apq8084_regmap_config, 33678c2ecf20Sopenharmony_ci .clks = mmcc_apq8084_clocks, 33688c2ecf20Sopenharmony_ci .num_clks = ARRAY_SIZE(mmcc_apq8084_clocks), 33698c2ecf20Sopenharmony_ci .resets = mmcc_apq8084_resets, 33708c2ecf20Sopenharmony_ci .num_resets = ARRAY_SIZE(mmcc_apq8084_resets), 33718c2ecf20Sopenharmony_ci .gdscs = mmcc_apq8084_gdscs, 33728c2ecf20Sopenharmony_ci .num_gdscs = ARRAY_SIZE(mmcc_apq8084_gdscs), 33738c2ecf20Sopenharmony_ci}; 33748c2ecf20Sopenharmony_ci 33758c2ecf20Sopenharmony_cistatic const struct of_device_id mmcc_apq8084_match_table[] = { 33768c2ecf20Sopenharmony_ci { .compatible = "qcom,mmcc-apq8084" }, 33778c2ecf20Sopenharmony_ci { } 33788c2ecf20Sopenharmony_ci}; 33798c2ecf20Sopenharmony_ciMODULE_DEVICE_TABLE(of, mmcc_apq8084_match_table); 33808c2ecf20Sopenharmony_ci 33818c2ecf20Sopenharmony_cistatic int mmcc_apq8084_probe(struct platform_device *pdev) 33828c2ecf20Sopenharmony_ci{ 33838c2ecf20Sopenharmony_ci int ret; 33848c2ecf20Sopenharmony_ci struct regmap *regmap; 33858c2ecf20Sopenharmony_ci 33868c2ecf20Sopenharmony_ci ret = qcom_cc_probe(pdev, &mmcc_apq8084_desc); 33878c2ecf20Sopenharmony_ci if (ret) 33888c2ecf20Sopenharmony_ci return ret; 33898c2ecf20Sopenharmony_ci 33908c2ecf20Sopenharmony_ci regmap = dev_get_regmap(&pdev->dev, NULL); 33918c2ecf20Sopenharmony_ci clk_pll_configure_sr_hpm_lp(&mmpll1, regmap, &mmpll1_config, true); 33928c2ecf20Sopenharmony_ci clk_pll_configure_sr_hpm_lp(&mmpll3, regmap, &mmpll3_config, false); 33938c2ecf20Sopenharmony_ci 33948c2ecf20Sopenharmony_ci return 0; 33958c2ecf20Sopenharmony_ci} 33968c2ecf20Sopenharmony_ci 33978c2ecf20Sopenharmony_cistatic struct platform_driver mmcc_apq8084_driver = { 33988c2ecf20Sopenharmony_ci .probe = mmcc_apq8084_probe, 33998c2ecf20Sopenharmony_ci .driver = { 34008c2ecf20Sopenharmony_ci .name = "mmcc-apq8084", 34018c2ecf20Sopenharmony_ci .of_match_table = mmcc_apq8084_match_table, 34028c2ecf20Sopenharmony_ci }, 34038c2ecf20Sopenharmony_ci}; 34048c2ecf20Sopenharmony_cimodule_platform_driver(mmcc_apq8084_driver); 34058c2ecf20Sopenharmony_ci 34068c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("QCOM MMCC APQ8084 Driver"); 34078c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL v2"); 34088c2ecf20Sopenharmony_ciMODULE_ALIAS("platform:mmcc-apq8084"); 3409