요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timestamp/nvidia,tegra194-hte.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Tegra on chip generic hardware timestamping engine (HTE) provider
maintainers:
- Dipen Patel <dipenp@nvidia.com>
description:
Tegra SoC has two instances of generic hardware timestamping engines (GTE)
known as GTE GPIO and GTE IRQ, which can monitor subset of GPIO and on chip
IRQ lines for the state change respectively, upon detection it will record
timestamp (taken from system counter) in its internal hardware FIFO. It has
a bitmap array arranged in 32bit slices where each bit represent signal/line
to enable or disable for the hardware timestamping. The GTE GPIO monitors
GPIO lines from the AON (always on) GPIO controller.
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
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
required:
- compatible
- reg
- interrupts
- "#timestamp-cells"
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
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>;
};
...
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Tegra generic hardware timestamp engine
1-20GPL-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-42Compatible은 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-67Deprecated `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-119AON 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>;
};
...
요약과 해설
nvidia,tegra194-hte.yaml:1-140Tegra AON·LIC timestamp engine의 slice·FIFO·GPIO 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, interrupt, clock, register, phandle, 수치와 줄 좌표를 원형대로 보존합니다.