Lines Matching +full:clkr +full:- +full:- +full:-
1 // SPDX-License-Identifier: GPL-2.0-only
8 #include <linux/clk-provider.h>
17 #include <dt-bindings/clock/qcom,sm8550-dispcc.h>
20 #include "clk-alpha-pll.h"
21 #include "clk-branch.h"
22 #include "clk-pll.h"
23 #include "clk-rcg.h"
24 #include "clk-regmap.h"
25 #include "clk-regmap-divider.h"
26 #include "clk-regmap-mux.h"
97 .clkr = {
128 .clkr = {
234 { .hw = &disp_cc_pll1.clkr.hw },
235 { .hw = &disp_cc_pll1.clkr.hw },
263 { .hw = &disp_cc_pll0.clkr.hw },
264 { .hw = &disp_cc_pll1.clkr.hw },
265 { .hw = &disp_cc_pll1.clkr.hw },
289 .clkr.hw.init = &(const struct clk_init_data) {
309 .clkr.hw.init = &(const struct clk_init_data) {
324 .clkr.hw.init = &(const struct clk_init_data) {
339 .clkr.hw.init = &(const struct clk_init_data) {
353 .clkr.hw.init = &(const struct clk_init_data) {
368 .clkr.hw.init = &(const struct clk_init_data) {
383 .clkr.hw.init = &(const struct clk_init_data) {
398 .clkr.hw.init = &(const struct clk_init_data) {
412 .clkr.hw.init = &(const struct clk_init_data) {
427 .clkr.hw.init = &(const struct clk_init_data) {
442 .clkr.hw.init = &(const struct clk_init_data) {
457 .clkr.hw.init = &(const struct clk_init_data) {
471 .clkr.hw.init = &(const struct clk_init_data) {
486 .clkr.hw.init = &(const struct clk_init_data) {
501 .clkr.hw.init = &(const struct clk_init_data) {
516 .clkr.hw.init = &(const struct clk_init_data) {
530 .clkr.hw.init = &(const struct clk_init_data) {
545 .clkr.hw.init = &(const struct clk_init_data) {
560 .clkr.hw.init = &(const struct clk_init_data) {
575 .clkr.hw.init = &(const struct clk_init_data) {
615 .clkr.hw.init = &(const struct clk_init_data) {
630 .clkr.hw.init = &(const struct clk_init_data) {
645 .clkr.hw.init = &(const struct clk_init_data) {
660 .clkr.hw.init = &(const struct clk_init_data) {
680 .clkr.hw.init = &(const struct clk_init_data) {
695 .clkr.hw.init = &(const struct clk_init_data) {
708 .clkr.hw.init = &(const struct clk_init_data) {
711 &disp_cc_mdss_byte0_clk_src.clkr.hw,
722 .clkr.hw.init = &(const struct clk_init_data) {
725 &disp_cc_mdss_byte1_clk_src.clkr.hw,
736 .clkr.hw.init = &(const struct clk_init_data) {
739 &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
751 .clkr.hw.init = &(const struct clk_init_data) {
754 &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
766 .clkr.hw.init = &(const struct clk_init_data) {
769 &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
781 .clkr.hw.init = &(const struct clk_init_data) {
784 &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
795 .clkr = {
801 &disp_cc_xo_clk_src.clkr.hw,
813 .clkr = {
819 &disp_cc_mdss_ahb_clk_src.clkr.hw,
831 .clkr = {
837 &disp_cc_mdss_ahb_clk_src.clkr.hw,
849 .clkr = {
855 &disp_cc_mdss_byte0_clk_src.clkr.hw,
867 .clkr = {
873 &disp_cc_mdss_byte0_div_clk_src.clkr.hw,
885 .clkr = {
891 &disp_cc_mdss_byte1_clk_src.clkr.hw,
903 .clkr = {
909 &disp_cc_mdss_byte1_div_clk_src.clkr.hw,
921 .clkr = {
927 &disp_cc_mdss_dptx0_aux_clk_src.clkr.hw,
939 .clkr = {
945 &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
957 .clkr = {
963 &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
975 .clkr = {
981 &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
993 .clkr = {
999 &disp_cc_mdss_dptx0_pixel0_clk_src.clkr.hw,
1011 .clkr = {
1017 &disp_cc_mdss_dptx0_pixel1_clk_src.clkr.hw,
1029 .clkr = {
1035 &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1047 .clkr = {
1053 &disp_cc_mdss_dptx1_aux_clk_src.clkr.hw,
1065 .clkr = {
1071 &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
1083 .clkr = {
1089 &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
1101 .clkr = {
1107 &disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1119 .clkr = {
1125 &disp_cc_mdss_dptx1_pixel0_clk_src.clkr.hw,
1137 .clkr = {
1143 &disp_cc_mdss_dptx1_pixel1_clk_src.clkr.hw,
1155 .clkr = {
1161 &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1173 .clkr = {
1179 &disp_cc_mdss_dptx2_aux_clk_src.clkr.hw,
1191 .clkr = {
1197 &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
1209 .clkr = {
1215 &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
1227 .clkr = {
1233 &disp_cc_mdss_dptx2_link_div_clk_src.clkr.hw,
1245 .clkr = {
1251 &disp_cc_mdss_dptx2_pixel0_clk_src.clkr.hw,
1263 .clkr = {
1269 &disp_cc_mdss_dptx2_pixel1_clk_src.clkr.hw,
1281 .clkr = {
1287 &disp_cc_mdss_dptx3_aux_clk_src.clkr.hw,
1299 .clkr = {
1305 &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
1317 .clkr = {
1323 &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
1335 .clkr = {
1341 &disp_cc_mdss_dptx3_link_div_clk_src.clkr.hw,
1353 .clkr = {
1359 &disp_cc_mdss_dptx3_pixel0_clk_src.clkr.hw,
1371 .clkr = {
1377 &disp_cc_mdss_esc0_clk_src.clkr.hw,
1389 .clkr = {
1395 &disp_cc_mdss_esc1_clk_src.clkr.hw,
1407 .clkr = {
1413 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1425 .clkr = {
1431 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1443 .clkr = {
1449 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1461 .clkr = {
1467 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1479 .clkr = {
1485 &disp_cc_mdss_ahb_clk_src.clkr.hw,
1497 .clkr = {
1503 &disp_cc_mdss_pclk0_clk_src.clkr.hw,
1515 .clkr = {
1521 &disp_cc_mdss_pclk1_clk_src.clkr.hw,
1533 .clkr = {
1539 &disp_cc_mdss_ahb_clk_src.clkr.hw,
1551 .clkr = {
1557 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1569 .clkr = {
1575 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1587 .clkr = {
1593 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1605 .clkr = {
1611 &disp_cc_sleep_clk_src.clkr.hw,
1639 [DISP_CC_MDSS_ACCU_CLK] = &disp_cc_mdss_accu_clk.clkr,
1640 [DISP_CC_MDSS_AHB1_CLK] = &disp_cc_mdss_ahb1_clk.clkr,
1641 [DISP_CC_MDSS_AHB_CLK] = &disp_cc_mdss_ahb_clk.clkr,
1642 [DISP_CC_MDSS_AHB_CLK_SRC] = &disp_cc_mdss_ahb_clk_src.clkr,
1643 [DISP_CC_MDSS_BYTE0_CLK] = &disp_cc_mdss_byte0_clk.clkr,
1644 [DISP_CC_MDSS_BYTE0_CLK_SRC] = &disp_cc_mdss_byte0_clk_src.clkr,
1645 [DISP_CC_MDSS_BYTE0_DIV_CLK_SRC] = &disp_cc_mdss_byte0_div_clk_src.clkr,
1646 [DISP_CC_MDSS_BYTE0_INTF_CLK] = &disp_cc_mdss_byte0_intf_clk.clkr,
1647 [DISP_CC_MDSS_BYTE1_CLK] = &disp_cc_mdss_byte1_clk.clkr,
1648 [DISP_CC_MDSS_BYTE1_CLK_SRC] = &disp_cc_mdss_byte1_clk_src.clkr,
1649 [DISP_CC_MDSS_BYTE1_DIV_CLK_SRC] = &disp_cc_mdss_byte1_div_clk_src.clkr,
1650 [DISP_CC_MDSS_BYTE1_INTF_CLK] = &disp_cc_mdss_byte1_intf_clk.clkr,
1651 [DISP_CC_MDSS_DPTX0_AUX_CLK] = &disp_cc_mdss_dptx0_aux_clk.clkr,
1652 [DISP_CC_MDSS_DPTX0_AUX_CLK_SRC] = &disp_cc_mdss_dptx0_aux_clk_src.clkr,
1653 [DISP_CC_MDSS_DPTX0_CRYPTO_CLK] = &disp_cc_mdss_dptx0_crypto_clk.clkr,
1654 [DISP_CC_MDSS_DPTX0_LINK_CLK] = &disp_cc_mdss_dptx0_link_clk.clkr,
1655 [DISP_CC_MDSS_DPTX0_LINK_CLK_SRC] = &disp_cc_mdss_dptx0_link_clk_src.clkr,
1656 [DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx0_link_div_clk_src.clkr,
1657 [DISP_CC_MDSS_DPTX0_LINK_INTF_CLK] = &disp_cc_mdss_dptx0_link_intf_clk.clkr,
1658 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK] = &disp_cc_mdss_dptx0_pixel0_clk.clkr,
1659 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx0_pixel0_clk_src.clkr,
1660 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK] = &disp_cc_mdss_dptx0_pixel1_clk.clkr,
1661 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx0_pixel1_clk_src.clkr,
1663 &disp_cc_mdss_dptx0_usb_router_link_intf_clk.clkr,
1664 [DISP_CC_MDSS_DPTX1_AUX_CLK] = &disp_cc_mdss_dptx1_aux_clk.clkr,
1665 [DISP_CC_MDSS_DPTX1_AUX_CLK_SRC] = &disp_cc_mdss_dptx1_aux_clk_src.clkr,
1666 [DISP_CC_MDSS_DPTX1_CRYPTO_CLK] = &disp_cc_mdss_dptx1_crypto_clk.clkr,
1667 [DISP_CC_MDSS_DPTX1_LINK_CLK] = &disp_cc_mdss_dptx1_link_clk.clkr,
1668 [DISP_CC_MDSS_DPTX1_LINK_CLK_SRC] = &disp_cc_mdss_dptx1_link_clk_src.clkr,
1669 [DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx1_link_div_clk_src.clkr,
1670 [DISP_CC_MDSS_DPTX1_LINK_INTF_CLK] = &disp_cc_mdss_dptx1_link_intf_clk.clkr,
1671 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK] = &disp_cc_mdss_dptx1_pixel0_clk.clkr,
1672 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx1_pixel0_clk_src.clkr,
1673 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK] = &disp_cc_mdss_dptx1_pixel1_clk.clkr,
1674 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx1_pixel1_clk_src.clkr,
1676 &disp_cc_mdss_dptx1_usb_router_link_intf_clk.clkr,
1677 [DISP_CC_MDSS_DPTX2_AUX_CLK] = &disp_cc_mdss_dptx2_aux_clk.clkr,
1678 [DISP_CC_MDSS_DPTX2_AUX_CLK_SRC] = &disp_cc_mdss_dptx2_aux_clk_src.clkr,
1679 [DISP_CC_MDSS_DPTX2_CRYPTO_CLK] = &disp_cc_mdss_dptx2_crypto_clk.clkr,
1680 [DISP_CC_MDSS_DPTX2_LINK_CLK] = &disp_cc_mdss_dptx2_link_clk.clkr,
1681 [DISP_CC_MDSS_DPTX2_LINK_CLK_SRC] = &disp_cc_mdss_dptx2_link_clk_src.clkr,
1682 [DISP_CC_MDSS_DPTX2_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx2_link_div_clk_src.clkr,
1683 [DISP_CC_MDSS_DPTX2_LINK_INTF_CLK] = &disp_cc_mdss_dptx2_link_intf_clk.clkr,
1684 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK] = &disp_cc_mdss_dptx2_pixel0_clk.clkr,
1685 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx2_pixel0_clk_src.clkr,
1686 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK] = &disp_cc_mdss_dptx2_pixel1_clk.clkr,
1687 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx2_pixel1_clk_src.clkr,
1688 [DISP_CC_MDSS_DPTX3_AUX_CLK] = &disp_cc_mdss_dptx3_aux_clk.clkr,
1689 [DISP_CC_MDSS_DPTX3_AUX_CLK_SRC] = &disp_cc_mdss_dptx3_aux_clk_src.clkr,
1690 [DISP_CC_MDSS_DPTX3_CRYPTO_CLK] = &disp_cc_mdss_dptx3_crypto_clk.clkr,
1691 [DISP_CC_MDSS_DPTX3_LINK_CLK] = &disp_cc_mdss_dptx3_link_clk.clkr,
1692 [DISP_CC_MDSS_DPTX3_LINK_CLK_SRC] = &disp_cc_mdss_dptx3_link_clk_src.clkr,
1693 [DISP_CC_MDSS_DPTX3_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx3_link_div_clk_src.clkr,
1694 [DISP_CC_MDSS_DPTX3_LINK_INTF_CLK] = &disp_cc_mdss_dptx3_link_intf_clk.clkr,
1695 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK] = &disp_cc_mdss_dptx3_pixel0_clk.clkr,
1696 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx3_pixel0_clk_src.clkr,
1697 [DISP_CC_MDSS_ESC0_CLK] = &disp_cc_mdss_esc0_clk.clkr,
1698 [DISP_CC_MDSS_ESC0_CLK_SRC] = &disp_cc_mdss_esc0_clk_src.clkr,
1699 [DISP_CC_MDSS_ESC1_CLK] = &disp_cc_mdss_esc1_clk.clkr,
1700 [DISP_CC_MDSS_ESC1_CLK_SRC] = &disp_cc_mdss_esc1_clk_src.clkr,
1701 [DISP_CC_MDSS_MDP1_CLK] = &disp_cc_mdss_mdp1_clk.clkr,
1702 [DISP_CC_MDSS_MDP_CLK] = &disp_cc_mdss_mdp_clk.clkr,
1703 [DISP_CC_MDSS_MDP_CLK_SRC] = &disp_cc_mdss_mdp_clk_src.clkr,
1704 [DISP_CC_MDSS_MDP_LUT1_CLK] = &disp_cc_mdss_mdp_lut1_clk.clkr,
1705 [DISP_CC_MDSS_MDP_LUT_CLK] = &disp_cc_mdss_mdp_lut_clk.clkr,
1706 [DISP_CC_MDSS_NON_GDSC_AHB_CLK] = &disp_cc_mdss_non_gdsc_ahb_clk.clkr,
1707 [DISP_CC_MDSS_PCLK0_CLK] = &disp_cc_mdss_pclk0_clk.clkr,
1708 [DISP_CC_MDSS_PCLK0_CLK_SRC] = &disp_cc_mdss_pclk0_clk_src.clkr,
1709 [DISP_CC_MDSS_PCLK1_CLK] = &disp_cc_mdss_pclk1_clk.clkr,
1710 [DISP_CC_MDSS_PCLK1_CLK_SRC] = &disp_cc_mdss_pclk1_clk_src.clkr,
1711 [DISP_CC_MDSS_RSCC_AHB_CLK] = &disp_cc_mdss_rscc_ahb_clk.clkr,
1712 [DISP_CC_MDSS_RSCC_VSYNC_CLK] = &disp_cc_mdss_rscc_vsync_clk.clkr,
1713 [DISP_CC_MDSS_VSYNC1_CLK] = &disp_cc_mdss_vsync1_clk.clkr,
1714 [DISP_CC_MDSS_VSYNC_CLK] = &disp_cc_mdss_vsync_clk.clkr,
1715 [DISP_CC_MDSS_VSYNC_CLK_SRC] = &disp_cc_mdss_vsync_clk_src.clkr,
1716 [DISP_CC_PLL0] = &disp_cc_pll0.clkr,
1717 [DISP_CC_PLL1] = &disp_cc_pll1.clkr,
1718 [DISP_CC_SLEEP_CLK] = &disp_cc_sleep_clk.clkr,
1719 [DISP_CC_SLEEP_CLK_SRC] = &disp_cc_sleep_clk_src.clkr,
1720 [DISP_CC_XO_CLK_SRC] = &disp_cc_xo_clk_src.clkr,
1753 { .compatible = "qcom,sm8550-dispcc" },
1754 { .compatible = "qcom,sm8650-dispcc" },
1764 ret = devm_pm_runtime_enable(&pdev->dev); in disp_cc_sm8550_probe()
1768 ret = pm_runtime_resume_and_get(&pdev->dev); in disp_cc_sm8550_probe()
1778 if (of_device_is_compatible(pdev->dev.of_node, "qcom,sm8650-dispcc")) { in disp_cc_sm8550_probe()
1781 disp_cc_mdss_dptx1_usb_router_link_intf_clk.clkr.hw.init->parent_hws[0] = in disp_cc_sm8550_probe()
1782 &disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw; in disp_cc_sm8550_probe()
1791 /* Keep some clocks always-on */ in disp_cc_sm8550_probe()
1794 ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_sm8550_desc, regmap); in disp_cc_sm8550_probe()
1798 pm_runtime_put(&pdev->dev); in disp_cc_sm8550_probe()
1803 pm_runtime_put_sync(&pdev->dev); in disp_cc_sm8550_probe()
1811 .name = "disp_cc-sm8550",