summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2015-10-08 09:08:26 -0700
committerchrome-bot <chrome-bot@chromium.org>2015-10-12 13:15:47 -0700
commite337adc6e92e55a4c1591b99a8b7b393b3b40f48 (patch)
tree54189bfe0f7a8cae13b6f9d645aec84a5b1f383f
parentc682beaacfaaab41e942748deb19326a5700fe2c (diff)
downloadchrome-ec-e337adc6e92e55a4c1591b99a8b7b393b3b40f48.tar.gz
skylake: Move USB enable gpio control to board hooks
Some boards may not have a USB2_ENABLE GPIO so we need each board to do the USB power enable/disable in a board hook. BUG=chrome-os-partner:46289 BRANCH=none TEST=make -j buildall Change-Id: I830cbaf41c118b2f74e23fa946a4187f6293a7d5 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/304397 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--board/glados/board.c4
-rw-r--r--board/kunimitsu/board.c4
-rw-r--r--power/skylake.c7
3 files changed, 8 insertions, 7 deletions
diff --git a/board/glados/board.c b/board/glados/board.c
index a86a25489b..f11f5ba860 100644
--- a/board/glados/board.c
+++ b/board/glados/board.c
@@ -337,6 +337,8 @@ DECLARE_DEFERRED(enable_input_devices);
/* Called on AP S5 -> S3 transition */
static void board_chipset_startup(void)
{
+ gpio_set_level(GPIO_USB1_ENABLE, 1);
+ gpio_set_level(GPIO_USB2_ENABLE, 1);
hook_call_deferred(enable_input_devices, 0);
}
DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
@@ -344,6 +346,8 @@ DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT);
/* Called on AP S3 -> S5 transition */
static void board_chipset_shutdown(void)
{
+ gpio_set_level(GPIO_USB1_ENABLE, 0);
+ gpio_set_level(GPIO_USB2_ENABLE, 0);
hook_call_deferred(enable_input_devices, 0);
}
DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
diff --git a/board/kunimitsu/board.c b/board/kunimitsu/board.c
index 4ffd9e1c8d..a9ddb53a73 100644
--- a/board/kunimitsu/board.c
+++ b/board/kunimitsu/board.c
@@ -497,6 +497,8 @@ void board_set_charge_limit(int charge_ma)
/* Enable touchpad on chipset startup so that it can wake the system */
static void board_chipset_startup(void)
{
+ gpio_set_level(GPIO_USB1_ENABLE, 1);
+ gpio_set_level(GPIO_USB2_ENABLE, 1);
gpio_set_level(GPIO_ENABLE_TOUCHPAD, 1);
}
DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup,
@@ -505,6 +507,8 @@ DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup,
/* Disable touchpad on chipset shutdown as it is no longer useful */
static void board_chipset_shutdown(void)
{
+ gpio_set_level(GPIO_USB1_ENABLE, 0);
+ gpio_set_level(GPIO_USB2_ENABLE, 0);
gpio_set_level(GPIO_ENABLE_TOUCHPAD, 0);
}
DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown,
diff --git a/power/skylake.c b/power/skylake.c
index 6ef1e85cfc..1aa25d6bb6 100644
--- a/power/skylake.c
+++ b/power/skylake.c
@@ -207,10 +207,6 @@ static enum power_state _power_handle_state(enum power_state state)
return POWER_S5G3;
}
- /* Enable USB so that it can wake the system */
- gpio_set_level(GPIO_USB1_ENABLE, 1);
- gpio_set_level(GPIO_USB2_ENABLE, 1);
-
/* Call hooks now that rails are up */
hook_notify(HOOK_CHIPSET_STARTUP);
return POWER_S3;
@@ -268,9 +264,6 @@ static enum power_state _power_handle_state(enum power_state state)
/* Disable wireless */
wireless_set_state(WIRELESS_OFF);
- gpio_set_level(GPIO_USB1_ENABLE, 0);
- gpio_set_level(GPIO_USB2_ENABLE, 0);
-
/* Always enter into S5 state. The S5 state is required to
* correctly handle global resets which have a bit of delay
* while the SLP_Sx_L signals are asserted then deasserted. */