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

VxWorks

开发平台:

C/C++

  1. /* m68562.h - Motorola M68562 Serial I/O Chip header */
  2. /* Copyright 1984-1992 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,14nov95,myz   removed some element in M68562_CHAN structure.
  7. 01c,14nov95,myz   added one element int_set in M68562_CHAN structure
  8. 01b,15jun95,ms    updated for new driver.
  9. 01a,14apr95,myz   written (using m68562.h)
  10. */
  11. #ifndef __INCm68562Sioh
  12. #define __INCm68562Sioh
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #include "sioLib.h"
  17. #include "drv/multi/m68562.h"
  18. #define N_CHANNELS      2       /* number of channels per chip */
  19. typedef struct        
  20.     {
  21.     /* always goes first */
  22.     SIO_DRV_FUNCS *     pDrvFuncs;      /* driver functions */
  23.     /* callbacks */
  24.     STATUS      (*getTxChar) ();
  25.     STATUS      (*putRcvChar) ();
  26.     void *      getTxArg;
  27.     void *      putRcvArg;
  28.     USHORT          channelMode; 
  29.     USHORT          chan_num;
  30.     struct M68562_QUSART *pQusart;  /* back pointer to the device */
  31.     char * cmr1;
  32.     char * cmr2;
  33.     char * ss1r;           /* SYN1 /Secondary Adr Reg 1 */
  34.     char * ss2r;           /* SYN2 /Secondary Adr Reg 2 */
  35.     char * tpr;            /* transmitter parameter Reg */
  36.     char * ttr;            /* transmitter timer register */
  37.     char * rpr;            /* receiver parameter register */
  38.     char * rtr;            /* receiver timer register */
  39.     char * ctprh;          /* counter/timer preset register H */
  40.     char * ctprl;          /* counter/timer preset register L */
  41.     char * ctcr;           /* counter/timer control register  */
  42.     char * omr;            /* output and miscellaneous register */
  43.     char * cth;            /* counter/timer high */
  44.     char * ctl;            /* counter/timer low  */
  45.     char * pcr;            /* pin configuration register */
  46.     char * ccr;            /* channel command register   */
  47.     char * tx_data;        /* transmitter data port */
  48.     char * rx_data;        /* receiver data port */
  49.     char * rsr;            /* receiver status register */
  50.     char * trsr;           /* transmitter/receiver state register */
  51.     char * ictsr;          /* input + counter/timer stat register */
  52.     char * ier;            /* interrupt enable register */
  53.     char            rx_rdy;         /* receiver ready bit */
  54.     char            tx_rdy;         /* transmitter ready bit */
  55.     } M68562_CHAN;
  56. typedef struct M68562_QUSART
  57.     {
  58.     M68562_CHAN  channel[N_CHANNELS];
  59.     USHORT      numChannels;
  60.     USHORT      int_vec; 
  61.     volatile char * gsr;             /* general status register */
  62.     volatile char * ivr;             /* interrupt vector register unmodified */
  63.     volatile char * icr;             /* interrupt control register */
  64.     volatile char * ivrm;            /* interrupt vector register modified */
  65.     } M68562_QUSART;
  66. /* port registers */
  67. #define DSC_CMR1A (0x00) /* channel mode reg. 1    */
  68. #define DSC_CMR2A (0x01) /* channel mode reg. 2    */
  69. #define DSC_S1RA (0x02) /* secondary adrs reg1    */
  70. #define DSC_S2RA (0x03) /* secondary adrs reg2    */
  71. #define DSC_TPRA (0x04) /* tx parameter reg.      */
  72. #define DSC_TTRA (0x05) /* tx timing reg.         */
  73. #define DSC_RPRA (0x06) /* rx parameter reg.      */
  74. #define DSC_RTRA (0x07) /* rx timing reg.         */
  75. #define DSC_CTPRHA (0x08) /* counter preset high    */
  76. #define DSC_CTPRLA (0x09) /* counter preset low     */
  77. #define DSC_CTCRA (0x0a) /* counter control reg.   */
  78. #define DSC_OMRA (0x0b) /* output/misc. reg.      */
  79. #define DSC_CTHA (0x0c) /* counter/timer high     */
  80. #define DSC_CTLA (0x0d) /* counter/timer low      */
  81. #define DSC_PCRA (0x0e) /* pin configuration      */
  82. #define DSC_CCRA (0x0f) /* channel command reg.   */
  83. #define DSC_TXFIFOA (0x10) /* tx FIFO                */
  84. #define DSC_RXFIFOA (0x14) /* rx FIFO                */
  85. #define DSC_RSRA (0x18) /* rx status reg.         */
  86. #define DSC_TRSRA (0x19) /* tx/rx status reg.      */
  87. #define DSC_ICTSRA (0x1a) /* counter status reg.    */
  88. #define DSC_GSR (0x1b) /* general status         */
  89. #define DSC_IERA (0x1c) /* interrupt enable       */
  90. #define DSC_IVR (0x1e) /* interrupt vector       */
  91. #define DSC_ICR (0x1f) /* interrupt control      */
  92. #define DSC_CMR1B (0x20) /* channel mode reg. 1    */
  93. #define DSC_CMR2B (0x21) /* channel mode reg. 2    */
  94. #define DSC_S1RB (0x22) /* secondary adrs reg 1   */
  95. #define DSC_S2RB (0x23) /* secondary adrs reg 2   */
  96. #define DSC_TPRB (0x24) /* tx parameter reg.      */
  97. #define DSC_TTRB (0x25) /* tx timing reg.         */
  98. #define DSC_RPRB (0x26) /* rx parameter reg.      */
  99. #define DSC_RTRB (0x27) /* rx timing reg.         */
  100. #define DSC_CTPRHB (0x28) /* counter preset high    */
  101. #define DSC_CTPRLB (0x29) /* counter preset low     */
  102. #define DSC_CTCRB (0x2a) /* counter control reg.   */
  103. #define DSC_OMRB (0x2b) /* output/misc. reg.      */
  104. #define DSC_CTHB (0x2c) /* counter/timer high     */
  105. #define DSC_CTLB (0x2d) /* counter/timer low      */
  106. #define DSC_PCRB (0x2e) /* pin configuration      */
  107. #define DSC_CCRB (0x2f) /* channel command reg.   */
  108. #define DSC_TXFIFOB (0x30) /* tx FIFO                */
  109. #define DSC_RXFIFOB (0x34) /* rx FIFO                */
  110. #define DSC_RSRB (0x38) /* rx status reg.         */
  111. #define DSC_TRSRB (0x39) /* tx/rx status reg.      */
  112. #define DSC_ICTSRB (0x3a) /* count/timer status     */
  113. #define DSC_IERB (0x3c) /* interrupt enable       */
  114. #define DSC_IVRM (0x3e) /* int. vec. modified     */
  115. /* function declarations */
  116. #ifndef _ASMLANGUAGE
  117. #if defined(__STDC__) || defined(__cplusplus)
  118. extern  void m68562TxInt (M68562_CHAN *pDev);
  119. extern  void m68562RxInt (M68562_CHAN *pDev);
  120. extern  void m68562RxTxErrInt (M68562_CHAN *pDev);
  121. extern  void m68562HrdInit (M68562_QUSART *pQusart);
  122. #else /* __STDC__ */
  123. extern  void m68562TxInt ();
  124. extern  void m68562RxInt ();
  125. extern  void m68562RxTxErrInt ();
  126. extern  void m68562HrdInit ();
  127. #endif /* __STDC__ */
  128. #endif /* _ASMLANGUAGE */
  129. #ifdef __cplusplus
  130. }
  131. #endif
  132. #endif /* __INCm68562Sioh */