Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/airoha,en7581-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Airoha EN7581 Watchdog Timer
maintainers:
- Christian Marangi <ansuelsmth@gmail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- items:
- const: airoha,an7583-wdt
- const: airoha,en7581-wdt
- const: airoha,en7581-wdt
reg:
maxItems: 1
clocks:
description: BUS clock (timer ticks at half the BUS clock)
maxItems: 1
clock-names:
const: bus
required:
- compatible
- reg
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/en7523-clk.h>
watchdog@1fbf0100 {
compatible = "airoha,en7581-wdt";
reg = <0x1fbf0100 0x3c>;
clocks = <&scuclk EN7523_CLK_BUS>;
clock-names = "bus";
};
@@ -0,0 +1,98 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/allwinner,sun4i-a10-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A10 Watchdog
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- const: allwinner,sun4i-a10-wdt
- const: allwinner,sun6i-a31-wdt
- items:
- enum:
- allwinner,sun50i-a64-wdt
- allwinner,sun50i-a100-wdt
- allwinner,sun50i-h6-wdt
- allwinner,sun50i-h616-wdt
- allwinner,sun50i-r329-wdt
- allwinner,sun50i-r329-wdt-reset
- allwinner,suniv-f1c100s-wdt
- const: allwinner,sun6i-a31-wdt
- const: allwinner,sun20i-d1-wdt
- items:
- const: allwinner,sun20i-d1-wdt-reset
- const: allwinner,sun20i-d1-wdt
- const: allwinner,sun55i-a523-wdt
reg:
maxItems: 1
clocks:
minItems: 1
items:
- description: 32 KHz input clock
- description: secondary clock source
interrupts:
maxItems: 1
required:
- compatible
- reg
- clocks
- interrupts
if:
properties:
compatible:
contains:
enum:
- allwinner,sun20i-d1-wdt
- allwinner,sun20i-d1-wdt-reset
- allwinner,sun50i-r329-wdt
- allwinner,sun50i-r329-wdt-reset
- allwinner,sun55i-a523-wdt
then:
properties:
clocks:
items:
- description: High-frequency oscillator input, divided internally
- description: Low-frequency oscillator input
clock-names:
items:
- const: hosc
- const: losc
required:
- clock-names
else:
properties:
clocks:
maxItems: 1
unevaluatedProperties: false
examples:
- |
wdt: watchdog@1c20c90 {
compatible = "allwinner,sun4i-a10-wdt";
reg = <0x01c20c90 0x10>;
interrupts = <24>;
clocks = <&osc24M>;
timeout-sec = <10>;
};
...
@@ -0,0 +1,70 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/alphascale,asm9260-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Alphascale asm9260 Watchdog timer
maintainers:
- Oleksij Rempel <linux@rempel-privat.de>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: alphascale,asm9260-wdt
reg:
maxItems: 1
clocks:
items:
- description: source clock, used for tick counter
- description: ahb gate
clock-names:
items:
- const: mod
- const: ahb
interrupts:
maxItems: 1
resets:
maxItems: 1
reset-names:
items:
- const: wdt_rst
alphascale,mode:
description: |
Specifies the reset mode of operation. If set to sw, then reset is handled
via interrupt request, if set to debug, then it does nothing and logs.
$ref: /schemas/types.yaml#/definitions/string
enum: [hw, sw, debug]
default: hw
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/alphascale,asm9260.h>
watchdog0: watchdog@80048000 {
compatible = "alphascale,asm9260-wdt";
reg = <0x80048000 0x10>;
clocks = <&acc CLKID_SYS_WDT>, <&acc CLKID_AHB_WDT>;
clock-names = "mod", "ahb";
interrupts = <55>;
timeout-sec = <30>;
alphascale,mode = "hw";
};
@@ -0,0 +1,50 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 BayLibre, SAS
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/amlogic,meson-gxbb-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Meson GXBB SoCs Watchdog timer
maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- enum:
- amlogic,meson-gxbb-wdt
- amlogic,t7-wdt
- items:
- enum:
- amlogic,a4-wdt
- amlogic,c3-wdt
- amlogic,s4-wdt
- const: amlogic,t7-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
description:
A phandle to the clock of this PHY
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
watchdog@98d0 {
compatible = "amlogic,meson-gxbb-wdt";
reg = <0x98d0 0x10>;
clocks = <&xtal>;
};
@@ -0,0 +1,50 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/amlogic,meson6-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic Meson6 SoCs Watchdog timer
maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
- Martin Blumenstingl <martin.blumenstingl@googlemail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- enum:
- amlogic,meson6-wdt
- amlogic,meson8-wdt
- amlogic,meson8b-wdt
- items:
- const: amlogic,meson8m2-wdt
- const: amlogic,meson8b-wdt
interrupts:
maxItems: 1
reg:
maxItems: 1
required:
- compatible
- interrupts
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
wdt: watchdog@c1109900 {
compatible = "amlogic,meson6-wdt";
reg = <0xc1109900 0x8>;
interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
timeout-sec = <10>;
};
@@ -0,0 +1,53 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/andestech,ae350-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Andes ATCWDT200 Watchdog Timer
maintainers:
- CL Wang <cl634@andestech.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- items:
- enum:
- andestech,qilai-wdt
- const: andestech,ae350-wdt
- const: andestech,ae350-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
andestech,clock-source:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
description: |
Select the clock source for the watchdog timer.
0 - External clock
1 - P clock
required:
- compatible
- reg
- clocks
- andestech,clock-source
unevaluatedProperties: false
examples:
- |
watchdog@f0500000 {
compatible = "andestech,ae350-wdt";
reg = <0xf0500000 0x20>;
clocks = <&clk_wdt>;
andestech,clock-source = <0>;
};
@@ -0,0 +1,65 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/apple,wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple SoC Watchdog
maintainers:
- Sven Peter <sven@svenpeter.dev>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- items:
- enum:
- apple,t6020-wdt
- apple,t8122-wdt
- const: apple,t8103-wdt
- items:
- enum:
# Do not add additional SoC to this list.
- apple,s5l8960x-wdt
- apple,t7000-wdt
- apple,s8000-wdt
- apple,t8010-wdt
- apple,t8015-wdt
- apple,t8103-wdt
- apple,t8112-wdt
- apple,t6000-wdt
- const: apple,wdt
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
- clocks
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/apple-aic.h>
#include <dt-bindings/interrupt-controller/irq.h>
wdt: watchdog@50000000 {
compatible = "apple,t8103-wdt", "apple,wdt";
reg = <0x50000000 0x4000>;
clocks = <&clk>;
interrupts = <AIC_IRQ 123 IRQ_TYPE_LEVEL_HIGH>;
};
...
@@ -0,0 +1,50 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/arm,sbsa-gwdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: SBSA (Server Base System Architecture) Generic Watchdog
maintainers:
- Fu Wei <fu.wei@linaro.org>
description: |
The SBSA Generic Watchdog Timer is used to force a reset of the system after
two stages of timeout have elapsed. A detailed definition of the watchdog
timer can be found in the ARM document: ARM-DEN-0029 - Server Base System
Architecture (SBSA)
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: arm,sbsa-gwdt
reg:
items:
- description: Watchdog control frame
- description: Refresh frame
interrupts:
description: The Watchdog Signal 0 (WS0) SPI (Shared Peripheral Interrupt)
maxItems: 1
required:
- compatible
- reg
- interrupts
unevaluatedProperties: false
examples:
- |
watchdog@2a440000 {
compatible = "arm,sbsa-gwdt";
reg = <0x2a440000 0x1000>,
<0x2a450000 0x1000>;
interrupts = <0 27 4>;
timeout-sec = <30>;
};
...
@@ -0,0 +1,75 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/arm,sp805.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ARM AMBA Primecell SP805 Watchdog
maintainers:
- Viresh Kumar <vireshk@kernel.org>
description: |+
The Arm SP805 IP implements a watchdog device, which triggers an interrupt
after a configurable time period. If that interrupt has not been serviced
when the next interrupt would be triggered, the reset signal is asserted.
allOf:
- $ref: /schemas/watchdog/watchdog.yaml#
# Need a custom select here or 'arm,primecell' will match on lots of nodes
select:
properties:
compatible:
contains:
const: arm,sp805
required:
- compatible
properties:
compatible:
items:
- const: arm,sp805
- const: arm,primecell
interrupts:
maxItems: 1
reg:
maxItems: 1
clocks:
description: |
Clocks driving the watchdog timer hardware. The first clock is used
for the actual watchdog counter. The second clock drives the register
interface.
maxItems: 2
clock-names:
items:
- const: wdog_clk
- const: apb_pclk
resets:
maxItems: 1
description: WDOGRESn input reset signal for sp805 module.
required:
- compatible
- reg
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
watchdog@66090000 {
compatible = "arm,sp805", "arm,primecell";
reg = <0x66090000 0x1000>;
interrupts = <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&wdt_clk>, <&apb_pclk>;
clock-names = "wdog_clk", "apb_pclk";
resets = <&wdt_rst>;
};
@@ -0,0 +1,50 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/arm,twd-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ARM Timer-Watchdog Watchdog
maintainers:
- Rob Herring <robh@kernel.org>
description:
ARM 11MP, Cortex-A5 and Cortex-A9 are often associated with a per-core
Timer-Watchdog (aka TWD), which provides both a per-cpu local timer
and watchdog.
The TWD is usually attached to a GIC to deliver its two per-processor
interrupts.
properties:
compatible:
enum:
- arm,cortex-a9-twd-wdt
- arm,cortex-a5-twd-wdt
- arm,arm11mp-twd-wdt
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
watchdog@2c000620 {
compatible = "arm,arm11mp-twd-wdt";
reg = <0x2c000620 0x20>;
interrupts = <GIC_PPI 14 0xf01>;
};
@@ -0,0 +1,39 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/arm-smc-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ARM Secure Monitor Call based watchdog
maintainers:
- Julius Werner <jwerner@chromium.org>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- arm,smc-wdt
arm,smc-id:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
The ATF smc function id used by the firmware.
Defaults to 0x82003D06 if unset.
required:
- compatible
unevaluatedProperties: false
examples:
- |
watchdog {
compatible = "arm,smc-wdt";
arm,smc-id = <0x82003D06>;
timeout-sec = <15>;
};
...
@@ -0,0 +1,146 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Aspeed watchdog timer controllers
maintainers:
- Andrew Jeffery <andrew@codeconstruct.com.au>
properties:
compatible:
enum:
- aspeed,ast2400-wdt
- aspeed,ast2500-wdt
- aspeed,ast2600-wdt
- aspeed,ast2700-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
description: >
The clock used to drive the watchdog counter. From the AST2500 no source
other than the 1MHz clock can be selected, so the clocks property is
optional.
aspeed,reset-type:
$ref: /schemas/types.yaml#/definitions/string
enum:
- cpu
- soc
- system
- none
default: system
description: >
The watchdog can be programmed to generate one of three different types of
reset when a timeout occcurs.
Specifying 'cpu' will only reset the processor on a timeout event.
Specifying 'soc' will reset a configurable subset of the SoC's controllers
on a timeout event. Controllers critical to the SoC's operation may remain
untouched. The set of SoC controllers to reset may be specified via the
aspeed,reset-mask property if the node has the aspeed,ast2500-wdt or
aspeed,ast2600-wdt compatible.
Specifying 'system' will reset all controllers on a timeout event, as if
EXTRST had been asserted.
Specifying 'none' will cause the timeout event to have no reset effect.
Another watchdog engine on the chip must be used for chip reset operations.
aspeed,alt-boot:
$ref: /schemas/types.yaml#/definitions/flag
description: >
Direct the watchdog to configure the SoC to boot from the alternative boot
region if a timeout occurs.
aspeed,external-signal:
$ref: /schemas/types.yaml#/definitions/flag
description: >
Assert the timeout event on an external signal pin associated with the
watchdog controller instance. The pin must be muxed appropriately.
aspeed,ext-pulse-duration:
$ref: /schemas/types.yaml#/definitions/uint32
description: >
The duration, in microseconds, of the pulse emitted on the external signal
pin.
aspeed,ext-push-pull:
$ref: /schemas/types.yaml#/definitions/flag
description: >
If aspeed,external-signal is specified in the node, set the external
signal pin's drive type to push-pull. If aspeed,ext-push-pull is not
specified then the pin is configured as open-drain.
aspeed,ext-active-high:
$ref: /schemas/types.yaml#/definitions/flag
description: >
If both aspeed,external-signal and aspeed,ext-push-pull are specified in
the node, set the pulse polarity to active-high. If aspeed,ext-active-high
is not specified then the pin is configured as active-low.
aspeed,reset-mask:
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 1
maxItems: 5
description: >
A bitmask indicating which peripherals will be reset if the watchdog
timer expires. On AST2500 SoCs this should be a single word defined using
the AST2500_WDT_RESET_* macros; on AST2600 SoCs this should be a two-word
array with the first word defined using the AST2600_WDT_RESET1_* macros,
and the second word defined using the AST2600_WDT_RESET2_* macros; on
AST2700 SoCs, this should be five-word array from AST2700_WDT_RESET1_*
macros to AST2700_WDT_RESET5_* macros.
required:
- compatible
- reg
allOf:
- if:
anyOf:
- required:
- aspeed,ext-push-pull
- required:
- aspeed,ext-active-high
- required:
- aspeed,reset-mask
then:
properties:
compatible:
enum:
- aspeed,ast2500-wdt
- aspeed,ast2600-wdt
- aspeed,ast2700-wdt
- if:
required:
- aspeed,ext-active-high
then:
required:
- aspeed,ext-push-pull
additionalProperties: false
examples:
- |
watchdog@1e785000 {
compatible = "aspeed,ast2400-wdt";
reg = <0x1e785000 0x1c>;
aspeed,reset-type = "system";
aspeed,external-signal;
};
- |
#include <dt-bindings/watchdog/aspeed-wdt.h>
watchdog@1e785040 {
compatible = "aspeed,ast2600-wdt";
reg = <0x1e785040 0x40>;
aspeed,reset-type = "soc";
aspeed,reset-mask = <AST2600_WDT_RESET1_DEFAULT
(AST2600_WDT_RESET2_DEFAULT & ~AST2600_WDT_RESET2_LPC)>;
};
@@ -0,0 +1,33 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/atmel,at91rm9200-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Atmel AT91RM9200 System Timer Watchdog
maintainers:
- Nicolas Ferre <nicolas.ferre@microchip.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: atmel,at91rm9200-wdt
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
watchdog@fffffd00 {
compatible = "atmel,at91rm9200-wdt";
reg = <0xfffffd00 0x10>;
};
@@ -0,0 +1,127 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/atmel,at91sam9-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Atmel Watchdog Timers
maintainers:
- Eugen Hristev <eugen.hristev@microchip.com>
properties:
compatible:
const: atmel,at91sam9260-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
atmel,max-heartbeat-sec:
description:
Should contain the maximum heartbeat value in seconds. This value
should be less or equal to 16. It is used to compute the WDV field.
maximum: 16
atmel,min-heartbeat-sec:
description:
Should contain the minimum heartbeat value in seconds. This value
must be smaller than the max-heartbeat-sec value. It is used to
compute the WDD field.
maximum: 16
atmel,watchdog-type:
$ref: /schemas/types.yaml#/definitions/string
description: |
Should be hardware or software.
oneOf:
- description:
Hardware watchdog uses the at91 watchdog reset.
const: hardware
- description: |
Software watchdog uses the watchdog interrupt
to trigger a software reset.
const: software
default: hardware
atmel,reset-type:
$ref: /schemas/types.yaml#/definitions/string
description: |
Should be proc or all. This is valid only when using hardware watchdog.
oneOf:
- description:
Assert peripherals and processor reset signals.
const: all
- description:
Assert the processor reset signal.
const: proc
default: all
atmel,disable:
$ref: /schemas/types.yaml#/definitions/flag
description:
Should be present if you want to stop the watchdog.
atmel,idle-halt:
$ref: /schemas/types.yaml#/definitions/flag
description: |
Should be present if you want to stop the watchdog when
entering idle state.
CAUTION: This property should be used with care, it actually makes the
watchdog not counting when the CPU is in idle state, therefore the
watchdog reset time depends on mean CPU usage and will not reset at all
if the CPU stops working while it is in idle state, which is probably
not what you want.
atmel,dbg-halt:
$ref: /schemas/types.yaml#/definitions/flag
description: |
Should be present if you want to stop the watchdog when
entering debug state.
required:
- compatible
- reg
- clocks
allOf:
- $ref: watchdog.yaml#
- if:
properties:
atmel,reset-type:
enum:
- all
- proc
then:
properties:
atmel,watchdog-type:
const: hardware
dependencies:
atmel,reset-type: ['atmel,watchdog-type']
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
watchdog@fffffd40 {
compatible = "atmel,at91sam9260-wdt";
reg = <0xfffffd40 0x10>;
interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
clocks = <&clk32k>;
timeout-sec = <15>;
atmel,watchdog-type = "hardware";
atmel,reset-type = "all";
atmel,dbg-halt;
atmel,idle-halt;
atmel,max-heartbeat-sec = <16>;
atmel,min-heartbeat-sec = <0>;
};
@@ -0,0 +1,81 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/atmel,sama5d4-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Atmel SAMA5D4 Watchdog Timer (WDT) Controller
maintainers:
- Eugen Hristev <eugen.hristev@microchip.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- enum:
- atmel,sama5d4-wdt
- microchip,sam9x60-wdt
- microchip,sama7g5-wdt
- items:
- const: microchip,sam9x7-wdt
- const: microchip,sam9x60-wdt
reg:
maxItems: 1
interrupts:
maxItems: 1
atmel,watchdog-type:
$ref: /schemas/types.yaml#/definitions/string
description: should be hardware or software.
oneOf:
- description:
Enable watchdog fault reset. A watchdog fault triggers
watchdog reset.
const: hardware
- description:
Enable watchdog fault interrupt. A watchdog fault asserts
watchdog interrupt.
const: software
default: hardware
atmel,idle-halt:
$ref: /schemas/types.yaml#/definitions/flag
description: |
present if you want to stop the watchdog when the CPU is in idle state.
CAUTION: This property should be used with care, it actually makes the
watchdog not counting when the CPU is in idle state, therefore the
watchdog reset time depends on mean CPU usage and will not reset at all
if the CPU stop working while it is in idle state, which is probably
not what you want.
atmel,dbg-halt:
$ref: /schemas/types.yaml#/definitions/flag
description: |
present if you want to stop the watchdog when the CPU is in debug state.
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
watchdog@fc068640 {
compatible = "atmel,sama5d4-wdt";
reg = <0xfc068640 0x10>;
interrupts = <4 IRQ_TYPE_LEVEL_HIGH 5>;
timeout-sec = <10>;
atmel,watchdog-type = "hardware";
atmel,dbg-halt;
atmel,idle-halt;
};
...
@@ -0,0 +1,43 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/brcm,bcm7038-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: BCM63xx and BCM7038 watchdog timer
maintainers:
- Florian Fainelli <f.fainelli@gmail.com>
- Justin Chen <justinpopo6@gmail.com>
- Rafał Miłecki <rafal@milecki.pl>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- brcm,bcm6345-wdt
- brcm,bcm7038-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
description: >
The clock running the watchdog. If no clock is found the driver will
default to 27000000 Hz.
required:
- reg
unevaluatedProperties: false
examples:
- |
watchdog@f040a7e8 {
compatible = "brcm,bcm7038-wdt";
reg = <0xf040a7e8 0x16>;
clocks = <&upg_fixed>;
};
@@ -0,0 +1,41 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/brcm,kona-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom Kona Family Watchdog Timer
description: |
This watchdog timer is used in the following Broadcom SoCs:
BCM11130, BCM11140, BCM11351, BCM28145, BCM28155
maintainers:
- Florian Fainelli <f.fainelli@gmail.com>
- Ray Jui <rjui@broadcom.com>
- Scott Branden <sbranden@broadcom.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
items:
- const: brcm,bcm11351-wdt
- const: brcm,kona-wdt
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
watchdog@35002f40 {
compatible = "brcm,bcm11351-wdt", "brcm,kona-wdt";
reg = <0x35002f40 0x6c>;
};
@@ -0,0 +1,62 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/cdns,wdt-r1p2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cadence watchdog timer controller
maintainers:
- Neeli Srinivas <srinivas.neeli@amd.com>
description:
The cadence watchdog timer is used to detect and recover from
system malfunctions. This watchdog contains 24 bit counter and
a programmable reset period. The timeout period varies from 1 ms
to 30 seconds while using a 100Mhz clock.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- cdns,wdt-r1p2
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
reset-on-timeout:
type: boolean
description: |
If this property exists, then a reset is done when watchdog
times out.
required:
- compatible
- reg
- clocks
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
watchdog@f8005000 {
compatible = "cdns,wdt-r1p2";
reg = <0xf8005000 0x1000>;
clocks = <&clkc 45>;
interrupt-parent = <&intc>;
interrupts = <GIC_SPI 9 IRQ_TYPE_EDGE_RISING>;
reset-on-timeout;
timeout-sec = <10>;
};
...
@@ -0,0 +1,42 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/cirrus,ep9301-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cirrus Logic EP93xx Watchdog Timer
maintainers:
- Nikita Shubin <nikita.shubin@maquefel.me>
- Alexander Sverdlin <alexander.sverdlin@gmail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- const: cirrus,ep9301-wdt
- items:
- enum:
- cirrus,ep9302-wdt
- cirrus,ep9307-wdt
- cirrus,ep9312-wdt
- cirrus,ep9315-wdt
- const: cirrus,ep9301-wdt
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
watchdog@80940000 {
compatible = "cirrus,ep9301-wdt";
reg = <0x80940000 0x08>;
};
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/cnxt,cx92755-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Conexant Digicolor SoCs Watchdog timer
description: |
The watchdog functionality in Conexant Digicolor SoCs relies on the so called
"Agent Communication" block. This block includes the eight programmable system
timer counters. The first timer (called "Timer A") is the only one that can be
used as watchdog.
maintainers:
- Baruch Siach <baruch@tkos.co.il>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: cnxt,cx92755-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
watchdog@f0000fc0 {
compatible = "cnxt,cx92755-wdt";
reg = <0xf0000fc0 0x8>;
clocks = <&main_clk>;
timeout-sec = <15>;
};
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/dlg,da9062-watchdog.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dialog Semiconductor DA906{1,2,3} Watchdog Timer
maintainers:
- Steve Twiss <stwiss.opensource@diasemi.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- enum:
- dlg,da9062-watchdog
- dlg,da9063-watchdog
- items:
- const: dlg,da9061-watchdog
- const: dlg,da9062-watchdog
dlg,use-sw-pm:
type: boolean
description:
Add this property to disable the watchdog during suspend.
Only use this option if you can't use the watchdog automatic suspend
function during a suspend (see register CONTROL_B).
dlg,wdt-sd:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
description:
Set what happens on watchdog timeout. If this bit is set the
watchdog timeout triggers SHUTDOWN, if cleared the watchdog triggers
POWERDOWN. Can be 0 or 1. Only use this option if you want to change the
default chip's OTP setting for WATCHDOG_SD bit. If this property is NOT
set the WATCHDOG_SD bit and on timeout watchdog behavior will match the
chip's OTP settings.
required:
- compatible
unevaluatedProperties: false
examples:
- |
watchdog {
compatible = "dlg,da9062-watchdog";
dlg,use-sw-pm;
dlg,wdt-sd = <1>;
};
@@ -0,0 +1,67 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/faraday,ftwdt010.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Faraday Technology FTWDT010 watchdog
maintainers:
- Linus Walleij <linusw@kernel.org>
- Corentin Labbe <clabbe@baylibre.com>
description: |
This is an IP part from Faraday Technology found in the Gemini
SoCs and others.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- const: faraday,ftwdt010
- items:
- enum:
- cortina,gemini-watchdog
- moxa,moxart-watchdog
- const: faraday,ftwdt010
reg:
maxItems: 1
resets:
maxItems: 1
clocks:
maxItems: 1
clock-names:
const: PCLK
interrupts:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
watchdog@41000000 {
compatible = "faraday,ftwdt010";
reg = <0x41000000 0x1000>;
interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
timeout-sec = <5>;
};
- |
watchdog: watchdog@98500000 {
compatible = "moxa,moxart-watchdog", "faraday,ftwdt010";
reg = <0x98500000 0x10>;
clocks = <&clk_apb>;
clock-names = "PCLK";
};
...
@@ -0,0 +1,37 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/fsl,scu-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: i.MX SCU Client Device Node - Watchdog Based on SCU Message Protocol
maintainers:
- Dong Aisheng <aisheng.dong@nxp.com>
description: i.MX SCU Client Device Node
Client nodes are maintained as children of the relevant IMX-SCU device node.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
items:
- enum:
- fsl,imx8dxl-sc-wdt
- fsl,imx8qm-sc-wdt
- fsl,imx8qxp-sc-wdt
- const: fsl,imx-sc-wdt
required:
- compatible
unevaluatedProperties: false
examples:
- |
watchdog {
compatible = "fsl,imx8qxp-sc-wdt", "fsl,imx-sc-wdt";
timeout-sec = <60>;
};
@@ -0,0 +1,128 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/fsl-imx-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale i.MX Watchdog Timer (WDT) Controller
maintainers:
- Shawn Guo <shawnguo@kernel.org>
- Sascha Hauer <s.hauer@pengutronix.de>
- Fabio Estevam <festevam@gmail.com>
properties:
compatible:
oneOf:
- const: fsl,imx21-wdt
- items:
- enum:
- fsl,imx25-wdt
- fsl,imx27-wdt
- fsl,imx31-wdt
- fsl,imx35-wdt
- fsl,imx50-wdt
- fsl,imx51-wdt
- fsl,imx53-wdt
- fsl,imx6q-wdt
- fsl,imx6sl-wdt
- fsl,imx6sll-wdt
- fsl,imx6sx-wdt
- fsl,imx6ul-wdt
- fsl,imx7d-wdt
- fsl,imx8mm-wdt
- fsl,imx8mn-wdt
- fsl,imx8mp-wdt
- fsl,imx8mq-wdt
- fsl,ls1012a-wdt
- fsl,ls1021a-wdt
- fsl,ls1043a-wdt
- fsl,ls1046a-wdt
- fsl,vf610-wdt
- const: fsl,imx21-wdt
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
big-endian: true
fsl,ext-reset-output:
$ref: /schemas/types.yaml#/definitions/flag
description: |
If present, the watchdog device is configured to assert its
external reset (WDOG_B) instead of issuing a software reset.
fsl,suspend-in-wait:
$ref: /schemas/types.yaml#/definitions/flag
description: |
If present, the watchdog device is suspended in WAIT mode
(Suspend-to-Idle). Only supported on certain devices.
required:
- compatible
- interrupts
- reg
allOf:
- $ref: watchdog.yaml#
- if:
not:
properties:
compatible:
contains:
enum:
- fsl,imx25-wdt
- fsl,imx35-wdt
- fsl,imx50-wdt
- fsl,imx51-wdt
- fsl,imx53-wdt
- fsl,imx6q-wdt
- fsl,imx6sl-wdt
- fsl,imx6sll-wdt
- fsl,imx6sx-wdt
- fsl,imx6ul-wdt
- fsl,imx7d-wdt
- fsl,imx8mm-wdt
- fsl,imx8mn-wdt
- fsl,imx8mp-wdt
- fsl,imx8mq-wdt
- fsl,vf610-wdt
then:
properties:
fsl,suspend-in-wait: false
- if:
not:
properties:
compatible:
contains:
enum:
- fsl,ls1012a-wdt
- fsl,ls1021a-wdt
- fsl,ls1043a-wdt
- fsl,ls1046a-wdt
then:
properties:
big-endian: false
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/imx6qdl-clock.h>
watchdog@20bc000 {
compatible = "fsl,imx21-wdt";
reg = <0x020bc000 0x4000>;
interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6QDL_CLK_IPG>;
};
...
@@ -0,0 +1,67 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/fsl-imx7ulp-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale i.MX7ULP Watchdog Timer (WDT) Controller
maintainers:
- Shawn Guo <shawnguo@kernel.org>
- Sascha Hauer <s.hauer@pengutronix.de>
- Fabio Estevam <festevam@gmail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- const: fsl,imx7ulp-wdt
- items:
- const: fsl,imx8ulp-wdt
- const: fsl,imx7ulp-wdt
- const: fsl,imx93-wdt
- items:
- enum:
- fsl,imx94-wdt
- const: fsl,imx93-wdt
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
fsl,ext-reset-output:
description:
When set, wdog can generate external reset from the wdog_any pin.
type: boolean
required:
- compatible
- interrupts
- reg
- clocks
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/imx7ulp-clock.h>
watchdog@403d0000 {
compatible = "fsl,imx7ulp-wdt";
reg = <0x403d0000 0x10000>;
interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&pcc2 IMX7ULP_CLK_WDG1>;
assigned-clocks = <&pcc2 IMX7ULP_CLK_WDG1>;
assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>;
timeout-sec = <40>;
};
...
@@ -0,0 +1,55 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/img,pdc-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ImgTec PowerDown Controller (PDC) Watchdog Timer (WDT)
maintainers:
- Shresth Prasad <shresthprasad7@gmail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- img,pdc-wdt
reg:
maxItems: 1
clocks:
items:
- description: watchdog counter clock
- description: register interface clock
clock-names:
items:
- const: wdt
- const: sys
interrupts:
maxItems: 1
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
watchdog@18102100 {
compatible = "img,pdc-wdt";
reg = <0x18102100 0x100>;
clocks = <&pdc_wdt_clk>, <&sys_clk>;
clock-names = "wdt", "sys";
interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
};
@@ -0,0 +1,60 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/intel,keembay-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Intel Keem Bay SoC non-secure Watchdog Timer
maintainers:
- Wan Ahmad Zainie <wan.ahmad.zainie.wan.mohamad@intel.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- intel,keembay-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
items:
- description: interrupt specifier for threshold interrupt line
- description: interrupt specifier for timeout interrupt line
interrupt-names:
items:
- const: threshold
- const: timeout
required:
- compatible
- reg
- interrupts
- interrupt-names
- clocks
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#define KEEM_BAY_A53_TIM
watchdog: watchdog@2033009c {
compatible = "intel,keembay-wdt";
reg = <0x2033009c 0x10>;
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "threshold", "timeout";
clocks = <&scmi_clk KEEM_BAY_A53_TIM>;
};
...
@@ -0,0 +1,35 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/kontron,sl28cpld-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Watchdog driver for the sl28cpld board management controller
maintainers:
- Michael Walle <michael@walle.cc>
description: |
This module is part of the sl28cpld multi-function device. For more
details see ../embedded-controller/kontron,sl28cpld.yaml.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: kontron,sl28cpld-wdt
reg:
maxItems: 1
kontron,assert-wdt-timeout-pin:
description: The SMARC standard defines a WDT_TIME_OUT# pin. If this
property is set, this output will be pulsed when the watchdog bites
and the system resets.
type: boolean
required:
- compatible
additionalProperties: false
@@ -0,0 +1,57 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/lantiq,wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Lantiq WTD watchdog
maintainers:
- Hauke Mehrtens <hauke@hauke-m.de>
properties:
compatible:
oneOf:
- enum:
- lantiq,falcon-wdt
- lantiq,wdt
- lantiq,xrx100-wdt
- items:
- enum:
- lantiq,xrx200-wdt
- const: lantiq,xrx100-wdt
reg:
maxItems: 1
lantiq,rcu:
$ref: /schemas/types.yaml#/definitions/phandle
description: Phandle to the RCU syscon node
required:
- compatible
- reg
allOf:
- $ref: watchdog.yaml#
- if:
properties:
compatible:
contains:
enum:
- lantiq,xrx100-wdt
- lantiq,falcon-wdt
then:
required:
- lantiq,rcu
unevaluatedProperties: false
examples:
- |
watchdog@803f0 {
compatible = "lantiq,xrx200-wdt", "lantiq,xrx100-wdt";
reg = <0x803f0 0x10>;
lantiq,rcu = <&rcu0>;
};
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/linux,wdt-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: GPIO-controlled Watchdog
maintainers:
- Guenter Roeck <linux@roeck-us.net>
- Robert Marko <robert.marko@sartura.hr>
properties:
compatible:
const: linux,wdt-gpio
gpios:
description: gpio connection to WDT reset pin
maxItems: 1
hw_algo:
description: The algorithm used by the driver.
oneOf:
- description:
Either a high-to-low or a low-to-high transition clears the WDT counter.
The watchdog timer is disabled when GPIO is left floating or connected
to a three-state buffer.
const: toggle
- description:
Low or high level starts counting WDT timeout, the opposite level
disables the WDT.
Active level is determined by the GPIO flags.
const: level
hw_margin_ms:
description: Maximum time to reset watchdog circuit (milliseconds).
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 2
maximum: 65535
always-running:
type: boolean
description:
If the watchdog timer cannot be disabled, add this flag to have the driver
keep toggling the signal without a client.
It will only cease to toggle the signal when the device is open and the
timeout elapsed.
required:
- compatible
- gpios
- hw_algo
- hw_margin_ms
allOf:
- $ref: watchdog.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
watchdog {
compatible = "linux,wdt-gpio";
gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
hw_algo = "toggle";
hw_margin_ms = <1600>;
};
@@ -0,0 +1,43 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/loongson,ls1x-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Loongson Watchdog Timer
maintainers:
- Keguang Zhang <keguang.zhang@gmail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- loongson,ls1b-wdt
- loongson,ls1c-wdt
- loongson,ls2k0300-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/loongson,ls1x-clk.h>
watchdog: watchdog@1fe5c060 {
compatible = "loongson,ls1b-wdt";
reg = <0x1fe5c060 0xc>;
clocks = <&clkc LS1X_CLKID_APB>;
};
@@ -0,0 +1,41 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/marvell,armada-3700-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Armada 37xx CPU Watchdog Timer Controller
maintainers:
- Marek Behún <kabel@kernel.org>
properties:
compatible:
const: marvell,armada-3700-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
marvell,system-controller:
description: Reference to syscon node for the CPU Miscellaneous Registers
$ref: /schemas/types.yaml#/definitions/phandle
required:
- compatible
- reg
- clocks
- marvell,system-controller
additionalProperties: false
examples:
- |
watchdog@8300 {
compatible = "marvell,armada-3700-wdt";
reg = <0x8300 0x40>;
marvell,system-controller = <&cpu_misc>;
clocks = <&xtalclk>;
};
@@ -0,0 +1,83 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/marvell,cn10624-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Marvell Global Timer (GTI) system watchdog
maintainers:
- Bharat Bhushan <bbhushan2@marvell.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- enum:
- marvell,cn9670-wdt
- marvell,cn10624-wdt
- items:
- enum:
- marvell,cn9880-wdt
- marvell,cnf9535-wdt
- const: marvell,cn9670-wdt
- items:
- enum:
- marvell,cn10308-wdt
- marvell,cnf10518-wdt
- const: marvell,cn10624-wdt
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
clock-names:
items:
- const: refclk
marvell,wdt-timer-index:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 63
description:
An SoC have many timers (up to 64), firmware can reserve one or more timer
for some other use case and configures one of the global timer as watchdog
timer. Firmware will update this field with the timer number configured
as watchdog timer.
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
watchdog@802000040000 {
compatible = "marvell,cn9670-wdt";
reg = <0x00008020 0x00040000 0x00000000 0x00020000>;
interrupts = <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>;
clocks = <&sclk>;
clock-names = "refclk";
marvell,wdt-timer-index = <63>;
};
};
...
@@ -0,0 +1,100 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/marvell,orion-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Marvell Orion Watchdog Timer
maintainers:
- Andrew Lunn <andrew@lunn.ch>
- Gregory Clement <gregory.clement@bootlin.com>
properties:
compatible:
enum:
- marvell,orion-wdt
- marvell,armada-370-wdt
- marvell,armada-xp-wdt
- marvell,armada-375-wdt
- marvell,armada-380-wdt
reg:
minItems: 2
items:
- description: Timer control register address
- description: RSTOUT enable register address
- description: Shared mask/unmask RSTOUT register address
clocks:
minItems: 1
items:
- description: L2/coherency fabric clock input
- description: Reference 25 MHz fixed-clock supply
clock-names:
minItems: 1
items:
- const: nbclk
- const: fixed
interrupts:
minItems: 1
items:
- description: timeout
- description: pre-timeout
allOf:
- $ref: watchdog.yaml#
- if:
properties:
compatible:
contains:
enum:
- marvell,armada-375-wdt
- marvell,armada-380-wdt
then:
properties:
reg:
minItems: 3
else:
properties:
reg:
maxItems: 2
- if:
properties:
compatible:
contains:
enum:
- marvell,armada-xp-wdt
- marvell,armada-375-wdt
- marvell,armada-380-wdt
then:
properties:
clocks:
minItems: 2
clock-names:
minItems: 2
interrupts:
minItems: 2
required:
- clock-names
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
watchdog@20300 {
compatible = "marvell,orion-wdt";
reg = <0x20300 0x28>, <0x20108 0x4>;
interrupts = <3>;
timeout-sec = <10>;
clocks = <&gate_clk 7>;
};
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/maxim,max63xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim 63xx Watchdog Timers
maintainers:
- Marc Zyngier <maz@kernel.org>
- Linus Walleij <linusw@kernel.org>
allOf:
- $ref: watchdog.yaml#
- $ref: /schemas/memory-controllers/mc-peripheral-props.yaml#
properties:
compatible:
enum:
- maxim,max6369
- maxim,max6370
- maxim,max6371
- maxim,max6372
- maxim,max6373
- maxim,max6374
reg:
description: This is a 1-byte memory-mapped address
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
wdt: watchdog@50000000 {
compatible = "maxim,max6369";
reg = <0x50000000 0x1>;
timeout-sec = <10>;
};
...
@@ -0,0 +1,40 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/mediatek,mt7621-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Ralink Watchdog Timers
maintainers:
- Sergio Paracuellos <sergio.paracuellos@gmail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: mediatek,mt7621-wdt
reg:
maxItems: 1
mediatek,sysctl:
$ref: /schemas/types.yaml#/definitions/phandle
description:
phandle to system controller 'sysc' syscon node which
controls system registers
required:
- compatible
- reg
additionalProperties: false
examples:
- |
watchdog@100 {
compatible = "mediatek,mt7621-wdt";
reg = <0x100 0x100>;
mediatek,sysctl = <&sysc>;
};
@@ -0,0 +1,92 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/mediatek,mtk-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek SoCs Watchdog timer
maintainers:
- Matthias Brugger <matthias.bgg@gmail.com>
description:
The watchdog supports a pre-timeout interrupt that fires
timeout-sec/2 before the expiry.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- enum:
- mediatek,mt2712-wdt
- mediatek,mt6589-wdt
- mediatek,mt6735-wdt
- mediatek,mt6795-wdt
- mediatek,mt7986-wdt
- mediatek,mt7988-wdt
- mediatek,mt8183-wdt
- mediatek,mt8186-wdt
- mediatek,mt8188-wdt
- mediatek,mt8192-wdt
- mediatek,mt8195-wdt
- items:
- enum:
- mediatek,mt2701-wdt
- mediatek,mt6572-wdt
- mediatek,mt6582-wdt
- mediatek,mt6797-wdt
- mediatek,mt7622-wdt
- mediatek,mt7623-wdt
- mediatek,mt7629-wdt
- mediatek,mt8173-wdt
- mediatek,mt8188-wdt
- mediatek,mt8189-wdt
- mediatek,mt8365-wdt
- mediatek,mt8516-wdt
- const: mediatek,mt6589-wdt
reg:
maxItems: 1
interrupts:
items:
- description: Watchdog pre-timeout (bark) interrupt
mediatek,disable-extrst:
description: Disable sending output reset signal
type: boolean
mediatek,reset-by-toprgu:
description: The Top Reset Generation Unit (TOPRGU) generates reset signals
and distributes them to each IP. If present, the watchdog timer will be
reset by TOPRGU once system resets.
type: boolean
'#reset-cells':
const: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
watchdog: watchdog@10007000 {
compatible = "mediatek,mt8183-wdt";
reg = <0 0x10007000 0 0x100>;
interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>;
mediatek,disable-extrst;
timeout-sec = <10>;
#reset-cells = <1>;
};
};
@@ -0,0 +1,25 @@
Bindings for MEN A21 Watchdog device connected to GPIO lines
Required properties:
- compatible: "men,a021-wdt"
- gpios: Specifies the pins that control the Watchdog, order:
1: Watchdog enable
2: Watchdog fast-mode
3: Watchdog trigger
4: Watchdog reset cause bit 0
5: Watchdog reset cause bit 1
6: Watchdog reset cause bit 2
Optional properties:
- None
Example:
watchdog {
compatible ="men,a021-wdt";
gpios = <&gpio3 9 1 /* WD_EN */
&gpio3 10 1 /* WD_FAST */
&gpio3 11 1 /* WD_TRIG */
&gpio3 6 1 /* RST_CAUSE[0] */
&gpio3 7 1 /* RST_CAUSE[1] */
&gpio3 8 1>; /* RST_CAUSE[2] */
};
@@ -0,0 +1,19 @@
* Microchip PIC32 Deadman Timer
The deadman timer is used to reset the processor in the event of a software
malfunction. It is a free-running instruction fetch timer, which is clocked
whenever an instruction fetch occurs until a count match occurs.
Required properties:
- compatible: must be "microchip,pic32mzda-dmt".
- reg: physical base address of the controller and length of memory mapped
region.
- clocks: phandle of source clk. Should be <&rootclk PB7CLK>.
Example:
watchdog@1f800a00 {
compatible = "microchip,pic32mzda-dmt";
reg = <0x1f800a00 0x80>;
clocks = <&rootclk PB7CLK>;
};
@@ -0,0 +1,18 @@
* Microchip PIC32 Watchdog Timer
When enabled, the watchdog peripheral can be used to reset the device if the
WDT is not cleared periodically in software.
Required properties:
- compatible: must be "microchip,pic32mzda-wdt".
- reg: physical base address of the controller and length of memory mapped
region.
- clocks: phandle of source clk. Should be <&rootclk LPRCCLK>.
Example:
watchdog@1f800800 {
compatible = "microchip,pic32mzda-wdt";
reg = <0x1f800800 0x200>;
clocks = <&rootclk LPRCCLK>;
};
@@ -0,0 +1,64 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/mpc8xxx-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale MPC8xxx watchdog timer (For 83xx, 86xx and 8xx)
maintainers:
- J. Neuschäfer <j.ne@posteo.net>
properties:
compatible:
enum:
- mpc83xx_wdt # for an mpc83xx
- fsl,mpc8610-wdt # for an mpc86xx
- fsl,mpc823-wdt # for an mpc8xx
device_type:
const: watchdog
reg:
minItems: 1
items:
- description: |
Base physical address and length of the area hosting the watchdog
registers.
On the 83xx, "Watchdog Timer Registers" area: <0x200 0x100>
On the 86xx, "Watchdog Timer Registers" area: <0xe4000 0x100>
On the 8xx, "General System Interface Unit" area: <0x0 0x10>
- description: |
Additional optional physical address and length (4) of location of
the Reset Status Register (called RSTRSCR on the mpc86xx)
On the 83xx, it is located at offset 0x910
On the 86xx, it is located at offset 0xe0094
On the 8xx, it is located at offset 0x288
required:
- compatible
- reg
allOf:
- $ref: watchdog.yaml#
additionalProperties: false
examples:
- |
watchdog@0 {
compatible = "fsl,mpc823-wdt";
reg = <0x0 0x10 0x288 0x4>;
};
- |
watchdog@200 {
compatible = "mpc83xx_wdt";
reg = <0x200 0x100>;
device_type = "watchdog";
};
...
@@ -0,0 +1,40 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/mstar,msc313e-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MStar Watchdog
maintainers:
- Daniel Palmer <daniel@0x0f.com>
- Romain Perier <romain.perier@gmail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- mstar,msc313e-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- clocks
- reg
unevaluatedProperties: false
examples:
- |
watchdog@6000 {
compatible = "mstar,msc313e-wdt";
reg = <0x6000 0x1f>;
clocks = <&xtal_div2>;
};
@@ -0,0 +1,60 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/nuvoton,npcm750-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Nuvoton NPCM Watchdog
maintainers:
- Joel Stanley <joel@jms.id.au>
description:
Nuvoton NPCM timer module provides five 24-bit timer counters, and a watchdog.
The watchdog supports a pre-timeout interrupt that fires 10ms before the
expiry.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- enum:
- nuvoton,npcm750-wdt
- nuvoton,wpcm450-wdt
- items:
- enum:
- nuvoton,npcm845-wdt
- const: nuvoton,npcm750-wdt
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
clock-frequency:
description: Frequency in Hz of the clock that drives the NPCM timer.
required:
- compatible
- reg
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/nuvoton,npcm7xx-clock.h>
watchdog@f000801c {
compatible = "nuvoton,npcm750-wdt";
interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
reg = <0xf000801c 0x4>;
clocks = <&clk NPCM7XX_CLK_TIMER>;
};
@@ -0,0 +1,52 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/nxp,lpc1850-wwdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP LPC18xx Watchdog Timer (WDT)
maintainers:
- Animesh Agarwal <animeshagarwal28@gmail.com>
properties:
compatible:
const: nxp,lpc1850-wwdt
reg:
maxItems: 1
clocks:
items:
- description: Watchdog counter clock
- description: Register interface clock
clock-names:
items:
- const: wdtclk
- const: reg
interrupts:
maxItems: 1
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/lpc18xx-cgu.h>
#include <dt-bindings/clock/lpc18xx-ccu.h>
watchdog@40080000 {
compatible = "nxp,lpc1850-wwdt";
reg = <0x40080000 0x24>;
clocks = <&cgu BASE_SAFE_CLK>, <&ccu1 CLK_CPU_WWDT>;
clock-names = "wdtclk", "reg";
interrupts = <49>;
};
@@ -0,0 +1,37 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/nxp,pnx4008-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP PNX watchdog timer
maintainers:
- Roland Stigge <stigge@antcom.de>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: nxp,pnx4008-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
watchdog@4003c000 {
compatible = "nxp,pnx4008-wdt";
reg = <0x4003c000 0x1000>;
timeout-sec = <10>;
};
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/nxp,s32g2-swt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP Software Watchdog Timer (SWT)
maintainers:
- Daniel Lezcano <daniel.lezcano@kernel.org>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- const: nxp,s32g2-swt
- items:
- const: nxp,s32g3-swt
- const: nxp,s32g2-swt
reg:
maxItems: 1
clocks:
items:
- description: Counter clock
- description: Module clock
- description: Register clock
clock-names:
items:
- const: counter
- const: module
- const: register
required:
- compatible
- reg
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
watchdog@40100000 {
compatible = "nxp,s32g2-swt";
reg = <0x40100000 0x1000>;
clocks = <&clks 0x3a>, <&clks 0x3b>, <&clks 0x3c>;
clock-names = "counter", "module", "register";
timeout-sec = <10>;
};
@@ -0,0 +1,33 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/qca,ar7130-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Atheros AR7130 Watchdog Timer (WDT) Controller
maintainers:
- Gabor Juhos <juhosg@openwrt.org>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: qca,ar7130-wdt
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
watchdog@18060008 {
compatible = "qca,ar7130-wdt";
reg = <0x18060008 0x8>;
};
@@ -0,0 +1,56 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/qcom,pm8916-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm PM8916 watchdog timer controller
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: qcom,pm8916-wdt
interrupts:
maxItems: 1
required:
- compatible
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>
spmi {
#address-cells = <2>;
#size-cells = <0>;
pmic@0 {
compatible = "qcom,pm8916", "qcom,spmi-pmic";
reg = <0x0 SPMI_USID>;
#address-cells = <1>;
#size-cells = <0>;
pon@800 {
compatible = "qcom,pm8916-pon";
reg = <0x800>;
mode-bootloader = <0x2>;
mode-recovery = <0x1>;
watchdog {
compatible = "qcom,pm8916-wdt";
interrupts = <0x0 0x8 6 IRQ_TYPE_EDGE_RISING>;
timeout-sec = <60>;
};
};
};
};
@@ -0,0 +1,163 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/qcom-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Krait Processor Sub-system (KPSS) Watchdog timer
maintainers:
- Rajendra Nayak <quic_rjendra@quicinc.com>
properties:
$nodename:
pattern: "^(watchdog|timer)@[0-9a-f]+$"
compatible:
oneOf:
- items:
- enum:
- qcom,apss-wdt-glymur
- qcom,apss-wdt-hawi
- qcom,kpss-wdt-ipq4019
- qcom,apss-wdt-ipq5018
- qcom,apss-wdt-ipq5210
- qcom,apss-wdt-ipq5332
- qcom,apss-wdt-ipq5424
- qcom,apss-wdt-ipq9574
- qcom,apss-wdt-ipq9650
- qcom,apss-wdt-kaanapali
- qcom,apss-wdt-msm8226
- qcom,apss-wdt-msm8974
- qcom,apss-wdt-msm8994
- qcom,apss-wdt-nord
- qcom,apss-wdt-qcm2290
- qcom,apss-wdt-qcs404
- qcom,apss-wdt-qcs615
- qcom,apss-wdt-qcs8300
- qcom,apss-wdt-sa8255p
- qcom,apss-wdt-sa8775p
- qcom,apss-wdt-sc7180
- qcom,apss-wdt-sc7280
- qcom,apss-wdt-sc8180x
- qcom,apss-wdt-sc8280xp
- qcom,apss-wdt-sdm845
- qcom,apss-wdt-sdx55
- qcom,apss-wdt-sdx65
- qcom,apss-wdt-shikra
- qcom,apss-wdt-sm6115
- qcom,apss-wdt-sm6350
- qcom,apss-wdt-sm8150
- qcom,apss-wdt-sm8250
- qcom,apss-wdt-x1e80100
- const: qcom,kpss-wdt
- const: qcom,kpss-wdt
deprecated: true
- items:
- const: qcom,scss-timer
- const: qcom,msm-timer
- items:
- enum:
- qcom,kpss-wdt-apq8064
- qcom,kpss-wdt-ipq8064
- qcom,kpss-wdt-mdm9615
- qcom,kpss-wdt-msm8960
- const: qcom,kpss-timer
- const: qcom,msm-timer
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
items:
- const: sleep
clock-frequency:
description:
The frequency of the general purpose timer in Hz.
cpu-offset:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Per-CPU offset used when the timer is accessed without the CPU remapping
facilities. The offset is cpu-offset + (0x10000 * cpu-nr).
interrupts:
minItems: 1
maxItems: 5
sram:
maxItems: 1
description:
A reference to an region residing in IMEM(on-chip SRAM), which contains
the system restart reason value populated by the bootloader.
required:
- compatible
- reg
- clocks
allOf:
- $ref: watchdog.yaml#
- if:
properties:
compatible:
contains:
const: qcom,kpss-wdt
then:
properties:
clock-frequency: false
cpu-offset: false
interrupts:
minItems: 1
items:
- description: Bark
- description: Bite
else:
properties:
interrupts:
minItems: 3
items:
- description: Debug
- description: First general purpose timer
- description: Second general purpose timer
- description: First watchdog
- description: Second watchdog
required:
- clock-frequency
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
watchdog@17c10000 {
compatible = "qcom,apss-wdt-sm8150", "qcom,kpss-wdt";
reg = <0x17c10000 0x1000>;
clocks = <&sleep_clk>;
interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
timeout-sec = <10>;
};
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
watchdog@200a000 {
compatible = "qcom,kpss-wdt-ipq8064", "qcom,kpss-timer", "qcom,msm-timer";
interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>,
<GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>,
<GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>,
<GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>,
<GIC_PPI 5 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
reg = <0x0200a000 0x100>;
clock-frequency = <25000000>;
clocks = <&sleep_clk>;
clock-names = "sleep";
cpu-offset = <0x80000>;
};
@@ -0,0 +1,46 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/ralink,rt2880-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Ralink Watchdog Timers
maintainers:
- Sergio Paracuellos <sergio.paracuellos@gmail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: ralink,rt2880-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
resets:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
watchdog@100 {
compatible = "ralink,rt2880-wdt";
reg = <0x120 0x10>;
clocks = <&clkref>;
resets = <&rstctrl 8>;
interrupt-parent = <&intc>;
interrupts = <1>;
};
@@ -0,0 +1,90 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/realtek,otto-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Realtek Otto watchdog timer
maintainers:
- Sander Vanheule <sander@svanheule.net>
description: |
The timer has two timeout phases. Both phases have a maximum duration of 32
prescaled clock ticks, which is ca. 43s with a bus clock of 200MHz. The
minimum duration of each phase is one tick. Each phase can trigger an
interrupt, although the phase 2 interrupt will occur with the system reset.
- Phase 1: During this phase, the WDT can be pinged to reset the timeout.
- Phase 2: Starts after phase 1 has timed out, and only serves to give the
system some time to clean up, or notify others that it's going to reset.
During this phase, pinging the WDT has no effect, and a reset is
unavoidable, unless the WDT is disabled.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- realtek,rtl8380-wdt
- realtek,rtl8390-wdt
- realtek,rtl9300-wdt
- realtek,rtl9310-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
items:
- description: interrupt specifier for pretimeout
- description: interrupt specifier for timeout
interrupt-names:
items:
- const: phase1
- const: phase2
realtek,reset-mode:
$ref: /schemas/types.yaml#/definitions/string
description: |
Specify how the system is reset after a timeout. Defaults to "cpu" if
left unspecified.
oneOf:
- description: Reset the entire chip
const: soc
- description: |
Reset the CPU and IPsec engine, but leave other peripherals untouched
const: cpu
- description: |
Reset the execution pointer, but don't actually reset any hardware
const: software
required:
- compatible
- reg
- clocks
- interrupts
- interrupt-names
unevaluatedProperties: false
examples:
- |
watchdog: watchdog@3150 {
compatible = "realtek,rtl8380-wdt";
reg = <0x3150 0xc>;
realtek,reset-mode = "soc";
clocks = <&lxbus_clock>;
timeout-sec = <20>;
interrupt-parent = <&rtlintc>;
interrupt-names = "phase1", "phase2";
interrupts = <19>, <18>;
};
...
@@ -0,0 +1,38 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/realtek,rtd1295-watchdog.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Realtek RTD1295 Watchdog
maintainers:
- Andreas Färber <afaerber@suse.de>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: realtek,rtd1295-watchdog
reg:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
watchdog@98007680 {
compatible = "realtek,rtd1295-watchdog";
reg = <0x98007680 0x100>;
clocks = <&osc27M>;
};
@@ -0,0 +1,99 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/renesas,r9a09g057-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas RZ/V2H(P) Watchdog Timer (WDT) Controller
maintainers:
- Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
properties:
compatible:
oneOf:
- items:
- enum:
- renesas,r9a09g047-wdt # RZ/G3E
- renesas,r9a09g056-wdt # RZ/V2N
- const: renesas,r9a09g057-wdt # RZ/V2H(P)
- items:
- const: renesas,r9a09g087-wdt # RZ/N2H
- const: renesas,r9a09g077-wdt # RZ/T2H
- enum:
- renesas,r9a09g057-wdt # RZ/V2H(P)
- renesas,r9a09g077-wdt # RZ/T2H
reg:
minItems: 1
maxItems: 2
clocks:
minItems: 1
items:
- description: Register access clock
- description: Main clock
clock-names:
minItems: 1
items:
- const: pclk
- const: oscclk
power-domains:
maxItems: 1
resets:
maxItems: 1
timeout-sec: true
required:
- compatible
- reg
- clocks
- clock-names
- power-domains
allOf:
- $ref: watchdog.yaml#
- if:
properties:
compatible:
contains:
const: renesas,r9a09g057-wdt
then:
properties:
reg:
maxItems: 1
clocks:
minItems: 2
clock-names:
minItems: 2
else:
properties:
clocks:
maxItems: 1
clock-names:
maxItems: 1
reg:
minItems: 2
resets: false
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/renesas,r9a09g057-cpg.h>
watchdog@14400000 {
compatible = "renesas,r9a09g057-wdt";
reg = <0x14400000 0x400>;
clocks = <&cpg CPG_MOD 0x4d>, <&cpg CPG_MOD 0x4e>;
clock-names = "pclk", "oscclk";
resets = <&cpg 0x76>;
power-domains = <&cpg>;
};
@@ -0,0 +1,114 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/renesas,rcar-gen3-wwdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas Window Watchdog Timer (WWDT) Controller
maintainers:
- Wolfram Sang <wsa+renesas@sang-engineering.com>
properties:
compatible:
oneOf:
- items:
- enum:
- renesas,r8a77970-wwdt # R-Car V3M
- renesas,r8a77980-wwdt # R-Car V3H
- const: renesas,rcar-gen3-wwdt
- items:
- enum:
- renesas,r8a779a0-wwdt # R-Car V3U
- renesas,r8a779f0-wwdt # R-Car S4
- renesas,r8a779g0-wwdt # R-Car V4H
- renesas,r8a779h0-wwdt # R-Car V4M
- const: renesas,rcar-gen4-wwdt
reg:
maxItems: 1
interrupts:
items:
- description: Pretimeout, 75% of overflow reached
- description: Error occurred
interrupt-names:
items:
- const: pretimeout
- const: error
clocks:
items:
- description: Counting clock
- description: Bus clock
clock-names:
items:
- const: cnt
- const: bus
resets:
minItems: 1
maxItems: 2
reset-names:
minItems: 1
items:
- const: cnt
- const: bus
power-domains:
maxItems: 1
required:
- compatible
- reg
- interrupts
- interrupt-names
- clocks
- clock-names
- resets
- reset-names
- power-domains
allOf:
- $ref: watchdog.yaml#
- if:
properties:
compatible:
contains:
enum:
- renesas,r8a779a0-wwdt
- renesas,r8a779f0-wwdt
then:
properties:
resets:
minItems: 2
reset-names:
minItems: 2
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/r8a779g0-cpg-mssr.h>
#include <dt-bindings/power/r8a779g0-sysc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
watchdog@ffc90000 {
compatible = "renesas,r8a779g0-wwdt",
"renesas,rcar-gen4-wwdt";
reg = <0xffc90000 0x10>;
interrupts = <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "pretimeout", "error";
clocks = <&cpg CPG_CORE R8A779G0_CLK_R>,
<&cpg CPG_CORE R8A779G0_CLK_SASYNCRT>;
clock-names = "cnt", "bus";
power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
resets = <&cpg 1200>;
reset-names = "cnt";
};
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/renesas,rza-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas RZ/A Watchdog Timer (WDT) Controller
maintainers:
- Wolfram Sang <wsa+renesas@sang-engineering.com>
properties:
compatible:
items:
- enum:
- renesas,r7s72100-wdt # RZ/A1
- renesas,r7s9210-wdt # RZ/A2
- const: renesas,rza-wdt # RZ/A
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
timeout-sec: true
required:
- compatible
- reg
- clocks
allOf:
- $ref: watchdog.yaml#
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/r7s72100-clock.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
watchdog@fcfe0000 {
compatible = "renesas,r7s72100-wdt", "renesas,rza-wdt";
reg = <0xfcfe0000 0x6>;
interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&p0_clk>;
};
@@ -0,0 +1,112 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/renesas,rzg2l-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas RZ/G2L Watchdog Timer (WDT) Controller
maintainers:
- Biju Das <biju.das.jz@bp.renesas.com>
properties:
compatible:
oneOf:
- items:
- enum:
- renesas,r9a07g043-wdt # RZ/G2UL and RZ/Five
- renesas,r9a07g044-wdt # RZ/G2{L,LC}
- renesas,r9a07g054-wdt # RZ/V2L
- renesas,r9a08g045-wdt # RZ/G3S
- renesas,r9a08g046-wdt # RZ/G3L
- const: renesas,rzg2l-wdt
- items:
- const: renesas,r9a09g011-wdt # RZ/V2M
- const: renesas,rzv2m-wdt # RZ/V2M
reg:
maxItems: 1
interrupts:
minItems: 1
items:
- description: Timeout
- description: Parity error
interrupt-names:
minItems: 1
items:
- const: wdt
- const: perrout
clocks:
items:
- description: Register access clock
- description: Main clock
clock-names:
items:
- const: pclk
- const: oscclk
power-domains:
maxItems: 1
resets:
maxItems: 1
timeout-sec: true
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- power-domains
- resets
allOf:
- $ref: watchdog.yaml#
- if:
properties:
compatible:
contains:
const: renesas,rzg2l-wdt
then:
properties:
interrupts:
minItems: 2
interrupt-names:
minItems: 2
required:
- interrupt-names
else:
properties:
interrupts:
maxItems: 1
interrupt-names:
maxItems: 1
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/r9a07g044-cpg.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
watchdog@12800800 {
compatible = "renesas,r9a07g044-wdt",
"renesas,rzg2l-wdt";
reg = <0x12800800 0x400>;
clocks = <&cpg CPG_MOD R9A07G044_WDT0_PCLK>,
<&cpg CPG_MOD R9A07G044_WDT0_CLK>;
clock-names = "pclk", "oscclk";
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "wdt", "perrout";
resets = <&cpg R9A07G044_WDT0_PRESETN>;
power-domains = <&cpg>;
};
@@ -0,0 +1,49 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/renesas,rzn1-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas RZ/N1 Watchdog Timer (WDT) Controller
maintainers:
- Wolfram Sang <wsa+renesas@sang-engineering.com>
properties:
compatible:
items:
- const: renesas,r9a06g032-wdt # RZ/N1D
- const: renesas,rzn1-wdt # RZ/N1
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
timeout-sec: true
required:
- compatible
- reg
- clocks
allOf:
- $ref: watchdog.yaml#
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/r9a06g032-sysctrl.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
watchdog@40008000 {
compatible = "renesas,r9a06g032-wdt", "renesas,rzn1-wdt";
reg = <0x40008000 0x1000>;
interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
clocks = <&sysctrl R9A06G032_CLK_WATCHDOG>;
};
@@ -0,0 +1,106 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/renesas,wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas Watchdog Timer (WDT) Controller
maintainers:
- Wolfram Sang <wsa+renesas@sang-engineering.com>
- Geert Uytterhoeven <geert+renesas@glider.be>
properties:
compatible:
oneOf:
- items:
- enum:
- renesas,r8a7742-wdt # RZ/G1H
- renesas,r8a7743-wdt # RZ/G1M
- renesas,r8a7744-wdt # RZ/G1N
- renesas,r8a7745-wdt # RZ/G1E
- renesas,r8a77470-wdt # RZ/G1C
- renesas,r8a7790-wdt # R-Car H2
- renesas,r8a7791-wdt # R-Car M2-W
- renesas,r8a7792-wdt # R-Car V2H
- renesas,r8a7793-wdt # R-Car M2-N
- renesas,r8a7794-wdt # R-Car E2
- const: renesas,rcar-gen2-wdt # R-Car Gen2 and RZ/G1
- items:
- enum:
- renesas,r8a774a1-wdt # RZ/G2M
- renesas,r8a774b1-wdt # RZ/G2N
- renesas,r8a774c0-wdt # RZ/G2E
- renesas,r8a774e1-wdt # RZ/G2H
- renesas,r8a7795-wdt # R-Car H3
- renesas,r8a7796-wdt # R-Car M3-W
- renesas,r8a77961-wdt # R-Car M3-W+
- renesas,r8a77965-wdt # R-Car M3-N
- renesas,r8a77970-wdt # R-Car V3M
- renesas,r8a77980-wdt # R-Car V3H
- renesas,r8a77990-wdt # R-Car E3
- renesas,r8a77995-wdt # R-Car D3
- const: renesas,rcar-gen3-wdt # R-Car Gen3 and RZ/G2
- items:
- enum:
- renesas,r8a779a0-wdt # R-Car V3U
- renesas,r8a779f0-wdt # R-Car S4-8
- renesas,r8a779g0-wdt # R-Car V4H
- renesas,r8a779h0-wdt # R-Car V4M
- const: renesas,rcar-gen4-wdt # R-Car Gen4
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
power-domains:
maxItems: 1
resets:
maxItems: 1
timeout-sec: true
required:
- compatible
- reg
- clocks
- interrupts
- power-domains
allOf:
- $ref: watchdog.yaml#
- if:
not:
properties:
compatible:
contains:
const: renesas,r8a77980-wdt
then:
required:
- resets
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/r8a7795-cpg-mssr.h>
#include <dt-bindings/power/r8a7795-sysc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
wdt0: watchdog@e6020000 {
compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt";
reg = <0xe6020000 0x0c>;
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cpg CPG_MOD 402>;
power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
resets = <&cpg 402>;
timeout-sec = <60>;
};
@@ -0,0 +1,164 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/samsung-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung SoC Watchdog Timer Controller
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description: |+
The Samsung's Watchdog controller is used for resuming system operation
after a preset amount of time during which the WDT reset event has not
occurred.
properties:
compatible:
oneOf:
- enum:
- google,gs101-wdt # for Google gs101
- samsung,s3c6410-wdt # for S3C6410, S5PV210 and Exynos4
- samsung,exynos5250-wdt # for Exynos5250
- samsung,exynos5420-wdt # for Exynos5420
- samsung,exynos7-wdt # for Exynos7
- samsung,exynos850-wdt # for Exynos850
- samsung,exynos990-wdt # for Exynos990
- samsung,exynosautov9-wdt # for Exynosautov9
- samsung,exynosautov920-wdt # for Exynosautov920
- items:
- enum:
- tesla,fsd-wdt
- const: samsung,exynos7-wdt
reg:
maxItems: 1
clocks:
minItems: 1
maxItems: 2
clock-names:
minItems: 1
maxItems: 2
interrupts:
maxItems: 1
samsung,cluster-index:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1, 2]
description:
Index of CPU cluster on which watchdog is running (in case of Exynos850,
Exynos990 or Google gs101).
samsung,syscon-phandle:
$ref: /schemas/types.yaml#/definitions/phandle
description:
Phandle to the PMU system controller node (in case of Exynos5250,
Exynos5420, Exynos7, Exynos850, Exynos990 and gs101).
required:
- compatible
- clocks
- clock-names
- interrupts
- reg
allOf:
- $ref: watchdog.yaml#
- if:
properties:
compatible:
contains:
enum:
- google,gs101-wdt
- samsung,exynos850-wdt
- samsung,exynosautov9-wdt
- samsung,exynosautov920-wdt
then:
properties:
clocks:
items:
- description: Bus clock, used for register interface
- description: Source clock (driving watchdog counter)
clock-names:
items:
- const: watchdog
- const: watchdog_src
samsung,cluster-index:
enum: [0, 1]
required:
- samsung,cluster-index
- samsung,syscon-phandle
- if:
properties:
compatible:
contains:
enum:
- samsung,exynos990-wdt
then:
properties:
clocks:
items:
- description: Bus clock, used for register interface
- description: Source clock (driving watchdog counter)
clock-names:
items:
- const: watchdog
- const: watchdog_src
required:
- samsung,cluster-index
- samsung,syscon-phandle
- if:
properties:
compatible:
contains:
enum:
- samsung,exynos5250-wdt
- samsung,exynos5420-wdt
- samsung,exynos7-wdt
then:
properties:
clocks:
items:
- description: Bus clock, which is also a source clock
clock-names:
items:
- const: watchdog
samsung,cluster-index: false
required:
- samsung,syscon-phandle
- if:
properties:
compatible:
contains:
enum:
- samsung,s3c6410-wdt
then:
properties:
clocks:
items:
- description: Bus clock, which is also a source clock
clock-names:
items:
- const: watchdog
samsung,cluster-index: false
samsung,syscon-phandle: false
unevaluatedProperties: false
examples:
- |
watchdog@101d0000 {
compatible = "samsung,exynos5250-wdt";
reg = <0x101D0000 0x100>;
interrupts = <0 42 0>;
clocks = <&clock 336>;
clock-names = "watchdog";
samsung,syscon-phandle = <&pmu_syscon>;
};
@@ -0,0 +1,113 @@
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/snps,dw-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Synopsys Designware Watchdog Timer
maintainers:
- Jamie Iles <jamie@jamieiles.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- const: snps,dw-wdt
- items:
- enum:
- rockchip,px30-wdt
- rockchip,rk3066-wdt
- rockchip,rk3128-wdt
- rockchip,rk3188-wdt
- rockchip,rk3228-wdt
- rockchip,rk3288-wdt
- rockchip,rk3308-wdt
- rockchip,rk3328-wdt
- rockchip,rk3368-wdt
- rockchip,rk3399-wdt
- rockchip,rk3506-wdt
- rockchip,rk3528-wdt
- rockchip,rk3562-wdt
- rockchip,rk3568-wdt
- rockchip,rk3576-wdt
- rockchip,rk3588-wdt
- rockchip,rv1103b-wdt
- rockchip,rv1108-wdt
- rockchip,rv1126-wdt
- const: snps,dw-wdt
reg:
maxItems: 1
interrupts:
description: DW Watchdog pre-timeout interrupt
maxItems: 1
clocks:
minItems: 1
items:
- description: Watchdog timer reference clock
- description: APB3 interface clock
clock-names:
minItems: 1
items:
- const: tclk
- const: pclk
resets:
description: Phandle to the DW Watchdog reset lane
maxItems: 1
snps,watchdog-tops:
$ref: /schemas/types.yaml#/definitions/uint32-array
description: |
DW APB Watchdog custom timer intervals - Timeout Period ranges (TOPs).
Each TOP is a number loaded into the watchdog counter at the moment of
the timer restart. The counter decrementing happens each tick of the
reference clock. Therefore the TOPs array is equivalent to an array of
the timer expiration intervals supported by the DW APB Watchdog. Note
DW APB Watchdog IP-core might be synthesized with fixed TOP values,
in which case this property is unnecessary with default TOPs utilized.
default: [0x0001000 0x0002000 0x0004000 0x0008000
0x0010000 0x0020000 0x0040000 0x0080000
0x0100000 0x0200000 0x0400000 0x0800000
0x1000000 0x2000000 0x4000000 0x8000000]
minItems: 16
maxItems: 16
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
watchdog@ffd02000 {
compatible = "snps,dw-wdt";
reg = <0xffd02000 0x1000>;
interrupts = <0 171 4>;
clocks = <&per_base_clk>;
resets = <&wdt_rst>;
};
- |
watchdog@ffd02000 {
compatible = "snps,dw-wdt";
reg = <0xffd02000 0x1000>;
interrupts = <0 171 4>;
clocks = <&per_base_clk>;
clock-names = "tclk";
snps,watchdog-tops = <0x000000FF 0x000001FF 0x000003FF
0x000007FF 0x0000FFFF 0x0001FFFF
0x0003FFFF 0x0007FFFF 0x000FFFFF
0x001FFFFF 0x003FFFFF 0x007FFFFF
0x00FFFFFF 0x01FFFFFF 0x03FFFFFF
0x07FFFFFF>;
};
...
@@ -0,0 +1,30 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/socionext,uniphier-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Socionext UniPhier watchdog timer
maintainers:
- Keiji Hayashibara <hayashibara.keiji@socionext.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: socionext,uniphier-wdt
required:
- compatible
unevaluatedProperties: false
examples:
- |
// The UniPhier watchdog should be a subnode of a "syscon" compatible node.
watchdog {
compatible = "socionext,uniphier-wdt";
};
@@ -0,0 +1,64 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/sprd,sp9860-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Spreadtrum SP9860 watchdog timer
maintainers:
- Orson Zhai <orsonzhai@gmail.com>
- Baolin Wang <baolin.wang7@gmail.com>
- Chunyan Zhang <zhang.lyra@gmail.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: sprd,sp9860-wdt
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 2
clock-names:
items:
- const: enable
- const: rtc_enable
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- timeout-sec
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/sprd,sc9860-clk.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
watchdog@40310000 {
compatible = "sprd,sp9860-wdt";
reg = <0 0x40310000 0 0x1000>;
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&aon_gate CLK_APCPU_WDG_EB>, <&aon_gate CLK_AP_WDG_RTC_EB>;
clock-names = "enable", "rtc_enable";
timeout-sec = <12>;
};
};
...
@@ -0,0 +1,64 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/st,stm32-iwdg.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectronics STM32 Independent WatchDoG (IWDG)
maintainers:
- Yannick Fertre <yannick.fertre@foss.st.com>
- Christophe Roullier <christophe.roullier@foss.st.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- st,stm32-iwdg
- st,stm32mp1-iwdg
reg:
maxItems: 1
clocks:
items:
- description: Low speed clock
- description: Optional peripheral clock
minItems: 1
clock-names:
items:
enum:
- lsi
- pclk
minItems: 1
maxItems: 2
interrupts:
maxItems: 1
description: Pre-timeout interrupt from the watchdog.
wakeup-source: true
required:
- compatible
- reg
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/stm32mp1-clks.h>
watchdog@5a002000 {
compatible = "st,stm32mp1-iwdg";
reg = <0x5a002000 0x400>;
clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
clock-names = "pclk", "lsi";
timeout-sec = <32>;
};
...
@@ -0,0 +1,41 @@
STMicroelectronics Low Power Controller (LPC) - Watchdog
========================================================
LPC currently supports Watchdog OR Real Time Clock OR Clocksource
functionality.
[See: ../rtc/rtc-st-lpc.txt for RTC options]
[See: ../timer/st,stih407-lpc for Clocksource options]
Required properties
- compatible : Should be: "st,stih407-lpc"
- reg : LPC registers base address + size
- interrupts : LPC interrupt line number and associated flags
- clocks : Clock used by LPC device (See: ../clock/clock-bindings.txt)
- st,lpc-mode : The LPC can run either one of three modes:
ST_LPC_MODE_RTC [0]
ST_LPC_MODE_WDT [1]
ST_LPC_MODE_CLKSRC [2]
One (and only one) mode must be selected.
Required properties [watchdog mode]
- st,syscfg : Phandle to syscfg node used to enable watchdog and configure
CPU reset type.
- timeout-sec : Watchdog timeout in seconds
Optional properties [watchdog mode]
- st,warm-reset : If present reset type will be 'warm' - if not it will be cold
Example:
lpc@fde05000 {
compatible = "st,stih407-lpc";
reg = <0xfde05000 0x1000>;
clocks = <&clk_s_d3_flexgen CLK_LPC_0>;
st,syscfg = <&syscfg_core>;
timeout-sec = <120>;
st,lpc-mode = <ST_LPC_MODE_WDT>;
st,warm-reset;
};
@@ -0,0 +1,93 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/starfive,jh7100-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: StarFive Watchdog for JH7100 and JH7110 SoC
maintainers:
- Xingyu Wu <xingyu.wu@starfivetech.com>
- Samin Guo <samin.guo@starfivetech.com>
description:
The JH7100 and JH7110 watchdog both are 32 bit counters. JH7100 watchdog
has only one timeout phase and reboots. And JH7110 watchdog has two
timeout phases. At the first phase, the signal of watchdog interrupt
output(WDOGINT) will rise when counter is 0. The counter will reload
the timeout value. And then, if counter decreases to 0 again and WDOGINT
isn't cleared, the watchdog will reset the system unless the watchdog
reset is disabled.
properties:
compatible:
oneOf:
- enum:
- starfive,jh7100-wdt
- starfive,jh7110-wdt
- items:
- enum:
- starfive,jh8100-wdt
- const: starfive,jh7110-wdt
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: APB clock
- description: Core clock
clock-names:
items:
- const: apb
- const: core
resets:
minItems: 1
maxItems: 2
required:
- compatible
- reg
- clocks
- clock-names
- resets
allOf:
- $ref: watchdog.yaml#
- if:
properties:
compatible:
contains:
enum:
- starfive,jh8100-wdt
then:
properties:
resets:
items:
- description: Core reset
else:
properties:
resets:
items:
- description: APB reset
- description: Core reset
unevaluatedProperties: false
examples:
- |
watchdog@12480000 {
compatible = "starfive,jh7100-wdt";
reg = <0x12480000 0x10000>;
clocks = <&clk 171>,
<&clk 172>;
clock-names = "apb", "core";
resets = <&rst 99>,
<&rst 100>;
};
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) Sunplus Co., Ltd. 2021
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/sunplus,sp7021-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Sunplus SoCs Watchdog
maintainers:
- XianTao Hu <xt.hu@cqplus1.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
const: sunplus,sp7021-wdt
reg:
items:
- description: watchdog registers regions
- description: miscellaneous control registers regions
clocks:
maxItems: 1
resets:
maxItems: 1
required:
- compatible
- reg
- clocks
- resets
additionalProperties: false
examples:
- |
watchdog: watchdog@9c000630 {
compatible = "sunplus,sp7021-wdt";
reg = <0x9c000630 0x08>, <0x9c000274 0x04>;
clocks = <&clkc 0x24>;
resets = <&rstc 0x14>;
};
...
@@ -0,0 +1,40 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/technologic,ts4800-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Technologic Systems TS-4800 Watchdog
maintainers:
- Eduard Bostina <egbostina@gmail.com>
properties:
compatible:
const: technologic,ts4800-wdt
syscon:
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: Phandle to the FPGA's syscon
- description: Offset to the watchdog register
description: Phandle / integers array that points to the syscon node which
describes the FPGA's syscon registers.
required:
- compatible
- syscon
allOf:
- $ref: watchdog.yaml#
unevaluatedProperties: false
examples:
- |
watchdog {
compatible = "technologic,ts4800-wdt";
syscon = <&syscon 0xe>;
timeout-sec = <10>;
};
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/technologic,ts7200-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Technologic Systems TS-72xx based SBCs watchdog
maintainers:
- Nikita Shubin <nikita.shubin@maquefel.me>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- const: technologic,ts7200-wdt
- items:
- enum:
- technologic,ts7300-wdt
- technologic,ts7260-wdt
- technologic,ts7250-wdt
- const: technologic,ts7200-wdt
reg:
items:
- description: control register
- description: feed register
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
watchdog@23800000 {
compatible = "technologic,ts7200-wdt";
reg = <0x23800000 0x01>, <0x23c00000 0x01>;
timeout-sec = <30>;
};
...
@@ -0,0 +1,55 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/ti,davinci-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI DaVinci/Keystone Watchdog Timer Controller
maintainers:
- Kousik Sanagavarapu <five231003@gmail.com>
description: |
TI's Watchdog Timer Controller for DaVinci and Keystone Processors.
Datasheets
Davinci DM646x - https://www.ti.com/lit/ug/spruer5b/spruer5b.pdf
Keystone - https://www.ti.com/lit/ug/sprugv5a/sprugv5a.pdf
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- items:
- const: ti,keystone-wdt
- const: ti,davinci-wdt
- items:
- const: ti,davinci-wdt
reg:
maxItems: 1
power-domains:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
wdt: watchdog@22f0080 {
compatible = "ti,keystone-wdt", "ti,davinci-wdt";
reg = <0x022f0080 0x80>;
clocks = <&clkwdtimer0>;
};
...
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/ti,omap2-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI OMAP Watchdog Timer Controller
maintainers:
- Aaro Koskinen <aaro.koskinen@iki.fi>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- enum:
- ti,omap2-wdt
- ti,omap3-wdt
- items:
- enum:
- ti,am4372-wdt
- ti,omap4-wdt
- ti,omap5-wdt
- const: ti,omap3-wdt
reg:
maxItems: 1
interrupts:
maxItems: 1
ti,hwmods:
description: Name of the hardware module associated with the watchdog.
$ref: /schemas/types.yaml#/definitions/string
deprecated: true
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
watchdog@48314000 {
compatible = "ti,omap3-wdt";
reg = <0x48314000 0x80>;
ti,hwmods = "wd_timer2";
};
@@ -0,0 +1,88 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/ti,rti-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments K3 SoC Watchdog Timer
maintainers:
- Tero Kristo <t-kristo@ti.com>
description:
The TI K3 SoC watchdog timer is implemented via the RTI (Real Time
Interrupt) IP module. This timer adds a support for windowed watchdog
mode, which will signal an error if it is pinged outside the watchdog
time window, meaning either too early or too late. The error signal
generated can be routed to either interrupt a safety controller or
to directly reset the SoC.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- ti,am62l-rti-wdt
- ti,j7-rti-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
power-domains:
maxItems: 1
memory-region:
maxItems: 1
description:
Contains the watchdog reserved memory. It is optional.
In the reserved memory, the specified values, which are
PON_REASON_SOF_NUM(0xBBBBCCCC), PON_REASON_MAGIC_NUM(0xDDDDDDDD),
and PON_REASON_EOF_NUM(0xCCCCBBBB), are pre-stored at the first
3 * 4 bytes to tell that last boot was caused by watchdog reset.
Once the PON reason is captured by driver(rti_wdt.c), the driver
is supposed to wipe the whole memory region. Surely, if this
property is set, at least 12 bytes reserved memory starting from
specific memory address(0xa220000) should be set. More please
refer to example.
required:
- compatible
- reg
- clocks
- power-domains
unevaluatedProperties: false
examples:
- |
/*
* RTI WDT in main domain on J721e SoC. Assigned clocks are used to
* select the source clock for the watchdog, forcing it to tick with
* a 32kHz clock in this case. Add a reserved memory(optional) to keep
* the watchdog reset cause persistent, which was be written in 12 bytes
* starting from 0xa2200000 by RTI Watchdog Firmware, then make it
* possible to get watchdog reset cause in driver.
*
* Reserved memory should be defined as follows:
* reserved-memory {
* wdt_reset_memory_region: wdt-memory@a2200000 {
* reg = <0x00 0xa2200000 0x00 0x1000>;
* no-map;
* };
* }
*/
#include <dt-bindings/soc/ti,sci_pm_domain.h>
watchdog@2200000 {
compatible = "ti,j7-rti-wdt";
reg = <0x2200000 0x100>;
clocks = <&k3_clks 252 1>;
power-domains = <&k3_pds 252 TI_SCI_PD_EXCLUSIVE>;
assigned-clocks = <&k3_clks 252 1>;
assigned-clock-parents = <&k3_clks 252 5>;
memory-region = <&wdt_reset_memory_region>;
};
@@ -0,0 +1,48 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2020 Toshiba Electronic Devices & Storage Corporation
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/toshiba,visconti-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Toshiba Visconti SoCs PIUWDT Watchdog timer
maintainers:
- Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- toshiba,visconti-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/toshiba,tmpv770x.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
wdt: watchdog@28330000 {
compatible = "toshiba,visconti-wdt";
reg = <0 0x28330000 0 0x1000>;
timeout-sec = <20>;
clocks = <&pismu TMPV770X_CLK_WDTCLK>;
};
};
@@ -0,0 +1,33 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/watchdog.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Watchdog Common Properties
maintainers:
- Guenter Roeck <linux@roeck-us.net>
- Wim Van Sebroeck <wim@linux-watchdog.org>
description: |
This document describes generic bindings which can be used to
describe watchdog devices in a device tree.
select:
properties:
$nodename:
pattern: "^watchdog(@.*|-([0-9]|[1-9][0-9]+))?$"
properties:
$nodename:
pattern: "^(pmic|timer|watchdog)(@.*|-([0-9]|[1-9][0-9]+))?$"
timeout-sec:
maxItems: 1
description:
Contains the watchdog timeout in seconds.
additionalProperties: true
...
@@ -0,0 +1,53 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/xlnx,versal-wwdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Xilinx Versal window watchdog timer controller
maintainers:
- Neeli Srinivas <srinivas.neeli@amd.com>
description:
Versal watchdog intellectual property uses window watchdog mode.
Window watchdog timer(WWDT) contains closed(first) and open(second)
window with 32 bit width. Write to the watchdog timer within
predefined window periods of time. This means a period that is not
too soon and a period that is not too late. The WWDT has to be
restarted within the open window time. If software tries to restart
WWDT outside of the open window time period, it generates a reset.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- xlnx,versal-wwdt
reg:
maxItems: 1
clocks:
maxItems: 1
power-domains:
maxItems: 1
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
watchdog@fd4d0000 {
compatible = "xlnx,versal-wwdt";
reg = <0xfd4d0000 0x10000>;
clocks = <&clock25>;
timeout-sec = <30>;
};
...
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/xlnx,xps-timebase-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Xilinx AXI/PLB softcore and window Watchdog Timer
maintainers:
- Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
- Srinivas Neeli <srinivas.neeli@amd.com>
description:
The Timebase watchdog timer(WDT) is a free-running 32 bit counter.
WDT uses a dual-expiration architecture. After one expiration of
the timeout interval, an interrupt is generated and the WDT state
bit is set to one in the status register. If the state bit is not
cleared (by writing a one to the state bit) before the next
expiration of the timeout interval, a WDT reset is generated.
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
enum:
- xlnx,xps-timebase-wdt-1.01.a
- xlnx,xps-timebase-wdt-1.00.a
reg:
maxItems: 1
clocks:
maxItems: 1
clock-frequency:
description: Frequency of clock in Hz
xlnx,wdt-interval:
$ref: /schemas/types.yaml#/definitions/uint32
description: Watchdog timeout interval
minimum: 8
maximum: 32
xlnx,wdt-enable-once:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
description: If watchdog is configured as enable once,
then the watchdog cannot be disabled after
it has been enabled.
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
watchdog@40100000 {
compatible = "xlnx,xps-timebase-wdt-1.00.a";
reg = <0x40100000 0x1000>;
clock-frequency = <50000000>;
clocks = <&clkc 15>;
xlnx,wdt-enable-once = <0x0>;
xlnx,wdt-interval = <0x1b>;
};
...
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/zii,rave-sp-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Zodiac Inflight Innovations RAVE Supervisory Processor Watchdog
maintainers:
- Frank Li <Frank.Li@nxp.com>
description:
RAVE SP watchdog device is a "MFD cell" device corresponding to
watchdog functionality of RAVE Supervisory Processor. It is expected
that its Device Tree node is specified as a child of the node
corresponding to the parent RAVE SP device (as documented in
Documentation/devicetree/bindings/mfd/zii,rave-sp.yaml)
properties:
compatible:
enum:
- zii,rave-sp-watchdog
- zii,rave-sp-watchdog-legacy
nvmem-cell-names:
items:
- const: wdt_timeout
nvmem-cells:
maxItems: 1
required:
- compatible
allOf:
- $ref: watchdog.yaml#
unevaluatedProperties: false
examples:
- |
watchdog {
compatible = "zii,rave-sp-watchdog";
nvmem-cells = <&wdt_timeout>;
nvmem-cell-names = "wdt_timeout";
};
@@ -0,0 +1,49 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/zii,rave-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Zodiac RAVE Watchdog Timer
maintainers:
- Martyn Welch <martyn.welch@collabora.co.uk>
- Guenter Roeck <linux@roeck-us.net>
- Wim Van Sebroeck <wim@iguana.be>
properties:
compatible:
const: zii,rave-wdt
reg:
maxItems: 1
description: i2c slave address of device, usually 0x38
reset-duration-ms:
description:
Duration of the pulse generated when the watchdog times
out.
required:
- compatible
- reg
allOf:
- $ref: watchdog.yaml#
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
watchdog@38 {
compatible = "zii,rave-wdt";
reg = <0x38>;
timeout-sec = <30>;
reset-duration-ms = <30>;
};
};