summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2019-10-28 14:32:54 +0800
committerCommit Bot <commit-bot@chromium.org>2019-10-31 09:42:30 +0000
commit316a8dbad0f3b7f8c21b232ac0872f10cfc3a798 (patch)
tree28b308c1f16b6066b3a13ff438702e777c51c33e /driver
parentb0828291b501289f4c1d3726ab545cf3efd06d13 (diff)
downloadchrome-ec-316a8dbad0f3b7f8c21b232ac0872f10cfc3a798.tar.gz
tcpm/fusb302: implement low power mode
Implement tcpc_low_power_mode to reduce power consumption in G3. BUG=b:142760774 TEST=measure power consumption on jacuzzi. verify that power consumption is reduced by 3~4mW see b:142760774 comment 3 for more detail. BRANCH=master Change-Id: I04436d3baaa97b7c049ae3f3d9a9510e5a2024d9 Signed-off-by: Ting Shen <phoenixshen@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1880773 Reviewed-by: Eric Yilun Lin <yllin@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r--driver/tcpm/fusb302.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/driver/tcpm/fusb302.c b/driver/tcpm/fusb302.c
index ee16a206b3..3e85fbe713 100644
--- a/driver/tcpm/fusb302.c
+++ b/driver/tcpm/fusb302.c
@@ -19,7 +19,6 @@
#include "util.h"
#if defined(CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE) || \
- defined(CONFIG_USB_PD_TCPC_LOW_POWER) || \
defined(CONFIG_USB_PD_DISCHARGE_TCPC)
#error "Unsupported config options of fusb302 PD driver"
#endif
@@ -1008,6 +1007,13 @@ void tcpm_set_bist_test_data(int port)
tcpc_write(port, TCPC_REG_CONTROL3, reg);
}
+#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
+static int fusb302_tcpm_enter_low_power_mode(int port)
+{
+ return tcpc_write(port, TCPC_REG_POWER, TCPC_REG_POWER_PWR_LOW);
+}
+#endif
+
const struct tcpm_drv fusb302_tcpm_drv = {
.init = &fusb302_tcpm_init,
.release = &fusb302_tcpm_release,
@@ -1024,4 +1030,7 @@ const struct tcpm_drv fusb302_tcpm_drv = {
.get_message_raw = &fusb302_tcpm_get_message_raw,
.transmit = &fusb302_tcpm_transmit,
.tcpc_alert = &fusb302_tcpc_alert,
+#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
+ .enter_low_power_mode = &fusb302_tcpm_enter_low_power_mode,
+#endif
};