r3912.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:29k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. /*++
  2. Copyright (c) 1996-2000 Microsoft Corporation.  All rights reserved.
  3. Module Name:
  4.     r3912.h
  5. Abstract:
  6.     I/O definition for R3912 processor internal registers.
  7. Environment:
  8.     Kernel mode (unmapped) only
  9. History:
  10. Note:
  11.    SHx base, MIPS R4100 base not supported.
  12.  --*/
  13. #ifndef _R3912_H_
  14. #define _R3912_H_
  15. /* Defines for Reference Platform control registers */
  16. #define R3912_SYSTEM_ASIC_REGS_BASE 0xb0c00000 // for kseg1
  17. #define R3912_PHYSICAL_ADDR_OFFSET  0x10c00000
  18. #define R3912_REGS_SIZE                 0x200
  19. /*
  20.    BIU Register
  21. */
  22. #define OFF_BIU_MEM_CONFIG0 0x000
  23. #define BIU_ENDCLKOUTTRI (1 << 30)
  24. #define BIU_DISDQMINIT (1 << 29)
  25. #define BIU_ENSDRAMPD (1 << 28)
  26. #define BIU_SHOWDINO (1 << 27)
  27. #define BIU_ENRMAP2 (1 << 26)
  28. #define BIU_ENRMAP1 (1 << 25)
  29. #define BIU_ENWRINPAGE (1 << 24)
  30. #define BIU_ENCS3USER (1 << 23)
  31. #define BIU_ENCS2USER (1 << 22)
  32. #define BIU_ENCS1USER (1 << 21)
  33. #define BIU_ENCS1DRAM (1 << 20)
  34. #define BIU_BANK1CONFMASK (3 << 18)
  35. #define BIU_BANK1CONF_16SDRAM (3 << 18) /* Bank 1 as 16 bit SDRAM */
  36. #define BIU_BANK1CONF_8SDRAM (2 << 18) /* Bank 1 as 8 bit SDRAM */
  37. #define BIU_BANK1CONF_32DRAM (1 << 18) /* Bank 1 as 32 bit DRAM/HDRAM */
  38. #define BIU_BANK1CONF_16DRAM (0 << 18) /* Bank 1 as 16 bit DRAM/HDRAM */
  39. #define BIU_BANK0CONFMASK (3 << 16)
  40. #define BIU_BANK0CONF_16SDRAM (3 << 16) /* Bank 1 as 16 bit SDRAM */
  41. #define BIU_BANK0CONF_8SDRAM (2 << 16) /* Bank 1 as 8 bit SDRAM */
  42. #define BIU_BANK0CONF_32DRAM (1 << 16) /* Bank 1 as 32 bit DRAM/HDRAM */
  43. #define BIU_BANK0CONF_16DRAM (0 << 16) /* Bank 1 as 16 bit DRAM/HDRAM */
  44. #define BIU_ROWSEL1MASK (3 << 14)
  45. #define BIU_ROWSEL1_TYPE1 (0 << 14) /* Row Address 18, 17:9 */
  46. #define BIU_ROWSEL1_TYPE2 (1 << 14) /* Row Address 22,18,20,19,17:9 */
  47. #define BIU_ROWSEL1_TYPE3 (2 << 14) /* Row Address 22,21,19,17:9 */
  48. #define BIU_ROWSEL1_TYPE4 (3 << 14) /* Row Address 23,21,19,17:9 */
  49. #define BIU_ROWSEL0MASK (3 << 12)
  50. #define BIU_ROWSEL0_TYPE1 (0 << 12) /* Row Address 18, 17:9 */
  51. #define BIU_ROWSEL0_TYPE2 (1 << 12) /* Row Address 22,18,20,19,17:9 */
  52. #define BIU_ROWSEL0_TYPE3 (2 << 12) /* Row Address 22,21,19,17:9 */
  53. #define BIU_ROWSEL0_TYPE4 (3 << 12) /* Row Address 23,21,19,17:9 */
  54. #define BIU_COLSEL1MASK (0xf << 8)
  55. #define BIU_COLSEL1_TYPE1 (0 << 8) /* Column Address 22,20,18,8:1 */
  56. #define BIU_COLSEL1_TYPE2 (1 << 8) /* Column Address 19,18,8:2 */
  57. #define BIU_COLSEL1_TYPE3 (2 << 8) /* Column Address 21,20,8:2 */
  58. #define BIU_COLSEL1_TYPE4 (3 << 8) /* Column Address 23,22,20,18,8:2 */
  59. #define BIU_COLSEL1_TYPE5 (4 << 8) /* Column Address 24,22,20,18,8:2 */
  60. #define BIU_COLSEL1_TYPE6 (5 << 8) /* Column Address 18,p,X,8:0 */
  61. #define BIU_COLSEL1_TYPE7 (6 << 8) /* Column Address 22,p,X,21,8:1 */
  62. #define BIU_COLSEL1_TYPE8 (7 << 8) /* Column Address 18,p,X,21,8:1 */
  63. #define BIU_COLSEL1_TYPE9 (8 << 8) /* Column Address 22,p,X,23,21,8:2 */
  64. #define BUI_COLSEL1_TYPE10 (9 << 8) /* Column Address 21,8:2 */
  65. #define BIU_COLSEL0MASK (0xf << 4)
  66. #define BIU_COLSEL0_TYPE1 (0 << 4) /* Column Address 22,20,18,8:1 */
  67. #define BIU_COLSEL0_TYPE2 (1 << 4) /* Column Address 19,18,8:2 */
  68. #define BIU_COLSEL0_TYPE3 (2 << 4) /* Column Address 21,20,8:2 */
  69. #define BIU_COLSEL0_TYPE4 (3 << 4) /* Column Address 23,22,20,18,8:2 */
  70. #define BIU_COLSEL0_TYPE5 (4 << 4) /* Column Address 24,22,20,18,8:2 */
  71. #define BIU_COLSEL0_TYPE6 (5 << 4) /* Column Address 18,p,X,8:0 */
  72. #define BIU_COLSEL0_TYPE7 (6 << 4) /* Column Address 22,p,X,21,8:1 */
  73. #define BIU_COLSEL0_TYPE8 (7 << 4) /* Column Address 18,p,X,21,8:1 */
  74. #define BIU_COLSEL0_TYPE9 (8 << 4) /* Column Address 22,p,X,23,21,8:2 */
  75. #define BIU_COLSEL0_TYPE10 (9 << 4) /* Column Address 21,8:2 */
  76. #define BIU_CS3SIZE (1 << 3)
  77. #define BIU_CS2SIZE (1 << 2)
  78. #define BIU_CS1SIZE (1 << 1)
  79. #define BIU_CS0SIZE 1
  80. #define OFF_BIU_MEM_CONFIG1 0x0004
  81. #define BIU_MCS3ACCVAL1MASK (0xf << 28)
  82. #define BIU_MCS3ACCVAL1(a) (((a) << 28) & BIU_MCS3ACCVAL1MASK)
  83. #define BIU_MCS3ACCVAL2MASK (0xf << 24)
  84. #define BIU_MCS3ACCVAL2(a) (((a) << 24) & BIU_MCS3ACCVAL2MASK)
  85. #define BIU_MCS2ACCVAL1MASK (0xf << 20)
  86. #define BIU_MCS2ACCVAL1(a) (((a) << 20) & BIU_MCS3ACCVAL1MASK)
  87. #define BIU_MCS2ACCVAL2MASK (0xf << 16)
  88. #define BIU_MCS2ACCVAL2(a) (((a) << 16) & BIU_MCS2ACCVAL2MASK)
  89. #define BIU_MCS1ACCVAL1MASK (0xf << 12)
  90. #define BIU_MCS1ACCVAL1(a) (((a) << 12) & BIU_MCS1ACCVAL1MASK)
  91. #define BIU_MCS1ACCVAL2MASK (0xf << 8)
  92. #define BIU_MCS1ACCVAL2(a) (((a) << 8) & BIU_MCS1ACCVAL2MASK)
  93. #define BIU_MCS0ACCVAL1MASK (0xf << 4)
  94. #define BIU_MCS0ACCVAL1(a) (((a) << 4) & BIU_MCS0ACCVAL1MASK)
  95. #define BIU_MCS0ACCVAL2MASK 0xf
  96. #define BIU_MCS0ACCVAL2(a) ((a) & BIU_MCS0ACCVAL2MASK)
  97. #define OFF_BIU_MEM_CONFIG2 0x0008
  98. #define BIU_CS3ACCVAL1MASK (0xf << 28)
  99. #define BIU_CS3ACCVAL1(a) (((a) << 28) & BIU_CS3ACCVAL1MASK)
  100. #define BIU_CS3ACCVAL2MASK (0xf << 24)
  101. #define BIU_CS3ACCVAL2(a) (((a) << 24) & BIU_CS3ACCVAL2MASK)
  102. #define BIU_CS2ACCVAL1MASK (0xf << 20)
  103. #define BIU_CS2ACCVAL1(a) (((a) << 20) & BIU_CS3ACCVAL1MASK)
  104. #define BIU_CS2ACCVAL2MASK (0xf << 16)
  105. #define BIU_CS2ACCVAL2(a) (((a) << 16) & BIU_CS2ACCVAL2MASK)
  106. #define BIU_CS1ACCVAL1MASK (0xf << 12)
  107. #define BIU_CS1ACCVAL1(a) (((a) << 12) & BIU_CS1ACCVAL1MASK)
  108. #define BIU_CS1ACCVAL2MASK (0xf << 8)
  109. #define BIU_CS1ACCVAL2(a) (((a) << 8) & BIU_CS1ACCVAL2MASK)
  110. #define BIU_CS0ACCVAL1MASK (0xf << 4)
  111. #define BIU_CS0ACCVAL1(a) (((a) << 4) & BIU_CS0ACCVAL1MASK)
  112. #define BIU_CS0ACCVAL2MASK 0xf
  113. #define BIU_CS0ACCVAL2(a) ((a) & BIU_CS0ACCVAL2MASK)
  114. #define OFF_BIU_MEM_CONFIG3 0x00c
  115. #define BIU_CARD2ACCVALMASK (0xf << 28)
  116. #define BIU_CARD2ACCVAL(a) (((a) << 28) & BIU_CARD2ACCVALMASK)
  117. #define BIU_CARD1ACCVALMASK (0xf << 24)
  118. #define BIU_CARD1ACCVAL(a) (((a) << 24) & BIU_CARD1ACCVALMASK)
  119. #define BIU_CARD2IOACCVALMASK (0xf << 20)
  120. #define BIU_CARD2IOACCVAL(a) (((a) << 20) & BIU_CARD2IOACCVALMASK)
  121. #define BIU_CARD1IOACCVALMASK (0xf << 16)
  122. #define BIU_CARD1IOACCVAL(a) (((a) << 16) & BIU_CARD1IOACCVALMASK)
  123. #define BIU_ENMCS3PAGE (1 << 15)
  124. #define BIU_ENMCS2PAGE (1 << 14)
  125. #define BIU_ENMCS1PAGE (1 << 13)
  126. #define BIU_ENMCS0PAGE (1 << 12)
  127. #define BIU_ENCS3PAGE (1 << 11)
  128. #define BIU_ENCS2PAGE (1 << 10)
  129. #define BIU_ENCS1PAGE (1 << 9)
  130. #define BIU_ENCS0PAGE (1 << 8)
  131. #define BIU_CARD2WAITEN (1 << 7)
  132. #define BIU_CARD1WAITEN (1 << 6)
  133. #define BIU_CARD2IOEN (1 << 5)
  134. #define BIU_CARD1IOEN (1 << 4)
  135. #define BIU_PORT8SEL (1 << 3)
  136. #define OFF_BIU_MEM_CONFIG4 0x010
  137. #define BIU_ENBANK1HDRAM (1 << 31)
  138. #define BIU_ENBANK0HDRAM (1 << 30)
  139. #define BIU_ENARB (1 << 29)
  140. #define BIU_DISSNOP (1 << 28)
  141. #define BIU_CLRWRBUSERRINT (1 << 27)
  142. #define BIU_ENBANK1OPT (1 << 26)
  143. #define BIU_ENBANK0OPT (1 << 25)
  144. #define BIU_ENWATCH (1 << 24)
  145. #define BIU_WATCHTIMEVALMASK (0xf << 20)
  146. #define BIU_WATCHTIMEVAL(a) (((a) << 20) & BIU_WATCHTIMEVALMASK)
  147. #define BIU_MEMPOWERDOWN (1 << 16)
  148. #define BIU_ENRFSH1 (1 << 15)
  149. #define BIU_ENRFSH0 (1 << 14)
  150. #define BIU_RFSHVAL1MASK (0x1f << 8)
  151. #define BIU_RFSHVAL1(a) (((a) << 8) & BIU_RFSHVAL1MASK)
  152. #define BIU_RFSHVAL2MASK 0x1f
  153. #define BIU_RFSHVAL2(a) ((a) & BIU_RFSHVAL2MASK)
  154. #define OFF_BIU_MEM_CONFIG5 0x014
  155. #define BIU_STARTVAL2MASK 0xfffffe00
  156. #define BIU_MASK2 0x0000000f
  157. #define OFF_BIU_MEM_CONFIG6 0x018
  158. #define BIU_STARTVAL1MASK 0xfffffe00
  159. #define BIU_MASK1 0x0000000f
  160. #define OFF_BIU_MEM_CONFIG7 0x01c
  161. #define BIU_RMAPADD2MASK 0xfffffe00
  162. #define OFF_BIU_MEM_CONFIG8 0x020
  163. #define BIU_RMAPADD1MASK 0xfffffe00
  164. /*
  165.    SIU Module
  166. */
  167. #ifdef INTERNAL_TEST
  168. #define OFF_SIU_TEST 0x1c8
  169. #define SIU_ENDMATEST (1 << 7)
  170. #define SIU_ENNOTIMETEST (1 << 6)
  171. #define SIU_DMATESTWRMASK (0x3f)
  172. #endif /* INTERNAL_TEST */
  173. /*
  174.   R3912 Clock Module 
  175. */
  176. #define OFF_CLOCK_CTL 0x1c0
  177. #define CLOCK_CHICLKDIVMASK 0xff000000
  178. #define CLOCK_CHICLKDIV(a) ((a) << 24)
  179. #define CLOCK_ENCLKTEST (1 << 23)
  180. #define CLOCK_TESTSELSIB (1 << 22)
  181. #define CLOCK_CHIMCLKSEL (1 << 21)
  182. #define CLOCK_CHICLKDIR (1 << 20)
  183. #define CLOCK_ENCHIMCLK (1 << 19)
  184. #define CLOCK_ENVIDCLK (1 << 18)
  185. #define CLOCK_ENMSUBCLK (1 << 17)
  186. #define CLOCK_ENSPICLK (1 << 16)
  187. #define CLOCK_ENTIMERCLK (1 << 15)
  188. #ifdef INTERNAL_TEST
  189. #define CLOCK_FASTTIMERCLK (1 << 14)
  190. #endif /* INTERNAL_TEST */
  191. #define CLOCK_SIBMCLKDIR (1 << 13)
  192. #define CLOCK_ENSIBMCLK (1 << 11)
  193. #define CLOCK_SIBMCLKDIVMASK 0x00000700
  194. #define CLOCK_SIBMCLKDIV(a) (((a) << 8) & CLOCK_SIBMCLKDIVMASK)
  195. #define CLOCK_ENCSERSEL (1 << 7)
  196. #define CLOCK_CSERDIVMASK 0x00000070
  197. #define CLOCK_CSERDIV(a) (((a) << 4) & CLOCK_CSERDIVMASK)
  198. #define CLOCK_ENCSERCLK (1 << 3)
  199. #define CLOCK_ENIRCLK (1 << 2)
  200. #define CLOCK_ENUARTACLK (1 << 1)
  201. #define CLOCK_ENUARTBCLK 1
  202. /*
  203.    CHI Module
  204. */
  205. #define OFF_CHI_CTL 0x1d8
  206. #define CHI_CHILOOP (1 << 29)
  207. #ifdef INTERNAL_TEST
  208. #define CHI_CHIENTEST (1 << 28)
  209. #endif /* INTERNAL_TEST */
  210. #define CHI_CHIFSDIR (1 << 27)
  211. #define CHI_CHIFSWIDEMASK (3 << 25)
  212. #define CHI_CHIFSWIDE_1BIT 0
  213. #define CHI_CHIFSWIDE_2BIT (1 << 25)
  214. #define CHI_CHIFSWIDE_1BYTE (2 << 25)
  215. #define CHI_CHIFSWIDE_NCHAN (3 << 25)
  216. #define CHI_CHINCHANMASK (0x1f << 20)
  217. #define CHI_CHINCHAN(a) (((a) << 20) & CHI_CHINCHANMASK)
  218. #define CHI_CHITXBOFFMASK (0xf << 16)
  219. #define CHI_CHITXBOFF(a) (((a) << 16) & CHI_CHITXBOFFMASK)
  220. #define CHI_CHIRXBOFFMASK (0xf << 12)
  221. #define CHI_CHIRXBOFF(a) (((a) << 12) & CHI_CHIRXBOFFMASK)
  222. #define CHI_TXMSBFIRST (1 << 11)
  223. #define CHI_RXMSBFIRST (1 << 10)
  224. #define CHI_CHIRXFSPOL (1 << 9)
  225. #define CHI_CHITXFSPOL (1 << 8)
  226. #define CHI_CHIRXEDGE (1 << 7)
  227. #define CHI_CHITXEDGE (1 << 6)
  228. #define CHI_CHIFSEDGE (1 << 5)
  229. #define CHI_CHITXFSEDGE (1 << 4)
  230. #define CHI_CHICLK2XMODE (1 << 3)
  231. #define CHI_CHIRXEN (1 << 2)
  232. #define CHI_CHITXEN (1 << 1)
  233. #define CHI_ENCHI 1
  234. #define OFF_CHI_PTREN 0x1dc
  235. #define CHI_CHITXPTRB3EN (1 << 31)
  236. #define CHI_CHITXPTRB2EN (1 << 30)
  237. #define CHI_CHITXPTRB1EN (1 << 29)
  238. #define CHI_CHITXPTRB0EN (1 << 28)
  239. #define CHI_CHITXPTRA3EN (1 << 27)
  240. #define CHI_CHITXPTRA2EN (1 << 26)
  241. #define CHI_CHITXPTRA1EN (1 << 25)
  242. #define CHI_CHITXPTRA0EN (1 << 24)
  243. #define CHI_CHIRXPTRB3EN (1 << 23)
  244. #define CHI_CHIRXPTRB2EN (1 << 22)
  245. #define CHI_CHIRXPTRB1EN (1 << 21)
  246. #define CHI_CHIRXPTRB0EN (1 << 20)
  247. #define CHI_CHIRXPTRA3EN (1 << 19)
  248. #define CHI_CHIRXPTRA2EN (1 << 18)
  249. #define CHI_CHIRXPTRA1EN (1 << 17)
  250. #define CHI_CHIRXPTRA0EN (1 << 16)
  251. #define OFF_CHI_RCVPTRA 0x1e0
  252. #define CHI_CHIRXPTRA3MASK (0xf << 24)
  253. #define CHI_CHIRXPTRA3(a) (((a) << 24) & CHI_CHIRXPTRA3MASK)
  254. #define CHI_CHIRXPTRA2MASK (0xf << 16)
  255. #define CHI_CHIRXPTRA2(a) (((a) << 16) & CHI_CHIRXPTRA2MASK)
  256. #define CHI_CHIRXPTRA1MASK (0xf << 8)
  257. #define CHI_CHIRXPTRA1(a) (((a) << 8) & CHI_CHIRXPTRA1MASK)
  258. #define CHI_CHIRXPTRA0MASK 0xf
  259. #define CHI_CHIRXPTRA0(a) ((a) & CHI_CHIRXPTRA0MASK)
  260. #define OFF_CHI_RCVPTRB 0x1e4
  261. #define CHI_CHIRXPTRB3MASK (0xf << 24)
  262. #define CHI_CHIRXPTRB3(a) (((a) << 24) & CHI_CHIRXPTRB3MASK)
  263. #define CHI_CHIRXPTRB2MASK (0xf << 16)
  264. #define CHI_CHIRXPTRB2(a) (((a) << 16) & CHI_CHIRXPTRB2MASK)
  265. #define CHI_CHIRXPTRB1MASK (0xf << 8)
  266. #define CHI_CHIRXPTRB1(a) (((a) << 8) & CHI_CHIRXPTRB1MASK)
  267. #define CHI_CHIRXPTRB0MASK 0xf
  268. #define CHI_CHIRXPTRB0(a) ((a) & CHI_CHIRXPTRB0MASK)
  269. #define OFF_CHI_TXPTRA 0x1e8
  270. #define CHI_CHITXPTRA3MASK (0xf << 24)
  271. #define CHI_CHITXPTRA3(a) (((a) << 24) & CHI_CHITXPTRA3MASK)
  272. #define CHI_CHITXPTRA2MASK (0xf << 16)
  273. #define CHI_CHITXPTRA2(a) (((a) << 16) & CHI_CHITXPTRA2MASK)
  274. #define CHI_CHITXPTRA1MASK (0xf << 8)
  275. #define CHI_CHITXPTRA1(a) (((a) << 8) & CHI_CHITXPTRA1MASK)
  276. #define CHI_CHITXPTRA0MASK 0xf
  277. #define CHI_CHITXPTRA0(a) ((a) & CHI_CHITXPTRA0MASK)
  278. #define OFF_CHI_TXPTRB 0x1ec
  279. #define CHI_CHITXPTRB3MASK (0xf << 24)
  280. #define CHI_CHITXPTRB3(a) (((a) << 24) & CHI_CHITXPTRB3MASK)
  281. #define CHI_CHITXPTRB2MASK (0xf << 16)
  282. #define CHI_CHITXPTRB2(a) (((a) << 16) & CHI_CHITXPTRB2MASK)
  283. #define CHI_CHITXPTRB1MASK (0xf << 8)
  284. #define CHI_CHITXPTRB1(a) (((a) << 8) & CHI_CHITXPTRB1MASK)
  285. #define CHI_CHITXPTRB0MASK 0xf
  286. #define CHI_CHITXPTRB0(a) ((a) & CHI_CHITXPTRB0MASK)
  287. #define OFF_CHI_SIZE 0x1f0
  288. #define CHI_CHIDMAPTRMASK 0x3ffc0000
  289. #define CHI_CHIDMAPTR(a) (((a) << 18) & CHI_CHIDMAPTR)
  290. #define CHI_CHIBUFF1TIME (1 << 15)
  291. #define CHI_CHIMALOOP (1 << 14)
  292. #define CHI_CHISIZEMASK 0x3ffc
  293. #define CHI_CHISIZE(a) (((a) << 2) & CHI_HISIZEMASK
  294. #define CHI_ENDMARXCHI (1 <<2)
  295. #define CHI_ENDMATXCHI 1
  296. #define OFF_CHIRXSTART 0x1f4
  297. #define CHI_RXSTARTMASK 0xfffffffc
  298. #define OFF_CHITXSTART 0x1f8
  299. #define CHI_TXSTARTMASK 0xfffffffc
  300. #define OFF_CHITXHOLD 0x1fc
  301. #define OFF_CHIRXHOLD 0x1fc
  302. /*
  303.    R3912 Interrupt Register
  304.  */
  305. #define OFF_INTR_STATUS1 0x100
  306. #define INTR_LCDINT (1 << 31)
  307. #define INTR_DFINT (1 << 30)
  308. #define INTR_CHI0_5INT (1 << 29)
  309. #define INTR_CHI1_0INT (1 << 28)
  310. #define INTR_CHIDMACNTINT (1 << 27)
  311. #define INTR_CHIININTA (1 << 26)
  312. #define INTR_CHIININTB (1 << 25)
  313. #define INTR_CHIACTINT (1 << 24)
  314. #define INTR_CHIERRINT (1 << 23)
  315. #define INTR_SND0_5INT (1 << 22)
  316. #define INTR_SND1_0TINT (1 << 21)
  317. #define INTR_TEL0_5INT (1 << 20)
  318. #define INTR_TEL1_0TINT (1 << 19)
  319. #define INTR_SNDDMACNTINT (1 << 18)
  320. #define INTR_TELDMACNTINT (1 << 17)
  321. #define INTR_LSNDCLIPINT (1 << 16)
  322. #define INTR_RSNDCLIPINT (1 << 15)
  323. #define INTR_VALSNDPOSINT (1 << 14)
  324. #define INTR_VALSNDNEGINT (1 << 13)
  325. #define INTR_VALTELPOSINT (1 << 12)
  326. #define INTR_VALTELNEGINT (1 << 11)
  327. #define INTR_SNDININT (1 << 10)
  328. #define INTR_TELININT (1 << 9)
  329. #define INTR_SIBSF0INT (1 << 8)
  330. #define INTR_SIBSF1INT (1 << 7)
  331. #define INTR_SIBIRQPOSINT (1 << 6)
  332. #define INTR_SIBIRQNEGINT (1 << 5)
  333. #define OFF_INTR_STATUS2 0x104
  334. #define INTR_UARTARXINT (1 << 31)
  335. #define INTR_UARTARXOVERRUNINT (1 << 30)
  336. #define INTR_UARTAFRAMEERRINT (1 << 29)
  337. #define INTR_UARTABREAKINT (1 << 28)
  338. #define INTR_UARTAPARITYERRINT (1 << 27)
  339. #define INTR_UARTATXINT (1 << 26)
  340. #define INTR_UARTATXOVERRUNINT (1 << 25)
  341. #define INTR_UARTAEMPTYINT (1 << 24)
  342. #define INTR_UARTADMAFULLINT (1 << 23)
  343. #define INTR_UARTADMAHALFINT (1 << 22)
  344. #define INTR_UARTBRXINT (1 << 21)
  345. #define INTR_UARTBRXOVERRUNINT (1 << 20)
  346. #define INTR_UARTBFRAMEERRINT (1 << 19)
  347. #define INTR_UARTBBREAKINT (1 << 18)
  348. #define INTR_UARTBPARITYERRINT (1 << 17)
  349. #define INTR_UARTBTXINT (1 << 16)
  350. #define INTR_UARTBTXOVERRUNINT (1 << 15)
  351. #define INTR_UARTBEMPTYINT (1 << 14)
  352. #define INTR_UARTBDMAFULLINT (1 << 13)
  353. #define INTR_UARTBDMAHALFINT (1 << 12)
  354. #define INTR_MBUSTXBUFAVAILINT (1 << 11)
  355. #define INTR_MBUSTXERRINT (1 << 10)
  356. #define INTR_MBUSEMPTYINT (1 << 9)
  357. #define INTR_MBUSRXBUFAVAILINT (1 << 8)
  358. #define INTR_MBUSRXERRINT (1 << 7)
  359. #define INTR_MBUSDETINT (1 << 6)
  360. #define INTR_MBUSDMAFULLINT (1 << 5)
  361. #define INTR_MBUSDMAHALFINT (1 << 4)
  362. #define INTR_MBUSPOSINT (1 << 3)
  363. #define INTR_MBUSNEGINT (1 << 2)
  364. #define OFF_INTR_STATUS3 0x108
  365. #define INTR_MFIOPOSINT(a) (1 << (a))
  366. #define OFF_INTR_STATUS4 0x10c
  367. #define INTR_MFIONEGINT(a) (1 << (a))
  368. #define OFF_INTR_STATUS5 0x110
  369. #define INTR_RTCINT (1 << 31)
  370. #define INTR_ALARMINT (1 << 30)
  371. #define INTR_PREINT (1 << 29)
  372. #define INTR_STPTIMERINT (1 << 28)
  373. #define INTR_POSPWRINT (1 << 27)
  374. #define INTR_NEGPWRINT (1 << 26)
  375. #define INTR_POSPWROKINT (1 << 25)
  376. #define INTR_NEGPWROKINT (1 << 24)
  377. #define INTR_POSONBUTNINT (1 << 23)
  378. #define INTR_NEGONBUTNINT (1 << 22)
  379. #define INTR_SPIBUFAVAILINT (1 << 21)
  380. #define INTR_SPIERRINT (1 << 20)
  381. #define INTR_SPIRCVINT (1 << 19)
  382. #define INTR_SPIEMPTYINT (1 << 18)
  383. #define INTR_IRCONSMINT (1 << 17)
  384. #define INTR_CARSTINT (1 << 16)
  385. #define INTR_POSCARINT (1 << 15)
  386. #define INTR_NEGCARINT (1 << 14)
  387. #define INTR_IOPOSINT(a) (1 << ((a) + 7))
  388. #define INTR_IONEGINT(a) (1 << (a))
  389. #define OFF_INTR_STATUS6 0x114
  390. #define INTR_IRQHIGH (1 << 31)
  391. #define INTR_IRQLOW (1 << 30)
  392. #define INTR_INTVECTMASK 0x0000003c
  393. #define INTR_INTVECT(a) (((a) << 2) & INTR_INTVECTMASK)
  394. #define INTR_INTPRIO(status6) ((status6 & INTR_INTVECTMASK) >> 2)
  395. #define OFF_INTR_CLEAR1 0x100
  396. #define OFF_INTR_CLEAR2 0x104
  397. #define OFF_INTR_CLEAR3 0x108
  398. #define OFF_INTR_CLEAR4 0x10c
  399. #define OFF_INTR_CLEAR5 0x110
  400. #define OFF_INTR_ENABLE1 0x118
  401. #define OFF_INTR_ENABLE2 0x11c
  402. #define OFF_INTR_ENABLE3 0x120
  403. #define OFF_INTR_ENABLE4 0x124
  404. #define OFF_INTR_ENABLE5 0x128
  405. #define OFF_INTR_ENABLE6 0x12c
  406. #define INTR_GLOBALEN (1 << 18)
  407. #define INTR_IRQPRITEST (1 << 17)
  408. #define INTR_IRQTEST (1 << 16)
  409. #define INTR_PRIORITYMASKMASK 0x0000ffff
  410. #define INTR_PRIORITYMASK(a) ((1 << (a)) & INTR_PRIORITYMASKMASK)
  411. /* 
  412.   IO Module
  413. */
  414. #define OFF_IO_CTL 0x180
  415. #define IO_IODEBSELMASK 0x7f000000
  416. #define IO_IODEBSEL(a) (1 << ((a) + 24))
  417. #define IO_IODIRECMASK 0x007f0000
  418. #define IO_IODIREC(a) (1 << ((a) + 16))
  419. #define IO_IODIRECOUT(a) (1 << ((a) + 16))
  420. #define IO_IODIRECIN(a) 0
  421. #define IO_IODOUTMASK 0x00007f00
  422. #define IO_IODOUT(a) (1 << ((a) + 8))
  423. #define IO_IODINMASK 0x0000007f
  424. #define IO_IODIN(a) (1 << (a))
  425. #define OFF_IO_MFIOOUT 0x184
  426. #define IO_MFIOOUT(a) (1 << (a))
  427. #define OFF_IO_MFIODIREC 0x188
  428. #define IO_MFIODIRECOUT(a) (1 << (a))
  429. #define IO_MFIODIRECIN(a) 0
  430. #define OFF_IO_MFIOIN 0x18c
  431. #define IO_MFIOIN(a) (1 << (a))
  432. #define OFF_IO_MFIOSEL 0x190
  433. #define IO_MFIOSEL(a) (1 << (a))
  434. #define OFF_IO_IOPWRDN 0x194
  435. #define IO_IOPDMASK 0x0000007f
  436. #define IO_IOPD(a) ((1 << (a)) & IO_PDMASK)
  437. #define OFF_IO_MFIOPWRDN 0x198
  438. #define IO_MFIOPD(a) (1 << (a))
  439. /*
  440.   IR Module
  441. */
  442. #define OFF_IR_CTL1 0x0a0
  443. #define IR_CARDET (1 << 24)
  444. #define IR_BAUDVALMASK 0x00ff0000
  445. #define IR_BAUD(a) (((a) << 16) & IR_BAUDVALMASK)
  446. #ifdef INTERNAL_TEST
  447. #define IR_TESTIR (1 << 4)
  448. #endif
  449. #define IR_DTINVERT (1 << 3)
  450. #define IR_RXPWR (1 << 2)
  451. #define IR_ENSTATE (1 << 1)
  452. #define IR_ENCONSM 1
  453. #define OFF_IR_CTL2 0x0a4
  454. #define IR_PERMASK 0xff000000
  455. #define IR_PER(a) (((a) << 24) & IR_PERMASK)
  456. #define IR_ONTIMEMASK 0x00ff0000
  457. #define IR_ONTIME(a) (((a) << 16) & IR_ONTIMEMASK)
  458. #define IR_DELAYVALMASK 0x0000ff00
  459. #define IR_DELAYVAL(a) (((a) << 8) & IR_DELAYVALMASK)
  460. #define IR_WAITVALMASK 0x000000ff
  461. #define IR_WAITVAL(a) ((a) & IR_WAITVALMASK)
  462. #define OFF_IR_HOLD 0x0a8
  463. #define IR_TXHOLDMASK 0x0000ffff
  464. #define IR_TXHOLD(a) ((a) & IR_TXHOLDMASK)
  465. #define OFF_MAGICBUS_CTL1 0x0e0
  466. #define MAGICBUS_MBUSON (1 << 31)
  467. #define MAGICBUS_EMPTY (1 << 30)
  468. #define MAGICBUS_MBUSINT (1 << 29)
  469. #define MAGICBUS_ENDMARX (1 << 16)
  470. #define MAGICBUS_ENDMATX (1 << 15)
  471. #ifdef INTERNAL_TEST
  472. #define MAGICBUS_ENDMATEST (1 << 14)
  473. #endif
  474. #define MAGICBUS_ENDMALOOP (1 << 13)
  475. #define MAGICBUS_LOOPBACK (1 << 12)
  476. #define MAGICBUS_RCVPHAPOL (1 << 11)
  477. #define MAGICBUS_DTIDLE (1 << 10)
  478. #define MAGICBUS_ENBYTEWAIT (1 << 9)
  479. #define MAGICBUS_ENWORDWAIT (1 << 8)
  480. #define MAGICBUS_DETPHAPOL (1 << 7)
  481. #define MAGICBUS_DETCLKPOL (1 << 6)
  482. #define MAGICBUS_PHAPOL (1 << 5)
  483. #define MAGICBUS_CLKPOL (1 << 4)
  484. #define MAGICBUS_SLAVE (1 << 3)
  485. #define MAGICBUS_FSLAVE (1 << 2)
  486. #define MAGICBUS_LONG (1 << 1)
  487. #define MAGICBUS_ENMBUS 1
  488. #define OFF_MAGICBUS_CTL2 0x0e4
  489. #define MAGICBUS_DELAYVALMASK 0xff000000
  490. #define MAGICBUS_DELAYVAL(a) (((a) << 24) & MAGICBUS_DELAYVALMASK)
  491. #define MAGICBUS_BAUDRATEMASK 0x00ff0000
  492. #define MAGICBUS_BAUDRATE(a) (((a) << 16) & MAGICBUS_BAUDRATEMASK)
  493. #define OFF_MAGICBUS_DMACTL1 0x0e8
  494. #define MAGICBUS_DMASTARTVALMASK 0xfffffffc
  495. #define MAGICBUS_DMASTARTVAL(a) ((a) & MAGICBUS_DMASTARTVALMASK)
  496. #define OFF_MAGICBUS_DMACTL2 0x0ec
  497. #define MAGICBUS_DMALENGTHMASK 0x000ffffc
  498. #define MAGICBUS_DMALENGTH(a) ((a) & MAGICBUS_DMALENGTHMASK)
  499. #define OFF_MAGICBUS_DMACOUNT 0x0f0
  500. #define MAGICBUS_DMACOUNTMASK 0x000ffffc
  501. #define OFF_MAGICBUS_TXHOLD 0x0f8
  502. #define OFF_MAGICBUS_TXHOLD_SWAP 0x0f4
  503. #define OFF_MAGICBUS_RXHOLD 0x0f8
  504. /*
  505.   Power Management
  506. */
  507. #define OFF_POWER_CTL 0x1c4
  508. #define POWER_ONBUTN (1 << 31)
  509. #define POWER_PWRINT (1 << 30)
  510. #define POWER_PWROK (1 << 29)
  511. #define POWER_STPTIMERVALMASK 0x0000f000
  512. #define POWER_STPTIMERVAL(a) (((a) << 12) & POWER_STPTIMERVALMASK)
  513. #define POWER_ENSTPTIMER (1 << 11)
  514. #define POWER_ENFORCESHUTDOWN (1 << 10)
  515. #define POWER_FORCESHUTDOWN (1 << 9)
  516. #define POWER_FORCESHUTDOWNOCC (1 << 8)
  517. #define POWER_SELC2MS (1 << 7)
  518. #define POWER_BPDBVCC3 (1 << 5)
  519. #define POWER_STOPCPU (1 << 4)
  520. #define POWER_DBNCONBUTN (1 << 3)
  521. #define POWER_COLDSTART (1 << 2)
  522. #define POWER_PWRCS (1 << 1)
  523. #define POWER_VCCON (1 << 0)
  524. /*
  525.   SIB Module
  526. */
  527. #define OFF_SIB_SIZE 0x60
  528. #define SIB_SNDSIZEMASK 0x3ffc0000
  529. #define SIB_SNDSIZE(a) (((a) << 16) & SIB_SNDSIZEMASK)
  530. #define SIB_TELSIZEMASK 0x00003ffc
  531. #define SIB_TELSIZE(a) ((a) & SIB_TELSIZEMASK)
  532. #define OFF_SIB_SNDRXSTART 0x64
  533. #define SIB_SNDRXSTARTMASK 0xfffffffc
  534. #define SIB_SNDRXSTART ((a) & SIB_SNDRXSTARTMASK)
  535. #define OFF_SIB_SNDTXSTART 0x68
  536. #define SIB_SNDTXSTARTMASK 0xfffffffc
  537. #define SIB_SNDTXSTART ((a) & SIB_SNDRXSTARTMASK)
  538. #define OFF_SIB_TELRXSTART 0x6c
  539. #define SIB_TELRXSTARTMASK 0xfffffffc
  540. #define SIB_TELRXSTART ((a) & SIB_TELRXSTARTMASK)
  541. #define OFF_SIB_TELTXSTART 0x70
  542. #define SIB_TELTXSTARTMASK 0xfffffffc
  543. #define SIB_TELTXSTART ((a) & SIB_TELRXSTARTMASK)
  544. #define OFF_SIB_CTL 0x74
  545. #define SIB_SIBIRQ (1 << 31)
  546. #ifdef INTERNAL_TEST
  547. #define SIB_ENCNTTEST (1 << 30)
  548. #define SIB_ENDMATEST (1 << 29)
  549. #endif
  550. #define SIB_SNDMONO (1 << 28)
  551. #define SIB_RMONOSNDIN (1 << 27)
  552. #define SIB_SCLKDIVMASK (7 << 24)
  553. #define SIB_SCLKDIV(a) (((a) << 24) & SIBSCLKDIVMASK)
  554. #define SIB_TEL16 (1 << 23)
  555. #define SIB_TELFSDIVMASK 0x007f0000
  556. #define SIB_TELFSDIV(a) (((a) << 16) & SIB_TELFSDIVMASK)
  557. #define SIB_SND16 (1 << 15)
  558. #define SIB_SNDFSDIVMASK 0x00007f00
  559. #define SIB_SNDFSDIV(a) (((a) << 8) & SIB_SNDFSDIVMASK)
  560. #define SIB_SELTELSF1 (1 << 7)
  561. #define SIB_SELSNDSF1 (1 << 6)
  562. #define SIB_ENTEL (1 << 5)
  563. #define SIB_ENSND (1 << 4)
  564. #define SIB_SIBLOOP (1 << 3)
  565. #define SIB_ENSF1 (1 << 2)
  566. #define SIB_ENSF0 (1 << 1)
  567. #define SIB_ENSIB 1
  568. #define OFF_SIB_SNDTXHOLD 0x078
  569. #define OFF_SIB_SNDRXHOLD 0x078
  570. #define OFF_SIB_TELTXHOLD 0x07c
  571. #define OFF_SIB_TELRXHOLD 0x07c
  572. #define OFF_SIB_SF0AUX 0x80
  573. #define OFF_SIB_SF1AUX 0x84
  574. #define OFF_SIB_SF0TAT 0x88
  575. #define OFF_SIB_SF1TAT 0x8c
  576. #define OFF_SIB_DMACTL 0x90
  577. #define SIB_SNDBUFF1TIME (1 << 31)
  578. #define SIB_SNDDMALOOP (1 << 30)
  579. #define SIB_SNDDMAPTRMASK 0x3ffc0000
  580. #define SIB_ENDMARXSND (1 << 17)
  581. #define SIB_ENDMATXSND (1 << 16)
  582. #define SIB_TELBUFF1TIME (1 << 15)
  583. #define SIB_TELDMALOOP (1 << 14)
  584. #define SIB_TELDMAPTRMASK 0x00003ffc
  585. #define SIB_ENDMARXTEL (1 << 1)
  586. #define SIB_ENDMATXTEL 1
  587. /*
  588.   SPI Module
  589.  */
  590. #define OFF_SPI_CTL 0x160
  591. #define SPI_SPION (1 << 17)
  592. #define SPI_EMPTY (1 << 16)
  593. #define SPI_DELAYVALMASK 0x0000f000
  594. #define SPI_DELAYVAL(a) (((a) << 12) & SPI_DELAYVALMASK)
  595. #define SPI_BAUDRATEMASK 0x00000f00
  596. #define SPI_BAUDRATE(a) (((a) << 8) & SPI_BAUDRATEMASK)
  597. #define SPI_PHAPOL (1 << 5)
  598. #define SPI_CHKPOL (1 << 4)
  599. #define SPI_WORD (1 << 2)
  600. #define SPI_LSB (1 << 1)
  601. #define SPI_ENSPI 1
  602. #define OFF_SPI_TXDATA 0x164
  603. #define SPI_TXDATAMASK 0x0000ffff
  604. #define OFF_SPI_RXDATA 0x164
  605. #define SPI_RXDATAMASK 0x0000ffff
  606. /*
  607.    Timer
  608.  */
  609. /* RTC */
  610. #define OFF_RTC_RTCHI 0x140
  611. #define RTC_RTCHIMASK 0x000000ff
  612. #define OFF_RTC_RTCLOW 0x144
  613. /* Alarm */
  614. #define OFF_ALARM_ALARMHI 0x148
  615. #define ALARM_ALARMHIMASK 0x000000ff
  616. #define OFF_ALARM_ALARMLOW 0x14c
  617. /* Timer */
  618. #define OFF_TIMER_CTL 0x150
  619. #define TIMER_FREEZEPRE (1 << 7)
  620. #define TIMER_FREEZERTC (1 << 6)
  621. #define TIMER_FREEZETIMER (1 << 5)
  622. #define TIMER_ENPRETIMER (1 << 4)
  623. #define TIMER_RTCCLR (1 << 3)
  624. #define TIMER_TESTC8MS (1 << 2)
  625. #define TIMER_ENTESTCLK (1 << 1)
  626. #define TIMER_ENRTCTEST 1
  627. #define OFF_PERIODIC_TIMER 0x154
  628. #define PERIODIC_PRECNTMASK 0xffff0000
  629. #define PERIODIC_PRECNT(a) (((a) << 16) & PERIODIC_PRECNTMASK)
  630. #define PERIODIC_PREVALMASK 0x0000ffff
  631. #define PERIODIC_PREVAL(a) ((a) & PERIODIC_PREVALMASK)
  632. /*
  633. Serial Definition
  634. */
  635. #define OFF_UARTA_CTL1 0x0b0
  636. #define OFF_UARTB_CTL1 0x0c8
  637. #define UART_UARTON (1 << 31)
  638. #define UART_EMPTY (1 << 30)
  639. #define UART_PRXHOLDFULL (1 << 29)
  640. #define UART_RXHOLDFULL (1 << 28)
  641. #define UART_ENDMATX (1 << 15)
  642. #define UART_ENDMARX (1 << 14)
  643. #ifdef INTERNAL_TEST
  644. #define UART_TESTMODE (1 << 13)
  645. #endif
  646. #define UART_ENBREAKHALT (1 << 12)
  647. #define UART_ENDMATEST (1 << 11)
  648. #define UART_ENDMALOOP (1 << 10)
  649. #define UART_PULSEOPT2 (1 << 9)
  650. #define UART_PULSEOPT1 (1 << 8)
  651. #define UART_DTINVERT (1 << 7)
  652. #define UART_DISTXD (1 << 6)
  653. #define UART_TWOSTOP (1 << 5)
  654. #define UART_LOOPBACK (1 << 4)
  655. #define UART_BIT_7 (1 << 3)
  656. #define UART_EVENPARITY (1 << 2)
  657. #define UART_ENPARITY (1 << 1)
  658. #define UART_ENUART 1
  659. #define OFF_UARTA_CTL2 0x0b4
  660. #define OFF_UARTB_CTL2 0x0cc
  661. #define UART_BAUDMASK 0x000003ff // lower 10bits
  662. /*
  663.    Standart UART Values 
  664.    This comes from: baud rate = 3.6864MHz / ((BaudRate + 1) * 16)
  665. */
  666. #define UART_B38400 5
  667. #define UART_B19200 11
  668. #define UART_B9600 23
  669. #define UART_B4800 47
  670. #define UART_B2400 95
  671. #define UART_B1200 191
  672. #define UART_B600 383
  673. #define UART_B300 767
  674. #define OFF_UARTA_DMA_CTL1 0x0b8
  675. #define OFF_UARTB_DMA_CTL1 0x0d0
  676. #define UART_DMASTARTVALMASK 0xfffffffc
  677. #define OFF_UARTA_DMA_CTL2 0x0bc
  678. #define OFF_UARTB_DMA_CTL2 0x0d4
  679. #define OFF_UARTA_DMA_COUNT 0x0c0
  680. #define OFF_UARTB_DMA_COUNT 0x0d8
  681. #define UART_DMALENGTHMASK 0x0000ffff
  682. #define OFF_UARTA_TXDATA 0x0c4 /* Write Only */
  683. #define OFF_UARTB_TXDATA 0x0dc /* Write Only */
  684. #define OFF_UARTA_RXDATA 0x0c4 /* Read Only */
  685. #define OFF_UARTB_RXDATA 0x0dc /* Read Only */
  686. #define UART_BREAK 0x00000100 /* send/received break */
  687. #define UART_TXDATAMASK 0x000000ff /* send data mask */
  688. #define UART_RXDATAMASK 0x000000ff /* receive data mask */
  689. /*
  690.    Video
  691.  */
  692. #define OFF_VIDEO_CTL1 0x28
  693. #define VIDEO_LINECNTMASK 0xffc00000
  694. #define VIDEO_LINECNT(a) (((a) << 22) & VIDEO_LINECNTMASK)
  695. #define VIDEO_LOADDLY (1 << 21)
  696. #define VIDEO_BAUDVALMASK 0x000f0000
  697. #define VIDEO_BAUDVAL(a) (((a) << 16) & VIDEO_BAUDVALMASK)
  698. #define VIDEO_VIDDONEVALMASK 0x0000fe00
  699. #define VIDEO_VIDDONEVAL (((a) << 9) & VIDEO_DONEVALMASK)
  700. #define VIDEO_ENFREEZEFRAME (1 << 8)
  701. #define VIDEO_BITSELMASK 0x000000c0
  702. #define VIDEO_BITSEL(a) (((a) << 6) & VIDEO_BITSEL)
  703. #define VIDEO_DISPSPLIT (1 << 5)
  704. #define VIDEO_DISP8 (1 << 4)
  705. #define VIDEO_DFMODE (1 << 3)
  706. #define VIDEO_INVVID (1 << 2)
  707. #define VIDEO_DISPON (1 << 1)
  708. #define VIDEO_ENVID 1
  709. #define OFF_VIDEO_CTL2 0x2c
  710. #define VIDEO_VIDRATEMASK 0xffc00000
  711. #define VIDEO_VIDRATE(a) (((a) << 22) & VIDEO_VIDRATEMASK)
  712. #define VIDEO_HORZVALMASK 0x001ff000
  713. #define VIDEO_HORZVAL(a) (((a) << 12) & VIDEO_HORZVALMASK)
  714. #define VIDEO_LINEVALMASK 0x000003ff
  715. #define VIDEO_LINEVAL(a) ((a) & VIDEO_LINEVALMASK)
  716. #define OFF_VIDEO_CTL3 0x30
  717. #define VIDEO_VIDBANKMASK 0xfff00000
  718. #define VIDEO_VIDBANK(a) ((a) & VIDEO_VIDBANKMASK)
  719. #define VIDEO_VIDBASEHIMASK 0x000ffff0
  720. #define VIDEO_VIDBASEHI(a) ((a) & VIDEO_VIDBASEHIMASK)
  721. #define OFF_VIDEO_CTL4 0x34
  722. #define VIDEO_DFVALMASK 0xff000000
  723. #define VIDEO_DFVAL(a) (((a) << 24) & VIDEO_DFVALMASK)
  724. #define VIDEO_FRAMEMASKVALMASK 0x00f00000
  725. #define VIDEO_FRAMEMASKVAL(a) (((a) << 20) & VIDEO_FRAMEMASKVALMASK)
  726. #define VIDEO_VIDBASELOMASK 0x000ffff0
  727. #define VIDEO_VIDBASELO(a) ((a) & VIDEO_VIDBASELOMASK)
  728. #define OFF_VIDEO_CTL5 0x38
  729. #define OFF_VIDEO_CTL6 0x3c
  730. #define OFF_VIDEO_CTL7 0x40
  731. #define VIDEO_BLUESELMASK 0x0000ffff
  732. #define VIDEO_BLUESEL(a) ((a) & VIDEO_BLUESEL)
  733. #define OFF_VIDEO_CTL8 0x44
  734. #define VIDEO_PAT2_3MASK 0x00000fff
  735. #define VIDEO_PAT2_3(a) ((a) & VIDEO_PAT2_3)
  736. #define OFF_VIDEO_CTL9 0x48
  737. #define VIDEO_PAT3_4MASK 0xffff0000
  738. #define VIDEO_PAT3_4(a) (((a) << 16) & VIDEO_PAT3_4)
  739. #define VIDEO_PAT2_4MASK 0x0000ffff
  740. #define VIDEO_PAT2_4(a) ((a) & VIDEO_PAT2_4MASK)
  741. #define OFF_VIDEO_CTL10 0x4c
  742. #define VIDEO_PAT4_5MASK 0x000fffff
  743. #define VIDEO_PAT4_5(a) ((a) & VIDEO_PAT4_5)
  744. #define OFF_VIDEO_CTL11 0x50
  745. #define VIDEO_PAT3_5MASK 0x000fffff
  746. #define VIDEO_PAT3_5(a) ((a) & VIDEO_PAT3_5)
  747. #define OFF_VIDEO_CTL12 0x54
  748. #define VIDEO_PAT6_7MASK 0x0fffffff
  749. #define VIDEO_PAT6_7(a) ((a) & VIDEO_PAT6_7)
  750. #define OFF_VIDEO_CTL13 0x58
  751. #define VIDEO_PAT5_7MASK 0x0fffffff
  752. #define VIDEO_PAT5_7(a) ((a) & VIDEO_PAT5_7)
  753.  
  754. #define OFF_VIDEO_CTL14 0x5c
  755. #define VIDEO_PAT4_7MASK 0x0fffffff
  756. #define VIDEO_PAT4_7(a) ((a) & VIDEO_PAT4_7)
  757. /*
  758.   Register Access Macros..
  759. */
  760. #define READ_REGISTER_ULONG(reg) (*(volatile unsigned long * const)(reg))
  761. #define WRITE_REGISTER_ULONG(reg, val) (*(volatile unsigned long * const)(reg)) = (val)
  762. #define READ_REGISTER_USHORT(reg) (*(volatile unsigned short * const)(reg))
  763. #define WRITE_REGISTER_USHORT(reg, val) (*(volatile unsigned short * const)(reg)) = (val)
  764. #define READ_REGISTER_UCHAR(reg) (*(volatile unsigned char * const)(reg))
  765. #define WRITE_REGISTER_UCHAR(reg, val) (*(volatile unsigned char * const)(reg)) = (val)
  766. #define R3REG(base, id)   (*(volatile ULONG *)((base)+(id)))
  767. #endif /* _R3912_H_ */