Skip to content

Commit 9d69294

Browse files
committed
Merge tag 'linux-watchdog-5.14-rc1' of git://www.linux-watchdog.org/linux-watchdog
Pull watchdog updates from Wim Van Sebroeck: - Add Mstar MSC313e WDT driver - Add support for sama7g5-wdt - Add compatible for SC7280 SoC - Add compatible for Mediatek MT8195 - sbsa: Support architecture version 1 - Removal of the MV64x60 watchdog driver - Extra PCI IDs for hpwdt - Add hrtimer-based pretimeout feature - Add {min,max}_timeout sysfs nodes - keembay timeout and pre-timeout handling - Several fixes, cleanups and improvements * tag 'linux-watchdog-5.14-rc1' of git://www.linux-watchdog.org/linux-watchdog: (56 commits) watchdog: iTCO_wdt: use dev_err() instead of pr_err() watchdog: Add Mstar MSC313e WDT driver dt-bindings: watchdog: Add Mstar MSC313e WDT devicetree bindings documentation watchdog: iTCO_wdt: Account for rebooting on second timeout dt-bindings: watchdog: Convert arm,sbsa-gwdt to DT schema dt-bindings: watchdog: sama5d4-wdt: add compatible for sama7g5-wdt watchdog: sama5d4_wdt: add support for sama7g5-wdt dt-bindings: watchdog: sama5d4-wdt: convert to yaml watchdog: ziirave_wdt: Remove VERSION_FMT defines and add sysfs newlines dt-bindings: watchdog: Add compatible for Mediatek MT8195 dt-bindings: watchdog: dw-wdt: add description for rk3568 watchdog: imx_sc_wdt: fix pretimeout watchdog: diag288_wdt: Remove redundant assignment watchdog: Add hrtimer-based pretimeout feature dt-bindings: watchdog: Add compatible for SC7280 SoC watchdog: qcom: Move suspend/resume to suspend_late/resume_early watchdog: Fix a typo in the file orion_wdt.c watchdog: jz4740: Fix return value check in jz4740_wdt_probe() watchdog: Remove MV64x60 watchdog driver doc: mtk-wdt: support pre-timeout when the bark irq is available ...
2 parents 0cc2ea8 + cf813c6 commit 9d69294

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+772
-585
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/watchdog/atmel,sama5d4-wdt.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Atmel SAMA5D4 Watchdog Timer (WDT) Controller
8+
9+
maintainers:
10+
- Eugen Hristev <[email protected]>
11+
12+
allOf:
13+
- $ref: "watchdog.yaml#"
14+
15+
properties:
16+
compatible:
17+
enum:
18+
- atmel,sama5d4-wdt
19+
- microchip,sam9x60-wdt
20+
- microchip,sama7g5-wdt
21+
22+
reg:
23+
maxItems: 1
24+
25+
atmel,watchdog-type:
26+
$ref: /schemas/types.yaml#/definitions/string
27+
description: should be hardware or software.
28+
oneOf:
29+
- description:
30+
Enable watchdog fault reset. A watchdog fault triggers
31+
watchdog reset.
32+
const: hardware
33+
- description:
34+
Enable watchdog fault interrupt. A watchdog fault asserts
35+
watchdog interrupt.
36+
const: software
37+
default: hardware
38+
39+
atmel,idle-halt:
40+
$ref: /schemas/types.yaml#/definitions/flag
41+
description: |
42+
present if you want to stop the watchdog when the CPU is in idle state.
43+
CAUTION: This property should be used with care, it actually makes the
44+
watchdog not counting when the CPU is in idle state, therefore the
45+
watchdog reset time depends on mean CPU usage and will not reset at all
46+
if the CPU stop working while it is in idle state, which is probably
47+
not what you want.
48+
49+
atmel,dbg-halt:
50+
$ref: /schemas/types.yaml#/definitions/flag
51+
description: |
52+
present if you want to stop the watchdog when the CPU is in debug state.
53+
54+
required:
55+
- compatible
56+
- reg
57+
58+
unevaluatedProperties: false
59+
60+
examples:
61+
- |
62+
#include <dt-bindings/interrupt-controller/irq.h>
63+
64+
watchdog@fc068640 {
65+
compatible = "atmel,sama5d4-wdt";
66+
reg = <0xfc068640 0x10>;
67+
interrupts = <4 IRQ_TYPE_LEVEL_HIGH 5>;
68+
timeout-sec = <10>;
69+
atmel,watchdog-type = "hardware";
70+
atmel,dbg-halt;
71+
atmel,idle-halt;
72+
};
73+
74+
...

