Commit 054bd3f0 authored by Thomas Reitmayr's avatar Thomas Reitmayr Committed by Nicolas Pitre

[ARM] Kirkwood: Add the watchdog timer as a platform device.

The Kirkwood architecture uses the same watchdog device as the Orion
architecture. This patch adds orion5x_wdt as a platform device for
Kirkwood.
Signed-off-by: default avatarThomas Reitmayr <treitmayr@devbase.at>
Tested-by: default avatarMartin Michlmayr <tbm@cyrius.com>
Signed-off-by: default avatarNicolas Pitre <nico@marvell.com>
parent 6462c616
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include <plat/mvsdio.h> #include <plat/mvsdio.h>
#include <plat/mv_xor.h> #include <plat/mv_xor.h>
#include <plat/orion_nand.h> #include <plat/orion_nand.h>
#include <plat/orion5x_wdt.h>
#include <plat/time.h> #include <plat/time.h>
#include "common.h" #include "common.h"
...@@ -767,6 +768,29 @@ static void __init kirkwood_xor1_init(void) ...@@ -767,6 +768,29 @@ static void __init kirkwood_xor1_init(void)
} }
/*****************************************************************************
* Watchdog
****************************************************************************/
static struct orion5x_wdt_platform_data kirkwood_wdt_data = {
.tclk = 0,
};
static struct platform_device kirkwood_wdt_device = {
.name = "orion5x_wdt",
.id = -1,
.dev = {
.platform_data = &kirkwood_wdt_data,
},
.num_resources = 0,
};
static void __init kirkwood_wdt_init(void)
{
kirkwood_wdt_data.tclk = kirkwood_tclk;
platform_device_register(&kirkwood_wdt_device);
}
/***************************************************************************** /*****************************************************************************
* Time handling * Time handling
****************************************************************************/ ****************************************************************************/
...@@ -859,6 +883,7 @@ void __init kirkwood_init(void) ...@@ -859,6 +883,7 @@ void __init kirkwood_init(void)
/* internal devices that every board has */ /* internal devices that every board has */
kirkwood_rtc_init(); kirkwood_rtc_init();
kirkwood_wdt_init();
kirkwood_xor0_init(); kirkwood_xor0_init();
kirkwood_xor1_init(); kirkwood_xor1_init();
} }
......
...@@ -17,12 +17,15 @@ ...@@ -17,12 +17,15 @@
#define CPU_RESET 0x00000002 #define CPU_RESET 0x00000002
#define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108) #define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108)
#define WDT_RESET_OUT_EN 0x00000002
#define SOFT_RESET_OUT_EN 0x00000004 #define SOFT_RESET_OUT_EN 0x00000004
#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c) #define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c)
#define SOFT_RESET 0x00000001 #define SOFT_RESET 0x00000001
#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110) #define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110)
#define WDT_INT_REQ 0x0008
#define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114) #define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114)
#define BRIDGE_INT_TIMER0 0x0002 #define BRIDGE_INT_TIMER0 0x0002
#define BRIDGE_INT_TIMER1 0x0004 #define BRIDGE_INT_TIMER1 0x0004
......
...@@ -233,10 +233,10 @@ config DAVINCI_WATCHDOG ...@@ -233,10 +233,10 @@ config DAVINCI_WATCHDOG
config ORION5X_WATCHDOG config ORION5X_WATCHDOG
tristate "Orion5x watchdog" tristate "Orion5x watchdog"
depends on ARCH_ORION5X depends on ARCH_ORION5X || ARCH_KIRKWOOD
help help
Say Y here if to include support for the watchdog timer Say Y here if to include support for the watchdog timer
in the Orion5x ARM SoCs. in the Orion5x and Kirkwood ARM SoCs.
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called orion5x_wdt. module will be called orion5x_wdt.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment