Documentation/devicetree/bindings/thermal/db8500-thermal.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Thermal

ST-Ericsson DB8500 Thermal

DB8500의 PRCMU interrupt와 trip별 cooling device 속성을 설명합니다.

Source pathDocumentation/devicetree/bindings/thermal/db8500-thermal.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.

1. 요약·해설

원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.

요약과 해설

db8500-thermal.txt:1-44

DB8500의 PRCMU interrupt와 trip별 cooling device 속성을 설명합니다. 접을 수 있는 영어 원문 전체는 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·register·interrupt·수치·예제 코드를 원형대로 유지합니다.

2. 영어 원문 전체

번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.

원문 전체 펼치기
1 * ST-Ericsson DB8500 Thermal
2
3 ** Thermal node properties:
4
5 - compatible : "stericsson,db8500-thermal";
6 - reg : address range of the thermal sensor registers;
7 - interrupts : interrupts generated from PRCMU;
8 - interrupt-names : "IRQ_HOTMON_LOW" and "IRQ_HOTMON_HIGH";
9 - num-trips : number of total trip points, this is required, set it 0 if none,
10 if greater than 0, the following properties must be defined;
11 - tripN-temp : temperature of trip point N, should be in ascending order;
12 - tripN-type : type of trip point N, should be one of "active" "passive" "hot"
13 "critical";
14 - tripN-cdev-num : number of the cooling devices which can be bound to trip
15 point N, this is required if trip point N is defined, set it 0 if none,
16 otherwise the following cooling device names must be defined;
17 - tripN-cdev-nameM : name of the No. M cooling device of trip point N;
18
19 Usually the num-trips and tripN-*** are separated in board related dts files.
20
21 Example:
22 thermal@801573c0 {
23 compatible = "stericsson,db8500-thermal";
24 reg = <0x801573c0 0x40>;
25 interrupts = <21 0x4>, <22 0x4>;
26 interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH";
27
28 num-trips = <3>;
29
30 trip0-temp = <75000>;
31 trip0-type = "active";
32 trip0-cdev-num = <1>;
33 trip0-cdev-name0 = "thermal-cpufreq-0";
34
35 trip1-temp = <80000>;
36 trip1-type = "active";
37 trip1-cdev-num = <2>;
38 trip1-cdev-name0 = "thermal-cpufreq-0";
39 trip1-cdev-name1 = "thermal-fan";
40
41 trip2-temp = <85000>;
42 trip2-type = "critical";
43 trip2-cdev-num = <0>;
44 }
45

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.

ST-Ericsson DB8500 Thermal

1-3

이 legacy binding은 ST-Ericsson DB8500 thermal node의 속성을 정의합니다.

Interrupt와 trip 속성

4-18

`compatible`은 `stericsson,db8500-thermal`이고 `reg`는 thermal sensor register 주소 범위입니다. `interrupts`는 PRCMU에서 생성되는 interrupt를 지정하며 `interrupt-names`는 `IRQ_HOTMON_LOW`와 `IRQ_HOTMON_HIGH`입니다.

`num-trips`는 전체 trip point 수이며 trip이 없을 때도 0으로 지정해야 합니다. 0보다 크면 `tripN-temp`를 오름차순으로 정의하고, `tripN-type`을 `active`, `passive`, `hot`, `critical` 중 하나로 지정합니다.

정의된 각 trip N에는 연결할 cooling device 수를 `tripN-cdev-num`으로 지정해야 합니다. 장치가 없으면 0을 쓰며, 그보다 크면 각 장치 이름을 `tripN-cdev-nameM`에 기록합니다.

Board DTS의 trip data

19-20

일반적으로 `num-trips`와 `tripN-*` 속성은 board별 DTS 파일에 분리해 둡니다.

세 trip point 예제

21-44

예제는 0x801573c0 register와 low/high monitor interrupt를 선언합니다. 75000에서는 `thermal-cpufreq-0`, 80000에서는 CPU frequency와 `thermal-fan`을 active cooling device로 연결하고, 85000에서는 cooling device 없는 `critical` trip을 정의합니다.

thermal@801573c0 {
        compatible = "stericsson,db8500-thermal";
        reg = <0x801573c0 0x40>;
        interrupts = <21 0x4>, <22 0x4>;
        interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH";

        num-trips = <3>;

        trip0-temp = <75000>;
        trip0-type = "active";
        trip0-cdev-num = <1>;
        trip0-cdev-name0 = "thermal-cpufreq-0";

        trip1-temp = <80000>;
        trip1-type = "active";
        trip1-cdev-num = <2>;
        trip1-cdev-name0 = "thermal-cpufreq-0";
        trip1-cdev-name1 = "thermal-fan";

        trip2-temp = <85000>;
        trip2-type = "critical";
        trip2-cdev-num = <0>;
}