linux/drivers/clk/qcom/camcc-sc8280xp.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
 * Copyright (c) 2023, Linaro Ltd.
 */

#include <linux/clk-provider.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>

#include <dt-bindings/clock/qcom,sc8280xp-camcc.h>

#include "clk-alpha-pll.h"
#include "clk-branch.h"
#include "clk-rcg.h"
#include "clk-regmap.h"
#include "common.h"
#include "gdsc.h"
#include "reset.h"

enum {};

enum {};

static const struct pll_vco lucid_vco[] =;

static const struct pll_vco zonda_vco[] =;

static struct alpha_pll_config camcc_pll0_config =;

static struct clk_alpha_pll camcc_pll0 =;

static const struct clk_div_table post_div_table_camcc_pll0_out_even[] =;

static struct clk_alpha_pll_postdiv camcc_pll0_out_even =;

static const struct clk_div_table post_div_table_camcc_pll0_out_odd[] =;

static struct clk_alpha_pll_postdiv camcc_pll0_out_odd =;

static struct alpha_pll_config camcc_pll1_config =;

static struct clk_alpha_pll camcc_pll1 =;

static const struct clk_div_table post_div_table_camcc_pll1_out_even[] =;

static struct clk_alpha_pll_postdiv camcc_pll1_out_even =;

static struct alpha_pll_config camcc_pll2_config =;

static struct clk_alpha_pll camcc_pll2 =;

static struct alpha_pll_config camcc_pll3_config =;

static struct clk_alpha_pll camcc_pll3 =;

static const struct clk_div_table post_div_table_camcc_pll3_out_even[] =;

static struct clk_alpha_pll_postdiv camcc_pll3_out_even =;

static struct alpha_pll_config camcc_pll4_config =;

static struct clk_alpha_pll camcc_pll4 =;

static const struct clk_div_table post_div_table_camcc_pll4_out_even[] =;

static struct clk_alpha_pll_postdiv camcc_pll4_out_even =;

static struct alpha_pll_config camcc_pll5_config =;

static struct clk_alpha_pll camcc_pll5 =;

static const struct clk_div_table post_div_table_camcc_pll5_out_even[] =;

static struct clk_alpha_pll_postdiv camcc_pll5_out_even =;

static struct alpha_pll_config camcc_pll6_config =;

static struct clk_alpha_pll camcc_pll6 =;

static const struct clk_div_table post_div_table_camcc_pll6_out_even[] =;

static struct clk_alpha_pll_postdiv camcc_pll6_out_even =;

static struct alpha_pll_config camcc_pll7_config =;

static struct clk_alpha_pll camcc_pll7 =;

static const struct clk_div_table post_div_table_camcc_pll7_out_even[] =;

static struct clk_alpha_pll_postdiv camcc_pll7_out_even =;

static const struct clk_div_table post_div_table_camcc_pll7_out_odd[] =;

static struct clk_alpha_pll_postdiv camcc_pll7_out_odd =;

static const struct parent_map camcc_parent_map_0[] =;

static const struct clk_parent_data camcc_parent_data_0[] =;

static const struct parent_map camcc_parent_map_1[] =;

static const struct clk_parent_data camcc_parent_data_1[] =;

static const struct parent_map camcc_parent_map_2[] =;

static const struct clk_parent_data camcc_parent_data_2[] =;

static const struct parent_map camcc_parent_map_3[] =;

static const struct clk_parent_data camcc_parent_data_3[] =;

static const struct parent_map camcc_parent_map_4[] =;

static const struct clk_parent_data camcc_parent_data_4[] =;

static const struct parent_map camcc_parent_map_5[] =;

static const struct clk_parent_data camcc_parent_data_5[] =;

static const struct parent_map camcc_parent_map_6[] =;

static const struct clk_parent_data camcc_parent_data_6[] =;

static const struct parent_map camcc_parent_map_7[] =;

static const struct clk_parent_data camcc_parent_data_7[] =;

static const struct parent_map camcc_parent_map_8[] =;

static const struct clk_parent_data camcc_parent_data_8[] =;

static const struct parent_map camcc_parent_map_9[] =;

static const struct clk_parent_data camcc_parent_data_9[] =;

static const struct parent_map camcc_parent_map_10[] =;

static const struct clk_parent_data camcc_parent_data_10_ao[] =;

static const struct freq_tbl ftbl_camcc_bps_clk_src[] =;

static struct clk_rcg2 camcc_bps_clk_src =;

static const struct freq_tbl ftbl_camcc_camnoc_axi_clk_src[] =;

static struct clk_rcg2 camcc_camnoc_axi_clk_src =;

static const struct freq_tbl ftbl_camcc_cci_0_clk_src[] =;

static struct clk_rcg2 camcc_cci_0_clk_src =;

static struct clk_rcg2 camcc_cci_1_clk_src =;

static struct clk_rcg2 camcc_cci_2_clk_src =;

static struct clk_rcg2 camcc_cci_3_clk_src =;

