diff options
author | Chanwoo Choi <cw00.choi@samsung.com> | 2015-02-02 09:24:05 -0500 |
---|---|---|
committer | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2015-02-04 12:58:14 -0500 |
commit | 4b8013554b0454984e71bc20bc31966886079e15 (patch) | |
tree | aec461bd118b077e7326389b1b625035454ffdce /drivers/clk/samsung | |
parent | 5785d6e61f27f7af4d239c1647d5a22e0dbff19b (diff) |
clk: samsung: exynos5433: Add missing clocks for CMU_FSYS domain
This patch adds the mux/divider/gate clocks for CMU_FSYS domain which
contains the clocks of USB/UFS/SDMMC/TSI/PDMA IPs.
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Diffstat (limited to 'drivers/clk/samsung')
-rw-r--r-- | drivers/clk/samsung/clk-exynos5433.c | 302 |
1 files changed, 302 insertions, 0 deletions
diff --git a/drivers/clk/samsung/clk-exynos5433.c b/drivers/clk/samsung/clk-exynos5433.c index 7c4e91a440e5..1cdc47e05ac1 100644 --- a/drivers/clk/samsung/clk-exynos5433.c +++ b/drivers/clk/samsung/clk-exynos5433.c | |||
@@ -462,6 +462,16 @@ static struct samsung_div_clock top_div_clks[] __initdata = { | |||
462 | DIV(CLK_DIV_SCLK_MMC2_A, "div_sclk_mmc2_a", "mout_sclk_mmc2_b", | 462 | DIV(CLK_DIV_SCLK_MMC2_A, "div_sclk_mmc2_a", "mout_sclk_mmc2_b", |
463 | DIV_TOP_FSYS1, 0, 4), | 463 | DIV_TOP_FSYS1, 0, 4), |
464 | 464 | ||
465 | /* DIV_TOP_FSYS2 */ | ||
466 | DIV(CLK_DIV_SCLK_PCIE_100, "div_sclk_pcie_100", "mout_sclk_pcie_100", | ||
467 | DIV_TOP_FSYS2, 12, 3), | ||
468 | DIV(CLK_DIV_SCLK_USBHOST30, "div_sclk_usbhost30", | ||
469 | "mout_sclk_usbhost30", DIV_TOP_FSYS2, 8, 4), | ||
470 | DIV(CLK_DIV_SCLK_UFSUNIPRO, "div_sclk_ufsunipro", | ||
471 | "mout_sclk_ufsunipro", DIV_TOP_FSYS2, 4, 4), | ||
472 | DIV(CLK_DIV_SCLK_USBDRD30, "div_sclk_usbdrd30", "mout_sclk_usbdrd30", | ||
473 | DIV_TOP_FSYS2, 0, 4), | ||
474 | |||
465 | /* DIV_TOP_PERIC0 */ | 475 | /* DIV_TOP_PERIC0 */ |
466 | DIV(CLK_DIV_SCLK_SPI1_B, "div_sclk_spi1_b", "div_sclk_spi1_a", | 476 | DIV(CLK_DIV_SCLK_SPI1_B, "div_sclk_spi1_b", "div_sclk_spi1_a", |
467 | DIV_TOP_PERIC0, 16, 8), | 477 | DIV_TOP_PERIC0, 16, 8), |
@@ -543,12 +553,23 @@ static struct samsung_gate_clock top_gate_clks[] __initdata = { | |||
543 | CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), | 553 | CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), |
544 | 554 | ||
545 | /* ENABLE_SCLK_TOP_FSYS */ | 555 | /* ENABLE_SCLK_TOP_FSYS */ |
556 | GATE(CLK_SCLK_PCIE_100_FSYS, "sclk_pcie_100_fsys", "div_sclk_pcie_100", | ||
557 | ENABLE_SCLK_TOP_FSYS, 7, 0, 0), | ||
546 | GATE(CLK_SCLK_MMC2_FSYS, "sclk_mmc2_fsys", "div_sclk_mmc2_b", | 558 | GATE(CLK_SCLK_MMC2_FSYS, "sclk_mmc2_fsys", "div_sclk_mmc2_b", |
547 | ENABLE_SCLK_TOP_FSYS, 6, CLK_SET_RATE_PARENT, 0), | 559 | ENABLE_SCLK_TOP_FSYS, 6, CLK_SET_RATE_PARENT, 0), |
548 | GATE(CLK_SCLK_MMC1_FSYS, "sclk_mmc1_fsys", "div_sclk_mmc1_b", | 560 | GATE(CLK_SCLK_MMC1_FSYS, "sclk_mmc1_fsys", "div_sclk_mmc1_b", |
549 | ENABLE_SCLK_TOP_FSYS, 5, CLK_SET_RATE_PARENT, 0), | 561 | ENABLE_SCLK_TOP_FSYS, 5, CLK_SET_RATE_PARENT, 0), |
550 | GATE(CLK_SCLK_MMC0_FSYS, "sclk_mmc0_fsys", "div_sclk_mmc0_b", | 562 | GATE(CLK_SCLK_MMC0_FSYS, "sclk_mmc0_fsys", "div_sclk_mmc0_b", |
551 | ENABLE_SCLK_TOP_FSYS, 4, CLK_SET_RATE_PARENT, 0), | 563 | ENABLE_SCLK_TOP_FSYS, 4, CLK_SET_RATE_PARENT, 0), |
564 | GATE(CLK_SCLK_UFSUNIPRO_FSYS, "sclk_ufsunipro_fsys", | ||
565 | "div_sclk_ufsunipro", ENABLE_SCLK_TOP_FSYS, | ||
566 | 3, CLK_SET_RATE_PARENT, 0), | ||
567 | GATE(CLK_SCLK_USBHOST30_FSYS, "sclk_usbhost30_fsys", | ||
568 | "div_sclk_usbhost30", ENABLE_SCLK_TOP_FSYS, | ||
569 | 1, CLK_SET_RATE_PARENT, 0), | ||
570 | GATE(CLK_SCLK_USBDRD30_FSYS, "sclk_usbdrd30_fsys", | ||
571 | "div_sclk_usbdrd30", ENABLE_SCLK_TOP_FSYS, | ||
572 | 0, CLK_SET_RATE_PARENT, 0), | ||
552 | 573 | ||
553 | /* ENABLE_SCLK_TOP_PERIC */ | 574 | /* ENABLE_SCLK_TOP_PERIC */ |
554 | GATE(CLK_SCLK_SPI4_PERIC, "sclk_spi4_peric", "div_sclk_spi4_b", | 575 | GATE(CLK_SCLK_SPI4_PERIC, "sclk_spi4_peric", "div_sclk_spi4_b", |
@@ -1832,10 +1853,45 @@ CLK_OF_DECLARE(exynos5433_cmu_peris, "samsung,exynos5433-cmu-peris", | |||
1832 | #define ENABLE_IP_FSYS1 0x0b04 | 1853 | #define ENABLE_IP_FSYS1 0x0b04 |
1833 | 1854 | ||
1834 | /* list of all parent clock list */ | 1855 | /* list of all parent clock list */ |
1856 | PNAME(mout_sclk_ufs_mphy_user_p) = { "oscclk", "sclk_ufs_mphy", }; | ||
1835 | PNAME(mout_aclk_fsys_200_user_p) = { "oscclk", "div_aclk_fsys_200", }; | 1857 | PNAME(mout_aclk_fsys_200_user_p) = { "oscclk", "div_aclk_fsys_200", }; |
1858 | PNAME(mout_sclk_pcie_100_user_p) = { "oscclk", "sclk_pcie_100_fsys",}; | ||
1859 | PNAME(mout_sclk_ufsunipro_user_p) = { "oscclk", "sclk_ufsunipro_fsys",}; | ||
1836 | PNAME(mout_sclk_mmc2_user_p) = { "oscclk", "sclk_mmc2_fsys", }; | 1860 | PNAME(mout_sclk_mmc2_user_p) = { "oscclk", "sclk_mmc2_fsys", }; |
1837 | PNAME(mout_sclk_mmc1_user_p) = { "oscclk", "sclk_mmc1_fsys", }; | 1861 | PNAME(mout_sclk_mmc1_user_p) = { "oscclk", "sclk_mmc1_fsys", }; |
1838 | PNAME(mout_sclk_mmc0_user_p) = { "oscclk", "sclk_mmc0_fsys", }; | 1862 | PNAME(mout_sclk_mmc0_user_p) = { "oscclk", "sclk_mmc0_fsys", }; |
1863 | PNAME(mout_sclk_usbhost30_user_p) = { "oscclk", "sclk_usbhost30_fsys",}; | ||
1864 | PNAME(mout_sclk_usbdrd30_user_p) = { "oscclk", "sclk_usbdrd30_fsys", }; | ||
1865 | |||
1866 | PNAME(mout_phyclk_usbhost30_uhost30_pipe_pclk_user_p) | ||
1867 | = { "oscclk", "phyclk_usbhost30_uhost30_pipe_pclk_phy", }; | ||
1868 | PNAME(mout_phyclk_usbhost30_uhost30_phyclock_user_p) | ||
1869 | = { "oscclk", "phyclk_usbhost30_uhost30_phyclock_phy", }; | ||
1870 | PNAME(mout_phyclk_usbhost20_phy_hsic1_p) | ||
1871 | = { "oscclk", "phyclk_usbhost20_phy_hsic1_phy", }; | ||
1872 | PNAME(mout_phyclk_usbhost20_phy_clk48mohci_user_p) | ||
1873 | = { "oscclk", "phyclk_usbhost20_phy_clk48mohci_phy", }; | ||
1874 | PNAME(mout_phyclk_usbhost20_phy_phyclock_user_p) | ||
1875 | = { "oscclk", "phyclk_usbhost20_phy_phyclock_phy", }; | ||
1876 | PNAME(mout_phyclk_usbhost20_phy_freeclk_user_p) | ||
1877 | = { "oscclk", "phyclk_usbhost20_phy_freeclk_phy", }; | ||
1878 | PNAME(mout_phyclk_usbdrd30_udrd30_pipe_pclk_p) | ||
1879 | = { "oscclk", "phyclk_usbdrd30_udrd30_pipe_pclk_phy", }; | ||
1880 | PNAME(mout_phyclk_usbdrd30_udrd30_phyclock_user_p) | ||
1881 | = { "oscclk", "phyclk_usbdrd30_udrd30_phyclock_phy", }; | ||
1882 | PNAME(mout_phyclk_ufs_rx1_symbol_user_p) | ||
1883 | = { "oscclk", "phyclk_ufs_rx1_symbol_phy", }; | ||
1884 | PNAME(mout_phyclk_ufs_rx0_symbol_user_p) | ||
1885 | = { "oscclk", "phyclk_ufs_rx0_symbol_phy", }; | ||
1886 | PNAME(mout_phyclk_ufs_tx1_symbol_user_p) | ||
1887 | = { "oscclk", "phyclk_ufs_tx1_symbol_phy", }; | ||
1888 | PNAME(mout_phyclk_ufs_tx0_symbol_user_p) | ||
1889 | = { "oscclk", "phyclk_ufs_tx0_symbol_phy", }; | ||
1890 | PNAME(mout_phyclk_lli_mphy_to_ufs_user_p) | ||
1891 | = { "oscclk", "phyclk_lli_mphy_to_ufs_phy", }; | ||
1892 | PNAME(mout_sclk_mphy_p) | ||
1893 | = { "mout_sclk_ufs_mphy_user", | ||
1894 | "mout_phyclk_lli_mphy_to_ufs_user", }; | ||
1839 | 1895 | ||
1840 | static unsigned long fsys_clk_regs[] __initdata = { | 1896 | static unsigned long fsys_clk_regs[] __initdata = { |
1841 | MUX_SEL_FSYS0, | 1897 | MUX_SEL_FSYS0, |
@@ -1863,18 +1919,130 @@ static unsigned long fsys_clk_regs[] __initdata = { | |||
1863 | ENABLE_IP_FSYS1, | 1919 | ENABLE_IP_FSYS1, |
1864 | }; | 1920 | }; |
1865 | 1921 | ||
1922 | static struct samsung_fixed_rate_clock fsys_fixed_clks[] __initdata = { | ||
1923 | /* PHY clocks from USBDRD30_PHY */ | ||
1924 | FRATE(CLK_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_PHY, | ||
1925 | "phyclk_usbdrd30_udrd30_phyclock_phy", NULL, | ||
1926 | CLK_IS_ROOT, 60000000), | ||
1927 | FRATE(CLK_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_PHY, | ||
1928 | "phyclk_usbdrd30_udrd30_pipe_pclk_phy", NULL, | ||
1929 | CLK_IS_ROOT, 125000000), | ||
1930 | /* PHY clocks from USBHOST30_PHY */ | ||
1931 | FRATE(CLK_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_PHY, | ||
1932 | "phyclk_usbhost30_uhost30_phyclock_phy", NULL, | ||
1933 | CLK_IS_ROOT, 60000000), | ||
1934 | FRATE(CLK_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_PHY, | ||
1935 | "phyclk_usbhost30_uhost30_pipe_pclk_phy", NULL, | ||
1936 | CLK_IS_ROOT, 125000000), | ||
1937 | /* PHY clocks from USBHOST20_PHY */ | ||
1938 | FRATE(CLK_PHYCLK_USBHOST20_PHY_FREECLK_PHY, | ||
1939 | "phyclk_usbhost20_phy_freeclk_phy", NULL, CLK_IS_ROOT, | ||
1940 | 60000000), | ||
1941 | FRATE(CLK_PHYCLK_USBHOST20_PHY_PHYCLOCK_PHY, | ||
1942 | "phyclk_usbhost20_phy_phyclock_phy", NULL, CLK_IS_ROOT, | ||
1943 | 60000000), | ||
1944 | FRATE(CLK_PHYCLK_USBHOST20_PHY_CLK48MOHCI_PHY, | ||
1945 | "phyclk_usbhost20_phy_clk48mohci_phy", NULL, | ||
1946 | CLK_IS_ROOT, 48000000), | ||
1947 | FRATE(CLK_PHYCLK_USBHOST20_PHY_HSIC1_PHY, | ||
1948 | "phyclk_usbhost20_phy_hsic1_phy", NULL, CLK_IS_ROOT, | ||
1949 | 60000000), | ||
1950 | /* PHY clocks from UFS_PHY */ | ||
1951 | FRATE(CLK_PHYCLK_UFS_TX0_SYMBOL_PHY, "phyclk_ufs_tx0_symbol_phy", | ||
1952 | NULL, CLK_IS_ROOT, 300000000), | ||
1953 | FRATE(CLK_PHYCLK_UFS_RX0_SYMBOL_PHY, "phyclk_ufs_rx0_symbol_phy", | ||
1954 | NULL, CLK_IS_ROOT, 300000000), | ||
1955 | FRATE(CLK_PHYCLK_UFS_TX1_SYMBOL_PHY, "phyclk_ufs_tx1_symbol_phy", | ||
1956 | NULL, CLK_IS_ROOT, 300000000), | ||
1957 | FRATE(CLK_PHYCLK_UFS_RX1_SYMBOL_PHY, "phyclk_ufs_rx1_symbol_phy", | ||
1958 | NULL, CLK_IS_ROOT, 300000000), | ||
1959 | /* PHY clocks from LLI_PHY */ | ||
1960 | FRATE(CLK_PHYCLK_LLI_MPHY_TO_UFS_PHY, "phyclk_lli_mphy_to_ufs_phy", | ||
1961 | NULL, CLK_IS_ROOT, 26000000), | ||
1962 | }; | ||
1963 | |||
1866 | static struct samsung_mux_clock fsys_mux_clks[] __initdata = { | 1964 | static struct samsung_mux_clock fsys_mux_clks[] __initdata = { |
1867 | /* MUX_SEL_FSYS0 */ | 1965 | /* MUX_SEL_FSYS0 */ |
1966 | MUX(CLK_MOUT_SCLK_UFS_MPHY_USER, "mout_sclk_ufs_mphy_user", | ||
1967 | mout_sclk_ufs_mphy_user_p, MUX_SEL_FSYS0, 4, 1), | ||
1868 | MUX(CLK_MOUT_ACLK_FSYS_200_USER, "mout_aclk_fsys_200_user", | 1968 | MUX(CLK_MOUT_ACLK_FSYS_200_USER, "mout_aclk_fsys_200_user", |
1869 | mout_aclk_fsys_200_user_p, MUX_SEL_FSYS0, 0, 1), | 1969 | mout_aclk_fsys_200_user_p, MUX_SEL_FSYS0, 0, 1), |
1870 | 1970 | ||
1871 | /* MUX_SEL_FSYS1 */ | 1971 | /* MUX_SEL_FSYS1 */ |
1972 | MUX(CLK_MOUT_SCLK_PCIE_100_USER, "mout_sclk_pcie_100_user", | ||
1973 | mout_sclk_pcie_100_user_p, MUX_SEL_FSYS1, 28, 1), | ||
1974 | MUX(CLK_MOUT_SCLK_UFSUNIPRO_USER, "mout_sclk_ufsunipro_user", | ||
1975 | mout_sclk_ufsunipro_user_p, MUX_SEL_FSYS1, 24, 1), | ||
1872 | MUX(CLK_MOUT_SCLK_MMC2_USER, "mout_sclk_mmc2_user", | 1976 | MUX(CLK_MOUT_SCLK_MMC2_USER, "mout_sclk_mmc2_user", |
1873 | mout_sclk_mmc2_user_p, MUX_SEL_FSYS1, 20, 1), | 1977 | mout_sclk_mmc2_user_p, MUX_SEL_FSYS1, 20, 1), |
1874 | MUX(CLK_MOUT_SCLK_MMC1_USER, "mout_sclk_mmc1_user", | 1978 | MUX(CLK_MOUT_SCLK_MMC1_USER, "mout_sclk_mmc1_user", |
1875 | mout_sclk_mmc1_user_p, MUX_SEL_FSYS1, 16, 1), | 1979 | mout_sclk_mmc1_user_p, MUX_SEL_FSYS1, 16, 1), |
1876 | MUX(CLK_MOUT_SCLK_MMC0_USER, "mout_sclk_mmc0_user", | 1980 | MUX(CLK_MOUT_SCLK_MMC0_USER, "mout_sclk_mmc0_user", |
1877 | mout_sclk_mmc0_user_p, MUX_SEL_FSYS1, 12, 1), | 1981 | mout_sclk_mmc0_user_p, MUX_SEL_FSYS1, 12, 1), |
1982 | MUX(CLK_MOUT_SCLK_USBHOST30_USER, "mout_sclk_usbhost30_user", | ||
1983 | mout_sclk_usbhost30_user_p, MUX_SEL_FSYS1, 4, 1), | ||
1984 | MUX(CLK_MOUT_SCLK_USBDRD30_USER, "mout_sclk_usbdrd30_user", | ||
1985 | mout_sclk_usbdrd30_user_p, MUX_SEL_FSYS1, 0, 1), | ||
1986 | |||
1987 | /* MUX_SEL_FSYS2 */ | ||
1988 | MUX(CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_USER, | ||
1989 | "mout_phyclk_usbhost30_uhost30_pipe_pclk_user", | ||
1990 | mout_phyclk_usbhost30_uhost30_pipe_pclk_user_p, | ||
1991 | MUX_SEL_FSYS2, 28, 1), | ||
1992 | MUX(CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_USER, | ||
1993 | "mout_phyclk_usbhost30_uhost30_phyclock_user", | ||
1994 | mout_phyclk_usbhost30_uhost30_phyclock_user_p, | ||
1995 | MUX_SEL_FSYS2, 24, 1), | ||
1996 | MUX(CLK_MOUT_PHYCLK_USBHOST20_PHY_HSIC1_USER, | ||
1997 | "mout_phyclk_usbhost20_phy_hsic1", | ||
1998 | mout_phyclk_usbhost20_phy_hsic1_p, | ||
1999 | MUX_SEL_FSYS2, 20, 1), | ||
2000 | MUX(CLK_MOUT_PHYCLK_USBHOST20_PHY_CLK48MOHCI_USER, | ||
2001 | "mout_phyclk_usbhost20_phy_clk48mohci_user", | ||
2002 | mout_phyclk_usbhost20_phy_clk48mohci_user_p, | ||
2003 | MUX_SEL_FSYS2, 16, 1), | ||
2004 | MUX(CLK_MOUT_PHYCLK_USBHOST20_PHY_PHYCLOCK_USER, | ||
2005 | "mout_phyclk_usbhost20_phy_phyclock_user", | ||
2006 | mout_phyclk_usbhost20_phy_phyclock_user_p, | ||
2007 | MUX_SEL_FSYS2, 12, 1), | ||
2008 | MUX(CLK_MOUT_PHYCLK_USBHOST20_PHY_PHY_FREECLK_USER, | ||
2009 | "mout_phyclk_usbhost20_phy_freeclk_user", | ||
2010 | mout_phyclk_usbhost20_phy_freeclk_user_p, | ||
2011 | MUX_SEL_FSYS2, 8, 1), | ||
2012 | MUX(CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER, | ||
2013 | "mout_phyclk_usbdrd30_udrd30_pipe_pclk_user", | ||
2014 | mout_phyclk_usbdrd30_udrd30_pipe_pclk_p, | ||
2015 | MUX_SEL_FSYS2, 4, 1), | ||
2016 | MUX(CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER, | ||
2017 | "mout_phyclk_usbdrd30_udrd30_phyclock_user", | ||
2018 | mout_phyclk_usbdrd30_udrd30_phyclock_user_p, | ||
2019 | MUX_SEL_FSYS2, 0, 1), | ||
2020 | |||
2021 | /* MUX_SEL_FSYS3 */ | ||
2022 | MUX(CLK_MOUT_PHYCLK_UFS_RX1_SYMBOL_USER, | ||
2023 | "mout_phyclk_ufs_rx1_symbol_user", | ||
2024 | mout_phyclk_ufs_rx1_symbol_user_p, | ||
2025 | MUX_SEL_FSYS3, 16, 1), | ||
2026 | MUX(CLK_MOUT_PHYCLK_UFS_RX0_SYMBOL_USER, | ||
2027 | "mout_phyclk_ufs_rx0_symbol_user", | ||
2028 | mout_phyclk_ufs_rx0_symbol_user_p, | ||
2029 | MUX_SEL_FSYS3, 12, 1), | ||
2030 | MUX(CLK_MOUT_PHYCLK_UFS_TX1_SYMBOL_USER, | ||
2031 | "mout_phyclk_ufs_tx1_symbol_user", | ||
2032 | mout_phyclk_ufs_tx1_symbol_user_p, | ||
2033 | MUX_SEL_FSYS3, 8, 1), | ||
2034 | MUX(CLK_MOUT_PHYCLK_UFS_TX0_SYMBOL_USER, | ||
2035 | "mout_phyclk_ufs_tx0_symbol_user", | ||
2036 | mout_phyclk_ufs_tx0_symbol_user_p, | ||
2037 | MUX_SEL_FSYS3, 4, 1), | ||
2038 | MUX(CLK_MOUT_PHYCLK_LLI_MPHY_TO_UFS_USER, | ||
2039 | "mout_phyclk_lli_mphy_to_ufs_user", | ||
2040 | mout_phyclk_lli_mphy_to_ufs_user_p, | ||
2041 | MUX_SEL_FSYS3, 0, 1), | ||
2042 | |||
2043 | /* MUX_SEL_FSYS4 */ | ||
2044 | MUX(CLK_MOUT_SCLK_MPHY, "mout_sclk_mphy", mout_sclk_mphy_p, | ||
2045 | MUX_SEL_FSYS4, 0, 1), | ||
1878 | }; | 2046 | }; |
1879 | 2047 | ||
1880 | static struct samsung_gate_clock fsys_gate_clks[] __initdata = { | 2048 | static struct samsung_gate_clock fsys_gate_clks[] __initdata = { |
@@ -1902,13 +2070,145 @@ static struct samsung_gate_clock fsys_gate_clks[] __initdata = { | |||
1902 | GATE(CLK_ACLK_PDMA0, "aclk_pdma0", "mout_aclk_fsys_200_user", | 2070 | GATE(CLK_ACLK_PDMA0, "aclk_pdma0", "mout_aclk_fsys_200_user", |
1903 | ENABLE_ACLK_FSYS0, 0, CLK_IGNORE_UNUSED, 0), | 2071 | ENABLE_ACLK_FSYS0, 0, CLK_IGNORE_UNUSED, 0), |
1904 | 2072 | ||
2073 | /* ENABLE_ACLK_FSYS1 */ | ||
2074 | GATE(CLK_ACLK_XIU_FSYSPX, "aclk_xiu_fsyspx", "mout_aclk_fsys_200_user", | ||
2075 | ENABLE_ACLK_FSYS1, 27, CLK_IGNORE_UNUSED, 0), | ||
2076 | GATE(CLK_ACLK_AHB_USBLINKH1, "aclk_ahb_usblinkh1", | ||
2077 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2078 | 26, CLK_IGNORE_UNUSED, 0), | ||
2079 | GATE(CLK_ACLK_SMMU_PDMA1, "aclk_smmu_pdma1", "mout_aclk_fsys_200_user", | ||
2080 | ENABLE_ACLK_FSYS1, 25, CLK_IGNORE_UNUSED, 0), | ||
2081 | GATE(CLK_ACLK_BTS_PCIE, "aclk_bts_pcie", "mout_aclk_fsys_200_user", | ||
2082 | ENABLE_ACLK_FSYS1, 24, 0, 0), | ||
2083 | GATE(CLK_ACLK_AXIUS_PDMA1, "aclk_axius_pdma1", | ||
2084 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2085 | 22, CLK_IGNORE_UNUSED, 0), | ||
2086 | GATE(CLK_ACLK_SMMU_PDMA0, "aclk_smmu_pdma0", "mout_aclk_fsys_200_user", | ||
2087 | ENABLE_ACLK_FSYS1, 17, CLK_IGNORE_UNUSED, 0), | ||
2088 | GATE(CLK_ACLK_BTS_UFS, "aclk_bts_ufs", "mout_aclk_fsys_200_user", | ||
2089 | ENABLE_ACLK_FSYS1, 14, CLK_IGNORE_UNUSED, 0), | ||
2090 | GATE(CLK_ACLK_BTS_USBHOST30, "aclk_bts_usbhost30", | ||
2091 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2092 | 13, 0, 0), | ||
2093 | GATE(CLK_ACLK_BTS_USBDRD30, "aclk_bts_usbdrd30", | ||
2094 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2095 | 12, 0, 0), | ||
2096 | GATE(CLK_ACLK_AXIUS_PDMA0, "aclk_axius_pdma0", | ||
2097 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2098 | 11, CLK_IGNORE_UNUSED, 0), | ||
2099 | GATE(CLK_ACLK_AXIUS_USBHS, "aclk_axius_usbhs", | ||
2100 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2101 | 10, CLK_IGNORE_UNUSED, 0), | ||
2102 | GATE(CLK_ACLK_AXIUS_FSYSSX, "aclk_axius_fsyssx", | ||
2103 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2104 | 9, CLK_IGNORE_UNUSED, 0), | ||
2105 | GATE(CLK_ACLK_AHB2APB_FSYSP, "aclk_ahb2apb_fsysp", | ||
2106 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2107 | 8, CLK_IGNORE_UNUSED, 0), | ||
2108 | GATE(CLK_ACLK_AHB2AXI_USBHS, "aclk_ahb2axi_usbhs", | ||
2109 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2110 | 7, CLK_IGNORE_UNUSED, 0), | ||
2111 | GATE(CLK_ACLK_AHB_USBLINKH0, "aclk_ahb_usblinkh0", | ||
2112 | "mout_aclk_fsys_200_user", ENABLE_ACLK_FSYS1, | ||
2113 | 6, CLK_IGNORE_UNUSED, 0), | ||
2114 | GATE(CLK_ACLK_AHB_USBHS, "aclk_ahb_usbhs", "mout_aclk_fsys_200_user", | ||
2115 | ENABLE_ACLK_FSYS1, 5, CLK_IGNORE_UNUSED, 0), | ||
2116 | GATE(CLK_ACLK_AHB_FSYSH, "aclk_ahb_fsysh", "mout_aclk_fsys_200_user", | ||
2117 | ENABLE_ACLK_FSYS1, 4, CLK_IGNORE_UNUSED, 0), | ||
2118 | GATE(CLK_ACLK_XIU_FSYSX, "aclk_xiu_fsysx", "mout_aclk_fsys_200_user", | ||
2119 | ENABLE_ACLK_FSYS1, 3, CLK_IGNORE_UNUSED, 0), | ||
2120 | GATE(CLK_ACLK_XIU_FSYSSX, "aclk_xiu_fsyssx", "mout_aclk_fsys_200_user", | ||
2121 | ENABLE_ACLK_FSYS1, 2, CLK_IGNORE_UNUSED, 0), | ||
2122 | GATE(CLK_ACLK_FSYSNP_200, "aclk_fsysnp_200", "mout_aclk_fsys_200_user", | ||
2123 | ENABLE_ACLK_FSYS1, 1, CLK_IGNORE_UNUSED, 0), | ||
2124 | GATE(CLK_ACLK_FSYSND_200, "aclk_fsysnd_200", "mout_aclk_fsys_200_user", | ||
2125 | ENABLE_ACLK_FSYS1, 0, CLK_IGNORE_UNUSED, 0), | ||
2126 | |||
2127 | /* ENABLE_PCLK_FSYS */ | ||
2128 | GATE(CLK_PCLK_PCIE_CTRL, "pclk_pcie_ctrl", "mout_aclk_fsys_200_user", | ||
2129 | ENABLE_PCLK_FSYS, 17, 0, 0), | ||
2130 | GATE(CLK_PCLK_SMMU_PDMA1, "pclk_smmu_pdma1", "mout_aclk_fsys_200_user", | ||
2131 | ENABLE_PCLK_FSYS, 16, CLK_IGNORE_UNUSED, 0), | ||
2132 | GATE(CLK_PCLK_PCIE_PHY, "pclk_pcie_phy", "mout_aclk_fsys_200_user", | ||
2133 | ENABLE_PCLK_FSYS, 14, 0, 0), | ||
2134 | GATE(CLK_PCLK_BTS_PCIE, "pclk_bts_pcie", "mout_aclk_fsys_200_user", | ||
2135 | ENABLE_PCLK_FSYS, 13, 0, 0), | ||
2136 | GATE(CLK_PCLK_SMMU_PDMA0, "pclk_smmu_pdma0", "mout_aclk_fsys_200_user", | ||
2137 | ENABLE_PCLK_FSYS, 8, CLK_IGNORE_UNUSED, 0), | ||
2138 | GATE(CLK_PCLK_BTS_UFS, "pclk_bts_ufs", "mout_aclk_fsys_200_user", | ||
2139 | ENABLE_PCLK_FSYS, 5, 0, 0), | ||
2140 | GATE(CLK_PCLK_BTS_USBHOST30, "pclk_bts_usbhost30", | ||
2141 | "mout_aclk_fsys_200_user", ENABLE_PCLK_FSYS, 4, 0, 0), | ||
2142 | GATE(CLK_PCLK_BTS_USBDRD30, "pclk_bts_usbdrd30", | ||
2143 | "mout_aclk_fsys_200_user", ENABLE_PCLK_FSYS, 3, 0, 0), | ||
2144 | GATE(CLK_PCLK_GPIO_FSYS, "pclk_gpio_fsys", "mout_aclk_fsys_200_user", | ||
2145 | ENABLE_PCLK_FSYS, 2, CLK_IGNORE_UNUSED, 0), | ||
2146 | GATE(CLK_PCLK_PMU_FSYS, "pclk_pmu_fsys", "mout_aclk_fsys_200_user", | ||
2147 | ENABLE_PCLK_FSYS, 1, CLK_IGNORE_UNUSED, 0), | ||
2148 | GATE(CLK_PCLK_SYSREG_FSYS, "pclk_sysreg_fsys", | ||
2149 | "mout_aclk_fsys_200_user", ENABLE_PCLK_FSYS, | ||
2150 | 0, CLK_IGNORE_UNUSED, 0), | ||
2151 | |||
1905 | /* ENABLE_SCLK_FSYS */ | 2152 | /* ENABLE_SCLK_FSYS */ |
2153 | GATE(CLK_SCLK_PCIE_100, "sclk_pcie_100", "mout_sclk_pcie_100_user", | ||
2154 | ENABLE_SCLK_FSYS, 21, 0, 0), | ||
2155 | GATE(CLK_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK, | ||
2156 | "phyclk_usbhost30_uhost30_pipe_pclk", | ||
2157 | "mout_phyclk_usbhost30_uhost30_pipe_pclk_user", | ||
2158 | ENABLE_SCLK_FSYS, 18, 0, 0), | ||
2159 | GATE(CLK_PHYCLK_USBHOST30_UHOST30_PHYCLOCK, | ||
2160 | "phyclk_usbhost30_uhost30_phyclock", | ||
2161 | "mout_phyclk_usbhost30_uhost30_phyclock_user", | ||
2162 | ENABLE_SCLK_FSYS, 17, 0, 0), | ||
2163 | GATE(CLK_PHYCLK_UFS_RX1_SYMBOL, "phyclk_ufs_rx1_symbol", | ||
2164 | "mout_phyclk_ufs_rx1_symbol_user", ENABLE_SCLK_FSYS, | ||
2165 | 16, 0, 0), | ||
2166 | GATE(CLK_PHYCLK_UFS_RX0_SYMBOL, "phyclk_ufs_rx0_symbol", | ||
2167 | "mout_phyclk_ufs_rx0_symbol_user", ENABLE_SCLK_FSYS, | ||
2168 | 15, 0, 0), | ||
2169 | GATE(CLK_PHYCLK_UFS_TX1_SYMBOL, "phyclk_ufs_tx1_symbol", | ||
2170 | "mout_phyclk_ufs_tx1_symbol_user", ENABLE_SCLK_FSYS, | ||
2171 | 14, 0, 0), | ||
2172 | GATE(CLK_PHYCLK_UFS_TX0_SYMBOL, "phyclk_ufs_tx0_symbol", | ||
2173 | "mout_phyclk_ufs_tx0_symbol_user", ENABLE_SCLK_FSYS, | ||
2174 | 13, 0, 0), | ||
2175 | GATE(CLK_PHYCLK_USBHOST20_PHY_HSIC1, "phyclk_usbhost20_phy_hsic1", | ||
2176 | "mout_phyclk_usbhost20_phy_hsic1", ENABLE_SCLK_FSYS, | ||
2177 | 12, 0, 0), | ||
2178 | GATE(CLK_PHYCLK_USBHOST20_PHY_CLK48MOHCI, | ||
2179 | "phyclk_usbhost20_phy_clk48mohci", | ||
2180 | "mout_phyclk_usbhost20_phy_clk48mohci_user", | ||
2181 | ENABLE_SCLK_FSYS, 11, 0, 0), | ||
2182 | GATE(CLK_PHYCLK_USBHOST20_PHY_PHYCLOCK, | ||
2183 | "phyclk_usbhost20_phy_phyclock", | ||
2184 | "mout_phyclk_usbhost20_phy_phyclock_user", | ||
2185 | ENABLE_SCLK_FSYS, 10, 0, 0), | ||
2186 | GATE(CLK_PHYCLK_USBHOST20_PHY_FREECLK, | ||
2187 | "phyclk_usbhost20_phy_freeclk", | ||
2188 | "mout_phyclk_usbhost20_phy_freeclk_user", | ||
2189 | ENABLE_SCLK_FSYS, 9, 0, 0), | ||
2190 | GATE(CLK_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK, | ||
2191 | "phyclk_usbdrd30_udrd30_pipe_pclk", | ||
2192 | "mout_phyclk_usbdrd30_udrd30_pipe_pclk_user", | ||
2193 | ENABLE_SCLK_FSYS, 8, 0, 0), | ||
2194 | GATE(CLK_PHYCLK_USBDRD30_UDRD30_PHYCLOCK, | ||
2195 | "phyclk_usbdrd30_udrd30_phyclock", | ||
2196 | "mout_phyclk_usbdrd30_udrd30_phyclock_user", | ||
2197 | ENABLE_SCLK_FSYS, 7, 0, 0), | ||
2198 | GATE(CLK_SCLK_MPHY, "sclk_mphy", "mout_sclk_mphy", | ||
2199 | ENABLE_SCLK_FSYS, 6, 0, 0), | ||
2200 | GATE(CLK_SCLK_UFSUNIPRO, "sclk_ufsunipro", "mout_sclk_ufsunipro_user", | ||
2201 | ENABLE_SCLK_FSYS, 5, 0, 0), | ||
1906 | GATE(CLK_SCLK_MMC2, "sclk_mmc2", "mout_sclk_mmc2_user", | 2202 | GATE(CLK_SCLK_MMC2, "sclk_mmc2", "mout_sclk_mmc2_user", |
1907 | ENABLE_SCLK_FSYS, 4, CLK_SET_RATE_PARENT, 0), | 2203 | ENABLE_SCLK_FSYS, 4, CLK_SET_RATE_PARENT, 0), |
1908 | GATE(CLK_SCLK_MMC1, "sclk_mmc1", "mout_sclk_mmc1_user", | 2204 | GATE(CLK_SCLK_MMC1, "sclk_mmc1", "mout_sclk_mmc1_user", |
1909 | ENABLE_SCLK_FSYS, 3, CLK_SET_RATE_PARENT, 0), | 2205 | ENABLE_SCLK_FSYS, 3, CLK_SET_RATE_PARENT, 0), |
1910 | GATE(CLK_SCLK_MMC0, "sclk_mmc0", "mout_sclk_mmc0_user", | 2206 | GATE(CLK_SCLK_MMC0, "sclk_mmc0", "mout_sclk_mmc0_user", |
1911 | ENABLE_SCLK_FSYS, 2, CLK_SET_RATE_PARENT, 0), | 2207 | ENABLE_SCLK_FSYS, 2, CLK_SET_RATE_PARENT, 0), |
2208 | GATE(CLK_SCLK_USBHOST30, "sclk_usbhost30", "mout_sclk_usbhost30_user", | ||
2209 | ENABLE_SCLK_FSYS, 1, 0, 0), | ||
2210 | GATE(CLK_SCLK_USBDRD30, "sclk_usbdrd30", "mout_sclk_usbdrd30_user", | ||
2211 | ENABLE_SCLK_FSYS, 0, 0, 0), | ||
1912 | 2212 | ||
1913 | /* ENABLE_IP_FSYS0 */ | 2213 | /* ENABLE_IP_FSYS0 */ |
1914 | GATE(CLK_PDMA1, "pdma1", "aclk_pdma1", ENABLE_IP_FSYS0, 15, 0, 0), | 2214 | GATE(CLK_PDMA1, "pdma1", "aclk_pdma1", ENABLE_IP_FSYS0, 15, 0, 0), |
@@ -1920,6 +2220,8 @@ static struct samsung_cmu_info fsys_cmu_info __initdata = { | |||
1920 | .nr_mux_clks = ARRAY_SIZE(fsys_mux_clks), | 2220 | .nr_mux_clks = ARRAY_SIZE(fsys_mux_clks), |
1921 | .gate_clks = fsys_gate_clks, | 2221 | .gate_clks = fsys_gate_clks, |
1922 | .nr_gate_clks = ARRAY_SIZE(fsys_gate_clks), | 2222 | .nr_gate_clks = ARRAY_SIZE(fsys_gate_clks), |
2223 | .fixed_clks = fsys_fixed_clks, | ||
2224 | .nr_fixed_clks = ARRAY_SIZE(fsys_fixed_clks), | ||
1923 | .nr_clk_ids = FSYS_NR_CLK, | 2225 | .nr_clk_ids = FSYS_NR_CLK, |
1924 | .clk_regs = fsys_clk_regs, | 2226 | .clk_regs = fsys_clk_regs, |
1925 | .nr_clk_regs = ARRAY_SIZE(fsys_clk_regs), | 2227 | .nr_clk_regs = ARRAY_SIZE(fsys_clk_regs), |