soc/amd/mendocino: add dptc tablet mode support
add dptc support for different power parameter on tablet/clamshell mode. BUG=b:257187831 BRANCH=none TEST=validate the parameter change for each mode by AGT. Signed-off-by: Chris.Wang <chris.wang@amd.corp-partner.google.com> Change-Id: I96e04d113d18b42f3457056a5e4fa311ceccffb3 Reviewed-on: https://review.coreboot.org/c/coreboot/+/70670 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: John Su <john_su@compal.corp-partner.google.com> Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com> Reviewed-by: Frank Wu <frank_wu@compal.corp-partner.google.com>
This commit is contained in:
committed by
Karthik Ramasubramanian
parent
134d740168
commit
9ac0984c5a
@@ -164,11 +164,4 @@ config ENABLE_STB_SPILL_TO_DRAM
|
|||||||
just the small SRAM buffer to a much larger area reserved in main
|
just the small SRAM buffer to a much larger area reserved in main
|
||||||
memory.
|
memory.
|
||||||
|
|
||||||
config FEATURE_DYNAMIC_DPTC
|
|
||||||
bool
|
|
||||||
depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
|
|
||||||
help
|
|
||||||
Selected by mainboards that implement support for ALIB
|
|
||||||
to enable dynamic DPTC.
|
|
||||||
|
|
||||||
endif # BOARD_GOOGLE_BASEBOARD_SKYRIM
|
endif # BOARD_GOOGLE_BASEBOARD_SKYRIM
|
||||||
|
@@ -324,6 +324,20 @@ config ACPI_SSDT_PSD_INDEPENDENT
|
|||||||
cores to transition between p-states independently. A vendor may
|
cores to transition between p-states independently. A vendor may
|
||||||
choose to generate _PSD object to allow cores to transition together.
|
choose to generate _PSD object to allow cores to transition together.
|
||||||
|
|
||||||
|
config FEATURE_DYNAMIC_DPTC
|
||||||
|
bool
|
||||||
|
depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
|
||||||
|
help
|
||||||
|
Selected by mainboards that implement support for ALIB
|
||||||
|
to enable dynamic DPTC.
|
||||||
|
|
||||||
|
config FEATURE_TABLET_MODE_DPTC
|
||||||
|
bool
|
||||||
|
depends on SOC_AMD_COMMON_BLOCK_ACPI_DPTC
|
||||||
|
help
|
||||||
|
Selected by mainboards that implement support for ALIB to
|
||||||
|
switch default and tablet mode.
|
||||||
|
|
||||||
menu "PSP Configuration Options"
|
menu "PSP Configuration Options"
|
||||||
|
|
||||||
config AMD_FWM_POSITION_INDEX
|
config AMD_FWM_POSITION_INDEX
|
||||||
|
@@ -74,6 +74,9 @@ struct soc_amd_mendocino_config {
|
|||||||
uint32_t vrm_maximum_current_limit_throttle_mA;
|
uint32_t vrm_maximum_current_limit_throttle_mA;
|
||||||
uint32_t vrm_soc_current_limit_throttle_mA;
|
uint32_t vrm_soc_current_limit_throttle_mA;
|
||||||
|
|
||||||
|
/* tablet mode.*/
|
||||||
|
uint32_t sustained_power_limit_mW_tablet;
|
||||||
|
|
||||||
/* Thermal profile B*/
|
/* Thermal profile B*/
|
||||||
uint32_t fast_ppt_limit_mW_B;
|
uint32_t fast_ppt_limit_mW_B;
|
||||||
uint32_t slow_ppt_limit_mW_B;
|
uint32_t slow_ppt_limit_mW_B;
|
||||||
|
@@ -255,6 +255,24 @@ static void acipgen_dptci(void)
|
|||||||
acpigen_write_alib_dptc_no_battery((uint8_t *)&no_battery_input,
|
acpigen_write_alib_dptc_no_battery((uint8_t *)&no_battery_input,
|
||||||
sizeof(no_battery_input));
|
sizeof(no_battery_input));
|
||||||
|
|
||||||
|
#if (CONFIG(FEATURE_TABLET_MODE_DPTC))
|
||||||
|
struct dptc_input tablet_input = DPTC_INPUTS(
|
||||||
|
config->thermctl_limit_degreeC,
|
||||||
|
config->sustained_power_limit_mW_tablet,
|
||||||
|
config->slow_ppt_time_constant_s,
|
||||||
|
config->fast_ppt_limit_mW,
|
||||||
|
config->slow_ppt_limit_mW,
|
||||||
|
config->vrm_current_limit_mA,
|
||||||
|
config->vrm_maximum_current_limit_mA,
|
||||||
|
config->vrm_soc_current_limit_mA,
|
||||||
|
config->stt_min_limit,
|
||||||
|
config->stt_m1,
|
||||||
|
config->stt_m2,
|
||||||
|
config->stt_c_apu,
|
||||||
|
config->stt_skin_temp_apu);
|
||||||
|
acpigen_write_alib_dptc_tablet((uint8_t *)&tablet_input, sizeof(tablet_input));
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (CONFIG(FEATURE_DYNAMIC_DPTC))
|
#if (CONFIG(FEATURE_DYNAMIC_DPTC))
|
||||||
/* Profile B */
|
/* Profile B */
|
||||||
struct dptc_input thermal_B_input = DPTC_INPUTS(
|
struct dptc_input thermal_B_input = DPTC_INPUTS(
|
||||||
|
Reference in New Issue
Block a user