summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@chromium.org>2017-05-27 17:52:32 -0700
committerFurquan Shaikh <furquan@google.com>2017-05-31 19:55:23 +0200
commit3178bdc345131f88a9ffd2c87a98d2ea332d52d7 (patch)
tree726b23afea58344bd6762e243ef524b9f0f703e8
parent39480c7204725a6b431c84219e96d6b0e655f249 (diff)
mainboard/google/poppy: Power down camera rails when suspending
BUG=b:62147763 Change-Id: Iba88fed972b847448e01fcfca8c7129d950244c2 Signed-off-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://review.coreboot.org/19953 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/mainboard/google/poppy/smihandler.c11
-rw-r--r--src/mainboard/google/poppy/variants/baseboard/include/baseboard/gpio.h4
2 files changed, 15 insertions, 0 deletions
diff --git a/src/mainboard/google/poppy/smihandler.c b/src/mainboard/google/poppy/smihandler.c
index 88aa90581b..30b009dd6f 100644
--- a/src/mainboard/google/poppy/smihandler.c
+++ b/src/mainboard/google/poppy/smihandler.c
@@ -15,8 +15,11 @@
#include <cpu/x86/smm.h>
#include <ec/google/chromeec/smm.h>
+#include <gpio.h>
+#include <soc/gpio.h>
#include <soc/smm.h>
+#include <variant/gpio.h>
#include <variant/ec.h>
void mainboard_smi_espi_handler(void)
@@ -24,10 +27,18 @@ void mainboard_smi_espi_handler(void)
chromeec_smi_process_events();
}
+static void mainboard_gpio_smi_sleep(void)
+{
+ /* Hold camera device in reset and then power it down. */
+ gpio_set(EN_CAM_PMIC_RST_L, 0);
+ gpio_set(EN_PP3300_DX_CAM, 0);
+}
+
void mainboard_smi_sleep(u8 slp_typ)
{
chromeec_smi_sleep(slp_typ, MAINBOARD_EC_S3_WAKE_EVENTS,
MAINBOARD_EC_S5_WAKE_EVENTS);
+ mainboard_gpio_smi_sleep();
}
int mainboard_smi_apmc(u8 apmc)
diff --git a/src/mainboard/google/poppy/variants/baseboard/include/baseboard/gpio.h b/src/mainboard/google/poppy/variants/baseboard/include/baseboard/gpio.h
index 628483bf52..4c9ade3e66 100644
--- a/src/mainboard/google/poppy/variants/baseboard/include/baseboard/gpio.h
+++ b/src/mainboard/google/poppy/variants/baseboard/include/baseboard/gpio.h
@@ -37,4 +37,8 @@
/* eSPI virtual wire reporting */
#define EC_SCI_GPI GPE0_ESPI
+/* Power rail control signals */
+#define EN_PP3300_DX_CAM GPP_C11
+#define EN_CAM_PMIC_RST_L GPP_C10
+
#endif /* BASEBOARD_GPIO_H */