summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2018-08-09 12:07:21 -0600
committerchrome-bot <chrome-bot@chromium.org>2018-08-15 16:37:14 -0700
commit58376b1416d9faebfd339537797c2b613d6091b8 (patch)
treeaec2a509ffd94dcd5f8c9b1d692086a6d5dac6c7
parent5b417bf12ec07042bb79341b5aeb69320041f1bb (diff)
downloadchrome-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.c21
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,
};