Documentation/devicetree/bindings/watchdog/atmel-sama5d4-wdt.txt

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/watchdog/mstar,msc313e-wdt.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: MStar Watchdog Device Tree Bindings
8+
9+
maintainers:
10+
- Daniel Palmer <[email protected]>
11+
- Romain Perier <[email protected]>
12+
13+
allOf:
14+
- $ref: watchdog.yaml#
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- mstar,msc313e-wdt
20+
21+
reg:
22+
maxItems: 1
23+
24+
clocks:
25+
maxItems: 1
26+
27+
required:
28+
- compatible
29+
- clocks
30+
- reg
31+
32+
unevaluatedProperties: false
33+
34+
examples:
35+
- |
36+
watchdog@6000 {
37+
compatible = "mstar,msc313e-wdt";
38+
reg = <0x6000 0x1f>;
39+
clocks = <&xtal_div2>;
40+
};

Documentation/devicetree/bindings/watchdog/mtk-wdt.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
Mediatek SoCs Watchdog timer
22

3+
The watchdog supports a pre-timeout interrupt that fires timeout-sec/2
4+
before the expiry.
5+
36
Required properties:
47

58
- compatible should contain:
@@ -13,10 +16,12 @@ Required properties:
1316
"mediatek,mt8183-wdt": for MT8183
1417
"mediatek,mt8516-wdt", "mediatek,mt6589-wdt": for MT8516
1518
"mediatek,mt8192-wdt": for MT8192
19+
"mediatek,mt8195-wdt", "mediatek,mt6589-wdt": for MT8195
1620

1721
- reg : Specifies base physical address and size of the registers.
1822

1923
Optional properties:
24+
- interrupts: Watchdog pre-timeout (bark) interrupt.
2025
- timeout-sec: contains the watchdog timeout in seconds.
2126
- #reset-cells: Should be 1.
2227

@@ -26,6 +31,7 @@ watchdog: watchdog@10007000 {
2631
compatible = "mediatek,mt8183-wdt",
2732
"mediatek,mt6589-wdt";
2833
reg = <0 0x10007000 0 0x100>;
34+
interrupts = <GIC_SPI 139 IRQ_TYPE_NONE>;
2935
timeout-sec = <10>;
3036
#reset-cells = <1>;
3137
};

Documentation/devicetree/bindings/watchdog/qcom-wdt.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ properties:
1717
enum:
1818
- qcom,apss-wdt-qcs404
1919
- qcom,apss-wdt-sc7180
20+
- qcom,apss-wdt-sc7280
2021
- qcom,apss-wdt-sdm845
2122
- qcom,apss-wdt-sdx55
2223
- qcom,apss-wdt-sm8150

Documentation/devicetree/bindings/watchdog/snps,dw-wdt.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ properties:
2727
- rockchip,rk3328-wdt
2828
- rockchip,rk3368-wdt
2929
- rockchip,rk3399-wdt
30+
- rockchip,rk3568-wdt
3031
- rockchip,rv1108-wdt
3132
- const: snps,dw-wdt
3233

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2217,6 +2217,7 @@ F: arch/arm/boot/dts/mstar-*
22172217
F: arch/arm/mach-mstar/
22182218
F: drivers/clk/mstar/
22192219
F: drivers/gpio/gpio-msc313.c
2220+
F: drivers/watchdog/msc313e_wdt.c
22202221
F: include/dt-bindings/clock/mstar-*
22212222
F: include/dt-bindings/gpio/msc313-gpio.h
22222223

drivers/watchdog/Kconfig

Lines changed: 49 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ menuconfig WATCHDOG
2222

2323
The watchdog is usually used together with the watchdog daemon
2424
which is available from
25-
<ftp://ibiblio.org/pub/Linux/system/daemons/watchdog/>. This daemon can
26-
also monitor NFS connections and can reboot the machine when the process
27-
table is full.
25+
<https://ibiblio.org/pub/Linux/system/daemons/watchdog/>. This daemon
26+
can also monitor NFS connections and can reboot the machine when the
27+
process table is full.
2828

2929
If unsure, say N.
3030

@@ -73,6 +73,14 @@ config WATCHDOG_SYSFS
7373
Say Y here if you want to enable watchdog device status read through
7474
sysfs attributes.
7575

76+
config WATCHDOG_HRTIMER_PRETIMEOUT
77+
bool "Enable watchdog hrtimer-based pretimeouts"
78+
help
79+
Enable this if you want to use a hrtimer timer based pretimeout for
80+
watchdogs that do not natively support pretimeout support. Be aware
81+
that because this pretimeout functionality uses hrtimers, it may not
82+
be able to fire before the actual watchdog fires in some situations.
83+
7684
comment "Watchdog Pretimeout Governors"
7785

