diff options
-rw-r--r-- | drivers/clk/samsung/clk-exynos5420.c | 76 | ||||
-rw-r--r-- | include/dt-bindings/clock/exynos5420.h | 3 |
2 files changed, 48 insertions, 31 deletions
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c index f38c0efaaa73..41af467719dc 100644 --- a/drivers/clk/samsung/clk-exynos5420.c +++ b/drivers/clk/samsung/clk-exynos5420.c | |||
@@ -83,6 +83,7 @@ | |||
83 | #define SCLK_DIV_ISP1 0x10584 | 83 | #define SCLK_DIV_ISP1 0x10584 |
84 | #define DIV2_RATIO0 0x10590 | 84 | #define DIV2_RATIO0 0x10590 |
85 | #define GATE_BUS_TOP 0x10700 | 85 | #define GATE_BUS_TOP 0x10700 |
86 | #define GATE_BUS_GEN 0x1073c | ||
86 | #define GATE_BUS_FSYS0 0x10740 | 87 | #define GATE_BUS_FSYS0 0x10740 |
87 | #define GATE_BUS_PERIC 0x10750 | 88 | #define GATE_BUS_PERIC 0x10750 |
88 | #define GATE_BUS_PERIC1 0x10754 | 89 | #define GATE_BUS_PERIC1 0x10754 |
@@ -96,6 +97,7 @@ | |||
96 | #define GATE_IP_G3D 0x10930 | 97 | #define GATE_IP_G3D 0x10930 |
97 | #define GATE_IP_GEN 0x10934 | 98 | #define GATE_IP_GEN 0x10934 |
98 | #define GATE_IP_PERIC 0x10950 | 99 | #define GATE_IP_PERIC 0x10950 |
100 | #define GATE_IP_PERIS 0x10960 | ||
99 | #define GATE_IP_MSCL 0x10970 | 101 | #define GATE_IP_MSCL 0x10970 |
100 | #define GATE_TOP_SCLK_GSCL 0x10820 | 102 | #define GATE_TOP_SCLK_GSCL 0x10820 |
101 | #define GATE_TOP_SCLK_DISP1 0x10828 | 103 | #define GATE_TOP_SCLK_DISP1 0x10828 |
@@ -172,6 +174,7 @@ static unsigned long exynos5420_clk_regs[] __initdata = { | |||
172 | SCLK_DIV_ISP1, | 174 | SCLK_DIV_ISP1, |
173 | DIV2_RATIO0, | 175 | DIV2_RATIO0, |
174 | GATE_BUS_TOP, | 176 | GATE_BUS_TOP, |
177 | GATE_BUS_GEN, | ||
175 | GATE_BUS_FSYS0, | 178 | GATE_BUS_FSYS0, |
176 | GATE_BUS_PERIC, | 179 | GATE_BUS_PERIC, |
177 | GATE_BUS_PERIC1, | 180 | GATE_BUS_PERIC1, |
@@ -185,6 +188,7 @@ static unsigned long exynos5420_clk_regs[] __initdata = { | |||
185 | GATE_IP_G3D, | 188 | GATE_IP_G3D, |
186 | GATE_IP_GEN, | 189 | GATE_IP_GEN, |
187 | GATE_IP_PERIC, | 190 | GATE_IP_PERIC, |
191 | GATE_IP_PERIS, | ||
188 | GATE_IP_MSCL, | 192 | GATE_IP_MSCL, |
189 | GATE_TOP_SCLK_GSCL, | 193 | GATE_TOP_SCLK_GSCL, |
190 | GATE_TOP_SCLK_DISP1, | 194 | GATE_TOP_SCLK_DISP1, |
@@ -606,6 +610,10 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = { | |||
606 | /* MSCL Block */ | 610 | /* MSCL Block */ |
607 | DIV(0, "dout_mscl_blk", "aclk400_mscl", DIV2_RATIO0, 28, 2), | 611 | DIV(0, "dout_mscl_blk", "aclk400_mscl", DIV2_RATIO0, 28, 2), |
608 | 612 | ||
613 | /* PSGEN */ | ||
614 | DIV(0, "dout_gen_blk", "mout_user_aclk266", DIV2_RATIO0, 8, 1), | ||
615 | DIV(0, "dout_jpg_blk", "aclk166", DIV2_RATIO0, 20, 1), | ||
616 | |||
609 | /* ISP Block */ | 617 | /* ISP Block */ |
610 | DIV(0, "dout_isp_sensor0", "mout_isp_sensor", SCLK_DIV_ISP0, 8, 8), | 618 | DIV(0, "dout_isp_sensor0", "mout_isp_sensor", SCLK_DIV_ISP0, 8, 8), |
611 | DIV(0, "dout_isp_sensor1", "mout_isp_sensor", SCLK_DIV_ISP0, 16, 8), | 619 | DIV(0, "dout_isp_sensor1", "mout_isp_sensor", SCLK_DIV_ISP0, 16, 8), |
@@ -628,10 +636,6 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | |||
628 | GATE(CLK_SMMU_MDMA0, "smmu_mdma0", "aclk266_g2d", GATE_IP_G2D, 5, 0, 0), | 636 | GATE(CLK_SMMU_MDMA0, "smmu_mdma0", "aclk266_g2d", GATE_IP_G2D, 5, 0, 0), |
629 | GATE(CLK_SMMU_G2D, "smmu_g2d", "aclk333_g2d", GATE_IP_G2D, 7, 0, 0), | 637 | GATE(CLK_SMMU_G2D, "smmu_g2d", "aclk333_g2d", GATE_IP_G2D, 7, 0, 0), |
630 | 638 | ||
631 | /* TODO: Re-verify the CG bits for all the gate clocks */ | ||
632 | GATE_A(CLK_MCT, "pclk_st", "aclk66_psgen", GATE_BUS_PERIS1, 2, 0, 0, | ||
633 | "mct"), | ||
634 | |||
635 | GATE(0, "aclk200_fsys", "mout_user_aclk200_fsys", | 639 | GATE(0, "aclk200_fsys", "mout_user_aclk200_fsys", |
636 | GATE_BUS_FSYS0, 9, CLK_IGNORE_UNUSED, 0), | 640 | GATE_BUS_FSYS0, 9, CLK_IGNORE_UNUSED, 0), |
637 | GATE(0, "aclk200_fsys2", "mout_user_aclk200_fsys2", | 641 | GATE(0, "aclk200_fsys2", "mout_user_aclk200_fsys2", |
@@ -781,28 +785,46 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | |||
781 | 785 | ||
782 | GATE(CLK_KEYIF, "keyif", "aclk66_peric", GATE_BUS_PERIC, 22, 0, 0), | 786 | GATE(CLK_KEYIF, "keyif", "aclk66_peric", GATE_BUS_PERIC, 22, 0, 0), |
783 | 787 | ||
788 | /* PERIS Block */ | ||
784 | GATE(CLK_CHIPID, "chipid", "aclk66_psgen", | 789 | GATE(CLK_CHIPID, "chipid", "aclk66_psgen", |
785 | GATE_BUS_PERIS0, 12, CLK_IGNORE_UNUSED, 0), | 790 | GATE_IP_PERIS, 0, CLK_IGNORE_UNUSED, 0), |
786 | GATE(CLK_SYSREG, "sysreg", "aclk66_psgen", | 791 | GATE(CLK_SYSREG, "sysreg", "aclk66_psgen", |
787 | GATE_BUS_PERIS0, 13, CLK_IGNORE_UNUSED, 0), | 792 | GATE_IP_PERIS, 1, CLK_IGNORE_UNUSED, 0), |
788 | GATE(CLK_TZPC0, "tzpc0", "aclk66_psgen", GATE_BUS_PERIS0, 18, 0, 0), | 793 | GATE(CLK_TZPC0, "tzpc0", "aclk66_psgen", GATE_IP_PERIS, 6, 0, 0), |
789 | GATE(CLK_TZPC1, "tzpc1", "aclk66_psgen", GATE_BUS_PERIS0, 19, 0, 0), | 794 | GATE(CLK_TZPC1, "tzpc1", "aclk66_psgen", GATE_IP_PERIS, 7, 0, 0), |
790 | GATE(CLK_TZPC2, "tzpc2", "aclk66_psgen", GATE_BUS_PERIS0, 20, 0, 0), | 795 | GATE(CLK_TZPC2, "tzpc2", "aclk66_psgen", GATE_IP_PERIS, 8, 0, 0), |
791 | GATE(CLK_TZPC3, "tzpc3", "aclk66_psgen", GATE_BUS_PERIS0, 21, 0, 0), | 796 | GATE(CLK_TZPC3, "tzpc3", "aclk66_psgen", GATE_IP_PERIS, 9, 0, 0), |
792 | GATE(CLK_TZPC4, "tzpc4", "aclk66_psgen", GATE_BUS_PERIS0, 22, 0, 0), | 797 | GATE(CLK_TZPC4, "tzpc4", "aclk66_psgen", GATE_IP_PERIS, 10, 0, 0), |
793 | GATE(CLK_TZPC5, "tzpc5", "aclk66_psgen", GATE_BUS_PERIS0, 23, 0, 0), | 798 | GATE(CLK_TZPC5, "tzpc5", "aclk66_psgen", GATE_IP_PERIS, 11, 0, 0), |
794 | GATE(CLK_TZPC6, "tzpc6", "aclk66_psgen", GATE_BUS_PERIS0, 24, 0, 0), | 799 | GATE(CLK_TZPC6, "tzpc6", "aclk66_psgen", GATE_IP_PERIS, 12, 0, 0), |
795 | GATE(CLK_TZPC7, "tzpc7", "aclk66_psgen", GATE_BUS_PERIS0, 25, 0, 0), | 800 | GATE(CLK_TZPC7, "tzpc7", "aclk66_psgen", GATE_IP_PERIS, 13, 0, 0), |
796 | GATE(CLK_TZPC8, "tzpc8", "aclk66_psgen", GATE_BUS_PERIS0, 26, 0, 0), | 801 | GATE(CLK_TZPC8, "tzpc8", "aclk66_psgen", GATE_IP_PERIS, 14, 0, 0), |
797 | GATE(CLK_TZPC9, "tzpc9", "aclk66_psgen", GATE_BUS_PERIS0, 27, 0, 0), | 802 | GATE(CLK_TZPC9, "tzpc9", "aclk66_psgen", GATE_IP_PERIS, 15, 0, 0), |
798 | 803 | GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk66_psgen", GATE_IP_PERIS, 16, 0, 0), | |
799 | GATE(CLK_HDMI_CEC, "hdmi_cec", "aclk66_psgen", GATE_BUS_PERIS1, 0, 0, | 804 | GATE(CLK_MCT, "mct", "aclk66_psgen", GATE_IP_PERIS, 18, 0, 0), |
800 | 0), | 805 | GATE(CLK_WDT, "wdt", "aclk66_psgen", GATE_IP_PERIS, 19, 0, 0), |
806 | GATE(CLK_RTC, "rtc", "aclk66_psgen", GATE_IP_PERIS, 20, 0, 0), | ||
807 | GATE(CLK_TMU, "tmu", "aclk66_psgen", GATE_IP_PERIS, 21, 0, 0), | ||
808 | GATE(CLK_TMU_GPU, "tmu_gpu", "aclk66_psgen", GATE_IP_PERIS, 22, 0, 0), | ||
809 | |||
801 | GATE(CLK_SECKEY, "seckey", "aclk66_psgen", GATE_BUS_PERIS1, 1, 0, 0), | 810 | GATE(CLK_SECKEY, "seckey", "aclk66_psgen", GATE_BUS_PERIS1, 1, 0, 0), |
802 | GATE(CLK_WDT, "wdt", "aclk66_psgen", GATE_BUS_PERIS1, 3, 0, 0), | 811 | |
803 | GATE(CLK_RTC, "rtc", "aclk66_psgen", GATE_BUS_PERIS1, 4, 0, 0), | 812 | /* GEN Block */ |
804 | GATE(CLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0), | 813 | GATE(CLK_ROTATOR, "rotator", "mout_user_aclk266", GATE_IP_GEN, 1, 0, 0), |
805 | GATE(CLK_TMU_GPU, "tmu_gpu", "aclk66_psgen", GATE_BUS_PERIS1, 6, 0, 0), | 814 | GATE(CLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0), |
815 | GATE(CLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0), | ||
816 | GATE(CLK_MDMA1, "mdma1", "mout_user_aclk266", GATE_IP_GEN, 4, 0, 0), | ||
817 | GATE(CLK_TOP_RTC, "top_rtc", "aclk66_psgen", GATE_IP_GEN, 5, 0, 0), | ||
818 | GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "dout_gen_blk", | ||
819 | GATE_IP_GEN, 6, 0, 0), | ||
820 | GATE(CLK_SMMU_JPEG, "smmu_jpeg", "dout_jpg_blk", GATE_IP_GEN, 7, 0, 0), | ||
821 | GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "dout_gen_blk", | ||
822 | GATE_IP_GEN, 9, 0, 0), | ||
823 | |||
824 | /* GATE_IP_GEN doesn't list gates for smmu_jpeg2 and mc */ | ||
825 | GATE(CLK_SMMU_JPEG2, "smmu_jpeg2", "dout_jpg_blk", | ||
826 | GATE_BUS_GEN, 28, 0, 0), | ||
827 | GATE(CLK_MC, "mc", "aclk66_psgen", GATE_BUS_GEN, 12, 0, 0), | ||
806 | 828 | ||
807 | /* GSCL Block */ | 829 | /* GSCL Block */ |
808 | GATE(CLK_SCLK_GSCL_WA, "sclk_gscl_wa", "mout_user_aclk333_432_gscl", | 830 | GATE(CLK_SCLK_GSCL_WA, "sclk_gscl_wa", "mout_user_aclk333_432_gscl", |
@@ -880,14 +902,6 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | |||
880 | GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0), | 902 | GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0), |
881 | 903 | ||
882 | GATE(CLK_G3D, "g3d", "mout_user_aclk_g3d", GATE_IP_G3D, 9, 0, 0), | 904 | GATE(CLK_G3D, "g3d", "mout_user_aclk_g3d", GATE_IP_G3D, 9, 0, 0), |
883 | |||
884 | GATE(CLK_ROTATOR, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0), | ||
885 | GATE(CLK_JPEG, "jpeg", "aclk300_jpeg", GATE_IP_GEN, 2, 0, 0), | ||
886 | GATE(CLK_JPEG2, "jpeg2", "aclk300_jpeg", GATE_IP_GEN, 3, 0, 0), | ||
887 | GATE(CLK_MDMA1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0), | ||
888 | GATE(CLK_SMMU_ROTATOR, "smmu_rotator", "aclk266", GATE_IP_GEN, 6, 0, 0), | ||
889 | GATE(CLK_SMMU_JPEG, "smmu_jpeg", "aclk300_jpeg", GATE_IP_GEN, 7, 0, 0), | ||
890 | GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0), | ||
891 | }; | 905 | }; |
892 | 906 | ||
893 | static struct samsung_pll_clock exynos5420_plls[nr_plls] __initdata = { | 907 | static struct samsung_pll_clock exynos5420_plls[nr_plls] __initdata = { |
diff --git a/include/dt-bindings/clock/exynos5420.h b/include/dt-bindings/clock/exynos5420.h index e688b64564b2..16262da05cf2 100644 --- a/include/dt-bindings/clock/exynos5420.h +++ b/include/dt-bindings/clock/exynos5420.h | |||
@@ -153,6 +153,7 @@ | |||
153 | #define CLK_JPEG 451 | 153 | #define CLK_JPEG 451 |
154 | #define CLK_JPEG2 452 | 154 | #define CLK_JPEG2 452 |
155 | #define CLK_SMMU_JPEG 453 | 155 | #define CLK_SMMU_JPEG 453 |
156 | #define CLK_SMMU_JPEG2 454 | ||
156 | #define CLK_ACLK300_GSCL 460 | 157 | #define CLK_ACLK300_GSCL 460 |
157 | #define CLK_SMMU_GSCL0 461 | 158 | #define CLK_SMMU_GSCL0 461 |
158 | #define CLK_SMMU_GSCL1 462 | 159 | #define CLK_SMMU_GSCL1 462 |
@@ -180,6 +181,8 @@ | |||
180 | #define CLK_SMMU_MIXER 502 | 181 | #define CLK_SMMU_MIXER 502 |
181 | #define CLK_SMMU_G2D 503 | 182 | #define CLK_SMMU_G2D 503 |
182 | #define CLK_SMMU_MDMA0 504 | 183 | #define CLK_SMMU_MDMA0 504 |
184 | #define CLK_MC 505 | ||
185 | #define CLK_TOP_RTC 506 | ||
183 | #define CLK_SCLK_UART_ISP 510 | 186 | #define CLK_SCLK_UART_ISP 510 |
184 | #define CLK_SCLK_SPI0_ISP 511 | 187 | #define CLK_SCLK_SPI0_ISP 511 |
185 | #define CLK_SCLK_SPI1_ISP 512 | 188 | #define CLK_SCLK_SPI1_ISP 512 |