1/*
2 * sercons.c
3 *      choose the right serial device at boot time
4 *
5 * triemer 6-SEP-1998
6 *      sercons.c is designed to allow the three different kinds
7 *      of serial devices under the decstation world to co-exist
8 *      in the same kernel.  The idea here is to abstract
9 *      the pieces of the drivers that are common to this file
10 *      so that they do not clash at compile time and runtime.
11 *
12 * HK 16-SEP-1998 v0.002
13 *      removed the PROM console as this is not a real serial
14 *      device. Added support for PROM console in drivers/char/tty_io.c
15 *      instead. Although it may work to enable more than one
16 *      console device I strongly recommend to use only one.
17 */
18
19#include <linux/init.h>
20#include <asm/dec/machtype.h>
21
22#ifdef CONFIG_ZS
23extern int zs_init(void);
24#endif
25
26#ifdef CONFIG_SERIAL_CONSOLE
27
28#ifdef CONFIG_ZS
29extern void zs_serial_console_init(void);
30#endif
31
32#endif
33
34/* rs_init - starts up the serial interface -
35   handle normal case of starting up the serial interface */
36
37#ifdef CONFIG_SERIAL
38
39int __init rs_init(void)
40{
41#ifdef CONFIG_ZS
42    if (IOASIC)
43	return zs_init();
44#endif
45    return -ENXIO;
46}
47
48__initcall(rs_init);
49
50#endif
51
52#ifdef CONFIG_SERIAL_CONSOLE
53
54/* serial_console_init handles the special case of starting
55 *   up the console on the serial port
56 */
57static int __init decserial_console_init(void)
58{
59#ifdef CONFIG_ZS
60    if (IOASIC)
61	zs_serial_console_init();
62#endif
63    return 0;
64}
65console_initcall(decserial_console_init);
66
67#endif
68