← Documents Documentation/devicetree/bindings/timer/fsl,imxgpt.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Timer

Freescale i.MX General Purpose Timer

i.MX GPT의 SoC compatible 계보와 선택 osc_per clock을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

fsl,imxgpt.yaml:1-108

i.MX GPT의 SoC compatible 계보와 선택 osc_per 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/fsl,imxgpt.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Freescale i.MX General Purpose Timer (GPT)
8
9 maintainers:
10 - Sascha Hauer <s.hauer@pengutronix.de>
11
12 properties:
13 compatible:
14 oneOf:
15 - const: fsl,imx1-gpt
16 - const: fsl,imx21-gpt
17 - items:
18 - const: fsl,imx27-gpt
19 - const: fsl,imx21-gpt
20 - const: fsl,imx31-gpt
21 - items:
22 - enum:
23 - fsl,imx25-gpt
24 - fsl,imx35-gpt
25 - fsl,imx50-gpt
26 - fsl,imx51-gpt
27 - fsl,imx53-gpt
28 - fsl,imx6q-gpt
29 - const: fsl,imx31-gpt
30 - const: fsl,imx6dl-gpt
31 - items:
32 - enum:
33 - fsl,imx6sl-gpt
34 - fsl,imx6sx-gpt
35 - fsl,imx7d-gpt
36 - fsl,imx8mp-gpt
37 - fsl,imxrt1050-gpt
38 - fsl,imxrt1170-gpt
39 - const: fsl,imx6dl-gpt
40 - items:
41 - enum:
42 - fsl,imx6ul-gpt
43 - const: fsl,imx6sx-gpt
44
45 reg:
46 maxItems: 1
47
48 interrupts:
49 maxItems: 1
50
51 clocks:
52 minItems: 2
53 items:
54 - description: SoC GPT ipg clock
55 - description: SoC GPT per clock
56 - description: SoC GPT osc per clock
57
58 clock-names:
59 minItems: 2
60 items:
61 - const: ipg
62 - const: per
63 - const: osc_per
64
65 required:
66 - compatible
67 - reg
68 - interrupts
69 - clocks
70 - clock-names
71
72 allOf:
73 - if:
74 properties:
75 compatible:
76 contains:
77 enum:
78 - fsl,imx6dl-gpt
79 - fsl,imx6q-gpt
80 then:
81 properties:
82 clocks:
83 minItems: 2
84 maxItems: 3
85 clock-names:
86 minItems: 2
87 maxItems: 3
88 else:
89 properties:
90 clocks:
91 maxItems: 2
92 clock-names:
93 maxItems: 2
94
95 additionalProperties: false
96
97 examples:
98 - |
99 #include <dt-bindings/clock/imx27-clock.h>
100
101 timer@10003000 {
102 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
103 reg = <0x10003000 0x1000>;
104 interrupts = <26>;
105 clocks = <&clks IMX27_CLK_GPT1_IPG_GATE>,
106 <&clks IMX27_CLK_PER1_GATE>;
107 clock-names = "ipg", "per";
108 };
109

3. 한국어 전문 번역

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

Freescale i.MX General Purpose Timer

1-11

GPL-2.0-only 또는 BSD-2-Clause 라이선스의 이 스키마는 Freescale i.MX General Purpose Timer(GPT)를 정의합니다. Maintainer는 Sascha Hauer입니다.

SoC compatible 계보와 clock 이름

12-71

i.MX1과 i.MX21은 각각 독립 compatible을 사용하고, i.MX27은 `fsl,imx21-gpt` fallback을 둡니다. i.MX25·35·50·51·53·6Q는 `fsl,imx31-gpt`로 fallback합니다. i.MX6SL·6SX·7D·8MP·RT1050·RT1170은 `fsl,imx6dl-gpt`로 fallback하며, i.MX6UL은 `fsl,imx6sx-gpt`로 fallback합니다. `reg`와 `interrupts`는 각각 최대 한 항목입니다. Clock은 최소 `ipg`와 `per` 두 개이며 선택적인 세 번째 clock은 `osc_per`입니다. `compatible`, `reg`, `interrupts`, `clocks`, `clock-names`가 모두 필수입니다.

properties:
  compatible:
    oneOf:
      - const: fsl,imx1-gpt
      - const: fsl,imx21-gpt
      - items:
          - const: fsl,imx27-gpt
          - const: fsl,imx21-gpt
      - const: fsl,imx31-gpt
      - items:
          - enum:
              - fsl,imx25-gpt
              - fsl,imx35-gpt
              - fsl,imx50-gpt
              - fsl,imx51-gpt
              - fsl,imx53-gpt
              - fsl,imx6q-gpt
          - const: fsl,imx31-gpt
      - const: fsl,imx6dl-gpt
      - items:
          - enum:
              - fsl,imx6sl-gpt
              - fsl,imx6sx-gpt
              - fsl,imx7d-gpt
              - fsl,imx8mp-gpt
              - fsl,imxrt1050-gpt
              - fsl,imxrt1170-gpt
          - const: fsl,imx6dl-gpt
      - items:
          - enum:
              - fsl,imx6ul-gpt
          - const: fsl,imx6sx-gpt

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 2
    items:
      - description: SoC GPT ipg clock
      - description: SoC GPT per clock
      - description: SoC GPT osc per clock

  clock-names:
    minItems: 2
    items:
      - const: ipg
      - const: per
      - const: osc_per

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

i.MX6DL·6Q의 선택 osc_per

72-96

`compatible`에 `fsl,imx6dl-gpt` 또는 `fsl,imx6q-gpt`가 포함되면 `clocks`와 `clock-names`는 2~3개이므로 선택적인 `osc_per` clock을 사용할 수 있습니다. 다른 compatible에서는 두 항목만 허용되어 `ipg`와 `per`만 사용합니다. 추가 속성은 허용되지 않습니다.

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx6dl-gpt
              - fsl,imx6q-gpt
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 3
        clock-names:
          minItems: 2
          maxItems: 3
    else:
      properties:
        clocks:
          maxItems: 2
        clock-names:
          maxItems: 2

additionalProperties: false

i.MX27 GPT1 예제

97-108

예제는 `timer@10003000`에 i.MX27 compatible과 i.MX21 fallback, 0x1000-byte register 영역, interrupt 26을 지정합니다. `IMX27_CLK_GPT1_IPG_GATE`와 `IMX27_CLK_PER1_GATE`를 각각 `ipg`, `per`로 연결합니다.

examples:
  - |
    #include <dt-bindings/clock/imx27-clock.h>

    timer@10003000 {
        compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
        reg = <0x10003000 0x1000>;
        interrupts = <26>;
        clocks = <&clks IMX27_CLK_GPT1_IPG_GATE>,
                 <&clks IMX27_CLK_PER1_GATE>;
        clock-names = "ipg", "per";
    };