Skip to content

Commit 4586039

Browse files
committed
Merge tag 'linux-watchdog-5.9-rc1' of git://www.linux-watchdog.org/linux-watchdog
Pull watchdog updates from Wim Van Sebroeck: - f71808e_wdt imporvements - dw_wdt improvements - mlx-wdt: support new watchdog type with longer timeout period - fallthrough pseudo-keyword replacements - overall small fixes and improvements * tag 'linux-watchdog-5.9-rc1' of git://www.linux-watchdog.org/linux-watchdog: (35 commits) watchdog: rti-wdt: balance pm runtime enable calls watchdog: rti-wdt: attach to running watchdog during probe watchdog: add support for adjusting last known HW keepalive time watchdog: use __watchdog_ping in startup watchdog: softdog: Add options 'soft_reboot_cmd' and 'soft_active_on_boot' watchdog: pcwd_usb: remove needless check before usb_free_coherent() watchdog: Replace HTTP links with HTTPS ones dt-bindings: watchdog: renesas,wdt: Document r8a774e1 support watchdog: initialize device before misc_register watchdog: booke_wdt: Add common nowayout parameter driver watchdog: scx200_wdt: Use fallthrough pseudo-keyword watchdog: Use fallthrough pseudo-keyword watchdog: f71808e_wdt: do stricter parameter validation watchdog: f71808e_wdt: clear watchdog timeout occurred flag watchdog: f71808e_wdt: remove use of wrong watchdog_info option watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in watchdog_info.options docs: watchdog: codify ident.options as superset of possible status flags dt-bindings: watchdog: Add compatible for QCS404, SC7180, SDM845, SM8150 dt-bindings: watchdog: Convert QCOM watchdog timer bindings to YAML watchdog: dw_wdt: Add DebugFS files ...
2 parents 407bc8d + d5b29c2 commit 4586039

Some content is hidden

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

62 files changed

+1032
-210
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ Optional properties:
1111
See clock-bindings.txt
1212

1313
Documentation:
14-
Davinci DM646x - http://www.ti.com/lit/ug/spruer5b/spruer5b.pdf
15-
Keystone - http://www.ti.com/lit/ug/sprugv5a/sprugv5a.pdf
14+
Davinci DM646x - https://www.ti.com/lit/ug/spruer5b/spruer5b.pdf
15+
Keystone - https://www.ti.com/lit/ug/sprugv5a/sprugv5a.pdf
1616

1717
Examples:
1818

Documentation/devicetree/bindings/watchdog/dw_wdt.txt

Lines changed: 0 additions & 24 deletions
This file was deleted.

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

Lines changed: 0 additions & 28 deletions
This file was deleted.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/watchdog/qcom-wdt.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Krait Processor Sub-system (KPSS) Watchdog timer
8+
9+
maintainers:
10+
- Sai Prakash Ranjan <[email protected]>
11+
12+
allOf:
13+
- $ref: watchdog.yaml#
14+
15+
properties:
16+
compatible:
17+
enum:
18+
- qcom,apss-wdt-qcs404
19+
- qcom,apss-wdt-sc7180
20+
- qcom,apss-wdt-sdm845
21+
- qcom,apss-wdt-sm8150
22+
- qcom,kpss-timer
23+
- qcom,kpss-wdt
24+
- qcom,kpss-wdt-apq8064
25+
- qcom,kpss-wdt-ipq4019
26+
- qcom,kpss-wdt-ipq8064
27+
- qcom,kpss-wdt-msm8960
28+
- qcom,scss-timer
29+
30+
reg:
31+
maxItems: 1
32+
33+
clocks:
34+
maxItems: 1
35+
36+
required:
37+
- compatible
38+
- reg
39+
- clocks
40+
41+
examples:
42+
- |
43+
watchdog@208a038 {
44+
compatible = "qcom,kpss-wdt-ipq8064";
45+
reg = <0x0208a038 0x40>;
46+
clocks = <&sleep_clk>;
47+
timeout-sec = <10>;
48+
};

Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ properties:
4141
- renesas,r8a774a1-wdt # RZ/G2M
4242
- renesas,r8a774b1-wdt # RZ/G2N
4343
- renesas,r8a774c0-wdt # RZ/G2E
44+
- renesas,r8a774e1-wdt # RZ/G2H
4445
- renesas,r8a7795-wdt # R-Car H3
4546
- renesas,r8a7796-wdt # R-Car M3-W
4647
- renesas,r8a77961-wdt # R-Car M3-W+
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/watchdog/snps,dw-wdt.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Synopsys Designware Watchdog Timer
8+
9+
allOf:
10+
- $ref: "watchdog.yaml#"
11+
12+
maintainers:
13+
- Jamie Iles <[email protected]>
14+
15+
properties:
16+
compatible:
17+
const: snps,dw-wdt
18+
19+
reg:
20+
maxItems: 1
21+
22+
interrupts:
23+
description: DW Watchdog pre-timeout interrupt
24+
maxItems: 1
25+
26+
clocks:
27+
minItems: 1
28+
items:
29+
- description: Watchdog timer reference clock
30+
- description: APB3 interface clock
31+
32+
clock-names:
33+
minItems: 1
34+
items:
35+
- const: tclk
36+
- const: pclk
37+
38+
resets:
39+
description: Phandle to the DW Watchdog reset lane
40+
maxItems: 1
41+
42+
snps,watchdog-tops:
43+
$ref: /schemas/types.yaml#/definitions/uint32-array
44+
description: |
45+
DW APB Watchdog custom timer intervals - Timeout Period ranges (TOPs).
46+
Each TOP is a number loaded into the watchdog counter at the moment of
47+
the timer restart. The counter decrementing happens each tick of the
48+
reference clock. Therefore the TOPs array is equivalent to an array of
49+
the timer expiration intervals supported by the DW APB Watchdog. Note
50+
DW APB Watchdog IP-core might be synthesized with fixed TOP values,
51+
in which case this property is unnecessary with default TOPs utilized.
52+
default: [0x0001000 0x0002000 0x0004000 0x0008000
53+
0x0010000 0x0020000 0x0040000 0x0080000
54+
0x0100000 0x0200000 0x0400000 0x0800000
55+
0x1000000 0x2000000 0x4000000 0x8000000]
56+
minItems: 16
57+
maxItems: 16
58+
59+
unevaluatedProperties: false
60+
61+
required:
62+
- compatible
63+
- reg
64+
- clocks
65+
66+
examples:
67+
- |
68+
watchdog@ffd02000 {
69+
compatible = "snps,dw-wdt";
70+
reg = <0xffd02000 0x1000>;
71+
interrupts = <0 171 4>;
72+
clocks = <&per_base_clk>;
73+
resets = <&wdt_rst>;
74+
};
75+
76+
- |
77+
watchdog@ffd02000 {
78+
compatible = "snps,dw-wdt";
79+
reg = <0xffd02000 0x1000>;
80+
interrupts = <0 171 4>;
81+
clocks = <&per_base_clk>;
82+
clock-names = "tclk";
83+
snps,watchdog-tops = <0x000000FF 0x000001FF 0x000003FF
84+
0x000007FF 0x0000FFFF 0x0001FFFF
85+
0x0003FFFF 0x0007FFFF 0x000FFFFF
86+
0x001FFFFF 0x003FFFFF 0x007FFFFF
87+
0x00FFFFFF 0x01FFFFFF 0x03FFFFFF
88+
0x07FFFFFF>;
89+
};
90+
...

