watchdog: mlx-wdt: introduce a watchdog driver for Mellanox systems.
authorMichael Shych <michaelsh@mellanox.com>
Wed, 20 Feb 2019 09:34:23 +0000 (09:34 +0000)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Sat, 2 Mar 2019 14:28:20 +0000 (15:28 +0100)
commitc60923dd5feedc337b1450e3f4c6e19ffa305439
treedd9b5de0ffe9d4793a09281ee4c6fea0dbc893d0
parent9f03161a1bd8cd9ccf11533e52326718c656036e
watchdog: mlx-wdt: introduce a watchdog driver for Mellanox systems.

Introduce watchdog driver for a various range of Mellanox Ethernet and
Infiniband switch systems.

Watchdog driver for Mellanox watchdog devices, implemented in
programmable logic device.

Main and auxiliary watchdog devices can exist on the same system.
There are several actions that can be defined in the watchdog:
system reset, start fans on full speed and increase a counter.
The last 2 actions are performed without a system reset.
Actions without reset are provided for auxiliary watchdog devices,
which is optional.
Access to HW registers is performed through generic
regmap interface.

There are 2 types of HW watchdog implementations.
Type 1: actual HW timeout can be defined as power of 2 msec.
e.g. timeout 20 sec will be rounded up to 32768 msec.;
maximum timeout period is 32 sec (32768 msec.);
get time-left isn't supported
Type 2: actual HW timeout is defined in sec. and it's the same as
user-defined timeout;
maximum timeout is 255 sec;
get time-left is supported;

Watchdog driver is probed from the common mlx_platform driver.

Signed-off-by: Michael Shych <michaelsh@mellanox.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
drivers/watchdog/Kconfig
drivers/watchdog/Makefile
drivers/watchdog/mlx_wdt.c [new file with mode: 0644]