您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>驱动程序>

uclinux串口驱动程序

大小:66 人气: 2010-02-08 需要积分:0
{$username}的空间

用户级别:注册会员

贡献文章:

贡献资料:

uclinux串口驱动程序源代码:

/*
 *  linux/drivers/char/serial_44b0.c
 *
 *  Copyright (C) 1991, 1992  Linus Torvalds
 *  Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997,
 *   1998, 1999  Theodore Ts'o
 *
 *  Extensively rewritten by Theodore Ts'o, 8/16/92 -- 9/14/92.  Now
 *  much more extensible to support other serial cards based on the
 *  16450/16550A UART's.  Added support for the AST FourPort and the
 *  Accent Async board. 
 *
 *  set_serial_info fixed to set the flags, custom divisor, and uart
 *  type fields.  Fix suggested by Michael K. Johnson 12/12/92.
 *
 *  11/95: TIOCMIWAIT, TIOCGICOUNT by Angelo Haritsis <ah@doc.ic.ac.uk>
 *
 *  03/96: Modularised by Angelo Haritsis <ah@doc.ic.ac.uk>
 *
 *  rs_set_termios fixed to look also for changes of the input
 *      flags INPCK, BRKINT, PARMRK, IGNPAR and IGNBRK.
 *                                            Bernd Anh鋟pl 05/17/96.
 *
 *  1/97:  Extended dumb serial ports are a config option now. 
 *         Saves 4k.   Michael A. Griffith <grif@acm.org>
 *
 *  8/97: Fix bug in rs_set_termios with RTS
 *        Stanislav V. Voronyi <stas@uanet.kharkov.ua>
 *
 *  3/98: Change the IRQ detection, use of probe_irq_o*(),
 *   suppress TIOCSERGWILD and TIOCSERSWILD
 *   Etienne Lorrain <etienne.lorrain@ibm.net>
 *
 *  4/98: Added changes to support the ARM architecture proposed by
 *    Russell King
 *
 *  5/99: Updated to include support for the XR16C850 and ST16C654
 *        uarts.  Stuart MacDonald <stuartm@connecttech.com>
 *
 *  8/99: Generalized PCI support added.  Theodore Ts'o
 *
 *  3/00: Rid circular buffer of redundant xmit_cnt.  Fix a
 *   few races on freeing buffers too.
 *   Alan Modra <alan@linuxcare.com>
 *
 *  5/00: Support for the RSA-DV II/S card added.
 *   Kiyokazu SUTO <suto@ks-and-ks.ne.jp>
 *
 *  6/00: Remove old-style timer, use timer_list
 *        Andrew Morton <andrewm@uow.edu.au>
 *
 *  7/00: Support Timedia/Sunix/Exsys PCI cards
 *
 *  7/00: fix some returns on failure not using MOD_DEC_USE_COUNT.
 *   Arnaldo Carvalho de Melo <acme@conectiva.com.br>
 *
 * 10/00: add in optional software flow control for serial console.
 *   Kanoj Sarcar <kanoj@sgi.com>  (Modified by Theodore Ts'o)
 *
 * 09/02: modify by wesley king for s3c44b0's serial console.
 *   Qin Wei <king@micetek.com.cn>
 *
 * 01/03: modify by wesley king for s3c44b0's serial console, support ev44b0ii.
 *   Qin Wei <king@micetek.com.cn>
 *
 */

static char *serial_version = "1.10";
static char *serial_revdate = "2003-01-15";

/*
 * Serial driver configuration section.  Here are the various options:
 *
 * CONFIG_HUB6
 *  Enables support for the venerable Bell Technologies
 *  HUB6 card.
 *
 * CONFIG_SERIAL_MANY_PORTS
 *   Enables support for ports beyond the standard, stupid
 *   COM 1/2/3/4.
 *
 * CONFIG_SERIAL_MULTIPORT
 *   Enables support for special multiport board support.
 *
 * CONFIG_SERIAL_SHARE_IRQ
 *   Enables support for multiple serial ports on one IRQ
 *
 * CONFIG_SERIAL_DETECT_IRQ
 *  Enable the autodetection of IRQ on standart ports
 *
 * SERIAL_PARANOIA_CHECK
 *   Check the magic number for the async_structure where
 *   ever possible.
 */

#include
#include

#undef SERIAL_PARANOIA_CHECK
#define CONFIG_SERIAL_NOPAUSE_IO
#define SERIAL_DO_RESTART

/* Set of debugging defines */

#undef SERIAL_DEBUG_INTR
#undef SERIAL_DEBUG_OPEN
#undef SERIAL_DEBUG_FLOW
#undef SERIAL_DEBUG_RS_WAIT_UNTIL_SENT
#undef SERIAL_DEBUG_PCI
#undef SERIAL_DEBUG_AUTOCONF

/* Sanity checks */
// Qinwei : for using polling mode to send char on serial port
//#define UARTPOLLING
#undef UARTPOLLING

#ifdef UARTPOLLING
#define RS_STROBE_TIME 10*HZ
#else
#define RS_STROBE_TIME 10
#endif
#define RS_ISR_PASS_LIMIT 256

#if defined(__i386__) && (defined(CONFIG_M386) || defined(CONFIG_M486))
#define SERIAL_INLINE
#endif
 
/*
 * End of serial driver configuration section.
 */

#include

#include

#include
#include

#ifdef LOCAL_HEADERS
#include "serial_local.h"
#else
#include
#include
//#include
#include
#define LOCAL_VERSTRING ""
#endif

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#if (LINUX_VERSION_CODE >= 131343)
#include
#endif
#if (LINUX_VERSION_CODE >= 131336)
#include
#endif
#include
#ifdef CONFIG_SERIAL_SAMSUNG_CONSOLE
#include
#endif
#ifdef CONFIG_MAGIC_SYSRQ
#include
#endif
#ifdef CONFIG_LEDMAN
#include
#endif

/*
 * All of the compatibilty code so we can compile serial.c against
 * older kernels is hidden in serial_compat.h
 */
#if defined(LOCAL_HEADERS) || (L

非常好我支持^.^

(1) 100%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!