Files
OpenCellular/include/button.h
Bill Richardson 683beb8737 Samus: Support capsense input as keyboard events.
This is experimental for now; the capsense chip simply reports its buttons
as the number keys on the keyboard (1-8).

BUG=chrome-os-partner:23382
BRANCH=samus,ToT
TEST=manual

To test, you'll need a reworked and correctly programmed capsense module.
Boot the system, and switch to VT2. Touch the capsense bar and you'll see
the input appear on the console as though you were typing numbers.

Note that the capsense hardware is still buggy. Refer to the bug for
workarounds.

Change-Id: I4c3a8b70b8197ffd538c38c59c9336383365afa7
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/185434
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Dave Parker <dparker@chromium.org>
2014-02-08 04:15:39 +00:00

53 lines
1.1 KiB
C

/* 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_CAPSENSE_1,
KEYBOARD_BUTTON_CAPSENSE_2,
KEYBOARD_BUTTON_CAPSENSE_3,
KEYBOARD_BUTTON_CAPSENSE_4,
KEYBOARD_BUTTON_CAPSENSE_5,
KEYBOARD_BUTTON_CAPSENSE_6,
KEYBOARD_BUTTON_CAPSENSE_7,
KEYBOARD_BUTTON_CAPSENSE_8,
KEYBOARD_BUTTON_COUNT
};
struct button_config {
const char *name;
enum keyboard_button_type type;
enum gpio_signal gpio;
uint32_t debounce_us;
int flags;
};
/*
* Defined in board.c. Should be CONFIG_BUTTON_COUNT elements long.
*/
extern const struct button_config buttons[];
/*
* Interrupt handler for button.
*
* @param signal Signal which triggered the interrupt.
*/
void button_interrupt(enum gpio_signal signal);
#endif /* __CROS_EC_BUTTON_H */