diff options
author | Bruce Wan <Bruce.Wan@quantatw.com> | 2014-11-11 11:39:22 +0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-11-14 01:18:34 +0000 |
commit | 54e3b27776c736438a450353d7e70a51cd08ac11 (patch) | |
tree | 2d940332a89100e2b0aab1c2f287b96b7e442671 | |
parent | cd27c27d652b24470e59d43dcc120e38498e4a62 (diff) | |
download | chrome-ec-54e3b27776c736438a450353d7e70a51cd08ac11.tar.gz |
Candy: Add touchscreen enable pin control for Elan touchscreen power-on sequence
Candy use TS_EN to enable touchscreen, and TOUCH_RST_L for RESETB signal,
so we need add TOUCHSCREEN_ENABLE control for Elan touchscreen power-on sequence.
BUG=chrome-os-partner:32284
BRANCH=rambi
TEST=manual
Candy use TS_EN to enable touchscreen, and TOUCH_RST_L for RESETB signal.
Signed-off-by: Bruce Wan <Bruce.Wan@quantatw.com>
Change-Id: Ia1f568302c17ab7ed31220370412b1c27ae5dc2f
Reviewed-on: https://chromium-review.googlesource.com/228983
Tested-by: Bruce Wan <Bruce.Wan@quantatw.com>
Reviewed-by: Mohammed Habibulla <moch@chromium.org>
Commit-Queue: Devin Lu <Devin.Lu@quantatw.com>
-rw-r--r-- | board/candy/board.c | 1 | ||||
-rw-r--r-- | board/candy/board.h | 2 | ||||
-rwxr-xr-x | include/config.h | 8 | ||||
-rwxr-xr-x | power/baytrail.c | 15 |
4 files changed, 26 insertions, 0 deletions
diff --git a/board/candy/board.c b/board/candy/board.c index ae6b7054d8..fa90b992bd 100644 --- a/board/candy/board.c +++ b/board/candy/board.c @@ -104,6 +104,7 @@ const struct gpio_info gpio_list[] = { {"PPSX_EN", LM4_GPIO_L, (1<<6), GPIO_OUT_LOW, NULL}, {"SUSP_VR_EN", LM4_GPIO_C, (1<<7), GPIO_OUT_LOW, NULL}, {"TOUCHSCREEN_RESET_L", LM4_GPIO_N, (1<<7), GPIO_OUT_LOW, NULL}, + {"TOUCHSCREEN_ENABLE", LM4_GPIO_J, (1<<5), GPIO_OUT_LOW, NULL}, {"USB_CTL1", LM4_GPIO_E, (1<<6), GPIO_OUT_LOW, NULL}, {"USB_ILIM_SEL", LM4_GPIO_E, (1<<5), GPIO_OUT_LOW, NULL}, {"USB1_ENABLE", LM4_GPIO_E, (1<<4), GPIO_OUT_LOW, NULL}, diff --git a/board/candy/board.h b/board/candy/board.h index 759696cbc5..65b5044ac4 100644 --- a/board/candy/board.h +++ b/board/candy/board.h @@ -39,6 +39,7 @@ #define CONFIG_SCI_GPIO GPIO_PCH_SCI_L #define CONFIG_TEMP_SENSOR #define CONFIG_TEMP_SENSOR_TMP432 +#define CONFIG_TOUCHSCREEN_ENABLE_CONTROL GPIO_TOUCHSCREEN_ENABLE #define CONFIG_USB_PORT_POWER_IN_S3 #define CONFIG_USB_PORT_POWER_SMART #define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP @@ -124,6 +125,7 @@ enum gpio_signal { GPIO_PPSX_EN, /* Enable PP1350_PCH_SX, PP1000_PCH_SX */ GPIO_SUSP_VR_EN, /* Enable 1.05V regulator */ GPIO_TOUCHSCREEN_RESET_L, /* Reset touch screen */ + GPIO_TOUCHSCREEN_ENABLE, /* Touch screen enable */ GPIO_USB_CTL1, /* USB control signal 1 to both ports */ GPIO_USB_ILIM_SEL, /* USB current limit to both ports */ GPIO_USB1_ENABLE, /* USB port 1 output power enable */ diff --git a/include/config.h b/include/config.h index 839bc6d9b1..4048733ac1 100755 --- a/include/config.h +++ b/include/config.h @@ -780,6 +780,14 @@ #undef CONFIG_TEMP_SENSOR_POWER_GPIO /*****************************************************************************/ + +/* + * Some touch screens require additional enable signal for proper power + * sequencing. + */ +#undef CONFIG_TOUCHSCREEN_ENABLE_CONTROL + +/*****************************************************************************/ /* UART config */ /* Baud rate for UARTs */ diff --git a/power/baytrail.c b/power/baytrail.c index f6320812bd..87b5f8a4f4 100755 --- a/power/baytrail.c +++ b/power/baytrail.c @@ -160,6 +160,11 @@ enum power_state power_handle_state(enum power_state state) */ gpio_set_level(GPIO_TOUCHSCREEN_RESET_L, lid_is_open()); +#ifdef CONFIG_TOUCHSCREEN_ENABLE_CONTROL + gpio_set_level(CONFIG_TOUCHSCREEN_ENABLE_CONTROL, + lid_is_open()); +#endif + /* Check for state transitions */ if (!power_has_signals(IN_PGOOD_S3)) { /* Required rail went away */ @@ -250,6 +255,9 @@ enum power_state power_handle_state(enum power_state state) * still closed); it may have been turned off if the lid was * closed in S3. */ +#ifdef CONFIG_TOUCHSCREEN_ENABLE_CONTROL + gpio_set_level(CONFIG_TOUCHSCREEN_ENABLE_CONTROL, 1); +#endif gpio_set_level(GPIO_TOUCHSCREEN_RESET_L, 1); /* Wait for non-core power rails good */ @@ -259,6 +267,9 @@ enum power_state power_handle_state(enum power_state state) gpio_set_level(GPIO_PP3300_DX_EN, 0); gpio_set_level(GPIO_PP5000_EN, 0); gpio_set_level(GPIO_TOUCHSCREEN_RESET_L, 0); +#ifdef CONFIG_TOUCHSCREEN_ENABLE_CONTROL + gpio_set_level(CONFIG_TOUCHSCREEN_ENABLE_CONTROL, 0); +#endif return POWER_S3; } @@ -389,6 +400,10 @@ enum power_state power_handle_state(enum power_state state) gpio_set_level(GPIO_ENABLE_TOUCHPAD, 0); gpio_set_level(GPIO_TOUCHSCREEN_RESET_L, 0); +#ifdef CONFIG_TOUCHSCREEN_ENABLE_CONTROL + gpio_set_level(CONFIG_TOUCHSCREEN_ENABLE_CONTROL, 0); +#endif + #ifdef CONFIG_LAN_POWER_S3 /* Turn off LAN controller power */ gpio_set_level(CONFIG_LAN_POWER_S3, 0); |