← Documents Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Timestamp

NVIDIA Tegra194/234 HTE

Tegra AON·LIC timestamp engine의 slice·FIFO·GPIO 조건을 설명합니다.

Source pathDocumentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

nvidia,tegra194-hte.yaml:1-140

Tegra AON·LIC timestamp engine의 slice·FIFO·GPIO 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 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/timestamp/nvidia,tegra194-hte.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Tegra on chip generic hardware timestamping engine (HTE) provider
8
9 maintainers:
10 - Dipen Patel <[email protected]>
11
12 description:
13 Tegra SoC has two instances of generic hardware timestamping engines (GTE)
14 known as GTE GPIO and GTE IRQ, which can monitor subset of GPIO and on chip
15 IRQ lines for the state change respectively, upon detection it will record
16 timestamp (taken from system counter) in its internal hardware FIFO. It has
17 a bitmap array arranged in 32bit slices where each bit represent signal/line
18 to enable or disable for the hardware timestamping. The GTE GPIO monitors
19 GPIO lines from the AON (always on) GPIO controller.
20
21 properties:
22 compatible:
23 enum:
24 - nvidia,tegra194-gte-aon
25 - nvidia,tegra194-gte-lic
26 - nvidia,tegra234-gte-aon
27 - nvidia,tegra234-gte-lic
28
29 reg:
30 maxItems: 1
31
32 interrupts:
33 maxItems: 1
34
35 nvidia,int-threshold:
36 $ref: /schemas/types.yaml#/definitions/uint32
37 description:
38 HTE device generates its interrupt based on this u32 FIFO threshold
39 value. The recommended value is 1.
40 minimum: 1
41 maximum: 256
42
43 nvidia,slices:
44 $ref: /schemas/types.yaml#/definitions/uint32
45 deprecated: true
46 description:
47 HTE lines are arranged in 32 bit slice where each bit represents different
48 line/signal that it can enable/configure for the timestamp. It is u32
49 property and the value depends on the HTE instance in the chip. The AON
50 GTE instances for both Tegra194 and Tegra234 has 3 slices. The Tegra194
51 LIC instance has 11 slices and Tegra234 LIC has 17 slices.
52 enum: [3, 11, 17]
53
54 nvidia,gpio-controller:
55 $ref: /schemas/types.yaml#/definitions/phandle
56 description:
57 The phandle to AON gpio controller instance. This is required to handle
58 namespace conversion between GPIO and GTE.
59
60 '#timestamp-cells':
61 description:
62 This represents number of line id arguments as specified by the
63 consumers. For the GTE IRQ, this is IRQ number as mentioned in the
64 SoC technical reference manual. For the GTE GPIO, its value is same as
65 mentioned in the nvidia GPIO device tree binding document.
66 const: 1
67
68 required:
69 - compatible
70 - reg
71 - interrupts
72 - "#timestamp-cells"
73
74 allOf:
75 - if:
76 properties:
77 compatible:
78 contains:
79 enum:
80 - nvidia,tegra194-gte-aon
81 - nvidia,tegra234-gte-aon
82 then:
83 properties:
84 nvidia,slices:
85 const: 3
86
87 - if:
88 properties:
89 compatible:
90 contains:
91 enum:
92 - nvidia,tegra194-gte-lic
93 then:
94 properties:
95 nvidia,slices:
96 const: 11
97
98 - if:
99 properties:
100 compatible:
101 contains:
102 enum:
103 - nvidia,tegra234-gte-lic
104 then:
105 properties:
106 nvidia,slices:
107 const: 17
108
109 - if:
110 properties:
111 compatible:
112 contains:
113 enum:
114 - nvidia,tegra234-gte-aon
115 then:
116 required:
117 - nvidia,gpio-controller
118
119 additionalProperties: false
120
121 examples:
122 - |
123 tegra_hte_aon: timestamp@c1e0000 {
124 compatible = "nvidia,tegra194-gte-aon";
125 reg = <0xc1e0000 0x10000>;
126 interrupts = <0 13 0x4>;
127 nvidia,int-threshold = <1>;
128 #timestamp-cells = <1>;
129 };
130
131 - |
132 tegra_hte_lic: timestamp@3aa0000 {
133 compatible = "nvidia,tegra194-gte-lic";
134 reg = <0x3aa0000 0x10000>;
135 interrupts = <0 11 0x4>;
136 nvidia,int-threshold = <1>;
137 #timestamp-cells = <1>;
138 };
139
140 ...
141

3. 한국어 전문 번역

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

Tegra generic hardware timestamp engine

1-20

GPL-2.0-only 또는 BSD-2-Clause 라이선스의 이 스키마는 Tegra on-chip generic hardware timestamping engine provider를 정의합니다. Tegra SoC에는 GTE GPIO와 GTE IRQ라는 두 GTE instance가 있습니다. 이들은 각각 일부 GPIO line과 on-chip IRQ line의 state change를 감시하고, 변화를 감지하면 system counter에서 얻은 timestamp를 내부 hardware FIFO에 기록합니다.

Enable 또는 disable할 signal/line을 bit로 나타내는 bitmap array는 32-bit slice 단위로 배열됩니다. GTE GPIO는 AON(always-on) GPIO controller의 line을 감시합니다. Maintainer는 Dipen Patel입니다.

