Lines Matching +full:clkr +full:- +full:- +full:-
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2021-2023, The Linux Foundation. All rights reserved.
7 #include <linux/clk-provider.h>
13 #include <dt-bindings/clock/qcom,sar2130p-gcc.h>
15 #include "clk-alpha-pll.h"
16 #include "clk-branch.h"
17 #include "clk-rcg.h"
18 #include "clk-regmap.h"
19 #include "clk-regmap-divider.h"
20 #include "clk-regmap-mux.h"
21 #include "clk-regmap-phy-mux.h"
55 .clkr = {
81 .clkr.hw.init = &(const struct clk_init_data) {
84 &gcc_gpll0.clkr.hw,
94 .clkr = {
111 .clkr = {
128 .clkr = {
145 .clkr = {
162 .clkr = {
188 .clkr.hw.init = &(const struct clk_init_data) {
191 &gcc_gpll9.clkr.hw,
206 { .hw = &gcc_gpll0.clkr.hw },
207 { .hw = &gcc_gpll0_out_even.clkr.hw },
219 { .hw = &gcc_gpll0.clkr.hw },
221 { .hw = &gcc_gpll0_out_even.clkr.hw },
236 { .hw = &gcc_gpll0.clkr.hw },
237 { .hw = &gcc_gpll7.clkr.hw },
238 { .hw = &gcc_gpll5.clkr.hw },
239 { .hw = &gcc_gpll1.clkr.hw },
240 { .hw = &gcc_gpll4.clkr.hw },
241 { .hw = &gcc_gpll0_out_even.clkr.hw },
263 { .hw = &gcc_gpll0.clkr.hw },
264 { .hw = &gcc_gpll9_out_even.clkr.hw },
265 { .hw = &gcc_gpll0_out_even.clkr.hw },
277 { .hw = &gcc_gpll0.clkr.hw },
278 { .hw = &gcc_gpll1.clkr.hw },
279 { .hw = &gcc_gpll0_out_even.clkr.hw },
294 .clkr = {
308 .clkr = {
325 .clkr = {
349 .clkr.hw.init = &(const struct clk_init_data) {
370 .clkr.hw.init = &(const struct clk_init_data) {
384 .clkr.hw.init = &(const struct clk_init_data) {
398 .clkr.hw.init = &(const struct clk_init_data) {
417 .clkr.hw.init = &(const struct clk_init_data) {
436 .clkr.hw.init = &(const struct clk_init_data) {
450 .clkr.hw.init = &(const struct clk_init_data) {
464 .clkr.hw.init = &(const struct clk_init_data) {
483 .clkr.hw.init = &(const struct clk_init_data) {
523 .clkr.hw.init = &gcc_qupv3_wrap0_s0_clk_src_init,
554 .clkr.hw.init = &gcc_qupv3_wrap0_s1_clk_src_init,
570 .clkr.hw.init = &gcc_qupv3_wrap0_s2_clk_src_init,
586 .clkr.hw.init = &gcc_qupv3_wrap0_s3_clk_src_init,
602 .clkr.hw.init = &gcc_qupv3_wrap0_s4_clk_src_init,
618 .clkr.hw.init = &gcc_qupv3_wrap0_s5_clk_src_init,
634 .clkr.hw.init = &gcc_qupv3_wrap1_s0_clk_src_init,
650 .clkr.hw.init = &gcc_qupv3_wrap1_s1_clk_src_init,
666 .clkr.hw.init = &gcc_qupv3_wrap1_s2_clk_src_init,
682 .clkr.hw.init = &gcc_qupv3_wrap1_s3_clk_src_init,
698 .clkr.hw.init = &gcc_qupv3_wrap1_s4_clk_src_init,
714 .clkr.hw.init = &gcc_qupv3_wrap1_s5_clk_src_init,
735 .clkr.hw.init = &(const struct clk_init_data) {
756 .clkr.hw.init = &(const struct clk_init_data) {
777 .clkr.hw.init = &(const struct clk_init_data) {
791 .clkr.hw.init = &(const struct clk_init_data) {
805 .clkr.hw.init = &(const struct clk_init_data) {
817 .clkr.hw.init = &(const struct clk_init_data) {
820 &gcc_usb30_prim_mock_utmi_clk_src.clkr.hw,
833 .clkr = {
848 .clkr = {
854 &gcc_usb30_prim_master_clk_src.clkr.hw,
868 .clkr = {
883 .clkr = {
898 .clkr = {
904 &gcc_usb30_prim_master_clk_src.clkr.hw,
918 .clkr = {
933 .clkr = {
948 .clkr = {
954 &gcc_ddrss_spad_clk_src.clkr.hw,
968 .clkr = {
981 .clkr = {
987 &gcc_gp1_clk_src.clkr.hw,
999 .clkr = {
1005 &gcc_gp2_clk_src.clkr.hw,
1017 .clkr = {
1023 &gcc_gp3_clk_src.clkr.hw,
1034 .clkr = {
1040 &gcc_gpll0.clkr.hw,
1051 .clkr = {
1057 &gcc_gpll0_out_even.clkr.hw,
1071 .clkr = {
1084 .clkr = {
1099 .clkr = {
1114 .clkr = {
1120 &gcc_ddrss_spad_clk_src.clkr.hw,
1132 .clkr = {
1138 &gcc_pcie_0_aux_clk_src.clkr.hw,
1152 .clkr = {
1167 .clkr = {
1180 .clkr = {
1186 &gcc_pcie_0_phy_rchng_clk_src.clkr.hw,
1198 .clkr = {
1204 &gcc_pcie_0_pipe_clk_src.clkr.hw,
1218 .clkr = {
1231 .clkr = {
1244 .clkr = {
1250 &gcc_pcie_1_aux_clk_src.clkr.hw,
1264 .clkr = {
1279 .clkr = {
1292 .clkr = {
1298 &gcc_pcie_1_phy_rchng_clk_src.clkr.hw,
1310 .clkr = {
1316 &gcc_pcie_1_pipe_clk_src.clkr.hw,
1330 .clkr = {
1343 .clkr = {
1356 .clkr = {
1362 &gcc_pdm2_clk_src.clkr.hw,
1376 .clkr = {
1389 .clkr = {
1404 .clkr = {
1419 .clkr = {
1434 .clkr = {
1449 .clkr = {
1464 .clkr = {
1479 .clkr = {
1494 .clkr = {
1507 .clkr = {
1520 .clkr = {
1533 .clkr = {
1539 &gcc_qupv3_wrap0_s0_clk_src.clkr.hw,
1551 .clkr = {
1557 &gcc_qupv3_wrap0_s1_clk_src.clkr.hw,
1569 .clkr = {
1575 &gcc_qupv3_wrap0_s2_clk_src.clkr.hw,
1587 .clkr = {
1593 &gcc_qupv3_wrap0_s3_clk_src.clkr.hw,
1605 .clkr = {
1611 &gcc_qupv3_wrap0_s4_clk_src.clkr.hw,
1623 .clkr = {
1629 &gcc_qupv3_wrap0_s5_clk_src.clkr.hw,
1641 .clkr = {
1654 .clkr = {
1667 .clkr = {
1673 &gcc_qupv3_wrap1_s0_clk_src.clkr.hw,
1685 .clkr = {
1691 &gcc_qupv3_wrap1_s1_clk_src.clkr.hw,
1703 .clkr = {
1709 &gcc_qupv3_wrap1_s2_clk_src.clkr.hw,
1721 .clkr = {
1727 &gcc_qupv3_wrap1_s3_clk_src.clkr.hw,
1739 .clkr = {
1745 &gcc_qupv3_wrap1_s4_clk_src.clkr.hw,
1757 .clkr = {
1763 &gcc_qupv3_wrap1_s5_clk_src.clkr.hw,
1777 .clkr = {
1792 .clkr = {
1807 .clkr = {
1822 .clkr = {
1835 .clkr = {
1848 .clkr = {
1854 &gcc_sdcc1_apps_clk_src.clkr.hw,
1868 .clkr = {
1874 &gcc_sdcc1_ice_core_clk_src.clkr.hw,
1886 .clkr = {
1892 &gcc_usb30_prim_master_clk_src.clkr.hw,
1904 .clkr = {
1910 &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr.hw,
1922 .clkr = {
1935 .clkr = {
1941 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
1953 .clkr = {
1959 &gcc_usb3_prim_phy_aux_clk_src.clkr.hw,
1973 .clkr = {
1979 &gcc_usb3_prim_phy_pipe_clk_src.clkr.hw,
1993 .clkr = {
2008 .clkr = {
2117 [GCC_AGGRE_NOC_PCIE_1_AXI_CLK] = &gcc_aggre_noc_pcie_1_axi_clk.clkr,
2118 [GCC_AGGRE_USB3_PRIM_AXI_CLK] = &gcc_aggre_usb3_prim_axi_clk.clkr,
2119 [GCC_BOOT_ROM_AHB_CLK] = &gcc_boot_rom_ahb_clk.clkr,
2120 [GCC_CFG_NOC_PCIE_ANOC_AHB_CLK] = &gcc_cfg_noc_pcie_anoc_ahb_clk.clkr,
2121 [GCC_CFG_NOC_USB3_PRIM_AXI_CLK] = &gcc_cfg_noc_usb3_prim_axi_clk.clkr,
2122 [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr,
2123 [GCC_DDRSS_PCIE_SF_CLK] = &gcc_ddrss_pcie_sf_clk.clkr,
2124 [GCC_DDRSS_SPAD_CLK] = &gcc_ddrss_spad_clk.clkr,
2125 [GCC_DDRSS_SPAD_CLK_SRC] = &gcc_ddrss_spad_clk_src.clkr,
2126 [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr,
2127 [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
2128 [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr,
2129 [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
2130 [GCC_GP2_CLK_SRC] = &gcc_gp2_clk_src.clkr,
2131 [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
2132 [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr,
2133 [GCC_GPLL0] = &gcc_gpll0.clkr,
2134 [GCC_GPLL0_OUT_EVEN] = &gcc_gpll0_out_even.clkr,
2135 [GCC_GPLL1] = &gcc_gpll1.clkr,
2136 [GCC_GPLL4] = &gcc_gpll4.clkr,
2137 [GCC_GPLL5] = &gcc_gpll5.clkr,
2138 [GCC_GPLL7] = &gcc_gpll7.clkr,
2139 [GCC_GPLL9] = &gcc_gpll9.clkr,
2140 [GCC_GPLL9_OUT_EVEN] = &gcc_gpll9_out_even.clkr,
2141 [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr,
2142 [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr,
2143 [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
2144 [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr,
2145 [GCC_IRIS_SS_HF_AXI1_CLK] = &gcc_iris_ss_hf_axi1_clk.clkr,
2146 [GCC_IRIS_SS_SPD_AXI1_CLK] = &gcc_iris_ss_spd_axi1_clk.clkr,
2147 [GCC_PCIE_0_AUX_CLK] = &gcc_pcie_0_aux_clk.clkr,
2148 [GCC_PCIE_0_AUX_CLK_SRC] = &gcc_pcie_0_aux_clk_src.clkr,
2149 [GCC_PCIE_0_CFG_AHB_CLK] = &gcc_pcie_0_cfg_ahb_clk.clkr,
2150 [GCC_PCIE_0_MSTR_AXI_CLK] = &gcc_pcie_0_mstr_axi_clk.clkr,
2151 [GCC_PCIE_0_PHY_RCHNG_CLK] = &gcc_pcie_0_phy_rchng_clk.clkr,
2152 [GCC_PCIE_0_PHY_RCHNG_CLK_SRC] = &gcc_pcie_0_phy_rchng_clk_src.clkr,
2153 [GCC_PCIE_0_PIPE_CLK] = &gcc_pcie_0_pipe_clk.clkr,
2154 [GCC_PCIE_0_PIPE_CLK_SRC] = &gcc_pcie_0_pipe_clk_src.clkr,
2155 [GCC_PCIE_0_SLV_AXI_CLK] = &gcc_pcie_0_slv_axi_clk.clkr,
2156 [GCC_PCIE_0_SLV_Q2A_AXI_CLK] = &gcc_pcie_0_slv_q2a_axi_clk.clkr,
2157 [GCC_PCIE_1_AUX_CLK] = &gcc_pcie_1_aux_clk.clkr,
2158 [GCC_PCIE_1_AUX_CLK_SRC] = &gcc_pcie_1_aux_clk_src.clkr,
2159 [GCC_PCIE_1_CFG_AHB_CLK] = &gcc_pcie_1_cfg_ahb_clk.clkr,
2160 [GCC_PCIE_1_MSTR_AXI_CLK] = &gcc_pcie_1_mstr_axi_clk.clkr,
2161 [GCC_PCIE_1_PHY_RCHNG_CLK] = &gcc_pcie_1_phy_rchng_clk.clkr,
2162 [GCC_PCIE_1_PHY_RCHNG_CLK_SRC] = &gcc_pcie_1_phy_rchng_clk_src.clkr,
2163 [GCC_PCIE_1_PIPE_CLK] = &gcc_pcie_1_pipe_clk.clkr,
2164 [GCC_PCIE_1_PIPE_CLK_SRC] = &gcc_pcie_1_pipe_clk_src.clkr,
2165 [GCC_PCIE_1_SLV_AXI_CLK] = &gcc_pcie_1_slv_axi_clk.clkr,
2166 [GCC_PCIE_1_SLV_Q2A_AXI_CLK] = &gcc_pcie_1_slv_q2a_axi_clk.clkr,
2167 [GCC_PDM2_CLK] = &gcc_pdm2_clk.clkr,
2168 [GCC_PDM2_CLK_SRC] = &gcc_pdm2_clk_src.clkr,
2169 [GCC_PDM_AHB_CLK] = &gcc_pdm_ahb_clk.clkr,
2170 [GCC_PDM_XO4_CLK] = &gcc_pdm_xo4_clk.clkr,
2171 [GCC_QMIP_GPU_AHB_CLK] = &gcc_qmip_gpu_ahb_clk.clkr,
2172 [GCC_QMIP_PCIE_AHB_CLK] = &gcc_qmip_pcie_ahb_clk.clkr,
2173 [GCC_QMIP_VIDEO_CV_CPU_AHB_CLK] = &gcc_qmip_video_cv_cpu_ahb_clk.clkr,
2174 [GCC_QMIP_VIDEO_CVP_AHB_CLK] = &gcc_qmip_video_cvp_ahb_clk.clkr,
2175 [GCC_QMIP_VIDEO_LSR_AHB_CLK] = &gcc_qmip_video_lsr_ahb_clk.clkr,
2176 [GCC_QMIP_VIDEO_V_CPU_AHB_CLK] = &gcc_qmip_video_v_cpu_ahb_clk.clkr,
2177 [GCC_QMIP_VIDEO_VCODEC_AHB_CLK] = &gcc_qmip_video_vcodec_ahb_clk.clkr,
2178 [GCC_QUPV3_WRAP0_CORE_2X_CLK] = &gcc_qupv3_wrap0_core_2x_clk.clkr,
2179 [GCC_QUPV3_WRAP0_CORE_CLK] = &gcc_qupv3_wrap0_core_clk.clkr,
2180 [GCC_QUPV3_WRAP0_S0_CLK] = &gcc_qupv3_wrap0_s0_clk.clkr,
2181 [GCC_QUPV3_WRAP0_S0_CLK_SRC] = &gcc_qupv3_wrap0_s0_clk_src.clkr,
2182 [GCC_QUPV3_WRAP0_S1_CLK] = &gcc_qupv3_wrap0_s1_clk.clkr,
2183 [GCC_QUPV3_WRAP0_S1_CLK_SRC] = &gcc_qupv3_wrap0_s1_clk_src.clkr,
2184 [GCC_QUPV3_WRAP0_S2_CLK] = &gcc_qupv3_wrap0_s2_clk.clkr,
2185 [GCC_QUPV3_WRAP0_S2_CLK_SRC] = &gcc_qupv3_wrap0_s2_clk_src.clkr,
2186 [GCC_QUPV3_WRAP0_S3_CLK] = &gcc_qupv3_wrap0_s3_clk.clkr,
2187 [GCC_QUPV3_WRAP0_S3_CLK_SRC] = &gcc_qupv3_wrap0_s3_clk_src.clkr,
2188 [GCC_QUPV3_WRAP0_S4_CLK] = &gcc_qupv3_wrap0_s4_clk.clkr,
2189 [GCC_QUPV3_WRAP0_S4_CLK_SRC] = &gcc_qupv3_wrap0_s4_clk_src.clkr,
2190 [GCC_QUPV3_WRAP0_S5_CLK] = &gcc_qupv3_wrap0_s5_clk.clkr,
2191 [GCC_QUPV3_WRAP0_S5_CLK_SRC] = &gcc_qupv3_wrap0_s5_clk_src.clkr,
2192 [GCC_QUPV3_WRAP1_CORE_2X_CLK] = &gcc_qupv3_wrap1_core_2x_clk.clkr,
2193 [GCC_QUPV3_WRAP1_CORE_CLK] = &gcc_qupv3_wrap1_core_clk.clkr,
2194 [GCC_QUPV3_WRAP1_S0_CLK] = &gcc_qupv3_wrap1_s0_clk.clkr,
2195 [GCC_QUPV3_WRAP1_S0_CLK_SRC] = &gcc_qupv3_wrap1_s0_clk_src.clkr,
2196 [GCC_QUPV3_WRAP1_S1_CLK] = &gcc_qupv3_wrap1_s1_clk.clkr,
2197 [GCC_QUPV3_WRAP1_S1_CLK_SRC] = &gcc_qupv3_wrap1_s1_clk_src.clkr,
2198 [GCC_QUPV3_WRAP1_S2_CLK] = &gcc_qupv3_wrap1_s2_clk.clkr,
2199 [GCC_QUPV3_WRAP1_S2_CLK_SRC] = &gcc_qupv3_wrap1_s2_clk_src.clkr,
2200 [GCC_QUPV3_WRAP1_S3_CLK] = &gcc_qupv3_wrap1_s3_clk.clkr,
2201 [GCC_QUPV3_WRAP1_S3_CLK_SRC] = &gcc_qupv3_wrap1_s3_clk_src.clkr,
2202 [GCC_QUPV3_WRAP1_S4_CLK] = &gcc_qupv3_wrap1_s4_clk.clkr,
2203 [GCC_QUPV3_WRAP1_S4_CLK_SRC] = &gcc_qupv3_wrap1_s4_clk_src.clkr,
2204 [GCC_QUPV3_WRAP1_S5_CLK] = &gcc_qupv3_wrap1_s5_clk.clkr,
2205 [GCC_QUPV3_WRAP1_S5_CLK_SRC] = &gcc_qupv3_wrap1_s5_clk_src.clkr,
2206 [GCC_QUPV3_WRAP_0_M_AHB_CLK] = &gcc_qupv3_wrap_0_m_ahb_clk.clkr,
2207 [GCC_QUPV3_WRAP_0_S_AHB_CLK] = &gcc_qupv3_wrap_0_s_ahb_clk.clkr,
2208 [GCC_QUPV3_WRAP_1_M_AHB_CLK] = &gcc_qupv3_wrap_1_m_ahb_clk.clkr,
2209 [GCC_QUPV3_WRAP_1_S_AHB_CLK] = &gcc_qupv3_wrap_1_s_ahb_clk.clkr,
2210 [GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
2211 [GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
2212 [GCC_SDCC1_APPS_CLK_SRC] = &gcc_sdcc1_apps_clk_src.clkr,
2213 [GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
2214 [GCC_SDCC1_ICE_CORE_CLK_SRC] = &gcc_sdcc1_ice_core_clk_src.clkr,
2215 [GCC_USB30_PRIM_MASTER_CLK] = &gcc_usb30_prim_master_clk.clkr,
2216 [GCC_USB30_PRIM_MASTER_CLK_SRC] = &gcc_usb30_prim_master_clk_src.clkr,
2217 [GCC_USB30_PRIM_MOCK_UTMI_CLK] = &gcc_usb30_prim_mock_utmi_clk.clkr,
2218 [GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC] = &gcc_usb30_prim_mock_utmi_clk_src.clkr,
2219 [GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC] = &gcc_usb30_prim_mock_utmi_postdiv_clk_src.clkr,
2220 [GCC_USB30_PRIM_SLEEP_CLK] = &gcc_usb30_prim_sleep_clk.clkr,
2221 [GCC_USB3_PRIM_PHY_AUX_CLK] = &gcc_usb3_prim_phy_aux_clk.clkr,
2222 [GCC_USB3_PRIM_PHY_AUX_CLK_SRC] = &gcc_usb3_prim_phy_aux_clk_src.clkr,
2223 [GCC_USB3_PRIM_PHY_COM_AUX_CLK] = &gcc_usb3_prim_phy_com_aux_clk.clkr,
2224 [GCC_USB3_PRIM_PHY_PIPE_CLK] = &gcc_usb3_prim_phy_pipe_clk.clkr,
2225 [GCC_USB3_PRIM_PHY_PIPE_CLK_SRC] = &gcc_usb3_prim_phy_pipe_clk_src.clkr,
2226 [GCC_VIDEO_AXI0_CLK] = &gcc_video_axi0_clk.clkr,
2227 [GCC_VIDEO_AXI1_CLK] = &gcc_video_axi1_clk.clkr,
2314 { .compatible = "qcom,sar2130p-gcc" },
2333 /* Keep some clocks always-on */ in gcc_sar2130p_probe()
2339 /* Clear GDSC_SLEEP_ENA_VOTE to stop votes being auto-removed in sleep. */ in gcc_sar2130p_probe()
2342 return qcom_cc_really_probe(&pdev->dev, &gcc_sar2130p_desc, regmap); in gcc_sar2130p_probe()
2348 .name = "gcc-sar2130p",