diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-10-21 11:49:03 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2016-10-21 19:30:45 +0000 |
commit | 6686ed576ef9ad5134622f9267f4a1a90b1fac85 (patch) | |
tree | dcacf6a2231831710e69a6f49a33b06b23bca14a | |
parent | 4163e81a2d8a77a3d82e97dcb0d56ccba3e2aa46 (diff) | |
download | chrome-ec-6686ed576ef9ad5134622f9267f4a1a90b1fac85.tar.gz |
tcpm: fusb302: Fix BIST mode
Upon request, enter BIST mode 2 (alternating 1/0 output pattern) for
50ms.
BUG=chrome-os-partner:58282
BRANCH=gru
TEST=Verify compliance test runs on kevin.
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Change-Id: Ie284066eb2fb54d1c567b516670d8bd966dc9a30
Reviewed-on: https://chromium-review.googlesource.com/401700
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | driver/tcpm/fusb302.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/driver/tcpm/fusb302.c b/driver/tcpm/fusb302.c index a76e814d0e..49c22c31a0 100644 --- a/driver/tcpm/fusb302.c +++ b/driver/tcpm/fusb302.c @@ -748,10 +748,22 @@ static int fusb302_tcpm_transmit(int port, enum tcpm_transmit_type type, break; case TCPC_TX_BIST_MODE_2: - /* Simply hit the BIST_MODE2 bit */ + /* Hit the BIST_MODE2 bit and start TX */ tcpc_read(port, TCPC_REG_CONTROL1, ®); reg |= TCPC_REG_CONTROL1_BIST_MODE2; tcpc_write(port, TCPC_REG_CONTROL1, reg); + + tcpc_read(port, TCPC_REG_CONTROL0, ®); + reg |= TCPC_REG_CONTROL0_TX_START; + tcpc_write(port, TCPC_REG_CONTROL0, reg); + + task_wait_event(PD_T_BIST_TRANSMIT); + + /* Clear BIST mode bit, TX_START is self-clearing */ + tcpc_read(port, TCPC_REG_CONTROL1, ®); + reg &= ~TCPC_REG_CONTROL1_BIST_MODE2; + tcpc_write(port, TCPC_REG_CONTROL1, reg); + break; default: return EC_ERROR_UNIMPLEMENTED; @@ -846,6 +858,7 @@ void fusb302_tcpc_alert(int port) } +/* For BIST receiving */ void tcpm_set_bist_test_data(int port) { int reg; |