Compatible·interrupt threshold

21-42

Compatible은 Tegra194와 Tegra234 각각의 AON GPIO GTE 또는 LIC IRQ GTE인 `nvidia,tegra194-gte-aon`, `nvidia,tegra194-gte-lic`, `nvidia,tegra234-gte-aon`, `nvidia,tegra234-gte-lic`입니다. `reg`와 `interrupts`는 각각 최대 한 항목입니다. `nvidia,int-threshold`는 HTE가 interrupt를 발생시키는 u32 FIFO threshold로 권장값은 1이고 허용 범위는 1~256입니다.

properties:
  compatible:
    enum:
      - nvidia,tegra194-gte-aon
      - nvidia,tegra194-gte-lic
      - nvidia,tegra234-gte-aon
      - nvidia,tegra234-gte-lic

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  nvidia,int-threshold:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      HTE device generates its interrupt based on this u32 FIFO threshold
      value. The recommended value is 1.
    minimum: 1
    maximum: 256

Slice·GPIO namespace·line id

43-67

Deprecated `nvidia,slices`는 32-bit slice 수이며 각 bit가 timestamp를 enable 또는 configure할 line/signal 하나를 나타냅니다. Tegra194·Tegra234 AON GTE는 3개, Tegra194 LIC는 11개, Tegra234 LIC는 17개 slice를 가지므로 값은 3, 11, 17 중 하나입니다.

`nvidia,gpio-controller`는 AON GPIO controller phandle이며 GPIO와 GTE 사이의 namespace conversion에 사용합니다. `#timestamp-cells`는 consumer가 전달하는 line id argument 수로 1입니다. GTE IRQ에서는 SoC technical reference manual의 IRQ number를, GTE GPIO에서는 NVIDIA GPIO device tree binding의 값을 line id로 사용합니다.

nvidia,slices:
  $ref: /schemas/types.yaml#/definitions/uint32
  deprecated: true
  description:
    HTE lines are arranged in 32 bit slice where each bit represents different
    line/signal that it can enable/configure for the timestamp. It is u32
    property and the value depends on the HTE instance in the chip. The AON
    GTE instances for both Tegra194 and Tegra234 has 3 slices. The Tegra194
    LIC instance has 11 slices and Tegra234 LIC has 17 slices.
  enum: [3, 11, 17]

nvidia,gpio-controller:
  $ref: /schemas/types.yaml#/definitions/phandle
  description:
    The phandle to AON gpio controller instance. This is required to handle
    namespace conversion between GPIO and GTE.

'#timestamp-cells':
  description:
    This represents number of line id arguments as specified by the
    consumers. For the GTE IRQ, this is IRQ number as mentioned in the
    SoC technical reference manual. For the GTE GPIO, its value is same as
    mentioned in the nvidia GPIO device tree binding document.
  const: 1

공통 필수 속성

68-73

`compatible`, `reg`, `interrupts`, `#timestamp-cells`가 모든 Tegra GTE provider의 공통 필수 속성입니다.

required:
  - compatible
  - reg
  - interrupts
  - "#timestamp-cells"

Instance별 slice와 Tegra234 GPIO 조건

74-119

AON compatible인 Tegra194·Tegra234 GTE에서 `nvidia,slices`를 제공하면 값은 3이어야 합니다. Tegra194 LIC에서는 11, Tegra234 LIC에서는 17이어야 합니다. Tegra234 AON GTE는 GPIO와 GTE namespace를 변환하기 위해 `nvidia,gpio-controller`가 추가로 필수입니다. 정의되지 않은 추가 속성은 허용하지 않습니다.

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra194-gte-aon
              - nvidia,tegra234-gte-aon
    then:
      properties:
        nvidia,slices:
          const: 3

  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra194-gte-lic
    then:
      properties:
        nvidia,slices:
          const: 11

  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra234-gte-lic
    then:
      properties:
        nvidia,slices:
          const: 17

  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra234-gte-aon
    then:
      required:
        - nvidia,gpio-controller

additionalProperties: false

Tegra194 AON·LIC provider

120-140

첫 예제 `tegra_hte_aon: timestamp@c1e0000`은 Tegra194 AON GTE, 0x10000-byte register 영역, interrupt `<0 13 0x4>`, FIFO threshold 1, timestamp cell 한 개를 지정합니다. 둘째 `tegra_hte_lic: timestamp@3aa0000`은 Tegra194 LIC GTE와 interrupt `<0 11 0x4>`를 사용하고 나머지 threshold·cell 설정은 같습니다.


examples:
  - |
    tegra_hte_aon: timestamp@c1e0000 {
              compatible = "nvidia,tegra194-gte-aon";
              reg = <0xc1e0000 0x10000>;
              interrupts = <0 13 0x4>;
              nvidia,int-threshold = <1>;
              #timestamp-cells = <1>;
    };

  - |
    tegra_hte_lic: timestamp@3aa0000 {
              compatible = "nvidia,tegra194-gte-lic";
              reg = <0x3aa0000 0x10000>;
              interrupts = <0 11 0x4>;
              nvidia,int-threshold = <1>;
              #timestamp-cells = <1>;
    };

...