diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2007-11-23 11:20:27 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2008-01-29 05:14:58 -0500 |
commit | 2064ba23e58daa929eec6f5e7a2abc24574a95b9 (patch) | |
tree | 77967a6451b379f49a62c364e7ef352a0de50f5a /arch/mips/jmr3927 | |
parent | 68efdb81c6c3b5c1df7169a4b460907198b19103 (diff) |
[MIPS] TXx9 watchdog support for rbhma3100,rbhma4200,rbhma4500
This patch adds support for txx9wdt driver to rbhma3100, rbhma4200 and
rbhma4500 platform.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/jmr3927')
-rw-r--r-- | arch/mips/jmr3927/rbhma3100/setup.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/arch/mips/jmr3927/rbhma3100/setup.c b/arch/mips/jmr3927/rbhma3100/setup.c index 75cfe6559005..c886d804d303 100644 --- a/arch/mips/jmr3927/rbhma3100/setup.c +++ b/arch/mips/jmr3927/rbhma3100/setup.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/delay.h> | 35 | #include <linux/delay.h> |
36 | #include <linux/pm.h> | 36 | #include <linux/pm.h> |
37 | #include <linux/platform_device.h> | 37 | #include <linux/platform_device.h> |
38 | #include <linux/clk.h> | ||
38 | #ifdef CONFIG_SERIAL_TXX9 | 39 | #ifdef CONFIG_SERIAL_TXX9 |
39 | #include <linux/serial_core.h> | 40 | #include <linux/serial_core.h> |
40 | #endif | 41 | #endif |
@@ -233,6 +234,8 @@ static void __init tx3927_setup(void) | |||
233 | tx3927_ccfgptr->ccfg &= ~TX3927_CCFG_BEOW; | 234 | tx3927_ccfgptr->ccfg &= ~TX3927_CCFG_BEOW; |
234 | /* Disable PCI snoop */ | 235 | /* Disable PCI snoop */ |
235 | tx3927_ccfgptr->ccfg &= ~TX3927_CCFG_PSNP; | 236 | tx3927_ccfgptr->ccfg &= ~TX3927_CCFG_PSNP; |
237 | /* do reset on watchdog */ | ||
238 | tx3927_ccfgptr->ccfg |= TX3927_CCFG_WR; | ||
236 | 239 | ||
237 | #ifdef DO_WRITE_THROUGH | 240 | #ifdef DO_WRITE_THROUGH |
238 | /* Enable PCI SNOOP - with write through only */ | 241 | /* Enable PCI SNOOP - with write through only */ |
@@ -383,3 +386,55 @@ static int __init jmr3927_rtc_init(void) | |||
383 | return IS_ERR(dev) ? PTR_ERR(dev) : 0; | 386 | return IS_ERR(dev) ? PTR_ERR(dev) : 0; |
384 | } | 387 | } |
385 | device_initcall(jmr3927_rtc_init); | 388 | device_initcall(jmr3927_rtc_init); |
389 | |||
390 | /* Watchdog support */ | ||
391 | |||
392 | static int __init txx9_wdt_init(unsigned long base) | ||
393 | { | ||
394 | struct resource res = { | ||
395 | .start = base, | ||
396 | .end = base + 0x100 - 1, | ||
397 | .flags = IORESOURCE_MEM, | ||
398 | }; | ||
399 | struct platform_device *dev = | ||
400 | platform_device_register_simple("txx9wdt", -1, &res, 1); | ||
401 | return IS_ERR(dev) ? PTR_ERR(dev) : 0; | ||
402 | } | ||
403 | |||
404 | static int __init jmr3927_wdt_init(void) | ||
405 | { | ||
406 | return txx9_wdt_init(TX3927_TMR_REG(2)); | ||
407 | } | ||
408 | device_initcall(jmr3927_wdt_init); | ||
409 | |||
410 | /* Minimum CLK support */ | ||
411 | |||
412 | struct clk *clk_get(struct device *dev, const char *id) | ||
413 | { | ||
414 | if (!strcmp(id, "imbus_clk")) | ||
415 | return (struct clk *)JMR3927_IMCLK; | ||
416 | return ERR_PTR(-ENOENT); | ||
417 | } | ||
418 | EXPORT_SYMBOL(clk_get); | ||
419 | |||
420 | int clk_enable(struct clk *clk) | ||
421 | { | ||
422 | return 0; | ||
423 | } | ||
424 | EXPORT_SYMBOL(clk_enable); | ||
425 | |||
426 | void clk_disable(struct clk *clk) | ||
427 | { | ||
428 | } | ||
429 | EXPORT_SYMBOL(clk_disable); | ||
430 | |||
431 | unsigned long clk_get_rate(struct clk *clk) | ||
432 | { | ||
433 | return (unsigned long)clk; | ||
434 | } | ||
435 | EXPORT_SYMBOL(clk_get_rate); | ||
436 | |||
437 | void clk_put(struct clk *clk) | ||
438 | { | ||
439 | } | ||
440 | EXPORT_SYMBOL(clk_put); | ||