[BACK]Return to scifreg.h CVS log [TXT][DIR] Up to [local] / sys / arch / sh / dev

Annotation of sys/arch/sh/dev/scifreg.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: scifreg.h,v 1.1.1.1 2006/10/06 21:02:55 miod Exp $    */
                      2: /* $NetBSD: scifreg.h,v 1.10 2006/02/18 00:41:32 uwe Exp $ */
                      3:
                      4: /*-
                      5:  * Copyright (C) 1999 SAITOH Masanobu.  All rights reserved.
                      6:  *
                      7:  * Redistribution and use in source and binary forms, with or without
                      8:  * modification, are permitted provided that the following conditions
                      9:  * are met:
                     10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
                     12:  * 2. Redistributions in binary form must reproduce the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer in the
                     14:  *    documentation and/or other materials provided with the distribution.
                     15:  * 3. The name of the author may not be used to endorse or promote products
                     16:  *    derived from this software without specific prior written permission.
                     17:  *
                     18:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     19:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     20:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     21:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     22:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     23:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     24:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     25:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     26:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
                     27:  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     28:  */
                     29:
                     30: /*
                     31:  * Serial Communication Interface with FIFO (SCIF)
                     32:  */
                     33:
                     34: #define SH3_SCIF0_BASE 0xa4000150
                     35: #define SH3_SCIF1_BASE 0xa4000140
                     36:
                     37: #define SH4_SCIF_BASE  0xffe80000
                     38:
                     39: #ifdef SH3
                     40:
                     41: /* SH3 definitions */
                     42:
                     43: #define        SCIF_SMR                0x0     /* serial mode */
                     44: #define        SCIF_BRR                0x2     /* bit rate */
                     45: #define        SCIF_SCR                0x4     /* serial control */
                     46: #define        SCIF_FTDR               0x6     /* transmit fifo data */
                     47: #define        SCIF_SSR                0x8     /* serial status */
                     48: #define        SCIF_FRDR               0xa     /* receive fifo data */
                     49: #define        SCIF_FCR                0xc     /* fifo control */
                     50: #define        SCIF_FDR                0xe     /* fifo data count set */
                     51:
                     52: #define        SHREG_SCSMR2  (*(volatile uint8_t  *)(SH3_SCIF0_BASE + SCIF_SMR))
                     53: #define        SHREG_SCBRR2  (*(volatile uint8_t  *)(SH3_SCIF0_BASE + SCIF_BRR))
                     54: #define        SHREG_SCSCR2  (*(volatile uint8_t  *)(SH3_SCIF0_BASE + SCIF_SCR))
                     55: #define        SHREG_SCFTDR2 (*(volatile uint8_t  *)(SH3_SCIF0_BASE + SCIF_FTDR))
                     56: #define        SHREG_SCSSR2  (*(volatile uint16_t *)(SH3_SCIF0_BASE + SCIF_SSR))
                     57: #define        SHREG_SCFRDR2 (*(volatile uint8_t  *)(SH3_SCIF0_BASE + SCIF_FRDR))
                     58: #define        SHREG_SCFCR2  (*(volatile uint8_t  *)(SH3_SCIF0_BASE + SCIF_FCR))
                     59: #define        SHREG_SCFDR2  (*(volatile uint16_t *)(SH3_SCIF0_BASE + SCIF_FDR))
                     60:
                     61: #else  /* !SH3 */
                     62:
                     63: /* SH4 definitions */
                     64:
                     65: #define        SCIF_SMR                0x00    /* serial mode */
                     66: #define        SCIF_BRR                0x04    /* bit rate */
                     67: #define        SCIF_SCR                0x08    /* serial control */
                     68: #define        SCIF_FTDR               0x0c    /* transmit fifo data */
                     69: #define        SCIF_SSR                0x10    /* serial status */
                     70: #define        SCIF_FRDR               0x14    /* receive fifo data */
                     71: #define        SCIF_FCR                0x18    /* fifo control */
                     72: #define        SCIF_FDR                0x1c    /* fifo data count set */
                     73:
                     74: #define SCIF_SPTR              0x20    /* seial port */
                     75: #define SCIF_LSR               0x24    /* line status */
                     76:
                     77: #define        SHREG_SCSMR2  (*(volatile uint16_t *)(SH4_SCIF_BASE + SCIF_SMR))
                     78: #define        SHREG_SCBRR2  (*(volatile uint8_t  *)(SH4_SCIF_BASE + SCIF_BRR))
                     79: #define        SHREG_SCSCR2  (*(volatile uint16_t *)(SH4_SCIF_BASE + SCIF_SCR))
                     80: #define        SHREG_SCFTDR2 (*(volatile uint8_t  *)(SH4_SCIF_BASE + SCIF_FTDR))
                     81: #define        SHREG_SCSSR2  (*(volatile uint16_t *)(SH4_SCIF_BASE + SCIF_SSR))
                     82: #define        SHREG_SCFRDR2 (*(volatile uint8_t  *)(SH4_SCIF_BASE + SCIF_FRDR))
                     83: #define        SHREG_SCFCR2  (*(volatile uint16_t *)(SH4_SCIF_BASE + SCIF_FCR))
                     84: #define        SHREG_SCFDR2  (*(volatile uint16_t *)(SH4_SCIF_BASE + SCIF_FDR))
                     85:
                     86: #define        SHREG_SCSPTR2 (*(volatile uint16_t *)(SH4_SCIF_BASE + SCIF_SPTR))
                     87: #define        SHREG_SCLSR2  (*(volatile uint16_t *)(SH4_SCIF_BASE + SCIF_LSR))
                     88:
                     89: /* alias */
                     90: #define        SHREG_SCSFDR2   SHREG_SCFTDR2
                     91: #define        SHREG_SCFSR2    SHREG_SCSSR2
                     92:
                     93: #define        SCSPTR2_RTSIO           0x0080
                     94: #define        SCSPTR2_RTSDT           0x0040
                     95: #define        SCSPTR2_CTSIO           0x0020
                     96: #define        SCSPTR2_CTSDT           0x0010
                     97: #define        SCSPTR2_SCKIO           0x0008
                     98: #define        SCSPTR2_SCKDT           0x0004
                     99: #define        SCSPTR2_SPB2IO          0x0002
                    100: #define        SCSPTR2_SPB2DT          0x0001
                    101:
                    102: #define SCLSR2_ORER            0x0001  /* overrun error */
                    103:
                    104: #endif /* !SH3 */
                    105:
                    106: /* SMR: serial mode */
                    107: #define SCSMR2_CHR             0x40    /* character width (set = 7bit) */
                    108: #define SCSMR2_PE              0x20    /* Parity Enable */
                    109: #define SCSMR2_O               0x10    /* parity mode Odd */
                    110: #define SCSMR2_STOP            0x08    /* STOP bit (set = 2 stop bits) */
                    111: #define        SCSMR2_CKS1             0x02    /* ClocK Select 1 */
                    112: #define        SCSMR2_CKS0             0x01    /* ClocK Select 0 */
                    113:
                    114: /* SMR: serial mode (for IrDA) */
                    115: #define SCSMR2_IRMOD           0x80    /* IrDA mode */
                    116: #define SCSMR2_ICK3            0x40
                    117: #define SCSMR2_ICK2            0x20
                    118: #define SCSMR2_ICK1            0x10
                    119: #define SCSMR2_ICK0            0x08
                    120: #define SCSMR2_PSEL            0x04    /* Pulse width SELelect */
                    121:
                    122: /* SCR: serial control */
                    123: #define        SCSCR2_TIE              0x80    /* Transmit Interrupt Enable */
                    124: #define        SCSCR2_RIE              0x40    /* Recieve Interrupt Enable */
                    125: #define        SCSCR2_TE               0x20    /* Transmit Enable */
                    126: #define        SCSCR2_RE               0x10    /* Receive Enable */
                    127: #define        SCSCR2_CKE1             0x02    /* ClocK Enable 1 */
                    128: #define        SCSCR2_CKE0             0x01    /* ClocK Enable 0 (not in sh4) */
                    129:
                    130: /* SSR: serial status */
                    131: #define        SCSSR2_ER               0x0080  /* ERror */
                    132: #define        SCSSR2_TEND             0x0040  /* Transmit END */
                    133: #define        SCSSR2_TDFE             0x0020  /* Transmit Data Fifo Empty */
                    134: #define        SCSSR2_BRK              0x0010  /* BReaK detection */
                    135: #define        SCSSR2_FER              0x0008  /* Framing ERror */
                    136: #define        SCSSR2_PER              0x0004  /* Parity ERror */
                    137: #define        SCSSR2_RDF              0x0002  /* Recieve fifo Data Full */
                    138: #define        SCSSR2_DR               0x0001  /* Data Ready */
                    139:
                    140: /* FCR: fifo control */
                    141: #define        SCFCR2_RTRG1            0x80    /* Receive TRiGger 1 */
                    142: #define        SCFCR2_RTRG0            0x40    /* Receive TRiGger 0 */
                    143: #define        SCFCR2_TTRG1            0x20    /* Transmit TRiGger 1 */
                    144: #define        SCFCR2_TTRG0            0x10    /* Transmit TRiGger 0 */
                    145: #define        SCFCR2_MCE              0x08    /* Modem Control Enable */
                    146: #define        SCFCR2_TFRST            0x04    /* Transmit Fifo register ReSeT */
                    147: #define        SCFCR2_RFRST            0x02    /* Receive Fifo register ReSeT */
                    148: #define        SCFCR2_LOOP             0x01    /* LOOP back test */
                    149:
                    150: #define        FIFO_RCV_TRIGGER_1      0x00
                    151: #define        FIFO_RCV_TRIGGER_4      0x40
                    152: #define        FIFO_RCV_TRIGGER_8      0x80
                    153: #define        FIFO_RCV_TRIGGER_14     0xc0
                    154:
                    155: #define        FIFO_XMT_TRIGGER_8      0x00
                    156: #define        FIFO_XMT_TRIGGER_4      0x10
                    157: #define        FIFO_XMT_TRIGGER_2      0x20
                    158: #define        FIFO_XMT_TRIGGER_1      0x30
                    159:
                    160: /* FDR: fifo data count set */
                    161: #define        SCFDR2_TXCNT            0xff00  /* Tx CouNT */
                    162: #define        SCFDR2_RECVCNT          0x00ff  /* Rx CouNT */
                    163: #define        SCFDR2_TXF_FULL         0x1000  /* Tx FULL */
                    164: #define        SCFDR2_RXF_EPTY         0x0000  /* Rx EMPTY */

CVSweb