Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/drivers/clk/qcom/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 89 kB image not shown  

Quellcode-Bibliothek gcc-ipq5424.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2018,2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
 */


#include <linux/clk-provider.h>
#include <linux/interconnect-provider.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>

#include <dt-bindings/clock/qcom,ipq5424-gcc.h>
#include <dt-bindings/interconnect/qcom,ipq5424.h>
#include <dt-bindings/reset/qcom,ipq5424-gcc.h>

#include "clk-alpha-pll.h"
#include "clk-branch.h"
#include "clk-rcg.h"
#include "clk-regmap.h"
#include "clk-regmap-divider.h"
#include "clk-regmap-mux.h"
#include "clk-regmap-phy-mux.h"
#include "common.h"
#include "reset.h"

enum {
 DT_XO,
 DT_SLEEP_CLK,
 DT_PCIE30_PHY0_PIPE_CLK,
 DT_PCIE30_PHY1_PIPE_CLK,
 DT_PCIE30_PHY2_PIPE_CLK,
 DT_PCIE30_PHY3_PIPE_CLK,
 DT_USB_PCIE_WRAPPER_PIPE_CLK,
};

enum {
 P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC,
 P_GPLL0_OUT_AUX,
 P_GPLL0_OUT_MAIN,
 P_GPLL2_OUT_AUX,
 P_GPLL2_OUT_MAIN,
 P_GPLL4_OUT_AUX,
 P_GPLL4_OUT_MAIN,
 P_SLEEP_CLK,
 P_XO,
 P_USB3PHY_0_PIPE,
};

static const struct clk_parent_data gcc_parent_data_xo = { .index = DT_XO };

static struct clk_alpha_pll gpll0 = {
 .offset = 0x20000,
 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
 .clkr = {
  .enable_reg = 0xb000,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gpll0",
   .parent_data = &gcc_parent_data_xo,
   .num_parents = 1,
   .ops = &clk_alpha_pll_ops,
  },
 },
};

static struct clk_fixed_factor gpll0_div2 = {
 .mult = 1,
 .div = 2,
 .hw.init = &(const struct clk_init_data) {
  .name = "gpll0_div2",
  .parent_hws = (const struct clk_hw *[]) {
   &gpll0.clkr.hw
  },
  .num_parents = 1,
  .ops = &clk_fixed_factor_ops,
 },
};

static struct clk_alpha_pll gpll2 = {
 .offset = 0x21000,
 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_NSS_HUAYRA],
 .clkr = {
  .enable_reg = 0xb000,
  .enable_mask = BIT(1),
  .hw.init = &(const struct clk_init_data) {
   .name = "gpll2",
   .parent_data = &gcc_parent_data_xo,
   .num_parents = 1,
   .ops = &clk_alpha_pll_ops,
  },
 },
};

static const struct clk_div_table post_div_table_gpll2_out_main[] = {
 { 0x1, 2 },
 { }
};

static struct clk_alpha_pll_postdiv gpll2_out_main = {
 .offset = 0x21000,
 .post_div_table = post_div_table_gpll2_out_main,
 .num_post_div = ARRAY_SIZE(post_div_table_gpll2_out_main),
 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_NSS_HUAYRA],
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gpll2_out_main",
  .parent_hws = (const struct clk_hw*[]) {
   &gpll2.clkr.hw,
  },
  .num_parents = 1,
  .ops = &clk_alpha_pll_postdiv_ro_ops,
 },
};

static struct clk_alpha_pll gpll4 = {
 .offset = 0x22000,
 .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
 .clkr = {
  .enable_reg = 0xb000,
  .enable_mask = BIT(2),
  .hw.init = &(const struct clk_init_data) {
   .name = "gpll4",
   .parent_data = &gcc_parent_data_xo,
   .num_parents = 1,
   .ops = &clk_alpha_pll_ops,
   /*
 * There are no consumers for this GPLL in kernel yet,
 * (will be added soon), so the clock framework
 * disables this source. But some of the clocks
 * initialized by boot loaders uses this source. So we
 * need to keep this clock ON. Add the
 * CLK_IGNORE_UNUSED flag so the clock will not be
 * disabled. Once the consumer in kernel is added, we
 * can get rid of this flag.
 */

   .flags = CLK_IGNORE_UNUSED,
  },
 },
};

static const struct parent_map gcc_parent_map_xo[] = {
 { P_XO, 0 },
};

static const struct parent_map gcc_parent_map_0[] = {
 { P_XO, 0 },
 { P_GPLL0_OUT_MAIN, 1 },
 { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 },
};

static const struct clk_parent_data gcc_parent_data_0[] = {
 { .index = DT_XO },
 { .hw = &gpll0.clkr.hw },
 { .hw = &gpll0_div2.hw },
};

static const struct parent_map gcc_parent_map_1[] = {
 { P_XO, 0 },
 { P_GPLL0_OUT_MAIN, 1 },
};

static const struct clk_parent_data gcc_parent_data_1[] = {
 { .index = DT_XO },
 { .hw = &gpll0.clkr.hw },
};

static const struct parent_map gcc_parent_map_2[] = {
 { P_XO, 0 },
 { P_GPLL0_OUT_MAIN, 1 },
 { P_GPLL4_OUT_MAIN, 2 },
};

static const struct clk_parent_data gcc_parent_data_2[] = {
 { .index = DT_XO },
 { .hw = &gpll0.clkr.hw },
 { .hw = &gpll4.clkr.hw },
};

static const struct parent_map gcc_parent_map_3[] = {
 { P_XO, 0 },
 { P_GPLL4_OUT_MAIN, 1 },
 { P_GPLL0_OUT_AUX, 2 },
 { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 },
};

static const struct clk_parent_data gcc_parent_data_3[] = {
 { .index = DT_XO },
 { .hw = &gpll4.clkr.hw },
 { .hw = &gpll0.clkr.hw },
 { .hw = &gpll0_div2.hw },
};