7886
config WATCHDOG_PRETIMEOUT_GOV
@@ -302,7 +310,7 @@ config XILINX_WATCHDOG
302310
depends on HAS_IOMEM
303311
select WATCHDOG_CORE
304312
help
305-
Watchdog driver for the xps_timebase_wdt ip core.
313+
Watchdog driver for the xps_timebase_wdt IP core.
306314

307315
To compile this driver as a module, choose M here: the
308316
module will be called of_xilinx_wdt.
@@ -404,8 +412,8 @@ config ASM9260_WATCHDOG
404412
select WATCHDOG_CORE
405413
select RESET_CONTROLLER
406414
help
407-
Watchdog timer embedded into Alphascale asm9260 chips. This will reboot your
408-
system when the timeout is reached.
415+
Watchdog timer embedded into Alphascale asm9260 chips. This will
416+
reboot your system when the timeout is reached.
409417

410418
config AT91RM9200_WATCHDOG
411419
tristate "AT91RM9200 watchdog"
@@ -548,8 +556,9 @@ config OMAP_WATCHDOG
548556
depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || COMPILE_TEST
549557
select WATCHDOG_CORE
550558
help
551-
Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430/OMAP4430 watchdog. Say 'Y'
552-
here to enable the OMAP1610/OMAP1710/OMAP2420/OMAP3430/OMAP4430 watchdog timer.
559+
Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430/OMAP4430 watchdog.
560+
Say 'Y' here to enable the
561+
OMAP1610/OMAP1710/OMAP2420/OMAP3430/OMAP4430 watchdog timer.
553562

554563
config PNX4008_WATCHDOG
555564
tristate "LPC32XX Watchdog"
@@ -980,6 +989,18 @@ config VISCONTI_WATCHDOG
980989
Say Y here to include support for the watchdog timer in Toshiba
981990
Visconti SoCs.
982991

992+
config MSC313E_WATCHDOG
993+
tristate "MStar MSC313e watchdog"
994+
depends on ARCH_MSTARV7 || COMPILE_TEST
995+
select WATCHDOG_CORE
996+
help
997+
Say Y here to include support for the Watchdog timer embedded
998+
into MStar MSC313e chips. This will reboot your system when the
999+
timeout is reached.
1000+
1001+
To compile this driver as a module, choose M here: the
1002+
module will be called msc313e_wdt.
1003+
9831004
# X86 (i386 + ia64 + x86_64) Architecture
9841005

9851006
config ACQUIRE_WDT
@@ -1096,13 +1117,16 @@ config SBC_FITPC2_WATCHDOG
10961117
This is the driver for the built-in watchdog timer on the fit-PC2,
10971118
fit-PC2i, CM-iAM single-board computers made by Compulab.
10981119

