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

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
8 #include <linux/clk-provider.h>
17 #include <dt-bindings/clock/qcom,sm8450-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"
93 .clkr = {
120 .clkr = {
215 { .hw = &disp_cc_pll0.clkr.hw },
216 { .hw = &disp_cc_pll1.clkr.hw },
217 { .hw = &disp_cc_pll1.clkr.hw },
228 { .hw = &disp_cc_pll1.clkr.hw },
229 { .hw = &disp_cc_pll1.clkr.hw },
253 .clkr.hw.init = &(struct clk_init_data) {
273 .clkr.hw.init = &(struct clk_init_data) {
288 .clkr.hw.init = &(struct clk_init_data) {
303 .clkr.hw.init = &(struct clk_init_data) {
317 .clkr.hw.init = &(struct clk_init_data) {
332 .clkr.hw.init = &(struct clk_init_data) {
347 .clkr.hw.init = &(struct clk_init_data) {
362 .clkr.hw.init = &(struct clk_init_data) {
376 .clkr.hw.init = &(struct clk_init_data) {
391 .clkr.hw.init = &(struct clk_init_data) {
406 .clkr.hw.init = &(struct clk_init_data) {
421 .clkr.hw.init = &(struct clk_init_data) {
435 .clkr.hw.init = &(struct clk_init_data) {
450 .clkr.hw.init = &(struct clk_init_data) {
465 .clkr.hw.init = &(struct clk_init_data) {
480 .clkr.hw.init = &(struct clk_init_data) {
494 .clkr.hw.init = &(struct clk_init_data) {
509 .clkr.hw.init = &(struct clk_init_data) {
524 .clkr.hw.init = &(struct clk_init_data) {
539 .clkr.hw.init = &(struct clk_init_data) {
567 .clkr.hw.init = &(struct clk_init_data) {
582 .clkr.hw.init = &(struct clk_init_data) {
597 .clkr.hw.init = &(struct clk_init_data) {
620 .clkr.hw.init = &(struct clk_init_data) {
635 .clkr.hw.init = &(struct clk_init_data) {
655 .clkr.hw.init = &(struct clk_init_data) {
670 .clkr.hw.init = &(struct clk_init_data) {
683 .clkr.hw.init = &(struct clk_init_data) {
686 &disp_cc_mdss_byte0_clk_src.clkr.hw,
697 .clkr.hw.init = &(struct clk_init_data) {
700 &disp_cc_mdss_byte1_clk_src.clkr.hw,
711 .clkr.hw.init = &(struct clk_init_data) {
714 &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
726 .clkr.hw.init = &(struct clk_init_data) {
729 &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
741 .clkr.hw.init = &(struct clk_init_data) {
744 &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
756 .clkr.hw.init = &(struct clk_init_data) {
759 &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
770 .clkr = {
776 &disp_cc_mdss_ahb_clk_src.clkr.hw,
788 .clkr = {
794 &disp_cc_mdss_ahb_clk_src.clkr.hw,
806 .clkr = {
812 &disp_cc_mdss_byte0_clk_src.clkr.hw,
824 .clkr = {
830 &disp_cc_mdss_byte0_div_clk_src.clkr.hw,
842 .clkr = {
848 &disp_cc_mdss_byte1_clk_src.clkr.hw,
860 .clkr = {
866 &disp_cc_mdss_byte1_div_clk_src.clkr.hw,
878 .clkr = {
884 &disp_cc_mdss_dptx0_aux_clk_src.clkr.hw,
896 .clkr = {
902 &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
914 .clkr = {
920 &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
932 .clkr = {
938 &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
950 .clkr = {
956 &disp_cc_mdss_dptx0_pixel0_clk_src.clkr.hw,
968 .clkr = {
974 &disp_cc_mdss_dptx0_pixel1_clk_src.clkr.hw,
986 .clkr = {
992 &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1004 .clkr = {
1010 &disp_cc_mdss_dptx1_aux_clk_src.clkr.hw,
1022 .clkr = {
1028 &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
1040 .clkr = {
1046 &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
1058 .clkr = {
1064 &disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1076 .clkr = {
1082 &disp_cc_mdss_dptx1_pixel0_clk_src.clkr.hw,
1094 .clkr = {
1100 &disp_cc_mdss_dptx1_pixel1_clk_src.clkr.hw,
1112 .clkr = {
1118 &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1130 .clkr = {
1136 &disp_cc_mdss_dptx2_aux_clk_src.clkr.hw,
1148 .clkr = {
1154 &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
1166 .clkr = {
1172 &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
1184 .clkr = {
1190 &disp_cc_mdss_dptx2_link_div_clk_src.clkr.hw,
1202 .clkr = {
1208 &disp_cc_mdss_dptx2_pixel0_clk_src.clkr.hw,
1220 .clkr = {
1226 &disp_cc_mdss_dptx2_pixel1_clk_src.clkr.hw,
1238 .clkr = {
1244 &disp_cc_mdss_dptx3_aux_clk_src.clkr.hw,
1256 .clkr = {
1262 &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
1274 .clkr = {
1280 &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
1292 .clkr = {
1298 &disp_cc_mdss_dptx3_link_div_clk_src.clkr.hw,
1310 .clkr = {
1316 &disp_cc_mdss_dptx3_pixel0_clk_src.clkr.hw,
1328 .clkr = {
1334 &disp_cc_mdss_esc0_clk_src.clkr.hw,
1346 .clkr = {
1352 &disp_cc_mdss_esc1_clk_src.clkr.hw,
1364 .clkr = {
1370 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1382 .clkr = {
1388 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1400 .clkr = {
1406 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1418 .clkr = {
1424 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1436 .clkr = {
1442 &disp_cc_mdss_ahb_clk_src.clkr.hw,
1454 .clkr = {
1460 &disp_cc_mdss_pclk0_clk_src.clkr.hw,
1472 .clkr = {
1478 &disp_cc_mdss_pclk1_clk_src.clkr.hw,
1490 .clkr = {
1496 &disp_cc_mdss_rot_clk_src.clkr.hw,
1508 .clkr = {
1514 &disp_cc_mdss_rot_clk_src.clkr.hw,
1526 .clkr = {
1532 &disp_cc_mdss_ahb_clk_src.clkr.hw,
1544 .clkr = {
1550 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1562 .clkr = {
1568 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1580 .clkr = {
1586 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1598 .clkr = {
1604 &disp_cc_sleep_clk_src.clkr.hw,
1632 [DISP_CC_MDSS_AHB1_CLK] = &disp_cc_mdss_ahb1_clk.clkr,
1633 [DISP_CC_MDSS_AHB_CLK] = &disp_cc_mdss_ahb_clk.clkr,
1634 [DISP_CC_MDSS_AHB_CLK_SRC] = &disp_cc_mdss_ahb_clk_src.clkr,
1635 [DISP_CC_MDSS_BYTE0_CLK] = &disp_cc_mdss_byte0_clk.clkr,
1636 [DISP_CC_MDSS_BYTE0_CLK_SRC] = &disp_cc_mdss_byte0_clk_src.clkr,
1637 [DISP_CC_MDSS_BYTE0_DIV_CLK_SRC] = &disp_cc_mdss_byte0_div_clk_src.clkr,
1638 [DISP_CC_MDSS_BYTE0_INTF_CLK] = &disp_cc_mdss_byte0_intf_clk.clkr,
1639 [DISP_CC_MDSS_BYTE1_CLK] = &disp_cc_mdss_byte1_clk.clkr,
1640 [DISP_CC_MDSS_BYTE1_CLK_SRC] = &disp_cc_mdss_byte1_clk_src.clkr,
1641 [DISP_CC_MDSS_BYTE1_DIV_CLK_SRC] = &disp_cc_mdss_byte1_div_clk_src.clkr,
1642 [DISP_CC_MDSS_BYTE1_INTF_CLK] = &disp_cc_mdss_byte1_intf_clk.clkr,
1643 [DISP_CC_MDSS_DPTX0_AUX_CLK] = &disp_cc_mdss_dptx0_aux_clk.clkr,
1644 [DISP_CC_MDSS_DPTX0_AUX_CLK_SRC] = &disp_cc_mdss_dptx0_aux_clk_src.clkr,
1645 [DISP_CC_MDSS_DPTX0_CRYPTO_CLK] = &disp_cc_mdss_dptx0_crypto_clk.clkr,
1646 [DISP_CC_MDSS_DPTX0_LINK_CLK] = &disp_cc_mdss_dptx0_link_clk.clkr,
1647 [DISP_CC_MDSS_DPTX0_LINK_CLK_SRC] = &disp_cc_mdss_dptx0_link_clk_src.clkr,
1648 [DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx0_link_div_clk_src.clkr,
1649 [DISP_CC_MDSS_DPTX0_LINK_INTF_CLK] = &disp_cc_mdss_dptx0_link_intf_clk.clkr,
1650 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK] = &disp_cc_mdss_dptx0_pixel0_clk.clkr,
1651 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx0_pixel0_clk_src.clkr,
1652 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK] = &disp_cc_mdss_dptx0_pixel1_clk.clkr,
1653 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx0_pixel1_clk_src.clkr,
1655 &disp_cc_mdss_dptx0_usb_router_link_intf_clk.clkr,
1656 [DISP_CC_MDSS_DPTX1_AUX_CLK] = &disp_cc_mdss_dptx1_aux_clk.clkr,
1657 [DISP_CC_MDSS_DPTX1_AUX_CLK_SRC] = &disp_cc_mdss_dptx1_aux_clk_src.clkr,
1658 [DISP_CC_MDSS_DPTX1_CRYPTO_CLK] = &disp_cc_mdss_dptx1_crypto_clk.clkr,
1659 [DISP_CC_MDSS_DPTX1_LINK_CLK] = &disp_cc_mdss_dptx1_link_clk.clkr,
1660 [DISP_CC_MDSS_DPTX1_LINK_CLK_SRC] = &disp_cc_mdss_dptx1_link_clk_src.clkr,
1661 [DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx1_link_div_clk_src.clkr,
1662 [DISP_CC_MDSS_DPTX1_LINK_INTF_CLK] = &disp_cc_mdss_dptx1_link_intf_clk.clkr,
1663 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK] = &disp_cc_mdss_dptx1_pixel0_clk.clkr,
1664 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx1_pixel0_clk_src.clkr,
1665 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK] = &disp_cc_mdss_dptx1_pixel1_clk.clkr,
1666 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx1_pixel1_clk_src.clkr,
1668 &disp_cc_mdss_dptx1_usb_router_link_intf_clk.clkr,
1669 [DISP_CC_MDSS_DPTX2_AUX_CLK] = &disp_cc_mdss_dptx2_aux_clk.clkr,
1670 [DISP_CC_MDSS_DPTX2_AUX_CLK_SRC] = &disp_cc_mdss_dptx2_aux_clk_src.clkr,
1671 [DISP_CC_MDSS_DPTX2_CRYPTO_CLK] = &disp_cc_mdss_dptx2_crypto_clk.clkr,
1672 [DISP_CC_MDSS_DPTX2_LINK_CLK] = &disp_cc_mdss_dptx2_link_clk.clkr,
1673 [DISP_CC_MDSS_DPTX2_LINK_CLK_SRC] = &disp_cc_mdss_dptx2_link_clk_src.clkr,
1674 [DISP_CC_MDSS_DPTX2_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx2_link_div_clk_src.clkr,
1675 [DISP_CC_MDSS_DPTX2_LINK_INTF_CLK] = &disp_cc_mdss_dptx2_link_intf_clk.clkr,
1676 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK] = &disp_cc_mdss_dptx2_pixel0_clk.clkr,
1677 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx2_pixel0_clk_src.clkr,
1678 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK] = &disp_cc_mdss_dptx2_pixel1_clk.clkr,
1679 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx2_pixel1_clk_src.clkr,
1680 [DISP_CC_MDSS_DPTX3_AUX_CLK] = &disp_cc_mdss_dptx3_aux_clk.clkr,
1681 [DISP_CC_MDSS_DPTX3_AUX_CLK_SRC] = &disp_cc_mdss_dptx3_aux_clk_src.clkr,
1682 [DISP_CC_MDSS_DPTX3_CRYPTO_CLK] = &disp_cc_mdss_dptx3_crypto_clk.clkr,
1683 [DISP_CC_MDSS_DPTX3_LINK_CLK] = &disp_cc_mdss_dptx3_link_clk.clkr,
1684 [DISP_CC_MDSS_DPTX3_LINK_CLK_SRC] = &disp_cc_mdss_dptx3_link_clk_src.clkr,
1685 [DISP_CC_MDSS_DPTX3_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx3_link_div_clk_src.clkr,
1686 [DISP_CC_MDSS_DPTX3_LINK_INTF_CLK] = &disp_cc_mdss_dptx3_link_intf_clk.clkr,
1687 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK] = &disp_cc_mdss_dptx3_pixel0_clk.clkr,
1688 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx3_pixel0_clk_src.clkr,
1689 [DISP_CC_MDSS_ESC0_CLK] = &disp_cc_mdss_esc0_clk.clkr,
1690 [DISP_CC_MDSS_ESC0_CLK_SRC] = &disp_cc_mdss_esc0_clk_src.clkr,
1691 [DISP_CC_MDSS_ESC1_CLK] = &disp_cc_mdss_esc1_clk.clkr,
1692 [DISP_CC_MDSS_ESC1_CLK_SRC] = &disp_cc_mdss_esc1_clk_src.clkr,
1693 [DISP_CC_MDSS_MDP1_CLK] = &disp_cc_mdss_mdp1_clk.clkr,
1694 [DISP_CC_MDSS_MDP_CLK] = &disp_cc_mdss_mdp_clk.clkr,
1695 [DISP_CC_MDSS_MDP_CLK_SRC] = &disp_cc_mdss_mdp_clk_src.clkr,
1696 [DISP_CC_MDSS_MDP_LUT1_CLK] = &disp_cc_mdss_mdp_lut1_clk.clkr,
1697 [DISP_CC_MDSS_MDP_LUT_CLK] = &disp_cc_mdss_mdp_lut_clk.clkr,
1698 [DISP_CC_MDSS_NON_GDSC_AHB_CLK] = &disp_cc_mdss_non_gdsc_ahb_clk.clkr,
1699 [DISP_CC_MDSS_PCLK0_CLK] = &disp_cc_mdss_pclk0_clk.clkr,
1700 [DISP_CC_MDSS_PCLK0_CLK_SRC] = &disp_cc_mdss_pclk0_clk_src.clkr,
1701 [DISP_CC_MDSS_PCLK1_CLK] = &disp_cc_mdss_pclk1_clk.clkr,
1702 [DISP_CC_MDSS_PCLK1_CLK_SRC] = &disp_cc_mdss_pclk1_clk_src.clkr,
1703 [DISP_CC_MDSS_ROT1_CLK] = &disp_cc_mdss_rot1_clk.clkr,
1704 [DISP_CC_MDSS_ROT_CLK] = &disp_cc_mdss_rot_clk.clkr,
1705 [DISP_CC_MDSS_ROT_CLK_SRC] = &disp_cc_mdss_rot_clk_src.clkr,
1706 [DISP_CC_MDSS_RSCC_AHB_CLK] = &disp_cc_mdss_rscc_ahb_clk.clkr,
1707 [DISP_CC_MDSS_RSCC_VSYNC_CLK] = &disp_cc_mdss_rscc_vsync_clk.clkr,
1708 [DISP_CC_MDSS_VSYNC1_CLK] = &disp_cc_mdss_vsync1_clk.clkr,
1709 [DISP_CC_MDSS_VSYNC_CLK] = &disp_cc_mdss_vsync_clk.clkr,
1710 [DISP_CC_MDSS_VSYNC_CLK_SRC] = &disp_cc_mdss_vsync_clk_src.clkr,
1711 [DISP_CC_PLL0] = &disp_cc_pll0.clkr,
1712 [DISP_CC_PLL1] = &disp_cc_pll1.clkr,
1713 [DISP_CC_SLEEP_CLK] = &disp_cc_sleep_clk.clkr,
1714 [DISP_CC_SLEEP_CLK_SRC] = &disp_cc_sleep_clk_src.clkr,
1715 [DISP_CC_XO_CLK_SRC] = &disp_cc_xo_clk_src.clkr,
1748 { .compatible = "qcom,sm8450-dispcc" },
1758 ret = devm_pm_runtime_enable(&pdev->dev); in disp_cc_sm8450_probe()
1762 ret = pm_runtime_resume_and_get(&pdev->dev); in disp_cc_sm8450_probe()
1778 /* Keep some clocks always-on */ in disp_cc_sm8450_probe()
1781 ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_sm8450_desc, regmap); in disp_cc_sm8450_probe()
1785 pm_runtime_put(&pdev->dev); in disp_cc_sm8450_probe()
1790 pm_runtime_put_sync(&pdev->dev); in disp_cc_sm8450_probe()
1798 .name = "disp_cc-sm8450",