summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKo_Ko <Ko_Ko@compal.corp-partner.google.com>2020-12-01 14:07:31 +0800
committerCommit Bot <commit-bot@chromium.org>2020-12-18 07:12:37 +0000
commit15a7fbaed3af228d15c050ad43c09a87f29ea651 (patch)
treeeb8262c286d99569b677146d14347e4ea34dfd04
parentad11790a92b5b8b537771f2abe1bf509bacd4d92 (diff)
downloadchrome-ec-15a7fbaed3af228d15c050ad43c09a87f29ea651.tar.gz
RAA489000: VBUS current target setting
The value for VBUS_CURRENT_TARGET (0x92) is determined by current sense which might be different in each board. Use ceiling value to avoid insufficient current output. BUG=b:169788521 BRANCH=dedede TEST=build and flash on madoo, and make sure we get the desired value Signed-off-by: Ko_Ko <Ko_Ko@compal.corp-partner.google.com> Change-Id: If5d976e1f1054dd22ff4b915b399434bc846bb76 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2567082 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Ko Ko <ko_ko@compal.corp-partner.google.com> Tested-by: Ko Ko <ko_ko@compal.corp-partner.google.com>
-rw-r--r--driver/tcpm/raa489000.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/driver/tcpm/raa489000.c b/driver/tcpm/raa489000.c
index ceff5c20b0..3caa35f291 100644
--- a/driver/tcpm/raa489000.c
+++ b/driver/tcpm/raa489000.c
@@ -14,6 +14,10 @@
#include "tcpci.h"
#include "tcpm.h"
+#define DEFAULT_R_AC 20
+#define R_AC CONFIG_CHARGER_SENSE_RESISTOR_AC
+#define AC_CURRENT_TO_REG(CUR) ((CUR) * R_AC / DEFAULT_R_AC)
+
#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
@@ -177,8 +181,13 @@ int raa489000_init(int port)
board_set_active_charge_port(port);
}
+ /* Check value according to current sense by project, set ceiling
+ * value when it has remainder to avoid insufficient current.
+ */
+ regval = AC_CURRENT_TO_REG(RAA489000_VBUS_CURRENT_TARGET_VALUE) +
+ RAA489000_VBUS_CURRENT_TARGET_VALUE % (DEFAULT_R_AC/R_AC);
rv = tcpc_write16(port, RAA489000_VBUS_CURRENT_TARGET,
- RAA489000_VBUS_CURRENT_TARGET_VALUE);
+ regval);
if (rv)
CPRINTS("c%d: failed to set target current", port);