diff options
author | Ko_Ko <Ko_Ko@compal.corp-partner.google.com> | 2020-12-01 14:07:31 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-12-18 07:12:37 +0000 |
commit | 15a7fbaed3af228d15c050ad43c09a87f29ea651 (patch) | |
tree | eb8262c286d99569b677146d14347e4ea34dfd04 | |
parent | ad11790a92b5b8b537771f2abe1bf509bacd4d92 (diff) | |
download | chrome-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.c | 11 |
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); |