1099-
It`s possible to enable watchdog timer either from BIOS (F2) or from booted Linux.
1100-
When "Watchdog Timer Value" enabled one can set 31-255 s operational range.
1120+
It's possible to enable the watchdog timer either from BIOS (F2) or
1121+
from booted Linux.
1122+
When the "Watchdog Timer Value" is enabled one can set 31-255 seconds
1123+
operational range.
11011124

1102-
Entering BIOS setup temporary disables watchdog operation regardless to current state,
1103-
so system will not be restarted while user in BIOS setup.
1125+
Entering BIOS setup temporarily disables watchdog operation regardless
1126+
of current state, so system will not be restarted while user is in
1127+
BIOS setup.
11041128

1105-
Once watchdog was enabled the system will be restarted every
1129+
Once the watchdog is enabled the system will be restarted every
11061130
"Watchdog Timer Value" period, so to prevent it user can restart or
11071131
disable the watchdog.
11081132

@@ -1124,11 +1148,12 @@ config IB700_WDT
11241148
depends on X86
11251149
help
11261150
This is the driver for the hardware watchdog on the IB700 Single
1127-
Board Computer produced by TMC Technology (www.tmc-uk.com). This watchdog
1128-
simply watches your kernel to make sure it doesn't freeze, and if
1129-
it does, it reboots your computer after a certain amount of time.
1151+
Board Computer produced by TMC Technology (www.tmc-uk.com). This
1152+
watchdog simply watches your kernel to make sure it doesn't freeze,
1153+
and if it does, it reboots your computer after a certain amount of time.
11301154

1131-
This driver is like the WDT501 driver but for slightly different hardware.
1155+
This driver is like the WDT501 driver but for slightly different
1156+
hardware.
11321157

11331158
To compile this driver as a module, choose M here: the
11341159
module will be called ib700wdt.
@@ -1807,10 +1832,10 @@ config PIC32_DMT
18071832
select WATCHDOG_CORE
18081833
depends on MACH_PIC32 || (MIPS && COMPILE_TEST)
18091834
help
1810-
Watchdog driver for PIC32 instruction fetch counting timer. This specific
1811-
timer is typically be used in misson critical and safety critical
1812-
applications, where any single failure of the software functionality
1813-
and sequencing must be detected.
1835+
Watchdog driver for PIC32 instruction fetch counting timer. This
1836+
specific timer is typically be used in mission critical and safety
1837+
critical applications, where any single failure of the software
1838+
functionality and sequencing must be detected.
18141839

18151840
To compile this driver as a loadable module, choose M here.
18161841
The module will be called pic32-dmt.
@@ -1844,10 +1869,6 @@ config 8xxx_WDT
18441869

18451870
For BookE processors (MPC85xx) use the BOOKE_WDT driver instead.
18461871

1847-
config MV64X60_WDT
1848-
tristate "MV64X60 (Marvell Discovery) Watchdog Timer"
1849-
depends on MV64X60 || COMPILE_TEST
1850-
18511872
config PIKA_WDT
18521873
tristate "PIKA FPGA Watchdog"
18531874
depends on WARP || (PPC64 && COMPILE_TEST)
@@ -2013,8 +2034,8 @@ config PCWATCHDOG
20132034
This card simply watches your kernel to make sure it doesn't freeze,
20142035
and if it does, it reboots your computer after a certain amount of
20152036
time. This driver is like the WDT501 driver but for different
2016-
hardware. Please read <file:Documentation/watchdog/pcwd-watchdog.rst>. The PC
2017-
watchdog cards can be ordered from <http://www.berkprod.com/>.
2037+
hardware. Please read <file:Documentation/watchdog/pcwd-watchdog.rst>.
2038+
The PC watchdog cards can be ordered from <http://www.berkprod.com/>.
20182039

20192040
To compile this driver as a module, choose M here: the
20202041
module will be called pcwd.
@@ -2115,7 +2136,7 @@ config KEEMBAY_WATCHDOG
21152136
This option enable support for an In-secure watchdog timer driver for
21162137
Intel Keem Bay SoC. This WDT has a 32 bit timer and decrements in every
21172138
count unit. An interrupt will be triggered, when the count crosses
2118-
the thershold configured in the register.
2139+
the threshold configured in the register.
21192140

21202141
To compile this driver as a module, choose M here: the
21212142
module will be called keembay_wdt.

drivers/watchdog/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ obj-$(CONFIG_WATCHDOG_CORE) += watchdog.o
99
watchdog-objs += watchdog_core.o watchdog_dev.o
1010

1111
watchdog-$(CONFIG_WATCHDOG_PRETIMEOUT_GOV) += watchdog_pretimeout.o
12+
watchdog-$(CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT) += watchdog_hrtimer_pretimeout.o
1213

1314
obj-$(CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP) += pretimeout_noop.o
1415
obj-$(CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC) += pretimeout_panic.o
@@ -92,6 +93,7 @@ obj-$(CONFIG_SPRD_WATCHDOG) += sprd_wdt.o
9293
obj-$(CONFIG_PM8916_WATCHDOG) += pm8916_wdt.o
9394
obj-$(CONFIG_ARM_SMC_WATCHDOG) += arm_smc_wdt.o
9495
obj-$(CONFIG_VISCONTI_WATCHDOG) += visconti_wdt.o
96+
obj-$(CONFIG_MSC313E_WATCHDOG) += msc313e_wdt.o
9597

9698
# X86 (i386 + ia64 + x86_64) Architecture
9799
obj-$(CONFIG_ACQUIRE_WDT) += acquirewdt.o
@@ -175,7 +177,6 @@ obj-$(CONFIG_PIC32_DMT) += pic32-dmt.o
175177
# POWERPC Architecture
176178
obj-$(CONFIG_GEF_WDT) += gef_wdt.o
177179
obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o
178-
obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o
179180
obj-$(CONFIG_PIKA_WDT) += pika_wdt.o
180181
obj-$(CONFIG_BOOKE_WDT) += booke_wdt.o
181182
obj-$(CONFIG_MEN_A21_WDT) += mena21_wdt.o

0 commit comments

Comments
 (0)