1# SPDX-License-Identifier: (GPL-2.0)
2# Copyright 2020 Linaro Ltd.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/thermal/thermal-sensor.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Thermal sensor binding
9
10maintainers:
11  - Amit Kucheria <amitk@kernel.org>
12
13description: |
14  Thermal management is achieved in devicetree by describing the sensor hardware
15  and the software abstraction of thermal zones required to take appropriate
16  action to mitigate thermal overloads.
17
18  The following node types are used to completely describe a thermal management
19  system in devicetree:
20   - thermal-sensor: device that measures temperature, has SoC-specific bindings
21   - cooling-device: device used to dissipate heat either passively or actively
22   - thermal-zones: a container of the following node types used to describe all
23     thermal data for the platform
24
25  This binding describes the thermal-sensor.
26
27  Thermal sensor devices provide temperature sensing capabilities on thermal
28  zones. Typical devices are I2C ADC converters and bandgaps. Thermal sensor
29  devices may control one or more internal sensors.
30
31properties:
32  "#thermal-sensor-cells":
33    description:
34      Used to uniquely identify a thermal sensor instance within an IC. Will be
35      0 on sensor nodes with only a single sensor and at least 1 on nodes
36      containing several internal sensors.
37    enum: [0, 1]
38
39additionalProperties: true
40
41examples:
42  - |
43    #include <dt-bindings/interrupt-controller/arm-gic.h>
44
45    // Example 1: SDM845 TSENS
46    soc: soc {
47            #address-cells = <2>;
48            #size-cells = <2>;
49
50            /* ... */
51
52            tsens0: thermal-sensor@c263000 {
53                    compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
54                    reg = <0 0x0c263000 0 0x1ff>, /* TM */
55                          <0 0x0c222000 0 0x1ff>; /* SROT */
56                    #qcom,sensors = <13>;
57                    interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
58                                 <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
59                    interrupt-names = "uplow", "critical";
60                    #thermal-sensor-cells = <1>;
61            };
62
63            tsens1: thermal-sensor@c265000 {
64                    compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
65                    reg = <0 0x0c265000 0 0x1ff>, /* TM */
66                          <0 0x0c223000 0 0x1ff>; /* SROT */
67                    #qcom,sensors = <8>;
68                    interrupts = <GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH>,
69                                 <GIC_SPI 509 IRQ_TYPE_LEVEL_HIGH>;
70                    interrupt-names = "uplow", "critical";
71                    #thermal-sensor-cells = <1>;
72            };
73    };
74...
75