diff options
-rw-r--r-- | board/rambi/board.c | 10 | ||||
-rw-r--r-- | board/rambi/board.h | 10 | ||||
-rw-r--r-- | chip/lm4/lpc.c | 12 | ||||
-rw-r--r-- | power/baytrail.c | 10 |
4 files changed, 42 insertions, 0 deletions
diff --git a/board/rambi/board.c b/board/rambi/board.c index f7912767b4..2213ee224c 100644 --- a/board/rambi/board.c +++ b/board/rambi/board.c @@ -89,7 +89,12 @@ const struct gpio_info gpio_list[] = { {"PCH_RSMRST_L", LM4_GPIO_F, (1<<1), GPIO_OUT_LOW, NULL}, {"PCH_SMI_L", LM4_GPIO_F, (1<<4), GPIO_ODR_HIGH, NULL}, {"PCH_SOC_OVERRIDE_L", LM4_GPIO_G, (1<<1), GPIO_OUT_HIGH, NULL}, + /* + * TODO(crosbug.com/p/24424): Remove old assignment and remove _NEW + * from the new one when we deprecate the 1.5 boards. + */ {"PCH_SYS_PWROK", LM4_GPIO_H, (1<<2), GPIO_OUT_LOW, NULL}, + {"PCH_SYS_PWROK_NEW", LM4_GPIO_J, (1<<1), GPIO_OUT_LOW, NULL}, {"PCH_WAKE_L", LM4_GPIO_F, (1<<0), GPIO_ODR_HIGH, NULL}, {"PP1350_EN", LM4_GPIO_H, (1<<5), GPIO_OUT_LOW, NULL}, {"PP3300_DX_EN", LM4_GPIO_J, (1<<2), GPIO_OUT_LOW, NULL}, @@ -106,7 +111,12 @@ const struct gpio_info gpio_list[] = { {"VCORE_EN", LM4_GPIO_C, (1<<5), GPIO_OUT_LOW, NULL}, {"WLAN_OFF_L", LM4_GPIO_J, (1<<4), GPIO_OUT_LOW, NULL}, {"PCH_SCI_L", LM4_GPIO_M, (1<<1), GPIO_ODR_HIGH, NULL}, + /* + * TODO(crosbug.com/p/24424): Remove old assignment and remove _NEW + * from the new one when we deprecate the 1.5 boards. + */ {"KBD_IRQ_L", LM4_GPIO_M, (1<<4), GPIO_OUT_HIGH, NULL}, + {"KBD_IRQ_NEW_L", LM4_GPIO_M, (1<<3), GPIO_OUT_HIGH, NULL}, }; BUILD_ASSERT(ARRAY_SIZE(gpio_list) == GPIO_COUNT); diff --git a/board/rambi/board.h b/board/rambi/board.h index 3cf17b4580..37b54cc04c 100644 --- a/board/rambi/board.h +++ b/board/rambi/board.h @@ -99,7 +99,12 @@ enum gpio_signal { GPIO_PCH_SMI_L, /* System management interrupt to PCH */ GPIO_PCH_SOC_OVERRIDE_L, /* SOC override signal to PCH; when high, ME * ignores security descriptor */ + /* + * TODO(crosbug.com/p/24424): Remove old assignment and remove _NEW + * from the new one when we deprecate the 1.5 boards. + */ GPIO_PCH_SYS_PWROK, /* EC thinks everything is up and ready */ + GPIO_PCH_SYS_PWROK_NEW, /* Duplicate of SYS_PWROK for 2.0 boards */ GPIO_PCH_WAKE_L, /* Wake signal from EC to PCH */ GPIO_PP1350_EN, /* Enable 1.35V supply */ GPIO_PP3300_DX_EN, /* Enable power to lots of peripherals */ @@ -116,7 +121,12 @@ enum gpio_signal { GPIO_VCORE_EN, /* Enable core power supplies */ GPIO_WLAN_OFF_L, /* Disable WiFi radio */ GPIO_PCH_SCI_L, /* Assert SCI to PCH */ + /* + * TODO(crosbug.com/p/24424): Remove old assignment and remove _NEW + * from the new one when we deprecate the 1.5 boards. + */ GPIO_KBD_IRQ_L, /* Negative edge triggered irq. */ + GPIO_KBD_IRQ_NEW_L, /* Duplicate of KBD_IRQ# for 2.0 boards */ /* Number of GPIOs; not an actual GPIO */ GPIO_COUNT diff --git a/chip/lm4/lpc.c b/chip/lm4/lpc.c index f77dd363ed..57844bd2e9 100644 --- a/chip/lm4/lpc.c +++ b/chip/lm4/lpc.c @@ -88,8 +88,20 @@ static void keyboard_irq_assert(void) { /* Negative edge-triggered keyboard interrupt. */ gpio_set_level(CONFIG_KEYBOARD_IRQ_GPIO, 0); +#ifdef BOARD_RAMBI + /* + * TODO(crosbug.com/p/24424): Remove duplicate IRQ output when we + * finish transitioning from proto 1.5 to proto 2.0. + */ + gpio_set_level(GPIO_KBD_IRQ_NEW_L, 0); +#endif + wait_irq_sent(); + gpio_set_level(CONFIG_KEYBOARD_IRQ_GPIO, 1); +#ifdef BOARD_RAMBI + gpio_set_level(GPIO_KBD_IRQ_NEW_L, 1); +#endif } #else static void wait_send_serirq(uint32_t lpcirqctl) diff --git a/power/baytrail.c b/power/baytrail.c index 3cf166c8ad..b353d658a7 100644 --- a/power/baytrail.c +++ b/power/baytrail.c @@ -61,6 +61,11 @@ void chipset_force_shutdown(void) * transitions to G3. */ gpio_set_level(GPIO_PCH_SYS_PWROK, 0); + /* + * TODO(crosbug.com/p/24424): Remove duplicate SYS_PWROK output when we + * finish transitioning from proto 1.5 to proto 2.0. + */ + gpio_set_level(GPIO_PCH_SYS_PWROK_NEW, 0); gpio_set_level(GPIO_PCH_RSMRST_L, 0); } @@ -82,8 +87,10 @@ void chipset_reset(int cold_reset) /* PWROK must deassert for at least 3 RTC clocks = 91 us */ gpio_set_level(GPIO_PCH_SYS_PWROK, 0); + gpio_set_level(GPIO_PCH_SYS_PWROK_NEW, 0); udelay(100); gpio_set_level(GPIO_PCH_SYS_PWROK, 1); + gpio_set_level(GPIO_PCH_SYS_PWROK_NEW, 1); } else { /* @@ -129,6 +136,7 @@ enum x86_state x86_chipset_init(void) gpio_set_level(GPIO_PP5000_EN, 0); gpio_set_level(GPIO_PCH_RSMRST_L, 0); gpio_set_level(GPIO_PCH_SYS_PWROK, 0); + gpio_set_level(GPIO_PCH_SYS_PWROK_NEW, 0); wireless_enable(0); } } @@ -276,6 +284,7 @@ enum x86_state x86_handle_state(enum x86_state state) /* Set SYS and CORE PWROK */ gpio_set_level(GPIO_PCH_SYS_PWROK, 1); + gpio_set_level(GPIO_PCH_SYS_PWROK_NEW, 1); gpio_set_level(GPIO_PCH_CORE_PWROK, 1); return X86_S0; @@ -285,6 +294,7 @@ enum x86_state x86_handle_state(enum x86_state state) /* Clear SYS and CORE PWROK */ gpio_set_level(GPIO_PCH_SYS_PWROK, 0); + gpio_set_level(GPIO_PCH_SYS_PWROK_NEW, 0); gpio_set_level(GPIO_PCH_CORE_PWROK, 0); /* Wait 40ns */ |