diff options
author | Shaik Ameer Basha <shaik.ameer@samsung.com> | 2014-05-08 07:27:52 -0400 |
---|---|---|
committer | Tomasz Figa <t.figa@samsung.com> | 2014-05-14 13:40:18 -0400 |
commit | 02932381ca1d9ab894c893b28fed288d6bae011b (patch) | |
tree | 434f55d439c3d1a3319d29ecb119c7e9ffc6a86a | |
parent | 3a767b35c6c2f2e5f75e22a429b4d6d8c6736626 (diff) |
clk: samsung: exynos5420: update clocks for GSCL and MSCL blocks
This patch adds the missing GSCL and MSCL block clocks
and corrects some wrong parent-child relationships.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
-rw-r--r-- | drivers/clk/samsung/clk-exynos5420.c | 71 | ||||
-rw-r--r-- | include/dt-bindings/clock/exynos5420.h | 4 |
2 files changed, 47 insertions, 28 deletions
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c index c7e66219434f..cb7a63913e18 100644 --- a/drivers/clk/samsung/clk-exynos5420.c +++ b/drivers/clk/samsung/clk-exynos5420.c | |||
@@ -80,6 +80,7 @@ | |||
80 | #define DIV_PERIC4 0x10568 | 80 | #define DIV_PERIC4 0x10568 |
81 | #define SCLK_DIV_ISP0 0x10580 | 81 | #define SCLK_DIV_ISP0 0x10580 |
82 | #define SCLK_DIV_ISP1 0x10584 | 82 | #define SCLK_DIV_ISP1 0x10584 |
83 | #define DIV2_RATIO0 0x10590 | ||
83 | #define GATE_BUS_TOP 0x10700 | 84 | #define GATE_BUS_TOP 0x10700 |
84 | #define GATE_BUS_FSYS0 0x10740 | 85 | #define GATE_BUS_FSYS0 0x10740 |
85 | #define GATE_BUS_PERIC 0x10750 | 86 | #define GATE_BUS_PERIC 0x10750 |
@@ -165,6 +166,7 @@ static unsigned long exynos5420_clk_regs[] __initdata = { | |||
165 | DIV_PERIC4, | 166 | DIV_PERIC4, |
166 | SCLK_DIV_ISP0, | 167 | SCLK_DIV_ISP0, |
167 | SCLK_DIV_ISP1, | 168 | SCLK_DIV_ISP1, |
169 | DIV2_RATIO0, | ||
168 | GATE_BUS_TOP, | 170 | GATE_BUS_TOP, |
169 | GATE_BUS_FSYS0, | 171 | GATE_BUS_FSYS0, |
170 | GATE_BUS_PERIC, | 172 | GATE_BUS_PERIC, |
@@ -576,6 +578,11 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = { | |||
576 | DIV(0, "dout_pre_spi1", "dout_spi1", DIV_PERIC4, 16, 8), | 578 | DIV(0, "dout_pre_spi1", "dout_spi1", DIV_PERIC4, 16, 8), |
577 | DIV(0, "dout_pre_spi2", "dout_spi2", DIV_PERIC4, 24, 8), | 579 | DIV(0, "dout_pre_spi2", "dout_spi2", DIV_PERIC4, 24, 8), |
578 | 580 | ||
581 | /* GSCL Block */ | ||
582 | DIV(0, "dout_gscl_blk_300", "mout_user_aclk300_gscl", | ||
583 | DIV2_RATIO0, 4, 2), | ||
584 | DIV(0, "dout_gscl_blk_333", "aclk333_432_gscl", DIV2_RATIO0, 6, 2), | ||
585 | |||
579 | /* ISP Block */ | 586 | /* ISP Block */ |
580 | DIV(0, "dout_isp_sensor0", "mout_isp_sensor", SCLK_DIV_ISP0, 8, 8), | 587 | DIV(0, "dout_isp_sensor0", "mout_isp_sensor", SCLK_DIV_ISP0, 8, 8), |
581 | DIV(0, "dout_isp_sensor1", "mout_isp_sensor", SCLK_DIV_ISP0, 16, 8), | 588 | DIV(0, "dout_isp_sensor1", "mout_isp_sensor", SCLK_DIV_ISP0, 16, 8), |
@@ -631,6 +638,8 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | |||
631 | GATE_BUS_TOP, 15, CLK_IGNORE_UNUSED, 0), | 638 | GATE_BUS_TOP, 15, CLK_IGNORE_UNUSED, 0), |
632 | GATE(0, "aclk400_isp", "mout_user_aclk400_isp", | 639 | GATE(0, "aclk400_isp", "mout_user_aclk400_isp", |
633 | GATE_BUS_TOP, 16, 0, 0), | 640 | GATE_BUS_TOP, 16, 0, 0), |
641 | GATE(0, "aclk400_mscl", "mout_user_aclk400_mscl", | ||
642 | GATE_BUS_TOP, 17, 0, 0), | ||
634 | 643 | ||
635 | /* sclk */ | 644 | /* sclk */ |
636 | GATE(CLK_SCLK_UART0, "sclk_uart0", "dout_uart0", | 645 | GATE(CLK_SCLK_UART0, "sclk_uart0", "dout_uart0", |
@@ -678,11 +687,6 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | |||
678 | GATE(CLK_SCLK_USBD301, "sclk_unipro", "dout_unipro", | 687 | GATE(CLK_SCLK_USBD301, "sclk_unipro", "dout_unipro", |
679 | SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0), | 688 | SRC_MASK_FSYS, 24, CLK_SET_RATE_PARENT, 0), |
680 | 689 | ||
681 | GATE(CLK_SCLK_GSCL_WA, "sclk_gscl_wa", "aclK333_432_gscl", | ||
682 | GATE_TOP_SCLK_GSCL, 6, CLK_SET_RATE_PARENT, 0), | ||
683 | GATE(CLK_SCLK_GSCL_WB, "sclk_gscl_wb", "aclk333_432_gscl", | ||
684 | GATE_TOP_SCLK_GSCL, 7, CLK_SET_RATE_PARENT, 0), | ||
685 | |||
686 | /* Display */ | 690 | /* Display */ |
687 | GATE(CLK_SCLK_FIMD1, "sclk_fimd1", "dout_fimd1", | 691 | GATE(CLK_SCLK_FIMD1, "sclk_fimd1", "dout_fimd1", |
688 | GATE_TOP_SCLK_DISP1, 0, CLK_SET_RATE_PARENT, 0), | 692 | GATE_TOP_SCLK_DISP1, 0, CLK_SET_RATE_PARENT, 0), |
@@ -776,27 +780,49 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | |||
776 | GATE(CLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0), | 780 | GATE(CLK_TMU, "tmu", "aclk66_psgen", GATE_BUS_PERIS1, 5, 0, 0), |
777 | GATE(CLK_TMU_GPU, "tmu_gpu", "aclk66_psgen", GATE_BUS_PERIS1, 6, 0, 0), | 781 | GATE(CLK_TMU_GPU, "tmu_gpu", "aclk66_psgen", GATE_BUS_PERIS1, 6, 0, 0), |
778 | 782 | ||
783 | /* GSCL Block */ | ||
784 | GATE(CLK_SCLK_GSCL_WA, "sclk_gscl_wa", "mout_user_aclk333_432_gscl", | ||
785 | GATE_TOP_SCLK_GSCL, 6, 0, 0), | ||
786 | GATE(CLK_SCLK_GSCL_WB, "sclk_gscl_wb", "mout_user_aclk333_432_gscl", | ||
787 | GATE_TOP_SCLK_GSCL, 7, 0, 0), | ||
788 | |||
779 | GATE(CLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0), | 789 | GATE(CLK_GSCL0, "gscl0", "aclk300_gscl", GATE_IP_GSCL0, 0, 0, 0), |
780 | GATE(CLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0), | 790 | GATE(CLK_GSCL1, "gscl1", "aclk300_gscl", GATE_IP_GSCL0, 1, 0, 0), |
781 | GATE(CLK_CLK_3AA, "clk_3aa", "aclk300_gscl", GATE_IP_GSCL0, 4, 0, 0), | 791 | GATE(CLK_FIMC_3AA, "fimc_3aa", "aclk333_432_gscl", |
782 | 792 | GATE_IP_GSCL0, 4, 0, 0), | |
783 | GATE(CLK_SMMU_3AA, "smmu_3aa", "aclk333_432_gscl", GATE_IP_GSCL1, 2, 0, | 793 | GATE(CLK_FIMC_LITE0, "fimc_lite0", "aclk333_432_gscl", |
784 | 0), | 794 | GATE_IP_GSCL0, 5, 0, 0), |
785 | GATE(CLK_SMMU_FIMCL0, "smmu_fimcl0", "aclk333_432_gscl", | 795 | GATE(CLK_FIMC_LITE1, "fimc_lite1", "aclk333_432_gscl", |
796 | GATE_IP_GSCL0, 6, 0, 0), | ||
797 | |||
798 | GATE(CLK_SMMU_3AA, "smmu_3aa", "dout_gscl_blk_333", | ||
799 | GATE_IP_GSCL1, 2, 0, 0), | ||
800 | GATE(CLK_SMMU_FIMCL0, "smmu_fimcl0", "dout_gscl_blk_333", | ||
786 | GATE_IP_GSCL1, 3, 0, 0), | 801 | GATE_IP_GSCL1, 3, 0, 0), |
787 | GATE(CLK_SMMU_FIMCL1, "smmu_fimcl1", "aclk333_432_gscl", | 802 | GATE(CLK_SMMU_FIMCL1, "smmu_fimcl1", "dout_gscl_blk_333", |
788 | GATE_IP_GSCL1, 4, 0, 0), | 803 | GATE_IP_GSCL1, 4, 0, 0), |
789 | GATE(CLK_SMMU_GSCL0, "smmu_gscl0", "aclk300_gscl", GATE_IP_GSCL1, 6, 0, | 804 | GATE(CLK_SMMU_GSCL0, "smmu_gscl0", "dout_gscl_blk_300", |
790 | 0), | 805 | GATE_IP_GSCL1, 6, 0, 0), |
791 | GATE(CLK_SMMU_GSCL1, "smmu_gscl1", "aclk300_gscl", GATE_IP_GSCL1, 7, 0, | 806 | GATE(CLK_SMMU_GSCL1, "smmu_gscl1", "dout_gscl_blk_300", |
792 | 0), | 807 | GATE_IP_GSCL1, 7, 0, 0), |
793 | GATE(CLK_GSCL_WA, "gscl_wa", "aclk300_gscl", GATE_IP_GSCL1, 12, 0, 0), | 808 | GATE(CLK_GSCL_WA, "gscl_wa", "sclk_gscl_wa", GATE_IP_GSCL1, 12, 0, 0), |
794 | GATE(CLK_GSCL_WB, "gscl_wb", "aclk300_gscl", GATE_IP_GSCL1, 13, 0, 0), | 809 | GATE(CLK_GSCL_WB, "gscl_wb", "sclk_gscl_wb", GATE_IP_GSCL1, 13, 0, 0), |
795 | GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "aclk333_432_gscl", | 810 | GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "dout_gscl_blk_333", |
796 | GATE_IP_GSCL1, 16, 0, 0), | 811 | GATE_IP_GSCL1, 16, 0, 0), |
797 | GATE(CLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl", | 812 | GATE(CLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl", |
798 | GATE_IP_GSCL1, 17, 0, 0), | 813 | GATE_IP_GSCL1, 17, 0, 0), |
799 | 814 | ||
815 | /* MSCL Block */ | ||
816 | GATE(CLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0), | ||
817 | GATE(CLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0), | ||
818 | GATE(CLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0), | ||
819 | GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "aclk400_mscl", | ||
820 | GATE_IP_MSCL, 8, 0, 0), | ||
821 | GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "aclk400_mscl", | ||
822 | GATE_IP_MSCL, 9, 0, 0), | ||
823 | GATE(CLK_SMMU_MSCL2, "smmu_mscl2", "aclk400_mscl", | ||
824 | GATE_IP_MSCL, 10, 0, 0), | ||
825 | |||
800 | GATE(CLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0), | 826 | GATE(CLK_FIMD1, "fimd1", "aclk300_disp1", GATE_IP_DISP1, 0, 0, 0), |
801 | GATE(CLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0), | 827 | GATE(CLK_DSIM1, "dsim1", "aclk200_disp1", GATE_IP_DISP1, 3, 0, 0), |
802 | GATE(CLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0), | 828 | GATE(CLK_DP1, "dp1", "aclk200_disp1", GATE_IP_DISP1, 4, 0, 0), |
@@ -835,15 +861,6 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | |||
835 | GATE(CLK_SMMU_JPEG, "smmu_jpeg", "aclk300_jpeg", GATE_IP_GEN, 7, 0, 0), | 861 | GATE(CLK_SMMU_JPEG, "smmu_jpeg", "aclk300_jpeg", GATE_IP_GEN, 7, 0, 0), |
836 | GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0), | 862 | GATE(CLK_SMMU_MDMA1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0), |
837 | 863 | ||
838 | GATE(CLK_MSCL0, "mscl0", "aclk400_mscl", GATE_IP_MSCL, 0, 0, 0), | ||
839 | GATE(CLK_MSCL1, "mscl1", "aclk400_mscl", GATE_IP_MSCL, 1, 0, 0), | ||
840 | GATE(CLK_MSCL2, "mscl2", "aclk400_mscl", GATE_IP_MSCL, 2, 0, 0), | ||
841 | GATE(CLK_SMMU_MSCL0, "smmu_mscl0", "aclk400_mscl", GATE_IP_MSCL, 8, 0, | ||
842 | 0), | ||
843 | GATE(CLK_SMMU_MSCL1, "smmu_mscl1", "aclk400_mscl", GATE_IP_MSCL, 9, 0, | ||
844 | 0), | ||
845 | GATE(CLK_SMMU_MSCL2, "smmu_mscl2", "aclk400_mscl", GATE_IP_MSCL, 10, 0, | ||
846 | 0), | ||
847 | GATE(CLK_SMMU_MIXER, "smmu_mixer", "aclk200_disp1", GATE_IP_DISP1, 9, 0, | 864 | GATE(CLK_SMMU_MIXER, "smmu_mixer", "aclk200_disp1", GATE_IP_DISP1, 9, 0, |
848 | 0), | 865 | 0), |
849 | }; | 866 | }; |
diff --git a/include/dt-bindings/clock/exynos5420.h b/include/dt-bindings/clock/exynos5420.h index bddf5496fef2..6e22fddb0134 100644 --- a/include/dt-bindings/clock/exynos5420.h +++ b/include/dt-bindings/clock/exynos5420.h | |||
@@ -159,7 +159,7 @@ | |||
159 | #define CLK_GSCL_WB 464 | 159 | #define CLK_GSCL_WB 464 |
160 | #define CLK_GSCL0 465 | 160 | #define CLK_GSCL0 465 |
161 | #define CLK_GSCL1 466 | 161 | #define CLK_GSCL1 466 |
162 | #define CLK_CLK_3AA 467 | 162 | #define CLK_FIMC_3AA 467 |
163 | #define CLK_ACLK266_G2D 470 | 163 | #define CLK_ACLK266_G2D 470 |
164 | #define CLK_SSS 471 | 164 | #define CLK_SSS 471 |
165 | #define CLK_SLIM_SSS 472 | 165 | #define CLK_SLIM_SSS 472 |
@@ -172,6 +172,8 @@ | |||
172 | #define CLK_SMMU_FIMCL1 493 | 172 | #define CLK_SMMU_FIMCL1 493 |
173 | #define CLK_SMMU_FIMCL3 494 | 173 | #define CLK_SMMU_FIMCL3 494 |
174 | #define CLK_FIMC_LITE3 495 | 174 | #define CLK_FIMC_LITE3 495 |
175 | #define CLK_FIMC_LITE0 496 | ||
176 | #define CLK_FIMC_LITE1 497 | ||
175 | #define CLK_ACLK_G3D 500 | 177 | #define CLK_ACLK_G3D 500 |
176 | #define CLK_G3D 501 | 178 | #define CLK_G3D 501 |
177 | #define CLK_SMMU_MIXER 502 | 179 | #define CLK_SMMU_MIXER 502 |