1# 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> 11 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 }; 115