Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b4a4080 authored by Maciej W. Rozycki's avatar Maciej W. Rozycki Committed by Linus Torvalds
Browse files

zs: move to the serial subsystem



This is a reimplementation of the zs driver for the serial subsystem.  Any
resemblance to the old driver is purely coincidential.  ;-) I do hope I got
the handling of modem lines right -- better do not tackle me about the
issue unless you feel too good...

Any users of the old driver: please note the numbers of the serial lines
have now been swapped, i.e.  ttyS0 <-> ttyS1 and ttyS2 <-> ttyS3.  It has
to do with the modem lines mentioned above; basically the port A in a given
chip has to be initialised before the port B if you want to use the latter
as the serial console (which is usually the case), as operations on modem
lines of the serial line associated with the port B access both ports (see
the comment at the top of the driver for the details of wiring used).
Please update your scripts.

This is also the reason each SCC now requests an IRQ once only (as seen in
"/proc/interrupts") -- the handler takes care of both ports at once as the
line associated with the port B has to take status update interrupts from
both ports (and yet the line of the port A takes its own for itself too).
The old driver never got it right...

Signed-off-by: default avatarMaciej W. Rozycki <macro@linux-mips.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent b187f180
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -4110,6 +4110,11 @@ W: http://www.polyware.nl/~middelin/En/hobbies.html
W:	http://www.polyware.nl/~middelin/hobbies.html
S:	Maintained

ZS DECSTATION Z85C30 SERIAL DRIVER
P:	Maciej W. Rozycki
M:	macro@linux-mips.org
S:	Maintained

THE REST
P:	Linus Torvalds
S:	Buried alive in reporters
+0 −33
Original line number Diff line number Diff line
@@ -372,39 +372,6 @@ config ISTALLION
	  To compile this driver as a module, choose M here: the
	  module will be called istallion.

config SERIAL_DEC
	bool "DECstation serial support"
	depends on MACH_DECSTATION
	default y
	help
	  This selects whether you want to be asked about drivers for
	  DECstation serial ports.

	  Note that the answer to this question won't directly affect the
	  kernel: saying N will just cause the configurator to skip all
	  the questions about DECstation serial ports.

config SERIAL_DEC_CONSOLE
	bool "Support for console on a DECstation serial port"
	depends on SERIAL_DEC
	default y
	help
	  If you say Y here, it will be possible to use a serial port as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).  Note that the firmware uses ttyS0 as the serial console on
	  the Maxine and ttyS2 on the others.

	  If unsure, say Y.

config ZS
	bool "Z85C30 Serial Support"
	depends on SERIAL_DEC
	default y
	help
	  Documentation on the Zilog 85C350 serial communications controller
	  is downloadable at <http://www.zilog.com/pdfs/serial/z85c30.pdf>

config A2232
	tristate "Commodore A2232 serial support (EXPERIMENTAL)"
	depends on EXPERIMENTAL && ZORRO && BROKEN_ON_SMP

drivers/char/decserial.c

deleted100644 → 0
+0 −67
Original line number Diff line number Diff line
/*
 * sercons.c
 *      choose the right serial device at boot time
 *
 * triemer 6-SEP-1998
 *      sercons.c is designed to allow the three different kinds 
 *      of serial devices under the decstation world to co-exist
 *      in the same kernel.  The idea here is to abstract 
 *      the pieces of the drivers that are common to this file
 *      so that they do not clash at compile time and runtime.
 *
 * HK 16-SEP-1998 v0.002
 *      removed the PROM console as this is not a real serial
 *      device. Added support for PROM console in drivers/char/tty_io.c
 *      instead. Although it may work to enable more than one 
 *      console device I strongly recommend to use only one.
 */

#include <linux/init.h>
#include <asm/dec/machtype.h>

#ifdef CONFIG_ZS
extern int zs_init(void);
#endif

#ifdef CONFIG_SERIAL_CONSOLE

#ifdef CONFIG_ZS
extern void zs_serial_console_init(void);
#endif

#endif

/* rs_init - starts up the serial interface -
   handle normal case of starting up the serial interface */

#ifdef CONFIG_SERIAL

int __init rs_init(void)
{
#ifdef CONFIG_ZS
    if (IOASIC)
	return zs_init();
#endif
    return -ENXIO;
}

__initcall(rs_init);

#endif

#ifdef CONFIG_SERIAL_CONSOLE

/* serial_console_init handles the special case of starting
 *   up the console on the serial port
 */
static int __init decserial_console_init(void)
{
#ifdef CONFIG_ZS
    if (IOASIC)
	zs_serial_console_init();
#endif
    return 0;
}
console_initcall(decserial_console_init);

#endif
+30 −0
Original line number Diff line number Diff line
@@ -486,6 +486,36 @@ config SERIAL_DZ_CONSOLE

	  If unsure, say Y.

config SERIAL_ZS
	tristate "DECstation Z85C30 serial support"
	depends on MACH_DECSTATION
	select SERIAL_CORE
	default y
	---help---
	  Support for the Zilog 85C350 serial communications controller used
	  for serial ports in newer DECstation systems.  These include the
	  DECsystem 5900 and all models of the DECstation and DECsystem 5000
	  systems except from model 200.

	  If unsure, say Y.  To compile this driver as a module, choose M here:
	  the module will be called zs.

config SERIAL_ZS_CONSOLE
	bool "Support for console on a DECstation Z85C30 serial port"
	depends on SERIAL_ZS=y
	select SERIAL_CORE_CONSOLE
	default y
	---help---
	  If you say Y here, it will be possible to use a serial port as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).

	  Note that the firmware uses ttyS1 as the serial console on the
	  Maxine and ttyS3 on the others using this driver.

	  If unsure, say Y.

config SERIAL_21285
	tristate "DC21285 serial port support"
	depends on ARM && FOOTBRIDGE
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ obj-$(CONFIG_V850E_UART) += v850e_uart.o
obj-$(CONFIG_SERIAL_PMACZILOG) += pmac_zilog.o
obj-$(CONFIG_SERIAL_LH7A40X) += serial_lh7a40x.o
obj-$(CONFIG_SERIAL_DZ) += dz.o
obj-$(CONFIG_SERIAL_ZS) += zs.o
obj-$(CONFIG_SERIAL_SH_SCI) += sh-sci.o
obj-$(CONFIG_SERIAL_SGI_L1_CONSOLE) += sn_console.o
obj-$(CONFIG_SERIAL_CPM) += cpm_uart/
Loading