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

VxWorks

开发平台:

Objective-C

  1. /* s3c2410xSio.h - Samsung s3c2410x UART header file */
  2. /* Copyright 2004 HITSAT, Inc. */
  3. #ifndef __INCs3c2410xSioh 
  4. #define __INCs3c2410xSioh 
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. /* Register description OF Samsung s3c2410x UART */
  9. #ifndef _ASMLANGUAGE
  10. /* Register offsets from base address */
  11. #define OFFSET_ULCON (0x00)
  12. #define OFFSET_UCON (0x04)
  13. #define OFFSET_UFCON (0x08)
  14. #define OFFSET_UMCON (0x0c)
  15. /**/
  16. #define OFFSET_UTRSTAT (0x10)
  17. #define OFFSET_UERSTAT (0x14)
  18. #define OFFSET_UFSTAT (0x18)
  19. #define OFFSET_UMSTAT (0x1c)
  20. /**/
  21. #define OFFSET_UTXH (0x20)
  22. #define OFFSET_URXH (0x24)
  23. #define OFFSET_UDIV (0x28)
  24. /* bit mask definitions within ULCON register */
  25. /* bit6 */
  26. #define InfraRed_OFF (0)
  27. #define InfraRed_ON (0x00000001<<6)
  28. /* bit5..3 */
  29. #define NO_PARITY (0)
  30. #define ODD_PARITY (0x00000004<<3)
  31. #define EVEN_PARITY (0x00000005<<3)
  32. /* bit2 */
  33. #define ONE_STOPBIT (0)
  34. #define TWO_STOPBIT (0x00000001<<2)
  35. /* bit1..0 */
  36. #define DATABIT_5 (0)
  37. #define DATABIT_6 (0x00000001)
  38. #define DATABIT_7 (0x00000002)
  39. #define DATABIT_8 (0x00000003)
  40. /* bit mask definitions within UCON register */
  41. /* bit10 */
  42. #define CLK_PCLK (0)
  43. #define CLK_UCLK (0x00000001<<10)
  44. /* bit9 */
  45. #define TxInt_Pulse (0)
  46. #define TxInt_Level (0x00000001<<9)
  47. /* bit8 */
  48. #define RxInt_Pulse (0)
  49. #define RxInt_Level (0x00000001<<8)
  50. /* bit7 */
  51. #define RxTimeOut_OFF (0)
  52. #define RxTimeOut_ON (0x00000001<<7)
  53. /* bit6 */
  54. #define RxErrInt_OFF (0)
  55. #define RxErrInt_ON (0x00000001<<6)
  56. /* bit5 */
  57. #define LOOPBACK_OFF (0)
  58. #define LOOPBACK_ON (0x00000001<<5)
  59. /* bit4 */
  60. #define TxBreak_OFF (0)
  61. #define TxBreak_ON (0x00000001<<4)
  62. /* bit3..2 */
  63. #define TxMode_OFF (0)
  64. #define TxMode_IntPoll (0x00000001<<2)
  65. #define TxMode_DMA03 (0x00000002<<2)
  66. #define TxMode_DMA1 (0x00000003<<2)
  67. /* bit1..0 */
  68. #define RxMode_OFF (0)
  69. #define RxMode_IntPoll (0x00000001)
  70. #define RxMode_DMA03 (0x00000002)
  71. #define RxMode_DMA1 (0x00000003)
  72. /* bit mask definitions within UFCON register */
  73. /* bit7..6 */
  74. #define TxTrigger_0 (0)
  75. #define TxTrigger_4 (0x00000001<<6)
  76. #define TxTrigger_8 (0x00000002<<6)
  77. #define TxTrigger_12 (0x00000003<<6)
  78. /* bit5..4 */
  79. #define RxTrigger_4 (0)
  80. #define RxTrigger_8 (0x00000001<<4)
  81. #define RxTrigger_12 (0x00000002<<4)
  82. #define RxTrigger_16 (0x00000003<<4)
  83. /* bit2 */
  84. #define TxFifoReset (0x00000001<<2)
  85. /* bit1 */
  86. #define RxFifoReset (0x00000001<<1)
  87. /* bit0 */
  88. #define FIFO_OFF (0)
  89. #define FIFO_ON (0x00000001)
  90. /* bit mask definitions within UMCON register */
  91. /* bit4 */
  92. #define AFC_OFF (0)
  93. #define AFC_ON (0x00000001<<4)
  94. /* bit0 */
  95. #define RTS_HIGH (0)
  96. #define RTS_LOW (0x00000001<<0)
  97. /* bit mask definitions within UTRSTAT register */
  98. #define UTRSTAT_TRNSR_EM (0x00000001<<2)
  99. #define UTRSTAT_TB_EM (0x00000001<<1)
  100. #define UTRSTAT_RB_RDY (0x00000001<<0)
  101. /* bit mask definitions within UERSTAT register */
  102. #define UERSTAT_FRM_ERR (0x00000001<<2)
  103. #define UERSTAT_OVR_ERR (0x00000001<<0)
  104. /* bit mask definitions within UFSTAT register */
  105. #define UFSTAT_TXFULL (0x00000001<<9)
  106. #define UFSTAT_RXFULL (0x00000001<<8)
  107. #define UFSTAT_TFCNT (0x00000015<<4)
  108. #define UFSTAT_RFCNT (0x00000015<<0)
  109. /* bit mask definitions within UMSTAT register */
  110. #define UMSTAT_DELTA_CTS (0x00000001<<2)
  111. #define UMSTAT_CTS_LVL (0x00000001<<0)
  112. /* bit mask definitions within UXXH register */
  113. #define UXXH_BYTE (0x000000ff<<0)
  114. /* bit mask definitions within UDIV register */
  115. #define UDIV_DIV (0x0000ffff<<0)
  116. typedef struct s3c2410x_CHAN
  117. {
  118. /* must be first */
  119. SIO_CHAN sio; /* standard SIO_CHAN element */
  120. /* callbacks */
  121. STATUS (*getTxChar) ();  /* installed Tx callback routine */
  122. STATUS (*putRcvChar) (); /* installed Rx callback routine */
  123. void * getTxArg; /* argument to Tx callback routine */
  124. void * putRcvArg; /* argument to Rx callback routine */
  125. UINT32* regs; /* s3c2410x registers */
  126. UINT8  intLevelRx; /* Rx Interrupt level for this device */
  127. UINT8  intLevelTx; /* Tx Interrupt level for this device */
  128. UINT32 channelMode; /* such as INT, POLL modes */
  129. int baudRate; /* the current baud rate */
  130. UINT32 xtal; /* UART clock frequency */     
  131. int options;
  132. } s3c2410x_CHAN;
  133. /* function declarations */
  134. extern void s3c2410xSioInt (s3c2410x_CHAN *pChan);
  135. extern void s3c2410xSioIntTx (s3c2410x_CHAN *pChan);
  136. extern void s3c2410xSioIntRx (s3c2410x_CHAN *pChan);
  137. extern void s3c2410xSioDevInit (s3c2410x_CHAN *pChan);
  138. #endif /* _ASMLANGUAGE */
  139. #ifdef __cplusplus
  140. }
  141. #endif
  142.  
  143. #endif /* __INCs3c2410xSioh */