diff options
author | Shiraz Hashim <shiraz.hashim@st.com> | 2011-02-16 01:40:32 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-03-09 04:49:44 -0500 |
commit | 5c881d9ae9480171f01921585e1893863d7ab421 (patch) | |
tree | 1f25afe829901e5cfc79d21d4b99b005b1e8b69c /arch/arm/mach-spear6xx/spear6xx.c | |
parent | 53688c51e412b7fd642e5c8eb8ba8ee19744c4ea (diff) |
ARM: 6737/1: SPEAr: formalized timer support
Move platform specific timer initialization code is moved into platform
specific files.
Reviewed-by: Jamie Iles <jamie@jamieiles.com>
Reviewed-by: Stanley Miao <stanley.miao@windriver.com>
Signed-off-by: Shiraz Hashim <shiraz.hashim@st.com>
Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-spear6xx/spear6xx.c')
-rw-r--r-- | arch/arm/mach-spear6xx/spear6xx.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/mach-spear6xx/spear6xx.c b/arch/arm/mach-spear6xx/spear6xx.c index f2fe14e8471d..9cd3a688f6dc 100644 --- a/arch/arm/mach-spear6xx/spear6xx.c +++ b/arch/arm/mach-spear6xx/spear6xx.c | |||
@@ -155,3 +155,34 @@ void __init spear6xx_map_io(void) | |||
155 | /* This will initialize clock framework */ | 155 | /* This will initialize clock framework */ |
156 | clk_init(); | 156 | clk_init(); |
157 | } | 157 | } |
158 | |||
159 | static void __init spear6xx_timer_init(void) | ||
160 | { | ||
161 | char pclk_name[] = "pll3_48m_clk"; | ||
162 | struct clk *gpt_clk, *pclk; | ||
163 | |||
164 | /* get the system timer clock */ | ||
165 | gpt_clk = clk_get_sys("gpt0", NULL); | ||
166 | if (IS_ERR(gpt_clk)) { | ||
167 | pr_err("%s:couldn't get clk for gpt\n", __func__); | ||
168 | BUG(); | ||
169 | } | ||
170 | |||
171 | /* get the suitable parent clock for timer*/ | ||
172 | pclk = clk_get(NULL, pclk_name); | ||
173 | if (IS_ERR(pclk)) { | ||
174 | pr_err("%s:couldn't get %s as parent for gpt\n", | ||
175 | __func__, pclk_name); | ||
176 | BUG(); | ||
177 | } | ||
178 | |||
179 | clk_set_parent(gpt_clk, pclk); | ||
180 | clk_put(gpt_clk); | ||
181 | clk_put(pclk); | ||
182 | |||
183 | spear_setup_timer(); | ||
184 | } | ||
185 | |||
186 | struct sys_timer spear6xx_timer = { | ||
187 | .init = spear6xx_timer_init, | ||
188 | }; | ||