요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# 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 <[email protected]>
- Geert Uytterhoeven <[email protected]>
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
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
allOf:
- $ref: watchdog.yaml#
- if:
not:
properties:
compatible:
contains:
enum:
- renesas,r9a09g077-wdt
- renesas,rza-wdt
- renesas,rzn1-wdt
then:
required:
- power-domains
- resets
- 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
- 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
- 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
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>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Renesas WDT Controller
1-12GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 스키마는 Renesas Watchdog Timer(WDT) Controller를 정의합니다. 관리자는 Wolfram Sang과 Geert Uytterhoeven입니다.
RZ·R-Car 세대별 compatible
13-91RZ/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-170RZ/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-226RZ/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>;
};
요약과 해설
renesas,wdt.yaml:1-240Renesas RZ·R-Car WDT의 세대별 호환성과 clock·interrupt·reset 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, reset, power-domain, timeout, 예제와 원문 줄 좌표를 원형대로 보존합니다.