diff options
-rw-r--r-- | arch/sh/boards/mach-sdk7786/setup.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/sh/boards/mach-sdk7786/setup.c b/arch/sh/boards/mach-sdk7786/setup.c index c38c6cc293b5..0e4b1c39742c 100644 --- a/arch/sh/boards/mach-sdk7786/setup.c +++ b/arch/sh/boards/mach-sdk7786/setup.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/smsc911x.h> | 14 | #include <linux/smsc911x.h> |
15 | #include <linux/i2c.h> | 15 | #include <linux/i2c.h> |
16 | #include <linux/irq.h> | 16 | #include <linux/irq.h> |
17 | #include <linux/clk.h> | ||
17 | #include <asm/machvec.h> | 18 | #include <asm/machvec.h> |
18 | #include <asm/heartbeat.h> | 19 | #include <asm/heartbeat.h> |
19 | #include <asm/sizes.h> | 20 | #include <asm/sizes.h> |
@@ -235,6 +236,27 @@ static int sdk7786_mode_pins(void) | |||
235 | return pin_states; | 236 | return pin_states; |
236 | } | 237 | } |
237 | 238 | ||
239 | static int sdk7786_clk_init(void) | ||
240 | { | ||
241 | struct clk *clk; | ||
242 | int ret; | ||
243 | |||
244 | /* | ||
245 | * Only handle the EXTAL case, anyone interfacing a crystal | ||
246 | * resonator will need to provide their own input clock. | ||
247 | */ | ||
248 | if (test_mode_pin(MODE_PIN9)) | ||
249 | return -EINVAL; | ||
250 | |||
251 | clk = clk_get(NULL, "extal"); | ||
252 | if (!clk || IS_ERR(clk)) | ||
253 | return PTR_ERR(clk); | ||
254 | ret = clk_set_rate(clk, 33333333); | ||
255 | clk_put(clk); | ||
256 | |||
257 | return ret; | ||
258 | } | ||
259 | |||
238 | /* Initialize the board */ | 260 | /* Initialize the board */ |
239 | static void __init sdk7786_setup(char **cmdline_p) | 261 | static void __init sdk7786_setup(char **cmdline_p) |
240 | { | 262 | { |
@@ -248,5 +270,6 @@ static struct sh_machine_vector mv_sdk7786 __initmv = { | |||
248 | .mv_name = "SDK7786", | 270 | .mv_name = "SDK7786", |
249 | .mv_setup = sdk7786_setup, | 271 | .mv_setup = sdk7786_setup, |
250 | .mv_mode_pins = sdk7786_mode_pins, | 272 | .mv_mode_pins = sdk7786_mode_pins, |
273 | .mv_clk_init = sdk7786_clk_init, | ||
251 | .mv_init_irq = init_sdk7786_IRQ, | 274 | .mv_init_irq = init_sdk7786_IRQ, |
252 | }; | 275 | }; |