ARM: Orion: DTify the watchdog timer.
authorAndrew Lunn <andrew@lunn.ch>
Sun, 10 Jun 2012 13:20:06 +0000 (15:20 +0200)
committerAndrew Lunn <andrew@lunn.ch>
Fri, 27 Jul 2012 14:48:38 +0000 (16:48 +0200)
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>
Documentation/devicetree/bindings/watchdog/marvel.txt [new file with mode: 0644]
arch/arm/boot/dts/kirkwood.dtsi
arch/arm/mach-kirkwood/board-dt.c
drivers/watchdog/orion_wdt.c

diff --git a/Documentation/devicetree/bindings/watchdog/marvel.txt b/Documentation/devicetree/bindings/watchdog/marvel.txt
new file mode 100644 (file)
index 0000000..0b2503a
--- /dev/null
@@ -0,0 +1,14 @@
+* Marvell Orion Watchdog Time
+
+Required Properties:
+
+- Compatibility : "marvell,orion-wdt"
+- reg          : Address of the timer registers
+
+Example:
+
+       wdt@20300 {
+               compatible = "marvell,orion-wdt";
+               reg = <0x20300 0x28>;
+               status = "okay";
+       };
index 3df24cd03c0778507ae99a572ad4201dc8cef5fe..458d137d0951d793a998dcedf8b087222287c148 100644 (file)
                        status = "disabled";
                };
 
+               wdt@20300 {
+                       compatible = "marvell,orion-wdt";
+                       reg = <0x20300 0x28>;
+                       status = "okay";
+               };
+
                nand@3000000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
index 24c8fdd174d165d359c1ceb35a0e6e346885f8aa..aa229fc1cdc4f9e184c73cf2158027e43f7a4279 100644 (file)
@@ -30,6 +30,7 @@ struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = {
        OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL),
        OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0",
                       NULL),
+       OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL),
        {},
 };
 
@@ -55,7 +56,6 @@ static void __init kirkwood_dt_init(void)
        kirkwood_clk_init();
 
        /* internal devices that every board has */
-       kirkwood_wdt_init();
        kirkwood_xor0_init();
        kirkwood_xor1_init();
        kirkwood_crypto_init();
index 0f5736949c612515afcd023351106e87db596369..1531e0256c34be306482e1a278dc7936764ded6b 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/io.h>
 #include <linux/spinlock.h>
 #include <linux/clk.h>
+#include <linux/of.h>
 #include <mach/bridge-regs.h>
 
 /*
@@ -295,6 +296,12 @@ static void orion_wdt_shutdown(struct platform_device *pdev)
                orion_wdt_disable();
 }
 
+static const struct of_device_id orion_wdt_of_match_table[] __devinitdata = {
+       { .compatible = "marvell,orion-wdt", },
+       {},
+};
+MODULE_DEVICE_TABLE(of, orion_wdt_of_match_table);
+
 static struct platform_driver orion_wdt_driver = {
        .probe          = orion_wdt_probe,
        .remove         = __devexit_p(orion_wdt_remove),
@@ -302,6 +309,7 @@ static struct platform_driver orion_wdt_driver = {
        .driver         = {
                .owner  = THIS_MODULE,
                .name   = "orion_wdt",
+               .of_match_table = of_match_ptr(orion_wdt_of_match_table),
        },
 };