From 308e02195d2ae9c71ea41512a08b2c17babf482e Mon Sep 17 00:00:00 2001 From: Louis Yung-Chieh Lo Date: Thu, 7 Nov 2013 10:37:40 -0800 Subject: Take XPSHOLD back. The XPSHOLD is not floated. It connects to +1.8V_VDDIO, which indicates high when AP is on. So, bring it back. Also remove the duplicated GPIO definition (GPIO_PWR_LED1). Signed-off-by: Louis Yung-Chieh Lo BUG=chrome-os-partner:23929 BRANCH=nyan TEST=verified on nyan. successfully boot up the machine. Change-Id: I293a899bcdf255f36f6117627f66ed8231c9a70f Reviewed-on: https://chromium-review.googlesource.com/176046 Reviewed-by: Yen Lin Reviewed-by: Yung-chieh Lo Commit-Queue: Yung-chieh Lo Tested-by: Yung-chieh Lo Reviewed-by: Randall Spangler --- power/tegra.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) (limited to 'power') diff --git a/power/tegra.c b/power/tegra.c index cc2fefadfc..18b39ea7fe 100644 --- a/power/tegra.c +++ b/power/tegra.c @@ -20,6 +20,7 @@ * released * - Holding pwron for 9s powers off the AP * - Pressing and releasing pwron within that 9s is ignored + * - If XPSHOLD is dropped by the AP, then we power the AP off */ #include "clock.h" @@ -44,8 +45,6 @@ /* Long power key press to force shutdown */ #define DELAY_FORCE_SHUTDOWN (9 * SECOND) -/* TODO(crosbug.com/p/23853): remove TODO_XPSHOLD */ -#ifdef TODO_XPSHOLD /* * If the power key is pressed to turn on, then held for this long, we * power off. @@ -55,7 +54,6 @@ * press or XPSHOLD == 0). */ #define DELAY_SHUTDOWN_ON_POWER_HOLD (9 * SECOND) -#endif /* TODO_XPSHOLD */ /* Maximum delay after power button press before we deassert GPIO_PMIC_PWRON */ #define DELAY_RELEASE_PWRON SECOND /* 1s */ @@ -63,13 +61,11 @@ /* debounce time to prevent accidental power-on after keyboard power off */ #define KB_PWR_ON_DEBOUNCE 250 /* 250us */ -#ifdef TODO_XPSHOLD /* * nyan's GPIO_SOC1V8_XPSHOLD will go low for ~20ms after initial high. * XPSHOLD_DEBOUNCE is used to wait this long, then check the signal again. */ #define XPSHOLD_DEBOUNCE (30 * 1000) /* 30 ms */ -#endif /* TODO_XPSHOLD */ /* Application processor power state */ static int ap_on; @@ -204,11 +200,9 @@ static int check_for_power_off_event(void) power_button_was_pressed = pressed; -#ifdef TODO_XPSHOLD /* XPSHOLD released by AP : shutdown immediately */ if (gpio_get_level(GPIO_SOC1V8_XPSHOLD) == 0) return 3; -#endif /* TODO_XPSHOLD */ return 0; } @@ -279,9 +273,7 @@ static int tegra_power_init(void) { /* Enable interrupts for our GPIOs */ gpio_enable_interrupt(GPIO_KB_PWR_ON_L); -#ifdef TODO_XPSHOLD gpio_enable_interrupt(GPIO_SOC1V8_XPSHOLD); -#endif /* TODO_XPSHOLD */ gpio_enable_interrupt(GPIO_SUSPEND_L); /* Leave power off only if requested by reset flags */ @@ -357,14 +349,12 @@ void chipset_force_shutdown(void) */ static int check_for_power_on_event(void) { -#ifdef TODO_XPSHOLD /* check if system is already ON */ if (gpio_get_level(GPIO_SOC1V8_XPSHOLD)) { CPRINTF("[%T system is on, thus clear auto_power_on]\n"); auto_power_on = 0; /* no need to arrange another power on */ return 1; } -#endif /* TODO_XPSHOLD */ /* power on requested at EC startup for recovery */ if (auto_power_on) { @@ -403,11 +393,9 @@ static int power_on(void) gpio_set_level(GPIO_AP_RESET_L, 1); set_pmic_pwrok(1); -#ifdef TODO_XPSHOLD if (gpio_get_level(GPIO_SOC1V8_XPSHOLD) == 0) /* Initialize non-AP components */ hook_notify(HOOK_CHIPSET_PRE_INIT); -#endif /* TODO_XPSHOLD */ ap_on = 1; disable_sleep(SLEEP_MASK_AP_RUN); @@ -439,7 +427,6 @@ static int wait_for_power_button_release(unsigned int timeout_us) return 0; } -#ifdef TODO_XPSHOLD /** * Wait for the XPSHOLD signal from the AP to be asserted within timeout_us * and if asserted clear the PMIC_PWRON signal @@ -467,7 +454,6 @@ static int react_to_xpshold(unsigned int timeout_us) CPRINTF("[%T XPSHOLD seen]\n"); return 0; } -#endif /* TODO_XPSHOLD */ /** * Power off the AP @@ -542,14 +528,12 @@ void chipset_task(void) if (!power_on()) { int continue_power = 0; -#ifdef TODO_XPSHOLD if (!react_to_xpshold(DELAY_RELEASE_PWRON)) { /* AP looks good */ if (!wait_for_power_button_release( DELAY_SHUTDOWN_ON_POWER_HOLD)) continue_power = 1; } -#endif /* TODO_XPSHOLD */ set_pmic_pwrok(0); if (continue_power) { power_button_was_pressed = 0; -- cgit v1.2.1