summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Lok <ben.lok@mediatek.com>2015-06-29 17:41:01 +0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-06-30 12:22:19 +0000
commit59576398dbc7676fd7a30c2f87700f3c585d6b7e (patch)
treef154f8d78558c33599dfab4130d13dd15dfb9eb1
parent882da459007bbae8ca0e306dbc41d563c07a11fd (diff)
downloadchrome-ec-59576398dbc7676fd7a30c2f87700f3c585d6b7e.tar.gz
oak: set a debounce time for suspend signal
The suspend signal from SoC of oak should be kept at least 50ms. Add a debounce time for suspend singal detection, to avoid transient state during SoC boot up. BUG=chrome-os-partner:42023 BRANCH=none TEST=plug PD power adaptor to type-c port C1, The keyboard should be worked (Ensure EC communication is oaky) Change-Id: I4a6bb4e8ba9d417fe2a3045846d38b2129516d78 Signed-off-by: Ben Lok <ben.lok@mediatek.com> Reviewed-on: https://chromium-review.googlesource.com/282471 Reviewed-by: Rong Chang <rongchang@chromium.org> Commit-Queue: Nicolas Boichat <drinkcat@chromium.org>
-rw-r--r--power/mediatek.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/power/mediatek.c b/power/mediatek.c
index 130a691195..760e994ffa 100644
--- a/power/mediatek.c
+++ b/power/mediatek.c
@@ -58,6 +58,11 @@
#define PMIC_PWRON_DEBOUNCE_TIME (60 * MSEC)
/*
+ * The suspend signal from SoC should be kept at least 50ms.
+ */
+#define SUSPEND_DEBOUNCE_TIME (50 * MSEC)
+
+/*
* The time to bootup the PMIC from power-off to power-on.
*/
#define PMIC_PWRON_PRESS_TIME (3000 * MSEC)
@@ -650,7 +655,14 @@ enum power_state power_handle_state(enum power_state state)
power_off();
return POWER_S0S3;
} else if (power_get_signals() & IN_SUSPEND) {
- return POWER_S0S3;
+ /*
+ * add susuend signal debounce:
+ * check suspend signal after 50ms, to avoid
+ * transient state during SoC boot up.
+ */
+ usleep(SUSPEND_DEBOUNCE_TIME);
+ if (power_get_signals() & IN_SUSPEND)
+ return POWER_S0S3;
}
return state;