diff options
author | Seungwhan Youn <sw.youn@samsung.com> | 2010-10-13 21:35:23 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2010-10-25 03:05:19 -0400 |
commit | 4cfd9c2530822860d745154e4e64a1c241a0a674 (patch) | |
tree | 91566b990afbbfb7ddf7633a3065a8cb952ffaed /arch/arm/mach-s5pc100 | |
parent | 068b432d74e4d3d17ee0c292337e7194bba655c0 (diff) |
ARM: S5PC100: Modify SCLK_AUDIO{0,1,2} clock as sysclks
This patch modify SCLK_AUDIO{0,1,2} to be initial as sysclks
on boot-time.
Signed-off-by: Seungwhan Youn <sw.youn@samsung.com>
Acked-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-s5pc100')
-rw-r--r-- | arch/arm/mach-s5pc100/clock.c | 72 |
1 files changed, 39 insertions, 33 deletions
diff --git a/arch/arm/mach-s5pc100/clock.c b/arch/arm/mach-s5pc100/clock.c index 084abd13b0a5..42b7138efb1d 100644 --- a/arch/arm/mach-s5pc100/clock.c +++ b/arch/arm/mach-s5pc100/clock.c | |||
@@ -848,6 +848,18 @@ struct clksrc_sources clk_src_group3 = { | |||
848 | .nr_sources = ARRAY_SIZE(clk_src_group3_list), | 848 | .nr_sources = ARRAY_SIZE(clk_src_group3_list), |
849 | }; | 849 | }; |
850 | 850 | ||
851 | static struct clksrc_clk clk_sclk_audio0 = { | ||
852 | .clk = { | ||
853 | .name = "sclk_audio", | ||
854 | .id = 0, | ||
855 | .ctrlbit = (1 << 8), | ||
856 | .enable = s5pc100_sclk1_ctrl, | ||
857 | }, | ||
858 | .sources = &clk_src_group3, | ||
859 | .reg_src = { .reg = S5P_CLK_SRC3, .shift = 12, .size = 3 }, | ||
860 | .reg_div = { .reg = S5P_CLK_DIV4, .shift = 12, .size = 4 }, | ||
861 | }; | ||
862 | |||
851 | static struct clk *clk_src_group4_list[] = { | 863 | static struct clk *clk_src_group4_list[] = { |
852 | [0] = &clk_mout_epll.clk, | 864 | [0] = &clk_mout_epll.clk, |
853 | [1] = &clk_div_mpll.clk, | 865 | [1] = &clk_div_mpll.clk, |
@@ -862,6 +874,18 @@ struct clksrc_sources clk_src_group4 = { | |||
862 | .nr_sources = ARRAY_SIZE(clk_src_group4_list), | 874 | .nr_sources = ARRAY_SIZE(clk_src_group4_list), |
863 | }; | 875 | }; |
864 | 876 | ||
877 | static struct clksrc_clk clk_sclk_audio1 = { | ||
878 | .clk = { | ||
879 | .name = "sclk_audio", | ||
880 | .id = 1, | ||
881 | .ctrlbit = (1 << 9), | ||
882 | .enable = s5pc100_sclk1_ctrl, | ||
883 | }, | ||
884 | .sources = &clk_src_group4, | ||
885 | .reg_src = { .reg = S5P_CLK_SRC3, .shift = 16, .size = 3 }, | ||
886 | .reg_div = { .reg = S5P_CLK_DIV4, .shift = 16, .size = 4 }, | ||
887 | }; | ||
888 | |||
865 | static struct clk *clk_src_group5_list[] = { | 889 | static struct clk *clk_src_group5_list[] = { |
866 | [0] = &clk_mout_epll.clk, | 890 | [0] = &clk_mout_epll.clk, |
867 | [1] = &clk_div_mpll.clk, | 891 | [1] = &clk_div_mpll.clk, |
@@ -875,6 +899,18 @@ struct clksrc_sources clk_src_group5 = { | |||
875 | .nr_sources = ARRAY_SIZE(clk_src_group5_list), | 899 | .nr_sources = ARRAY_SIZE(clk_src_group5_list), |
876 | }; | 900 | }; |
877 | 901 | ||
902 | static struct clksrc_clk clk_sclk_audio2 = { | ||
903 | .clk = { | ||
904 | .name = "sclk_audio", | ||
905 | .id = 2, | ||
906 | .ctrlbit = (1 << 10), | ||
907 | .enable = s5pc100_sclk1_ctrl, | ||
908 | }, | ||
909 | .sources = &clk_src_group5, | ||
910 | .reg_src = { .reg = S5P_CLK_SRC3, .shift = 20, .size = 3 }, | ||
911 | .reg_div = { .reg = S5P_CLK_DIV4, .shift = 20, .size = 4 }, | ||
912 | }; | ||
913 | |||
878 | static struct clk *clk_src_group6_list[] = { | 914 | static struct clk *clk_src_group6_list[] = { |
879 | [0] = &s5p_clk_27m, | 915 | [0] = &s5p_clk_27m, |
880 | [1] = &clk_vclk54m, | 916 | [1] = &clk_vclk54m, |
@@ -1001,39 +1037,6 @@ static struct clksrc_clk clksrcs[] = { | |||
1001 | .reg_src = { .reg = S5P_CLK_SRC2, .shift = 28, .size = 2 }, | 1037 | .reg_src = { .reg = S5P_CLK_SRC2, .shift = 28, .size = 2 }, |
1002 | }, { | 1038 | }, { |
1003 | .clk = { | 1039 | .clk = { |
1004 | .name = "sclk_audio", | ||
1005 | .id = 0, | ||
1006 | .ctrlbit = (1 << 8), | ||
1007 | .enable = s5pc100_sclk1_ctrl, | ||
1008 | |||
1009 | }, | ||
1010 | .sources = &clk_src_group3, | ||
1011 | .reg_src = { .reg = S5P_CLK_SRC3, .shift = 12, .size = 3 }, | ||
1012 | .reg_div = { .reg = S5P_CLK_DIV4, .shift = 12, .size = 4 }, | ||
1013 | }, { | ||
1014 | .clk = { | ||
1015 | .name = "sclk_audio", | ||
1016 | .id = 1, | ||
1017 | .ctrlbit = (1 << 9), | ||
1018 | .enable = s5pc100_sclk1_ctrl, | ||
1019 | |||
1020 | }, | ||
1021 | .sources = &clk_src_group4, | ||
1022 | .reg_src = { .reg = S5P_CLK_SRC3, .shift = 16, .size = 3 }, | ||
1023 | .reg_div = { .reg = S5P_CLK_DIV4, .shift = 16, .size = 4 }, | ||
1024 | }, { | ||
1025 | .clk = { | ||
1026 | .name = "sclk_audio", | ||
1027 | .id = 2, | ||
1028 | .ctrlbit = (1 << 10), | ||
1029 | .enable = s5pc100_sclk1_ctrl, | ||
1030 | |||
1031 | }, | ||
1032 | .sources = &clk_src_group5, | ||
1033 | .reg_src = { .reg = S5P_CLK_SRC3, .shift = 20, .size = 3 }, | ||
1034 | .reg_div = { .reg = S5P_CLK_DIV4, .shift = 20, .size = 4 }, | ||
1035 | }, { | ||
1036 | .clk = { | ||
1037 | .name = "sclk_lcd", | 1040 | .name = "sclk_lcd", |
1038 | .id = -1, | 1041 | .id = -1, |
1039 | .ctrlbit = (1 << 0), | 1042 | .ctrlbit = (1 << 0), |
@@ -1179,6 +1182,9 @@ static struct clksrc_clk *sysclks[] = { | |||
1179 | &clk_div_pclkd1, | 1182 | &clk_div_pclkd1, |
1180 | &clk_div_cam, | 1183 | &clk_div_cam, |
1181 | &clk_div_hdmi, | 1184 | &clk_div_hdmi, |
1185 | &clk_sclk_audio0, | ||
1186 | &clk_sclk_audio1, | ||
1187 | &clk_sclk_audio2, | ||
1182 | }; | 1188 | }; |
1183 | 1189 | ||
1184 | void __init_or_cpufreq s5pc100_setup_clocks(void) | 1190 | void __init_or_cpufreq s5pc100_setup_clocks(void) |