← Documents Documentation/devicetree/bindings/thermal/mediatek,lvts-thermal.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Thermal

MediaTek LVTS

MediaTek LVTS subsystem과 SoC별 calibration eFuse 개수 조건을 설명합니다.

Source pathDocumentation/devicetree/bindings/thermal/mediatek,lvts-thermal.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

mediatek,lvts-thermal.yaml:1-148

MediaTek LVTS subsystem과 SoC별 calibration eFuse 개수 조건을 설명합니다. 접을 수 있는 영어 원문 전체는 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·register·interrupt·수치·예제 코드를 원형대로 유지합니다.

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/thermal/mediatek,lvts-thermal.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: MediaTek SoC Low Voltage Thermal Sensor (LVTS)
8
9 maintainers:
10 - Balsam CHIHI <[email protected]>
11
12 description: |
13 LVTS is a thermal management architecture composed of three subsystems,
14 a Sensing device - Thermal Sensing Micro Circuit Unit (TSMCU),
15 a Converter - Low Voltage Thermal Sensor converter (LVTS), and
16 a Digital controller (LVTS_CTRL).
17
18 properties:
19 compatible:
20 enum:
21 - mediatek,mt7988-lvts-ap
22 - mediatek,mt8186-lvts
23 - mediatek,mt8188-lvts-ap
24 - mediatek,mt8188-lvts-mcu
25 - mediatek,mt8192-lvts-ap
26 - mediatek,mt8192-lvts-mcu
27 - mediatek,mt8195-lvts-ap
28 - mediatek,mt8195-lvts-mcu
29
30 reg:
31 maxItems: 1
32
33 interrupts:
34 maxItems: 1
35
36 clocks:
37 maxItems: 1
38
39 resets:
40 maxItems: 1
41 description: LVTS reset for clearing temporary data on AP/MCU.
42
43 nvmem-cells:
44 minItems: 1
45 items:
46 - description: Calibration eFuse data 1 for LVTS
47 - description: Calibration eFuse data 2 for LVTS
48
49 nvmem-cell-names:
50 minItems: 1
51 items:
52 - const: lvts-calib-data-1
53 - const: lvts-calib-data-2
54
55 "#thermal-sensor-cells":
56 const: 1
57
58 allOf:
59 - $ref: thermal-sensor.yaml#
60
61 - if:
62 properties:
63 compatible:
64 contains:
65 enum:
66 - mediatek,mt8188-lvts-ap
67 - mediatek,mt8188-lvts-mcu
68 - mediatek,mt8192-lvts-ap
69 - mediatek,mt8192-lvts-mcu
70 then:
71 properties:
72 nvmem-cells:
73 maxItems: 1
74
75 nvmem-cell-names:
76 maxItems: 1
77
78 - if:
79 properties:
80 compatible:
81 contains:
82 enum:
83 - mediatek,mt8186-lvts
84 - mediatek,mt8195-lvts-ap
85 - mediatek,mt8195-lvts-mcu
86 then:
87 properties:
88 nvmem-cells:
89 minItems: 2
90
91 nvmem-cell-names:
92 minItems: 2
93
94 required:
95 - compatible
96 - reg
97 - interrupts
98 - clocks
99 - resets
100 - nvmem-cells
101 - nvmem-cell-names
102
103 additionalProperties: false
104
105 examples:
106 - |
107 #include <dt-bindings/interrupt-controller/arm-gic.h>
108 #include <dt-bindings/clock/mt8195-clk.h>
109 #include <dt-bindings/reset/mt8195-resets.h>
110 #include <dt-bindings/thermal/mediatek,lvts-thermal.h>
111
112 soc {
113 #address-cells = <2>;
114 #size-cells = <2>;
115
116 lvts_mcu: thermal-sensor@11278000 {
117 compatible = "mediatek,mt8195-lvts-mcu";
118 reg = <0 0x11278000 0 0x1000>;
119 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH 0>;
120 clocks = <&infracfg_ao CLK_INFRA_AO_THERM>;
121 resets = <&infracfg_ao MT8195_INFRA_RST4_THERM_CTRL_MCU_SWRST>;
122 nvmem-cells = <&lvts_efuse_data1 &lvts_efuse_data2>;
123 nvmem-cell-names = "lvts-calib-data-1", "lvts-calib-data-2";
124 #thermal-sensor-cells = <1>;
125 };
126 };
127
128 thermal_zones: thermal-zones {
129 cpu0-thermal {
130 polling-delay = <1000>;
131 polling-delay-passive = <250>;
132 thermal-sensors = <&lvts_mcu MT8195_MCU_LITTLE_CPU0>;
133
134 trips {
135 cpu0_alert: trip-alert {
136 temperature = <85000>;
137 hysteresis = <2000>;
138 type = "passive";
139 };
140
141 cpu0_crit: trip-crit {
142 temperature = <100000>;
143 hysteresis = <2000>;
144 type = "critical";
145 };
146 };
147 };
148 };
149

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-93

MT8186, 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";
      };
    };
  };
};