Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Timer

Synopsys DesignWare APB Timer

DesignWare APB timer의 clock·interrupt·register 구성을 설명합니다.

Source pathDocumentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.

1. 요약·해설

원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.

요약과 해설

snps,dw-apb-timer.yaml:1-84

DesignWare APB timer의 clock·interrupt·register 구성을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, interrupt, clock, register, phandle, 수치와 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.

원문 전체 펼치기
1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/timer/snps,dw-apb-timer.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Synopsys DesignWare APB Timer
8
9 maintainers:
10 - Daniel Lezcano <[email protected]>
11
12 properties:
13 compatible:
14 oneOf:
15 - const: snps,dw-apb-timer
16 - enum:
17 - snps,dw-apb-timer-sp
18 - snps,dw-apb-timer-osc
19 deprecated: true
20
21 reg:
22 maxItems: 1
23
24 interrupts:
25 maxItems: 1
26
27 resets:
28 maxItems: 1
29
30 clocks:
31 minItems: 1
32 items:
33 - description: Timer ticks reference clock source
34 - description: APB interface clock source
35
36 clock-names:
37 minItems: 1
38 items:
39 - const: timer
40 - const: pclk
41
42 clock-frequency: true
43
44 additionalProperties: false
45
46 required:
47 - compatible
48 - reg
49 - interrupts
50
51 oneOf:
52 - required:
53 - clocks
54 - clock-names
55 - required:
56 - clock-frequency
57 - required:
58 - clock-freq
59
60 examples:
61 - |
62 timer@ffe00000 {
63 compatible = "snps,dw-apb-timer";
64 interrupts = <0 170 4>;
65 reg = <0xffe00000 0x1000>;
66 clocks = <&timer_clk>, <&timer_pclk>;
67 clock-names = "timer", "pclk";
68 };
69 - |
70 timer@ffe00000 {
71 compatible = "snps,dw-apb-timer";
72 interrupts = <0 170 4>;
73 reg = <0xffe00000 0x1000>;
74 clocks = <&timer_clk>;
75 clock-names = "timer";
76 };
77 - |
78 timer@ffe00000 {
79 compatible = "snps,dw-apb-timer";
80 interrupts = <0 170 4>;
81 reg = <0xffe00000 0x1000>;
82 clock-frequency = <25000000>;
83 };
84 ...
85

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.

Synopsys DesignWare APB Timer

1-20

GPL-2.0-only 라이선스의 이 스키마는 Synopsys DesignWare APB Timer를 정의합니다. `compatible`은 `snps,dw-apb-timer`를 사용합니다. 이전의 `snps,dw-apb-timer-sp`와 `snps,dw-apb-timer-osc` 값은 deprecated입니다. Maintainer는 Daniel Lezcano입니다.

properties:
  compatible:
    oneOf:
      - const: snps,dw-apb-timer
      - enum:
          - snps,dw-apb-timer-sp
          - snps,dw-apb-timer-osc
        deprecated: true

Register·interrupt·reset과 두 clock

21-44

`reg`, `interrupts`, `resets`는 각각 최대 한 항목입니다. `clocks`는 최소 한 항목이며 첫째는 timer tick reference clock source, 둘째는 APB interface clock source입니다. 대응하는 `clock-names`의 순서는 `timer`, `pclk`입니다. 별도의 fixed frequency를 사용할 때는 `clock-frequency` 속성을 쓸 수 있습니다. 정의되지 않은 추가 속성은 허용하지 않습니다.

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  resets:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: Timer ticks reference clock source
      - description: APB interface clock source

  clock-names:
    minItems: 1
    items:
      - const: timer
      - const: pclk

  clock-frequency: true

additionalProperties: false

Clock 지정 방식의 세 가지 선택지

45-59

`compatible`, `reg`, `interrupts`가 공통 필수 속성입니다. Clock 정보는 세 방식 중 정확히 하나의 조건을 만족해야 합니다. 첫째는 `clocks`와 `clock-names`를 함께 제공하는 방식, 둘째는 `clock-frequency`를 제공하는 방식, 셋째는 legacy `clock-freq`를 제공하는 방식입니다.

required:
  - compatible
  - reg
  - interrupts

oneOf:
  - required:
      - clocks
      - clock-names
  - required:
      - clock-frequency
  - required:
      - clock-freq

Dual clock·single clock·fixed frequency

60-84

세 예제는 모두 `timer@ffe00000`, `snps,dw-apb-timer`, interrupt `<0 170 4>`, 0x1000-byte register 영역을 사용합니다. 첫째는 `timer_clk`와 `timer_pclk`를 각각 `timer`, `pclk`로 연결합니다. 둘째는 `timer_clk` 하나만 `timer`로 연결합니다. 셋째는 clock phandle 대신 `clock-frequency = <25000000>`으로 25 MHz를 지정합니다.

examples:
  - |
    timer@ffe00000 {
      compatible = "snps,dw-apb-timer";
      interrupts = <0 170 4>;
      reg = <0xffe00000 0x1000>;
      clocks = <&timer_clk>, <&timer_pclk>;
      clock-names = "timer", "pclk";
    };
  - |
    timer@ffe00000 {
      compatible = "snps,dw-apb-timer";
      interrupts = <0 170 4>;
      reg = <0xffe00000 0x1000>;
      clocks = <&timer_clk>;
      clock-names = "timer";
    };
  - |
    timer@ffe00000 {
      compatible = "snps,dw-apb-timer";
      interrupts = <0 170 4>;
      reg = <0xffe00000 0x1000>;
      clock-frequency = <25000000>;
    };
...