← Documents Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Watchdog

Renesas Watchdog Timer Controller

Renesas RZ·R-Car WDT의 세대별 호환성과 clock·interrupt·reset 조건을 설명합니다.

Source pathDocumentation/devicetree/bindings/watchdog/renesas,wdt.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

renesas,wdt.yaml:1-240

Renesas RZ·R-Car WDT의 세대별 호환성과 clock·interrupt·reset 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, reset, power-domain, timeout, 예제와 원문 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
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
7 title: Renesas Watchdog Timer (WDT) Controller
8
9 maintainers:
10 - Wolfram Sang <[email protected]>
11 - Geert Uytterhoeven <[email protected]>
12
13 properties:
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 - enum:
85 - renesas,r9a09g057-wdt # RZ/V2H(P)
86 - renesas,r9a09g077-wdt # RZ/T2H
87
88 - items:
89 - const: renesas,r9a09g087-wdt # RZ/N2H
90 - const: renesas,r9a09g077-wdt # RZ/T2H
91
92 reg:
93 minItems: 1
94 maxItems: 2
95
96 interrupts:
97 minItems: 1
98 items:
99 - description: Timeout
100 - description: Parity error
101
102 interrupt-names:
103 minItems: 1
104 items:
105 - const: wdt
106 - const: perrout
107
108 clocks:
109 minItems: 1
110 items:
111 - description: Register access clock
112 - description: Main clock
113
114 clock-names:
115 minItems: 1
116 items:
117 - const: pclk
118 - const: oscclk
119
120 power-domains:
121 maxItems: 1
122
123 resets:
124 maxItems: 1
125
126 timeout-sec: true
127
128 required:
129 - compatible
130 - reg
131 - clocks
132
133 allOf:
134 - $ref: watchdog.yaml#
135
136 - if:
137 not:
138 properties:
139 compatible:
140 contains:
141 enum:
142 - renesas,r9a09g077-wdt
143 - renesas,rza-wdt
144 - renesas,rzn1-wdt
145 then:
146 required:
147 - power-domains
148 - resets
149
150 - if:
151 properties:
152 compatible:
153 contains:
154 enum:
155 - renesas,r9a09g057-wdt
156 - renesas,rzg2l-wdt
157 - renesas,rzv2m-wdt
158 then:
159 properties:
160 clocks:
161 minItems: 2
162 clock-names:
163 minItems: 2
164 required:
165 - clock-names
166 else:
167 properties:
168 clocks:
169 maxItems: 1
170
171 - if:
172 properties:
173 compatible:
174 contains:
175 enum:
176 - renesas,rzg2l-wdt
177 then:
178 properties:
179 interrupts:
180 minItems: 2
181 interrupt-names:
182 minItems: 2
183 required:
184 - interrupt-names
185 else:
186 properties:
187 interrupts:
188 maxItems: 1
189
190 - if:
191 properties:
192 compatible:
193 contains:
194 enum:
195 - renesas,r9a09g057-wdt
196 - renesas,r9a09g077-wdt
197 then:
198 properties:
199 interrupts: false
200 interrupt-names: false
201 else:
202 required:
203 - interrupts
204
205 - if:
206 properties:
207 compatible:
208 contains:
209 const: renesas,r9a09g077-wdt
210 then:
211 properties:
212 resets: false
213 clock-names:
214 maxItems: 1
215 reg:
216 minItems: 2
217 required:
218 - clock-names
219 - power-domains
220 else:
221 properties:
222 reg:
223 maxItems: 1
224
225 additionalProperties: false
226
227 examples:
228 - |
229 #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
230 #include <dt-bindings/power/r8a7795-sysc.h>
231 #include <dt-bindings/interrupt-controller/arm-gic.h>
232 wdt0: watchdog@e6020000 {
233 compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt";
234 reg = <0xe6020000 0x0c>;
235 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
236 clocks = <&cpg CPG_MOD 402>;
237 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
238 resets = <&cpg 402>;
239 timeout-sec = <60>;
240 };
241

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Renesas WDT Controller

