summaryrefslogtreecommitdiff
path: root/board/bugzzy
diff options
context:
space:
mode:
authorYongBeum.Ha <ybha@samsung.corp-partner.google.com>2021-10-14 14:49:27 +0900
committerCommit Bot <commit-bot@chromium.org>2021-10-21 00:13:38 +0000
commitb24f97a5cf6e00cd11e2a970ccf0e93cfc7a931b (patch)
tree270a3a06f1359697798d4e19a34c8c389d0ed243 /board/bugzzy
parentc9b882e0150de5e0ed9af34ce48e32ccc9487e97 (diff)
downloadchrome-ec-b24f97a5cf6e00cd11e2a970ccf0e93cfc7a931b.tar.gz
bugzzy : modify power sequence for MIPI
detect lcd_reset and turn off VSN/VSP BUG=b:198256003 BRANCH=None TEST=make -j BOARD=bugzzy then check LCD off sequence. Signed-off-by: YongBeum.Ha <ybha@samsung.corp-partner.google.com> Change-Id: I193a3cec749f4d4fefd363ccaf176a43d0ba43dc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3220727 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'board/bugzzy')
-rw-r--r--board/bugzzy/board.c37
-rw-r--r--board/bugzzy/board.h6
-rw-r--r--board/bugzzy/gpio.inc2
3 files changed, 44 insertions, 1 deletions
diff --git a/board/bugzzy/board.c b/board/bugzzy/board.c
index 7fc6776b3f..db0c98084e 100644
--- a/board/bugzzy/board.c
+++ b/board/bugzzy/board.c
@@ -758,6 +758,43 @@ void panel_power_change_interrupt(enum gpio_signal signal)
hook_call_deferred(&panel_power_change_deferred_data, 1 * MSEC);
}
+/*
+ * Detect LCD reset & control LCD DCDC power
+ */
+static void lcd_reset_detect_init(void)
+{
+ if (board_id == -1) {
+ uint32_t val;
+
+ if (cbi_get_board_version(&val) == EC_SUCCESS)
+ board_id = val;
+ }
+
+ if (board_id < 4)
+ return;
+ gpio_enable_interrupt(GPIO_DDI0_DDC_SCL);
+}
+DECLARE_HOOK(HOOK_INIT, lcd_reset_detect_init, HOOK_PRIO_DEFAULT);
+/*
+ * Handle VSP / VSN for mipi display when lcd turns off
+ */
+static void lcd_reset_change_deferred(void)
+{
+ int signal = gpio_get_level(GPIO_DDI0_DDC_SCL);
+
+ if (signal != 0)
+ return;
+
+ i2c_write8(I2C_PORT_LCD, I2C_ADDR_ISL98607_FLAGS,
+ ISL98607_REG_ENABLE, ISL97607_VP_VN_VBST_DIS);
+
+}
+DECLARE_DEFERRED(lcd_reset_change_deferred);
+void lcd_reset_change_interrupt(enum gpio_signal signal)
+{
+ hook_call_deferred(&lcd_reset_change_deferred_data, 100 * MSEC);
+}
+
/**
* Handle TSP_TA according to AC status
*/
diff --git a/board/bugzzy/board.h b/board/bugzzy/board.h
index 617d99ea1d..a7e712f3b8 100644
--- a/board/bugzzy/board.h
+++ b/board/bugzzy/board.h
@@ -125,6 +125,11 @@
#define I2C_ADDR_MP3372_FLAGS 0x28
/* ISL98607 registers and value */
+/* Enable VP / VN / VBST */
+#define ISL98607_REG_ENABLE 0x05
+#define ISL98607_VP_VN_VBST_EN 0x07
+#define ISL97607_VP_VN_VBST_DIS 0x00
+
/* VBST Voltage Adjustment */
#define ISL98607_REG_VBST_OUT 0x06
#define ISL98607_VBST_OUT_5P65 0x0a
@@ -222,5 +227,6 @@ enum battery_type {
};
void panel_power_change_interrupt(enum gpio_signal signal);
+void lcd_reset_change_interrupt(enum gpio_signal signal);
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */
diff --git a/board/bugzzy/gpio.inc b/board/bugzzy/gpio.inc
index af69120e22..e88a002676 100644
--- a/board/bugzzy/gpio.inc
+++ b/board/bugzzy/gpio.inc
@@ -40,6 +40,7 @@ GPIO_INT(EC_WP_OD, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt)
GPIO_INT(BASE_SIXAXIS_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, bmi160_interrupt)
GPIO_INT(LID_360_L, PIN(9, 5), GPIO_INT_FALLING | GPIO_SEL_1P8V, lis2ds_interrupt)
GPIO_INT(EN_PP1800_PANEL_S0, PIN(4, 1), GPIO_INT_BOTH, panel_power_change_interrupt)
+GPIO_INT(DDI0_DDC_SCL, PIN(6, 0), GPIO_INT_FALLING, lcd_reset_change_interrupt)
/* I2C Ports */
GPIO(EC_I2C_EEPROM_SCL, PIN(B, 3), GPIO_INPUT)
@@ -133,7 +134,6 @@ GPIO(GPIO32_NC, PIN(3, 2), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIO35_NC, PIN(3, 5), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIO50_NC, PIN(5, 0), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIO57_NC, PIN(5, 7), GPIO_INPUT | GPIO_PULL_DOWN)
-GPIO(GPIO60_NC, PIN(6, 0), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIO80_NC, PIN(8, 0), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIO81_NC, PIN(8, 1), GPIO_INPUT | GPIO_PULL_DOWN)
GPIO(GPIOC0_NC, PIN(C, 0), GPIO_INPUT | GPIO_PULL_DOWN)