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

1 // SPDX-License-Identifier: GPL-2.0-only
7 #include <linux/clk-provider.h>
14 #include <linux/reset-controller.h>
16 #include <dt-bindings/clock/qcom,dispcc-sc8280xp.h>
18 #include "clk-alpha-pll.h"
19 #include "clk-branch.h"
20 #include "clk-rcg.h"
21 #include "clk-regmap-divider.h"
91 .clkr = {
106 .clkr = {
135 .clkr = {
150 .clkr = {
172 .clkr.hw.init = &(const struct clk_init_data) {
175 &disp0_cc_pll1.clkr.hw,
189 .clkr.hw.init = &(const struct clk_init_data) {
192 &disp1_cc_pll1.clkr.hw,
218 .clkr = {
233 .clkr = {
258 { .hw = &disp0_cc_pll2.clkr.hw },
267 { .hw = &disp1_cc_pll2.clkr.hw },
286 { .hw = &disp0_cc_pll2.clkr.hw },
296 { .hw = &disp1_cc_pll2.clkr.hw },
346 { .hw = &disp0_cc_pll0.clkr.hw },
347 { .hw = &disp0_cc_pll1.clkr.hw },
348 { .hw = &disp0_cc_pll2.clkr.hw },
349 { .hw = &disp0_cc_pll1_out_even.clkr.hw },
354 { .hw = &disp1_cc_pll0.clkr.hw },
355 { .hw = &disp1_cc_pll1.clkr.hw },
356 { .hw = &disp1_cc_pll2.clkr.hw },
357 { .hw = &disp1_cc_pll1_out_even.clkr.hw },
368 { .hw = &disp0_cc_pll1.clkr.hw },
369 { .hw = &disp0_cc_pll1_out_even.clkr.hw },
374 { .hw = &disp1_cc_pll1.clkr.hw },
375 { .hw = &disp1_cc_pll1_out_even.clkr.hw },
399 .clkr.hw.init = &(const struct clk_init_data) {
413 .clkr.hw.init = &(const struct clk_init_data) {
431 .clkr.hw.init = &(const struct clk_init_data) {
445 .clkr.hw.init = &(const struct clk_init_data) {
459 .clkr.hw.init = &(const struct clk_init_data) {
473 .clkr.hw.init = &(const struct clk_init_data) {
488 .clkr.hw.init = &(const struct clk_init_data) {
502 .clkr.hw.init = &(const struct clk_init_data) {
515 .clkr.hw.init = &(const struct clk_init_data) {
529 .clkr.hw.init = &(const struct clk_init_data) {
543 .clkr.hw.init = &(const struct clk_init_data) {
557 .clkr.hw.init = &(const struct clk_init_data) {
571 .clkr.hw.init = &(const struct clk_init_data) {
585 .clkr.hw.init = &(const struct clk_init_data) {
600 .clkr.hw.init = &(const struct clk_init_data) {
614 .clkr.hw.init = &(const struct clk_init_data) {
627 .clkr.hw.init = &(const struct clk_init_data) {
641 .clkr.hw.init = &(const struct clk_init_data) {
655 .clkr.hw.init = &(const struct clk_init_data) {
669 .clkr.hw.init = &(const struct clk_init_data) {
683 .clkr.hw.init = &(const struct clk_init_data) {
697 .clkr.hw.init = &(const struct clk_init_data) {
712 .clkr.hw.init = &(const struct clk_init_data) {
726 .clkr.hw.init = &(const struct clk_init_data) {
739 .clkr.hw.init = &(const struct clk_init_data) {
753 .clkr.hw.init = &(const struct clk_init_data) {
767 .clkr.hw.init = &(const struct clk_init_data) {
781 .clkr.hw.init = &(const struct clk_init_data) {
795 .clkr.hw.init = &(const struct clk_init_data) {
809 .clkr.hw.init = &(const struct clk_init_data) {
824 .clkr.hw.init = &(const struct clk_init_data) {
838 .clkr.hw.init = &(const struct clk_init_data) {
851 .clkr.hw.init = &(const struct clk_init_data) {
865 .clkr.hw.init = &(const struct clk_init_data) {
879 .clkr.hw.init = &(const struct clk_init_data) {
893 .clkr.hw.init = &(const struct clk_init_data) {
908 .clkr.hw.init = &(const struct clk_init_data) {
922 .clkr.hw.init = &(const struct clk_init_data) {
936 .clkr.hw.init = &(const struct clk_init_data) {
950 .clkr.hw.init = &(const struct clk_init_data) {
977 .clkr.hw.init = &(const struct clk_init_data) {
991 .clkr.hw.init = &(const struct clk_init_data) {
1004 .clkr.hw.init = &(const struct clk_init_data) {
1018 .clkr.hw.init = &(const struct clk_init_data) {
1032 .clkr.hw.init = &(const struct clk_init_data) {
1046 .clkr.hw.init = &(const struct clk_init_data) {
1071 .clkr.hw.init = &(const struct clk_init_data) {
1085 .clkr.hw.init = &(const struct clk_init_data) {
1099 .clkr.hw.init = &(const struct clk_init_data) {
1113 .clkr.hw.init = &(const struct clk_init_data) {
1132 .clkr.hw.init = &(const struct clk_init_data) {
1146 .clkr.hw.init = &(const struct clk_init_data) {
1158 .clkr.hw.init = &(const struct clk_init_data) {
1161 &disp0_cc_mdss_byte0_clk_src.clkr.hw,
1173 .clkr.hw.init = &(const struct clk_init_data) {
1176 &disp1_cc_mdss_byte0_clk_src.clkr.hw,
1188 .clkr.hw.init = &(const struct clk_init_data) {
1191 &disp0_cc_mdss_byte1_clk_src.clkr.hw,
1203 .clkr.hw.init = &(const struct clk_init_data) {
1206 &disp1_cc_mdss_byte1_clk_src.clkr.hw,
1218 .clkr.hw.init = &(const struct clk_init_data) {
1221 &disp0_cc_mdss_dptx0_link_clk_src.clkr.hw,
1233 .clkr.hw.init = &(const struct clk_init_data) {
1236 &disp1_cc_mdss_dptx0_link_clk_src.clkr.hw,
1248 .clkr.hw.init = &(const struct clk_init_data) {
1251 &disp0_cc_mdss_dptx1_link_clk_src.clkr.hw,
1263 .clkr.hw.init = &(const struct clk_init_data) {
1266 &disp1_cc_mdss_dptx1_link_clk_src.clkr.hw,
1278 .clkr.hw.init = &(const struct clk_init_data) {
1281 &disp0_cc_mdss_dptx2_link_clk_src.clkr.hw,
1293 .clkr.hw.init = &(const struct clk_init_data) {
1296 &disp1_cc_mdss_dptx2_link_clk_src.clkr.hw,
1308 .clkr.hw.init = &(const struct clk_init_data) {
1311 &disp0_cc_mdss_dptx3_link_clk_src.clkr.hw,
1323 .clkr.hw.init = &(const struct clk_init_data) {
1326 &disp1_cc_mdss_dptx3_link_clk_src.clkr.hw,
1337 .clkr = {
1343 &disp0_cc_mdss_ahb_clk_src.clkr.hw,
1355 .clkr = {
1361 &disp1_cc_mdss_ahb_clk_src.clkr.hw,
1373 .clkr = {
1379 &disp0_cc_mdss_ahb_clk_src.clkr.hw,
1391 .clkr = {
1397 &disp1_cc_mdss_ahb_clk_src.clkr.hw,
1409 .clkr = {
1415 &disp0_cc_mdss_byte0_clk_src.clkr.hw,
1427 .clkr = {
1433 &disp1_cc_mdss_byte0_clk_src.clkr.hw,
1445 .clkr = {
1451 &disp0_cc_mdss_byte0_div_clk_src.clkr.hw,
1463 .clkr = {
1469 &disp1_cc_mdss_byte0_div_clk_src.clkr.hw,
1481 .clkr = {
1487 &disp0_cc_mdss_byte1_clk_src.clkr.hw,
1499 .clkr = {
1505 &disp1_cc_mdss_byte1_clk_src.clkr.hw,
1517 .clkr = {
1523 &disp0_cc_mdss_byte1_div_clk_src.clkr.hw,
1535 .clkr = {
1541 &disp1_cc_mdss_byte1_div_clk_src.clkr.hw,
1553 .clkr = {
1559 &disp0_cc_mdss_dptx0_aux_clk_src.clkr.hw,
1571 .clkr = {
1577 &disp1_cc_mdss_dptx0_aux_clk_src.clkr.hw,
1589 .clkr = {
1595 &disp0_cc_mdss_dptx0_link_clk_src.clkr.hw,
1607 .clkr = {
1613 &disp1_cc_mdss_dptx0_link_clk_src.clkr.hw,
1625 .clkr = {
1631 &disp0_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1643 .clkr = {
1649 &disp1_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1661 .clkr = {
1667 &disp0_cc_mdss_dptx0_pixel0_clk_src.clkr.hw,
1679 .clkr = {
1685 &disp1_cc_mdss_dptx0_pixel0_clk_src.clkr.hw,
1697 .clkr = {
1703 &disp0_cc_mdss_dptx0_pixel1_clk_src.clkr.hw,
1715 .clkr = {
1721 &disp1_cc_mdss_dptx0_pixel1_clk_src.clkr.hw,
1733 .clkr = {
1739 &disp0_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1751 .clkr = {
1757 &disp1_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1769 .clkr = {
1775 &disp0_cc_mdss_dptx1_aux_clk_src.clkr.hw,
1787 .clkr = {
1793 &disp1_cc_mdss_dptx1_aux_clk_src.clkr.hw,
1805 .clkr = {
1811 &disp0_cc_mdss_dptx1_link_clk_src.clkr.hw,
1823 .clkr = {
1829 &disp1_cc_mdss_dptx1_link_clk_src.clkr.hw,
1841 .clkr = {
1847 &disp0_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1859 .clkr = {
1865 &disp1_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1877 .clkr = {
1883 &disp0_cc_mdss_dptx1_pixel0_clk_src.clkr.hw,
1895 .clkr = {
1901 &disp1_cc_mdss_dptx1_pixel0_clk_src.clkr.hw,
1913 .clkr = {
1919 &disp0_cc_mdss_dptx1_pixel1_clk_src.clkr.hw,
1931 .clkr = {
1937 &disp1_cc_mdss_dptx1_pixel1_clk_src.clkr.hw,
1949 .clkr = {
1955 &disp0_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1967 .clkr = {
1973 &disp1_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1985 .clkr = {
1991 &disp0_cc_mdss_dptx2_aux_clk_src.clkr.hw,
2003 .clkr = {
2009 &disp1_cc_mdss_dptx2_aux_clk_src.clkr.hw,
2021 .clkr = {
2027 &disp0_cc_mdss_dptx2_link_clk_src.clkr.hw,
2039 .clkr = {
2045 &disp1_cc_mdss_dptx2_link_clk_src.clkr.hw,
2057 .clkr = {
2063 &disp0_cc_mdss_dptx2_link_div_clk_src.clkr.hw,
2075 .clkr = {
2081 &disp1_cc_mdss_dptx2_link_div_clk_src.clkr.hw,
2093 .clkr = {
2099 &disp0_cc_mdss_dptx2_pixel0_clk_src.clkr.hw,
2111 .clkr = {
2117 &disp1_cc_mdss_dptx2_pixel0_clk_src.clkr.hw,
2129 .clkr = {
2135 &disp0_cc_mdss_dptx2_pixel1_clk_src.clkr.hw,
2147 .clkr = {
2153 &disp1_cc_mdss_dptx2_pixel1_clk_src.clkr.hw,
2165 .clkr = {
2171 &disp0_cc_mdss_dptx3_aux_clk_src.clkr.hw,
2183 .clkr = {
2189 &disp1_cc_mdss_dptx3_aux_clk_src.clkr.hw,
2201 .clkr = {
2207 &disp0_cc_mdss_dptx3_link_clk_src.clkr.hw,
2219 .clkr = {
2225 &disp1_cc_mdss_dptx3_link_clk_src.clkr.hw,
2237 .clkr = {
2243 &disp0_cc_mdss_dptx3_link_div_clk_src.clkr.hw,
2255 .clkr = {
2261 &disp1_cc_mdss_dptx3_link_div_clk_src.clkr.hw,
2273 .clkr = {
2279 &disp0_cc_mdss_dptx3_pixel0_clk_src.clkr.hw,
2291 .clkr = {
2297 &disp1_cc_mdss_dptx3_pixel0_clk_src.clkr.hw,
2309 .clkr = {
2315 &disp0_cc_mdss_esc0_clk_src.clkr.hw,
2327 .clkr = {
2333 &disp1_cc_mdss_esc0_clk_src.clkr.hw,
2345 .clkr = {
2351 &disp0_cc_mdss_esc1_clk_src.clkr.hw,
2363 .clkr = {
2369 &disp1_cc_mdss_esc1_clk_src.clkr.hw,
2381 .clkr = {
2387 &disp0_cc_mdss_mdp_clk_src.clkr.hw,
2399 .clkr = {
2405 &disp1_cc_mdss_mdp_clk_src.clkr.hw,
2417 .clkr = {
2423 &disp0_cc_mdss_mdp_clk_src.clkr.hw,
2435 .clkr = {
2441 &disp1_cc_mdss_mdp_clk_src.clkr.hw,
2453 .clkr = {
2459 &disp0_cc_mdss_mdp_clk_src.clkr.hw,
2471 .clkr = {
2477 &disp1_cc_mdss_mdp_clk_src.clkr.hw,
2489 .clkr = {
2495 &disp0_cc_mdss_mdp_clk_src.clkr.hw,
2507 .clkr = {
2513 &disp1_cc_mdss_mdp_clk_src.clkr.hw,
2525 .clkr = {
2531 &disp0_cc_mdss_ahb_clk_src.clkr.hw,
2543 .clkr = {
2549 &disp1_cc_mdss_ahb_clk_src.clkr.hw,
2561 .clkr = {
2567 &disp0_cc_mdss_pclk0_clk_src.clkr.hw,
2579 .clkr = {
2585 &disp1_cc_mdss_pclk0_clk_src.clkr.hw,
2597 .clkr = {
2603 &disp0_cc_mdss_pclk1_clk_src.clkr.hw,
2615 .clkr = {
2621 &disp1_cc_mdss_pclk1_clk_src.clkr.hw,
2633 .clkr = {
2639 &disp0_cc_mdss_rot_clk_src.clkr.hw,
2651 .clkr = {
2657 &disp1_cc_mdss_rot_clk_src.clkr.hw,
2669 .clkr = {
2675 &disp0_cc_mdss_rot_clk_src.clkr.hw,
2687 .clkr = {
2693 &disp1_cc_mdss_rot_clk_src.clkr.hw,
2705 .clkr = {
2711 &disp0_cc_mdss_ahb_clk_src.clkr.hw,
2723 .clkr = {
2729 &disp1_cc_mdss_ahb_clk_src.clkr.hw,
2741 .clkr = {
2747 &disp0_cc_mdss_vsync_clk_src.clkr.hw,
2759 .clkr = {
2765 &disp1_cc_mdss_vsync_clk_src.clkr.hw,
2777 .clkr = {
2783 &disp0_cc_mdss_vsync_clk_src.clkr.hw,
2795 .clkr = {
2801 &disp1_cc_mdss_vsync_clk_src.clkr.hw,
2813 .clkr = {
2819 &disp0_cc_mdss_vsync_clk_src.clkr.hw,
2831 .clkr = {
2837 &disp1_cc_mdss_vsync_clk_src.clkr.hw,
2849 .clkr = {
2855 &disp0_cc_sleep_clk_src.clkr.hw,
2867 .clkr = {
2873 &disp1_cc_sleep_clk_src.clkr.hw,
2883 [DISP_CC_MDSS_AHB1_CLK] = &disp0_cc_mdss_ahb1_clk.clkr,
2884 [DISP_CC_MDSS_AHB_CLK] = &disp0_cc_mdss_ahb_clk.clkr,
2885 [DISP_CC_MDSS_AHB_CLK_SRC] = &disp0_cc_mdss_ahb_clk_src.clkr,
2886 [DISP_CC_MDSS_BYTE0_CLK] = &disp0_cc_mdss_byte0_clk.clkr,
2887 [DISP_CC_MDSS_BYTE0_CLK_SRC] = &disp0_cc_mdss_byte0_clk_src.clkr,
2888 [DISP_CC_MDSS_BYTE0_DIV_CLK_SRC] = &disp0_cc_mdss_byte0_div_clk_src.clkr,
2889 [DISP_CC_MDSS_BYTE0_INTF_CLK] = &disp0_cc_mdss_byte0_intf_clk.clkr,
2890 [DISP_CC_MDSS_BYTE1_CLK] = &disp0_cc_mdss_byte1_clk.clkr,
2891 [DISP_CC_MDSS_BYTE1_CLK_SRC] = &disp0_cc_mdss_byte1_clk_src.clkr,
2892 [DISP_CC_MDSS_BYTE1_DIV_CLK_SRC] = &disp0_cc_mdss_byte1_div_clk_src.clkr,
2893 [DISP_CC_MDSS_BYTE1_INTF_CLK] = &disp0_cc_mdss_byte1_intf_clk.clkr,
2894 [DISP_CC_MDSS_DPTX0_AUX_CLK] = &disp0_cc_mdss_dptx0_aux_clk.clkr,
2895 [DISP_CC_MDSS_DPTX0_AUX_CLK_SRC] = &disp0_cc_mdss_dptx0_aux_clk_src.clkr,
2896 [DISP_CC_MDSS_DPTX0_LINK_CLK] = &disp0_cc_mdss_dptx0_link_clk.clkr,
2897 [DISP_CC_MDSS_DPTX0_LINK_CLK_SRC] = &disp0_cc_mdss_dptx0_link_clk_src.clkr,
2898 [DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC] = &disp0_cc_mdss_dptx0_link_div_clk_src.clkr,
2899 [DISP_CC_MDSS_DPTX0_LINK_INTF_CLK] = &disp0_cc_mdss_dptx0_link_intf_clk.clkr,
2900 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK] = &disp0_cc_mdss_dptx0_pixel0_clk.clkr,
2901 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC] = &disp0_cc_mdss_dptx0_pixel0_clk_src.clkr,
2902 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK] = &disp0_cc_mdss_dptx0_pixel1_clk.clkr,
2903 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC] = &disp0_cc_mdss_dptx0_pixel1_clk_src.clkr,
2904 [DISP_CC_MDSS_DPTX0_USB_ROUTER_LINK_INTF_CLK] = &disp0_cc_mdss_dptx0_usb_router_link_intf_clk.clkr,
2905 [DISP_CC_MDSS_DPTX1_AUX_CLK] = &disp0_cc_mdss_dptx1_aux_clk.clkr,
2906 [DISP_CC_MDSS_DPTX1_AUX_CLK_SRC] = &disp0_cc_mdss_dptx1_aux_clk_src.clkr,
2907 [DISP_CC_MDSS_DPTX1_LINK_CLK] = &disp0_cc_mdss_dptx1_link_clk.clkr,
2908 [DISP_CC_MDSS_DPTX1_LINK_CLK_SRC] = &disp0_cc_mdss_dptx1_link_clk_src.clkr,
2909 [DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC] = &disp0_cc_mdss_dptx1_link_div_clk_src.clkr,
2910 [DISP_CC_MDSS_DPTX1_LINK_INTF_CLK] = &disp0_cc_mdss_dptx1_link_intf_clk.clkr,
2911 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK] = &disp0_cc_mdss_dptx1_pixel0_clk.clkr,
2912 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC] = &disp0_cc_mdss_dptx1_pixel0_clk_src.clkr,
2913 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK] = &disp0_cc_mdss_dptx1_pixel1_clk.clkr,
2914 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC] = &disp0_cc_mdss_dptx1_pixel1_clk_src.clkr,
2915 [DISP_CC_MDSS_DPTX1_USB_ROUTER_LINK_INTF_CLK] = &disp0_cc_mdss_dptx1_usb_router_link_intf_clk.clkr,
2916 [DISP_CC_MDSS_DPTX2_AUX_CLK] = &disp0_cc_mdss_dptx2_aux_clk.clkr,
2917 [DISP_CC_MDSS_DPTX2_AUX_CLK_SRC] = &disp0_cc_mdss_dptx2_aux_clk_src.clkr,
2918 [DISP_CC_MDSS_DPTX2_LINK_CLK] = &disp0_cc_mdss_dptx2_link_clk.clkr,
2919 [DISP_CC_MDSS_DPTX2_LINK_CLK_SRC] = &disp0_cc_mdss_dptx2_link_clk_src.clkr,
2920 [DISP_CC_MDSS_DPTX2_LINK_DIV_CLK_SRC] = &disp0_cc_mdss_dptx2_link_div_clk_src.clkr,
2921 [DISP_CC_MDSS_DPTX2_LINK_INTF_CLK] = &disp0_cc_mdss_dptx2_link_intf_clk.clkr,
2922 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK] = &disp0_cc_mdss_dptx2_pixel0_clk.clkr,
2923 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC] = &disp0_cc_mdss_dptx2_pixel0_clk_src.clkr,
2924 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK] = &disp0_cc_mdss_dptx2_pixel1_clk.clkr,
2925 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK_SRC] = &disp0_cc_mdss_dptx2_pixel1_clk_src.clkr,
2926 [DISP_CC_MDSS_DPTX3_AUX_CLK] = &disp0_cc_mdss_dptx3_aux_clk.clkr,
2927 [DISP_CC_MDSS_DPTX3_AUX_CLK_SRC] = &disp0_cc_mdss_dptx3_aux_clk_src.clkr,
2928 [DISP_CC_MDSS_DPTX3_LINK_CLK] = &disp0_cc_mdss_dptx3_link_clk.clkr,
2929 [DISP_CC_MDSS_DPTX3_LINK_CLK_SRC] = &disp0_cc_mdss_dptx3_link_clk_src.clkr,
2930 [DISP_CC_MDSS_DPTX3_LINK_DIV_CLK_SRC] = &disp0_cc_mdss_dptx3_link_div_clk_src.clkr,
2931 [DISP_CC_MDSS_DPTX3_LINK_INTF_CLK] = &disp0_cc_mdss_dptx3_link_intf_clk.clkr,
2932 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK] = &disp0_cc_mdss_dptx3_pixel0_clk.clkr,
2933 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK_SRC] = &disp0_cc_mdss_dptx3_pixel0_clk_src.clkr,
2934 [DISP_CC_MDSS_ESC0_CLK] = &disp0_cc_mdss_esc0_clk.clkr,
2935 [DISP_CC_MDSS_ESC0_CLK_SRC] = &disp0_cc_mdss_esc0_clk_src.clkr,
2936 [DISP_CC_MDSS_ESC1_CLK] = &disp0_cc_mdss_esc1_clk.clkr,
2937 [DISP_CC_MDSS_ESC1_CLK_SRC] = &disp0_cc_mdss_esc1_clk_src.clkr,
2938 [DISP_CC_MDSS_MDP1_CLK] = &disp0_cc_mdss_mdp1_clk.clkr,
2939 [DISP_CC_MDSS_MDP_CLK] = &disp0_cc_mdss_mdp_clk.clkr,
2940 [DISP_CC_MDSS_MDP_CLK_SRC] = &disp0_cc_mdss_mdp_clk_src.clkr,
2941 [DISP_CC_MDSS_MDP_LUT1_CLK] = &disp0_cc_mdss_mdp_lut1_clk.clkr,
2942 [DISP_CC_MDSS_MDP_LUT_CLK] = &disp0_cc_mdss_mdp_lut_clk.clkr,
2943 [DISP_CC_MDSS_NON_GDSC_AHB_CLK] = &disp0_cc_mdss_non_gdsc_ahb_clk.clkr,
2944 [DISP_CC_MDSS_PCLK0_CLK] = &disp0_cc_mdss_pclk0_clk.clkr,
2945 [DISP_CC_MDSS_PCLK0_CLK_SRC] = &disp0_cc_mdss_pclk0_clk_src.clkr,
2946 [DISP_CC_MDSS_PCLK1_CLK] = &disp0_cc_mdss_pclk1_clk.clkr,
2947 [DISP_CC_MDSS_PCLK1_CLK_SRC] = &disp0_cc_mdss_pclk1_clk_src.clkr,
2948 [DISP_CC_MDSS_ROT1_CLK] = &disp0_cc_mdss_rot1_clk.clkr,
2949 [DISP_CC_MDSS_ROT_CLK] = &disp0_cc_mdss_rot_clk.clkr,
2950 [DISP_CC_MDSS_ROT_CLK_SRC] = &disp0_cc_mdss_rot_clk_src.clkr,
2951 [DISP_CC_MDSS_RSCC_AHB_CLK] = &disp0_cc_mdss_rscc_ahb_clk.clkr,
2952 [DISP_CC_MDSS_RSCC_VSYNC_CLK] = &disp0_cc_mdss_rscc_vsync_clk.clkr,
2953 [DISP_CC_MDSS_VSYNC1_CLK] = &disp0_cc_mdss_vsync1_clk.clkr,
2954 [DISP_CC_MDSS_VSYNC_CLK] = &disp0_cc_mdss_vsync_clk.clkr,
2955 [DISP_CC_MDSS_VSYNC_CLK_SRC] = &disp0_cc_mdss_vsync_clk_src.clkr,
2956 [DISP_CC_PLL0] = &disp0_cc_pll0.clkr,
2957 [DISP_CC_PLL1] = &disp0_cc_pll1.clkr,
2958 [DISP_CC_PLL1_OUT_EVEN] = &disp0_cc_pll1_out_even.clkr,
2959 [DISP_CC_PLL2] = &disp0_cc_pll2.clkr,
2960 [DISP_CC_SLEEP_CLK] = &disp0_cc_sleep_clk.clkr,
2961 [DISP_CC_SLEEP_CLK_SRC] = &disp0_cc_sleep_clk_src.clkr,
2965 [DISP_CC_MDSS_AHB1_CLK] = &disp1_cc_mdss_ahb1_clk.clkr,
2966 [DISP_CC_MDSS_AHB_CLK] = &disp1_cc_mdss_ahb_clk.clkr,
2967 [DISP_CC_MDSS_AHB_CLK_SRC] = &disp1_cc_mdss_ahb_clk_src.clkr,
2968 [DISP_CC_MDSS_BYTE0_CLK] = &disp1_cc_mdss_byte0_clk.clkr,
2969 [DISP_CC_MDSS_BYTE0_CLK_SRC] = &disp1_cc_mdss_byte0_clk_src.clkr,
2970 [DISP_CC_MDSS_BYTE0_DIV_CLK_SRC] = &disp1_cc_mdss_byte0_div_clk_src.clkr,
2971 [DISP_CC_MDSS_BYTE0_INTF_CLK] = &disp1_cc_mdss_byte0_intf_clk.clkr,
2972 [DISP_CC_MDSS_BYTE1_CLK] = &disp1_cc_mdss_byte1_clk.clkr,
2973 [DISP_CC_MDSS_BYTE1_CLK_SRC] = &disp1_cc_mdss_byte1_clk_src.clkr,
2974 [DISP_CC_MDSS_BYTE1_DIV_CLK_SRC] = &disp1_cc_mdss_byte1_div_clk_src.clkr,
2975 [DISP_CC_MDSS_BYTE1_INTF_CLK] = &disp1_cc_mdss_byte1_intf_clk.clkr,
2976 [DISP_CC_MDSS_DPTX0_AUX_CLK] = &disp1_cc_mdss_dptx0_aux_clk.clkr,
2977 [DISP_CC_MDSS_DPTX0_AUX_CLK_SRC] = &disp1_cc_mdss_dptx0_aux_clk_src.clkr,
2978 [DISP_CC_MDSS_DPTX0_LINK_CLK] = &disp1_cc_mdss_dptx0_link_clk.clkr,
2979 [DISP_CC_MDSS_DPTX0_LINK_CLK_SRC] = &disp1_cc_mdss_dptx0_link_clk_src.clkr,
2980 [DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC] = &disp1_cc_mdss_dptx0_link_div_clk_src.clkr,
2981 [DISP_CC_MDSS_DPTX0_LINK_INTF_CLK] = &disp1_cc_mdss_dptx0_link_intf_clk.clkr,
2982 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK] = &disp1_cc_mdss_dptx0_pixel0_clk.clkr,
2983 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC] = &disp1_cc_mdss_dptx0_pixel0_clk_src.clkr,
2984 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK] = &disp1_cc_mdss_dptx0_pixel1_clk.clkr,
2985 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC] = &disp1_cc_mdss_dptx0_pixel1_clk_src.clkr,
2986 [DISP_CC_MDSS_DPTX0_USB_ROUTER_LINK_INTF_CLK] = &disp1_cc_mdss_dptx0_usb_router_link_intf_clk.clkr,
2987 [DISP_CC_MDSS_DPTX1_AUX_CLK] = &disp1_cc_mdss_dptx1_aux_clk.clkr,
2988 [DISP_CC_MDSS_DPTX1_AUX_CLK_SRC] = &disp1_cc_mdss_dptx1_aux_clk_src.clkr,
2989 [DISP_CC_MDSS_DPTX1_LINK_CLK] = &disp1_cc_mdss_dptx1_link_clk.clkr,
2990 [DISP_CC_MDSS_DPTX1_LINK_CLK_SRC] = &disp1_cc_mdss_dptx1_link_clk_src.clkr,
2991 [DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC] = &disp1_cc_mdss_dptx1_link_div_clk_src.clkr,
2992 [DISP_CC_MDSS_DPTX1_LINK_INTF_CLK] = &disp1_cc_mdss_dptx1_link_intf_clk.clkr,
2993 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK] = &disp1_cc_mdss_dptx1_pixel0_clk.clkr,
2994 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC] = &disp1_cc_mdss_dptx1_pixel0_clk_src.clkr,
2995 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK] = &disp1_cc_mdss_dptx1_pixel1_clk.clkr,
2996 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC] = &disp1_cc_mdss_dptx1_pixel1_clk_src.clkr,
2997 [DISP_CC_MDSS_DPTX1_USB_ROUTER_LINK_INTF_CLK] = &disp1_cc_mdss_dptx1_usb_router_link_intf_clk.clkr,
2998 [DISP_CC_MDSS_DPTX2_AUX_CLK] = &disp1_cc_mdss_dptx2_aux_clk.clkr,
2999 [DISP_CC_MDSS_DPTX2_AUX_CLK_SRC] = &disp1_cc_mdss_dptx2_aux_clk_src.clkr,
3000 [DISP_CC_MDSS_DPTX2_LINK_CLK] = &disp1_cc_mdss_dptx2_link_clk.clkr,
3001 [DISP_CC_MDSS_DPTX2_LINK_CLK_SRC] = &disp1_cc_mdss_dptx2_link_clk_src.clkr,
3002 [DISP_CC_MDSS_DPTX2_LINK_DIV_CLK_SRC] = &disp1_cc_mdss_dptx2_link_div_clk_src.clkr,
3003 [DISP_CC_MDSS_DPTX2_LINK_INTF_CLK] = &disp1_cc_mdss_dptx2_link_intf_clk.clkr,
3004 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK] = &disp1_cc_mdss_dptx2_pixel0_clk.clkr,
3005 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC] = &disp1_cc_mdss_dptx2_pixel0_clk_src.clkr,
3006 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK] = &disp1_cc_mdss_dptx2_pixel1_clk.clkr,
3007 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK_SRC] = &disp1_cc_mdss_dptx2_pixel1_clk_src.clkr,
3008 [DISP_CC_MDSS_DPTX3_AUX_CLK] = &disp1_cc_mdss_dptx3_aux_clk.clkr,
3009 [DISP_CC_MDSS_DPTX3_AUX_CLK_SRC] = &disp1_cc_mdss_dptx3_aux_clk_src.clkr,
3010 [DISP_CC_MDSS_DPTX3_LINK_CLK] = &disp1_cc_mdss_dptx3_link_clk.clkr,
3011 [DISP_CC_MDSS_DPTX3_LINK_CLK_SRC] = &disp1_cc_mdss_dptx3_link_clk_src.clkr,
3012 [DISP_CC_MDSS_DPTX3_LINK_DIV_CLK_SRC] = &disp1_cc_mdss_dptx3_link_div_clk_src.clkr,
3013 [DISP_CC_MDSS_DPTX3_LINK_INTF_CLK] = &disp1_cc_mdss_dptx3_link_intf_clk.clkr,
3014 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK] = &disp1_cc_mdss_dptx3_pixel0_clk.clkr,
3015 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK_SRC] = &disp1_cc_mdss_dptx3_pixel0_clk_src.clkr,
3016 [DISP_CC_MDSS_ESC0_CLK] = &disp1_cc_mdss_esc0_clk.clkr,
3017 [DISP_CC_MDSS_ESC0_CLK_SRC] = &disp1_cc_mdss_esc0_clk_src.clkr,
3018 [DISP_CC_MDSS_ESC1_CLK] = &disp1_cc_mdss_esc1_clk.clkr,
3019 [DISP_CC_MDSS_ESC1_CLK_SRC] = &disp1_cc_mdss_esc1_clk_src.clkr,
3020 [DISP_CC_MDSS_MDP1_CLK] = &disp1_cc_mdss_mdp1_clk.clkr,
3021 [DISP_CC_MDSS_MDP_CLK] = &disp1_cc_mdss_mdp_clk.clkr,
3022 [DISP_CC_MDSS_MDP_CLK_SRC] = &disp1_cc_mdss_mdp_clk_src.clkr,
3023 [DISP_CC_MDSS_MDP_LUT1_CLK] = &disp1_cc_mdss_mdp_lut1_clk.clkr,
3024 [DISP_CC_MDSS_MDP_LUT_CLK] = &disp1_cc_mdss_mdp_lut_clk.clkr,
3025 [DISP_CC_MDSS_NON_GDSC_AHB_CLK] = &disp1_cc_mdss_non_gdsc_ahb_clk.clkr,
3026 [DISP_CC_MDSS_PCLK0_CLK] = &disp1_cc_mdss_pclk0_clk.clkr,
3027 [DISP_CC_MDSS_PCLK0_CLK_SRC] = &disp1_cc_mdss_pclk0_clk_src.clkr,
3028 [DISP_CC_MDSS_PCLK1_CLK] = &disp1_cc_mdss_pclk1_clk.clkr,
3029 [DISP_CC_MDSS_PCLK1_CLK_SRC] = &disp1_cc_mdss_pclk1_clk_src.clkr,
3030 [DISP_CC_MDSS_ROT1_CLK] = &disp1_cc_mdss_rot1_clk.clkr,
3031 [DISP_CC_MDSS_ROT_CLK] = &disp1_cc_mdss_rot_clk.clkr,
3032 [DISP_CC_MDSS_ROT_CLK_SRC] = &disp1_cc_mdss_rot_clk_src.clkr,
3033 [DISP_CC_MDSS_RSCC_AHB_CLK] = &disp1_cc_mdss_rscc_ahb_clk.clkr,
3034 [DISP_CC_MDSS_RSCC_VSYNC_CLK] = &disp1_cc_mdss_rscc_vsync_clk.clkr,
3035 [DISP_CC_MDSS_VSYNC1_CLK] = &disp1_cc_mdss_vsync1_clk.clkr,
3036 [DISP_CC_MDSS_VSYNC_CLK] = &disp1_cc_mdss_vsync_clk.clkr,
3037 [DISP_CC_MDSS_VSYNC_CLK_SRC] = &disp1_cc_mdss_vsync_clk_src.clkr,
3038 [DISP_CC_PLL0] = &disp1_cc_pll0.clkr,
3039 [DISP_CC_PLL1] = &disp1_cc_pll1.clkr,
3040 [DISP_CC_PLL1_OUT_EVEN] = &disp1_cc_pll1_out_even.clkr,
3041 [DISP_CC_PLL2] = &disp1_cc_pll2.clkr,
3042 [DISP_CC_SLEEP_CLK] = &disp1_cc_sleep_clk.clkr,
3043 [DISP_CC_SLEEP_CLK_SRC] = &disp1_cc_sleep_clk_src.clkr,
3137 #define clkr_to_alpha_clk_pll(_clkr) container_of(_clkr, struct clk_alpha_pll, clkr)
3145 desc = device_get_match_data(&pdev->dev); in disp_cc_sc8280xp_probe()
3147 ret = devm_pm_runtime_enable(&pdev->dev); in disp_cc_sc8280xp_probe()
3151 ret = devm_pm_clk_create(&pdev->dev); in disp_cc_sc8280xp_probe()
3155 ret = pm_clk_add(&pdev->dev, NULL); in disp_cc_sc8280xp_probe()
3157 dev_err(&pdev->dev, "failed to acquire ahb clock\n"); in disp_cc_sc8280xp_probe()
3161 ret = pm_runtime_resume_and_get(&pdev->dev); in disp_cc_sc8280xp_probe()
3171 …clk_lucid_pll_configure(clkr_to_alpha_clk_pll(desc->clks[DISP_CC_PLL0]), regmap, &disp_cc_pll0_con… in disp_cc_sc8280xp_probe()
3172 …clk_lucid_pll_configure(clkr_to_alpha_clk_pll(desc->clks[DISP_CC_PLL1]), regmap, &disp_cc_pll1_con… in disp_cc_sc8280xp_probe()
3173 …clk_lucid_pll_configure(clkr_to_alpha_clk_pll(desc->clks[DISP_CC_PLL2]), regmap, &disp_cc_pll2_con… in disp_cc_sc8280xp_probe()
3175 ret = qcom_cc_really_probe(&pdev->dev, desc, regmap); in disp_cc_sc8280xp_probe()
3177 dev_err(&pdev->dev, "Failed to register display clock controller\n"); in disp_cc_sc8280xp_probe()
3181 /* Keep some clocks always-on */ in disp_cc_sc8280xp_probe()
3185 pm_runtime_put_sync(&pdev->dev); in disp_cc_sc8280xp_probe()
3191 { .compatible = "qcom,sc8280xp-dispcc0", .data = &disp0_cc_sc8280xp_desc },
3192 { .compatible = "qcom,sc8280xp-dispcc1", .data = &disp1_cc_sc8280xp_desc },
3200 .name = "disp_cc-sc8280xp",