diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2021-01-28 08:40:12 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-01-29 14:34:44 +0000 |
commit | 9e26b68ff06747da4fb2d446f84e3b2e09cbea41 (patch) | |
tree | 73a6c6ff7c94dc9e5bfdcb8b94046f7bdecdc29a | |
parent | a9474d0ebcf47fe02952173b81e2fab1cdbd26c8 (diff) | |
download | chrome-ec-9e26b68ff06747da4fb2d446f84e3b2e09cbea41.tar.gz |
ctn730: Add delay between INITIALIZATION and ENABLE (2)
ctn730 isn't immediately ready for i2c write after normal mode
initialization. This patch adds 5 msec delay between
WLC_HOST_CTRL_RESET_EVT_NORMAL_MODE and ENABLE_CMD.
BUG=b:173235954, b:178096436
BRANCH=trogdor
TEST=CoachZ
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Change-Id: Ib3dd96637d772a611cd12d394df492276481c412
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2657722
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | common/peripheral_charger.c | 8 | ||||
-rw-r--r-- | driver/nfc/ctn730.c | 12 |
2 files changed, 10 insertions, 10 deletions
diff --git a/common/peripheral_charger.c b/common/peripheral_charger.c index e907257452..326b0bb495 100644 --- a/common/peripheral_charger.c +++ b/common/peripheral_charger.c @@ -296,7 +296,7 @@ static int pchg_run(struct pchg *ctx) } if (previous_state != ctx->state) - CPRINTS("->%s", _text_state(ctx->state)); + CPRINTS("->STATE_%s", _text_state(ctx->state)); ctx->event = PCHG_EVENT_NONE; @@ -358,12 +358,6 @@ void pchg_task(void *u) int p; int rv; - /* - * Without delay, after servo flash, ctn730 in RW always fails to write - * ENABLE_CMD (b:176824601). - */ - msleep(50); - /* In case we arrive here after power-on (for late sysjump) */ if (chipset_in_state(CHIPSET_STATE_ON)) pchg_startup(); diff --git a/driver/nfc/ctn730.c b/driver/nfc/ctn730.c index 5528b8c5ec..c8be10d297 100644 --- a/driver/nfc/ctn730.c +++ b/driver/nfc/ctn730.c @@ -361,12 +361,18 @@ static int _process_payload_event(struct pchg *ctx, struct ctn730_msg *res) switch (res->instruction) { case WLC_HOST_CTRL_RESET: - if (buf[0] == WLC_HOST_CTRL_RESET_EVT_NORMAL_MODE) + if (buf[0] == WLC_HOST_CTRL_RESET_EVT_NORMAL_MODE) { ctx->event = PCHG_EVENT_INITIALIZED; - else if (buf[0] == WLC_HOST_CTRL_RESET_EVT_DOWNLOAD_MODE) + /* + * ctn730 isn't immediately ready for i2c write after + * normal mode initialization (b:178096436). + */ + msleep(5); + } else if (buf[0] == WLC_HOST_CTRL_RESET_EVT_DOWNLOAD_MODE) { ctx->event = PCHG_EVENT_NONE; - else + } else { return EC_ERROR_INVAL; + } break; case WLC_HOST_CTRL_GENERIC_ERROR: break; |