mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
thermal: imx_tmu: extend with QorIQ/Layerscape TMU
Add support for the on-die Thermal Monitoring Unit (TMU) of the new QorIQ/Layerscape SoCs (LX2160A, LS1028A, LS1088A, ...): examples on a lx2160: => temperature list | Device | Driver | Parent | tmu@1f80000 | imx_tmu | root_driver | cluster67-thermal | imx_tmu | tmu@1f80000 | ddr1-cluster5-thermal | imx_tmu | tmu@1f80000 | wriop-thermal | imx_tmu | tmu@1f80000 | dce-qbman-hsio2-thermal | imx_tmu | tmu@1f80000 | ccn-dpaa-tbu-thermal | imx_tmu | tmu@1f80000 | cluster4-hsio3-thermal | imx_tmu | tmu@1f80000 | cluster23-thermal | imx_tmu | tmu@1f80000 => temperature get tmu@1f80000 tmu@1f80000: 82000 mC => temperature get wriop-thermal wriop-thermal: 81000 mC The parent tmu@... node owns the MMIO and calibration; one UCLASS_THERMAL device is bound per/thermal-zones site so each shows up by its zone name: => dm tree ... thermal 2 [ + ] imx_tmu |-- tmu@1f80000 thermal 3 [ + ] imx_tmu | |-- cluster67-thermal thermal 4 [ + ] imx_tmu | |-- ddr1-cluster5-thermal thermal 5 [ + ] imx_tmu | |-- wriop-thermal thermal 6 [ + ] imx_tmu | |-- dce-qbman-hsio2-thermal thermal 7 [ + ] imx_tmu | |-- ccn-dpaa-tbu-thermal thermal 8 [ + ] imx_tmu | |-- cluster4-hsio3-thermal thermal 9 [ + ] imx_tmu | `-- cluster23-thermal ... The dtsi additions mirror the existing fsl-ls1028a.dtsi: the LX2160A SoC dtsi gains the tmu@1f80000 node plus a thermal-zones hierarchy with 7 sites: cluster67-thermal site 0 A72 clusters 6 + 7 ddr1-cluster5-thermal site 1 DDR1 + A72 cluster 5 wriop-thermal site 2 WRIOP dce-qbman-hsio2-thermal site 3 DCE + QBMAN + HSIO2 ccn-dpaa-tbu-thermal site 4 CCN508 + DPAA + TBU cluster4-hsio3-thermal site 5 A72 cluster 4 + HSIO3 cluster23-thermal site 6 A72 clusters 2 + 3 Signed-off-by: Vincent Jardin <vjardin@free.fr> Suggested-by: Tom Rini <trini@konsulko.com> Inspired-by: Peng Fan <peng.fan@oss.nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
30
arch/arm/include/asm/arch-fsl-layerscape/sys_proto.h
Normal file
30
arch/arm/include/asm/arch-fsl-layerscape/sys_proto.h
Normal file
@@ -0,0 +1,30 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2026 Free Mobile - Vincent Jardin
|
||||
*
|
||||
* Layerscape mirror of the i.MX <asm/mach-imx/sys_proto.h>: declares
|
||||
* the SoC-personality helpers consumed by generic drivers that work on
|
||||
* both i.MX and QorIQ/Layerscape parts (e.g. drivers/thermal/imx_tmu.c
|
||||
* for the QorIQ TMU variant).
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARCH_FSL_LAYERSCAPE_SYS_PROTO_H
|
||||
#define _ASM_ARCH_FSL_LAYERSCAPE_SYS_PROTO_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* Per LX2160A Reference Manual, Rev. 1 (10/2021):
|
||||
* - section 1.12.1: "NXP specs max power at 105 degC junction" for
|
||||
* commercial / embedded operating conditions.
|
||||
* - section 28.1: TMU "Accuracy within +/- 3 degC".
|
||||
*
|
||||
* Layerscape SoCs do not expose an OCOTP-style "CPU temp grade" fuse,
|
||||
* so the implementation returns the documented junction-temperature
|
||||
* limit from the data sheet (-40 .. 105 degC commercial range). The
|
||||
* thermal driver subtracts 10 degC for its alert threshold, which
|
||||
* comfortably clears the +/- 3 degC TMU accuracy in both directions.
|
||||
*/
|
||||
u32 get_cpu_temp_grade(int *minc, int *maxc);
|
||||
|
||||
#endif /* _ASM_ARCH_FSL_LAYERSCAPE_SYS_PROTO_H */
|
||||
Reference in New Issue
Block a user