summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTarun Tuli <taruntuli@google.com>2022-12-07 20:05:52 +0000
committerSubrata Banik <subratabanik@google.com>2022-12-11 17:15:03 +0000
commitbf62e977c0d35d84e621ee90cd7572c96aa856dc (patch)
treeee900adafde43b388e8a290c445c9fb0370a146a
parent56395f4883b8c675dcd82455bb5a6e52c53ab50c (diff)
mb/google/brya/var/agah: Correct dGPU Power GPIOs
PP1800_GPU_X should dynamically move from GPP_E18 to GPP_F12 depending on board revision. PP0950_GPU_X (PEX) should remain on GPP_E10 for all board revisions. BUG=b:242752623 TEST=dGPU is functional on both revisions of the board Change-Id: I20994fcac4d7b98ee893d5eb98b096c037d31d6c Signed-off-by: Tarun Tuli <taruntuli@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/70320 Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Kapil Porwal <kapilporwal@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/mainboard/google/brya/acpi/power.asl18
-rw-r--r--src/mainboard/google/brya/variants/agah/variant.c22
2 files changed, 20 insertions, 20 deletions
diff --git a/src/mainboard/google/brya/acpi/power.asl b/src/mainboard/google/brya/acpi/power.asl
index c6fbacf1e1..bd000fbb5b 100644
--- a/src/mainboard/google/brya/acpi/power.asl
+++ b/src/mainboard/google/brya/acpi/power.asl
@@ -5,12 +5,12 @@
External (\_SB.PCI0.PMC.IPCS, MethodObj)
/* Voltage rail control signals */
-#define GPIO_1V8_PWR_EN GPP_E18
+#define GPIO_1V8_PWR_EN GPP_F12
#define GPIO_1V8_PG GPP_E20
#define GPIO_NV33_PWR_EN GPP_A21
#define GPIO_NV33_PG GPP_A22
#define GPIO_NVVDD_PWR_EN GPP_E0
-#define GPIO_PEXVDD_PWR_EN GPP_F12
+#define GPIO_PEXVDD_PWR_EN GPP_E10
#define GPIO_PEXVDD_PG GPP_E17
#define GPIO_FBVDD_PWR_EN GPP_A19
#define GPIO_FBVDD_PG GPP_E4
@@ -41,7 +41,7 @@ External (\_SB.PCI0.PMC.IPCS, MethodObj)
*/
/* Dynamically-assigned NVVDD PG GPIO, set in _INI in SSDT */
Name (NVPG, 0)
-Name (PXEN, 0)
+Name (GPEN, 0)
/* Optimus Power Control State */
Name (OPCS, OPTIMUS_POWER_CONTROL_DISABLE)
@@ -116,7 +116,7 @@ Method (GC6I, 0, Serialized)
CTXS (GPIO_GPU_ALLRAILS_PG)
/* Ramp down PEXVDD */
- CTXS (PXEN)
+ CTXS (GPIO_PEXVDD_PWR_EN)
GPPL (GPIO_PEXVDD_PG, 0, 20)
Sleep (10)
@@ -153,7 +153,7 @@ Method (GC6O, 0, Serialized)
GPPL (NVPG, 1, 4)
/* Ramp up PEXVDD */
- STXS (PXEN)
+ STXS (GPIO_PEXVDD_PWR_EN)
GPPL (GPIO_PEXVDD_PG, 1, 4)
/* Assert PG_GPU_ALLRAILS */
@@ -198,7 +198,7 @@ Method (PGON, 0, Serialized)
CTXS (GPIO_GPU_PERST_L)
/* Ramp up 1.8V rail */
- STXS (GPIO_1V8_PWR_EN)
+ STXS (GPEN)
GPPL (GPIO_1V8_PG, 1, 20)
/* Ramp up NV33 rail */
@@ -210,7 +210,7 @@ Method (PGON, 0, Serialized)
GPPL (NVPG, 1, 5)
/* Ramp up PEXVDD rail */
- STXS (PXEN)
+ STXS (GPIO_PEXVDD_PWR_EN)
GPPL (GPIO_PEXVDD_PG, 1, 5)
/* Ramp up FBVDD rail (active low) */
@@ -244,7 +244,7 @@ Method (PGOF, 0, Serialized)
GPPL (GPIO_FBVDD_PG, 0, 20)
/* Ramp down PEXVDD and let rail discharge to <10% */
- CTXS (PXEN)
+ CTXS (GPIO_PEXVDD_PWR_EN)
GPPL (GPIO_PEXVDD_PG, 0, 20)
Sleep (10)
@@ -259,7 +259,7 @@ Method (PGOF, 0, Serialized)
Sleep (4)
/* Ramp down 1.8V */
- CTXS (GPIO_1V8_PWR_EN)
+ CTXS (GPEN)
GPPL (GPIO_1V8_PG, 0, 20)
GCOT = Timer
diff --git a/src/mainboard/google/brya/variants/agah/variant.c b/src/mainboard/google/brya/variants/agah/variant.c
index 247913e39d..9acee54284 100644
--- a/src/mainboard/google/brya/variants/agah/variant.c
+++ b/src/mainboard/google/brya/variants/agah/variant.c
@@ -10,13 +10,13 @@
#include <timer.h>
#include <types.h>
-#define GPU_1V8_PWR_EN GPP_E18
+#define GPU_1V8_PWR_EN GPP_F12
#define GPU_1V8_PG GPP_E20
#define NV33_PWR_EN GPP_A21
#define NV33_PG GPP_A22
#define NVVDD_PWR_EN GPP_E0
#define NVVDD_PG GPP_E3
-#define PEXVDD_PWR_EN GPP_F12
+#define PEXVDD_PWR_EN GPP_E10
#define PEXVDD_PG GPP_E17
#define FBVDD_PWR_EN GPP_A19
#define FBVDD_PG GPP_E4
@@ -136,13 +136,13 @@ void variant_init(void)
return;
/* For board revs 3 and later, the power good pin for the
- NVVDD VR moved from GPP_E16 to GPP_E3, and the PEX enable
- pin moved from GPP_E10 to GPP_F12, so patch up the table
+ NVVDD VR moved from GPP_E16 to GPP_E3, and the GPU_1V8 enable
+ pin moved from GPP_E18 to GPP_F12, so patch up the table
for old board revs. */
if (board_id() < 3) {
const struct pad_config board_rev_2_gpios[] = {
PAD_NC(GPP_E3, NONE),
- PAD_CFG_GPO_LOCK(GPP_E10, 0, LOCK_CONFIG),
+ PAD_CFG_GPO(GPP_E18, 0, PLTRST),
PAD_CFG_GPI(GPP_E16, NONE, PLTRST),
PAD_NC(GPP_F12, NONE),
};
@@ -151,12 +151,12 @@ void variant_init(void)
gpu_on_seq[2].pg_gpio = GPP_E16;
gpu_off_seq[2].pg_gpio = GPP_E16;
- gpu_on_seq[3].pwr_en_gpio = GPP_E10;
- gpu_off_seq[3].pwr_en_gpio = GPP_E10;
+ gpu_on_seq[0].pwr_en_gpio = GPP_E18;
+ gpu_off_seq[4].pwr_en_gpio = GPP_E18;
} else {
const struct pad_config board_rev_3_gpios[] = {
PAD_CFG_GPI(GPP_E3, NONE, PLTRST),
- PAD_NC(GPP_E10, NONE),
+ PAD_NC(GPP_E18, NONE),
PAD_NC(GPP_E16, NONE),
PAD_CFG_GPO(GPP_F12, 0, PLTRST),
};
@@ -169,7 +169,7 @@ void variant_init(void)
/*
* For board revs 3 and later, two pins moved:
* - The PG pin for the NVVDD VR moved from GPP_E16 to GPP_E3.
- * - The enable pin for the PEXVDD VR moved from GPP_E10 to GPP_F12
+ * - The enable pin for the GPU_1V8 VR moved from GPP_E18 to GPP_F12
*
* To accommodate this, the DSDT contains two Names that this code
* will write the correct GPIO # to depending on the board rev, and
@@ -178,11 +178,11 @@ void variant_init(void)
void variant_fill_ssdt(const struct device *dev)
{
const int nvvdd_pg_gpio = board_id() < 3 ? GPP_E16 : GPP_E3;
- const int pex_en_gpio = board_id() < 3 ? GPP_E10 : GPP_F12;
+ const int gpu_1v8_en_gpio = board_id() < 3 ? GPP_E18 : GPP_F12;
acpigen_write_scope("\\_SB.PCI0.PEG0.PEGP");
acpigen_write_method("_INI", 0);
acpigen_write_store_int_to_namestr(nvvdd_pg_gpio, "NVPG");
- acpigen_write_store_int_to_namestr(pex_en_gpio, "PXEN");
+ acpigen_write_store_int_to_namestr(gpu_1v8_en_gpio, "GPEN");
acpigen_write_method_end();
acpigen_write_scope_end();
}