static const struct freq_tbl ftbl_camcc_cphy_rx_clk_src[] =;

static struct clk_rcg2 camcc_cphy_rx_clk_src =;

static const struct freq_tbl ftbl_camcc_csi0phytimer_clk_src[] =;

static struct clk_rcg2 camcc_csi0phytimer_clk_src =;

static struct clk_rcg2 camcc_csi1phytimer_clk_src =;

static struct clk_rcg2 camcc_csi2phytimer_clk_src =;

static struct clk_rcg2 camcc_csi3phytimer_clk_src =;

static const struct freq_tbl ftbl_camcc_fast_ahb_clk_src[] =;

static struct clk_rcg2 camcc_fast_ahb_clk_src =;

static const struct freq_tbl ftbl_camcc_icp_clk_src[] =;

static struct clk_rcg2 camcc_icp_clk_src =;

static const struct freq_tbl ftbl_camcc_ife_0_clk_src[] =;

static struct clk_rcg2 camcc_ife_0_clk_src =;

static const struct freq_tbl ftbl_camcc_ife_0_csid_clk_src[] =;

static struct clk_rcg2 camcc_ife_0_csid_clk_src =;

static const struct freq_tbl ftbl_camcc_ife_1_clk_src[] =;

static struct clk_rcg2 camcc_ife_1_clk_src =;

static struct clk_rcg2 camcc_ife_1_csid_clk_src =;

static const struct freq_tbl ftbl_camcc_ife_2_clk_src[] =;

static struct clk_rcg2 camcc_ife_2_clk_src =;

static const struct freq_tbl ftbl_camcc_ife_2_csid_clk_src[] =;

static struct clk_rcg2 camcc_ife_2_csid_clk_src =;

static const struct freq_tbl ftbl_camcc_ife_3_clk_src[] =;

static struct clk_rcg2 camcc_ife_3_clk_src =;

static struct clk_rcg2 camcc_ife_3_csid_clk_src =;

static const struct freq_tbl ftbl_camcc_ife_lite_0_clk_src[] =;

static struct clk_rcg2 camcc_ife_lite_0_clk_src =;

static struct clk_rcg2 camcc_ife_lite_0_csid_clk_src =;

static struct clk_rcg2 camcc_ife_lite_1_clk_src =;

static struct clk_rcg2 camcc_ife_lite_1_csid_clk_src =;

static struct clk_rcg2 camcc_ife_lite_2_clk_src =;

static struct clk_rcg2 camcc_ife_lite_2_csid_clk_src =;

static struct clk_rcg2 camcc_ife_lite_3_clk_src =;

static struct clk_rcg2 camcc_ife_lite_3_csid_clk_src =;

static const struct freq_tbl ftbl_camcc_ipe_0_clk_src[] =;

static struct clk_rcg2 camcc_ipe_0_clk_src =;

static const struct freq_tbl ftbl_camcc_jpeg_clk_src[] =;

static struct clk_rcg2 camcc_jpeg_clk_src =;

static const struct freq_tbl ftbl_camcc_lrme_clk_src[] =;

static struct clk_rcg2 camcc_lrme_clk_src =;

static const struct freq_tbl ftbl_camcc_mclk0_clk_src[] =;

static struct clk_rcg2 camcc_mclk0_clk_src =;

static struct clk_rcg2 camcc_mclk1_clk_src =;

static struct clk_rcg2 camcc_mclk2_clk_src =;

static struct clk_rcg2 camcc_mclk3_clk_src =;

static struct clk_rcg2 camcc_mclk4_clk_src =;

static struct clk_rcg2 camcc_mclk5_clk_src =;

static struct clk_rcg2 camcc_mclk6_clk_src =;

static struct clk_rcg2 camcc_mclk7_clk_src =;

static const struct freq_tbl ftbl_camcc_sleep_clk_src[] =;

static struct clk_rcg2 camcc_sleep_clk_src =;

static const struct freq_tbl ftbl_camcc_slow_ahb_clk_src[] =;

static struct clk_rcg2 camcc_slow_ahb_clk_src =;

static const struct freq_tbl ftbl_camcc_xo_clk_src[] =;

static struct clk_rcg2 camcc_xo_clk_src =;

static struct clk_branch camcc_bps_ahb_clk =;

static struct clk_branch camcc_bps_areg_clk =;

static struct clk_branch camcc_bps_axi_clk =;

static struct clk_branch camcc_bps_clk =;

static struct clk_branch camcc_camnoc_axi_clk =;

static struct clk_branch camcc_camnoc_dcd_xo_clk =;

static struct clk_branch camcc_cci_0_clk =;

static struct clk_branch camcc_cci_1_clk =;

static struct clk_branch camcc_cci_2_clk =;

static struct clk_branch camcc_cci_3_clk =;

static struct clk_branch camcc_core_ahb_clk =;

static struct clk_branch camcc_cpas_ahb_clk =;

static struct clk_branch camcc_csi0phytimer_clk =;

