]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
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/config.h> | |
20 | #include <linux/init.h> | |
21 | #include <asm/dec/machtype.h> | |
22 | ||
23 | #ifdef CONFIG_ZS | |
24 | extern int zs_init(void); | |
25 | #endif | |
26 | ||
27 | #ifdef CONFIG_DZ | |
28 | extern int dz_init(void); | |
29 | #endif | |
30 | ||
31 | #ifdef CONFIG_SERIAL_CONSOLE | |
32 | ||
33 | #ifdef CONFIG_ZS | |
34 | extern void zs_serial_console_init(void); | |
35 | #endif | |
36 | ||
37 | #ifdef CONFIG_DZ | |
38 | extern void dz_serial_console_init(void); | |
39 | #endif | |
40 | ||
41 | #endif | |
42 | ||
43 | /* rs_init - starts up the serial interface - | |
44 | handle normal case of starting up the serial interface */ | |
45 | ||
46 | #ifdef CONFIG_SERIAL | |
47 | ||
48 | int __init rs_init(void) | |
49 | { | |
50 | ||
51 | #if defined(CONFIG_ZS) && defined(CONFIG_DZ) | |
52 | if (IOASIC) | |
53 | return zs_init(); | |
54 | else | |
55 | return dz_init(); | |
56 | #else | |
57 | ||
58 | #ifdef CONFIG_ZS | |
59 | return zs_init(); | |
60 | #endif | |
61 | ||
62 | #ifdef CONFIG_DZ | |
63 | return dz_init(); | |
64 | #endif | |
65 | ||
66 | #endif | |
67 | } | |
68 | ||
69 | __initcall(rs_init); | |
70 | ||
71 | #endif | |
72 | ||
73 | #ifdef CONFIG_SERIAL_CONSOLE | |
74 | ||
75 | /* serial_console_init handles the special case of starting | |
76 | * up the console on the serial port | |
77 | */ | |
78 | static int __init decserial_console_init(void) | |
79 | { | |
80 | #if defined(CONFIG_ZS) && defined(CONFIG_DZ) | |
81 | if (IOASIC) | |
82 | zs_serial_console_init(); | |
83 | else | |
84 | dz_serial_console_init(); | |
85 | #else | |
86 | ||
87 | #ifdef CONFIG_ZS | |
88 | zs_serial_console_init(); | |
89 | #endif | |
90 | ||
91 | #ifdef CONFIG_DZ | |
92 | dz_serial_console_init(); | |
93 | #endif | |
94 | ||
95 | #endif | |
96 | return 0; | |
97 | } | |
98 | console_initcall(decserial_console_init); | |
99 | ||
100 | #endif |