요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/timer/ti,timer-dm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI dual-mode timer
maintainers:
- Tony Lindgren <[email protected]>
description: |
The TI dual-mode timer is a general purpose timer with PWM capabilities.
properties:
compatible:
oneOf:
- items:
- enum:
- ti,am335x-timer
- ti,am335x-timer-1ms
- ti,am654-timer
- ti,dm814-timer
- ti,dm816-timer
- ti,omap2420-timer
- ti,omap3430-timer
- ti,omap4430-timer
- ti,omap5430-timer
- items:
- const: ti,am4372-timer
- const: ti,am335x-timer
- items:
- const: ti,am4372-timer-1ms
- const: ti,am335x-timer-1ms
reg:
items:
- description: IO address
- description: L3 to L4 mapping for omap4/5 L4 ABE
minItems: 1
clocks:
items:
- description: Functional clock
- description: System clock for omap4/5 and dra7
minItems: 1
clock-names:
items:
- const: fck
- const: timer_sys_ck
minItems: 1
power-domains:
description:
Power domain if available
maxItems: 1
interrupts:
description:
Interrupt if available. The timer PWM features may be usable
in a limited way even without interrupts.
maxItems: 1
ti,timer-alwon:
description:
Timer is always enabled when the SoC is powered. Note that some SoCs like
am335x can suspend to PM coprocessor RTC only mode and in that case the
SoC power is cut including timers.
type: boolean
ti,timer-dsp:
description:
Timer is routable to the DSP in addition to the operating system.
type: boolean
ti,timer-pwm:
description:
Timer has been wired for PWM capability.
type: boolean
ti,timer-secure:
description:
Timer access has been limited to secure mode only.
type: boolean
ti,hwmods:
description:
Name of the HWMOD associated with timer. This is for legacy
omap2/3 platforms only.
$ref: /schemas/types.yaml#/definitions/string
deprecated: true
required:
- compatible
- reg
additionalProperties: false
allOf:
- if:
properties:
compatible:
contains:
const: ti,am654-timer
then:
required:
- power-domains
else:
required:
- interrupts
- if:
not:
properties:
compatible:
contains:
enum:
- ti,omap3430-timer
- ti,omap4430-timer
- ti,omap5430-timer
then:
properties:
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
maxItems: 1
- if:
properties:
compatible:
contains:
enum:
- ti,dm814-timer
- ti,dm816-timer
- ti,omap2420-timer
- ti,omap3430-timer
then:
properties:
ti,hwmods:
items:
- pattern: "^timer([1-9]|1[0-2])$"
else:
properties:
ti,hwmods: false
examples:
- |
timer1: timer@0 {
compatible = "ti,am335x-timer-1ms";
reg = <0x0 0x400>;
interrupts = <67>;
ti,timer-alwon;
clocks = <&timer1_fck>;
clock-names = "fck";
};
...
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
TI dual-mode timer
1-14GPL-2.0-only 또는 BSD-2-Clause 라이선스의 이 스키마는 PWM 기능을 갖춘 TI general-purpose dual-mode timer를 정의합니다. Maintainer는 Tony Lindgren입니다.
AM·DM·OMAP compatible
15-35단독 compatible 목록은 `ti,am335x-timer`, `ti,am335x-timer-1ms`, `ti,am654-timer`, `ti,dm814-timer`, `ti,dm816-timer`, `ti,omap2420-timer`, `ti,omap3430-timer`, `ti,omap4430-timer`, `ti,omap5430-timer`입니다. AM4372 일반 timer는 `ti,am4372-timer` 뒤에 `ti,am335x-timer` fallback을, 1 ms variant는 `ti,am4372-timer-1ms` 뒤에 `ti,am335x-timer-1ms` fallback을 둡니다.
properties:
compatible:
oneOf:
- items:
- enum:
- ti,am335x-timer
- ti,am335x-timer-1ms
- ti,am654-timer
- ti,dm814-timer
- ti,dm816-timer
- ti,omap2420-timer
- ti,omap3430-timer
- ti,omap4430-timer
- ti,omap5430-timer
- items:
- const: ti,am4372-timer
- const: ti,am335x-timer
- items:
- const: ti,am4372-timer-1ms
- const: ti,am335x-timer-1ms
IO·clock·power domain·interrupt
36-64`reg`의 첫 항목은 IO address이고, 선택적인 둘째 항목은 OMAP4/5 L4 ABE의 L3-to-L4 mapping입니다. `clocks`의 첫 항목은 functional clock이고, 선택적인 둘째 항목은 OMAP4/5와 DRA7의 system clock입니다. `clock-names`는 같은 순서로 `fck`, `timer_sys_ck`를 사용합니다. 세 속성은 모두 최소 한 항목을 요구합니다.
선택적인 `power-domains`는 available power domain 한 개를 지정합니다. 선택적인 `interrupts`도 최대 한 항목이며, interrupt가 없어도 timer PWM 기능을 제한적으로 사용할 수 있습니다.
reg:
items:
- description: IO address
- description: L3 to L4 mapping for omap4/5 L4 ABE
minItems: 1
clocks:
items:
- description: Functional clock
- description: System clock for omap4/5 and dra7
minItems: 1
clock-names:
items:
- const: fck
- const: timer_sys_ck
minItems: 1
power-domains:
description:
Power domain if available
maxItems: 1
interrupts:
description:
Interrupt if available. The timer PWM features may be usable
in a limited way even without interrupts.
maxItems: 1
Always-on·DSP·PWM·secure·HWMOD
65-93Boolean `ti,timer-alwon`은 SoC에 전원이 공급되는 동안 timer가 항상 enable됨을 뜻합니다. 다만 AM335x처럼 PM coprocessor RTC-only mode로 suspend할 수 있는 SoC에서는 timer를 포함한 SoC 전원이 차단됩니다. `ti,timer-dsp`는 operating system뿐 아니라 DSP로도 timer를 route할 수 있음을, `ti,timer-pwm`은 PWM 기능용으로 배선됐음을, `ti,timer-secure`는 secure mode에서만 접근할 수 있음을 나타냅니다.
Deprecated string `ti,hwmods`는 timer와 연결된 HWMOD 이름이며 legacy OMAP2/3 platform 전용입니다.
ti,timer-alwon:
description:
Timer is always enabled when the SoC is powered. Note that some SoCs like
am335x can suspend to PM coprocessor RTC only mode and in that case the
SoC power is cut including timers.
type: boolean
ti,timer-dsp:
description:
Timer is routable to the DSP in addition to the operating system.
type: boolean
ti,timer-pwm:
description:
Timer has been wired for PWM capability.
type: boolean
ti,timer-secure:
description:
Timer access has been limited to secure mode only.
type: boolean
ti,hwmods:
description:
Name of the HWMOD associated with timer. This is for legacy
omap2/3 platforms only.
$ref: /schemas/types.yaml#/definitions/string
deprecated: true
AM654 power domain 조건
94-112공통 필수 속성은 `compatible`과 `reg`이고 추가 속성은 허용하지 않습니다. `compatible`에 `ti,am654-timer`가 포함되면 `power-domains`가 필수입니다. 그 밖의 compatible에서는 `interrupts`가 필수입니다.
required:
- compatible
- reg
additionalProperties: false
allOf:
- if:
properties:
compatible:
contains:
const: ti,am654-timer
then:
required:
- power-domains
else:
required:
- interrupts
OMAP resource 수와 legacy HWMOD 제한
113-148`ti,omap3430-timer`, `ti,omap4430-timer`, `ti,omap5430-timer`가 아닌 구현에서는 `reg`, `clocks`, `clock-names`를 각각 최대 한 항목만 허용합니다. 이 세 OMAP 계열은 앞서 정의한 선택적인 둘째 register와 clock을 사용할 수 있습니다.
`ti,hwmods`는 `ti,dm814-timer`, `ti,dm816-timer`, `ti,omap2420-timer`, `ti,omap3430-timer`에서만 허용되며 값은 `timer1`부터 `timer12`까지의 pattern을 따라야 합니다. 나머지 compatible에서는 `ti,hwmods`를 허용하지 않습니다.
- if:
not:
properties:
compatible:
contains:
enum:
- ti,omap3430-timer
- ti,omap4430-timer
- ti,omap5430-timer
then:
properties:
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
maxItems: 1
- if:
properties:
compatible:
contains:
enum:
- ti,dm814-timer
- ti,dm816-timer
- ti,omap2420-timer
- ti,omap3430-timer
then:
properties:
ti,hwmods:
items:
- pattern: "^timer([1-9]|1[0-2])$"
else:
properties:
ti,hwmods: false
AM335x 1 ms always-on timer
149-159예제 `timer1: timer@0`은 `ti,am335x-timer-1ms` compatible, 0x400-byte register 영역, interrupt 67을 사용합니다. `ti,timer-alwon`으로 always-on 속성을 표시하고 `timer1_fck`을 `fck`으로 연결합니다.
examples:
- |
timer1: timer@0 {
compatible = "ti,am335x-timer-1ms";
reg = <0x0 0x400>;
interrupts = <67>;
ti,timer-alwon;
clocks = <&timer1_fck>;
clock-names = "fck";
};
...
요약과 해설
ti,timer-dm.yaml:1-159TI dual-mode timer의 PWM flags와 SoC별 resource 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, interrupt, clock, register, phandle, 수치와 줄 좌표를 원형대로 보존합니다.