summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2016-09-01 13:28:02 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-09-02 04:25:44 -0700
commit269b8e71e4e3496bc3bb04b1e472c52f5edd24f7 (patch)
tree000627a8554e611eb6bda989d5496ec7ca07b5ba
parent2629e96b574a67714509da60362aca124158586b (diff)
downloadchrome-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.c21
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);