blob: 337560562337d1d8a85f3e896c369e91b54300d5 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/thermal/imx-thermal.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP i.MX Thermal
8
9maintainers:
10 - Shawn Guo <shawnguo@kernel.org>
Tom Rini53633a82024-02-29 12:33:36 -050011
12properties:
13 compatible:
14 oneOf:
15 - enum:
16 - fsl,imx6q-tempmon
17 - fsl,imx6sx-tempmon
18 - fsl,imx7d-tempmon
19 - items:
20 - enum:
21 - fsl,imx6sll-tempmon
22 - fsl,imx6ul-tempmon
23 - const: fsl,imx6sx-tempmon
24
25 interrupts:
26 description: |
27 The interrupt output of the controller, i.MX6Q has IRQ_HIGH which
28 will be triggered when temperature is higher than high threshold,
29 i.MX6SX and i.MX7S/D have two more IRQs than i.MX6Q, one is IRQ_LOW
30 and the other is IRQ_PANIC, when temperature is lower than low
31 threshold, IRQ_LOW will be triggered, when temperature is higher
32 than panic threshold, IRQ_PANIC will be triggered, and system can
33 be configured to auto reboot by SRC module for IRQ_PANIC. IRQ_HIGH,
34 IRQ_LOW and IRQ_PANIC share same interrupt output of controller.
35 maxItems: 1
36
37 nvmem-cells:
38 items:
39 - description: Phandle to the calibration data provided by ocotp
40 - description: Phandle to the temperature grade provided by ocotp
41
42 nvmem-cell-names:
43 items:
44 - const: calib
45 - const: temp_grade
46
47 fsl,tempmon:
48 $ref: /schemas/types.yaml#/definitions/phandle
49 description: Phandle to anatop system controller node.
50
51 fsl,tempmon-data:
52 $ref: /schemas/types.yaml#/definitions/phandle
53 description: |
54 Deprecated property, phandle pointer to fuse controller that contains
55 TEMPMON calibration data, e.g. OCOTP on imx6q. The details about
56 calibration data can be found in SoC Reference Manual.
57 deprecated: true
58
59 clocks:
60 maxItems: 1
61
62 "#thermal-sensor-cells":
63 const: 0
64
65required:
66 - compatible
67 - interrupts
68 - fsl,tempmon
69 - nvmem-cells
70 - nvmem-cell-names
71
72allOf:
73 - $ref: thermal-sensor.yaml#
74
75additionalProperties: false
76
77examples:
78 - |
79 #include <dt-bindings/clock/imx6sx-clock.h>
80 #include <dt-bindings/interrupt-controller/arm-gic.h>
81
82 efuse@21bc000 {
83 #address-cells = <1>;
84 #size-cells = <1>;
85 compatible = "fsl,imx6sx-ocotp", "syscon";
86 reg = <0x021bc000 0x4000>;
87 clocks = <&clks IMX6SX_CLK_OCOTP>;
88
89 tempmon_calib: calib@38 {
90 reg = <0x38 4>;
91 };
92
93 tempmon_temp_grade: temp-grade@20 {
94 reg = <0x20 4>;
95 };
96 };
97
98 anatop@20c8000 {
99 compatible = "fsl,imx6q-anatop", "syscon", "simple-mfd";
100 reg = <0x020c8000 0x1000>;
101 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
102 <0 54 IRQ_TYPE_LEVEL_HIGH>,
103 <0 127 IRQ_TYPE_LEVEL_HIGH>;
104
105 tempmon {
106 compatible = "fsl,imx6sx-tempmon";
107 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
108 fsl,tempmon = <&anatop>;
109 nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
110 nvmem-cell-names = "calib", "temp_grade";
111 clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
112 #thermal-sensor-cells = <0>;
113 };
114 };