요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# 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>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
ARM AMBA PrimeCell SP805
1-11GPL-2.0으로 배포되는 이 스키마는 ARM AMBA PrimeCell SP805 워치독을 정의합니다. 관리자는 Viresh Kumar입니다.
interrupt 이후 reset 동작
12-16SP805 IP는 설정한 시간이 지나면 interrupt를 발생시킵니다. 다음 interrupt가 발생할 시점까지 첫 interrupt가 처리되지 않았다면 reset 신호를 assert합니다.
PrimeCell 오검출을 피하는 선택 조건
17-28공통 워치독 스키마를 상속합니다. 범용 `arm,primecell` 문자열만으로는 많은 노드가 일치하므로 custom `select`를 사용하며, `compatible` 배열에 `arm,sp805`가 포함된 노드만 이 스키마가 선택합니다.
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
counter·register interface 클록과 reset
29-64`compatible`은 `arm,sp805`, `arm,primecell` 순서의 두 문자열입니다. `interrupts`와 `reg`는 각각 최대 하나입니다.
`clocks`에는 워치독 하드웨어를 구동하는 클록을 최대 두 개 제공합니다. 첫 클록 `wdog_clk`는 실제 watchdog counter에 쓰이고, 둘째 `apb_pclk`는 register interface를 구동합니다. `resets`는 SP805 모듈의 `WDOGRESn` 입력 reset 신호 하나를 가리킵니다.
`compatible`, `reg`, `clocks`, `clock-names`가 필수이며 평가되지 않은 추가 속성은 허용하지 않습니다.
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
GIC SPI와 두 클록 예제
65-75예제는 주소 `0x66090000`의 SP805에 level-high GIC SPI interrupt 406을 연결합니다. `wdt_clk`, `apb_pclk` 두 클록과 `wdt_rst` reset을 함께 제공합니다.
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>;
};
요약과 해설
arm,sp805.yaml:1-75SP805의 interrupt 이후 reset 동작, 두 클록과 WDOGRESn reset을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, reset, 예제와 원문 줄 좌표를 원형대로 보존합니다.