summaryrefslogtreecommitdiff
path: root/baseboard
diff options
context:
space:
mode:
Diffstat (limited to 'baseboard')
-rw-r--r--baseboard/guybrush/base_gpio.inc4
-rw-r--r--baseboard/guybrush/baseboard.c10
-rw-r--r--baseboard/guybrush/baseboard.h1
3 files changed, 13 insertions, 2 deletions
diff --git a/baseboard/guybrush/base_gpio.inc b/baseboard/guybrush/base_gpio.inc
index f6a9d48e1c..17ba1e1a31 100644
--- a/baseboard/guybrush/base_gpio.inc
+++ b/baseboard/guybrush/base_gpio.inc
@@ -21,8 +21,8 @@ GPIO_INT(PG_PWR_S5, PIN(C, 0), GPIO_INT_BOTH, power_signal_interrupt) /* S5 P
GPIO_INT(PG_PCORE_S0_R_OD, PIN(B, 6), GPIO_INT_BOTH, power_signal_interrupt) /* S0 Power OK */
GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* AC Power Present */
GPIO_INT(EC_PCORE_INT_ODL, PIN(F, 0), GPIO_INT_BOTH | GPIO_PULL_UP, power_signal_interrupt) /* Power Core Interrupt */
-GPIO_INT(PG_GROUPC_S0_OD, PIN(A, 3), GPIO_INT_BOTH, power_signal_interrupt) /* Power Group C S0 */
-GPIO_INT(PG_LPDDR4X_S3_OD, PIN(9, 5), GPIO_INT_BOTH, power_signal_interrupt) /* Power Group LPDDR4 S3 */
+GPIO_INT(PG_GROUPC_S0_OD, PIN(A, 3), GPIO_INT_BOTH, baseboard_en_pwr_pcore_s0) /* Power Group C S0 */
+GPIO_INT(PG_LPDDR4X_S3_OD, PIN(9, 5), GPIO_INT_BOTH, baseboard_en_pwr_pcore_s0) /* Power Group LPDDR4 S3 */
GPIO(EN_PWR_S5, PIN(B, 7), GPIO_OUT_LOW) /* Enable S5 Power */
GPIO(EN_PWR_S0_R, PIN(F, 1), GPIO_OUT_LOW)
GPIO(EN_PWR_Z1, PIN(8, 5), GPIO_OUT_LOW) /* Enable Z1 Power */
diff --git a/baseboard/guybrush/baseboard.c b/baseboard/guybrush/baseboard.c
index 0445137118..429d751f32 100644
--- a/baseboard/guybrush/baseboard.c
+++ b/baseboard/guybrush/baseboard.c
@@ -709,3 +709,13 @@ void board_overcurrent_event(int port, int is_overcurrented)
break;
}
}
+
+void baseboard_en_pwr_pcore_s0(enum gpio_signal signal)
+{
+
+ /* EC must AND signals PG_LPDDR4X_S3_OD and PG_GROUPC_S0_OD */
+ gpio_set_level(GPIO_EN_PWR_PCORE_S0_R,
+ gpio_get_level(GPIO_PG_LPDDR4X_S3_OD) &&
+ gpio_get_level(GPIO_PG_GROUPC_S0_OD));
+}
+
diff --git a/baseboard/guybrush/baseboard.h b/baseboard/guybrush/baseboard.h
index d45bc8d1ac..1c686da351 100644
--- a/baseboard/guybrush/baseboard.h
+++ b/baseboard/guybrush/baseboard.h
@@ -273,6 +273,7 @@ void ppc_interrupt(enum gpio_signal signal);
void sbu_fault_interrupt(enum ioex_signal signal);
int baseboard_get_temp(int idx, int *temp_ptr);
+void baseboard_en_pwr_pcore_s0(enum gpio_signal signal);
#endif /* !__ASSEMBLER__ */