mt_gpio.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. #ifndef _MT_GPIO_H_
  2. #define _MT_GPIO_H_
  3. /* mark for delete, need remove other driver build error */
  4. #include <linux/ioctl.h>
  5. #include <linux/fs.h>
  6. extern struct mt_gpio_vbase gpio_vbase;
  7. /******************************************************************************
  8. * Enumeration for GPIO pin
  9. ******************************************************************************/
  10. /* GPIO MODE CONTROL VALUE*/
  11. typedef enum {
  12. GPIO_MODE_UNSUPPORTED = -1,
  13. GPIO_MODE_GPIO = 0,
  14. GPIO_MODE_00 = 0,
  15. GPIO_MODE_01 = 1,
  16. GPIO_MODE_02 = 2,
  17. GPIO_MODE_03 = 3,
  18. GPIO_MODE_04 = 4,
  19. GPIO_MODE_05 = 5,
  20. GPIO_MODE_06 = 6,
  21. GPIO_MODE_07 = 7,
  22. GPIO_MODE_MAX,
  23. GPIO_MODE_DEFAULT = GPIO_MODE_01,
  24. } GPIO_MODE;
  25. /*----------------------------------------------------------------------------*/
  26. /* GPIO DIRECTION */
  27. typedef enum {
  28. GPIO_DIR_UNSUPPORTED = -1,
  29. GPIO_DIR_IN = 0,
  30. GPIO_DIR_OUT = 1,
  31. GPIO_DIR_MAX,
  32. GPIO_DIR_DEFAULT = GPIO_DIR_IN,
  33. } GPIO_DIR;
  34. /*----------------------------------------------------------------------------*/
  35. /* GPIO PULL ENABLE*/
  36. typedef enum {
  37. GPIO_PULL_EN_UNSUPPORTED = -1,
  38. GPIO_NOPULLUP = -4,
  39. GPIO_NOPULLDOWN = -5,
  40. GPIO_PULL_DISABLE = 0,
  41. GPIO_PULL_ENABLE = 1,
  42. GPIO_PULL_EN_MAX,
  43. GPIO_PULL_EN_DEFAULT = GPIO_PULL_ENABLE,
  44. } GPIO_PULL_EN;
  45. /*----------------------------------------------------------------------------*/
  46. /* GPIO SMT*/
  47. typedef enum {
  48. GPIO_SMT_UNSUPPORTED = -1,
  49. GPIO_SMT_DISABLE = 0,
  50. GPIO_SMT_ENABLE = 1,
  51. GPIO_SMT_MAX,
  52. GPIO_SMT_DEFAULT = GPIO_SMT_ENABLE,
  53. } GPIO_SMT;
  54. /*----------------------------------------------------------------------------*/
  55. /* GPIO IES*/
  56. typedef enum {
  57. GPIO_IES_UNSUPPORTED = -1,
  58. GPIO_IES_DISABLE = 0,
  59. GPIO_IES_ENABLE = 1,
  60. GPIO_IES_MAX,
  61. GPIO_IES_DEFAULT = GPIO_IES_ENABLE,
  62. } GPIO_IES;
  63. /*----------------------------------------------------------------------------*/
  64. /* GPIO PULL-UP/PULL-DOWN*/
  65. typedef enum {
  66. GPIO_PULL_UNSUPPORTED = -1,
  67. GPIO_PULL_DOWN = 0,
  68. GPIO_PULL_UP = 1,
  69. GPIO_NO_PULL = 2,
  70. GPIO_PULL_MAX,
  71. GPIO_PULL_DEFAULT = GPIO_PULL_DOWN
  72. } GPIO_PULL;
  73. /*----------------------------------------------------------------------------*/
  74. /* GPIO INVERSION */
  75. typedef enum {
  76. GPIO_DATA_INV_UNSUPPORTED = -1,
  77. GPIO_DATA_UNINV = 0,
  78. GPIO_DATA_INV = 1,
  79. GPIO_DATA_INV_MAX,
  80. GPIO_DATA_INV_DEFAULT = GPIO_DATA_UNINV
  81. } GPIO_INVERSION;
  82. /*----------------------------------------------------------------------------*/
  83. /* GPIO OUTPUT */
  84. typedef enum {
  85. GPIO_OUT_UNSUPPORTED = -1,
  86. GPIO_OUT_ZERO = 0,
  87. GPIO_OUT_ONE = 1,
  88. GPIO_OUT_MAX,
  89. GPIO_OUT_DEFAULT = GPIO_OUT_ZERO,
  90. GPIO_DATA_OUT_DEFAULT = GPIO_OUT_ZERO, /*compatible with DCT */
  91. } GPIO_OUT;
  92. /*----------------------------------------------------------------------------*/
  93. /* GPIO INPUT */
  94. typedef enum {
  95. GPIO_IN_UNSUPPORTED = -1,
  96. GPIO_IN_ZERO = 0,
  97. GPIO_IN_ONE = 1,
  98. GPIO_IN_MAX,
  99. } GPIO_IN;
  100. /******************************************************************************
  101. * GPIO Driver interface
  102. ******************************************************************************/
  103. /*direction*/
  104. int mt_set_gpio_dir(unsigned long pin, unsigned long dir);
  105. int mt_get_gpio_dir(unsigned long pin);
  106. /*pull enable*/
  107. int mt_set_gpio_pull_enable(unsigned long pin, unsigned long enable);
  108. int mt_get_gpio_pull_enable(unsigned long pin);
  109. /*schmitt trigger*/
  110. int mt_set_gpio_smt(unsigned long pin, unsigned long enable);
  111. int mt_get_gpio_smt(unsigned long pin);
  112. /*IES*/
  113. int mt_set_gpio_ies(unsigned long pin, unsigned long enable);
  114. int mt_get_gpio_ies(unsigned long pin);
  115. /*pull select*/
  116. int mt_set_gpio_pull_select(unsigned long pin, unsigned long select);
  117. int mt_get_gpio_pull_select(unsigned long pin);
  118. /*data inversion*/
  119. int mt_set_gpio_inversion(unsigned long pin, unsigned long enable);
  120. int mt_get_gpio_inversion(unsigned long pin);
  121. /*input/output*/
  122. int mt_set_gpio_out(unsigned long pin, unsigned long output);
  123. int mt_get_gpio_out(unsigned long pin);
  124. int mt_get_gpio_in(unsigned long pin);
  125. /*mode control*/
  126. int mt_set_gpio_mode(unsigned long pin, unsigned long mode);
  127. int mt_get_gpio_mode(unsigned long pin);
  128. /*misc functions for protect GPIO*/
  129. /* void mt_gpio_dump(GPIO_REGS *regs,GPIOEXT_REGS *regs_ext); */
  130. void gpio_dump_regs(void);
  131. #endif /* _MT_GPIO_H_ */