soc/intel/meteorlake: Hook up UPD for C1 C-state auto-demotion

FSP has a parameter to enable/disable c1-state autodemotion feature.
Boards/Baseboard can choose to use this feature as per requirement.

This patch hooks up this parameter to devicetree.

BUG=b:286328295
TEST=Check code compiles & boot google/rex, and correct value has been
passed to FSP.

Change-Id: I2cc60bd297271fcb3000c0298af71208e3be60fc
Signed-off-by: Sukumar Ghorai <sukumar.ghorai@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/76826
Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sumeet R Pawnikar <sumeet.r.pawnikar@intel.com>
diff --git a/src/soc/intel/meteorlake/chip.h b/src/soc/intel/meteorlake/chip.h
index 9ea7773..178dd7c 100644
--- a/src/soc/intel/meteorlake/chip.h
+++ b/src/soc/intel/meteorlake/chip.h
@@ -369,6 +369,16 @@
 	uint8_t lan_clk;
 
 	/*
+	 * Enable or Disable C1 C-state Auto Demotion & un-demotion
+	 * The algorithm looks at the behavior of the wake up tracker, how
+	 * often it is waking up, and based on that it demote the c-state.
+	 * Default 0. Set this to 1 in order to disable C1-state auto demotion.
+	 * NOTE: Un-Demotion from Demoted C1 needs to be disabled when
+	 *       C1 C-state Auto Demotion is disabled.
+	 */
+	bool disable_c1_state_auto_demotion;
+
+	/*
 	 * Enable or Disable Package C-state Demotion.
 	 * Default is set to 0.
 	 * Set this to 1 in order to disable Package C-state demotion.
diff --git a/src/soc/intel/meteorlake/fsp_params.c b/src/soc/intel/meteorlake/fsp_params.c
index 30800e6..58d4cda 100644
--- a/src/soc/intel/meteorlake/fsp_params.c
+++ b/src/soc/intel/meteorlake/fsp_params.c
@@ -654,6 +654,10 @@
 	/* Enable the energy efficient turbo mode */
 	s_cfg->EnergyEfficientTurbo = 1;
 	s_cfg->PmcLpmS0ixSubStateEnableMask = get_supported_lpm_mask();
+	/* Un-Demotion from Demoted C1 need to be disable when
+	 * C1 auto demotion is disabled */
+	s_cfg->C1StateUnDemotion = !config->disable_c1_state_auto_demotion;
+	s_cfg->C1StateAutoDemotion = !config->disable_c1_state_auto_demotion;
 	s_cfg->PkgCStateDemotion = !config->disable_package_c_state_demotion;
 	s_cfg->PmcV1p05PhyExtFetControlEn = 1;