diff options
author | Andrew Lunn <andrew@lunn.ch> | 2012-06-10 09:20:06 -0400 |
---|---|---|
committer | Andrew Lunn <andrew@lunn.ch> | 2012-07-27 10:48:38 -0400 |
commit | 1e7bad0f5b91150fef78d732095ca84ca4a16585 (patch) | |
tree | e207c3b588a060914f75f811aff900d70209bce7 | |
parent | e91cac0a7746b2ce9d4134098678e3cc8cbf032d (diff) |
ARM: Orion: DTify the watchdog timer.
Add device tree support to the Orion watchdog timer, and enable its
use in the kirkwood devices using device tree.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@googlemail.com>
Tested-by: Simon Baatz <gmbnomis@gmail.com>
-rw-r--r-- | Documentation/devicetree/bindings/watchdog/marvel.txt | 14 | ||||
-rw-r--r-- | arch/arm/boot/dts/kirkwood.dtsi | 6 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/board-dt.c | 2 | ||||
-rw-r--r-- | drivers/watchdog/orion_wdt.c | 8 |
4 files changed, 29 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/watchdog/marvel.txt b/Documentation/devicetree/bindings/watchdog/marvel.txt new file mode 100644 index 000000000000..0b2503ab0a05 --- /dev/null +++ b/Documentation/devicetree/bindings/watchdog/marvel.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | * Marvell Orion Watchdog Time | ||
2 | |||
3 | Required Properties: | ||
4 | |||
5 | - Compatibility : "marvell,orion-wdt" | ||
6 | - reg : Address of the timer registers | ||
7 | |||
8 | Example: | ||
9 | |||
10 | wdt@20300 { | ||
11 | compatible = "marvell,orion-wdt"; | ||
12 | reg = <0x20300 0x28>; | ||
13 | status = "okay"; | ||
14 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi index 3df24cd03c07..458d137d0951 100644 --- a/arch/arm/boot/dts/kirkwood.dtsi +++ b/arch/arm/boot/dts/kirkwood.dtsi | |||
@@ -70,6 +70,12 @@ | |||
70 | status = "disabled"; | 70 | status = "disabled"; |
71 | }; | 71 | }; |
72 | 72 | ||
73 | wdt@20300 { | ||
74 | compatible = "marvell,orion-wdt"; | ||
75 | reg = <0x20300 0x28>; | ||
76 | status = "okay"; | ||
77 | }; | ||
78 | |||
73 | nand@3000000 { | 79 | nand@3000000 { |
74 | #address-cells = <1>; | 80 | #address-cells = <1>; |
75 | #size-cells = <1>; | 81 | #size-cells = <1>; |
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c index 24c8fdd174d1..aa229fc1cdc4 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c | |||
@@ -30,6 +30,7 @@ struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = { | |||
30 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), | 30 | OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), |
31 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", | 31 | OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", |
32 | NULL), | 32 | NULL), |
33 | OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), | ||
33 | {}, | 34 | {}, |
34 | }; | 35 | }; |
35 | 36 | ||
@@ -55,7 +56,6 @@ static void __init kirkwood_dt_init(void) | |||
55 | kirkwood_clk_init(); | 56 | kirkwood_clk_init(); |
56 | 57 | ||
57 | /* internal devices that every board has */ | 58 | /* internal devices that every board has */ |
58 | kirkwood_wdt_init(); | ||
59 | kirkwood_xor0_init(); | 59 | kirkwood_xor0_init(); |
60 | kirkwood_xor1_init(); | 60 | kirkwood_xor1_init(); |
61 | kirkwood_crypto_init(); | 61 | kirkwood_crypto_init(); |
diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c index 0f5736949c61..1531e0256c34 100644 --- a/drivers/watchdog/orion_wdt.c +++ b/drivers/watchdog/orion_wdt.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/io.h> | 25 | #include <linux/io.h> |
26 | #include <linux/spinlock.h> | 26 | #include <linux/spinlock.h> |
27 | #include <linux/clk.h> | 27 | #include <linux/clk.h> |
28 | #include <linux/of.h> | ||
28 | #include <mach/bridge-regs.h> | 29 | #include <mach/bridge-regs.h> |
29 | 30 | ||
30 | /* | 31 | /* |
@@ -295,6 +296,12 @@ static void orion_wdt_shutdown(struct platform_device *pdev) | |||
295 | orion_wdt_disable(); | 296 | orion_wdt_disable(); |
296 | } | 297 | } |
297 | 298 | ||
299 | static const struct of_device_id orion_wdt_of_match_table[] __devinitdata = { | ||
300 | { .compatible = "marvell,orion-wdt", }, | ||
301 | {}, | ||
302 | }; | ||
303 | MODULE_DEVICE_TABLE(of, orion_wdt_of_match_table); | ||
304 | |||
298 | static struct platform_driver orion_wdt_driver = { | 305 | static struct platform_driver orion_wdt_driver = { |
299 | .probe = orion_wdt_probe, | 306 | .probe = orion_wdt_probe, |
300 | .remove = __devexit_p(orion_wdt_remove), | 307 | .remove = __devexit_p(orion_wdt_remove), |
@@ -302,6 +309,7 @@ static struct platform_driver orion_wdt_driver = { | |||
302 | .driver = { | 309 | .driver = { |
303 | .owner = THIS_MODULE, | 310 | .owner = THIS_MODULE, |
304 | .name = "orion_wdt", | 311 | .name = "orion_wdt", |
312 | .of_match_table = of_match_ptr(orion_wdt_of_match_table), | ||
305 | }, | 313 | }, |
306 | }; | 314 | }; |
307 | 315 | ||