analysisDataOperation.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. /*
  2. * FILE SA-1100.h
  3. *
  4. * Version 1.2
  5. * Author Copyright (c) Marc A. Viredaz, 1998
  6. * DEC Western Research Laboratory, Palo Alto, CA
  7. * Date January 1998 (April 1997)
  8. * System StrongARM SA-1100
  9. * Language C or ARM Assembly
  10. * Purpose Definition of constants related to the StrongARM
  11. * SA-1100 microprocessor (Advanced RISC Machine (ARM)
  12. * architecture version 4). This file is based on the
  13. * StrongARM SA-1100 data sheet version 2.2.
  14. *
  15. */
  16. /* Be sure that virtual mapping is defined right */
  17. #ifndef __ASM_ARCH_HARDWARE_H
  18. #error You must include hardware.h not SA-1100.h
  19. #endif
  20. #include "bitfield.h"
  21. /*
  22. * SA1100 CS line to physical address
  23. */
  24. #define SA1100_CS0_PHYS 0x00000000
  25. #define SA1100_CS1_PHYS 0x08000000
  26. #define SA1100_CS2_PHYS 0x10000000
  27. #define SA1100_CS3_PHYS 0x18000000
  28. #define SA1100_CS4_PHYS 0x40000000
  29. #define SA1100_CS5_PHYS 0x48000000
  30. /*
  31. * Personal Computer Memory Card International Association (PCMCIA) sockets
  32. */
  33. #define PCMCIAPrtSp 0x04000000 /* PCMCIA Partition Space [byte] */
  34. #define PCMCIASp (4*PCMCIAPrtSp) /* PCMCIA Space [byte] */
  35. #define PCMCIAIOSp PCMCIAPrtSp /* PCMCIA I/O Space [byte] */
  36. #define PCMCIAAttrSp PCMCIAPrtSp /* PCMCIA Attribute Space [byte] */
  37. #define PCMCIAMemSp PCMCIAPrtSp /* PCMCIA Memory Space [byte] */
  38. #define PCMCIA0Sp PCMCIASp /* PCMCIA 0 Space [byte] */
  39. #define PCMCIA0IOSp PCMCIAIOSp /* PCMCIA 0 I/O Space [byte] */
  40. #define PCMCIA0AttrSp PCMCIAAttrSp /* PCMCIA 0 Attribute Space [byte] */
  41. #define PCMCIA0MemSp PCMCIAMemSp /* PCMCIA 0 Memory Space [byte] */
  42. #define PCMCIA1Sp PCMCIASp /* PCMCIA 1 Space [byte] */
  43. #define PCMCIA1IOSp PCMCIAIOSp /* PCMCIA 1 I/O Space [byte] */
  44. #define PCMCIA1AttrSp PCMCIAAttrSp /* PCMCIA 1 Attribute Space [byte] */
  45. #define PCMCIA1MemSp PCMCIAMemSp /* PCMCIA 1 Memory Space [byte] */
  46. #define _PCMCIA(Nb) /* PCMCIA [0..1] */ \
  47. (0x20000000 + (Nb)*PCMCIASp)
  48. #define _PCMCIAIO(Nb) _PCMCIA (Nb) /* PCMCIA I/O [0..1] */
  49. #define _PCMCIAAttr(Nb) /* PCMCIA Attribute [0..1] */ \
  50. (_PCMCIA (Nb) + 2*PCMCIAPrtSp)
  51. #define _PCMCIAMem(Nb) /* PCMCIA Memory [0..1] */ \
  52. (_PCMCIA (Nb) + 3*PCMCIAPrtSp)
  53. #define _PCMCIA0 _PCMCIA (0) /* PCMCIA 0 */
  54. #define _PCMCIA0IO _PCMCIAIO (0) /* PCMCIA 0 I/O */
  55. #define _PCMCIA0Attr _PCMCIAAttr (0) /* PCMCIA 0 Attribute */
  56. #define _PCMCIA0Mem _PCMCIAMem (0) /* PCMCIA 0 Memory */
  57. #define _PCMCIA1 _PCMCIA (1) /* PCMCIA 1 */
  58. #define _PCMCIA1IO _PCMCIAIO (1) /* PCMCIA 1 I/O */
  59. #define _PCMCIA1Attr _PCMCIAAttr (1) /* PCMCIA 1 Attribute */
  60. #define _PCMCIA1Mem _PCMCIAMem (1) /* PCMCIA 1 Memory */
  61. /*
  62. * Universal Serial Bus (USB) Device Controller (UDC) control registers
  63. *
  64. * Registers
  65. * Ser0UDCCR Serial port 0 Universal Serial Bus (USB) Device
  66. * Controller (UDC) Control Register (read/write).
  67. * Ser0UDCAR Serial port 0 Universal Serial Bus (USB) Device
  68. * Controller (UDC) Address Register (read/write).
  69. * Ser0UDCOMP Serial port 0 Universal Serial Bus (USB) Device
  70. * Controller (UDC) Output Maximum Packet size register
  71. * (read/write).
  72. * Ser0UDCIMP Serial port 0 Universal Serial Bus (USB) Device
  73. * Controller (UDC) Input Maximum Packet size register
  74. * (read/write).
  75. * Ser0UDCCS0 Serial port 0 Universal Serial Bus (USB) Device
  76. * Controller (UDC) Control/Status register end-point 0
  77. * (read/write).
  78. * Ser0UDCCS1 Serial port 0 Universal Serial Bus (USB) Device
  79. * Controller (UDC) Control/Status register end-point 1
  80. * (output, read/write).
  81. * Ser0UDCCS2 Serial port 0 Universal Serial Bus (USB) Device
  82. * Controller (UDC) Control/Status register end-point 2
  83. * (input, read/write).
  84. * Ser0UDCD0 Serial port 0 Universal Serial Bus (USB) Device
  85. * Controller (UDC) Data register end-point 0
  86. * (read/write).
  87. * Ser0UDCWC Serial port 0 Universal Serial Bus (USB) Device
  88. * Controller (UDC) Write Count register end-point 0
  89. * (read).
  90. * Ser0UDCDR Serial port 0 Universal Serial Bus (USB) Device
  91. * Controller (UDC) Data Register (read/write).
  92. * Ser0UDCSR Serial port 0 Universal Serial Bus (USB) Device
  93. * Controller (UDC) Status Register (read/write).
  94. */
  95. #define Ser0UDCCR __REG(0x80000000) /* Ser. port 0 UDC Control Reg. */
  96. #define Ser0UDCAR __REG(0x80000004) /* Ser. port 0 UDC Address Reg. */
  97. #define Ser0UDCOMP __REG(0x80000008) /* Ser. port 0 UDC Output Maximum Packet size reg. */
  98. #define Ser0UDCIMP __REG(0x8000000C) /* Ser. port 0 UDC Input Maximum Packet size reg. */
  99. #define Ser0UDCCS0 __REG(0x80000010) /* Ser. port 0 UDC Control/Status reg. end-point 0 */
  100. #define Ser0UDCCS1 __REG(0x80000014) /* Ser. port 0 UDC Control/Status reg. end-point 1 (output) */
  101. #define Ser0UDCCS2 __REG(0x80000018) /* Ser. port 0 UDC Control/Status reg. end-point 2 (input) */
  102. #define Ser0UDCD0 __REG(0x8000001C) /* Ser. port 0 UDC Data reg. end-point 0 */
  103. #define Ser0UDCWC __REG(0x80000020) /* Ser. port 0 UDC Write Count reg. end-point 0 */
  104. #define Ser0UDCDR __REG(0x80000028) /* Ser. port 0 UDC Data Reg. */
  105. #define Ser0UDCSR __REG(0x80000030) /* Ser. port 0 UDC Status Reg. */
  106. #define UDCCR_UDD 0x00000001 /* UDC Disable */
  107. #define UDCCR_UDA 0x00000002 /* UDC Active (read) */
  108. #define UDCCR_RESIM 0x00000004 /* Resume Interrupt Mask, per errata */
  109. #define UDCCR_EIM 0x00000008 /* End-point 0 Interrupt Mask */
  110. /* (disable) */
  111. #define UDCCR_RIM 0x00000010 /* Receive Interrupt Mask */
  112. /* (disable) */
  113. #define UDCCR_TIM 0x00000020 /* Transmit Interrupt Mask */
  114. /* (disable) */
  115. #define UDCCR_SRM 0x00000040 /* Suspend/Resume interrupt Mask */
  116. /* (disable) */
  117. #define UDCCR_SUSIM UDCCR_SRM /* Per errata, SRM just masks suspend */
  118. #define UDCCR_REM 0x00000080 /* REset interrupt Mask (disable) */
  119. #define UDCAR_ADD Fld (7, 0) /* function ADDress */
  120. #define UDCOMP_OUTMAXP Fld (8, 0) /* OUTput MAXimum Packet size - 1 */
  121. /* [byte] */
  122. #define UDCOMP_OutMaxPkt(Size) /* Output Maximum Packet size */ \
  123. /* [1..256 byte] */ \
  124. (((Size) - 1) << FShft (UDCOMP_OUTMAXP))
  125. #define UDCIMP_INMAXP Fld (8, 0) /* INput MAXimum Packet size - 1 */
  126. /* [byte] */
  127. #define UDCIMP_InMaxPkt(Size) /* Input Maximum Packet size */ \
  128. /* [1..256 byte] */ \
  129. (((Size) - 1) << FShft (UDCIMP_INMAXP))
  130. #define UDCCS0_OPR 0x00000001 /* Output Packet Ready (read) */
  131. #define UDCCS0_IPR 0x00000002 /* Input Packet Ready */
  132. #define UDCCS0_SST 0x00000004 /* Sent STall */
  133. #define UDCCS0_FST 0x00000008 /* Force STall */
  134. #define UDCCS0_DE 0x00000010 /* Data End */
  135. #define UDCCS0_SE 0x00000020 /* Setup End (read) */
  136. #define UDCCS0_SO 0x00000040 /* Serviced Output packet ready */
  137. /* (write) */
  138. #define UDCCS0_SSE 0x00000080 /* Serviced Setup End (write) */
  139. #define UDCCS1_RFS 0x00000001 /* Receive FIFO 12-bytes or more */
  140. /* Service request (read) */
  141. #define UDCCS1_RPC 0x00000002 /* Receive Packet Complete */
  142. #define UDCCS1_RPE 0x00000004 /* Receive Packet Error (read) */
  143. #define UDCCS1_SST 0x00000008 /* Sent STall */
  144. #define UDCCS1_FST 0x00000010 /* Force STall */
  145. #define UDCCS1_RNE 0x00000020 /* Receive FIFO Not Empty (read) */
  146. #define UDCCS2_TFS 0x00000001 /* Transmit FIFO 8-bytes or less */
  147. /* Service request (read) */
  148. #define UDCCS2_TPC 0x00000002 /* Transmit Packet Complete */
  149. #define UDCCS2_TPE 0x00000004 /* Transmit Packet Error (read) */
  150. #define UDCCS2_TUR 0x00000008 /* Transmit FIFO Under-Run */
  151. #define UDCCS2_SST 0x00000010 /* Sent STall */
  152. #define UDCCS2_FST 0x00000020 /* Force STall */
  153. #define UDCD0_DATA Fld (8, 0) /* receive/transmit DATA FIFOs */
  154. #define UDCWC_WC Fld (4, 0) /* Write Count */
  155. #define UDCDR_DATA Fld (8, 0) /* receive/transmit DATA FIFOs */
  156. #define UDCSR_EIR 0x00000001 /* End-point 0 Interrupt Request */
  157. #define UDCSR_RIR 0x00000002 /* Receive Interrupt Request */
  158. #define UDCSR_TIR 0x00000004 /* Transmit Interrupt Request */
  159. #define UDCSR_SUSIR 0x00000008 /* SUSpend Interrupt Request */
  160. #define UDCSR_RESIR 0x00000010 /* RESume Interrupt Request */
  161. #define UDCSR_RSTIR 0x00000020 /* ReSeT Interrupt Request */
  162. /*
  163. * Universal Asynchronous Receiver/Transmitter (UART) control registers
  164. *
  165. * Registers
  166. * Ser1UTCR0 Serial port 1 Universal Asynchronous
  167. * Receiver/Transmitter (UART) Control Register 0
  168. * (read/write).
  169. * Ser1UTCR1 Serial port 1 Universal Asynchronous
  170. * Receiver/Transmitter (UART) Control Register 1
  171. * (read/write).
  172. * Ser1UTCR2 Serial port 1 Universal Asynchronous
  173. * Receiver/Transmitter (UART) Control Register 2
  174. * (read/write).
  175. * Ser1UTCR3 Serial port 1 Universal Asynchronous
  176. * Receiver/Transmitter (UART) Control Register 3
  177. * (read/write).
  178. * Ser1UTDR Serial port 1 Universal Asynchronous
  179. * Receiver/Transmitter (UART) Data Register
  180. * (read/write).
  181. * Ser1UTSR0 Serial port 1 Universal Asynchronous
  182. * Receiver/Transmitter (UART) Status Register 0
  183. * (read/write).
  184. * Ser1UTSR1 Serial port 1 Universal Asynchronous
  185. * Receiver/Transmitter (UART) Status Register 1 (read).
  186. *
  187. * Ser2UTCR0 Serial port 2 Universal Asynchronous
  188. * Receiver/Transmitter (UART) Control Register 0
  189. * (read/write).
  190. * Ser2UTCR1 Serial port 2 Universal Asynchronous
  191. * Receiver/Transmitter (UART) Control Register 1
  192. * (read/write).
  193. * Ser2UTCR2 Serial port 2 Universal Asynchronous
  194. * Receiver/Transmitter (UART) Control Register 2
  195. * (read/write).
  196. * Ser2UTCR3 Serial port 2 Universal Asynchronous
  197. * Receiver/Transmitter (UART) Control Register 3
  198. * (read/write).
  199. * Ser2UTCR4 Serial port 2 Universal Asynchronous
  200. * Receiver/Transmitter (UART) Control Register 4
  201. * (read/write).
  202. * Ser2UTDR Serial port 2 Universal Asynchronous
  203. * Receiver/Transmitter (UART) Data Register
  204. * (read/write).
  205. * Ser2UTSR0 Serial port 2 Universal Asynchronous
  206. * Receiver/Transmitter (UART) Status Register 0
  207. * (read/write).
  208. * Ser2UTSR1 Serial port 2 Universal Asynchronous
  209. * Receiver/Transmitter (UART) Status Register 1 (read).
  210. *
  211. * Ser3UTCR0 Serial port 3 Universal Asynchronous
  212. * Receiver/Transmitter (UART) Control Register 0
  213. * (read/write).
  214. * Ser3UTCR1 Serial port 3 Universal Asynchronous
  215. * Receiver/Transmitter (UART) Control Register 1
  216. * (read/write).
  217. * Ser3UTCR2 Serial port 3 Universal Asynchronous
  218. * Receiver/Transmitter (UART) Control Register 2
  219. * (read/write).
  220. * Ser3UTCR3 Serial port 3 Universal Asynchronous
  221. * Receiver/Transmitter (UART) Control Register 3
  222. * (read/write).
  223. * Ser3UTDR Serial port 3 Universal Asynchronous
  224. * Receiver/Transmitter (UART) Data Register
  225. * (read/write).
  226. * Ser3UTSR0 Serial port 3 Universal Asynchronous
  227. * Receiver/Transmitter (UART) Status Register 0
  228. * (read/write).
  229. * Ser3UTSR1 Serial port 3 Universal Asynchronous
  230. * Receiver/Transmitter (UART) Status Register 1 (read).
  231. *
  232. * Clocks
  233. * fxtl, Txtl Frequency, period of the system crystal (3.6864 MHz
  234. * or 3.5795 MHz).
  235. * fua, Tua Frequency, period of the UART communication.
  236. */
  237. #define _UTCR0(Nb) __REG(0x80010000 + ((Nb) - 1)*0x00020000) /* UART Control Reg. 0 [1..3] */
  238. #define _UTCR1(Nb) __REG(0x80010004 + ((Nb) - 1)*0x00020000) /* UART Control Reg. 1 [1..3] */
  239. #define _UTCR2(Nb) __REG(0x80010008 + ((Nb) - 1)*0x00020000) /* UART Control Reg. 2 [1..3] */
  240. #define _UTCR3(Nb) __REG(0x8001000C + ((Nb) - 1)*0x00020000) /* UART Control Reg. 3 [1..3] */
  241. #define _UTCR4(Nb) __REG(0x80010010 + ((Nb) - 1)*0x00020000) /* UART Control Reg. 4 [2] */
  242. #define _UTDR(Nb) __REG(0x80010014 + ((Nb) - 1)*0x00020000) /* UART Data Reg. [1..3] */