mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 19:01:37 +00:00
f085f672b7
This patch adds i.MX7 thermal sensor support, most of the i.MX7 thermal sensor functions are same with i.MX6 except the registers offset/layout, so we move those registers offset/layout definitions to soc data structure. i.MX7 uses single calibration data @25C, the calibration data is located at OCOTP offset 0x4F0, bit[17:9], the formula is as below: Tmeas = (Nmeas - n1) + 25; n1 is the fuse value for 25C. Signed-off-by: Anson Huang <Anson.Huang@nxp.com> Signed-off-by: Bai Ping <ping.bai@nxp.com> Acked-by: Dong Aisheng <aisheng.dong@nxp.com> Acked-by: Shawn Guo <shawnguo@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
62 lines
2.0 KiB
Plaintext
62 lines
2.0 KiB
Plaintext
* Temperature Monitor (TEMPMON) on Freescale i.MX SoCs
|
|
|
|
Required properties:
|
|
- 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,
|
|
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.
|
|
- fsl,tempmon : phandle pointer to system controller that contains TEMPMON
|
|
control registers, e.g. ANATOP on imx6q.
|
|
- nvmem-cells: A phandle to the calibration cells provided by ocotp.
|
|
- nvmem-cell-names: Should be "calib", "temp_grade".
|
|
|
|
Deprecated properties:
|
|
- 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.
|
|
|
|
Direct access to OCOTP via fsl,tempmon-data is incorrect on some newer chips
|
|
because it does not handle OCOTP clock requirements.
|
|
|
|
Optional properties:
|
|
- clocks : thermal sensor's clock source.
|
|
|
|
Example:
|
|
ocotp: ocotp@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>;
|
|
};
|
|
};
|
|
|
|
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):
|
|
tempmon {
|
|
compatible = "fsl,imx6q-tempmon";
|
|
fsl,tempmon = <&anatop>;
|
|
fsl,tempmon-data = <&ocotp>;
|
|
clocks = <&clks 172>;
|
|
};
|