162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2023 The Linux Foundation. All rights reserved. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <linux/clk-provider.h> 762306a36Sopenharmony_ci#include <linux/kernel.h> 862306a36Sopenharmony_ci#include <linux/module.h> 962306a36Sopenharmony_ci#include <linux/of.h> 1062306a36Sopenharmony_ci#include <linux/platform_device.h> 1162306a36Sopenharmony_ci#include <linux/regmap.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include <dt-bindings/clock/qcom,ipq9574-gcc.h> 1462306a36Sopenharmony_ci#include <dt-bindings/reset/qcom,ipq9574-gcc.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#include "clk-alpha-pll.h" 1762306a36Sopenharmony_ci#include "clk-branch.h" 1862306a36Sopenharmony_ci#include "clk-rcg.h" 1962306a36Sopenharmony_ci#include "clk-regmap.h" 2062306a36Sopenharmony_ci#include "clk-regmap-divider.h" 2162306a36Sopenharmony_ci#include "clk-regmap-mux.h" 2262306a36Sopenharmony_ci#include "clk-regmap-phy-mux.h" 2362306a36Sopenharmony_ci#include "common.h" 2462306a36Sopenharmony_ci#include "reset.h" 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci/* Need to match the order of clocks in DT binding */ 2762306a36Sopenharmony_cienum { 2862306a36Sopenharmony_ci DT_XO, 2962306a36Sopenharmony_ci DT_SLEEP_CLK, 3062306a36Sopenharmony_ci DT_BIAS_PLL_UBI_NC_CLK, 3162306a36Sopenharmony_ci DT_PCIE30_PHY0_PIPE_CLK, 3262306a36Sopenharmony_ci DT_PCIE30_PHY1_PIPE_CLK, 3362306a36Sopenharmony_ci DT_PCIE30_PHY2_PIPE_CLK, 3462306a36Sopenharmony_ci DT_PCIE30_PHY3_PIPE_CLK, 3562306a36Sopenharmony_ci DT_USB3PHY_0_CC_PIPE_CLK, 3662306a36Sopenharmony_ci}; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_cienum { 3962306a36Sopenharmony_ci P_XO, 4062306a36Sopenharmony_ci P_PCIE30_PHY0_PIPE, 4162306a36Sopenharmony_ci P_PCIE30_PHY1_PIPE, 4262306a36Sopenharmony_ci P_PCIE30_PHY2_PIPE, 4362306a36Sopenharmony_ci P_PCIE30_PHY3_PIPE, 4462306a36Sopenharmony_ci P_USB3PHY_0_PIPE, 4562306a36Sopenharmony_ci P_GPLL0, 4662306a36Sopenharmony_ci P_GPLL0_DIV2, 4762306a36Sopenharmony_ci P_GPLL0_OUT_AUX, 4862306a36Sopenharmony_ci P_GPLL2, 4962306a36Sopenharmony_ci P_GPLL4, 5062306a36Sopenharmony_ci P_PI_SLEEP, 5162306a36Sopenharmony_ci P_BIAS_PLL_UBI_NC_CLK, 5262306a36Sopenharmony_ci}; 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_cistatic const struct parent_map gcc_xo_map[] = { 5562306a36Sopenharmony_ci { P_XO, 0 }, 5662306a36Sopenharmony_ci}; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_data[] = { 5962306a36Sopenharmony_ci { .index = DT_XO }, 6062306a36Sopenharmony_ci}; 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_sleep_clk_data[] = { 6362306a36Sopenharmony_ci { .index = DT_SLEEP_CLK }, 6462306a36Sopenharmony_ci}; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_cistatic struct clk_alpha_pll gpll0_main = { 6762306a36Sopenharmony_ci .offset = 0x20000, 6862306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 6962306a36Sopenharmony_ci .clkr = { 7062306a36Sopenharmony_ci .enable_reg = 0x0b000, 7162306a36Sopenharmony_ci .enable_mask = BIT(0), 7262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 7362306a36Sopenharmony_ci .name = "gpll0_main", 7462306a36Sopenharmony_ci .parent_data = gcc_xo_data, 7562306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_data), 7662306a36Sopenharmony_ci .ops = &clk_alpha_pll_ops, 7762306a36Sopenharmony_ci }, 7862306a36Sopenharmony_ci }, 7962306a36Sopenharmony_ci}; 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_cistatic struct clk_fixed_factor gpll0_out_main_div2 = { 8262306a36Sopenharmony_ci .mult = 1, 8362306a36Sopenharmony_ci .div = 2, 8462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 8562306a36Sopenharmony_ci .name = "gpll0_out_main_div2", 8662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 8762306a36Sopenharmony_ci &gpll0_main.clkr.hw 8862306a36Sopenharmony_ci }, 8962306a36Sopenharmony_ci .num_parents = 1, 9062306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 9162306a36Sopenharmony_ci }, 9262306a36Sopenharmony_ci}; 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll0 = { 9562306a36Sopenharmony_ci .offset = 0x20000, 9662306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 9762306a36Sopenharmony_ci .width = 4, 9862306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 9962306a36Sopenharmony_ci .name = "gpll0", 10062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 10162306a36Sopenharmony_ci &gpll0_main.clkr.hw 10262306a36Sopenharmony_ci }, 10362306a36Sopenharmony_ci .num_parents = 1, 10462306a36Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ro_ops, 10562306a36Sopenharmony_ci }, 10662306a36Sopenharmony_ci}; 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_cistatic struct clk_alpha_pll gpll4_main = { 10962306a36Sopenharmony_ci .offset = 0x22000, 11062306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 11162306a36Sopenharmony_ci .clkr = { 11262306a36Sopenharmony_ci .enable_reg = 0x0b000, 11362306a36Sopenharmony_ci .enable_mask = BIT(2), 11462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 11562306a36Sopenharmony_ci .name = "gpll4_main", 11662306a36Sopenharmony_ci .parent_data = gcc_xo_data, 11762306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_data), 11862306a36Sopenharmony_ci .ops = &clk_alpha_pll_ops, 11962306a36Sopenharmony_ci }, 12062306a36Sopenharmony_ci }, 12162306a36Sopenharmony_ci}; 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll4 = { 12462306a36Sopenharmony_ci .offset = 0x22000, 12562306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 12662306a36Sopenharmony_ci .width = 4, 12762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 12862306a36Sopenharmony_ci .name = "gpll4", 12962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 13062306a36Sopenharmony_ci &gpll4_main.clkr.hw 13162306a36Sopenharmony_ci }, 13262306a36Sopenharmony_ci .num_parents = 1, 13362306a36Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ro_ops, 13462306a36Sopenharmony_ci }, 13562306a36Sopenharmony_ci}; 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_cistatic struct clk_alpha_pll gpll2_main = { 13862306a36Sopenharmony_ci .offset = 0x21000, 13962306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 14062306a36Sopenharmony_ci .clkr = { 14162306a36Sopenharmony_ci .enable_reg = 0x0b000, 14262306a36Sopenharmony_ci .enable_mask = BIT(1), 14362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 14462306a36Sopenharmony_ci .name = "gpll2_main", 14562306a36Sopenharmony_ci .parent_data = gcc_xo_data, 14662306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_data), 14762306a36Sopenharmony_ci .ops = &clk_alpha_pll_ops, 14862306a36Sopenharmony_ci }, 14962306a36Sopenharmony_ci }, 15062306a36Sopenharmony_ci}; 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_cistatic struct clk_alpha_pll_postdiv gpll2 = { 15362306a36Sopenharmony_ci .offset = 0x21000, 15462306a36Sopenharmony_ci .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], 15562306a36Sopenharmony_ci .width = 4, 15662306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 15762306a36Sopenharmony_ci .name = "gpll2", 15862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 15962306a36Sopenharmony_ci &gpll2_main.clkr.hw 16062306a36Sopenharmony_ci }, 16162306a36Sopenharmony_ci .num_parents = 1, 16262306a36Sopenharmony_ci .ops = &clk_alpha_pll_postdiv_ro_ops, 16362306a36Sopenharmony_ci }, 16462306a36Sopenharmony_ci}; 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_cistatic struct clk_branch gcc_sleep_clk_src = { 16762306a36Sopenharmony_ci .halt_reg = 0x3400c, 16862306a36Sopenharmony_ci .clkr = { 16962306a36Sopenharmony_ci .enable_reg = 0x3400c, 17062306a36Sopenharmony_ci .enable_mask = BIT(1), 17162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 17262306a36Sopenharmony_ci .name = "gcc_sleep_clk_src", 17362306a36Sopenharmony_ci .parent_data = gcc_sleep_clk_data, 17462306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_sleep_clk_data), 17562306a36Sopenharmony_ci .flags = CLK_IS_CRITICAL, 17662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 17762306a36Sopenharmony_ci }, 17862306a36Sopenharmony_ci }, 17962306a36Sopenharmony_ci}; 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll0_out_main_div2[] = { 18262306a36Sopenharmony_ci { .index = DT_XO }, 18362306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 18462306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 18562306a36Sopenharmony_ci}; 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll0_out_main_div2_map[] = { 18862306a36Sopenharmony_ci { P_XO, 0 }, 18962306a36Sopenharmony_ci { P_GPLL0, 1 }, 19062306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 19162306a36Sopenharmony_ci}; 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0[] = { 19462306a36Sopenharmony_ci { .index = DT_XO }, 19562306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 19662306a36Sopenharmony_ci}; 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_map[] = { 19962306a36Sopenharmony_ci { P_XO, 0 }, 20062306a36Sopenharmony_ci { P_GPLL0, 1 }, 20162306a36Sopenharmony_ci}; 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll4[] = { 20462306a36Sopenharmony_ci { .index = DT_XO }, 20562306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 20662306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 20762306a36Sopenharmony_ci}; 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll4_map[] = { 21062306a36Sopenharmony_ci { P_XO, 0 }, 21162306a36Sopenharmony_ci { P_GPLL0, 1 }, 21262306a36Sopenharmony_ci { P_GPLL4, 2 }, 21362306a36Sopenharmony_ci}; 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll0_div2_gpll0[] = { 21662306a36Sopenharmony_ci { .index = DT_XO }, 21762306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 21862306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 21962306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 22062306a36Sopenharmony_ci}; 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll0_div2_gpll0_map[] = { 22362306a36Sopenharmony_ci { P_XO, 0 }, 22462306a36Sopenharmony_ci { P_GPLL0, 1 }, 22562306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 22662306a36Sopenharmony_ci { P_GPLL0, 5 }, 22762306a36Sopenharmony_ci}; 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll0_sleep_clk[] = { 23062306a36Sopenharmony_ci { .index = DT_XO }, 23162306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 23262306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 23362306a36Sopenharmony_ci { .index = DT_SLEEP_CLK }, 23462306a36Sopenharmony_ci}; 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll0_sleep_clk_map[] = { 23762306a36Sopenharmony_ci { P_XO, 0 }, 23862306a36Sopenharmony_ci { P_GPLL0, 1 }, 23962306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 24062306a36Sopenharmony_ci { P_PI_SLEEP, 6 }, 24162306a36Sopenharmony_ci}; 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_core_pi_sleep_clk[] = { 24462306a36Sopenharmony_ci { .index = DT_XO }, 24562306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 24662306a36Sopenharmony_ci { .index = DT_SLEEP_CLK }, 24762306a36Sopenharmony_ci}; 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_core_pi_sleep_clk_map[] = { 25062306a36Sopenharmony_ci { P_XO, 0 }, 25162306a36Sopenharmony_ci { P_GPLL0, 2 }, 25262306a36Sopenharmony_ci { P_PI_SLEEP, 6 }, 25362306a36Sopenharmony_ci}; 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk[] = { 25662306a36Sopenharmony_ci { .index = DT_XO }, 25762306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 25862306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 25962306a36Sopenharmony_ci { .index = DT_BIAS_PLL_UBI_NC_CLK }, 26062306a36Sopenharmony_ci}; 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk_map[] = { 26362306a36Sopenharmony_ci { P_XO, 0 }, 26462306a36Sopenharmony_ci { P_GPLL0, 1 }, 26562306a36Sopenharmony_ci { P_GPLL4, 2 }, 26662306a36Sopenharmony_ci { P_BIAS_PLL_UBI_NC_CLK, 3 }, 26762306a36Sopenharmony_ci}; 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_cistatic const struct clk_parent_data 27062306a36Sopenharmony_ci gcc_xo_gpll0_gpll0_aux_core_pi_sleep_clk[] = { 27162306a36Sopenharmony_ci { .index = DT_XO }, 27262306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 27362306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 27462306a36Sopenharmony_ci { .index = DT_SLEEP_CLK }, 27562306a36Sopenharmony_ci}; 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_cistatic const struct parent_map 27862306a36Sopenharmony_ci gcc_xo_gpll0_gpll0_aux_core_pi_sleep_clk_map[] = { 27962306a36Sopenharmony_ci { P_XO, 0 }, 28062306a36Sopenharmony_ci { P_GPLL0, 1 }, 28162306a36Sopenharmony_ci { P_GPLL0_OUT_AUX, 2 }, 28262306a36Sopenharmony_ci { P_PI_SLEEP, 6 }, 28362306a36Sopenharmony_ci}; 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_out_main_div2_gpll0[] = { 28662306a36Sopenharmony_ci { .index = DT_XO }, 28762306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 28862306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 28962306a36Sopenharmony_ci}; 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_out_main_div2_gpll0_map[] = { 29262306a36Sopenharmony_ci { P_XO, 0 }, 29362306a36Sopenharmony_ci { P_GPLL0, 1 }, 29462306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 29562306a36Sopenharmony_ci}; 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_cistatic const struct clk_parent_data 29862306a36Sopenharmony_ci gcc_xo_gpll4_gpll0_gpll0_out_main_div2[] = { 29962306a36Sopenharmony_ci { .index = DT_XO }, 30062306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 30162306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 30262306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 30362306a36Sopenharmony_ci}; 30462306a36Sopenharmony_ci 30562306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll4_gpll0_gpll0_out_main_div2_map[] = { 30662306a36Sopenharmony_ci { P_XO, 0 }, 30762306a36Sopenharmony_ci { P_GPLL4, 1 }, 30862306a36Sopenharmony_ci { P_GPLL0, 3 }, 30962306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 31062306a36Sopenharmony_ci}; 31162306a36Sopenharmony_ci 31262306a36Sopenharmony_cistatic const struct clk_parent_data gcc_usb3phy_0_cc_pipe_clk_xo[] = { 31362306a36Sopenharmony_ci { .index = DT_USB3PHY_0_CC_PIPE_CLK }, 31462306a36Sopenharmony_ci { .index = DT_XO }, 31562306a36Sopenharmony_ci}; 31662306a36Sopenharmony_ci 31762306a36Sopenharmony_cistatic const struct parent_map gcc_usb3phy_0_cc_pipe_clk_xo_map[] = { 31862306a36Sopenharmony_ci { P_USB3PHY_0_PIPE, 0 }, 31962306a36Sopenharmony_ci { P_XO, 2 }, 32062306a36Sopenharmony_ci}; 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_cistatic const struct clk_parent_data 32362306a36Sopenharmony_ci gcc_xo_gpll0_gpll2_gpll0_out_main_div2[] = { 32462306a36Sopenharmony_ci { .index = DT_XO }, 32562306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 32662306a36Sopenharmony_ci { .hw = &gpll2.clkr.hw }, 32762306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 32862306a36Sopenharmony_ci}; 32962306a36Sopenharmony_ci 33062306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map[] = { 33162306a36Sopenharmony_ci { P_XO, 0 }, 33262306a36Sopenharmony_ci { P_GPLL0, 1 }, 33362306a36Sopenharmony_ci { P_GPLL2, 2 }, 33462306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 33562306a36Sopenharmony_ci}; 33662306a36Sopenharmony_ci 33762306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll4_gpll0_div2[] = { 33862306a36Sopenharmony_ci { .index = DT_XO}, 33962306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 34062306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 34162306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 34262306a36Sopenharmony_ci}; 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll4_gpll0_div2_map[] = { 34562306a36Sopenharmony_ci { P_XO, 0 }, 34662306a36Sopenharmony_ci { P_GPLL0, 1 }, 34762306a36Sopenharmony_ci { P_GPLL4, 2 }, 34862306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 34962306a36Sopenharmony_ci}; 35062306a36Sopenharmony_ci 35162306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll4_gpll0_gpll0_div2[] = { 35262306a36Sopenharmony_ci { .index = DT_XO }, 35362306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 35462306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 35562306a36Sopenharmony_ci { .hw = &gpll0_out_main_div2.hw }, 35662306a36Sopenharmony_ci}; 35762306a36Sopenharmony_ci 35862306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll4_gpll0_gpll0_div2_map[] = { 35962306a36Sopenharmony_ci { P_XO, 0 }, 36062306a36Sopenharmony_ci { P_GPLL4, 1 }, 36162306a36Sopenharmony_ci { P_GPLL0, 2 }, 36262306a36Sopenharmony_ci { P_GPLL0_DIV2, 4 }, 36362306a36Sopenharmony_ci}; 36462306a36Sopenharmony_ci 36562306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll2[] = { 36662306a36Sopenharmony_ci { .index = DT_XO }, 36762306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 36862306a36Sopenharmony_ci { .hw = &gpll2.clkr.hw }, 36962306a36Sopenharmony_ci}; 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll2_map[] = { 37262306a36Sopenharmony_ci { P_XO, 0 }, 37362306a36Sopenharmony_ci { P_GPLL0, 1 }, 37462306a36Sopenharmony_ci { P_GPLL2, 2 }, 37562306a36Sopenharmony_ci}; 37662306a36Sopenharmony_ci 37762306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll2_gpll4_pi_sleep[] = { 37862306a36Sopenharmony_ci { .index = DT_XO }, 37962306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 38062306a36Sopenharmony_ci { .hw = &gpll2.clkr.hw }, 38162306a36Sopenharmony_ci { .hw = &gpll4.clkr.hw }, 38262306a36Sopenharmony_ci { .index = DT_SLEEP_CLK }, 38362306a36Sopenharmony_ci}; 38462306a36Sopenharmony_ci 38562306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll2_gpll4_pi_sleep_map[] = { 38662306a36Sopenharmony_ci { P_XO, 0 }, 38762306a36Sopenharmony_ci { P_GPLL0, 1 }, 38862306a36Sopenharmony_ci { P_GPLL2, 2 }, 38962306a36Sopenharmony_ci { P_GPLL4, 3 }, 39062306a36Sopenharmony_ci { P_PI_SLEEP, 6 }, 39162306a36Sopenharmony_ci}; 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_cistatic const struct clk_parent_data gcc_xo_gpll0_gpll0_aux_gpll2[] = { 39462306a36Sopenharmony_ci { .index = DT_XO }, 39562306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 39662306a36Sopenharmony_ci { .hw = &gpll0.clkr.hw }, 39762306a36Sopenharmony_ci { .hw = &gpll2.clkr.hw }, 39862306a36Sopenharmony_ci}; 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll0_aux_gpll2_map[] = { 40162306a36Sopenharmony_ci { P_XO, 0 }, 40262306a36Sopenharmony_ci { P_GPLL0, 1 }, 40362306a36Sopenharmony_ci { P_GPLL0_OUT_AUX, 2 }, 40462306a36Sopenharmony_ci { P_GPLL2, 3 }, 40562306a36Sopenharmony_ci}; 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_apss_ahb_clk_src[] = { 40862306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 40962306a36Sopenharmony_ci F(50000000, P_GPLL0, 16, 0, 0), 41062306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 41162306a36Sopenharmony_ci { } 41262306a36Sopenharmony_ci}; 41362306a36Sopenharmony_ci 41462306a36Sopenharmony_cistatic struct clk_rcg2 apss_ahb_clk_src = { 41562306a36Sopenharmony_ci .cmd_rcgr = 0x2400c, 41662306a36Sopenharmony_ci .freq_tbl = ftbl_apss_ahb_clk_src, 41762306a36Sopenharmony_ci .hid_width = 5, 41862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 41962306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 42062306a36Sopenharmony_ci .name = "apss_ahb_clk_src", 42162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 42262306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 42362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 42462306a36Sopenharmony_ci }, 42562306a36Sopenharmony_ci}; 42662306a36Sopenharmony_ci 42762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_apss_axi_clk_src[] = { 42862306a36Sopenharmony_ci F(533000000, P_GPLL0, 1.5, 0, 0), 42962306a36Sopenharmony_ci { } 43062306a36Sopenharmony_ci}; 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_cistatic struct clk_rcg2 apss_axi_clk_src = { 43362306a36Sopenharmony_ci .cmd_rcgr = 0x24004, 43462306a36Sopenharmony_ci .freq_tbl = ftbl_apss_axi_clk_src, 43562306a36Sopenharmony_ci .hid_width = 5, 43662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_div2_gpll0_map, 43762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 43862306a36Sopenharmony_ci .name = "apss_axi_clk_src", 43962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_div2_gpll0, 44062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_div2_gpll0), 44162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 44262306a36Sopenharmony_ci }, 44362306a36Sopenharmony_ci}; 44462306a36Sopenharmony_ci 44562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup_i2c_apps_clk_src[] = { 44662306a36Sopenharmony_ci F(9600000, P_XO, 2.5, 0, 0), 44762306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 44862306a36Sopenharmony_ci F(50000000, P_GPLL0, 16, 0, 0), 44962306a36Sopenharmony_ci { } 45062306a36Sopenharmony_ci}; 45162306a36Sopenharmony_ci 45262306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src = { 45362306a36Sopenharmony_ci .cmd_rcgr = 0x02018, 45462306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 45562306a36Sopenharmony_ci .hid_width = 5, 45662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 45762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 45862306a36Sopenharmony_ci .name = "blsp1_qup1_i2c_apps_clk_src", 45962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 46062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 46162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 46262306a36Sopenharmony_ci }, 46362306a36Sopenharmony_ci}; 46462306a36Sopenharmony_ci 46562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_qup_spi_apps_clk_src[] = { 46662306a36Sopenharmony_ci F(960000, P_XO, 10, 2, 5), 46762306a36Sopenharmony_ci F(4800000, P_XO, 5, 0, 0), 46862306a36Sopenharmony_ci F(9600000, P_XO, 2, 4, 5), 46962306a36Sopenharmony_ci F(16000000, P_GPLL0, 10, 1, 5), 47062306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 47162306a36Sopenharmony_ci F(25000000, P_GPLL0, 16, 1, 2), 47262306a36Sopenharmony_ci F(50000000, P_GPLL0, 16, 0, 0), 47362306a36Sopenharmony_ci { } 47462306a36Sopenharmony_ci}; 47562306a36Sopenharmony_ci 47662306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup1_spi_apps_clk_src = { 47762306a36Sopenharmony_ci .cmd_rcgr = 0x02004, 47862306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 47962306a36Sopenharmony_ci .mnd_width = 8, 48062306a36Sopenharmony_ci .hid_width = 5, 48162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 48262306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 48362306a36Sopenharmony_ci .name = "blsp1_qup1_spi_apps_clk_src", 48462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 48562306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 48662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 48762306a36Sopenharmony_ci }, 48862306a36Sopenharmony_ci}; 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src = { 49162306a36Sopenharmony_ci .cmd_rcgr = 0x03018, 49262306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 49362306a36Sopenharmony_ci .hid_width = 5, 49462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 49562306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 49662306a36Sopenharmony_ci .name = "blsp1_qup2_i2c_apps_clk_src", 49762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 49862306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 49962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 50062306a36Sopenharmony_ci }, 50162306a36Sopenharmony_ci}; 50262306a36Sopenharmony_ci 50362306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup2_spi_apps_clk_src = { 50462306a36Sopenharmony_ci .cmd_rcgr = 0x03004, 50562306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 50662306a36Sopenharmony_ci .mnd_width = 8, 50762306a36Sopenharmony_ci .hid_width = 5, 50862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 50962306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 51062306a36Sopenharmony_ci .name = "blsp1_qup2_spi_apps_clk_src", 51162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 51262306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 51362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 51462306a36Sopenharmony_ci }, 51562306a36Sopenharmony_ci}; 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src = { 51862306a36Sopenharmony_ci .cmd_rcgr = 0x04018, 51962306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 52062306a36Sopenharmony_ci .hid_width = 5, 52162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 52262306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 52362306a36Sopenharmony_ci .name = "blsp1_qup3_i2c_apps_clk_src", 52462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 52562306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 52662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 52762306a36Sopenharmony_ci }, 52862306a36Sopenharmony_ci}; 52962306a36Sopenharmony_ci 53062306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup3_spi_apps_clk_src = { 53162306a36Sopenharmony_ci .cmd_rcgr = 0x04004, 53262306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 53362306a36Sopenharmony_ci .mnd_width = 8, 53462306a36Sopenharmony_ci .hid_width = 5, 53562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 53662306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 53762306a36Sopenharmony_ci .name = "blsp1_qup3_spi_apps_clk_src", 53862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 53962306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 54062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 54162306a36Sopenharmony_ci }, 54262306a36Sopenharmony_ci}; 54362306a36Sopenharmony_ci 54462306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src = { 54562306a36Sopenharmony_ci .cmd_rcgr = 0x05018, 54662306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 54762306a36Sopenharmony_ci .hid_width = 5, 54862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 54962306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 55062306a36Sopenharmony_ci .name = "blsp1_qup4_i2c_apps_clk_src", 55162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 55262306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 55362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 55462306a36Sopenharmony_ci }, 55562306a36Sopenharmony_ci}; 55662306a36Sopenharmony_ci 55762306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup4_spi_apps_clk_src = { 55862306a36Sopenharmony_ci .cmd_rcgr = 0x05004, 55962306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 56062306a36Sopenharmony_ci .mnd_width = 8, 56162306a36Sopenharmony_ci .hid_width = 5, 56262306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 56362306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 56462306a36Sopenharmony_ci .name = "blsp1_qup4_spi_apps_clk_src", 56562306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 56662306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 56762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 56862306a36Sopenharmony_ci }, 56962306a36Sopenharmony_ci}; 57062306a36Sopenharmony_ci 57162306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup5_i2c_apps_clk_src = { 57262306a36Sopenharmony_ci .cmd_rcgr = 0x06018, 57362306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 57462306a36Sopenharmony_ci .hid_width = 5, 57562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 57662306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 57762306a36Sopenharmony_ci .name = "blsp1_qup5_i2c_apps_clk_src", 57862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 57962306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 58062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 58162306a36Sopenharmony_ci }, 58262306a36Sopenharmony_ci}; 58362306a36Sopenharmony_ci 58462306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup5_spi_apps_clk_src = { 58562306a36Sopenharmony_ci .cmd_rcgr = 0x06004, 58662306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 58762306a36Sopenharmony_ci .mnd_width = 8, 58862306a36Sopenharmony_ci .hid_width = 5, 58962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 59062306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 59162306a36Sopenharmony_ci .name = "blsp1_qup5_spi_apps_clk_src", 59262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 59362306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 59462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 59562306a36Sopenharmony_ci }, 59662306a36Sopenharmony_ci}; 59762306a36Sopenharmony_ci 59862306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup6_i2c_apps_clk_src = { 59962306a36Sopenharmony_ci .cmd_rcgr = 0x07018, 60062306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_i2c_apps_clk_src, 60162306a36Sopenharmony_ci .hid_width = 5, 60262306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 60362306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 60462306a36Sopenharmony_ci .name = "blsp1_qup6_i2c_apps_clk_src", 60562306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 60662306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 60762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 60862306a36Sopenharmony_ci }, 60962306a36Sopenharmony_ci}; 61062306a36Sopenharmony_ci 61162306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_qup6_spi_apps_clk_src = { 61262306a36Sopenharmony_ci .cmd_rcgr = 0x07004, 61362306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_qup_spi_apps_clk_src, 61462306a36Sopenharmony_ci .mnd_width = 8, 61562306a36Sopenharmony_ci .hid_width = 5, 61662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 61762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 61862306a36Sopenharmony_ci .name = "blsp1_qup6_spi_apps_clk_src", 61962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 62062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 62162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 62262306a36Sopenharmony_ci }, 62362306a36Sopenharmony_ci}; 62462306a36Sopenharmony_ci 62562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_blsp1_uart_apps_clk_src[] = { 62662306a36Sopenharmony_ci F(3686400, P_GPLL0_DIV2, 1, 144, 15625), 62762306a36Sopenharmony_ci F(7372800, P_GPLL0_DIV2, 1, 288, 15625), 62862306a36Sopenharmony_ci F(14745600, P_GPLL0_DIV2, 1, 576, 15625), 62962306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 63062306a36Sopenharmony_ci F(25000000, P_GPLL0, 16, 1, 2), 63162306a36Sopenharmony_ci F(32000000, P_GPLL0, 1, 1, 25), 63262306a36Sopenharmony_ci F(40000000, P_GPLL0, 1, 1, 20), 63362306a36Sopenharmony_ci F(46400000, P_GPLL0, 1, 29, 500), 63462306a36Sopenharmony_ci F(48000000, P_GPLL0, 1, 3, 50), 63562306a36Sopenharmony_ci F(51200000, P_GPLL0, 1, 8, 125), 63662306a36Sopenharmony_ci F(56000000, P_GPLL0, 1, 7, 100), 63762306a36Sopenharmony_ci F(58982400, P_GPLL0, 1, 1152, 15625), 63862306a36Sopenharmony_ci F(60000000, P_GPLL0, 1, 3, 40), 63962306a36Sopenharmony_ci F(64000000, P_GPLL0, 12.5, 0, 0), 64062306a36Sopenharmony_ci { } 64162306a36Sopenharmony_ci}; 64262306a36Sopenharmony_ci 64362306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart1_apps_clk_src = { 64462306a36Sopenharmony_ci .cmd_rcgr = 0x0202c, 64562306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 64662306a36Sopenharmony_ci .mnd_width = 16, 64762306a36Sopenharmony_ci .hid_width = 5, 64862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 64962306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 65062306a36Sopenharmony_ci .name = "blsp1_uart1_apps_clk_src", 65162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 65262306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 65362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 65462306a36Sopenharmony_ci }, 65562306a36Sopenharmony_ci}; 65662306a36Sopenharmony_ci 65762306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart2_apps_clk_src = { 65862306a36Sopenharmony_ci .cmd_rcgr = 0x0302c, 65962306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 66062306a36Sopenharmony_ci .mnd_width = 16, 66162306a36Sopenharmony_ci .hid_width = 5, 66262306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 66362306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 66462306a36Sopenharmony_ci .name = "blsp1_uart2_apps_clk_src", 66562306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 66662306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 66762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 66862306a36Sopenharmony_ci }, 66962306a36Sopenharmony_ci}; 67062306a36Sopenharmony_ci 67162306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart3_apps_clk_src = { 67262306a36Sopenharmony_ci .cmd_rcgr = 0x0402c, 67362306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 67462306a36Sopenharmony_ci .mnd_width = 16, 67562306a36Sopenharmony_ci .hid_width = 5, 67662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 67762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 67862306a36Sopenharmony_ci .name = "blsp1_uart3_apps_clk_src", 67962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 68062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 68162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 68262306a36Sopenharmony_ci }, 68362306a36Sopenharmony_ci}; 68462306a36Sopenharmony_ci 68562306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart4_apps_clk_src = { 68662306a36Sopenharmony_ci .cmd_rcgr = 0x0502c, 68762306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 68862306a36Sopenharmony_ci .mnd_width = 16, 68962306a36Sopenharmony_ci .hid_width = 5, 69062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 69162306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 69262306a36Sopenharmony_ci .name = "blsp1_uart4_apps_clk_src", 69362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 69462306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 69562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 69662306a36Sopenharmony_ci }, 69762306a36Sopenharmony_ci}; 69862306a36Sopenharmony_ci 69962306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart5_apps_clk_src = { 70062306a36Sopenharmony_ci .cmd_rcgr = 0x0602c, 70162306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 70262306a36Sopenharmony_ci .mnd_width = 16, 70362306a36Sopenharmony_ci .hid_width = 5, 70462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 70562306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 70662306a36Sopenharmony_ci .name = "blsp1_uart5_apps_clk_src", 70762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 70862306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 70962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 71062306a36Sopenharmony_ci }, 71162306a36Sopenharmony_ci}; 71262306a36Sopenharmony_ci 71362306a36Sopenharmony_cistatic struct clk_rcg2 blsp1_uart6_apps_clk_src = { 71462306a36Sopenharmony_ci .cmd_rcgr = 0x0702c, 71562306a36Sopenharmony_ci .freq_tbl = ftbl_blsp1_uart_apps_clk_src, 71662306a36Sopenharmony_ci .mnd_width = 16, 71762306a36Sopenharmony_ci .hid_width = 5, 71862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 71962306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 72062306a36Sopenharmony_ci .name = "blsp1_uart6_apps_clk_src", 72162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 72262306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 72362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 72462306a36Sopenharmony_ci }, 72562306a36Sopenharmony_ci}; 72662306a36Sopenharmony_ci 72762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gcc_crypto_clk_src[] = { 72862306a36Sopenharmony_ci F(160000000, P_GPLL0, 5, 0, 0), 72962306a36Sopenharmony_ci { } 73062306a36Sopenharmony_ci}; 73162306a36Sopenharmony_ci 73262306a36Sopenharmony_cistatic struct clk_rcg2 gcc_crypto_clk_src = { 73362306a36Sopenharmony_ci .cmd_rcgr = 0x16004, 73462306a36Sopenharmony_ci .freq_tbl = ftbl_gcc_crypto_clk_src, 73562306a36Sopenharmony_ci .hid_width = 5, 73662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 73762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 73862306a36Sopenharmony_ci .name = "gcc_crypto_clk_src", 73962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 74062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 74162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 74262306a36Sopenharmony_ci }, 74362306a36Sopenharmony_ci}; 74462306a36Sopenharmony_ci 74562306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_clk = { 74662306a36Sopenharmony_ci .halt_reg = 0x1600c, 74762306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 74862306a36Sopenharmony_ci .clkr = { 74962306a36Sopenharmony_ci .enable_reg = 0x0b004, 75062306a36Sopenharmony_ci .enable_mask = BIT(14), 75162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 75262306a36Sopenharmony_ci .name = "gcc_crypto_clk", 75362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 75462306a36Sopenharmony_ci &gcc_crypto_clk_src.clkr.hw }, 75562306a36Sopenharmony_ci .num_parents = 1, 75662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 75762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 75862306a36Sopenharmony_ci }, 75962306a36Sopenharmony_ci }, 76062306a36Sopenharmony_ci}; 76162306a36Sopenharmony_ci 76262306a36Sopenharmony_cistatic struct clk_branch gcc_apss_ahb_clk = { 76362306a36Sopenharmony_ci .halt_reg = 0x24018, 76462306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 76562306a36Sopenharmony_ci .clkr = { 76662306a36Sopenharmony_ci .enable_reg = 0x0b004, 76762306a36Sopenharmony_ci .enable_mask = BIT(0), 76862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 76962306a36Sopenharmony_ci .name = "gcc_apss_ahb_clk", 77062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 77162306a36Sopenharmony_ci &apss_ahb_clk_src.clkr.hw 77262306a36Sopenharmony_ci }, 77362306a36Sopenharmony_ci .num_parents = 1, 77462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 77562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 77662306a36Sopenharmony_ci }, 77762306a36Sopenharmony_ci }, 77862306a36Sopenharmony_ci}; 77962306a36Sopenharmony_ci 78062306a36Sopenharmony_cistatic struct clk_branch gcc_apss_axi_clk = { 78162306a36Sopenharmony_ci .halt_reg = 0x2401c, 78262306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 78362306a36Sopenharmony_ci .clkr = { 78462306a36Sopenharmony_ci .enable_reg = 0x0b004, 78562306a36Sopenharmony_ci .enable_mask = BIT(1), 78662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 78762306a36Sopenharmony_ci .name = "gcc_apss_axi_clk", 78862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 78962306a36Sopenharmony_ci &apss_axi_clk_src.clkr.hw 79062306a36Sopenharmony_ci }, 79162306a36Sopenharmony_ci .num_parents = 1, 79262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 79362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 79462306a36Sopenharmony_ci }, 79562306a36Sopenharmony_ci }, 79662306a36Sopenharmony_ci}; 79762306a36Sopenharmony_ci 79862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_i2c_apps_clk = { 79962306a36Sopenharmony_ci .halt_reg = 0x2024, 80062306a36Sopenharmony_ci .clkr = { 80162306a36Sopenharmony_ci .enable_reg = 0x2024, 80262306a36Sopenharmony_ci .enable_mask = BIT(0), 80362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 80462306a36Sopenharmony_ci .name = "gcc_blsp1_qup1_i2c_apps_clk", 80562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 80662306a36Sopenharmony_ci &blsp1_qup1_i2c_apps_clk_src.clkr.hw 80762306a36Sopenharmony_ci }, 80862306a36Sopenharmony_ci .num_parents = 1, 80962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 81062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 81162306a36Sopenharmony_ci }, 81262306a36Sopenharmony_ci }, 81362306a36Sopenharmony_ci}; 81462306a36Sopenharmony_ci 81562306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup1_spi_apps_clk = { 81662306a36Sopenharmony_ci .halt_reg = 0x02020, 81762306a36Sopenharmony_ci .clkr = { 81862306a36Sopenharmony_ci .enable_reg = 0x02020, 81962306a36Sopenharmony_ci .enable_mask = BIT(0), 82062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 82162306a36Sopenharmony_ci .name = "gcc_blsp1_qup1_spi_apps_clk", 82262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 82362306a36Sopenharmony_ci &blsp1_qup1_spi_apps_clk_src.clkr.hw 82462306a36Sopenharmony_ci }, 82562306a36Sopenharmony_ci .num_parents = 1, 82662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 82762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 82862306a36Sopenharmony_ci }, 82962306a36Sopenharmony_ci }, 83062306a36Sopenharmony_ci}; 83162306a36Sopenharmony_ci 83262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_i2c_apps_clk = { 83362306a36Sopenharmony_ci .halt_reg = 0x03024, 83462306a36Sopenharmony_ci .clkr = { 83562306a36Sopenharmony_ci .enable_reg = 0x03024, 83662306a36Sopenharmony_ci .enable_mask = BIT(0), 83762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 83862306a36Sopenharmony_ci .name = "gcc_blsp1_qup2_i2c_apps_clk", 83962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 84062306a36Sopenharmony_ci &blsp1_qup2_i2c_apps_clk_src.clkr.hw 84162306a36Sopenharmony_ci }, 84262306a36Sopenharmony_ci .num_parents = 1, 84362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 84462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 84562306a36Sopenharmony_ci }, 84662306a36Sopenharmony_ci }, 84762306a36Sopenharmony_ci}; 84862306a36Sopenharmony_ci 84962306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup2_spi_apps_clk = { 85062306a36Sopenharmony_ci .halt_reg = 0x03020, 85162306a36Sopenharmony_ci .clkr = { 85262306a36Sopenharmony_ci .enable_reg = 0x03020, 85362306a36Sopenharmony_ci .enable_mask = BIT(0), 85462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 85562306a36Sopenharmony_ci .name = "gcc_blsp1_qup2_spi_apps_clk", 85662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 85762306a36Sopenharmony_ci &blsp1_qup2_spi_apps_clk_src.clkr.hw 85862306a36Sopenharmony_ci }, 85962306a36Sopenharmony_ci .num_parents = 1, 86062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 86162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 86262306a36Sopenharmony_ci }, 86362306a36Sopenharmony_ci }, 86462306a36Sopenharmony_ci}; 86562306a36Sopenharmony_ci 86662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_i2c_apps_clk = { 86762306a36Sopenharmony_ci .halt_reg = 0x04024, 86862306a36Sopenharmony_ci .clkr = { 86962306a36Sopenharmony_ci .enable_reg = 0x04024, 87062306a36Sopenharmony_ci .enable_mask = BIT(0), 87162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 87262306a36Sopenharmony_ci .name = "gcc_blsp1_qup3_i2c_apps_clk", 87362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 87462306a36Sopenharmony_ci &blsp1_qup3_i2c_apps_clk_src.clkr.hw 87562306a36Sopenharmony_ci }, 87662306a36Sopenharmony_ci .num_parents = 1, 87762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 87862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 87962306a36Sopenharmony_ci }, 88062306a36Sopenharmony_ci }, 88162306a36Sopenharmony_ci}; 88262306a36Sopenharmony_ci 88362306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup3_spi_apps_clk = { 88462306a36Sopenharmony_ci .halt_reg = 0x04020, 88562306a36Sopenharmony_ci .clkr = { 88662306a36Sopenharmony_ci .enable_reg = 0x04020, 88762306a36Sopenharmony_ci .enable_mask = BIT(0), 88862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 88962306a36Sopenharmony_ci .name = "gcc_blsp1_qup3_spi_apps_clk", 89062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 89162306a36Sopenharmony_ci &blsp1_qup3_spi_apps_clk_src.clkr.hw 89262306a36Sopenharmony_ci }, 89362306a36Sopenharmony_ci .num_parents = 1, 89462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 89562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 89662306a36Sopenharmony_ci }, 89762306a36Sopenharmony_ci }, 89862306a36Sopenharmony_ci}; 89962306a36Sopenharmony_ci 90062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_i2c_apps_clk = { 90162306a36Sopenharmony_ci .halt_reg = 0x05024, 90262306a36Sopenharmony_ci .clkr = { 90362306a36Sopenharmony_ci .enable_reg = 0x05024, 90462306a36Sopenharmony_ci .enable_mask = BIT(0), 90562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 90662306a36Sopenharmony_ci .name = "gcc_blsp1_qup4_i2c_apps_clk", 90762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 90862306a36Sopenharmony_ci &blsp1_qup4_i2c_apps_clk_src.clkr.hw 90962306a36Sopenharmony_ci }, 91062306a36Sopenharmony_ci .num_parents = 1, 91162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 91262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 91362306a36Sopenharmony_ci }, 91462306a36Sopenharmony_ci }, 91562306a36Sopenharmony_ci}; 91662306a36Sopenharmony_ci 91762306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup4_spi_apps_clk = { 91862306a36Sopenharmony_ci .halt_reg = 0x05020, 91962306a36Sopenharmony_ci .clkr = { 92062306a36Sopenharmony_ci .enable_reg = 0x05020, 92162306a36Sopenharmony_ci .enable_mask = BIT(0), 92262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 92362306a36Sopenharmony_ci .name = "gcc_blsp1_qup4_spi_apps_clk", 92462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 92562306a36Sopenharmony_ci &blsp1_qup4_spi_apps_clk_src.clkr.hw 92662306a36Sopenharmony_ci }, 92762306a36Sopenharmony_ci .num_parents = 1, 92862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 92962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 93062306a36Sopenharmony_ci }, 93162306a36Sopenharmony_ci }, 93262306a36Sopenharmony_ci}; 93362306a36Sopenharmony_ci 93462306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup5_i2c_apps_clk = { 93562306a36Sopenharmony_ci .halt_reg = 0x06024, 93662306a36Sopenharmony_ci .clkr = { 93762306a36Sopenharmony_ci .enable_reg = 0x06024, 93862306a36Sopenharmony_ci .enable_mask = BIT(0), 93962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 94062306a36Sopenharmony_ci .name = "gcc_blsp1_qup5_i2c_apps_clk", 94162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 94262306a36Sopenharmony_ci &blsp1_qup5_i2c_apps_clk_src.clkr.hw 94362306a36Sopenharmony_ci }, 94462306a36Sopenharmony_ci .num_parents = 1, 94562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 94662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 94762306a36Sopenharmony_ci }, 94862306a36Sopenharmony_ci }, 94962306a36Sopenharmony_ci}; 95062306a36Sopenharmony_ci 95162306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup5_spi_apps_clk = { 95262306a36Sopenharmony_ci .halt_reg = 0x06020, 95362306a36Sopenharmony_ci .clkr = { 95462306a36Sopenharmony_ci .enable_reg = 0x06020, 95562306a36Sopenharmony_ci .enable_mask = BIT(0), 95662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 95762306a36Sopenharmony_ci .name = "gcc_blsp1_qup5_spi_apps_clk", 95862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 95962306a36Sopenharmony_ci &blsp1_qup5_spi_apps_clk_src.clkr.hw 96062306a36Sopenharmony_ci }, 96162306a36Sopenharmony_ci .num_parents = 1, 96262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 96362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 96462306a36Sopenharmony_ci }, 96562306a36Sopenharmony_ci }, 96662306a36Sopenharmony_ci}; 96762306a36Sopenharmony_ci 96862306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup6_i2c_apps_clk = { 96962306a36Sopenharmony_ci .halt_reg = 0x07024, 97062306a36Sopenharmony_ci .clkr = { 97162306a36Sopenharmony_ci .enable_reg = 0x07024, 97262306a36Sopenharmony_ci .enable_mask = BIT(0), 97362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 97462306a36Sopenharmony_ci .name = "gcc_blsp1_qup6_i2c_apps_clk", 97562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 97662306a36Sopenharmony_ci &blsp1_qup6_i2c_apps_clk_src.clkr.hw 97762306a36Sopenharmony_ci }, 97862306a36Sopenharmony_ci .num_parents = 1, 97962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 98062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 98162306a36Sopenharmony_ci }, 98262306a36Sopenharmony_ci }, 98362306a36Sopenharmony_ci}; 98462306a36Sopenharmony_ci 98562306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_qup6_spi_apps_clk = { 98662306a36Sopenharmony_ci .halt_reg = 0x07020, 98762306a36Sopenharmony_ci .clkr = { 98862306a36Sopenharmony_ci .enable_reg = 0x07020, 98962306a36Sopenharmony_ci .enable_mask = BIT(0), 99062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 99162306a36Sopenharmony_ci .name = "gcc_blsp1_qup6_spi_apps_clk", 99262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 99362306a36Sopenharmony_ci &blsp1_qup6_spi_apps_clk_src.clkr.hw 99462306a36Sopenharmony_ci }, 99562306a36Sopenharmony_ci .num_parents = 1, 99662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 99762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 99862306a36Sopenharmony_ci }, 99962306a36Sopenharmony_ci }, 100062306a36Sopenharmony_ci}; 100162306a36Sopenharmony_ci 100262306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart1_apps_clk = { 100362306a36Sopenharmony_ci .halt_reg = 0x02040, 100462306a36Sopenharmony_ci .clkr = { 100562306a36Sopenharmony_ci .enable_reg = 0x02040, 100662306a36Sopenharmony_ci .enable_mask = BIT(0), 100762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 100862306a36Sopenharmony_ci .name = "gcc_blsp1_uart1_apps_clk", 100962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 101062306a36Sopenharmony_ci &blsp1_uart1_apps_clk_src.clkr.hw 101162306a36Sopenharmony_ci }, 101262306a36Sopenharmony_ci .num_parents = 1, 101362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 101462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 101562306a36Sopenharmony_ci }, 101662306a36Sopenharmony_ci }, 101762306a36Sopenharmony_ci}; 101862306a36Sopenharmony_ci 101962306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart2_apps_clk = { 102062306a36Sopenharmony_ci .halt_reg = 0x03040, 102162306a36Sopenharmony_ci .clkr = { 102262306a36Sopenharmony_ci .enable_reg = 0x03040, 102362306a36Sopenharmony_ci .enable_mask = BIT(0), 102462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 102562306a36Sopenharmony_ci .name = "gcc_blsp1_uart2_apps_clk", 102662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 102762306a36Sopenharmony_ci &blsp1_uart2_apps_clk_src.clkr.hw 102862306a36Sopenharmony_ci }, 102962306a36Sopenharmony_ci .num_parents = 1, 103062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 103162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 103262306a36Sopenharmony_ci }, 103362306a36Sopenharmony_ci }, 103462306a36Sopenharmony_ci}; 103562306a36Sopenharmony_ci 103662306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart3_apps_clk = { 103762306a36Sopenharmony_ci .halt_reg = 0x04054, 103862306a36Sopenharmony_ci .clkr = { 103962306a36Sopenharmony_ci .enable_reg = 0x04054, 104062306a36Sopenharmony_ci .enable_mask = BIT(0), 104162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 104262306a36Sopenharmony_ci .name = "gcc_blsp1_uart3_apps_clk", 104362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 104462306a36Sopenharmony_ci &blsp1_uart3_apps_clk_src.clkr.hw 104562306a36Sopenharmony_ci }, 104662306a36Sopenharmony_ci .num_parents = 1, 104762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 104862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 104962306a36Sopenharmony_ci }, 105062306a36Sopenharmony_ci }, 105162306a36Sopenharmony_ci}; 105262306a36Sopenharmony_ci 105362306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart4_apps_clk = { 105462306a36Sopenharmony_ci .halt_reg = 0x05040, 105562306a36Sopenharmony_ci .clkr = { 105662306a36Sopenharmony_ci .enable_reg = 0x05040, 105762306a36Sopenharmony_ci .enable_mask = BIT(0), 105862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 105962306a36Sopenharmony_ci .name = "gcc_blsp1_uart4_apps_clk", 106062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 106162306a36Sopenharmony_ci &blsp1_uart4_apps_clk_src.clkr.hw 106262306a36Sopenharmony_ci }, 106362306a36Sopenharmony_ci .num_parents = 1, 106462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 106562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 106662306a36Sopenharmony_ci }, 106762306a36Sopenharmony_ci }, 106862306a36Sopenharmony_ci}; 106962306a36Sopenharmony_ci 107062306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart5_apps_clk = { 107162306a36Sopenharmony_ci .halt_reg = 0x06040, 107262306a36Sopenharmony_ci .clkr = { 107362306a36Sopenharmony_ci .enable_reg = 0x06040, 107462306a36Sopenharmony_ci .enable_mask = BIT(0), 107562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 107662306a36Sopenharmony_ci .name = "gcc_blsp1_uart5_apps_clk", 107762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 107862306a36Sopenharmony_ci &blsp1_uart5_apps_clk_src.clkr.hw 107962306a36Sopenharmony_ci }, 108062306a36Sopenharmony_ci .num_parents = 1, 108162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 108262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 108362306a36Sopenharmony_ci }, 108462306a36Sopenharmony_ci }, 108562306a36Sopenharmony_ci}; 108662306a36Sopenharmony_ci 108762306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_uart6_apps_clk = { 108862306a36Sopenharmony_ci .halt_reg = 0x07040, 108962306a36Sopenharmony_ci .clkr = { 109062306a36Sopenharmony_ci .enable_reg = 0x07040, 109162306a36Sopenharmony_ci .enable_mask = BIT(0), 109262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 109362306a36Sopenharmony_ci .name = "gcc_blsp1_uart6_apps_clk", 109462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 109562306a36Sopenharmony_ci &blsp1_uart6_apps_clk_src.clkr.hw 109662306a36Sopenharmony_ci }, 109762306a36Sopenharmony_ci .num_parents = 1, 109862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 109962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 110062306a36Sopenharmony_ci }, 110162306a36Sopenharmony_ci }, 110262306a36Sopenharmony_ci}; 110362306a36Sopenharmony_ci 110462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcie0_axi_m_clk_src[] = { 110562306a36Sopenharmony_ci F(240000000, P_GPLL4, 5, 0, 0), 110662306a36Sopenharmony_ci { } 110762306a36Sopenharmony_ci}; 110862306a36Sopenharmony_ci 110962306a36Sopenharmony_cistatic struct clk_rcg2 pcie0_axi_m_clk_src = { 111062306a36Sopenharmony_ci .cmd_rcgr = 0x28018, 111162306a36Sopenharmony_ci .freq_tbl = ftbl_pcie0_axi_m_clk_src, 111262306a36Sopenharmony_ci .hid_width = 5, 111362306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_map, 111462306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 111562306a36Sopenharmony_ci .name = "pcie0_axi_m_clk_src", 111662306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4, 111762306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4), 111862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 111962306a36Sopenharmony_ci }, 112062306a36Sopenharmony_ci}; 112162306a36Sopenharmony_ci 112262306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_axi_m_clk = { 112362306a36Sopenharmony_ci .halt_reg = 0x28038, 112462306a36Sopenharmony_ci .clkr = { 112562306a36Sopenharmony_ci .enable_reg = 0x28038, 112662306a36Sopenharmony_ci .enable_mask = BIT(0), 112762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 112862306a36Sopenharmony_ci .name = "gcc_pcie0_axi_m_clk", 112962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 113062306a36Sopenharmony_ci &pcie0_axi_m_clk_src.clkr.hw 113162306a36Sopenharmony_ci }, 113262306a36Sopenharmony_ci .num_parents = 1, 113362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 113462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 113562306a36Sopenharmony_ci }, 113662306a36Sopenharmony_ci }, 113762306a36Sopenharmony_ci}; 113862306a36Sopenharmony_ci 113962306a36Sopenharmony_cistatic struct clk_branch gcc_anoc_pcie0_1lane_m_clk = { 114062306a36Sopenharmony_ci .halt_reg = 0x2e07c, 114162306a36Sopenharmony_ci .clkr = { 114262306a36Sopenharmony_ci .enable_reg = 0x2e07c, 114362306a36Sopenharmony_ci .enable_mask = BIT(0), 114462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 114562306a36Sopenharmony_ci .name = "gcc_anoc_pcie0_1lane_m_clk", 114662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 114762306a36Sopenharmony_ci &pcie0_axi_m_clk_src.clkr.hw 114862306a36Sopenharmony_ci }, 114962306a36Sopenharmony_ci .num_parents = 1, 115062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 115162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 115262306a36Sopenharmony_ci }, 115362306a36Sopenharmony_ci }, 115462306a36Sopenharmony_ci}; 115562306a36Sopenharmony_ci 115662306a36Sopenharmony_cistatic struct clk_rcg2 pcie1_axi_m_clk_src = { 115762306a36Sopenharmony_ci .cmd_rcgr = 0x29018, 115862306a36Sopenharmony_ci .freq_tbl = ftbl_pcie0_axi_m_clk_src, 115962306a36Sopenharmony_ci .hid_width = 5, 116062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_map, 116162306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 116262306a36Sopenharmony_ci .name = "pcie1_axi_m_clk_src", 116362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4, 116462306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4), 116562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 116662306a36Sopenharmony_ci }, 116762306a36Sopenharmony_ci}; 116862306a36Sopenharmony_ci 116962306a36Sopenharmony_cistatic struct clk_branch gcc_pcie1_axi_m_clk = { 117062306a36Sopenharmony_ci .halt_reg = 0x29038, 117162306a36Sopenharmony_ci .clkr = { 117262306a36Sopenharmony_ci .enable_reg = 0x29038, 117362306a36Sopenharmony_ci .enable_mask = BIT(0), 117462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 117562306a36Sopenharmony_ci .name = "gcc_pcie1_axi_m_clk", 117662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 117762306a36Sopenharmony_ci &pcie1_axi_m_clk_src.clkr.hw 117862306a36Sopenharmony_ci }, 117962306a36Sopenharmony_ci .num_parents = 1, 118062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 118162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 118262306a36Sopenharmony_ci }, 118362306a36Sopenharmony_ci }, 118462306a36Sopenharmony_ci}; 118562306a36Sopenharmony_ci 118662306a36Sopenharmony_cistatic struct clk_branch gcc_anoc_pcie1_1lane_m_clk = { 118762306a36Sopenharmony_ci .halt_reg = 0x2e08c, 118862306a36Sopenharmony_ci .clkr = { 118962306a36Sopenharmony_ci .enable_reg = 0x2e08c, 119062306a36Sopenharmony_ci .enable_mask = BIT(0), 119162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 119262306a36Sopenharmony_ci .name = "gcc_anoc_pcie1_1lane_m_clk", 119362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 119462306a36Sopenharmony_ci &pcie1_axi_m_clk_src.clkr.hw 119562306a36Sopenharmony_ci }, 119662306a36Sopenharmony_ci .num_parents = 1, 119762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 119862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 119962306a36Sopenharmony_ci }, 120062306a36Sopenharmony_ci }, 120162306a36Sopenharmony_ci}; 120262306a36Sopenharmony_ci 120362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcie2_axi_m_clk_src[] = { 120462306a36Sopenharmony_ci F(342857143, P_GPLL4, 3.5, 0, 0), 120562306a36Sopenharmony_ci { } 120662306a36Sopenharmony_ci}; 120762306a36Sopenharmony_ci 120862306a36Sopenharmony_cistatic struct clk_rcg2 pcie2_axi_m_clk_src = { 120962306a36Sopenharmony_ci .cmd_rcgr = 0x2a018, 121062306a36Sopenharmony_ci .freq_tbl = ftbl_pcie2_axi_m_clk_src, 121162306a36Sopenharmony_ci .hid_width = 5, 121262306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk_map, 121362306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 121462306a36Sopenharmony_ci .name = "pcie2_axi_m_clk_src", 121562306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk, 121662306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk), 121762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 121862306a36Sopenharmony_ci }, 121962306a36Sopenharmony_ci}; 122062306a36Sopenharmony_ci 122162306a36Sopenharmony_cistatic struct clk_branch gcc_pcie2_axi_m_clk = { 122262306a36Sopenharmony_ci .halt_reg = 0x2a038, 122362306a36Sopenharmony_ci .clkr = { 122462306a36Sopenharmony_ci .enable_reg = 0x2a038, 122562306a36Sopenharmony_ci .enable_mask = BIT(0), 122662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 122762306a36Sopenharmony_ci .name = "gcc_pcie2_axi_m_clk", 122862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 122962306a36Sopenharmony_ci &pcie2_axi_m_clk_src.clkr.hw 123062306a36Sopenharmony_ci }, 123162306a36Sopenharmony_ci .num_parents = 1, 123262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 123362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 123462306a36Sopenharmony_ci }, 123562306a36Sopenharmony_ci }, 123662306a36Sopenharmony_ci}; 123762306a36Sopenharmony_ci 123862306a36Sopenharmony_cistatic struct clk_branch gcc_anoc_pcie2_2lane_m_clk = { 123962306a36Sopenharmony_ci .halt_reg = 0x2e080, 124062306a36Sopenharmony_ci .clkr = { 124162306a36Sopenharmony_ci .enable_reg = 0x2e080, 124262306a36Sopenharmony_ci .enable_mask = BIT(0), 124362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 124462306a36Sopenharmony_ci .name = "gcc_anoc_pcie2_2lane_m_clk", 124562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 124662306a36Sopenharmony_ci &pcie2_axi_m_clk_src.clkr.hw 124762306a36Sopenharmony_ci }, 124862306a36Sopenharmony_ci .num_parents = 1, 124962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 125062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 125162306a36Sopenharmony_ci }, 125262306a36Sopenharmony_ci }, 125362306a36Sopenharmony_ci}; 125462306a36Sopenharmony_ci 125562306a36Sopenharmony_cistatic struct clk_rcg2 pcie3_axi_m_clk_src = { 125662306a36Sopenharmony_ci .cmd_rcgr = 0x2b018, 125762306a36Sopenharmony_ci .freq_tbl = ftbl_pcie2_axi_m_clk_src, 125862306a36Sopenharmony_ci .hid_width = 5, 125962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk_map, 126062306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 126162306a36Sopenharmony_ci .name = "pcie3_axi_m_clk_src", 126262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk, 126362306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk), 126462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 126562306a36Sopenharmony_ci }, 126662306a36Sopenharmony_ci}; 126762306a36Sopenharmony_ci 126862306a36Sopenharmony_cistatic struct clk_branch gcc_pcie3_axi_m_clk = { 126962306a36Sopenharmony_ci .halt_reg = 0x2b038, 127062306a36Sopenharmony_ci .clkr = { 127162306a36Sopenharmony_ci .enable_reg = 0x2b038, 127262306a36Sopenharmony_ci .enable_mask = BIT(0), 127362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 127462306a36Sopenharmony_ci .name = "gcc_pcie3_axi_m_clk", 127562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 127662306a36Sopenharmony_ci &pcie3_axi_m_clk_src.clkr.hw 127762306a36Sopenharmony_ci }, 127862306a36Sopenharmony_ci .num_parents = 1, 127962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 128062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 128162306a36Sopenharmony_ci }, 128262306a36Sopenharmony_ci }, 128362306a36Sopenharmony_ci}; 128462306a36Sopenharmony_ci 128562306a36Sopenharmony_cistatic struct clk_branch gcc_anoc_pcie3_2lane_m_clk = { 128662306a36Sopenharmony_ci .halt_reg = 0x2e090, 128762306a36Sopenharmony_ci .clkr = { 128862306a36Sopenharmony_ci .enable_reg = 0x2e090, 128962306a36Sopenharmony_ci .enable_mask = BIT(0), 129062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 129162306a36Sopenharmony_ci .name = "gcc_anoc_pcie3_2lane_m_clk", 129262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 129362306a36Sopenharmony_ci &pcie3_axi_m_clk_src.clkr.hw 129462306a36Sopenharmony_ci }, 129562306a36Sopenharmony_ci .num_parents = 1, 129662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 129762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 129862306a36Sopenharmony_ci }, 129962306a36Sopenharmony_ci }, 130062306a36Sopenharmony_ci}; 130162306a36Sopenharmony_ci 130262306a36Sopenharmony_cistatic struct clk_rcg2 pcie0_axi_s_clk_src = { 130362306a36Sopenharmony_ci .cmd_rcgr = 0x28020, 130462306a36Sopenharmony_ci .freq_tbl = ftbl_pcie0_axi_m_clk_src, 130562306a36Sopenharmony_ci .hid_width = 5, 130662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_map, 130762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 130862306a36Sopenharmony_ci .name = "pcie0_axi_s_clk_src", 130962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4, 131062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4), 131162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 131262306a36Sopenharmony_ci }, 131362306a36Sopenharmony_ci}; 131462306a36Sopenharmony_ci 131562306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_axi_s_clk = { 131662306a36Sopenharmony_ci .halt_reg = 0x2803c, 131762306a36Sopenharmony_ci .clkr = { 131862306a36Sopenharmony_ci .enable_reg = 0x2803c, 131962306a36Sopenharmony_ci .enable_mask = BIT(0), 132062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 132162306a36Sopenharmony_ci .name = "gcc_pcie0_axi_s_clk", 132262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 132362306a36Sopenharmony_ci &pcie0_axi_s_clk_src.clkr.hw 132462306a36Sopenharmony_ci }, 132562306a36Sopenharmony_ci .num_parents = 1, 132662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 132762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 132862306a36Sopenharmony_ci }, 132962306a36Sopenharmony_ci }, 133062306a36Sopenharmony_ci}; 133162306a36Sopenharmony_ci 133262306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_axi_s_bridge_clk = { 133362306a36Sopenharmony_ci .halt_reg = 0x28040, 133462306a36Sopenharmony_ci .clkr = { 133562306a36Sopenharmony_ci .enable_reg = 0x28040, 133662306a36Sopenharmony_ci .enable_mask = BIT(0), 133762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 133862306a36Sopenharmony_ci .name = "gcc_pcie0_axi_s_bridge_clk", 133962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 134062306a36Sopenharmony_ci &pcie0_axi_s_clk_src.clkr.hw 134162306a36Sopenharmony_ci }, 134262306a36Sopenharmony_ci .num_parents = 1, 134362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 134462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 134562306a36Sopenharmony_ci }, 134662306a36Sopenharmony_ci }, 134762306a36Sopenharmony_ci}; 134862306a36Sopenharmony_ci 134962306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_pcie0_1lane_s_clk = { 135062306a36Sopenharmony_ci .halt_reg = 0x2e048, 135162306a36Sopenharmony_ci .clkr = { 135262306a36Sopenharmony_ci .enable_reg = 0x2e048, 135362306a36Sopenharmony_ci .enable_mask = BIT(0), 135462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 135562306a36Sopenharmony_ci .name = "gcc_snoc_pcie0_1lane_s_clk", 135662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 135762306a36Sopenharmony_ci &pcie0_axi_s_clk_src.clkr.hw 135862306a36Sopenharmony_ci }, 135962306a36Sopenharmony_ci .num_parents = 1, 136062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 136162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 136262306a36Sopenharmony_ci }, 136362306a36Sopenharmony_ci }, 136462306a36Sopenharmony_ci}; 136562306a36Sopenharmony_ci 136662306a36Sopenharmony_cistatic struct clk_rcg2 pcie1_axi_s_clk_src = { 136762306a36Sopenharmony_ci .cmd_rcgr = 0x29020, 136862306a36Sopenharmony_ci .freq_tbl = ftbl_pcie0_axi_m_clk_src, 136962306a36Sopenharmony_ci .hid_width = 5, 137062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_map, 137162306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 137262306a36Sopenharmony_ci .name = "pcie1_axi_s_clk_src", 137362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4, 137462306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4), 137562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 137662306a36Sopenharmony_ci }, 137762306a36Sopenharmony_ci}; 137862306a36Sopenharmony_ci 137962306a36Sopenharmony_cistatic struct clk_branch gcc_pcie1_axi_s_clk = { 138062306a36Sopenharmony_ci .halt_reg = 0x2903c, 138162306a36Sopenharmony_ci .clkr = { 138262306a36Sopenharmony_ci .enable_reg = 0x2903c, 138362306a36Sopenharmony_ci .enable_mask = BIT(0), 138462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 138562306a36Sopenharmony_ci .name = "gcc_pcie1_axi_s_clk", 138662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 138762306a36Sopenharmony_ci &pcie1_axi_s_clk_src.clkr.hw 138862306a36Sopenharmony_ci }, 138962306a36Sopenharmony_ci .num_parents = 1, 139062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 139162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 139262306a36Sopenharmony_ci }, 139362306a36Sopenharmony_ci }, 139462306a36Sopenharmony_ci}; 139562306a36Sopenharmony_ci 139662306a36Sopenharmony_cistatic struct clk_branch gcc_pcie1_axi_s_bridge_clk = { 139762306a36Sopenharmony_ci .halt_reg = 0x29040, 139862306a36Sopenharmony_ci .clkr = { 139962306a36Sopenharmony_ci .enable_reg = 0x29040, 140062306a36Sopenharmony_ci .enable_mask = BIT(0), 140162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 140262306a36Sopenharmony_ci .name = "gcc_pcie1_axi_s_bridge_clk", 140362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 140462306a36Sopenharmony_ci &pcie1_axi_s_clk_src.clkr.hw 140562306a36Sopenharmony_ci }, 140662306a36Sopenharmony_ci .num_parents = 1, 140762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 140862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 140962306a36Sopenharmony_ci }, 141062306a36Sopenharmony_ci }, 141162306a36Sopenharmony_ci}; 141262306a36Sopenharmony_ci 141362306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_pcie1_1lane_s_clk = { 141462306a36Sopenharmony_ci .halt_reg = 0x2e04c, 141562306a36Sopenharmony_ci .clkr = { 141662306a36Sopenharmony_ci .enable_reg = 0x2e04c, 141762306a36Sopenharmony_ci .enable_mask = BIT(0), 141862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 141962306a36Sopenharmony_ci .name = "gcc_snoc_pcie1_1lane_s_clk", 142062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 142162306a36Sopenharmony_ci &pcie1_axi_s_clk_src.clkr.hw 142262306a36Sopenharmony_ci }, 142362306a36Sopenharmony_ci .num_parents = 1, 142462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 142562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 142662306a36Sopenharmony_ci }, 142762306a36Sopenharmony_ci }, 142862306a36Sopenharmony_ci}; 142962306a36Sopenharmony_ci 143062306a36Sopenharmony_cistatic struct clk_rcg2 pcie2_axi_s_clk_src = { 143162306a36Sopenharmony_ci .cmd_rcgr = 0x2a020, 143262306a36Sopenharmony_ci .freq_tbl = ftbl_pcie0_axi_m_clk_src, 143362306a36Sopenharmony_ci .hid_width = 5, 143462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_map, 143562306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 143662306a36Sopenharmony_ci .name = "pcie2_axi_s_clk_src", 143762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4, 143862306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4), 143962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 144062306a36Sopenharmony_ci }, 144162306a36Sopenharmony_ci}; 144262306a36Sopenharmony_ci 144362306a36Sopenharmony_cistatic struct clk_branch gcc_pcie2_axi_s_clk = { 144462306a36Sopenharmony_ci .halt_reg = 0x2a03c, 144562306a36Sopenharmony_ci .clkr = { 144662306a36Sopenharmony_ci .enable_reg = 0x2a03c, 144762306a36Sopenharmony_ci .enable_mask = BIT(0), 144862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 144962306a36Sopenharmony_ci .name = "gcc_pcie2_axi_s_clk", 145062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 145162306a36Sopenharmony_ci &pcie2_axi_s_clk_src.clkr.hw 145262306a36Sopenharmony_ci }, 145362306a36Sopenharmony_ci .num_parents = 1, 145462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 145562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 145662306a36Sopenharmony_ci }, 145762306a36Sopenharmony_ci }, 145862306a36Sopenharmony_ci}; 145962306a36Sopenharmony_ci 146062306a36Sopenharmony_cistatic struct clk_branch gcc_pcie2_axi_s_bridge_clk = { 146162306a36Sopenharmony_ci .halt_reg = 0x2a040, 146262306a36Sopenharmony_ci .clkr = { 146362306a36Sopenharmony_ci .enable_reg = 0x2a040, 146462306a36Sopenharmony_ci .enable_mask = BIT(0), 146562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 146662306a36Sopenharmony_ci .name = "gcc_pcie2_axi_s_bridge_clk", 146762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 146862306a36Sopenharmony_ci &pcie2_axi_s_clk_src.clkr.hw 146962306a36Sopenharmony_ci }, 147062306a36Sopenharmony_ci .num_parents = 1, 147162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 147262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 147362306a36Sopenharmony_ci }, 147462306a36Sopenharmony_ci }, 147562306a36Sopenharmony_ci}; 147662306a36Sopenharmony_ci 147762306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_pcie2_2lane_s_clk = { 147862306a36Sopenharmony_ci .halt_reg = 0x2e050, 147962306a36Sopenharmony_ci .clkr = { 148062306a36Sopenharmony_ci .enable_reg = 0x2e050, 148162306a36Sopenharmony_ci .enable_mask = BIT(0), 148262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 148362306a36Sopenharmony_ci .name = "gcc_snoc_pcie2_2lane_s_clk", 148462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 148562306a36Sopenharmony_ci &pcie2_axi_s_clk_src.clkr.hw 148662306a36Sopenharmony_ci }, 148762306a36Sopenharmony_ci .num_parents = 1, 148862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 148962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 149062306a36Sopenharmony_ci }, 149162306a36Sopenharmony_ci }, 149262306a36Sopenharmony_ci}; 149362306a36Sopenharmony_ci 149462306a36Sopenharmony_cistatic struct clk_rcg2 pcie3_axi_s_clk_src = { 149562306a36Sopenharmony_ci .cmd_rcgr = 0x2b020, 149662306a36Sopenharmony_ci .freq_tbl = ftbl_pcie0_axi_m_clk_src, 149762306a36Sopenharmony_ci .hid_width = 5, 149862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_map, 149962306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 150062306a36Sopenharmony_ci .name = "pcie3_axi_s_clk_src", 150162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4, 150262306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4), 150362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 150462306a36Sopenharmony_ci }, 150562306a36Sopenharmony_ci}; 150662306a36Sopenharmony_ci 150762306a36Sopenharmony_cistatic struct clk_branch gcc_pcie3_axi_s_clk = { 150862306a36Sopenharmony_ci .halt_reg = 0x2b03c, 150962306a36Sopenharmony_ci .clkr = { 151062306a36Sopenharmony_ci .enable_reg = 0x2b03c, 151162306a36Sopenharmony_ci .enable_mask = BIT(0), 151262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 151362306a36Sopenharmony_ci .name = "gcc_pcie3_axi_s_clk", 151462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 151562306a36Sopenharmony_ci &pcie3_axi_s_clk_src.clkr.hw 151662306a36Sopenharmony_ci }, 151762306a36Sopenharmony_ci .num_parents = 1, 151862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 151962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 152062306a36Sopenharmony_ci }, 152162306a36Sopenharmony_ci }, 152262306a36Sopenharmony_ci}; 152362306a36Sopenharmony_ci 152462306a36Sopenharmony_cistatic struct clk_branch gcc_pcie3_axi_s_bridge_clk = { 152562306a36Sopenharmony_ci .halt_reg = 0x2b040, 152662306a36Sopenharmony_ci .clkr = { 152762306a36Sopenharmony_ci .enable_reg = 0x2b040, 152862306a36Sopenharmony_ci .enable_mask = BIT(0), 152962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 153062306a36Sopenharmony_ci .name = "gcc_pcie3_axi_s_bridge_clk", 153162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 153262306a36Sopenharmony_ci &pcie3_axi_s_clk_src.clkr.hw 153362306a36Sopenharmony_ci }, 153462306a36Sopenharmony_ci .num_parents = 1, 153562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 153662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 153762306a36Sopenharmony_ci }, 153862306a36Sopenharmony_ci }, 153962306a36Sopenharmony_ci}; 154062306a36Sopenharmony_ci 154162306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_pcie3_2lane_s_clk = { 154262306a36Sopenharmony_ci .halt_reg = 0x2e054, 154362306a36Sopenharmony_ci .clkr = { 154462306a36Sopenharmony_ci .enable_reg = 0x2e054, 154562306a36Sopenharmony_ci .enable_mask = BIT(0), 154662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 154762306a36Sopenharmony_ci .name = "gcc_snoc_pcie3_2lane_s_clk", 154862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 154962306a36Sopenharmony_ci &pcie3_axi_s_clk_src.clkr.hw 155062306a36Sopenharmony_ci }, 155162306a36Sopenharmony_ci .num_parents = 1, 155262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 155362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 155462306a36Sopenharmony_ci }, 155562306a36Sopenharmony_ci }, 155662306a36Sopenharmony_ci}; 155762306a36Sopenharmony_ci 155862306a36Sopenharmony_cistatic struct clk_regmap_phy_mux pcie0_pipe_clk_src = { 155962306a36Sopenharmony_ci .reg = 0x28064, 156062306a36Sopenharmony_ci .clkr = { 156162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 156262306a36Sopenharmony_ci .name = "pcie0_pipe_clk_src", 156362306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data) { 156462306a36Sopenharmony_ci .index = DT_PCIE30_PHY0_PIPE_CLK, 156562306a36Sopenharmony_ci }, 156662306a36Sopenharmony_ci .num_parents = 1, 156762306a36Sopenharmony_ci .ops = &clk_regmap_phy_mux_ops, 156862306a36Sopenharmony_ci }, 156962306a36Sopenharmony_ci }, 157062306a36Sopenharmony_ci}; 157162306a36Sopenharmony_ci 157262306a36Sopenharmony_cistatic struct clk_regmap_phy_mux pcie1_pipe_clk_src = { 157362306a36Sopenharmony_ci .reg = 0x29064, 157462306a36Sopenharmony_ci .clkr = { 157562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 157662306a36Sopenharmony_ci .name = "pcie1_pipe_clk_src", 157762306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data) { 157862306a36Sopenharmony_ci .index = DT_PCIE30_PHY1_PIPE_CLK, 157962306a36Sopenharmony_ci }, 158062306a36Sopenharmony_ci .num_parents = 1, 158162306a36Sopenharmony_ci .ops = &clk_regmap_phy_mux_ops, 158262306a36Sopenharmony_ci }, 158362306a36Sopenharmony_ci }, 158462306a36Sopenharmony_ci}; 158562306a36Sopenharmony_ci 158662306a36Sopenharmony_cistatic struct clk_regmap_phy_mux pcie2_pipe_clk_src = { 158762306a36Sopenharmony_ci .reg = 0x2a064, 158862306a36Sopenharmony_ci .clkr = { 158962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 159062306a36Sopenharmony_ci .name = "pcie2_pipe_clk_src", 159162306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data) { 159262306a36Sopenharmony_ci .index = DT_PCIE30_PHY2_PIPE_CLK, 159362306a36Sopenharmony_ci }, 159462306a36Sopenharmony_ci .num_parents = 1, 159562306a36Sopenharmony_ci .ops = &clk_regmap_phy_mux_ops, 159662306a36Sopenharmony_ci }, 159762306a36Sopenharmony_ci }, 159862306a36Sopenharmony_ci}; 159962306a36Sopenharmony_ci 160062306a36Sopenharmony_cistatic struct clk_regmap_phy_mux pcie3_pipe_clk_src = { 160162306a36Sopenharmony_ci .reg = 0x2b064, 160262306a36Sopenharmony_ci .clkr = { 160362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 160462306a36Sopenharmony_ci .name = "pcie3_pipe_clk_src", 160562306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data) { 160662306a36Sopenharmony_ci .index = DT_PCIE30_PHY3_PIPE_CLK, 160762306a36Sopenharmony_ci }, 160862306a36Sopenharmony_ci .num_parents = 1, 160962306a36Sopenharmony_ci .ops = &clk_regmap_phy_mux_ops, 161062306a36Sopenharmony_ci }, 161162306a36Sopenharmony_ci }, 161262306a36Sopenharmony_ci}; 161362306a36Sopenharmony_ci 161462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcie_rchng_clk_src[] = { 161562306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 161662306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 161762306a36Sopenharmony_ci { } 161862306a36Sopenharmony_ci}; 161962306a36Sopenharmony_ci 162062306a36Sopenharmony_cistatic struct clk_rcg2 pcie0_rchng_clk_src = { 162162306a36Sopenharmony_ci .cmd_rcgr = 0x28028, 162262306a36Sopenharmony_ci .freq_tbl = ftbl_pcie_rchng_clk_src, 162362306a36Sopenharmony_ci .hid_width = 5, 162462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 162562306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 162662306a36Sopenharmony_ci .name = "pcie0_rchng_clk_src", 162762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 162862306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0), 162962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 163062306a36Sopenharmony_ci }, 163162306a36Sopenharmony_ci}; 163262306a36Sopenharmony_ci 163362306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_rchng_clk = { 163462306a36Sopenharmony_ci .halt_reg = 0x28028, 163562306a36Sopenharmony_ci .clkr = { 163662306a36Sopenharmony_ci .enable_reg = 0x28028, 163762306a36Sopenharmony_ci .enable_mask = BIT(1), 163862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 163962306a36Sopenharmony_ci .name = "gcc_pcie0_rchng_clk", 164062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 164162306a36Sopenharmony_ci &pcie0_rchng_clk_src.clkr.hw 164262306a36Sopenharmony_ci 164362306a36Sopenharmony_ci }, 164462306a36Sopenharmony_ci .num_parents = 1, 164562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 164662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 164762306a36Sopenharmony_ci }, 164862306a36Sopenharmony_ci }, 164962306a36Sopenharmony_ci}; 165062306a36Sopenharmony_ci 165162306a36Sopenharmony_cistatic struct clk_rcg2 pcie1_rchng_clk_src = { 165262306a36Sopenharmony_ci .cmd_rcgr = 0x29028, 165362306a36Sopenharmony_ci .freq_tbl = ftbl_pcie_rchng_clk_src, 165462306a36Sopenharmony_ci .hid_width = 5, 165562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 165662306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 165762306a36Sopenharmony_ci .name = "pcie1_rchng_clk_src", 165862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 165962306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0), 166062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 166162306a36Sopenharmony_ci }, 166262306a36Sopenharmony_ci}; 166362306a36Sopenharmony_ci 166462306a36Sopenharmony_cistatic struct clk_branch gcc_pcie1_rchng_clk = { 166562306a36Sopenharmony_ci .halt_reg = 0x29028, 166662306a36Sopenharmony_ci .clkr = { 166762306a36Sopenharmony_ci .enable_reg = 0x29028, 166862306a36Sopenharmony_ci .enable_mask = BIT(1), 166962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 167062306a36Sopenharmony_ci .name = "gcc_pcie1_rchng_clk", 167162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 167262306a36Sopenharmony_ci &pcie1_rchng_clk_src.clkr.hw 167362306a36Sopenharmony_ci }, 167462306a36Sopenharmony_ci .num_parents = 1, 167562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 167662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 167762306a36Sopenharmony_ci }, 167862306a36Sopenharmony_ci }, 167962306a36Sopenharmony_ci}; 168062306a36Sopenharmony_ci 168162306a36Sopenharmony_cistatic struct clk_rcg2 pcie2_rchng_clk_src = { 168262306a36Sopenharmony_ci .cmd_rcgr = 0x2a028, 168362306a36Sopenharmony_ci .freq_tbl = ftbl_pcie_rchng_clk_src, 168462306a36Sopenharmony_ci .hid_width = 5, 168562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 168662306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 168762306a36Sopenharmony_ci .name = "pcie2_rchng_clk_src", 168862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 168962306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0), 169062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 169162306a36Sopenharmony_ci }, 169262306a36Sopenharmony_ci}; 169362306a36Sopenharmony_ci 169462306a36Sopenharmony_cistatic struct clk_branch gcc_pcie2_rchng_clk = { 169562306a36Sopenharmony_ci .halt_reg = 0x2a028, 169662306a36Sopenharmony_ci .clkr = { 169762306a36Sopenharmony_ci .enable_reg = 0x2a028, 169862306a36Sopenharmony_ci .enable_mask = BIT(1), 169962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 170062306a36Sopenharmony_ci .name = "gcc_pcie2_rchng_clk", 170162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 170262306a36Sopenharmony_ci &pcie2_rchng_clk_src.clkr.hw 170362306a36Sopenharmony_ci }, 170462306a36Sopenharmony_ci .num_parents = 1, 170562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 170662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 170762306a36Sopenharmony_ci }, 170862306a36Sopenharmony_ci }, 170962306a36Sopenharmony_ci}; 171062306a36Sopenharmony_ci 171162306a36Sopenharmony_cistatic struct clk_rcg2 pcie3_rchng_clk_src = { 171262306a36Sopenharmony_ci .cmd_rcgr = 0x2b028, 171362306a36Sopenharmony_ci .freq_tbl = ftbl_pcie_rchng_clk_src, 171462306a36Sopenharmony_ci .hid_width = 5, 171562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 171662306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 171762306a36Sopenharmony_ci .name = "pcie3_rchng_clk_src", 171862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 171962306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0), 172062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 172162306a36Sopenharmony_ci }, 172262306a36Sopenharmony_ci}; 172362306a36Sopenharmony_ci 172462306a36Sopenharmony_cistatic struct clk_branch gcc_pcie3_rchng_clk = { 172562306a36Sopenharmony_ci .halt_reg = 0x2b028, 172662306a36Sopenharmony_ci .clkr = { 172762306a36Sopenharmony_ci .enable_reg = 0x2b028, 172862306a36Sopenharmony_ci .enable_mask = BIT(1), 172962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 173062306a36Sopenharmony_ci .name = "gcc_pcie3_rchng_clk", 173162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 173262306a36Sopenharmony_ci &pcie3_rchng_clk_src.clkr.hw 173362306a36Sopenharmony_ci }, 173462306a36Sopenharmony_ci .num_parents = 1, 173562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 173662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 173762306a36Sopenharmony_ci }, 173862306a36Sopenharmony_ci }, 173962306a36Sopenharmony_ci}; 174062306a36Sopenharmony_ci 174162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcie_aux_clk_src[] = { 174262306a36Sopenharmony_ci F(20000000, P_GPLL0, 10, 1, 4), 174362306a36Sopenharmony_ci { } 174462306a36Sopenharmony_ci}; 174562306a36Sopenharmony_ci 174662306a36Sopenharmony_cistatic struct clk_rcg2 pcie_aux_clk_src = { 174762306a36Sopenharmony_ci .cmd_rcgr = 0x28004, 174862306a36Sopenharmony_ci .freq_tbl = ftbl_pcie_aux_clk_src, 174962306a36Sopenharmony_ci .mnd_width = 16, 175062306a36Sopenharmony_ci .hid_width = 5, 175162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_aux_core_pi_sleep_clk_map, 175262306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 175362306a36Sopenharmony_ci .name = "pcie_aux_clk_src", 175462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_aux_core_pi_sleep_clk, 175562306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_aux_core_pi_sleep_clk), 175662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 175762306a36Sopenharmony_ci }, 175862306a36Sopenharmony_ci}; 175962306a36Sopenharmony_ci 176062306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_aux_clk = { 176162306a36Sopenharmony_ci .halt_reg = 0x28034, 176262306a36Sopenharmony_ci .clkr = { 176362306a36Sopenharmony_ci .enable_reg = 0x28034, 176462306a36Sopenharmony_ci .enable_mask = BIT(0), 176562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 176662306a36Sopenharmony_ci .name = "gcc_pcie0_aux_clk", 176762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 176862306a36Sopenharmony_ci &pcie_aux_clk_src.clkr.hw 176962306a36Sopenharmony_ci }, 177062306a36Sopenharmony_ci .num_parents = 1, 177162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 177262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 177362306a36Sopenharmony_ci }, 177462306a36Sopenharmony_ci }, 177562306a36Sopenharmony_ci}; 177662306a36Sopenharmony_ci 177762306a36Sopenharmony_cistatic struct clk_branch gcc_pcie1_aux_clk = { 177862306a36Sopenharmony_ci .halt_reg = 0x29034, 177962306a36Sopenharmony_ci .clkr = { 178062306a36Sopenharmony_ci .enable_reg = 0x29034, 178162306a36Sopenharmony_ci .enable_mask = BIT(0), 178262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 178362306a36Sopenharmony_ci .name = "gcc_pcie1_aux_clk", 178462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 178562306a36Sopenharmony_ci &pcie_aux_clk_src.clkr.hw 178662306a36Sopenharmony_ci }, 178762306a36Sopenharmony_ci .num_parents = 1, 178862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 178962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 179062306a36Sopenharmony_ci }, 179162306a36Sopenharmony_ci }, 179262306a36Sopenharmony_ci}; 179362306a36Sopenharmony_ci 179462306a36Sopenharmony_cistatic struct clk_branch gcc_pcie2_aux_clk = { 179562306a36Sopenharmony_ci .halt_reg = 0x2a034, 179662306a36Sopenharmony_ci .clkr = { 179762306a36Sopenharmony_ci .enable_reg = 0x2a034, 179862306a36Sopenharmony_ci .enable_mask = BIT(0), 179962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 180062306a36Sopenharmony_ci .name = "gcc_pcie2_aux_clk", 180162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 180262306a36Sopenharmony_ci &pcie_aux_clk_src.clkr.hw 180362306a36Sopenharmony_ci }, 180462306a36Sopenharmony_ci .num_parents = 1, 180562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 180662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 180762306a36Sopenharmony_ci }, 180862306a36Sopenharmony_ci }, 180962306a36Sopenharmony_ci}; 181062306a36Sopenharmony_ci 181162306a36Sopenharmony_cistatic struct clk_branch gcc_pcie3_aux_clk = { 181262306a36Sopenharmony_ci .halt_reg = 0x2b034, 181362306a36Sopenharmony_ci .clkr = { 181462306a36Sopenharmony_ci .enable_reg = 0x2b034, 181562306a36Sopenharmony_ci .enable_mask = BIT(0), 181662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 181762306a36Sopenharmony_ci .name = "gcc_pcie3_aux_clk", 181862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 181962306a36Sopenharmony_ci &pcie_aux_clk_src.clkr.hw 182062306a36Sopenharmony_ci }, 182162306a36Sopenharmony_ci .num_parents = 1, 182262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 182362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 182462306a36Sopenharmony_ci }, 182562306a36Sopenharmony_ci }, 182662306a36Sopenharmony_ci}; 182762306a36Sopenharmony_ci 182862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb_aux_clk_src[] = { 182962306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 183062306a36Sopenharmony_ci { } 183162306a36Sopenharmony_ci}; 183262306a36Sopenharmony_ci 183362306a36Sopenharmony_cistatic struct clk_rcg2 usb0_aux_clk_src = { 183462306a36Sopenharmony_ci .cmd_rcgr = 0x2c018, 183562306a36Sopenharmony_ci .freq_tbl = ftbl_usb_aux_clk_src, 183662306a36Sopenharmony_ci .mnd_width = 16, 183762306a36Sopenharmony_ci .hid_width = 5, 183862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_core_pi_sleep_clk_map, 183962306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 184062306a36Sopenharmony_ci .name = "usb0_aux_clk_src", 184162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_core_pi_sleep_clk, 184262306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_core_pi_sleep_clk), 184362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 184462306a36Sopenharmony_ci }, 184562306a36Sopenharmony_ci}; 184662306a36Sopenharmony_ci 184762306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_aux_clk = { 184862306a36Sopenharmony_ci .halt_reg = 0x2c048, 184962306a36Sopenharmony_ci .clkr = { 185062306a36Sopenharmony_ci .enable_reg = 0x2c048, 185162306a36Sopenharmony_ci .enable_mask = BIT(0), 185262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 185362306a36Sopenharmony_ci .name = "gcc_usb0_aux_clk", 185462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 185562306a36Sopenharmony_ci &usb0_aux_clk_src.clkr.hw 185662306a36Sopenharmony_ci }, 185762306a36Sopenharmony_ci .num_parents = 1, 185862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 185962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 186062306a36Sopenharmony_ci }, 186162306a36Sopenharmony_ci }, 186262306a36Sopenharmony_ci}; 186362306a36Sopenharmony_ci 186462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb0_master_clk_src[] = { 186562306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 186662306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 186762306a36Sopenharmony_ci { } 186862306a36Sopenharmony_ci}; 186962306a36Sopenharmony_ci 187062306a36Sopenharmony_cistatic struct clk_rcg2 usb0_master_clk_src = { 187162306a36Sopenharmony_ci .cmd_rcgr = 0x2c004, 187262306a36Sopenharmony_ci .freq_tbl = ftbl_usb0_master_clk_src, 187362306a36Sopenharmony_ci .mnd_width = 8, 187462306a36Sopenharmony_ci .hid_width = 5, 187562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_out_main_div2_gpll0_map, 187662306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 187762306a36Sopenharmony_ci .name = "usb0_master_clk_src", 187862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_out_main_div2_gpll0, 187962306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_out_main_div2_gpll0), 188062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 188162306a36Sopenharmony_ci }, 188262306a36Sopenharmony_ci}; 188362306a36Sopenharmony_ci 188462306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_master_clk = { 188562306a36Sopenharmony_ci .halt_reg = 0x2c044, 188662306a36Sopenharmony_ci .clkr = { 188762306a36Sopenharmony_ci .enable_reg = 0x2c044, 188862306a36Sopenharmony_ci .enable_mask = BIT(0), 188962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 189062306a36Sopenharmony_ci .name = "gcc_usb0_master_clk", 189162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 189262306a36Sopenharmony_ci &usb0_master_clk_src.clkr.hw 189362306a36Sopenharmony_ci }, 189462306a36Sopenharmony_ci .num_parents = 1, 189562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 189662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 189762306a36Sopenharmony_ci }, 189862306a36Sopenharmony_ci }, 189962306a36Sopenharmony_ci}; 190062306a36Sopenharmony_ci 190162306a36Sopenharmony_cistatic struct clk_branch gcc_snoc_usb_clk = { 190262306a36Sopenharmony_ci .halt_reg = 0x2e058, 190362306a36Sopenharmony_ci .clkr = { 190462306a36Sopenharmony_ci .enable_reg = 0x2e058, 190562306a36Sopenharmony_ci .enable_mask = BIT(0), 190662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 190762306a36Sopenharmony_ci .name = "gcc_snoc_usb_clk", 190862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 190962306a36Sopenharmony_ci &usb0_master_clk_src.clkr.hw 191062306a36Sopenharmony_ci }, 191162306a36Sopenharmony_ci .num_parents = 1, 191262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 191362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 191462306a36Sopenharmony_ci }, 191562306a36Sopenharmony_ci }, 191662306a36Sopenharmony_ci}; 191762306a36Sopenharmony_ci 191862306a36Sopenharmony_cistatic struct clk_branch gcc_anoc_usb_axi_clk = { 191962306a36Sopenharmony_ci .halt_reg = 0x2e084, 192062306a36Sopenharmony_ci .clkr = { 192162306a36Sopenharmony_ci .enable_reg = 0x2e084, 192262306a36Sopenharmony_ci .enable_mask = BIT(0), 192362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 192462306a36Sopenharmony_ci .name = "gcc_anoc_usb_axi_clk", 192562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 192662306a36Sopenharmony_ci &usb0_master_clk_src.clkr.hw 192762306a36Sopenharmony_ci }, 192862306a36Sopenharmony_ci .num_parents = 1, 192962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 193062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 193162306a36Sopenharmony_ci }, 193262306a36Sopenharmony_ci }, 193362306a36Sopenharmony_ci}; 193462306a36Sopenharmony_ci 193562306a36Sopenharmony_cistatic const struct freq_tbl ftbl_usb0_mock_utmi_clk_src[] = { 193662306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 193762306a36Sopenharmony_ci F(60000000, P_GPLL4, 10, 1, 2), 193862306a36Sopenharmony_ci { } 193962306a36Sopenharmony_ci}; 194062306a36Sopenharmony_ci 194162306a36Sopenharmony_cistatic struct clk_rcg2 usb0_mock_utmi_clk_src = { 194262306a36Sopenharmony_ci .cmd_rcgr = 0x2c02c, 194362306a36Sopenharmony_ci .freq_tbl = ftbl_usb0_mock_utmi_clk_src, 194462306a36Sopenharmony_ci .mnd_width = 8, 194562306a36Sopenharmony_ci .hid_width = 5, 194662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll4_gpll0_gpll0_out_main_div2_map, 194762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 194862306a36Sopenharmony_ci .name = "usb0_mock_utmi_clk_src", 194962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll4_gpll0_gpll0_out_main_div2, 195062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll4_gpll0_gpll0_out_main_div2), 195162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 195262306a36Sopenharmony_ci }, 195362306a36Sopenharmony_ci}; 195462306a36Sopenharmony_ci 195562306a36Sopenharmony_cistatic struct clk_regmap_div usb0_mock_utmi_div_clk_src = { 195662306a36Sopenharmony_ci .reg = 0x2c040, 195762306a36Sopenharmony_ci .shift = 0, 195862306a36Sopenharmony_ci .width = 2, 195962306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 196062306a36Sopenharmony_ci .name = "usb0_mock_utmi_div_clk_src", 196162306a36Sopenharmony_ci .parent_data = &(const struct clk_parent_data) { 196262306a36Sopenharmony_ci .hw = &usb0_mock_utmi_clk_src.clkr.hw, 196362306a36Sopenharmony_ci }, 196462306a36Sopenharmony_ci .num_parents = 1, 196562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 196662306a36Sopenharmony_ci .ops = &clk_regmap_div_ro_ops, 196762306a36Sopenharmony_ci }, 196862306a36Sopenharmony_ci}; 196962306a36Sopenharmony_ci 197062306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_mock_utmi_clk = { 197162306a36Sopenharmony_ci .halt_reg = 0x2c04c, 197262306a36Sopenharmony_ci .clkr = { 197362306a36Sopenharmony_ci .enable_reg = 0x2c04c, 197462306a36Sopenharmony_ci .enable_mask = BIT(0), 197562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 197662306a36Sopenharmony_ci .name = "gcc_usb0_mock_utmi_clk", 197762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 197862306a36Sopenharmony_ci &usb0_mock_utmi_div_clk_src.clkr.hw 197962306a36Sopenharmony_ci }, 198062306a36Sopenharmony_ci .num_parents = 1, 198162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 198262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 198362306a36Sopenharmony_ci }, 198462306a36Sopenharmony_ci }, 198562306a36Sopenharmony_ci}; 198662306a36Sopenharmony_ci 198762306a36Sopenharmony_cistatic struct clk_regmap_mux usb0_pipe_clk_src = { 198862306a36Sopenharmony_ci .reg = 0x2C074, 198962306a36Sopenharmony_ci .shift = 8, 199062306a36Sopenharmony_ci .width = 2, 199162306a36Sopenharmony_ci .parent_map = gcc_usb3phy_0_cc_pipe_clk_xo_map, 199262306a36Sopenharmony_ci .clkr = { 199362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 199462306a36Sopenharmony_ci .name = "usb0_pipe_clk_src", 199562306a36Sopenharmony_ci .parent_data = gcc_usb3phy_0_cc_pipe_clk_xo, 199662306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_usb3phy_0_cc_pipe_clk_xo), 199762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 199862306a36Sopenharmony_ci .ops = &clk_regmap_mux_closest_ops, 199962306a36Sopenharmony_ci }, 200062306a36Sopenharmony_ci }, 200162306a36Sopenharmony_ci}; 200262306a36Sopenharmony_ci 200362306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_pipe_clk = { 200462306a36Sopenharmony_ci .halt_reg = 0x2c054, 200562306a36Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 200662306a36Sopenharmony_ci .clkr = { 200762306a36Sopenharmony_ci .enable_reg = 0x2c054, 200862306a36Sopenharmony_ci .enable_mask = BIT(0), 200962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data){ 201062306a36Sopenharmony_ci .name = "gcc_usb0_pipe_clk", 201162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 201262306a36Sopenharmony_ci &usb0_pipe_clk_src.clkr.hw 201362306a36Sopenharmony_ci }, 201462306a36Sopenharmony_ci .num_parents = 1, 201562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 201662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 201762306a36Sopenharmony_ci }, 201862306a36Sopenharmony_ci }, 201962306a36Sopenharmony_ci}; 202062306a36Sopenharmony_ci 202162306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_sleep_clk = { 202262306a36Sopenharmony_ci .halt_reg = 0x2c058, 202362306a36Sopenharmony_ci .clkr = { 202462306a36Sopenharmony_ci .enable_reg = 0x2c058, 202562306a36Sopenharmony_ci .enable_mask = BIT(0), 202662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data){ 202762306a36Sopenharmony_ci .name = "gcc_usb0_sleep_clk", 202862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 202962306a36Sopenharmony_ci &gcc_sleep_clk_src.clkr.hw 203062306a36Sopenharmony_ci }, 203162306a36Sopenharmony_ci .num_parents = 1, 203262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 203362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 203462306a36Sopenharmony_ci }, 203562306a36Sopenharmony_ci }, 203662306a36Sopenharmony_ci}; 203762306a36Sopenharmony_ci 203862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc_apps_clk_src[] = { 203962306a36Sopenharmony_ci F(144000, P_XO, 16, 12, 125), 204062306a36Sopenharmony_ci F(400000, P_XO, 12, 1, 5), 204162306a36Sopenharmony_ci F(24000000, P_GPLL2, 12, 1, 4), 204262306a36Sopenharmony_ci F(48000000, P_GPLL2, 12, 1, 2), 204362306a36Sopenharmony_ci F(96000000, P_GPLL2, 12, 0, 0), 204462306a36Sopenharmony_ci F(177777778, P_GPLL0, 4.5, 0, 0), 204562306a36Sopenharmony_ci F(192000000, P_GPLL2, 6, 0, 0), 204662306a36Sopenharmony_ci F(384000000, P_GPLL2, 3, 0, 0), 204762306a36Sopenharmony_ci F(400000000, P_GPLL0, 2, 0, 0), 204862306a36Sopenharmony_ci { } 204962306a36Sopenharmony_ci}; 205062306a36Sopenharmony_ci 205162306a36Sopenharmony_cistatic struct clk_rcg2 sdcc1_apps_clk_src = { 205262306a36Sopenharmony_ci .cmd_rcgr = 0x33004, 205362306a36Sopenharmony_ci .freq_tbl = ftbl_sdcc_apps_clk_src, 205462306a36Sopenharmony_ci .mnd_width = 8, 205562306a36Sopenharmony_ci .hid_width = 5, 205662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map, 205762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 205862306a36Sopenharmony_ci .name = "sdcc1_apps_clk_src", 205962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll2_gpll0_out_main_div2, 206062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll2_gpll0_out_main_div2), 206162306a36Sopenharmony_ci .ops = &clk_rcg2_floor_ops, 206262306a36Sopenharmony_ci }, 206362306a36Sopenharmony_ci}; 206462306a36Sopenharmony_ci 206562306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_apps_clk = { 206662306a36Sopenharmony_ci .halt_reg = 0x3302c, 206762306a36Sopenharmony_ci .clkr = { 206862306a36Sopenharmony_ci .enable_reg = 0x3302c, 206962306a36Sopenharmony_ci .enable_mask = BIT(0), 207062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 207162306a36Sopenharmony_ci .name = "gcc_sdcc1_apps_clk", 207262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 207362306a36Sopenharmony_ci &sdcc1_apps_clk_src.clkr.hw 207462306a36Sopenharmony_ci }, 207562306a36Sopenharmony_ci .num_parents = 1, 207662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 207762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 207862306a36Sopenharmony_ci }, 207962306a36Sopenharmony_ci }, 208062306a36Sopenharmony_ci}; 208162306a36Sopenharmony_ci 208262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_sdcc_ice_core_clk_src[] = { 208362306a36Sopenharmony_ci F(150000000, P_GPLL4, 8, 0, 0), 208462306a36Sopenharmony_ci F(300000000, P_GPLL4, 4, 0, 0), 208562306a36Sopenharmony_ci { } 208662306a36Sopenharmony_ci}; 208762306a36Sopenharmony_ci 208862306a36Sopenharmony_cistatic struct clk_rcg2 sdcc1_ice_core_clk_src = { 208962306a36Sopenharmony_ci .cmd_rcgr = 0x33018, 209062306a36Sopenharmony_ci .freq_tbl = ftbl_sdcc_ice_core_clk_src, 209162306a36Sopenharmony_ci .mnd_width = 8, 209262306a36Sopenharmony_ci .hid_width = 5, 209362306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_gpll0_div2_map, 209462306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 209562306a36Sopenharmony_ci .name = "sdcc1_ice_core_clk_src", 209662306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4_gpll0_div2, 209762306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4_gpll0_div2), 209862306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 209962306a36Sopenharmony_ci }, 210062306a36Sopenharmony_ci}; 210162306a36Sopenharmony_ci 210262306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ice_core_clk = { 210362306a36Sopenharmony_ci .halt_reg = 0x33030, 210462306a36Sopenharmony_ci .clkr = { 210562306a36Sopenharmony_ci .enable_reg = 0x33030, 210662306a36Sopenharmony_ci .enable_mask = BIT(0), 210762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 210862306a36Sopenharmony_ci .name = "gcc_sdcc1_ice_core_clk", 210962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 211062306a36Sopenharmony_ci &sdcc1_ice_core_clk_src.clkr.hw 211162306a36Sopenharmony_ci }, 211262306a36Sopenharmony_ci .num_parents = 1, 211362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 211462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 211562306a36Sopenharmony_ci }, 211662306a36Sopenharmony_ci }, 211762306a36Sopenharmony_ci}; 211862306a36Sopenharmony_ci 211962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_pcnoc_bfdcd_clk_src[] = { 212062306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 212162306a36Sopenharmony_ci F(50000000, P_GPLL0, 16, 0, 0), 212262306a36Sopenharmony_ci F(80000000, P_GPLL0, 10, 0, 0), 212362306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 212462306a36Sopenharmony_ci { } 212562306a36Sopenharmony_ci}; 212662306a36Sopenharmony_ci 212762306a36Sopenharmony_cistatic struct clk_rcg2 pcnoc_bfdcd_clk_src = { 212862306a36Sopenharmony_ci .cmd_rcgr = 0x31004, 212962306a36Sopenharmony_ci .freq_tbl = ftbl_pcnoc_bfdcd_clk_src, 213062306a36Sopenharmony_ci .hid_width = 5, 213162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 213262306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 213362306a36Sopenharmony_ci .name = "pcnoc_bfdcd_clk_src", 213462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 213562306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 213662306a36Sopenharmony_ci .flags = CLK_IS_CRITICAL, 213762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 213862306a36Sopenharmony_ci }, 213962306a36Sopenharmony_ci}; 214062306a36Sopenharmony_ci 214162306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_axi_clk = { 214262306a36Sopenharmony_ci .halt_reg = 0x16010, 214362306a36Sopenharmony_ci .clkr = { 214462306a36Sopenharmony_ci .enable_reg = 0x16010, 214562306a36Sopenharmony_ci .enable_mask = BIT(0), 214662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 214762306a36Sopenharmony_ci .name = "gcc_crypto_axi_clk", 214862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 214962306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 215062306a36Sopenharmony_ci .num_parents = 1, 215162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 215262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 215362306a36Sopenharmony_ci }, 215462306a36Sopenharmony_ci }, 215562306a36Sopenharmony_ci}; 215662306a36Sopenharmony_ci 215762306a36Sopenharmony_cistatic struct clk_branch gcc_crypto_ahb_clk = { 215862306a36Sopenharmony_ci .halt_reg = 0x16014, 215962306a36Sopenharmony_ci .clkr = { 216062306a36Sopenharmony_ci .enable_reg = 0x16014, 216162306a36Sopenharmony_ci .enable_mask = BIT(0), 216262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 216362306a36Sopenharmony_ci .name = "gcc_crypto_ahb_clk", 216462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 216562306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw }, 216662306a36Sopenharmony_ci .num_parents = 1, 216762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 216862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 216962306a36Sopenharmony_ci }, 217062306a36Sopenharmony_ci }, 217162306a36Sopenharmony_ci}; 217262306a36Sopenharmony_ci 217362306a36Sopenharmony_cistatic struct clk_branch gcc_nsscfg_clk = { 217462306a36Sopenharmony_ci .halt_reg = 0x1702c, 217562306a36Sopenharmony_ci .clkr = { 217662306a36Sopenharmony_ci .enable_reg = 0x1702c, 217762306a36Sopenharmony_ci .enable_mask = BIT(0), 217862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 217962306a36Sopenharmony_ci .name = "gcc_nsscfg_clk", 218062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 218162306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 218262306a36Sopenharmony_ci }, 218362306a36Sopenharmony_ci .num_parents = 1, 218462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 218562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 218662306a36Sopenharmony_ci }, 218762306a36Sopenharmony_ci }, 218862306a36Sopenharmony_ci}; 218962306a36Sopenharmony_ci 219062306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_nsscc_clk = { 219162306a36Sopenharmony_ci .halt_reg = 0x17030, 219262306a36Sopenharmony_ci .clkr = { 219362306a36Sopenharmony_ci .enable_reg = 0x17030, 219462306a36Sopenharmony_ci .enable_mask = BIT(0), 219562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 219662306a36Sopenharmony_ci .name = "gcc_nssnoc_nsscc_clk", 219762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 219862306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 219962306a36Sopenharmony_ci }, 220062306a36Sopenharmony_ci .num_parents = 1, 220162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 220262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 220362306a36Sopenharmony_ci }, 220462306a36Sopenharmony_ci }, 220562306a36Sopenharmony_ci}; 220662306a36Sopenharmony_ci 220762306a36Sopenharmony_cistatic struct clk_branch gcc_nsscc_clk = { 220862306a36Sopenharmony_ci .halt_reg = 0x17034, 220962306a36Sopenharmony_ci .clkr = { 221062306a36Sopenharmony_ci .enable_reg = 0x17034, 221162306a36Sopenharmony_ci .enable_mask = BIT(0), 221262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 221362306a36Sopenharmony_ci .name = "gcc_nsscc_clk", 221462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 221562306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 221662306a36Sopenharmony_ci }, 221762306a36Sopenharmony_ci .num_parents = 1, 221862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 221962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 222062306a36Sopenharmony_ci }, 222162306a36Sopenharmony_ci }, 222262306a36Sopenharmony_ci}; 222362306a36Sopenharmony_ci 222462306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_pcnoc_1_clk = { 222562306a36Sopenharmony_ci .halt_reg = 0x17080, 222662306a36Sopenharmony_ci .clkr = { 222762306a36Sopenharmony_ci .enable_reg = 0x17080, 222862306a36Sopenharmony_ci .enable_mask = BIT(0), 222962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 223062306a36Sopenharmony_ci .name = "gcc_nssnoc_pcnoc_1_clk", 223162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 223262306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 223362306a36Sopenharmony_ci }, 223462306a36Sopenharmony_ci .num_parents = 1, 223562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 223662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 223762306a36Sopenharmony_ci }, 223862306a36Sopenharmony_ci }, 223962306a36Sopenharmony_ci}; 224062306a36Sopenharmony_ci 224162306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_dap_ahb_clk = { 224262306a36Sopenharmony_ci .halt_reg = 0x2d064, 224362306a36Sopenharmony_ci .clkr = { 224462306a36Sopenharmony_ci .enable_reg = 0x2d064, 224562306a36Sopenharmony_ci .enable_mask = BIT(0), 224662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 224762306a36Sopenharmony_ci .name = "gcc_qdss_dap_ahb_clk", 224862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 224962306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 225062306a36Sopenharmony_ci }, 225162306a36Sopenharmony_ci .num_parents = 1, 225262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 225362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 225462306a36Sopenharmony_ci }, 225562306a36Sopenharmony_ci }, 225662306a36Sopenharmony_ci}; 225762306a36Sopenharmony_ci 225862306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_cfg_ahb_clk = { 225962306a36Sopenharmony_ci .halt_reg = 0x2d068, 226062306a36Sopenharmony_ci .clkr = { 226162306a36Sopenharmony_ci .enable_reg = 0x2d068, 226262306a36Sopenharmony_ci .enable_mask = BIT(0), 226362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 226462306a36Sopenharmony_ci .name = "gcc_qdss_cfg_ahb_clk", 226562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 226662306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 226762306a36Sopenharmony_ci }, 226862306a36Sopenharmony_ci .num_parents = 1, 226962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 227062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 227162306a36Sopenharmony_ci }, 227262306a36Sopenharmony_ci }, 227362306a36Sopenharmony_ci}; 227462306a36Sopenharmony_ci 227562306a36Sopenharmony_cistatic struct clk_branch gcc_qpic_ahb_clk = { 227662306a36Sopenharmony_ci .halt_reg = 0x32010, 227762306a36Sopenharmony_ci .clkr = { 227862306a36Sopenharmony_ci .enable_reg = 0x32010, 227962306a36Sopenharmony_ci .enable_mask = BIT(0), 228062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 228162306a36Sopenharmony_ci .name = "gcc_qpic_ahb_clk", 228262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 228362306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 228462306a36Sopenharmony_ci }, 228562306a36Sopenharmony_ci .num_parents = 1, 228662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 228762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 228862306a36Sopenharmony_ci }, 228962306a36Sopenharmony_ci }, 229062306a36Sopenharmony_ci}; 229162306a36Sopenharmony_ci 229262306a36Sopenharmony_cistatic struct clk_branch gcc_qpic_clk = { 229362306a36Sopenharmony_ci .halt_reg = 0x32014, 229462306a36Sopenharmony_ci .clkr = { 229562306a36Sopenharmony_ci .enable_reg = 0x32014, 229662306a36Sopenharmony_ci .enable_mask = BIT(0), 229762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 229862306a36Sopenharmony_ci .name = "gcc_qpic_clk", 229962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 230062306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 230162306a36Sopenharmony_ci }, 230262306a36Sopenharmony_ci .num_parents = 1, 230362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 230462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 230562306a36Sopenharmony_ci }, 230662306a36Sopenharmony_ci }, 230762306a36Sopenharmony_ci}; 230862306a36Sopenharmony_ci 230962306a36Sopenharmony_cistatic struct clk_branch gcc_blsp1_ahb_clk = { 231062306a36Sopenharmony_ci .halt_reg = 0x01004, 231162306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 231262306a36Sopenharmony_ci .clkr = { 231362306a36Sopenharmony_ci .enable_reg = 0x0b004, 231462306a36Sopenharmony_ci .enable_mask = BIT(4), 231562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 231662306a36Sopenharmony_ci .name = "gcc_blsp1_ahb_clk", 231762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 231862306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 231962306a36Sopenharmony_ci }, 232062306a36Sopenharmony_ci .num_parents = 1, 232162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 232262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 232362306a36Sopenharmony_ci }, 232462306a36Sopenharmony_ci }, 232562306a36Sopenharmony_ci}; 232662306a36Sopenharmony_ci 232762306a36Sopenharmony_cistatic struct clk_branch gcc_mdio_ahb_clk = { 232862306a36Sopenharmony_ci .halt_reg = 0x17040, 232962306a36Sopenharmony_ci .clkr = { 233062306a36Sopenharmony_ci .enable_reg = 0x17040, 233162306a36Sopenharmony_ci .enable_mask = BIT(0), 233262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 233362306a36Sopenharmony_ci .name = "gcc_mdio_ahb_clk", 233462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 233562306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 233662306a36Sopenharmony_ci }, 233762306a36Sopenharmony_ci .num_parents = 1, 233862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 233962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 234062306a36Sopenharmony_ci }, 234162306a36Sopenharmony_ci }, 234262306a36Sopenharmony_ci}; 234362306a36Sopenharmony_ci 234462306a36Sopenharmony_cistatic struct clk_branch gcc_prng_ahb_clk = { 234562306a36Sopenharmony_ci .halt_reg = 0x13024, 234662306a36Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 234762306a36Sopenharmony_ci .clkr = { 234862306a36Sopenharmony_ci .enable_reg = 0x0b004, 234962306a36Sopenharmony_ci .enable_mask = BIT(10), 235062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 235162306a36Sopenharmony_ci .name = "gcc_prng_ahb_clk", 235262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 235362306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 235462306a36Sopenharmony_ci }, 235562306a36Sopenharmony_ci .num_parents = 1, 235662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 235762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 235862306a36Sopenharmony_ci }, 235962306a36Sopenharmony_ci }, 236062306a36Sopenharmony_ci}; 236162306a36Sopenharmony_ci 236262306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_ahb_clk = { 236362306a36Sopenharmony_ci .halt_reg = 0x1704c, 236462306a36Sopenharmony_ci .clkr = { 236562306a36Sopenharmony_ci .enable_reg = 0x1704c, 236662306a36Sopenharmony_ci .enable_mask = BIT(0), 236762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 236862306a36Sopenharmony_ci .name = "gcc_uniphy0_ahb_clk", 236962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 237062306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 237162306a36Sopenharmony_ci }, 237262306a36Sopenharmony_ci .num_parents = 1, 237362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 237462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 237562306a36Sopenharmony_ci }, 237662306a36Sopenharmony_ci }, 237762306a36Sopenharmony_ci}; 237862306a36Sopenharmony_ci 237962306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy1_ahb_clk = { 238062306a36Sopenharmony_ci .halt_reg = 0x1705c, 238162306a36Sopenharmony_ci .clkr = { 238262306a36Sopenharmony_ci .enable_reg = 0x1705c, 238362306a36Sopenharmony_ci .enable_mask = BIT(0), 238462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 238562306a36Sopenharmony_ci .name = "gcc_uniphy1_ahb_clk", 238662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 238762306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 238862306a36Sopenharmony_ci }, 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_uniphy2_ahb_clk = { 239762306a36Sopenharmony_ci .halt_reg = 0x1706c, 239862306a36Sopenharmony_ci .clkr = { 239962306a36Sopenharmony_ci .enable_reg = 0x1706c, 240062306a36Sopenharmony_ci .enable_mask = BIT(0), 240162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 240262306a36Sopenharmony_ci .name = "gcc_uniphy2_ahb_clk", 240362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 240462306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 240562306a36Sopenharmony_ci }, 240662306a36Sopenharmony_ci .num_parents = 1, 240762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 240862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 240962306a36Sopenharmony_ci }, 241062306a36Sopenharmony_ci }, 241162306a36Sopenharmony_ci}; 241262306a36Sopenharmony_ci 241362306a36Sopenharmony_cistatic struct clk_branch gcc_cmn_12gpll_ahb_clk = { 241462306a36Sopenharmony_ci .halt_reg = 0x3a004, 241562306a36Sopenharmony_ci .clkr = { 241662306a36Sopenharmony_ci .enable_reg = 0x3a004, 241762306a36Sopenharmony_ci .enable_mask = BIT(0), 241862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 241962306a36Sopenharmony_ci .name = "gcc_cmn_12gpll_ahb_clk", 242062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 242162306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 242262306a36Sopenharmony_ci }, 242362306a36Sopenharmony_ci .num_parents = 1, 242462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 242562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 242662306a36Sopenharmony_ci }, 242762306a36Sopenharmony_ci }, 242862306a36Sopenharmony_ci}; 242962306a36Sopenharmony_ci 243062306a36Sopenharmony_cistatic struct clk_branch gcc_cmn_12gpll_apu_clk = { 243162306a36Sopenharmony_ci .halt_reg = 0x3a00c, 243262306a36Sopenharmony_ci .clkr = { 243362306a36Sopenharmony_ci .enable_reg = 0x3a00c, 243462306a36Sopenharmony_ci .enable_mask = BIT(0), 243562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 243662306a36Sopenharmony_ci .name = "gcc_cmn_12gpll_apu_clk", 243762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 243862306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 243962306a36Sopenharmony_ci }, 244062306a36Sopenharmony_ci .num_parents = 1, 244162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 244262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 244362306a36Sopenharmony_ci }, 244462306a36Sopenharmony_ci }, 244562306a36Sopenharmony_ci}; 244662306a36Sopenharmony_ci 244762306a36Sopenharmony_cistatic struct clk_branch gcc_pcie0_ahb_clk = { 244862306a36Sopenharmony_ci .halt_reg = 0x28030, 244962306a36Sopenharmony_ci .clkr = { 245062306a36Sopenharmony_ci .enable_reg = 0x28030, 245162306a36Sopenharmony_ci .enable_mask = BIT(0), 245262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 245362306a36Sopenharmony_ci .name = "gcc_pcie0_ahb_clk", 245462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 245562306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 245662306a36Sopenharmony_ci }, 245762306a36Sopenharmony_ci .num_parents = 1, 245862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 245962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 246062306a36Sopenharmony_ci }, 246162306a36Sopenharmony_ci }, 246262306a36Sopenharmony_ci}; 246362306a36Sopenharmony_ci 246462306a36Sopenharmony_cistatic struct clk_branch gcc_pcie1_ahb_clk = { 246562306a36Sopenharmony_ci .halt_reg = 0x29030, 246662306a36Sopenharmony_ci .clkr = { 246762306a36Sopenharmony_ci .enable_reg = 0x29030, 246862306a36Sopenharmony_ci .enable_mask = BIT(0), 246962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 247062306a36Sopenharmony_ci .name = "gcc_pcie1_ahb_clk", 247162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 247262306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 247362306a36Sopenharmony_ci }, 247462306a36Sopenharmony_ci .num_parents = 1, 247562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 247662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 247762306a36Sopenharmony_ci }, 247862306a36Sopenharmony_ci }, 247962306a36Sopenharmony_ci}; 248062306a36Sopenharmony_ci 248162306a36Sopenharmony_cistatic struct clk_branch gcc_pcie2_ahb_clk = { 248262306a36Sopenharmony_ci .halt_reg = 0x2a030, 248362306a36Sopenharmony_ci .clkr = { 248462306a36Sopenharmony_ci .enable_reg = 0x2a030, 248562306a36Sopenharmony_ci .enable_mask = BIT(0), 248662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 248762306a36Sopenharmony_ci .name = "gcc_pcie2_ahb_clk", 248862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 248962306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 249062306a36Sopenharmony_ci }, 249162306a36Sopenharmony_ci .num_parents = 1, 249262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 249362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 249462306a36Sopenharmony_ci }, 249562306a36Sopenharmony_ci }, 249662306a36Sopenharmony_ci}; 249762306a36Sopenharmony_ci 249862306a36Sopenharmony_cistatic struct clk_branch gcc_pcie3_ahb_clk = { 249962306a36Sopenharmony_ci .halt_reg = 0x2b030, 250062306a36Sopenharmony_ci .clkr = { 250162306a36Sopenharmony_ci .enable_reg = 0x2b030, 250262306a36Sopenharmony_ci .enable_mask = BIT(0), 250362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 250462306a36Sopenharmony_ci .name = "gcc_pcie3_ahb_clk", 250562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 250662306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 250762306a36Sopenharmony_ci }, 250862306a36Sopenharmony_ci .num_parents = 1, 250962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 251062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 251162306a36Sopenharmony_ci }, 251262306a36Sopenharmony_ci }, 251362306a36Sopenharmony_ci}; 251462306a36Sopenharmony_ci 251562306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_phy_cfg_ahb_clk = { 251662306a36Sopenharmony_ci .halt_reg = 0x2c05c, 251762306a36Sopenharmony_ci .clkr = { 251862306a36Sopenharmony_ci .enable_reg = 0x2c05c, 251962306a36Sopenharmony_ci .enable_mask = BIT(0), 252062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 252162306a36Sopenharmony_ci .name = "gcc_usb0_phy_cfg_ahb_clk", 252262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 252362306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 252462306a36Sopenharmony_ci }, 252562306a36Sopenharmony_ci .num_parents = 1, 252662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 252762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 252862306a36Sopenharmony_ci }, 252962306a36Sopenharmony_ci }, 253062306a36Sopenharmony_ci}; 253162306a36Sopenharmony_ci 253262306a36Sopenharmony_cistatic struct clk_branch gcc_sdcc1_ahb_clk = { 253362306a36Sopenharmony_ci .halt_reg = 0x33034, 253462306a36Sopenharmony_ci .clkr = { 253562306a36Sopenharmony_ci .enable_reg = 0x33034, 253662306a36Sopenharmony_ci .enable_mask = BIT(0), 253762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 253862306a36Sopenharmony_ci .name = "gcc_sdcc1_ahb_clk", 253962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 254062306a36Sopenharmony_ci &pcnoc_bfdcd_clk_src.clkr.hw 254162306a36Sopenharmony_ci }, 254262306a36Sopenharmony_ci .num_parents = 1, 254362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 254462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 254562306a36Sopenharmony_ci }, 254662306a36Sopenharmony_ci }, 254762306a36Sopenharmony_ci}; 254862306a36Sopenharmony_ci 254962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_system_noc_bfdcd_clk_src[] = { 255062306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 255162306a36Sopenharmony_ci F(133333333, P_GPLL0, 6, 0, 0), 255262306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 255362306a36Sopenharmony_ci F(342850000, P_GPLL4, 3.5, 0, 0), 255462306a36Sopenharmony_ci { } 255562306a36Sopenharmony_ci}; 255662306a36Sopenharmony_ci 255762306a36Sopenharmony_cistatic struct clk_rcg2 system_noc_bfdcd_clk_src = { 255862306a36Sopenharmony_ci .cmd_rcgr = 0x2e004, 255962306a36Sopenharmony_ci .freq_tbl = ftbl_system_noc_bfdcd_clk_src, 256062306a36Sopenharmony_ci .hid_width = 5, 256162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_map, 256262306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 256362306a36Sopenharmony_ci .name = "system_noc_bfdcd_clk_src", 256462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4, 256562306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4), 256662306a36Sopenharmony_ci .flags = CLK_IS_CRITICAL, 256762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 256862306a36Sopenharmony_ci }, 256962306a36Sopenharmony_ci}; 257062306a36Sopenharmony_ci 257162306a36Sopenharmony_cistatic struct clk_branch gcc_q6ss_boot_clk = { 257262306a36Sopenharmony_ci .halt_reg = 0x25080, 257362306a36Sopenharmony_ci .halt_check = BRANCH_HALT_SKIP, 257462306a36Sopenharmony_ci .clkr = { 257562306a36Sopenharmony_ci .enable_reg = 0x25080, 257662306a36Sopenharmony_ci .enable_mask = BIT(0), 257762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 257862306a36Sopenharmony_ci .name = "gcc_q6ss_boot_clk", 257962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 258062306a36Sopenharmony_ci &system_noc_bfdcd_clk_src.clkr.hw 258162306a36Sopenharmony_ci }, 258262306a36Sopenharmony_ci .num_parents = 1, 258362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 258462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 258562306a36Sopenharmony_ci }, 258662306a36Sopenharmony_ci }, 258762306a36Sopenharmony_ci}; 258862306a36Sopenharmony_ci 258962306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_snoc_clk = { 259062306a36Sopenharmony_ci .halt_reg = 0x17028, 259162306a36Sopenharmony_ci .clkr = { 259262306a36Sopenharmony_ci .enable_reg = 0x17028, 259362306a36Sopenharmony_ci .enable_mask = BIT(0), 259462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 259562306a36Sopenharmony_ci .name = "gcc_nssnoc_snoc_clk", 259662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 259762306a36Sopenharmony_ci &system_noc_bfdcd_clk_src.clkr.hw 259862306a36Sopenharmony_ci }, 259962306a36Sopenharmony_ci .num_parents = 1, 260062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 260162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 260262306a36Sopenharmony_ci }, 260362306a36Sopenharmony_ci }, 260462306a36Sopenharmony_ci}; 260562306a36Sopenharmony_ci 260662306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_snoc_1_clk = { 260762306a36Sopenharmony_ci .halt_reg = 0x1707c, 260862306a36Sopenharmony_ci .clkr = { 260962306a36Sopenharmony_ci .enable_reg = 0x1707c, 261062306a36Sopenharmony_ci .enable_mask = BIT(0), 261162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 261262306a36Sopenharmony_ci .name = "gcc_nssnoc_snoc_1_clk", 261362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 261462306a36Sopenharmony_ci &system_noc_bfdcd_clk_src.clkr.hw 261562306a36Sopenharmony_ci }, 261662306a36Sopenharmony_ci .num_parents = 1, 261762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 261862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 261962306a36Sopenharmony_ci }, 262062306a36Sopenharmony_ci }, 262162306a36Sopenharmony_ci}; 262262306a36Sopenharmony_ci 262362306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_etr_usb_clk = { 262462306a36Sopenharmony_ci .halt_reg = 0x2d060, 262562306a36Sopenharmony_ci .clkr = { 262662306a36Sopenharmony_ci .enable_reg = 0x2d060, 262762306a36Sopenharmony_ci .enable_mask = BIT(0), 262862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 262962306a36Sopenharmony_ci .name = "gcc_qdss_etr_usb_clk", 263062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 263162306a36Sopenharmony_ci &system_noc_bfdcd_clk_src.clkr.hw 263262306a36Sopenharmony_ci }, 263362306a36Sopenharmony_ci .num_parents = 1, 263462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 263562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 263662306a36Sopenharmony_ci }, 263762306a36Sopenharmony_ci }, 263862306a36Sopenharmony_ci}; 263962306a36Sopenharmony_ci 264062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_wcss_ahb_clk_src[] = { 264162306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 264262306a36Sopenharmony_ci F(133333333, P_GPLL0, 6, 0, 0), 264362306a36Sopenharmony_ci { } 264462306a36Sopenharmony_ci}; 264562306a36Sopenharmony_ci 264662306a36Sopenharmony_cistatic struct clk_rcg2 wcss_ahb_clk_src = { 264762306a36Sopenharmony_ci .cmd_rcgr = 0x25030, 264862306a36Sopenharmony_ci .freq_tbl = ftbl_wcss_ahb_clk_src, 264962306a36Sopenharmony_ci .hid_width = 5, 265062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 265162306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 265262306a36Sopenharmony_ci .name = "wcss_ahb_clk_src", 265362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 265462306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0), 265562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 265662306a36Sopenharmony_ci }, 265762306a36Sopenharmony_ci}; 265862306a36Sopenharmony_ci 265962306a36Sopenharmony_cistatic struct clk_branch gcc_q6_ahb_clk = { 266062306a36Sopenharmony_ci .halt_reg = 0x25014, 266162306a36Sopenharmony_ci .clkr = { 266262306a36Sopenharmony_ci .enable_reg = 0x25014, 266362306a36Sopenharmony_ci .enable_mask = BIT(0), 266462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 266562306a36Sopenharmony_ci .name = "gcc_q6_ahb_clk", 266662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 266762306a36Sopenharmony_ci &wcss_ahb_clk_src.clkr.hw 266862306a36Sopenharmony_ci }, 266962306a36Sopenharmony_ci .num_parents = 1, 267062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 267162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 267262306a36Sopenharmony_ci }, 267362306a36Sopenharmony_ci }, 267462306a36Sopenharmony_ci}; 267562306a36Sopenharmony_ci 267662306a36Sopenharmony_cistatic struct clk_branch gcc_q6_ahb_s_clk = { 267762306a36Sopenharmony_ci .halt_reg = 0x25018, 267862306a36Sopenharmony_ci .clkr = { 267962306a36Sopenharmony_ci .enable_reg = 0x25018, 268062306a36Sopenharmony_ci .enable_mask = BIT(0), 268162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 268262306a36Sopenharmony_ci .name = "gcc_q6_ahb_s_clk", 268362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 268462306a36Sopenharmony_ci &wcss_ahb_clk_src.clkr.hw 268562306a36Sopenharmony_ci }, 268662306a36Sopenharmony_ci .num_parents = 1, 268762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 268862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 268962306a36Sopenharmony_ci }, 269062306a36Sopenharmony_ci }, 269162306a36Sopenharmony_ci}; 269262306a36Sopenharmony_ci 269362306a36Sopenharmony_cistatic struct clk_branch gcc_wcss_ecahb_clk = { 269462306a36Sopenharmony_ci .halt_reg = 0x25058, 269562306a36Sopenharmony_ci .clkr = { 269662306a36Sopenharmony_ci .enable_reg = 0x25058, 269762306a36Sopenharmony_ci .enable_mask = BIT(0), 269862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 269962306a36Sopenharmony_ci .name = "gcc_wcss_ecahb_clk", 270062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 270162306a36Sopenharmony_ci &wcss_ahb_clk_src.clkr.hw 270262306a36Sopenharmony_ci }, 270362306a36Sopenharmony_ci .num_parents = 1, 270462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 270562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 270662306a36Sopenharmony_ci }, 270762306a36Sopenharmony_ci }, 270862306a36Sopenharmony_ci}; 270962306a36Sopenharmony_ci 271062306a36Sopenharmony_cistatic struct clk_branch gcc_wcss_acmt_clk = { 271162306a36Sopenharmony_ci .halt_reg = 0x2505c, 271262306a36Sopenharmony_ci .clkr = { 271362306a36Sopenharmony_ci .enable_reg = 0x2505c, 271462306a36Sopenharmony_ci .enable_mask = BIT(0), 271562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 271662306a36Sopenharmony_ci .name = "gcc_wcss_acmt_clk", 271762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 271862306a36Sopenharmony_ci &wcss_ahb_clk_src.clkr.hw 271962306a36Sopenharmony_ci }, 272062306a36Sopenharmony_ci .num_parents = 1, 272162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 272262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 272362306a36Sopenharmony_ci }, 272462306a36Sopenharmony_ci }, 272562306a36Sopenharmony_ci}; 272662306a36Sopenharmony_ci 272762306a36Sopenharmony_cistatic struct clk_branch gcc_sys_noc_wcss_ahb_clk = { 272862306a36Sopenharmony_ci .halt_reg = 0x2e030, 272962306a36Sopenharmony_ci .clkr = { 273062306a36Sopenharmony_ci .enable_reg = 0x2e030, 273162306a36Sopenharmony_ci .enable_mask = BIT(0), 273262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 273362306a36Sopenharmony_ci .name = "gcc_sys_noc_wcss_ahb_clk", 273462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 273562306a36Sopenharmony_ci &wcss_ahb_clk_src.clkr.hw 273662306a36Sopenharmony_ci }, 273762306a36Sopenharmony_ci .num_parents = 1, 273862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 273962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 274062306a36Sopenharmony_ci }, 274162306a36Sopenharmony_ci }, 274262306a36Sopenharmony_ci}; 274362306a36Sopenharmony_ci 274462306a36Sopenharmony_cistatic const struct freq_tbl ftbl_wcss_axi_m_clk_src[] = { 274562306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 274662306a36Sopenharmony_ci F(133333333, P_GPLL0, 6, 0, 0), 274762306a36Sopenharmony_ci F(266666667, P_GPLL0, 3, 0, 0), 274862306a36Sopenharmony_ci { } 274962306a36Sopenharmony_ci}; 275062306a36Sopenharmony_ci 275162306a36Sopenharmony_cistatic struct clk_rcg2 wcss_axi_m_clk_src = { 275262306a36Sopenharmony_ci .cmd_rcgr = 0x25078, 275362306a36Sopenharmony_ci .freq_tbl = ftbl_wcss_axi_m_clk_src, 275462306a36Sopenharmony_ci .hid_width = 5, 275562306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 275662306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 275762306a36Sopenharmony_ci .name = "wcss_axi_m_clk_src", 275862306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 275962306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0), 276062306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 276162306a36Sopenharmony_ci }, 276262306a36Sopenharmony_ci}; 276362306a36Sopenharmony_ci 276462306a36Sopenharmony_cistatic struct clk_branch gcc_anoc_wcss_axi_m_clk = { 276562306a36Sopenharmony_ci .halt_reg = 0x2e0a8, 276662306a36Sopenharmony_ci .clkr = { 276762306a36Sopenharmony_ci .enable_reg = 0x2e0a8, 276862306a36Sopenharmony_ci .enable_mask = BIT(0), 276962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 277062306a36Sopenharmony_ci .name = "gcc_anoc_wcss_axi_m_clk", 277162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 277262306a36Sopenharmony_ci &wcss_axi_m_clk_src.clkr.hw 277362306a36Sopenharmony_ci }, 277462306a36Sopenharmony_ci .num_parents = 1, 277562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 277662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 277762306a36Sopenharmony_ci }, 277862306a36Sopenharmony_ci }, 277962306a36Sopenharmony_ci}; 278062306a36Sopenharmony_ci 278162306a36Sopenharmony_cistatic const struct freq_tbl ftbl_qdss_at_clk_src[] = { 278262306a36Sopenharmony_ci F(240000000, P_GPLL4, 5, 0, 0), 278362306a36Sopenharmony_ci { } 278462306a36Sopenharmony_ci}; 278562306a36Sopenharmony_ci 278662306a36Sopenharmony_cistatic struct clk_rcg2 qdss_at_clk_src = { 278762306a36Sopenharmony_ci .cmd_rcgr = 0x2d004, 278862306a36Sopenharmony_ci .freq_tbl = ftbl_qdss_at_clk_src, 278962306a36Sopenharmony_ci .hid_width = 5, 279062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll4_gpll0_gpll0_div2_map, 279162306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 279262306a36Sopenharmony_ci .name = "qdss_at_clk_src", 279362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll4_gpll0_gpll0_div2, 279462306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll4_gpll0_gpll0_div2), 279562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 279662306a36Sopenharmony_ci }, 279762306a36Sopenharmony_ci}; 279862306a36Sopenharmony_ci 279962306a36Sopenharmony_cistatic struct clk_branch gcc_q6ss_atbm_clk = { 280062306a36Sopenharmony_ci .halt_reg = 0x2501c, 280162306a36Sopenharmony_ci .clkr = { 280262306a36Sopenharmony_ci .enable_reg = 0x2501c, 280362306a36Sopenharmony_ci .enable_mask = BIT(0), 280462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 280562306a36Sopenharmony_ci .name = "gcc_q6ss_atbm_clk", 280662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 280762306a36Sopenharmony_ci &qdss_at_clk_src.clkr.hw 280862306a36Sopenharmony_ci }, 280962306a36Sopenharmony_ci .num_parents = 1, 281062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 281162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 281262306a36Sopenharmony_ci }, 281362306a36Sopenharmony_ci }, 281462306a36Sopenharmony_ci}; 281562306a36Sopenharmony_ci 281662306a36Sopenharmony_cistatic struct clk_branch gcc_wcss_dbg_ifc_atb_clk = { 281762306a36Sopenharmony_ci .halt_reg = 0x2503c, 281862306a36Sopenharmony_ci .clkr = { 281962306a36Sopenharmony_ci .enable_reg = 0x2503c, 282062306a36Sopenharmony_ci .enable_mask = BIT(0), 282162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 282262306a36Sopenharmony_ci .name = "gcc_wcss_dbg_ifc_atb_clk", 282362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 282462306a36Sopenharmony_ci &qdss_at_clk_src.clkr.hw 282562306a36Sopenharmony_ci }, 282662306a36Sopenharmony_ci .num_parents = 1, 282762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 282862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 282962306a36Sopenharmony_ci }, 283062306a36Sopenharmony_ci }, 283162306a36Sopenharmony_ci}; 283262306a36Sopenharmony_ci 283362306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_atb_clk = { 283462306a36Sopenharmony_ci .halt_reg = 0x17014, 283562306a36Sopenharmony_ci .clkr = { 283662306a36Sopenharmony_ci .enable_reg = 0x17014, 283762306a36Sopenharmony_ci .enable_mask = BIT(0), 283862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 283962306a36Sopenharmony_ci .name = "gcc_nssnoc_atb_clk", 284062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 284162306a36Sopenharmony_ci &qdss_at_clk_src.clkr.hw 284262306a36Sopenharmony_ci }, 284362306a36Sopenharmony_ci .num_parents = 1, 284462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 284562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 284662306a36Sopenharmony_ci }, 284762306a36Sopenharmony_ci }, 284862306a36Sopenharmony_ci}; 284962306a36Sopenharmony_ci 285062306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_at_clk = { 285162306a36Sopenharmony_ci .halt_reg = 0x2d038, 285262306a36Sopenharmony_ci .clkr = { 285362306a36Sopenharmony_ci .enable_reg = 0x2d038, 285462306a36Sopenharmony_ci .enable_mask = BIT(0), 285562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 285662306a36Sopenharmony_ci .name = "gcc_qdss_at_clk", 285762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 285862306a36Sopenharmony_ci &qdss_at_clk_src.clkr.hw 285962306a36Sopenharmony_ci }, 286062306a36Sopenharmony_ci .num_parents = 1, 286162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 286262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 286362306a36Sopenharmony_ci }, 286462306a36Sopenharmony_ci }, 286562306a36Sopenharmony_ci}; 286662306a36Sopenharmony_ci 286762306a36Sopenharmony_cistatic struct clk_branch gcc_sys_noc_at_clk = { 286862306a36Sopenharmony_ci .halt_reg = 0x2e038, 286962306a36Sopenharmony_ci .clkr = { 287062306a36Sopenharmony_ci .enable_reg = 0x2e038, 287162306a36Sopenharmony_ci .enable_mask = BIT(0), 287262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 287362306a36Sopenharmony_ci .name = "gcc_sys_noc_at_clk", 287462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 287562306a36Sopenharmony_ci &qdss_at_clk_src.clkr.hw 287662306a36Sopenharmony_ci }, 287762306a36Sopenharmony_ci .num_parents = 1, 287862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 287962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 288062306a36Sopenharmony_ci }, 288162306a36Sopenharmony_ci }, 288262306a36Sopenharmony_ci}; 288362306a36Sopenharmony_ci 288462306a36Sopenharmony_cistatic struct clk_branch gcc_pcnoc_at_clk = { 288562306a36Sopenharmony_ci .halt_reg = 0x31024, 288662306a36Sopenharmony_ci .clkr = { 288762306a36Sopenharmony_ci .enable_reg = 0x31024, 288862306a36Sopenharmony_ci .enable_mask = BIT(0), 288962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 289062306a36Sopenharmony_ci .name = "gcc_pcnoc_at_clk", 289162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 289262306a36Sopenharmony_ci &qdss_at_clk_src.clkr.hw 289362306a36Sopenharmony_ci }, 289462306a36Sopenharmony_ci .num_parents = 1, 289562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 289662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 289762306a36Sopenharmony_ci }, 289862306a36Sopenharmony_ci }, 289962306a36Sopenharmony_ci}; 290062306a36Sopenharmony_ci 290162306a36Sopenharmony_cistatic struct clk_fixed_factor gcc_eud_at_div_clk_src = { 290262306a36Sopenharmony_ci .mult = 1, 290362306a36Sopenharmony_ci .div = 6, 290462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 290562306a36Sopenharmony_ci .name = "gcc_eud_at_div_clk_src", 290662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 290762306a36Sopenharmony_ci &qdss_at_clk_src.clkr.hw 290862306a36Sopenharmony_ci }, 290962306a36Sopenharmony_ci .num_parents = 1, 291062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 291162306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 291262306a36Sopenharmony_ci }, 291362306a36Sopenharmony_ci}; 291462306a36Sopenharmony_ci 291562306a36Sopenharmony_cistatic struct clk_branch gcc_usb0_eud_at_clk = { 291662306a36Sopenharmony_ci .halt_reg = 0x30004, 291762306a36Sopenharmony_ci .clkr = { 291862306a36Sopenharmony_ci .enable_reg = 0x30004, 291962306a36Sopenharmony_ci .enable_mask = BIT(0), 292062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 292162306a36Sopenharmony_ci .name = "gcc_usb0_eud_at_clk", 292262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 292362306a36Sopenharmony_ci &gcc_eud_at_div_clk_src.hw 292462306a36Sopenharmony_ci }, 292562306a36Sopenharmony_ci .num_parents = 1, 292662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 292762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 292862306a36Sopenharmony_ci }, 292962306a36Sopenharmony_ci }, 293062306a36Sopenharmony_ci}; 293162306a36Sopenharmony_ci 293262306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_eud_at_clk = { 293362306a36Sopenharmony_ci .halt_reg = 0x2d06c, 293462306a36Sopenharmony_ci .clkr = { 293562306a36Sopenharmony_ci .enable_reg = 0x2d06c, 293662306a36Sopenharmony_ci .enable_mask = BIT(0), 293762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 293862306a36Sopenharmony_ci .name = "gcc_qdss_eud_at_clk", 293962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 294062306a36Sopenharmony_ci &gcc_eud_at_div_clk_src.hw 294162306a36Sopenharmony_ci }, 294262306a36Sopenharmony_ci .num_parents = 1, 294362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 294462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 294562306a36Sopenharmony_ci }, 294662306a36Sopenharmony_ci }, 294762306a36Sopenharmony_ci}; 294862306a36Sopenharmony_ci 294962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_qdss_stm_clk_src[] = { 295062306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 295162306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 295262306a36Sopenharmony_ci { } 295362306a36Sopenharmony_ci}; 295462306a36Sopenharmony_ci 295562306a36Sopenharmony_cistatic struct clk_rcg2 qdss_stm_clk_src = { 295662306a36Sopenharmony_ci .cmd_rcgr = 0x2d00c, 295762306a36Sopenharmony_ci .freq_tbl = ftbl_qdss_stm_clk_src, 295862306a36Sopenharmony_ci .hid_width = 5, 295962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map, 296062306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 296162306a36Sopenharmony_ci .name = "qdss_stm_clk_src", 296262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_out_main_div2, 296362306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2), 296462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 296562306a36Sopenharmony_ci }, 296662306a36Sopenharmony_ci}; 296762306a36Sopenharmony_ci 296862306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_stm_clk = { 296962306a36Sopenharmony_ci .halt_reg = 0x2d03c, 297062306a36Sopenharmony_ci .clkr = { 297162306a36Sopenharmony_ci .enable_reg = 0x2d03c, 297262306a36Sopenharmony_ci .enable_mask = BIT(0), 297362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 297462306a36Sopenharmony_ci .name = "gcc_qdss_stm_clk", 297562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 297662306a36Sopenharmony_ci &qdss_stm_clk_src.clkr.hw 297762306a36Sopenharmony_ci }, 297862306a36Sopenharmony_ci .num_parents = 1, 297962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 298062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 298162306a36Sopenharmony_ci }, 298262306a36Sopenharmony_ci }, 298362306a36Sopenharmony_ci}; 298462306a36Sopenharmony_ci 298562306a36Sopenharmony_cistatic struct clk_branch gcc_sys_noc_qdss_stm_axi_clk = { 298662306a36Sopenharmony_ci .halt_reg = 0x2e034, 298762306a36Sopenharmony_ci .clkr = { 298862306a36Sopenharmony_ci .enable_reg = 0x2e034, 298962306a36Sopenharmony_ci .enable_mask = BIT(0), 299062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 299162306a36Sopenharmony_ci .name = "gcc_sys_noc_qdss_stm_axi_clk", 299262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 299362306a36Sopenharmony_ci &qdss_stm_clk_src.clkr.hw 299462306a36Sopenharmony_ci }, 299562306a36Sopenharmony_ci .num_parents = 1, 299662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 299762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 299862306a36Sopenharmony_ci }, 299962306a36Sopenharmony_ci }, 300062306a36Sopenharmony_ci}; 300162306a36Sopenharmony_ci 300262306a36Sopenharmony_cistatic const struct freq_tbl ftbl_qdss_traceclkin_clk_src[] = { 300362306a36Sopenharmony_ci F(300000000, P_GPLL4, 4, 0, 0), 300462306a36Sopenharmony_ci { } 300562306a36Sopenharmony_ci}; 300662306a36Sopenharmony_ci 300762306a36Sopenharmony_cistatic struct clk_rcg2 qdss_traceclkin_clk_src = { 300862306a36Sopenharmony_ci .cmd_rcgr = 0x2d014, 300962306a36Sopenharmony_ci .freq_tbl = ftbl_qdss_traceclkin_clk_src, 301062306a36Sopenharmony_ci .hid_width = 5, 301162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll4_gpll0_gpll0_div2_map, 301262306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 301362306a36Sopenharmony_ci .name = "qdss_traceclkin_clk_src", 301462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll4_gpll0_gpll0_div2, 301562306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll4_gpll0_gpll0_div2), 301662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 301762306a36Sopenharmony_ci }, 301862306a36Sopenharmony_ci}; 301962306a36Sopenharmony_ci 302062306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_traceclkin_clk = { 302162306a36Sopenharmony_ci .halt_reg = 0x2d040, 302262306a36Sopenharmony_ci .clkr = { 302362306a36Sopenharmony_ci .enable_reg = 0x2d040, 302462306a36Sopenharmony_ci .enable_mask = BIT(0), 302562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 302662306a36Sopenharmony_ci .name = "gcc_qdss_traceclkin_clk", 302762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 302862306a36Sopenharmony_ci &qdss_traceclkin_clk_src.clkr.hw 302962306a36Sopenharmony_ci }, 303062306a36Sopenharmony_ci .num_parents = 1, 303162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 303262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 303362306a36Sopenharmony_ci }, 303462306a36Sopenharmony_ci }, 303562306a36Sopenharmony_ci}; 303662306a36Sopenharmony_ci 303762306a36Sopenharmony_cistatic const struct freq_tbl ftbl_qdss_tsctr_clk_src[] = { 303862306a36Sopenharmony_ci F(600000000, P_GPLL4, 2, 0, 0), 303962306a36Sopenharmony_ci { } 304062306a36Sopenharmony_ci}; 304162306a36Sopenharmony_ci 304262306a36Sopenharmony_cistatic struct clk_rcg2 qdss_tsctr_clk_src = { 304362306a36Sopenharmony_ci .cmd_rcgr = 0x2d01c, 304462306a36Sopenharmony_ci .freq_tbl = ftbl_qdss_tsctr_clk_src, 304562306a36Sopenharmony_ci .hid_width = 5, 304662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll4_gpll0_gpll0_div2_map, 304762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 304862306a36Sopenharmony_ci .name = "qdss_tsctr_clk_src", 304962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll4_gpll0_gpll0_div2, 305062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll4_gpll0_gpll0_div2), 305162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 305262306a36Sopenharmony_ci }, 305362306a36Sopenharmony_ci}; 305462306a36Sopenharmony_ci 305562306a36Sopenharmony_cistatic struct clk_fixed_factor qdss_tsctr_div2_clk_src = { 305662306a36Sopenharmony_ci .mult = 1, 305762306a36Sopenharmony_ci .div = 2, 305862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 305962306a36Sopenharmony_ci .name = "qdss_tsctr_div2_clk_src", 306062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 306162306a36Sopenharmony_ci &qdss_tsctr_clk_src.clkr.hw 306262306a36Sopenharmony_ci }, 306362306a36Sopenharmony_ci .num_parents = 1, 306462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 306562306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 306662306a36Sopenharmony_ci }, 306762306a36Sopenharmony_ci}; 306862306a36Sopenharmony_ci 306962306a36Sopenharmony_cistatic struct clk_branch gcc_q6_tsctr_1to2_clk = { 307062306a36Sopenharmony_ci .halt_reg = 0x25020, 307162306a36Sopenharmony_ci .clkr = { 307262306a36Sopenharmony_ci .enable_reg = 0x25020, 307362306a36Sopenharmony_ci .enable_mask = BIT(0), 307462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 307562306a36Sopenharmony_ci .name = "gcc_q6_tsctr_1to2_clk", 307662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 307762306a36Sopenharmony_ci &qdss_tsctr_div2_clk_src.hw 307862306a36Sopenharmony_ci }, 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_wcss_dbg_ifc_nts_clk = { 308762306a36Sopenharmony_ci .halt_reg = 0x25040, 308862306a36Sopenharmony_ci .clkr = { 308962306a36Sopenharmony_ci .enable_reg = 0x25040, 309062306a36Sopenharmony_ci .enable_mask = BIT(0), 309162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 309262306a36Sopenharmony_ci .name = "gcc_wcss_dbg_ifc_nts_clk", 309362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 309462306a36Sopenharmony_ci &qdss_tsctr_div2_clk_src.hw 309562306a36Sopenharmony_ci }, 309662306a36Sopenharmony_ci .num_parents = 1, 309762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 309862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 309962306a36Sopenharmony_ci }, 310062306a36Sopenharmony_ci }, 310162306a36Sopenharmony_ci}; 310262306a36Sopenharmony_ci 310362306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_tsctr_div2_clk = { 310462306a36Sopenharmony_ci .halt_reg = 0x2d044, 310562306a36Sopenharmony_ci .clkr = { 310662306a36Sopenharmony_ci .enable_reg = 0x2d044, 310762306a36Sopenharmony_ci .enable_mask = BIT(0), 310862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 310962306a36Sopenharmony_ci .name = "gcc_qdss_tsctr_div2_clk", 311062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 311162306a36Sopenharmony_ci &qdss_tsctr_div2_clk_src.hw 311262306a36Sopenharmony_ci }, 311362306a36Sopenharmony_ci .num_parents = 1, 311462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 311562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 311662306a36Sopenharmony_ci }, 311762306a36Sopenharmony_ci }, 311862306a36Sopenharmony_ci}; 311962306a36Sopenharmony_ci 312062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_uniphy_sys_clk_src[] = { 312162306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 312262306a36Sopenharmony_ci { } 312362306a36Sopenharmony_ci}; 312462306a36Sopenharmony_ci 312562306a36Sopenharmony_cistatic struct clk_rcg2 uniphy_sys_clk_src = { 312662306a36Sopenharmony_ci .cmd_rcgr = 0x17090, 312762306a36Sopenharmony_ci .freq_tbl = ftbl_uniphy_sys_clk_src, 312862306a36Sopenharmony_ci .mnd_width = 8, 312962306a36Sopenharmony_ci .hid_width = 5, 313062306a36Sopenharmony_ci .parent_map = gcc_xo_map, 313162306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 313262306a36Sopenharmony_ci .name = "uniphy_sys_clk_src", 313362306a36Sopenharmony_ci .parent_data = gcc_xo_data, 313462306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_data), 313562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 313662306a36Sopenharmony_ci }, 313762306a36Sopenharmony_ci}; 313862306a36Sopenharmony_ci 313962306a36Sopenharmony_cistatic struct clk_rcg2 nss_ts_clk_src = { 314062306a36Sopenharmony_ci .cmd_rcgr = 0x17088, 314162306a36Sopenharmony_ci .freq_tbl = ftbl_uniphy_sys_clk_src, 314262306a36Sopenharmony_ci .mnd_width = 8, 314362306a36Sopenharmony_ci .hid_width = 5, 314462306a36Sopenharmony_ci .parent_map = gcc_xo_map, 314562306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 314662306a36Sopenharmony_ci .name = "nss_ts_clk_src", 314762306a36Sopenharmony_ci .parent_data = gcc_xo_data, 314862306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_data), 314962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 315062306a36Sopenharmony_ci }, 315162306a36Sopenharmony_ci}; 315262306a36Sopenharmony_ci 315362306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_ts_clk = { 315462306a36Sopenharmony_ci .halt_reg = 0x2d078, 315562306a36Sopenharmony_ci .clkr = { 315662306a36Sopenharmony_ci .enable_reg = 0x2d078, 315762306a36Sopenharmony_ci .enable_mask = BIT(0), 315862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 315962306a36Sopenharmony_ci .name = "gcc_qdss_ts_clk", 316062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 316162306a36Sopenharmony_ci &nss_ts_clk_src.clkr.hw 316262306a36Sopenharmony_ci }, 316362306a36Sopenharmony_ci .num_parents = 1, 316462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 316562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 316662306a36Sopenharmony_ci }, 316762306a36Sopenharmony_ci }, 316862306a36Sopenharmony_ci}; 316962306a36Sopenharmony_ci 317062306a36Sopenharmony_cistatic struct clk_fixed_factor qdss_dap_sync_clk_src = { 317162306a36Sopenharmony_ci .mult = 1, 317262306a36Sopenharmony_ci .div = 4, 317362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 317462306a36Sopenharmony_ci .name = "qdss_dap_sync_clk_src", 317562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 317662306a36Sopenharmony_ci &qdss_tsctr_clk_src.clkr.hw 317762306a36Sopenharmony_ci }, 317862306a36Sopenharmony_ci .num_parents = 1, 317962306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 318062306a36Sopenharmony_ci }, 318162306a36Sopenharmony_ci}; 318262306a36Sopenharmony_ci 318362306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_tsctr_div4_clk = { 318462306a36Sopenharmony_ci .halt_reg = 0x2d04c, 318562306a36Sopenharmony_ci .clkr = { 318662306a36Sopenharmony_ci .enable_reg = 0x2d04c, 318762306a36Sopenharmony_ci .enable_mask = BIT(0), 318862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 318962306a36Sopenharmony_ci .name = "gcc_qdss_tsctr_div4_clk", 319062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 319162306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw 319262306a36Sopenharmony_ci }, 319362306a36Sopenharmony_ci .num_parents = 1, 319462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 319562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 319662306a36Sopenharmony_ci }, 319762306a36Sopenharmony_ci }, 319862306a36Sopenharmony_ci}; 319962306a36Sopenharmony_ci 320062306a36Sopenharmony_cistatic struct clk_fixed_factor qdss_tsctr_div8_clk_src = { 320162306a36Sopenharmony_ci .mult = 1, 320262306a36Sopenharmony_ci .div = 8, 320362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 320462306a36Sopenharmony_ci .name = "qdss_tsctr_div8_clk_src", 320562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 320662306a36Sopenharmony_ci &qdss_tsctr_clk_src.clkr.hw 320762306a36Sopenharmony_ci }, 320862306a36Sopenharmony_ci .num_parents = 1, 320962306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 321062306a36Sopenharmony_ci }, 321162306a36Sopenharmony_ci}; 321262306a36Sopenharmony_ci 321362306a36Sopenharmony_cistatic struct clk_branch gcc_nss_ts_clk = { 321462306a36Sopenharmony_ci .halt_reg = 0x17018, 321562306a36Sopenharmony_ci .clkr = { 321662306a36Sopenharmony_ci .enable_reg = 0x17018, 321762306a36Sopenharmony_ci .enable_mask = BIT(0), 321862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 321962306a36Sopenharmony_ci .name = "gcc_nss_ts_clk", 322062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 322162306a36Sopenharmony_ci &nss_ts_clk_src.clkr.hw 322262306a36Sopenharmony_ci }, 322362306a36Sopenharmony_ci .num_parents = 1, 322462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 322562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 322662306a36Sopenharmony_ci }, 322762306a36Sopenharmony_ci }, 322862306a36Sopenharmony_ci}; 322962306a36Sopenharmony_ci 323062306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_tsctr_div8_clk = { 323162306a36Sopenharmony_ci .halt_reg = 0x2d050, 323262306a36Sopenharmony_ci .clkr = { 323362306a36Sopenharmony_ci .enable_reg = 0x2d050, 323462306a36Sopenharmony_ci .enable_mask = BIT(0), 323562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 323662306a36Sopenharmony_ci .name = "gcc_qdss_tsctr_div8_clk", 323762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 323862306a36Sopenharmony_ci &qdss_tsctr_div8_clk_src.hw 323962306a36Sopenharmony_ci }, 324062306a36Sopenharmony_ci .num_parents = 1, 324162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 324262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 324362306a36Sopenharmony_ci }, 324462306a36Sopenharmony_ci }, 324562306a36Sopenharmony_ci}; 324662306a36Sopenharmony_ci 324762306a36Sopenharmony_cistatic struct clk_fixed_factor qdss_tsctr_div16_clk_src = { 324862306a36Sopenharmony_ci .mult = 1, 324962306a36Sopenharmony_ci .div = 16, 325062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 325162306a36Sopenharmony_ci .name = "qdss_tsctr_div16_clk_src", 325262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 325362306a36Sopenharmony_ci &qdss_tsctr_clk_src.clkr.hw 325462306a36Sopenharmony_ci }, 325562306a36Sopenharmony_ci .num_parents = 1, 325662306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 325762306a36Sopenharmony_ci }, 325862306a36Sopenharmony_ci}; 325962306a36Sopenharmony_ci 326062306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_tsctr_div16_clk = { 326162306a36Sopenharmony_ci .halt_reg = 0x2d054, 326262306a36Sopenharmony_ci .clkr = { 326362306a36Sopenharmony_ci .enable_reg = 0x2d054, 326462306a36Sopenharmony_ci .enable_mask = BIT(0), 326562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 326662306a36Sopenharmony_ci .name = "gcc_qdss_tsctr_div16_clk", 326762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 326862306a36Sopenharmony_ci &qdss_tsctr_div16_clk_src.hw 326962306a36Sopenharmony_ci }, 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_q6ss_pclkdbg_clk = { 327862306a36Sopenharmony_ci .halt_reg = 0x25024, 327962306a36Sopenharmony_ci .clkr = { 328062306a36Sopenharmony_ci .enable_reg = 0x25024, 328162306a36Sopenharmony_ci .enable_mask = BIT(0), 328262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 328362306a36Sopenharmony_ci .name = "gcc_q6ss_pclkdbg_clk", 328462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 328562306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw 328662306a36Sopenharmony_ci }, 328762306a36Sopenharmony_ci .num_parents = 1, 328862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 328962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 329062306a36Sopenharmony_ci }, 329162306a36Sopenharmony_ci }, 329262306a36Sopenharmony_ci}; 329362306a36Sopenharmony_ci 329462306a36Sopenharmony_cistatic struct clk_branch gcc_q6ss_trig_clk = { 329562306a36Sopenharmony_ci .halt_reg = 0x25068, 329662306a36Sopenharmony_ci .clkr = { 329762306a36Sopenharmony_ci .enable_reg = 0x25068, 329862306a36Sopenharmony_ci .enable_mask = BIT(0), 329962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 330062306a36Sopenharmony_ci .name = "gcc_q6ss_trig_clk", 330162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 330262306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw 330362306a36Sopenharmony_ci }, 330462306a36Sopenharmony_ci .num_parents = 1, 330562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 330662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 330762306a36Sopenharmony_ci }, 330862306a36Sopenharmony_ci }, 330962306a36Sopenharmony_ci}; 331062306a36Sopenharmony_ci 331162306a36Sopenharmony_cistatic struct clk_branch gcc_wcss_dbg_ifc_apb_clk = { 331262306a36Sopenharmony_ci .halt_reg = 0x25038, 331362306a36Sopenharmony_ci .clkr = { 331462306a36Sopenharmony_ci .enable_reg = 0x25038, 331562306a36Sopenharmony_ci .enable_mask = BIT(0), 331662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 331762306a36Sopenharmony_ci .name = "gcc_wcss_dbg_ifc_apb_clk", 331862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 331962306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw 332062306a36Sopenharmony_ci }, 332162306a36Sopenharmony_ci .num_parents = 1, 332262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 332362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 332462306a36Sopenharmony_ci }, 332562306a36Sopenharmony_ci }, 332662306a36Sopenharmony_ci}; 332762306a36Sopenharmony_ci 332862306a36Sopenharmony_cistatic struct clk_branch gcc_wcss_dbg_ifc_dapbus_clk = { 332962306a36Sopenharmony_ci .halt_reg = 0x25044, 333062306a36Sopenharmony_ci .clkr = { 333162306a36Sopenharmony_ci .enable_reg = 0x25044, 333262306a36Sopenharmony_ci .enable_mask = BIT(0), 333362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 333462306a36Sopenharmony_ci .name = "gcc_wcss_dbg_ifc_dapbus_clk", 333562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 333662306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw 333762306a36Sopenharmony_ci }, 333862306a36Sopenharmony_ci .num_parents = 1, 333962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 334062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 334162306a36Sopenharmony_ci }, 334262306a36Sopenharmony_ci }, 334362306a36Sopenharmony_ci}; 334462306a36Sopenharmony_ci 334562306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_dap_clk = { 334662306a36Sopenharmony_ci .halt_reg = 0x2d058, 334762306a36Sopenharmony_ci .clkr = { 334862306a36Sopenharmony_ci .enable_reg = 0x2d058, 334962306a36Sopenharmony_ci .enable_mask = BIT(0), 335062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 335162306a36Sopenharmony_ci .name = "gcc_qdss_dap_clk", 335262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 335362306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw 335462306a36Sopenharmony_ci }, 335562306a36Sopenharmony_ci .num_parents = 1, 335662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 335762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 335862306a36Sopenharmony_ci }, 335962306a36Sopenharmony_ci }, 336062306a36Sopenharmony_ci}; 336162306a36Sopenharmony_ci 336262306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_apb2jtag_clk = { 336362306a36Sopenharmony_ci .halt_reg = 0x2d05c, 336462306a36Sopenharmony_ci .clkr = { 336562306a36Sopenharmony_ci .enable_reg = 0x2d05c, 336662306a36Sopenharmony_ci .enable_mask = BIT(0), 336762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 336862306a36Sopenharmony_ci .name = "gcc_qdss_apb2jtag_clk", 336962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 337062306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw 337162306a36Sopenharmony_ci }, 337262306a36Sopenharmony_ci .num_parents = 1, 337362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 337462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 337562306a36Sopenharmony_ci }, 337662306a36Sopenharmony_ci }, 337762306a36Sopenharmony_ci}; 337862306a36Sopenharmony_ci 337962306a36Sopenharmony_cistatic struct clk_fixed_factor qdss_tsctr_div3_clk_src = { 338062306a36Sopenharmony_ci .mult = 1, 338162306a36Sopenharmony_ci .div = 3, 338262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 338362306a36Sopenharmony_ci .name = "qdss_tsctr_div3_clk_src", 338462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 338562306a36Sopenharmony_ci &qdss_tsctr_clk_src.clkr.hw 338662306a36Sopenharmony_ci }, 338762306a36Sopenharmony_ci .num_parents = 1, 338862306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 338962306a36Sopenharmony_ci }, 339062306a36Sopenharmony_ci}; 339162306a36Sopenharmony_ci 339262306a36Sopenharmony_cistatic struct clk_branch gcc_qdss_tsctr_div3_clk = { 339362306a36Sopenharmony_ci .halt_reg = 0x2d048, 339462306a36Sopenharmony_ci .clkr = { 339562306a36Sopenharmony_ci .enable_reg = 0x2d048, 339662306a36Sopenharmony_ci .enable_mask = BIT(0), 339762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 339862306a36Sopenharmony_ci .name = "gcc_qdss_tsctr_div3_clk", 339962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 340062306a36Sopenharmony_ci &qdss_tsctr_div3_clk_src.hw 340162306a36Sopenharmony_ci }, 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 const struct freq_tbl ftbl_qpic_io_macro_clk_src[] = { 341062306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 341162306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 341262306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 341362306a36Sopenharmony_ci F(320000000, P_GPLL0, 2.5, 0, 0), 341462306a36Sopenharmony_ci F(400000000, P_GPLL0, 2, 0, 0), 341562306a36Sopenharmony_ci { } 341662306a36Sopenharmony_ci}; 341762306a36Sopenharmony_ci 341862306a36Sopenharmony_cistatic struct clk_rcg2 qpic_io_macro_clk_src = { 341962306a36Sopenharmony_ci .cmd_rcgr = 0x32004, 342062306a36Sopenharmony_ci .freq_tbl = ftbl_qpic_io_macro_clk_src, 342162306a36Sopenharmony_ci .hid_width = 5, 342262306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll2_map, 342362306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 342462306a36Sopenharmony_ci .name = "qpic_io_macro_clk_src", 342562306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll2, 342662306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll2), 342762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 342862306a36Sopenharmony_ci }, 342962306a36Sopenharmony_ci}; 343062306a36Sopenharmony_ci 343162306a36Sopenharmony_cistatic struct clk_branch gcc_qpic_io_macro_clk = { 343262306a36Sopenharmony_ci .halt_reg = 0x3200c, 343362306a36Sopenharmony_ci .clkr = { 343462306a36Sopenharmony_ci .enable_reg = 0x3200c, 343562306a36Sopenharmony_ci .enable_mask = BIT(0), 343662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data){ 343762306a36Sopenharmony_ci .name = "gcc_qpic_io_macro_clk", 343862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]){ 343962306a36Sopenharmony_ci &qpic_io_macro_clk_src.clkr.hw 344062306a36Sopenharmony_ci }, 344162306a36Sopenharmony_ci .num_parents = 1, 344262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 344362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 344462306a36Sopenharmony_ci }, 344562306a36Sopenharmony_ci }, 344662306a36Sopenharmony_ci}; 344762306a36Sopenharmony_ci 344862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_q6_axi_clk_src[] = { 344962306a36Sopenharmony_ci F(533333333, P_GPLL0, 1.5, 0, 0), 345062306a36Sopenharmony_ci { } 345162306a36Sopenharmony_ci}; 345262306a36Sopenharmony_ci 345362306a36Sopenharmony_cistatic struct clk_rcg2 q6_axi_clk_src = { 345462306a36Sopenharmony_ci .cmd_rcgr = 0x25004, 345562306a36Sopenharmony_ci .freq_tbl = ftbl_q6_axi_clk_src, 345662306a36Sopenharmony_ci .hid_width = 5, 345762306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll2_gpll4_pi_sleep_map, 345862306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 345962306a36Sopenharmony_ci .name = "q6_axi_clk_src", 346062306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll2_gpll4_pi_sleep, 346162306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll2_gpll4_pi_sleep), 346262306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 346362306a36Sopenharmony_ci }, 346462306a36Sopenharmony_ci}; 346562306a36Sopenharmony_ci 346662306a36Sopenharmony_cistatic struct clk_branch gcc_q6_axim_clk = { 346762306a36Sopenharmony_ci .halt_reg = 0x2500c, 346862306a36Sopenharmony_ci .clkr = { 346962306a36Sopenharmony_ci .enable_reg = 0x2500c, 347062306a36Sopenharmony_ci .enable_mask = BIT(0), 347162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 347262306a36Sopenharmony_ci .name = "gcc_q6_axim_clk", 347362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 347462306a36Sopenharmony_ci &q6_axi_clk_src.clkr.hw 347562306a36Sopenharmony_ci }, 347662306a36Sopenharmony_ci .num_parents = 1, 347762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 347862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 347962306a36Sopenharmony_ci }, 348062306a36Sopenharmony_ci }, 348162306a36Sopenharmony_ci}; 348262306a36Sopenharmony_ci 348362306a36Sopenharmony_cistatic struct clk_branch gcc_wcss_q6_tbu_clk = { 348462306a36Sopenharmony_ci .halt_reg = 0x12050, 348562306a36Sopenharmony_ci .halt_check = BRANCH_HALT_DELAY, 348662306a36Sopenharmony_ci .clkr = { 348762306a36Sopenharmony_ci .enable_reg = 0xb00c, 348862306a36Sopenharmony_ci .enable_mask = BIT(6), 348962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 349062306a36Sopenharmony_ci .name = "gcc_wcss_q6_tbu_clk", 349162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 349262306a36Sopenharmony_ci &q6_axi_clk_src.clkr.hw 349362306a36Sopenharmony_ci }, 349462306a36Sopenharmony_ci .num_parents = 1, 349562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 349662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 349762306a36Sopenharmony_ci }, 349862306a36Sopenharmony_ci }, 349962306a36Sopenharmony_ci}; 350062306a36Sopenharmony_ci 350162306a36Sopenharmony_cistatic struct clk_branch gcc_mem_noc_q6_axi_clk = { 350262306a36Sopenharmony_ci .halt_reg = 0x19010, 350362306a36Sopenharmony_ci .clkr = { 350462306a36Sopenharmony_ci .enable_reg = 0x19010, 350562306a36Sopenharmony_ci .enable_mask = BIT(0), 350662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 350762306a36Sopenharmony_ci .name = "gcc_mem_noc_q6_axi_clk", 350862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 350962306a36Sopenharmony_ci &q6_axi_clk_src.clkr.hw 351062306a36Sopenharmony_ci }, 351162306a36Sopenharmony_ci .num_parents = 1, 351262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 351362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 351462306a36Sopenharmony_ci }, 351562306a36Sopenharmony_ci }, 351662306a36Sopenharmony_ci}; 351762306a36Sopenharmony_ci 351862306a36Sopenharmony_cistatic const struct freq_tbl ftbl_q6_axim2_clk_src[] = { 351962306a36Sopenharmony_ci F(342857143, P_GPLL4, 3.5, 0, 0), 352062306a36Sopenharmony_ci { } 352162306a36Sopenharmony_ci}; 352262306a36Sopenharmony_ci 352362306a36Sopenharmony_cistatic const struct parent_map gcc_xo_gpll0_gpll4_bias_pll_ubinc_clk_map[] = { 352462306a36Sopenharmony_ci { P_XO, 0 }, 352562306a36Sopenharmony_ci { P_GPLL0, 1 }, 352662306a36Sopenharmony_ci { P_GPLL4, 2 }, 352762306a36Sopenharmony_ci { P_BIAS_PLL_UBI_NC_CLK, 4 }, 352862306a36Sopenharmony_ci}; 352962306a36Sopenharmony_ci 353062306a36Sopenharmony_cistatic struct clk_rcg2 q6_axim2_clk_src = { 353162306a36Sopenharmony_ci .cmd_rcgr = 0x25028, 353262306a36Sopenharmony_ci .freq_tbl = ftbl_q6_axim2_clk_src, 353362306a36Sopenharmony_ci .hid_width = 5, 353462306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll4_bias_pll_ubinc_clk_map, 353562306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 353662306a36Sopenharmony_ci .name = "q6_axim2_clk_src", 353762306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk, 353862306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll4_bias_pll_ubi_nc_clk), 353962306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 354062306a36Sopenharmony_ci }, 354162306a36Sopenharmony_ci}; 354262306a36Sopenharmony_ci 354362306a36Sopenharmony_cistatic const struct freq_tbl ftbl_nssnoc_memnoc_bfdcd_clk_src[] = { 354462306a36Sopenharmony_ci F(533333333, P_GPLL0, 1.5, 0, 0), 354562306a36Sopenharmony_ci { } 354662306a36Sopenharmony_ci}; 354762306a36Sopenharmony_ci 354862306a36Sopenharmony_cistatic struct clk_rcg2 nssnoc_memnoc_bfdcd_clk_src = { 354962306a36Sopenharmony_ci .cmd_rcgr = 0x17004, 355062306a36Sopenharmony_ci .freq_tbl = ftbl_nssnoc_memnoc_bfdcd_clk_src, 355162306a36Sopenharmony_ci .hid_width = 5, 355262306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_aux_gpll2_map, 355362306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 355462306a36Sopenharmony_ci .name = "nssnoc_memnoc_bfdcd_clk_src", 355562306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_aux_gpll2, 355662306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_aux_gpll2), 355762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 355862306a36Sopenharmony_ci }, 355962306a36Sopenharmony_ci}; 356062306a36Sopenharmony_ci 356162306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_memnoc_clk = { 356262306a36Sopenharmony_ci .halt_reg = 0x17024, 356362306a36Sopenharmony_ci .clkr = { 356462306a36Sopenharmony_ci .enable_reg = 0x17024, 356562306a36Sopenharmony_ci .enable_mask = BIT(0), 356662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 356762306a36Sopenharmony_ci .name = "gcc_nssnoc_memnoc_clk", 356862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 356962306a36Sopenharmony_ci &nssnoc_memnoc_bfdcd_clk_src.clkr.hw 357062306a36Sopenharmony_ci }, 357162306a36Sopenharmony_ci .num_parents = 1, 357262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 357362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 357462306a36Sopenharmony_ci }, 357562306a36Sopenharmony_ci }, 357662306a36Sopenharmony_ci}; 357762306a36Sopenharmony_ci 357862306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_mem_noc_1_clk = { 357962306a36Sopenharmony_ci .halt_reg = 0x17084, 358062306a36Sopenharmony_ci .clkr = { 358162306a36Sopenharmony_ci .enable_reg = 0x17084, 358262306a36Sopenharmony_ci .enable_mask = BIT(0), 358362306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 358462306a36Sopenharmony_ci .name = "gcc_nssnoc_mem_noc_1_clk", 358562306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 358662306a36Sopenharmony_ci &nssnoc_memnoc_bfdcd_clk_src.clkr.hw 358762306a36Sopenharmony_ci }, 358862306a36Sopenharmony_ci .num_parents = 1, 358962306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 359062306a36Sopenharmony_ci .ops = &clk_branch2_ops, 359162306a36Sopenharmony_ci }, 359262306a36Sopenharmony_ci }, 359362306a36Sopenharmony_ci}; 359462306a36Sopenharmony_ci 359562306a36Sopenharmony_cistatic struct clk_branch gcc_nss_tbu_clk = { 359662306a36Sopenharmony_ci .halt_reg = 0x12040, 359762306a36Sopenharmony_ci .clkr = { 359862306a36Sopenharmony_ci .enable_reg = 0xb00c, 359962306a36Sopenharmony_ci .enable_mask = BIT(4), 360062306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 360162306a36Sopenharmony_ci .name = "gcc_nss_tbu_clk", 360262306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 360362306a36Sopenharmony_ci &nssnoc_memnoc_bfdcd_clk_src.clkr.hw 360462306a36Sopenharmony_ci }, 360562306a36Sopenharmony_ci .num_parents = 1, 360662306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 360762306a36Sopenharmony_ci .ops = &clk_branch2_ops, 360862306a36Sopenharmony_ci }, 360962306a36Sopenharmony_ci }, 361062306a36Sopenharmony_ci}; 361162306a36Sopenharmony_ci 361262306a36Sopenharmony_cistatic struct clk_branch gcc_mem_noc_nssnoc_clk = { 361362306a36Sopenharmony_ci .halt_reg = 0x19014, 361462306a36Sopenharmony_ci .clkr = { 361562306a36Sopenharmony_ci .enable_reg = 0x19014, 361662306a36Sopenharmony_ci .enable_mask = BIT(0), 361762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 361862306a36Sopenharmony_ci .name = "gcc_mem_noc_nssnoc_clk", 361962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 362062306a36Sopenharmony_ci &nssnoc_memnoc_bfdcd_clk_src.clkr.hw 362162306a36Sopenharmony_ci }, 362262306a36Sopenharmony_ci .num_parents = 1, 362362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 362462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 362562306a36Sopenharmony_ci }, 362662306a36Sopenharmony_ci }, 362762306a36Sopenharmony_ci}; 362862306a36Sopenharmony_ci 362962306a36Sopenharmony_cistatic const struct freq_tbl ftbl_lpass_axim_clk_src[] = { 363062306a36Sopenharmony_ci F(133333333, P_GPLL0, 6, 0, 0), 363162306a36Sopenharmony_ci { } 363262306a36Sopenharmony_ci}; 363362306a36Sopenharmony_ci 363462306a36Sopenharmony_cistatic struct clk_rcg2 lpass_axim_clk_src = { 363562306a36Sopenharmony_ci .cmd_rcgr = 0x2700c, 363662306a36Sopenharmony_ci .freq_tbl = ftbl_lpass_axim_clk_src, 363762306a36Sopenharmony_ci .hid_width = 5, 363862306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 363962306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 364062306a36Sopenharmony_ci .name = "lpass_axim_clk_src", 364162306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 364262306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0), 364362306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 364462306a36Sopenharmony_ci }, 364562306a36Sopenharmony_ci}; 364662306a36Sopenharmony_ci 364762306a36Sopenharmony_cistatic struct clk_rcg2 lpass_sway_clk_src = { 364862306a36Sopenharmony_ci .cmd_rcgr = 0x27004, 364962306a36Sopenharmony_ci .freq_tbl = ftbl_lpass_axim_clk_src, 365062306a36Sopenharmony_ci .hid_width = 5, 365162306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 365262306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 365362306a36Sopenharmony_ci .name = "lpass_sway_clk_src", 365462306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 365562306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0), 365662306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 365762306a36Sopenharmony_ci }, 365862306a36Sopenharmony_ci}; 365962306a36Sopenharmony_ci 366062306a36Sopenharmony_cistatic const struct freq_tbl ftbl_adss_pwm_clk_src[] = { 366162306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 366262306a36Sopenharmony_ci F(100000000, P_GPLL0, 8, 0, 0), 366362306a36Sopenharmony_ci { } 366462306a36Sopenharmony_ci}; 366562306a36Sopenharmony_ci 366662306a36Sopenharmony_cistatic struct clk_rcg2 adss_pwm_clk_src = { 366762306a36Sopenharmony_ci .cmd_rcgr = 0x1c004, 366862306a36Sopenharmony_ci .freq_tbl = ftbl_adss_pwm_clk_src, 366962306a36Sopenharmony_ci .hid_width = 5, 367062306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_map, 367162306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 367262306a36Sopenharmony_ci .name = "adss_pwm_clk_src", 367362306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0, 367462306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0), 367562306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 367662306a36Sopenharmony_ci }, 367762306a36Sopenharmony_ci}; 367862306a36Sopenharmony_ci 367962306a36Sopenharmony_cistatic struct clk_branch gcc_adss_pwm_clk = { 368062306a36Sopenharmony_ci .halt_reg = 0x1c00c, 368162306a36Sopenharmony_ci .clkr = { 368262306a36Sopenharmony_ci .enable_reg = 0x1c00c, 368362306a36Sopenharmony_ci .enable_mask = BIT(0), 368462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 368562306a36Sopenharmony_ci .name = "gcc_adss_pwm_clk", 368662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 368762306a36Sopenharmony_ci &adss_pwm_clk_src.clkr.hw 368862306a36Sopenharmony_ci }, 368962306a36Sopenharmony_ci .num_parents = 1, 369062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 369162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 369262306a36Sopenharmony_ci }, 369362306a36Sopenharmony_ci }, 369462306a36Sopenharmony_ci}; 369562306a36Sopenharmony_ci 369662306a36Sopenharmony_cistatic const struct freq_tbl ftbl_gp1_clk_src[] = { 369762306a36Sopenharmony_ci F(24000000, P_XO, 1, 0, 0), 369862306a36Sopenharmony_ci F(200000000, P_GPLL0, 4, 0, 0), 369962306a36Sopenharmony_ci { } 370062306a36Sopenharmony_ci}; 370162306a36Sopenharmony_ci 370262306a36Sopenharmony_cistatic struct clk_rcg2 gp1_clk_src = { 370362306a36Sopenharmony_ci .cmd_rcgr = 0x8004, 370462306a36Sopenharmony_ci .freq_tbl = ftbl_gp1_clk_src, 370562306a36Sopenharmony_ci .hid_width = 5, 370662306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_sleep_clk_map, 370762306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 370862306a36Sopenharmony_ci .name = "gp1_clk_src", 370962306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_sleep_clk, 371062306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_sleep_clk), 371162306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 371262306a36Sopenharmony_ci }, 371362306a36Sopenharmony_ci}; 371462306a36Sopenharmony_ci 371562306a36Sopenharmony_cistatic struct clk_rcg2 gp2_clk_src = { 371662306a36Sopenharmony_ci .cmd_rcgr = 0x9004, 371762306a36Sopenharmony_ci .freq_tbl = ftbl_gp1_clk_src, 371862306a36Sopenharmony_ci .hid_width = 5, 371962306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_sleep_clk_map, 372062306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 372162306a36Sopenharmony_ci .name = "gp2_clk_src", 372262306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_sleep_clk, 372362306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_sleep_clk), 372462306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 372562306a36Sopenharmony_ci }, 372662306a36Sopenharmony_ci}; 372762306a36Sopenharmony_ci 372862306a36Sopenharmony_cistatic struct clk_rcg2 gp3_clk_src = { 372962306a36Sopenharmony_ci .cmd_rcgr = 0xa004, 373062306a36Sopenharmony_ci .freq_tbl = ftbl_gp1_clk_src, 373162306a36Sopenharmony_ci .hid_width = 5, 373262306a36Sopenharmony_ci .parent_map = gcc_xo_gpll0_gpll0_sleep_clk_map, 373362306a36Sopenharmony_ci .clkr.hw.init = &(const struct clk_init_data) { 373462306a36Sopenharmony_ci .name = "gp3_clk_src", 373562306a36Sopenharmony_ci .parent_data = gcc_xo_gpll0_gpll0_sleep_clk, 373662306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_sleep_clk), 373762306a36Sopenharmony_ci .ops = &clk_rcg2_ops, 373862306a36Sopenharmony_ci }, 373962306a36Sopenharmony_ci}; 374062306a36Sopenharmony_ci 374162306a36Sopenharmony_cistatic struct clk_branch gcc_xo_clk_src = { 374262306a36Sopenharmony_ci .halt_reg = 0x34004, 374362306a36Sopenharmony_ci .clkr = { 374462306a36Sopenharmony_ci .enable_reg = 0x34004, 374562306a36Sopenharmony_ci .enable_mask = BIT(1), 374662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 374762306a36Sopenharmony_ci .name = "gcc_xo_clk_src", 374862306a36Sopenharmony_ci .parent_data = gcc_xo_data, 374962306a36Sopenharmony_ci .num_parents = ARRAY_SIZE(gcc_xo_data), 375062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 375162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 375262306a36Sopenharmony_ci }, 375362306a36Sopenharmony_ci }, 375462306a36Sopenharmony_ci}; 375562306a36Sopenharmony_ci 375662306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_xo_dcd_clk = { 375762306a36Sopenharmony_ci .halt_reg = 0x17074, 375862306a36Sopenharmony_ci .clkr = { 375962306a36Sopenharmony_ci .enable_reg = 0x17074, 376062306a36Sopenharmony_ci .enable_mask = BIT(0), 376162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 376262306a36Sopenharmony_ci .name = "gcc_nssnoc_xo_dcd_clk", 376362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 376462306a36Sopenharmony_ci &gcc_xo_clk_src.clkr.hw 376562306a36Sopenharmony_ci }, 376662306a36Sopenharmony_ci .num_parents = 1, 376762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 376862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 376962306a36Sopenharmony_ci }, 377062306a36Sopenharmony_ci }, 377162306a36Sopenharmony_ci}; 377262306a36Sopenharmony_ci 377362306a36Sopenharmony_cistatic struct clk_branch gcc_xo_clk = { 377462306a36Sopenharmony_ci .halt_reg = 0x34018, 377562306a36Sopenharmony_ci .clkr = { 377662306a36Sopenharmony_ci .enable_reg = 0x34018, 377762306a36Sopenharmony_ci .enable_mask = BIT(0), 377862306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 377962306a36Sopenharmony_ci .name = "gcc_xo_clk", 378062306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 378162306a36Sopenharmony_ci &gcc_xo_clk_src.clkr.hw 378262306a36Sopenharmony_ci }, 378362306a36Sopenharmony_ci .num_parents = 1, 378462306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 378562306a36Sopenharmony_ci .ops = &clk_branch2_ops, 378662306a36Sopenharmony_ci }, 378762306a36Sopenharmony_ci }, 378862306a36Sopenharmony_ci}; 378962306a36Sopenharmony_ci 379062306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy0_sys_clk = { 379162306a36Sopenharmony_ci .halt_reg = 0x17048, 379262306a36Sopenharmony_ci .clkr = { 379362306a36Sopenharmony_ci .enable_reg = 0x17048, 379462306a36Sopenharmony_ci .enable_mask = BIT(0), 379562306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 379662306a36Sopenharmony_ci .name = "gcc_uniphy0_sys_clk", 379762306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 379862306a36Sopenharmony_ci &uniphy_sys_clk_src.clkr.hw 379962306a36Sopenharmony_ci }, 380062306a36Sopenharmony_ci .num_parents = 1, 380162306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 380262306a36Sopenharmony_ci .ops = &clk_branch2_ops, 380362306a36Sopenharmony_ci }, 380462306a36Sopenharmony_ci }, 380562306a36Sopenharmony_ci}; 380662306a36Sopenharmony_ci 380762306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy1_sys_clk = { 380862306a36Sopenharmony_ci .halt_reg = 0x17058, 380962306a36Sopenharmony_ci .clkr = { 381062306a36Sopenharmony_ci .enable_reg = 0x17058, 381162306a36Sopenharmony_ci .enable_mask = BIT(0), 381262306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 381362306a36Sopenharmony_ci .name = "gcc_uniphy1_sys_clk", 381462306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 381562306a36Sopenharmony_ci &uniphy_sys_clk_src.clkr.hw 381662306a36Sopenharmony_ci }, 381762306a36Sopenharmony_ci .num_parents = 1, 381862306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 381962306a36Sopenharmony_ci .ops = &clk_branch2_ops, 382062306a36Sopenharmony_ci }, 382162306a36Sopenharmony_ci }, 382262306a36Sopenharmony_ci}; 382362306a36Sopenharmony_ci 382462306a36Sopenharmony_cistatic struct clk_branch gcc_uniphy2_sys_clk = { 382562306a36Sopenharmony_ci .halt_reg = 0x17068, 382662306a36Sopenharmony_ci .clkr = { 382762306a36Sopenharmony_ci .enable_reg = 0x17068, 382862306a36Sopenharmony_ci .enable_mask = BIT(0), 382962306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 383062306a36Sopenharmony_ci .name = "gcc_uniphy2_sys_clk", 383162306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 383262306a36Sopenharmony_ci &uniphy_sys_clk_src.clkr.hw 383362306a36Sopenharmony_ci }, 383462306a36Sopenharmony_ci .num_parents = 1, 383562306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 383662306a36Sopenharmony_ci .ops = &clk_branch2_ops, 383762306a36Sopenharmony_ci }, 383862306a36Sopenharmony_ci }, 383962306a36Sopenharmony_ci}; 384062306a36Sopenharmony_ci 384162306a36Sopenharmony_cistatic struct clk_branch gcc_cmn_12gpll_sys_clk = { 384262306a36Sopenharmony_ci .halt_reg = 0x3a008, 384362306a36Sopenharmony_ci .clkr = { 384462306a36Sopenharmony_ci .enable_reg = 0x3a008, 384562306a36Sopenharmony_ci .enable_mask = BIT(0), 384662306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 384762306a36Sopenharmony_ci .name = "gcc_cmn_12gpll_sys_clk", 384862306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 384962306a36Sopenharmony_ci &uniphy_sys_clk_src.clkr.hw 385062306a36Sopenharmony_ci }, 385162306a36Sopenharmony_ci .num_parents = 1, 385262306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 385362306a36Sopenharmony_ci .ops = &clk_branch2_ops, 385462306a36Sopenharmony_ci }, 385562306a36Sopenharmony_ci }, 385662306a36Sopenharmony_ci}; 385762306a36Sopenharmony_ci 385862306a36Sopenharmony_cistatic struct clk_fixed_factor gcc_xo_div4_clk_src = { 385962306a36Sopenharmony_ci .mult = 1, 386062306a36Sopenharmony_ci .div = 4, 386162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 386262306a36Sopenharmony_ci .name = "gcc_xo_div4_clk_src", 386362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 386462306a36Sopenharmony_ci &gcc_xo_clk_src.clkr.hw 386562306a36Sopenharmony_ci }, 386662306a36Sopenharmony_ci .num_parents = 1, 386762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 386862306a36Sopenharmony_ci .ops = &clk_fixed_factor_ops, 386962306a36Sopenharmony_ci }, 387062306a36Sopenharmony_ci}; 387162306a36Sopenharmony_ci 387262306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_qosgen_ref_clk = { 387362306a36Sopenharmony_ci .halt_reg = 0x1701c, 387462306a36Sopenharmony_ci .clkr = { 387562306a36Sopenharmony_ci .enable_reg = 0x1701c, 387662306a36Sopenharmony_ci .enable_mask = BIT(0), 387762306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 387862306a36Sopenharmony_ci .name = "gcc_nssnoc_qosgen_ref_clk", 387962306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 388062306a36Sopenharmony_ci &gcc_xo_div4_clk_src.hw 388162306a36Sopenharmony_ci }, 388262306a36Sopenharmony_ci .num_parents = 1, 388362306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 388462306a36Sopenharmony_ci .ops = &clk_branch2_ops, 388562306a36Sopenharmony_ci }, 388662306a36Sopenharmony_ci }, 388762306a36Sopenharmony_ci}; 388862306a36Sopenharmony_ci 388962306a36Sopenharmony_cistatic struct clk_branch gcc_nssnoc_timeout_ref_clk = { 389062306a36Sopenharmony_ci .halt_reg = 0x17020, 389162306a36Sopenharmony_ci .clkr = { 389262306a36Sopenharmony_ci .enable_reg = 0x17020, 389362306a36Sopenharmony_ci .enable_mask = BIT(0), 389462306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 389562306a36Sopenharmony_ci .name = "gcc_nssnoc_timeout_ref_clk", 389662306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 389762306a36Sopenharmony_ci &gcc_xo_div4_clk_src.hw 389862306a36Sopenharmony_ci }, 389962306a36Sopenharmony_ci .num_parents = 1, 390062306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 390162306a36Sopenharmony_ci .ops = &clk_branch2_ops, 390262306a36Sopenharmony_ci }, 390362306a36Sopenharmony_ci }, 390462306a36Sopenharmony_ci}; 390562306a36Sopenharmony_ci 390662306a36Sopenharmony_cistatic struct clk_branch gcc_xo_div4_clk = { 390762306a36Sopenharmony_ci .halt_reg = 0x3401c, 390862306a36Sopenharmony_ci .clkr = { 390962306a36Sopenharmony_ci .enable_reg = 0x3401c, 391062306a36Sopenharmony_ci .enable_mask = BIT(0), 391162306a36Sopenharmony_ci .hw.init = &(const struct clk_init_data) { 391262306a36Sopenharmony_ci .name = "gcc_xo_div4_clk", 391362306a36Sopenharmony_ci .parent_hws = (const struct clk_hw *[]) { 391462306a36Sopenharmony_ci &gcc_xo_div4_clk_src.hw 391562306a36Sopenharmony_ci }, 391662306a36Sopenharmony_ci .num_parents = 1, 391762306a36Sopenharmony_ci .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 391862306a36Sopenharmony_ci .ops = &clk_branch2_ops, 391962306a36Sopenharmony_ci }, 392062306a36Sopenharmony_ci }, 392162306a36Sopenharmony_ci}; 392262306a36Sopenharmony_ci 392362306a36Sopenharmony_cistatic struct clk_hw *gcc_ipq9574_hws[] = { 392462306a36Sopenharmony_ci &gpll0_out_main_div2.hw, 392562306a36Sopenharmony_ci &gcc_xo_div4_clk_src.hw, 392662306a36Sopenharmony_ci &qdss_dap_sync_clk_src.hw, 392762306a36Sopenharmony_ci &qdss_tsctr_div2_clk_src.hw, 392862306a36Sopenharmony_ci &qdss_tsctr_div8_clk_src.hw, 392962306a36Sopenharmony_ci &qdss_tsctr_div16_clk_src.hw, 393062306a36Sopenharmony_ci &qdss_tsctr_div3_clk_src.hw, 393162306a36Sopenharmony_ci &gcc_eud_at_div_clk_src.hw, 393262306a36Sopenharmony_ci}; 393362306a36Sopenharmony_ci 393462306a36Sopenharmony_cistatic struct clk_regmap *gcc_ipq9574_clks[] = { 393562306a36Sopenharmony_ci [GPLL0_MAIN] = &gpll0_main.clkr, 393662306a36Sopenharmony_ci [GPLL0] = &gpll0.clkr, 393762306a36Sopenharmony_ci [GPLL4_MAIN] = &gpll4_main.clkr, 393862306a36Sopenharmony_ci [GPLL4] = &gpll4.clkr, 393962306a36Sopenharmony_ci [GPLL2_MAIN] = &gpll2_main.clkr, 394062306a36Sopenharmony_ci [GPLL2] = &gpll2.clkr, 394162306a36Sopenharmony_ci [GCC_SLEEP_CLK_SRC] = &gcc_sleep_clk_src.clkr, 394262306a36Sopenharmony_ci [APSS_AHB_CLK_SRC] = &apss_ahb_clk_src.clkr, 394362306a36Sopenharmony_ci [APSS_AXI_CLK_SRC] = &apss_axi_clk_src.clkr, 394462306a36Sopenharmony_ci [BLSP1_QUP1_I2C_APPS_CLK_SRC] = &blsp1_qup1_i2c_apps_clk_src.clkr, 394562306a36Sopenharmony_ci [BLSP1_QUP1_SPI_APPS_CLK_SRC] = &blsp1_qup1_spi_apps_clk_src.clkr, 394662306a36Sopenharmony_ci [BLSP1_QUP2_I2C_APPS_CLK_SRC] = &blsp1_qup2_i2c_apps_clk_src.clkr, 394762306a36Sopenharmony_ci [BLSP1_QUP2_SPI_APPS_CLK_SRC] = &blsp1_qup2_spi_apps_clk_src.clkr, 394862306a36Sopenharmony_ci [BLSP1_QUP3_I2C_APPS_CLK_SRC] = &blsp1_qup3_i2c_apps_clk_src.clkr, 394962306a36Sopenharmony_ci [BLSP1_QUP3_SPI_APPS_CLK_SRC] = &blsp1_qup3_spi_apps_clk_src.clkr, 395062306a36Sopenharmony_ci [BLSP1_QUP4_I2C_APPS_CLK_SRC] = &blsp1_qup4_i2c_apps_clk_src.clkr, 395162306a36Sopenharmony_ci [BLSP1_QUP4_SPI_APPS_CLK_SRC] = &blsp1_qup4_spi_apps_clk_src.clkr, 395262306a36Sopenharmony_ci [BLSP1_QUP5_I2C_APPS_CLK_SRC] = &blsp1_qup5_i2c_apps_clk_src.clkr, 395362306a36Sopenharmony_ci [BLSP1_QUP5_SPI_APPS_CLK_SRC] = &blsp1_qup5_spi_apps_clk_src.clkr, 395462306a36Sopenharmony_ci [BLSP1_QUP6_I2C_APPS_CLK_SRC] = &blsp1_qup6_i2c_apps_clk_src.clkr, 395562306a36Sopenharmony_ci [BLSP1_QUP6_SPI_APPS_CLK_SRC] = &blsp1_qup6_spi_apps_clk_src.clkr, 395662306a36Sopenharmony_ci [BLSP1_UART1_APPS_CLK_SRC] = &blsp1_uart1_apps_clk_src.clkr, 395762306a36Sopenharmony_ci [BLSP1_UART2_APPS_CLK_SRC] = &blsp1_uart2_apps_clk_src.clkr, 395862306a36Sopenharmony_ci [BLSP1_UART3_APPS_CLK_SRC] = &blsp1_uart3_apps_clk_src.clkr, 395962306a36Sopenharmony_ci [BLSP1_UART4_APPS_CLK_SRC] = &blsp1_uart4_apps_clk_src.clkr, 396062306a36Sopenharmony_ci [BLSP1_UART5_APPS_CLK_SRC] = &blsp1_uart5_apps_clk_src.clkr, 396162306a36Sopenharmony_ci [BLSP1_UART6_APPS_CLK_SRC] = &blsp1_uart6_apps_clk_src.clkr, 396262306a36Sopenharmony_ci [GCC_APSS_AHB_CLK] = &gcc_apss_ahb_clk.clkr, 396362306a36Sopenharmony_ci [GCC_APSS_AXI_CLK] = &gcc_apss_axi_clk.clkr, 396462306a36Sopenharmony_ci [GCC_BLSP1_QUP1_I2C_APPS_CLK] = &gcc_blsp1_qup1_i2c_apps_clk.clkr, 396562306a36Sopenharmony_ci [GCC_BLSP1_QUP1_SPI_APPS_CLK] = &gcc_blsp1_qup1_spi_apps_clk.clkr, 396662306a36Sopenharmony_ci [GCC_BLSP1_QUP2_I2C_APPS_CLK] = &gcc_blsp1_qup2_i2c_apps_clk.clkr, 396762306a36Sopenharmony_ci [GCC_BLSP1_QUP2_SPI_APPS_CLK] = &gcc_blsp1_qup2_spi_apps_clk.clkr, 396862306a36Sopenharmony_ci [GCC_BLSP1_QUP3_I2C_APPS_CLK] = &gcc_blsp1_qup3_i2c_apps_clk.clkr, 396962306a36Sopenharmony_ci [GCC_BLSP1_QUP3_SPI_APPS_CLK] = &gcc_blsp1_qup3_spi_apps_clk.clkr, 397062306a36Sopenharmony_ci [GCC_BLSP1_QUP4_I2C_APPS_CLK] = &gcc_blsp1_qup4_i2c_apps_clk.clkr, 397162306a36Sopenharmony_ci [GCC_BLSP1_QUP4_SPI_APPS_CLK] = &gcc_blsp1_qup4_spi_apps_clk.clkr, 397262306a36Sopenharmony_ci [GCC_BLSP1_QUP5_I2C_APPS_CLK] = &gcc_blsp1_qup5_i2c_apps_clk.clkr, 397362306a36Sopenharmony_ci [GCC_BLSP1_QUP5_SPI_APPS_CLK] = &gcc_blsp1_qup5_spi_apps_clk.clkr, 397462306a36Sopenharmony_ci [GCC_BLSP1_QUP6_I2C_APPS_CLK] = &gcc_blsp1_qup6_i2c_apps_clk.clkr, 397562306a36Sopenharmony_ci [GCC_BLSP1_QUP6_SPI_APPS_CLK] = &gcc_blsp1_qup6_spi_apps_clk.clkr, 397662306a36Sopenharmony_ci [GCC_BLSP1_UART1_APPS_CLK] = &gcc_blsp1_uart1_apps_clk.clkr, 397762306a36Sopenharmony_ci [GCC_BLSP1_UART2_APPS_CLK] = &gcc_blsp1_uart2_apps_clk.clkr, 397862306a36Sopenharmony_ci [GCC_BLSP1_UART3_APPS_CLK] = &gcc_blsp1_uart3_apps_clk.clkr, 397962306a36Sopenharmony_ci [GCC_BLSP1_UART4_APPS_CLK] = &gcc_blsp1_uart4_apps_clk.clkr, 398062306a36Sopenharmony_ci [GCC_BLSP1_UART5_APPS_CLK] = &gcc_blsp1_uart5_apps_clk.clkr, 398162306a36Sopenharmony_ci [GCC_BLSP1_UART6_APPS_CLK] = &gcc_blsp1_uart6_apps_clk.clkr, 398262306a36Sopenharmony_ci [GCC_CRYPTO_AHB_CLK] = &gcc_crypto_ahb_clk.clkr, 398362306a36Sopenharmony_ci [GCC_CRYPTO_AXI_CLK] = &gcc_crypto_axi_clk.clkr, 398462306a36Sopenharmony_ci [GCC_CRYPTO_CLK] = &gcc_crypto_clk.clkr, 398562306a36Sopenharmony_ci [GCC_CRYPTO_CLK_SRC] = &gcc_crypto_clk_src.clkr, 398662306a36Sopenharmony_ci [PCIE0_AXI_M_CLK_SRC] = &pcie0_axi_m_clk_src.clkr, 398762306a36Sopenharmony_ci [GCC_PCIE0_AXI_M_CLK] = &gcc_pcie0_axi_m_clk.clkr, 398862306a36Sopenharmony_ci [PCIE1_AXI_M_CLK_SRC] = &pcie1_axi_m_clk_src.clkr, 398962306a36Sopenharmony_ci [GCC_PCIE1_AXI_M_CLK] = &gcc_pcie1_axi_m_clk.clkr, 399062306a36Sopenharmony_ci [PCIE2_AXI_M_CLK_SRC] = &pcie2_axi_m_clk_src.clkr, 399162306a36Sopenharmony_ci [GCC_PCIE2_AXI_M_CLK] = &gcc_pcie2_axi_m_clk.clkr, 399262306a36Sopenharmony_ci [PCIE3_AXI_M_CLK_SRC] = &pcie3_axi_m_clk_src.clkr, 399362306a36Sopenharmony_ci [GCC_PCIE3_AXI_M_CLK] = &gcc_pcie3_axi_m_clk.clkr, 399462306a36Sopenharmony_ci [PCIE0_AXI_S_CLK_SRC] = &pcie0_axi_s_clk_src.clkr, 399562306a36Sopenharmony_ci [GCC_PCIE0_AXI_S_BRIDGE_CLK] = &gcc_pcie0_axi_s_bridge_clk.clkr, 399662306a36Sopenharmony_ci [GCC_PCIE0_AXI_S_CLK] = &gcc_pcie0_axi_s_clk.clkr, 399762306a36Sopenharmony_ci [PCIE1_AXI_S_CLK_SRC] = &pcie1_axi_s_clk_src.clkr, 399862306a36Sopenharmony_ci [GCC_PCIE1_AXI_S_BRIDGE_CLK] = &gcc_pcie1_axi_s_bridge_clk.clkr, 399962306a36Sopenharmony_ci [GCC_PCIE1_AXI_S_CLK] = &gcc_pcie1_axi_s_clk.clkr, 400062306a36Sopenharmony_ci [PCIE2_AXI_S_CLK_SRC] = &pcie2_axi_s_clk_src.clkr, 400162306a36Sopenharmony_ci [GCC_PCIE2_AXI_S_BRIDGE_CLK] = &gcc_pcie2_axi_s_bridge_clk.clkr, 400262306a36Sopenharmony_ci [GCC_PCIE2_AXI_S_CLK] = &gcc_pcie2_axi_s_clk.clkr, 400362306a36Sopenharmony_ci [PCIE3_AXI_S_CLK_SRC] = &pcie3_axi_s_clk_src.clkr, 400462306a36Sopenharmony_ci [GCC_PCIE3_AXI_S_BRIDGE_CLK] = &gcc_pcie3_axi_s_bridge_clk.clkr, 400562306a36Sopenharmony_ci [GCC_PCIE3_AXI_S_CLK] = &gcc_pcie3_axi_s_clk.clkr, 400662306a36Sopenharmony_ci [PCIE0_PIPE_CLK_SRC] = &pcie0_pipe_clk_src.clkr, 400762306a36Sopenharmony_ci [PCIE1_PIPE_CLK_SRC] = &pcie1_pipe_clk_src.clkr, 400862306a36Sopenharmony_ci [PCIE2_PIPE_CLK_SRC] = &pcie2_pipe_clk_src.clkr, 400962306a36Sopenharmony_ci [PCIE3_PIPE_CLK_SRC] = &pcie3_pipe_clk_src.clkr, 401062306a36Sopenharmony_ci [PCIE_AUX_CLK_SRC] = &pcie_aux_clk_src.clkr, 401162306a36Sopenharmony_ci [GCC_PCIE0_AUX_CLK] = &gcc_pcie0_aux_clk.clkr, 401262306a36Sopenharmony_ci [GCC_PCIE1_AUX_CLK] = &gcc_pcie1_aux_clk.clkr, 401362306a36Sopenharmony_ci [GCC_PCIE2_AUX_CLK] = &gcc_pcie2_aux_clk.clkr, 401462306a36Sopenharmony_ci [GCC_PCIE3_AUX_CLK] = &gcc_pcie3_aux_clk.clkr, 401562306a36Sopenharmony_ci [PCIE0_RCHNG_CLK_SRC] = &pcie0_rchng_clk_src.clkr, 401662306a36Sopenharmony_ci [GCC_PCIE0_RCHNG_CLK] = &gcc_pcie0_rchng_clk.clkr, 401762306a36Sopenharmony_ci [PCIE1_RCHNG_CLK_SRC] = &pcie1_rchng_clk_src.clkr, 401862306a36Sopenharmony_ci [GCC_PCIE1_RCHNG_CLK] = &gcc_pcie1_rchng_clk.clkr, 401962306a36Sopenharmony_ci [PCIE2_RCHNG_CLK_SRC] = &pcie2_rchng_clk_src.clkr, 402062306a36Sopenharmony_ci [GCC_PCIE2_RCHNG_CLK] = &gcc_pcie2_rchng_clk.clkr, 402162306a36Sopenharmony_ci [PCIE3_RCHNG_CLK_SRC] = &pcie3_rchng_clk_src.clkr, 402262306a36Sopenharmony_ci [GCC_PCIE3_RCHNG_CLK] = &gcc_pcie3_rchng_clk.clkr, 402362306a36Sopenharmony_ci [GCC_PCIE0_AHB_CLK] = &gcc_pcie0_ahb_clk.clkr, 402462306a36Sopenharmony_ci [GCC_PCIE1_AHB_CLK] = &gcc_pcie1_ahb_clk.clkr, 402562306a36Sopenharmony_ci [GCC_PCIE2_AHB_CLK] = &gcc_pcie2_ahb_clk.clkr, 402662306a36Sopenharmony_ci [GCC_PCIE3_AHB_CLK] = &gcc_pcie3_ahb_clk.clkr, 402762306a36Sopenharmony_ci [USB0_AUX_CLK_SRC] = &usb0_aux_clk_src.clkr, 402862306a36Sopenharmony_ci [GCC_USB0_AUX_CLK] = &gcc_usb0_aux_clk.clkr, 402962306a36Sopenharmony_ci [USB0_MASTER_CLK_SRC] = &usb0_master_clk_src.clkr, 403062306a36Sopenharmony_ci [GCC_USB0_MASTER_CLK] = &gcc_usb0_master_clk.clkr, 403162306a36Sopenharmony_ci [GCC_SNOC_USB_CLK] = &gcc_snoc_usb_clk.clkr, 403262306a36Sopenharmony_ci [GCC_ANOC_USB_AXI_CLK] = &gcc_anoc_usb_axi_clk.clkr, 403362306a36Sopenharmony_ci [USB0_MOCK_UTMI_CLK_SRC] = &usb0_mock_utmi_clk_src.clkr, 403462306a36Sopenharmony_ci [USB0_MOCK_UTMI_DIV_CLK_SRC] = &usb0_mock_utmi_div_clk_src.clkr, 403562306a36Sopenharmony_ci [GCC_USB0_MOCK_UTMI_CLK] = &gcc_usb0_mock_utmi_clk.clkr, 403662306a36Sopenharmony_ci [USB0_PIPE_CLK_SRC] = &usb0_pipe_clk_src.clkr, 403762306a36Sopenharmony_ci [GCC_USB0_PHY_CFG_AHB_CLK] = &gcc_usb0_phy_cfg_ahb_clk.clkr, 403862306a36Sopenharmony_ci [GCC_USB0_PIPE_CLK] = &gcc_usb0_pipe_clk.clkr, 403962306a36Sopenharmony_ci [GCC_USB0_SLEEP_CLK] = &gcc_usb0_sleep_clk.clkr, 404062306a36Sopenharmony_ci [SDCC1_APPS_CLK_SRC] = &sdcc1_apps_clk_src.clkr, 404162306a36Sopenharmony_ci [GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr, 404262306a36Sopenharmony_ci [SDCC1_ICE_CORE_CLK_SRC] = &sdcc1_ice_core_clk_src.clkr, 404362306a36Sopenharmony_ci [GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr, 404462306a36Sopenharmony_ci [GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr, 404562306a36Sopenharmony_ci [PCNOC_BFDCD_CLK_SRC] = &pcnoc_bfdcd_clk_src.clkr, 404662306a36Sopenharmony_ci [GCC_NSSCFG_CLK] = &gcc_nsscfg_clk.clkr, 404762306a36Sopenharmony_ci [GCC_NSSNOC_NSSCC_CLK] = &gcc_nssnoc_nsscc_clk.clkr, 404862306a36Sopenharmony_ci [GCC_NSSCC_CLK] = &gcc_nsscc_clk.clkr, 404962306a36Sopenharmony_ci [GCC_NSSNOC_PCNOC_1_CLK] = &gcc_nssnoc_pcnoc_1_clk.clkr, 405062306a36Sopenharmony_ci [GCC_QDSS_DAP_AHB_CLK] = &gcc_qdss_dap_ahb_clk.clkr, 405162306a36Sopenharmony_ci [GCC_QDSS_CFG_AHB_CLK] = &gcc_qdss_cfg_ahb_clk.clkr, 405262306a36Sopenharmony_ci [GCC_QPIC_AHB_CLK] = &gcc_qpic_ahb_clk.clkr, 405362306a36Sopenharmony_ci [GCC_QPIC_CLK] = &gcc_qpic_clk.clkr, 405462306a36Sopenharmony_ci [GCC_BLSP1_AHB_CLK] = &gcc_blsp1_ahb_clk.clkr, 405562306a36Sopenharmony_ci [GCC_MDIO_AHB_CLK] = &gcc_mdio_ahb_clk.clkr, 405662306a36Sopenharmony_ci [GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr, 405762306a36Sopenharmony_ci [GCC_UNIPHY0_AHB_CLK] = &gcc_uniphy0_ahb_clk.clkr, 405862306a36Sopenharmony_ci [GCC_UNIPHY1_AHB_CLK] = &gcc_uniphy1_ahb_clk.clkr, 405962306a36Sopenharmony_ci [GCC_UNIPHY2_AHB_CLK] = &gcc_uniphy2_ahb_clk.clkr, 406062306a36Sopenharmony_ci [GCC_CMN_12GPLL_AHB_CLK] = &gcc_cmn_12gpll_ahb_clk.clkr, 406162306a36Sopenharmony_ci [GCC_CMN_12GPLL_APU_CLK] = &gcc_cmn_12gpll_apu_clk.clkr, 406262306a36Sopenharmony_ci [SYSTEM_NOC_BFDCD_CLK_SRC] = &system_noc_bfdcd_clk_src.clkr, 406362306a36Sopenharmony_ci [GCC_NSSNOC_SNOC_CLK] = &gcc_nssnoc_snoc_clk.clkr, 406462306a36Sopenharmony_ci [GCC_NSSNOC_SNOC_1_CLK] = &gcc_nssnoc_snoc_1_clk.clkr, 406562306a36Sopenharmony_ci [GCC_QDSS_ETR_USB_CLK] = &gcc_qdss_etr_usb_clk.clkr, 406662306a36Sopenharmony_ci [WCSS_AHB_CLK_SRC] = &wcss_ahb_clk_src.clkr, 406762306a36Sopenharmony_ci [GCC_Q6_AHB_CLK] = &gcc_q6_ahb_clk.clkr, 406862306a36Sopenharmony_ci [GCC_Q6_AHB_S_CLK] = &gcc_q6_ahb_s_clk.clkr, 406962306a36Sopenharmony_ci [GCC_WCSS_ECAHB_CLK] = &gcc_wcss_ecahb_clk.clkr, 407062306a36Sopenharmony_ci [GCC_WCSS_ACMT_CLK] = &gcc_wcss_acmt_clk.clkr, 407162306a36Sopenharmony_ci [GCC_SYS_NOC_WCSS_AHB_CLK] = &gcc_sys_noc_wcss_ahb_clk.clkr, 407262306a36Sopenharmony_ci [WCSS_AXI_M_CLK_SRC] = &wcss_axi_m_clk_src.clkr, 407362306a36Sopenharmony_ci [GCC_ANOC_WCSS_AXI_M_CLK] = &gcc_anoc_wcss_axi_m_clk.clkr, 407462306a36Sopenharmony_ci [QDSS_AT_CLK_SRC] = &qdss_at_clk_src.clkr, 407562306a36Sopenharmony_ci [GCC_Q6SS_ATBM_CLK] = &gcc_q6ss_atbm_clk.clkr, 407662306a36Sopenharmony_ci [GCC_WCSS_DBG_IFC_ATB_CLK] = &gcc_wcss_dbg_ifc_atb_clk.clkr, 407762306a36Sopenharmony_ci [GCC_NSSNOC_ATB_CLK] = &gcc_nssnoc_atb_clk.clkr, 407862306a36Sopenharmony_ci [GCC_QDSS_AT_CLK] = &gcc_qdss_at_clk.clkr, 407962306a36Sopenharmony_ci [GCC_SYS_NOC_AT_CLK] = &gcc_sys_noc_at_clk.clkr, 408062306a36Sopenharmony_ci [GCC_PCNOC_AT_CLK] = &gcc_pcnoc_at_clk.clkr, 408162306a36Sopenharmony_ci [GCC_USB0_EUD_AT_CLK] = &gcc_usb0_eud_at_clk.clkr, 408262306a36Sopenharmony_ci [GCC_QDSS_EUD_AT_CLK] = &gcc_qdss_eud_at_clk.clkr, 408362306a36Sopenharmony_ci [QDSS_STM_CLK_SRC] = &qdss_stm_clk_src.clkr, 408462306a36Sopenharmony_ci [GCC_QDSS_STM_CLK] = &gcc_qdss_stm_clk.clkr, 408562306a36Sopenharmony_ci [GCC_SYS_NOC_QDSS_STM_AXI_CLK] = &gcc_sys_noc_qdss_stm_axi_clk.clkr, 408662306a36Sopenharmony_ci [QDSS_TRACECLKIN_CLK_SRC] = &qdss_traceclkin_clk_src.clkr, 408762306a36Sopenharmony_ci [GCC_QDSS_TRACECLKIN_CLK] = &gcc_qdss_traceclkin_clk.clkr, 408862306a36Sopenharmony_ci [QDSS_TSCTR_CLK_SRC] = &qdss_tsctr_clk_src.clkr, 408962306a36Sopenharmony_ci [GCC_Q6_TSCTR_1TO2_CLK] = &gcc_q6_tsctr_1to2_clk.clkr, 409062306a36Sopenharmony_ci [GCC_WCSS_DBG_IFC_NTS_CLK] = &gcc_wcss_dbg_ifc_nts_clk.clkr, 409162306a36Sopenharmony_ci [GCC_QDSS_TSCTR_DIV2_CLK] = &gcc_qdss_tsctr_div2_clk.clkr, 409262306a36Sopenharmony_ci [GCC_QDSS_TS_CLK] = &gcc_qdss_ts_clk.clkr, 409362306a36Sopenharmony_ci [GCC_QDSS_TSCTR_DIV4_CLK] = &gcc_qdss_tsctr_div4_clk.clkr, 409462306a36Sopenharmony_ci [GCC_NSS_TS_CLK] = &gcc_nss_ts_clk.clkr, 409562306a36Sopenharmony_ci [GCC_QDSS_TSCTR_DIV8_CLK] = &gcc_qdss_tsctr_div8_clk.clkr, 409662306a36Sopenharmony_ci [GCC_QDSS_TSCTR_DIV16_CLK] = &gcc_qdss_tsctr_div16_clk.clkr, 409762306a36Sopenharmony_ci [GCC_Q6SS_PCLKDBG_CLK] = &gcc_q6ss_pclkdbg_clk.clkr, 409862306a36Sopenharmony_ci [GCC_Q6SS_TRIG_CLK] = &gcc_q6ss_trig_clk.clkr, 409962306a36Sopenharmony_ci [GCC_WCSS_DBG_IFC_APB_CLK] = &gcc_wcss_dbg_ifc_apb_clk.clkr, 410062306a36Sopenharmony_ci [GCC_WCSS_DBG_IFC_DAPBUS_CLK] = &gcc_wcss_dbg_ifc_dapbus_clk.clkr, 410162306a36Sopenharmony_ci [GCC_QDSS_DAP_CLK] = &gcc_qdss_dap_clk.clkr, 410262306a36Sopenharmony_ci [GCC_QDSS_APB2JTAG_CLK] = &gcc_qdss_apb2jtag_clk.clkr, 410362306a36Sopenharmony_ci [GCC_QDSS_TSCTR_DIV3_CLK] = &gcc_qdss_tsctr_div3_clk.clkr, 410462306a36Sopenharmony_ci [QPIC_IO_MACRO_CLK_SRC] = &qpic_io_macro_clk_src.clkr, 410562306a36Sopenharmony_ci [GCC_QPIC_IO_MACRO_CLK] = &gcc_qpic_io_macro_clk.clkr, 410662306a36Sopenharmony_ci [Q6_AXI_CLK_SRC] = &q6_axi_clk_src.clkr, 410762306a36Sopenharmony_ci [GCC_Q6_AXIM_CLK] = &gcc_q6_axim_clk.clkr, 410862306a36Sopenharmony_ci [GCC_WCSS_Q6_TBU_CLK] = &gcc_wcss_q6_tbu_clk.clkr, 410962306a36Sopenharmony_ci [GCC_MEM_NOC_Q6_AXI_CLK] = &gcc_mem_noc_q6_axi_clk.clkr, 411062306a36Sopenharmony_ci [Q6_AXIM2_CLK_SRC] = &q6_axim2_clk_src.clkr, 411162306a36Sopenharmony_ci [NSSNOC_MEMNOC_BFDCD_CLK_SRC] = &nssnoc_memnoc_bfdcd_clk_src.clkr, 411262306a36Sopenharmony_ci [GCC_NSSNOC_MEMNOC_CLK] = &gcc_nssnoc_memnoc_clk.clkr, 411362306a36Sopenharmony_ci [GCC_NSSNOC_MEM_NOC_1_CLK] = &gcc_nssnoc_mem_noc_1_clk.clkr, 411462306a36Sopenharmony_ci [GCC_NSS_TBU_CLK] = &gcc_nss_tbu_clk.clkr, 411562306a36Sopenharmony_ci [GCC_MEM_NOC_NSSNOC_CLK] = &gcc_mem_noc_nssnoc_clk.clkr, 411662306a36Sopenharmony_ci [LPASS_AXIM_CLK_SRC] = &lpass_axim_clk_src.clkr, 411762306a36Sopenharmony_ci [LPASS_SWAY_CLK_SRC] = &lpass_sway_clk_src.clkr, 411862306a36Sopenharmony_ci [ADSS_PWM_CLK_SRC] = &adss_pwm_clk_src.clkr, 411962306a36Sopenharmony_ci [GCC_ADSS_PWM_CLK] = &gcc_adss_pwm_clk.clkr, 412062306a36Sopenharmony_ci [GP1_CLK_SRC] = &gp1_clk_src.clkr, 412162306a36Sopenharmony_ci [GP2_CLK_SRC] = &gp2_clk_src.clkr, 412262306a36Sopenharmony_ci [GP3_CLK_SRC] = &gp3_clk_src.clkr, 412362306a36Sopenharmony_ci [GCC_XO_CLK_SRC] = &gcc_xo_clk_src.clkr, 412462306a36Sopenharmony_ci [GCC_NSSNOC_XO_DCD_CLK] = &gcc_nssnoc_xo_dcd_clk.clkr, 412562306a36Sopenharmony_ci [GCC_XO_CLK] = &gcc_xo_clk.clkr, 412662306a36Sopenharmony_ci [GCC_NSSNOC_QOSGEN_REF_CLK] = &gcc_nssnoc_qosgen_ref_clk.clkr, 412762306a36Sopenharmony_ci [GCC_NSSNOC_TIMEOUT_REF_CLK] = &gcc_nssnoc_timeout_ref_clk.clkr, 412862306a36Sopenharmony_ci [GCC_XO_DIV4_CLK] = &gcc_xo_div4_clk.clkr, 412962306a36Sopenharmony_ci [GCC_UNIPHY0_SYS_CLK] = &gcc_uniphy0_sys_clk.clkr, 413062306a36Sopenharmony_ci [GCC_UNIPHY1_SYS_CLK] = &gcc_uniphy1_sys_clk.clkr, 413162306a36Sopenharmony_ci [GCC_UNIPHY2_SYS_CLK] = &gcc_uniphy2_sys_clk.clkr, 413262306a36Sopenharmony_ci [GCC_CMN_12GPLL_SYS_CLK] = &gcc_cmn_12gpll_sys_clk.clkr, 413362306a36Sopenharmony_ci [GCC_Q6SS_BOOT_CLK] = &gcc_q6ss_boot_clk.clkr, 413462306a36Sopenharmony_ci [UNIPHY_SYS_CLK_SRC] = &uniphy_sys_clk_src.clkr, 413562306a36Sopenharmony_ci [NSS_TS_CLK_SRC] = &nss_ts_clk_src.clkr, 413662306a36Sopenharmony_ci [GCC_ANOC_PCIE0_1LANE_M_CLK] = &gcc_anoc_pcie0_1lane_m_clk.clkr, 413762306a36Sopenharmony_ci [GCC_ANOC_PCIE1_1LANE_M_CLK] = &gcc_anoc_pcie1_1lane_m_clk.clkr, 413862306a36Sopenharmony_ci [GCC_ANOC_PCIE2_2LANE_M_CLK] = &gcc_anoc_pcie2_2lane_m_clk.clkr, 413962306a36Sopenharmony_ci [GCC_ANOC_PCIE3_2LANE_M_CLK] = &gcc_anoc_pcie3_2lane_m_clk.clkr, 414062306a36Sopenharmony_ci [GCC_SNOC_PCIE0_1LANE_S_CLK] = &gcc_snoc_pcie0_1lane_s_clk.clkr, 414162306a36Sopenharmony_ci [GCC_SNOC_PCIE1_1LANE_S_CLK] = &gcc_snoc_pcie1_1lane_s_clk.clkr, 414262306a36Sopenharmony_ci [GCC_SNOC_PCIE2_2LANE_S_CLK] = &gcc_snoc_pcie2_2lane_s_clk.clkr, 414362306a36Sopenharmony_ci [GCC_SNOC_PCIE3_2LANE_S_CLK] = &gcc_snoc_pcie3_2lane_s_clk.clkr, 414462306a36Sopenharmony_ci}; 414562306a36Sopenharmony_ci 414662306a36Sopenharmony_cistatic const struct qcom_reset_map gcc_ipq9574_resets[] = { 414762306a36Sopenharmony_ci [GCC_ADSS_BCR] = { 0x1c000, 0 }, 414862306a36Sopenharmony_ci [GCC_ANOC0_TBU_BCR] = { 0x1203c, 0 }, 414962306a36Sopenharmony_ci [GCC_ANOC1_TBU_BCR] = { 0x1204c, 0 }, 415062306a36Sopenharmony_ci [GCC_ANOC_BCR] = { 0x2e074, 0 }, 415162306a36Sopenharmony_ci [GCC_APC0_VOLTAGE_DROOP_DETECTOR_BCR] = { 0x38000, 0 }, 415262306a36Sopenharmony_ci [GCC_APSS_TCU_BCR] = { 0x12014, 0 }, 415362306a36Sopenharmony_ci [GCC_BLSP1_BCR] = { 0x01000, 0 }, 415462306a36Sopenharmony_ci [GCC_BLSP1_QUP1_BCR] = { 0x02000, 0 }, 415562306a36Sopenharmony_ci [GCC_BLSP1_QUP2_BCR] = { 0x03000, 0 }, 415662306a36Sopenharmony_ci [GCC_BLSP1_QUP3_BCR] = { 0x04000, 0 }, 415762306a36Sopenharmony_ci [GCC_BLSP1_QUP4_BCR] = { 0x05000, 0 }, 415862306a36Sopenharmony_ci [GCC_BLSP1_QUP5_BCR] = { 0x06000, 0 }, 415962306a36Sopenharmony_ci [GCC_BLSP1_QUP6_BCR] = { 0x07000, 0 }, 416062306a36Sopenharmony_ci [GCC_BLSP1_UART1_BCR] = { 0x02028, 0 }, 416162306a36Sopenharmony_ci [GCC_BLSP1_UART2_BCR] = { 0x03028, 0 }, 416262306a36Sopenharmony_ci [GCC_BLSP1_UART3_BCR] = { 0x04028, 0 }, 416362306a36Sopenharmony_ci [GCC_BLSP1_UART4_BCR] = { 0x05028, 0 }, 416462306a36Sopenharmony_ci [GCC_BLSP1_UART5_BCR] = { 0x06028, 0 }, 416562306a36Sopenharmony_ci [GCC_BLSP1_UART6_BCR] = { 0x07028, 0 }, 416662306a36Sopenharmony_ci [GCC_BOOT_ROM_BCR] = { 0x13028, 0 }, 416762306a36Sopenharmony_ci [GCC_CMN_BLK_BCR] = { 0x3a000, 0 }, 416862306a36Sopenharmony_ci [GCC_CMN_BLK_AHB_ARES] = { 0x3a010, 0 }, 416962306a36Sopenharmony_ci [GCC_CMN_BLK_SYS_ARES] = { 0x3a010, 1 }, 417062306a36Sopenharmony_ci [GCC_CMN_BLK_APU_ARES] = { 0x3a010, 2 }, 417162306a36Sopenharmony_ci [GCC_CRYPTO_BCR] = { 0x16000, 0 }, 417262306a36Sopenharmony_ci [GCC_DCC_BCR] = { 0x35000, 0 }, 417362306a36Sopenharmony_ci [GCC_DDRSS_BCR] = { 0x11000, 0 }, 417462306a36Sopenharmony_ci [GCC_IMEM_BCR] = { 0x0e000, 0 }, 417562306a36Sopenharmony_ci [GCC_LPASS_BCR] = { 0x27000, 0 }, 417662306a36Sopenharmony_ci [GCC_MDIO_BCR] = { 0x1703c, 0 }, 417762306a36Sopenharmony_ci [GCC_MPM_BCR] = { 0x37000, 0 }, 417862306a36Sopenharmony_ci [GCC_MSG_RAM_BCR] = { 0x26000, 0 }, 417962306a36Sopenharmony_ci [GCC_NSS_BCR] = { 0x17000, 0 }, 418062306a36Sopenharmony_ci [GCC_NSS_TBU_BCR] = { 0x12044, 0 }, 418162306a36Sopenharmony_ci [GCC_NSSNOC_MEMNOC_1_ARES] = { 0x17038, 13 }, 418262306a36Sopenharmony_ci [GCC_NSSNOC_PCNOC_1_ARES] = { 0x17038, 12 }, 418362306a36Sopenharmony_ci [GCC_NSSNOC_SNOC_1_ARES] = { 0x17038, 11 }, 418462306a36Sopenharmony_ci [GCC_NSSNOC_XO_DCD_ARES] = { 0x17038, 10 }, 418562306a36Sopenharmony_ci [GCC_NSSNOC_TS_ARES] = { 0x17038, 9 }, 418662306a36Sopenharmony_ci [GCC_NSSCC_ARES] = { 0x17038, 8 }, 418762306a36Sopenharmony_ci [GCC_NSSNOC_NSSCC_ARES] = { 0x17038, 7 }, 418862306a36Sopenharmony_ci [GCC_NSSNOC_ATB_ARES] = { 0x17038, 6 }, 418962306a36Sopenharmony_ci [GCC_NSSNOC_MEMNOC_ARES] = { 0x17038, 5 }, 419062306a36Sopenharmony_ci [GCC_NSSNOC_QOSGEN_REF_ARES] = { 0x17038, 4 }, 419162306a36Sopenharmony_ci [GCC_NSSNOC_SNOC_ARES] = { 0x17038, 3 }, 419262306a36Sopenharmony_ci [GCC_NSSNOC_TIMEOUT_REF_ARES] = { 0x17038, 2 }, 419362306a36Sopenharmony_ci [GCC_NSS_CFG_ARES] = { 0x17038, 1 }, 419462306a36Sopenharmony_ci [GCC_UBI0_DBG_ARES] = { 0x17038, 0 }, 419562306a36Sopenharmony_ci [GCC_PCIE0PHY_PHY_BCR] = { 0x2805c, 0 }, 419662306a36Sopenharmony_ci [GCC_PCIE0_AHB_ARES] = { 0x28058, 7 }, 419762306a36Sopenharmony_ci [GCC_PCIE0_AUX_ARES] = { 0x28058, 6 }, 419862306a36Sopenharmony_ci [GCC_PCIE0_AXI_M_ARES] = { 0x28058, 5 }, 419962306a36Sopenharmony_ci [GCC_PCIE0_AXI_M_STICKY_ARES] = { 0x28058, 4 }, 420062306a36Sopenharmony_ci [GCC_PCIE0_AXI_S_ARES] = { 0x28058, 3 }, 420162306a36Sopenharmony_ci [GCC_PCIE0_AXI_S_STICKY_ARES] = { 0x28058, 2 }, 420262306a36Sopenharmony_ci [GCC_PCIE0_CORE_STICKY_ARES] = { 0x28058, 1 }, 420362306a36Sopenharmony_ci [GCC_PCIE0_PIPE_ARES] = { 0x28058, 0 }, 420462306a36Sopenharmony_ci [GCC_PCIE1_AHB_ARES] = { 0x29058, 7 }, 420562306a36Sopenharmony_ci [GCC_PCIE1_AUX_ARES] = { 0x29058, 6 }, 420662306a36Sopenharmony_ci [GCC_PCIE1_AXI_M_ARES] = { 0x29058, 5 }, 420762306a36Sopenharmony_ci [GCC_PCIE1_AXI_M_STICKY_ARES] = { 0x29058, 4 }, 420862306a36Sopenharmony_ci [GCC_PCIE1_AXI_S_ARES] = { 0x29058, 3 }, 420962306a36Sopenharmony_ci [GCC_PCIE1_AXI_S_STICKY_ARES] = { 0x29058, 2 }, 421062306a36Sopenharmony_ci [GCC_PCIE1_CORE_STICKY_ARES] = { 0x29058, 1 }, 421162306a36Sopenharmony_ci [GCC_PCIE1_PIPE_ARES] = { 0x29058, 0 }, 421262306a36Sopenharmony_ci [GCC_PCIE2_AHB_ARES] = { 0x2a058, 7 }, 421362306a36Sopenharmony_ci [GCC_PCIE2_AUX_ARES] = { 0x2a058, 6 }, 421462306a36Sopenharmony_ci [GCC_PCIE2_AXI_M_ARES] = { 0x2a058, 5 }, 421562306a36Sopenharmony_ci [GCC_PCIE2_AXI_M_STICKY_ARES] = { 0x2a058, 4 }, 421662306a36Sopenharmony_ci [GCC_PCIE2_AXI_S_ARES] = { 0x2a058, 3 }, 421762306a36Sopenharmony_ci [GCC_PCIE2_AXI_S_STICKY_ARES] = { 0x2a058, 2 }, 421862306a36Sopenharmony_ci [GCC_PCIE2_CORE_STICKY_ARES] = { 0x2a058, 1 }, 421962306a36Sopenharmony_ci [GCC_PCIE2_PIPE_ARES] = { 0x2a058, 0 }, 422062306a36Sopenharmony_ci [GCC_PCIE3_AHB_ARES] = { 0x2b058, 7 }, 422162306a36Sopenharmony_ci [GCC_PCIE3_AUX_ARES] = { 0x2b058, 6 }, 422262306a36Sopenharmony_ci [GCC_PCIE3_AXI_M_ARES] = { 0x2b058, 5 }, 422362306a36Sopenharmony_ci [GCC_PCIE3_AXI_M_STICKY_ARES] = { 0x2b058, 4 }, 422462306a36Sopenharmony_ci [GCC_PCIE3_AXI_S_ARES] = { 0x2b058, 3 }, 422562306a36Sopenharmony_ci [GCC_PCIE3_AXI_S_STICKY_ARES] = { 0x2b058, 2 }, 422662306a36Sopenharmony_ci [GCC_PCIE3_CORE_STICKY_ARES] = { 0x2b058, 1 }, 422762306a36Sopenharmony_ci [GCC_PCIE3_PIPE_ARES] = { 0x2b058, 0 }, 422862306a36Sopenharmony_ci [GCC_PCIE0_BCR] = { 0x28000, 0 }, 422962306a36Sopenharmony_ci [GCC_PCIE0_LINK_DOWN_BCR] = { 0x28054, 0 }, 423062306a36Sopenharmony_ci [GCC_PCIE0_PHY_BCR] = { 0x28060, 0 }, 423162306a36Sopenharmony_ci [GCC_PCIE1_BCR] = { 0x29000, 0 }, 423262306a36Sopenharmony_ci [GCC_PCIE1_LINK_DOWN_BCR] = { 0x29054, 0 }, 423362306a36Sopenharmony_ci [GCC_PCIE1_PHY_BCR] = { 0x29060, 0 }, 423462306a36Sopenharmony_ci [GCC_PCIE1PHY_PHY_BCR] = { 0x2905c, 0 }, 423562306a36Sopenharmony_ci [GCC_PCIE2_BCR] = { 0x2a000, 0 }, 423662306a36Sopenharmony_ci [GCC_PCIE2_LINK_DOWN_BCR] = { 0x2a054, 0 }, 423762306a36Sopenharmony_ci [GCC_PCIE2_PHY_BCR] = { 0x2a060, 0 }, 423862306a36Sopenharmony_ci [GCC_PCIE2PHY_PHY_BCR] = { 0x2a05c, 0 }, 423962306a36Sopenharmony_ci [GCC_PCIE3_BCR] = { 0x2b000, 0 }, 424062306a36Sopenharmony_ci [GCC_PCIE3_LINK_DOWN_BCR] = { 0x2b054, 0 }, 424162306a36Sopenharmony_ci [GCC_PCIE3PHY_PHY_BCR] = { 0x2b05c, 0 }, 424262306a36Sopenharmony_ci [GCC_PCIE3_PHY_BCR] = { 0x2b060, 0 }, 424362306a36Sopenharmony_ci [GCC_PCNOC_BCR] = { 0x31000, 0 }, 424462306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT0_BCR] = { 0x31030, 0 }, 424562306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT1_BCR] = { 0x31038, 0 }, 424662306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT2_BCR] = { 0x31040, 0 }, 424762306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT3_BCR] = { 0x31048, 0 }, 424862306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT4_BCR] = { 0x31050, 0 }, 424962306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT5_BCR] = { 0x31058, 0 }, 425062306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT6_BCR] = { 0x31060, 0 }, 425162306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT7_BCR] = { 0x31068, 0 }, 425262306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT8_BCR] = { 0x31070, 0 }, 425362306a36Sopenharmony_ci [GCC_PCNOC_BUS_TIMEOUT9_BCR] = { 0x31078, 0 }, 425462306a36Sopenharmony_ci [GCC_PCNOC_TBU_BCR] = { 0x12034, 0 }, 425562306a36Sopenharmony_ci [GCC_PRNG_BCR] = { 0x13020, 0 }, 425662306a36Sopenharmony_ci [GCC_Q6SS_DBG_ARES] = { 0x2506c, 4 }, 425762306a36Sopenharmony_ci [GCC_Q6_AHB_ARES] = { 0x2506c, 3 }, 425862306a36Sopenharmony_ci [GCC_Q6_AHB_S_ARES] = { 0x2506c, 2 }, 425962306a36Sopenharmony_ci [GCC_Q6_AXIM2_ARES] = { 0x2506c, 1 }, 426062306a36Sopenharmony_ci [GCC_Q6_AXIM_ARES] = { 0x2506c, 0 }, 426162306a36Sopenharmony_ci [GCC_QDSS_BCR] = { 0x2d000, 0 }, 426262306a36Sopenharmony_ci [GCC_QPIC_BCR] = { 0x32000, 0 }, 426362306a36Sopenharmony_ci [GCC_QPIC_AHB_ARES] = { 0x3201c, 1 }, 426462306a36Sopenharmony_ci [GCC_QPIC_ARES] = { 0x3201c, 0 }, 426562306a36Sopenharmony_ci [GCC_QUSB2_0_PHY_BCR] = { 0x2c068, 0 }, 426662306a36Sopenharmony_ci [GCC_RBCPR_BCR] = { 0x39000, 0 }, 426762306a36Sopenharmony_ci [GCC_RBCPR_MX_BCR] = { 0x39014, 0 }, 426862306a36Sopenharmony_ci [GCC_SDCC_BCR] = { 0x33000, 0 }, 426962306a36Sopenharmony_ci [GCC_SEC_CTRL_BCR] = { 0x1a000, 0 }, 427062306a36Sopenharmony_ci [GCC_SMMU_CFG_BCR] = { 0x1202c, 0 }, 427162306a36Sopenharmony_ci [GCC_SNOC_BCR] = { 0x2e000, 0 }, 427262306a36Sopenharmony_ci [GCC_SPDM_BCR] = { 0x36000, 0 }, 427362306a36Sopenharmony_ci [GCC_TCSR_BCR] = { 0x3d000, 0 }, 427462306a36Sopenharmony_ci [GCC_TLMM_BCR] = { 0x3e000, 0 }, 427562306a36Sopenharmony_ci [GCC_TME_BCR] = { 0x10000, 0 }, 427662306a36Sopenharmony_ci [GCC_UNIPHY0_BCR] = { 0x17044, 0 }, 427762306a36Sopenharmony_ci [GCC_UNIPHY0_SYS_RESET] = { 0x17050, 0 }, 427862306a36Sopenharmony_ci [GCC_UNIPHY0_AHB_RESET] = { 0x17050, 1 }, 427962306a36Sopenharmony_ci [GCC_UNIPHY0_XPCS_RESET] = { 0x17050, 2 }, 428062306a36Sopenharmony_ci [GCC_UNIPHY1_SYS_RESET] = { 0x17060, 0 }, 428162306a36Sopenharmony_ci [GCC_UNIPHY1_AHB_RESET] = { 0x17060, 1 }, 428262306a36Sopenharmony_ci [GCC_UNIPHY1_XPCS_RESET] = { 0x17060, 2 }, 428362306a36Sopenharmony_ci [GCC_UNIPHY2_SYS_RESET] = { 0x17070, 0 }, 428462306a36Sopenharmony_ci [GCC_UNIPHY2_AHB_RESET] = { 0x17070, 1 }, 428562306a36Sopenharmony_ci [GCC_UNIPHY2_XPCS_RESET] = { 0x17070, 2 }, 428662306a36Sopenharmony_ci [GCC_UNIPHY1_BCR] = { 0x17054, 0 }, 428762306a36Sopenharmony_ci [GCC_UNIPHY2_BCR] = { 0x17064, 0 }, 428862306a36Sopenharmony_ci [GCC_USB0_PHY_BCR] = { 0x2c06c, 0 }, 428962306a36Sopenharmony_ci [GCC_USB3PHY_0_PHY_BCR] = { 0x2c070, 0 }, 429062306a36Sopenharmony_ci [GCC_USB_BCR] = { 0x2c000, 0 }, 429162306a36Sopenharmony_ci [GCC_USB_MISC_RESET] = { 0x2c064, 0 }, 429262306a36Sopenharmony_ci [GCC_WCSSAON_RESET] = { 0x25074, 0 }, 429362306a36Sopenharmony_ci [GCC_WCSS_ACMT_ARES] = { 0x25070, 5 }, 429462306a36Sopenharmony_ci [GCC_WCSS_AHB_S_ARES] = { 0x25070, 4 }, 429562306a36Sopenharmony_ci [GCC_WCSS_AXI_M_ARES] = { 0x25070, 3 }, 429662306a36Sopenharmony_ci [GCC_WCSS_BCR] = { 0x18004, 0 }, 429762306a36Sopenharmony_ci [GCC_WCSS_DBG_ARES] = { 0x25070, 2 }, 429862306a36Sopenharmony_ci [GCC_WCSS_DBG_BDG_ARES] = { 0x25070, 1 }, 429962306a36Sopenharmony_ci [GCC_WCSS_ECAHB_ARES] = { 0x25070, 0 }, 430062306a36Sopenharmony_ci [GCC_WCSS_Q6_BCR] = { 0x18000, 0 }, 430162306a36Sopenharmony_ci [GCC_WCSS_Q6_TBU_BCR] = { 0x12054, 0 }, 430262306a36Sopenharmony_ci}; 430362306a36Sopenharmony_ci 430462306a36Sopenharmony_cistatic const struct of_device_id gcc_ipq9574_match_table[] = { 430562306a36Sopenharmony_ci { .compatible = "qcom,ipq9574-gcc" }, 430662306a36Sopenharmony_ci { } 430762306a36Sopenharmony_ci}; 430862306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_ipq9574_match_table); 430962306a36Sopenharmony_ci 431062306a36Sopenharmony_cistatic const struct regmap_config gcc_ipq9574_regmap_config = { 431162306a36Sopenharmony_ci .reg_bits = 32, 431262306a36Sopenharmony_ci .reg_stride = 4, 431362306a36Sopenharmony_ci .val_bits = 32, 431462306a36Sopenharmony_ci .max_register = 0x7fffc, 431562306a36Sopenharmony_ci .fast_io = true, 431662306a36Sopenharmony_ci}; 431762306a36Sopenharmony_ci 431862306a36Sopenharmony_cistatic const struct qcom_cc_desc gcc_ipq9574_desc = { 431962306a36Sopenharmony_ci .config = &gcc_ipq9574_regmap_config, 432062306a36Sopenharmony_ci .clks = gcc_ipq9574_clks, 432162306a36Sopenharmony_ci .num_clks = ARRAY_SIZE(gcc_ipq9574_clks), 432262306a36Sopenharmony_ci .resets = gcc_ipq9574_resets, 432362306a36Sopenharmony_ci .num_resets = ARRAY_SIZE(gcc_ipq9574_resets), 432462306a36Sopenharmony_ci .clk_hws = gcc_ipq9574_hws, 432562306a36Sopenharmony_ci .num_clk_hws = ARRAY_SIZE(gcc_ipq9574_hws), 432662306a36Sopenharmony_ci}; 432762306a36Sopenharmony_ci 432862306a36Sopenharmony_cistatic int gcc_ipq9574_probe(struct platform_device *pdev) 432962306a36Sopenharmony_ci{ 433062306a36Sopenharmony_ci return qcom_cc_probe(pdev, &gcc_ipq9574_desc); 433162306a36Sopenharmony_ci} 433262306a36Sopenharmony_ci 433362306a36Sopenharmony_cistatic struct platform_driver gcc_ipq9574_driver = { 433462306a36Sopenharmony_ci .probe = gcc_ipq9574_probe, 433562306a36Sopenharmony_ci .driver = { 433662306a36Sopenharmony_ci .name = "qcom,gcc-ipq9574", 433762306a36Sopenharmony_ci .of_match_table = gcc_ipq9574_match_table, 433862306a36Sopenharmony_ci }, 433962306a36Sopenharmony_ci}; 434062306a36Sopenharmony_ci 434162306a36Sopenharmony_cistatic int __init gcc_ipq9574_init(void) 434262306a36Sopenharmony_ci{ 434362306a36Sopenharmony_ci return platform_driver_register(&gcc_ipq9574_driver); 434462306a36Sopenharmony_ci} 434562306a36Sopenharmony_cicore_initcall(gcc_ipq9574_init); 434662306a36Sopenharmony_ci 434762306a36Sopenharmony_cistatic void __exit gcc_ipq9574_exit(void) 434862306a36Sopenharmony_ci{ 434962306a36Sopenharmony_ci platform_driver_unregister(&gcc_ipq9574_driver); 435062306a36Sopenharmony_ci} 435162306a36Sopenharmony_cimodule_exit(gcc_ipq9574_exit); 435262306a36Sopenharmony_ci 435362306a36Sopenharmony_ciMODULE_DESCRIPTION("Qualcomm Technologies, Inc. GCC IPQ9574 Driver"); 435462306a36Sopenharmony_ciMODULE_LICENSE("GPL"); 4355