diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2015-05-29 14:29:59 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-05-29 23:58:05 +0000 |
commit | 3c2be1a44089e4ecffd8a6462583fc276ad76790 (patch) | |
tree | 919610b73da5a34f2b984415aba6a40442b211a4 | |
parent | 9fe1c5f2e79b63971fd41890501eb8cdc3f6410f (diff) | |
download | chrome-ec-3c2be1a44089e4ecffd8a6462583fc276ad76790.tar.gz |
glados: Initialize PMIC V12 / V0.85A supply
This change is necessary to ensure power-up of edge-case Skylake parts.
BUG=chrome-os-partner:40677
TEST=Manual on Glados. Boot system to S0, run "i2cxfer r 4 0x60 0x38",
verify that 0x7a is read.
BRANCH=None
Change-Id: Id9e62731aaa75fb2357a05d898ba2d4d28f87d9e
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/274114
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
-rw-r--r-- | board/glados/board.c | 15 | ||||
-rw-r--r-- | board/glados/board.h | 1 | ||||
-rw-r--r-- | power/skylake.c | 3 |
3 files changed, 19 insertions, 0 deletions
diff --git a/board/glados/board.c b/board/glados/board.c index f16da8ed05..eff125b426 100644 --- a/board/glados/board.c +++ b/board/glados/board.c @@ -7,8 +7,10 @@ #include "button.h" #include "charger.h" +#include "console.h" #include "extpower.h" #include "gpio.h" +#include "hooks.h" #include "i2c.h" #include "lid_switch.h" #include "motion_sense.h" @@ -20,6 +22,8 @@ #define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP) #define GPIO_KB_OUTPUT (GPIO_ODR_HIGH) +#define I2C_ADDR_BD99992 0x60 + /* Exchange status with PD MCU. */ static void pd_mcu_interrupt(enum gpio_signal signal) { @@ -80,3 +84,14 @@ const struct button_config buttons[CONFIG_BUTTON_COUNT] = { { 0 }, { 0 }, }; + +static void pmic_init(void) +{ + /* + * Set V085ACNT / V0.85A Control Register: + * Lower power mode = 0.7V. + * Nominal output = 1.0V. + */ + i2c_write8(I2C_PORT_PMIC, I2C_ADDR_BD99992, 0x38, 0x7a); +} +DECLARE_HOOK(HOOK_CHIPSET_PRE_INIT, pmic_init, HOOK_PRIO_DEFAULT); diff --git a/board/glados/board.h b/board/glados/board.h index cfa44e425d..393c12182d 100644 --- a/board/glados/board.h +++ b/board/glados/board.h @@ -52,6 +52,7 @@ #define I2C_PORT_PD_MCU MEC1322_I2C1 #define I2C_PORT_ALS MEC1322_I2C2 #define I2C_PORT_ACCEL MEC1322_I2C2 +#define I2C_PORT_PMIC MEC1322_I2C3 #ifndef __ASSEMBLER__ diff --git a/power/skylake.c b/power/skylake.c index bef664807d..d8c97fc3b6 100644 --- a/power/skylake.c +++ b/power/skylake.c @@ -145,6 +145,9 @@ enum power_state power_handle_state(enum power_state state) break; case POWER_G3S5: + /* Call hooks to initialize PMIC */ + hook_notify(HOOK_CHIPSET_PRE_INIT); + if (power_wait_signals(IN_PCH_SLP_SUS_DEASSERTED)) { chipset_force_shutdown(); return POWER_G3; |