mirror of
https://github.com/armbian/linux-cix.git
synced 2026-01-06 12:30:45 -08:00
Merge tag 'linux-watchdog-5.3-rc1' of git://www.linux-watchdog.org/linux-watchdog
Pull watchdog updates from Wim Van Sebroeck: - add Allwinner H6 watchdog - drop warning after registering device patches - hpwdt improvements - gpio: add support for nowayout option - introduce CONFIG_WATCHDOG_OPEN_TIMEOUT - convert remaining drivers to use SPDX license identifier - Fixes and improvements on several watchdog device drivers * tag 'linux-watchdog-5.3-rc1' of git://www.linux-watchdog.org/linux-watchdog: (74 commits) watchdog: digicolor_wdt: Remove unused variable in dc_wdt_probe watchdog: ie6xx_wdt: Use spinlock_t instead of struct spinlock watchdog: atmel: atmel-sama5d4-wdt: Disable watchdog on system suspend watchdog: convert remaining drivers to use SPDX license identifier dt-bindings: watchdog: Rename bindings documentation file watchdog: mei_wdt: no need to check return value of debugfs_create functions watchdog: bcm_kona_wdt: no need to check return value of debugfs_create functions docs: watchdog: Fix build error. docs: watchdog: convert docs to ReST and rename to *.rst watchdog: make the device time out at open_deadline when open_timeout is used watchdog: introduce CONFIG_WATCHDOG_OPEN_TIMEOUT watchdog: introduce watchdog.open_timeout commandline parameter dt-bindings: watchdog: move i.MX system controller watchdog binding to SCU watchdog: imx_sc: Add pretimeout support watchdog: renesas_wdt: Add a few cycles delay watchdog: gpio: add support for nowayout option watchdog: renesas_wdt: Use 'dev' instead of dereferencing it repeatedly dt-bindings: watchdog: add Allwinner H6 watchdog watchdog: jz4740: Avoid starting watchdog in set_timeout watchdog: jz4740: Use register names from <linux/mfd/ingenic-tcu.h> ...
This commit is contained in:
@@ -145,6 +145,16 @@ Optional Child nodes:
|
||||
- Data cells of ocotp:
|
||||
Detailed bindings are described in bindings/nvmem/nvmem.txt
|
||||
|
||||
Watchdog bindings based on SCU Message Protocol
|
||||
------------------------------------------------------------
|
||||
|
||||
Required properties:
|
||||
- compatible: should be:
|
||||
"fsl,imx8qxp-sc-wdt"
|
||||
followed by "fsl,imx-sc-wdt";
|
||||
Optional properties:
|
||||
- timeout-sec: contains the watchdog timeout in seconds.
|
||||
|
||||
Example (imx8qxp):
|
||||
-------------
|
||||
aliases {
|
||||
@@ -207,6 +217,11 @@ firmware {
|
||||
rtc: rtc {
|
||||
compatible = "fsl,imx8qxp-sc-rtc";
|
||||
};
|
||||
|
||||
watchdog {
|
||||
compatible = "fsl,imx8qxp-sc-wdt", "fsl,imx-sc-wdt";
|
||||
timeout-sec = <60>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
* Freescale i.MX System Controller Watchdog
|
||||
|
||||
i.MX system controller watchdog is for i.MX SoCs with system controller inside,
|
||||
the watchdog is managed by system controller, users can ONLY communicate with
|
||||
system controller from secure mode for watchdog operations, so Linux i.MX system
|
||||
controller watchdog driver will call ARM SMC API and trap into ARM-Trusted-Firmware
|
||||
for watchdog operations, ARM-Trusted-Firmware is running at secure EL3 mode and
|
||||
it will request system controller to execute the watchdog operation passed from
|
||||
Linux kernel.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be :
|
||||
"fsl,imx8qxp-sc-wdt"
|
||||
followed by "fsl,imx-sc-wdt";
|
||||
|
||||
Optional properties:
|
||||
- timeout-sec : Contains the watchdog timeout in seconds.
|
||||
|
||||
Examples:
|
||||
|
||||
watchdog {
|
||||
compatible = "fsl,imx8qxp-sc-wdt", "fsl,imx-sc-wdt";
|
||||
timeout-sec = <60>;
|
||||
};
|
||||
@@ -6,6 +6,7 @@ Required properties:
|
||||
"allwinner,sun4i-a10-wdt"
|
||||
"allwinner,sun6i-a31-wdt"
|
||||
"allwinner,sun50i-a64-wdt","allwinner,sun6i-a31-wdt"
|
||||
"allwinner,sun50i-h6-wdt","allwinner,sun6i-a31-wdt"
|
||||
"allwinner,suniv-f1c100s-wdt", "allwinner,sun4i-a10-wdt"
|
||||
- reg : Specifies base physical address and size of the registers.
|
||||
|
||||
|
||||
@@ -39,6 +39,10 @@ Last reviewed: 08/20/2018
|
||||
Default value is set when compiling the kernel. If it is set
|
||||
to "Y", then there is no way of disabling the watchdog once
|
||||
it has been started.
|
||||
kdumptimeout Minimum timeout in seconds to apply upon receipt of an NMI
|
||||
before calling panic. (-1) disables the watchdog. When value
|
||||
is > 0, the timer is reprogrammed with the greater of
|
||||
value or current timeout value.
|
||||
============ ================================================================
|
||||
|
||||
NOTE:
|
||||
|
||||
@@ -13,6 +13,17 @@ modules.
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
watchdog core:
|
||||
open_timeout:
|
||||
Maximum time, in seconds, for which the watchdog framework will take
|
||||
care of pinging a running hardware watchdog until userspace opens the
|
||||
corresponding /dev/watchdogN device. A value of 0 means an infinite
|
||||
timeout. Setting this to a non-zero value can be useful to ensure that
|
||||
either userspace comes up properly, or the board gets reset and allows
|
||||
fallback logic in the bootloader to try something else.
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
acquirewdt:
|
||||
wdt_stop:
|
||||
Acquire WDT 'stop' io port (default 0x43)
|
||||
|
||||
@@ -58,6 +58,15 @@ config WATCHDOG_HANDLE_BOOT_ENABLED
|
||||
the watchdog on its own. Thus if your userspace does not start fast
|
||||
enough your device will reboot.
|
||||
|
||||
config WATCHDOG_OPEN_TIMEOUT
|
||||
int "Timeout value for opening watchdog device"
|
||||
default 0
|
||||
help
|
||||
The maximum time, in seconds, for which the watchdog framework takes
|
||||
care of pinging a hardware watchdog. A value of 0 means infinite. The
|
||||
value set here can be overridden by the commandline parameter
|
||||
"watchdog.open_timeout".
|
||||
|
||||
config WATCHDOG_SYSFS
|
||||
bool "Read different watchdog information through sysfs"
|
||||
help
|
||||
@@ -717,6 +726,7 @@ config IMX2_WDT
|
||||
config IMX_SC_WDT
|
||||
tristate "IMX SC Watchdog"
|
||||
depends on HAVE_ARM_SMCCC
|
||||
depends on IMX_SCU
|
||||
select WATCHDOG_CORE
|
||||
help
|
||||
This is the driver for the system controller watchdog
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Acquire Single Board Computer Watchdog Timer driver
|
||||
*
|
||||
@@ -6,11 +7,6 @@
|
||||
* (c) Copyright 1996 Alan Cox <alan@lxorguk.ukuu.org.uk>,
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* 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; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* Neither Alan Cox nor CymruNet Ltd. admit liability nor provide
|
||||
* warranty for any of this software. This material is provided
|
||||
* "AS-IS" and at no charge.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Advantech Single Board Computer WDT driver
|
||||
*
|
||||
@@ -9,11 +10,6 @@
|
||||
* (c) Copyright 1996 Alan Cox <alan@lxorguk.ukuu.org.uk>,
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* 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; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* Neither Alan Cox nor CymruNet Ltd. admit liability nor provide
|
||||
* warranty for any of this software. This material is provided
|
||||
* "AS-IS" and at no charge.
|
||||
|
||||
@@ -309,13 +309,7 @@ static int aspeed_wdt_probe(struct platform_device *pdev)
|
||||
if (status & WDT_TIMEOUT_STATUS_BOOT_SECONDARY)
|
||||
wdt->wdd.bootstatus = WDIOF_CARDRESET;
|
||||
|
||||
ret = devm_watchdog_register_device(dev, &wdt->wdd);
|
||||
if (ret) {
|
||||
dev_err(dev, "failed to register\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return devm_watchdog_register_device(dev, &wdt->wdd);
|
||||
}
|
||||
|
||||
static struct platform_driver aspeed_watchdog_driver = {
|
||||
|
||||
@@ -202,10 +202,8 @@ static int bcm2835_wdt_probe(struct platform_device *pdev)
|
||||
|
||||
watchdog_stop_on_reboot(&bcm2835_wdt_wdd);
|
||||
err = devm_watchdog_register_device(dev, &bcm2835_wdt_wdd);
|
||||
if (err) {
|
||||
dev_err(dev, "Failed to register watchdog device");
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
if (pm_power_off == NULL) {
|
||||
pm_power_off = bcm2835_power_off;
|
||||
@@ -240,6 +238,7 @@ module_param(nowayout, bool, 0);
|
||||
MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
|
||||
__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
|
||||
|
||||
MODULE_ALIAS("platform:bcm2835-wdt");
|
||||
MODULE_AUTHOR("Lubomir Rintel <lkundrak@v3.sk>");
|
||||
MODULE_DESCRIPTION("Driver for Broadcom BCM2835 watchdog timer");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
@@ -159,10 +159,8 @@ static int bcm7038_wdt_probe(struct platform_device *pdev)
|
||||
watchdog_stop_on_reboot(&wdt->wdd);
|
||||
watchdog_stop_on_unregister(&wdt->wdd);
|
||||
err = devm_watchdog_register_device(dev, &wdt->wdd);
|
||||
if (err) {
|
||||
dev_err(dev, "Failed to register watchdog device\n");
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
dev_info(dev, "Registered BCM7038 Watchdog\n");
|
||||
|
||||
|
||||
@@ -301,10 +301,8 @@ static int bcm_kona_wdt_probe(struct platform_device *pdev)
|
||||
watchdog_stop_on_reboot(&bcm_kona_wdt_wdd);
|
||||
watchdog_stop_on_unregister(&bcm_kona_wdt_wdd);
|
||||
ret = devm_watchdog_register_device(dev, &bcm_kona_wdt_wdd);
|
||||
if (ret) {
|
||||
dev_err(dev, "Failed to register watchdog device");
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
bcm_kona_wdt_debug_init(pdev);
|
||||
dev_dbg(dev, "Broadcom Kona Watchdog Timer");
|
||||
|
||||
@@ -363,10 +363,8 @@ static int cdns_wdt_probe(struct platform_device *pdev)
|
||||
watchdog_stop_on_reboot(cdns_wdt_device);
|
||||
watchdog_stop_on_unregister(cdns_wdt_device);
|
||||
ret = devm_watchdog_register_device(dev, cdns_wdt_device);
|
||||
if (ret) {
|
||||
dev_err(dev, "Failed to register wdt device\n");
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
platform_set_drvdata(pdev, wdt);
|
||||
|
||||
dev_info(dev, "Xilinx Watchdog Timer at %p with timeout %ds%s\n",
|
||||
|
||||
@@ -176,14 +176,7 @@ static int da9052_wdt_probe(struct platform_device *pdev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = devm_watchdog_register_device(dev, &driver_data->wdt);
|
||||
if (ret != 0) {
|
||||
dev_err(da9052->dev, "watchdog_register_device() failed: %d\n",
|
||||
ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return ret;
|
||||
return devm_watchdog_register_device(dev, &driver_data->wdt);
|
||||
}
|
||||
|
||||
static struct platform_driver da9052_wdt_driver = {
|
||||
|
||||
@@ -214,11 +214,8 @@ static int da9062_wdt_probe(struct platform_device *pdev)
|
||||
watchdog_set_drvdata(&wdt->wdtdev, wdt);
|
||||
|
||||
ret = devm_watchdog_register_device(dev, &wdt->wdtdev);
|
||||
if (ret < 0) {
|
||||
dev_err(wdt->hw->dev,
|
||||
"watchdog registration failed (%d)\n", ret);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return da9062_wdt_ping(&wdt->wdtdev);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* drivers/char/watchdog/davinci_wdt.c
|
||||
*
|
||||
@@ -5,10 +6,7 @@
|
||||
*
|
||||
* Copyright (C) 2006-2013 Texas Instruments.
|
||||
*
|
||||
* 2007 (c) MontaVista Software, Inc. This file is licensed under
|
||||
* the terms of the GNU General Public License version 2. This program
|
||||
* is licensed "as is" without any warranty of any kind, whether express
|
||||
* or implied.
|
||||
* 2007 (c) MontaVista Software, Inc.
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
@@ -247,13 +245,7 @@ static int davinci_wdt_probe(struct platform_device *pdev)
|
||||
if (IS_ERR(davinci_wdt->base))
|
||||
return PTR_ERR(davinci_wdt->base);
|
||||
|
||||
ret = devm_watchdog_register_device(dev, wdd);
|
||||
if (ret) {
|
||||
dev_err(dev, "cannot register watchdog device\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return devm_watchdog_register_device(dev, wdd);
|
||||
}
|
||||
|
||||
static const struct of_device_id davinci_wdt_of_match[] = {
|
||||
|
||||
@@ -118,7 +118,6 @@ static int dc_wdt_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
struct dc_wdt *wdt;
|
||||
int ret;
|
||||
|
||||
wdt = devm_kzalloc(dev, sizeof(struct dc_wdt), GFP_KERNEL);
|
||||
if (!wdt)
|
||||
@@ -141,13 +140,7 @@ static int dc_wdt_probe(struct platform_device *pdev)
|
||||
watchdog_set_restart_priority(&dc_wdt_wdd, 128);
|
||||
watchdog_init_timeout(&dc_wdt_wdd, timeout, dev);
|
||||
watchdog_stop_on_reboot(&dc_wdt_wdd);
|
||||
ret = devm_watchdog_register_device(dev, &dc_wdt_wdd);
|
||||
if (ret) {
|
||||
dev_err(dev, "Failed to register watchdog device");
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return devm_watchdog_register_device(dev, &dc_wdt_wdd);
|
||||
}
|
||||
|
||||
static const struct of_device_id dc_wdt_of_match[] = {
|
||||
|
||||
@@ -2,15 +2,6 @@
|
||||
/*
|
||||
* Watchdog timer driver for the WinSystems EBC-C384
|
||||
* Copyright (C) 2016 William Breathitt Gray
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License, version 2, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*/
|
||||
#include <linux/device.h>
|
||||
#include <linux/dmi.h>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Eurotech CPU-1220/1410/1420 on board WDT driver
|
||||
*
|
||||
@@ -11,11 +12,6 @@
|
||||
* (c) Copyright 1996-1997 Alan Cox <alan@lxorguk.ukuu.org.uk>,
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* 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; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* Neither Alan Cox nor CymruNet Ltd. admit liability nor provide
|
||||
* warranty for any of this software. This material is provided
|
||||
* "AS-IS" and at no charge.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user