summaryrefslogtreecommitdiff
path: root/driver/tcpm/rt1718s.c
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2021-07-05 16:46:56 +0800
committerCommit Bot <commit-bot@chromium.org>2021-07-20 07:25:08 +0000
commit40bebeea31a6a22607e963e1e075b1b096294c8d (patch)
treec6e21db24700823c136542cdd464d17f080720f5 /driver/tcpm/rt1718s.c
parentd385897bc7102dc107306644bb2701cc93a286ea (diff)
downloadchrome-ec-40bebeea31a6a22607e963e1e075b1b096294c8d.tar.gz
rt1718s: implement low power mode
enable low power mode to further decrease power consumption. BUG=b:192815893 TEST=manually measure power BRANCH=main Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: Ib5d22d1d3c9cc8ed644075b8ed239f96d0eea67e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3004127 Reviewed-by: Eric Yilun Lin <yllin@google.com> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org>
Diffstat (limited to 'driver/tcpm/rt1718s.c')
-rw-r--r--driver/tcpm/rt1718s.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/driver/tcpm/rt1718s.c b/driver/tcpm/rt1718s.c
index 5c35ed03e4..0c3c9c9b10 100644
--- a/driver/tcpm/rt1718s.c
+++ b/driver/tcpm/rt1718s.c
@@ -321,6 +321,20 @@ static void rt1718s_alert(int port)
tcpci_tcpc_alert(port);
}
+static int rt1718s_enter_low_power_mode(int port)
+{
+ /* enter low power mode */
+ RETURN_ERROR(rt1718s_update_bits8(port, RT1718S_SYS_CTRL2,
+ RT1718S_SYS_CTRL2_LPWR_EN, 0xFF));
+ RETURN_ERROR(rt1718s_update_bits8(port, RT1718S_SYS_CTRL2,
+ RT1718S_SYS_CTRL2_BMCIO_OSC_EN, 0));
+
+ /* disable DP/DM/SBU swtiches */
+ RETURN_ERROR(rt1718s_write8(port, RT1718S_RT2_SBU_CTRL_01, 0));
+
+ return tcpci_enter_low_power_mode(port);
+}
+
/* RT1718S is a TCPCI compatible port controller */
const struct tcpm_drv rt1718s_tcpm_drv = {
.init = &rt1718s_init,
@@ -353,7 +367,7 @@ const struct tcpm_drv rt1718s_tcpm_drv = {
.set_src_ctrl = &tcpci_tcpm_set_src_ctrl,
#endif
#ifdef CONFIG_USB_PD_TCPC_LOW_POWER
- .enter_low_power_mode = &tcpci_enter_low_power_mode,
+ .enter_low_power_mode = &rt1718s_enter_low_power_mode,
#endif
};