diff options
author | Ben Lok <ben.lok@mediatek.com> | 2015-06-29 17:41:01 +0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-06-30 12:22:19 +0000 |
commit | 59576398dbc7676fd7a30c2f87700f3c585d6b7e (patch) | |
tree | f154f8d78558c33599dfab4130d13dd15dfb9eb1 | |
parent | 882da459007bbae8ca0e306dbc41d563c07a11fd (diff) | |
download | chrome-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.c | 14 |
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; |