aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/watchdog/pnx4008_wdt.c
diff options
context:
space:
mode:
authorFabio Porcedda <fabio.porcedda@gmail.com>2013-02-14 03:14:25 -0500
committerWim Van Sebroeck <wim@iguana.be>2013-03-01 06:53:45 -0500
commitc1fd5f6402050b2463d0610b94f050fedf1b5019 (patch)
tree7ff33e78c2a4f40b3465d163c03382db0d4d500f /drivers/watchdog/pnx4008_wdt.c
parent490ac7af8b71069ba0c733052c5f448ac070c947 (diff)
watchdog: add timeout-sec property binding
this patchset add the timeout-sec property to the following drivers: orion_wdt, pnx4008_wdt, s3c2410_wdt and at91sam9_wdt. The at91sam9_wdt is tested on evk-pr3, the other drivers are compile tested only. Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> Cc: Andrew Lunn <andrew@lunn.ch> Cc: Jason Cooper <jason@lakedaemon.net> Cc: Wolfram Sang <w.sang@pengutronix.de> Cc: Masanari Iida <standby24x7@gmail.com> Cc: Ben Dooks <ben-linux@fluff.org> Cc: Kukjin Kim <kgene.kim@samsung.com> Cc: Andrew Victor <linux@maxim.org.za> Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog/pnx4008_wdt.c')
-rw-r--r--drivers/watchdog/pnx4008_wdt.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c
index de1f3fa1d787..a3684a30eb69 100644
--- a/drivers/watchdog/pnx4008_wdt.c
+++ b/drivers/watchdog/pnx4008_wdt.c
@@ -142,6 +142,7 @@ static const struct watchdog_ops pnx4008_wdt_ops = {
142static struct watchdog_device pnx4008_wdd = { 142static struct watchdog_device pnx4008_wdd = {
143 .info = &pnx4008_wdt_ident, 143 .info = &pnx4008_wdt_ident,
144 .ops = &pnx4008_wdt_ops, 144 .ops = &pnx4008_wdt_ops,
145 .timeout = DEFAULT_HEARTBEAT,
145 .min_timeout = 1, 146 .min_timeout = 1,
146 .max_timeout = MAX_HEARTBEAT, 147 .max_timeout = MAX_HEARTBEAT,
147}; 148};
@@ -151,8 +152,7 @@ static int pnx4008_wdt_probe(struct platform_device *pdev)
151 struct resource *r; 152 struct resource *r;
152 int ret = 0; 153 int ret = 0;
153 154
154 if (heartbeat < 1 || heartbeat > MAX_HEARTBEAT) 155 watchdog_init_timeout(&pnx4008_wdd, heartbeat, &pdev->dev);
155 heartbeat = DEFAULT_HEARTBEAT;
156 156
157 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 157 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
158 wdt_base = devm_ioremap_resource(&pdev->dev, r); 158 wdt_base = devm_ioremap_resource(&pdev->dev, r);
@@ -167,7 +167,6 @@ static int pnx4008_wdt_probe(struct platform_device *pdev)
167 if (ret) 167 if (ret)
168 goto out; 168 goto out;
169 169
170 pnx4008_wdd.timeout = heartbeat;
171 pnx4008_wdd.bootstatus = (readl(WDTIM_RES(wdt_base)) & WDOG_RESET) ? 170 pnx4008_wdd.bootstatus = (readl(WDTIM_RES(wdt_base)) & WDOG_RESET) ?
172 WDIOF_CARDRESET : 0; 171 WDIOF_CARDRESET : 0;
173 watchdog_set_nowayout(&pnx4008_wdd, nowayout); 172 watchdog_set_nowayout(&pnx4008_wdd, nowayout);
@@ -181,7 +180,7 @@ static int pnx4008_wdt_probe(struct platform_device *pdev)
181 } 180 }
182 181
183 dev_info(&pdev->dev, "PNX4008 Watchdog Timer: heartbeat %d sec\n", 182 dev_info(&pdev->dev, "PNX4008 Watchdog Timer: heartbeat %d sec\n",
184 heartbeat); 183 pnx4008_wdd.timeout);
185 184
186 return 0; 185 return 0;
187 186