요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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,thermal.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Mediatek thermal controller for on-SoC temperatures
maintainers:
- Sascha Hauer <[email protected]>
description:
This device does not have its own ADC, instead it directly controls the AUXADC
via AHB bus accesses. For this reason it needs phandles to the AUXADC. Also it
controls a mux in the apmixedsys register space via AHB bus accesses, so a
phandle to the APMIXEDSYS is also needed.
allOf:
- $ref: thermal-sensor.yaml#
properties:
compatible:
oneOf:
- enum:
- mediatek,mt2701-thermal
- mediatek,mt2712-thermal
- mediatek,mt7622-thermal
- mediatek,mt7986-thermal
- mediatek,mt8173-thermal
- mediatek,mt8183-thermal
- mediatek,mt8365-thermal
- items:
- enum:
- mediatek,mt8516-thermal
- const: mediatek,mt2701-thermal
- items:
- enum:
- mediatek,mt7981-thermal
- const: mediatek,mt7986-thermal
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Main clock needed for register access
- description: The AUXADC clock
clock-names:
items:
- const: therm
- const: auxadc
mediatek,auxadc:
$ref: /schemas/types.yaml#/definitions/phandle
description: A phandle to the AUXADC which the thermal controller uses
mediatek,apmixedsys:
$ref: /schemas/types.yaml#/definitions/phandle
description: A phandle to the APMIXEDSYS controller
resets:
description: Reset controller controlling the thermal controller
nvmem-cells:
items:
- description:
NVMEM cell with EEPROMA phandle to the calibration data provided by an
NVMEM device. If unspecified default values shall be used.
nvmem-cell-names:
items:
- const: calibration-data
required:
- reg
- interrupts
- clocks
- clock-names
- mediatek,auxadc
- mediatek,apmixedsys
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/mt8173-clk.h>
#include <dt-bindings/reset/mt8173-resets.h>
thermal@1100b000 {
compatible = "mediatek,mt8173-thermal";
reg = <0x1100b000 0x1000>;
interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
clock-names = "therm", "auxadc";
resets = <&pericfg MT8173_PERI_THERM_SW_RST>;
mediatek,auxadc = <&auxadc>;
mediatek,apmixedsys = <&apmixedsys>;
nvmem-cells = <&thermal_calibration_data>;
nvmem-cell-names = "calibration-data";
#thermal-sensor-cells = <1>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
MediaTek on-SoC thermal controller
1-20이 GPL-2.0-only 또는 BSD-2-Clause YAML 스키마는 MediaTek SoC 내부 온도용 thermal controller를 정의하고 공통 `thermal-sensor.yaml#`을 포함합니다. 이 device에는 자체 ADC가 없어 AHB bus access로 AUXADC를 직접 제어하므로 AUXADC phandle이 필요합니다. 또한 AHB로 `apmixedsys` register 공간의 mux를 제어하므로 APMIXEDSYS phandle도 필요합니다. Maintainer는 Sascha Hauer입니다.
SoC compatible과 fallback
21-40단독 compatible은 MT2701, MT2712, MT7622, MT7986, MT8173, MT8183, MT8365 thermal controller 중 하나입니다. MT8516은 `mediatek,mt8516-thermal` 뒤에 `mediatek,mt2701-thermal` fallback을 두고, MT7981은 `mediatek,mt7981-thermal` 뒤에 `mediatek,mt7986-thermal` fallback을 둡니다.
Register, interrupt, 두 clock
41-56`reg`와 `interrupts`는 각각 최대 한 항목입니다. `clocks`는 register access용 main clock과 AUXADC clock을 순서대로 담고, `clock-names`는 각각 `therm`, `auxadc`입니다.
AUXADC·APMIXEDSYS·reset·NVMEM
57-77`mediatek,auxadc`는 thermal controller가 사용하는 AUXADC phandle이고 `mediatek,apmixedsys`는 APMIXEDSYS controller phandle입니다. `resets`는 thermal controller를 제어하는 reset controller를 지정합니다.
선택적 `nvmem-cells`는 NVMEM device가 제공하는 calibration data의 EEPROMA phandle 한 항목을 담습니다. 지정하지 않으면 기본값을 사용합니다. `nvmem-cell-names`는 `calibration-data`입니다.
필수 속성과 제한
78-87필수 속성은 `reg`, `interrupts`, `clocks`, `clock-names`, `mediatek,auxadc`, `mediatek,apmixedsys`입니다. `unevaluatedProperties: false`로 추가 속성을 제한합니다.
MT8173 thermal controller 예제
88-106예제는 0x1100b000의 0x1000-byte register, interrupt 70 level-low, `therm`과 `auxadc` clock, thermal reset, AUXADC·APMIXEDSYS phandle, NVMEM calibration cell을 지정하고 1-cell thermal sensor provider로 노출합니다.
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/mt8173-clk.h>
#include <dt-bindings/reset/mt8173-resets.h>
thermal@1100b000 {
compatible = "mediatek,mt8173-thermal";
reg = <0x1100b000 0x1000>;
interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
clock-names = "therm", "auxadc";
resets = <&pericfg MT8173_PERI_THERM_SW_RST>;
mediatek,auxadc = <&auxadc>;
mediatek,apmixedsys = <&apmixedsys>;
nvmem-cells = <&thermal_calibration_data>;
nvmem-cell-names = "calibration-data";
#thermal-sensor-cells = <1>;
};
요약과 해설
mediatek,thermal.yaml:1-106MediaTek thermal controller의 AUXADC·APMIXEDSYS 연결과 calibration을 설명합니다. 접을 수 있는 영어 원문 전체는 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·register·interrupt·수치·예제 코드를 원형대로 유지합니다.