← Documents Documentation/devicetree/bindings/thermal/qoriq-thermal.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Thermal

Freescale QorIQ Thermal Monitoring Unit

QorIQ TMU의 IP revision, range register, 보정 행렬과 endian 설정을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

qoriq-thermal.yaml:1-118

QorIQ TMU의 IP revision, range register, 보정 행렬과 endian 설정을 설명합니다. 접을 수 있는 영어 원문 전체는 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·register·interrupt·clock·power domain·reset·수치·예제 코드를 원형대로 유지합니다.

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/qoriq-thermal.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Thermal Monitoring Unit (TMU) on Freescale QorIQ SoCs
8
9 maintainers:
10 - Shawn Guo <shawnguo@kernel.org>
11 - Sascha Hauer <s.hauer@pengutronix.de>
12 - Fabio Estevam <festevam@gmail.com>
13
14 $ref: thermal-sensor.yaml#
15
16 properties:
17 compatible:
18 description: |
19 The version of the device is determined by the TMU IP Block Revision
20 Register (IPBRR0) at offset 0x0BF8.
21 Table of correspondences between IPBRR0 values and example chips:
22 Value Device
23 ---------- -----
24 0x01900102 T1040
25 enum:
26 - fsl,qoriq-tmu
27 - fsl,imx8mq-tmu
28
29 reg:
30 maxItems: 1
31
32 interrupts:
33 maxItems: 1
34
35 fsl,tmu-range:
36 $ref: /schemas/types.yaml#/definitions/uint32-array
37 description: |
38 The values to be programmed into TTRnCR, as specified by the SoC
39 reference manual. The first cell is TTR0CR, the second is TTR1CR, etc.
40 minItems: 2
41 maxItems: 7
42
43 fsl,tmu-calibration:
44 $ref: /schemas/types.yaml#/definitions/uint32-matrix
45 description: |
46 A list of cell pairs containing temperature calibration data, as
47 specified by the SoC reference manual. The first cell of each pair
48 is the value to be written to TTCFGR, and the second is the value
49 to be written to TSCFGR.
50 items:
51 items:
52 - description: value for TTCFGR
53 - description: value for TSCFGR
54 minItems: 1
55 maxItems: 64
56
57 little-endian:
58 description: |
59 boolean, if present, the TMU registers are little endian. If absent,
60 the default is big endian.
61 type: boolean
62
63 clocks:
64 maxItems: 1
65
66 "#thermal-sensor-cells":
67 const: 1
68
69 required:
70 - compatible
71 - reg
72 - interrupts
73 - fsl,tmu-range
74 - fsl,tmu-calibration
75
76 unevaluatedProperties: false
77
78 examples:
79 - |
80 tmu@f0000 {
81 compatible = "fsl,qoriq-tmu";
82 reg = <0xf0000 0x1000>;
83 interrupts = <18 2 0 0>;
84 fsl,tmu-range = <0x000a0000 0x00090026 0x0008004a 0x0001006a>;
85 fsl,tmu-calibration = <0x00000000 0x00000025>,
86 <0x00000001 0x00000028>,
87 <0x00000002 0x0000002d>,
88 <0x00000003 0x00000031>,
89 <0x00000004 0x00000036>,
90 <0x00000005 0x0000003a>,
91 <0x00000006 0x00000040>,
92 <0x00000007 0x00000044>,
93 <0x00000008 0x0000004a>,
94 <0x00000009 0x0000004f>,
95 <0x0000000a 0x00000054>,
96 <0x00010000 0x0000000d>,
97 <0x00010001 0x00000013>,
98 <0x00010002 0x00000019>,
99 <0x00010003 0x0000001f>,
100 <0x00010004 0x00000025>,
101 <0x00010005 0x0000002d>,
102 <0x00010006 0x00000033>,
103 <0x00010007 0x00000043>,
104 <0x00010008 0x0000004b>,
105 <0x00010009 0x00000053>,
106 <0x00020000 0x00000010>,
107 <0x00020001 0x00000017>,
108 <0x00020002 0x0000001f>,
109 <0x00020003 0x00000029>,
110 <0x00020004 0x00000031>,
111 <0x00020005 0x0000003c>,
112 <0x00020006 0x00000042>,
113 <0x00020007 0x0000004d>,
114 <0x00020008 0x00000056>,
115 <0x00030000 0x00000012>,
116 <0x00030001 0x0000001d>;
117 #thermal-sensor-cells = <1>;
118 };
119

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Freescale QorIQ Thermal Monitoring Unit

1-15

이 GPL-2.0-only 또는 BSD-2-Clause YAML 스키마는 Freescale QorIQ SoC의 Thermal Monitoring Unit(TMU)을 정의합니다. Maintainer는 Shawn Guo, Sascha Hauer, Fabio Estevam이며 공통 `thermal-sensor.yaml#` 스키마를 사용합니다.

IPBRR0 revision과 compatible

16-28

장치 버전은 offset `0x0BF8`의 TMU IP Block Revision Register인 `IPBRR0` 값으로 판별합니다. 대응표의 예로 `0x01900102`는 T1040입니다. `compatible`은 QorIQ TMU용 `fsl,qoriq-tmu` 또는 i.MX8MQ TMU용 `fsl,imx8mq-tmu`입니다.