static struct clk_branch camcc_csi1phytimer_clk =;

static struct clk_branch camcc_csi2phytimer_clk =;

static struct clk_branch camcc_csi3phytimer_clk =;

static struct clk_branch camcc_csiphy0_clk =;

static struct clk_branch camcc_csiphy1_clk =;

static struct clk_branch camcc_csiphy2_clk =;

static struct clk_branch camcc_csiphy3_clk =;

static struct clk_branch camcc_gdsc_clk =;

static struct clk_branch camcc_icp_ahb_clk =;

static struct clk_branch camcc_icp_clk =;

static struct clk_branch camcc_ife_0_axi_clk =;

static struct clk_branch camcc_ife_0_clk =;

static struct clk_branch camcc_ife_0_cphy_rx_clk =;

static struct clk_branch camcc_ife_0_csid_clk =;

static struct clk_branch camcc_ife_0_dsp_clk =;

static struct clk_branch camcc_ife_1_axi_clk =;

static struct clk_branch camcc_ife_1_clk =;

static struct clk_branch camcc_ife_1_cphy_rx_clk =;

static struct clk_branch camcc_ife_1_csid_clk =;

static struct clk_branch camcc_ife_1_dsp_clk =;

static struct clk_branch camcc_ife_2_axi_clk =;

static struct clk_branch camcc_ife_2_clk =;

static struct clk_branch camcc_ife_2_cphy_rx_clk =;

static struct clk_branch camcc_ife_2_csid_clk =;

static struct clk_branch camcc_ife_2_dsp_clk =;

static struct clk_branch camcc_ife_3_axi_clk =;

static struct clk_branch camcc_ife_3_clk =;

static struct clk_branch camcc_ife_3_cphy_rx_clk =;

static struct clk_branch camcc_ife_3_csid_clk =;

static struct clk_branch camcc_ife_3_dsp_clk =;

static struct clk_branch camcc_ife_lite_0_clk =;

static struct clk_branch camcc_ife_lite_0_cphy_rx_clk =;

static struct clk_branch camcc_ife_lite_0_csid_clk =;

static struct clk_branch camcc_ife_lite_1_clk =;

static struct clk_branch camcc_ife_lite_1_cphy_rx_clk =;

static struct clk_branch camcc_ife_lite_1_csid_clk =;

static struct clk_branch camcc_ife_lite_2_clk =;

static struct clk_branch camcc_ife_lite_2_cphy_rx_clk =;

static struct clk_branch camcc_ife_lite_2_csid_clk =;

static struct clk_branch camcc_ife_lite_3_clk =;

static struct clk_branch camcc_ife_lite_3_cphy_rx_clk =;

static struct clk_branch camcc_ife_lite_3_csid_clk =;

static struct clk_branch camcc_ipe_0_ahb_clk =;

static struct clk_branch camcc_ipe_0_areg_clk =;

static struct clk_branch camcc_ipe_0_axi_clk =;

static struct clk_branch camcc_ipe_0_clk =;

static struct clk_branch camcc_ipe_1_ahb_clk =;

static struct clk_branch camcc_ipe_1_areg_clk =;

static struct clk_branch camcc_ipe_1_axi_clk =;

static struct clk_branch camcc_ipe_1_clk =;

static struct clk_branch camcc_jpeg_clk =;

static struct clk_branch camcc_lrme_clk =;

static struct clk_branch camcc_mclk0_clk =;

static struct clk_branch camcc_mclk1_clk =;

static struct clk_branch camcc_mclk2_clk =;

static struct clk_branch camcc_mclk3_clk =;

static struct clk_branch camcc_mclk4_clk =;

static struct clk_branch camcc_mclk5_clk =;

static struct clk_branch camcc_mclk6_clk =;

static struct clk_branch camcc_mclk7_clk =;

static struct clk_branch camcc_sleep_clk =;

static struct gdsc titan_top_gdsc;

static struct gdsc bps_gdsc =;

static struct gdsc ife_0_gdsc =;

static struct gdsc ife_1_gdsc =;

static struct gdsc ife_2_gdsc =;

static struct gdsc ife_3_gdsc =;

static struct gdsc ipe_0_gdsc =;

static struct gdsc ipe_1_gdsc =;

static struct gdsc titan_top_gdsc =;

static struct clk_regmap *camcc_sc8280xp_clocks[] =;

static struct gdsc *camcc_sc8280xp_gdscs[] =;

static const struct qcom_reset_map camcc_sc8280xp_resets[] =;

static const struct regmap_config camcc_sc8280xp_regmap_config =;

static struct qcom_cc_desc camcc_sc8280xp_desc =;

static const struct of_device_id camcc_sc8280xp_match_table[] =;
MODULE_DEVICE_TABLE(of, camcc_sc8280xp_match_table);

static int camcc_sc8280xp_probe(struct platform_device *pdev)
{}

static struct platform_driver camcc_sc8280xp_driver =;

module_platform_driver();

MODULE_DESCRIPTION();
MODULE_LICENSE();