watchdog: coh901327: devicetree support
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 19 Apr 2013 10:56:36 +0000 (12:56 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 31 May 2013 09:25:52 +0000 (11:25 +0200)
This adds support for probing the COH 901 327 watchdog from
the device tree and also adds associated bindings.

Acked-by: Wim Van Sebroeck <wim@iguana.be>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Documentation/devicetree/bindings/watchdog/stericsson-coh901327.txt [new file with mode: 0644]
drivers/watchdog/coh901327_wdt.c

diff --git a/Documentation/devicetree/bindings/watchdog/stericsson-coh901327.txt b/Documentation/devicetree/bindings/watchdog/stericsson-coh901327.txt
new file mode 100644 (file)
index 0000000..8ffb88e
--- /dev/null
@@ -0,0 +1,19 @@
+ST-Ericsson COH 901 327 Watchdog timer
+
+Required properties:
+- compatible: must be "stericsson,coh901327".
+- reg: physical base address of the controller and length of memory mapped
+  region.
+- interrupts: the interrupt used for the watchdog timeout warning.
+
+Optional properties:
+- timeout-sec: contains the watchdog timeout in seconds.
+
+Example:
+
+watchdog: watchdog@c0012000 {
+       compatible = "stericsson,coh901327";
+       reg = <0xc0012000 0x1000>;
+       interrupts = <3>;
+       timeout-sec = <60>;
+};
index b9b8a8b..4bd070f 100644 (file)
@@ -354,9 +354,9 @@ static int __init coh901327_probe(struct platform_device *pdev)
 
        clk_disable(clk);
 
-       if (margin < 1 || margin > 327)
-               margin = 60;
-       coh901327_wdt.timeout = margin;
+       ret = watchdog_init_timeout(&coh901327_wdt, margin, &pdev->dev);
+       if (ret < 0)
+               coh901327_wdt.timeout = 60;
 
        ret = watchdog_register_device(&coh901327_wdt);
        if (ret == 0)
@@ -441,10 +441,16 @@ void coh901327_watchdog_reset(void)
        /* Return and await doom */
 }
 
+static const struct of_device_id coh901327_dt_match[] = {
+       { .compatible = "stericsson,coh901327" },
+       {},
+};
+
 static struct platform_driver coh901327_driver = {
        .driver = {
                .owner  = THIS_MODULE,
                .name   = "coh901327_wdog",
+               .of_match_table = coh901327_dt_match,
        },
        .remove         = __exit_p(coh901327_remove),
        .suspend        = coh901327_suspend,