Lines Matching +full:clkr +full:- +full:- +full:-

1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2018-2020, 2022, The Linux Foundation. All rights reserved.
6 #include <linux/clk-provider.h>
11 #include <linux/reset-controller.h>
13 #include <dt-bindings/clock/qcom,dispcc-sm8250.h>
15 #include "clk-alpha-pll.h"
16 #include "clk-branch.h"
17 #include "clk-rcg.h"
18 #include "clk-regmap-divider.h"
75 .clkr.hw.init = &disp_cc_pll0_init
103 .clkr.hw.init = &disp_cc_pll1_init
153 { .hw = &disp_cc_pll1.clkr.hw },
176 { .hw = &disp_cc_pll0.clkr.hw },
177 { .hw = &disp_cc_pll1.clkr.hw },
200 { .hw = &disp_cc_pll1.clkr.hw },
201 /* { .hw = &disp_cc_pll1_out_even.clkr.hw }, */
217 .clkr.hw.init = &(struct clk_init_data){
236 .clkr.hw.init = &(struct clk_init_data){
250 .clkr.hw.init = &(struct clk_init_data){
265 .clkr.hw.init = &(struct clk_init_data){
280 .clkr.hw.init = &(struct clk_init_data){
294 .clkr.hw.init = &(struct clk_init_data){
307 .clkr.hw.init = &(struct clk_init_data){
320 .clkr.hw.init = &(struct clk_init_data){
333 .clkr.hw.init = &(struct clk_init_data){
346 .clkr.hw.init = &(struct clk_init_data){
360 .clkr.hw.init = &(struct clk_init_data){
375 .clkr.hw.init = &(struct clk_init_data){
389 .clkr.hw.init = &(struct clk_init_data){
403 .clkr.hw.init = &(struct clk_init_data){
414 .clkr = {
420 &disp_cc_mdss_edp_aux_clk_src.clkr.hw,
432 .clkr = {
438 &disp_cc_mdss_edp_gtc_clk_src.clkr.hw,
450 .clkr = {
456 &disp_cc_mdss_edp_link_clk_src.clkr.hw,
469 .clkr.hw.init = &(struct clk_init_data) {
472 &disp_cc_mdss_edp_link_clk_src.clkr.hw,
482 .clkr = {
488 &disp_cc_mdss_edp_link_div_clk_src.clkr.hw,
500 .clkr = {
506 &disp_cc_mdss_edp_pixel_clk_src.clkr.hw,
521 .clkr.hw.init = &(struct clk_init_data){
536 .clkr.hw.init = &(struct clk_init_data){
563 .clkr.hw.init = &(struct clk_init_data){
577 .clkr.hw.init = &(struct clk_init_data){
591 .clkr.hw.init = &(struct clk_init_data){
615 .clkr.hw.init = &(struct clk_init_data){
630 .clkr.hw.init = &(struct clk_init_data){
643 .clkr.hw.init = &(struct clk_init_data) {
646 &disp_cc_mdss_byte0_clk_src.clkr.hw,
658 .clkr.hw.init = &(struct clk_init_data) {
661 &disp_cc_mdss_byte1_clk_src.clkr.hw,
673 .clkr.hw.init = &(struct clk_init_data) {
676 &disp_cc_mdss_dp_link1_clk_src.clkr.hw,
688 .clkr.hw.init = &(struct clk_init_data) {
691 &disp_cc_mdss_dp_link_clk_src.clkr.hw,
701 .clkr = {
707 &disp_cc_mdss_ahb_clk_src.clkr.hw,
719 .clkr = {
725 &disp_cc_mdss_byte0_clk_src.clkr.hw,
737 .clkr = {
743 &disp_cc_mdss_byte0_div_clk_src.clkr.hw,
755 .clkr = {
761 &disp_cc_mdss_byte1_clk_src.clkr.hw,
773 .clkr = {
779 &disp_cc_mdss_byte1_div_clk_src.clkr.hw,
791 .clkr = {
797 &disp_cc_mdss_dp_aux1_clk_src.clkr.hw,
809 .clkr = {
815 &disp_cc_mdss_dp_aux_clk_src.clkr.hw,
827 .clkr = {
833 &disp_cc_mdss_dp_link1_clk_src.clkr.hw,
845 .clkr = {
851 &disp_cc_mdss_dp_link1_div_clk_src.clkr.hw,
863 .clkr = {
869 &disp_cc_mdss_dp_link_clk_src.clkr.hw,
881 .clkr = {
887 &disp_cc_mdss_dp_link_div_clk_src.clkr.hw,
899 .clkr = {
905 &disp_cc_mdss_dp_pixel1_clk_src.clkr.hw,
917 .clkr = {
923 &disp_cc_mdss_dp_pixel2_clk_src.clkr.hw,
935 .clkr = {
941 &disp_cc_mdss_dp_pixel_clk_src.clkr.hw,
953 .clkr = {
959 &disp_cc_mdss_esc0_clk_src.clkr.hw,
971 .clkr = {
977 &disp_cc_mdss_esc1_clk_src.clkr.hw,
989 .clkr = {
995 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1007 .clkr = {
1013 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1025 .clkr = {
1031 &disp_cc_mdss_ahb_clk_src.clkr.hw,
1043 .clkr = {
1049 &disp_cc_mdss_pclk0_clk_src.clkr.hw,
1061 .clkr = {
1067 &disp_cc_mdss_pclk1_clk_src.clkr.hw,
1079 .clkr = {
1085 &disp_cc_mdss_rot_clk_src.clkr.hw,
1097 .clkr = {
1103 &disp_cc_mdss_ahb_clk_src.clkr.hw,
1115 .clkr = {
1121 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1133 .clkr = {
1139 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1161 [DISP_CC_MDSS_AHB_CLK] = &disp_cc_mdss_ahb_clk.clkr,
1162 [DISP_CC_MDSS_AHB_CLK_SRC] = &disp_cc_mdss_ahb_clk_src.clkr,
1163 [DISP_CC_MDSS_BYTE0_CLK] = &disp_cc_mdss_byte0_clk.clkr,
1164 [DISP_CC_MDSS_BYTE0_CLK_SRC] = &disp_cc_mdss_byte0_clk_src.clkr,
1165 [DISP_CC_MDSS_BYTE0_DIV_CLK_SRC] = &disp_cc_mdss_byte0_div_clk_src.clkr,
1166 [DISP_CC_MDSS_BYTE0_INTF_CLK] = &disp_cc_mdss_byte0_intf_clk.clkr,
1167 [DISP_CC_MDSS_BYTE1_CLK] = &disp_cc_mdss_byte1_clk.clkr,
1168 [DISP_CC_MDSS_BYTE1_CLK_SRC] = &disp_cc_mdss_byte1_clk_src.clkr,
1169 [DISP_CC_MDSS_BYTE1_DIV_CLK_SRC] = &disp_cc_mdss_byte1_div_clk_src.clkr,
1170 [DISP_CC_MDSS_BYTE1_INTF_CLK] = &disp_cc_mdss_byte1_intf_clk.clkr,
1171 [DISP_CC_MDSS_DP_AUX1_CLK] = &disp_cc_mdss_dp_aux1_clk.clkr,
1172 [DISP_CC_MDSS_DP_AUX1_CLK_SRC] = &disp_cc_mdss_dp_aux1_clk_src.clkr,
1173 [DISP_CC_MDSS_DP_AUX_CLK] = &disp_cc_mdss_dp_aux_clk.clkr,
1174 [DISP_CC_MDSS_DP_AUX_CLK_SRC] = &disp_cc_mdss_dp_aux_clk_src.clkr,
1175 [DISP_CC_MDSS_DP_LINK1_CLK] = &disp_cc_mdss_dp_link1_clk.clkr,
1176 [DISP_CC_MDSS_DP_LINK1_CLK_SRC] = &disp_cc_mdss_dp_link1_clk_src.clkr,
1177 [DISP_CC_MDSS_DP_LINK1_DIV_CLK_SRC] = &disp_cc_mdss_dp_link1_div_clk_src.clkr,
1178 [DISP_CC_MDSS_DP_LINK1_INTF_CLK] = &disp_cc_mdss_dp_link1_intf_clk.clkr,
1179 [DISP_CC_MDSS_DP_LINK_CLK] = &disp_cc_mdss_dp_link_clk.clkr,
1180 [DISP_CC_MDSS_DP_LINK_CLK_SRC] = &disp_cc_mdss_dp_link_clk_src.clkr,
1181 [DISP_CC_MDSS_DP_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dp_link_div_clk_src.clkr,
1182 [DISP_CC_MDSS_DP_LINK_INTF_CLK] = &disp_cc_mdss_dp_link_intf_clk.clkr,
1183 [DISP_CC_MDSS_DP_PIXEL1_CLK] = &disp_cc_mdss_dp_pixel1_clk.clkr,
1184 [DISP_CC_MDSS_DP_PIXEL1_CLK_SRC] = &disp_cc_mdss_dp_pixel1_clk_src.clkr,
1185 [DISP_CC_MDSS_DP_PIXEL2_CLK] = &disp_cc_mdss_dp_pixel2_clk.clkr,
1186 [DISP_CC_MDSS_DP_PIXEL2_CLK_SRC] = &disp_cc_mdss_dp_pixel2_clk_src.clkr,
1187 [DISP_CC_MDSS_DP_PIXEL_CLK] = &disp_cc_mdss_dp_pixel_clk.clkr,
1188 [DISP_CC_MDSS_DP_PIXEL_CLK_SRC] = &disp_cc_mdss_dp_pixel_clk_src.clkr,
1189 [DISP_CC_MDSS_EDP_AUX_CLK] = &disp_cc_mdss_edp_aux_clk.clkr,
1190 [DISP_CC_MDSS_EDP_AUX_CLK_SRC] = &disp_cc_mdss_edp_aux_clk_src.clkr,
1191 [DISP_CC_MDSS_EDP_GTC_CLK] = &disp_cc_mdss_edp_gtc_clk.clkr,
1192 [DISP_CC_MDSS_EDP_GTC_CLK_SRC] = &disp_cc_mdss_edp_gtc_clk_src.clkr,
1193 [DISP_CC_MDSS_EDP_LINK_CLK] = &disp_cc_mdss_edp_link_clk.clkr,
1194 [DISP_CC_MDSS_EDP_LINK_CLK_SRC] = &disp_cc_mdss_edp_link_clk_src.clkr,
1195 [DISP_CC_MDSS_EDP_LINK_DIV_CLK_SRC] = &disp_cc_mdss_edp_link_div_clk_src.clkr,
1196 [DISP_CC_MDSS_EDP_LINK_INTF_CLK] = &disp_cc_mdss_edp_link_intf_clk.clkr,
1197 [DISP_CC_MDSS_EDP_PIXEL_CLK] = &disp_cc_mdss_edp_pixel_clk.clkr,
1198 [DISP_CC_MDSS_EDP_PIXEL_CLK_SRC] = &disp_cc_mdss_edp_pixel_clk_src.clkr,
1199 [DISP_CC_MDSS_ESC0_CLK] = &disp_cc_mdss_esc0_clk.clkr,
1200 [DISP_CC_MDSS_ESC0_CLK_SRC] = &disp_cc_mdss_esc0_clk_src.clkr,
1201 [DISP_CC_MDSS_ESC1_CLK] = &disp_cc_mdss_esc1_clk.clkr,
1202 [DISP_CC_MDSS_ESC1_CLK_SRC] = &disp_cc_mdss_esc1_clk_src.clkr,
1203 [DISP_CC_MDSS_MDP_CLK] = &disp_cc_mdss_mdp_clk.clkr,
1204 [DISP_CC_MDSS_MDP_CLK_SRC] = &disp_cc_mdss_mdp_clk_src.clkr,
1205 [DISP_CC_MDSS_MDP_LUT_CLK] = &disp_cc_mdss_mdp_lut_clk.clkr,
1206 [DISP_CC_MDSS_NON_GDSC_AHB_CLK] = &disp_cc_mdss_non_gdsc_ahb_clk.clkr,
1207 [DISP_CC_MDSS_PCLK0_CLK] = &disp_cc_mdss_pclk0_clk.clkr,
1208 [DISP_CC_MDSS_PCLK0_CLK_SRC] = &disp_cc_mdss_pclk0_clk_src.clkr,
1209 [DISP_CC_MDSS_PCLK1_CLK] = &disp_cc_mdss_pclk1_clk.clkr,
1210 [DISP_CC_MDSS_PCLK1_CLK_SRC] = &disp_cc_mdss_pclk1_clk_src.clkr,
1211 [DISP_CC_MDSS_ROT_CLK] = &disp_cc_mdss_rot_clk.clkr,
1212 [DISP_CC_MDSS_ROT_CLK_SRC] = &disp_cc_mdss_rot_clk_src.clkr,
1213 [DISP_CC_MDSS_RSCC_AHB_CLK] = &disp_cc_mdss_rscc_ahb_clk.clkr,
1214 [DISP_CC_MDSS_RSCC_VSYNC_CLK] = &disp_cc_mdss_rscc_vsync_clk.clkr,
1215 [DISP_CC_MDSS_VSYNC_CLK] = &disp_cc_mdss_vsync_clk.clkr,
1216 [DISP_CC_MDSS_VSYNC_CLK_SRC] = &disp_cc_mdss_vsync_clk_src.clkr,
1217 [DISP_CC_PLL0] = &disp_cc_pll0.clkr,
1218 [DISP_CC_PLL1] = &disp_cc_pll1.clkr,
1249 { .compatible = "qcom,sc8180x-dispcc" },
1250 { .compatible = "qcom,sm8150-dispcc" },
1251 { .compatible = "qcom,sm8250-dispcc" },
1252 { .compatible = "qcom,sm8350-dispcc" },
1262 ret = devm_pm_runtime_enable(&pdev->dev); in disp_cc_sm8250_probe()
1266 ret = pm_runtime_resume_and_get(&pdev->dev); in disp_cc_sm8250_probe()
1272 pm_runtime_put(&pdev->dev); in disp_cc_sm8250_probe()
1278 if (of_device_is_compatible(pdev->dev.of_node, "qcom,sc8180x-dispcc") || in disp_cc_sm8250_probe()
1279 of_device_is_compatible(pdev->dev.of_node, "qcom,sm8150-dispcc")) { in disp_cc_sm8250_probe()
1289 disp_cc_mdss_dp_link_intf_clk.clkr.hw.init->parent_hws[0] = in disp_cc_sm8250_probe()
1290 &disp_cc_mdss_dp_link_clk_src.clkr.hw; in disp_cc_sm8250_probe()
1291 disp_cc_mdss_dp_link1_intf_clk.clkr.hw.init->parent_hws[0] = in disp_cc_sm8250_probe()
1292 &disp_cc_mdss_dp_link1_clk_src.clkr.hw; in disp_cc_sm8250_probe()
1293 disp_cc_mdss_edp_link_intf_clk.clkr.hw.init->parent_hws[0] = in disp_cc_sm8250_probe()
1294 &disp_cc_mdss_edp_link_clk_src.clkr.hw; in disp_cc_sm8250_probe()
1299 } else if (of_device_is_compatible(pdev->dev.of_node, "qcom,sm8350-dispcc")) { in disp_cc_sm8250_probe()
1337 rcgs[i]->cmd_rcgr -= 4; in disp_cc_sm8250_probe()
1340 divs[i]->reg -= 4; in disp_cc_sm8250_probe()
1341 divs[i]->width = 4; in disp_cc_sm8250_probe()
1344 disp_cc_mdss_ahb_clk.halt_reg -= 4; in disp_cc_sm8250_probe()
1345 disp_cc_mdss_ahb_clk.clkr.enable_reg -= 4; in disp_cc_sm8250_probe()
1365 if (of_device_is_compatible(pdev->dev.of_node, "qcom,sm8350-dispcc")) { in disp_cc_sm8250_probe()
1376 /* DISP_CC_XO_CLK always-on */ in disp_cc_sm8250_probe()
1381 pm_runtime_put(&pdev->dev); in disp_cc_sm8250_probe()
1389 .name = "disp_cc-sm8250",