aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/watchdog/atmel-wdt.txt15
-rw-r--r--arch/arm/boot/dts/at91sam9260.dtsi6
-rw-r--r--arch/arm/boot/dts/at91sam9263.dtsi6
-rw-r--r--arch/arm/boot/dts/at91sam9g45.dtsi6
-rw-r--r--arch/arm/boot/dts/evk-pro3.dts12
-rw-r--r--drivers/watchdog/at91sam9_wdt.c11
6 files changed, 56 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt
new file mode 100644
index 00000000000..2957ebb5aa7
--- /dev/null
+++ b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt
@@ -0,0 +1,15 @@
1* Atmel Watchdog Timers
2
3** at91sam9-wdt
4
5Required properties:
6- compatible: must be "atmel,at91sam9260-wdt".
7- reg: physical base address of the controller and length of memory mapped
8 region.
9
10Example:
11
12 watchdog@fffffd40 {
13 compatible = "atmel,at91sam9260-wdt";
14 reg = <0xfffffd40 0x10>;
15 };
diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi
index d410581a5a8..bfb5bb6528b 100644
--- a/arch/arm/boot/dts/at91sam9260.dtsi
+++ b/arch/arm/boot/dts/at91sam9260.dtsi
@@ -246,6 +246,12 @@
246 trigger-external; 246 trigger-external;
247 }; 247 };
248 }; 248 };
249
250 watchdog@fffffd40 {
251 compatible = "atmel,at91sam9260-wdt";
252 reg = <0xfffffd40 0x10>;
253 status = "disabled";
254 };
249 }; 255 };
250 256
251 nand0: nand@40000000 { 257 nand0: nand@40000000 {
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
index 3e6e5c1abbf..ff5461278c0 100644
--- a/arch/arm/boot/dts/at91sam9263.dtsi
+++ b/arch/arm/boot/dts/at91sam9263.dtsi
@@ -195,6 +195,12 @@
195 #size-cells = <0>; 195 #size-cells = <0>;
196 status = "disabled"; 196 status = "disabled";
197 }; 197 };
198
199 watchdog@fffffd40 {
200 compatible = "atmel,at91sam9260-wdt";
201 reg = <0xfffffd40 0x10>;
202 status = "disabled";
203 };
198 }; 204 };
199 205
200 nand0: nand@40000000 { 206 nand0: nand@40000000 {
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
index 3add030d61f..a98c00a234e 100644
--- a/arch/arm/boot/dts/at91sam9g45.dtsi
+++ b/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -262,6 +262,12 @@
262 trigger-value = <0x6>; 262 trigger-value = <0x6>;
263 }; 263 };
264 }; 264 };
265
266 watchdog@fffffd40 {
267 compatible = "atmel,at91sam9260-wdt";
268 reg = <0xfffffd40 0x10>;
269 status = "disabled";
270 };
265 }; 271 };
266 272
267 nand0: nand@40000000 { 273 nand0: nand@40000000 {
diff --git a/arch/arm/boot/dts/evk-pro3.dts b/arch/arm/boot/dts/evk-pro3.dts
index b7354e6506d..96e50f56943 100644
--- a/arch/arm/boot/dts/evk-pro3.dts
+++ b/arch/arm/boot/dts/evk-pro3.dts
@@ -22,10 +22,22 @@
22 status = "okay"; 22 status = "okay";
23 }; 23 };
24 24
25 usart0: serial@fffb0000 {
26 status = "okay";
27 };
28
29 usart2: serial@fffb8000 {
30 status = "okay";
31 };
32
25 usb1: gadget@fffa4000 { 33 usb1: gadget@fffa4000 {
26 atmel,vbus-gpio = <&pioC 5 0>; 34 atmel,vbus-gpio = <&pioC 5 0>;
27 status = "okay"; 35 status = "okay";
28 }; 36 };
37
38 watchdog@fffffd40 {
39 status = "okay";
40 };
29 }; 41 };
30 42
31 usb0: ohci@00500000 { 43 usb0: ohci@00500000 {
diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c
index 05e1be85fde..dc42e44b6bc 100644
--- a/drivers/watchdog/at91sam9_wdt.c
+++ b/drivers/watchdog/at91sam9_wdt.c
@@ -32,6 +32,7 @@
32#include <linux/timer.h> 32#include <linux/timer.h>
33#include <linux/bitops.h> 33#include <linux/bitops.h>
34#include <linux/uaccess.h> 34#include <linux/uaccess.h>
35#include <linux/of.h>
35 36
36#include "at91sam9_wdt.h" 37#include "at91sam9_wdt.h"
37 38
@@ -302,11 +303,21 @@ static int __exit at91wdt_remove(struct platform_device *pdev)
302 return res; 303 return res;
303} 304}
304 305
306#if defined(CONFIG_OF)
307static const struct of_device_id at91_wdt_dt_ids[] __initconst = {
308 { .compatible = "atmel,at91sam9260-wdt" },
309 { /* sentinel */ }
310};
311
312MODULE_DEVICE_TABLE(of, at91_wdt_dt_ids);
313#endif
314
305static struct platform_driver at91wdt_driver = { 315static struct platform_driver at91wdt_driver = {
306 .remove = __exit_p(at91wdt_remove), 316 .remove = __exit_p(at91wdt_remove),
307 .driver = { 317 .driver = {
308 .name = "at91_wdt", 318 .name = "at91_wdt",
309 .owner = THIS_MODULE, 319 .owner = THIS_MODULE,
320 .of_match_table = of_match_ptr(at91_wdt_dt_ids),
310 }, 321 },
311}; 322};
312 323