diff options
Diffstat (limited to 'arch/mips/txx9/jmr3927/setup.c')
-rw-r--r-- | arch/mips/txx9/jmr3927/setup.c | 54 |
1 files changed, 21 insertions, 33 deletions
diff --git a/arch/mips/txx9/jmr3927/setup.c b/arch/mips/txx9/jmr3927/setup.c index baa8c8db9a94..128a4ae3e72e 100644 --- a/arch/mips/txx9/jmr3927/setup.c +++ b/arch/mips/txx9/jmr3927/setup.c | |||
@@ -34,15 +34,16 @@ | |||
34 | #include <linux/delay.h> | 34 | #include <linux/delay.h> |
35 | #include <linux/pm.h> | 35 | #include <linux/pm.h> |
36 | #include <linux/platform_device.h> | 36 | #include <linux/platform_device.h> |
37 | #include <linux/clk.h> | ||
38 | #include <linux/gpio.h> | 37 | #include <linux/gpio.h> |
39 | #ifdef CONFIG_SERIAL_TXX9 | 38 | #ifdef CONFIG_SERIAL_TXX9 |
40 | #include <linux/serial_core.h> | 39 | #include <linux/serial_core.h> |
41 | #endif | 40 | #endif |
42 | 41 | ||
42 | #include <asm/bootinfo.h> | ||
43 | #include <asm/txx9tmr.h> | 43 | #include <asm/txx9tmr.h> |
44 | #include <asm/txx9pio.h> | 44 | #include <asm/txx9pio.h> |
45 | #include <asm/reboot.h> | 45 | #include <asm/reboot.h> |
46 | #include <asm/txx9/generic.h> | ||
46 | #include <asm/txx9/pci.h> | 47 | #include <asm/txx9/pci.h> |
47 | #include <asm/txx9/jmr3927.h> | 48 | #include <asm/txx9/jmr3927.h> |
48 | #include <asm/mipsregs.h> | 49 | #include <asm/mipsregs.h> |
@@ -83,7 +84,7 @@ static void jmr3927_machine_power_off(void) | |||
83 | while (1); | 84 | while (1); |
84 | } | 85 | } |
85 | 86 | ||
86 | void __init plat_time_init(void) | 87 | static void __init jmr3927_time_init(void) |
87 | { | 88 | { |
88 | txx9_clockevent_init(TX3927_TMR_REG(0), | 89 | txx9_clockevent_init(TX3927_TMR_REG(0), |
89 | TXX9_IRQ_BASE + JMR3927_IRQ_IRC_TMR(0), | 90 | TXX9_IRQ_BASE + JMR3927_IRQ_IRC_TMR(0), |
@@ -97,7 +98,7 @@ void __init plat_time_init(void) | |||
97 | extern char * __init prom_getcmdline(void); | 98 | extern char * __init prom_getcmdline(void); |
98 | static void jmr3927_board_init(void); | 99 | static void jmr3927_board_init(void); |
99 | 100 | ||
100 | void __init plat_mem_setup(void) | 101 | static void __init jmr3927_mem_setup(void) |
101 | { | 102 | { |
102 | char *argptr; | 103 | char *argptr; |
103 | 104 | ||
@@ -233,6 +234,8 @@ static void __init tx3927_setup(void) | |||
233 | { | 234 | { |
234 | int i; | 235 | int i; |
235 | 236 | ||
237 | txx9_cpu_clock = JMR3927_CORECLK; | ||
238 | txx9_gbus_clock = JMR3927_GBUSCLK; | ||
236 | /* SDRAMC are configured by PROM */ | 239 | /* SDRAMC are configured by PROM */ |
237 | 240 | ||
238 | /* ROMC */ | 241 | /* ROMC */ |
@@ -336,7 +339,6 @@ static int __init jmr3927_rtc_init(void) | |||
336 | dev = platform_device_register_simple("rtc-ds1742", -1, &res, 1); | 339 | dev = platform_device_register_simple("rtc-ds1742", -1, &res, 1); |
337 | return IS_ERR(dev) ? PTR_ERR(dev) : 0; | 340 | return IS_ERR(dev) ? PTR_ERR(dev) : 0; |
338 | } | 341 | } |
339 | device_initcall(jmr3927_rtc_init); | ||
340 | 342 | ||
341 | /* Watchdog support */ | 343 | /* Watchdog support */ |
342 | 344 | ||
@@ -356,36 +358,22 @@ static int __init jmr3927_wdt_init(void) | |||
356 | { | 358 | { |
357 | return txx9_wdt_init(TX3927_TMR_REG(2)); | 359 | return txx9_wdt_init(TX3927_TMR_REG(2)); |
358 | } | 360 | } |
359 | device_initcall(jmr3927_wdt_init); | ||
360 | 361 | ||
361 | /* Minimum CLK support */ | 362 | static void __init jmr3927_device_init(void) |
362 | |||
363 | struct clk *clk_get(struct device *dev, const char *id) | ||
364 | { | ||
365 | if (!strcmp(id, "imbus_clk")) | ||
366 | return (struct clk *)JMR3927_IMCLK; | ||
367 | return ERR_PTR(-ENOENT); | ||
368 | } | ||
369 | EXPORT_SYMBOL(clk_get); | ||
370 | |||
371 | int clk_enable(struct clk *clk) | ||
372 | { | ||
373 | return 0; | ||
374 | } | ||
375 | EXPORT_SYMBOL(clk_enable); | ||
376 | |||
377 | void clk_disable(struct clk *clk) | ||
378 | { | 363 | { |
364 | jmr3927_rtc_init(); | ||
365 | jmr3927_wdt_init(); | ||
379 | } | 366 | } |
380 | EXPORT_SYMBOL(clk_disable); | ||
381 | 367 | ||
382 | unsigned long clk_get_rate(struct clk *clk) | 368 | struct txx9_board_vec jmr3927_vec __initdata = { |
383 | { | 369 | .type = MACH_TOSHIBA_JMR3927, |
384 | return (unsigned long)clk; | 370 | .system = "Toshiba JMR_TX3927", |
385 | } | 371 | .prom_init = jmr3927_prom_init, |
386 | EXPORT_SYMBOL(clk_get_rate); | 372 | .mem_setup = jmr3927_mem_setup, |
387 | 373 | .irq_setup = jmr3927_irq_setup, | |
388 | void clk_put(struct clk *clk) | 374 | .time_init = jmr3927_time_init, |
389 | { | 375 | .device_init = jmr3927_device_init, |
390 | } | 376 | #ifdef CONFIG_PCI |
391 | EXPORT_SYMBOL(clk_put); | 377 | .pci_map_irq = jmr3927_pci_map_irq, |
378 | #endif | ||
379 | }; | ||