Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 93899e39 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull watchdog updates from Wim Van Sebroeck:
 "This contains:

   - new driver for ST's LPC Watchdog
   - new driver for Conexant Digicolor CX92755 SoC
   - new driver for DA9062 watchdog
   - Addition of the watchdog registration deferral mechanism
   - several improvements on omap_wdt
   - several improvements and reboot-support for imgpdc_wdt
   - max63xx_wdt improvements
   - imx2_wdt improvements
   - dw_wdt improvements
   - and other small improvements and fixes"

* git://www.linux-watchdog.org/linux-watchdog: (37 commits)
  watchdog: omap_wdt: early_enable module parameter
  watchdog: gpio_wdt: Add option for early registration
  watchdog: watchdog_core: Add watchdog registration deferral mechanism
  watchdog: max63xx: dynamically allocate device
  watchdog: imx2_wdt: Disable previously acquired clock on error path
  watchdog: imx2_wdt: Check for clk_prepare_enable() error
  watchdog: hpwdt: Add support for WDIOC_SETOPTIONS
  watchdog: docs: omap_wdt also understands nowayout
  watchdog: omap_wdt: implement get_timeleft
  watchdog: da9062: DA9062 watchdog driver
  watchdog: imx2_wdt: set watchdog parent device
  watchdog: mena21_wdt: Fix possible NULL pointer dereference
  watchdog: dw_wdt: keepalive the watchdog at write time
  watchdog: dw_wdt: No need for a spinlock
  watchdog: imx2_wdt: also set wdog->timeout to new_timeout
  watchdog: Allow compile test of GPIO consumers if !GPIOLIB
  watchdog: cadence: Add dependency on HAS_IOMEM
  watchdog: max63xx_wdt: Constify platform_device_id
  watchdog: MAX63XX_WATCHDOG does not depend on ARM
  watchdog: imgpdc: Add some documentation about the timeout
  ...
parents 5f1201d5 b2102eb3
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
Conexant Digicolor SoCs Watchdog timer

The watchdog functionality in Conexant Digicolor SoCs relies on the so called
"Agent Communication" block. This block includes the eight programmable system
timer counters. The first timer (called "Timer A") is the only one that can be
used as watchdog.

Required properties:

- compatible : Should be "cnxt,cx92755-wdt"
- reg : Specifies base physical address and size of the registers
- clocks : phandle; specifies the clock that drives the timer

Optional properties:

- timeout-sec : Contains the watchdog timeout in seconds

Example:

	watchdog@f0000fc0 {
		compatible = "cnxt,cx92755-wdt";
		reg = <0xf0000fc0 0x8>;
		clocks = <&main_clk>;
		timeout-sec = <15>;
	};
+5 −4
Original line number Diff line number Diff line
TI Watchdog Timer (WDT) Controller for OMAP

Required properties:
compatible:
- "ti,omap3-wdt" for OMAP3
- "ti,omap4-wdt" for OMAP4
- compatible : "ti,omap3-wdt" for OMAP3 or "ti,omap4-wdt" for OMAP4
- ti,hwmods : Name of the hwmod associated to the WDT

Optional properties:
- timeout-sec : default watchdog timeout in seconds

Examples:

wdt2: wdt@4a314000 {
+7 −0
Original line number Diff line number Diff line
@@ -36,6 +36,10 @@ The watchdog_unregister_device routine deregisters a registered watchdog timer
device. The parameter of this routine is the pointer to the registered
watchdog_device structure.

The watchdog subsystem includes an registration deferral mechanism,
which allows you to register an watchdog as early as you wish during
the boot process.

The watchdog device structure looks like this:

struct watchdog_device {
@@ -52,6 +56,7 @@ struct watchdog_device {
	void *driver_data;
	struct mutex lock;
	unsigned long status;
	struct list_head deferred;
};

It contains following fields:
@@ -80,6 +85,8 @@ It contains following fields:
  information about the status of the device (Like: is the watchdog timer
  running/active, is the nowayout bit set, is the device opened via
  the /dev/watchdog interface or not, ...).
* deferred: entry in wtd_deferred_reg_list which is used to
  register early initialized watchdogs.

The list of watchdog operations is defined as:

+3 −0
Original line number Diff line number Diff line
@@ -208,6 +208,9 @@ nowayout: Watchdog cannot be stopped once started
-------------------------------------------------
omap_wdt:
timer_margin: initial watchdog timeout (in seconds)
early_enable: Watchdog is started on module insertion (default=0
nowayout: Watchdog cannot be stopped once started
	(default=kernel config parameter)
-------------------------------------------------
orion_wdt:
heartbeat: Initial watchdog heartbeat in seconds
+34 −2
Original line number Diff line number Diff line

#
# Watchdog device configuration
#
@@ -96,6 +97,15 @@ config DA9063_WATCHDOG

	  This driver can be built as a module. The module name is da9063_wdt.

config DA9062_WATCHDOG
	tristate "Dialog DA9062 Watchdog"
	depends on MFD_DA9062
	select WATCHDOG_CORE
	help
	  Support for the watchdog in the DA9062 PMIC.

	  This driver can be built as a module. The module name is da9062_wdt.

config GPIO_WATCHDOG
	tristate "Watchdog device controlled through GPIO-line"
	depends on OF_GPIO
@@ -104,6 +114,17 @@ config GPIO_WATCHDOG
	  If you say yes here you get support for watchdog device
	  controlled through GPIO-line.

config GPIO_WATCHDOG_ARCH_INITCALL
	bool "Register the watchdog as early as possible"
	depends on GPIO_WATCHDOG=y
	help
	  In some situations, the default initcall level (module_init)
	  in not early enough in the boot process to avoid the watchdog
	  to be triggered.
	  If you say yes here, the initcall level would be raised to
	  arch_initcall.
	  If in doubt, say N.

config MENF21BMC_WATCHDOG
	tristate "MEN 14F021P00 BMC Watchdog"
	depends on MFD_MENF21BMC
@@ -169,6 +190,7 @@ config AT91SAM9X_WATCHDOG

config CADENCE_WATCHDOG
	tristate "Cadence Watchdog Timer"
	depends on HAS_IOMEM
	select WATCHDOG_CORE
	help
	  Say Y here if you want to include support for the watchdog
@@ -408,7 +430,7 @@ config TS72XX_WATCHDOG

config MAX63XX_WATCHDOG
	tristate "Max63xx watchdog"
	depends on ARM && HAS_IOMEM
	depends on HAS_IOMEM
	select WATCHDOG_CORE
	help
	  Support for memory mapped max63{69,70,71,72,73,74} watchdog timer.
@@ -526,6 +548,16 @@ config MEDIATEK_WATCHDOG
	  To compile this driver as a module, choose M here: the
	  module will be called mtk_wdt.

config DIGICOLOR_WATCHDOG
	tristate "Conexant Digicolor SoCs watchdog support"
	depends on ARCH_DIGICOLOR
	select WATCHDOG_CORE
	help
	  Say Y here to include support for the watchdog timer
	  in Conexant Digicolor SoCs.
	  To compile this driver as a module, choose M here: the
	  module will be called digicolor_wdt.

# AVR32 Architecture

config AT32AP700X_WDT
@@ -1355,7 +1387,7 @@ config BOOKE_WDT_DEFAULT_TIMEOUT
config MEN_A21_WDT
       tristate "MEN A21 VME CPU Carrier Board Watchdog Timer"
       select WATCHDOG_CORE
       depends on GPIOLIB
       depends on GPIOLIB || COMPILE_TEST
       help
        Watchdog driver for MEN A21 VMEbus CPU Carrier Boards.

Loading