요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/thermal/mediatek,lvts-thermal.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek SoC Low Voltage Thermal Sensor (LVTS)
maintainers:
- Balsam CHIHI <bchihi@baylibre.com>
description: |
LVTS is a thermal management architecture composed of three subsystems,
a Sensing device - Thermal Sensing Micro Circuit Unit (TSMCU),
a Converter - Low Voltage Thermal Sensor converter (LVTS), and
a Digital controller (LVTS_CTRL).
properties:
compatible:
enum:
- mediatek,mt7988-lvts-ap
- mediatek,mt8186-lvts
- mediatek,mt8188-lvts-ap
- mediatek,mt8188-lvts-mcu
- mediatek,mt8192-lvts-ap
- mediatek,mt8192-lvts-mcu
- mediatek,mt8195-lvts-ap
- mediatek,mt8195-lvts-mcu
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
resets:
maxItems: 1
description: LVTS reset for clearing temporary data on AP/MCU.
nvmem-cells:
minItems: 1
items:
- description: Calibration eFuse data 1 for LVTS
- description: Calibration eFuse data 2 for LVTS
nvmem-cell-names:
minItems: 1
items:
- const: lvts-calib-data-1
- const: lvts-calib-data-2
"#thermal-sensor-cells":
const: 1
allOf:
- $ref: thermal-sensor.yaml#
- if:
properties:
compatible:
contains:
enum:
- mediatek,mt8188-lvts-ap
- mediatek,mt8188-lvts-mcu
- mediatek,mt8192-lvts-ap
- mediatek,mt8192-lvts-mcu
then:
properties:
nvmem-cells:
maxItems: 1
nvmem-cell-names:
maxItems: 1
- if:
properties:
compatible:
contains:
enum:
- mediatek,mt8186-lvts
- mediatek,mt8195-lvts-ap
- mediatek,mt8195-lvts-mcu
then:
properties:
nvmem-cells:
minItems: 2
nvmem-cell-names:
minItems: 2
required:
- compatible
- reg
- interrupts
- clocks
- resets
- nvmem-cells
- nvmem-cell-names
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/mt8195-clk.h>
#include <dt-bindings/reset/mt8195-resets.h>
#include <dt-bindings/thermal/mediatek,lvts-thermal.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
lvts_mcu: thermal-sensor@11278000 {
compatible = "mediatek,mt8195-lvts-mcu";
reg = <0 0x11278000 0 0x1000>;
interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&infracfg_ao CLK_INFRA_AO_THERM>;
resets = <&infracfg_ao MT8195_INFRA_RST4_THERM_CTRL_MCU_SWRST>;
nvmem-cells = <&lvts_efuse_data1 &lvts_efuse_data2>;
nvmem-cell-names = "lvts-calib-data-1", "lvts-calib-data-2";
#thermal-sensor-cells = <1>;
};
};
thermal_zones: thermal-zones {
cpu0-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_mcu MT8195_MCU_LITTLE_CPU0>;
trips {
cpu0_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
cpu0_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
MediaTek Low Voltage Thermal Sensor
1-17이 GPL-2.0-only 또는 BSD-2-Clause YAML 스키마는 MediaTek SoC LVTS를 정의합니다. LVTS thermal management architecture는 sensing device인 TSMCU(Thermal Sensing Micro Circuit Unit), converter인 LVTS(Low Voltage Thermal Sensor converter), digital controller인 `LVTS_CTRL`의 세 subsystem으로 구성됩니다. Maintainer는 Balsam CHIHI입니다.
Controller와 calibration eFuse
18-57`compatible`은 `mediatek,mt7988-lvts-ap`, `mediatek,mt8186-lvts`, `mediatek,mt8188-lvts-ap`, `mediatek,mt8188-lvts-mcu`, `mediatek,mt8192-lvts-ap`, `mediatek,mt8192-lvts-mcu`, `mediatek,mt8195-lvts-ap`, `mediatek,mt8195-lvts-mcu` 중 하나입니다. `reg`, `interrupts`, `clocks`, `resets`는 각각 최대 한 항목이며 reset은 AP/MCU의 temporary data를 지웁니다.
`nvmem-cells`는 LVTS calibration eFuse data 1과 data 2를 최대 두 항목으로 담고 최소 한 항목이 필요합니다. 대응하는 `nvmem-cell-names`는 `lvts-calib-data-1`, `lvts-calib-data-2` 순서입니다. `#thermal-sensor-cells`는 sensor ID 하나를 받도록 1입니다.
MT8188·MT8192 단일 calibration cell
58-77공통 `thermal-sensor.yaml#`을 포함합니다. MT8188 AP/MCU와 MT8192 AP/MCU compatible에서는 `nvmem-cells`와 `nvmem-cell-names`를 각각 최대 한 항목만 허용합니다.
MT8186·MT8195 이중 calibration cell
78-93MT8186, MT8195 AP/MCU compatible에서는 `nvmem-cells`와 `nvmem-cell-names`가 각각 최소 두 항목이어야 하므로 두 calibration eFuse data를 모두 제공합니다.
필수 속성과 제한
94-104필수 속성은 `compatible`, `reg`, `interrupts`, `clocks`, `resets`, `nvmem-cells`, `nvmem-cell-names`입니다. `additionalProperties: false`로 추가 속성을 금지합니다.
MT8195 MCU LVTS와 CPU0 zone
105-148예제의 MT8195 MCU LVTS는 0x11278000의 0x1000-byte register, GIC SPI 170 level-high interrupt, thermal clock, MCU thermal reset과 eFuse data 두 개를 사용합니다. CPU0 zone은 `MT8195_MCU_LITTLE_CPU0` sensor를 1000 ms마다 읽고 passive polling은 250 ms로 수행합니다. 85000 millidegree passive trip과 100000 millidegree critical trip은 모두 hysteresis 2000을 사용합니다.
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/mt8195-clk.h>
#include <dt-bindings/reset/mt8195-resets.h>
#include <dt-bindings/thermal/mediatek,lvts-thermal.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
lvts_mcu: thermal-sensor@11278000 {
compatible = "mediatek,mt8195-lvts-mcu";
reg = <0 0x11278000 0 0x1000>;
interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&infracfg_ao CLK_INFRA_AO_THERM>;
resets = <&infracfg_ao MT8195_INFRA_RST4_THERM_CTRL_MCU_SWRST>;
nvmem-cells = <&lvts_efuse_data1 &lvts_efuse_data2>;
nvmem-cell-names = "lvts-calib-data-1", "lvts-calib-data-2";
#thermal-sensor-cells = <1>;
};
};
thermal_zones: thermal-zones {
cpu0-thermal {
polling-delay = <1000>;
polling-delay-passive = <250>;
thermal-sensors = <&lvts_mcu MT8195_MCU_LITTLE_CPU0>;
trips {
cpu0_alert: trip-alert {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
cpu0_crit: trip-crit {
temperature = <100000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
요약과 해설
mediatek,lvts-thermal.yaml:1-148MediaTek LVTS subsystem과 SoC별 calibration eFuse 개수 조건을 설명합니다. 접을 수 있는 영어 원문 전체는 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·register·interrupt·수치·예제 코드를 원형대로 유지합니다.