aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoao Paulo Goncalves <joao.goncalves@toradex.com>2024-02-08 10:29:50 +0100
committerTom Rini <trini@konsulko.com>2024-03-04 13:41:04 -0500
commit86e770b3e01f31ca8bf08ef60de4eaa842a35a50 (patch)
treec80ce7e3125e5a06dced2681dea8e6c3b9882ff5
parentf7a1e8e4e794a9b6a4d10957270876de2f8e2300 (diff)
downloadu-boot-86e770b3e01f31ca8bf08ef60de4eaa842a35a50.zip
u-boot-86e770b3e01f31ca8bf08ef60de4eaa842a35a50.tar.gz
u-boot-86e770b3e01f31ca8bf08ef60de4eaa842a35a50.tar.bz2
arm: mach-k3: am62: Get soc max temperature by grade
AM62x SoC is available in multiple temperature grade: - Commercial: 0° to 95° C - Industrial: -40° to 105° C - Automotive: -40° to 125° C Add a new function that returns the am62 max temperature value accordingly to its temperature grade in Celsius. Signed-off-by: Joao Paulo Goncalves <joao.goncalves@toradex.com> Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
-rw-r--r--arch/arm/mach-k3/include/mach/am62_hardware.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/arm/mach-k3/include/mach/am62_hardware.h b/arch/arm/mach-k3/include/mach/am62_hardware.h
index 4cf7778..264f8a4 100644
--- a/arch/arm/mach-k3/include/mach/am62_hardware.h
+++ b/arch/arm/mach-k3/include/mach/am62_hardware.h
@@ -42,6 +42,10 @@
#define JTAG_DEV_FEATURE_NO_PRU 0x4
+#define JTAG_DEV_TEMP_COMMERCIAL 0x3
+#define JTAG_DEV_TEMP_INDUSTRIAL 0x4
+#define JTAG_DEV_TEMP_AUTOMOTIVE 0x5
+
#define CTRLMMR_MAIN_DEVSTAT (WKUP_CTRL_MMR0_BASE + 0x30)
#define MAIN_DEVSTAT_PRIMARY_BOOTMODE_MASK GENMASK(6, 3)
#define MAIN_DEVSTAT_PRIMARY_BOOTMODE_SHIFT 3
@@ -105,6 +109,19 @@ static inline int k3_get_temp_grade(void)
return (full_devid & JTAG_DEV_TEMP_MASK) >> JTAG_DEV_TEMP_SHIFT;
}
+static inline int k3_get_max_temp(void)
+{
+ switch (k3_get_temp_grade()) {
+ case JTAG_DEV_TEMP_INDUSTRIAL:
+ return 105;
+ case JTAG_DEV_TEMP_AUTOMOTIVE:
+ return 125;
+ case JTAG_DEV_TEMP_COMMERCIAL:
+ default:
+ return 95;
+ }
+}
+
static inline int k3_has_pru(void)
{
u32 full_devid = readl(CTRLMMR_WKUP_JTAG_DEVICE_ID);