summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2016-06-10 16:22:25 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-06-14 11:35:28 -0700
commitc5cad4bca52e4b546e59874e356b409bec7fdfc8 (patch)
treeb46bcc1503e7228b08ae0264bcbe1df7c4ea6ee1
parent26da26a4f96b889e27f03c1dcf98b15bcb485604 (diff)
downloadchrome-ec-c5cad4bca52e4b546e59874e356b409bec7fdfc8.tar.gz
gru: Enable charging of USB-A devices in S3
Leave USB-A charging enabled in S3, and move gru-specific code into board hooks, out of the power state driver. BUG=chrome-os-partner:54159 BRANCH=None TEST=Manual on gru. Verify USB-A enable GPIOs are asserted in S0 and deasserted in G3. Change-Id: Icadeb771226dd0fda4ae96fdde9b3984d87fdd15 Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/351670 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--board/kevin/board.c18
-rw-r--r--power/rk3399.c15
2 files changed, 18 insertions, 15 deletions
diff --git a/board/kevin/board.c b/board/kevin/board.c
index 544dbbf864..393e5527ed 100644
--- a/board/kevin/board.c
+++ b/board/kevin/board.c
@@ -455,3 +455,21 @@ struct motion_sensor_t motion_sensors[] = {
};
const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
#endif /* defined(HAS_TASK_MOTIONSENSE) */
+
+#ifdef BOARD_GRU
+static void usb_charge_resume(void)
+{
+ /* Turn on USB-A ports on as we go into S0 from S3. */
+ gpio_set_level(GPIO_USB_A_EN, 1);
+ gpio_set_level(GPIO_USB_A_CHARGE_EN, 1);
+}
+DECLARE_HOOK(HOOK_CHIPSET_RESUME, usb_charge_resume, HOOK_PRIO_DEFAULT);
+
+static void usb_charge_shutdown(void)
+{
+ /* Turn off USB-A ports as we go back to S5. */
+ gpio_set_level(GPIO_USB_A_CHARGE_EN, 0);
+ gpio_set_level(GPIO_USB_A_EN, 0);
+}
+DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, usb_charge_shutdown, HOOK_PRIO_DEFAULT);
+#endif
diff --git a/power/rk3399.c b/power/rk3399.c
index 4d3a16e2e4..6f2b0c6cba 100644
--- a/power/rk3399.c
+++ b/power/rk3399.c
@@ -75,11 +75,6 @@ enum power_state power_chipset_init(void)
}
wireless_set_state(WIRELESS_OFF);
-#ifdef BOARD_GRU
- /* TODO: Enable CONFIG_USB_PORT_POWER_SMART */
- gpio_set_level(GPIO_USB_A_EN, 0);
- gpio_set_level(GPIO_USB_A_CHARGE_EN, 0);
-#endif
}
return POWER_G3;
@@ -178,11 +173,6 @@ enum power_state power_handle_state(enum power_state state)
/* Enable wireless */
wireless_set_state(WIRELESS_ON);
-#ifdef BOARD_GRU
- gpio_set_level(GPIO_USB_A_EN, 1);
- gpio_set_level(GPIO_USB_A_CHARGE_EN, 1);
-#endif
-
/* Call hooks now that rails are up */
hook_notify(HOOK_CHIPSET_RESUME);
@@ -199,11 +189,6 @@ enum power_state power_handle_state(enum power_state state)
/* Call hooks before we remove power rails */
hook_notify(HOOK_CHIPSET_SUSPEND);
-#ifdef BOARD_GRU
- gpio_set_level(GPIO_USB_A_CHARGE_EN, 0);
- gpio_set_level(GPIO_USB_A_EN, 0);
-#endif
-
/* Suspend wireless */
wireless_set_state(WIRELESS_SUSPEND);