Merge tag 'dm-3.14-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device...
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / linux / extcon / extcon-gpio.h
1 /*
2  *  External connector (extcon) class generic GPIO driver
3  *
4  * Copyright (C) 2012 Samsung Electronics
5  * Author: MyungJoo Ham <myungjoo.ham@samsung.com>
6  *
7  * based on switch class driver
8  * Copyright (C) 2008 Google, Inc.
9  * Author: Mike Lockwood <lockwood@android.com>
10  *
11  * This software is licensed under the terms of the GNU General Public
12  * License version 2, as published by the Free Software Foundation, and
13  * may be copied, distributed, and modified under those terms.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20 */
21 #ifndef __EXTCON_GPIO_H__
22 #define __EXTCON_GPIO_H__ __FILE__
23
24 #include <linux/extcon.h>
25
26 /**
27  * struct gpio_extcon_platform_data - A simple GPIO-controlled extcon device.
28  * @name:               The name of this GPIO extcon device.
29  * @gpio:               Corresponding GPIO.
30  * @gpio_active_low:    Boolean describing whether gpio active state is 1 or 0
31  *                      If true, low state of gpio means active.
32  *                      If false, high state of gpio means active.
33  * @debounce:           Debounce time for GPIO IRQ in ms.
34  * @irq_flags:          IRQ Flags (e.g., IRQF_TRIGGER_LOW).
35  * @state_on:           print_state is overriden with state_on if attached.
36  *                      If NULL, default method of extcon class is used.
37  * @state_off:          print_state is overriden with state_on if detached.
38  *                      If NUll, default method of extcon class is used.
39  *
40  * Note that in order for state_on or state_off to be valid, both state_on
41  * and state_off should be not NULL. If at least one of them is NULL,
42  * the print_state is not overriden.
43  */
44 struct gpio_extcon_platform_data {
45         const char *name;
46         unsigned gpio;
47         bool gpio_active_low;
48         unsigned long debounce;
49         unsigned long irq_flags;
50
51         /* if NULL, "0" or "1" will be printed */
52         const char *state_on;
53         const char *state_off;
54         bool check_on_resume;
55 };
56
57 #endif /* __EXTCON_GPIO_H__ */