1-12

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 스키마는 Renesas Watchdog Timer(WDT) Controller를 정의합니다. 관리자는 Wolfram Sang과 Geert Uytterhoeven입니다.

RZ·R-Car 세대별 compatible

13-91

RZ/A 계열은 RZ/A1의 `renesas,r7s72100-wdt` 또는 RZ/A2의 `renesas,r7s9210-wdt` 뒤에 `renesas,rza-wdt`를 둡니다. RZ/N1D는 `renesas,r9a06g032-wdt`와 `renesas,rzn1-wdt`를 사용합니다.

RZ/G2UL·RZ/Five의 `renesas,r9a07g043-wdt`, RZ/G2L·G2LC의 `r9a07g044`, RZ/V2L의 `r9a07g054`, RZ/G3S의 `r9a08g045`는 `renesas,rzg2l-wdt`를 fallback으로 둡니다. RZ/V2M의 `renesas,r9a09g011-wdt`는 `renesas,rzv2m-wdt`를 fallback으로 사용합니다.

R-Car Gen2와 RZ/G1은 R8A7742·7743·7744·7745·77470 및 R8A7790·7791·7792·7793·7794 전용 문자열 뒤에 `renesas,rcar-gen2-wdt`를 둡니다.

R-Car Gen3와 RZ/G2는 R8A774A1·774B1·774C0·774E1 및 R8A7795·7796·77961·77965·77970·77980·77990·77995 전용 문자열 뒤에 `renesas,rcar-gen3-wdt`를 둡니다.

R-Car Gen4는 R8A779A0, R8A779F0, R8A779G0, R8A779H0 전용 문자열과 `renesas,rcar-gen4-wdt`를 사용합니다.

RZ/G3E의 `renesas,r9a09g047-wdt`와 RZ/V2N의 `renesas,r9a09g056-wdt`는 RZ/V2H(P)의 `renesas,r9a09g057-wdt`를 fallback으로 둡니다. RZ/V2H(P)의 `r9a09g057`과 RZ/T2H의 `r9a09g077`은 단독으로도 사용할 수 있습니다. RZ/N2H의 `renesas,r9a09g087-wdt`는 `renesas,r9a09g077-wdt`를 fallback으로 사용합니다.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - renesas,r7s72100-wdt     # RZ/A1
              - renesas,r7s9210-wdt      # RZ/A2
          - const: renesas,rza-wdt       # RZ/A

      - items:
          - enum:
              - renesas,r9a06g032-wdt    # RZ/N1D
          - const: renesas,rzn1-wdt      # RZ/N1

      - 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
          - const: renesas,rzg2l-wdt

      - items:
          - enum:
              - renesas,r9a09g011-wdt    # RZ/V2M
          - const: renesas,rzv2m-wdt     # RZ/V2M

      - 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

      - items:
          - enum:
              - renesas,r9a09g047-wdt # RZ/G3E
              - renesas,r9a09g056-wdt # RZ/V2N
          - const: renesas,r9a09g057-wdt # RZ/V2H(P)

      - enum:
          - renesas,r9a09g057-wdt    # RZ/V2H(P)
          - renesas,r9a09g077-wdt    # RZ/T2H

      - items:
          - const: renesas,r9a09g087-wdt # RZ/N2H
          - const: renesas,r9a09g077-wdt # RZ/T2H

공통 register·interrupt·clock

92-132

`reg`는 최소 1개, 최대 2개입니다. `interrupts`는 Timeout과 Parity error 순서이며 최소 한 항목을 받습니다. 대응하는 `interrupt-names`는 `wdt`, `perrout`입니다.

`clocks`는 Register access clock과 Main clock 순서이며 최소 한 항목을 받습니다. `clock-names`는 `pclk`, `oscclk`입니다. `power-domains`와 `resets`는 각각 최대 한 항목이고 `timeout-sec`를 사용할 수 있습니다.

