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

Windows CE

开发平台:

Windows_Unix

  1. // Copyright (c) 1999-2000 Microsoft Corporation.  All rights reserved.
  2. /*
  3. * SA1100 defines
  4. */
  5. #define EXT(d, b) ((((unsigned int)(d))>>(b))&1)
  6. #define EXTV(d, hb, lb)
  7.  (((((unsigned int)(d))>>(lb))&((((unsigned int)0xffffffff)<<(31-(hb)))>>((lb)+(31-(hb))))) & 0xffffffff)
  8. /*  System Control Module IC Register Locations     */
  9. #define IC_BASE     0xA9050000 /*  SCM IC Base      */
  10. struct icreg {
  11. int icip; // R
  12. int icmr; // RW
  13. int iclr; // RW
  14. int icr_0x0C;
  15. int icfp; //R
  16. int icr_0x14;
  17. int icr_0x18;
  18. int icr_0x1C;
  19. int icpr; // R
  20. };
  21. // SA1100 Interrupt controller bit positions
  22. #define  RTC_ALM  0x80000000
  23. #define HZ_TIC  0x40000000
  24. #define OS_TIMER3  0x20000000
  25. #define OS_TIMER2  0x10000000
  26. #define OS_TIMER1  0x08000000
  27. #define OS_TIMER0  0x04000000
  28. #define IC_DMA_CH5  0x02000000
  29. #define IC_DMA_CH4  0x01000000
  30. #define IC_DMA_CH3  0x00800000
  31. #define IC_DMA_CH2  0x00400000
  32. #define IC_DMA_CH1  0x00200000
  33. #define IC_DMA_CH0  0x00100000
  34. #define SERIAL_4B  0x00080000  // SSP
  35. #define SERIAL_4A  0x00040000  // MCP
  36. #define SERIAL_3  0x00020000  // UART
  37. #define SERIAL_2  0x00010000  // HSSP/UART
  38. #define SERIAL_1B  0x00008000  // UART Interrupt
  39. #define SERIAL_1A  0x00004000  // SDLC Interrupt
  40. #define SERIAL_0  0x00002000  // UDC 
  41. #define LCD_CTRL  0x00001000
  42. #define GPIO_GRP  0x00000800
  43. #define GPIO_10  0x00000400
  44. #define GPIO_9  0x00000200
  45. #define GPIO_8  0x00000100
  46. #define GPIO_7  0x00000080
  47. #define GPIO_6  0x00000040
  48. #define GPIO_5  0x00000020
  49. #define GPIO_4  0x00000010
  50. #define  GPIO_3   0x00000008
  51. #define    GPIO_2  0x00000004
  52. #define GPIO_1  0x00000002
  53. #define GPIO_0  0x00000001
  54. /*   System Control Module GPIO Register Locations     */
  55. #define GPIO_BASE     0xA9040000 /*  SCM GP BASE         */
  56. struct gpioreg {
  57. int gplr; // R
  58. int gpdr; // RW
  59. int gpsr; // W
  60. int gpcr; // W
  61. int grer; // RW
  62. int gfer; // RW
  63. int gedr; // RW
  64. int gafr; // RW
  65. };
  66. #define OST_BASE 0xA9000000
  67. struct ostreg {
  68. int osmr0;
  69. int osmr1;
  70. int osmr2;
  71. int osmr3;
  72. int oscr;
  73. int ossr;
  74. int ower;
  75. int oier;
  76. };
  77. #define OSSR_M_M0 0x00000001
  78. #define OSSR_M_M1 0x00000002
  79. #define OSSR_M_M2 0x00000004
  80. #define OSSR_M_M3 0x00000008
  81. #define OIER_M_E0 0x00000001
  82. #define OIER_M_E1 0x00000002
  83. #define OIER_M_E2 0x00000004
  84. #define OIER_M_E3 0x00000008
  85. //Real time clock defines
  86. #define RTC_BASE     0xA9010000
  87. struct rtcreg{
  88.    int rtar;
  89.    int rcnr;
  90.    int rttr;
  91.    int pad;
  92.    int rtsr;
  93.    };
  94. // RTC Status reg bits
  95. #define RTC_AL    0x00000001     // Alarm detected
  96. #define RTC_HZ    0x00000002     // 1 HZ rising edge detected
  97. #define RTC_ALE   0x00000004     // Alarm interrupt enabled
  98. #define RTC_HZE   0x00000008     // 1 HZ interrupt enabled
  99. #define VIDEO_BASE   0xAB100000
  100. struct lcd_regs {
  101.   int Control0;     /* LCCR0 */
  102.   int Status;       /* LCSR  */
  103.   int Reserved1;    /* Pad   */
  104.   int Reserved2;    /* Pad   */
  105.   int DMA1Base;     /* DBAR1 */
  106.   int DMA1Current;  /* DCAR1 */
  107.   int DMA2Base;     /* DBAR2 */
  108.   int DMA2Current;  /* DCAR2 */
  109.   int Control1;     /* LCCR1 */
  110.   int Control2;     /* LCCR2 */
  111.   int Control3;     /* LCCR3 */
  112. };
  113. /* LCD Control Register 0 Bits */
  114. #define LCD0_M_LEN 0x00000001
  115. #define LCD0_M_CMS 0x00000002
  116. #define LCD0_M_SDS 0x00000004
  117. #define LCD0_M_PAS 0x00000080
  118. #define LCD0_M_BLE 0x00000100
  119. #define LCD0_M_DPD 0x00000200
  120. #define LCD0_M_FDD 0x000FF000
  121. #define LCD0_V_LEN 0
  122. #define LCD0_V_CMS 1
  123. #define LCD0_V_SDS 2
  124. #define LCD0_V_PAS 7
  125. #define LCD0_V_BLE 8
  126. #define LCD0_V_DPD 9
  127. #define LCD0_V_FDD 12
  128. /* LCD control Register 1 Bits */
  129. #define LCD1_M_PPL 0x000003FF
  130. #define LCD1_M_HSW 0x0000FC00
  131. #define LCD1_M_ELW 0x00FF0000
  132. #define LCD1_M_BLW 0xFF000000
  133. #define LCD1_V_PPL 0
  134. #define LCD1_V_HSW 10
  135. #define LCD1_V_ELW 16
  136. #define LCD1_V_BLW 24
  137. /* LCD control Register 2 Bits */
  138. #define LCD2_M_LPP 0x000003FF
  139. #define LCD2_M_VSW 0x0000FC00
  140. #define LCD2_M_EFW 0x00FF0000
  141. #define LCD2_M_BFW 0xFF000000
  142. #define LCD2_V_LPP 0
  143. #define LCD2_V_VSW 10
  144. #define LCD2_V_EFW 16
  145. #define LCD2_V_BFW 24
  146. /* LCD control Register 2 Bits */
  147. #define LCD3_M_PCD 0x000000FF
  148. #define LCD3_M_ACB 0x0000FF00
  149. #define LCD3_M_API 0x000F0000
  150. #define LCD3_M_VSP 0x00100000
  151. #define LCD3_M_HSP 0x00200000
  152. #define LCD3_M_PCP 0x00400000
  153. #define LCD3_M_OEP 0x00800000
  154. #define LCD3_V_PCD 0
  155. #define LCD3_V_ACB 8
  156. #define LCD3_V_API 16
  157. #define LCD3_V_VSP 20
  158. #define LCD3_V_HSP 21
  159. #define LCD3_V_PCP 22
  160. #define LCD3_V_OEP 23
  161. struct sspreg {
  162. int sscr0;
  163. int sscr1;
  164. int ssppad0;
  165. int ssdr;
  166. int ssppad1;
  167. int sssr;
  168. };
  169. /* SSP CR0 */
  170. #define SSPCR0_M_DSS 0x0000000F
  171. #define SSPCR0_M_FRF 0x00000030
  172. #define SSPCR0_M_SSE 0x00000080
  173. #define SSPCR0_M_SCR 0x0000FF00
  174. #define SSPCR0_V_DSS 0
  175. #define SSPCR0_V_FRF 4
  176. #define SSPCR0_V_SSE 7
  177. #define SSPCR0_V_SCR 8
  178. /* SSP CR1 */
  179. #define SSPCR1_M_RIM 0x00000001
  180. #define SSPCR1_M_TIN 0x00000002
  181. #define SSPCR1_M_LBM 0x00000004
  182. #define SSPCR1_V_RIM 0
  183. #define SSPCR1_V_TIN 1
  184. #define SSPCR1_V_LBM 2
  185. /* SSP status */
  186. #define SSPSR_M_TNF 0x00000002
  187. #define SSPSR_M_RNE 0x00000004
  188. #define SSPSR_M_BSY 0x00000008
  189. #define SSPSR_M_TFS 0x00000010
  190. #define SSPSR_M_RFS 0x00000020
  191. #define SSPSR_M_ROR 0x00000040
  192. #define SSPSR_V_TNF 1
  193. #define SSPSR_V_RNE 2
  194. #define SSPSR_V_BSY 3
  195. #define SSPSR_V_TFS 4
  196. #define SSPSR_V_RFS 5
  197. #define SSPSR_V_ROR 6
  198. #define SSP_BASE 0xA8070060