| /* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| /* Power button API for Chrome EC */ | |
| #ifndef __CROS_EC_POWER_BUTTON_H | |
| #define __CROS_EC_POWER_BUTTON_H | |
| #include "common.h" | |
| /** | |
| * Return non-zero if power button is pressed. | |
| * | |
| * Uses the debounced button state, not the raw signal from the GPIO. | |
| */ | |
| int power_button_is_pressed(void); | |
| /** | |
| * Wait for the power button to be released | |
| * | |
| * @param timeout_us Timeout in microseconds, or -1 to wait forever | |
| * @return EC_SUCCESS if ok, or | |
| * EC_ERROR_TIMEOUT if power button failed to release | |
| */ | |
| int power_button_wait_for_release(int timeout_us); | |
| /** | |
| * Return non-zero if power button signal asserted at hardware input. | |
| * | |
| */ | |
| int power_button_signal_asserted(void); | |
| /** | |
| * Interrupt handler for power button. | |
| * | |
| * @param signal Signal which triggered the interrupt. | |
| */ | |
| void power_button_interrupt(enum gpio_signal signal); | |
| /** | |
| * For x86 systems, force-assert the power button signal to the PCH. | |
| */ | |
| void power_button_pch_press(void); | |
| /** | |
| * For x86 systems, force-deassert the power button signal to the PCH. | |
| */ | |
| void power_button_pch_release(void); | |
| /** | |
| * For x86 systems, force a pulse of the power button signal to the PCH. | |
| */ | |
| void power_button_pch_pulse(void); | |
| #endif /* __CROS_EC_POWER_BUTTON_H */ |