`compatible`, `reg`, `clocks`가 기본 필수 속성입니다.

  reg:
    minItems: 1
    maxItems: 2

  interrupts:
    minItems: 1
    items:
      - description: Timeout
      - description: Parity error

  interrupt-names:
    minItems: 1
    items:
      - const: wdt
      - const: perrout

  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

power-domain과 reset 필수 조건

133-149

공통 `watchdog.yaml`을 상속합니다. `compatible`에 RZ/T2H `renesas,r9a09g077-wdt`, `renesas,rza-wdt`, `renesas,rzn1-wdt`가 포함되지 않은 모든 계열에서는 `power-domains`와 `resets`가 필수입니다.

allOf:
  - $ref: watchdog.yaml#

  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - renesas,r9a09g077-wdt
                - renesas,rza-wdt
                - renesas,rzn1-wdt
    then:
      required:
        - power-domains
        - resets

두 클록이 필요한 계열

150-170

RZ/V2H(P) `renesas,r9a09g057-wdt`, `renesas,rzg2l-wdt`, `renesas,rzv2m-wdt` 계열은 `clocks`와 `clock-names`가 각각 최소 2개여야 하며 `clock-names`가 필수입니다. 다른 계열은 clock을 최대 하나만 사용합니다.

- if:
    properties:
      compatible:
        contains:
          enum:
            - renesas,r9a09g057-wdt
            - renesas,rzg2l-wdt
            - renesas,rzv2m-wdt
  then:
    properties:
      clocks:
        minItems: 2
      clock-names:
        minItems: 2
    required:
      - clock-names
  else:
    properties:
      clocks:
        maxItems: 1

parity interrupt와 interrupt 금지 계열

171-204

`renesas,rzg2l-wdt` 계열은 Timeout과 Parity error interrupt 두 개 및 이름 두 개가 필요하고 `interrupt-names`가 필수입니다. 다른 계열은 interrupt를 최대 하나만 사용합니다.

다만 RZ/V2H(P) `renesas,r9a09g057-wdt`와 RZ/T2H `renesas,r9a09g077-wdt`는 `interrupts`와 `interrupt-names`를 사용할 수 없습니다. 이 두 계열이 아니면 `interrupts`가 필수입니다.

- if:
    properties:
      compatible:
        contains:
          enum:
            - renesas,rzg2l-wdt
  then:
    properties:
      interrupts:
        minItems: 2
      interrupt-names:
        minItems: 2
    required:
      - interrupt-names
  else:
    properties:
      interrupts:
        maxItems: 1

- if:
    properties:
      compatible:
        contains:
          enum:
            - renesas,r9a09g057-wdt
            - renesas,r9a09g077-wdt
  then:
    properties:
      interrupts: false
      interrupt-names: false
  else:
    required:
      - interrupts

RZ/T2H의 두 register 규칙

205-226

RZ/T2H `renesas,r9a09g077-wdt`에서는 `resets`를 사용할 수 없고 `clock-names`는 최대 하나입니다. `reg`는 최소 두 항목이어야 하며 `clock-names`와 `power-domains`가 필수입니다. 그 밖의 계열은 `reg`를 최대 한 항목만 사용합니다.

이 조건들을 모두 적용한 뒤 추가 속성은 허용하지 않습니다.

  - if:
      properties:
        compatible:
          contains:
            const: renesas,r9a09g077-wdt
    then:
      properties:
        resets: false
        clock-names:
          maxItems: 1
        reg:
          minItems: 2
      required:
        - clock-names
        - power-domains
    else:
      properties:
        reg:
          maxItems: 1

additionalProperties: false

R-Car H3 Gen3 예제

227-240

예제는 R-Car H3 `renesas,r8a7795-wdt`와 Gen3 fallback을 사용합니다. 주소 `0xe6020000`, level-high GIC SPI 140, CPG module clock 402, always-on power domain, reset 402를 연결하고 timeout을 60초로 설정합니다.

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>;
    };