Sergio Paracuellos
ff75e4eb71
dt-bindings: watchdog: mt7621-wdt: add phandle to access system controller registers
...
MT7621 SoC provides a system controller node for accessing to some registers.
Add a phandle in this node to avoid using MIPS related arch operations and
includes in watchdog driver code.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20230214103936.1061078-2-sergio.paracuellos@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-03-02 06:51:17 +01:00
George Cherian
000987a38b
watchdog: sbsa_wdog: Make sure the timeout programming is within the limits
...
Make sure to honour the max_hw_heartbeat_ms while programming the timeout
value to WOR. Clamp the timeout passed to sbsa_gwdt_set_timeout() to
make sure the programmed value is within the permissible range.
Fixes: abd3ac7902 ("watchdog: sbsa: Support architecture version 1")
Signed-off-by: George Cherian <george.cherian@marvell.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20230209021117.1512097-1-george.cherian@marvell.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:41 +01:00
Bartosz Golaszewski
c76675f4ef
dt-bindings: watchdog: qcom-wdt: add qcom,apss-wdt-sa8775p compatible
...
Add a compatible for the sa8775p platform's KPSS watchdog.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20230201152038.203387-4-brgl@bgdev.pl
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:40 +01:00
Thomas Weißschuh
ad8bc199b2
watchdog: report options in sysfs
...
This synchronizes the information reported by ioctl and sysfs.
The mismatch is confusing because "wdctl" from util-linux uses the ioctl
when used with root privileges and sysfs without.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221216-watchdog-sysfs-v2-2-6189311103a9@weissschuh.net
[groeck: Fixed continuation line alignment]
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:40 +01:00
Thomas Weißschuh
b852e7a4a9
watchdog: report fw_version in sysfs
...
This synchronizes the information reported by ioctl and sysfs.
The mismatch is confusing because "wdctl" from util-linux uses the ioctl
when used with root privileges and sysfs without.
The file is called "fw_version" instead of "firmware_version" as
"firmware_version" is already used as custom attribute by single drivers.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221216-watchdog-sysfs-v2-1-6189311103a9@weissschuh.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:40 +01:00
Andrej Picej
12878a9fff
dt-bindings: watchdog: fsl-imx: document suspend in wait mode
...
Property "fsl,suspend-in-wait" suspends watchdog in "WAIT" mode which
corresponds to Linux's Suspend-to-Idle S0 mode. If this property is not
set and the device is put into Suspend-to-Idle mode, the watchdog
triggers a reset after 128 seconds.
Signed-off-by: Andrej Picej <andrej.picej@norik.com >
Reviewed-by: Fabio Estevam <festevam@gmail.com >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221104070358.426657-3-andrej.picej@norik.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:39 +01:00
Andrej Picej
e42c73f1ef
watchdog: imx2_wdg: suspend watchdog in WAIT mode
...
Putting device into the "Suspend-To-Idle" mode causes watchdog to
trigger and resets the board after set watchdog timeout period elapses.
Introduce new device-tree property "fsl,suspend-in-wait" which suspends
watchdog in WAIT mode. This is done by setting WDW bit in WCR
(Watchdog Control Register). Watchdog operation is restored after
exiting WAIT mode as expected. WAIT mode corresponds with Linux's
"Suspend-To-Idle".
Signed-off-by: Andrej Picej <andrej.picej@norik.com >
Reviewed-by: Fabio Estevam <festevam@gmail.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221104070358.426657-2-andrej.picej@norik.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:39 +01:00
Li Hua
7d06c07c67
watchdog: pcwd_usb: Fix attempting to access uninitialized memory
...
The stack variable msb and lsb may be used uninitialized in function
usb_pcwd_get_temperature and usb_pcwd_get_timeleft when usb card no response.
The build waring is:
drivers/watchdog/pcwd_usb.c:336:22: error: ‘lsb’ is used uninitialized in this function [-Werror=uninitialized]
*temperature = (lsb * 9 / 5) + 32;
~~~~^~~
drivers/watchdog/pcwd_usb.c:328:21: note: ‘lsb’ was declared here
unsigned char msb, lsb;
^~~
cc1: all warnings being treated as errors
scripts/Makefile.build:250: recipe for target 'drivers/watchdog/pcwd_usb.o' failed
make[3]: *** [drivers/watchdog/pcwd_usb.o] Error 1
Fixes: b7e04f8c61 ("mv watchdog tree under drivers")
Signed-off-by: Li Hua <hucool.lihua@huawei.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221116020706.70847-1-hucool.lihua@huawei.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:39 +01:00
Krzysztof Kozlowski
7333185348
dt-bindings: watchdog: qcom-wdt: merge MSM timer
...
Merge Qualcomm MSM timer bindings into watchdog, because the timer
compatibles are already included here and the hardware is quite similar.
While converting the MSM timer bindings, adjust clock-frequency
property to take only one frequency, instead of two, because:
1. DT schema does not allow to frequencies,
2. The Linux timer driver reads only first frequency.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20221212163532.142533-6-krzysztof.kozlowski@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:38 +01:00
Krzysztof Kozlowski
7c631cdff3
dt-bindings: watchdog: qcom-wdt: allow interrupts
...
Both of type of watchdogs described in the binding (the KPSS watchdog
and APSS WDT timer) have interrupts. Allow interrupts and describe them
for KPSS watchdog to fix warnings like:
watchdog@17c10000: Unevaluated properties are not allowed ('interrupts' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Rob Herring <robh@kernel.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221212163532.142533-5-krzysztof.kozlowski@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:38 +01:00
Krzysztof Kozlowski
2bb28d1798
dt-bindings: watchdog: qcom-wdt: add qcom,kpss-wdt-mdm9615
...
Document new MDM9615 qcom,kpss-wdt-mdm9615 watchdog/timer compatible.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Acked-by: Rob Herring <robh@kernel.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221212163532.142533-4-krzysztof.kozlowski@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:37 +01:00
Krzysztof Kozlowski
b8c8f8649b
dt-bindings: watchdog: qcom-wdt: fix list of MSM timer compatibles
...
The MSM timer ("qcom,msm-timer") is a bit different timer and watchdog
device than KPSS watchdog. It has its own generic and specific
compatibles, so fix the list to reflect this. Adjust the example to
show the newer KPSS watchdog.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Acked-by: Rob Herring <robh@kernel.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221212163532.142533-3-krzysztof.kozlowski@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:37 +01:00
Krzysztof Kozlowski
f8e6b3d9e3
dt-bindings: watchdog: qcom-wdt: do not allow fallback alone
...
The compatible "qcom,kpss-wdt" is too generic and should not be used
alone. Mark it as deprecated when not prepended by specific compatible.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Acked-by: Rob Herring <robh@kernel.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221212163532.142533-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:36 +01:00
Krzysztof Kozlowski
8e103beca6
dt-bindings: watchdog: qcom-wdt: require fallback for IPQ4019
...
The device specific compatibles ("qcom,kpss-wdt-ipq4019") should be
follwed by fallback "qcom,kpss-wdt", which is actually used by Linux
driver for binding.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Acked-by: Rob Herring <robh@kernel.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221212163532.142533-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:36 +01:00
Chen Jun
13721a2ac6
watchdog: Fix kmemleak in watchdog_cdev_register
...
kmemleak reports memory leaks in watchdog_dev_register, as follows:
unreferenced object 0xffff888116233000 (size 2048):
comm ""modprobe"", pid 28147, jiffies 4353426116 (age 61.741s)
hex dump (first 32 bytes):
80 fa b9 05 81 88 ff ff 08 30 23 16 81 88 ff ff .........0#.....
08 30 23 16 81 88 ff ff 00 00 00 00 00 00 00 00 .0#.............
backtrace:
[<000000007f001ffd>] __kmem_cache_alloc_node+0x157/0x220
[<000000006a389304>] kmalloc_trace+0x21/0x110
[<000000008d640eea>] watchdog_dev_register+0x4e/0x780 [watchdog]
[<0000000053c9f248>] __watchdog_register_device+0x4f0/0x680 [watchdog]
[<00000000b2979824>] watchdog_register_device+0xd2/0x110 [watchdog]
[<000000001f730178>] 0xffffffffc10880ae
[<000000007a1a8bcc>] do_one_initcall+0xcb/0x4d0
[<00000000b98be325>] do_init_module+0x1ca/0x5f0
[<0000000046d08e7c>] load_module+0x6133/0x70f0
...
unreferenced object 0xffff888105b9fa80 (size 16):
comm ""modprobe"", pid 28147, jiffies 4353426116 (age 61.741s)
hex dump (first 16 bytes):
77 61 74 63 68 64 6f 67 31 00 b9 05 81 88 ff ff watchdog1.......
backtrace:
[<000000007f001ffd>] __kmem_cache_alloc_node+0x157/0x220
[<00000000486ab89b>] __kmalloc_node_track_caller+0x44/0x1b0
[<000000005a39aab0>] kvasprintf+0xb5/0x140
[<0000000024806f85>] kvasprintf_const+0x55/0x180
[<000000009276cb7f>] kobject_set_name_vargs+0x56/0x150
[<00000000a92e820b>] dev_set_name+0xab/0xe0
[<00000000cec812c6>] watchdog_dev_register+0x285/0x780 [watchdog]
[<0000000053c9f248>] __watchdog_register_device+0x4f0/0x680 [watchdog]
[<00000000b2979824>] watchdog_register_device+0xd2/0x110 [watchdog]
[<000000001f730178>] 0xffffffffc10880ae
[<000000007a1a8bcc>] do_one_initcall+0xcb/0x4d0
[<00000000b98be325>] do_init_module+0x1ca/0x5f0
[<0000000046d08e7c>] load_module+0x6133/0x70f0
...
The reason is that put_device is not be called if cdev_device_add fails
and wdd->id != 0.
watchdog_cdev_register
wd_data = kzalloc [1]
err = dev_set_name [2]
..
err = cdev_device_add
if (err) {
if (wdd->id == 0) { // wdd->id != 0
..
}
return err; // [1],[2] would be leaked
To fix it, call put_device in all wdd->id cases.
Fixes: 72139dfa24 ("watchdog: Fix the race between the release of watchdog_core_data and cdev")
Signed-off-by: Chen Jun <chenjun102@huawei.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221116012714.102066-1-chenjun102@huawei.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:36 +01:00
Christophe JAILLET
a243cb9357
watchdog: Include <linux/kstrtox.h> when appropriate
...
The kstrto<something>() functions have been moved from kernel.h to
kstrtox.h.
So, in order to eventually remove <linux/kernel.h> from <linux/watchdog.h>,
include the latter directly in the appropriate files.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/08fd5512e569558231247515c04c8596a1d11004.1667646547.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:35 +01:00
ruanjinjie
07bec0e09c
watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in error path
...
free_irq() is missing in case of error in at91_wdt_init(), use
devm_request_irq to fix that.
Fixes: 5161b31dc3 ("watchdog: at91sam9_wdt: better watchdog support")
Signed-off-by: ruanjinjie <ruanjinjie@huawei.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221116094950.3141943-1-ruanjinjie@huawei.com
[groeck: Adjust multi-line alignment]
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:35 +01:00
Fabrizio Castro
f769f97917
watchdog: rzg2l_wdt: Handle TYPE-B reset for RZ/V2M
...
As per section 48.4 of the HW User Manual, IPs in the RZ/V2M
SoC need either a TYPE-A reset sequence or a TYPE-B reset
sequence. More specifically, the watchdog IP needs a TYPE-B
reset sequence.
If the proper reset sequence isn't implemented, then resetting
IPs may lead to undesired behaviour. In the restart callback of
the watchdog driver the reset has basically no effect on the
desired funcionality, as the register writes following the reset
happen before the IP manages to come out of reset.
Implement the TYPE-B reset sequence in the watchdog driver to
address the issues with the restart callback on RZ/V2M.
Fixes: ec122fd94e ("watchdog: rzg2l_wdt: Add rzv2m support")
Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/r/20221117114907.138583-3-fabrizio.castro.jz@renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:34 +01:00
Lad Prabhakar
6ba6f0f591
watchdog: rzg2l_wdt: Issue a reset before we put the PM clocks
...
On RZ/Five SoC it was observed that setting timeout (to say 1 sec) wouldn't
reset the system.
The procedure described in the HW manual (Procedure for Activating Modules)
for activating the target module states we need to start supply of the
clock module before applying the reset signal. This patch makes sure we
follow the same procedure to clear the registers of the WDT module, fixing
the issues seen on RZ/Five SoC.
While at it re-used rzg2l_wdt_stop() in rzg2l_wdt_set_timeout() as it has
the same function calls.
Fixes: 4055ee8100 ("watchdog: rzg2l_wdt: Add set_timeout callback")
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com >
Link: https://lore.kernel.org/r/20221117114907.138583-2-fabrizio.castro.jz@renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:34 +01:00
Konrad Dybcio
e9651838fe
dt-bindings: watchdog: Add MSM8994 watchdog timer
...
Document the MSM8994 watchdog timer which is already used in DT.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221117105845.13644-2-konrad.dybcio@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:33 +01:00
Lad Prabhakar
d237c8d06d
dt-bindings: watchdog: renesas,wdt: Document RZ/Five SoC
...
The WDT block on the RZ/Five SoC is identical to one found on the RZ/G2UL
SoC. "renesas,r9a07g043-wdt" compatible string will be used on the
RZ/Five SoC so to make this clear, update the comment to include RZ/Five
SoC.
No driver changes are required as generic compatible string
"renesas,rzg2l-wdt" will be used as a fallback on RZ/Five SoC.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/r/20221118133829.12855-1-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:33 +01:00
Neil Armstrong
69197b43d9
dt-bindings: watchdog: convert meson-wdt.txt to dt-schema
...
Convert the Amlogic Meson6 SoCs Watchdog timer bindings to dt-schema.
Take in account the used interrupts property.
The "amlogic,meson8-wdt" representation has been simplified
since there's no users of this compatible used along the
"amlogic,meson6-wdt".
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com >
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221117-b4-amlogic-bindings-convert-v3-3-e28dd31e3bed@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:33 +01:00
Robert Marko
71708daa6f
dt-bindings: watchdog: Convert GPIO binding to json-schema
...
Convert the DT binding for GPIO WDT to JSON schema.
Cc: luka.perkov@sartura.hr
Signed-off-by: Robert Marko <robert.marko@sartura.hr >
Reviewed-by: Rob Herring <robh@kernel.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221125112904.48652-1-robert.marko@sartura.hr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:32 +01:00
Cosmin Tanislav
7bfd2747d3
watchdog: dw_wdt: stop on reboot
...
HW running watchdogs are just watchdogs that are enabled before the
Linux driver is probed, usually by the bootloader (eg. U-Boot).
When the system is shutting down, the mechanism for keeping a HW running
watchdog pinged is also stopped, but the watchdog itself is not stopped,
causing a reset, and preventing the system from being shut down.
Opt into stopping watchdogs on reboot.
Signed-off-by: Cosmin Tanislav <cosmin.tanislav@analog.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221118150809.102505-1-cosmin.tanislav@analog.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:32 +01:00
Uwe Kleine-König
0d9e42e3c8
watchdog: ziirave_wdt: Convert to i2c's .probe_new()
...
The probe function doesn't make use of the i2c_device_id * parameter so it
can be trivially converted.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221118224540.619276-597-uwe@kleine-koenig.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:31 +01:00
Thomas Weißschuh
4ea6b986df
watchdog: iTCO_wdt: Report firmware_version
...
Synchronize the reported information in dmesg and the watchdog APIs.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221125221240.2818-1-linux@weissschuh.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:31 +01:00
Krzysztof Kozlowski
e8b1cb537b
dt-bindings: watchdog: allow "timer" as node name
...
On some SoCs the watchdog device is actually mixed with timer, e.g.
the qcom,msm-timer on older Qualcomm SoCs where this is actually one
hardware block responsible for both system timer and watchdog.
Allow calling such device nodes as "timer".
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Rob Herring <robh@kernel.org >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221212174933.208900-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:30 +01:00
Primoz Fiser
f8ee39b44b
watchdog: da9062: da9063: use unlocked xfer function in restart
...
Machine resets via da9062/da9063 PMICs are challenging since one needs
to use special i2c atomic transfers due to the fact interrupts are
disabled in such late system stages. This is the reason both PMICs don't
use regmap and have instead opted for i2c_smbus_write_byte_data() in
restart handlers.
However extensive testing revealed that even using atomic safe function
is not enough and occasional resets fail with error message "Failed to
shutdown (err = -11)". This is due to the fact that function
i2c_smbus_write_byte_data() in turn calls __i2c_lock_bus_helper()
which might fail with -EAGAIN when bus lock is already taken and cannot
be released anymore.
Thus replace i2c_smbus_write_byte_data() with unlocked flavor of
i2c_smbus_xfer() function to avoid above dead-lock scenario. At this
system stage we don't care about proper locking anymore and only want
proper machine reset to be carried out.
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221216083645.2574077-1-primoz.fiser@norik.com
[groeck: Fixed continuation line alignment]
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-18 15:11:30 +01:00
Thomas Weißschuh
00bdbc9a86
watchdog: wdat_wdt: Avoid unimplemented get_timeleft
...
As per the specification the action QUERY_COUNTDOWN_PERIOD is optional.
If the action is not implemented by the physical device the driver would
always report "0" from get_timeleft().
Avoid confusing userspace by only providing get_timeleft() when
implemented by the hardware.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20221221-wdat_wdt-timeleft-v1-1-8e8a314c36cc@weissschuh.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:53 +01:00
Christophe JAILLET
98b7a16130
watchdog: apple: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Reviewed-by: Sven Peter <sven@svenpeter.dev >
Link: https://lore.kernel.org/r/6f312af6160d1e10b616c9adbd1fd8f822db964d.1672473415.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:53 +01:00
Christophe JAILLET
8c5210dbdf
watchdog: visconti: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/13e8cdf17556da111d1d98a8fe0b1dc1c78007e2.1672417940.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:53 +01:00
Christophe JAILLET
a42912ac40
watchdog: rzn1: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/b1f8b5453791035ad534bd5ed36b49798ff4d9b2.1672418166.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:52 +01:00
Christophe JAILLET
1a8d192bcc
watchdog: qcom: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/7c2d5f3815949faf6d3a0237a7b5f272f00a7ae9.1672418969.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:52 +01:00
Christophe JAILLET
cd9e5d04dc
watchdog: armada_37xx: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/ccb096879a1309b9918ae956d6bdb9668c69bcda.1672473617.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:52 +01:00
Christophe JAILLET
be80ae3d79
watchdog: bcm7038: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Acked-by: Florian Fainelli <f.fainelli@gmail.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/9c055911e9f557b7239000c8e6cfa0cc393a19e9.1672474203.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:51 +01:00
Christophe JAILLET
6cc0768ba6
watchdog: rtd119x: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/14b521b821279bc5111dc80b55d0936c5767c737.1672418470.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:51 +01:00
Christophe JAILLET
f3a0dd6489
watchdog: imx7ulp: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/f23a2cf84958adca255b82fd688e7cee0461760f.1672484376.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:50 +01:00
Christophe JAILLET
0a03207205
watchdog: davinci: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/6a4cf8e8b9d8f555c77395ba2ecadc205553774d.1672483046.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:50 +01:00
Christophe JAILLET
2cf46c636f
watchdog: meson_gxbb: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com >
Link: https://lore.kernel.org/r/6c5948373d309408095c1a098b7b4c491c5265f7.1672490071.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:49 +01:00
Christophe JAILLET
616a2fe3cd
watchdog: cadence: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/615c6c3c46c3ee8e3136725af0ab0b51e1298091.1672474336.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:49 +01:00
Christophe JAILLET
c4b8e92bc1
watchdog: imgpdc: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/1f8d1ce1e6a63c507a291aea624b1337326cc563.1672483996.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:48 +01:00
Christophe JAILLET
4de0224c6f
watchdog: of_xilinx_wdt: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Acked-by: Michal Simek <michal.simek@amd.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/2b041dc8230a4ed255051bb2d323da8a51a8d0be.1672491445.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:48 +01:00
Christophe JAILLET
5eb3fb95ea
watchdog: lpc18xx: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/d4c675190d3ddfbba5c354edb4274757f9117304.1672489554.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:48 +01:00
Christophe JAILLET
e0912ea871
watchdog: pic32-dmt: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/f9a4dcfc6d31bd9c1417e2d97a40cc2c1dbc6f30.1672496405.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:47 +01:00
Christophe JAILLET
7f7f8ad072
watchdog: pic32-wdt: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/4335b4201b535ebc749a98bad0b99e3cb5317c39.1672496563.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:47 +01:00
Christophe JAILLET
a8a9b98057
watchdog: pnx4008: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/61f4e39db4c88408ee0149580e9aa925b784bc93.1672496714.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:46 +01:00
Christophe JAILLET
3c22939eb3
watchdog: realtek_otto: Use devm_clk_get_enabled() helper
...
The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the need of a dedicated function used
with devm_add_action_or_reset().
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Acked-by: Sander Vanheule <sander@svanheule.net >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/5e4255782fbb43d1b4b5cd03bd12d7a184497134.1672498920.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:46 +01:00
Allen-KH Cheng
a224764f97
watchdog: mtk_wdt: Add reset_by_toprgu support
...
In some cases, the MediaTek watchdog requires the TOPRGU to reset
timer after system resets.
Provide a reset_by_toprgu parameter for configuration.
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20230117014023.2993-3-allen-kh.cheng@mediatek.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:45 +01:00
Allen-KH Cheng
9b30eac1b3
dt-bindings: watchdog: mtk-wdt: Add reset-by-toprgu support
...
In some applications, the mtk-wdt requires the TOPRGU (Top Reset
Generation Unit) to reset timer after system resets. Add optional
mediatek,reset-by-toprgu property to enable it.
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com >
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com >
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20230117014023.2993-2-allen-kh.cheng@mediatek.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org >
2023-02-12 15:32:45 +01:00
Linus Torvalds
d2d11f342b
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
...
Pull ELF fix from Al Viro:
"One of the many equivalent build warning fixes for !CONFIG_ELF_CORE
configs. Geert's is the earliest one I've been able to find"
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
coredump: Move dump_emit_page() to kill unused warning
2023-02-05 17:17:10 -08:00