watchdog: at91sam9_wdt: add device tree support
authorFabio Porcedda <fabio.porcedda@gmail.com>
Mon, 12 Nov 2012 08:37:25 +0000 (09:37 +0100)
committerNicolas Ferre <nicolas.ferre@atmel.com>
Fri, 16 Nov 2012 14:48:30 +0000 (15:48 +0100)
Tested on an at91sam9260 board (evk-pro3)

Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Documentation/devicetree/bindings/watchdog/atmel-wdt.txt [new file with mode: 0644]
drivers/watchdog/at91sam9_wdt.c

diff --git a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt
new file mode 100644 (file)
index 0000000..2957ebb
--- /dev/null
@@ -0,0 +1,15 @@
+* Atmel Watchdog Timers
+
+** at91sam9-wdt
+
+Required properties:
+- compatible: must be "atmel,at91sam9260-wdt".
+- reg: physical base address of the controller and length of memory mapped
+  region.
+
+Example:
+
+       watchdog@fffffd40 {
+               compatible = "atmel,at91sam9260-wdt";
+               reg = <0xfffffd40 0x10>;
+       };
index 05e1be85fdeeda07a21651ee1a4096bf6b77c06d..dc42e44b6bc1130516f67554ee6ff1675d8f739c 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/timer.h>
 #include <linux/bitops.h>
 #include <linux/uaccess.h>
+#include <linux/of.h>
 
 #include "at91sam9_wdt.h"
 
@@ -302,11 +303,21 @@ static int __exit at91wdt_remove(struct platform_device *pdev)
        return res;
 }
 
+#if defined(CONFIG_OF)
+static const struct of_device_id at91_wdt_dt_ids[] __initconst = {
+       { .compatible = "atmel,at91sam9260-wdt" },
+       { /* sentinel */ }
+};
+
+MODULE_DEVICE_TABLE(of, at91_wdt_dt_ids);
+#endif
+
 static struct platform_driver at91wdt_driver = {
        .remove         = __exit_p(at91wdt_remove),
        .driver         = {
                .name   = "at91_wdt",
                .owner  = THIS_MODULE,
+               .of_match_table = of_match_ptr(at91_wdt_dt_ids),
        },
 };