← Documents Documentation/devicetree/bindings/timer/faraday,fttmr010.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Timer

Faraday FTTMR010 Timer

FTTMR010 variant의 clock, interrupt와 Gemini syscon 조건을 설명합니다.

Source pathDocumentation/devicetree/bindings/timer/faraday,fttmr010.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

faraday,fttmr010.yaml:1-89

FTTMR010 variant의 clock, interrupt와 Gemini syscon 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 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/faraday,fttmr010.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Faraday FTTMR010 timer
8
9 maintainers:
10 - Joel Stanley <joel@jms.id.au>
11 - Linus Walleij <linus.walleij@linaro.org>
12
13 description:
14 This timer is a generic IP block from Faraday Technology, embedded in the
15 Cortina Systems Gemini SoCs and other designs.
16
17 properties:
18 compatible:
19 oneOf:
20 - items:
21 - const: moxa,moxart-timer
22 - const: faraday,fttmr010
23 - enum:
24 - aspeed,ast2400-timer
25 - aspeed,ast2500-timer
26 - aspeed,ast2600-timer
27 - cortina,gemini-timer
28 - faraday,fttmr010
29
30 reg:
31 maxItems: 1
32
33 interrupts:
34 minItems: 1
35 maxItems: 8
36 description: One interrupt per timer
37
38 clocks:
39 minItems: 1
40 items:
41 - description: Peripheral clock
42 - description: External tick clock
43
44 clock-names:
45 minItems: 1
46 items:
47 - const: PCLK
48 - const: EXTCLK
49
50 resets:
51 maxItems: 1
52
53 syscon:
54 description: System controller phandle for Gemini systems
55 $ref: /schemas/types.yaml#/definitions/phandle
56
57 required:
58 - compatible
59 - reg
60 - interrupts
61
62 allOf:
63 - if:
64 properties:
65 compatible:
66 contains:
67 const: cortina,gemini-timer
68 then:
69 required:
70 - syscon
71 else:
72 properties:
73 syscon: false
74
75 additionalProperties: false
76
77 examples:
78 - |
79 #include <dt-bindings/interrupt-controller/irq.h>
80
81 timer@43000000 {
82 compatible = "faraday,fttmr010";
83 reg = <0x43000000 0x1000>;
84 interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
85 <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
86 <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
87 clocks = <&pclk>, <&extclk>;
88 clock-names = "PCLK", "EXTCLK";
89 };
90

3. 한국어 전문 번역

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

Faraday FTTMR010 timer

1-16

GPL-2.0-only 또는 BSD-2-Clause 라이선스의 이 스키마는 Faraday Technology의 범용 FTTMR010 timer IP block을 정의합니다. 이 block은 Cortina Systems Gemini SoC와 여러 다른 설계에 내장됩니다. Maintainer는 Joel Stanley와 Linus Walleij입니다.

Variant, clock과 interrupt

17-61

MOXART는 `moxa,moxart-timer` 뒤에 `faraday,fttmr010` fallback을 둡니다. 그 밖에 Aspeed AST2400·AST2500·AST2600, Cortina Gemini와 generic Faraday compatible을 지원합니다. `reg`는 최대 한 항목이고 `interrupts`는 timer마다 하나씩 1~8개입니다. `clocks`는 최소 하나이며 첫 항목은 peripheral clock, 둘째 선택 항목은 external tick clock입니다. 대응하는 `clock-names`는 `PCLK`, `EXTCLK` 순서입니다. `resets`는 최대 하나이고, `syscon`은 Gemini system controller phandle입니다. 공통 필수 속성은 `compatible`, `reg`, `interrupts`입니다.

properties:
  compatible:
    oneOf:
      - items:
          - const: moxa,moxart-timer
          - const: faraday,fttmr010
      - enum:
          - aspeed,ast2400-timer
          - aspeed,ast2500-timer
          - aspeed,ast2600-timer
          - cortina,gemini-timer
          - faraday,fttmr010

  reg:
    maxItems: 1

  interrupts:
    minItems: 1
    maxItems: 8
    description: One interrupt per timer

  clocks:
    minItems: 1
    items:
      - description: Peripheral clock
      - description: External tick clock

  clock-names:
    minItems: 1
    items:
      - const: PCLK
      - const: EXTCLK

  resets:
    maxItems: 1

  syscon:
    description: System controller phandle for Gemini systems
    $ref: /schemas/types.yaml#/definitions/phandle

required:
  - compatible
  - reg
  - interrupts

Gemini의 syscon 조건

62-76

`compatible`에 `cortina,gemini-timer`가 포함되면 `syscon`이 반드시 필요합니다. 다른 variant에서는 `syscon`을 사용할 수 없습니다. 스키마에 정의되지 않은 추가 속성도 허용되지 않습니다.

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: cortina,gemini-timer
    then:
      required:
        - syscon
    else:
      properties:
        syscon: false

additionalProperties: false

세 timer interrupt 예제

77-89

예제는 `timer@43000000`에 0x1000-byte register 영역을 두고 timer 1·2·3에 각각 interrupt 14·15·16을 falling-edge 방식으로 지정합니다. `pclk`과 `extclk`을 연결하고 이름을 `PCLK`, `EXTCLK`으로 부여합니다.

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    timer@43000000 {
        compatible = "faraday,fttmr010";
        reg = <0x43000000 0x1000>;
        interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
                    <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
                    <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
        clocks = <&pclk>, <&extclk>;
        clock-names = "PCLK", "EXTCLK";
    };