8042: Add interface for handling off-matrix button changes

BUG=chrome-os-partner:24370
BRANCH=tot
TEST=Power key and keyboard work normally.

Signed-off-by: Dave Parker <dparker@chromium.org>
Orig-Change-Id: I291ff384ae2fc3e074132330713f0b0c2cc36a76
Reviewed-on: https://chromium-review.googlesource.com/184543
(cherry picked from commit c65f82a5b02cdecf5b62f71ef2e916795f808389)

Change-Id: I1cd02e824c97eb5909e7bff68c8ecefc89f52df0
Reviewed-on: https://chromium-review.googlesource.com/185242
Tested-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Randall Spangler <rspangler@chromium.org>
This commit is contained in:
ChromeOS Developer
2014-01-10 14:15:34 -08:00
committed by chrome-internal-fetch
parent 798df2a6d0
commit 4015172ed1
3 changed files with 129 additions and 61 deletions

24
include/button.h Normal file
View File

@@ -0,0 +1,24 @@
/* Copyright (c) 2014 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.
*/
/* Button API for Chrome EC */
#ifndef __CROS_EC_BUTTON_H
#define __CROS_EC_BUTTON_H
#include "common.h"
#include "gpio.h"
#define BUTTON_FLAG_ACTIVE_HIGH (1 << 0)
enum keyboard_button_type {
KEYBOARD_BUTTON_POWER = 0,
KEYBOARD_BUTTON_VOLUME_DOWN,
KEYBOARD_BUTTON_VOLUME_UP,
KEYBOARD_BUTTON_COUNT
};
#endif /* __CROS_EC_BUTTON_H */

View File

@@ -9,6 +9,7 @@
#define __CROS_EC_KEYBOARD_PROTOCOL_H
#include "common.h"
#include "button.h"
/* Routines common to all protocols */
@@ -17,6 +18,15 @@
*/
void keyboard_clear_buffer(void);
/*
* Respond to button changes. Implemented by a host-specific
* handler.
*
* @param button The button that changed.
* @param is_pressed Whether the button is now pressed.
*/
void keyboard_update_button(enum keyboard_button_type button, int is_pressed);
/* Protocol-specific includes */
#ifdef CONFIG_KEYBOARD_PROTOCOL_8042