diff options
Diffstat (limited to 'src/soc/intel/alderlake/chip.h')
-rw-r--r-- | src/soc/intel/alderlake/chip.h | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/src/soc/intel/alderlake/chip.h b/src/soc/intel/alderlake/chip.h index eaaef07d56..ae85b91315 100644 --- a/src/soc/intel/alderlake/chip.h +++ b/src/soc/intel/alderlake/chip.h @@ -4,6 +4,7 @@ #define _SOC_CHIP_H_ #include <drivers/i2c/designware/dw_i2c.h> +#include <device/pci_ids.h> #include <intelblocks/cfg.h> #include <intelblocks/gpio.h> #include <intelblocks/gspi.h> @@ -20,14 +21,37 @@ /* Types of different SKUs */ enum soc_intel_alderlake_power_limits { - ADL_P_POWER_LIMITS_282_CORE, - ADL_P_POWER_LIMITS_482_CORE, - ADL_P_POWER_LIMITS_682_CORE, - ADL_M_POWER_LIMITS_282_CORE, - ADL_M_POWER_LIMITS_242_CORE, + ADL_P_282_CORE, + ADL_P_482_CORE, + ADL_P_682_28W_CORE, + ADL_P_682_45W_CORE, + ADL_M_282_CORE, + ADL_M_242_CORE, ADL_POWER_LIMITS_COUNT }; +/* TDP values for different SKUs */ +enum soc_intel_alderlake_cpu_tdps { + TDP_9W = 9, + TDP_15W = 15, + TDP_28W = 28, + TDP_45W = 45 +}; + +/* Mapping of different SKUs based on CPU ID and TDP values */ +static const struct { + unsigned int cpu_id; + enum soc_intel_alderlake_power_limits limits; + enum soc_intel_alderlake_cpu_tdps cpu_tdp; +} cpuid_to_adl[] = { + { PCI_DEVICE_ID_INTEL_ADL_P_ID_7, ADL_P_282_CORE, TDP_15W }, + { PCI_DEVICE_ID_INTEL_ADL_P_ID_5, ADL_P_482_CORE, TDP_28W }, + { PCI_DEVICE_ID_INTEL_ADL_P_ID_3, ADL_P_682_28W_CORE, TDP_28W }, + { PCI_DEVICE_ID_INTEL_ADL_P_ID_3, ADL_P_682_45W_CORE, TDP_45W }, + { PCI_DEVICE_ID_INTEL_ADL_M_ID_1, ADL_M_282_CORE, TDP_15W }, + { PCI_DEVICE_ID_INTEL_ADL_M_ID_2, ADL_M_242_CORE, TDP_9W }, +}; + /* Types of display ports */ enum ddi_ports { DDI_PORT_A, |