]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: mach-k3: am62: Get soc max temperature by grade
authorJoao Paulo Goncalves <joao.goncalves@toradex.com>
Thu, 8 Feb 2024 09:29:50 +0000 (10:29 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 4 Mar 2024 18:41:04 +0000 (13:41 -0500)
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>
arch/arm/mach-k3/include/mach/am62_hardware.h

index 4cf7778a89eef26d81c406155f1961a936e47164..264f8a488b4d83d28b0de62c087ae030dc8b3db8 100644 (file)
 
 #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);