← Documents Documentation/devicetree/bindings/timer/marvell,armada-370-timer.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Timer

Marvell Armada 370/375/380/XP Timers

Armada timer의 global·private 영역과 SoC별 clock 조건을 설명합니다.

Source pathDocumentation/devicetree/bindings/timer/marvell,armada-370-timer.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

marvell,armada-370-timer.yaml:1-88

Armada timer의 global·private 영역과 SoC별 clock 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, interrupt, clock, register, phandle, 수치와 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/timer/marvell,armada-370-timer.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Marvell Armada 370, 375, 380 and XP Timers
8
9 maintainers:
10 - Andrew Lunn <andrew@lunn.ch>
11 - Gregory Clement <gregory.clement@bootlin.com>
12
13 properties:
14 compatible:
15 oneOf:
16 - items:
17 - const: marvell,armada-380-timer
18 - const: marvell,armada-xp-timer
19 - items:
20 - const: marvell,armada-375-timer
21 - const: marvell,armada-370-timer
22 - enum:
23 - marvell,armada-370-timer
24 - marvell,armada-xp-timer
25
26 reg:
27 items:
28 - description: Global timer registers
29 - description: Local/private timer registers
30
31 interrupts:
32 items:
33 - description: Global timer interrupt 0
34 - description: Global timer interrupt 1
35 - description: Global timer interrupt 2
36 - description: Global timer interrupt 3
37 - description: First private timer interrupt
38 - description: Second private timer interrupt
39
40 clocks:
41 minItems: 1
42 maxItems: 2
43
44 clock-names:
45 items:
46 - const: nbclk
47 - const: fixed
48
49 required:
50 - compatible
51 - reg
52 - interrupts
53 - clocks
54
55 additionalProperties: false
56
57 allOf:
58 - if:
59 properties:
60 compatible:
61 contains:
62 enum:
63 - marvell,armada-375-timer
64 - marvell,armada-xp-timer
65 then:
66 properties:
67 clocks:
68 minItems: 2
69 clock-names:
70 minItems: 2
71 required:
72 - clock-names
73 else:
74 properties:
75 clocks:
76 maxItems: 1
77 clock-names:
78 maxItems: 1
79
80 examples:
81 - |
82 timer@20300 {
83 compatible = "marvell,armada-xp-timer";
84 reg = <0x20300 0x30>, <0x21040 0x30>;
85 interrupts = <37>, <38>, <39>, <40>, <5>, <6>;
86 clocks = <&coreclk 2>, <&refclk>;
87 clock-names = "nbclk", "fixed";
88 };
89

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Marvell Armada timer

1-12

GPL-2.0-only 또는 BSD-2-Clause 라이선스의 이 스키마는 Marvell Armada 370, 375, 380, XP timer를 정의합니다. Maintainer는 Andrew Lunn과 Gregory Clement입니다.

Global·private timer와 여섯 IRQ

13-56

Armada 380은 `marvell,armada-xp-timer` fallback을, Armada 375는 `marvell,armada-370-timer` fallback을 둡니다. Armada 370과 XP compatible은 단독 사용도 가능합니다. `reg`는 global timer와 local/private timer register 영역 두 개입니다. `interrupts`는 global timer interrupt 0~3과 첫째·둘째 private timer interrupt까지 여섯 개를 순서대로 담습니다. `clocks`는 1~2개이고 이름은 `nbclk`, `fixed` 순서입니다. `compatible`, `reg`, `interrupts`, `clocks`가 필수이며 추가 속성은 허용되지 않습니다.

properties:
  compatible:
    oneOf:
      - items:
          - const: marvell,armada-380-timer
          - const: marvell,armada-xp-timer
      - items:
          - const: marvell,armada-375-timer
          - const: marvell,armada-370-timer
      - enum:
          - marvell,armada-370-timer
          - marvell,armada-xp-timer

  reg:
    items:
      - description: Global timer registers
      - description: Local/private timer registers

  interrupts:
    items:
      - description: Global timer interrupt 0
      - description: Global timer interrupt 1
      - description: Global timer interrupt 2
      - description: Global timer interrupt 3
      - description: First private timer interrupt
      - description: Second private timer interrupt

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    items:
      - const: nbclk
      - const: fixed

required:
  - compatible
  - reg
  - interrupts
  - clocks

additionalProperties: false

Armada 375·XP의 fixed clock

57-79

`compatible`에 Armada 375 또는 Armada XP timer가 포함되면 `clocks`와 `clock-names`가 각각 최소 두 항목이어야 하므로 `nbclk`과 `fixed`를 모두 제공해야 합니다. 다른 compatible에서는 clock과 이름이 각각 최대 하나이므로 `nbclk`만 사용합니다.

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - marvell,armada-375-timer
              - marvell,armada-xp-timer
    then:
      properties:
        clocks:
          minItems: 2
        clock-names:
          minItems: 2
      required:
        - clock-names
    else:
      properties:
        clocks:
          maxItems: 1
        clock-names:
          maxItems: 1

Armada XP timer 예제

80-88

예제는 `timer@20300`에 0x30-byte global 영역과 0x30-byte private 영역을 지정합니다. Global interrupt 37·38·39·40과 private interrupt 5·6을 연결하고 `coreclk` index 2와 `refclk`을 각각 `nbclk`, `fixed`로 사용합니다.

examples:
  - |
    timer@20300 {
        compatible = "marvell,armada-xp-timer";
        reg = <0x20300 0x30>, <0x21040 0x30>;
        interrupts = <37>, <38>, <39>, <40>, <5>, <6>;
        clocks = <&coreclk 2>, <&refclk>;
        clock-names = "nbclk", "fixed";
    };