properties:
  compatible:
    description: |
      The version of the device is determined by the TMU IP Block Revision
      Register (IPBRR0) at offset 0x0BF8.
      Table of correspondences between IPBRR0 values and example chips:
            Value           Device
            ----------      -----
            0x01900102      T1040
    enum:
      - fsl,qoriq-tmu
      - fsl,imx8mq-tmu

레지스터·인터럽트와 TTRnCR 범위

29-42

`reg`와 `interrupts`는 각각 최대 한 항목입니다. `fsl,tmu-range`는 SoC reference manual에 따라 TTRnCR에 기록할 `uint32-array`입니다. 첫 셀은 TTR0CR, 둘째 셀은 TTR1CR에 대응하고 이후도 같은 순서이며 2~7개 셀을 허용합니다.

reg:
  maxItems: 1

interrupts:
  maxItems: 1

fsl,tmu-range:
  $ref: /schemas/types.yaml#/definitions/uint32-array
  description: |
    The values to be programmed into TTRnCR, as specified by the SoC
    reference manual. The first cell is TTR0CR, the second is TTR1CR, etc.
  minItems: 2
  maxItems: 7

TTCFGR·TSCFGR 보정과 endian

43-61

`fsl,tmu-calibration`은 SoC reference manual이 지정한 온도 보정 데이터의 `uint32-matrix`입니다. 각 행의 첫 셀은 TTCFGR에, 둘째 셀은 TSCFGR에 기록하며 1~64개 행을 허용합니다. Boolean `little-endian`이 있으면 TMU register가 little endian이고, 없으면 기본값은 big endian입니다.

fsl,tmu-calibration:
  $ref: /schemas/types.yaml#/definitions/uint32-matrix
  description: |
    A list of cell pairs containing temperature calibration data, as
    specified by the SoC reference manual. The first cell of each pair
    is the value to be written to TTCFGR, and the second is the value
    to be written to TSCFGR.
  items:
    items:
      - description: value for TTCFGR
      - description: value for TSCFGR
  minItems: 1
  maxItems: 64

little-endian:
  description: |
    boolean, if present, the TMU registers are little endian. If absent,
    the default is big endian.
  type: boolean

Clock, sensor cell과 필수 속성

62-77

`clocks`는 최대 한 항목이고 `#thermal-sensor-cells = 1`로 센서 ID 한 셀을 받습니다. `compatible`, `reg`, `interrupts`, `fsl,tmu-range`, `fsl,tmu-calibration`이 필수이며 `unevaluatedProperties: false`로 평가되지 않은 속성을 금지합니다.

  clocks:
    maxItems: 1

  "#thermal-sensor-cells":
    const: 1

required:
  - compatible
  - reg
  - interrupts
  - fsl,tmu-range
  - fsl,tmu-calibration

unevaluatedProperties: false

QorIQ TMU 보정 예제

78-118

예제는 `0xf0000`의 0x1000-byte QorIQ TMU와 interrupt `<18 2 0 0>`을 선언합니다. 네 개의 `fsl,tmu-range` 값과 TTCFGR·TSCFGR 쌍으로 이루어진 전체 보정 행렬을 원형대로 제시하며 1-cell thermal sensor provider로 노출합니다.

- |
  tmu@f0000 {
      compatible = "fsl,qoriq-tmu";
      reg = <0xf0000 0x1000>;
      interrupts = <18 2 0 0>;
      fsl,tmu-range = <0x000a0000 0x00090026 0x0008004a 0x0001006a>;
      fsl,tmu-calibration = <0x00000000 0x00000025>,
                            <0x00000001 0x00000028>,
                            <0x00000002 0x0000002d>,
                            <0x00000003 0x00000031>,
                            <0x00000004 0x00000036>,
                            <0x00000005 0x0000003a>,
                            <0x00000006 0x00000040>,
                            <0x00000007 0x00000044>,
                            <0x00000008 0x0000004a>,
                            <0x00000009 0x0000004f>,
                            <0x0000000a 0x00000054>,
                            <0x00010000 0x0000000d>,
                            <0x00010001 0x00000013>,
                            <0x00010002 0x00000019>,
                            <0x00010003 0x0000001f>,
                            <0x00010004 0x00000025>,
                            <0x00010005 0x0000002d>,
                            <0x00010006 0x00000033>,
                            <0x00010007 0x00000043>,
                            <0x00010008 0x0000004b>,
                            <0x00010009 0x00000053>,
                            <0x00020000 0x00000010>,
                            <0x00020001 0x00000017>,
                            <0x00020002 0x0000001f>,
                            <0x00020003 0x00000029>,
                            <0x00020004 0x00000031>,
                            <0x00020005 0x0000003c>,
                            <0x00020006 0x00000042>,
                            <0x00020007 0x0000004d>,
                            <0x00020008 0x00000056>,
                            <0x00030000 0x00000012>,
                            <0x00030001 0x0000001d>;
      #thermal-sensor-cells = <1>;
  };