summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/pazquel/board.c28
-rw-r--r--board/pazquel/board.h5
2 files changed, 33 insertions, 0 deletions
diff --git a/board/pazquel/board.c b/board/pazquel/board.c
index 2b06f53f33..1d3a601fad 100644
--- a/board/pazquel/board.c
+++ b/board/pazquel/board.c
@@ -356,6 +356,29 @@ void board_tcpc_init(void)
}
DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
+static void da9313_pvc_mode_ctrl(int enable)
+{
+ /*
+ * On enable, PVC operates in automatic frequency mode.
+ * On disable, PVC operates in fixed frequency mode.
+ */
+ if (enable)
+ i2c_update8(I2C_PORT_POWER, DA9313_I2C_ADDR_FLAGS,
+ DA9313_REG_PVC_CTRL,
+ DA9313_PVC_CTRL_PVC_MODE, MASK_SET);
+ else
+ i2c_update8(I2C_PORT_POWER, DA9313_I2C_ADDR_FLAGS,
+ DA9313_REG_PVC_CTRL,
+ DA9313_PVC_CTRL_PVC_MODE, MASK_CLR);
+}
+
+void da9313_init(void)
+{
+ /* PVC operates in fixed frequency mode in S0. */
+ da9313_pvc_mode_ctrl(0);
+}
+DECLARE_HOOK(HOOK_INIT, da9313_init, HOOK_PRIO_DEFAULT+1);
+
void board_hibernate(void)
{
int i;
@@ -387,12 +410,17 @@ static void board_chipset_suspend(void)
*/
gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
pwm_enable(PWM_CH_DISPLIGHT, 0);
+
+ /* PVC operates in automatic frequency mode in S3. */
+ da9313_pvc_mode_ctrl(1);
}
DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
/* Called on AP S3 -> S0 transition */
static void board_chipset_resume(void)
{
+ /* PVC operates in fixed frequency mode in S0. */
+ da9313_pvc_mode_ctrl(0);
/* Turn on display and keyboard backlight in S0. */
gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
if (pwm_get_duty(PWM_CH_DISPLIGHT))
diff --git a/board/pazquel/board.h b/board/pazquel/board.h
index f3a0d55b17..b55fe0974e 100644
--- a/board/pazquel/board.h
+++ b/board/pazquel/board.h
@@ -72,6 +72,11 @@
#define GPIO_WP_L GPIO_EC_WP_ODL
#define GPIO_SWITCHCAP_PG GPIO_SWITCHCAP_GPIO_1
#define GPIO_ACOK_OD GPIO_CHG_ACOK_OD
+/* Da9313 */
+#define DA9313_I2C_ADDR_FLAGS 0x68
+#define DA9313_REG_PVC_CTRL 0x04
+#define DA9313_PVC_CTRL_PVC_MODE BIT(1)
+#define DA9313_PVC_CTRL_PVC_EN BIT(0)
#ifndef __ASSEMBLER__