diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-09-01 13:28:02 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-09-02 04:25:44 -0700 |
commit | 269b8e71e4e3496bc3bb04b1e472c52f5edd24f7 (patch) | |
tree | 000627a8554e611eb6bda989d5496ec7ca07b5ba | |
parent | 2629e96b574a67714509da60362aca124158586b (diff) | |
download | chrome-ec-269b8e71e4e3496bc3bb04b1e472c52f5edd24f7.tar.gz |
kevin / gru: Keep SPIP module disabled in S3 / S5
SPIP is only used in S0, so keep the module disabled in lower power
states. Disabling SPIP through spi_enable() will also restore our CS pin
to ODR_HIGH.
BUG=chrome-os-partner:56860
BRANCH=None
TEST=Verify SPIP is functional on initial power-up, sysjump, and on
apshutdown / re-power-on. Also verify GPIO_SPI_SENSOR_CS_L goes low in
S5.
Change-Id: I14d845895a43700d2133a532cff63d08f0e64018
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/380215
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Caesar Wang <wxt@rock-chips.com>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r-- | board/kevin/board.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/board/kevin/board.c b/board/kevin/board.c index a294fd5160..6293bcc980 100644 --- a/board/kevin/board.c +++ b/board/kevin/board.c @@ -280,6 +280,22 @@ int pd_snk_is_vbus_provided(int port) return bd99955_is_vbus_provided(bd99955_port); } +static void board_spi_enable(void) +{ + spi_enable(CONFIG_SPI_ACCEL_PORT, 1); +} +DECLARE_HOOK(HOOK_CHIPSET_RESUME, + board_spi_enable, + MOTION_SENSE_HOOK_PRIO - 1); + +static void board_spi_disable(void) +{ + spi_enable(CONFIG_SPI_ACCEL_PORT, 0); +} +DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, + board_spi_disable, + MOTION_SENSE_HOOK_PRIO + 1); + static void board_init(void) { /* Enable TCPC alert interrupts */ @@ -294,9 +310,8 @@ static void board_init(void) gpio_enable_interrupt(GPIO_AP_OVERTEMP); /* Sensor Init */ - gpio_config_module(MODULE_SPI_MASTER, 1); - spi_enable(CONFIG_SPI_ACCEL_PORT, 1); - CPRINTS("Board using SPI sensors"); + if (system_jumped_to_this_image() && chipset_in_state(CHIPSET_STATE_ON)) + board_spi_enable(); } DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); |