Re: [PATCH v10 1/2] watchdog: New watchdog driver for MEN A21 watchdogs

2013-06-17 Thread Guenter Roeck
On Mon, Jun 17, 2013 at 12:22:48PM +0200, Johannes Thumshirn wrote:
> This patch adds the driver for the watchdog devices found on MEN Mikro
> Elektronik A21 VMEbus CPU Carrier Boards. It has DT-support and uses the
> watchdog framework.
> 
> Signed-off-by: Johannes Thumshirn 

Reviewed-by: Guenter Roeck 

> ---
> 
>  Revision 2:
>  * Removed unneeded open flag in struct a21_wdt_drv
>  * Corrected 3bit reason code from gpio
>  * Additional sysfs files are now part of watchdog sysfs
>  * Changed OFF/ON delay in ping from 400ms to 10ns
>  * Reworked timeout setting
>  * Removed a21_wdt_ioctl(...)
> 
>  Revision 3:
>  * Changed pr_{err,info} to dev_{err,info}
>  * Removed out of memory error print
>  * Transition from "fast" to "slow" mode not allowed by chip
> 
>  Revision 4:
>  * Remove reboot_notifier and place disable code into platform_device's 
> shutdown function
>  * Removed sysfs interface
> 
>  Revision 5:
>  * Added setting of .bootstatus on driver init
>  * Added initial timeout on driver init
> 
>  Revision 6:
>  * Use watchdog_init_timeout() to initialize timeout
> 
>  Revision 7:
>  * Fix possible get_bootstatus race condition
> 
>  Revision 8:
>  * a21_wdt_get_bootstatus() should return reset code
>  * GPIOs are supplied via DT instead of being hardcoded. Code derived from
>(drivers/hwmon/gpio-fan.c)
>  * Added Devicetree binding document
>  * Driver now depends on GPIOLIB
> 
>  Revision 9:
>  * We need 6 GPIOs not only 1 to work
>  * GPIO_WD_RST[0..2] are inputs
> 
>  Revision 10:
>  * Don't perform checks of Watchdog core again.
>  * Some style fixes
> 
>  .../devicetree/bindings/gpio/men-a021-wdt.txt  |   25 ++
>  MAINTAINERS|6 +
>  drivers/watchdog/Kconfig   |   12 +
>  drivers/watchdog/Makefile  |1 +
>  drivers/watchdog/mena21_wdt.c  |  270 
> 
>  5 files changed, 314 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
>  create mode 100644 drivers/watchdog/mena21_wdt.c
> 
> diff --git a/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt 
> b/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
> new file mode 100644
> index 000..370dee3
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
> @@ -0,0 +1,25 @@
> +Bindings for MEN A21 Watchdog device connected to GPIO lines
> +
> +Required properties:
> +- compatible: "men,a021-wdt"
> +- gpios: Specifies the pins that control the Watchdog, order:
> +  1: Watchdog enable
> +  2: Watchdog fast-mode
> +  3: Watchdog trigger
> +  4: Watchdog reset cause bit 0
> +  5: Watchdog reset cause bit 1
> +  6: Watchdog reset cause bit 2
> +
> +Optional properties:
> +- None
> +
> +Example:
> + watchdog {
> + compatible ="men,a021-wdt";
> + gpios = < 9  1/* WD_EN */
> +   10 1/* WD_FAST */
> +   11 1/* WD_TRIG */
> +   6  1/* RST_CAUSE[0] */
> +   7  1/* RST_CAUSE[1] */
> +   8  1>;  /* RST_CAUSE[2] */
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 5be702c..824261e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -5317,6 +5317,12 @@ F: drivers/mtd/
>  F:   include/linux/mtd/
>  F:   include/uapi/mtd/
> 
> +MEN A21 WATCHDOG DRIVER
> +M:   Johannes Thumshirn 
> +L:   linux-watch...@vger.kernel.org
> +S:   Supported
> +F:   drivers/watchdog/mena21_wdt.c
> +
>  METAG ARCHITECTURE
>  M:   James Hogan 
>  S:   Supported
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index e89fc31..8b143ee 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -1172,6 +1172,18 @@ config BOOKE_WDT_DEFAULT_TIMEOUT
> 
> The value can be overridden by the wdt_period command-line parameter.
> 
> +config MEN_A21_WDT
> +   tristate "MEN A21 VME CPU Carrier Board Watchdog Timer"
> +   select WATCHDOG_CORE
> +   depends on GPIOLIB
> +   help
> +Watchdog driver for MEN A21 VMEbus CPU Carrier Boards.
> +
> + The driver can also be built as a module. If so, the module will be
> + called mena21_wdt.
> +
> + If unsure select N here.
> +
>  # PPC64 Architecture
> 
>  config WATCHDOG_RTAS
> diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
> index a300b94..bffdcb1 100644
> --- a/drivers/watchdog/Makefile
> +++ b/drivers/watchdog/Makefile
> @@ -143,6 +143,7 @@ obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o
>  obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o
>  obj-$(CONFIG_PIKA_WDT) += pika_wdt.o
>  obj-$(CONFIG_BOOKE_WDT) += booke_wdt.o
> +obj-$(CONFIG_MEN_A21_WDT) += mena21_wdt.o
> 
>  # PPC64 Architecture
>  obj-$(CONFIG_WATCHDOG_RTAS) += wdrtas.o
> diff --git a/drivers/watchdog/mena21_wdt.c b/drivers/watchdog/mena21_wdt.c
> new file mode 100644
> index 000..96dbba9
> --- /dev/null
> +++ 

[PATCH v10 1/2] watchdog: New watchdog driver for MEN A21 watchdogs

2013-06-17 Thread Johannes Thumshirn
This patch adds the driver for the watchdog devices found on MEN Mikro
Elektronik A21 VMEbus CPU Carrier Boards. It has DT-support and uses the
watchdog framework.

Signed-off-by: Johannes Thumshirn 
---

 Revision 2:
 * Removed unneeded open flag in struct a21_wdt_drv
 * Corrected 3bit reason code from gpio
 * Additional sysfs files are now part of watchdog sysfs
 * Changed OFF/ON delay in ping from 400ms to 10ns
 * Reworked timeout setting
 * Removed a21_wdt_ioctl(...)

 Revision 3:
 * Changed pr_{err,info} to dev_{err,info}
 * Removed out of memory error print
 * Transition from "fast" to "slow" mode not allowed by chip

 Revision 4:
 * Remove reboot_notifier and place disable code into platform_device's 
shutdown function
 * Removed sysfs interface

 Revision 5:
 * Added setting of .bootstatus on driver init
 * Added initial timeout on driver init

 Revision 6:
 * Use watchdog_init_timeout() to initialize timeout

 Revision 7:
 * Fix possible get_bootstatus race condition

 Revision 8:
 * a21_wdt_get_bootstatus() should return reset code
 * GPIOs are supplied via DT instead of being hardcoded. Code derived from
   (drivers/hwmon/gpio-fan.c)
 * Added Devicetree binding document
 * Driver now depends on GPIOLIB

 Revision 9:
 * We need 6 GPIOs not only 1 to work
 * GPIO_WD_RST[0..2] are inputs

 Revision 10:
 * Don't perform checks of Watchdog core again.
 * Some style fixes

 .../devicetree/bindings/gpio/men-a021-wdt.txt  |   25 ++
 MAINTAINERS|6 +
 drivers/watchdog/Kconfig   |   12 +
 drivers/watchdog/Makefile  |1 +
 drivers/watchdog/mena21_wdt.c  |  270 
 5 files changed, 314 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
 create mode 100644 drivers/watchdog/mena21_wdt.c

diff --git a/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt 
b/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
new file mode 100644
index 000..370dee3
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
@@ -0,0 +1,25 @@
+Bindings for MEN A21 Watchdog device connected to GPIO lines
+
+Required properties:
+- compatible: "men,a021-wdt"
+- gpios: Specifies the pins that control the Watchdog, order:
+  1: Watchdog enable
+  2: Watchdog fast-mode
+  3: Watchdog trigger
+  4: Watchdog reset cause bit 0
+  5: Watchdog reset cause bit 1
+  6: Watchdog reset cause bit 2
+
+Optional properties:
+- None
+
+Example:
+   watchdog {
+   compatible ="men,a021-wdt";
+   gpios = < 9  1/* WD_EN */
+ 10 1/* WD_FAST */
+ 11 1/* WD_TRIG */
+ 6  1/* RST_CAUSE[0] */
+ 7  1/* RST_CAUSE[1] */
+ 8  1>;  /* RST_CAUSE[2] */
+   };
diff --git a/MAINTAINERS b/MAINTAINERS
index 5be702c..824261e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5317,6 +5317,12 @@ F:   drivers/mtd/
 F: include/linux/mtd/
 F: include/uapi/mtd/

+MEN A21 WATCHDOG DRIVER
+M: Johannes Thumshirn 
+L: linux-watch...@vger.kernel.org
+S: Supported
+F: drivers/watchdog/mena21_wdt.c
+
 METAG ARCHITECTURE
 M: James Hogan 
 S: Supported
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index e89fc31..8b143ee 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -1172,6 +1172,18 @@ config BOOKE_WDT_DEFAULT_TIMEOUT

  The value can be overridden by the wdt_period command-line parameter.

+config MEN_A21_WDT
+   tristate "MEN A21 VME CPU Carrier Board Watchdog Timer"
+   select WATCHDOG_CORE
+   depends on GPIOLIB
+   help
+Watchdog driver for MEN A21 VMEbus CPU Carrier Boards.
+
+   The driver can also be built as a module. If so, the module will be
+   called mena21_wdt.
+
+   If unsure select N here.
+
 # PPC64 Architecture

 config WATCHDOG_RTAS
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index a300b94..bffdcb1 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -143,6 +143,7 @@ obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o
 obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o
 obj-$(CONFIG_PIKA_WDT) += pika_wdt.o
 obj-$(CONFIG_BOOKE_WDT) += booke_wdt.o
+obj-$(CONFIG_MEN_A21_WDT) += mena21_wdt.o

 # PPC64 Architecture
 obj-$(CONFIG_WATCHDOG_RTAS) += wdrtas.o
diff --git a/drivers/watchdog/mena21_wdt.c b/drivers/watchdog/mena21_wdt.c
new file mode 100644
index 000..96dbba9
--- /dev/null
+++ b/drivers/watchdog/mena21_wdt.c
@@ -0,0 +1,270 @@
+/*
+ * Watchdog driver for the A21 VME CPU Boards
+ *
+ * Copyright (C) 2013 MEN Mikro Elektronik Nuernberg GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation
+ */
+#include 
+#include 

[PATCH v10 1/2] watchdog: New watchdog driver for MEN A21 watchdogs

2013-06-17 Thread Johannes Thumshirn
This patch adds the driver for the watchdog devices found on MEN Mikro
Elektronik A21 VMEbus CPU Carrier Boards. It has DT-support and uses the
watchdog framework.

Signed-off-by: Johannes Thumshirn johannes.thumsh...@men.de
---

 Revision 2:
 * Removed unneeded open flag in struct a21_wdt_drv
 * Corrected 3bit reason code from gpio
 * Additional sysfs files are now part of watchdog sysfs
 * Changed OFF/ON delay in ping from 400ms to 10ns
 * Reworked timeout setting
 * Removed a21_wdt_ioctl(...)

 Revision 3:
 * Changed pr_{err,info} to dev_{err,info}
 * Removed out of memory error print
 * Transition from fast to slow mode not allowed by chip

 Revision 4:
 * Remove reboot_notifier and place disable code into platform_device's 
shutdown function
 * Removed sysfs interface

 Revision 5:
 * Added setting of .bootstatus on driver init
 * Added initial timeout on driver init

 Revision 6:
 * Use watchdog_init_timeout() to initialize timeout

 Revision 7:
 * Fix possible get_bootstatus race condition

 Revision 8:
 * a21_wdt_get_bootstatus() should return reset code
 * GPIOs are supplied via DT instead of being hardcoded. Code derived from
   (drivers/hwmon/gpio-fan.c)
 * Added Devicetree binding document
 * Driver now depends on GPIOLIB

 Revision 9:
 * We need 6 GPIOs not only 1 to work
 * GPIO_WD_RST[0..2] are inputs

 Revision 10:
 * Don't perform checks of Watchdog core again.
 * Some style fixes

 .../devicetree/bindings/gpio/men-a021-wdt.txt  |   25 ++
 MAINTAINERS|6 +
 drivers/watchdog/Kconfig   |   12 +
 drivers/watchdog/Makefile  |1 +
 drivers/watchdog/mena21_wdt.c  |  270 
 5 files changed, 314 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
 create mode 100644 drivers/watchdog/mena21_wdt.c

diff --git a/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt 
b/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
new file mode 100644
index 000..370dee3
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
@@ -0,0 +1,25 @@
+Bindings for MEN A21 Watchdog device connected to GPIO lines
+
+Required properties:
+- compatible: men,a021-wdt
+- gpios: Specifies the pins that control the Watchdog, order:
+  1: Watchdog enable
+  2: Watchdog fast-mode
+  3: Watchdog trigger
+  4: Watchdog reset cause bit 0
+  5: Watchdog reset cause bit 1
+  6: Watchdog reset cause bit 2
+
+Optional properties:
+- None
+
+Example:
+   watchdog {
+   compatible =men,a021-wdt;
+   gpios = gpio3 9  1/* WD_EN */
+gpio3 10 1/* WD_FAST */
+gpio3 11 1/* WD_TRIG */
+gpio3 6  1/* RST_CAUSE[0] */
+gpio3 7  1/* RST_CAUSE[1] */
+gpio3 8  1;  /* RST_CAUSE[2] */
+   };
diff --git a/MAINTAINERS b/MAINTAINERS
index 5be702c..824261e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5317,6 +5317,12 @@ F:   drivers/mtd/
 F: include/linux/mtd/
 F: include/uapi/mtd/

+MEN A21 WATCHDOG DRIVER
+M: Johannes Thumshirn johannes.thumsh...@men.de
+L: linux-watch...@vger.kernel.org
+S: Supported
+F: drivers/watchdog/mena21_wdt.c
+
 METAG ARCHITECTURE
 M: James Hogan james.ho...@imgtec.com
 S: Supported
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index e89fc31..8b143ee 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -1172,6 +1172,18 @@ config BOOKE_WDT_DEFAULT_TIMEOUT

  The value can be overridden by the wdt_period command-line parameter.

+config MEN_A21_WDT
+   tristate MEN A21 VME CPU Carrier Board Watchdog Timer
+   select WATCHDOG_CORE
+   depends on GPIOLIB
+   help
+Watchdog driver for MEN A21 VMEbus CPU Carrier Boards.
+
+   The driver can also be built as a module. If so, the module will be
+   called mena21_wdt.
+
+   If unsure select N here.
+
 # PPC64 Architecture

 config WATCHDOG_RTAS
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index a300b94..bffdcb1 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -143,6 +143,7 @@ obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o
 obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o
 obj-$(CONFIG_PIKA_WDT) += pika_wdt.o
 obj-$(CONFIG_BOOKE_WDT) += booke_wdt.o
+obj-$(CONFIG_MEN_A21_WDT) += mena21_wdt.o

 # PPC64 Architecture
 obj-$(CONFIG_WATCHDOG_RTAS) += wdrtas.o
diff --git a/drivers/watchdog/mena21_wdt.c b/drivers/watchdog/mena21_wdt.c
new file mode 100644
index 000..96dbba9
--- /dev/null
+++ b/drivers/watchdog/mena21_wdt.c
@@ -0,0 +1,270 @@
+/*
+ * Watchdog driver for the A21 VME CPU Boards
+ *
+ * Copyright (C) 2013 MEN Mikro Elektronik Nuernberg GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General 

Re: [PATCH v10 1/2] watchdog: New watchdog driver for MEN A21 watchdogs

2013-06-17 Thread Guenter Roeck
On Mon, Jun 17, 2013 at 12:22:48PM +0200, Johannes Thumshirn wrote:
 This patch adds the driver for the watchdog devices found on MEN Mikro
 Elektronik A21 VMEbus CPU Carrier Boards. It has DT-support and uses the
 watchdog framework.
 
 Signed-off-by: Johannes Thumshirn johannes.thumsh...@men.de

Reviewed-by: Guenter Roeck li...@roeck-us.net

 ---
 
  Revision 2:
  * Removed unneeded open flag in struct a21_wdt_drv
  * Corrected 3bit reason code from gpio
  * Additional sysfs files are now part of watchdog sysfs
  * Changed OFF/ON delay in ping from 400ms to 10ns
  * Reworked timeout setting
  * Removed a21_wdt_ioctl(...)
 
  Revision 3:
  * Changed pr_{err,info} to dev_{err,info}
  * Removed out of memory error print
  * Transition from fast to slow mode not allowed by chip
 
  Revision 4:
  * Remove reboot_notifier and place disable code into platform_device's 
 shutdown function
  * Removed sysfs interface
 
  Revision 5:
  * Added setting of .bootstatus on driver init
  * Added initial timeout on driver init
 
  Revision 6:
  * Use watchdog_init_timeout() to initialize timeout
 
  Revision 7:
  * Fix possible get_bootstatus race condition
 
  Revision 8:
  * a21_wdt_get_bootstatus() should return reset code
  * GPIOs are supplied via DT instead of being hardcoded. Code derived from
(drivers/hwmon/gpio-fan.c)
  * Added Devicetree binding document
  * Driver now depends on GPIOLIB
 
  Revision 9:
  * We need 6 GPIOs not only 1 to work
  * GPIO_WD_RST[0..2] are inputs
 
  Revision 10:
  * Don't perform checks of Watchdog core again.
  * Some style fixes
 
  .../devicetree/bindings/gpio/men-a021-wdt.txt  |   25 ++
  MAINTAINERS|6 +
  drivers/watchdog/Kconfig   |   12 +
  drivers/watchdog/Makefile  |1 +
  drivers/watchdog/mena21_wdt.c  |  270 
 
  5 files changed, 314 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
  create mode 100644 drivers/watchdog/mena21_wdt.c
 
 diff --git a/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt 
 b/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
 new file mode 100644
 index 000..370dee3
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/gpio/men-a021-wdt.txt
 @@ -0,0 +1,25 @@
 +Bindings for MEN A21 Watchdog device connected to GPIO lines
 +
 +Required properties:
 +- compatible: men,a021-wdt
 +- gpios: Specifies the pins that control the Watchdog, order:
 +  1: Watchdog enable
 +  2: Watchdog fast-mode
 +  3: Watchdog trigger
 +  4: Watchdog reset cause bit 0
 +  5: Watchdog reset cause bit 1
 +  6: Watchdog reset cause bit 2
 +
 +Optional properties:
 +- None
 +
 +Example:
 + watchdog {
 + compatible =men,a021-wdt;
 + gpios = gpio3 9  1/* WD_EN */
 +  gpio3 10 1/* WD_FAST */
 +  gpio3 11 1/* WD_TRIG */
 +  gpio3 6  1/* RST_CAUSE[0] */
 +  gpio3 7  1/* RST_CAUSE[1] */
 +  gpio3 8  1;  /* RST_CAUSE[2] */
 + };
 diff --git a/MAINTAINERS b/MAINTAINERS
 index 5be702c..824261e 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 @@ -5317,6 +5317,12 @@ F: drivers/mtd/
  F:   include/linux/mtd/
  F:   include/uapi/mtd/
 
 +MEN A21 WATCHDOG DRIVER
 +M:   Johannes Thumshirn johannes.thumsh...@men.de
 +L:   linux-watch...@vger.kernel.org
 +S:   Supported
 +F:   drivers/watchdog/mena21_wdt.c
 +
  METAG ARCHITECTURE
  M:   James Hogan james.ho...@imgtec.com
  S:   Supported
 diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
 index e89fc31..8b143ee 100644
 --- a/drivers/watchdog/Kconfig
 +++ b/drivers/watchdog/Kconfig
 @@ -1172,6 +1172,18 @@ config BOOKE_WDT_DEFAULT_TIMEOUT
 
 The value can be overridden by the wdt_period command-line parameter.
 
 +config MEN_A21_WDT
 +   tristate MEN A21 VME CPU Carrier Board Watchdog Timer
 +   select WATCHDOG_CORE
 +   depends on GPIOLIB
 +   help
 +Watchdog driver for MEN A21 VMEbus CPU Carrier Boards.
 +
 + The driver can also be built as a module. If so, the module will be
 + called mena21_wdt.
 +
 + If unsure select N here.
 +
  # PPC64 Architecture
 
  config WATCHDOG_RTAS
 diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
 index a300b94..bffdcb1 100644
 --- a/drivers/watchdog/Makefile
 +++ b/drivers/watchdog/Makefile
 @@ -143,6 +143,7 @@ obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o
  obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o
  obj-$(CONFIG_PIKA_WDT) += pika_wdt.o
  obj-$(CONFIG_BOOKE_WDT) += booke_wdt.o
 +obj-$(CONFIG_MEN_A21_WDT) += mena21_wdt.o
 
  # PPC64 Architecture
  obj-$(CONFIG_WATCHDOG_RTAS) += wdrtas.o
 diff --git a/drivers/watchdog/mena21_wdt.c b/drivers/watchdog/mena21_wdt.c
 new file mode 100644
 index 000..96dbba9
 --- /dev/null
 +++ b/drivers/watchdog/mena21_wdt.c
 @@ -0,0 +1,270 @@
 +/*
 + *