| /* Copyright 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. |
| * |
| * The functions implemented by keyboard component of EC core. |
| */ |
| |
| #ifndef __CROS_EC_KEYBOARD_8042_H |
| #define __CROS_EC_KEYBOARD_8042_H |
| |
| #include "common.h" |
| #include "button.h" |
| |
| /** |
| * Called by power button handler and button interrupt handler. |
| * |
| * This function sends the corresponding make or break code to the host. |
| */ |
| void button_state_changed(enum keyboard_button_type button, int is_pressed); |
| |
| /** |
| * Notify the keyboard module when a byte is written by the host. |
| * |
| * Note: This is called in interrupt context by the LPC interrupt handler. |
| * |
| * @param data Byte written by host |
| * @param is_cmd Is byte command (!=0) or data (0) |
| */ |
| void keyboard_host_write(int data, int is_cmd); |
| |
| /* |
| * Board specific callback function when a key state is changed. |
| * |
| * A board may watch key events and create some easter eggs, or apply dynamic |
| * translation to the make code (i.e., remap keys). |
| * |
| * Returning EC_SUCCESS implies *make_code is still a valid make code to be |
| * processed. Any other return value will abort processing of this make code. |
| * If callback alters *make_code or aborts key processing when pressed=1, it is |
| * responsible for also altering/aborting the matching pressed=0 call. |
| * |
| * @param make_code Pointer to scan code (set 2) of key in action. |
| * @param pressed Is the key being pressed (1) or released (0). |
| */ |
| enum ec_error_list keyboard_scancode_callback(uint16_t *make_code, |
| int8_t pressed); |
| |
| #endif /* __CROS_EC_KEYBOARD_8042_H */ |