ite_gpio.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * FILE NAME ite_gpio.h
  3. *
  4. * BRIEF MODULE DESCRIPTION
  5. * Generic gpio.
  6. *
  7. * Author: MontaVista Software, Inc. <source@mvista.com>
  8. * Hai-Pao Fan <haipao@mvista.com>
  9. *
  10. * Copyright 2001 MontaVista Software Inc.
  11. *
  12. * This program is free software; you can redistribute it and/or modify it
  13. * under the terms of the GNU General Public License as published by the
  14. * Free Software Foundation; either version 2 of the License, or (at your
  15. * option) any later version.
  16. *
  17. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
  18. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  19. * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
  20. * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  21. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  22. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  23. * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  24. * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  25. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  26. * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. *
  28. * You should have received a copy of the GNU General Public License along
  29. * with this program; if not, write to the Free Software Foundation, Inc.,
  30. * 675 Mass Ave, Cambridge, MA 02139, USA.
  31. */
  32. #ifndef __ITE_GPIO_H
  33. #define __ITE_GPIO_H
  34. #include <linux/ioctl.h>
  35. struct ite_gpio_ioctl_data {
  36. __u32 device;
  37. __u32 mask;
  38. __u32 data;
  39. };
  40. #define ITE_GPIO_IOCTL_BASE 'Z'
  41. #define ITE_GPIO_IN _IOWR(ITE_GPIO_IOCTL_BASE, 0, struct ite_gpio_ioctl_data)
  42. #define ITE_GPIO_OUT _IOW (ITE_GPIO_IOCTL_BASE, 1, struct ite_gpio_ioctl_data)
  43. #define ITE_GPIO_INT_CTRL _IOW (ITE_GPIO_IOCTL_BASE, 2, struct ite_gpio_ioctl_data)
  44. #define ITE_GPIO_IN_STATUS _IOW (ITE_GPIO_IOCTL_BASE, 3, struct ite_gpio_ioctl_data)
  45. #define ITE_GPIO_OUT_STATUS _IOW (ITE_GPIO_IOCTL_BASE, 4, struct ite_gpio_ioctl_data)
  46. #define ITE_GPIO_GEN_CTRL _IOW (ITE_GPIO_IOCTL_BASE, 5, struct ite_gpio_ioctl_data)
  47. #define ITE_GPIO_INT_WAIT _IOW (ITE_GPIO_IOCTL_BASE, 6, struct ite_gpio_ioctl_data)
  48. #define ITE_GPIO_PORTA 0x01
  49. #define ITE_GPIO_PORTB 0x02
  50. #define ITE_GPIO_PORTC 0x04
  51. extern int ite_gpio_in(__u32 device, __u32 mask, volatile __u32 *data);
  52. extern int ite_gpio_out(__u32 device, __u32 mask, __u32 data);
  53. extern int ite_gpio_int_ctrl(__u32 device, __u32 mask, __u32 data);
  54. extern int ite_gpio_in_status(__u32 device, __u32 mask, volatile __u32 *data);
  55. extern int ite_gpio_out_status(__u32 device, __u32 mask, __u32 data);
  56. extern int ite_gpio_gen_ctrl(__u32 device, __u32 mask, __u32 data);
  57. extern int ite_gpio_int_wait(__u32 device, __u32 mask, __u32 data);
  58. #endif