summaryrefslogtreecommitdiff
path: root/src/soc/amd/mendocino
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd/mendocino')
-rw-r--r--src/soc/amd/mendocino/Kconfig2
-rw-r--r--src/soc/amd/mendocino/acpi/soc.asl4
-rw-r--r--src/soc/amd/mendocino/chip.h6
-rw-r--r--src/soc/amd/mendocino/root_complex.c17
4 files changed, 17 insertions, 12 deletions
diff --git a/src/soc/amd/mendocino/Kconfig b/src/soc/amd/mendocino/Kconfig
index d0ce78b29b..7155aaba0a 100644
--- a/src/soc/amd/mendocino/Kconfig
+++ b/src/soc/amd/mendocino/Kconfig
@@ -52,7 +52,7 @@ config SOC_SPECIFIC_OPTIONS
select SOC_AMD_COMMON_BLOCK_ACP_GEN2
select SOC_AMD_COMMON_BLOCK_ACPI # TODO: Check if this is still correct
select SOC_AMD_COMMON_BLOCK_ACPIMMIO
- select SOC_AMD_COMMON_BLOCK_ACPI_ALIB # TODO: Check if this is still correct
+ select SOC_AMD_COMMON_BLOCK_ACPI_ALIB
select SOC_AMD_COMMON_BLOCK_ACPI_CPPC
select SOC_AMD_COMMON_BLOCK_ACPI_GPIO
select SOC_AMD_COMMON_BLOCK_ACPI_IVRS # TODO: Check if this is still correct
diff --git a/src/soc/amd/mendocino/acpi/soc.asl b/src/soc/amd/mendocino/acpi/soc.asl
index f5a41a17cf..5bce314fc0 100644
--- a/src/soc/amd/mendocino/acpi/soc.asl
+++ b/src/soc/amd/mendocino/acpi/soc.asl
@@ -29,10 +29,12 @@ Scope(\_SB) {
#include <soc/amd/common/acpi/upep.asl>
+#include <soc/amd/common/acpi/dptc.asl>
+
#include "rtc_workaround.asl"
/*
- * Platform Wake Notify
+ * Platform Notify
*
* This is called by soc/amd/common/acpi/platform.asl.
*/
diff --git a/src/soc/amd/mendocino/chip.h b/src/soc/amd/mendocino/chip.h
index a1e4eb951f..654294d186 100644
--- a/src/soc/amd/mendocino/chip.h
+++ b/src/soc/amd/mendocino/chip.h
@@ -82,10 +82,10 @@ struct soc_amd_mendocino_config {
uint32_t telemetry_vddcrsocfull_scale_current_mA;
uint32_t telemetry_vddcrsocoffset;
- /* Enable dptc for tablet mode */
- bool dptc_enable;
+ /* Enable dptc tablet mode */
+ bool dptc_tablet_mode_enable;
- /* STAPM Configuration for tablet mode (need enable dptc_enable first) */
+ /* STAPM Configuration for tablet mode */
uint32_t fast_ppt_limit_tablet_mode_mW;
uint32_t slow_ppt_limit_tablet_mode_mW;
uint32_t sustained_power_limit_tablet_mode_mW;
diff --git a/src/soc/amd/mendocino/root_complex.c b/src/soc/amd/mendocino/root_complex.c
index a5371f223c..8d15feb6f1 100644
--- a/src/soc/amd/mendocino/root_complex.c
+++ b/src/soc/amd/mendocino/root_complex.c
@@ -188,21 +188,24 @@ static void acipgen_dptci(void)
{
const struct soc_amd_mendocino_config *config = config_of_soc();
- if (!config->dptc_enable)
+ if (!config->dptc_tablet_mode_enable)
return;
+ /* DPTC is enabled. Always fill out the default DPTC values. */
struct dptc_input default_input = DPTC_INPUTS(config->thermctl_limit_degreeC,
- config->sustained_power_limit_mW,
- config->fast_ppt_limit_mW,
- config->slow_ppt_limit_mW);
+ config->sustained_power_limit_mW,
+ config->fast_ppt_limit_mW,
+ config->slow_ppt_limit_mW);
+ acpigen_write_alib_dptc_default((uint8_t *)&default_input, sizeof(default_input));
+
+ /* Tablet Mode */
struct dptc_input tablet_mode_input = DPTC_INPUTS(
config->thermctl_limit_tablet_mode_degreeC,
config->sustained_power_limit_tablet_mode_mW,
config->fast_ppt_limit_tablet_mode_mW,
config->slow_ppt_limit_tablet_mode_mW);
-
- acpigen_write_alib_dptc((uint8_t *)&default_input, sizeof(default_input),
- (uint8_t *)&tablet_mode_input, sizeof(tablet_mode_input));
+ acpigen_write_alib_dptc_tablet((uint8_t *)&tablet_mode_input,
+ sizeof(tablet_mode_input));
}
static void root_complex_fill_ssdt(const struct device *device)