diff options
author | YongBeum.Ha <ybha@samsung.corp-partner.google.com> | 2021-10-14 14:49:27 +0900 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-10-21 00:13:38 +0000 |
commit | b24f97a5cf6e00cd11e2a970ccf0e93cfc7a931b (patch) | |
tree | 270a3a06f1359697798d4e19a34c8c389d0ed243 /board/bugzzy | |
parent | c9b882e0150de5e0ed9af34ce48e32ccc9487e97 (diff) | |
download | chrome-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.c | 37 | ||||
-rw-r--r-- | board/bugzzy/board.h | 6 | ||||
-rw-r--r-- | board/bugzzy/gpio.inc | 2 |
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) |