0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/thermal/imx-thermal.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: NXP i.MX Thermal Binding
0008
0009 maintainers:
0010 - Shawn Guo <shawnguo@kernel.org>
0011 - Anson Huang <Anson.Huang@nxp.com>
0012
0013 properties:
0014 compatible:
0015 enum:
0016 - fsl,imx6q-tempmon
0017 - fsl,imx6sx-tempmon
0018 - fsl,imx7d-tempmon
0019
0020 interrupts:
0021 description: |
0022 The interrupt output of the controller, i.MX6Q has IRQ_HIGH which
0023 will be triggered when temperature is higher than high threshold,
0024 i.MX6SX and i.MX7S/D have two more IRQs than i.MX6Q, one is IRQ_LOW
0025 and the other is IRQ_PANIC, when temperature is lower than low
0026 threshold, IRQ_LOW will be triggered, when temperature is higher
0027 than panic threshold, IRQ_PANIC will be triggered, and system can
0028 be configured to auto reboot by SRC module for IRQ_PANIC. IRQ_HIGH,
0029 IRQ_LOW and IRQ_PANIC share same interrupt output of controller.
0030 maxItems: 1
0031
0032 nvmem-cells:
0033 items:
0034 - description: Phandle to the calibration data provided by ocotp
0035 - description: Phandle to the temperature grade provided by ocotp
0036
0037 nvmem-cell-names:
0038 items:
0039 - const: calib
0040 - const: temp_grade
0041
0042 fsl,tempmon:
0043 $ref: '/schemas/types.yaml#/definitions/phandle'
0044 description: Phandle to anatop system controller node.
0045
0046 fsl,tempmon-data:
0047 $ref: '/schemas/types.yaml#/definitions/phandle'
0048 description: |
0049 Deprecated property, phandle pointer to fuse controller that contains
0050 TEMPMON calibration data, e.g. OCOTP on imx6q. The details about
0051 calibration data can be found in SoC Reference Manual.
0052 deprecated: true
0053
0054 clocks:
0055 maxItems: 1
0056
0057 required:
0058 - compatible
0059 - interrupts
0060 - fsl,tempmon
0061 - nvmem-cells
0062 - nvmem-cell-names
0063
0064 additionalProperties: false
0065
0066 examples:
0067 - |
0068 #include <dt-bindings/clock/imx6sx-clock.h>
0069 #include <dt-bindings/interrupt-controller/arm-gic.h>
0070
0071 efuse@21bc000 {
0072 #address-cells = <1>;
0073 #size-cells = <1>;
0074 compatible = "fsl,imx6sx-ocotp", "syscon";
0075 reg = <0x021bc000 0x4000>;
0076 clocks = <&clks IMX6SX_CLK_OCOTP>;
0077
0078 tempmon_calib: calib@38 {
0079 reg = <0x38 4>;
0080 };
0081
0082 tempmon_temp_grade: temp-grade@20 {
0083 reg = <0x20 4>;
0084 };
0085 };
0086
0087 anatop@20c8000 {
0088 compatible = "fsl,imx6q-anatop", "syscon", "simple-mfd";
0089 reg = <0x020c8000 0x1000>;
0090 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
0091 <0 54 IRQ_TYPE_LEVEL_HIGH>,
0092 <0 127 IRQ_TYPE_LEVEL_HIGH>;
0093
0094 tempmon {
0095 compatible = "fsl,imx6sx-tempmon";
0096 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
0097 fsl,tempmon = <&anatop>;
0098 nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
0099 nvmem-cell-names = "calib", "temp_grade";
0100 clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
0101 };
0102 };