2013-06-24 14:30:44 +08:00
|
|
|
* Temperature Monitor (TEMPMON) on Freescale i.MX SoCs
|
|
|
|
|
|
|
|
Required properties:
|
2018-03-02 09:59:30 +08:00
|
|
|
- compatible : must be one of following:
|
|
|
|
- "fsl,imx6q-tempmon" for i.MX6Q,
|
|
|
|
- "fsl,imx6sx-tempmon" for i.MX6SX,
|
|
|
|
- "fsl,imx7d-tempmon" for i.MX7S/D.
|
|
|
|
- interrupts : the interrupt output of the controller:
|
|
|
|
i.MX6Q has one IRQ 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,
|
2014-08-06 15:12:09 +08:00
|
|
|
when temperature is below than low threshold, IRQ_LOW will be triggered, when temperature
|
|
|
|
is higher than panic threshold, system will auto reboot by SRC module.
|
2013-06-24 14:30:44 +08:00
|
|
|
- fsl,tempmon : phandle pointer to system controller that contains TEMPMON
|
|
|
|
control registers, e.g. ANATOP on imx6q.
|
2017-07-14 22:11:06 +08:00
|
|
|
- nvmem-cells: A phandle to the calibration cells provided by ocotp.
|
|
|
|
- nvmem-cell-names: Should be "calib", "temp_grade".
|
|
|
|
|
|
|
|
Deprecated properties:
|
2013-06-24 14:30:44 +08:00
|
|
|
- fsl,tempmon-data : 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.
|
|
|
|
|
2017-07-14 22:11:06 +08:00
|
|
|
Direct access to OCOTP via fsl,tempmon-data is incorrect on some newer chips
|
|
|
|
because it does not handle OCOTP clock requirements.
|
|
|
|
|
2013-12-24 04:49:22 +08:00
|
|
|
Optional properties:
|
|
|
|
- clocks : thermal sensor's clock source.
|
|
|
|
|
2013-06-24 14:30:44 +08:00
|
|
|
Example:
|
2018-01-25 14:37:49 +08:00
|
|
|
ocotp: ocotp@21bc000 {
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <1>;
|
|
|
|
compatible = "fsl,imx6sx-ocotp", "syscon";
|
|
|
|
reg = <0x021bc000 0x4000>;
|
|
|
|
clocks = <&clks IMX6SX_CLK_OCOTP>;
|
2013-06-24 14:30:44 +08:00
|
|
|
|
2018-01-25 14:37:49 +08:00
|
|
|
tempmon_calib: calib@38 {
|
|
|
|
reg = <0x38 4>;
|
|
|
|
};
|
|
|
|
|
|
|
|
tempmon_temp_grade: temp-grade@20 {
|
|
|
|
reg = <0x20 4>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
tempmon: tempmon {
|
|
|
|
compatible = "fsl,imx6sx-tempmon", "fsl,imx6q-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>;
|
|
|
|
};
|
|
|
|
|
|
|
|
Legacy method (Deprecated):
|
2013-06-24 14:30:44 +08:00
|
|
|
tempmon {
|
|
|
|
compatible = "fsl,imx6q-tempmon";
|
|
|
|
fsl,tempmon = <&anatop>;
|
|
|
|
fsl,tempmon-data = <&ocotp>;
|
2013-12-24 04:49:22 +08:00
|
|
|
clocks = <&clks 172>;
|
2013-06-24 14:30:44 +08:00
|
|
|
};
|