Documentation/watchdog/mlx-wdt.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,19 @@ Type 2:
2424
Maximum timeout is 255 sec.
2525
Get time-left is supported.
2626

27+
Type 3:
28+
Same as Type 2 with extended maximum timeout period.
29+
Maximum timeout is 65535 sec.
30+
2731
Type 1 HW watchdog implementation exist in old systems and
2832
all new systems have type 2 HW watchdog.
2933
Two types of HW implementation have also different register map.
3034

35+
Type 3 HW watchdog implementation can exist on all Mellanox systems
36+
with new programmer logic device.
37+
It's differentiated by WD capability bit.
38+
Old systems still have only one main watchdog.
39+
3140
Mellanox system can have 2 watchdogs: main and auxiliary.
3241
Main and auxiliary watchdog devices can be enabled together
3342
on the same system.
@@ -54,3 +63,4 @@ The driver checks during initialization if the previous system reset
5463
was done by the watchdog. If yes, it makes a notification about this event.
5564

5665
Access to HW registers is performed through a generic regmap interface.
66+
Programmable logic device registers have little-endian order.

Documentation/watchdog/watchdog-api.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ the fields returned in the ident struct are:
168168

169169
the options field can have the following bits set, and describes what
170170
kind of information that the GET_STATUS and GET_BOOT_STATUS ioctls can
171-
return. [FIXME -- Is this correct?]
171+
return.
172172

173173
================ =========================
174174
WDIOF_OVERHEAT Reset due to CPU overheat

Documentation/watchdog/watchdog-kernel-api.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,3 +336,15 @@ an action is taken by a preconfigured pretimeout governor preassigned to
336336
the watchdog device. If watchdog pretimeout governor framework is not
337337
enabled, watchdog_notify_pretimeout() prints a notification message to
338338
the kernel log buffer.
339+
340+
To set the last known HW keepalive time for a watchdog, the following function
341+
should be used::
342+
343+
int watchdog_set_last_hw_keepalive(struct watchdog_device *wdd,
344+
unsigned int last_ping_ms)
345+
346+
This function must be called immediately after watchdog registration. It
347+
sets the last known hardware heartbeat to have happened last_ping_ms before
348+
current time. Calling this is only needed if the watchdog is already running
349+
when probe is called, and the watchdog can only be pinged after the
350+
min_hw_heartbeat_ms time has passed from the last ping.

MAINTAINERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1496,7 +1496,7 @@ ARM SMC WATCHDOG DRIVER
14961496
M: Julius Werner <[email protected]>
14971497
R: Evan Benn <[email protected]>
14981498
S: Maintained
1499-
F: devicetree/bindings/watchdog/arm-smc-wdt.yaml
1499+
F: Documentation/devicetree/bindings/watchdog/arm-smc-wdt.yaml
15001500
F: drivers/watchdog/arm_smc_wdt.c
15011501

15021502
ARM SMMU DRIVERS

0 commit comments

Comments
 (0)