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>
This commit is contained in:
Joao Paulo Goncalves
2024-03-04 13:41:04 -05:00
committed by Tom Rini
parent f7a1e8e4e7
commit 86e770b3e0
@@ -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);