gpio.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. /**
  2. * \file gpio.h
  3. *
  4. * \brief This file contains the function prototypes for the device
  5. * abstraction layer for GPIO and some related macros.
  6. */
  7. /*
  8. * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
  9. */
  10. /*
  11. * Redistribution and use in source and binary forms, with or without
  12. * modification, are permitted provided that the following conditions
  13. * are met:
  14. *
  15. * Redistributions of source code must retain the above copyright
  16. * notice, this list of conditions and the following disclaimer.
  17. *
  18. * Redistributions in binary form must reproduce the above copyright
  19. * notice, this list of conditions and the following disclaimer in the
  20. * documentation and/or other materials provided with the
  21. * distribution.
  22. *
  23. * Neither the name of Texas Instruments Incorporated nor the names of
  24. * its contributors may be used to endorse or promote products derived
  25. * from this software without specific prior written permission.
  26. *
  27. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  28. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  29. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  30. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  31. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  32. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  33. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  34. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  35. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  36. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  37. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  38. *
  39. */
  40. #ifndef __GPIO_H__
  41. #define __GPIO_H__
  42. #include "hw_gpio.h"
  43. #ifdef __cplusplus
  44. extern "C" {
  45. #endif
  46. /************* GPIO pin directions.************************************/
  47. /* This is used to configure a GPIO pin as an input pin. */
  48. #define GPIO_DIR_INPUT 1
  49. /* This is used to configure a GPIO pin as an output pin.*/
  50. #define GPIO_DIR_OUTPUT 0
  51. /******************Interrupt Trigger Level Types.**********************/
  52. /* Disable interrupt generation on both the edges of a signal on a pin.*/
  53. #define GPIO_INT_TYPE_NOEDGE 0
  54. /* Enable interrupt generation on falling edge of a signal on a pin.*/
  55. #define GPIO_INT_TYPE_FALLEDGE 1
  56. /* Enable interrupt generation on the rising edge of a signal on a pin.*/
  57. #define GPIO_INT_TYPE_RISEDGE 2
  58. /* Enable interrupt generation on both the edges of a signal on a pin.*/
  59. #define GPIO_INT_TYPE_BOTHEDGE 3
  60. /*****************Interrupt Pending status.*****************************/
  61. /* This signifies interrupt status as cleared.*/
  62. #define GPIO_INT_NOPEND 0
  63. /* This signifies interrupt status as pending.*/
  64. #define GPIO_INT_PEND 1
  65. /*****************Write values to a pin.********************************/
  66. /* This is used to write a logic 0 to a pin.*/
  67. #define GPIO_PIN_LOW 0
  68. /* This is used to write a logic 1 to a pin.*/
  69. #define GPIO_PIN_HIGH 1
  70. /*****************Bit Mask values for banks.***************************/
  71. /*
  72. ** The following macros are used by the application while invoking
  73. ** the function 'GPIOBankPinsWrite'. Any one or a combination of
  74. ** the below macros is passed as 'setPins' and 'clrPins' to
  75. ** 'GPIOBankPinsWrite'.
  76. */
  77. #define GPIO_BANK_PIN_0 GPIO_DIR_DIR0
  78. #define GPIO_BANK_PIN_1 GPIO_DIR_DIR1
  79. #define GPIO_BANK_PIN_2 GPIO_DIR_DIR2
  80. #define GPIO_BANK_PIN_3 GPIO_DIR_DIR3
  81. #define GPIO_BANK_PIN_4 GPIO_DIR_DIR4
  82. #define GPIO_BANK_PIN_5 GPIO_DIR_DIR5
  83. #define GPIO_BANK_PIN_6 GPIO_DIR_DIR6
  84. #define GPIO_BANK_PIN_7 GPIO_DIR_DIR7
  85. #define GPIO_BANK_PIN_8 GPIO_DIR_DIR8
  86. #define GPIO_BANK_PIN_9 GPIO_DIR_DIR9
  87. #define GPIO_BANK_PIN_10 GPIO_DIR_DIR10
  88. #define GPIO_BANK_PIN_11 GPIO_DIR_DIR11
  89. #define GPIO_BANK_PIN_12 GPIO_DIR_DIR12
  90. #define GPIO_BANK_PIN_13 GPIO_DIR_DIR13
  91. #define GPIO_BANK_PIN_14 GPIO_DIR_DIR14
  92. #define GPIO_BANK_PIN_15 GPIO_DIR_DIR15
  93. /*****************************************************************************
  94. ** FUNCTION DECLARATIONS
  95. *****************************************************************************/
  96. void GPIODirModeSet(unsigned int baseAdd, unsigned int pinNumber,
  97. unsigned int pinDir);
  98. unsigned int GPIODirModeGet(unsigned int baseAdd, unsigned int pinNumber);
  99. void GPIOPinWrite(unsigned int baseAdd, unsigned int pinNumber,
  100. unsigned int bitValue);
  101. int GPIOPinRead(unsigned int baseAdd, unsigned int pinNumber);
  102. void GPIOIntTypeSet(unsigned int baseAdd, unsigned int pinNumber,
  103. unsigned int intType);
  104. unsigned int GPIOIntTypeGet(unsigned int baseAdd, unsigned int pinNumber);
  105. unsigned int GPIOPinIntStatus(unsigned int baseAdd, unsigned int pinNumber);
  106. void GPIOPinIntClear(unsigned int baseAdd, unsigned int pinNumber);
  107. void GPIOBankIntEnable(unsigned int baseAdd, unsigned int bankNumber);
  108. void GPIOBankIntDisable(unsigned int baseAdd, unsigned int bankNumber);
  109. void GPIOBankPinsWrite(unsigned int baseAdd, unsigned int bankNumber,
  110. unsigned int setPins, unsigned int clrPins);
  111. #ifdef __cplusplus
  112. }
  113. #endif
  114. #endif