115 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/thermal/imx-thermal.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: NXP i.MX Thermal8 9maintainers:10 - Shawn Guo <shawnguo@kernel.org>11 12properties:13 compatible:14 oneOf:15 - enum:16 - fsl,imx6q-tempmon17 - fsl,imx6sx-tempmon18 - fsl,imx7d-tempmon19 - items:20 - enum:21 - fsl,imx6sll-tempmon22 - fsl,imx6ul-tempmon23 - const: fsl,imx6sx-tempmon24 25 interrupts:26 description: |27 The interrupt output of the controller, i.MX6Q has IRQ_HIGH which28 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_LOW30 and the other is IRQ_PANIC, when temperature is lower than low31 threshold, IRQ_LOW will be triggered, when temperature is higher32 than panic threshold, IRQ_PANIC will be triggered, and system can33 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: 136 37 nvmem-cells:38 items:39 - description: Phandle to the calibration data provided by ocotp40 - description: Phandle to the temperature grade provided by ocotp41 42 nvmem-cell-names:43 items:44 - const: calib45 - const: temp_grade46 47 fsl,tempmon:48 $ref: /schemas/types.yaml#/definitions/phandle49 description: Phandle to anatop system controller node.50 51 fsl,tempmon-data:52 $ref: /schemas/types.yaml#/definitions/phandle53 description: |54 Deprecated property, phandle pointer to fuse controller that contains55 TEMPMON calibration data, e.g. OCOTP on imx6q. The details about56 calibration data can be found in SoC Reference Manual.57 deprecated: true58 59 clocks:60 maxItems: 161 62 "#thermal-sensor-cells":63 const: 064 65required:66 - compatible67 - interrupts68 - fsl,tempmon69 - nvmem-cells70 - nvmem-cell-names71 72allOf:73 - $ref: thermal-sensor.yaml#74 75additionalProperties: false76 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