162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2018, The Linux Foundation. All rights reserved. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <linux/kernel.h> 762306a36Sopenharmony_ci#include <linux/err.h> 862306a36Sopenharmony_ci#include <linux/platform_device.h> 962306a36Sopenharmony_ci#include <linux/module.h> 1062306a36Sopenharmony_ci#include <linux/of.h> 1162306a36Sopenharmony_ci#include <linux/clk-provider.h> 1262306a36Sopenharmony_ci#include <linux/regmap.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <linux/reset-controller.h> 1562306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,gcc-ipq6018.h> 1662306a36Sopenharmony_ci#include <dt-bindings/reset/qcom,gcc-ipq6018.h> 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#include "common.h" 1962306a36Sopenharmony_ci#include "clk-regmap.h" 2062306a36Sopenharmony_ci#include "clk-pll.h" 2162306a36Sopenharmony_ci#include "clk-rcg.h" 2262306a36Sopenharmony_ci#include "clk-branch.h" 2362306a36Sopenharmony_ci#include "clk-alpha-pll.h" 2462306a36Sopenharmony_ci#include "clk-regmap-divider.h" 2562306a36Sopenharmony_ci#include "clk-regmap-mux.h" 2662306a36Sopenharmony_ci#include "reset.h" 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_cienum { 2962306a36Sopenharmony_ci P_XO, 3062306a36Sopenharmony_ci P_BIAS_PLL, 3162306a36Sopenharmony_ci P_UNIPHY0_RX, 3262306a36Sopenharmony_ci P_UNIPHY0_TX, 3362306a36Sopenharmony_ci P_UNIPHY1_RX, 3462306a36Sopenharmony_ci P_BIAS_PLL_NSS_NOC, 3562306a36Sopenharmony_ci P_UNIPHY1_TX, 3662306a36Sopenharmony_ci P_PCIE20_PHY0_PIPE, 3762306a36Sopenharmony_ci P_USB3PHY_0_PIPE, 3862306a36Sopenharmony_ci P_GPLL0, 3962306a36Sopenharmony_ci P_GPLL0_DIV2, 4062306a36Sopenharmony_ci P_GPLL2, 4162306a36Sopenharmony_ci P_GPLL4, 4262306a36Sopenharmony_ci P_GPLL6, 4362306a36Sopenharmony_ci P_SLEEP_CLK, 4462306a36Sopenharmony_ci P_UBI32_PLL, 4562306a36Sopenharmony_ci P_NSS_CRYPTO_PLL, 4662306a36Sopenharmony_ci P_PI_SLEEP, 4762306a36Sopenharmony_ci}; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_cistatic struct clk_alpha_pll gpll0_main = { 5062306a36Sopenharmony_ci .offset = 0x21000, 5162306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 5262306a36Sopenharmony_ci .clkr = { 5362306a36Sopenharmony_ci .enable_reg = 0x0b000, 5462306a36Sopenharmony_ci .enable_mask = BIT(0), 5562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 5662306a36Sopenharmony_ci .name = "gpll0_main", 5762306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 5862306a36Sopenharmony_ci .fw_name = "xo", 5962306a36Sopenharmony_ci }, 6062306a36Sopenharmony_ci .num_parents = 1, 6162306a36Sopenharmony_ci .ops = &clk_alpha_pll_ops, 6262306a36Sopenharmony_ci }, 6362306a36Sopenharmony_ci }, 6462306a36Sopenharmony_ci}; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_cistatic struct clk_fixed_factor gpll0_out_main_div2 = { 6762306a36Sopenharmony_ci .mult = 1, 6862306a36Sopenharmony_ci .div = 2, 6962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 7062306a36Sopenharmony_ci .name = "gpll0_out_main_div2", 7162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 7262306a36Sopenharmony_ci &gpll0_main.clkr.hw }, 7362306a36Sopenharmony_ci .num_parents = 1, 7462306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 7562306a36Sopenharmony_ci }, 7662306a36Sopenharmony_ci}; 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll0 = { 7962306a36Sopenharmony_ci .offset = 0x21000, 8062306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 8162306a36Sopenharmony_ci .width = 4, 8262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 8362306a36Sopenharmony_ci .name = "gpll0", 8462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 8562306a36Sopenharmony_ci &gpll0_main.clkr.hw }, 8662306a36Sopenharmony_ci .num_parents = 1, 8762306a36Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ro_ops, 8862306a36Sopenharmony_ci }, 8962306a36Sopenharmony_ci}; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll0_out_main_div2[] = { 9262306a36Sopenharmony_ci { .fw_name = "xo" }, 9362306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw}, 9462306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw}, 9562306a36Sopenharmony_ci}; 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll0_out_main_div2_map[] = { 9862306a36Sopenharmony_ci { P_XO, 0 }, 9962306a36Sopenharmony_ci { P_GPLL0, 1 }, 10062306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 10162306a36Sopenharmony_ci}; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_cistatic struct clk_alpha_pll ubi32_pll_main = { 10462306a36Sopenharmony_ci .offset = 0x25000, 10562306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_HUAYRA], 10662306a36Sopenharmony_ci .flags = SUPPORTS_DYNAMIC_UPDATE, 10762306a36Sopenharmony_ci .clkr = { 10862306a36Sopenharmony_ci .enable_reg = 0x0b000, 10962306a36Sopenharmony_ci .enable_mask = BIT(6), 11062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11162306a36Sopenharmony_ci .name = "ubi32_pll_main", 11262306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 11362306a36Sopenharmony_ci .fw_name = "xo", 11462306a36Sopenharmony_ci }, 11562306a36Sopenharmony_ci .num_parents = 1, 11662306a36Sopenharmony_ci .ops = &clk_alpha_pll_huayra_ops, 11762306a36Sopenharmony_ci }, 11862306a36Sopenharmony_ci }, 11962306a36Sopenharmony_ci}; 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv ubi32_pll = { 12262306a36Sopenharmony_ci .offset = 0x25000, 12362306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_HUAYRA], 12462306a36Sopenharmony_ci .width = 2, 12562306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 12662306a36Sopenharmony_ci .name = "ubi32_pll", 12762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 12862306a36Sopenharmony_ci &ubi32_pll_main.clkr.hw }, 12962306a36Sopenharmony_ci .num_parents = 1, 13062306a36Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ro_ops, 13162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13262306a36Sopenharmony_ci }, 13362306a36Sopenharmony_ci}; 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_cistatic struct clk_alpha_pll gpll6_main = { 13662306a36Sopenharmony_ci .offset = 0x37000, 13762306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_BRAMMO], 13862306a36Sopenharmony_ci .clkr = { 13962306a36Sopenharmony_ci .enable_reg = 0x0b000, 14062306a36Sopenharmony_ci .enable_mask = BIT(7), 14162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14262306a36Sopenharmony_ci .name = "gpll6_main", 14362306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 14462306a36Sopenharmony_ci .fw_name = "xo", 14562306a36Sopenharmony_ci }, 14662306a36Sopenharmony_ci .num_parents = 1, 14762306a36Sopenharmony_ci .ops = &clk_alpha_pll_ops, 14862306a36Sopenharmony_ci }, 14962306a36Sopenharmony_ci }, 15062306a36Sopenharmony_ci}; 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll6 = { 15362306a36Sopenharmony_ci .offset = 0x37000, 15462306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_BRAMMO], 15562306a36Sopenharmony_ci .width = 2, 15662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 15762306a36Sopenharmony_ci .name = "gpll6", 15862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 15962306a36Sopenharmony_ci &gpll6_main.clkr.hw }, 16062306a36Sopenharmony_ci .num_parents = 1, 16162306a36Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ro_ops, 16262306a36Sopenharmony_ci }, 16362306a36Sopenharmony_ci}; 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_cistatic struct clk_alpha_pll gpll4_main = { 16662306a36Sopenharmony_ci .offset = 0x24000, 16762306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 16862306a36Sopenharmony_ci .clkr = { 16962306a36Sopenharmony_ci .enable_reg = 0x0b000, 17062306a36Sopenharmony_ci .enable_mask = BIT(5), 17162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17262306a36Sopenharmony_ci .name = "gpll4_main", 17362306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 17462306a36Sopenharmony_ci .fw_name = "xo", 17562306a36Sopenharmony_ci }, 17662306a36Sopenharmony_ci .num_parents = 1, 17762306a36Sopenharmony_ci .ops = &clk_alpha_pll_ops, 17862306a36Sopenharmony_ci }, 17962306a36Sopenharmony_ci }, 18062306a36Sopenharmony_ci}; 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll4 = { 18362306a36Sopenharmony_ci .offset = 0x24000, 18462306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 18562306a36Sopenharmony_ci .width = 4, 18662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 18762306a36Sopenharmony_ci .name = "gpll4", 18862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 18962306a36Sopenharmony_ci &gpll4_main.clkr.hw }, 19062306a36Sopenharmony_ci .num_parents = 1, 19162306a36Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ro_ops, 19262306a36Sopenharmony_ci }, 19362306a36Sopenharmony_ci}; 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcnoc_bfdcd_clk_src[] = { 19662306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 19762306a36Sopenharmony_ci F(50000000, P_GPLL0, 16, 0, 0), 19862306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 19962306a36Sopenharmony_ci { } 20062306a36Sopenharmony_ci}; 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_cistatic struct clk_rcg2 pcnoc_bfdcd_clk_src = { 20362306a36Sopenharmony_ci .cmd_rcgr = 0x27000, 20462306a36Sopenharmony_ci .freq_tbl = ftbl_pcnoc_bfdcd_clk_src, 20562306a36Sopenharmony_ci .hid_width = 5, 20662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 20762306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 20862306a36Sopenharmony_ci .name = "pcnoc_bfdcd_clk_src", 20962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 21062306a36Sopenharmony_ci .num_parents = 3, 21162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 21262306a36Sopenharmony_ci }, 21362306a36Sopenharmony_ci}; 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_cistatic struct clk_alpha_pll gpll2_main = { 21662306a36Sopenharmony_ci .offset = 0x4a000, 21762306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 21862306a36Sopenharmony_ci .clkr = { 21962306a36Sopenharmony_ci .enable_reg = 0x0b000, 22062306a36Sopenharmony_ci .enable_mask = BIT(2), 22162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22262306a36Sopenharmony_ci .name = "gpll2_main", 22362306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 22462306a36Sopenharmony_ci .fw_name = "xo", 22562306a36Sopenharmony_ci }, 22662306a36Sopenharmony_ci .num_parents = 1, 22762306a36Sopenharmony_ci .ops = &clk_alpha_pll_ops, 22862306a36Sopenharmony_ci }, 22962306a36Sopenharmony_ci }, 23062306a36Sopenharmony_ci}; 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll2 = { 23362306a36Sopenharmony_ci .offset = 0x4a000, 23462306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 23562306a36Sopenharmony_ci .width = 4, 23662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 23762306a36Sopenharmony_ci .name = "gpll2", 23862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 23962306a36Sopenharmony_ci &gpll2_main.clkr.hw }, 24062306a36Sopenharmony_ci .num_parents = 1, 24162306a36Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ro_ops, 24262306a36Sopenharmony_ci }, 24362306a36Sopenharmony_ci}; 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_cistatic struct clk_alpha_pll nss_crypto_pll_main = { 24662306a36Sopenharmony_ci .offset = 0x22000, 24762306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 24862306a36Sopenharmony_ci .clkr = { 24962306a36Sopenharmony_ci .enable_reg = 0x0b000, 25062306a36Sopenharmony_ci .enable_mask = BIT(4), 25162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 25262306a36Sopenharmony_ci .name = "nss_crypto_pll_main", 25362306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 25462306a36Sopenharmony_ci .fw_name = "xo", 25562306a36Sopenharmony_ci }, 25662306a36Sopenharmony_ci .num_parents = 1, 25762306a36Sopenharmony_ci .ops = &clk_alpha_pll_ops, 25862306a36Sopenharmony_ci }, 25962306a36Sopenharmony_ci }, 26062306a36Sopenharmony_ci}; 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv nss_crypto_pll = { 26362306a36Sopenharmony_ci .offset = 0x22000, 26462306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 26562306a36Sopenharmony_ci .width = 4, 26662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 26762306a36Sopenharmony_ci .name = "nss_crypto_pll", 26862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 26962306a36Sopenharmony_ci &nss_crypto_pll_main.clkr.hw }, 27062306a36Sopenharmony_ci .num_parents = 1, 27162306a36Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ro_ops, 27262306a36Sopenharmony_ci }, 27362306a36Sopenharmony_ci}; 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_qdss_tsctr_clk_src[] = { 27662306a36Sopenharmony_ci F(160000000, P_GPLL0_DIV2, 2.5, 0, 0), 27762306a36Sopenharmony_ci F(320000000, P_GPLL0, 2.5, 0, 0), 27862306a36Sopenharmony_ci F(600000000, P_GPLL4, 2, 0, 0), 27962306a36Sopenharmony_ci { } 28062306a36Sopenharmony_ci}; 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll4_gpll0_gpll6_gpll0_div2[] = { 28362306a36Sopenharmony_ci { .fw_name = "xo" }, 28462306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 28562306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 28662306a36Sopenharmony_ci { .hw = &gpll6.clkr.hw }, 28762306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 28862306a36Sopenharmony_ci}; 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll4_gpll0_gpll6_gpll0_div2_map[] = { 29162306a36Sopenharmony_ci { P_XO, 0 }, 29262306a36Sopenharmony_ci { P_GPLL4, 1 }, 29362306a36Sopenharmony_ci { P_GPLL0, 2 }, 29462306a36Sopenharmony_ci { P_GPLL6, 3 }, 29562306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 29662306a36Sopenharmony_ci}; 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_cistatic struct clk_rcg2 qdss_tsctr_clk_src = { 29962306a36Sopenharmony_ci .cmd_rcgr = 0x29064, 30062306a36Sopenharmony_ci .freq_tbl = ftbl_qdss_tsctr_clk_src, 30162306a36Sopenharmony_ci .hid_width = 5, 30262306a36Sopenharmony_ci .parent_map = gcc_xo_gpll4_gpll0_gpll6_gpll0_div2_map, 30362306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 30462306a36Sopenharmony_ci .name = "qdss_tsctr_clk_src", 30562306a36Sopenharmony_ci .parent_data = gcc_xo_gpll4_gpll0_gpll6_gpll0_div2, 30662306a36Sopenharmony_ci .num_parents = 5, 30762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 30862306a36Sopenharmony_ci }, 30962306a36Sopenharmony_ci}; 31062306a36Sopenharmony_ci 31162306a36Sopenharmony_cistatic struct clk_fixed_factor qdss_dap_sync_clk_src = { 31262306a36Sopenharmony_ci .mult = 1, 31362306a36Sopenharmony_ci .div = 4, 31462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 31562306a36Sopenharmony_ci .name = "qdss_dap_sync_clk_src", 31662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 31762306a36Sopenharmony_ci &qdss_tsctr_clk_src.clkr.hw }, 31862306a36Sopenharmony_ci .num_parents = 1, 31962306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 32062306a36Sopenharmony_ci }, 32162306a36Sopenharmony_ci}; 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_qdss_at_clk_src[] = { 32462306a36Sopenharmony_ci F(66670000, P_GPLL0_DIV2, 6, 0, 0), 32562306a36Sopenharmony_ci F(240000000, P_GPLL4, 5, 0, 0), 32662306a36Sopenharmony_ci { } 32762306a36Sopenharmony_ci}; 32862306a36Sopenharmony_ci 32962306a36Sopenharmony_cistatic struct clk_rcg2 qdss_at_clk_src = { 33062306a36Sopenharmony_ci .cmd_rcgr = 0x2900c, 33162306a36Sopenharmony_ci .freq_tbl = ftbl_qdss_at_clk_src, 33262306a36Sopenharmony_ci .hid_width = 5, 33362306a36Sopenharmony_ci .parent_map = gcc_xo_gpll4_gpll0_gpll6_gpll0_div2_map, 33462306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 33562306a36Sopenharmony_ci .name = "qdss_at_clk_src", 33662306a36Sopenharmony_ci .parent_data = gcc_xo_gpll4_gpll0_gpll6_gpll0_div2, 33762306a36Sopenharmony_ci .num_parents = 5, 33862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 33962306a36Sopenharmony_ci }, 34062306a36Sopenharmony_ci}; 34162306a36Sopenharmony_ci 34262306a36Sopenharmony_cistatic struct clk_fixed_factor qdss_tsctr_div2_clk_src = { 34362306a36Sopenharmony_ci .mult = 1, 34462306a36Sopenharmony_ci .div = 2, 34562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 34662306a36Sopenharmony_ci .name = "qdss_tsctr_div2_clk_src", 34762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 34862306a36Sopenharmony_ci &qdss_tsctr_clk_src.clkr.hw }, 34962306a36Sopenharmony_ci .num_parents = 1, 35062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 35162306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 35262306a36Sopenharmony_ci }, 35362306a36Sopenharmony_ci}; 35462306a36Sopenharmony_ci 35562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_nss_ppe_clk_src[] = { 35662306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 35762306a36Sopenharmony_ci F(300000000, P_BIAS_PLL, 1, 0, 0), 35862306a36Sopenharmony_ci { } 35962306a36Sopenharmony_ci}; 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_bias_gpll0_gpll4_nss_ubi32[] = { 36262306a36Sopenharmony_ci { .fw_name = "xo" }, 36362306a36Sopenharmony_ci { .fw_name = "bias_pll_cc_clk" }, 36462306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 36562306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 36662306a36Sopenharmony_ci { .hw = &nss_crypto_pll.clkr.hw }, 36762306a36Sopenharmony_ci { .hw = &ubi32_pll.clkr.hw }, 36862306a36Sopenharmony_ci}; 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_cistatic const struct parent_map gcc_xo_bias_gpll0_gpll4_nss_ubi32_map[] = { 37162306a36Sopenharmony_ci { P_XO, 0 }, 37262306a36Sopenharmony_ci { P_BIAS_PLL, 1 }, 37362306a36Sopenharmony_ci { P_GPLL0, 2 }, 37462306a36Sopenharmony_ci { P_GPLL4, 3 }, 37562306a36Sopenharmony_ci { P_NSS_CRYPTO_PLL, 4 }, 37662306a36Sopenharmony_ci { P_UBI32_PLL, 5 }, 37762306a36Sopenharmony_ci}; 37862306a36Sopenharmony_ci 37962306a36Sopenharmony_cistatic struct clk_rcg2 nss_ppe_clk_src = { 38062306a36Sopenharmony_ci .cmd_rcgr = 0x68080, 38162306a36Sopenharmony_ci .freq_tbl = ftbl_nss_ppe_clk_src, 38262306a36Sopenharmony_ci .hid_width = 5, 38362306a36Sopenharmony_ci .parent_map = gcc_xo_bias_gpll0_gpll4_nss_ubi32_map, 38462306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 38562306a36Sopenharmony_ci .name = "nss_ppe_clk_src", 38662306a36Sopenharmony_ci .parent_data = gcc_xo_bias_gpll0_gpll4_nss_ubi32, 38762306a36Sopenharmony_ci .num_parents = 6, 38862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 38962306a36Sopenharmony_ci }, 39062306a36Sopenharmony_ci}; 39162306a36Sopenharmony_ci 39262306a36Sopenharmony_cistatic struct clk_branch gcc_xo_clk_src = { 39362306a36Sopenharmony_ci .halt_reg = 0x30018, 39462306a36Sopenharmony_ci .clkr = { 39562306a36Sopenharmony_ci .enable_reg = 0x30018, 39662306a36Sopenharmony_ci .enable_mask = BIT(1), 39762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 39862306a36Sopenharmony_ci .name = "gcc_xo_clk_src", 39962306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 40062306a36Sopenharmony_ci .fw_name = "xo", 40162306a36Sopenharmony_ci }, 40262306a36Sopenharmony_ci .num_parents = 1, 40362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 40462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 40562306a36Sopenharmony_ci }, 40662306a36Sopenharmony_ci }, 40762306a36Sopenharmony_ci}; 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_nss_ce_clk_src[] = { 41062306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 41162306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 41262306a36Sopenharmony_ci { } 41362306a36Sopenharmony_ci}; 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0[] = { 41662306a36Sopenharmony_ci { .fw_name = "xo" }, 41762306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 41862306a36Sopenharmony_ci}; 41962306a36Sopenharmony_ci 42062306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_map[] = { 42162306a36Sopenharmony_ci { P_XO, 0 }, 42262306a36Sopenharmony_ci { P_GPLL0, 1 }, 42362306a36Sopenharmony_ci}; 42462306a36Sopenharmony_ci 42562306a36Sopenharmony_cistatic struct clk_rcg2 nss_ce_clk_src = { 42662306a36Sopenharmony_ci .cmd_rcgr = 0x68098, 42762306a36Sopenharmony_ci .freq_tbl = ftbl_nss_ce_clk_src, 42862306a36Sopenharmony_ci .hid_width = 5, 42962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 43062306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 43162306a36Sopenharmony_ci .name = "nss_ce_clk_src", 43262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 43362306a36Sopenharmony_ci .num_parents = 2, 43462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 43562306a36Sopenharmony_ci }, 43662306a36Sopenharmony_ci}; 43762306a36Sopenharmony_ci 43862306a36Sopenharmony_cistatic struct clk_branch gcc_sleep_clk_src = { 43962306a36Sopenharmony_ci .halt_reg = 0x30000, 44062306a36Sopenharmony_ci .clkr = { 44162306a36Sopenharmony_ci .enable_reg = 0x30000, 44262306a36Sopenharmony_ci .enable_mask = BIT(1), 44362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 44462306a36Sopenharmony_ci .name = "gcc_sleep_clk_src", 44562306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data){ 44662306a36Sopenharmony_ci .fw_name = "sleep_clk", 44762306a36Sopenharmony_ci }, 44862306a36Sopenharmony_ci .num_parents = 1, 44962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 45062306a36Sopenharmony_ci }, 45162306a36Sopenharmony_ci }, 45262306a36Sopenharmony_ci}; 45362306a36Sopenharmony_ci 45462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_snoc_nssnoc_bfdcd_clk_src[] = { 45562306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 45662306a36Sopenharmony_ci F(50000000, P_GPLL0_DIV2, 8, 0, 0), 45762306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 45862306a36Sopenharmony_ci F(133333333, P_GPLL0, 6, 0, 0), 45962306a36Sopenharmony_ci F(160000000, P_GPLL0, 5, 0, 0), 46062306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 46162306a36Sopenharmony_ci F(266666667, P_GPLL0, 3, 0, 0), 46262306a36Sopenharmony_ci { } 46362306a36Sopenharmony_ci}; 46462306a36Sopenharmony_ci 46562306a36Sopenharmony_cistatic const struct clk_parent_data 46662306a36Sopenharmony_ci gcc_xo_gpll0_gpll6_gpll0_out_main_div2[] = { 46762306a36Sopenharmony_ci { .fw_name = "xo" }, 46862306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 46962306a36Sopenharmony_ci { .hw = &gpll6.clkr.hw }, 47062306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 47162306a36Sopenharmony_ci}; 47262306a36Sopenharmony_ci 47362306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll6_gpll0_out_main_div2_map[] = { 47462306a36Sopenharmony_ci { P_XO, 0 }, 47562306a36Sopenharmony_ci { P_GPLL0, 1 }, 47662306a36Sopenharmony_ci { P_GPLL6, 2 }, 47762306a36Sopenharmony_ci { P_GPLL0_DIV2, 3 }, 47862306a36Sopenharmony_ci}; 47962306a36Sopenharmony_ci 48062306a36Sopenharmony_cistatic struct clk_rcg2 snoc_nssnoc_bfdcd_clk_src = { 48162306a36Sopenharmony_ci .cmd_rcgr = 0x76054, 48262306a36Sopenharmony_ci .freq_tbl = ftbl_snoc_nssnoc_bfdcd_clk_src, 48362306a36Sopenharmony_ci .hid_width = 5, 48462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll6_gpll0_out_main_div2_map, 48562306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 48662306a36Sopenharmony_ci .name = "snoc_nssnoc_bfdcd_clk_src", 48762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll6_gpll0_out_main_div2, 48862306a36Sopenharmony_ci .num_parents = 4, 48962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 49062306a36Sopenharmony_ci }, 49162306a36Sopenharmony_ci}; 49262306a36Sopenharmony_ci 49362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_apss_ahb_clk_src[] = { 49462306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 49562306a36Sopenharmony_ci F(25000000, P_GPLL0_DIV2, 16, 0, 0), 49662306a36Sopenharmony_ci F(50000000, P_GPLL0, 16, 0, 0), 49762306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 49862306a36Sopenharmony_ci { } 49962306a36Sopenharmony_ci}; 50062306a36Sopenharmony_ci 50162306a36Sopenharmony_cistatic struct clk_rcg2 apss_ahb_clk_src = { 50262306a36Sopenharmony_ci .cmd_rcgr = 0x46000, 50362306a36Sopenharmony_ci .freq_tbl = ftbl_apss_ahb_clk_src, 50462306a36Sopenharmony_ci .hid_width = 5, 50562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 50662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 50762306a36Sopenharmony_ci .name = "apss_ahb_clk_src", 50862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 50962306a36Sopenharmony_ci .num_parents = 3, 51062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 51162306a36Sopenharmony_ci }, 51262306a36Sopenharmony_ci}; 51362306a36Sopenharmony_ci 51462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_nss_port5_rx_clk_src[] = { 51562306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 51662306a36Sopenharmony_ci F(25000000, P_UNIPHY1_RX, 12.5, 0, 0), 51762306a36Sopenharmony_ci F(25000000, P_UNIPHY0_RX, 5, 0, 0), 51862306a36Sopenharmony_ci F(78125000, P_UNIPHY1_RX, 4, 0, 0), 51962306a36Sopenharmony_ci F(125000000, P_UNIPHY1_RX, 2.5, 0, 0), 52062306a36Sopenharmony_ci F(125000000, P_UNIPHY0_RX, 1, 0, 0), 52162306a36Sopenharmony_ci F(156250000, P_UNIPHY1_RX, 2, 0, 0), 52262306a36Sopenharmony_ci F(312500000, P_UNIPHY1_RX, 1, 0, 0), 52362306a36Sopenharmony_ci { } 52462306a36Sopenharmony_ci}; 52562306a36Sopenharmony_ci 52662306a36Sopenharmony_cistatic const struct clk_parent_data 52762306a36Sopenharmony_cigcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias[] = { 52862306a36Sopenharmony_ci { .fw_name = "xo" }, 52962306a36Sopenharmony_ci { .fw_name = "uniphy0_gcc_rx_clk" }, 53062306a36Sopenharmony_ci { .fw_name = "uniphy0_gcc_tx_clk" }, 53162306a36Sopenharmony_ci { .fw_name = "uniphy1_gcc_rx_clk" }, 53262306a36Sopenharmony_ci { .fw_name = "uniphy1_gcc_tx_clk" }, 53362306a36Sopenharmony_ci { .hw = &ubi32_pll.clkr.hw }, 53462306a36Sopenharmony_ci { .fw_name = "bias_pll_cc_clk" }, 53562306a36Sopenharmony_ci}; 53662306a36Sopenharmony_ci 53762306a36Sopenharmony_cistatic const struct parent_map 53862306a36Sopenharmony_cigcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias_map[] = { 53962306a36Sopenharmony_ci { P_XO, 0 }, 54062306a36Sopenharmony_ci { P_UNIPHY0_RX, 1 }, 54162306a36Sopenharmony_ci { P_UNIPHY0_TX, 2 }, 54262306a36Sopenharmony_ci { P_UNIPHY1_RX, 3 }, 54362306a36Sopenharmony_ci { P_UNIPHY1_TX, 4 }, 54462306a36Sopenharmony_ci { P_UBI32_PLL, 5 }, 54562306a36Sopenharmony_ci { P_BIAS_PLL, 6 }, 54662306a36Sopenharmony_ci}; 54762306a36Sopenharmony_ci 54862306a36Sopenharmony_cistatic struct clk_rcg2 nss_port5_rx_clk_src = { 54962306a36Sopenharmony_ci .cmd_rcgr = 0x68060, 55062306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port5_rx_clk_src, 55162306a36Sopenharmony_ci .hid_width = 5, 55262306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias_map, 55362306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 55462306a36Sopenharmony_ci .name = "nss_port5_rx_clk_src", 55562306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias, 55662306a36Sopenharmony_ci .num_parents = 7, 55762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 55862306a36Sopenharmony_ci }, 55962306a36Sopenharmony_ci}; 56062306a36Sopenharmony_ci 56162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_nss_port5_tx_clk_src[] = { 56262306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 56362306a36Sopenharmony_ci F(25000000, P_UNIPHY1_TX, 12.5, 0, 0), 56462306a36Sopenharmony_ci F(25000000, P_UNIPHY0_TX, 5, 0, 0), 56562306a36Sopenharmony_ci F(78125000, P_UNIPHY1_TX, 4, 0, 0), 56662306a36Sopenharmony_ci F(125000000, P_UNIPHY1_TX, 2.5, 0, 0), 56762306a36Sopenharmony_ci F(125000000, P_UNIPHY0_TX, 1, 0, 0), 56862306a36Sopenharmony_ci F(156250000, P_UNIPHY1_TX, 2, 0, 0), 56962306a36Sopenharmony_ci F(312500000, P_UNIPHY1_TX, 1, 0, 0), 57062306a36Sopenharmony_ci { } 57162306a36Sopenharmony_ci}; 57262306a36Sopenharmony_ci 57362306a36Sopenharmony_cistatic const struct clk_parent_data 57462306a36Sopenharmony_cigcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias[] = { 57562306a36Sopenharmony_ci { .fw_name = "xo" }, 57662306a36Sopenharmony_ci { .fw_name = "uniphy0_gcc_tx_clk" }, 57762306a36Sopenharmony_ci { .fw_name = "uniphy0_gcc_rx_clk" }, 57862306a36Sopenharmony_ci { .fw_name = "uniphy1_gcc_tx_clk" }, 57962306a36Sopenharmony_ci { .fw_name = "uniphy1_gcc_rx_clk" }, 58062306a36Sopenharmony_ci { .hw = &ubi32_pll.clkr.hw }, 58162306a36Sopenharmony_ci { .fw_name = "bias_pll_cc_clk" }, 58262306a36Sopenharmony_ci}; 58362306a36Sopenharmony_ci 58462306a36Sopenharmony_cistatic const struct parent_map 58562306a36Sopenharmony_cigcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias_map[] = { 58662306a36Sopenharmony_ci { P_XO, 0 }, 58762306a36Sopenharmony_ci { P_UNIPHY0_TX, 1 }, 58862306a36Sopenharmony_ci { P_UNIPHY0_RX, 2 }, 58962306a36Sopenharmony_ci { P_UNIPHY1_TX, 3 }, 59062306a36Sopenharmony_ci { P_UNIPHY1_RX, 4 }, 59162306a36Sopenharmony_ci { P_UBI32_PLL, 5 }, 59262306a36Sopenharmony_ci { P_BIAS_PLL, 6 }, 59362306a36Sopenharmony_ci}; 59462306a36Sopenharmony_ci 59562306a36Sopenharmony_cistatic struct clk_rcg2 nss_port5_tx_clk_src = { 59662306a36Sopenharmony_ci .cmd_rcgr = 0x68068, 59762306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port5_tx_clk_src, 59862306a36Sopenharmony_ci .hid_width = 5, 59962306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias_map, 60062306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 60162306a36Sopenharmony_ci .name = "nss_port5_tx_clk_src", 60262306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias, 60362306a36Sopenharmony_ci .num_parents = 7, 60462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 60562306a36Sopenharmony_ci }, 60662306a36Sopenharmony_ci}; 60762306a36Sopenharmony_ci 60862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcie_axi_clk_src[] = { 60962306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 61062306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 61162306a36Sopenharmony_ci F(240000000, P_GPLL4, 5, 0, 0), 61262306a36Sopenharmony_ci { } 61362306a36Sopenharmony_ci}; 61462306a36Sopenharmony_ci 61562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcie_rchng_clk_src[] = { 61662306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 61762306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 61862306a36Sopenharmony_ci { } 61962306a36Sopenharmony_ci}; 62062306a36Sopenharmony_ci 62162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll4[] = { 62262306a36Sopenharmony_ci { .fw_name = "xo" }, 62362306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 62462306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 62562306a36Sopenharmony_ci}; 62662306a36Sopenharmony_ci 62762306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll4_map[] = { 62862306a36Sopenharmony_ci { P_XO, 0 }, 62962306a36Sopenharmony_ci { P_GPLL0, 1 }, 63062306a36Sopenharmony_ci { P_GPLL4, 2 }, 63162306a36Sopenharmony_ci}; 63262306a36Sopenharmony_ci 63362306a36Sopenharmony_cistatic struct clk_rcg2 pcie0_axi_clk_src = { 63462306a36Sopenharmony_ci .cmd_rcgr = 0x75054, 63562306a36Sopenharmony_ci .freq_tbl = ftbl_pcie_axi_clk_src, 63662306a36Sopenharmony_ci .hid_width = 5, 63762306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_map, 63862306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 63962306a36Sopenharmony_ci .name = "pcie0_axi_clk_src", 64062306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4, 64162306a36Sopenharmony_ci .num_parents = 3, 64262306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 64362306a36Sopenharmony_ci }, 64462306a36Sopenharmony_ci}; 64562306a36Sopenharmony_ci 64662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb0_master_clk_src[] = { 64762306a36Sopenharmony_ci F(80000000, P_GPLL0_DIV2, 5, 0, 0), 64862306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 64962306a36Sopenharmony_ci F(133330000, P_GPLL0, 6, 0, 0), 65062306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 65162306a36Sopenharmony_ci { } 65262306a36Sopenharmony_ci}; 65362306a36Sopenharmony_ci 65462306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_out_main_div2_gpll0[] = { 65562306a36Sopenharmony_ci { .fw_name = "xo" }, 65662306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 65762306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 65862306a36Sopenharmony_ci}; 65962306a36Sopenharmony_ci 66062306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_out_main_div2_gpll0_map[] = { 66162306a36Sopenharmony_ci { P_XO, 0 }, 66262306a36Sopenharmony_ci { P_GPLL0_DIV2, 2 }, 66362306a36Sopenharmony_ci { P_GPLL0, 1 }, 66462306a36Sopenharmony_ci}; 66562306a36Sopenharmony_ci 66662306a36Sopenharmony_cistatic struct clk_rcg2 usb0_master_clk_src = { 66762306a36Sopenharmony_ci .cmd_rcgr = 0x3e00c, 66862306a36Sopenharmony_ci .freq_tbl = ftbl_usb0_master_clk_src, 66962306a36Sopenharmony_ci .mnd_width = 8, 67062306a36Sopenharmony_ci .hid_width = 5, 67162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_out_main_div2_gpll0_map, 67262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 67362306a36Sopenharmony_ci .name = "usb0_master_clk_src", 67462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_out_main_div2_gpll0, 67562306a36Sopenharmony_ci .num_parents = 3, 67662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 67762306a36Sopenharmony_ci }, 67862306a36Sopenharmony_ci}; 67962306a36Sopenharmony_ci 68062306a36Sopenharmony_cistatic struct clk_regmap_div apss_ahb_postdiv_clk_src = { 68162306a36Sopenharmony_ci .reg = 0x46018, 68262306a36Sopenharmony_ci .shift = 4, 68362306a36Sopenharmony_ci .width = 4, 68462306a36Sopenharmony_ci .clkr = { 68562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 68662306a36Sopenharmony_ci .name = "apss_ahb_postdiv_clk_src", 68762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 68862306a36Sopenharmony_ci &apss_ahb_clk_src.clkr.hw }, 68962306a36Sopenharmony_ci .num_parents = 1, 69062306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 69162306a36Sopenharmony_ci }, 69262306a36Sopenharmony_ci }, 69362306a36Sopenharmony_ci}; 69462306a36Sopenharmony_ci 69562306a36Sopenharmony_cistatic struct clk_fixed_factor gcc_xo_div4_clk_src = { 69662306a36Sopenharmony_ci .mult = 1, 69762306a36Sopenharmony_ci .div = 4, 69862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 69962306a36Sopenharmony_ci .name = "gcc_xo_div4_clk_src", 70062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 70162306a36Sopenharmony_ci &gcc_xo_clk_src.clkr.hw }, 70262306a36Sopenharmony_ci .num_parents = 1, 70362306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 70462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 70562306a36Sopenharmony_ci }, 70662306a36Sopenharmony_ci}; 70762306a36Sopenharmony_ci 70862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_nss_port1_rx_clk_src[] = { 70962306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 71062306a36Sopenharmony_ci F(25000000, P_UNIPHY0_RX, 5, 0, 0), 71162306a36Sopenharmony_ci F(125000000, P_UNIPHY0_RX, 1, 0, 0), 71262306a36Sopenharmony_ci { } 71362306a36Sopenharmony_ci}; 71462306a36Sopenharmony_ci 71562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_uniphy0_rx_tx_ubi32_bias[] = { 71662306a36Sopenharmony_ci { .fw_name = "xo" }, 71762306a36Sopenharmony_ci { .fw_name = "uniphy0_gcc_rx_clk" }, 71862306a36Sopenharmony_ci { .fw_name = "uniphy0_gcc_tx_clk" }, 71962306a36Sopenharmony_ci { .hw = &ubi32_pll.clkr.hw }, 72062306a36Sopenharmony_ci { .fw_name = "bias_pll_cc_clk" }, 72162306a36Sopenharmony_ci}; 72262306a36Sopenharmony_ci 72362306a36Sopenharmony_cistatic const struct parent_map gcc_xo_uniphy0_rx_tx_ubi32_bias_map[] = { 72462306a36Sopenharmony_ci { P_XO, 0 }, 72562306a36Sopenharmony_ci { P_UNIPHY0_RX, 1 }, 72662306a36Sopenharmony_ci { P_UNIPHY0_TX, 2 }, 72762306a36Sopenharmony_ci { P_UBI32_PLL, 5 }, 72862306a36Sopenharmony_ci { P_BIAS_PLL, 6 }, 72962306a36Sopenharmony_ci}; 73062306a36Sopenharmony_ci 73162306a36Sopenharmony_cistatic struct clk_rcg2 nss_port1_rx_clk_src = { 73262306a36Sopenharmony_ci .cmd_rcgr = 0x68020, 73362306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port1_rx_clk_src, 73462306a36Sopenharmony_ci .hid_width = 5, 73562306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_rx_tx_ubi32_bias_map, 73662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 73762306a36Sopenharmony_ci .name = "nss_port1_rx_clk_src", 73862306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_rx_tx_ubi32_bias, 73962306a36Sopenharmony_ci .num_parents = 5, 74062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 74162306a36Sopenharmony_ci }, 74262306a36Sopenharmony_ci}; 74362306a36Sopenharmony_ci 74462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_nss_port1_tx_clk_src[] = { 74562306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 74662306a36Sopenharmony_ci F(25000000, P_UNIPHY0_TX, 5, 0, 0), 74762306a36Sopenharmony_ci F(125000000, P_UNIPHY0_TX, 1, 0, 0), 74862306a36Sopenharmony_ci { } 74962306a36Sopenharmony_ci}; 75062306a36Sopenharmony_ci 75162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_uniphy0_tx_rx_ubi32_bias[] = { 75262306a36Sopenharmony_ci { .fw_name = "xo" }, 75362306a36Sopenharmony_ci { .fw_name = "uniphy0_gcc_tx_clk" }, 75462306a36Sopenharmony_ci { .fw_name = "uniphy0_gcc_rx_clk" }, 75562306a36Sopenharmony_ci { .hw = &ubi32_pll.clkr.hw }, 75662306a36Sopenharmony_ci { .fw_name = "bias_pll_cc_clk" }, 75762306a36Sopenharmony_ci}; 75862306a36Sopenharmony_ci 75962306a36Sopenharmony_cistatic const struct parent_map gcc_xo_uniphy0_tx_rx_ubi32_bias_map[] = { 76062306a36Sopenharmony_ci { P_XO, 0 }, 76162306a36Sopenharmony_ci { P_UNIPHY0_TX, 1 }, 76262306a36Sopenharmony_ci { P_UNIPHY0_RX, 2 }, 76362306a36Sopenharmony_ci { P_UBI32_PLL, 5 }, 76462306a36Sopenharmony_ci { P_BIAS_PLL, 6 }, 76562306a36Sopenharmony_ci}; 76662306a36Sopenharmony_ci 76762306a36Sopenharmony_cistatic struct clk_rcg2 nss_port1_tx_clk_src = { 76862306a36Sopenharmony_ci .cmd_rcgr = 0x68028, 76962306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port1_tx_clk_src, 77062306a36Sopenharmony_ci .hid_width = 5, 77162306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_tx_rx_ubi32_bias_map, 77262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 77362306a36Sopenharmony_ci .name = "nss_port1_tx_clk_src", 77462306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_tx_rx_ubi32_bias, 77562306a36Sopenharmony_ci .num_parents = 5, 77662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 77762306a36Sopenharmony_ci }, 77862306a36Sopenharmony_ci}; 77962306a36Sopenharmony_ci 78062306a36Sopenharmony_cistatic struct clk_rcg2 nss_port2_rx_clk_src = { 78162306a36Sopenharmony_ci .cmd_rcgr = 0x68030, 78262306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port1_rx_clk_src, 78362306a36Sopenharmony_ci .hid_width = 5, 78462306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_rx_tx_ubi32_bias_map, 78562306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 78662306a36Sopenharmony_ci .name = "nss_port2_rx_clk_src", 78762306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_rx_tx_ubi32_bias, 78862306a36Sopenharmony_ci .num_parents = 5, 78962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 79062306a36Sopenharmony_ci }, 79162306a36Sopenharmony_ci}; 79262306a36Sopenharmony_ci 79362306a36Sopenharmony_cistatic struct clk_rcg2 nss_port2_tx_clk_src = { 79462306a36Sopenharmony_ci .cmd_rcgr = 0x68038, 79562306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port1_tx_clk_src, 79662306a36Sopenharmony_ci .hid_width = 5, 79762306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_tx_rx_ubi32_bias_map, 79862306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 79962306a36Sopenharmony_ci .name = "nss_port2_tx_clk_src", 80062306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_tx_rx_ubi32_bias, 80162306a36Sopenharmony_ci .num_parents = 5, 80262306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 80362306a36Sopenharmony_ci }, 80462306a36Sopenharmony_ci}; 80562306a36Sopenharmony_ci 80662306a36Sopenharmony_cistatic struct clk_rcg2 nss_port3_rx_clk_src = { 80762306a36Sopenharmony_ci .cmd_rcgr = 0x68040, 80862306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port1_rx_clk_src, 80962306a36Sopenharmony_ci .hid_width = 5, 81062306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_rx_tx_ubi32_bias_map, 81162306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 81262306a36Sopenharmony_ci .name = "nss_port3_rx_clk_src", 81362306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_rx_tx_ubi32_bias, 81462306a36Sopenharmony_ci .num_parents = 5, 81562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 81662306a36Sopenharmony_ci }, 81762306a36Sopenharmony_ci}; 81862306a36Sopenharmony_ci 81962306a36Sopenharmony_cistatic struct clk_rcg2 nss_port3_tx_clk_src = { 82062306a36Sopenharmony_ci .cmd_rcgr = 0x68048, 82162306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port1_tx_clk_src, 82262306a36Sopenharmony_ci .hid_width = 5, 82362306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_tx_rx_ubi32_bias_map, 82462306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 82562306a36Sopenharmony_ci .name = "nss_port3_tx_clk_src", 82662306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_tx_rx_ubi32_bias, 82762306a36Sopenharmony_ci .num_parents = 5, 82862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 82962306a36Sopenharmony_ci }, 83062306a36Sopenharmony_ci}; 83162306a36Sopenharmony_ci 83262306a36Sopenharmony_cistatic struct clk_rcg2 nss_port4_rx_clk_src = { 83362306a36Sopenharmony_ci .cmd_rcgr = 0x68050, 83462306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port1_rx_clk_src, 83562306a36Sopenharmony_ci .hid_width = 5, 83662306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_rx_tx_ubi32_bias_map, 83762306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 83862306a36Sopenharmony_ci .name = "nss_port4_rx_clk_src", 83962306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_rx_tx_ubi32_bias, 84062306a36Sopenharmony_ci .num_parents = 5, 84162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 84262306a36Sopenharmony_ci }, 84362306a36Sopenharmony_ci}; 84462306a36Sopenharmony_ci 84562306a36Sopenharmony_cistatic struct clk_rcg2 nss_port4_tx_clk_src = { 84662306a36Sopenharmony_ci .cmd_rcgr = 0x68058, 84762306a36Sopenharmony_ci .freq_tbl = ftbl_nss_port1_tx_clk_src, 84862306a36Sopenharmony_ci .hid_width = 5, 84962306a36Sopenharmony_ci .parent_map = gcc_xo_uniphy0_tx_rx_ubi32_bias_map, 85062306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 85162306a36Sopenharmony_ci .name = "nss_port4_tx_clk_src", 85262306a36Sopenharmony_ci .parent_data = gcc_xo_uniphy0_tx_rx_ubi32_bias, 85362306a36Sopenharmony_ci .num_parents = 5, 85462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 85562306a36Sopenharmony_ci }, 85662306a36Sopenharmony_ci}; 85762306a36Sopenharmony_ci 85862306a36Sopenharmony_cistatic struct clk_regmap_div nss_port5_rx_div_clk_src = { 85962306a36Sopenharmony_ci .reg = 0x68440, 86062306a36Sopenharmony_ci .shift = 0, 86162306a36Sopenharmony_ci .width = 4, 86262306a36Sopenharmony_ci .clkr = { 86362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 86462306a36Sopenharmony_ci .name = "nss_port5_rx_div_clk_src", 86562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 86662306a36Sopenharmony_ci &nss_port5_rx_clk_src.clkr.hw }, 86762306a36Sopenharmony_ci .num_parents = 1, 86862306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 86962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 87062306a36Sopenharmony_ci }, 87162306a36Sopenharmony_ci }, 87262306a36Sopenharmony_ci}; 87362306a36Sopenharmony_ci 87462306a36Sopenharmony_cistatic struct clk_regmap_div nss_port5_tx_div_clk_src = { 87562306a36Sopenharmony_ci .reg = 0x68444, 87662306a36Sopenharmony_ci .shift = 0, 87762306a36Sopenharmony_ci .width = 4, 87862306a36Sopenharmony_ci .clkr = { 87962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 88062306a36Sopenharmony_ci .name = "nss_port5_tx_div_clk_src", 88162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 88262306a36Sopenharmony_ci &nss_port5_tx_clk_src.clkr.hw }, 88362306a36Sopenharmony_ci .num_parents = 1, 88462306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 88562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 88662306a36Sopenharmony_ci }, 88762306a36Sopenharmony_ci }, 88862306a36Sopenharmony_ci}; 88962306a36Sopenharmony_ci 89062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_apss_axi_clk_src[] = { 89162306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 89262306a36Sopenharmony_ci F(100000000, P_GPLL0_DIV2, 4, 0, 0), 89362306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 89462306a36Sopenharmony_ci F(308570000, P_GPLL6, 3.5, 0, 0), 89562306a36Sopenharmony_ci F(400000000, P_GPLL0, 2, 0, 0), 89662306a36Sopenharmony_ci F(533000000, P_GPLL0, 1.5, 0, 0), 89762306a36Sopenharmony_ci { } 89862306a36Sopenharmony_ci}; 89962306a36Sopenharmony_ci 90062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll6_ubi32_gpll0_div2[] = { 90162306a36Sopenharmony_ci { .fw_name = "xo" }, 90262306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 90362306a36Sopenharmony_ci { .hw = &gpll6.clkr.hw }, 90462306a36Sopenharmony_ci { .hw = &ubi32_pll.clkr.hw }, 90562306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 90662306a36Sopenharmony_ci}; 90762306a36Sopenharmony_ci 90862306a36Sopenharmony_cistatic const struct parent_map 90962306a36Sopenharmony_cigcc_xo_gpll0_gpll6_ubi32_gpll0_div2_map[] = { 91062306a36Sopenharmony_ci { P_XO, 0 }, 91162306a36Sopenharmony_ci { P_GPLL0, 1 }, 91262306a36Sopenharmony_ci { P_GPLL6, 2 }, 91362306a36Sopenharmony_ci { P_UBI32_PLL, 3 }, 91462306a36Sopenharmony_ci { P_GPLL0_DIV2, 6 }, 91562306a36Sopenharmony_ci}; 91662306a36Sopenharmony_ci 91762306a36Sopenharmony_cistatic struct clk_rcg2 apss_axi_clk_src = { 91862306a36Sopenharmony_ci .cmd_rcgr = 0x38048, 91962306a36Sopenharmony_ci .freq_tbl = ftbl_apss_axi_clk_src, 92062306a36Sopenharmony_ci .hid_width = 5, 92162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll6_ubi32_gpll0_div2_map, 92262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 92362306a36Sopenharmony_ci .name = "apss_axi_clk_src", 92462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll6_ubi32_gpll0_div2, 92562306a36Sopenharmony_ci .num_parents = 5, 92662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 92762306a36Sopenharmony_ci }, 92862306a36Sopenharmony_ci}; 92962306a36Sopenharmony_ci 93062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_nss_crypto_clk_src[] = { 93162306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 93262306a36Sopenharmony_ci F(300000000, P_NSS_CRYPTO_PLL, 2, 0, 0), 93362306a36Sopenharmony_ci { } 93462306a36Sopenharmony_ci}; 93562306a36Sopenharmony_ci 93662306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_nss_crypto_pll_gpll0[] = { 93762306a36Sopenharmony_ci { .fw_name = "xo" }, 93862306a36Sopenharmony_ci { .hw = &nss_crypto_pll.clkr.hw }, 93962306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 94062306a36Sopenharmony_ci}; 94162306a36Sopenharmony_ci 94262306a36Sopenharmony_cistatic const struct parent_map gcc_xo_nss_crypto_pll_gpll0_map[] = { 94362306a36Sopenharmony_ci { P_XO, 0 }, 94462306a36Sopenharmony_ci { P_NSS_CRYPTO_PLL, 1 }, 94562306a36Sopenharmony_ci { P_GPLL0, 2 }, 94662306a36Sopenharmony_ci}; 94762306a36Sopenharmony_ci 94862306a36Sopenharmony_cistatic struct clk_rcg2 nss_crypto_clk_src = { 94962306a36Sopenharmony_ci .cmd_rcgr = 0x68144, 95062306a36Sopenharmony_ci .freq_tbl = ftbl_nss_crypto_clk_src, 95162306a36Sopenharmony_ci .mnd_width = 16, 95262306a36Sopenharmony_ci .hid_width = 5, 95362306a36Sopenharmony_ci .parent_map = gcc_xo_nss_crypto_pll_gpll0_map, 95462306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 95562306a36Sopenharmony_ci .name = "nss_crypto_clk_src", 95662306a36Sopenharmony_ci .parent_data = gcc_xo_nss_crypto_pll_gpll0, 95762306a36Sopenharmony_ci .num_parents = 3, 95862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 95962306a36Sopenharmony_ci }, 96062306a36Sopenharmony_ci}; 96162306a36Sopenharmony_ci 96262306a36Sopenharmony_cistatic struct clk_regmap_div nss_port1_rx_div_clk_src = { 96362306a36Sopenharmony_ci .reg = 0x68400, 96462306a36Sopenharmony_ci .shift = 0, 96562306a36Sopenharmony_ci .width = 4, 96662306a36Sopenharmony_ci .clkr = { 96762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 96862306a36Sopenharmony_ci .name = "nss_port1_rx_div_clk_src", 96962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 97062306a36Sopenharmony_ci &nss_port1_rx_clk_src.clkr.hw }, 97162306a36Sopenharmony_ci .num_parents = 1, 97262306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 97362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 97462306a36Sopenharmony_ci }, 97562306a36Sopenharmony_ci }, 97662306a36Sopenharmony_ci}; 97762306a36Sopenharmony_ci 97862306a36Sopenharmony_cistatic struct clk_regmap_div nss_port1_tx_div_clk_src = { 97962306a36Sopenharmony_ci .reg = 0x68404, 98062306a36Sopenharmony_ci .shift = 0, 98162306a36Sopenharmony_ci .width = 4, 98262306a36Sopenharmony_ci .clkr = { 98362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 98462306a36Sopenharmony_ci .name = "nss_port1_tx_div_clk_src", 98562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 98662306a36Sopenharmony_ci &nss_port1_tx_clk_src.clkr.hw }, 98762306a36Sopenharmony_ci .num_parents = 1, 98862306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 98962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 99062306a36Sopenharmony_ci }, 99162306a36Sopenharmony_ci }, 99262306a36Sopenharmony_ci}; 99362306a36Sopenharmony_ci 99462306a36Sopenharmony_cistatic struct clk_regmap_div nss_port2_rx_div_clk_src = { 99562306a36Sopenharmony_ci .reg = 0x68410, 99662306a36Sopenharmony_ci .shift = 0, 99762306a36Sopenharmony_ci .width = 4, 99862306a36Sopenharmony_ci .clkr = { 99962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 100062306a36Sopenharmony_ci .name = "nss_port2_rx_div_clk_src", 100162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 100262306a36Sopenharmony_ci &nss_port2_rx_clk_src.clkr.hw }, 100362306a36Sopenharmony_ci .num_parents = 1, 100462306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 100562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 100662306a36Sopenharmony_ci }, 100762306a36Sopenharmony_ci }, 100862306a36Sopenharmony_ci}; 100962306a36Sopenharmony_ci 101062306a36Sopenharmony_cistatic struct clk_regmap_div nss_port2_tx_div_clk_src = { 101162306a36Sopenharmony_ci .reg = 0x68414, 101262306a36Sopenharmony_ci .shift = 0, 101362306a36Sopenharmony_ci .width = 4, 101462306a36Sopenharmony_ci .clkr = { 101562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 101662306a36Sopenharmony_ci .name = "nss_port2_tx_div_clk_src", 101762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 101862306a36Sopenharmony_ci &nss_port2_tx_clk_src.clkr.hw }, 101962306a36Sopenharmony_ci .num_parents = 1, 102062306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 102162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 102262306a36Sopenharmony_ci }, 102362306a36Sopenharmony_ci }, 102462306a36Sopenharmony_ci}; 102562306a36Sopenharmony_ci 102662306a36Sopenharmony_cistatic struct clk_regmap_div nss_port3_rx_div_clk_src = { 102762306a36Sopenharmony_ci .reg = 0x68420, 102862306a36Sopenharmony_ci .shift = 0, 102962306a36Sopenharmony_ci .width = 4, 103062306a36Sopenharmony_ci .clkr = { 103162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 103262306a36Sopenharmony_ci .name = "nss_port3_rx_div_clk_src", 103362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 103462306a36Sopenharmony_ci &nss_port3_rx_clk_src.clkr.hw }, 103562306a36Sopenharmony_ci .num_parents = 1, 103662306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 103762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 103862306a36Sopenharmony_ci }, 103962306a36Sopenharmony_ci }, 104062306a36Sopenharmony_ci}; 104162306a36Sopenharmony_ci 104262306a36Sopenharmony_cistatic struct clk_regmap_div nss_port3_tx_div_clk_src = { 104362306a36Sopenharmony_ci .reg = 0x68424, 104462306a36Sopenharmony_ci .shift = 0, 104562306a36Sopenharmony_ci .width = 4, 104662306a36Sopenharmony_ci .clkr = { 104762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 104862306a36Sopenharmony_ci .name = "nss_port3_tx_div_clk_src", 104962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 105062306a36Sopenharmony_ci &nss_port3_tx_clk_src.clkr.hw }, 105162306a36Sopenharmony_ci .num_parents = 1, 105262306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 105362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 105462306a36Sopenharmony_ci }, 105562306a36Sopenharmony_ci }, 105662306a36Sopenharmony_ci}; 105762306a36Sopenharmony_ci 105862306a36Sopenharmony_cistatic struct clk_regmap_div nss_port4_rx_div_clk_src = { 105962306a36Sopenharmony_ci .reg = 0x68430, 106062306a36Sopenharmony_ci .shift = 0, 106162306a36Sopenharmony_ci .width = 4, 106262306a36Sopenharmony_ci .clkr = { 106362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 106462306a36Sopenharmony_ci .name = "nss_port4_rx_div_clk_src", 106562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 106662306a36Sopenharmony_ci &nss_port4_rx_clk_src.clkr.hw }, 106762306a36Sopenharmony_ci .num_parents = 1, 106862306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 106962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 107062306a36Sopenharmony_ci }, 107162306a36Sopenharmony_ci }, 107262306a36Sopenharmony_ci}; 107362306a36Sopenharmony_ci 107462306a36Sopenharmony_cistatic struct clk_regmap_div nss_port4_tx_div_clk_src = { 107562306a36Sopenharmony_ci .reg = 0x68434, 107662306a36Sopenharmony_ci .shift = 0, 107762306a36Sopenharmony_ci .width = 4, 107862306a36Sopenharmony_ci .clkr = { 107962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 108062306a36Sopenharmony_ci .name = "nss_port4_tx_div_clk_src", 108162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 108262306a36Sopenharmony_ci &nss_port4_tx_clk_src.clkr.hw }, 108362306a36Sopenharmony_ci .num_parents = 1, 108462306a36Sopenharmony_ci .ops = &clk_regmap_div_ops, 108562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 108662306a36Sopenharmony_ci }, 108762306a36Sopenharmony_ci }, 108862306a36Sopenharmony_ci}; 108962306a36Sopenharmony_ci 109062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_nss_ubi_clk_src[] = { 109162306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 109262306a36Sopenharmony_ci F(149760000, P_UBI32_PLL, 10, 0, 0), 109362306a36Sopenharmony_ci F(187200000, P_UBI32_PLL, 8, 0, 0), 109462306a36Sopenharmony_ci F(249600000, P_UBI32_PLL, 6, 0, 0), 109562306a36Sopenharmony_ci F(374400000, P_UBI32_PLL, 4, 0, 0), 109662306a36Sopenharmony_ci F(748800000, P_UBI32_PLL, 2, 0, 0), 109762306a36Sopenharmony_ci F(1497600000, P_UBI32_PLL, 1, 0, 0), 109862306a36Sopenharmony_ci { } 109962306a36Sopenharmony_ci}; 110062306a36Sopenharmony_ci 110162306a36Sopenharmony_cistatic const struct clk_parent_data 110262306a36Sopenharmony_ci gcc_xo_ubi32_pll_gpll0_gpll2_gpll4_gpll6[] = { 110362306a36Sopenharmony_ci { .fw_name = "xo" }, 110462306a36Sopenharmony_ci { .hw = &ubi32_pll.clkr.hw }, 110562306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 110662306a36Sopenharmony_ci { .hw = &gpll2.clkr.hw }, 110762306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 110862306a36Sopenharmony_ci { .hw = &gpll6.clkr.hw }, 110962306a36Sopenharmony_ci}; 111062306a36Sopenharmony_ci 111162306a36Sopenharmony_cistatic const struct parent_map gcc_xo_ubi32_gpll0_gpll2_gpll4_gpll6_map[] = { 111262306a36Sopenharmony_ci { P_XO, 0 }, 111362306a36Sopenharmony_ci { P_UBI32_PLL, 1 }, 111462306a36Sopenharmony_ci { P_GPLL0, 2 }, 111562306a36Sopenharmony_ci { P_GPLL2, 3 }, 111662306a36Sopenharmony_ci { P_GPLL4, 4 }, 111762306a36Sopenharmony_ci { P_GPLL6, 5 }, 111862306a36Sopenharmony_ci}; 111962306a36Sopenharmony_ci 112062306a36Sopenharmony_cistatic struct clk_rcg2 nss_ubi0_clk_src = { 112162306a36Sopenharmony_ci .cmd_rcgr = 0x68104, 112262306a36Sopenharmony_ci .freq_tbl = ftbl_nss_ubi_clk_src, 112362306a36Sopenharmony_ci .hid_width = 5, 112462306a36Sopenharmony_ci .parent_map = gcc_xo_ubi32_gpll0_gpll2_gpll4_gpll6_map, 112562306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 112662306a36Sopenharmony_ci .name = "nss_ubi0_clk_src", 112762306a36Sopenharmony_ci .parent_data = gcc_xo_ubi32_pll_gpll0_gpll2_gpll4_gpll6, 112862306a36Sopenharmony_ci .num_parents = 6, 112962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 113062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 113162306a36Sopenharmony_ci }, 113262306a36Sopenharmony_ci}; 113362306a36Sopenharmony_ci 113462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_adss_pwm_clk_src[] = { 113562306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 113662306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 113762306a36Sopenharmony_ci { } 113862306a36Sopenharmony_ci}; 113962306a36Sopenharmony_ci 114062306a36Sopenharmony_cistatic struct clk_rcg2 adss_pwm_clk_src = { 114162306a36Sopenharmony_ci .cmd_rcgr = 0x1c008, 114262306a36Sopenharmony_ci .freq_tbl = ftbl_adss_pwm_clk_src, 114362306a36Sopenharmony_ci .hid_width = 5, 114462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 114562306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 114662306a36Sopenharmony_ci .name = "adss_pwm_clk_src", 114762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 114862306a36Sopenharmony_ci .num_parents = 2, 114962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 115062306a36Sopenharmony_ci }, 115162306a36Sopenharmony_ci}; 115262306a36Sopenharmony_ci 115362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup_i2c_apps_clk_src[] = { 115462306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 115562306a36Sopenharmony_ci F(25000000, P_GPLL0_DIV2, 16, 0, 0), 115662306a36Sopenharmony_ci F(50000000, P_GPLL0, 16, 0, 0), 115762306a36Sopenharmony_ci { } 115862306a36Sopenharmony_ci}; 115962306a36Sopenharmony_ci 116062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src = { 116162306a36Sopenharmony_ci .cmd_rcgr = 0x0200c, 116262306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 116362306a36Sopenharmony_ci .hid_width = 5, 116462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 116562306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 116662306a36Sopenharmony_ci .name = "blsp1_qup1_i2c_apps_clk_src", 116762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 116862306a36Sopenharmony_ci .num_parents = 3, 116962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 117062306a36Sopenharmony_ci }, 117162306a36Sopenharmony_ci}; 117262306a36Sopenharmony_ci 117362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup_spi_apps_clk_src[] = { 117462306a36Sopenharmony_ci F(960000, P_XO, 10, 2, 5), 117562306a36Sopenharmony_ci F(4800000, P_XO, 5, 0, 0), 117662306a36Sopenharmony_ci F(9600000, P_XO, 2, 4, 5), 117762306a36Sopenharmony_ci F(12500000, P_GPLL0_DIV2, 16, 1, 2), 117862306a36Sopenharmony_ci F(16000000, P_GPLL0, 10, 1, 5), 117962306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 118062306a36Sopenharmony_ci F(25000000, P_GPLL0, 16, 1, 2), 118162306a36Sopenharmony_ci F(50000000, P_GPLL0, 16, 0, 0), 118262306a36Sopenharmony_ci { } 118362306a36Sopenharmony_ci}; 118462306a36Sopenharmony_ci 118562306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_spi_apps_clk_src = { 118662306a36Sopenharmony_ci .cmd_rcgr = 0x02024, 118762306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 118862306a36Sopenharmony_ci .mnd_width = 8, 118962306a36Sopenharmony_ci .hid_width = 5, 119062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 119162306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 119262306a36Sopenharmony_ci .name = "blsp1_qup1_spi_apps_clk_src", 119362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 119462306a36Sopenharmony_ci .num_parents = 3, 119562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 119662306a36Sopenharmony_ci }, 119762306a36Sopenharmony_ci}; 119862306a36Sopenharmony_ci 119962306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src = { 120062306a36Sopenharmony_ci .cmd_rcgr = 0x03000, 120162306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 120262306a36Sopenharmony_ci .hid_width = 5, 120362306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 120462306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 120562306a36Sopenharmony_ci .name = "blsp1_qup2_i2c_apps_clk_src", 120662306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 120762306a36Sopenharmony_ci .num_parents = 3, 120862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 120962306a36Sopenharmony_ci }, 121062306a36Sopenharmony_ci}; 121162306a36Sopenharmony_ci 121262306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_spi_apps_clk_src = { 121362306a36Sopenharmony_ci .cmd_rcgr = 0x03014, 121462306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 121562306a36Sopenharmony_ci .mnd_width = 8, 121662306a36Sopenharmony_ci .hid_width = 5, 121762306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 121862306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 121962306a36Sopenharmony_ci .name = "blsp1_qup2_spi_apps_clk_src", 122062306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 122162306a36Sopenharmony_ci .num_parents = 3, 122262306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 122362306a36Sopenharmony_ci }, 122462306a36Sopenharmony_ci}; 122562306a36Sopenharmony_ci 122662306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src = { 122762306a36Sopenharmony_ci .cmd_rcgr = 0x04000, 122862306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 122962306a36Sopenharmony_ci .hid_width = 5, 123062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 123162306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 123262306a36Sopenharmony_ci .name = "blsp1_qup3_i2c_apps_clk_src", 123362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 123462306a36Sopenharmony_ci .num_parents = 3, 123562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 123662306a36Sopenharmony_ci }, 123762306a36Sopenharmony_ci}; 123862306a36Sopenharmony_ci 123962306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_spi_apps_clk_src = { 124062306a36Sopenharmony_ci .cmd_rcgr = 0x04014, 124162306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 124262306a36Sopenharmony_ci .mnd_width = 8, 124362306a36Sopenharmony_ci .hid_width = 5, 124462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 124562306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 124662306a36Sopenharmony_ci .name = "blsp1_qup3_spi_apps_clk_src", 124762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 124862306a36Sopenharmony_ci .num_parents = 3, 124962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 125062306a36Sopenharmony_ci }, 125162306a36Sopenharmony_ci}; 125262306a36Sopenharmony_ci 125362306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src = { 125462306a36Sopenharmony_ci .cmd_rcgr = 0x05000, 125562306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 125662306a36Sopenharmony_ci .hid_width = 5, 125762306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 125862306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 125962306a36Sopenharmony_ci .name = "blsp1_qup4_i2c_apps_clk_src", 126062306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 126162306a36Sopenharmony_ci .num_parents = 3, 126262306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 126362306a36Sopenharmony_ci }, 126462306a36Sopenharmony_ci}; 126562306a36Sopenharmony_ci 126662306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_spi_apps_clk_src = { 126762306a36Sopenharmony_ci .cmd_rcgr = 0x05014, 126862306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 126962306a36Sopenharmony_ci .mnd_width = 8, 127062306a36Sopenharmony_ci .hid_width = 5, 127162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 127262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 127362306a36Sopenharmony_ci .name = "blsp1_qup4_spi_apps_clk_src", 127462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 127562306a36Sopenharmony_ci .num_parents = 3, 127662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 127762306a36Sopenharmony_ci }, 127862306a36Sopenharmony_ci}; 127962306a36Sopenharmony_ci 128062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup5_i2c_apps_clk_src = { 128162306a36Sopenharmony_ci .cmd_rcgr = 0x06000, 128262306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 128362306a36Sopenharmony_ci .hid_width = 5, 128462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 128562306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 128662306a36Sopenharmony_ci .name = "blsp1_qup5_i2c_apps_clk_src", 128762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 128862306a36Sopenharmony_ci .num_parents = 3, 128962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 129062306a36Sopenharmony_ci }, 129162306a36Sopenharmony_ci}; 129262306a36Sopenharmony_ci 129362306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup5_spi_apps_clk_src = { 129462306a36Sopenharmony_ci .cmd_rcgr = 0x06014, 129562306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 129662306a36Sopenharmony_ci .mnd_width = 8, 129762306a36Sopenharmony_ci .hid_width = 5, 129862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 129962306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 130062306a36Sopenharmony_ci .name = "blsp1_qup5_spi_apps_clk_src", 130162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 130262306a36Sopenharmony_ci .num_parents = 3, 130362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 130462306a36Sopenharmony_ci }, 130562306a36Sopenharmony_ci}; 130662306a36Sopenharmony_ci 130762306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup6_i2c_apps_clk_src = { 130862306a36Sopenharmony_ci .cmd_rcgr = 0x07000, 130962306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 131062306a36Sopenharmony_ci .hid_width = 5, 131162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 131262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 131362306a36Sopenharmony_ci .name = "blsp1_qup6_i2c_apps_clk_src", 131462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 131562306a36Sopenharmony_ci .num_parents = 3, 131662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 131762306a36Sopenharmony_ci }, 131862306a36Sopenharmony_ci}; 131962306a36Sopenharmony_ci 132062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup6_spi_apps_clk_src = { 132162306a36Sopenharmony_ci .cmd_rcgr = 0x07014, 132262306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 132362306a36Sopenharmony_ci .mnd_width = 8, 132462306a36Sopenharmony_ci .hid_width = 5, 132562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 132662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 132762306a36Sopenharmony_ci .name = "blsp1_qup6_spi_apps_clk_src", 132862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 132962306a36Sopenharmony_ci .num_parents = 3, 133062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 133162306a36Sopenharmony_ci }, 133262306a36Sopenharmony_ci}; 133362306a36Sopenharmony_ci 133462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_uart_apps_clk_src[] = { 133562306a36Sopenharmony_ci F(3686400, P_GPLL0_DIV2, 1, 144, 15625), 133662306a36Sopenharmony_ci F(7372800, P_GPLL0_DIV2, 1, 288, 15625), 133762306a36Sopenharmony_ci F(14745600, P_GPLL0_DIV2, 1, 576, 15625), 133862306a36Sopenharmony_ci F(16000000, P_GPLL0_DIV2, 5, 1, 5), 133962306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 134062306a36Sopenharmony_ci F(24000000, P_GPLL0, 1, 3, 100), 134162306a36Sopenharmony_ci F(25000000, P_GPLL0, 16, 1, 2), 134262306a36Sopenharmony_ci F(32000000, P_GPLL0, 1, 1, 25), 134362306a36Sopenharmony_ci F(40000000, P_GPLL0, 1, 1, 20), 134462306a36Sopenharmony_ci F(46400000, P_GPLL0, 1, 29, 500), 134562306a36Sopenharmony_ci F(48000000, P_GPLL0, 1, 3, 50), 134662306a36Sopenharmony_ci F(51200000, P_GPLL0, 1, 8, 125), 134762306a36Sopenharmony_ci F(56000000, P_GPLL0, 1, 7, 100), 134862306a36Sopenharmony_ci F(58982400, P_GPLL0, 1, 1152, 15625), 134962306a36Sopenharmony_ci F(60000000, P_GPLL0, 1, 3, 40), 135062306a36Sopenharmony_ci F(64000000, P_GPLL0, 12.5, 1, 1), 135162306a36Sopenharmony_ci { } 135262306a36Sopenharmony_ci}; 135362306a36Sopenharmony_ci 135462306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart1_apps_clk_src = { 135562306a36Sopenharmony_ci .cmd_rcgr = 0x02044, 135662306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 135762306a36Sopenharmony_ci .mnd_width = 16, 135862306a36Sopenharmony_ci .hid_width = 5, 135962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 136062306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 136162306a36Sopenharmony_ci .name = "blsp1_uart1_apps_clk_src", 136262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 136362306a36Sopenharmony_ci .num_parents = 3, 136462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 136562306a36Sopenharmony_ci }, 136662306a36Sopenharmony_ci}; 136762306a36Sopenharmony_ci 136862306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart2_apps_clk_src = { 136962306a36Sopenharmony_ci .cmd_rcgr = 0x03034, 137062306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 137162306a36Sopenharmony_ci .mnd_width = 16, 137262306a36Sopenharmony_ci .hid_width = 5, 137362306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 137462306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 137562306a36Sopenharmony_ci .name = "blsp1_uart2_apps_clk_src", 137662306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 137762306a36Sopenharmony_ci .num_parents = 3, 137862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 137962306a36Sopenharmony_ci }, 138062306a36Sopenharmony_ci}; 138162306a36Sopenharmony_ci 138262306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart3_apps_clk_src = { 138362306a36Sopenharmony_ci .cmd_rcgr = 0x04034, 138462306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 138562306a36Sopenharmony_ci .mnd_width = 16, 138662306a36Sopenharmony_ci .hid_width = 5, 138762306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 138862306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 138962306a36Sopenharmony_ci .name = "blsp1_uart3_apps_clk_src", 139062306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 139162306a36Sopenharmony_ci .num_parents = 3, 139262306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 139362306a36Sopenharmony_ci }, 139462306a36Sopenharmony_ci}; 139562306a36Sopenharmony_ci 139662306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart4_apps_clk_src = { 139762306a36Sopenharmony_ci .cmd_rcgr = 0x05034, 139862306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 139962306a36Sopenharmony_ci .mnd_width = 16, 140062306a36Sopenharmony_ci .hid_width = 5, 140162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 140262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 140362306a36Sopenharmony_ci .name = "blsp1_uart4_apps_clk_src", 140462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 140562306a36Sopenharmony_ci .num_parents = 3, 140662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 140762306a36Sopenharmony_ci }, 140862306a36Sopenharmony_ci}; 140962306a36Sopenharmony_ci 141062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart5_apps_clk_src = { 141162306a36Sopenharmony_ci .cmd_rcgr = 0x06034, 141262306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 141362306a36Sopenharmony_ci .mnd_width = 16, 141462306a36Sopenharmony_ci .hid_width = 5, 141562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 141662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 141762306a36Sopenharmony_ci .name = "blsp1_uart5_apps_clk_src", 141862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 141962306a36Sopenharmony_ci .num_parents = 3, 142062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 142162306a36Sopenharmony_ci }, 142262306a36Sopenharmony_ci}; 142362306a36Sopenharmony_ci 142462306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart6_apps_clk_src = { 142562306a36Sopenharmony_ci .cmd_rcgr = 0x07034, 142662306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 142762306a36Sopenharmony_ci .mnd_width = 16, 142862306a36Sopenharmony_ci .hid_width = 5, 142962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 143062306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 143162306a36Sopenharmony_ci .name = "blsp1_uart6_apps_clk_src", 143262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 143362306a36Sopenharmony_ci .num_parents = 3, 143462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 143562306a36Sopenharmony_ci }, 143662306a36Sopenharmony_ci}; 143762306a36Sopenharmony_ci 143862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_crypto_clk_src[] = { 143962306a36Sopenharmony_ci F(40000000, P_GPLL0_DIV2, 10, 0, 0), 144062306a36Sopenharmony_ci F(80000000, P_GPLL0, 10, 0, 0), 144162306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 144262306a36Sopenharmony_ci F(160000000, P_GPLL0, 5, 0, 0), 144362306a36Sopenharmony_ci { } 144462306a36Sopenharmony_ci}; 144562306a36Sopenharmony_ci 144662306a36Sopenharmony_cistatic struct clk_rcg2 crypto_clk_src = { 144762306a36Sopenharmony_ci .cmd_rcgr = 0x16004, 144862306a36Sopenharmony_ci .freq_tbl = ftbl_crypto_clk_src, 144962306a36Sopenharmony_ci .hid_width = 5, 145062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 145162306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 145262306a36Sopenharmony_ci .name = "crypto_clk_src", 145362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 145462306a36Sopenharmony_ci .num_parents = 3, 145562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 145662306a36Sopenharmony_ci }, 145762306a36Sopenharmony_ci}; 145862306a36Sopenharmony_ci 145962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gp_clk_src[] = { 146062306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 146162306a36Sopenharmony_ci F(50000000, P_GPLL0_DIV2, 8, 0, 0), 146262306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 146362306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 146462306a36Sopenharmony_ci F(266666666, P_GPLL0, 3, 0, 0), 146562306a36Sopenharmony_ci { } 146662306a36Sopenharmony_ci}; 146762306a36Sopenharmony_ci 146862306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll6_gpll0_sleep_clk[] = { 146962306a36Sopenharmony_ci { .fw_name = "xo" }, 147062306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 147162306a36Sopenharmony_ci { .hw = &gpll6.clkr.hw }, 147262306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 147362306a36Sopenharmony_ci { .fw_name = "sleep_clk" }, 147462306a36Sopenharmony_ci}; 147562306a36Sopenharmony_ci 147662306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map[] = { 147762306a36Sopenharmony_ci { P_XO, 0 }, 147862306a36Sopenharmony_ci { P_GPLL0, 1 }, 147962306a36Sopenharmony_ci { P_GPLL6, 2 }, 148062306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 148162306a36Sopenharmony_ci { P_SLEEP_CLK, 6 }, 148262306a36Sopenharmony_ci}; 148362306a36Sopenharmony_ci 148462306a36Sopenharmony_cistatic struct clk_rcg2 gp1_clk_src = { 148562306a36Sopenharmony_ci .cmd_rcgr = 0x08004, 148662306a36Sopenharmony_ci .freq_tbl = ftbl_gp_clk_src, 148762306a36Sopenharmony_ci .mnd_width = 8, 148862306a36Sopenharmony_ci .hid_width = 5, 148962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map, 149062306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 149162306a36Sopenharmony_ci .name = "gp1_clk_src", 149262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll6_gpll0_sleep_clk, 149362306a36Sopenharmony_ci .num_parents = 5, 149462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 149562306a36Sopenharmony_ci }, 149662306a36Sopenharmony_ci}; 149762306a36Sopenharmony_ci 149862306a36Sopenharmony_cistatic struct clk_rcg2 gp2_clk_src = { 149962306a36Sopenharmony_ci .cmd_rcgr = 0x09004, 150062306a36Sopenharmony_ci .freq_tbl = ftbl_gp_clk_src, 150162306a36Sopenharmony_ci .mnd_width = 8, 150262306a36Sopenharmony_ci .hid_width = 5, 150362306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map, 150462306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 150562306a36Sopenharmony_ci .name = "gp2_clk_src", 150662306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll6_gpll0_sleep_clk, 150762306a36Sopenharmony_ci .num_parents = 5, 150862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 150962306a36Sopenharmony_ci }, 151062306a36Sopenharmony_ci}; 151162306a36Sopenharmony_ci 151262306a36Sopenharmony_cistatic struct clk_rcg2 gp3_clk_src = { 151362306a36Sopenharmony_ci .cmd_rcgr = 0x0a004, 151462306a36Sopenharmony_ci .freq_tbl = ftbl_gp_clk_src, 151562306a36Sopenharmony_ci .mnd_width = 8, 151662306a36Sopenharmony_ci .hid_width = 5, 151762306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map, 151862306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 151962306a36Sopenharmony_ci .name = "gp3_clk_src", 152062306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll6_gpll0_sleep_clk, 152162306a36Sopenharmony_ci .num_parents = 5, 152262306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 152362306a36Sopenharmony_ci }, 152462306a36Sopenharmony_ci}; 152562306a36Sopenharmony_ci 152662306a36Sopenharmony_cistatic struct clk_fixed_factor nss_ppe_cdiv_clk_src = { 152762306a36Sopenharmony_ci .mult = 1, 152862306a36Sopenharmony_ci .div = 4, 152962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 153062306a36Sopenharmony_ci .name = "nss_ppe_cdiv_clk_src", 153162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 153262306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 153362306a36Sopenharmony_ci .num_parents = 1, 153462306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 153562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 153662306a36Sopenharmony_ci }, 153762306a36Sopenharmony_ci}; 153862306a36Sopenharmony_ci 153962306a36Sopenharmony_cistatic struct clk_regmap_div nss_ubi0_div_clk_src = { 154062306a36Sopenharmony_ci .reg = 0x68118, 154162306a36Sopenharmony_ci .shift = 0, 154262306a36Sopenharmony_ci .width = 4, 154362306a36Sopenharmony_ci .clkr = { 154462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 154562306a36Sopenharmony_ci .name = "nss_ubi0_div_clk_src", 154662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 154762306a36Sopenharmony_ci &nss_ubi0_clk_src.clkr.hw }, 154862306a36Sopenharmony_ci .num_parents = 1, 154962306a36Sopenharmony_ci .ops = &clk_regmap_div_ro_ops, 155062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 155162306a36Sopenharmony_ci }, 155262306a36Sopenharmony_ci }, 155362306a36Sopenharmony_ci}; 155462306a36Sopenharmony_ci 155562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcie_aux_clk_src[] = { 155662306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 155762306a36Sopenharmony_ci { } 155862306a36Sopenharmony_ci}; 155962306a36Sopenharmony_ci 156062306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_core_pi_sleep_clk[] = { 156162306a36Sopenharmony_ci { .fw_name = "xo" }, 156262306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 156362306a36Sopenharmony_ci { .fw_name = "sleep_clk" }, 156462306a36Sopenharmony_ci}; 156562306a36Sopenharmony_ci 156662306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_core_pi_sleep_clk_map[] = { 156762306a36Sopenharmony_ci { P_XO, 0 }, 156862306a36Sopenharmony_ci { P_GPLL0, 2 }, 156962306a36Sopenharmony_ci { P_PI_SLEEP, 6 }, 157062306a36Sopenharmony_ci}; 157162306a36Sopenharmony_ci 157262306a36Sopenharmony_cistatic struct clk_rcg2 pcie0_aux_clk_src = { 157362306a36Sopenharmony_ci .cmd_rcgr = 0x75024, 157462306a36Sopenharmony_ci .freq_tbl = ftbl_pcie_aux_clk_src, 157562306a36Sopenharmony_ci .mnd_width = 16, 157662306a36Sopenharmony_ci .hid_width = 5, 157762306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_core_pi_sleep_clk_map, 157862306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 157962306a36Sopenharmony_ci .name = "pcie0_aux_clk_src", 158062306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_core_pi_sleep_clk, 158162306a36Sopenharmony_ci .num_parents = 3, 158262306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 158362306a36Sopenharmony_ci }, 158462306a36Sopenharmony_ci}; 158562306a36Sopenharmony_ci 158662306a36Sopenharmony_cistatic const struct clk_parent_data gcc_pcie20_phy0_pipe_clk_xo[] = { 158762306a36Sopenharmony_ci { .fw_name = "pcie20_phy0_pipe_clk" }, 158862306a36Sopenharmony_ci { .fw_name = "xo" }, 158962306a36Sopenharmony_ci}; 159062306a36Sopenharmony_ci 159162306a36Sopenharmony_cistatic const struct parent_map gcc_pcie20_phy0_pipe_clk_xo_map[] = { 159262306a36Sopenharmony_ci { P_PCIE20_PHY0_PIPE, 0 }, 159362306a36Sopenharmony_ci { P_XO, 2 }, 159462306a36Sopenharmony_ci}; 159562306a36Sopenharmony_ci 159662306a36Sopenharmony_cistatic struct clk_regmap_mux pcie0_pipe_clk_src = { 159762306a36Sopenharmony_ci .reg = 0x7501c, 159862306a36Sopenharmony_ci .shift = 8, 159962306a36Sopenharmony_ci .width = 2, 160062306a36Sopenharmony_ci .parent_map = gcc_pcie20_phy0_pipe_clk_xo_map, 160162306a36Sopenharmony_ci .clkr = { 160262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 160362306a36Sopenharmony_ci .name = "pcie0_pipe_clk_src", 160462306a36Sopenharmony_ci .parent_data = gcc_pcie20_phy0_pipe_clk_xo, 160562306a36Sopenharmony_ci .num_parents = 2, 160662306a36Sopenharmony_ci .ops = &clk_regmap_mux_closest_ops, 160762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 160862306a36Sopenharmony_ci }, 160962306a36Sopenharmony_ci }, 161062306a36Sopenharmony_ci}; 161162306a36Sopenharmony_ci 161262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc_apps_clk_src[] = { 161362306a36Sopenharmony_ci F(144000, P_XO, 16, 12, 125), 161462306a36Sopenharmony_ci F(400000, P_XO, 12, 1, 5), 161562306a36Sopenharmony_ci F(24000000, P_GPLL2, 12, 1, 4), 161662306a36Sopenharmony_ci F(48000000, P_GPLL2, 12, 1, 2), 161762306a36Sopenharmony_ci F(96000000, P_GPLL2, 12, 0, 0), 161862306a36Sopenharmony_ci F(177777778, P_GPLL0, 4.5, 0, 0), 161962306a36Sopenharmony_ci F(192000000, P_GPLL2, 6, 0, 0), 162062306a36Sopenharmony_ci F(384000000, P_GPLL2, 3, 0, 0), 162162306a36Sopenharmony_ci { } 162262306a36Sopenharmony_ci}; 162362306a36Sopenharmony_ci 162462306a36Sopenharmony_cistatic const struct clk_parent_data 162562306a36Sopenharmony_ci gcc_xo_gpll0_gpll2_gpll0_out_main_div2[] = { 162662306a36Sopenharmony_ci { .fw_name = "xo" }, 162762306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 162862306a36Sopenharmony_ci { .hw = &gpll2.clkr.hw }, 162962306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 163062306a36Sopenharmony_ci}; 163162306a36Sopenharmony_ci 163262306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map[] = { 163362306a36Sopenharmony_ci { P_XO, 0 }, 163462306a36Sopenharmony_ci { P_GPLL0, 1 }, 163562306a36Sopenharmony_ci { P_GPLL2, 2 }, 163662306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 163762306a36Sopenharmony_ci}; 163862306a36Sopenharmony_ci 163962306a36Sopenharmony_cistatic struct clk_rcg2 sdcc1_apps_clk_src = { 164062306a36Sopenharmony_ci .cmd_rcgr = 0x42004, 164162306a36Sopenharmony_ci .freq_tbl = ftbl_sdcc_apps_clk_src, 164262306a36Sopenharmony_ci .mnd_width = 8, 164362306a36Sopenharmony_ci .hid_width = 5, 164462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map, 164562306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 164662306a36Sopenharmony_ci .name = "sdcc1_apps_clk_src", 164762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll2_gpll0_out_main_div2, 164862306a36Sopenharmony_ci .num_parents = 4, 164962306a36Sopenharmony_ci .ops = &clk_rcg2_floor_ops, 165062306a36Sopenharmony_ci }, 165162306a36Sopenharmony_ci}; 165262306a36Sopenharmony_ci 165362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb_aux_clk_src[] = { 165462306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 165562306a36Sopenharmony_ci { } 165662306a36Sopenharmony_ci}; 165762306a36Sopenharmony_ci 165862306a36Sopenharmony_cistatic struct clk_rcg2 usb0_aux_clk_src = { 165962306a36Sopenharmony_ci .cmd_rcgr = 0x3e05c, 166062306a36Sopenharmony_ci .freq_tbl = ftbl_usb_aux_clk_src, 166162306a36Sopenharmony_ci .mnd_width = 16, 166262306a36Sopenharmony_ci .hid_width = 5, 166362306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_core_pi_sleep_clk_map, 166462306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 166562306a36Sopenharmony_ci .name = "usb0_aux_clk_src", 166662306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_core_pi_sleep_clk, 166762306a36Sopenharmony_ci .num_parents = 3, 166862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 166962306a36Sopenharmony_ci }, 167062306a36Sopenharmony_ci}; 167162306a36Sopenharmony_ci 167262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb_mock_utmi_clk_src[] = { 167362306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 167462306a36Sopenharmony_ci F(60000000, P_GPLL6, 6, 1, 3), 167562306a36Sopenharmony_ci { } 167662306a36Sopenharmony_ci}; 167762306a36Sopenharmony_ci 167862306a36Sopenharmony_cistatic const struct clk_parent_data 167962306a36Sopenharmony_ci gcc_xo_gpll6_gpll0_gpll0_out_main_div2[] = { 168062306a36Sopenharmony_ci { .fw_name = "xo" }, 168162306a36Sopenharmony_ci { .hw = &gpll6.clkr.hw }, 168262306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 168362306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 168462306a36Sopenharmony_ci}; 168562306a36Sopenharmony_ci 168662306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll6_gpll0_gpll0_out_main_div2_map[] = { 168762306a36Sopenharmony_ci { P_XO, 0 }, 168862306a36Sopenharmony_ci { P_GPLL6, 1 }, 168962306a36Sopenharmony_ci { P_GPLL0, 3 }, 169062306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 169162306a36Sopenharmony_ci}; 169262306a36Sopenharmony_ci 169362306a36Sopenharmony_cistatic struct clk_rcg2 usb0_mock_utmi_clk_src = { 169462306a36Sopenharmony_ci .cmd_rcgr = 0x3e020, 169562306a36Sopenharmony_ci .freq_tbl = ftbl_usb_mock_utmi_clk_src, 169662306a36Sopenharmony_ci .mnd_width = 8, 169762306a36Sopenharmony_ci .hid_width = 5, 169862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll6_gpll0_gpll0_out_main_div2_map, 169962306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 170062306a36Sopenharmony_ci .name = "usb0_mock_utmi_clk_src", 170162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll6_gpll0_gpll0_out_main_div2, 170262306a36Sopenharmony_ci .num_parents = 4, 170362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 170462306a36Sopenharmony_ci }, 170562306a36Sopenharmony_ci}; 170662306a36Sopenharmony_ci 170762306a36Sopenharmony_cistatic const struct clk_parent_data gcc_usb3phy_0_cc_pipe_clk_xo[] = { 170862306a36Sopenharmony_ci { .fw_name = "usb3phy_0_cc_pipe_clk" }, 170962306a36Sopenharmony_ci { .fw_name = "xo" }, 171062306a36Sopenharmony_ci}; 171162306a36Sopenharmony_ci 171262306a36Sopenharmony_cistatic const struct parent_map gcc_usb3phy_0_cc_pipe_clk_xo_map[] = { 171362306a36Sopenharmony_ci { P_USB3PHY_0_PIPE, 0 }, 171462306a36Sopenharmony_ci { P_XO, 2 }, 171562306a36Sopenharmony_ci}; 171662306a36Sopenharmony_ci 171762306a36Sopenharmony_cistatic struct clk_regmap_mux usb0_pipe_clk_src = { 171862306a36Sopenharmony_ci .reg = 0x3e048, 171962306a36Sopenharmony_ci .shift = 8, 172062306a36Sopenharmony_ci .width = 2, 172162306a36Sopenharmony_ci .parent_map = gcc_usb3phy_0_cc_pipe_clk_xo_map, 172262306a36Sopenharmony_ci .clkr = { 172362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 172462306a36Sopenharmony_ci .name = "usb0_pipe_clk_src", 172562306a36Sopenharmony_ci .parent_data = gcc_usb3phy_0_cc_pipe_clk_xo, 172662306a36Sopenharmony_ci .num_parents = 2, 172762306a36Sopenharmony_ci .ops = &clk_regmap_mux_closest_ops, 172862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 172962306a36Sopenharmony_ci }, 173062306a36Sopenharmony_ci }, 173162306a36Sopenharmony_ci}; 173262306a36Sopenharmony_ci 173362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc_ice_core_clk_src[] = { 173462306a36Sopenharmony_ci F(80000000, P_GPLL0_DIV2, 5, 0, 0), 173562306a36Sopenharmony_ci F(160000000, P_GPLL0, 5, 0, 0), 173662306a36Sopenharmony_ci F(216000000, P_GPLL6, 5, 0, 0), 173762306a36Sopenharmony_ci F(308570000, P_GPLL6, 3.5, 0, 0), 173862306a36Sopenharmony_ci { } 173962306a36Sopenharmony_ci}; 174062306a36Sopenharmony_ci 174162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll6_gpll0_div2[] = { 174262306a36Sopenharmony_ci { .fw_name = "xo"}, 174362306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 174462306a36Sopenharmony_ci { .hw = &gpll6.clkr.hw }, 174562306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 174662306a36Sopenharmony_ci}; 174762306a36Sopenharmony_ci 174862306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll6_gpll0_div2_map[] = { 174962306a36Sopenharmony_ci { P_XO, 0 }, 175062306a36Sopenharmony_ci { P_GPLL0, 1 }, 175162306a36Sopenharmony_ci { P_GPLL6, 2 }, 175262306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 175362306a36Sopenharmony_ci}; 175462306a36Sopenharmony_ci 175562306a36Sopenharmony_cistatic struct clk_rcg2 sdcc1_ice_core_clk_src = { 175662306a36Sopenharmony_ci .cmd_rcgr = 0x5d000, 175762306a36Sopenharmony_ci .freq_tbl = ftbl_sdcc_ice_core_clk_src, 175862306a36Sopenharmony_ci .mnd_width = 8, 175962306a36Sopenharmony_ci .hid_width = 5, 176062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll6_gpll0_div2_map, 176162306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 176262306a36Sopenharmony_ci .name = "sdcc1_ice_core_clk_src", 176362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll6_gpll0_div2, 176462306a36Sopenharmony_ci .num_parents = 4, 176562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 176662306a36Sopenharmony_ci }, 176762306a36Sopenharmony_ci}; 176862306a36Sopenharmony_ci 176962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_qdss_stm_clk_src[] = { 177062306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 177162306a36Sopenharmony_ci F(50000000, P_GPLL0_DIV2, 8, 0, 0), 177262306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 177362306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 177462306a36Sopenharmony_ci { } 177562306a36Sopenharmony_ci}; 177662306a36Sopenharmony_ci 177762306a36Sopenharmony_cistatic struct clk_rcg2 qdss_stm_clk_src = { 177862306a36Sopenharmony_ci .cmd_rcgr = 0x2902C, 177962306a36Sopenharmony_ci .freq_tbl = ftbl_qdss_stm_clk_src, 178062306a36Sopenharmony_ci .hid_width = 5, 178162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 178262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 178362306a36Sopenharmony_ci .name = "qdss_stm_clk_src", 178462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 178562306a36Sopenharmony_ci .num_parents = 3, 178662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 178762306a36Sopenharmony_ci }, 178862306a36Sopenharmony_ci}; 178962306a36Sopenharmony_ci 179062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_qdss_traceclkin_clk_src[] = { 179162306a36Sopenharmony_ci F(80000000, P_GPLL0_DIV2, 5, 0, 0), 179262306a36Sopenharmony_ci F(160000000, P_GPLL0, 5, 0, 0), 179362306a36Sopenharmony_ci F(300000000, P_GPLL4, 4, 0, 0), 179462306a36Sopenharmony_ci { } 179562306a36Sopenharmony_ci}; 179662306a36Sopenharmony_ci 179762306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll4_gpll0_gpll0_div2[] = { 179862306a36Sopenharmony_ci { .fw_name = "xo" }, 179962306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 180062306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 180162306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 180262306a36Sopenharmony_ci}; 180362306a36Sopenharmony_ci 180462306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll4_gpll0_gpll0_div2_map[] = { 180562306a36Sopenharmony_ci { P_XO, 0 }, 180662306a36Sopenharmony_ci { P_GPLL4, 1 }, 180762306a36Sopenharmony_ci { P_GPLL0, 2 }, 180862306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 180962306a36Sopenharmony_ci}; 181062306a36Sopenharmony_ci 181162306a36Sopenharmony_cistatic struct clk_rcg2 qdss_traceclkin_clk_src = { 181262306a36Sopenharmony_ci .cmd_rcgr = 0x29048, 181362306a36Sopenharmony_ci .freq_tbl = ftbl_qdss_traceclkin_clk_src, 181462306a36Sopenharmony_ci .hid_width = 5, 181562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll4_gpll0_gpll0_div2_map, 181662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 181762306a36Sopenharmony_ci .name = "qdss_traceclkin_clk_src", 181862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll4_gpll0_gpll0_div2, 181962306a36Sopenharmony_ci .num_parents = 4, 182062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 182162306a36Sopenharmony_ci }, 182262306a36Sopenharmony_ci}; 182362306a36Sopenharmony_ci 182462306a36Sopenharmony_cistatic struct clk_rcg2 usb1_mock_utmi_clk_src = { 182562306a36Sopenharmony_ci .cmd_rcgr = 0x3f020, 182662306a36Sopenharmony_ci .freq_tbl = ftbl_usb_mock_utmi_clk_src, 182762306a36Sopenharmony_ci .mnd_width = 8, 182862306a36Sopenharmony_ci .hid_width = 5, 182962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll6_gpll0_gpll0_out_main_div2_map, 183062306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 183162306a36Sopenharmony_ci .name = "usb1_mock_utmi_clk_src", 183262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll6_gpll0_gpll0_out_main_div2, 183362306a36Sopenharmony_ci .num_parents = 4, 183462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 183562306a36Sopenharmony_ci }, 183662306a36Sopenharmony_ci}; 183762306a36Sopenharmony_ci 183862306a36Sopenharmony_cistatic struct clk_branch gcc_adss_pwm_clk = { 183962306a36Sopenharmony_ci .halt_reg = 0x1c020, 184062306a36Sopenharmony_ci .clkr = { 184162306a36Sopenharmony_ci .enable_reg = 0x1c020, 184262306a36Sopenharmony_ci .enable_mask = BIT(0), 184362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 184462306a36Sopenharmony_ci .name = "gcc_adss_pwm_clk", 184562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 184662306a36Sopenharmony_ci &adss_pwm_clk_src.clkr.hw }, 184762306a36Sopenharmony_ci .num_parents = 1, 184862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 184962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 185062306a36Sopenharmony_ci }, 185162306a36Sopenharmony_ci }, 185262306a36Sopenharmony_ci}; 185362306a36Sopenharmony_ci 185462306a36Sopenharmony_cistatic struct clk_branch gcc_apss_ahb_clk = { 185562306a36Sopenharmony_ci .halt_reg = 0x4601c, 185662306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 185762306a36Sopenharmony_ci .clkr = { 185862306a36Sopenharmony_ci .enable_reg = 0x0b004, 185962306a36Sopenharmony_ci .enable_mask = BIT(14), 186062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 186162306a36Sopenharmony_ci .name = "gcc_apss_ahb_clk", 186262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 186362306a36Sopenharmony_ci &apss_ahb_postdiv_clk_src.clkr.hw }, 186462306a36Sopenharmony_ci .num_parents = 1, 186562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 186662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 186762306a36Sopenharmony_ci }, 186862306a36Sopenharmony_ci }, 186962306a36Sopenharmony_ci}; 187062306a36Sopenharmony_ci 187162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_system_noc_bfdcd_clk_src[] = { 187262306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 187362306a36Sopenharmony_ci F(50000000, P_GPLL0_DIV2, 8, 0, 0), 187462306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 187562306a36Sopenharmony_ci F(133333333, P_GPLL0, 6, 0, 0), 187662306a36Sopenharmony_ci F(160000000, P_GPLL0, 5, 0, 0), 187762306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 187862306a36Sopenharmony_ci F(266666667, P_GPLL0, 3, 0, 0), 187962306a36Sopenharmony_ci { } 188062306a36Sopenharmony_ci}; 188162306a36Sopenharmony_ci 188262306a36Sopenharmony_cistatic struct clk_rcg2 system_noc_bfdcd_clk_src = { 188362306a36Sopenharmony_ci .cmd_rcgr = 0x26004, 188462306a36Sopenharmony_ci .freq_tbl = ftbl_system_noc_bfdcd_clk_src, 188562306a36Sopenharmony_ci .hid_width = 5, 188662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll6_gpll0_out_main_div2_map, 188762306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 188862306a36Sopenharmony_ci .name = "system_noc_bfdcd_clk_src", 188962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll6_gpll0_out_main_div2, 189062306a36Sopenharmony_ci .num_parents = 4, 189162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 189262306a36Sopenharmony_ci }, 189362306a36Sopenharmony_ci}; 189462306a36Sopenharmony_ci 189562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_ubi32_mem_noc_bfdcd_clk_src[] = { 189662306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 189762306a36Sopenharmony_ci F(307670000, P_BIAS_PLL_NSS_NOC, 1.5, 0, 0), 189862306a36Sopenharmony_ci F(533333333, P_GPLL0, 1.5, 0, 0), 189962306a36Sopenharmony_ci { } 190062306a36Sopenharmony_ci}; 190162306a36Sopenharmony_ci 190262306a36Sopenharmony_cistatic const struct clk_parent_data 190362306a36Sopenharmony_ci gcc_xo_gpll0_gpll2_bias_pll_nss_noc_clk[] = { 190462306a36Sopenharmony_ci { .fw_name = "xo" }, 190562306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 190662306a36Sopenharmony_ci { .hw = &gpll2.clkr.hw }, 190762306a36Sopenharmony_ci { .fw_name = "bias_pll_nss_noc_clk" }, 190862306a36Sopenharmony_ci}; 190962306a36Sopenharmony_ci 191062306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll2_bias_pll_nss_noc_clk_map[] = { 191162306a36Sopenharmony_ci { P_XO, 0 }, 191262306a36Sopenharmony_ci { P_GPLL0, 1 }, 191362306a36Sopenharmony_ci { P_GPLL2, 3 }, 191462306a36Sopenharmony_ci { P_BIAS_PLL_NSS_NOC, 4 }, 191562306a36Sopenharmony_ci}; 191662306a36Sopenharmony_ci 191762306a36Sopenharmony_cistatic struct clk_rcg2 ubi32_mem_noc_bfdcd_clk_src = { 191862306a36Sopenharmony_ci .cmd_rcgr = 0x68088, 191962306a36Sopenharmony_ci .freq_tbl = ftbl_ubi32_mem_noc_bfdcd_clk_src, 192062306a36Sopenharmony_ci .hid_width = 5, 192162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll2_bias_pll_nss_noc_clk_map, 192262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 192362306a36Sopenharmony_ci .name = "ubi32_mem_noc_bfdcd_clk_src", 192462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll2_bias_pll_nss_noc_clk, 192562306a36Sopenharmony_ci .num_parents = 4, 192662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 192762306a36Sopenharmony_ci }, 192862306a36Sopenharmony_ci}; 192962306a36Sopenharmony_ci 193062306a36Sopenharmony_cistatic struct clk_branch gcc_apss_axi_clk = { 193162306a36Sopenharmony_ci .halt_reg = 0x46020, 193262306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 193362306a36Sopenharmony_ci .clkr = { 193462306a36Sopenharmony_ci .enable_reg = 0x0b004, 193562306a36Sopenharmony_ci .enable_mask = BIT(13), 193662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 193762306a36Sopenharmony_ci .name = "gcc_apss_axi_clk", 193862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 193962306a36Sopenharmony_ci &apss_axi_clk_src.clkr.hw }, 194062306a36Sopenharmony_ci .num_parents = 1, 194162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 194262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 194362306a36Sopenharmony_ci }, 194462306a36Sopenharmony_ci }, 194562306a36Sopenharmony_ci}; 194662306a36Sopenharmony_ci 194762306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_ahb_clk = { 194862306a36Sopenharmony_ci .halt_reg = 0x01008, 194962306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 195062306a36Sopenharmony_ci .clkr = { 195162306a36Sopenharmony_ci .enable_reg = 0x0b004, 195262306a36Sopenharmony_ci .enable_mask = BIT(10), 195362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 195462306a36Sopenharmony_ci .name = "gcc_blsp1_ahb_clk", 195562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 195662306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 195762306a36Sopenharmony_ci .num_parents = 1, 195862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 195962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 196062306a36Sopenharmony_ci }, 196162306a36Sopenharmony_ci }, 196262306a36Sopenharmony_ci}; 196362306a36Sopenharmony_ci 196462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_i2c_apps_clk = { 196562306a36Sopenharmony_ci .halt_reg = 0x02008, 196662306a36Sopenharmony_ci .clkr = { 196762306a36Sopenharmony_ci .enable_reg = 0x02008, 196862306a36Sopenharmony_ci .enable_mask = BIT(0), 196962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 197062306a36Sopenharmony_ci .name = "gcc_blsp1_qup1_i2c_apps_clk", 197162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 197262306a36Sopenharmony_ci &blsp1_qup1_i2c_apps_clk_src.clkr.hw }, 197362306a36Sopenharmony_ci .num_parents = 1, 197462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 197562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 197662306a36Sopenharmony_ci }, 197762306a36Sopenharmony_ci }, 197862306a36Sopenharmony_ci}; 197962306a36Sopenharmony_ci 198062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_spi_apps_clk = { 198162306a36Sopenharmony_ci .halt_reg = 0x02004, 198262306a36Sopenharmony_ci .clkr = { 198362306a36Sopenharmony_ci .enable_reg = 0x02004, 198462306a36Sopenharmony_ci .enable_mask = BIT(0), 198562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 198662306a36Sopenharmony_ci .name = "gcc_blsp1_qup1_spi_apps_clk", 198762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 198862306a36Sopenharmony_ci &blsp1_qup1_spi_apps_clk_src.clkr.hw }, 198962306a36Sopenharmony_ci .num_parents = 1, 199062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 199162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 199262306a36Sopenharmony_ci }, 199362306a36Sopenharmony_ci }, 199462306a36Sopenharmony_ci}; 199562306a36Sopenharmony_ci 199662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_i2c_apps_clk = { 199762306a36Sopenharmony_ci .halt_reg = 0x03010, 199862306a36Sopenharmony_ci .clkr = { 199962306a36Sopenharmony_ci .enable_reg = 0x03010, 200062306a36Sopenharmony_ci .enable_mask = BIT(0), 200162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 200262306a36Sopenharmony_ci .name = "gcc_blsp1_qup2_i2c_apps_clk", 200362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 200462306a36Sopenharmony_ci &blsp1_qup2_i2c_apps_clk_src.clkr.hw }, 200562306a36Sopenharmony_ci .num_parents = 1, 200662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 200762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 200862306a36Sopenharmony_ci }, 200962306a36Sopenharmony_ci }, 201062306a36Sopenharmony_ci}; 201162306a36Sopenharmony_ci 201262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_spi_apps_clk = { 201362306a36Sopenharmony_ci .halt_reg = 0x0300c, 201462306a36Sopenharmony_ci .clkr = { 201562306a36Sopenharmony_ci .enable_reg = 0x0300c, 201662306a36Sopenharmony_ci .enable_mask = BIT(0), 201762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 201862306a36Sopenharmony_ci .name = "gcc_blsp1_qup2_spi_apps_clk", 201962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 202062306a36Sopenharmony_ci &blsp1_qup2_spi_apps_clk_src.clkr.hw }, 202162306a36Sopenharmony_ci .num_parents = 1, 202262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 202362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 202462306a36Sopenharmony_ci }, 202562306a36Sopenharmony_ci }, 202662306a36Sopenharmony_ci}; 202762306a36Sopenharmony_ci 202862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_i2c_apps_clk = { 202962306a36Sopenharmony_ci .halt_reg = 0x04010, 203062306a36Sopenharmony_ci .clkr = { 203162306a36Sopenharmony_ci .enable_reg = 0x04010, 203262306a36Sopenharmony_ci .enable_mask = BIT(0), 203362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 203462306a36Sopenharmony_ci .name = "gcc_blsp1_qup3_i2c_apps_clk", 203562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 203662306a36Sopenharmony_ci &blsp1_qup3_i2c_apps_clk_src.clkr.hw }, 203762306a36Sopenharmony_ci .num_parents = 1, 203862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 203962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 204062306a36Sopenharmony_ci }, 204162306a36Sopenharmony_ci }, 204262306a36Sopenharmony_ci}; 204362306a36Sopenharmony_ci 204462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_spi_apps_clk = { 204562306a36Sopenharmony_ci .halt_reg = 0x0400c, 204662306a36Sopenharmony_ci .clkr = { 204762306a36Sopenharmony_ci .enable_reg = 0x0400c, 204862306a36Sopenharmony_ci .enable_mask = BIT(0), 204962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 205062306a36Sopenharmony_ci .name = "gcc_blsp1_qup3_spi_apps_clk", 205162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 205262306a36Sopenharmony_ci &blsp1_qup3_spi_apps_clk_src.clkr.hw }, 205362306a36Sopenharmony_ci .num_parents = 1, 205462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 205562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 205662306a36Sopenharmony_ci }, 205762306a36Sopenharmony_ci }, 205862306a36Sopenharmony_ci}; 205962306a36Sopenharmony_ci 206062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_i2c_apps_clk = { 206162306a36Sopenharmony_ci .halt_reg = 0x05010, 206262306a36Sopenharmony_ci .clkr = { 206362306a36Sopenharmony_ci .enable_reg = 0x05010, 206462306a36Sopenharmony_ci .enable_mask = BIT(0), 206562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 206662306a36Sopenharmony_ci .name = "gcc_blsp1_qup4_i2c_apps_clk", 206762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 206862306a36Sopenharmony_ci &blsp1_qup4_i2c_apps_clk_src.clkr.hw }, 206962306a36Sopenharmony_ci .num_parents = 1, 207062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 207162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 207262306a36Sopenharmony_ci }, 207362306a36Sopenharmony_ci }, 207462306a36Sopenharmony_ci}; 207562306a36Sopenharmony_ci 207662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_spi_apps_clk = { 207762306a36Sopenharmony_ci .halt_reg = 0x0500c, 207862306a36Sopenharmony_ci .clkr = { 207962306a36Sopenharmony_ci .enable_reg = 0x0500c, 208062306a36Sopenharmony_ci .enable_mask = BIT(0), 208162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 208262306a36Sopenharmony_ci .name = "gcc_blsp1_qup4_spi_apps_clk", 208362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 208462306a36Sopenharmony_ci &blsp1_qup4_spi_apps_clk_src.clkr.hw }, 208562306a36Sopenharmony_ci .num_parents = 1, 208662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 208762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 208862306a36Sopenharmony_ci }, 208962306a36Sopenharmony_ci }, 209062306a36Sopenharmony_ci}; 209162306a36Sopenharmony_ci 209262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup5_i2c_apps_clk = { 209362306a36Sopenharmony_ci .halt_reg = 0x06010, 209462306a36Sopenharmony_ci .clkr = { 209562306a36Sopenharmony_ci .enable_reg = 0x06010, 209662306a36Sopenharmony_ci .enable_mask = BIT(0), 209762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 209862306a36Sopenharmony_ci .name = "gcc_blsp1_qup5_i2c_apps_clk", 209962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 210062306a36Sopenharmony_ci &blsp1_qup5_i2c_apps_clk_src.clkr.hw }, 210162306a36Sopenharmony_ci .num_parents = 1, 210262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 210362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 210462306a36Sopenharmony_ci }, 210562306a36Sopenharmony_ci }, 210662306a36Sopenharmony_ci}; 210762306a36Sopenharmony_ci 210862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup5_spi_apps_clk = { 210962306a36Sopenharmony_ci .halt_reg = 0x0600c, 211062306a36Sopenharmony_ci .clkr = { 211162306a36Sopenharmony_ci .enable_reg = 0x0600c, 211262306a36Sopenharmony_ci .enable_mask = BIT(0), 211362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 211462306a36Sopenharmony_ci .name = "gcc_blsp1_qup5_spi_apps_clk", 211562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 211662306a36Sopenharmony_ci &blsp1_qup5_spi_apps_clk_src.clkr.hw }, 211762306a36Sopenharmony_ci .num_parents = 1, 211862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 211962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 212062306a36Sopenharmony_ci }, 212162306a36Sopenharmony_ci }, 212262306a36Sopenharmony_ci}; 212362306a36Sopenharmony_ci 212462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup6_spi_apps_clk = { 212562306a36Sopenharmony_ci .halt_reg = 0x0700c, 212662306a36Sopenharmony_ci .clkr = { 212762306a36Sopenharmony_ci .enable_reg = 0x0700c, 212862306a36Sopenharmony_ci .enable_mask = BIT(0), 212962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 213062306a36Sopenharmony_ci .name = "gcc_blsp1_qup6_spi_apps_clk", 213162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 213262306a36Sopenharmony_ci &blsp1_qup6_spi_apps_clk_src.clkr.hw }, 213362306a36Sopenharmony_ci .num_parents = 1, 213462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 213562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 213662306a36Sopenharmony_ci }, 213762306a36Sopenharmony_ci }, 213862306a36Sopenharmony_ci}; 213962306a36Sopenharmony_ci 214062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart1_apps_clk = { 214162306a36Sopenharmony_ci .halt_reg = 0x0203c, 214262306a36Sopenharmony_ci .clkr = { 214362306a36Sopenharmony_ci .enable_reg = 0x0203c, 214462306a36Sopenharmony_ci .enable_mask = BIT(0), 214562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 214662306a36Sopenharmony_ci .name = "gcc_blsp1_uart1_apps_clk", 214762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 214862306a36Sopenharmony_ci &blsp1_uart1_apps_clk_src.clkr.hw }, 214962306a36Sopenharmony_ci .num_parents = 1, 215062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 215162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 215262306a36Sopenharmony_ci }, 215362306a36Sopenharmony_ci }, 215462306a36Sopenharmony_ci}; 215562306a36Sopenharmony_ci 215662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart2_apps_clk = { 215762306a36Sopenharmony_ci .halt_reg = 0x0302c, 215862306a36Sopenharmony_ci .clkr = { 215962306a36Sopenharmony_ci .enable_reg = 0x0302c, 216062306a36Sopenharmony_ci .enable_mask = BIT(0), 216162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 216262306a36Sopenharmony_ci .name = "gcc_blsp1_uart2_apps_clk", 216362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 216462306a36Sopenharmony_ci &blsp1_uart2_apps_clk_src.clkr.hw }, 216562306a36Sopenharmony_ci .num_parents = 1, 216662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 216762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 216862306a36Sopenharmony_ci }, 216962306a36Sopenharmony_ci }, 217062306a36Sopenharmony_ci}; 217162306a36Sopenharmony_ci 217262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart3_apps_clk = { 217362306a36Sopenharmony_ci .halt_reg = 0x0402c, 217462306a36Sopenharmony_ci .clkr = { 217562306a36Sopenharmony_ci .enable_reg = 0x0402c, 217662306a36Sopenharmony_ci .enable_mask = BIT(0), 217762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 217862306a36Sopenharmony_ci .name = "gcc_blsp1_uart3_apps_clk", 217962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 218062306a36Sopenharmony_ci &blsp1_uart3_apps_clk_src.clkr.hw }, 218162306a36Sopenharmony_ci .num_parents = 1, 218262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 218362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 218462306a36Sopenharmony_ci }, 218562306a36Sopenharmony_ci }, 218662306a36Sopenharmony_ci}; 218762306a36Sopenharmony_ci 218862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart4_apps_clk = { 218962306a36Sopenharmony_ci .halt_reg = 0x0502c, 219062306a36Sopenharmony_ci .clkr = { 219162306a36Sopenharmony_ci .enable_reg = 0x0502c, 219262306a36Sopenharmony_ci .enable_mask = BIT(0), 219362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 219462306a36Sopenharmony_ci .name = "gcc_blsp1_uart4_apps_clk", 219562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 219662306a36Sopenharmony_ci &blsp1_uart4_apps_clk_src.clkr.hw }, 219762306a36Sopenharmony_ci .num_parents = 1, 219862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 219962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 220062306a36Sopenharmony_ci }, 220162306a36Sopenharmony_ci }, 220262306a36Sopenharmony_ci}; 220362306a36Sopenharmony_ci 220462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart5_apps_clk = { 220562306a36Sopenharmony_ci .halt_reg = 0x0602c, 220662306a36Sopenharmony_ci .clkr = { 220762306a36Sopenharmony_ci .enable_reg = 0x0602c, 220862306a36Sopenharmony_ci .enable_mask = BIT(0), 220962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 221062306a36Sopenharmony_ci .name = "gcc_blsp1_uart5_apps_clk", 221162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 221262306a36Sopenharmony_ci &blsp1_uart5_apps_clk_src.clkr.hw }, 221362306a36Sopenharmony_ci .num_parents = 1, 221462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 221562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 221662306a36Sopenharmony_ci }, 221762306a36Sopenharmony_ci }, 221862306a36Sopenharmony_ci}; 221962306a36Sopenharmony_ci 222062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart6_apps_clk = { 222162306a36Sopenharmony_ci .halt_reg = 0x0702c, 222262306a36Sopenharmony_ci .clkr = { 222362306a36Sopenharmony_ci .enable_reg = 0x0702c, 222462306a36Sopenharmony_ci .enable_mask = BIT(0), 222562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 222662306a36Sopenharmony_ci .name = "gcc_blsp1_uart6_apps_clk", 222762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 222862306a36Sopenharmony_ci &blsp1_uart6_apps_clk_src.clkr.hw }, 222962306a36Sopenharmony_ci .num_parents = 1, 223062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 223162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 223262306a36Sopenharmony_ci }, 223362306a36Sopenharmony_ci }, 223462306a36Sopenharmony_ci}; 223562306a36Sopenharmony_ci 223662306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_ahb_clk = { 223762306a36Sopenharmony_ci .halt_reg = 0x16024, 223862306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 223962306a36Sopenharmony_ci .clkr = { 224062306a36Sopenharmony_ci .enable_reg = 0x0b004, 224162306a36Sopenharmony_ci .enable_mask = BIT(0), 224262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 224362306a36Sopenharmony_ci .name = "gcc_crypto_ahb_clk", 224462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 224562306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 224662306a36Sopenharmony_ci .num_parents = 1, 224762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 224862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 224962306a36Sopenharmony_ci }, 225062306a36Sopenharmony_ci }, 225162306a36Sopenharmony_ci}; 225262306a36Sopenharmony_ci 225362306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_axi_clk = { 225462306a36Sopenharmony_ci .halt_reg = 0x16020, 225562306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 225662306a36Sopenharmony_ci .clkr = { 225762306a36Sopenharmony_ci .enable_reg = 0x0b004, 225862306a36Sopenharmony_ci .enable_mask = BIT(1), 225962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 226062306a36Sopenharmony_ci .name = "gcc_crypto_axi_clk", 226162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 226262306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 226362306a36Sopenharmony_ci .num_parents = 1, 226462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 226562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 226662306a36Sopenharmony_ci }, 226762306a36Sopenharmony_ci }, 226862306a36Sopenharmony_ci}; 226962306a36Sopenharmony_ci 227062306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_clk = { 227162306a36Sopenharmony_ci .halt_reg = 0x1601c, 227262306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 227362306a36Sopenharmony_ci .clkr = { 227462306a36Sopenharmony_ci .enable_reg = 0x0b004, 227562306a36Sopenharmony_ci .enable_mask = BIT(2), 227662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 227762306a36Sopenharmony_ci .name = "gcc_crypto_clk", 227862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 227962306a36Sopenharmony_ci &crypto_clk_src.clkr.hw }, 228062306a36Sopenharmony_ci .num_parents = 1, 228162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 228262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 228362306a36Sopenharmony_ci }, 228462306a36Sopenharmony_ci }, 228562306a36Sopenharmony_ci}; 228662306a36Sopenharmony_ci 228762306a36Sopenharmony_cistatic struct clk_fixed_factor gpll6_out_main_div2 = { 228862306a36Sopenharmony_ci .mult = 1, 228962306a36Sopenharmony_ci .div = 2, 229062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 229162306a36Sopenharmony_ci .name = "gpll6_out_main_div2", 229262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 229362306a36Sopenharmony_ci &gpll6_main.clkr.hw }, 229462306a36Sopenharmony_ci .num_parents = 1, 229562306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 229662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 229762306a36Sopenharmony_ci }, 229862306a36Sopenharmony_ci}; 229962306a36Sopenharmony_ci 230062306a36Sopenharmony_cistatic struct clk_branch gcc_xo_clk = { 230162306a36Sopenharmony_ci .halt_reg = 0x30030, 230262306a36Sopenharmony_ci .clkr = { 230362306a36Sopenharmony_ci .enable_reg = 0x30030, 230462306a36Sopenharmony_ci .enable_mask = BIT(0), 230562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 230662306a36Sopenharmony_ci .name = "gcc_xo_clk", 230762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 230862306a36Sopenharmony_ci &gcc_xo_clk_src.clkr.hw }, 230962306a36Sopenharmony_ci .num_parents = 1, 231062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 231162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 231262306a36Sopenharmony_ci }, 231362306a36Sopenharmony_ci }, 231462306a36Sopenharmony_ci}; 231562306a36Sopenharmony_ci 231662306a36Sopenharmony_cistatic struct clk_branch gcc_gp1_clk = { 231762306a36Sopenharmony_ci .halt_reg = 0x08000, 231862306a36Sopenharmony_ci .clkr = { 231962306a36Sopenharmony_ci .enable_reg = 0x08000, 232062306a36Sopenharmony_ci .enable_mask = BIT(0), 232162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 232262306a36Sopenharmony_ci .name = "gcc_gp1_clk", 232362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 232462306a36Sopenharmony_ci &gp1_clk_src.clkr.hw }, 232562306a36Sopenharmony_ci .num_parents = 1, 232662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 232762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 232862306a36Sopenharmony_ci }, 232962306a36Sopenharmony_ci }, 233062306a36Sopenharmony_ci}; 233162306a36Sopenharmony_ci 233262306a36Sopenharmony_cistatic struct clk_branch gcc_gp2_clk = { 233362306a36Sopenharmony_ci .halt_reg = 0x09000, 233462306a36Sopenharmony_ci .clkr = { 233562306a36Sopenharmony_ci .enable_reg = 0x09000, 233662306a36Sopenharmony_ci .enable_mask = BIT(0), 233762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 233862306a36Sopenharmony_ci .name = "gcc_gp2_clk", 233962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 234062306a36Sopenharmony_ci &gp2_clk_src.clkr.hw }, 234162306a36Sopenharmony_ci .num_parents = 1, 234262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 234362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 234462306a36Sopenharmony_ci }, 234562306a36Sopenharmony_ci }, 234662306a36Sopenharmony_ci}; 234762306a36Sopenharmony_ci 234862306a36Sopenharmony_cistatic struct clk_branch gcc_gp3_clk = { 234962306a36Sopenharmony_ci .halt_reg = 0x0a000, 235062306a36Sopenharmony_ci .clkr = { 235162306a36Sopenharmony_ci .enable_reg = 0x0a000, 235262306a36Sopenharmony_ci .enable_mask = BIT(0), 235362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 235462306a36Sopenharmony_ci .name = "gcc_gp3_clk", 235562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 235662306a36Sopenharmony_ci &gp3_clk_src.clkr.hw }, 235762306a36Sopenharmony_ci .num_parents = 1, 235862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 235962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 236062306a36Sopenharmony_ci }, 236162306a36Sopenharmony_ci }, 236262306a36Sopenharmony_ci}; 236362306a36Sopenharmony_ci 236462306a36Sopenharmony_cistatic struct clk_branch gcc_mdio_ahb_clk = { 236562306a36Sopenharmony_ci .halt_reg = 0x58004, 236662306a36Sopenharmony_ci .clkr = { 236762306a36Sopenharmony_ci .enable_reg = 0x58004, 236862306a36Sopenharmony_ci .enable_mask = BIT(0), 236962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 237062306a36Sopenharmony_ci .name = "gcc_mdio_ahb_clk", 237162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 237262306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 237362306a36Sopenharmony_ci .num_parents = 1, 237462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 237562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 237662306a36Sopenharmony_ci }, 237762306a36Sopenharmony_ci }, 237862306a36Sopenharmony_ci}; 237962306a36Sopenharmony_ci 238062306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_ppe_clk = { 238162306a36Sopenharmony_ci .halt_reg = 0x68310, 238262306a36Sopenharmony_ci .clkr = { 238362306a36Sopenharmony_ci .enable_reg = 0x68310, 238462306a36Sopenharmony_ci .enable_mask = BIT(0), 238562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 238662306a36Sopenharmony_ci .name = "gcc_crypto_ppe_clk", 238762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 238862306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 238962306a36Sopenharmony_ci .num_parents = 1, 239062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 239162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 239262306a36Sopenharmony_ci }, 239362306a36Sopenharmony_ci }, 239462306a36Sopenharmony_ci}; 239562306a36Sopenharmony_ci 239662306a36Sopenharmony_cistatic struct clk_branch gcc_nss_ce_apb_clk = { 239762306a36Sopenharmony_ci .halt_reg = 0x68174, 239862306a36Sopenharmony_ci .clkr = { 239962306a36Sopenharmony_ci .enable_reg = 0x68174, 240062306a36Sopenharmony_ci .enable_mask = BIT(0), 240162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 240262306a36Sopenharmony_ci .name = "gcc_nss_ce_apb_clk", 240362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 240462306a36Sopenharmony_ci &nss_ce_clk_src.clkr.hw }, 240562306a36Sopenharmony_ci .num_parents = 1, 240662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 240762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 240862306a36Sopenharmony_ci }, 240962306a36Sopenharmony_ci }, 241062306a36Sopenharmony_ci}; 241162306a36Sopenharmony_ci 241262306a36Sopenharmony_cistatic struct clk_branch gcc_nss_ce_axi_clk = { 241362306a36Sopenharmony_ci .halt_reg = 0x68170, 241462306a36Sopenharmony_ci .clkr = { 241562306a36Sopenharmony_ci .enable_reg = 0x68170, 241662306a36Sopenharmony_ci .enable_mask = BIT(0), 241762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 241862306a36Sopenharmony_ci .name = "gcc_nss_ce_axi_clk", 241962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 242062306a36Sopenharmony_ci &nss_ce_clk_src.clkr.hw }, 242162306a36Sopenharmony_ci .num_parents = 1, 242262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 242362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 242462306a36Sopenharmony_ci }, 242562306a36Sopenharmony_ci }, 242662306a36Sopenharmony_ci}; 242762306a36Sopenharmony_ci 242862306a36Sopenharmony_cistatic struct clk_branch gcc_nss_cfg_clk = { 242962306a36Sopenharmony_ci .halt_reg = 0x68160, 243062306a36Sopenharmony_ci .clkr = { 243162306a36Sopenharmony_ci .enable_reg = 0x68160, 243262306a36Sopenharmony_ci .enable_mask = BIT(0), 243362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 243462306a36Sopenharmony_ci .name = "gcc_nss_cfg_clk", 243562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 243662306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 243762306a36Sopenharmony_ci .num_parents = 1, 243862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 243962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 244062306a36Sopenharmony_ci }, 244162306a36Sopenharmony_ci }, 244262306a36Sopenharmony_ci}; 244362306a36Sopenharmony_ci 244462306a36Sopenharmony_cistatic struct clk_branch gcc_nss_crypto_clk = { 244562306a36Sopenharmony_ci .halt_reg = 0x68164, 244662306a36Sopenharmony_ci .clkr = { 244762306a36Sopenharmony_ci .enable_reg = 0x68164, 244862306a36Sopenharmony_ci .enable_mask = BIT(0), 244962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 245062306a36Sopenharmony_ci .name = "gcc_nss_crypto_clk", 245162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 245262306a36Sopenharmony_ci &nss_crypto_clk_src.clkr.hw }, 245362306a36Sopenharmony_ci .num_parents = 1, 245462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 245562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 245662306a36Sopenharmony_ci }, 245762306a36Sopenharmony_ci }, 245862306a36Sopenharmony_ci}; 245962306a36Sopenharmony_ci 246062306a36Sopenharmony_cistatic struct clk_branch gcc_nss_csr_clk = { 246162306a36Sopenharmony_ci .halt_reg = 0x68318, 246262306a36Sopenharmony_ci .clkr = { 246362306a36Sopenharmony_ci .enable_reg = 0x68318, 246462306a36Sopenharmony_ci .enable_mask = BIT(0), 246562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 246662306a36Sopenharmony_ci .name = "gcc_nss_csr_clk", 246762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 246862306a36Sopenharmony_ci &nss_ce_clk_src.clkr.hw }, 246962306a36Sopenharmony_ci .num_parents = 1, 247062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 247162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 247262306a36Sopenharmony_ci }, 247362306a36Sopenharmony_ci }, 247462306a36Sopenharmony_ci}; 247562306a36Sopenharmony_ci 247662306a36Sopenharmony_cistatic struct clk_branch gcc_nss_edma_cfg_clk = { 247762306a36Sopenharmony_ci .halt_reg = 0x6819C, 247862306a36Sopenharmony_ci .clkr = { 247962306a36Sopenharmony_ci .enable_reg = 0x6819C, 248062306a36Sopenharmony_ci .enable_mask = BIT(0), 248162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 248262306a36Sopenharmony_ci .name = "gcc_nss_edma_cfg_clk", 248362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 248462306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 248562306a36Sopenharmony_ci .num_parents = 1, 248662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 248762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 248862306a36Sopenharmony_ci }, 248962306a36Sopenharmony_ci }, 249062306a36Sopenharmony_ci}; 249162306a36Sopenharmony_ci 249262306a36Sopenharmony_cistatic struct clk_branch gcc_nss_edma_clk = { 249362306a36Sopenharmony_ci .halt_reg = 0x68198, 249462306a36Sopenharmony_ci .clkr = { 249562306a36Sopenharmony_ci .enable_reg = 0x68198, 249662306a36Sopenharmony_ci .enable_mask = BIT(0), 249762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 249862306a36Sopenharmony_ci .name = "gcc_nss_edma_clk", 249962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 250062306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 250162306a36Sopenharmony_ci .num_parents = 1, 250262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 250362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 250462306a36Sopenharmony_ci }, 250562306a36Sopenharmony_ci }, 250662306a36Sopenharmony_ci}; 250762306a36Sopenharmony_ci 250862306a36Sopenharmony_cistatic struct clk_branch gcc_nss_noc_clk = { 250962306a36Sopenharmony_ci .halt_reg = 0x68168, 251062306a36Sopenharmony_ci .clkr = { 251162306a36Sopenharmony_ci .enable_reg = 0x68168, 251262306a36Sopenharmony_ci .enable_mask = BIT(0), 251362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 251462306a36Sopenharmony_ci .name = "gcc_nss_noc_clk", 251562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 251662306a36Sopenharmony_ci &snoc_nssnoc_bfdcd_clk_src.clkr.hw }, 251762306a36Sopenharmony_ci .num_parents = 1, 251862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 251962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 252062306a36Sopenharmony_ci }, 252162306a36Sopenharmony_ci }, 252262306a36Sopenharmony_ci}; 252362306a36Sopenharmony_ci 252462306a36Sopenharmony_cistatic struct clk_branch gcc_ubi0_utcm_clk = { 252562306a36Sopenharmony_ci .halt_reg = 0x2606c, 252662306a36Sopenharmony_ci .clkr = { 252762306a36Sopenharmony_ci .enable_reg = 0x2606c, 252862306a36Sopenharmony_ci .enable_mask = BIT(0), 252962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 253062306a36Sopenharmony_ci .name = "gcc_ubi0_utcm_clk", 253162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 253262306a36Sopenharmony_ci &snoc_nssnoc_bfdcd_clk_src.clkr.hw }, 253362306a36Sopenharmony_ci .num_parents = 1, 253462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 253562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 253662306a36Sopenharmony_ci }, 253762306a36Sopenharmony_ci }, 253862306a36Sopenharmony_ci}; 253962306a36Sopenharmony_ci 254062306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_nssnoc_clk = { 254162306a36Sopenharmony_ci .halt_reg = 0x26070, 254262306a36Sopenharmony_ci .clkr = { 254362306a36Sopenharmony_ci .enable_reg = 0x26070, 254462306a36Sopenharmony_ci .enable_mask = BIT(0), 254562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 254662306a36Sopenharmony_ci .name = "gcc_snoc_nssnoc_clk", 254762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 254862306a36Sopenharmony_ci &snoc_nssnoc_bfdcd_clk_src.clkr.hw }, 254962306a36Sopenharmony_ci .num_parents = 1, 255062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 255162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 255262306a36Sopenharmony_ci }, 255362306a36Sopenharmony_ci }, 255462306a36Sopenharmony_ci}; 255562306a36Sopenharmony_ci 255662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_wcss_ahb_clk_src[] = { 255762306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 255862306a36Sopenharmony_ci F(133333333, P_GPLL0, 6, 0, 0), 255962306a36Sopenharmony_ci { } 256062306a36Sopenharmony_ci}; 256162306a36Sopenharmony_ci 256262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_q6_axi_clk_src[] = { 256362306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 256462306a36Sopenharmony_ci F(400000000, P_GPLL0, 2, 0, 0), 256562306a36Sopenharmony_ci { } 256662306a36Sopenharmony_ci}; 256762306a36Sopenharmony_ci 256862306a36Sopenharmony_cistatic struct clk_rcg2 wcss_ahb_clk_src = { 256962306a36Sopenharmony_ci .cmd_rcgr = 0x59020, 257062306a36Sopenharmony_ci .freq_tbl = ftbl_wcss_ahb_clk_src, 257162306a36Sopenharmony_ci .hid_width = 5, 257262306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 257362306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 257462306a36Sopenharmony_ci .name = "wcss_ahb_clk_src", 257562306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 257662306a36Sopenharmony_ci .num_parents = 2, 257762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 257862306a36Sopenharmony_ci }, 257962306a36Sopenharmony_ci}; 258062306a36Sopenharmony_ci 258162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll2_gpll4_gpll6[] = { 258262306a36Sopenharmony_ci { .fw_name = "xo" }, 258362306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 258462306a36Sopenharmony_ci { .hw = &gpll2.clkr.hw }, 258562306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 258662306a36Sopenharmony_ci { .hw = &gpll6.clkr.hw }, 258762306a36Sopenharmony_ci}; 258862306a36Sopenharmony_ci 258962306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll2_gpll4_gpll6_map[] = { 259062306a36Sopenharmony_ci { P_XO, 0 }, 259162306a36Sopenharmony_ci { P_GPLL0, 1 }, 259262306a36Sopenharmony_ci { P_GPLL2, 2 }, 259362306a36Sopenharmony_ci { P_GPLL4, 3 }, 259462306a36Sopenharmony_ci { P_GPLL6, 4 }, 259562306a36Sopenharmony_ci}; 259662306a36Sopenharmony_ci 259762306a36Sopenharmony_cistatic struct clk_rcg2 q6_axi_clk_src = { 259862306a36Sopenharmony_ci .cmd_rcgr = 0x59120, 259962306a36Sopenharmony_ci .freq_tbl = ftbl_q6_axi_clk_src, 260062306a36Sopenharmony_ci .hid_width = 5, 260162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll2_gpll4_gpll6_map, 260262306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 260362306a36Sopenharmony_ci .name = "q6_axi_clk_src", 260462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll2_gpll4_gpll6, 260562306a36Sopenharmony_ci .num_parents = 5, 260662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 260762306a36Sopenharmony_ci }, 260862306a36Sopenharmony_ci}; 260962306a36Sopenharmony_ci 261062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_lpass_core_axim_clk_src[] = { 261162306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 261262306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 261362306a36Sopenharmony_ci { } 261462306a36Sopenharmony_ci}; 261562306a36Sopenharmony_ci 261662306a36Sopenharmony_cistatic struct clk_rcg2 lpass_core_axim_clk_src = { 261762306a36Sopenharmony_ci .cmd_rcgr = 0x1F020, 261862306a36Sopenharmony_ci .freq_tbl = ftbl_lpass_core_axim_clk_src, 261962306a36Sopenharmony_ci .hid_width = 5, 262062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 262162306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 262262306a36Sopenharmony_ci .name = "lpass_core_axim_clk_src", 262362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 262462306a36Sopenharmony_ci .num_parents = 2, 262562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 262662306a36Sopenharmony_ci }, 262762306a36Sopenharmony_ci}; 262862306a36Sopenharmony_ci 262962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_lpass_snoc_cfg_clk_src[] = { 263062306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 263162306a36Sopenharmony_ci F(266666667, P_GPLL0, 3, 0, 0), 263262306a36Sopenharmony_ci { } 263362306a36Sopenharmony_ci}; 263462306a36Sopenharmony_ci 263562306a36Sopenharmony_cistatic struct clk_rcg2 lpass_snoc_cfg_clk_src = { 263662306a36Sopenharmony_ci .cmd_rcgr = 0x1F040, 263762306a36Sopenharmony_ci .freq_tbl = ftbl_lpass_snoc_cfg_clk_src, 263862306a36Sopenharmony_ci .hid_width = 5, 263962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 264062306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 264162306a36Sopenharmony_ci .name = "lpass_snoc_cfg_clk_src", 264262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 264362306a36Sopenharmony_ci .num_parents = 2, 264462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 264562306a36Sopenharmony_ci }, 264662306a36Sopenharmony_ci}; 264762306a36Sopenharmony_ci 264862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_lpass_q6_axim_clk_src[] = { 264962306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 265062306a36Sopenharmony_ci F(400000000, P_GPLL0, 2, 0, 0), 265162306a36Sopenharmony_ci { } 265262306a36Sopenharmony_ci}; 265362306a36Sopenharmony_ci 265462306a36Sopenharmony_cistatic struct clk_rcg2 lpass_q6_axim_clk_src = { 265562306a36Sopenharmony_ci .cmd_rcgr = 0x1F008, 265662306a36Sopenharmony_ci .freq_tbl = ftbl_lpass_q6_axim_clk_src, 265762306a36Sopenharmony_ci .hid_width = 5, 265862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 265962306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 266062306a36Sopenharmony_ci .name = "lpass_q6_axim_clk_src", 266162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 266262306a36Sopenharmony_ci .num_parents = 2, 266362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 266462306a36Sopenharmony_ci }, 266562306a36Sopenharmony_ci}; 266662306a36Sopenharmony_ci 266762306a36Sopenharmony_cistatic struct freq_tbl ftbl_rbcpr_wcss_clk_src[] = { 266862306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 266962306a36Sopenharmony_ci F(50000000, P_GPLL0, 16, 0, 0), 267062306a36Sopenharmony_ci { } 267162306a36Sopenharmony_ci}; 267262306a36Sopenharmony_ci 267362306a36Sopenharmony_cistatic struct clk_rcg2 rbcpr_wcss_clk_src = { 267462306a36Sopenharmony_ci .cmd_rcgr = 0x3a00c, 267562306a36Sopenharmony_ci .freq_tbl = ftbl_rbcpr_wcss_clk_src, 267662306a36Sopenharmony_ci .hid_width = 5, 267762306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_out_main_div2_gpll0_map, 267862306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 267962306a36Sopenharmony_ci .name = "rbcpr_wcss_clk_src", 268062306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_out_main_div2_gpll0, 268162306a36Sopenharmony_ci .num_parents = 3, 268262306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 268362306a36Sopenharmony_ci }, 268462306a36Sopenharmony_ci}; 268562306a36Sopenharmony_ci 268662306a36Sopenharmony_cistatic struct clk_branch gcc_lpass_core_axim_clk = { 268762306a36Sopenharmony_ci .halt_reg = 0x1F028, 268862306a36Sopenharmony_ci .clkr = { 268962306a36Sopenharmony_ci .enable_reg = 0x1F028, 269062306a36Sopenharmony_ci .enable_mask = BIT(0), 269162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 269262306a36Sopenharmony_ci .name = "gcc_lpass_core_axim_clk", 269362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 269462306a36Sopenharmony_ci &lpass_core_axim_clk_src.clkr.hw }, 269562306a36Sopenharmony_ci .num_parents = 1, 269662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 269762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 269862306a36Sopenharmony_ci }, 269962306a36Sopenharmony_ci }, 270062306a36Sopenharmony_ci}; 270162306a36Sopenharmony_ci 270262306a36Sopenharmony_cistatic struct clk_branch gcc_lpass_snoc_cfg_clk = { 270362306a36Sopenharmony_ci .halt_reg = 0x1F048, 270462306a36Sopenharmony_ci .clkr = { 270562306a36Sopenharmony_ci .enable_reg = 0x1F048, 270662306a36Sopenharmony_ci .enable_mask = BIT(0), 270762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 270862306a36Sopenharmony_ci .name = "gcc_lpass_snoc_cfg_clk", 270962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 271062306a36Sopenharmony_ci &lpass_snoc_cfg_clk_src.clkr.hw }, 271162306a36Sopenharmony_ci .num_parents = 1, 271262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 271362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 271462306a36Sopenharmony_ci }, 271562306a36Sopenharmony_ci }, 271662306a36Sopenharmony_ci}; 271762306a36Sopenharmony_ci 271862306a36Sopenharmony_cistatic struct clk_branch gcc_lpass_q6_axim_clk = { 271962306a36Sopenharmony_ci .halt_reg = 0x1F010, 272062306a36Sopenharmony_ci .clkr = { 272162306a36Sopenharmony_ci .enable_reg = 0x1F010, 272262306a36Sopenharmony_ci .enable_mask = BIT(0), 272362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 272462306a36Sopenharmony_ci .name = "gcc_lpass_q6_axim_clk", 272562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 272662306a36Sopenharmony_ci &lpass_q6_axim_clk_src.clkr.hw }, 272762306a36Sopenharmony_ci .num_parents = 1, 272862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 272962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 273062306a36Sopenharmony_ci }, 273162306a36Sopenharmony_ci }, 273262306a36Sopenharmony_ci}; 273362306a36Sopenharmony_ci 273462306a36Sopenharmony_cistatic struct clk_branch gcc_lpass_q6_atbm_at_clk = { 273562306a36Sopenharmony_ci .halt_reg = 0x1F018, 273662306a36Sopenharmony_ci .clkr = { 273762306a36Sopenharmony_ci .enable_reg = 0x1F018, 273862306a36Sopenharmony_ci .enable_mask = BIT(0), 273962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 274062306a36Sopenharmony_ci .name = "gcc_lpass_q6_atbm_at_clk", 274162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 274262306a36Sopenharmony_ci &qdss_at_clk_src.clkr.hw }, 274362306a36Sopenharmony_ci .num_parents = 1, 274462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 274562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 274662306a36Sopenharmony_ci }, 274762306a36Sopenharmony_ci }, 274862306a36Sopenharmony_ci}; 274962306a36Sopenharmony_ci 275062306a36Sopenharmony_cistatic struct clk_branch gcc_lpass_q6_pclkdbg_clk = { 275162306a36Sopenharmony_ci .halt_reg = 0x1F01C, 275262306a36Sopenharmony_ci .clkr = { 275362306a36Sopenharmony_ci .enable_reg = 0x1F01C, 275462306a36Sopenharmony_ci .enable_mask = BIT(0), 275562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 275662306a36Sopenharmony_ci .name = "gcc_lpass_q6_pclkdbg_clk", 275762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 275862306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw }, 275962306a36Sopenharmony_ci .num_parents = 1, 276062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 276162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 276262306a36Sopenharmony_ci }, 276362306a36Sopenharmony_ci }, 276462306a36Sopenharmony_ci}; 276562306a36Sopenharmony_ci 276662306a36Sopenharmony_cistatic struct clk_branch gcc_lpass_q6ss_tsctr_1to2_clk = { 276762306a36Sopenharmony_ci .halt_reg = 0x1F014, 276862306a36Sopenharmony_ci .clkr = { 276962306a36Sopenharmony_ci .enable_reg = 0x1F014, 277062306a36Sopenharmony_ci .enable_mask = BIT(0), 277162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 277262306a36Sopenharmony_ci .name = "gcc_lpass_q6ss_tsctr_1to2_clk", 277362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 277462306a36Sopenharmony_ci &qdss_tsctr_div2_clk_src.hw }, 277562306a36Sopenharmony_ci .num_parents = 1, 277662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 277762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 277862306a36Sopenharmony_ci }, 277962306a36Sopenharmony_ci }, 278062306a36Sopenharmony_ci}; 278162306a36Sopenharmony_ci 278262306a36Sopenharmony_cistatic struct clk_branch gcc_lpass_q6ss_trig_clk = { 278362306a36Sopenharmony_ci .halt_reg = 0x1F038, 278462306a36Sopenharmony_ci .clkr = { 278562306a36Sopenharmony_ci .enable_reg = 0x1F038, 278662306a36Sopenharmony_ci .enable_mask = BIT(0), 278762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 278862306a36Sopenharmony_ci .name = "gcc_lpass_q6ss_trig_clk", 278962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 279062306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw }, 279162306a36Sopenharmony_ci .num_parents = 1, 279262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 279362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 279462306a36Sopenharmony_ci }, 279562306a36Sopenharmony_ci }, 279662306a36Sopenharmony_ci}; 279762306a36Sopenharmony_ci 279862306a36Sopenharmony_cistatic struct clk_branch gcc_lpass_tbu_clk = { 279962306a36Sopenharmony_ci .halt_reg = 0x12094, 280062306a36Sopenharmony_ci .clkr = { 280162306a36Sopenharmony_ci .enable_reg = 0xb00c, 280262306a36Sopenharmony_ci .enable_mask = BIT(10), 280362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 280462306a36Sopenharmony_ci .name = "gcc_lpass_tbu_clk", 280562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 280662306a36Sopenharmony_ci &lpass_q6_axim_clk_src.clkr.hw }, 280762306a36Sopenharmony_ci .num_parents = 1, 280862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 280962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 281062306a36Sopenharmony_ci }, 281162306a36Sopenharmony_ci }, 281262306a36Sopenharmony_ci}; 281362306a36Sopenharmony_ci 281462306a36Sopenharmony_cistatic struct clk_branch gcc_pcnoc_lpass_clk = { 281562306a36Sopenharmony_ci .halt_reg = 0x27020, 281662306a36Sopenharmony_ci .clkr = { 281762306a36Sopenharmony_ci .enable_reg = 0x27020, 281862306a36Sopenharmony_ci .enable_mask = BIT(0), 281962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 282062306a36Sopenharmony_ci .name = "gcc_pcnoc_lpass_clk", 282162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 282262306a36Sopenharmony_ci &lpass_core_axim_clk_src.clkr.hw }, 282362306a36Sopenharmony_ci .num_parents = 1, 282462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 282562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 282662306a36Sopenharmony_ci }, 282762306a36Sopenharmony_ci }, 282862306a36Sopenharmony_ci}; 282962306a36Sopenharmony_ci 283062306a36Sopenharmony_cistatic struct clk_branch gcc_mem_noc_lpass_clk = { 283162306a36Sopenharmony_ci .halt_reg = 0x1D044, 283262306a36Sopenharmony_ci .clkr = { 283362306a36Sopenharmony_ci .enable_reg = 0x1D044, 283462306a36Sopenharmony_ci .enable_mask = BIT(0), 283562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 283662306a36Sopenharmony_ci .name = "gcc_mem_noc_lpass_clk", 283762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 283862306a36Sopenharmony_ci &lpass_q6_axim_clk_src.clkr.hw }, 283962306a36Sopenharmony_ci .num_parents = 1, 284062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 284162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 284262306a36Sopenharmony_ci }, 284362306a36Sopenharmony_ci }, 284462306a36Sopenharmony_ci}; 284562306a36Sopenharmony_ci 284662306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_lpass_cfg_clk = { 284762306a36Sopenharmony_ci .halt_reg = 0x26074, 284862306a36Sopenharmony_ci .clkr = { 284962306a36Sopenharmony_ci .enable_reg = 0x26074, 285062306a36Sopenharmony_ci .enable_mask = BIT(0), 285162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 285262306a36Sopenharmony_ci .name = "gcc_snoc_lpass_cfg_clk", 285362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 285462306a36Sopenharmony_ci &lpass_snoc_cfg_clk_src.clkr.hw }, 285562306a36Sopenharmony_ci .num_parents = 1, 285662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 285762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 285862306a36Sopenharmony_ci }, 285962306a36Sopenharmony_ci }, 286062306a36Sopenharmony_ci}; 286162306a36Sopenharmony_ci 286262306a36Sopenharmony_cistatic struct clk_branch gcc_mem_noc_ubi32_clk = { 286362306a36Sopenharmony_ci .halt_reg = 0x1D03C, 286462306a36Sopenharmony_ci .clkr = { 286562306a36Sopenharmony_ci .enable_reg = 0x1D03C, 286662306a36Sopenharmony_ci .enable_mask = BIT(0), 286762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 286862306a36Sopenharmony_ci .name = "gcc_mem_noc_ubi32_clk", 286962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 287062306a36Sopenharmony_ci &ubi32_mem_noc_bfdcd_clk_src.clkr.hw }, 287162306a36Sopenharmony_ci .num_parents = 1, 287262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 287362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 287462306a36Sopenharmony_ci }, 287562306a36Sopenharmony_ci }, 287662306a36Sopenharmony_ci}; 287762306a36Sopenharmony_ci 287862306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port1_rx_clk = { 287962306a36Sopenharmony_ci .halt_reg = 0x68240, 288062306a36Sopenharmony_ci .clkr = { 288162306a36Sopenharmony_ci .enable_reg = 0x68240, 288262306a36Sopenharmony_ci .enable_mask = BIT(0), 288362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 288462306a36Sopenharmony_ci .name = "gcc_nss_port1_rx_clk", 288562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 288662306a36Sopenharmony_ci &nss_port1_rx_div_clk_src.clkr.hw }, 288762306a36Sopenharmony_ci .num_parents = 1, 288862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 288962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 289062306a36Sopenharmony_ci }, 289162306a36Sopenharmony_ci }, 289262306a36Sopenharmony_ci}; 289362306a36Sopenharmony_ci 289462306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port1_tx_clk = { 289562306a36Sopenharmony_ci .halt_reg = 0x68244, 289662306a36Sopenharmony_ci .clkr = { 289762306a36Sopenharmony_ci .enable_reg = 0x68244, 289862306a36Sopenharmony_ci .enable_mask = BIT(0), 289962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 290062306a36Sopenharmony_ci .name = "gcc_nss_port1_tx_clk", 290162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 290262306a36Sopenharmony_ci &nss_port1_tx_div_clk_src.clkr.hw }, 290362306a36Sopenharmony_ci .num_parents = 1, 290462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 290562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 290662306a36Sopenharmony_ci }, 290762306a36Sopenharmony_ci }, 290862306a36Sopenharmony_ci}; 290962306a36Sopenharmony_ci 291062306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port2_rx_clk = { 291162306a36Sopenharmony_ci .halt_reg = 0x68248, 291262306a36Sopenharmony_ci .clkr = { 291362306a36Sopenharmony_ci .enable_reg = 0x68248, 291462306a36Sopenharmony_ci .enable_mask = BIT(0), 291562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 291662306a36Sopenharmony_ci .name = "gcc_nss_port2_rx_clk", 291762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 291862306a36Sopenharmony_ci &nss_port2_rx_div_clk_src.clkr.hw }, 291962306a36Sopenharmony_ci .num_parents = 1, 292062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 292162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 292262306a36Sopenharmony_ci }, 292362306a36Sopenharmony_ci }, 292462306a36Sopenharmony_ci}; 292562306a36Sopenharmony_ci 292662306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port2_tx_clk = { 292762306a36Sopenharmony_ci .halt_reg = 0x6824c, 292862306a36Sopenharmony_ci .clkr = { 292962306a36Sopenharmony_ci .enable_reg = 0x6824c, 293062306a36Sopenharmony_ci .enable_mask = BIT(0), 293162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 293262306a36Sopenharmony_ci .name = "gcc_nss_port2_tx_clk", 293362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 293462306a36Sopenharmony_ci &nss_port2_tx_div_clk_src.clkr.hw }, 293562306a36Sopenharmony_ci .num_parents = 1, 293662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 293762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 293862306a36Sopenharmony_ci }, 293962306a36Sopenharmony_ci }, 294062306a36Sopenharmony_ci}; 294162306a36Sopenharmony_ci 294262306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port3_rx_clk = { 294362306a36Sopenharmony_ci .halt_reg = 0x68250, 294462306a36Sopenharmony_ci .clkr = { 294562306a36Sopenharmony_ci .enable_reg = 0x68250, 294662306a36Sopenharmony_ci .enable_mask = BIT(0), 294762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 294862306a36Sopenharmony_ci .name = "gcc_nss_port3_rx_clk", 294962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 295062306a36Sopenharmony_ci &nss_port3_rx_div_clk_src.clkr.hw }, 295162306a36Sopenharmony_ci .num_parents = 1, 295262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 295362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 295462306a36Sopenharmony_ci }, 295562306a36Sopenharmony_ci }, 295662306a36Sopenharmony_ci}; 295762306a36Sopenharmony_ci 295862306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port3_tx_clk = { 295962306a36Sopenharmony_ci .halt_reg = 0x68254, 296062306a36Sopenharmony_ci .clkr = { 296162306a36Sopenharmony_ci .enable_reg = 0x68254, 296262306a36Sopenharmony_ci .enable_mask = BIT(0), 296362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 296462306a36Sopenharmony_ci .name = "gcc_nss_port3_tx_clk", 296562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 296662306a36Sopenharmony_ci &nss_port3_tx_div_clk_src.clkr.hw }, 296762306a36Sopenharmony_ci .num_parents = 1, 296862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 296962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 297062306a36Sopenharmony_ci }, 297162306a36Sopenharmony_ci }, 297262306a36Sopenharmony_ci}; 297362306a36Sopenharmony_ci 297462306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port4_rx_clk = { 297562306a36Sopenharmony_ci .halt_reg = 0x68258, 297662306a36Sopenharmony_ci .clkr = { 297762306a36Sopenharmony_ci .enable_reg = 0x68258, 297862306a36Sopenharmony_ci .enable_mask = BIT(0), 297962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 298062306a36Sopenharmony_ci .name = "gcc_nss_port4_rx_clk", 298162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 298262306a36Sopenharmony_ci &nss_port4_rx_div_clk_src.clkr.hw }, 298362306a36Sopenharmony_ci .num_parents = 1, 298462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 298562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 298662306a36Sopenharmony_ci }, 298762306a36Sopenharmony_ci }, 298862306a36Sopenharmony_ci}; 298962306a36Sopenharmony_ci 299062306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port4_tx_clk = { 299162306a36Sopenharmony_ci .halt_reg = 0x6825c, 299262306a36Sopenharmony_ci .clkr = { 299362306a36Sopenharmony_ci .enable_reg = 0x6825c, 299462306a36Sopenharmony_ci .enable_mask = BIT(0), 299562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 299662306a36Sopenharmony_ci .name = "gcc_nss_port4_tx_clk", 299762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 299862306a36Sopenharmony_ci &nss_port4_tx_div_clk_src.clkr.hw }, 299962306a36Sopenharmony_ci .num_parents = 1, 300062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 300162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 300262306a36Sopenharmony_ci }, 300362306a36Sopenharmony_ci }, 300462306a36Sopenharmony_ci}; 300562306a36Sopenharmony_ci 300662306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port5_rx_clk = { 300762306a36Sopenharmony_ci .halt_reg = 0x68260, 300862306a36Sopenharmony_ci .clkr = { 300962306a36Sopenharmony_ci .enable_reg = 0x68260, 301062306a36Sopenharmony_ci .enable_mask = BIT(0), 301162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 301262306a36Sopenharmony_ci .name = "gcc_nss_port5_rx_clk", 301362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 301462306a36Sopenharmony_ci &nss_port5_rx_div_clk_src.clkr.hw }, 301562306a36Sopenharmony_ci .num_parents = 1, 301662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 301762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 301862306a36Sopenharmony_ci }, 301962306a36Sopenharmony_ci }, 302062306a36Sopenharmony_ci}; 302162306a36Sopenharmony_ci 302262306a36Sopenharmony_cistatic struct clk_branch gcc_nss_port5_tx_clk = { 302362306a36Sopenharmony_ci .halt_reg = 0x68264, 302462306a36Sopenharmony_ci .clkr = { 302562306a36Sopenharmony_ci .enable_reg = 0x68264, 302662306a36Sopenharmony_ci .enable_mask = BIT(0), 302762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 302862306a36Sopenharmony_ci .name = "gcc_nss_port5_tx_clk", 302962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 303062306a36Sopenharmony_ci &nss_port5_tx_div_clk_src.clkr.hw }, 303162306a36Sopenharmony_ci .num_parents = 1, 303262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 303362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 303462306a36Sopenharmony_ci }, 303562306a36Sopenharmony_ci }, 303662306a36Sopenharmony_ci}; 303762306a36Sopenharmony_ci 303862306a36Sopenharmony_cistatic struct clk_branch gcc_nss_ppe_cfg_clk = { 303962306a36Sopenharmony_ci .halt_reg = 0x68194, 304062306a36Sopenharmony_ci .clkr = { 304162306a36Sopenharmony_ci .enable_reg = 0x68194, 304262306a36Sopenharmony_ci .enable_mask = BIT(0), 304362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 304462306a36Sopenharmony_ci .name = "gcc_nss_ppe_cfg_clk", 304562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 304662306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 304762306a36Sopenharmony_ci .num_parents = 1, 304862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 304962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 305062306a36Sopenharmony_ci }, 305162306a36Sopenharmony_ci }, 305262306a36Sopenharmony_ci}; 305362306a36Sopenharmony_ci 305462306a36Sopenharmony_cistatic struct clk_branch gcc_nss_ppe_clk = { 305562306a36Sopenharmony_ci .halt_reg = 0x68190, 305662306a36Sopenharmony_ci .clkr = { 305762306a36Sopenharmony_ci .enable_reg = 0x68190, 305862306a36Sopenharmony_ci .enable_mask = BIT(0), 305962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 306062306a36Sopenharmony_ci .name = "gcc_nss_ppe_clk", 306162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 306262306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 306362306a36Sopenharmony_ci .num_parents = 1, 306462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 306562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 306662306a36Sopenharmony_ci }, 306762306a36Sopenharmony_ci }, 306862306a36Sopenharmony_ci}; 306962306a36Sopenharmony_ci 307062306a36Sopenharmony_cistatic struct clk_branch gcc_nss_ppe_ipe_clk = { 307162306a36Sopenharmony_ci .halt_reg = 0x68338, 307262306a36Sopenharmony_ci .clkr = { 307362306a36Sopenharmony_ci .enable_reg = 0x68338, 307462306a36Sopenharmony_ci .enable_mask = BIT(0), 307562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 307662306a36Sopenharmony_ci .name = "gcc_nss_ppe_ipe_clk", 307762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 307862306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 307962306a36Sopenharmony_ci .num_parents = 1, 308062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 308162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 308262306a36Sopenharmony_ci }, 308362306a36Sopenharmony_ci }, 308462306a36Sopenharmony_ci}; 308562306a36Sopenharmony_ci 308662306a36Sopenharmony_cistatic struct clk_branch gcc_nss_ptp_ref_clk = { 308762306a36Sopenharmony_ci .halt_reg = 0x6816C, 308862306a36Sopenharmony_ci .clkr = { 308962306a36Sopenharmony_ci .enable_reg = 0x6816C, 309062306a36Sopenharmony_ci .enable_mask = BIT(0), 309162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 309262306a36Sopenharmony_ci .name = "gcc_nss_ptp_ref_clk", 309362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 309462306a36Sopenharmony_ci &nss_ppe_cdiv_clk_src.hw }, 309562306a36Sopenharmony_ci .num_parents = 1, 309662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 309762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 309862306a36Sopenharmony_ci }, 309962306a36Sopenharmony_ci }, 310062306a36Sopenharmony_ci}; 310162306a36Sopenharmony_ci 310262306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_ce_apb_clk = { 310362306a36Sopenharmony_ci .halt_reg = 0x6830C, 310462306a36Sopenharmony_ci .clkr = { 310562306a36Sopenharmony_ci .enable_reg = 0x6830C, 310662306a36Sopenharmony_ci .enable_mask = BIT(0), 310762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 310862306a36Sopenharmony_ci .name = "gcc_nssnoc_ce_apb_clk", 310962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 311062306a36Sopenharmony_ci &nss_ce_clk_src.clkr.hw }, 311162306a36Sopenharmony_ci .num_parents = 1, 311262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 311362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 311462306a36Sopenharmony_ci }, 311562306a36Sopenharmony_ci }, 311662306a36Sopenharmony_ci}; 311762306a36Sopenharmony_ci 311862306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_ce_axi_clk = { 311962306a36Sopenharmony_ci .halt_reg = 0x68308, 312062306a36Sopenharmony_ci .clkr = { 312162306a36Sopenharmony_ci .enable_reg = 0x68308, 312262306a36Sopenharmony_ci .enable_mask = BIT(0), 312362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 312462306a36Sopenharmony_ci .name = "gcc_nssnoc_ce_axi_clk", 312562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 312662306a36Sopenharmony_ci &nss_ce_clk_src.clkr.hw }, 312762306a36Sopenharmony_ci .num_parents = 1, 312862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 312962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 313062306a36Sopenharmony_ci }, 313162306a36Sopenharmony_ci }, 313262306a36Sopenharmony_ci}; 313362306a36Sopenharmony_ci 313462306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_crypto_clk = { 313562306a36Sopenharmony_ci .halt_reg = 0x68314, 313662306a36Sopenharmony_ci .clkr = { 313762306a36Sopenharmony_ci .enable_reg = 0x68314, 313862306a36Sopenharmony_ci .enable_mask = BIT(0), 313962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 314062306a36Sopenharmony_ci .name = "gcc_nssnoc_crypto_clk", 314162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 314262306a36Sopenharmony_ci &nss_crypto_clk_src.clkr.hw }, 314362306a36Sopenharmony_ci .num_parents = 1, 314462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 314562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 314662306a36Sopenharmony_ci }, 314762306a36Sopenharmony_ci }, 314862306a36Sopenharmony_ci}; 314962306a36Sopenharmony_ci 315062306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_ppe_cfg_clk = { 315162306a36Sopenharmony_ci .halt_reg = 0x68304, 315262306a36Sopenharmony_ci .clkr = { 315362306a36Sopenharmony_ci .enable_reg = 0x68304, 315462306a36Sopenharmony_ci .enable_mask = BIT(0), 315562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 315662306a36Sopenharmony_ci .name = "gcc_nssnoc_ppe_cfg_clk", 315762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 315862306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 315962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 316062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 316162306a36Sopenharmony_ci }, 316262306a36Sopenharmony_ci }, 316362306a36Sopenharmony_ci}; 316462306a36Sopenharmony_ci 316562306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_ppe_clk = { 316662306a36Sopenharmony_ci .halt_reg = 0x68300, 316762306a36Sopenharmony_ci .clkr = { 316862306a36Sopenharmony_ci .enable_reg = 0x68300, 316962306a36Sopenharmony_ci .enable_mask = BIT(0), 317062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 317162306a36Sopenharmony_ci .name = "gcc_nssnoc_ppe_clk", 317262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 317362306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 317462306a36Sopenharmony_ci .num_parents = 1, 317562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 317662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 317762306a36Sopenharmony_ci }, 317862306a36Sopenharmony_ci }, 317962306a36Sopenharmony_ci}; 318062306a36Sopenharmony_ci 318162306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_qosgen_ref_clk = { 318262306a36Sopenharmony_ci .halt_reg = 0x68180, 318362306a36Sopenharmony_ci .clkr = { 318462306a36Sopenharmony_ci .enable_reg = 0x68180, 318562306a36Sopenharmony_ci .enable_mask = BIT(0), 318662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 318762306a36Sopenharmony_ci .name = "gcc_nssnoc_qosgen_ref_clk", 318862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 318962306a36Sopenharmony_ci &gcc_xo_clk_src.clkr.hw }, 319062306a36Sopenharmony_ci .num_parents = 1, 319162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 319262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 319362306a36Sopenharmony_ci }, 319462306a36Sopenharmony_ci }, 319562306a36Sopenharmony_ci}; 319662306a36Sopenharmony_ci 319762306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_snoc_clk = { 319862306a36Sopenharmony_ci .halt_reg = 0x68188, 319962306a36Sopenharmony_ci .clkr = { 320062306a36Sopenharmony_ci .enable_reg = 0x68188, 320162306a36Sopenharmony_ci .enable_mask = BIT(0), 320262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 320362306a36Sopenharmony_ci .name = "gcc_nssnoc_snoc_clk", 320462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 320562306a36Sopenharmony_ci &system_noc_bfdcd_clk_src.clkr.hw }, 320662306a36Sopenharmony_ci .num_parents = 1, 320762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 320862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 320962306a36Sopenharmony_ci }, 321062306a36Sopenharmony_ci }, 321162306a36Sopenharmony_ci}; 321262306a36Sopenharmony_ci 321362306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_timeout_ref_clk = { 321462306a36Sopenharmony_ci .halt_reg = 0x68184, 321562306a36Sopenharmony_ci .clkr = { 321662306a36Sopenharmony_ci .enable_reg = 0x68184, 321762306a36Sopenharmony_ci .enable_mask = BIT(0), 321862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 321962306a36Sopenharmony_ci .name = "gcc_nssnoc_timeout_ref_clk", 322062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 322162306a36Sopenharmony_ci &gcc_xo_div4_clk_src.hw }, 322262306a36Sopenharmony_ci .num_parents = 1, 322362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 322462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 322562306a36Sopenharmony_ci }, 322662306a36Sopenharmony_ci }, 322762306a36Sopenharmony_ci}; 322862306a36Sopenharmony_ci 322962306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_ubi0_ahb_clk = { 323062306a36Sopenharmony_ci .halt_reg = 0x68270, 323162306a36Sopenharmony_ci .clkr = { 323262306a36Sopenharmony_ci .enable_reg = 0x68270, 323362306a36Sopenharmony_ci .enable_mask = BIT(0), 323462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 323562306a36Sopenharmony_ci .name = "gcc_nssnoc_ubi0_ahb_clk", 323662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 323762306a36Sopenharmony_ci &nss_ce_clk_src.clkr.hw }, 323862306a36Sopenharmony_ci .num_parents = 1, 323962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 324062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 324162306a36Sopenharmony_ci }, 324262306a36Sopenharmony_ci }, 324362306a36Sopenharmony_ci}; 324462306a36Sopenharmony_ci 324562306a36Sopenharmony_cistatic struct clk_branch gcc_port1_mac_clk = { 324662306a36Sopenharmony_ci .halt_reg = 0x68320, 324762306a36Sopenharmony_ci .clkr = { 324862306a36Sopenharmony_ci .enable_reg = 0x68320, 324962306a36Sopenharmony_ci .enable_mask = BIT(0), 325062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 325162306a36Sopenharmony_ci .name = "gcc_port1_mac_clk", 325262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 325362306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 325462306a36Sopenharmony_ci .num_parents = 1, 325562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 325662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 325762306a36Sopenharmony_ci }, 325862306a36Sopenharmony_ci }, 325962306a36Sopenharmony_ci}; 326062306a36Sopenharmony_ci 326162306a36Sopenharmony_cistatic struct clk_branch gcc_port2_mac_clk = { 326262306a36Sopenharmony_ci .halt_reg = 0x68324, 326362306a36Sopenharmony_ci .clkr = { 326462306a36Sopenharmony_ci .enable_reg = 0x68324, 326562306a36Sopenharmony_ci .enable_mask = BIT(0), 326662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 326762306a36Sopenharmony_ci .name = "gcc_port2_mac_clk", 326862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 326962306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 327062306a36Sopenharmony_ci .num_parents = 1, 327162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 327262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 327362306a36Sopenharmony_ci }, 327462306a36Sopenharmony_ci }, 327562306a36Sopenharmony_ci}; 327662306a36Sopenharmony_ci 327762306a36Sopenharmony_cistatic struct clk_branch gcc_port3_mac_clk = { 327862306a36Sopenharmony_ci .halt_reg = 0x68328, 327962306a36Sopenharmony_ci .clkr = { 328062306a36Sopenharmony_ci .enable_reg = 0x68328, 328162306a36Sopenharmony_ci .enable_mask = BIT(0), 328262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 328362306a36Sopenharmony_ci .name = "gcc_port3_mac_clk", 328462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 328562306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 328662306a36Sopenharmony_ci .num_parents = 1, 328762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 328862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 328962306a36Sopenharmony_ci }, 329062306a36Sopenharmony_ci }, 329162306a36Sopenharmony_ci}; 329262306a36Sopenharmony_ci 329362306a36Sopenharmony_cistatic struct clk_branch gcc_port4_mac_clk = { 329462306a36Sopenharmony_ci .halt_reg = 0x6832c, 329562306a36Sopenharmony_ci .clkr = { 329662306a36Sopenharmony_ci .enable_reg = 0x6832c, 329762306a36Sopenharmony_ci .enable_mask = BIT(0), 329862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 329962306a36Sopenharmony_ci .name = "gcc_port4_mac_clk", 330062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 330162306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 330262306a36Sopenharmony_ci .num_parents = 1, 330362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 330462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 330562306a36Sopenharmony_ci }, 330662306a36Sopenharmony_ci }, 330762306a36Sopenharmony_ci}; 330862306a36Sopenharmony_ci 330962306a36Sopenharmony_cistatic struct clk_branch gcc_port5_mac_clk = { 331062306a36Sopenharmony_ci .halt_reg = 0x68330, 331162306a36Sopenharmony_ci .clkr = { 331262306a36Sopenharmony_ci .enable_reg = 0x68330, 331362306a36Sopenharmony_ci .enable_mask = BIT(0), 331462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 331562306a36Sopenharmony_ci .name = "gcc_port5_mac_clk", 331662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 331762306a36Sopenharmony_ci &nss_ppe_clk_src.clkr.hw }, 331862306a36Sopenharmony_ci .num_parents = 1, 331962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 332062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 332162306a36Sopenharmony_ci }, 332262306a36Sopenharmony_ci }, 332362306a36Sopenharmony_ci}; 332462306a36Sopenharmony_ci 332562306a36Sopenharmony_cistatic struct clk_branch gcc_ubi0_ahb_clk = { 332662306a36Sopenharmony_ci .halt_reg = 0x6820C, 332762306a36Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 332862306a36Sopenharmony_ci .clkr = { 332962306a36Sopenharmony_ci .enable_reg = 0x6820C, 333062306a36Sopenharmony_ci .enable_mask = BIT(0), 333162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 333262306a36Sopenharmony_ci .name = "gcc_ubi0_ahb_clk", 333362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 333462306a36Sopenharmony_ci &nss_ce_clk_src.clkr.hw }, 333562306a36Sopenharmony_ci .num_parents = 1, 333662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 333762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 333862306a36Sopenharmony_ci }, 333962306a36Sopenharmony_ci }, 334062306a36Sopenharmony_ci}; 334162306a36Sopenharmony_ci 334262306a36Sopenharmony_cistatic struct clk_branch gcc_ubi0_axi_clk = { 334362306a36Sopenharmony_ci .halt_reg = 0x68200, 334462306a36Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 334562306a36Sopenharmony_ci .clkr = { 334662306a36Sopenharmony_ci .enable_reg = 0x68200, 334762306a36Sopenharmony_ci .enable_mask = BIT(0), 334862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 334962306a36Sopenharmony_ci .name = "gcc_ubi0_axi_clk", 335062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 335162306a36Sopenharmony_ci &ubi32_mem_noc_bfdcd_clk_src.clkr.hw }, 335262306a36Sopenharmony_ci .num_parents = 1, 335362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 335462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 335562306a36Sopenharmony_ci }, 335662306a36Sopenharmony_ci }, 335762306a36Sopenharmony_ci}; 335862306a36Sopenharmony_ci 335962306a36Sopenharmony_cistatic struct clk_branch gcc_ubi0_nc_axi_clk = { 336062306a36Sopenharmony_ci .halt_reg = 0x68204, 336162306a36Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 336262306a36Sopenharmony_ci .clkr = { 336362306a36Sopenharmony_ci .enable_reg = 0x68204, 336462306a36Sopenharmony_ci .enable_mask = BIT(0), 336562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 336662306a36Sopenharmony_ci .name = "gcc_ubi0_nc_axi_clk", 336762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 336862306a36Sopenharmony_ci &snoc_nssnoc_bfdcd_clk_src.clkr.hw }, 336962306a36Sopenharmony_ci .num_parents = 1, 337062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 337162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 337262306a36Sopenharmony_ci }, 337362306a36Sopenharmony_ci }, 337462306a36Sopenharmony_ci}; 337562306a36Sopenharmony_ci 337662306a36Sopenharmony_cistatic struct clk_branch gcc_ubi0_core_clk = { 337762306a36Sopenharmony_ci .halt_reg = 0x68210, 337862306a36Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 337962306a36Sopenharmony_ci .clkr = { 338062306a36Sopenharmony_ci .enable_reg = 0x68210, 338162306a36Sopenharmony_ci .enable_mask = BIT(0), 338262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 338362306a36Sopenharmony_ci .name = "gcc_ubi0_core_clk", 338462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 338562306a36Sopenharmony_ci &nss_ubi0_div_clk_src.clkr.hw }, 338662306a36Sopenharmony_ci .num_parents = 1, 338762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 338862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 338962306a36Sopenharmony_ci }, 339062306a36Sopenharmony_ci }, 339162306a36Sopenharmony_ci}; 339262306a36Sopenharmony_ci 339362306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_ahb_clk = { 339462306a36Sopenharmony_ci .halt_reg = 0x75010, 339562306a36Sopenharmony_ci .clkr = { 339662306a36Sopenharmony_ci .enable_reg = 0x75010, 339762306a36Sopenharmony_ci .enable_mask = BIT(0), 339862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 339962306a36Sopenharmony_ci .name = "gcc_pcie0_ahb_clk", 340062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 340162306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 340262306a36Sopenharmony_ci .num_parents = 1, 340362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 340462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 340562306a36Sopenharmony_ci }, 340662306a36Sopenharmony_ci }, 340762306a36Sopenharmony_ci}; 340862306a36Sopenharmony_ci 340962306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_aux_clk = { 341062306a36Sopenharmony_ci .halt_reg = 0x75014, 341162306a36Sopenharmony_ci .clkr = { 341262306a36Sopenharmony_ci .enable_reg = 0x75014, 341362306a36Sopenharmony_ci .enable_mask = BIT(0), 341462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 341562306a36Sopenharmony_ci .name = "gcc_pcie0_aux_clk", 341662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 341762306a36Sopenharmony_ci &pcie0_aux_clk_src.clkr.hw }, 341862306a36Sopenharmony_ci .num_parents = 1, 341962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 342062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 342162306a36Sopenharmony_ci }, 342262306a36Sopenharmony_ci }, 342362306a36Sopenharmony_ci}; 342462306a36Sopenharmony_ci 342562306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_axi_m_clk = { 342662306a36Sopenharmony_ci .halt_reg = 0x75008, 342762306a36Sopenharmony_ci .clkr = { 342862306a36Sopenharmony_ci .enable_reg = 0x75008, 342962306a36Sopenharmony_ci .enable_mask = BIT(0), 343062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 343162306a36Sopenharmony_ci .name = "gcc_pcie0_axi_m_clk", 343262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 343362306a36Sopenharmony_ci &pcie0_axi_clk_src.clkr.hw }, 343462306a36Sopenharmony_ci .num_parents = 1, 343562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 343662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 343762306a36Sopenharmony_ci }, 343862306a36Sopenharmony_ci }, 343962306a36Sopenharmony_ci}; 344062306a36Sopenharmony_ci 344162306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_axi_s_clk = { 344262306a36Sopenharmony_ci .halt_reg = 0x7500c, 344362306a36Sopenharmony_ci .clkr = { 344462306a36Sopenharmony_ci .enable_reg = 0x7500c, 344562306a36Sopenharmony_ci .enable_mask = BIT(0), 344662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 344762306a36Sopenharmony_ci .name = "gcc_pcie0_axi_s_clk", 344862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 344962306a36Sopenharmony_ci &pcie0_axi_clk_src.clkr.hw }, 345062306a36Sopenharmony_ci .num_parents = 1, 345162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 345262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 345362306a36Sopenharmony_ci }, 345462306a36Sopenharmony_ci }, 345562306a36Sopenharmony_ci}; 345662306a36Sopenharmony_ci 345762306a36Sopenharmony_cistatic struct clk_branch gcc_sys_noc_pcie0_axi_clk = { 345862306a36Sopenharmony_ci .halt_reg = 0x26048, 345962306a36Sopenharmony_ci .clkr = { 346062306a36Sopenharmony_ci .enable_reg = 0x26048, 346162306a36Sopenharmony_ci .enable_mask = BIT(0), 346262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 346362306a36Sopenharmony_ci .name = "gcc_sys_noc_pcie0_axi_clk", 346462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 346562306a36Sopenharmony_ci &pcie0_axi_clk_src.clkr.hw }, 346662306a36Sopenharmony_ci .num_parents = 1, 346762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 346862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 346962306a36Sopenharmony_ci }, 347062306a36Sopenharmony_ci }, 347162306a36Sopenharmony_ci}; 347262306a36Sopenharmony_ci 347362306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_pipe_clk = { 347462306a36Sopenharmony_ci .halt_reg = 0x75018, 347562306a36Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 347662306a36Sopenharmony_ci .clkr = { 347762306a36Sopenharmony_ci .enable_reg = 0x75018, 347862306a36Sopenharmony_ci .enable_mask = BIT(0), 347962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 348062306a36Sopenharmony_ci .name = "gcc_pcie0_pipe_clk", 348162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 348262306a36Sopenharmony_ci &pcie0_pipe_clk_src.clkr.hw }, 348362306a36Sopenharmony_ci .num_parents = 1, 348462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 348562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 348662306a36Sopenharmony_ci }, 348762306a36Sopenharmony_ci }, 348862306a36Sopenharmony_ci}; 348962306a36Sopenharmony_ci 349062306a36Sopenharmony_cistatic struct clk_branch gcc_prng_ahb_clk = { 349162306a36Sopenharmony_ci .halt_reg = 0x13004, 349262306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 349362306a36Sopenharmony_ci .clkr = { 349462306a36Sopenharmony_ci .enable_reg = 0x0b004, 349562306a36Sopenharmony_ci .enable_mask = BIT(8), 349662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 349762306a36Sopenharmony_ci .name = "gcc_prng_ahb_clk", 349862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 349962306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 350062306a36Sopenharmony_ci .num_parents = 1, 350162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 350262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 350362306a36Sopenharmony_ci }, 350462306a36Sopenharmony_ci }, 350562306a36Sopenharmony_ci}; 350662306a36Sopenharmony_ci 350762306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_dap_clk = { 350862306a36Sopenharmony_ci .halt_reg = 0x29084, 350962306a36Sopenharmony_ci .clkr = { 351062306a36Sopenharmony_ci .enable_reg = 0x29084, 351162306a36Sopenharmony_ci .enable_mask = BIT(0), 351262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 351362306a36Sopenharmony_ci .name = "gcc_qdss_dap_clk", 351462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 351562306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw }, 351662306a36Sopenharmony_ci .num_parents = 1, 351762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 351862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 351962306a36Sopenharmony_ci }, 352062306a36Sopenharmony_ci }, 352162306a36Sopenharmony_ci}; 352262306a36Sopenharmony_ci 352362306a36Sopenharmony_cistatic struct clk_branch gcc_qpic_ahb_clk = { 352462306a36Sopenharmony_ci .halt_reg = 0x57024, 352562306a36Sopenharmony_ci .clkr = { 352662306a36Sopenharmony_ci .enable_reg = 0x57024, 352762306a36Sopenharmony_ci .enable_mask = BIT(0), 352862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 352962306a36Sopenharmony_ci .name = "gcc_qpic_ahb_clk", 353062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 353162306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 353262306a36Sopenharmony_ci .num_parents = 1, 353362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 353462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 353562306a36Sopenharmony_ci }, 353662306a36Sopenharmony_ci }, 353762306a36Sopenharmony_ci}; 353862306a36Sopenharmony_ci 353962306a36Sopenharmony_cistatic struct clk_branch gcc_qpic_clk = { 354062306a36Sopenharmony_ci .halt_reg = 0x57020, 354162306a36Sopenharmony_ci .clkr = { 354262306a36Sopenharmony_ci .enable_reg = 0x57020, 354362306a36Sopenharmony_ci .enable_mask = BIT(0), 354462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 354562306a36Sopenharmony_ci .name = "gcc_qpic_clk", 354662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 354762306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 354862306a36Sopenharmony_ci .num_parents = 1, 354962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 355062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 355162306a36Sopenharmony_ci }, 355262306a36Sopenharmony_ci }, 355362306a36Sopenharmony_ci}; 355462306a36Sopenharmony_ci 355562306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ahb_clk = { 355662306a36Sopenharmony_ci .halt_reg = 0x4201c, 355762306a36Sopenharmony_ci .clkr = { 355862306a36Sopenharmony_ci .enable_reg = 0x4201c, 355962306a36Sopenharmony_ci .enable_mask = BIT(0), 356062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 356162306a36Sopenharmony_ci .name = "gcc_sdcc1_ahb_clk", 356262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 356362306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 356462306a36Sopenharmony_ci .num_parents = 1, 356562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 356662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 356762306a36Sopenharmony_ci }, 356862306a36Sopenharmony_ci }, 356962306a36Sopenharmony_ci}; 357062306a36Sopenharmony_ci 357162306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_apps_clk = { 357262306a36Sopenharmony_ci .halt_reg = 0x42018, 357362306a36Sopenharmony_ci .clkr = { 357462306a36Sopenharmony_ci .enable_reg = 0x42018, 357562306a36Sopenharmony_ci .enable_mask = BIT(0), 357662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 357762306a36Sopenharmony_ci .name = "gcc_sdcc1_apps_clk", 357862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 357962306a36Sopenharmony_ci &sdcc1_apps_clk_src.clkr.hw }, 358062306a36Sopenharmony_ci .num_parents = 1, 358162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 358262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 358362306a36Sopenharmony_ci }, 358462306a36Sopenharmony_ci }, 358562306a36Sopenharmony_ci}; 358662306a36Sopenharmony_ci 358762306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_ahb_clk = { 358862306a36Sopenharmony_ci .halt_reg = 0x56008, 358962306a36Sopenharmony_ci .clkr = { 359062306a36Sopenharmony_ci .enable_reg = 0x56008, 359162306a36Sopenharmony_ci .enable_mask = BIT(0), 359262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 359362306a36Sopenharmony_ci .name = "gcc_uniphy0_ahb_clk", 359462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 359562306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 359662306a36Sopenharmony_ci .num_parents = 1, 359762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 359862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 359962306a36Sopenharmony_ci }, 360062306a36Sopenharmony_ci }, 360162306a36Sopenharmony_ci}; 360262306a36Sopenharmony_ci 360362306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port1_rx_clk = { 360462306a36Sopenharmony_ci .halt_reg = 0x56010, 360562306a36Sopenharmony_ci .clkr = { 360662306a36Sopenharmony_ci .enable_reg = 0x56010, 360762306a36Sopenharmony_ci .enable_mask = BIT(0), 360862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 360962306a36Sopenharmony_ci .name = "gcc_uniphy0_port1_rx_clk", 361062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 361162306a36Sopenharmony_ci &nss_port1_rx_div_clk_src.clkr.hw }, 361262306a36Sopenharmony_ci .num_parents = 1, 361362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 361462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 361562306a36Sopenharmony_ci }, 361662306a36Sopenharmony_ci }, 361762306a36Sopenharmony_ci}; 361862306a36Sopenharmony_ci 361962306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port1_tx_clk = { 362062306a36Sopenharmony_ci .halt_reg = 0x56014, 362162306a36Sopenharmony_ci .clkr = { 362262306a36Sopenharmony_ci .enable_reg = 0x56014, 362362306a36Sopenharmony_ci .enable_mask = BIT(0), 362462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 362562306a36Sopenharmony_ci .name = "gcc_uniphy0_port1_tx_clk", 362662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 362762306a36Sopenharmony_ci &nss_port1_tx_div_clk_src.clkr.hw }, 362862306a36Sopenharmony_ci .num_parents = 1, 362962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 363062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 363162306a36Sopenharmony_ci }, 363262306a36Sopenharmony_ci }, 363362306a36Sopenharmony_ci}; 363462306a36Sopenharmony_ci 363562306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port2_rx_clk = { 363662306a36Sopenharmony_ci .halt_reg = 0x56018, 363762306a36Sopenharmony_ci .clkr = { 363862306a36Sopenharmony_ci .enable_reg = 0x56018, 363962306a36Sopenharmony_ci .enable_mask = BIT(0), 364062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 364162306a36Sopenharmony_ci .name = "gcc_uniphy0_port2_rx_clk", 364262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 364362306a36Sopenharmony_ci &nss_port2_rx_div_clk_src.clkr.hw }, 364462306a36Sopenharmony_ci .num_parents = 1, 364562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 364662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 364762306a36Sopenharmony_ci }, 364862306a36Sopenharmony_ci }, 364962306a36Sopenharmony_ci}; 365062306a36Sopenharmony_ci 365162306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port2_tx_clk = { 365262306a36Sopenharmony_ci .halt_reg = 0x5601c, 365362306a36Sopenharmony_ci .clkr = { 365462306a36Sopenharmony_ci .enable_reg = 0x5601c, 365562306a36Sopenharmony_ci .enable_mask = BIT(0), 365662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 365762306a36Sopenharmony_ci .name = "gcc_uniphy0_port2_tx_clk", 365862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 365962306a36Sopenharmony_ci &nss_port2_tx_div_clk_src.clkr.hw }, 366062306a36Sopenharmony_ci .num_parents = 1, 366162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 366262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 366362306a36Sopenharmony_ci }, 366462306a36Sopenharmony_ci }, 366562306a36Sopenharmony_ci}; 366662306a36Sopenharmony_ci 366762306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port3_rx_clk = { 366862306a36Sopenharmony_ci .halt_reg = 0x56020, 366962306a36Sopenharmony_ci .clkr = { 367062306a36Sopenharmony_ci .enable_reg = 0x56020, 367162306a36Sopenharmony_ci .enable_mask = BIT(0), 367262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 367362306a36Sopenharmony_ci .name = "gcc_uniphy0_port3_rx_clk", 367462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 367562306a36Sopenharmony_ci &nss_port3_rx_div_clk_src.clkr.hw }, 367662306a36Sopenharmony_ci .num_parents = 1, 367762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 367862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 367962306a36Sopenharmony_ci }, 368062306a36Sopenharmony_ci }, 368162306a36Sopenharmony_ci}; 368262306a36Sopenharmony_ci 368362306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port3_tx_clk = { 368462306a36Sopenharmony_ci .halt_reg = 0x56024, 368562306a36Sopenharmony_ci .clkr = { 368662306a36Sopenharmony_ci .enable_reg = 0x56024, 368762306a36Sopenharmony_ci .enable_mask = BIT(0), 368862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 368962306a36Sopenharmony_ci .name = "gcc_uniphy0_port3_tx_clk", 369062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 369162306a36Sopenharmony_ci &nss_port3_tx_div_clk_src.clkr.hw }, 369262306a36Sopenharmony_ci .num_parents = 1, 369362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 369462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 369562306a36Sopenharmony_ci }, 369662306a36Sopenharmony_ci }, 369762306a36Sopenharmony_ci}; 369862306a36Sopenharmony_ci 369962306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port4_rx_clk = { 370062306a36Sopenharmony_ci .halt_reg = 0x56028, 370162306a36Sopenharmony_ci .clkr = { 370262306a36Sopenharmony_ci .enable_reg = 0x56028, 370362306a36Sopenharmony_ci .enable_mask = BIT(0), 370462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 370562306a36Sopenharmony_ci .name = "gcc_uniphy0_port4_rx_clk", 370662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 370762306a36Sopenharmony_ci &nss_port4_rx_div_clk_src.clkr.hw }, 370862306a36Sopenharmony_ci .num_parents = 1, 370962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 371062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 371162306a36Sopenharmony_ci }, 371262306a36Sopenharmony_ci }, 371362306a36Sopenharmony_ci}; 371462306a36Sopenharmony_ci 371562306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port4_tx_clk = { 371662306a36Sopenharmony_ci .halt_reg = 0x5602c, 371762306a36Sopenharmony_ci .clkr = { 371862306a36Sopenharmony_ci .enable_reg = 0x5602c, 371962306a36Sopenharmony_ci .enable_mask = BIT(0), 372062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 372162306a36Sopenharmony_ci .name = "gcc_uniphy0_port4_tx_clk", 372262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 372362306a36Sopenharmony_ci &nss_port4_tx_div_clk_src.clkr.hw }, 372462306a36Sopenharmony_ci .num_parents = 1, 372562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 372662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 372762306a36Sopenharmony_ci }, 372862306a36Sopenharmony_ci }, 372962306a36Sopenharmony_ci}; 373062306a36Sopenharmony_ci 373162306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port5_rx_clk = { 373262306a36Sopenharmony_ci .halt_reg = 0x56030, 373362306a36Sopenharmony_ci .clkr = { 373462306a36Sopenharmony_ci .enable_reg = 0x56030, 373562306a36Sopenharmony_ci .enable_mask = BIT(0), 373662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 373762306a36Sopenharmony_ci .name = "gcc_uniphy0_port5_rx_clk", 373862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 373962306a36Sopenharmony_ci &nss_port5_rx_div_clk_src.clkr.hw }, 374062306a36Sopenharmony_ci .num_parents = 1, 374162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 374262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 374362306a36Sopenharmony_ci }, 374462306a36Sopenharmony_ci }, 374562306a36Sopenharmony_ci}; 374662306a36Sopenharmony_ci 374762306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_port5_tx_clk = { 374862306a36Sopenharmony_ci .halt_reg = 0x56034, 374962306a36Sopenharmony_ci .clkr = { 375062306a36Sopenharmony_ci .enable_reg = 0x56034, 375162306a36Sopenharmony_ci .enable_mask = BIT(0), 375262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 375362306a36Sopenharmony_ci .name = "gcc_uniphy0_port5_tx_clk", 375462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 375562306a36Sopenharmony_ci &nss_port5_tx_div_clk_src.clkr.hw }, 375662306a36Sopenharmony_ci .num_parents = 1, 375762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 375862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 375962306a36Sopenharmony_ci }, 376062306a36Sopenharmony_ci }, 376162306a36Sopenharmony_ci}; 376262306a36Sopenharmony_ci 376362306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_sys_clk = { 376462306a36Sopenharmony_ci .halt_reg = 0x5600C, 376562306a36Sopenharmony_ci .clkr = { 376662306a36Sopenharmony_ci .enable_reg = 0x5600C, 376762306a36Sopenharmony_ci .enable_mask = BIT(0), 376862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 376962306a36Sopenharmony_ci .name = "gcc_uniphy0_sys_clk", 377062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 377162306a36Sopenharmony_ci &gcc_xo_clk_src.clkr.hw }, 377262306a36Sopenharmony_ci .num_parents = 1, 377362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 377462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 377562306a36Sopenharmony_ci }, 377662306a36Sopenharmony_ci }, 377762306a36Sopenharmony_ci}; 377862306a36Sopenharmony_ci 377962306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy1_ahb_clk = { 378062306a36Sopenharmony_ci .halt_reg = 0x56108, 378162306a36Sopenharmony_ci .clkr = { 378262306a36Sopenharmony_ci .enable_reg = 0x56108, 378362306a36Sopenharmony_ci .enable_mask = BIT(0), 378462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 378562306a36Sopenharmony_ci .name = "gcc_uniphy1_ahb_clk", 378662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 378762306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 378862306a36Sopenharmony_ci .num_parents = 1, 378962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 379062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 379162306a36Sopenharmony_ci }, 379262306a36Sopenharmony_ci }, 379362306a36Sopenharmony_ci}; 379462306a36Sopenharmony_ci 379562306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy1_port5_rx_clk = { 379662306a36Sopenharmony_ci .halt_reg = 0x56110, 379762306a36Sopenharmony_ci .clkr = { 379862306a36Sopenharmony_ci .enable_reg = 0x56110, 379962306a36Sopenharmony_ci .enable_mask = BIT(0), 380062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 380162306a36Sopenharmony_ci .name = "gcc_uniphy1_port5_rx_clk", 380262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 380362306a36Sopenharmony_ci &nss_port5_rx_div_clk_src.clkr.hw }, 380462306a36Sopenharmony_ci .num_parents = 1, 380562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 380662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 380762306a36Sopenharmony_ci }, 380862306a36Sopenharmony_ci }, 380962306a36Sopenharmony_ci}; 381062306a36Sopenharmony_ci 381162306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy1_port5_tx_clk = { 381262306a36Sopenharmony_ci .halt_reg = 0x56114, 381362306a36Sopenharmony_ci .clkr = { 381462306a36Sopenharmony_ci .enable_reg = 0x56114, 381562306a36Sopenharmony_ci .enable_mask = BIT(0), 381662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 381762306a36Sopenharmony_ci .name = "gcc_uniphy1_port5_tx_clk", 381862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 381962306a36Sopenharmony_ci &nss_port5_tx_div_clk_src.clkr.hw }, 382062306a36Sopenharmony_ci .num_parents = 1, 382162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 382262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 382362306a36Sopenharmony_ci }, 382462306a36Sopenharmony_ci }, 382562306a36Sopenharmony_ci}; 382662306a36Sopenharmony_ci 382762306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy1_sys_clk = { 382862306a36Sopenharmony_ci .halt_reg = 0x5610C, 382962306a36Sopenharmony_ci .clkr = { 383062306a36Sopenharmony_ci .enable_reg = 0x5610C, 383162306a36Sopenharmony_ci .enable_mask = BIT(0), 383262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 383362306a36Sopenharmony_ci .name = "gcc_uniphy1_sys_clk", 383462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 383562306a36Sopenharmony_ci &gcc_xo_clk_src.clkr.hw }, 383662306a36Sopenharmony_ci .num_parents = 1, 383762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 383862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 383962306a36Sopenharmony_ci }, 384062306a36Sopenharmony_ci }, 384162306a36Sopenharmony_ci}; 384262306a36Sopenharmony_ci 384362306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_aux_clk = { 384462306a36Sopenharmony_ci .halt_reg = 0x3e044, 384562306a36Sopenharmony_ci .clkr = { 384662306a36Sopenharmony_ci .enable_reg = 0x3e044, 384762306a36Sopenharmony_ci .enable_mask = BIT(0), 384862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 384962306a36Sopenharmony_ci .name = "gcc_usb0_aux_clk", 385062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 385162306a36Sopenharmony_ci &usb0_aux_clk_src.clkr.hw }, 385262306a36Sopenharmony_ci .num_parents = 1, 385362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 385462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 385562306a36Sopenharmony_ci }, 385662306a36Sopenharmony_ci }, 385762306a36Sopenharmony_ci}; 385862306a36Sopenharmony_ci 385962306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_master_clk = { 386062306a36Sopenharmony_ci .halt_reg = 0x3e000, 386162306a36Sopenharmony_ci .clkr = { 386262306a36Sopenharmony_ci .enable_reg = 0x3e000, 386362306a36Sopenharmony_ci .enable_mask = BIT(0), 386462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 386562306a36Sopenharmony_ci .name = "gcc_usb0_master_clk", 386662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 386762306a36Sopenharmony_ci &usb0_master_clk_src.clkr.hw }, 386862306a36Sopenharmony_ci .num_parents = 1, 386962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 387062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 387162306a36Sopenharmony_ci }, 387262306a36Sopenharmony_ci }, 387362306a36Sopenharmony_ci}; 387462306a36Sopenharmony_ci 387562306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_bus_timeout2_ahb_clk = { 387662306a36Sopenharmony_ci .halt_reg = 0x47014, 387762306a36Sopenharmony_ci .clkr = { 387862306a36Sopenharmony_ci .enable_reg = 0x47014, 387962306a36Sopenharmony_ci .enable_mask = BIT(0), 388062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 388162306a36Sopenharmony_ci .name = "gcc_snoc_bus_timeout2_ahb_clk", 388262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 388362306a36Sopenharmony_ci &usb0_master_clk_src.clkr.hw }, 388462306a36Sopenharmony_ci .num_parents = 1, 388562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 388662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 388762306a36Sopenharmony_ci }, 388862306a36Sopenharmony_ci }, 388962306a36Sopenharmony_ci}; 389062306a36Sopenharmony_ci 389162306a36Sopenharmony_cistatic struct clk_rcg2 pcie0_rchng_clk_src = { 389262306a36Sopenharmony_ci .cmd_rcgr = 0x75070, 389362306a36Sopenharmony_ci .freq_tbl = ftbl_pcie_rchng_clk_src, 389462306a36Sopenharmony_ci .hid_width = 5, 389562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 389662306a36Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 389762306a36Sopenharmony_ci .name = "pcie0_rchng_clk_src", 389862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 389962306a36Sopenharmony_ci .num_parents = 2, 390062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 390162306a36Sopenharmony_ci }, 390262306a36Sopenharmony_ci}; 390362306a36Sopenharmony_ci 390462306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_rchng_clk = { 390562306a36Sopenharmony_ci .halt_reg = 0x75070, 390662306a36Sopenharmony_ci .clkr = { 390762306a36Sopenharmony_ci .enable_reg = 0x75070, 390862306a36Sopenharmony_ci .enable_mask = BIT(1), 390962306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 391062306a36Sopenharmony_ci .name = "gcc_pcie0_rchng_clk", 391162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 391262306a36Sopenharmony_ci &pcie0_rchng_clk_src.clkr.hw }, 391362306a36Sopenharmony_ci .num_parents = 1, 391462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 391562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 391662306a36Sopenharmony_ci }, 391762306a36Sopenharmony_ci }, 391862306a36Sopenharmony_ci}; 391962306a36Sopenharmony_ci 392062306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_axi_s_bridge_clk = { 392162306a36Sopenharmony_ci .halt_reg = 0x75048, 392262306a36Sopenharmony_ci .clkr = { 392362306a36Sopenharmony_ci .enable_reg = 0x75048, 392462306a36Sopenharmony_ci .enable_mask = BIT(0), 392562306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 392662306a36Sopenharmony_ci .name = "gcc_pcie0_axi_s_bridge_clk", 392762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 392862306a36Sopenharmony_ci &pcie0_axi_clk_src.clkr.hw }, 392962306a36Sopenharmony_ci .num_parents = 1, 393062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 393162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 393262306a36Sopenharmony_ci }, 393362306a36Sopenharmony_ci }, 393462306a36Sopenharmony_ci}; 393562306a36Sopenharmony_ci 393662306a36Sopenharmony_cistatic struct clk_branch gcc_sys_noc_usb0_axi_clk = { 393762306a36Sopenharmony_ci .halt_reg = 0x26040, 393862306a36Sopenharmony_ci .clkr = { 393962306a36Sopenharmony_ci .enable_reg = 0x26040, 394062306a36Sopenharmony_ci .enable_mask = BIT(0), 394162306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 394262306a36Sopenharmony_ci .name = "gcc_sys_noc_usb0_axi_clk", 394362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 394462306a36Sopenharmony_ci &usb0_master_clk_src.clkr.hw }, 394562306a36Sopenharmony_ci .num_parents = 1, 394662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 394762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 394862306a36Sopenharmony_ci }, 394962306a36Sopenharmony_ci }, 395062306a36Sopenharmony_ci}; 395162306a36Sopenharmony_ci 395262306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_mock_utmi_clk = { 395362306a36Sopenharmony_ci .halt_reg = 0x3e008, 395462306a36Sopenharmony_ci .clkr = { 395562306a36Sopenharmony_ci .enable_reg = 0x3e008, 395662306a36Sopenharmony_ci .enable_mask = BIT(0), 395762306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 395862306a36Sopenharmony_ci .name = "gcc_usb0_mock_utmi_clk", 395962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 396062306a36Sopenharmony_ci &usb0_mock_utmi_clk_src.clkr.hw }, 396162306a36Sopenharmony_ci .num_parents = 1, 396262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 396362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 396462306a36Sopenharmony_ci }, 396562306a36Sopenharmony_ci }, 396662306a36Sopenharmony_ci}; 396762306a36Sopenharmony_ci 396862306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_phy_cfg_ahb_clk = { 396962306a36Sopenharmony_ci .halt_reg = 0x3e080, 397062306a36Sopenharmony_ci .clkr = { 397162306a36Sopenharmony_ci .enable_reg = 0x3e080, 397262306a36Sopenharmony_ci .enable_mask = BIT(0), 397362306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 397462306a36Sopenharmony_ci .name = "gcc_usb0_phy_cfg_ahb_clk", 397562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 397662306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 397762306a36Sopenharmony_ci .num_parents = 1, 397862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 397962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 398062306a36Sopenharmony_ci }, 398162306a36Sopenharmony_ci }, 398262306a36Sopenharmony_ci}; 398362306a36Sopenharmony_ci 398462306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_pipe_clk = { 398562306a36Sopenharmony_ci .halt_reg = 0x3e040, 398662306a36Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 398762306a36Sopenharmony_ci .clkr = { 398862306a36Sopenharmony_ci .enable_reg = 0x3e040, 398962306a36Sopenharmony_ci .enable_mask = BIT(0), 399062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 399162306a36Sopenharmony_ci .name = "gcc_usb0_pipe_clk", 399262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 399362306a36Sopenharmony_ci &usb0_pipe_clk_src.clkr.hw }, 399462306a36Sopenharmony_ci .num_parents = 1, 399562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 399662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 399762306a36Sopenharmony_ci }, 399862306a36Sopenharmony_ci }, 399962306a36Sopenharmony_ci}; 400062306a36Sopenharmony_ci 400162306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_sleep_clk = { 400262306a36Sopenharmony_ci .halt_reg = 0x3e004, 400362306a36Sopenharmony_ci .clkr = { 400462306a36Sopenharmony_ci .enable_reg = 0x3e004, 400562306a36Sopenharmony_ci .enable_mask = BIT(0), 400662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 400762306a36Sopenharmony_ci .name = "gcc_usb0_sleep_clk", 400862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 400962306a36Sopenharmony_ci &gcc_sleep_clk_src.clkr.hw }, 401062306a36Sopenharmony_ci .num_parents = 1, 401162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 401262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 401362306a36Sopenharmony_ci }, 401462306a36Sopenharmony_ci }, 401562306a36Sopenharmony_ci}; 401662306a36Sopenharmony_ci 401762306a36Sopenharmony_cistatic struct clk_branch gcc_usb1_master_clk = { 401862306a36Sopenharmony_ci .halt_reg = 0x3f000, 401962306a36Sopenharmony_ci .clkr = { 402062306a36Sopenharmony_ci .enable_reg = 0x3f000, 402162306a36Sopenharmony_ci .enable_mask = BIT(0), 402262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 402362306a36Sopenharmony_ci .name = "gcc_usb1_master_clk", 402462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 402562306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 402662306a36Sopenharmony_ci .num_parents = 1, 402762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 402862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 402962306a36Sopenharmony_ci }, 403062306a36Sopenharmony_ci }, 403162306a36Sopenharmony_ci}; 403262306a36Sopenharmony_ci 403362306a36Sopenharmony_cistatic struct clk_branch gcc_usb1_mock_utmi_clk = { 403462306a36Sopenharmony_ci .halt_reg = 0x3f008, 403562306a36Sopenharmony_ci .clkr = { 403662306a36Sopenharmony_ci .enable_reg = 0x3f008, 403762306a36Sopenharmony_ci .enable_mask = BIT(0), 403862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 403962306a36Sopenharmony_ci .name = "gcc_usb1_mock_utmi_clk", 404062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 404162306a36Sopenharmony_ci &usb1_mock_utmi_clk_src.clkr.hw }, 404262306a36Sopenharmony_ci .num_parents = 1, 404362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 404462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 404562306a36Sopenharmony_ci }, 404662306a36Sopenharmony_ci }, 404762306a36Sopenharmony_ci}; 404862306a36Sopenharmony_ci 404962306a36Sopenharmony_cistatic struct clk_branch gcc_usb1_phy_cfg_ahb_clk = { 405062306a36Sopenharmony_ci .halt_reg = 0x3f080, 405162306a36Sopenharmony_ci .clkr = { 405262306a36Sopenharmony_ci .enable_reg = 0x3f080, 405362306a36Sopenharmony_ci .enable_mask = BIT(0), 405462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 405562306a36Sopenharmony_ci .name = "gcc_usb1_phy_cfg_ahb_clk", 405662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 405762306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 405862306a36Sopenharmony_ci .num_parents = 1, 405962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 406062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 406162306a36Sopenharmony_ci }, 406262306a36Sopenharmony_ci }, 406362306a36Sopenharmony_ci}; 406462306a36Sopenharmony_ci 406562306a36Sopenharmony_cistatic struct clk_branch gcc_usb1_sleep_clk = { 406662306a36Sopenharmony_ci .halt_reg = 0x3f004, 406762306a36Sopenharmony_ci .clkr = { 406862306a36Sopenharmony_ci .enable_reg = 0x3f004, 406962306a36Sopenharmony_ci .enable_mask = BIT(0), 407062306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 407162306a36Sopenharmony_ci .name = "gcc_usb1_sleep_clk", 407262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 407362306a36Sopenharmony_ci &gcc_sleep_clk_src.clkr.hw }, 407462306a36Sopenharmony_ci .num_parents = 1, 407562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 407662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 407762306a36Sopenharmony_ci }, 407862306a36Sopenharmony_ci }, 407962306a36Sopenharmony_ci}; 408062306a36Sopenharmony_ci 408162306a36Sopenharmony_cistatic struct clk_branch gcc_cmn_12gpll_ahb_clk = { 408262306a36Sopenharmony_ci .halt_reg = 0x56308, 408362306a36Sopenharmony_ci .clkr = { 408462306a36Sopenharmony_ci .enable_reg = 0x56308, 408562306a36Sopenharmony_ci .enable_mask = BIT(0), 408662306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 408762306a36Sopenharmony_ci .name = "gcc_cmn_12gpll_ahb_clk", 408862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 408962306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 409062306a36Sopenharmony_ci .num_parents = 1, 409162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 409262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 409362306a36Sopenharmony_ci }, 409462306a36Sopenharmony_ci }, 409562306a36Sopenharmony_ci}; 409662306a36Sopenharmony_ci 409762306a36Sopenharmony_cistatic struct clk_branch gcc_cmn_12gpll_sys_clk = { 409862306a36Sopenharmony_ci .halt_reg = 0x5630c, 409962306a36Sopenharmony_ci .clkr = { 410062306a36Sopenharmony_ci .enable_reg = 0x5630c, 410162306a36Sopenharmony_ci .enable_mask = BIT(0), 410262306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 410362306a36Sopenharmony_ci .name = "gcc_cmn_12gpll_sys_clk", 410462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 410562306a36Sopenharmony_ci &gcc_xo_clk_src.clkr.hw }, 410662306a36Sopenharmony_ci .num_parents = 1, 410762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 410862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 410962306a36Sopenharmony_ci }, 411062306a36Sopenharmony_ci }, 411162306a36Sopenharmony_ci}; 411262306a36Sopenharmony_ci 411362306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ice_core_clk = { 411462306a36Sopenharmony_ci .halt_reg = 0x5d014, 411562306a36Sopenharmony_ci .clkr = { 411662306a36Sopenharmony_ci .enable_reg = 0x5d014, 411762306a36Sopenharmony_ci .enable_mask = BIT(0), 411862306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 411962306a36Sopenharmony_ci .name = "gcc_sdcc1_ice_core_clk", 412062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 412162306a36Sopenharmony_ci &sdcc1_ice_core_clk_src.clkr.hw }, 412262306a36Sopenharmony_ci .num_parents = 1, 412362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 412462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 412562306a36Sopenharmony_ci }, 412662306a36Sopenharmony_ci }, 412762306a36Sopenharmony_ci}; 412862306a36Sopenharmony_ci 412962306a36Sopenharmony_cistatic struct clk_branch gcc_dcc_clk = { 413062306a36Sopenharmony_ci .halt_reg = 0x77004, 413162306a36Sopenharmony_ci .clkr = { 413262306a36Sopenharmony_ci .enable_reg = 0x77004, 413362306a36Sopenharmony_ci .enable_mask = BIT(0), 413462306a36Sopenharmony_ci .hw.init = &(struct clk_init_data){ 413562306a36Sopenharmony_ci .name = "gcc_dcc_clk", 413662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 413762306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 413862306a36Sopenharmony_ci .num_parents = 1, 413962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 414062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 414162306a36Sopenharmony_ci }, 414262306a36Sopenharmony_ci }, 414362306a36Sopenharmony_ci}; 414462306a36Sopenharmony_ci 414562306a36Sopenharmony_cistatic const struct alpha_pll_config ubi32_pll_config = { 414662306a36Sopenharmony_ci .l = 0x3e, 414762306a36Sopenharmony_ci .alpha = 0x6667, 414862306a36Sopenharmony_ci .config_ctl_val = 0x240d4828, 414962306a36Sopenharmony_ci .config_ctl_hi_val = 0x6, 415062306a36Sopenharmony_ci .main_output_mask = BIT(0), 415162306a36Sopenharmony_ci .aux_output_mask = BIT(1), 415262306a36Sopenharmony_ci .pre_div_val = 0x0, 415362306a36Sopenharmony_ci .pre_div_mask = BIT(12), 415462306a36Sopenharmony_ci .post_div_val = 0x0, 415562306a36Sopenharmony_ci .post_div_mask = GENMASK(9, 8), 415662306a36Sopenharmony_ci .alpha_en_mask = BIT(24), 415762306a36Sopenharmony_ci .test_ctl_val = 0x1C0000C0, 415862306a36Sopenharmony_ci .test_ctl_hi_val = 0x4000, 415962306a36Sopenharmony_ci}; 416062306a36Sopenharmony_ci 416162306a36Sopenharmony_cistatic const struct alpha_pll_config nss_crypto_pll_config = { 416262306a36Sopenharmony_ci .l = 0x32, 416362306a36Sopenharmony_ci .alpha = 0x0, 416462306a36Sopenharmony_ci .alpha_hi = 0x0, 416562306a36Sopenharmony_ci .config_ctl_val = 0x4001055b, 416662306a36Sopenharmony_ci .main_output_mask = BIT(0), 416762306a36Sopenharmony_ci .pre_div_val = 0x0, 416862306a36Sopenharmony_ci .pre_div_mask = GENMASK(14, 12), 416962306a36Sopenharmony_ci .post_div_val = 0x1 << 8, 417062306a36Sopenharmony_ci .post_div_mask = GENMASK(11, 8), 417162306a36Sopenharmony_ci .vco_mask = GENMASK(21, 20), 417262306a36Sopenharmony_ci .vco_val = 0x0, 417362306a36Sopenharmony_ci .alpha_en_mask = BIT(24), 417462306a36Sopenharmony_ci}; 417562306a36Sopenharmony_ci 417662306a36Sopenharmony_cistatic struct clk_hw *gcc_ipq6018_hws[] = { 417762306a36Sopenharmony_ci &gpll0_out_main_div2.hw, 417862306a36Sopenharmony_ci &gcc_xo_div4_clk_src.hw, 417962306a36Sopenharmony_ci &nss_ppe_cdiv_clk_src.hw, 418062306a36Sopenharmony_ci &gpll6_out_main_div2.hw, 418162306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw, 418262306a36Sopenharmony_ci &qdss_tsctr_div2_clk_src.hw, 418362306a36Sopenharmony_ci}; 418462306a36Sopenharmony_ci 418562306a36Sopenharmony_cistatic struct clk_regmap *gcc_ipq6018_clks[] = { 418662306a36Sopenharmony_ci [GPLL0_MAIN] = &gpll0_main.clkr, 418762306a36Sopenharmony_ci [GPLL0] = &gpll0.clkr, 418862306a36Sopenharmony_ci [UBI32_PLL_MAIN] = &ubi32_pll_main.clkr, 418962306a36Sopenharmony_ci [UBI32_PLL] = &ubi32_pll.clkr, 419062306a36Sopenharmony_ci [GPLL6_MAIN] = &gpll6_main.clkr, 419162306a36Sopenharmony_ci [GPLL6] = &gpll6.clkr, 419262306a36Sopenharmony_ci [GPLL4_MAIN] = &gpll4_main.clkr, 419362306a36Sopenharmony_ci [GPLL4] = &gpll4.clkr, 419462306a36Sopenharmony_ci [PCNOC_BFDCD_CLK_SRC] = &pcnoc_bfdcd_clk_src.clkr, 419562306a36Sopenharmony_ci [GPLL2_MAIN] = &gpll2_main.clkr, 419662306a36Sopenharmony_ci [GPLL2] = &gpll2.clkr, 419762306a36Sopenharmony_ci [NSS_CRYPTO_PLL_MAIN] = &nss_crypto_pll_main.clkr, 419862306a36Sopenharmony_ci [NSS_CRYPTO_PLL] = &nss_crypto_pll.clkr, 419962306a36Sopenharmony_ci [QDSS_TSCTR_CLK_SRC] = &qdss_tsctr_clk_src.clkr, 420062306a36Sopenharmony_ci [QDSS_AT_CLK_SRC] = &qdss_at_clk_src.clkr, 420162306a36Sopenharmony_ci [NSS_PPE_CLK_SRC] = &nss_ppe_clk_src.clkr, 420262306a36Sopenharmony_ci [GCC_XO_CLK_SRC] = &gcc_xo_clk_src.clkr, 420362306a36Sopenharmony_ci [SYSTEM_NOC_BFDCD_CLK_SRC] = &system_noc_bfdcd_clk_src.clkr, 420462306a36Sopenharmony_ci [SNOC_NSSNOC_BFDCD_CLK_SRC] = &snoc_nssnoc_bfdcd_clk_src.clkr, 420562306a36Sopenharmony_ci [NSS_CE_CLK_SRC] = &nss_ce_clk_src.clkr, 420662306a36Sopenharmony_ci [GCC_SLEEP_CLK_SRC] = &gcc_sleep_clk_src.clkr, 420762306a36Sopenharmony_ci [APSS_AHB_CLK_SRC] = &apss_ahb_clk_src.clkr, 420862306a36Sopenharmony_ci [NSS_PORT5_RX_CLK_SRC] = &nss_port5_rx_clk_src.clkr, 420962306a36Sopenharmony_ci [NSS_PORT5_TX_CLK_SRC] = &nss_port5_tx_clk_src.clkr, 421062306a36Sopenharmony_ci [UBI32_MEM_NOC_BFDCD_CLK_SRC] = &ubi32_mem_noc_bfdcd_clk_src.clkr, 421162306a36Sopenharmony_ci [PCIE0_AXI_CLK_SRC] = &pcie0_axi_clk_src.clkr, 421262306a36Sopenharmony_ci [USB0_MASTER_CLK_SRC] = &usb0_master_clk_src.clkr, 421362306a36Sopenharmony_ci [APSS_AHB_POSTDIV_CLK_SRC] = &apss_ahb_postdiv_clk_src.clkr, 421462306a36Sopenharmony_ci [NSS_PORT1_RX_CLK_SRC] = &nss_port1_rx_clk_src.clkr, 421562306a36Sopenharmony_ci [NSS_PORT1_TX_CLK_SRC] = &nss_port1_tx_clk_src.clkr, 421662306a36Sopenharmony_ci [NSS_PORT2_RX_CLK_SRC] = &nss_port2_rx_clk_src.clkr, 421762306a36Sopenharmony_ci [NSS_PORT2_TX_CLK_SRC] = &nss_port2_tx_clk_src.clkr, 421862306a36Sopenharmony_ci [NSS_PORT3_RX_CLK_SRC] = &nss_port3_rx_clk_src.clkr, 421962306a36Sopenharmony_ci [NSS_PORT3_TX_CLK_SRC] = &nss_port3_tx_clk_src.clkr, 422062306a36Sopenharmony_ci [NSS_PORT4_RX_CLK_SRC] = &nss_port4_rx_clk_src.clkr, 422162306a36Sopenharmony_ci [NSS_PORT4_TX_CLK_SRC] = &nss_port4_tx_clk_src.clkr, 422262306a36Sopenharmony_ci [NSS_PORT5_RX_DIV_CLK_SRC] = &nss_port5_rx_div_clk_src.clkr, 422362306a36Sopenharmony_ci [NSS_PORT5_TX_DIV_CLK_SRC] = &nss_port5_tx_div_clk_src.clkr, 422462306a36Sopenharmony_ci [APSS_AXI_CLK_SRC] = &apss_axi_clk_src.clkr, 422562306a36Sopenharmony_ci [NSS_CRYPTO_CLK_SRC] = &nss_crypto_clk_src.clkr, 422662306a36Sopenharmony_ci [NSS_PORT1_RX_DIV_CLK_SRC] = &nss_port1_rx_div_clk_src.clkr, 422762306a36Sopenharmony_ci [NSS_PORT1_TX_DIV_CLK_SRC] = &nss_port1_tx_div_clk_src.clkr, 422862306a36Sopenharmony_ci [NSS_PORT2_RX_DIV_CLK_SRC] = &nss_port2_rx_div_clk_src.clkr, 422962306a36Sopenharmony_ci [NSS_PORT2_TX_DIV_CLK_SRC] = &nss_port2_tx_div_clk_src.clkr, 423062306a36Sopenharmony_ci [NSS_PORT3_RX_DIV_CLK_SRC] = &nss_port3_rx_div_clk_src.clkr, 423162306a36Sopenharmony_ci [NSS_PORT3_TX_DIV_CLK_SRC] = &nss_port3_tx_div_clk_src.clkr, 423262306a36Sopenharmony_ci [NSS_PORT4_RX_DIV_CLK_SRC] = &nss_port4_rx_div_clk_src.clkr, 423362306a36Sopenharmony_ci [NSS_PORT4_TX_DIV_CLK_SRC] = &nss_port4_tx_div_clk_src.clkr, 423462306a36Sopenharmony_ci [NSS_UBI0_CLK_SRC] = &nss_ubi0_clk_src.clkr, 423562306a36Sopenharmony_ci [ADSS_PWM_CLK_SRC] = &adss_pwm_clk_src.clkr, 423662306a36Sopenharmony_ci [BLSP1_QUP1_I2C_APPS_CLK_SRC] = &blsp1_qup1_i2c_apps_clk_src.clkr, 423762306a36Sopenharmony_ci [BLSP1_QUP1_SPI_APPS_CLK_SRC] = &blsp1_qup1_spi_apps_clk_src.clkr, 423862306a36Sopenharmony_ci [BLSP1_QUP2_I2C_APPS_CLK_SRC] = &blsp1_qup2_i2c_apps_clk_src.clkr, 423962306a36Sopenharmony_ci [BLSP1_QUP2_SPI_APPS_CLK_SRC] = &blsp1_qup2_spi_apps_clk_src.clkr, 424062306a36Sopenharmony_ci [BLSP1_QUP3_I2C_APPS_CLK_SRC] = &blsp1_qup3_i2c_apps_clk_src.clkr, 424162306a36Sopenharmony_ci [BLSP1_QUP3_SPI_APPS_CLK_SRC] = &blsp1_qup3_spi_apps_clk_src.clkr, 424262306a36Sopenharmony_ci [BLSP1_QUP4_I2C_APPS_CLK_SRC] = &blsp1_qup4_i2c_apps_clk_src.clkr, 424362306a36Sopenharmony_ci [BLSP1_QUP4_SPI_APPS_CLK_SRC] = &blsp1_qup4_spi_apps_clk_src.clkr, 424462306a36Sopenharmony_ci [BLSP1_QUP5_I2C_APPS_CLK_SRC] = &blsp1_qup5_i2c_apps_clk_src.clkr, 424562306a36Sopenharmony_ci [BLSP1_QUP5_SPI_APPS_CLK_SRC] = &blsp1_qup5_spi_apps_clk_src.clkr, 424662306a36Sopenharmony_ci [BLSP1_QUP6_I2C_APPS_CLK_SRC] = &blsp1_qup6_i2c_apps_clk_src.clkr, 424762306a36Sopenharmony_ci [BLSP1_QUP6_SPI_APPS_CLK_SRC] = &blsp1_qup6_spi_apps_clk_src.clkr, 424862306a36Sopenharmony_ci [BLSP1_UART1_APPS_CLK_SRC] = &blsp1_uart1_apps_clk_src.clkr, 424962306a36Sopenharmony_ci [BLSP1_UART2_APPS_CLK_SRC] = &blsp1_uart2_apps_clk_src.clkr, 425062306a36Sopenharmony_ci [BLSP1_UART3_APPS_CLK_SRC] = &blsp1_uart3_apps_clk_src.clkr, 425162306a36Sopenharmony_ci [BLSP1_UART4_APPS_CLK_SRC] = &blsp1_uart4_apps_clk_src.clkr, 425262306a36Sopenharmony_ci [BLSP1_UART5_APPS_CLK_SRC] = &blsp1_uart5_apps_clk_src.clkr, 425362306a36Sopenharmony_ci [BLSP1_UART6_APPS_CLK_SRC] = &blsp1_uart6_apps_clk_src.clkr, 425462306a36Sopenharmony_ci [CRYPTO_CLK_SRC] = &crypto_clk_src.clkr, 425562306a36Sopenharmony_ci [GP1_CLK_SRC] = &gp1_clk_src.clkr, 425662306a36Sopenharmony_ci [GP2_CLK_SRC] = &gp2_clk_src.clkr, 425762306a36Sopenharmony_ci [GP3_CLK_SRC] = &gp3_clk_src.clkr, 425862306a36Sopenharmony_ci [NSS_UBI0_DIV_CLK_SRC] = &nss_ubi0_div_clk_src.clkr, 425962306a36Sopenharmony_ci [PCIE0_AUX_CLK_SRC] = &pcie0_aux_clk_src.clkr, 426062306a36Sopenharmony_ci [PCIE0_PIPE_CLK_SRC] = &pcie0_pipe_clk_src.clkr, 426162306a36Sopenharmony_ci [SDCC1_APPS_CLK_SRC] = &sdcc1_apps_clk_src.clkr, 426262306a36Sopenharmony_ci [USB0_AUX_CLK_SRC] = &usb0_aux_clk_src.clkr, 426362306a36Sopenharmony_ci [USB0_MOCK_UTMI_CLK_SRC] = &usb0_mock_utmi_clk_src.clkr, 426462306a36Sopenharmony_ci [USB0_PIPE_CLK_SRC] = &usb0_pipe_clk_src.clkr, 426562306a36Sopenharmony_ci [USB1_MOCK_UTMI_CLK_SRC] = &usb1_mock_utmi_clk_src.clkr, 426662306a36Sopenharmony_ci [GCC_ADSS_PWM_CLK] = &gcc_adss_pwm_clk.clkr, 426762306a36Sopenharmony_ci [GCC_APSS_AHB_CLK] = &gcc_apss_ahb_clk.clkr, 426862306a36Sopenharmony_ci [GCC_APSS_AXI_CLK] = &gcc_apss_axi_clk.clkr, 426962306a36Sopenharmony_ci [GCC_BLSP1_AHB_CLK] = &gcc_blsp1_ahb_clk.clkr, 427062306a36Sopenharmony_ci [GCC_BLSP1_QUP1_I2C_APPS_CLK] = &gcc_blsp1_qup1_i2c_apps_clk.clkr, 427162306a36Sopenharmony_ci [GCC_BLSP1_QUP1_SPI_APPS_CLK] = &gcc_blsp1_qup1_spi_apps_clk.clkr, 427262306a36Sopenharmony_ci [GCC_BLSP1_QUP2_I2C_APPS_CLK] = &gcc_blsp1_qup2_i2c_apps_clk.clkr, 427362306a36Sopenharmony_ci [GCC_BLSP1_QUP2_SPI_APPS_CLK] = &gcc_blsp1_qup2_spi_apps_clk.clkr, 427462306a36Sopenharmony_ci [GCC_BLSP1_QUP3_I2C_APPS_CLK] = &gcc_blsp1_qup3_i2c_apps_clk.clkr, 427562306a36Sopenharmony_ci [GCC_BLSP1_QUP3_SPI_APPS_CLK] = &gcc_blsp1_qup3_spi_apps_clk.clkr, 427662306a36Sopenharmony_ci [GCC_BLSP1_QUP4_I2C_APPS_CLK] = &gcc_blsp1_qup4_i2c_apps_clk.clkr, 427762306a36Sopenharmony_ci [GCC_BLSP1_QUP4_SPI_APPS_CLK] = &gcc_blsp1_qup4_spi_apps_clk.clkr, 427862306a36Sopenharmony_ci [GCC_BLSP1_QUP5_I2C_APPS_CLK] = &gcc_blsp1_qup5_i2c_apps_clk.clkr, 427962306a36Sopenharmony_ci [GCC_BLSP1_QUP5_SPI_APPS_CLK] = &gcc_blsp1_qup5_spi_apps_clk.clkr, 428062306a36Sopenharmony_ci [GCC_BLSP1_QUP6_SPI_APPS_CLK] = &gcc_blsp1_qup6_spi_apps_clk.clkr, 428162306a36Sopenharmony_ci [GCC_BLSP1_UART1_APPS_CLK] = &gcc_blsp1_uart1_apps_clk.clkr, 428262306a36Sopenharmony_ci [GCC_BLSP1_UART2_APPS_CLK] = &gcc_blsp1_uart2_apps_clk.clkr, 428362306a36Sopenharmony_ci [GCC_BLSP1_UART3_APPS_CLK] = &gcc_blsp1_uart3_apps_clk.clkr, 428462306a36Sopenharmony_ci [GCC_BLSP1_UART4_APPS_CLK] = &gcc_blsp1_uart4_apps_clk.clkr, 428562306a36Sopenharmony_ci [GCC_BLSP1_UART5_APPS_CLK] = &gcc_blsp1_uart5_apps_clk.clkr, 428662306a36Sopenharmony_ci [GCC_BLSP1_UART6_APPS_CLK] = &gcc_blsp1_uart6_apps_clk.clkr, 428762306a36Sopenharmony_ci [GCC_CRYPTO_AHB_CLK] = &gcc_crypto_ahb_clk.clkr, 428862306a36Sopenharmony_ci [GCC_CRYPTO_AXI_CLK] = &gcc_crypto_axi_clk.clkr, 428962306a36Sopenharmony_ci [GCC_CRYPTO_CLK] = &gcc_crypto_clk.clkr, 429062306a36Sopenharmony_ci [GCC_XO_CLK] = &gcc_xo_clk.clkr, 429162306a36Sopenharmony_ci [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, 429262306a36Sopenharmony_ci [GCC_GP2_CLK] = &gcc_gp2_clk.clkr, 429362306a36Sopenharmony_ci [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, 429462306a36Sopenharmony_ci [GCC_MDIO_AHB_CLK] = &gcc_mdio_ahb_clk.clkr, 429562306a36Sopenharmony_ci [GCC_CRYPTO_PPE_CLK] = &gcc_crypto_ppe_clk.clkr, 429662306a36Sopenharmony_ci [GCC_NSS_CE_APB_CLK] = &gcc_nss_ce_apb_clk.clkr, 429762306a36Sopenharmony_ci [GCC_NSS_CE_AXI_CLK] = &gcc_nss_ce_axi_clk.clkr, 429862306a36Sopenharmony_ci [GCC_NSS_CFG_CLK] = &gcc_nss_cfg_clk.clkr, 429962306a36Sopenharmony_ci [GCC_NSS_CRYPTO_CLK] = &gcc_nss_crypto_clk.clkr, 430062306a36Sopenharmony_ci [GCC_NSS_CSR_CLK] = &gcc_nss_csr_clk.clkr, 430162306a36Sopenharmony_ci [GCC_NSS_EDMA_CFG_CLK] = &gcc_nss_edma_cfg_clk.clkr, 430262306a36Sopenharmony_ci [GCC_NSS_EDMA_CLK] = &gcc_nss_edma_clk.clkr, 430362306a36Sopenharmony_ci [GCC_NSS_NOC_CLK] = &gcc_nss_noc_clk.clkr, 430462306a36Sopenharmony_ci [GCC_UBI0_UTCM_CLK] = &gcc_ubi0_utcm_clk.clkr, 430562306a36Sopenharmony_ci [GCC_SNOC_NSSNOC_CLK] = &gcc_snoc_nssnoc_clk.clkr, 430662306a36Sopenharmony_ci [GCC_NSS_PORT1_RX_CLK] = &gcc_nss_port1_rx_clk.clkr, 430762306a36Sopenharmony_ci [GCC_NSS_PORT1_TX_CLK] = &gcc_nss_port1_tx_clk.clkr, 430862306a36Sopenharmony_ci [GCC_NSS_PORT2_RX_CLK] = &gcc_nss_port2_rx_clk.clkr, 430962306a36Sopenharmony_ci [GCC_NSS_PORT2_TX_CLK] = &gcc_nss_port2_tx_clk.clkr, 431062306a36Sopenharmony_ci [GCC_NSS_PORT3_RX_CLK] = &gcc_nss_port3_rx_clk.clkr, 431162306a36Sopenharmony_ci [GCC_NSS_PORT3_TX_CLK] = &gcc_nss_port3_tx_clk.clkr, 431262306a36Sopenharmony_ci [GCC_NSS_PORT4_RX_CLK] = &gcc_nss_port4_rx_clk.clkr, 431362306a36Sopenharmony_ci [GCC_NSS_PORT4_TX_CLK] = &gcc_nss_port4_tx_clk.clkr, 431462306a36Sopenharmony_ci [GCC_NSS_PORT5_RX_CLK] = &gcc_nss_port5_rx_clk.clkr, 431562306a36Sopenharmony_ci [GCC_NSS_PORT5_TX_CLK] = &gcc_nss_port5_tx_clk.clkr, 431662306a36Sopenharmony_ci [GCC_NSS_PPE_CFG_CLK] = &gcc_nss_ppe_cfg_clk.clkr, 431762306a36Sopenharmony_ci [GCC_NSS_PPE_CLK] = &gcc_nss_ppe_clk.clkr, 431862306a36Sopenharmony_ci [GCC_NSS_PPE_IPE_CLK] = &gcc_nss_ppe_ipe_clk.clkr, 431962306a36Sopenharmony_ci [GCC_NSS_PTP_REF_CLK] = &gcc_nss_ptp_ref_clk.clkr, 432062306a36Sopenharmony_ci [GCC_NSSNOC_CE_APB_CLK] = &gcc_nssnoc_ce_apb_clk.clkr, 432162306a36Sopenharmony_ci [GCC_NSSNOC_CE_AXI_CLK] = &gcc_nssnoc_ce_axi_clk.clkr, 432262306a36Sopenharmony_ci [GCC_NSSNOC_CRYPTO_CLK] = &gcc_nssnoc_crypto_clk.clkr, 432362306a36Sopenharmony_ci [GCC_NSSNOC_PPE_CFG_CLK] = &gcc_nssnoc_ppe_cfg_clk.clkr, 432462306a36Sopenharmony_ci [GCC_NSSNOC_PPE_CLK] = &gcc_nssnoc_ppe_clk.clkr, 432562306a36Sopenharmony_ci [GCC_NSSNOC_QOSGEN_REF_CLK] = &gcc_nssnoc_qosgen_ref_clk.clkr, 432662306a36Sopenharmony_ci [GCC_NSSNOC_SNOC_CLK] = &gcc_nssnoc_snoc_clk.clkr, 432762306a36Sopenharmony_ci [GCC_NSSNOC_TIMEOUT_REF_CLK] = &gcc_nssnoc_timeout_ref_clk.clkr, 432862306a36Sopenharmony_ci [GCC_NSSNOC_UBI0_AHB_CLK] = &gcc_nssnoc_ubi0_ahb_clk.clkr, 432962306a36Sopenharmony_ci [GCC_PORT1_MAC_CLK] = &gcc_port1_mac_clk.clkr, 433062306a36Sopenharmony_ci [GCC_PORT2_MAC_CLK] = &gcc_port2_mac_clk.clkr, 433162306a36Sopenharmony_ci [GCC_PORT3_MAC_CLK] = &gcc_port3_mac_clk.clkr, 433262306a36Sopenharmony_ci [GCC_PORT4_MAC_CLK] = &gcc_port4_mac_clk.clkr, 433362306a36Sopenharmony_ci [GCC_PORT5_MAC_CLK] = &gcc_port5_mac_clk.clkr, 433462306a36Sopenharmony_ci [GCC_UBI0_AHB_CLK] = &gcc_ubi0_ahb_clk.clkr, 433562306a36Sopenharmony_ci [GCC_UBI0_AXI_CLK] = &gcc_ubi0_axi_clk.clkr, 433662306a36Sopenharmony_ci [GCC_UBI0_NC_AXI_CLK] = &gcc_ubi0_nc_axi_clk.clkr, 433762306a36Sopenharmony_ci [GCC_UBI0_CORE_CLK] = &gcc_ubi0_core_clk.clkr, 433862306a36Sopenharmony_ci [GCC_PCIE0_AHB_CLK] = &gcc_pcie0_ahb_clk.clkr, 433962306a36Sopenharmony_ci [GCC_PCIE0_AUX_CLK] = &gcc_pcie0_aux_clk.clkr, 434062306a36Sopenharmony_ci [GCC_PCIE0_AXI_M_CLK] = &gcc_pcie0_axi_m_clk.clkr, 434162306a36Sopenharmony_ci [GCC_PCIE0_AXI_S_CLK] = &gcc_pcie0_axi_s_clk.clkr, 434262306a36Sopenharmony_ci [GCC_SYS_NOC_PCIE0_AXI_CLK] = &gcc_sys_noc_pcie0_axi_clk.clkr, 434362306a36Sopenharmony_ci [GCC_PCIE0_PIPE_CLK] = &gcc_pcie0_pipe_clk.clkr, 434462306a36Sopenharmony_ci [GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr, 434562306a36Sopenharmony_ci [GCC_QDSS_DAP_CLK] = &gcc_qdss_dap_clk.clkr, 434662306a36Sopenharmony_ci [GCC_QPIC_AHB_CLK] = &gcc_qpic_ahb_clk.clkr, 434762306a36Sopenharmony_ci [GCC_QPIC_CLK] = &gcc_qpic_clk.clkr, 434862306a36Sopenharmony_ci [GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr, 434962306a36Sopenharmony_ci [GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr, 435062306a36Sopenharmony_ci [GCC_UNIPHY0_AHB_CLK] = &gcc_uniphy0_ahb_clk.clkr, 435162306a36Sopenharmony_ci [GCC_UNIPHY0_PORT1_RX_CLK] = &gcc_uniphy0_port1_rx_clk.clkr, 435262306a36Sopenharmony_ci [GCC_UNIPHY0_PORT1_TX_CLK] = &gcc_uniphy0_port1_tx_clk.clkr, 435362306a36Sopenharmony_ci [GCC_UNIPHY0_PORT2_RX_CLK] = &gcc_uniphy0_port2_rx_clk.clkr, 435462306a36Sopenharmony_ci [GCC_UNIPHY0_PORT2_TX_CLK] = &gcc_uniphy0_port2_tx_clk.clkr, 435562306a36Sopenharmony_ci [GCC_UNIPHY0_PORT3_RX_CLK] = &gcc_uniphy0_port3_rx_clk.clkr, 435662306a36Sopenharmony_ci [GCC_UNIPHY0_PORT3_TX_CLK] = &gcc_uniphy0_port3_tx_clk.clkr, 435762306a36Sopenharmony_ci [GCC_UNIPHY0_PORT4_RX_CLK] = &gcc_uniphy0_port4_rx_clk.clkr, 435862306a36Sopenharmony_ci [GCC_UNIPHY0_PORT4_TX_CLK] = &gcc_uniphy0_port4_tx_clk.clkr, 435962306a36Sopenharmony_ci [GCC_UNIPHY0_PORT5_RX_CLK] = &gcc_uniphy0_port5_rx_clk.clkr, 436062306a36Sopenharmony_ci [GCC_UNIPHY0_PORT5_TX_CLK] = &gcc_uniphy0_port5_tx_clk.clkr, 436162306a36Sopenharmony_ci [GCC_UNIPHY0_SYS_CLK] = &gcc_uniphy0_sys_clk.clkr, 436262306a36Sopenharmony_ci [GCC_UNIPHY1_AHB_CLK] = &gcc_uniphy1_ahb_clk.clkr, 436362306a36Sopenharmony_ci [GCC_UNIPHY1_PORT5_RX_CLK] = &gcc_uniphy1_port5_rx_clk.clkr, 436462306a36Sopenharmony_ci [GCC_UNIPHY1_PORT5_TX_CLK] = &gcc_uniphy1_port5_tx_clk.clkr, 436562306a36Sopenharmony_ci [GCC_UNIPHY1_SYS_CLK] = &gcc_uniphy1_sys_clk.clkr, 436662306a36Sopenharmony_ci [GCC_USB0_AUX_CLK] = &gcc_usb0_aux_clk.clkr, 436762306a36Sopenharmony_ci [GCC_SYS_NOC_USB0_AXI_CLK] = &gcc_sys_noc_usb0_axi_clk.clkr, 436862306a36Sopenharmony_ci [GCC_SNOC_BUS_TIMEOUT2_AHB_CLK] = &gcc_snoc_bus_timeout2_ahb_clk.clkr, 436962306a36Sopenharmony_ci [GCC_USB0_MASTER_CLK] = &gcc_usb0_master_clk.clkr, 437062306a36Sopenharmony_ci [GCC_USB0_MOCK_UTMI_CLK] = &gcc_usb0_mock_utmi_clk.clkr, 437162306a36Sopenharmony_ci [GCC_USB0_PHY_CFG_AHB_CLK] = &gcc_usb0_phy_cfg_ahb_clk.clkr, 437262306a36Sopenharmony_ci [GCC_USB0_PIPE_CLK] = &gcc_usb0_pipe_clk.clkr, 437362306a36Sopenharmony_ci [GCC_USB0_SLEEP_CLK] = &gcc_usb0_sleep_clk.clkr, 437462306a36Sopenharmony_ci [GCC_USB1_MASTER_CLK] = &gcc_usb1_master_clk.clkr, 437562306a36Sopenharmony_ci [GCC_USB1_MOCK_UTMI_CLK] = &gcc_usb1_mock_utmi_clk.clkr, 437662306a36Sopenharmony_ci [GCC_USB1_PHY_CFG_AHB_CLK] = &gcc_usb1_phy_cfg_ahb_clk.clkr, 437762306a36Sopenharmony_ci [GCC_USB1_SLEEP_CLK] = &gcc_usb1_sleep_clk.clkr, 437862306a36Sopenharmony_ci [GCC_CMN_12GPLL_AHB_CLK] = &gcc_cmn_12gpll_ahb_clk.clkr, 437962306a36Sopenharmony_ci [GCC_CMN_12GPLL_SYS_CLK] = &gcc_cmn_12gpll_sys_clk.clkr, 438062306a36Sopenharmony_ci [GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr, 438162306a36Sopenharmony_ci [SDCC1_ICE_CORE_CLK_SRC] = &sdcc1_ice_core_clk_src.clkr, 438262306a36Sopenharmony_ci [GCC_DCC_CLK] = &gcc_dcc_clk.clkr, 438362306a36Sopenharmony_ci [PCIE0_RCHNG_CLK_SRC] = &pcie0_rchng_clk_src.clkr, 438462306a36Sopenharmony_ci [GCC_PCIE0_AXI_S_BRIDGE_CLK] = &gcc_pcie0_axi_s_bridge_clk.clkr, 438562306a36Sopenharmony_ci [PCIE0_RCHNG_CLK] = &gcc_pcie0_rchng_clk.clkr, 438662306a36Sopenharmony_ci [WCSS_AHB_CLK_SRC] = &wcss_ahb_clk_src.clkr, 438762306a36Sopenharmony_ci [Q6_AXI_CLK_SRC] = &q6_axi_clk_src.clkr, 438862306a36Sopenharmony_ci [RBCPR_WCSS_CLK_SRC] = &rbcpr_wcss_clk_src.clkr, 438962306a36Sopenharmony_ci [GCC_LPASS_CORE_AXIM_CLK] = &gcc_lpass_core_axim_clk.clkr, 439062306a36Sopenharmony_ci [LPASS_CORE_AXIM_CLK_SRC] = &lpass_core_axim_clk_src.clkr, 439162306a36Sopenharmony_ci [GCC_LPASS_SNOC_CFG_CLK] = &gcc_lpass_snoc_cfg_clk.clkr, 439262306a36Sopenharmony_ci [LPASS_SNOC_CFG_CLK_SRC] = &lpass_snoc_cfg_clk_src.clkr, 439362306a36Sopenharmony_ci [GCC_LPASS_Q6_AXIM_CLK] = &gcc_lpass_q6_axim_clk.clkr, 439462306a36Sopenharmony_ci [LPASS_Q6_AXIM_CLK_SRC] = &lpass_q6_axim_clk_src.clkr, 439562306a36Sopenharmony_ci [GCC_LPASS_Q6_ATBM_AT_CLK] = &gcc_lpass_q6_atbm_at_clk.clkr, 439662306a36Sopenharmony_ci [GCC_LPASS_Q6_PCLKDBG_CLK] = &gcc_lpass_q6_pclkdbg_clk.clkr, 439762306a36Sopenharmony_ci [GCC_LPASS_Q6SS_TSCTR_1TO2_CLK] = &gcc_lpass_q6ss_tsctr_1to2_clk.clkr, 439862306a36Sopenharmony_ci [GCC_LPASS_Q6SS_TRIG_CLK] = &gcc_lpass_q6ss_trig_clk.clkr, 439962306a36Sopenharmony_ci [GCC_LPASS_TBU_CLK] = &gcc_lpass_tbu_clk.clkr, 440062306a36Sopenharmony_ci [GCC_PCNOC_LPASS_CLK] = &gcc_pcnoc_lpass_clk.clkr, 440162306a36Sopenharmony_ci [GCC_MEM_NOC_UBI32_CLK] = &gcc_mem_noc_ubi32_clk.clkr, 440262306a36Sopenharmony_ci [GCC_MEM_NOC_LPASS_CLK] = &gcc_mem_noc_lpass_clk.clkr, 440362306a36Sopenharmony_ci [GCC_SNOC_LPASS_CFG_CLK] = &gcc_snoc_lpass_cfg_clk.clkr, 440462306a36Sopenharmony_ci [QDSS_STM_CLK_SRC] = &qdss_stm_clk_src.clkr, 440562306a36Sopenharmony_ci [QDSS_TRACECLKIN_CLK_SRC] = &qdss_traceclkin_clk_src.clkr, 440662306a36Sopenharmony_ci}; 440762306a36Sopenharmony_ci 440862306a36Sopenharmony_cistatic const struct qcom_reset_map gcc_ipq6018_resets[] = { 440962306a36Sopenharmony_ci [GCC_BLSP1_BCR] = { 0x01000, 0 }, 441062306a36Sopenharmony_ci [GCC_BLSP1_QUP1_BCR] = { 0x02000, 0 }, 441162306a36Sopenharmony_ci [GCC_BLSP1_UART1_BCR] = { 0x02038, 0 }, 441262306a36Sopenharmony_ci [GCC_BLSP1_QUP2_BCR] = { 0x03008, 0 }, 441362306a36Sopenharmony_ci [GCC_BLSP1_UART2_BCR] = { 0x03028, 0 }, 441462306a36Sopenharmony_ci [GCC_BLSP1_QUP3_BCR] = { 0x04008, 0 }, 441562306a36Sopenharmony_ci [GCC_BLSP1_UART3_BCR] = { 0x04028, 0 }, 441662306a36Sopenharmony_ci [GCC_BLSP1_QUP4_BCR] = { 0x05008, 0 }, 441762306a36Sopenharmony_ci [GCC_BLSP1_UART4_BCR] = { 0x05028, 0 }, 441862306a36Sopenharmony_ci [GCC_BLSP1_QUP5_BCR] = { 0x06008, 0 }, 441962306a36Sopenharmony_ci [GCC_BLSP1_UART5_BCR] = { 0x06028, 0 }, 442062306a36Sopenharmony_ci [GCC_BLSP1_QUP6_BCR] = { 0x07008, 0 }, 442162306a36Sopenharmony_ci [GCC_BLSP1_UART6_BCR] = { 0x07028, 0 }, 442262306a36Sopenharmony_ci [GCC_IMEM_BCR] = { 0x0e000, 0 }, 442362306a36Sopenharmony_ci [GCC_SMMU_BCR] = { 0x12000, 0 }, 442462306a36Sopenharmony_ci [GCC_APSS_TCU_BCR] = { 0x12050, 0 }, 442562306a36Sopenharmony_ci [GCC_SMMU_XPU_BCR] = { 0x12054, 0 }, 442662306a36Sopenharmony_ci [GCC_PCNOC_TBU_BCR] = { 0x12058, 0 }, 442762306a36Sopenharmony_ci [GCC_SMMU_CFG_BCR] = { 0x1208c, 0 }, 442862306a36Sopenharmony_ci [GCC_PRNG_BCR] = { 0x13000, 0 }, 442962306a36Sopenharmony_ci [GCC_BOOT_ROM_BCR] = { 0x13008, 0 }, 443062306a36Sopenharmony_ci [GCC_CRYPTO_BCR] = { 0x16000, 0 }, 443162306a36Sopenharmony_ci [GCC_WCSS_BCR] = { 0x18000, 0 }, 443262306a36Sopenharmony_ci [GCC_WCSS_Q6_BCR] = { 0x18100, 0 }, 443362306a36Sopenharmony_ci [GCC_NSS_BCR] = { 0x19000, 0 }, 443462306a36Sopenharmony_ci [GCC_SEC_CTRL_BCR] = { 0x1a000, 0 }, 443562306a36Sopenharmony_ci [GCC_ADSS_BCR] = { 0x1c000, 0 }, 443662306a36Sopenharmony_ci [GCC_DDRSS_BCR] = { 0x1e000, 0 }, 443762306a36Sopenharmony_ci [GCC_SYSTEM_NOC_BCR] = { 0x26000, 0 }, 443862306a36Sopenharmony_ci [GCC_PCNOC_BCR] = { 0x27018, 0 }, 443962306a36Sopenharmony_ci [GCC_TCSR_BCR] = { 0x28000, 0 }, 444062306a36Sopenharmony_ci [GCC_QDSS_BCR] = { 0x29000, 0 }, 444162306a36Sopenharmony_ci [GCC_DCD_BCR] = { 0x2a000, 0 }, 444262306a36Sopenharmony_ci [GCC_MSG_RAM_BCR] = { 0x2b000, 0 }, 444362306a36Sopenharmony_ci [GCC_MPM_BCR] = { 0x2c000, 0 }, 444462306a36Sopenharmony_ci [GCC_SPDM_BCR] = { 0x2f000, 0 }, 444562306a36Sopenharmony_ci [GCC_RBCPR_BCR] = { 0x33000, 0 }, 444662306a36Sopenharmony_ci [GCC_RBCPR_MX_BCR] = { 0x33014, 0 }, 444762306a36Sopenharmony_ci [GCC_TLMM_BCR] = { 0x34000, 0 }, 444862306a36Sopenharmony_ci [GCC_RBCPR_WCSS_BCR] = { 0x3a000, 0 }, 444962306a36Sopenharmony_ci [GCC_USB0_PHY_BCR] = { 0x3e034, 0 }, 445062306a36Sopenharmony_ci [GCC_USB3PHY_0_PHY_BCR] = { 0x3e03c, 0 }, 445162306a36Sopenharmony_ci [GCC_USB0_BCR] = { 0x3e070, 0 }, 445262306a36Sopenharmony_ci [GCC_USB1_BCR] = { 0x3f070, 0 }, 445362306a36Sopenharmony_ci [GCC_QUSB2_0_PHY_BCR] = { 0x4103c, 0 }, 445462306a36Sopenharmony_ci [GCC_QUSB2_1_PHY_BCR] = { 0x41040, 0 }, 445562306a36Sopenharmony_ci [GCC_SDCC1_BCR] = { 0x42000, 0 }, 445662306a36Sopenharmony_ci [GCC_SNOC_BUS_TIMEOUT0_BCR] = { 0x47000, 0 }, 445762306a36Sopenharmony_ci [GCC_SNOC_BUS_TIMEOUT1_BCR] = { 0x47008, 0 }, 445862306a36Sopenharmony_ci [GCC_SNOC_BUS_TIMEOUT2_BCR] = { 0x47010, 0 }, 445962306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT0_BCR] = { 0x48000, 0 }, 446062306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT1_BCR] = { 0x48008, 0 }, 446162306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT2_BCR] = { 0x48010, 0 }, 446262306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT3_BCR] = { 0x48018, 0 }, 446362306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT4_BCR] = { 0x48020, 0 }, 446462306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT5_BCR] = { 0x48028, 0 }, 446562306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT6_BCR] = { 0x48030, 0 }, 446662306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT7_BCR] = { 0x48038, 0 }, 446762306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT8_BCR] = { 0x48040, 0 }, 446862306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT9_BCR] = { 0x48048, 0 }, 446962306a36Sopenharmony_ci [GCC_UNIPHY0_BCR] = { 0x56000, 0 }, 447062306a36Sopenharmony_ci [GCC_UNIPHY1_BCR] = { 0x56100, 0 }, 447162306a36Sopenharmony_ci [GCC_CMN_12GPLL_BCR] = { 0x56300, 0 }, 447262306a36Sopenharmony_ci [GCC_QPIC_BCR] = { 0x57018, 0 }, 447362306a36Sopenharmony_ci [GCC_MDIO_BCR] = { 0x58000, 0 }, 447462306a36Sopenharmony_ci [GCC_WCSS_CORE_TBU_BCR] = { 0x66000, 0 }, 447562306a36Sopenharmony_ci [GCC_WCSS_Q6_TBU_BCR] = { 0x67000, 0 }, 447662306a36Sopenharmony_ci [GCC_USB0_TBU_BCR] = { 0x6a000, 0 }, 447762306a36Sopenharmony_ci [GCC_PCIE0_TBU_BCR] = { 0x6b000, 0 }, 447862306a36Sopenharmony_ci [GCC_NSS_NOC_TBU_BCR] = { 0x6e000, 0 }, 447962306a36Sopenharmony_ci [GCC_PCIE0_BCR] = { 0x75004, 0 }, 448062306a36Sopenharmony_ci [GCC_PCIE0_PHY_BCR] = { 0x75038, 0 }, 448162306a36Sopenharmony_ci [GCC_PCIE0PHY_PHY_BCR] = { 0x7503c, 0 }, 448262306a36Sopenharmony_ci [GCC_PCIE0_LINK_DOWN_BCR] = { 0x75044, 0 }, 448362306a36Sopenharmony_ci [GCC_DCC_BCR] = { 0x77000, 0 }, 448462306a36Sopenharmony_ci [GCC_APC0_VOLTAGE_DROOP_DETECTOR_BCR] = { 0x78000, 0 }, 448562306a36Sopenharmony_ci [GCC_SMMU_CATS_BCR] = { 0x7c000, 0 }, 448662306a36Sopenharmony_ci [GCC_UBI0_AXI_ARES] = { 0x68010, 0 }, 448762306a36Sopenharmony_ci [GCC_UBI0_AHB_ARES] = { 0x68010, 1 }, 448862306a36Sopenharmony_ci [GCC_UBI0_NC_AXI_ARES] = { 0x68010, 2 }, 448962306a36Sopenharmony_ci [GCC_UBI0_DBG_ARES] = { 0x68010, 3 }, 449062306a36Sopenharmony_ci [GCC_UBI0_CORE_CLAMP_ENABLE] = { 0x68010, 4 }, 449162306a36Sopenharmony_ci [GCC_UBI0_CLKRST_CLAMP_ENABLE] = { 0x68010, 5 }, 449262306a36Sopenharmony_ci [GCC_UBI0_UTCM_ARES] = { 0x68010, 6 }, 449362306a36Sopenharmony_ci [GCC_UBI0_CORE_ARES] = { 0x68010, 7 }, 449462306a36Sopenharmony_ci [GCC_NSS_CFG_ARES] = { 0x68010, 16 }, 449562306a36Sopenharmony_ci [GCC_NSS_NOC_ARES] = { 0x68010, 18 }, 449662306a36Sopenharmony_ci [GCC_NSS_CRYPTO_ARES] = { 0x68010, 19 }, 449762306a36Sopenharmony_ci [GCC_NSS_CSR_ARES] = { 0x68010, 20 }, 449862306a36Sopenharmony_ci [GCC_NSS_CE_APB_ARES] = { 0x68010, 21 }, 449962306a36Sopenharmony_ci [GCC_NSS_CE_AXI_ARES] = { 0x68010, 22 }, 450062306a36Sopenharmony_ci [GCC_NSSNOC_CE_APB_ARES] = { 0x68010, 23 }, 450162306a36Sopenharmony_ci [GCC_NSSNOC_CE_AXI_ARES] = { 0x68010, 24 }, 450262306a36Sopenharmony_ci [GCC_NSSNOC_UBI0_AHB_ARES] = { 0x68010, 25 }, 450362306a36Sopenharmony_ci [GCC_NSSNOC_SNOC_ARES] = { 0x68010, 27 }, 450462306a36Sopenharmony_ci [GCC_NSSNOC_CRYPTO_ARES] = { 0x68010, 28 }, 450562306a36Sopenharmony_ci [GCC_NSSNOC_ATB_ARES] = { 0x68010, 29 }, 450662306a36Sopenharmony_ci [GCC_NSSNOC_QOSGEN_REF_ARES] = { 0x68010, 30 }, 450762306a36Sopenharmony_ci [GCC_NSSNOC_TIMEOUT_REF_ARES] = { 0x68010, 31 }, 450862306a36Sopenharmony_ci [GCC_PCIE0_PIPE_ARES] = { 0x75040, 0 }, 450962306a36Sopenharmony_ci [GCC_PCIE0_SLEEP_ARES] = { 0x75040, 1 }, 451062306a36Sopenharmony_ci [GCC_PCIE0_CORE_STICKY_ARES] = { 0x75040, 2 }, 451162306a36Sopenharmony_ci [GCC_PCIE0_AXI_MASTER_ARES] = { 0x75040, 3 }, 451262306a36Sopenharmony_ci [GCC_PCIE0_AXI_SLAVE_ARES] = { 0x75040, 4 }, 451362306a36Sopenharmony_ci [GCC_PCIE0_AHB_ARES] = { 0x75040, 5 }, 451462306a36Sopenharmony_ci [GCC_PCIE0_AXI_MASTER_STICKY_ARES] = { 0x75040, 6 }, 451562306a36Sopenharmony_ci [GCC_PCIE0_AXI_SLAVE_STICKY_ARES] = { 0x75040, 7 }, 451662306a36Sopenharmony_ci [GCC_PPE_FULL_RESET] = { .reg = 0x68014, .bitmask = 0xf0000 }, 451762306a36Sopenharmony_ci [GCC_UNIPHY0_SOFT_RESET] = { .reg = 0x56004, .bitmask = 0x3ff2 }, 451862306a36Sopenharmony_ci [GCC_UNIPHY0_XPCS_RESET] = { 0x56004, 2 }, 451962306a36Sopenharmony_ci [GCC_UNIPHY1_SOFT_RESET] = { .reg = 0x56104, .bitmask = 0x32 }, 452062306a36Sopenharmony_ci [GCC_UNIPHY1_XPCS_RESET] = { 0x56104, 2 }, 452162306a36Sopenharmony_ci [GCC_EDMA_HW_RESET] = { .reg = 0x68014, .bitmask = 0x300000 }, 452262306a36Sopenharmony_ci [GCC_NSSPORT1_RESET] = { .reg = 0x68014, .bitmask = 0x1000003 }, 452362306a36Sopenharmony_ci [GCC_NSSPORT2_RESET] = { .reg = 0x68014, .bitmask = 0x200000c }, 452462306a36Sopenharmony_ci [GCC_NSSPORT3_RESET] = { .reg = 0x68014, .bitmask = 0x4000030 }, 452562306a36Sopenharmony_ci [GCC_NSSPORT4_RESET] = { .reg = 0x68014, .bitmask = 0x8000300 }, 452662306a36Sopenharmony_ci [GCC_NSSPORT5_RESET] = { .reg = 0x68014, .bitmask = 0x10000c00 }, 452762306a36Sopenharmony_ci [GCC_UNIPHY0_PORT1_ARES] = { .reg = 0x56004, .bitmask = 0x30 }, 452862306a36Sopenharmony_ci [GCC_UNIPHY0_PORT2_ARES] = { .reg = 0x56004, .bitmask = 0xc0 }, 452962306a36Sopenharmony_ci [GCC_UNIPHY0_PORT3_ARES] = { .reg = 0x56004, .bitmask = 0x300 }, 453062306a36Sopenharmony_ci [GCC_UNIPHY0_PORT4_ARES] = { .reg = 0x56004, .bitmask = 0xc00 }, 453162306a36Sopenharmony_ci [GCC_UNIPHY0_PORT5_ARES] = { .reg = 0x56004, .bitmask = 0x3000 }, 453262306a36Sopenharmony_ci [GCC_UNIPHY0_PORT_4_5_RESET] = { .reg = 0x56004, .bitmask = 0x3c02 }, 453362306a36Sopenharmony_ci [GCC_UNIPHY0_PORT_4_RESET] = { .reg = 0x56004, .bitmask = 0xc02 }, 453462306a36Sopenharmony_ci [GCC_LPASS_BCR] = {0x1F000, 0}, 453562306a36Sopenharmony_ci [GCC_UBI32_TBU_BCR] = {0x65000, 0}, 453662306a36Sopenharmony_ci [GCC_LPASS_TBU_BCR] = {0x6C000, 0}, 453762306a36Sopenharmony_ci [GCC_WCSSAON_RESET] = {0x59010, 0}, 453862306a36Sopenharmony_ci [GCC_LPASS_Q6_AXIM_ARES] = {0x1F004, 0}, 453962306a36Sopenharmony_ci [GCC_LPASS_Q6SS_TSCTR_1TO2_ARES] = {0x1F004, 1}, 454062306a36Sopenharmony_ci [GCC_LPASS_Q6SS_TRIG_ARES] = {0x1F004, 2}, 454162306a36Sopenharmony_ci [GCC_LPASS_Q6_ATBM_AT_ARES] = {0x1F004, 3}, 454262306a36Sopenharmony_ci [GCC_LPASS_Q6_PCLKDBG_ARES] = {0x1F004, 4}, 454362306a36Sopenharmony_ci [GCC_LPASS_CORE_AXIM_ARES] = {0x1F004, 5}, 454462306a36Sopenharmony_ci [GCC_LPASS_SNOC_CFG_ARES] = {0x1F004, 6}, 454562306a36Sopenharmony_ci [GCC_WCSS_DBG_ARES] = {0x59008, 0}, 454662306a36Sopenharmony_ci [GCC_WCSS_ECAHB_ARES] = {0x59008, 1}, 454762306a36Sopenharmony_ci [GCC_WCSS_ACMT_ARES] = {0x59008, 2}, 454862306a36Sopenharmony_ci [GCC_WCSS_DBG_BDG_ARES] = {0x59008, 3}, 454962306a36Sopenharmony_ci [GCC_WCSS_AHB_S_ARES] = {0x59008, 4}, 455062306a36Sopenharmony_ci [GCC_WCSS_AXI_M_ARES] = {0x59008, 5}, 455162306a36Sopenharmony_ci [GCC_Q6SS_DBG_ARES] = {0x59110, 0}, 455262306a36Sopenharmony_ci [GCC_Q6_AHB_S_ARES] = {0x59110, 1}, 455362306a36Sopenharmony_ci [GCC_Q6_AHB_ARES] = {0x59110, 2}, 455462306a36Sopenharmony_ci [GCC_Q6_AXIM2_ARES] = {0x59110, 3}, 455562306a36Sopenharmony_ci [GCC_Q6_AXIM_ARES] = {0x59110, 4}, 455662306a36Sopenharmony_ci}; 455762306a36Sopenharmony_ci 455862306a36Sopenharmony_cistatic const struct of_device_id gcc_ipq6018_match_table[] = { 455962306a36Sopenharmony_ci { .compatible = "qcom,gcc-ipq6018" }, 456062306a36Sopenharmony_ci { } 456162306a36Sopenharmony_ci}; 456262306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_ipq6018_match_table); 456362306a36Sopenharmony_ci 456462306a36Sopenharmony_cistatic const struct regmap_config gcc_ipq6018_regmap_config = { 456562306a36Sopenharmony_ci .reg_bits = 32, 456662306a36Sopenharmony_ci .reg_stride = 4, 456762306a36Sopenharmony_ci .val_bits = 32, 456862306a36Sopenharmony_ci .max_register = 0x7fffc, 456962306a36Sopenharmony_ci .fast_io = true, 457062306a36Sopenharmony_ci}; 457162306a36Sopenharmony_ci 457262306a36Sopenharmony_cistatic const struct qcom_cc_desc gcc_ipq6018_desc = { 457362306a36Sopenharmony_ci .config = &gcc_ipq6018_regmap_config, 457462306a36Sopenharmony_ci .clks = gcc_ipq6018_clks, 457562306a36Sopenharmony_ci .num_clks = ARRAY_SIZE(gcc_ipq6018_clks), 457662306a36Sopenharmony_ci .resets = gcc_ipq6018_resets, 457762306a36Sopenharmony_ci .num_resets = ARRAY_SIZE(gcc_ipq6018_resets), 457862306a36Sopenharmony_ci .clk_hws = gcc_ipq6018_hws, 457962306a36Sopenharmony_ci .num_clk_hws = ARRAY_SIZE(gcc_ipq6018_hws), 458062306a36Sopenharmony_ci}; 458162306a36Sopenharmony_ci 458262306a36Sopenharmony_cistatic int gcc_ipq6018_probe(struct platform_device *pdev) 458362306a36Sopenharmony_ci{ 458462306a36Sopenharmony_ci struct regmap *regmap; 458562306a36Sopenharmony_ci 458662306a36Sopenharmony_ci regmap = qcom_cc_map(pdev, &gcc_ipq6018_desc); 458762306a36Sopenharmony_ci if (IS_ERR(regmap)) 458862306a36Sopenharmony_ci return PTR_ERR(regmap); 458962306a36Sopenharmony_ci 459062306a36Sopenharmony_ci /* Disable SW_COLLAPSE for USB0 GDSCR */ 459162306a36Sopenharmony_ci regmap_update_bits(regmap, 0x3e078, BIT(0), 0x0); 459262306a36Sopenharmony_ci /* Enable SW_OVERRIDE for USB0 GDSCR */ 459362306a36Sopenharmony_ci regmap_update_bits(regmap, 0x3e078, BIT(2), BIT(2)); 459462306a36Sopenharmony_ci /* Disable SW_COLLAPSE for USB1 GDSCR */ 459562306a36Sopenharmony_ci regmap_update_bits(regmap, 0x3f078, BIT(0), 0x0); 459662306a36Sopenharmony_ci /* Enable SW_OVERRIDE for USB1 GDSCR */ 459762306a36Sopenharmony_ci regmap_update_bits(regmap, 0x3f078, BIT(2), BIT(2)); 459862306a36Sopenharmony_ci 459962306a36Sopenharmony_ci /* SW Workaround for UBI Huyara PLL */ 460062306a36Sopenharmony_ci regmap_update_bits(regmap, 0x2501c, BIT(26), BIT(26)); 460162306a36Sopenharmony_ci 460262306a36Sopenharmony_ci clk_alpha_pll_configure(&ubi32_pll_main, regmap, &ubi32_pll_config); 460362306a36Sopenharmony_ci 460462306a36Sopenharmony_ci clk_alpha_pll_configure(&nss_crypto_pll_main, regmap, 460562306a36Sopenharmony_ci &nss_crypto_pll_config); 460662306a36Sopenharmony_ci 460762306a36Sopenharmony_ci return qcom_cc_really_probe(pdev, &gcc_ipq6018_desc, regmap); 460862306a36Sopenharmony_ci} 460962306a36Sopenharmony_ci 461062306a36Sopenharmony_cistatic struct platform_driver gcc_ipq6018_driver = { 461162306a36Sopenharmony_ci .probe = gcc_ipq6018_probe, 461262306a36Sopenharmony_ci .driver = { 461362306a36Sopenharmony_ci .name = "qcom,gcc-ipq6018", 461462306a36Sopenharmony_ci .of_match_table = gcc_ipq6018_match_table, 461562306a36Sopenharmony_ci }, 461662306a36Sopenharmony_ci}; 461762306a36Sopenharmony_ci 461862306a36Sopenharmony_cistatic int __init gcc_ipq6018_init(void) 461962306a36Sopenharmony_ci{ 462062306a36Sopenharmony_ci return platform_driver_register(&gcc_ipq6018_driver); 462162306a36Sopenharmony_ci} 462262306a36Sopenharmony_cicore_initcall(gcc_ipq6018_init); 462362306a36Sopenharmony_ci 462462306a36Sopenharmony_cistatic void __exit gcc_ipq6018_exit(void) 462562306a36Sopenharmony_ci{ 462662306a36Sopenharmony_ci platform_driver_unregister(&gcc_ipq6018_driver); 462762306a36Sopenharmony_ci} 462862306a36Sopenharmony_cimodule_exit(gcc_ipq6018_exit); 462962306a36Sopenharmony_ci 463062306a36Sopenharmony_ciMODULE_DESCRIPTION("Qualcomm Technologies, Inc. GCC IPQ6018 Driver"); 463162306a36Sopenharmony_ciMODULE_LICENSE("GPL v2"); 4632