static const struct parent_map gcc_parent_map_4[] = {
 { P_XO, 0 },
};

static const struct clk_parent_data gcc_parent_data_4[] = {
 { .index = DT_XO },
};

static const struct parent_map gcc_parent_map_5[] = {
 { P_XO, 0 },
 { P_GPLL4_OUT_AUX, 1 },
 { P_GPLL0_OUT_MAIN, 3 },
 { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 },
};

static const struct clk_parent_data gcc_parent_data_5[] = {
 { .index = DT_XO },
 { .hw = &gpll4.clkr.hw },
 { .hw = &gpll0.clkr.hw },
 { .hw = &gpll0_div2.hw },
};

static const struct parent_map gcc_parent_map_6[] = {
 { P_SLEEP_CLK, 6 },
};

static const struct clk_parent_data gcc_parent_data_6[] = {
 { .index = DT_SLEEP_CLK },
};

static const struct parent_map gcc_parent_map_7[] = {
 { P_XO, 0 },
 { P_GPLL0_OUT_MAIN, 1 },
 { P_GPLL0_OUT_AUX, 2 },
 { P_SLEEP_CLK, 6 },
};

static const struct clk_parent_data gcc_parent_data_7[] = {
 { .index = DT_XO },
 { .hw = &gpll0.clkr.hw },
 { .hw = &gpll0.clkr.hw },
 { .index = DT_SLEEP_CLK },
};

static const struct parent_map gcc_parent_map_8[] = {
 { P_XO, 0 },
 { P_GPLL0_OUT_MAIN, 1 },
 { P_GPLL2_OUT_MAIN, 2 },
 { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 },
};

static const struct clk_parent_data gcc_parent_data_8[] = {
 { .index = DT_XO },
 { .hw = &gpll0.clkr.hw },
 { .hw = &gpll2_out_main.clkr.hw },
 { .hw = &gpll0_div2.hw },
};

static const struct parent_map gcc_parent_map_9[] = {
 { P_XO, 0 },
 { P_GPLL0_OUT_MAIN, 1 },
 { P_GPLL4_OUT_MAIN, 2 },
 { P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 4 },
};

static const struct clk_parent_data gcc_parent_data_9[] = {
 { .index = DT_XO },
 { .hw = &gpll0.clkr.hw },
 { .hw = &gpll4.clkr.hw },
 { .hw = &gpll0_div2.hw },
};

static const struct parent_map gcc_parent_map_10[] = {
 { P_XO, 0 },
 { P_GPLL0_OUT_AUX, 2 },
 { P_SLEEP_CLK, 6 },
};

static const struct clk_parent_data gcc_parent_data_10[] = {
 { .index = DT_XO },
 { .hw = &gpll0.clkr.hw },
 { .index = DT_SLEEP_CLK },
};

static const struct parent_map gcc_parent_map_11[] = {
 { P_XO, 0 },
 { P_GPLL0_OUT_MAIN, 1 },
 { P_GPLL2_OUT_AUX, 2 },
};

static const struct clk_parent_data gcc_parent_data_11[] = {
 { .index = DT_XO },
 { .hw = &gpll0.clkr.hw },
 { .hw = &gpll2.clkr.hw },
};

static const struct freq_tbl ftbl_gcc_adss_pwm_clk_src[] = {
 F(24000000, P_XO, 1, 0, 0),
 F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
 { }
};

