Commit | Line | Data |
---|---|---|
be48308a MH |
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. | |
a75e1c73 CC |
28 | * @name: The name of this GPIO extcon device. |
29 | * @gpio: Corresponding GPIO. | |
5bfbdc9c GR |
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. | |
a75e1c73 CC |
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. | |
62364357 | 37 | * @state_off: print_state is overriden with state_off if detached. |
a75e1c73 | 38 | * If NUll, default method of extcon class is used. |
62364357 GC |
39 | * @check_on_resume: Boolean describing whether to check the state of gpio |
40 | * while resuming from sleep. | |
be48308a MH |
41 | * |
42 | * Note that in order for state_on or state_off to be valid, both state_on | |
43 | * and state_off should be not NULL. If at least one of them is NULL, | |
44 | * the print_state is not overriden. | |
45 | */ | |
46 | struct gpio_extcon_platform_data { | |
47 | const char *name; | |
48 | unsigned gpio; | |
5bfbdc9c | 49 | bool gpio_active_low; |
be48308a MH |
50 | unsigned long debounce; |
51 | unsigned long irq_flags; | |
52 | ||
53 | /* if NULL, "0" or "1" will be printed */ | |
54 | const char *state_on; | |
55 | const char *state_off; | |
6544dfa5 | 56 | bool check_on_resume; |
be48308a MH |
57 | }; |
58 | ||
59 | #endif /* __EXTCON_GPIO_H__ */ |