diff options
author | Ting Shen <phoenixshen@google.com> | 2021-07-05 16:46:56 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-07-20 07:25:08 +0000 |
commit | 40bebeea31a6a22607e963e1e075b1b096294c8d (patch) | |
tree | c6e21db24700823c136542cdd464d17f080720f5 /driver/tcpm/rt1718s.c | |
parent | d385897bc7102dc107306644bb2701cc93a286ea (diff) | |
download | chrome-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.c | 16 |
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 }; |