diff options
author | Jett Rink <jettrink@chromium.org> | 2018-08-09 12:07:21 -0600 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-08-15 16:37:14 -0700 |
commit | 58376b1416d9faebfd339537797c2b613d6091b8 (patch) | |
tree | aec2a509ffd94dcd5f8c9b1d692086a6d5dac6c7 | |
parent | 5b417bf12ec07042bb79341b5aeb69320041f1bb (diff) | |
download | chrome-ec-58376b1416d9faebfd339537797c2b613d6091b8.tar.gz |
it5205: put ite5202 mux into low power mode
When the SS MUX is fully disconnected, put the mux into a low power
state.
BRANCH=none
BUG=b:111006203,b:111520593
TEST=BIP PD_A rail went from 3.97mW down to 2.65 mW during hibernate
with the other corresponding PPC changes in CL:1166184
Change-Id: Ief636b569fe01db7f129ca2d457352c3799c14f9
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1169698
Reviewed-by: Scott Collyer <scollyer@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
-rw-r--r-- | driver/usb_mux_it5205.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/driver/usb_mux_it5205.c b/driver/usb_mux_it5205.c index c6b9a91778..dcd3eaa414 100644 --- a/driver/usb_mux_it5205.c +++ b/driver/usb_mux_it5205.c @@ -113,8 +113,23 @@ static int it5205_get_mux(int i2c_addr, mux_state_t *mux_state) return EC_SUCCESS; } +static int it5205_enter_low_power_mode(int i2c_addr) +{ + int rv; + + /* Turn off all switches */ + rv = it5205_write(i2c_addr, IT5205_REG_MUXCR, 0); + + if (rv) + return rv; + + /* Power down mux */ + return it5205_write(i2c_addr, IT5205_REG_MUXPDR, IT5205_MUX_POWER_DOWN); +} + const struct usb_mux_driver it5205_usb_mux_driver = { - .init = it5205_init, - .set = it5205_set_mux, - .get = it5205_get_mux, + .init = &it5205_init, + .set = &it5205_set_mux, + .get = &it5205_get_mux, + .enter_low_power_mode = &it5205_enter_low_power_mode, }; |