xref: /src/sys/contrib/device-tree/Bindings/watchdog/renesas,wdt.yaml (revision b1bebaaba9b9c0ddfe503c43ca8e9e3917ee2c57)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/watchdog/renesas,wdt.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Renesas Watchdog Timer (WDT) Controller
8
9maintainers:
10  - Wolfram Sang <wsa+renesas@sang-engineering.com>
11  - Geert Uytterhoeven <geert+renesas@glider.be>
12
13properties:
14  compatible:
15    oneOf:
16      - items:
17          - enum:
18              - renesas,r7s72100-wdt     # RZ/A1
19              - renesas,r7s9210-wdt      # RZ/A2
20          - const: renesas,rza-wdt       # RZ/A
21
22      - items:
23          - enum:
24              - renesas,r9a06g032-wdt    # RZ/N1D
25          - const: renesas,rzn1-wdt      # RZ/N1
26
27      - items:
28          - enum:
29              - renesas,r9a07g043-wdt    # RZ/G2UL and RZ/Five
30              - renesas,r9a07g044-wdt    # RZ/G2{L,LC}
31              - renesas,r9a07g054-wdt    # RZ/V2L
32              - renesas,r9a08g045-wdt    # RZ/G3S
33          - const: renesas,rzg2l-wdt
34
35      - items:
36          - enum:
37              - renesas,r9a09g011-wdt    # RZ/V2M
38          - const: renesas,rzv2m-wdt     # RZ/V2M
39
40      - items:
41          - enum:
42              - renesas,r8a7742-wdt      # RZ/G1H
43              - renesas,r8a7743-wdt      # RZ/G1M
44              - renesas,r8a7744-wdt      # RZ/G1N
45              - renesas,r8a7745-wdt      # RZ/G1E
46              - renesas,r8a77470-wdt     # RZ/G1C
47              - renesas,r8a7790-wdt      # R-Car H2
48              - renesas,r8a7791-wdt      # R-Car M2-W
49              - renesas,r8a7792-wdt      # R-Car V2H
50              - renesas,r8a7793-wdt      # R-Car M2-N
51              - renesas,r8a7794-wdt      # R-Car E2
52          - const: renesas,rcar-gen2-wdt # R-Car Gen2 and RZ/G1
53
54      - items:
55          - enum:
56              - renesas,r8a774a1-wdt     # RZ/G2M
57              - renesas,r8a774b1-wdt     # RZ/G2N
58              - renesas,r8a774c0-wdt     # RZ/G2E
59              - renesas,r8a774e1-wdt     # RZ/G2H
60              - renesas,r8a7795-wdt      # R-Car H3
61              - renesas,r8a7796-wdt      # R-Car M3-W
62              - renesas,r8a77961-wdt     # R-Car M3-W+
63              - renesas,r8a77965-wdt     # R-Car M3-N
64              - renesas,r8a77970-wdt     # R-Car V3M
65              - renesas,r8a77980-wdt     # R-Car V3H
66              - renesas,r8a77990-wdt     # R-Car E3
67              - renesas,r8a77995-wdt     # R-Car D3
68          - const: renesas,rcar-gen3-wdt # R-Car Gen3 and RZ/G2
69
70      - items:
71          - enum:
72              - renesas,r8a779a0-wdt     # R-Car V3U
73              - renesas,r8a779f0-wdt     # R-Car S4-8
74              - renesas,r8a779g0-wdt     # R-Car V4H
75              - renesas,r8a779h0-wdt     # R-Car V4M
76          - const: renesas,rcar-gen4-wdt # R-Car Gen4
77
78      - items:
79          - enum:
80              - renesas,r9a09g047-wdt # RZ/G3E
81              - renesas,r9a09g056-wdt # RZ/V2N
82          - const: renesas,r9a09g057-wdt # RZ/V2H(P)
83
84      - const: renesas,r9a09g057-wdt       # RZ/V2H(P)
85
86  reg:
87    maxItems: 1
88
89  interrupts:
90    minItems: 1
91    items:
92      - description: Timeout
93      - description: Parity error
94
95  interrupt-names:
96    minItems: 1
97    items:
98      - const: wdt
99      - const: perrout
100
101  clocks:
102    minItems: 1
103    items:
104      - description: Register access clock
105      - description: Main clock
106
107  clock-names:
108    minItems: 1
109    items:
110      - const: pclk
111      - const: oscclk
112
113  power-domains:
114    maxItems: 1
115
116  resets:
117    maxItems: 1
118
119  timeout-sec: true
120
121required:
122  - compatible
123  - reg
124  - clocks
125
126allOf:
127  - $ref: watchdog.yaml#
128
129  - if:
130      not:
131        properties:
132          compatible:
133            contains:
134              enum:
135                - renesas,rza-wdt
136                - renesas,rzn1-wdt
137    then:
138      required:
139        - power-domains
140        - resets
141
142  - if:
143      properties:
144        compatible:
145          contains:
146            enum:
147              - renesas,r9a09g057-wdt
148              - renesas,rzg2l-wdt
149              - renesas,rzv2m-wdt
150    then:
151      properties:
152        clocks:
153          minItems: 2
154        clock-names:
155          minItems: 2
156      required:
157        - clock-names
158    else:
159      properties:
160        clocks:
161          maxItems: 1
162
163  - if:
164      properties:
165        compatible:
166          contains:
167            enum:
168              - renesas,rzg2l-wdt
169    then:
170      properties:
171        interrupts:
172          minItems: 2
173        interrupt-names:
174          minItems: 2
175      required:
176        - interrupt-names
177    else:
178      properties:
179        interrupts:
180          maxItems: 1
181
182  - if:
183      properties:
184        compatible:
185          contains:
186            const: renesas,r9a09g057-wdt
187    then:
188      properties:
189        interrupts: false
190        interrupt-names: false
191    else:
192      required:
193        - interrupts
194
195additionalProperties: false
196
197examples:
198  - |
199    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
200    #include <dt-bindings/power/r8a7795-sysc.h>
201    #include <dt-bindings/interrupt-controller/arm-gic.h>
202    wdt0: watchdog@e6020000 {
203        compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt";
204        reg = <0xe6020000 0x0c>;
205        interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
206        clocks = <&cpg CPG_MOD 402>;
207        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
208        resets = <&cpg 402>;
209        timeout-sec = <60>;
210    };
211