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

VxWorks

开发平台:

C/C++

  1. /* shScifSio.h - header file for Hitachi SH on-chip SCIF serial driver */
  2. /* Copyright 1984-1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01n,06mar02,h_k  added lsr2 and ss2r2 to SCIF_CHAN and SCIF_LSR2_ORER and
  7.                  SCIF_SS2R2_ORER definitions (SPR #73777).
  8. 01m,15nov00,csi  modification to optimize SMR  and BRR define
  9. 01l,30aug00,zl   added 30MHz PCLK support for SH7600
  10. 01k,04aug00,rsh  Add 33.33Mhz frequency defines for sh7729
  11. 01j,31may00,frf  SH7751 for T2
  12. 01i,05mar99,hk   Sorted out CPU conditional order.
  13. 01h,26nov98,hk   Added support for SH7750.
  14. 01g,10aug98,jmb  reg size fix.
  15. 01f,10aug98,jmb  bugfix.
  16. 01e,10aug98,jmb  Added support for Manta-DSP.
  17. 01d,30jul98,jmb  Added support for Manta-SH3 frequencies.
  18. 01c,30may98,jmb  Added options to support multiple data formats.
  19. 01b,23may98,jmb  Fixed decl's and FCR2 macros, transmit triggers.
  20. 01a,20may98,jmb  Created.
  21. */
  22. #ifndef __INCshScifSioh
  23. #define __INCshScifSioh
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27. #include "sioLib.h"
  28. #include "drv/sio/shSciSio.h"
  29. #if (CPU==SH7750)
  30. #define SZ_SMR2 UINT16
  31. #define SZ_SCR2 UINT16
  32. #define SZ_FCR2 UINT16
  33. #else
  34. #define SZ_SMR2 UINT8
  35. #define SZ_SCR2 UINT8
  36. #define SZ_FCR2 UINT8
  37. #endif
  38. /* device channel structure */
  39. typedef struct
  40.     {
  41.     /* always goes first */
  42.     SIO_DRV_FUNCS * pDrvFuncs; /* driver functions */
  43.     /* callbacks */
  44.     STATUS (*getTxChar) ();
  45.     STATUS (*putRcvChar) ();
  46.     void * getTxArg;
  47.     void * putRcvArg;
  48.     /* info */
  49.     int mode; /* current mode (interrupt or poll) */
  50.     int baud; /* baud rate */
  51.     UINT options; /* data format options */
  52.     /* register addresses */
  53.     volatile SZ_SMR2 * smr2; /* serial mode register */
  54.     volatile UINT8 * brr2; /* bit rate register */
  55.     volatile SZ_SCR2 * scr2; /* serial control register */
  56.     volatile UINT8 * sfdr2; /* transmit FIFO data register */
  57.     volatile UINT16 * ssr2; /* serial status register */
  58.     volatile UINT8 * frdr2; /* receive FIFO data register */
  59.     volatile SZ_FCR2 * fcr2; /* FIFO control register */
  60.     volatile UINT16 * fdr2; /* data count set register */
  61.     volatile UINT16 * lsr2; /* line status register */
  62.     volatile UINT8 * ss2r2; /* serial status 2 register */
  63.     } SCIF_CHAN;
  64. /* Maximum FIFO length */
  65. #define SCIF_FIFO_LEN 16
  66. /* Bit values for FIFO control register */
  67. #define SCIF_FCR2_RTRG 0xc0 /* Read mask for receive trigger */
  68. #define SCIF_FCR2_RTRG_1 0x00    /* 1 char in FIFO triggers receive */
  69. #define SCIF_FCR2_RTRG_4 0x40    /* 4 chars in FIFO triggers receive */
  70. #define SCIF_FCR2_RTRG_8 0x80    /* 8 chars in FIFO triggers receive */
  71. #define SCIF_FCR2_RTRG_14 0xc0    /* 14 chars in FIFO triggers receive */
  72. #define SCIF_FCR2_TTRG 0x30    /* Read mask for transmit trigger */
  73. #define SCIF_FCR2_TTRG_8 0x00    /* */
  74. #define SCIF_FCR2_TTRG_4 0x10    /* */
  75. #define SCIF_FCR2_TTRG_2 0x20    /* */
  76. #define SCIF_FCR2_TTRG_1 0x30    /* */
  77. #define SCIF_FCR2_MCE 0x8     /* Enable RTS/CTS signals */
  78. #define SCIF_FCR2_TFRST 0x4 /* Clear transmit FIFO on reset */
  79. #define SCIF_FCR2_RFRST 0x2     /* Clear receive RIFO on reset */
  80. #define SCIF_FCR2_LOOP 0x1     /* Loopback mode */
  81. /* bit values for ssr (serial status register) */
  82. #define SCIF_SSR2_ER 0x80 /* framing or parity error */
  83. #define SCIF_SSR2_TEND 0x40 /* tranmission end indicator */
  84. #define SCIF_SSR2_TDFE 0x20 /* transmit data FIFO empty */
  85. #define SCIF_SSR2_BRK 0x10 /* break signal received */
  86. #define SCIF_SSR2_FER 0x08 /* framing error */
  87. #define SCIF_SSR2_PER 0x04 /* parity error */
  88. #define SCIF_SSR2_RDF 0x02 /* receive FIFO full */
  89. #define SCIF_SSR2_DR 0x01 /* data ready in receive FIFO */
  90. /* bit value for lsr (line status register) */
  91. #define SCIF_LSR2_ORER 0x1 /* overrun error */
  92. /* bit value for ss2r (serial status 2 register) */
  93. #define SCIF_SS2R2_ORER 0x1 /* overrun error */
  94. /* function prototypes */
  95. #if defined(__STDC__)
  96. extern void shScifDevInit (SCIF_CHAN *pChan); 
  97. extern void shScifIntRcv (SCIF_CHAN *pChan);
  98. extern void shScifIntTx (SCIF_CHAN *pChan);
  99. extern void shScifIntErr (SCIF_CHAN *pChan);
  100. #else /* __STDC__ */
  101. extern void shScifDevInit ();
  102. extern void shScifIntRcv ();
  103. extern void shScifIntTx ();
  104. extern void shScifIntErr ();
  105. #endif /* __STDC__ */
  106. #ifdef __cplusplus
  107. }
  108. #endif /* __cplusplus */
  109. #endif  /* __INCshScifSioh */