162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/watchdog/renesas,wdt.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Renesas Watchdog Timer (WDT) Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Wolfram Sang <wsa+renesas@sang-engineering.com>
1162306a36Sopenharmony_ci  - Geert Uytterhoeven <geert+renesas@glider.be>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciproperties:
1462306a36Sopenharmony_ci  compatible:
1562306a36Sopenharmony_ci    oneOf:
1662306a36Sopenharmony_ci      - items:
1762306a36Sopenharmony_ci          - enum:
1862306a36Sopenharmony_ci              - renesas,r7s72100-wdt     # RZ/A1
1962306a36Sopenharmony_ci              - renesas,r7s9210-wdt      # RZ/A2
2062306a36Sopenharmony_ci          - const: renesas,rza-wdt       # RZ/A
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci      - items:
2362306a36Sopenharmony_ci          - enum:
2462306a36Sopenharmony_ci              - renesas,r9a06g032-wdt    # RZ/N1D
2562306a36Sopenharmony_ci          - const: renesas,rzn1-wdt      # RZ/N1
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci      - items:
2862306a36Sopenharmony_ci          - enum:
2962306a36Sopenharmony_ci              - renesas,r9a07g043-wdt    # RZ/G2UL and RZ/Five
3062306a36Sopenharmony_ci              - renesas,r9a07g044-wdt    # RZ/G2{L,LC}
3162306a36Sopenharmony_ci              - renesas,r9a07g054-wdt    # RZ/V2L
3262306a36Sopenharmony_ci          - const: renesas,rzg2l-wdt
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci      - items:
3562306a36Sopenharmony_ci          - enum:
3662306a36Sopenharmony_ci              - renesas,r9a09g011-wdt    # RZ/V2M
3762306a36Sopenharmony_ci          - const: renesas,rzv2m-wdt     # RZ/V2M
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci      - items:
4062306a36Sopenharmony_ci          - enum:
4162306a36Sopenharmony_ci              - renesas,r8a7742-wdt      # RZ/G1H
4262306a36Sopenharmony_ci              - renesas,r8a7743-wdt      # RZ/G1M
4362306a36Sopenharmony_ci              - renesas,r8a7744-wdt      # RZ/G1N
4462306a36Sopenharmony_ci              - renesas,r8a7745-wdt      # RZ/G1E
4562306a36Sopenharmony_ci              - renesas,r8a77470-wdt     # RZ/G1C
4662306a36Sopenharmony_ci              - renesas,r8a7790-wdt      # R-Car H2
4762306a36Sopenharmony_ci              - renesas,r8a7791-wdt      # R-Car M2-W
4862306a36Sopenharmony_ci              - renesas,r8a7792-wdt      # R-Car V2H
4962306a36Sopenharmony_ci              - renesas,r8a7793-wdt      # R-Car M2-N
5062306a36Sopenharmony_ci              - renesas,r8a7794-wdt      # R-Car E2
5162306a36Sopenharmony_ci          - const: renesas,rcar-gen2-wdt # R-Car Gen2 and RZ/G1
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci      - items:
5462306a36Sopenharmony_ci          - enum:
5562306a36Sopenharmony_ci              - renesas,r8a774a1-wdt     # RZ/G2M
5662306a36Sopenharmony_ci              - renesas,r8a774b1-wdt     # RZ/G2N
5762306a36Sopenharmony_ci              - renesas,r8a774c0-wdt     # RZ/G2E
5862306a36Sopenharmony_ci              - renesas,r8a774e1-wdt     # RZ/G2H
5962306a36Sopenharmony_ci              - renesas,r8a7795-wdt      # R-Car H3
6062306a36Sopenharmony_ci              - renesas,r8a7796-wdt      # R-Car M3-W
6162306a36Sopenharmony_ci              - renesas,r8a77961-wdt     # R-Car M3-W+
6262306a36Sopenharmony_ci              - renesas,r8a77965-wdt     # R-Car M3-N
6362306a36Sopenharmony_ci              - renesas,r8a77970-wdt     # R-Car V3M
6462306a36Sopenharmony_ci              - renesas,r8a77980-wdt     # R-Car V3H
6562306a36Sopenharmony_ci              - renesas,r8a77990-wdt     # R-Car E3
6662306a36Sopenharmony_ci              - renesas,r8a77995-wdt     # R-Car D3
6762306a36Sopenharmony_ci          - const: renesas,rcar-gen3-wdt # R-Car Gen3 and RZ/G2
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci      - items:
7062306a36Sopenharmony_ci          - enum:
7162306a36Sopenharmony_ci              - renesas,r8a779a0-wdt     # R-Car V3U
7262306a36Sopenharmony_ci              - renesas,r8a779f0-wdt     # R-Car S4-8
7362306a36Sopenharmony_ci              - renesas,r8a779g0-wdt     # R-Car V4H
7462306a36Sopenharmony_ci          - const: renesas,rcar-gen4-wdt # R-Car Gen4
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci  reg:
7762306a36Sopenharmony_ci    maxItems: 1
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci  interrupts:
8062306a36Sopenharmony_ci    minItems: 1
8162306a36Sopenharmony_ci    items:
8262306a36Sopenharmony_ci      - description: Timeout
8362306a36Sopenharmony_ci      - description: Parity error
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci  interrupt-names:
8662306a36Sopenharmony_ci    minItems: 1
8762306a36Sopenharmony_ci    items:
8862306a36Sopenharmony_ci      - const: wdt
8962306a36Sopenharmony_ci      - const: perrout
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci  clocks:
9262306a36Sopenharmony_ci    minItems: 1
9362306a36Sopenharmony_ci    items:
9462306a36Sopenharmony_ci      - description: Register access clock
9562306a36Sopenharmony_ci      - description: Main clock
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci  clock-names:
9862306a36Sopenharmony_ci    minItems: 1
9962306a36Sopenharmony_ci    items:
10062306a36Sopenharmony_ci      - const: pclk
10162306a36Sopenharmony_ci      - const: oscclk
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci  power-domains:
10462306a36Sopenharmony_ci    maxItems: 1
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci  resets:
10762306a36Sopenharmony_ci    maxItems: 1
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci  timeout-sec: true
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_cirequired:
11262306a36Sopenharmony_ci  - compatible
11362306a36Sopenharmony_ci  - reg
11462306a36Sopenharmony_ci  - interrupts
11562306a36Sopenharmony_ci  - clocks
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ciallOf:
11862306a36Sopenharmony_ci  - $ref: watchdog.yaml#
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci  - if:
12162306a36Sopenharmony_ci      not:
12262306a36Sopenharmony_ci        properties:
12362306a36Sopenharmony_ci          compatible:
12462306a36Sopenharmony_ci            contains:
12562306a36Sopenharmony_ci              enum:
12662306a36Sopenharmony_ci                - renesas,rza-wdt
12762306a36Sopenharmony_ci                - renesas,rzn1-wdt
12862306a36Sopenharmony_ci    then:
12962306a36Sopenharmony_ci      required:
13062306a36Sopenharmony_ci        - power-domains
13162306a36Sopenharmony_ci        - resets
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci  - if:
13462306a36Sopenharmony_ci      properties:
13562306a36Sopenharmony_ci        compatible:
13662306a36Sopenharmony_ci          contains:
13762306a36Sopenharmony_ci            enum:
13862306a36Sopenharmony_ci              - renesas,rzg2l-wdt
13962306a36Sopenharmony_ci              - renesas,rzv2m-wdt
14062306a36Sopenharmony_ci    then:
14162306a36Sopenharmony_ci      properties:
14262306a36Sopenharmony_ci        clocks:
14362306a36Sopenharmony_ci          minItems: 2
14462306a36Sopenharmony_ci        clock-names:
14562306a36Sopenharmony_ci          minItems: 2
14662306a36Sopenharmony_ci      required:
14762306a36Sopenharmony_ci        - clock-names
14862306a36Sopenharmony_ci    else:
14962306a36Sopenharmony_ci      properties:
15062306a36Sopenharmony_ci        clocks:
15162306a36Sopenharmony_ci          maxItems: 1
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci  - if:
15462306a36Sopenharmony_ci      properties:
15562306a36Sopenharmony_ci        compatible:
15662306a36Sopenharmony_ci          contains:
15762306a36Sopenharmony_ci            enum:
15862306a36Sopenharmony_ci              - renesas,rzg2l-wdt
15962306a36Sopenharmony_ci    then:
16062306a36Sopenharmony_ci      properties:
16162306a36Sopenharmony_ci        interrupts:
16262306a36Sopenharmony_ci          minItems: 2
16362306a36Sopenharmony_ci        interrupt-names:
16462306a36Sopenharmony_ci          minItems: 2
16562306a36Sopenharmony_ci      required:
16662306a36Sopenharmony_ci        - interrupt-names
16762306a36Sopenharmony_ci    else:
16862306a36Sopenharmony_ci      properties:
16962306a36Sopenharmony_ci        interrupts:
17062306a36Sopenharmony_ci          maxItems: 1
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ciadditionalProperties: false
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ciexamples:
17562306a36Sopenharmony_ci  - |
17662306a36Sopenharmony_ci    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
17762306a36Sopenharmony_ci    #include <dt-bindings/power/r8a7795-sysc.h>
17862306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
17962306a36Sopenharmony_ci    wdt0: watchdog@e6020000 {
18062306a36Sopenharmony_ci        compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt";
18162306a36Sopenharmony_ci        reg = <0xe6020000 0x0c>;
18262306a36Sopenharmony_ci        interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
18362306a36Sopenharmony_ci        clocks = <&cpg CPG_MOD 402>;
18462306a36Sopenharmony_ci        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
18562306a36Sopenharmony_ci        resets = <&cpg 402>;
18662306a36Sopenharmony_ci        timeout-sec = <60>;
18762306a36Sopenharmony_ci    };
188