tsc_adc.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. /**
  2. * \file tsc_adc.h
  3. *
  4. * \brief This file contains the function prototypes for the device
  5. * abstraction layer for Touch Screen. It also contains some
  6. * related macro definitions and some files to be included.
  7. */
  8. /*
  9. * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
  10. */
  11. /*
  12. * Redistribution and use in source and binary forms, with or without
  13. * modification, are permitted provided that the following conditions
  14. * are met:
  15. *
  16. * Redistributions of source code must retain the above copyright
  17. * notice, this list of conditions and the following disclaimer.
  18. *
  19. * Redistributions in binary form must reproduce the above copyright
  20. * notice, this list of conditions and the following disclaimer in the
  21. * documentation and/or other materials provided with the
  22. * distribution.
  23. *
  24. * Neither the name of Texas Instruments Incorporated nor the names of
  25. * its contributors may be used to endorse or promote products derived
  26. * from this software without specific prior written permission.
  27. *
  28. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  29. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  30. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  31. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  32. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  33. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  34. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  35. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  36. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  37. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  38. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  39. *
  40. */
  41. #ifndef _TSCADC_H_
  42. #define _TSCADC_H_
  43. #include "hw_tsc_adc_ss.h"
  44. #define TSCADC_FORCE_IDLE (0)
  45. #define TSCADC_NO_IDLE (1)
  46. #define TSCADC_SMART_IDLE (2)
  47. #define TSCADC_SMART_IDLE_WAKEUP (3)
  48. #define TSCADC_ASYNC_HW_PEN_EVENT_INT TSC_ADC_SS_IRQSTATUS_RAW_HW_PEN_EVENT
  49. #define TSCADC_SYNC_PEN_EVENT_INT TSC_ADC_SS_IRQSTATUS_RAW_PEN_IRQ
  50. #define TSCADC_FIFO0_UNDER_FLOW_INT TSC_ADC_SS_IRQSTATUS_RAW_FIFO0_UNDERFLOW
  51. #define TSCADC_FIFO1_UNDER_FLOW_INT TSC_ADC_SS_IRQSTATUS_RAW_FIFO1_UNDERFLOW
  52. #define TSCADC_END_OF_SEQUENCE_INT TSC_ADC_SS_IRQSTATUS_RAW_END_OF_SEQUENCE
  53. #define TSCADC_FIFO0_THRESHOLD_INT TSC_ADC_SS_IRQSTATUS_RAW_FIFO0_THRESHOLD
  54. #define TSCADC_FIFO1_THRESHOLD_INT TSC_ADC_SS_IRQSTATUS_RAW_FIFO1_THRESHOLD
  55. #define TSCADC_FIFO0_OVER_RUN_INT TSC_ADC_SS_IRQSTATUS_RAW_FIFO0_OVERRUN
  56. #define TSCADC_FIFO1_OVER_RUN_INT TSC_ADC_SS_IRQSTATUS_RAW_FIFO1_OVERRUN
  57. #define TSCADC_OUT_OF_RANGE_INT TSC_ADC_SS_IRQSTATUS_RAW_OUT_OF_RANGE
  58. #define TSCADC_PEN_UP_EVENT_INT TSC_ADC_SS_IRQSTATUS_RAW_PEN_UP_EVENT
  59. #define TSCADC_FIFO_0 (0)
  60. #define TSCADC_FIFO_1 (1)
  61. #define TSCADC_FOUR_WIRE_MODE (1)
  62. #define TSCADC_FIVE_WIRE_MODE (2)
  63. #define TSCADC_GENERAL_PURPOSE_MODE (0)
  64. #define TSCADC_PEN_IRQ_0 (0)
  65. #define TSCADC_PEN_IRQ_1 (1)
  66. #define TSCADC_SINGLE_ENDED_OPER_MODE (0)
  67. #define TSCADC_DIFFERENTIAL_OPER_MODE (1)
  68. #define TSCADC_TWO_SAMPLES_AVG (1)
  69. #define TSCADC_FOUR_SAMPLES_AVG (2)
  70. #define TSCADC_EIGHT_SAMPLES_AVG (3)
  71. #define TSCADC_SIXTEEN_SAMPLES_AVG (4)
  72. #define TSCADC_ONE_SHOT_SOFTWARE_ENABLED (0)
  73. #define TSCADC_CONTINIOUS_SOFTWARE_ENABLED (1)
  74. #define TSCADC_ONE_SHOT_HARDWARE_SYNC (2)
  75. #define TSCADC_CONTINIOUS_HARDWARE_SYNC (3)
  76. #define TSCADC_WAKEUP_DISABLE (0)
  77. #define TSCADC_WAKEUO_ENABLE (1)
  78. #define TSCADC_HW_INPUT_EVENT (1)
  79. #define TSCADC_PEN_TOUCH (0)
  80. #define TSCADC_TRANSISTOR_DISABLE (0)
  81. #define TSCADC_TRANSISTOR_ENABLE (1)
  82. #define TSCADC_INTERNAL_AC_BIAS (0)
  83. #define TSCADC_EXTERNAL_AC_BIAS (1)
  84. #define TSCADC_MODULE_DISABLE (0)
  85. #define TSCADC_MODULE_ENABLE (1)
  86. #define TSCADC_NEGATIVE_REF_VSSA (0)
  87. #define TSCADC_NEGATIVE_REF_XNUR (1)
  88. #define TSCADC_NEGATIVE_REF_YNLR (2)
  89. #define TSCADC_NEGATIVE_REF_ADCREFM (3)
  90. #define TSCADC_POSITIVE_REF_VDDA (0)
  91. #define TSCADC_POSITIVE_REF_XPUL (1)
  92. #define TSCADC_POSITIVE_REF_YPLL (2)
  93. #define TSCADC_POSITIVE_REF_ADCREFP (3)
  94. #define TSCADC_POSITIVE_INP_CHANNEL1 (0)
  95. #define TSCADC_POSITIVE_INP_CHANNEL2 (1)
  96. #define TSCADC_POSITIVE_INP_CHANNEL3 (2)
  97. #define TSCADC_POSITIVE_INP_CHANNEL4 (3)
  98. #define TSCADC_POSITIVE_INP_CHANNEL5 (4)
  99. #define TSCADC_POSITIVE_INP_CHANNEL6 (5)
  100. #define TSCADC_POSITIVE_INP_CHANNEL7 (6)
  101. #define TSCADC_POSITIVE_INP_CHANNEL8 (7)
  102. #define TSCADC_POSITIVE_INP_ADCREFM (8)
  103. #define TSCADC_NEGATIVE_INP_CHANNEL1 (0)
  104. #define TSCADC_NEGATIVE_INP_CHANNEL2 (1)
  105. #define TSCADC_NEGATIVE_INP_CHANNEL3 (2)
  106. #define TSCADC_NEGATIVE_INP_CHANNEL4 (3)
  107. #define TSCADC_NEGATIVE_INP_CHANNEL5 (4)
  108. #define TSCADC_NEGATIVE_INP_CHANNEL6 (5)
  109. #define TSCADC_NEGATIVE_INP_CHANNEL7 (6)
  110. #define TSCADC_NEGATIVE_INP_CHANNEL8 (7)
  111. #define TSCADC_NEGATIVE_INP_ADCREFM (8)
  112. #define TSCADC_XPPSW_PIN_ON (1)
  113. #define TSCADC_XPPSW_PIN_OFF (0)
  114. #define TSCADC_XNNSW_PIN_ON (1)
  115. #define TSCADC_XNNSW_PIN_OFF (0)
  116. #define TSCADC_YPPSW_PIN_ON (1)
  117. #define TSCADC_YPPSW_PIN_OFF (0)
  118. #define TSCADC_YNNSW_PIN_ON (1)
  119. #define TSCADC_YNNSW_PIN_OFF (0)
  120. #define TSCADC_XNPSW_PIN_ON (1)
  121. #define TSCADC_XNPSW_PIN_OFF (0)
  122. #define TSCADC_YPNSW_PIN_ON (1)
  123. #define TSCADC_YPNSW_PIN_OFF (0)
  124. #define TSCADC_WPNSW_PIN_ON (1)
  125. #define TSCADC_WPNSW_PIN_OFF (0)
  126. void TSCADCSetADCPowerDown(unsigned int baseAdd);
  127. unsigned int TSCADCGetRevision(unsigned int baseAdd);
  128. unsigned int TSCADCEventIrqStatus(unsigned int baseAdd);
  129. void TSCADCStepConfigProtectionEnable(unsigned int baseAdd);
  130. void TSCADCStepConfigProtectionDisable(unsigned int baseAdd);
  131. void TSCADCTSChargeStepOpenDelayConfig(unsigned int baseAdd,
  132. unsigned int openDelay);
  133. unsigned int TSCADCSequencerFSMBusyStatus(unsigned int baseAdd);
  134. unsigned int TSCADCSequencerCurrentStepID(unsigned int baseAdd);
  135. void TSCADCTSModeConfig(unsigned int baseAdd, unsigned int tsMode);
  136. void TSCADCIdleModeSet(unsigned int baseAdd, unsigned int idleMode);
  137. void TSCADCHWEventMapSet(unsigned int baseAdd, unsigned int hwEvent);
  138. unsigned int TSCADCSequencerPenIrqStatusRead(unsigned int baseAdd,
  139. unsigned int penIRQSel);
  140. void TSCADCTSStepModeConfig(unsigned int baseAdd, unsigned int stepSel,
  141. unsigned int mode);
  142. void TSCADCDMAFIFOEnable(unsigned int baseAdd, unsigned char fifoSel);
  143. void TSCADCDMAFIFODisable(unsigned int baseAdd, unsigned char fifoSel);
  144. void TSCADCADCBiasConfig(unsigned int baseAdd, unsigned int adcBiasSel);
  145. void TSCADCIntStatusClear(unsigned int baseAdd, unsigned int intFlag);
  146. void TSCADCEventInterruptEnable(unsigned int baseAdd, unsigned int event);
  147. void TSCADCEventInterruptDisable(unsigned int baseAdd, unsigned int event);
  148. void TSCADCTSStepFIFOSelConfig(unsigned int baseAdd, unsigned int stepSel,
  149. unsigned int FIFOSel);
  150. void TSCADCTSStepSampleDelayConfig(unsigned int baseAdd, unsigned int stepSel,
  151. unsigned int delay);
  152. void TSCADCTSStepOpenDelayConfig(unsigned int baseAdd, unsigned int stepSel,
  153. unsigned int delay);
  154. void TSCADCTSStepAverageConfig(unsigned int baseAdd, unsigned int stepSel,
  155. unsigned int average);
  156. void TSCADCTSStepConfig(unsigned int baseAdd, unsigned int stepSelect,
  157. unsigned int adcNegativeRef, unsigned int adcPositiveInp,
  158. unsigned int adcNegativeInp, unsigned int adcPositiveRef);
  159. void TSCADCConfigureAFEClock(unsigned int baseAdd, unsigned int moduleClk,
  160. unsigned int inputClk);
  161. void TSCADCADCOutputRangeConfig(unsigned int baseAdd, unsigned short lowVal,
  162. unsigned short highVal);
  163. void TSCADCTSStepOperationModeControl(unsigned int baseAdd, unsigned int mode,
  164. unsigned int stepSelect);
  165. void TSCADCTSStepAnalogSupplyConfig(unsigned int baseAdd, unsigned int xppsw,
  166. unsigned int xnpsw, unsigned int yppsw,
  167. unsigned int stepSelect);
  168. void TSCADCTSStepAnalogGroundConfig(unsigned int baseAdd, unsigned int xnnsw,
  169. unsigned int ypnsw, unsigned int ynnsw,
  170. unsigned int wpnsw, unsigned int stepSelect);
  171. void TSCADCChargeStepAnalogSupplyConfig(unsigned int baseAdd, unsigned int xppsw,
  172. unsigned int xnpsw, unsigned int yppsw);
  173. void TSCADCChargeStepAnalogSupplyConfig(unsigned int baseAdd, unsigned int xppsw,
  174. unsigned int xnpsw, unsigned int yppsw);
  175. void TSCADCIdleStepConfig(unsigned int baseAdd, unsigned int adcNegativeRef,
  176. unsigned int adcPositiveInp, unsigned int adcNegativeInp,
  177. unsigned int adcPositiveRef);
  178. void TSCADCConfigureMisc(unsigned int baseAdd, unsigned char spareInputVal,
  179. unsigned char spareOutputVal);
  180. void TSCADCConfigureStepEnable(unsigned int baseAdd, unsigned int stepSel,
  181. unsigned int stepEn_Dis);
  182. void TSCADCIdleStepAnalogSupplyConfig(unsigned int baseAdd, unsigned int xppsw,
  183. unsigned int xnpsw, unsigned int yppsw);
  184. void TSCADCIdleStepAnalogGroundConfig(unsigned int baseAdd, unsigned int xnnsw,
  185. unsigned int ypnsw, unsigned int ynnsw,
  186. unsigned int wpnsw);
  187. void TSCADCChargeStepConfig(unsigned int baseAdd, unsigned int adcNegativeRef,
  188. unsigned int adcPositiveInp,unsigned int adcNegativeInp,
  189. unsigned int adcPositiveRef);
  190. void TSCADCChargeStepAnalogGroundConfig(unsigned int baseAdd, unsigned int xnnsw,
  191. unsigned int ypnsw, unsigned int ynnsw,
  192. unsigned int wpnsw);
  193. void TSCADCModuleStateSet(unsigned int baseAdd, unsigned int enableModule);
  194. void TSCADCRawIntStatusSet(unsigned int baseAdd, unsigned int intFlag);
  195. void TSCADCStepIDTagConfig(unsigned int baseAdd, unsigned int enableStepIDTag);
  196. unsigned int TSCADCFIFOADCDataRead(unsigned int baseAdd, unsigned int FIFOSel);
  197. unsigned int TSCADCIsDMAFIFOEnabled(unsigned int baseAdd, unsigned int fifoSel);
  198. unsigned int TSCADCIntStatusRead(unsigned int baseAdd, unsigned int intFlag);
  199. void TSCADCWakeUpPenEventConfig(unsigned int baseAdd, unsigned int enableWakeUp);
  200. unsigned int TSCADCFIFOWordCountRead(unsigned int baseAdd, unsigned int FIFOSel);
  201. unsigned int TSCADCFIFOChannelIDRead(unsigned int baseAdd, unsigned int FIFOSel);
  202. void TSCADCIdleStepOperationModeControl(unsigned int baseAdd, unsigned int mode);
  203. void TSCADCTSStepOutOfRangeCheckEnable(unsigned int baseAdd, unsigned int stepSel);
  204. void TSCADCTSStepOutOfRangeCheckDisable(unsigned int baseAdd, unsigned int stepSel);
  205. unsigned int TSCADCRawIntStatusRead(unsigned int baseAdd, unsigned int intFlag);
  206. void TSCADCChargeStepOperationModeControl(unsigned int baseAdd, unsigned int mode);
  207. void TSCADCTSTransistorConfig(unsigned int baseAdd, unsigned int enableTSTransistor);
  208. void TSCADCConfigHWEventPrempt(unsigned int baseAdd, unsigned int enableHWEventPreempt);
  209. void TSCADCFIFOIRQThresholdLevelConfig(unsigned int baseAdd, unsigned char FIFOSel,
  210. unsigned char numberOfSamples);
  211. void TSCADCFIFODMAThresholdLevelConfig(unsigned int baseAdd,
  212. unsigned int FIFOSel,
  213. unsigned int numberOfSamples);
  214. unsigned int TSCADCIntStatus(unsigned int baseAdd);
  215. void TSCADCSetADCPowerUp(unsigned int baseAdd);
  216. typedef struct {
  217. signed int x;
  218. signed int y;
  219. }POINT;
  220. typedef struct {
  221. signed int Divider;
  222. signed int An;
  223. signed int Bn;
  224. signed int Cn;
  225. signed int Dn;
  226. signed int En;
  227. signed int Fn;
  228. }MATRIX;
  229. #endif