s3c2410x.h
上传用户:ske666
上传日期:2022-03-30
资源大小:371k
文件大小:18k
源码类别:

VxWorks

开发平台:

Objective-C

  1. /* s3c2410x.h - HITSAT s3c2410x header file */
  2. /*
  3. This file contains I/O address and related constants for the HITSAT
  4. s3c2410x board.
  5. */
  6. #ifndef INCs3c2410xh
  7. #define INCs3c2410xh
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #define TARGET_S3C2410X
  12. /* Flash definitions */
  13. #define FLASH_BASE 0x00000000 /* Base address of Flash part */
  14. #define FLASH_SIZE 0x00200000  /* Total Flash available. */
  15. #define FLASH_WIDTH 2    /* One 16-bit wide parts */
  16. #define FLASH_CHIP_WIDTH        1
  17. /*  SDRAM area definition. */
  18. #define SDRAM_BASE 0x30000000
  19. #define SDRAM_SIZE 0x04000000
  20. #define SDRAM_WIDTH 4 /* Two 16-bit wide parts */
  21. #define SDRAM_CHIP_WIDTH 2
  22. /* RAM base in reset memory map */
  23. #define RESET_RAM_BASE 0x30000000
  24. #define BUS                   BUS_TYPE_NONE
  25. /* Signals generated from s3c2410x clock generator. */
  26. #define s3c2410x_FCLK 200000000 /* fclk = 100MHz */
  27. #define s3c2410x_HCLK 100000000 /* hclk = 50MHz */
  28. #define s3c2410x_PCLK 50000000 /* pclk = 50MHz */
  29. /* arm920t PSR */
  30. #define FIQ_ENABLE_Bit 0x40
  31. #define IRQ_ENABLE_Bit 0x80
  32. #define PROCESSOR_MODE_MASK 0x1F     /* Processor Mode Mask */
  33. #define UDF_MODE 0x1B     /* Undefine Mode(UDF) */
  34. #define ABT_MODE 0x17     /* Abort Mode(ABT) */
  35. #define SUP_MODE 0x13     /* Supervisor Mode (SVC) */
  36. #define IRQ_MODE 0x12     /* Interrupt Mode (IRQ) */
  37. #define FIQ_MODE 0x11     /* Fast Interrupt Mode (FIQ) */
  38. #define USR_MODE 0x10     /* User Mode(USR) */
  39. /* s3c2410x Memory Controller */
  40. #define rBWSCON_ADR 0x48000000
  41. #define DW1 (1<<4) /* 2-bits; data bus width. 8bit:16bit:32bit = 00b:01b:10b:11b. */
  42. #define WS1 (0<<6) /* 1-bit; WAIT desable when 0, WAIT enable when 1. */
  43. #define ST1 (0<<7) /* 1-bit; nWBE[3..0]) when 0, nBE[3..0]) when 1. */
  44. #define DW2 (1<<8)
  45. #define WS2 (0<<10)
  46. #define ST2 (0<<11)
  47. #define DW3 (1<<12)
  48. #define WS3 (0<<14)
  49. #define ST3 (0<<15)
  50. #define DW4 (1<<16)
  51. #define WS4 (0<<18)
  52. #define ST4 (0<<19)
  53. #define DW5 (1<<20)
  54. #define WS5 (1<<22)
  55. #define ST5 (1<<23)
  56. #define DW6 (2<<24)
  57. #define WS6 (0<<26)
  58. #define ST6 (0<<27)
  59. #define DW7 (2<<28)
  60. #define WS7 (0<<30)
  61. #define ST7 (0<<31)
  62. #define rBWSCON_INIT_VALUE (DW1+WS1+ST1+DW2+WS2+ST2+DW3+WS3+ST3+DW4+WS4+ST4+DW5+WS5+ST5+DW6+WS6+ST6+DW7+WS7+ST7)
  63. /* 0x22111112 */
  64. #define rBANKCON0_ADR 0x48000004
  65. #define PMC0 (0<<0) /* 2-bits; Page mode = normal. */
  66. #define Tacp0 (0<<2) /* 2-bits; Page mode access cycle = 2 clocks.  */
  67. #define Tcah0 (0<<4) /* 2-bits; Address hold time after nGCSn = 0 clocks. */
  68. #define Tcoh0 (0<<6) /* 2-bits; Chip selection hold time after nOE = 0 clocks. */
  69. #define Tacc0 (7<<8) /* 3-bits; Access cycle = 14 clocks. */
  70. #define Tcos0 (0<<11) /* 2-bits; Chip selection set-up time before nOE = 0 clocks. */
  71. #define Tacs0 (0<<13) /* 2-bits; Address set-up time before nGCSn = 0 clocks. */
  72. #define rBANKCON0_INIT_VALUE (PMC0+Tacp0+Tcah0+Tcoh0+Tacc0+Tcos0+Tacs0)
  73. /* 0x00000700 */
  74. #define rBANKCON3_ADR 0x48000010
  75. #define rBANKCON5_ADR 0x48000018
  76. #define PMC5 (0<<0) /* 2-bits; Page mode = normal. */
  77. #define Tacp5 (3<<2) /* 2-bits; Page mode access cycle = 6 clocks. */
  78. #define Tcah5 (3<<4) /* 2-bits; Address hold time after nGCSn = 1 clocks. */
  79. #define Tcoh5 (3<<6) /* 2-bits; Chip selection hold time after nOE = 1 clocks. */
  80. #define Tacc5 (7<<8) /* 3-bits; Access cycle = 14 clocks. */
  81. #define Tcos5 (3<<11) /* 2-bits; Chip selection set-up time before nOE = 1 clocks. */
  82. #define Tacs5 (3<<13) /* 2-bits; Address set-up time before nGCSn = 1 clocks. */
  83. #define rBANKCON5_INIT_VALUE (PMC5+Tacp5+Tcah5+Tcoh5+Tacc5+Tcos5+Tacs5)
  84. /* 0x00000700 */
  85. #define rBANKCON6_ADR 0x4800001c
  86. #define SCAN6 (1<<0) /* 2-bits; Column address number = 9 bits. */
  87. #define Trcd6 (0<<2) /* 2-bits; RAS to CAS delay = 2 clock. */
  88. #define MT6 (3<<15) /* 2-bits; Set type to SyncDRAM. */
  89. #define rBANKCON6_INIT_VALUE (SCAN6+Trcd6+MT6)
  90. /* 0x00018000 */
  91. #define rREFRESH_ADR 0x48000024
  92. #define Refresh_Counter (1113<<0) /* 11-bits; SDRAM refresh count value = 1113; */
  93. #define Tsrc (1<<18) /* 2-bits; SDRAM Semi Row Cycle Time = 5 clocks. */
  94. #define Trp (0<<20) /* 2-bits; SDRAM RAS pre-charge Time = 2 clocks. */
  95. #define TREFMD (0<<22) /* 1-bits; SDRAM Refresh Mode is Auto-Refresh. */
  96. #define REFEN (1<<23) /* 1-bits; SDRAM Refresh Enable. */
  97. #define rREFRESH_INIT_VALUE (Refresh_Counter+Tsrc+Trp+TREFMD+REFEN)
  98. /* 0x00860459 */
  99. #define rBANKSIZE_ADR 0x48000028
  100. #define BK76MAP (1<<0) /* 3-bits; Bank6..7 memory map 64M/64M. */
  101. #define SCLK_EN (1<<4) /* 1-bits; SCLK is enabled only during SDRAM access cycle. */
  102. #define SCKE_EN (1<<5) /* 1-bits; SDRAM power down mode enable. */
  103. #define BURST_EN (1<<7) /* 1-bits; ARM core enable burst operation. */
  104. #define rBANKSIZE_INIT_VALUE (BK76MAP+SCLK_EN+SCKE_EN+BURST_EN)
  105. /* 0x000000b7 */
  106. #define rMRSRB6_ADR 0x4800002c
  107. #define BL6 (0<<0) /* 3-bits; Burst length = 1(Fixed). */
  108. #define BT6 (0<<3) /* 1-bits; Burst type is sequential(Fixed). */
  109. #define CL6 (3<<4) /* 3-bits; CAS latency = 3 clocks. */
  110. #define TM6 (0<<7) /* 2-bits; Mode register set(Fixed). */
  111. #define WBL6 (0<<9) /* 1-bits; Write burst length = Burst(Fixed). */
  112. #define rMRSRB6_INIT_VALUE (BL6+BT6+CL6+TM6+WBL6)
  113. /* 0x00000030 */
  114. /* s3c2410x Interrupt Controller */
  115. #define rINTMSK_ADR 0x4A000008
  116. #define rINTSUBMSK_ADR 0x4A00001C
  117. /* s3c2410x Clock & Power Management */
  118. #define rLOCKTIME_ADR 0x4c000000
  119. #define M_LTIME (0xfff<<0)  /* 12-bits; Maxim UPLL lock time count value. */
  120. #define U_LTIME (0xfff<<12) /* 12-bits; Maxim MPLL lock time count value. */
  121. #define rLOCKTIME_INIT_VALUE (M_LTIME+U_LTIME)
  122. /* 0x00ffffff */
  123. #define rMPLLCON_ADR 0x4c000004
  124. #define SDIVm (0<<0) /* 2-bits; */
  125. #define PDIVm (4<<4) /* 6-bits; */
  126. #define MDIVm (0x5c<<12) /* 8-bits; */
  127. #define rMPLLCON_INIT_VALUE (SDIVm+PDIVm+MDIVm)
  128. /* 0x0005c040 */
  129. #define rCLKCON_ADR 0x4c00000c
  130. #define rCLKCON_INIT_VALUE 0x0043d00
  131. /* 0x00043d00 */
  132. #define rCLKSLOW_ADR 0x4c000010
  133. #define rCLKSLOW_INIT_VALUE 0x00000084
  134. /* 0x00000084 */
  135. #define rCLKDIVN_ADR 0x4c000014
  136. #define rCLKDIVN_INIT_VALUE 0x00000003
  137. /* s3c2410x Watch-dog Timer */
  138. #define rWTCON_ADR 0x53000000
  139. #define rWTCON_INIT_VALUE (0x00000000)
  140. /* s3c2410x GPIO Contol Register */
  141. #define rGPHCON 0x56000070
  142. #define MASK_GPH10(x) (x<<20)
  143. #define MASK_GPH9(x) (x<<18)
  144. #define MASK_GPH8(x) (x<<16)
  145. #define MASK_GPH7(x) (x<<14)
  146. #define MASK_GPH6(x) (x<<12)
  147. #define MASK_GPH5(x) (x<<10)
  148. #define MASK_GPH4(x) (x<<8)
  149. #define MASK_GPH3(x) (x<<6)
  150. #define MASK_GPH2(x) (x<<4)
  151. #define MASK_GPH1(x) (x<<2)
  152. #define MASK_GPH0(x) (x<<0)
  153. /* Interrupt levels */
  154. #define s3c2410x_INT_NUM_LEVELS   52
  155. #define s3c2410x_INT_CSR_MASK_VAL (~((unsigned int)((1<<6)+(1<<24))))
  156. #define s3c2410x_INT_CSR_SRCPND (0X4a000000)
  157. #define s3c2410x_INT_CSR_INTMOD (0X4a000004)
  158. #define s3c2410x_INT_CSR_INTMSK (0X4a000008)
  159. #define s3c2410x_INT_CSR_PRIORITY (0x4a00000c)
  160. #define s3c2410x_INT_CSR_INTPND (0X4a000010)
  161. #define s3c2410x_INT_CSR_INTOFFSET (0x4a000014)
  162. #define s3c2410x_INT_CSR_SUBSRCPND (0X4a000018)
  163. #define s3c2410x_INT_CSR_INTSUBMSK (0X4a00001c)
  164. #define s3c2410x_INT_CSR_EINTSTYLE (0x56000088)
  165. #define s3c2410x_INT_CSR_EINTPEND (0x560000A8)
  166. #define s3c2410x_INT_CSR_EINTMASK   (0x560000A4)
  167. #define EINTSTYLE_LOW (0)
  168. #define EINTSTYLE_HIGH (1)
  169. #define EINTSTYLE_FALL (2)
  170. #define EINTSTYLE_RISE (4)
  171. #define EINTSTYLE_BOTHEDGE (6)
  172. #define EINT0_7_STYLE ((EINTSTYLE_HIGH<<0)+(EINTSTYLE_RISE<<4)+(EINTSTYLE_FALL<<8)+(EINTSTYLE_FALL<<12)+(EINTSTYLE_LOW<<16)+(EINTSTYLE_LOW<<20)+(EINTSTYLE_LOW<<24)+(EINTSTYLE_LOW<<28))
  173. /* EINT0 for CS8900A *//* EINT1 for EOC of TLV1543*//* EINT2 for OML_CNTL *//* EINT3 for RST_4S1 *//* EINT4 *//* EINT5 *//* EINT6 *//* EINT7 */
  174. #define INT_LVL_EINT_0 0
  175. #define INT_LVL_EINT_1 1
  176. #define INT_LVL_EINT_2 2
  177. #define INT_LVL_EINT_3 3
  178. #define INT_LVL_EINT_4_7 4
  179. #define INT_LVL_EINT_8_23 5
  180. /* Reserved 6 */
  181. #define INT_LVL_nBATT_FLT 7
  182. #define INT_LVL_TICK 8
  183. #define INT_LVL_WDT 9
  184. #define INT_LVL_TIMER_0 10
  185. #define INT_LVL_TIMER_1 11
  186. #define INT_LVL_TIMER_2 12
  187. #define INT_LVL_TIMER_3 13
  188. #define INT_LVL_TIMER_4 14
  189. #define INT_LVL_UART_2 15
  190. #define INT_LVL_LCD 16
  191. #define INT_LVL_DMA_0 17
  192. #define INT_LVL_DMA_1 18
  193. #define INT_LVL_DMA_2 19
  194. #define INT_LVL_DMA_3 20
  195. #define INT_LVL_SDI 21
  196. #define INT_LVL_SPI_0 22
  197. #define INT_LVL_UART_1 23
  198. /* Reserved 24 */
  199. #define INT_LVL_USBD 25
  200. #define INT_LVL_USBH 26
  201. #define INT_LVL_IIC 27
  202. #define INT_LVL_UART_0 28
  203. #define INT_LVL_SPI_1 29
  204. #define INT_LVL_RTC 30
  205. #define INT_LVL_ADC 31
  206. #define IRQ_EINT4           32
  207. #define IRQ_EINT5           33
  208. #define IRQ_EINT6           34
  209. #define IRQ_EINT7           35
  210. #define IRQ_EINT8           36
  211. #define IRQ_EINT9           37
  212. #define IRQ_EINT10          38
  213. #define IRQ_EINT11          39
  214. #define IRQ_EINT12          40
  215. #define IRQ_EINT13          41
  216. #define IRQ_EINT14          42
  217. #define IRQ_EINT15          43
  218. #define IRQ_EINT16          44
  219. #define IRQ_EINT17          45
  220. #define IRQ_EINT18          46
  221. #define IRQ_EINT19          47
  222. #define IRQ_EINT20          48
  223. #define IRQ_EINT21          49
  224. #define IRQ_EINT22          50
  225. #define IRQ_EINT23          51
  226. #define SUBINT_LVL_RXD0 0
  227. #define SUBINT_LVL_TXD0 1
  228. #define SUBINT_LVL_ERR0 2
  229. #define SUBINT_LVL_RXD1 3
  230. #define SUBINT_LVL_TXD1 4
  231. #define SUBINT_LVL_ERR1 5
  232. #define SUBINT_LVL_RXD2 6
  233. #define SUBINT_LVL_TXD2 7
  234. #define SUBINT_LVL_ERR2 8
  235. #define SUBINT_LVL_TC   9
  236. #define SUBINT_LVL_ADC 10
  237. /* interrupt vectors */
  238. #define INT_VEC_EINT_0 IVEC_TO_INUM(INT_LVL_EINT_0)
  239. #define INT_VEC_EINT_1 IVEC_TO_INUM(INT_LVL_EINT_1)
  240. #define INT_VEC_EINT_2 IVEC_TO_INUM(INT_LVL_EINT_2)
  241. #define INT_VEC_EINT_3 IVEC_TO_INUM(INT_LVL_EINT_3)
  242. #define INT_VEC_EINT_4_7 IVEC_TO_INUM(INT_LVL_EINT_4_7)
  243. #define INT_VEC_EINT_8_23 IVEC_TO_INUM(INT_LVL_EINT_8_23)
  244. /* Reserved 6 */
  245. #define INT_VEC_nBATT_FLT IVEC_TO_INUM(INT_LVL_nBATT_FLT)
  246. #define INT_VEC_TICK IVEC_TO_INUM(INT_LVL_TICK)
  247. #define INT_VEC_WDT IVEC_TO_INUM(INT_LVL_WDT)
  248. #define INT_VEC_TIMER_0 IVEC_TO_INUM(INT_LVL_TIMER_0)
  249. #define INT_VEC_TIMER_1 IVEC_TO_INUM(INT_LVL_TIMER_1)
  250. #define INT_VEC_TIMER_2 IVEC_TO_INUM(INT_LVL_TIMER_2)
  251. #define INT_VEC_TIMER_3 IVEC_TO_INUM(INT_LVL_TIMER_3)
  252. #define INT_VEC_TIMER_4 IVEC_TO_INUM(INT_LVL_TIMER_4)
  253. #define INT_VEC_UART_2 IVEC_TO_INUM(INT_LVL_UART_2)
  254. #define INT_VEC_LCD IVEC_TO_INUM(INT_LVL_LCD)
  255. #define INT_VEC_DMA_0 IVEC_TO_INUM(INT_LVL_DMA_0)
  256. #define INT_VEC_DMA_1 IVEC_TO_INUM(INT_LVL_DMA_1)
  257. #define INT_VEC_DMA_2 IVEC_TO_INUM(INT_LVL_DMA_2)
  258. #define INT_VEC_DMA_3 IVEC_TO_INUM(INT_LVL_DMA_3)
  259. #define INT_VEC_SDI IVEC_TO_INUM(INT_LVL_SDI)
  260. #define INT_VEC_SPI_0 IVEC_TO_INUM(INT_LVL_SPI_0)
  261. #define INT_VEC_UART_1 IVEC_TO_INUM(INT_LVL_UART_1)
  262. /* Reserved 24 */
  263. #define INT_VEC_USBD IVEC_TO_INUM(INT_LVL_USBD)
  264. #define INT_VEC_USBH IVEC_TO_INUM(INT_LVL_USBH)
  265. #define INT_VEC_IIC IVEC_TO_INUM(INT_LVL_IIC)
  266. #define INT_VEC_UART_0 IVEC_TO_INUM(INT_LVL_UART_0)
  267. #define INT_VEC_SPI_1 IVEC_TO_INUM(INT_LVL_SPI_1)
  268. #define INT_VEC_RTC IVEC_TO_INUM(INT_LVL_RTC)
  269. #define INT_VEC_ADC IVEC_TO_INUM(INT_LVL_ADC)
  270. /* DMA for s3c2410x */
  271. #define rDISRC0 (0x4b000000)
  272. #define rDISRC1 (0x4b000040)
  273. #define rDISRC2 (0x4b000080)
  274. #define rDISRC3 (0x4b0000c0)
  275. #define rDISRC_MASK ((1<<31)-1)
  276. #define rDISRCC0 (0x4b000004)
  277. #define rDISRCC1 (0x4b000044)
  278. #define rDISRCC2 (0x4b000084)
  279. #define rDISRCC3 (0x4b0000c4)
  280. #define rDISRCC_INC_INC (0<<0)
  281. #define rDISRCC_INC_FIXED (1<<0)
  282. #define rDISRCC_LOC_AHB (0<<1)
  283. #define rDISRCC_LOC_APB (1<<1)
  284. #define rDIDST0 (0x4b000008)
  285. #define rDIDST1 (0x4b000048)
  286. #define rDIDST2 (0x4b000088)
  287. #define rDIDST3 (0x4b0000c8)
  288. #define rDIDST_MASK (rDISRC_MASK)
  289. #define rDIDSTC0 (0x4b00000c)
  290. #define rDIDSTC1 (0x4b00004c)
  291. #define rDIDSTC2 (0x4b00008c)
  292. #define rDIDSTC3 (0x4b0000cc)
  293. #define rDIDSTC_INC_INC rDISRCC_INC_INC
  294. #define rDIDSTC_INC_FIXED rDISRCC_INC_FIXED
  295. #define rDIDSTC_LOC_AHB rDISRCC_LOC_AHB
  296. #define rDIDSTC_LOC_APB rDISRCC_LOC_APB
  297. #define rDCON0 (0x4b000010)
  298. #define rDCON1 (0x4b000050)
  299. #define rDCON2 (0x4b000090)
  300. #define rDCON3 (0x4b0000d0)
  301. #define rDCON_TC_MASK ((1<<20)-1)
  302. #define rDCON_DSZ_8 (0<<20)
  303. #define rDCON_DSZ_16 (1<<20)
  304. #define rDCON_DSZ_32 (2<<20)
  305. #define rDCON_RELOAD_AUTO (0<<22)
  306. #define rDCON_RELOAD_OFF (1<<22)
  307. #define rDCON_SE_SW (0<<23)
  308. #define rDCON_SE_HW (1<<23)
  309. #define rDCON0_HWSRCSEL_nXDREQ0 (0<<24)
  310. #define rDCON0_HWSRCSEL_UART0 (1<<24)
  311. #define rDCON0_HWSRCSEL_SDI (2<<24)
  312. #define rDCON0_HWSRCSEL_TIMER (3<<24)
  313. #define rDCON_HWSRCSEL_USB (4<<24)
  314. #define rDCON1_HWSRCSEL_nXDREQ1 (0<<24)
  315. #define rDCON1_HWSRCSEL_UART1 (1<<24)
  316. #define rDCON1_HWSRCSEL_I2SSDI (2<<24)
  317. #define rDCON1_HWSRCSEL_SPI (3<<24)
  318. #define rDCON2_HWSRCSEL_I2SSDO (0<<24)
  319. #define rDCON2_HWSRCSEL_I2SSDI (1<<24)
  320. #define rDCON2_HWSRCSEL_SDI (2<<24)
  321. #define rDCON2_HWSRCSEL_TIMER (3<<24)
  322. #define rDCON3_HWSRCSEL_UART2 (0<<24)
  323. #define rDCON3_HWSRCSEL_SDI (1<<24)
  324. #define rDCON3_HWSRCSEL_SPI (2<<24)
  325. #define rDCON3_HWSRCSEL_TIMER (3<<24)
  326. #define rDCON_SERVMODE_SINGLE (0<<27)
  327. #define rDCON_SERVMODE_WHOLE (1<<27)
  328. #define rDCON_TSZ_ONE (0<<28)
  329. #define rDCON_TSZ_FOUR (1<<28)
  330. #define rDCON_INT_OFF (0<<29)
  331. #define rDCON_INT_ON (1<<29)
  332. #define rDCON_SYNC_APB (0<<30)
  333. #define rDCON_SYNC_AHB (1<<30)
  334. #define rDCON_DMD_MODE (0<<31)
  335. #define rDCON_HS_MODE (1<<31)
  336. #define rDCSRC0 (0x4b000018)
  337. #define rDCSRC1 (0x4b000058)
  338. #define rDCSRC2 (0x4b000098)
  339. #define rDCSRC3 (0x4b0000d8)
  340. #define rDCDST0 (0x4b00001c)
  341. #define rDCDST1 (0x4b00005c)
  342. #define rDCDST2 (0x4b00009c)
  343. #define rDCDST3 (0x4b0000dc)
  344. #define rDMASKTRIG0 (0x4b000020)
  345. #define rDMASKTRIG1 (0x4b000060)
  346. #define rDMASKTRIG2 (0x4b0000a0)
  347. #define rDMASKTRIG3 (0x4b0000e0)
  348. /* definitions for the s3c2410x UART */
  349. #define UART_XTAL_FREQ s3c2410x_PCLK /* UART baud rate clk freq */
  350. #define N_s3c2410x_UART_CHANNELS 2 /* number of AMBA UART chans */
  351. #define N_SIO_CHANNELS N_s3c2410x_UART_CHANNELS
  352. #define N_UART_CHANNELS N_s3c2410x_UART_CHANNELS
  353. #define UART_0_BASE_ADR 0x50000000 /* UART 0 base address */
  354. #define UART_1_BASE_ADR 0x50004000 /* UART 1 base address */
  355. /* definitions for the s3c2410x Timer */
  356. #define s3c2410x_TIMER_BASE 0x51000000 /* Address of base of timer */
  357. #define s3c2410x_TIMER0_BASE ((s3c2410x_TIMER_BASE) + 0x0c)
  358. #define s3c2410x_TIMER1_BASE ((s3c2410x_TIMER_BASE) + 0x18)
  359. #define s3c2410x_TIMER2_BASE ((s3c2410x_TIMER_BASE) + 0x24)
  360. #define s3c2410x_TIMER3_BASE ((s3c2410x_TIMER_BASE) + 0x30)
  361. #define s3c2410x_TIMER4_BASE ((s3c2410x_TIMER_BASE) + 0x3c)
  362. #define SYS_TIMER_BASE s3c2410x_TIMER0_BASE
  363. #define AUX_TIMER_BASE s3c2410x_TIMER1_BASE
  364. #define SYS_TIMER_INT_LVL (INT_LVL_TIMER_0)
  365. #define AUX_TIMER_INT_LVL (INT_LVL_TIMER_1)
  366. #define SYS_TIMER_INT_VEC (INT_VEC_TIMER_0)
  367. #define AUX_TIMER_INT_VEC (INT_VEC_TIMER_1)
  368. #define SYS_TIMER_CLK (s3c2410x_PCLK)
  369. #define AUX_TIMER_CLK (s3c2410x_PCLK)
  370. /* for timer base */
  371. #define OFFSET_TCFG0 (0x00)
  372. #define OFFSET_TCFG1 (0x04)
  373. #define OFFSET_TCON (0x08)
  374. /* for timerX base */
  375. #define OFFSET_TCNTB (0x00)
  376. #define OFFSET_TCMPB (0x04)
  377. #define OFFSET_TCNTO (0x08)
  378. /* Timer clock source frequency = (50*1000000)/(250x2) = 100 000 */
  379. #define TCFG0_INIT_VALUE (0x0000f9f9) /* prescaler0..1 = 249 + 1 */
  380. #define TCFG1_INIT_VALUE (0x00000000) /* MUX0..4 = 1/2 */
  381. /* bit for TCON */
  382. #define BIT_TIMER0_EN (1<<0)
  383. #define BIT_TIMER0_MU (1<<1)
  384. #define BIT_TIMER0_IV (1<<2)
  385. #define BIT_TIMER0_RE (1<<3)
  386. #define BIT_TIMER1_EN (1<<8)
  387. #define BIT_TIMER1_MU (1<<9)
  388. #define BIT_TIMER1_IV (1<<10)
  389. #define BIT_TIMER1_RE (1<<11)
  390. #define BIT_TIMER2_EN (1<<12)
  391. #define BIT_TIMER2_MU (1<<13)
  392. #define BIT_TIMER2_IV (1<<14)
  393. #define BIT_TIMER2_RE (1<<15)
  394. #define BIT_TIMER3_EN (1<<16)
  395. #define BIT_TIMER3_MU (1<<17)
  396. #define BIT_TIMER3_IV (1<<18)
  397. #define BIT_TIMER3_RE (1<<19)
  398. #define BIT_TIMER4_EN (1<<20)
  399. #define BIT_TIMER4_MU (1<<21)
  400. #define BIT_TIMER4_RE (1<<22)
  401. #define BIT_SYS_TIMER_EN BIT_TIMER0_EN
  402. #define BIT_SYS_TIMER_MU BIT_TIMER0_MU
  403. #define BIT_SYS_TIMER_IV BIT_TIMER0_IV
  404. #define BIT_SYS_TIMER_RE BIT_TIMER0_RE
  405. #define BIT_AUX_TIMER_EN BIT_TIMER1_EN
  406. #define BIT_AUX_TIMER_MU BIT_TIMER1_MU
  407. #define BIT_AUX_TIMER_IV BIT_TIMER1_IV
  408. #define BIT_AUX_TIMER_RE BIT_TIMER1_RE
  409. #define MASTER_TIMER_BASE s3c2410x_TIMER_BASE
  410. /*------------------------------------------------------------------------------------------------*/
  411. /* Bit field definitions */
  412. #define BIT0                            0x00000001
  413. #define BIT1                            0x00000002
  414. #define BIT2                            0x00000004
  415. #define BIT3                            0x00000008
  416. #define BIT4                            0x00000010
  417. #define BIT5                            0x00000020
  418. #define BIT6                            0x00000040
  419. #define BIT7                            0x00000080
  420. #define BIT8                            0x00000100
  421. #define BIT9                            0x00000200
  422. #define BIT10                           0x00000400
  423. #define BIT11                           0x00000800
  424. #define BIT12                           0x00001000
  425. #define BIT13                           0x00002000
  426. #define BIT14                           0x00004000
  427. #define BIT15                           0x00008000
  428. #define BIT16                           0x00010000
  429. #define BIT17                           0x00020000
  430. #define BIT18                           0x00040000
  431. #define BIT19                           0x00080000
  432. #define BIT20                           0x00100000
  433. #define BIT21 0x00200000
  434. #define BIT22 0x00400000
  435. #define BIT23 0x00800000
  436. #define BIT24 0x01000000
  437. #define BIT25 0x02000000
  438. #define BIT26 0x04000000
  439. #define BIT27 0x08000000
  440. #define BIT28 0x10000000
  441. #define BIT29 0x20000000
  442. #define BIT30 0x40000000
  443. #define BIT31 0x80000000
  444. /* Handy sizes */
  445. #define SZ_1K                           0x00000400
  446. #define SZ_4K                           0x00001000
  447. #define SZ_8K                           0x00002000
  448. #define SZ_16K                          0x00004000
  449. #define SZ_64K                          0x00010000
  450. #define SZ_128K                         0x00020000
  451. #define SZ_256K                         0x00040000
  452. #define SZ_512K                         0x00080000
  453. #define SZ_1M                           0x00100000
  454. #define SZ_2M                           0x00200000
  455. #define SZ_4M                           0x00400000
  456. #define SZ_8M                           0x00800000
  457. #define SZ_16M                          0x01000000
  458. #define SZ_32M                          0x02000000
  459. #define SZ_64M                          0x04000000
  460. #define SZ_128M                         0x08000000
  461. #define SZ_256M                         0x10000000
  462. #define SZ_512M                         0x20000000
  463. #define SZ_1G                           0x40000000
  464. #define SZ_2G                           0x80000000
  465. #ifdef __cplusplus
  466. }
  467. #endif
  468. #endif /* INCs3c2410xh */