요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/econet,en751221-timer.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: EcoNet EN751221 High Precision Timer (HPT)
maintainers:
- Caleb James DeLisle <cjd@cjdns.fr>
description:
The EcoNet High Precision Timer (HPT) is a timer peripheral found in various
EcoNet SoCs, including the EN751221 and EN751627 families. It provides per-VPE
count/compare registers and a per-CPU control register, with a single interrupt
line using a percpu-devid interrupt mechanism.
properties:
compatible:
oneOf:
- const: econet,en751221-timer
- items:
- const: econet,en751627-timer
- const: econet,en751221-timer
reg:
minItems: 1
maxItems: 2
interrupts:
maxItems: 1
description: A percpu-devid timer interrupt shared across CPUs.
clocks:
maxItems: 1
required:
- compatible
- reg
- interrupts
- clocks
allOf:
- if:
properties:
compatible:
contains:
const: econet,en751627-timer
then:
properties:
reg:
items:
- description: VPE timers 0 and 1
- description: VPE timers 2 and 3
else:
properties:
reg:
items:
- description: VPE timers 0 and 1
additionalProperties: false
examples:
- |
timer@1fbf0400 {
compatible = "econet,en751627-timer", "econet,en751221-timer";
reg = <0x1fbf0400 0x100>, <0x1fbe0000 0x100>;
interrupt-parent = <&intc>;
interrupts = <30>;
clocks = <&hpt_clock>;
};
- |
timer@1fbf0400 {
compatible = "econet,en751221-timer";
reg = <0x1fbe0400 0x100>;
interrupt-parent = <&intc>;
interrupts = <30>;
clocks = <&hpt_clock>;
};
...
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
EcoNet High Precision Timer
1-17GPL-2.0 또는 BSD-2-Clause 라이선스의 이 스키마는 EN751221·EN751627 family를 비롯한 여러 EcoNet SoC의 High Precision Timer(HPT)를 정의합니다. HPT는 VPE별 count/compare register와 CPU별 control register를 제공하며, 하나의 interrupt line을 `percpu-devid` 방식으로 사용합니다. Maintainer는 Caleb James DeLisle입니다.
Compatible fallback과 공통 자원
18-42EN751221은 `econet,en751221-timer` 하나를 사용합니다. EN751627은 `econet,en751627-timer` 뒤에 `econet,en751221-timer` fallback을 둡니다. `reg`는 1~2개, `interrupts`와 `clocks`는 각각 최대 한 항목입니다. Interrupt는 CPU들이 공유하는 `percpu-devid` timer interrupt입니다. `compatible`, `reg`, `interrupts`, `clocks`가 모두 필수입니다.
properties:
compatible:
oneOf:
- const: econet,en751221-timer
- items:
- const: econet,en751627-timer
- const: econet,en751221-timer
reg:
minItems: 1
maxItems: 2
interrupts:
maxItems: 1
description: A percpu-devid timer interrupt shared across CPUs.
clocks:
maxItems: 1
required:
- compatible
- reg
- interrupts
- clocks
SoC별 VPE register 영역
43-62`compatible`에 `econet,en751627-timer`가 포함되면 `reg`의 첫 영역은 VPE timer 0·1, 둘째 영역은 VPE timer 2·3입니다. 그렇지 않은 EN751221 구성은 VPE timer 0·1을 위한 register 영역 하나만 가집니다. 추가 속성은 허용되지 않습니다.
allOf:
- if:
properties:
compatible:
contains:
const: econet,en751627-timer
then:
properties:
reg:
items:
- description: VPE timers 0 and 1
- description: VPE timers 2 and 3
else:
properties:
reg:
items:
- description: VPE timers 0 and 1
additionalProperties: false
EN751627과 EN751221 예제
63-80첫 예제는 EN751627 fallback 구성으로 0x100-byte register 영역 두 개와 interrupt 30, `hpt_clock`을 지정합니다. 둘째 예제는 EN751221 전용 구성으로 0x100-byte 영역 하나에 같은 interrupt와 clock을 연결합니다. 두 예제 모두 `intc`를 interrupt parent로 사용합니다.
examples:
- |
timer@1fbf0400 {
compatible = "econet,en751627-timer", "econet,en751221-timer";
reg = <0x1fbf0400 0x100>, <0x1fbe0000 0x100>;
interrupt-parent = <&intc>;
interrupts = <30>;
clocks = <&hpt_clock>;
};
- |
timer@1fbf0400 {
compatible = "econet,en751221-timer";
reg = <0x1fbe0400 0x100>;
interrupt-parent = <&intc>;
interrupts = <30>;
clocks = <&hpt_clock>;
};
...
요약과 해설
econet,en751221-timer.yaml:1-80EcoNet HPT의 per-VPE register와 EN751627 분기를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, interrupt, clock, register, phandle, 수치와 줄 좌표를 원형대로 보존합니다.