nvr4101.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:11k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* nvr4101.h - NEC NVR4101 header file */
  2. /* Copyright 1984-1997 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,11jun97,sru  written.
  7. */
  8. /*
  9. This file contains constants for the NEC V4R4101.  Register address
  10. definitions for the various subsystems are provided, and some (but
  11. not all) register field definitions are provided.
  12. */
  13. #ifndef __INCnvr4101h
  14. #define __INCnvr4101h
  15. #include "vxWorks.h"
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. #define VR4101_ISA_IO8_BASE_ADRS    PHYS_TO_K1(0x16000000)
  20. #define VR4101_ISA_IO16_BASE_ADRS   PHYS_TO_K1(0x17000000)
  21. #define VR4101_ISA_MEM8_BASE_ADRS   PHYS_TO_K1(0x14000000)
  22. #define VR4101_ISA_MEM16_BASE_ADRS  PHYS_TO_K1(0x15000000)
  23. /* interrupt bits in the status register */
  24. #define VR4101_SR_ICU_INTERVAL_TIMER  (1 << 11)
  25. #define VR4101_SR_ICU_OTHER       (1 << 10)
  26. /* VR4101 register definitions. */
  27. #define VR4101_REG_BASE   (0x0b000000 | K1BASE)
  28. #ifdef _ASMLANGUAGE
  29. #define VR4101_ADRS(reg)   (VR4101_REG_BASE + (reg))
  30. #else
  31. #define VR4101_ADRS(reg)   ((volatile UINT16 *)(VR4101_REG_BASE + (reg)))
  32. #endif /* _ASMLANGUAGE */
  33. /* BCU registers */
  34. #define VR4101_BCUCNTREG VR4101_ADRS(0x00)
  35. #define VR4101_BCUBRREG VR4101_ADRS(0x02)
  36. #define VR4101_BCUBRCNTREG VR4101_ADRS(0x04)
  37. #define VR4101_BCUBCLREG VR4101_ADRS(0x06)
  38. #define VR4101_BCUBCLCNTREG VR4101_ADRS(0x08)
  39. #define VR4101_BCUSPEEDREG VR4101_ADRS(0x0a)
  40. #define VR4101_BCUERRSTREG VR4101_ADRS(0x0c)
  41. #define VR4101_BCUSRFCNT VR4101_ADRS(0x0e)
  42. #define VR4101_PREVIDREG VR4101_ADRS(0x10)
  43. /* BCUCNTREG bit definitions */
  44. #define VR4101_REF1K (1 << 7)
  45. #define VR4101_PAGEROM (1 << 6)
  46. #define VR4101_ROMWEN (1 << 5)
  47. #define VR4101_SRFSTAT (1 << 4)
  48. #define VR4101_BCPUREN (1 << 3)
  49. #define VR4101_RSTOUT (1 << 0)
  50. /* DMAAU registers */
  51. #define VR4101_PADDMAADRLREG VR4101_ADRS(0x20)
  52. #define VR4101_PADDMAADRHREG VR4101_ADRS(0x22)
  53. #define VR4101_SRXDMAADRLREG VR4101_ADRS(0x24)
  54. #define VR4101_SRXDMAADRHREG VR4101_ADRS(0x26)
  55. #define VR4101_STXDMAADRLREG VR4101_ADRS(0x28)
  56. #define VR4101_STXDMAADRHREG VR4101_ADRS(0x2a)
  57. #define VR4101_AUDIODMAADRLREG VR4101_ADRS(0x2c)
  58. #define VR4101_AUDIODMAADRHREG VR4101_ADRS(0x2e)
  59. #define VR4101_KEYDMAADRLREG VR4101_ADRS(0x30)
  60. #define VR4101_KEYDMAADRHREG VR4101_ADRS(0x32)
  61. /* DCU registers */
  62. #define VR4101_DMARSTREG VR4101_ADRS(0x40)
  63. #define VR4101_DMAIDLEREG VR4101_ADRS(0x42)
  64. #define VR4101_DMASENREG VR4101_ADRS(0x44)
  65. #define VR4101_DMAMSKREG VR4101_ADRS(0x46)
  66. #define VR4101_DMAREQREG VR4101_ADRS(0x48)
  67. /* DMA mask bit definitions */
  68. #define  VR4101_DMAMSKKIU (1 << 4)
  69. #define  VR4101_DMAMSKADU (1 << 3)
  70. #define  VR4101_DMAMSKSTX (1 << 2)
  71. #define  VR4101_DMAMSKSRX (1 << 1)
  72. #define  VR4101_DMAMSKPIU (1 << 0)
  73. /* CMU register */
  74. #define VR4101_CMUCLKMSK VR4101_ADRS(0x60)
  75. #define  VR4101_MSKRTC (1 << 6)
  76. #define  VR4101_MSKDSIU (1 << 5)
  77. #define  VR4101_MSKGIU (1 << 4)
  78. #define  VR4101_MSKKIU (1 << 3)
  79. #define  VR4101_MSKADU (1 << 2)
  80. #define  VR4101_MSKSIU (1 << 1)
  81. #define  VR4101_MSKPIU (1 << 0)
  82. /* ICU system and system mask registers */
  83. #define VR4101_ICU_SYSINTREG   VR4101_ADRS(0x80)
  84. #define VR4101_ICU_MSYSINTREG VR4101_ADRS(0x8c)
  85. #define  VR4101_DOZEPIUINTR (1 << 13)
  86. #define  VR4101_DOZEKIUINTR (1 << 12)
  87. #define  VR4101_SOFTINTR (1 << 11)
  88. #define  VR4101_WRBERRINTR (1 << 10)
  89. #define  VR4101_SIUINTR (1 << 9)
  90. #define  VR4101_GIUINTR (1 << 8)
  91. #define  VR4101_KIUINTR (1 << 7)
  92. #define  VR4101_ADUINTR (1 << 6)
  93. #define  VR4101_PIUINTR (1 << 5)
  94. #define  VR4101_PCMCIAINTR (1 << 4)
  95. #define  VR4101_ETIMERINTR (1 << 3)
  96. #define  VR4101_RTCLINTR (1 << 2)
  97. #define  VR4101_POWERINTR (1 << 1)
  98. #define  VR4101_BATINTR (1 << 0)
  99. /* ICU subsystem status and mask registers */
  100. #define VR4101_ICU_PIUINTREG VR4101_ADRS(0x82)
  101. #define VR4101_ICU_ADUINTREG VR4101_ADRS(0x84)
  102. #define VR4101_ICU_KIUINTREG VR4101_ADRS(0x86)
  103. #define VR4101_ICU_GIUINTREG VR4101_ADRS(0x88)
  104. #define VR4101_ICU_SIUINTREG VR4101_ADRS(0x8a)
  105. #define VR4101_ICU_MPIUINTREG VR4101_ADRS(0x8e)
  106. #define VR4101_ICU_MADUINTREG VR4101_ADRS(0x90)
  107. #define VR4101_ICU_MKIUINTREG VR4101_ADRS(0x92)
  108. #define VR4101_ICU_MGIUINTREG VR4101_ADRS(0x94)
  109. #define VR4101_ICU_MSIUINTREG VR4101_ADRS(0x96)
  110. #define VR4101_ICU_NMIREG VR4101_ADRS(0x98)
  111. #define VR4101_ICU_SOFTINTREG VR4101_ADRS(0x9a)
  112. /* ICU subsystem SIU mask register bit definitions */
  113. #define  VR4101_ICU_SIU_INTSER0 (1 << 13)
  114. #define  VR4101_ICU_SIU_INTSR0 (1 << 12)
  115. #define  VR4101_ICU_SIU_INTST0 (1 << 11)
  116. #define  VR4101_ICU_SIU_BR (1 << 10)
  117. #define  VR4101_ICU_SIU_FE (1 << 9)
  118. #define  VR4101_ICU_SIU_DCD (1 << 8)
  119. #define  VR4101_ICU_SIU_DSR (1 << 7)
  120. #define  VR4101_ICU_SIU_CTS (1 << 6)
  121. #define  VR4101_ICU_SIU_RXL (1 << 5)
  122. #define  VR4101_ICU_SIU_RXG (1 << 4)
  123. #define  VR4101_ICU_SIU_RXE (1 << 3)
  124. #define  VR4101_ICU_SIU_RXI (1 << 2)
  125. #define  VR4101_ICU_SIU_TXE (1 << 1)
  126. #define  VR4101_ICU_SIU_TXI (1 << 0)
  127. /* PMU registers */
  128. #define VR4101_PMUINTREG VR4101_ADRS(0xa0)
  129. #define VR4101_PMUCNTREG VR4101_ADRS(0xa2)
  130. #define   VR4101_HALTIMERRST (1 << 2)
  131. /* RTC registers */
  132. #define VR4101_ETIMELREG VR4101_ADRS(0xc4)
  133. #define VR4101_ETIMEMREG VR4101_ADRS(0xc6)
  134. #define VR4101_ETIMEHREG VR4101_ADRS(0xc8)
  135. #define VR4101_ECMPHREG VR4101_ADRS(0xca)
  136. #define VR4101_ECMPLREG VR4101_ADRS(0xcc)
  137. #define VR4101_ECMPMREG VR4101_ADRS(0xce)
  138. #define VR4101_RTCLLREG VR4101_ADRS(0xd0)
  139. #define VR4101_RTCLHREG VR4101_ADRS(0xd2)
  140. #define VR4101_RTCLCNTLREG VR4101_ADRS(0xd4)
  141. #define VR4101_RTCLCNTHREG VR4101_ADRS(0xd6)
  142. #define VR4101_TCLKCNTLREG VR4101_ADRS(0xd8)
  143. #define VR4101_TCLKCNTHREG VR4101_ADRS(0xda)
  144. #define VR4101_RTCINTREG VR4101_ADRS(0xdc)
  145. #define  VR4101_RTC_RTCINTR0 (1 << 0)
  146. #define  VR4101_RTC_RTCINTR1 (1 << 1)
  147. /* DSU registers */
  148. #define VR4101_DSUCNTREG VR4101_ADRS(0xe0)
  149. #define VR4101_DSUSETREG VR4101_ADRS(0xe2)
  150. #define VR4101_DSUCLRREG VR4101_ADRS(0xe4)
  151. #define VR4101_DSUTIMREG VR4101_ADRS(0xe6)
  152. #define VR4101_DSULOADREG VR4101_ADRS(0xe8)
  153. /* GIU registers */
  154. #define VR4101_GOUTENREG VR4101_ADRS(0x100)
  155. #define VR4101_GPOTDATREG VR4101_ADRS(0x102)
  156. #define VR4101_GINTSTREG VR4101_ADRS(0x104)
  157. #define VR4101_GINTENREG VR4101_ADRS(0x106)
  158. #define VR4101_GCINTSREG VR4101_ADRS(0x108)
  159. #define VR4101_GLINTSREG VR4101_ADRS(0x10a)
  160. /* The general-purpose I/O pins (GPIO) are enabled and controlled
  161.    via identically placed bits in the GIU registers and some of the 
  162.    ICU registers. This set of pin masks can be used with whichever 
  163.    registers contain GPIO pin configuration. */
  164. #define  VR4101_GPIO_PIN_12 (1 << 12)
  165. #define  VR4101_GPIO_PIN_11 (1 << 11)
  166. #define  VR4101_GPIO_PIN_10 (1 << 10)
  167. #define  VR4101_GPIO_PIN_9 (1 << 9)
  168. #define  VR4101_GPIO_PIN_8 (1 << 8)
  169. #define  VR4101_GPIO_PIN_7 (1 << 7)
  170. #define  VR4101_GPIO_PIN_6 (1 << 6)
  171. #define  VR4101_GPIO_PIN_5 (1 << 5)
  172. #define  VR4101_GPIO_PIN_4 (1 << 4)
  173. #define  VR4101_GPIO_PIN_3 (1 << 3)
  174. #define  VR4101_GPIO_PIN_2 (1 << 2)
  175. #define  VR4101_GPIO_PIN_1 (1 << 1)
  176. #define  VR4101_GPIO_PIN_0 (1 << 0)
  177. /* PIU registers */
  178. #define VR4101_PIUDATAREG VR4101_ADRS(0x120)
  179. #define VR4101_PIUCNTREG VR4101_ADRS(0x122)
  180. #define VR4101_PIUINTREG VR4101_ADRS(0x124)
  181. #define VR4101_PIUSIVLREG VR4101_ADRS(0x126)
  182. #define VR4101_PIUSTBLREG VR4101_ADRS(0x128)
  183. #define VR4101_PIUCMDREG VR4101_ADRS(0x12a)
  184. #define VR4101_PIUCIVLREG VR4101_ADRS(0x13e)
  185. /* SIU registers */
  186. #define VR4101_SIURXDATREG VR4101_ADRS(0x140)
  187. #define VR4101_SIUTXDATREG VR4101_ADRS(0x142)
  188. #define VR4101_SIUCNTREG VR4101_ADRS(0x144)
  189. #define VR4101_SIUDLENGTHREG VR4101_ADRS(0x146)
  190. #define VR4101_SIUINTREG VR4101_ADRS(0x148)
  191. #define VR4101_SIURS232CREG VR4101_ADRS(0x14a)
  192. #define VR4101_SIUBAUDSELREG VR4101_ADRS(0x14c)
  193. /* VR4101_SIUCNTREG definitions */
  194. #define VR4101_SIU_RSP (1 << 12)
  195. #define VR4101_SIU_TSP (1 << 11)
  196. #define VR4101_SIU_RVD (1 << 9)
  197. #define VR4101_SIU_TST (1 << 8)
  198. #define VR4101_SIU_TVD (1 << 7)
  199. #define VR4101_SIU_RSE (1 << 6)
  200. #define VR4101_SIU_IME (1 << 5)
  201. #define VR4101_SIU_IRDA_MODE (1 << 3)
  202. #define VR4101_SIU_RS232_MODE (0 << 3)
  203. #define VR4101_SIU_RXE (1 << 2)
  204. #define VR4101_SIU_TXE (1 << 1)
  205. #define VR4101_SIU_SRST (1 << 0)
  206. /* VR4101_SIUDLENGTHREG definitions */
  207. #define  VR4101_SIU_STOP_BITS_1 (0 << 8)
  208. #define  VR4101_SIU_STOP_BITS_2 (1 << 8)
  209. #define  VR4101_SIU_TX_CHAR_WIDTH_SHIFT (0)
  210. #define  VR4101_SIU_RX_CHAR_WIDTH_SHIFT (4)
  211. /* VR4101_SIURS232CREG definitions */
  212. #define  VR4101_SIU_DTR (1 << 1)
  213. #define  VR4101_SIU_RTS (1 << 0)
  214. /* AIU registers */
  215. #define VR4101_AIUDATREG VR4101_ADRS(0x162)
  216. #define VR4101_AIURESETREG VR4101_ADRS(0x164)
  217. #define VR4101_AIUMODEREG VR4101_ADRS(0x166)
  218. #define VR4101_AIUSEQENREG VR4101_ADRS(0x168)
  219. #define VR4101_AIUMUTEREG VR4101_ADRS(0x16a)
  220. #define VR4101_AIUSTATREG VR4101_ADRS(0x16c)
  221. #define VR4101_AIUSTPPAGEREG VR4101_ADRS(0x16e)
  222. #define VR4101_AIUVALIDREG VR4101_ADRS(0x170)
  223. #define VR4101_AIUINTRREG VR4101_ADRS(0x172)
  224. #define VR4101_AIUCOUNT0REG VR4101_ADRS(0x174)
  225. #define VR4101_AIUCOUNT1REG VR4101_ADRS(0x176)
  226. #define VR4101_AIUREPNUMREG VR4101_ADRS(0x178)
  227. #define VR4101_AIUBUSENREG VR4101_ADRS(0x17a)
  228. /* KIU registers */
  229. #define VR4101_KIUDATREG VR4101_ADRS(0x180)
  230. #define VR4101_KIUASCANREG VR4101_ADRS(0x184)
  231. #define VR4101_KIUASTOPREG VR4101_ADRS(0x186)
  232. #define VR4101_KIUSCANREG VR4101_ADRS(0x188)
  233. #define VR4101_KIUSTOPREG VR4101_ADRS(0x18a)
  234. #define VR4101_KIUSAPREG VR4101_ADRS(0x18c)
  235. #define VR4101_KIUSCANSREG VR4101_ADRS(0x18e)
  236. #define VR4101_KIUWKSREG VR4101_ADRS(0x190)
  237. #define VR4101_KIUWKIREG VR4101_ADRS(0x192)
  238. #define VR4101_KIUSRNREG VR4101_ADRS(0x194)
  239. #define VR4101_KIUINTREG VR4101_ADRS(0x196)
  240. #define VR4101_KIURSTREG VR4101_ADRS(0x198)
  241. #define VR4101_KIUENREG VR4101_ADRS(0x19a)
  242. #define VR4101_DOZEKEYINTREG VR4101_ADRS(0x19c)
  243. #define VR4101_EVVOLREG VR4101_ADRS(0x19e)
  244. /* Debug SIU registers */
  245. #define VR4101_ASIM00REG VR4101_ADRS(0x1a4)
  246. #define VR4101_ASIM01REG VR4101_ADRS(0x1a6)
  247. #define VR4101_RXB0RREG VR4101_ADRS(0x1a8)
  248. #define VR4101_RXB0LREG VR4101_ADRS(0x1aa)
  249. #define VR4101_RXS0RREG VR4101_ADRS(0x1ac)
  250. #define VR4101_TXS0LREG VR4101_ADRS(0x1ae)
  251. #define VR4101_ASIS0REG VR4101_ADRS(0x1b0)
  252. #define VR4101_INTR0REG VR4101_ADRS(0x1b2)
  253. #define VR4101_BPRM0REG VR4101_ADRS(0x1b6)
  254. #define VR4101_DSIURESETREG VR4101_ADRS(0x1b8)
  255. /* DSIU subsystem DSIURESETREG bit definitions */
  256. #define VR4101_DSIURST (1 << 0)
  257. /* DSIU subsystem ASIM00REG register bit definitions */
  258. #define VR4101_ASIM00REG_RESERVED  (1 << 7)
  259. #define VR4101_RXE0    (1 << 6)
  260. #define VR4101_DSIU_PAR_SHIFT    4
  261. #define VR4101_DSIU_PAR_EVEN    (3 << VR4101_DSIU_PAR_SHIFT)
  262. #define VR4101_DSIU_PAR_ODD    (2 << VR4101_DSIU_PAR_SHIFT)
  263. #define VR4101_DSIU_PAR_ZERO    (1 << VR4101_DSIU_PAR_SHIFT)
  264. #define VR4101_DSIU_PAR_EXTEND    (0 << VR4101_DSIU_PAR_SHIFT)
  265. #define VR4101_DSIU_CHARLEN_8    (1 << 3)
  266. #define VR4101_DSIU_CHARLEN_7    (0 << 3)
  267. #define VR4101_DSIU_STOPBITS_2    (1 << 2)
  268. #define VR4101_DSIU_STOPBITS_1    (1 << 2)
  269. /* DSIU subsystem BPRM0REG register bit definitions */
  270. #define VR4101_BRCE0    (1 << 7)
  271. /* DSIU subsystem INTR0REG register bit definitions */
  272. #define VR4101_INTSER0    (1 << 2)
  273. #define VR4101_INTSR0    (1 << 1)
  274. #define VR4101_INTST0    (1 << 0)
  275. /* DSIU subsystem ASIS0REG register bit definitions */
  276. #define VR4101_SOT0    (1 << 7)
  277. #define VR4101_PE0    (1 << 2)
  278. #define VR4101_FE0    (1 << 1)
  279. #define VR4101_OVE0    (1 << 0)
  280. #ifdef __cplusplus
  281. }
  282. #endif
  283. #endif /* __INCnvr4101h */