109 lines
3.1 KiB
YAML
109 lines
3.1 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/thermal/imx-thermal.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: NXP i.MX Thermal
|
|
|
|
maintainers:
|
|
- Shawn Guo <shawnguo@kernel.org>
|
|
- Anson Huang <Anson.Huang@nxp.com>
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- fsl,imx6q-tempmon
|
|
- fsl,imx6sx-tempmon
|
|
- fsl,imx7d-tempmon
|
|
- items:
|
|
- enum:
|
|
- fsl,imx6sll-tempmon
|
|
- fsl,imx6ul-tempmon
|
|
- const: fsl,imx6sx-tempmon
|
|
|
|
interrupts:
|
|
description: |
|
|
The interrupt output of the controller, i.MX6Q has IRQ_HIGH which
|
|
will be triggered when temperature is higher than high threshold,
|
|
i.MX6SX and i.MX7S/D have two more IRQs than i.MX6Q, one is IRQ_LOW
|
|
and the other is IRQ_PANIC, when temperature is lower than low
|
|
threshold, IRQ_LOW will be triggered, when temperature is higher
|
|
than panic threshold, IRQ_PANIC will be triggered, and system can
|
|
be configured to auto reboot by SRC module for IRQ_PANIC. IRQ_HIGH,
|
|
IRQ_LOW and IRQ_PANIC share same interrupt output of controller.
|
|
maxItems: 1
|
|
|
|
nvmem-cells:
|
|
items:
|
|
- description: Phandle to the calibration data provided by ocotp
|
|
- description: Phandle to the temperature grade provided by ocotp
|
|
|
|
nvmem-cell-names:
|
|
items:
|
|
- const: calib
|
|
- const: temp_grade
|
|
|
|
fsl,tempmon:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description: Phandle to anatop system controller node.
|
|
|
|
fsl,tempmon-data:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description: |
|
|
Deprecated property, phandle pointer to fuse controller that contains
|
|
TEMPMON calibration data, e.g. OCOTP on imx6q. The details about
|
|
calibration data can be found in SoC Reference Manual.
|
|
deprecated: true
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
required:
|
|
- compatible
|
|
- interrupts
|
|
- fsl,tempmon
|
|
- nvmem-cells
|
|
- nvmem-cell-names
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/imx6sx-clock.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
efuse@21bc000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "fsl,imx6sx-ocotp", "syscon";
|
|
reg = <0x021bc000 0x4000>;
|
|
clocks = <&clks IMX6SX_CLK_OCOTP>;
|
|
|
|
tempmon_calib: calib@38 {
|
|
reg = <0x38 4>;
|
|
};
|
|
|
|
tempmon_temp_grade: temp-grade@20 {
|
|
reg = <0x20 4>;
|
|
};
|
|
};
|
|
|
|
anatop@20c8000 {
|
|
compatible = "fsl,imx6q-anatop", "syscon", "simple-mfd";
|
|
reg = <0x020c8000 0x1000>;
|
|
interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
|
|
<0 54 IRQ_TYPE_LEVEL_HIGH>,
|
|
<0 127 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
|
tempmon {
|
|
compatible = "fsl,imx6sx-tempmon";
|
|
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
|
|
fsl,tempmon = <&anatop>;
|
|
nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
|
|
nvmem-cell-names = "calib", "temp_grade";
|
|
clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
|
|
};
|
|
};
|