The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/ic/ns16550.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright (c) 1991 The Regents of the University of California.
    3  * All rights reserved.
    4  *
    5  * Redistribution and use in source and binary forms, with or without
    6  * modification, are permitted provided that the following conditions
    7  * are met:
    8  * 1. Redistributions of source code must retain the above copyright
    9  *    notice, this list of conditions and the following disclaimer.
   10  * 2. Redistributions in binary form must reproduce the above copyright
   11  *    notice, this list of conditions and the following disclaimer in the
   12  *    documentation and/or other materials provided with the distribution.
   13  * 4. Neither the name of the University nor the names of its contributors
   14  *    may be used to endorse or promote products derived from this software
   15  *    without specific prior written permission.
   16  *
   17  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   18  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   20  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   21  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   22  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   23  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   24  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   25  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   26  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   27  * SUCH DAMAGE.
   28  *
   29  *      from: @(#)ns16550.h     7.1 (Berkeley) 5/9/91
   30  * $FreeBSD$
   31  */
   32 
   33 /*
   34  * NS8250... UART registers.
   35  */
   36 
   37 /* 8250 registers #[0-6]. */
   38 
   39 #define com_data        0       /* data register (R/W) */
   40 #define com_thr         com_data /* transmitter holding register (W) */
   41 #define com_rhr         com_data /* receiver holding register (R) */
   42 
   43 #define com_ier         1       /* interrupt enable register (W) */
   44 #define IER_ERXRDY      0x1
   45 #define IER_ETXRDY      0x2
   46 #define IER_ERLS        0x4
   47 #define IER_EMSC        0x8
   48 
   49 #define com_iir         2       /* interrupt identification register (R) */
   50 #define com_isr         com_iir /* interrupt status register (R) */
   51 #define IIR_IMASK       0xf
   52 #define IIR_RXTOUT      0xc
   53 #define IIR_RLS         0x6
   54 #define IIR_RXRDY       0x4
   55 #define IIR_TXRDY       0x2
   56 #define IIR_NOPEND      0x1
   57 #define IIR_MLSC        0x0
   58 #define IIR_FIFO_MASK   0xc0    /* set if FIFOs are enabled */
   59 
   60 #define com_lcr         3       /* line control register (R/W) */
   61 #define com_lctl        com_lcr
   62 #define com_cfcr        com_lcr /* character format control register (R/W) */
   63 #define LCR_DLAB        0x80
   64 #define CFCR_DLAB       LCR_DLAB
   65 #define LCR_EFR_ENABLE  0xbf    /* magic to enable EFR on 16650 up */
   66 #define CFCR_EFR_ENABLE LCR_EFR_ENABLE
   67 #define CFCR_SBREAK     0x40
   68 #define CFCR_PZERO      0x30
   69 #define CFCR_PONE       0x20
   70 #define CFCR_PEVEN      0x10
   71 #define CFCR_PODD       0x00
   72 #define CFCR_PENAB      0x08
   73 #define CFCR_STOPB      0x04
   74 #define CFCR_8BITS      0x03
   75 #define CFCR_7BITS      0x02
   76 #define CFCR_6BITS      0x01
   77 #define CFCR_5BITS      0x00
   78 
   79 #define com_mcr         4       /* modem control register (R/W) */
   80 #define MCR_PRESCALE    0x80    /* only available on 16650 up */
   81 #define MCR_LOOPBACK    0x10
   82 #define MCR_IENABLE     0x08
   83 #define MCR_DRS         0x04
   84 #define MCR_RTS         0x02
   85 #define MCR_DTR         0x01
   86 
   87 #define com_lsr         5       /* line status register (R/W) */
   88 #define LSR_RCV_FIFO    0x80
   89 #define LSR_TSRE        0x40
   90 #define LSR_TXRDY       0x20
   91 #define LSR_BI          0x10
   92 #define LSR_FE          0x08
   93 #define LSR_PE          0x04
   94 #define LSR_OE          0x02
   95 #define LSR_RXRDY       0x01
   96 #define LSR_RCV_MASK    0x1f
   97 
   98 #define com_msr         6       /* modem status register (R/W) */
   99 #define MSR_DCD         0x80
  100 #define MSR_RI          0x40
  101 #define MSR_DSR         0x20
  102 #define MSR_CTS         0x10
  103 #define MSR_DDCD        0x08
  104 #define MSR_TERI        0x04
  105 #define MSR_DDSR        0x02
  106 #define MSR_DCTS        0x01
  107 
  108 /* 8250 multiplexed registers #[0-1].  Access enabled by LCR[7]. */
  109 #define com_dll         0       /* divisor latch low (R/W) */
  110 #define com_dlbl        com_dll
  111 #define com_dlm         1       /* divisor latch high (R/W) */
  112 #define com_dlbh        com_dlm
  113 
  114 /* 16450 register #7.  Not multiplexed. */
  115 #define com_scr         7       /* scratch register (R/W) */
  116 
  117 /* 16550 register #2.  Not multiplexed. */
  118 #define com_fcr         2       /* FIFO control register (W) */
  119 #define com_fifo        com_fcr
  120 #define FIFO_ENABLE     0x01
  121 #define FIFO_RCV_RST    0x02
  122 #define FIFO_XMT_RST    0x04
  123 #define FIFO_DMA_MODE   0x08
  124 #define FIFO_RX_LOW     0x00
  125 #define FIFO_RX_MEDL    0x40
  126 #define FIFO_RX_MEDH    0x80
  127 #define FIFO_RX_HIGH    0xc0
  128 
  129 /* 16650 registers #2,[4-7].  Access enabled by LCR_EFR_ENABLE. */
  130 
  131 #define com_efr         2       /* enhanced features register (R/W) */
  132 #define EFR_AUTOCTS     0x80
  133 #define EFR_AUTORTS     0x40
  134 #define EFR_EFE         0x10    /* enhanced functions enable */
  135 
  136 #define com_xon1        4       /* XON 1 character (R/W) */
  137 #define com_xon2        5       /* XON 2 character (R/W) */
  138 #define com_xoff1       6       /* XOFF 1 character (R/W) */
  139 #define com_xoff2       7       /* XOFF 2 character (R/W) */
  140 
  141 /* 16950 register #1.  Access enabled by ACR[7].  Also requires !LCR[7]. */
  142 #define com_asr         1       /* additional status register (R[0-7]/W[0-1]) */
  143 
  144 /* 16950 register #3.  R/W access enabled by ACR[7]. */
  145 #define com_rfl         3       /* receiver fifo level (R) */
  146 
  147 /*
  148  * 16950 register #4.  Access enabled by ACR[7].  Also requires
  149  * !LCR_EFR_ENABLE.
  150  */
  151 #define com_tfl         4       /* transmitter fifo level (R) */
  152 
  153 /*
  154  * 16950 register #5.  Accessible if !LCR_EFR_ENABLE.  Read access also
  155  * requires ACR[6].
  156  */
  157 #define com_icr         5       /* index control register (R/W) */
  158 
  159 /*
  160  * 16950 register #7.  It is the same as com_scr except it has a different
  161  * abbreviation in the manufacturer's data sheet and it also serves as an
  162  * index into the Indexed Control register set.
  163  */
  164 #define com_spr         com_scr /* scratch pad (and index) register (R/W) */
  165 
  166 /*
  167  * 16950 indexed control registers #[0-0x13].  Access is via index in SPR,
  168  * data in ICR (if ICR is accessible).
  169  */
  170 
  171 #define com_acr         0       /* additional control register (R/W) */
  172 #define ACR_ASE         0x80    /* ASR/RFL/TFL enable */
  173 #define ACR_ICRE        0x40    /* ICR enable */
  174 #define ACR_TLE         0x20    /* TTL/RTL enable */
  175 
  176 #define com_cpr         1       /* clock prescaler register (R/W) */
  177 #define com_tcr         2       /* times clock register (R/W) */
  178 #define com_ttl         4       /* transmitter trigger level (R/W) */
  179 #define com_rtl         5       /* receiver trigger level (R/W) */
  180 /* ... */
  181 
  182 #ifdef PC98
  183 /* Hardware extension mode register for RSB-2000/3000. */
  184 #define com_emr         com_msr
  185 #define EMR_EXBUFF      0x04
  186 #define EMR_CTSFLW      0x08
  187 #define EMR_DSRFLW      0x10
  188 #define EMR_RTSFLW      0x20
  189 #define EMR_DTRFLW      0x40
  190 #define EMR_EFMODE      0x80
  191 #endif

Cache object: 51b83c226ee9d6f0dcd6d25b959f0857


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.