extcon-gpio.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. #include <linux/extcon.h>
  24. /**
  25. * struct gpio_extcon_platform_data - A simple GPIO-controlled extcon device.
  26. * @name: The name of this GPIO extcon device.
  27. * @gpio: Corresponding GPIO.
  28. * @gpio_active_low: Boolean describing whether gpio active state is 1 or 0
  29. * If true, low state of gpio means active.
  30. * If false, high state of gpio means active.
  31. * @debounce: Debounce time for GPIO IRQ in ms.
  32. * @irq_flags: IRQ Flags (e.g., IRQF_TRIGGER_LOW).
  33. * @state_on: print_state is overriden with state_on if attached.
  34. * If NULL, default method of extcon class is used.
  35. * @state_off: print_state is overriden with state_on if detached.
  36. * If NUll, default method of extcon class is used.
  37. *
  38. * Note that in order for state_on or state_off to be valid, both state_on
  39. * and state_off should be not NULL. If at least one of them is NULL,
  40. * the print_state is not overriden.
  41. */
  42. struct gpio_extcon_platform_data {
  43. const char *name;
  44. unsigned gpio;
  45. bool gpio_active_low;
  46. unsigned long debounce;
  47. unsigned long irq_flags;
  48. /* if NULL, "0" or "1" will be printed */
  49. const char *state_on;
  50. const char *state_off;
  51. };
  52. #endif /* __EXTCON_GPIO_H__ */