static struct clk_rcg2 gcc_adss_pwm_clk_src = {
 .cmd_rcgr = 0x1c004,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_1,
 .freq_tbl = ftbl_gcc_adss_pwm_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_adss_pwm_clk_src",
  .parent_data = gcc_parent_data_1,
  .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_nss_ts_clk_src[] = {
 F(24000000, P_XO, 1, 0, 0),
 { }
};

static struct clk_rcg2 gcc_xo_clk_src = {
 .cmd_rcgr = 0x34004,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_xo,
 .freq_tbl = ftbl_gcc_nss_ts_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_xo_clk_src",
  .parent_data = &gcc_parent_data_xo,
  .num_parents = 1,
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_branch gcc_xo_clk = {
 .halt_reg = 0x34018,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x34018,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_xo_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_xo_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_fixed_factor gcc_xo_div4_clk_src = {
 .mult = 1,
 .div = 4,
 .hw.init = &(const struct clk_init_data) {
  .name = "gcc_xo_div4_clk_src",
  .parent_hws = (const struct clk_hw *[]) {
   &gcc_xo_clk_src.clkr.hw
  },
  .num_parents = 1,
  .flags = CLK_SET_RATE_PARENT,
  .ops = &clk_fixed_factor_ops,
 },
};

static struct clk_rcg2 gcc_nss_ts_clk_src = {
 .cmd_rcgr = 0x17088,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_4,
 .freq_tbl = ftbl_gcc_nss_ts_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_nss_ts_clk_src",
  .parent_data = gcc_parent_data_4,
  .num_parents = ARRAY_SIZE(gcc_parent_data_4),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_pcie0_axi_m_clk_src[] = {
 F(240000000, P_GPLL4_OUT_MAIN, 5, 0, 0),
 { }
};

static struct clk_rcg2 gcc_pcie0_axi_m_clk_src = {
 .cmd_rcgr = 0x28018,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_2,
 .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie0_axi_m_clk_src",
  .parent_data = gcc_parent_data_2,
  .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie0_axi_s_clk_src = {
 .cmd_rcgr = 0x28020,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_2,
 .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie0_axi_s_clk_src",
  .parent_data = gcc_parent_data_2,
  .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie1_axi_m_clk_src = {
 .cmd_rcgr = 0x29018,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_2,
 .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie1_axi_m_clk_src",
  .parent_data = gcc_parent_data_2,
  .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie1_axi_s_clk_src = {
 .cmd_rcgr = 0x29020,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_2,
 .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie1_axi_s_clk_src",
  .parent_data = gcc_parent_data_2,
  .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_pcie2_axi_m_clk_src[] = {
 F(266666667, P_GPLL4_OUT_MAIN, 4.5, 0, 0),
 { }
};

static struct clk_rcg2 gcc_pcie2_axi_m_clk_src = {
 .cmd_rcgr = 0x2a018,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_2,
 .freq_tbl = ftbl_gcc_pcie2_axi_m_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie2_axi_m_clk_src",
  .parent_data = gcc_parent_data_2,
  .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie2_axi_s_clk_src = {
 .cmd_rcgr = 0x2a020,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_2,
 .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie2_axi_s_clk_src",
  .parent_data = gcc_parent_data_2,
  .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie3_axi_m_clk_src = {
 .cmd_rcgr = 0x2b018,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_2,
 .freq_tbl = ftbl_gcc_pcie2_axi_m_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie3_axi_m_clk_src",
  .parent_data = gcc_parent_data_2,
  .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie3_axi_s_clk_src = {
 .cmd_rcgr = 0x2b020,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_2,
 .freq_tbl = ftbl_gcc_pcie0_axi_m_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie3_axi_s_clk_src",
  .parent_data = gcc_parent_data_2,
  .num_parents = ARRAY_SIZE(gcc_parent_data_2),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_pcie_aux_clk_src[] = {
 F(20000000, P_GPLL0_OUT_MAIN, 10, 1, 4),
 { }
};

static struct clk_rcg2 gcc_pcie_aux_clk_src = {
 .cmd_rcgr = 0x28004,
 .mnd_width = 16,
 .hid_width = 5,
 .parent_map = gcc_parent_map_7,
 .freq_tbl = ftbl_gcc_pcie_aux_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie_aux_clk_src",
  .parent_data = gcc_parent_data_7,
  .num_parents = ARRAY_SIZE(gcc_parent_data_7),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_qupv3_i2c0_clk_src[] = {
 F(4800000, P_XO, 5, 0, 0),
 F(9600000, P_XO, 2.5, 0, 0),
 F(24000000, P_XO, 1, 0, 0),
 F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
 F(64000000, P_GPLL0_OUT_MAIN, 12.5, 0, 0),
 { }
};

static struct clk_rcg2 gcc_qupv3_i2c0_clk_src = {
 .cmd_rcgr = 0x2018,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_0,
 .freq_tbl = ftbl_gcc_qupv3_i2c0_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qupv3_i2c0_clk_src",
  .parent_data = gcc_parent_data_0,
  .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_qupv3_i2c1_clk_src = {
 .cmd_rcgr = 0x3018,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_0,
 .freq_tbl = ftbl_gcc_qupv3_i2c0_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qupv3_i2c1_clk_src",
  .parent_data = gcc_parent_data_0,
  .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_qupv3_spi0_clk_src[] = {
 F(960000, P_XO, 10, 2, 5),
 F(4800000, P_XO, 5, 0, 0),
 F(9600000, P_XO, 2, 4, 5),
 F(16000000, P_GPLL0_OUT_MAIN, 10, 1, 5),
 F(24000000, P_XO, 1, 0, 0),
 F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
 F(32000000, P_GPLL0_OUT_MAIN, 10, 2, 5),
 F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
 { }
};

static struct clk_rcg2 gcc_qupv3_spi0_clk_src = {
 .cmd_rcgr = 0x4004,
 .mnd_width = 8,
 .hid_width = 5,
 .parent_map = gcc_parent_map_0,
 .freq_tbl = ftbl_gcc_qupv3_spi0_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qupv3_spi0_clk_src",
  .parent_data = gcc_parent_data_0,
  .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_qupv3_spi1_clk_src = {
 .cmd_rcgr = 0x5004,
 .mnd_width = 8,
 .hid_width = 5,
 .parent_map = gcc_parent_map_0,
 .freq_tbl = ftbl_gcc_qupv3_spi0_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qupv3_spi1_clk_src",
  .parent_data = gcc_parent_data_0,
  .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_qupv3_uart0_clk_src[] = {
 F(3686400,  P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 144, 15625),
 F(7372800,  P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 288, 15625),
 F(14745600, P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC, 1, 576, 15625),
 F(24000000, P_XO, 1, 0, 0),
 F(25000000, P_GPLL0_OUT_MAIN, 16, 1, 2),
 F(32000000, P_GPLL0_OUT_MAIN, 1, 1, 25),
 F(40000000, P_GPLL0_OUT_MAIN, 1, 1, 20),
 F(46400000, P_GPLL0_OUT_MAIN, 1, 29, 500),
 F(48000000, P_GPLL0_OUT_MAIN, 1, 3, 50),
 F(51200000, P_GPLL0_OUT_MAIN, 1, 8, 125),
 F(56000000, P_GPLL0_OUT_MAIN, 1, 7, 100),
 F(58982400, P_GPLL0_OUT_MAIN, 1, 1152, 15625),
 F(60000000, P_GPLL0_OUT_MAIN, 1, 3, 40),
 F(64000000, P_GPLL0_OUT_MAIN, 12.5, 0, 0),
 { }
};

static struct clk_rcg2 gcc_qupv3_uart0_clk_src = {
 .cmd_rcgr = 0x202c,
 .mnd_width = 16,
 .hid_width = 5,
 .parent_map = gcc_parent_map_0,
 .freq_tbl = ftbl_gcc_qupv3_uart0_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qupv3_uart0_clk_src",
  .parent_data = gcc_parent_data_0,
  .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_qupv3_uart1_clk_src = {
 .cmd_rcgr = 0x302c,
 .mnd_width = 16,
 .hid_width = 5,
 .parent_map = gcc_parent_map_0,
 .freq_tbl = ftbl_gcc_qupv3_uart0_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qupv3_uart1_clk_src",
  .parent_data = gcc_parent_data_0,
  .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {
 F(144000, P_XO, 16, 12, 125),
 F(400000, P_XO, 12, 1, 5),
 F(24000000, P_GPLL2_OUT_MAIN, 12, 1, 2),
 F(48000000, P_GPLL2_OUT_MAIN, 12, 0, 0),
 F(96000000, P_GPLL2_OUT_MAIN, 6, 0, 0),
 F(177777778, P_GPLL0_OUT_MAIN, 4.5, 0, 0),
 F(192000000, P_GPLL2_OUT_MAIN, 3, 0, 0),
 F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
 { }
};

static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
 .cmd_rcgr = 0x33004,
 .mnd_width = 8,
 .hid_width = 5,
 .parent_map = gcc_parent_map_8,
 .freq_tbl = ftbl_gcc_sdcc1_apps_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_sdcc1_apps_clk_src",
  .parent_data = gcc_parent_data_8,
  .num_parents = ARRAY_SIZE(gcc_parent_data_8),
  .ops = &clk_rcg2_floor_ops,
 },
};

static const struct freq_tbl ftbl_gcc_sdcc1_ice_core_clk_src[] = {
 F(300000000, P_GPLL4_OUT_MAIN, 4, 0, 0),
 { }
};

static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
 .cmd_rcgr = 0x33018,
 .mnd_width = 8,
 .hid_width = 5,
 .parent_map = gcc_parent_map_9,
 .freq_tbl = ftbl_gcc_sdcc1_ice_core_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_sdcc1_ice_core_clk_src",
  .parent_data = gcc_parent_data_9,
  .num_parents = ARRAY_SIZE(gcc_parent_data_9),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_uniphy_sys_clk_src = {
 .cmd_rcgr = 0x17090,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_4,
 .freq_tbl = ftbl_gcc_nss_ts_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_uniphy_sys_clk_src",
  .parent_data = &gcc_parent_data_xo,
  .num_parents = 1,
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_usb0_aux_clk_src = {
 .cmd_rcgr = 0x2c018,
 .mnd_width = 16,
 .hid_width = 5,
 .parent_map = gcc_parent_map_10,
 .freq_tbl = ftbl_gcc_nss_ts_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_usb0_aux_clk_src",
  .parent_data = gcc_parent_data_10,
  .num_parents = ARRAY_SIZE(gcc_parent_data_10),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_usb0_master_clk_src[] = {
 F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
 { }
};

static struct clk_rcg2 gcc_usb0_master_clk_src = {
 .cmd_rcgr = 0x2c004,
 .mnd_width = 8,
 .hid_width = 5,
 .parent_map = gcc_parent_map_0,
 .freq_tbl = ftbl_gcc_usb0_master_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_usb0_master_clk_src",
  .parent_data = gcc_parent_data_0,
  .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_usb0_mock_utmi_clk_src[] = {
 F(24000000, P_XO, 1, 0, 0),
 F(60000000, P_GPLL4_OUT_AUX, 10, 1, 2),
 { }
};

static struct clk_rcg2 gcc_usb0_mock_utmi_clk_src = {
 .cmd_rcgr = 0x2c02c,
 .mnd_width = 8,
 .hid_width = 5,
 .parent_map = gcc_parent_map_5,
 .freq_tbl = ftbl_gcc_usb0_mock_utmi_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_usb0_mock_utmi_clk_src",
  .parent_data = gcc_parent_data_5,
  .num_parents = ARRAY_SIZE(gcc_parent_data_5),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_usb1_mock_utmi_clk_src = {
 .cmd_rcgr = 0x3c004,
 .mnd_width = 8,
 .hid_width = 5,
 .parent_map = gcc_parent_map_5,
 .freq_tbl = ftbl_gcc_usb0_mock_utmi_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_usb1_mock_utmi_clk_src",
  .parent_data = gcc_parent_data_5,
  .num_parents = ARRAY_SIZE(gcc_parent_data_5),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_wcss_ahb_clk_src[] = {
 F(24000000, P_XO, 1, 0, 0),
 F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
 { }
};

static struct clk_rcg2 gcc_wcss_ahb_clk_src = {
 .cmd_rcgr = 0x25030,
 .freq_tbl = ftbl_gcc_wcss_ahb_clk_src,
 .hid_width = 5,
 .parent_map = gcc_parent_map_1,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_wcss_ahb_clk_src",
  .parent_data = gcc_parent_data_1,
  .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_qdss_at_clk_src[] = {
 F(240000000, P_GPLL4_OUT_MAIN, 5, 0, 0),
 { }
};

static struct clk_rcg2 gcc_qdss_at_clk_src = {
 .cmd_rcgr = 0x2d004,
 .freq_tbl = ftbl_gcc_qdss_at_clk_src,
 .hid_width = 5,
 .parent_map = gcc_parent_map_3,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qdss_at_clk_src",
  .parent_data = gcc_parent_data_3,
  .num_parents = ARRAY_SIZE(gcc_parent_data_3),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_qdss_tsctr_clk_src[] = {
 F(600000000, P_GPLL4_OUT_MAIN, 2, 0, 0),
 { }
};

static struct clk_rcg2 gcc_qdss_tsctr_clk_src = {
 .cmd_rcgr = 0x2d01c,
 .freq_tbl = ftbl_gcc_qdss_tsctr_clk_src,
 .hid_width = 5,
 .parent_map = gcc_parent_map_3,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qdss_tsctr_clk_src",
  .parent_data = gcc_parent_data_3,
  .num_parents = ARRAY_SIZE(gcc_parent_data_3),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_fixed_factor gcc_qdss_tsctr_div2_clk_src = {
 .mult = 1,
 .div = 2,
 .hw.init = &(const struct clk_init_data) {
  .name = "gcc_qdss_tsctr_div2_clk_src",
  .parent_hws = (const struct clk_hw *[]) {
   &gcc_qdss_tsctr_clk_src.clkr.hw
  },
  .num_parents = 1,
  .flags = CLK_SET_RATE_PARENT,
  .ops = &clk_fixed_factor_ops,
 },
};

static struct clk_fixed_factor gcc_qdss_dap_sync_clk_src = {
 .mult = 1,
 .div = 4,
 .hw.init = &(const struct clk_init_data) {
  .name = "gcc_qdss_dap_sync_clk_src",
  .parent_hws = (const struct clk_hw *[]) {
   &gcc_qdss_tsctr_clk_src.clkr.hw
  },
  .num_parents = 1,
  .ops = &clk_fixed_factor_ops,
 },
};

static const struct freq_tbl ftbl_gcc_system_noc_bfdcd_clk_src[] = {
 F(24000000, P_XO, 1, 0, 0),
 F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
 F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
 F(266666667, P_GPLL4_OUT_MAIN, 4.5, 0, 0),
 { }
};

static struct clk_rcg2 gcc_system_noc_bfdcd_clk_src = {
 .cmd_rcgr = 0x2e004,
 .freq_tbl = ftbl_gcc_system_noc_bfdcd_clk_src,
 .hid_width = 5,
 .parent_map = gcc_parent_map_9,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_system_noc_bfdcd_clk_src",
  .parent_data = gcc_parent_data_9,
  .num_parents = ARRAY_SIZE(gcc_parent_data_9),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_pcnoc_bfdcd_clk_src[] = {
 F(24000000, P_XO, 1, 0, 0),
 F(50000000, P_GPLL0_OUT_MAIN, 16, 0, 0),
 F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
 { }
};

static struct clk_rcg2 gcc_pcnoc_bfdcd_clk_src = {
 .cmd_rcgr = 0x31004,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_0,
 .freq_tbl = ftbl_gcc_pcnoc_bfdcd_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcnoc_bfdcd_clk_src",
  .parent_data = gcc_parent_data_0,
  .num_parents = ARRAY_SIZE(gcc_parent_data_0),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_lpass_sway_clk_src[] = {
 F(133333333, P_GPLL0_OUT_MAIN, 6, 0, 0),
 { }
};

static struct clk_rcg2 gcc_lpass_sway_clk_src = {
 .cmd_rcgr = 0x27004,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_1,
 .freq_tbl = ftbl_gcc_lpass_sway_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_lpass_sway_clk_src",
  .parent_data = gcc_parent_data_1,
  .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_lpass_axim_clk_src = {
 .cmd_rcgr = 0x2700c,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_1,
 .freq_tbl = ftbl_gcc_lpass_sway_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_lpass_axim_clk_src",
  .parent_data = gcc_parent_data_1,
  .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_fixed_factor gcc_eud_at_div_clk_src = {
 .mult = 1,
 .div = 6,
 .hw.init = &(const struct clk_init_data) {
  .name = "gcc_eud_at_div_clk_src",
  .parent_hws = (const struct clk_hw *[]) {
   &gcc_qdss_at_clk_src.clkr.hw },
  .num_parents = 1,
  .flags = CLK_SET_RATE_PARENT,
  .ops = &clk_fixed_factor_ops,
 },
};

static const struct freq_tbl ftbl_gcc_sleep_clk_src[] = {
 F(32000, P_SLEEP_CLK, 1, 0, 0),
 { }
};

static struct clk_rcg2 gcc_sleep_clk_src = {
 .cmd_rcgr = 0x3400c,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_6,
 .freq_tbl = ftbl_gcc_sleep_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_sleep_clk_src",
  .parent_data = gcc_parent_data_6,
  .num_parents = ARRAY_SIZE(gcc_parent_data_6),
  .ops = &clk_rcg2_ops,
 },
};

static const struct freq_tbl ftbl_gcc_qpic_io_macro_clk_src[] = {
 F(24000000, P_XO, 1, 0, 0),
 F(100000000, P_GPLL0_OUT_MAIN, 8, 0, 0),
 F(200000000, P_GPLL0_OUT_MAIN, 4, 0, 0),
 F(320000000, P_GPLL0_OUT_MAIN, 2.5, 0, 0),
 F(400000000, P_GPLL0_OUT_MAIN, 2, 0, 0),
 { }
};

static struct clk_rcg2 gcc_qpic_io_macro_clk_src = {
 .cmd_rcgr = 0x32004,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_11,
 .freq_tbl = ftbl_gcc_qpic_io_macro_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qpic_io_macro_clk_src",
  .parent_data = gcc_parent_data_11,
  .num_parents = ARRAY_SIZE(gcc_parent_data_11),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_qpic_clk_src = {
 .cmd_rcgr = 0x32020,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_11,
 .freq_tbl = ftbl_gcc_qpic_io_macro_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qpic_clk_src",
  .parent_data = gcc_parent_data_11,
  .num_parents = ARRAY_SIZE(gcc_parent_data_11),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie0_rchng_clk_src = {
 .cmd_rcgr = 0x28028,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_1,
 .freq_tbl = ftbl_gcc_adss_pwm_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie0_rchng_clk_src",
  .parent_data = gcc_parent_data_1,
  .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie1_rchng_clk_src = {
 .cmd_rcgr = 0x29028,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_1,
 .freq_tbl = ftbl_gcc_adss_pwm_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie1_rchng_clk_src",
  .parent_data = gcc_parent_data_1,
  .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie2_rchng_clk_src = {
 .cmd_rcgr = 0x2a028,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_1,
 .freq_tbl = ftbl_gcc_adss_pwm_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie2_rchng_clk_src",
  .parent_data = gcc_parent_data_1,
  .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_rcg2 gcc_pcie3_rchng_clk_src = {
 .cmd_rcgr = 0x2b028,
 .mnd_width = 0,
 .hid_width = 5,
 .parent_map = gcc_parent_map_1,
 .freq_tbl = ftbl_gcc_adss_pwm_clk_src,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_pcie3_rchng_clk_src",
  .parent_data = gcc_parent_data_1,
  .num_parents = ARRAY_SIZE(gcc_parent_data_1),
  .ops = &clk_rcg2_ops,
 },
};

static struct clk_regmap_div gcc_qupv3_i2c0_div_clk_src = {
 .reg = 0x2020,
 .shift = 0,
 .width = 2,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qupv3_i2c0_div_clk_src",
  .parent_hws = (const struct clk_hw*[]) {
   &gcc_qupv3_i2c0_clk_src.clkr.hw,
  },
  .num_parents = 1,
  .flags = CLK_SET_RATE_PARENT,
  .ops = &clk_regmap_div_ro_ops,
 },
};

static struct clk_regmap_div gcc_qupv3_i2c1_div_clk_src = {
 .reg = 0x3020,
 .shift = 0,
 .width = 2,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_qupv3_i2c1_div_clk_src",
  .parent_hws = (const struct clk_hw*[]) {
   &gcc_qupv3_i2c1_clk_src.clkr.hw,
  },
  .num_parents = 1,
  .flags = CLK_SET_RATE_PARENT,
  .ops = &clk_regmap_div_ro_ops,
 },
};

static struct clk_regmap_div gcc_usb0_mock_utmi_div_clk_src = {
 .reg = 0x2c040,
 .shift = 0,
 .width = 2,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_usb0_mock_utmi_div_clk_src",
  .parent_hws = (const struct clk_hw*[]) {
   &gcc_usb0_mock_utmi_clk_src.clkr.hw,
  },
  .num_parents = 1,
  .flags = CLK_SET_RATE_PARENT,
  .ops = &clk_regmap_div_ro_ops,
 },
};

static struct clk_regmap_div gcc_usb1_mock_utmi_div_clk_src = {
 .reg = 0x3c018,
 .shift = 0,
 .width = 2,
 .clkr.hw.init = &(const struct clk_init_data) {
  .name = "gcc_usb1_mock_utmi_div_clk_src",
  .parent_hws = (const struct clk_hw*[]) {
   &gcc_usb1_mock_utmi_clk_src.clkr.hw,
  },
  .num_parents = 1,
  .flags = CLK_SET_RATE_PARENT,
  .ops = &clk_regmap_div_ro_ops,
 },
};

static struct clk_branch gcc_adss_pwm_clk = {
 .halt_reg = 0x1c00c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x1c00c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_adss_pwm_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_adss_pwm_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_cnoc_pcie0_1lane_s_clk = {
 .halt_reg = 0x31088,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x31088,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_cnoc_pcie0_1lane_s_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie0_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_cnoc_pcie1_1lane_s_clk = {
 .halt_reg = 0x3108c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x3108c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_cnoc_pcie1_1lane_s_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie1_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_cnoc_pcie2_2lane_s_clk = {
 .halt_reg = 0x31090,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x31090,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_cnoc_pcie2_2lane_s_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie2_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_cnoc_pcie3_2lane_s_clk = {
 .halt_reg = 0x31094,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x31094,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_cnoc_pcie3_2lane_s_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie3_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_cnoc_usb_clk = {
 .halt_reg = 0x310a8,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x310a8,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_cnoc_usb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_usb0_master_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_mdio_ahb_clk = {
 .halt_reg = 0x17040,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x17040,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_mdio_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nss_ts_clk = {
 .halt_reg = 0x17018,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x17018,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nss_ts_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_nss_ts_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nsscc_clk = {
 .halt_reg = 0x17034,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x17034,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nsscc_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nsscfg_clk = {
 .halt_reg = 0x1702c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x1702c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nsscfg_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nssnoc_atb_clk = {
 .halt_reg = 0x17014,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x17014,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nssnoc_atb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_qdss_at_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nssnoc_nsscc_clk = {
 .halt_reg = 0x17030,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x17030,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nssnoc_nsscc_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nssnoc_pcnoc_1_clk = {
 .halt_reg = 0x17080,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x17080,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nssnoc_pcnoc_1_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nssnoc_qosgen_ref_clk = {
 .halt_reg = 0x1701c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x1701c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nssnoc_qosgen_ref_clk",
   .parent_hws = (const struct clk_hw *[]) {
    &gcc_xo_div4_clk_src.hw
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nssnoc_snoc_1_clk = {
 .halt_reg = 0x1707c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x1707c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nssnoc_snoc_1_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_system_noc_bfdcd_clk_src.clkr.hw
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nssnoc_snoc_clk = {
 .halt_reg = 0x17028,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x17028,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nssnoc_snoc_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_system_noc_bfdcd_clk_src.clkr.hw
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nssnoc_timeout_ref_clk = {
 .halt_reg = 0x17020,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x17020,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nssnoc_timeout_ref_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_xo_div4_clk_src.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_nssnoc_xo_dcd_clk = {
 .halt_reg = 0x17074,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x17074,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_nssnoc_xo_dcd_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_xo_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie0_ahb_clk = {
 .halt_reg = 0x28030,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x28030,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie0_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie0_aux_clk = {
 .halt_reg = 0x28070,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x28070,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie0_aux_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie_aux_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie0_axi_m_clk = {
 .halt_reg = 0x28038,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x28038,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie0_axi_m_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie0_axi_m_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_anoc_pcie0_1lane_m_clk = {
 .halt_reg = 0x2e07c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2e07c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_anoc_pcie0_1lane_m_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie0_axi_m_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie0_axi_s_bridge_clk = {
 .halt_reg = 0x28048,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x28048,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie0_axi_s_bridge_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie0_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie0_axi_s_clk = {
 .halt_reg = 0x28040,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x28040,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie0_axi_s_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie0_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_regmap_phy_mux gcc_pcie0_pipe_clk_src = {
 .reg = 0x28064,
 .clkr = {
  .hw.init = &(const struct clk_init_data) {
   .name = "pcie0_pipe_clk_src",
   .parent_data = &(const struct clk_parent_data) {
    .index = DT_PCIE30_PHY0_PIPE_CLK,
   },
   .num_parents = 1,
   .ops = &clk_regmap_phy_mux_ops,
  },
 },
};

static struct clk_branch gcc_pcie0_pipe_clk = {
 .halt_reg = 0x28068,
 .halt_check = BRANCH_HALT_DELAY,
 .clkr = {
  .enable_reg = 0x28068,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie0_pipe_clk",
   .parent_hws = (const struct clk_hw *[]) {
    &gcc_pcie0_pipe_clk_src.clkr.hw
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie1_ahb_clk = {
 .halt_reg = 0x29030,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x29030,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie1_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie1_aux_clk = {
 .halt_reg = 0x29074,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x29074,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie1_aux_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie_aux_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie1_axi_m_clk = {
 .halt_reg = 0x29038,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x29038,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie1_axi_m_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie1_axi_m_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_anoc_pcie1_1lane_m_clk = {
 .halt_reg = 0x2e084,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2e084,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_anoc_pcie1_1lane_m_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie1_axi_m_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie1_axi_s_bridge_clk = {
 .halt_reg = 0x29048,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x29048,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie1_axi_s_bridge_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie1_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie1_axi_s_clk = {
 .halt_reg = 0x29040,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x29040,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie1_axi_s_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie1_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_regmap_phy_mux gcc_pcie1_pipe_clk_src = {
 .reg = 0x29064,
 .clkr = {
  .hw.init = &(const struct clk_init_data) {
   .name = "pcie1_pipe_clk_src",
   .parent_data = &(const struct clk_parent_data) {
    .index = DT_PCIE30_PHY1_PIPE_CLK,
   },
   .num_parents = 1,
   .ops = &clk_regmap_phy_mux_ops,
  },
 },
};

static struct clk_branch gcc_pcie1_pipe_clk = {
 .halt_reg = 0x29068,
 .halt_check = BRANCH_HALT_DELAY,
 .clkr = {
  .enable_reg = 0x29068,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie1_pipe_clk",
   .parent_hws = (const struct clk_hw *[]) {
    &gcc_pcie1_pipe_clk_src.clkr.hw
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,

   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie2_ahb_clk = {
 .halt_reg = 0x2a030,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2a030,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie2_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie2_aux_clk = {
 .halt_reg = 0x2a078,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2a078,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie2_aux_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie_aux_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie2_axi_m_clk = {
 .halt_reg = 0x2a038,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2a038,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie2_axi_m_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie2_axi_m_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_anoc_pcie2_2lane_m_clk = {
 .halt_reg = 0x2e080,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2e080,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_anoc_pcie2_2lane_m_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie2_axi_m_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie2_axi_s_bridge_clk = {
 .halt_reg = 0x2a048,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2a048,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie2_axi_s_bridge_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie2_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie2_axi_s_clk = {
 .halt_reg = 0x2a040,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2a040,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie2_axi_s_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie2_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_regmap_phy_mux gcc_pcie2_pipe_clk_src = {
 .reg = 0x2a064,
 .clkr = {
  .hw.init = &(const struct clk_init_data) {
   .name = "pcie2_pipe_clk_src",
   .parent_data = &(const struct clk_parent_data) {
    .index = DT_PCIE30_PHY2_PIPE_CLK,
   },
   .num_parents = 1,
   .ops = &clk_regmap_phy_mux_ops,
  },
 },
};

static struct clk_branch gcc_pcie2_pipe_clk = {
 .halt_reg = 0x2a068,
 .halt_check = BRANCH_HALT_DELAY,
 .clkr = {
  .enable_reg = 0x2a068,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie2_pipe_clk",
   .parent_hws = (const struct clk_hw *[]) {
    &gcc_pcie2_pipe_clk_src.clkr.hw
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie3_ahb_clk = {
 .halt_reg = 0x2b030,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2b030,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie3_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie3_aux_clk = {
 .halt_reg = 0x2b07c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2b07c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie3_aux_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie_aux_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie3_axi_m_clk = {
 .halt_reg = 0x2b038,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2b038,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie3_axi_m_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie3_axi_m_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_anoc_pcie3_2lane_m_clk = {
 .halt_reg = 0x2e090,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2e090,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_anoc_pcie3_2lane_m_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie3_axi_m_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie3_axi_s_bridge_clk = {
 .halt_reg = 0x2b048,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2b048,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie3_axi_s_bridge_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie3_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_pcie3_axi_s_clk = {
 .halt_reg = 0x2b040,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2b040,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie3_axi_s_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcie3_axi_s_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_regmap_phy_mux gcc_pcie3_pipe_clk_src = {
 .reg = 0x2b064,
 .clkr = {
  .hw.init = &(const struct clk_init_data) {
   .name = "pcie3_pipe_clk_src",
   .parent_data = &(const struct clk_parent_data) {
    .index = DT_PCIE30_PHY3_PIPE_CLK,
   },
   .num_parents = 1,
   .ops = &clk_regmap_phy_mux_ops,
  },
 },
};

static struct clk_branch gcc_pcie3_pipe_clk = {
 .halt_reg = 0x2b068,
 .halt_check = BRANCH_HALT_DELAY,
 .clkr = {
  .enable_reg = 0x2b068,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_pcie3_pipe_clk",
   .parent_hws = (const struct clk_hw *[]) {
    &gcc_pcie3_pipe_clk_src.clkr.hw
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_prng_ahb_clk = {
 .halt_reg = 0x13024,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0xb004,
  .enable_mask = BIT(10),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_prng_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qupv3_ahb_mst_clk = {
 .halt_reg = 0x1014,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0xb004,
  .enable_mask = BIT(14),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qupv3_ahb_mst_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qupv3_ahb_slv_clk = {
 .halt_reg = 0x102c,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0xb004,
  .enable_mask = BIT(4),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qupv3_ahb_slv_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qupv3_i2c0_clk = {
 .halt_reg = 0x2024,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2024,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qupv3_i2c0_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_qupv3_i2c0_div_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qupv3_i2c1_clk = {
 .halt_reg = 0x3024,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x3024,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qupv3_i2c1_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_qupv3_i2c1_div_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qupv3_spi0_clk = {
 .halt_reg = 0x4020,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x4020,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qupv3_spi0_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_qupv3_spi0_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qupv3_spi1_clk = {
 .halt_reg = 0x5020,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x5020,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qupv3_spi1_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_qupv3_spi1_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qupv3_uart0_clk = {
 .halt_reg = 0x2040,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2040,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qupv3_uart0_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_qupv3_uart0_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qupv3_uart1_clk = {
 .halt_reg = 0x3040,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x3040,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qupv3_uart1_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_qupv3_uart1_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_sdcc1_ahb_clk = {
 .halt_reg = 0x3303c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x3303c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_sdcc1_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_sdcc1_apps_clk = {
 .halt_reg = 0x3302c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x3302c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_sdcc1_apps_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_sdcc1_apps_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_sdcc1_ice_core_clk = {
 .halt_reg = 0x33034,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x33034,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_sdcc1_ice_core_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_sdcc1_ice_core_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_uniphy0_ahb_clk = {
 .halt_reg = 0x1704c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x1704c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_uniphy0_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_uniphy0_sys_clk = {
 .halt_reg = 0x17048,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x17048,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_uniphy0_sys_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_uniphy_sys_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_uniphy1_ahb_clk = {
 .halt_reg = 0x1705c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x1705c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_uniphy1_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_uniphy1_sys_clk = {
 .halt_reg = 0x17058,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x17058,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_uniphy1_sys_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_uniphy_sys_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_uniphy2_ahb_clk = {
 .halt_reg = 0x1706c,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x1706c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_uniphy2_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_uniphy2_sys_clk = {
 .halt_reg = 0x17068,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x17068,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_uniphy2_sys_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_uniphy_sys_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb0_aux_clk = {
 .halt_reg = 0x2c04c,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x2c04c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb0_aux_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_usb0_aux_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb0_master_clk = {
 .halt_reg = 0x2c044,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x2c044,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb0_master_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_usb0_master_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb0_mock_utmi_clk = {
 .halt_reg = 0x2c050,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x2c050,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb0_mock_utmi_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_usb0_mock_utmi_div_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb1_mock_utmi_clk = {
 .halt_reg = 0x3c024,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x3c024,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb1_mock_utmi_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_usb1_mock_utmi_div_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb0_phy_cfg_ahb_clk = {
 .halt_reg = 0x2c05c,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x2c05c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb0_phy_cfg_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb1_phy_cfg_ahb_clk = {
 .halt_reg = 0x3c01c,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x3c01c,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb1_phy_cfg_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb1_master_clk = {
 .halt_reg = 0x3c028,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x3c028,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb1_master_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_regmap_phy_mux gcc_usb0_pipe_clk_src = {
 .reg = 0x2c074,
 .clkr = {
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb0_pipe_clk_src",
   .parent_data = &(const struct clk_parent_data) {
    .index = DT_USB_PCIE_WRAPPER_PIPE_CLK,
   },
   .num_parents = 1,
   .ops = &clk_regmap_phy_mux_ops,
  },
 },
};

static struct clk_branch gcc_usb0_pipe_clk = {
 .halt_reg = 0x2c054,
 .halt_check = BRANCH_HALT_DELAY,
 .clkr = {
  .enable_reg = 0x2c054,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb0_pipe_clk",
   .parent_hws = (const struct clk_hw *[]) {
    &gcc_usb0_pipe_clk_src.clkr.hw
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb0_sleep_clk = {
 .halt_reg = 0x2c058,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x2c058,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb0_sleep_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_sleep_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb1_sleep_clk = {
 .halt_reg = 0x3c020,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x3c020,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb1_sleep_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_sleep_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_cmn_12gpll_ahb_clk = {
 .halt_reg = 0x3a004,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x3a004,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_cmn_12gpll_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_cmn_12gpll_sys_clk = {
 .halt_reg = 0x3a008,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x3a008,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_cmn_12gpll_sys_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_uniphy_sys_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_lpass_sway_clk = {
 .halt_reg = 0x27014,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x27014,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_lpass_sway_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_lpass_sway_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_cnoc_lpass_cfg_clk = {
 .halt_reg = 0x2e028,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x2e028,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_cnoc_lpass_cfg_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_lpass_sway_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_lpass_core_axim_clk = {
 .halt_reg = 0x27018,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x27018,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_lpass_core_axim_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_lpass_axim_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_snoc_lpass_clk = {
 .halt_reg = 0x31020,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x31020,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_snoc_lpass_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_lpass_axim_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_usb0_eud_at_clk = {
 .halt_reg = 0x30004,
 .halt_check = BRANCH_HALT_VOTED,
 .clkr = {
  .enable_reg = 0x30004,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_usb0_eud_at_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_eud_at_div_clk_src.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qpic_ahb_clk = {
 .halt_reg = 0x32010,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x32010,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qpic_ahb_clk",
   .parent_hws = (const struct clk_hw*[]) {
    &gcc_pcnoc_bfdcd_clk_src.clkr.hw,
   },
   .num_parents = 1,
   .flags = CLK_SET_RATE_PARENT,
   .ops = &clk_branch2_ops,
  },
 },
};

static struct clk_branch gcc_qpic_clk = {
 .halt_reg = 0x32028,
 .halt_check = BRANCH_HALT,
 .clkr = {
  .enable_reg = 0x32028,
  .enable_mask = BIT(0),
  .hw.init = &(const struct clk_init_data) {
   .name = "gcc_qpic_clk",
--> --------------------

--> maximum size reached

--> --------------------

Messung V0.5
C=100 H=100 G=100

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.27Bemerkung:  (vorverarbeitet)  ¤

*Bot Zugriff






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.