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

1 // SPDX-License-Identifier: GPL-2.0-only
4 * Copyright (c) 2023-2024, Linaro Ltd.
7 #include <linux/clk-provider.h>
16 #include <dt-bindings/clock/qcom,sm8750-dispcc.h>
19 #include "clk-alpha-pll.h"
20 #include "clk-branch.h"
21 #include "clk-pll.h"
22 #include "clk-rcg.h"
23 #include "clk-regmap.h"
24 #include "clk-regmap-divider.h"
25 #include "clk-regmap-mux.h"
97 .clkr = {
124 .clkr = {
157 .clkr = {
235 { .hw = &disp_cc_pll2.clkr.hw },
277 { .hw = &disp_cc_pll1.clkr.hw },
278 { .hw = &disp_cc_pll1.clkr.hw },
306 { .hw = &disp_cc_pll0.clkr.hw },
307 { .hw = &disp_cc_pll1.clkr.hw },
308 { .hw = &disp_cc_pll1.clkr.hw },
318 { .hw = &disp_cc_pll2.clkr.hw },
340 .clkr.hw.init = &(const struct clk_init_data) {
355 .clkr.hw.init = &(const struct clk_init_data) {
377 .clkr.hw.init = &(const struct clk_init_data) {
392 .clkr.hw.init = &(const struct clk_init_data) {
407 .clkr.hw.init = &(const struct clk_init_data) {
422 .clkr.hw.init = &(const struct clk_init_data) {
437 .clkr.hw.init = &(const struct clk_init_data) {
452 .clkr.hw.init = &(const struct clk_init_data) {
467 .clkr.hw.init = &(const struct clk_init_data) {
482 .clkr.hw.init = &(const struct clk_init_data) {
497 .clkr.hw.init = &(const struct clk_init_data) {
512 .clkr.hw.init = &(const struct clk_init_data) {
527 .clkr.hw.init = &(const struct clk_init_data) {
542 .clkr.hw.init = &(const struct clk_init_data) {
557 .clkr.hw.init = &(const struct clk_init_data) {
572 .clkr.hw.init = &(const struct clk_init_data) {
587 .clkr.hw.init = &(const struct clk_init_data) {
602 .clkr.hw.init = &(const struct clk_init_data) {
617 .clkr.hw.init = &(const struct clk_init_data) {
632 .clkr.hw.init = &(const struct clk_init_data) {
647 .clkr.hw.init = &(const struct clk_init_data) {
662 .clkr.hw.init = &(const struct clk_init_data) {
690 .clkr.hw.init = &(const struct clk_init_data) {
711 .clkr.hw.init = &(const struct clk_init_data) {
726 .clkr.hw.init = &(const struct clk_init_data) {
741 .clkr.hw.init = &(const struct clk_init_data) {
756 .clkr.hw.init = &(const struct clk_init_data) {
776 .clkr.hw.init = &(const struct clk_init_data) {
796 .clkr.hw.init = &(const struct clk_init_data) {
811 .clkr.hw.init = &(const struct clk_init_data) {
824 .clkr.hw.init = &(const struct clk_init_data) {
827 &disp_cc_mdss_byte0_clk_src.clkr.hw,
838 .clkr.hw.init = &(const struct clk_init_data) {
841 &disp_cc_mdss_byte1_clk_src.clkr.hw,
852 .clkr.hw.init = &(const struct clk_init_data) {
855 &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
867 .clkr.hw.init = &(const struct clk_init_data) {
870 &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
882 .clkr.hw.init = &(const struct clk_init_data) {
885 &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
897 .clkr.hw.init = &(const struct clk_init_data) {
900 &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
911 .clkr = {
917 &disp_cc_esync0_clk_src.clkr.hw,
929 .clkr = {
935 &disp_cc_esync1_clk_src.clkr.hw,
947 .clkr = {
953 &disp_cc_xo_clk_src.clkr.hw,
965 .clkr = {
971 &disp_cc_mdss_ahb_clk_src.clkr.hw,
983 .clkr = {
989 &disp_cc_mdss_ahb_clk_src.clkr.hw,
1001 .clkr = {
1007 &disp_cc_mdss_byte0_clk_src.clkr.hw,
1019 .clkr = {
1025 &disp_cc_mdss_byte0_div_clk_src.clkr.hw,
1037 .clkr = {
1043 &disp_cc_mdss_byte1_clk_src.clkr.hw,
1055 .clkr = {
1061 &disp_cc_mdss_byte1_div_clk_src.clkr.hw,
1073 .clkr = {
1079 &disp_cc_mdss_dptx0_aux_clk_src.clkr.hw,
1091 .clkr = {
1097 &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
1109 .clkr = {
1115 &disp_cc_mdss_dptx0_link_clk_src.clkr.hw,
1127 .clkr = {
1133 &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1145 .clkr = {
1151 &disp_cc_mdss_dptx0_pixel0_clk_src.clkr.hw,
1163 .clkr = {
1169 &disp_cc_mdss_dptx0_pixel1_clk_src.clkr.hw,
1181 .clkr = {
1187 &disp_cc_mdss_dptx0_link_div_clk_src.clkr.hw,
1199 .clkr = {
1205 &disp_cc_mdss_dptx1_aux_clk_src.clkr.hw,
1217 .clkr = {
1223 &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
1235 .clkr = {
1241 &disp_cc_mdss_dptx1_link_clk_src.clkr.hw,
1253 .clkr = {
1259 &disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1271 .clkr = {
1277 &disp_cc_mdss_dptx1_pixel0_clk_src.clkr.hw,
1289 .clkr = {
1295 &disp_cc_mdss_dptx1_pixel1_clk_src.clkr.hw,
1307 .clkr = {
1313 &disp_cc_mdss_dptx1_link_div_clk_src.clkr.hw,
1325 .clkr = {
1331 &disp_cc_mdss_dptx2_aux_clk_src.clkr.hw,
1343 .clkr = {
1349 &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
1361 .clkr = {
1367 &disp_cc_mdss_dptx2_link_clk_src.clkr.hw,
1379 .clkr = {
1385 &disp_cc_mdss_dptx2_link_div_clk_src.clkr.hw,
1397 .clkr = {
1403 &disp_cc_mdss_dptx2_pixel0_clk_src.clkr.hw,
1415 .clkr = {
1421 &disp_cc_mdss_dptx2_pixel1_clk_src.clkr.hw,
1433 .clkr = {
1439 &disp_cc_mdss_dptx3_aux_clk_src.clkr.hw,
1451 .clkr = {
1457 &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
1469 .clkr = {
1475 &disp_cc_mdss_dptx3_link_clk_src.clkr.hw,
1487 .clkr = {
1493 &disp_cc_mdss_dptx3_link_div_clk_src.clkr.hw,
1505 .clkr = {
1511 &disp_cc_mdss_dptx3_pixel0_clk_src.clkr.hw,
1523 .clkr = {
1529 &disp_cc_mdss_esc0_clk_src.clkr.hw,
1541 .clkr = {
1547 &disp_cc_mdss_esc1_clk_src.clkr.hw,
1559 .clkr = {
1565 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1577 .clkr = {
1583 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1595 .clkr = {
1601 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1613 .clkr = {
1619 &disp_cc_mdss_mdp_clk_src.clkr.hw,
1631 .clkr = {
1637 &disp_cc_mdss_ahb_clk_src.clkr.hw,
1649 .clkr = {
1655 &disp_cc_mdss_pclk0_clk_src.clkr.hw,
1667 .clkr = {
1673 &disp_cc_mdss_pclk1_clk_src.clkr.hw,
1685 .clkr = {
1691 &disp_cc_mdss_pclk2_clk_src.clkr.hw,
1703 .clkr = {
1709 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1721 .clkr = {
1727 &disp_cc_mdss_vsync_clk_src.clkr.hw,
1739 .clkr = {
1745 &disp_cc_osc_clk_src.clkr.hw,
1779 [DISP_CC_ESYNC0_CLK] = &disp_cc_esync0_clk.clkr,
1780 [DISP_CC_ESYNC0_CLK_SRC] = &disp_cc_esync0_clk_src.clkr,
1781 [DISP_CC_ESYNC1_CLK] = &disp_cc_esync1_clk.clkr,
1782 [DISP_CC_ESYNC1_CLK_SRC] = &disp_cc_esync1_clk_src.clkr,
1783 [DISP_CC_MDSS_ACCU_SHIFT_CLK] = &disp_cc_mdss_accu_shift_clk.clkr,
1784 [DISP_CC_MDSS_AHB1_CLK] = &disp_cc_mdss_ahb1_clk.clkr,
1785 [DISP_CC_MDSS_AHB_CLK] = &disp_cc_mdss_ahb_clk.clkr,
1786 [DISP_CC_MDSS_AHB_CLK_SRC] = &disp_cc_mdss_ahb_clk_src.clkr,
1787 [DISP_CC_MDSS_BYTE0_CLK] = &disp_cc_mdss_byte0_clk.clkr,
1788 [DISP_CC_MDSS_BYTE0_CLK_SRC] = &disp_cc_mdss_byte0_clk_src.clkr,
1789 [DISP_CC_MDSS_BYTE0_DIV_CLK_SRC] = &disp_cc_mdss_byte0_div_clk_src.clkr,
1790 [DISP_CC_MDSS_BYTE0_INTF_CLK] = &disp_cc_mdss_byte0_intf_clk.clkr,
1791 [DISP_CC_MDSS_BYTE1_CLK] = &disp_cc_mdss_byte1_clk.clkr,
1792 [DISP_CC_MDSS_BYTE1_CLK_SRC] = &disp_cc_mdss_byte1_clk_src.clkr,
1793 [DISP_CC_MDSS_BYTE1_DIV_CLK_SRC] = &disp_cc_mdss_byte1_div_clk_src.clkr,
1794 [DISP_CC_MDSS_BYTE1_INTF_CLK] = &disp_cc_mdss_byte1_intf_clk.clkr,
1795 [DISP_CC_MDSS_DPTX0_AUX_CLK] = &disp_cc_mdss_dptx0_aux_clk.clkr,
1796 [DISP_CC_MDSS_DPTX0_AUX_CLK_SRC] = &disp_cc_mdss_dptx0_aux_clk_src.clkr,
1797 [DISP_CC_MDSS_DPTX0_CRYPTO_CLK] = &disp_cc_mdss_dptx0_crypto_clk.clkr,
1798 [DISP_CC_MDSS_DPTX0_LINK_CLK] = &disp_cc_mdss_dptx0_link_clk.clkr,
1799 [DISP_CC_MDSS_DPTX0_LINK_CLK_SRC] = &disp_cc_mdss_dptx0_link_clk_src.clkr,
1800 [DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx0_link_div_clk_src.clkr,
1801 [DISP_CC_MDSS_DPTX0_LINK_INTF_CLK] = &disp_cc_mdss_dptx0_link_intf_clk.clkr,
1802 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK] = &disp_cc_mdss_dptx0_pixel0_clk.clkr,
1803 [DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx0_pixel0_clk_src.clkr,
1804 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK] = &disp_cc_mdss_dptx0_pixel1_clk.clkr,
1805 [DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx0_pixel1_clk_src.clkr,
1807 &disp_cc_mdss_dptx0_usb_router_link_intf_clk.clkr,
1808 [DISP_CC_MDSS_DPTX1_AUX_CLK] = &disp_cc_mdss_dptx1_aux_clk.clkr,
1809 [DISP_CC_MDSS_DPTX1_AUX_CLK_SRC] = &disp_cc_mdss_dptx1_aux_clk_src.clkr,
1810 [DISP_CC_MDSS_DPTX1_CRYPTO_CLK] = &disp_cc_mdss_dptx1_crypto_clk.clkr,
1811 [DISP_CC_MDSS_DPTX1_LINK_CLK] = &disp_cc_mdss_dptx1_link_clk.clkr,
1812 [DISP_CC_MDSS_DPTX1_LINK_CLK_SRC] = &disp_cc_mdss_dptx1_link_clk_src.clkr,
1813 [DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx1_link_div_clk_src.clkr,
1814 [DISP_CC_MDSS_DPTX1_LINK_INTF_CLK] = &disp_cc_mdss_dptx1_link_intf_clk.clkr,
1815 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK] = &disp_cc_mdss_dptx1_pixel0_clk.clkr,
1816 [DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx1_pixel0_clk_src.clkr,
1817 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK] = &disp_cc_mdss_dptx1_pixel1_clk.clkr,
1818 [DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx1_pixel1_clk_src.clkr,
1820 &disp_cc_mdss_dptx1_usb_router_link_intf_clk.clkr,
1821 [DISP_CC_MDSS_DPTX2_AUX_CLK] = &disp_cc_mdss_dptx2_aux_clk.clkr,
1822 [DISP_CC_MDSS_DPTX2_AUX_CLK_SRC] = &disp_cc_mdss_dptx2_aux_clk_src.clkr,
1823 [DISP_CC_MDSS_DPTX2_CRYPTO_CLK] = &disp_cc_mdss_dptx2_crypto_clk.clkr,
1824 [DISP_CC_MDSS_DPTX2_LINK_CLK] = &disp_cc_mdss_dptx2_link_clk.clkr,
1825 [DISP_CC_MDSS_DPTX2_LINK_CLK_SRC] = &disp_cc_mdss_dptx2_link_clk_src.clkr,
1826 [DISP_CC_MDSS_DPTX2_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx2_link_div_clk_src.clkr,
1827 [DISP_CC_MDSS_DPTX2_LINK_INTF_CLK] = &disp_cc_mdss_dptx2_link_intf_clk.clkr,
1828 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK] = &disp_cc_mdss_dptx2_pixel0_clk.clkr,
1829 [DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx2_pixel0_clk_src.clkr,
1830 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK] = &disp_cc_mdss_dptx2_pixel1_clk.clkr,
1831 [DISP_CC_MDSS_DPTX2_PIXEL1_CLK_SRC] = &disp_cc_mdss_dptx2_pixel1_clk_src.clkr,
1832 [DISP_CC_MDSS_DPTX3_AUX_CLK] = &disp_cc_mdss_dptx3_aux_clk.clkr,
1833 [DISP_CC_MDSS_DPTX3_AUX_CLK_SRC] = &disp_cc_mdss_dptx3_aux_clk_src.clkr,
1834 [DISP_CC_MDSS_DPTX3_CRYPTO_CLK] = &disp_cc_mdss_dptx3_crypto_clk.clkr,
1835 [DISP_CC_MDSS_DPTX3_LINK_CLK] = &disp_cc_mdss_dptx3_link_clk.clkr,
1836 [DISP_CC_MDSS_DPTX3_LINK_CLK_SRC] = &disp_cc_mdss_dptx3_link_clk_src.clkr,
1837 [DISP_CC_MDSS_DPTX3_LINK_DIV_CLK_SRC] = &disp_cc_mdss_dptx3_link_div_clk_src.clkr,
1838 [DISP_CC_MDSS_DPTX3_LINK_INTF_CLK] = &disp_cc_mdss_dptx3_link_intf_clk.clkr,
1839 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK] = &disp_cc_mdss_dptx3_pixel0_clk.clkr,
1840 [DISP_CC_MDSS_DPTX3_PIXEL0_CLK_SRC] = &disp_cc_mdss_dptx3_pixel0_clk_src.clkr,
1841 [DISP_CC_MDSS_ESC0_CLK] = &disp_cc_mdss_esc0_clk.clkr,
1842 [DISP_CC_MDSS_ESC0_CLK_SRC] = &disp_cc_mdss_esc0_clk_src.clkr,
1843 [DISP_CC_MDSS_ESC1_CLK] = &disp_cc_mdss_esc1_clk.clkr,
1844 [DISP_CC_MDSS_ESC1_CLK_SRC] = &disp_cc_mdss_esc1_clk_src.clkr,
1845 [DISP_CC_MDSS_MDP1_CLK] = &disp_cc_mdss_mdp1_clk.clkr,
1846 [DISP_CC_MDSS_MDP_CLK] = &disp_cc_mdss_mdp_clk.clkr,
1847 [DISP_CC_MDSS_MDP_CLK_SRC] = &disp_cc_mdss_mdp_clk_src.clkr,
1848 [DISP_CC_MDSS_MDP_LUT1_CLK] = &disp_cc_mdss_mdp_lut1_clk.clkr,
1849 [DISP_CC_MDSS_MDP_LUT_CLK] = &disp_cc_mdss_mdp_lut_clk.clkr,
1850 [DISP_CC_MDSS_NON_GDSC_AHB_CLK] = &disp_cc_mdss_non_gdsc_ahb_clk.clkr,
1851 [DISP_CC_MDSS_PCLK0_CLK] = &disp_cc_mdss_pclk0_clk.clkr,
1852 [DISP_CC_MDSS_PCLK0_CLK_SRC] = &disp_cc_mdss_pclk0_clk_src.clkr,
1853 [DISP_CC_MDSS_PCLK1_CLK] = &disp_cc_mdss_pclk1_clk.clkr,
1854 [DISP_CC_MDSS_PCLK1_CLK_SRC] = &disp_cc_mdss_pclk1_clk_src.clkr,
1855 [DISP_CC_MDSS_PCLK2_CLK] = &disp_cc_mdss_pclk2_clk.clkr,
1856 [DISP_CC_MDSS_PCLK2_CLK_SRC] = &disp_cc_mdss_pclk2_clk_src.clkr,
1857 [DISP_CC_MDSS_VSYNC1_CLK] = &disp_cc_mdss_vsync1_clk.clkr,
1858 [DISP_CC_MDSS_VSYNC_CLK] = &disp_cc_mdss_vsync_clk.clkr,
1859 [DISP_CC_MDSS_VSYNC_CLK_SRC] = &disp_cc_mdss_vsync_clk_src.clkr,
1860 [DISP_CC_OSC_CLK] = &disp_cc_osc_clk.clkr,
1861 [DISP_CC_OSC_CLK_SRC] = &disp_cc_osc_clk_src.clkr,
1862 [DISP_CC_PLL0] = &disp_cc_pll0.clkr,
1863 [DISP_CC_PLL1] = &disp_cc_pll1.clkr,
1864 [DISP_CC_PLL2] = &disp_cc_pll2.clkr,
1865 [DISP_CC_SLEEP_CLK_SRC] = &disp_cc_sleep_clk_src.clkr,
1866 [DISP_CC_XO_CLK_SRC] = &disp_cc_xo_clk_src.clkr,
1899 { .compatible = "qcom,sm8750-dispcc" },
1909 ret = devm_pm_runtime_enable(&pdev->dev);
1913 ret = pm_runtime_resume_and_get(&pdev->dev);
1930 /* Keep some clocks always-on */
1936 ret = qcom_cc_really_probe(&pdev->dev, &disp_cc_sm8750_desc, regmap);
1940 pm_runtime_put(&pdev->dev);
1945 pm_runtime_put_sync(&pdev->dev);
1953 .name = "disp_cc-sm8750",