diff options
-rw-r--r-- | src/mainboard/google/brya/variants/kuldax/overridetree.cb | 6 | ||||
-rw-r--r-- | src/mainboard/google/brya/variants/kuldax/ramstage.c | 19 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/mainboard/google/brya/variants/kuldax/overridetree.cb b/src/mainboard/google/brya/variants/kuldax/overridetree.cb index fdf37d5b819d..a1587887baec 100644 --- a/src/mainboard/google/brya/variants/kuldax/overridetree.cb +++ b/src/mainboard/google/brya/variants/kuldax/overridetree.cb @@ -3,6 +3,12 @@ fw_config option AUDIO_UNKNOWN 0 option NAU88L25B_I2S 1 end + field BJ_POWER 3 4 + option BJ_POWER_150W 0 + option BJ_POWER_230W 1 + option BJ_POWER_65W 2 + option BJ_POWER_135W 3 + end end chip soc/intel/alderlake diff --git a/src/mainboard/google/brya/variants/kuldax/ramstage.c b/src/mainboard/google/brya/variants/kuldax/ramstage.c index 14a365a407c8..4bec1d4447ca 100644 --- a/src/mainboard/google/brya/variants/kuldax/ramstage.c +++ b/src/mainboard/google/brya/variants/kuldax/ramstage.c @@ -6,6 +6,7 @@ #include <device/pci_ids.h> #include <device/pci_ops.h> #include <ec/google/chromeec/ec.h> +#include <fw_config.h> #include <intelblocks/power_limit.h> const struct cpu_power_limits limits[] = { @@ -26,6 +27,15 @@ const struct system_power_limits sys_limits[] = { { PCI_DID_INTEL_ADL_P_ID_3, 28, 150 }, }; +const struct system_power_limits revise_sys_limits[] = { + /* SKU_ID, TDP (Watts), psys_pl2 (Watts) */ + { PCI_DID_INTEL_ADL_P_ID_10, 15, 150 }, + { PCI_DID_INTEL_ADL_P_ID_7, 15, 150 }, + { PCI_DID_INTEL_ADL_P_ID_6, 15, 150 }, + { PCI_DID_INTEL_ADL_P_ID_5, 28, 150 }, + { PCI_DID_INTEL_ADL_P_ID_3, 28, 150 }, +}; + /* * Psys_pmax considerations. * @@ -55,6 +65,13 @@ const struct psys_config psys_config = { void variant_devtree_update(void) { size_t total_entries = ARRAY_SIZE(limits); - variant_update_psys_power_limits(limits, sys_limits, total_entries, &psys_config); + + if (fw_config_probe(FW_CONFIG(BJ_POWER, BJ_POWER_65W))) + variant_update_psys_power_limits(limits, sys_limits, total_entries, + &psys_config); + else + variant_update_psys_power_limits(limits, revise_sys_limits, + total_entries, &psys_config); + variant_update_power_limits(limits, total_entries); } |