mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-09 17:11:42 +00:00
tcpm: fusb302: Round VNC and Rd thresholds to nearest step
fusb302 determines attach / no-attach (and Rd / Ra) by comparing CC voltage against an MDAC output (42 mV steps). The previous 'floor' calculation was particularly bad for 3.0A Rp (2600 / 42 = 61, 61 * 42 = 2562 mV - 21 = 2551 mV actual threshold, ignoring other error sources). Reduce the chance of error by rounding our thresholds, which also matches the suggested thresholds in the datasheet. BUG=chromium:758608 BRANCH=gru TEST=Attach problematic dingdong, verify we don't enter an attach / detach loop. Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Change-Id: I9211782da0fdad8339246e272952ba1930b69851 Reviewed-on: https://chromium-review.googlesource.com/633276 Reviewed-by: Joe Bauman <joe.bauman@fairchildsemi.com> Reviewed-by: Vincent Palatin <vpalatin@chromium.org> (cherry picked from commit 311b3e4e15fd37ea2ab151edb8b8a468e93355fd) Reviewed-on: https://chromium-review.googlesource.com/638694 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
88abd3ee72
commit
4e46386877
@@ -50,7 +50,12 @@
|
||||
|
||||
#define TCPC_REG_MEASURE 0x04
|
||||
#define TCPC_REG_MEASURE_VBUS (1<<6)
|
||||
#define TCPC_REG_MEASURE_MDAC_MV(mv) (((mv)/42) & 0x3f)
|
||||
/*
|
||||
* MDAC reference voltage step size is 42 mV. Round our thresholds to reduce
|
||||
* maximum error, which also matches suggested thresholds in datasheet
|
||||
* (Table 3. Host Interrupt Summary).
|
||||
*/
|
||||
#define TCPC_REG_MEASURE_MDAC_MV(mv) (DIV_ROUND_NEAREST((mv), 42) & 0x3f)
|
||||
|
||||
#define TCPC_REG_CONTROL0 0x06
|
||||
#define TCPC_REG_CONTROL0_TX_FLUSH (1<<6)
|
||||
|
||||
Reference in New Issue
Block a user