diff options
author | Dale Farnsworth <dale@farnsworth.org> | 2007-07-24 14:07:38 -0400 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2007-07-24 14:56:35 -0400 |
commit | 422db8d229affd429b5a7389600877aa7dea2704 (patch) | |
tree | 2cdd7aaf3519379036dafa930bcfe31488cc91db /arch/ppc | |
parent | 28dd1b0b9191ac9cd0b96fa4d09d951498bfbadb (diff) |
[WATCHDOG] mv64x60_wdt: set up platform_device in platform code
The driver previously registered its platform device data in its own
init function--that's bogus. Move that code to platform-specific
code in arch/ppc. This is being done so that the platform code can
decide at runtime whether to initialize this driver or not.
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'arch/ppc')
-rw-r--r-- | arch/ppc/syslib/mv64x60.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/ppc/syslib/mv64x60.c b/arch/ppc/syslib/mv64x60.c index d212b1c418a9..2744b8a6f66a 100644 --- a/arch/ppc/syslib/mv64x60.c +++ b/arch/ppc/syslib/mv64x60.c | |||
@@ -441,6 +441,32 @@ static struct platform_device i2c_device = { | |||
441 | }; | 441 | }; |
442 | #endif | 442 | #endif |
443 | 443 | ||
444 | #ifdef CONFIG_WATCHDOG | ||
445 | static struct mv64x60_wdt_pdata mv64x60_wdt_pdata = { | ||
446 | .timeout = 10, /* default watchdog expiry in seconds */ | ||
447 | .bus_clk = 133, /* default bus clock in MHz */ | ||
448 | }; | ||
449 | |||
450 | static struct resource mv64x60_wdt_resources[] = { | ||
451 | [0] = { | ||
452 | .name = "mv64x60 wdt base", | ||
453 | .start = MV64x60_WDT_WDC, | ||
454 | .end = MV64x60_WDT_WDC + 8 - 1, /* two 32-bit registers */ | ||
455 | .flags = IORESOURCE_MEM, | ||
456 | }, | ||
457 | }; | ||
458 | |||
459 | static struct platform_device wdt_device = { | ||
460 | .name = MV64x60_WDT_NAME, | ||
461 | .id = 0, | ||
462 | .num_resources = ARRAY_SIZE(mv64x60_wdt_resources), | ||
463 | .resource = mv64x60_wdt_resources, | ||
464 | .dev = { | ||
465 | .platform_data = &mv64x60_wdt_pdata, | ||
466 | }, | ||
467 | }; | ||
468 | #endif | ||
469 | |||
444 | #if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260) | 470 | #if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260) |
445 | static struct mv64xxx_pdata mv64xxx_pdata = { | 471 | static struct mv64xxx_pdata mv64xxx_pdata = { |
446 | .hs_reg_valid = 0, | 472 | .hs_reg_valid = 0, |
@@ -476,6 +502,9 @@ static struct platform_device *mv64x60_pd_devs[] __initdata = { | |||
476 | #ifdef CONFIG_I2C_MV64XXX | 502 | #ifdef CONFIG_I2C_MV64XXX |
477 | &i2c_device, | 503 | &i2c_device, |
478 | #endif | 504 | #endif |
505 | #ifdef CONFIG_MV64X60_WDT | ||
506 | &wdt_device, | ||
507 | #endif | ||
479 | #if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260) | 508 | #if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260) |
480 | &mv64xxx_device, | 509 | &mv64xxx_device, |
481 | #endif | 510 | #endif |