cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

gpio_keys.h (1782B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _GPIO_KEYS_H
      3#define _GPIO_KEYS_H
      4
      5#include <linux/types.h>
      6
      7struct device;
      8
      9/**
     10 * struct gpio_keys_button - configuration parameters
     11 * @code:		input event code (KEY_*, SW_*)
     12 * @gpio:		%-1 if this key does not support gpio
     13 * @active_low:		%true indicates that button is considered
     14 *			depressed when gpio is low
     15 * @desc:		label that will be attached to button's gpio
     16 * @type:		input event type (%EV_KEY, %EV_SW, %EV_ABS)
     17 * @wakeup:		configure the button as a wake-up source
     18 * @wakeup_event_action:	event action to trigger wakeup
     19 * @debounce_interval:	debounce ticks interval in msecs
     20 * @can_disable:	%true indicates that userspace is allowed to
     21 *			disable button via sysfs
     22 * @value:		axis value for %EV_ABS
     23 * @irq:		Irq number in case of interrupt keys
     24 */
     25struct gpio_keys_button {
     26	unsigned int code;
     27	int gpio;
     28	int active_low;
     29	const char *desc;
     30	unsigned int type;
     31	int wakeup;
     32	int wakeup_event_action;
     33	int debounce_interval;
     34	bool can_disable;
     35	int value;
     36	unsigned int irq;
     37};
     38
     39/**
     40 * struct gpio_keys_platform_data - platform data for gpio_keys driver
     41 * @buttons:		pointer to array of &gpio_keys_button structures
     42 *			describing buttons attached to the device
     43 * @nbuttons:		number of elements in @buttons array
     44 * @poll_interval:	polling interval in msecs - for polling driver only
     45 * @rep:		enable input subsystem auto repeat
     46 * @enable:		platform hook for enabling the device
     47 * @disable:		platform hook for disabling the device
     48 * @name:		input device name
     49 */
     50struct gpio_keys_platform_data {
     51	const struct gpio_keys_button *buttons;
     52	int nbuttons;
     53	unsigned int poll_interval;
     54	unsigned int rep:1;
     55	int (*enable)(struct device *dev);
     56	void (*disable)(struct device *dev);
     57	const char *name;
     58};
     59
     60#endif