diff options
author | Greg KH <greg@press.(none)> | 2005-06-28 01:07:56 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-06-28 01:07:56 -0400 |
commit | 8644d2a42bdba2d513f71c07eaf1b6f9b718b8eb (patch) | |
tree | c43b6c2fdf1b68b66906a2de69446dcec0f9af6b /drivers/serial | |
parent | 1cde8a16815bd85c8137d1ea556398983c597c11 (diff) | |
parent | 99f95e5286df2f69edab8a04c7080d986ee4233b (diff) |
Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/68328serial.c | 17 | ||||
-rw-r--r-- | drivers/serial/8250.c | 25 | ||||
-rw-r--r-- | drivers/serial/8250_accent.c | 47 | ||||
-rw-r--r-- | drivers/serial/8250_boca.c | 61 | ||||
-rw-r--r-- | drivers/serial/8250_fourport.c | 53 | ||||
-rw-r--r-- | drivers/serial/8250_hub6.c | 58 | ||||
-rw-r--r-- | drivers/serial/8250_mca.c | 64 | ||||
-rw-r--r-- | drivers/serial/Kconfig | 75 | ||||
-rw-r--r-- | drivers/serial/Makefile | 5 | ||||
-rw-r--r-- | drivers/serial/serial_cs.c | 106 |
10 files changed, 462 insertions, 49 deletions
diff --git a/drivers/serial/68328serial.c b/drivers/serial/68328serial.c index feb8e73fc1c9..d27fb4c881d2 100644 --- a/drivers/serial/68328serial.c +++ b/drivers/serial/68328serial.c | |||
@@ -1497,23 +1497,6 @@ rs68328_init(void) | |||
1497 | return 0; | 1497 | return 0; |
1498 | } | 1498 | } |
1499 | 1499 | ||
1500 | |||
1501 | |||
1502 | /* | ||
1503 | * register_serial and unregister_serial allows for serial ports to be | ||
1504 | * configured at run-time, to support PCMCIA modems. | ||
1505 | */ | ||
1506 | /* SPARC: Unused at this time, just here to make things link. */ | ||
1507 | int register_serial(struct serial_struct *req) | ||
1508 | { | ||
1509 | return -1; | ||
1510 | } | ||
1511 | |||
1512 | void unregister_serial(int line) | ||
1513 | { | ||
1514 | return; | ||
1515 | } | ||
1516 | |||
1517 | module_init(rs68328_init); | 1500 | module_init(rs68328_init); |
1518 | 1501 | ||
1519 | 1502 | ||
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index d8b9d2b8c200..34e75bc8f4cc 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -77,23 +77,9 @@ static unsigned int share_irqs = SERIAL8250_SHARE_IRQS; | |||
77 | */ | 77 | */ |
78 | #define is_real_interrupt(irq) ((irq) != 0) | 78 | #define is_real_interrupt(irq) ((irq) != 0) |
79 | 79 | ||
80 | /* | ||
81 | * This converts from our new CONFIG_ symbols to the symbols | ||
82 | * that asm/serial.h expects. You _NEED_ to comment out the | ||
83 | * linux/config.h include contained inside asm/serial.h for | ||
84 | * this to work. | ||
85 | */ | ||
86 | #undef CONFIG_SERIAL_MANY_PORTS | ||
87 | #undef CONFIG_SERIAL_DETECT_IRQ | ||
88 | #undef CONFIG_SERIAL_MULTIPORT | ||
89 | #undef CONFIG_HUB6 | ||
90 | |||
91 | #ifdef CONFIG_SERIAL_8250_DETECT_IRQ | 80 | #ifdef CONFIG_SERIAL_8250_DETECT_IRQ |
92 | #define CONFIG_SERIAL_DETECT_IRQ 1 | 81 | #define CONFIG_SERIAL_DETECT_IRQ 1 |
93 | #endif | 82 | #endif |
94 | #ifdef CONFIG_SERIAL_8250_MULTIPORT | ||
95 | #define CONFIG_SERIAL_MULTIPORT 1 | ||
96 | #endif | ||
97 | #ifdef CONFIG_SERIAL_8250_MANY_PORTS | 83 | #ifdef CONFIG_SERIAL_8250_MANY_PORTS |
98 | #define CONFIG_SERIAL_MANY_PORTS 1 | 84 | #define CONFIG_SERIAL_MANY_PORTS 1 |
99 | #endif | 85 | #endif |
@@ -2323,10 +2309,11 @@ static int __devinit serial8250_probe(struct device *dev) | |||
2323 | { | 2309 | { |
2324 | struct plat_serial8250_port *p = dev->platform_data; | 2310 | struct plat_serial8250_port *p = dev->platform_data; |
2325 | struct uart_port port; | 2311 | struct uart_port port; |
2312 | int ret, i; | ||
2326 | 2313 | ||
2327 | memset(&port, 0, sizeof(struct uart_port)); | 2314 | memset(&port, 0, sizeof(struct uart_port)); |
2328 | 2315 | ||
2329 | for (; p && p->flags != 0; p++) { | 2316 | for (i = 0; p && p->flags != 0; p++, i++) { |
2330 | port.iobase = p->iobase; | 2317 | port.iobase = p->iobase; |
2331 | port.membase = p->membase; | 2318 | port.membase = p->membase; |
2332 | port.irq = p->irq; | 2319 | port.irq = p->irq; |
@@ -2335,10 +2322,16 @@ static int __devinit serial8250_probe(struct device *dev) | |||
2335 | port.iotype = p->iotype; | 2322 | port.iotype = p->iotype; |
2336 | port.flags = p->flags; | 2323 | port.flags = p->flags; |
2337 | port.mapbase = p->mapbase; | 2324 | port.mapbase = p->mapbase; |
2325 | port.hub6 = p->hub6; | ||
2338 | port.dev = dev; | 2326 | port.dev = dev; |
2339 | if (share_irqs) | 2327 | if (share_irqs) |
2340 | port.flags |= UPF_SHARE_IRQ; | 2328 | port.flags |= UPF_SHARE_IRQ; |
2341 | serial8250_register_port(&port); | 2329 | ret = serial8250_register_port(&port); |
2330 | if (ret < 0) { | ||
2331 | dev_err(dev, "unable to register port at index %d " | ||
2332 | "(IO%lx MEM%lx IRQ%d): %d\n", i, | ||
2333 | p->iobase, p->mapbase, p->irq, ret); | ||
2334 | } | ||
2342 | } | 2335 | } |
2343 | return 0; | 2336 | return 0; |
2344 | } | 2337 | } |
diff --git a/drivers/serial/8250_accent.c b/drivers/serial/8250_accent.c new file mode 100644 index 000000000000..1f2c276063ef --- /dev/null +++ b/drivers/serial/8250_accent.c | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | * linux/drivers/serial/8250_accent.c | ||
3 | * | ||
4 | * Copyright (C) 2005 Russell King. | ||
5 | * Data taken from include/asm-i386/serial.h | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/serial_8250.h> | ||
14 | |||
15 | #define PORT(_base,_irq) \ | ||
16 | { \ | ||
17 | .iobase = _base, \ | ||
18 | .irq = _irq, \ | ||
19 | .uartclk = 1843200, \ | ||
20 | .iotype = UPIO_PORT, \ | ||
21 | .flags = UPF_BOOT_AUTOCONF, \ | ||
22 | } | ||
23 | |||
24 | static struct plat_serial8250_port accent_data[] = { | ||
25 | PORT(0x330, 4), | ||
26 | PORT(0x338, 4), | ||
27 | { }, | ||
28 | }; | ||
29 | |||
30 | static struct platform_device accent_device = { | ||
31 | .name = "serial8250", | ||
32 | .id = 2, | ||
33 | .dev = { | ||
34 | .platform_data = accent_data, | ||
35 | }, | ||
36 | }; | ||
37 | |||
38 | static int __init accent_init(void) | ||
39 | { | ||
40 | return platform_device_register(&accent_device); | ||
41 | } | ||
42 | |||
43 | module_init(accent_init); | ||
44 | |||
45 | MODULE_AUTHOR("Russell King"); | ||
46 | MODULE_DESCRIPTION("8250 serial probe module for Accent Async cards"); | ||
47 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/serial/8250_boca.c b/drivers/serial/8250_boca.c new file mode 100644 index 000000000000..465c9ea1e7a3 --- /dev/null +++ b/drivers/serial/8250_boca.c | |||
@@ -0,0 +1,61 @@ | |||
1 | /* | ||
2 | * linux/drivers/serial/8250_boca.c | ||
3 | * | ||
4 | * Copyright (C) 2005 Russell King. | ||
5 | * Data taken from include/asm-i386/serial.h | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/serial_8250.h> | ||
14 | |||
15 | #define PORT(_base,_irq) \ | ||
16 | { \ | ||
17 | .iobase = _base, \ | ||
18 | .irq = _irq, \ | ||
19 | .uartclk = 1843200, \ | ||
20 | .iotype = UPIO_PORT, \ | ||
21 | .flags = UPF_BOOT_AUTOCONF, \ | ||
22 | } | ||
23 | |||
24 | static struct plat_serial8250_port boca_data[] = { | ||
25 | PORT(0x100, 12), | ||
26 | PORT(0x108, 12), | ||
27 | PORT(0x110, 12), | ||
28 | PORT(0x118, 12), | ||
29 | PORT(0x120, 12), | ||
30 | PORT(0x128, 12), | ||
31 | PORT(0x130, 12), | ||
32 | PORT(0x138, 12), | ||
33 | PORT(0x140, 12), | ||
34 | PORT(0x148, 12), | ||
35 | PORT(0x150, 12), | ||
36 | PORT(0x158, 12), | ||
37 | PORT(0x160, 12), | ||
38 | PORT(0x168, 12), | ||
39 | PORT(0x170, 12), | ||
40 | PORT(0x178, 12), | ||
41 | { }, | ||
42 | }; | ||
43 | |||
44 | static struct platform_device boca_device = { | ||
45 | .name = "serial8250", | ||
46 | .id = 3, | ||
47 | .dev = { | ||
48 | .platform_data = boca_data, | ||
49 | }, | ||
50 | }; | ||
51 | |||
52 | static int __init boca_init(void) | ||
53 | { | ||
54 | return platform_device_register(&boca_device); | ||
55 | } | ||
56 | |||
57 | module_init(boca_init); | ||
58 | |||
59 | MODULE_AUTHOR("Russell King"); | ||
60 | MODULE_DESCRIPTION("8250 serial probe module for Boca cards"); | ||
61 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/serial/8250_fourport.c b/drivers/serial/8250_fourport.c new file mode 100644 index 000000000000..e9b4d908ef42 --- /dev/null +++ b/drivers/serial/8250_fourport.c | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * linux/drivers/serial/8250_fourport.c | ||
3 | * | ||
4 | * Copyright (C) 2005 Russell King. | ||
5 | * Data taken from include/asm-i386/serial.h | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/serial_8250.h> | ||
14 | |||
15 | #define PORT(_base,_irq) \ | ||
16 | { \ | ||
17 | .iobase = _base, \ | ||
18 | .irq = _irq, \ | ||
19 | .uartclk = 1843200, \ | ||
20 | .iotype = UPIO_PORT, \ | ||
21 | .flags = UPF_BOOT_AUTOCONF | UPF_FOURPORT, \ | ||
22 | } | ||
23 | |||
24 | static struct plat_serial8250_port fourport_data[] = { | ||
25 | PORT(0x1a0, 9), | ||
26 | PORT(0x1a8, 9), | ||
27 | PORT(0x1b0, 9), | ||
28 | PORT(0x1b8, 9), | ||
29 | PORT(0x2a0, 5), | ||
30 | PORT(0x2a8, 5), | ||
31 | PORT(0x2b0, 5), | ||
32 | PORT(0x2b8, 5), | ||
33 | { }, | ||
34 | }; | ||
35 | |||
36 | static struct platform_device fourport_device = { | ||
37 | .name = "serial8250", | ||
38 | .id = 1, | ||
39 | .dev = { | ||
40 | .platform_data = fourport_data, | ||
41 | }, | ||
42 | }; | ||
43 | |||
44 | static int __init fourport_init(void) | ||
45 | { | ||
46 | return platform_device_register(&fourport_device); | ||
47 | } | ||
48 | |||
49 | module_init(fourport_init); | ||
50 | |||
51 | MODULE_AUTHOR("Russell King"); | ||
52 | MODULE_DESCRIPTION("8250 serial probe module for AST Fourport cards"); | ||
53 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/serial/8250_hub6.c b/drivers/serial/8250_hub6.c new file mode 100644 index 000000000000..77f396f84b4c --- /dev/null +++ b/drivers/serial/8250_hub6.c | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * linux/drivers/serial/8250_hub6.c | ||
3 | * | ||
4 | * Copyright (C) 2005 Russell King. | ||
5 | * Data taken from include/asm-i386/serial.h | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/serial_8250.h> | ||
14 | |||
15 | #define HUB6(card,port) \ | ||
16 | { \ | ||
17 | .iobase = 0x302, \ | ||
18 | .irq = 3, \ | ||
19 | .uartclk = 1843200, \ | ||
20 | .iotype = UPIO_HUB6, \ | ||
21 | .flags = UPF_BOOT_AUTOCONF, \ | ||
22 | .hub6 = (card) << 6 | (port) << 3 | 1, \ | ||
23 | } | ||
24 | |||
25 | static struct plat_serial8250_port hub6_data[] = { | ||
26 | HUB6(0,0), | ||
27 | HUB6(0,1), | ||
28 | HUB6(0,2), | ||
29 | HUB6(0,3), | ||
30 | HUB6(0,4), | ||
31 | HUB6(0,5), | ||
32 | HUB6(1,0), | ||
33 | HUB6(1,1), | ||
34 | HUB6(1,2), | ||
35 | HUB6(1,3), | ||
36 | HUB6(1,4), | ||
37 | HUB6(1,5), | ||
38 | { }, | ||
39 | }; | ||
40 | |||
41 | static struct platform_device hub6_device = { | ||
42 | .name = "serial8250", | ||
43 | .id = 4, | ||
44 | .dev = { | ||
45 | .platform_data = hub6_data, | ||
46 | }, | ||
47 | }; | ||
48 | |||
49 | static int __init hub6_init(void) | ||
50 | { | ||
51 | return platform_device_register(&hub6_device); | ||
52 | } | ||
53 | |||
54 | module_init(hub6_init); | ||
55 | |||
56 | MODULE_AUTHOR("Russell King"); | ||
57 | MODULE_DESCRIPTION("8250 serial probe module for Hub6 cards"); | ||
58 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/serial/8250_mca.c b/drivers/serial/8250_mca.c new file mode 100644 index 000000000000..f0c40d68b8c1 --- /dev/null +++ b/drivers/serial/8250_mca.c | |||
@@ -0,0 +1,64 @@ | |||
1 | /* | ||
2 | * linux/drivers/serial/8250_mca.c | ||
3 | * | ||
4 | * Copyright (C) 2005 Russell King. | ||
5 | * Data taken from include/asm-i386/serial.h | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/mca.h> | ||
15 | #include <linux/serial_8250.h> | ||
16 | |||
17 | /* | ||
18 | * FIXME: Should we be doing AUTO_IRQ here? | ||
19 | */ | ||
20 | #ifdef CONFIG_SERIAL_8250_DETECT_IRQ | ||
21 | #define MCA_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ | ||
22 | #else | ||
23 | #define MCA_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | ||
24 | #endif | ||
25 | |||
26 | #define PORT(_base,_irq) \ | ||
27 | { \ | ||
28 | .iobase = _base, \ | ||
29 | .irq = _irq, \ | ||
30 | .uartclk = 1843200, \ | ||
31 | .iotype = UPIO_PORT, \ | ||
32 | .flags = MCA_FLAGS, \ | ||
33 | } | ||
34 | |||
35 | static struct plat_serial8250_port mca_data[] = { | ||
36 | PORT(0x3220, 3), | ||
37 | PORT(0x3228, 3), | ||
38 | PORT(0x4220, 3), | ||
39 | PORT(0x4228, 3), | ||
40 | PORT(0x5220, 3), | ||
41 | PORT(0x5228, 3), | ||
42 | { }, | ||
43 | }; | ||
44 | |||
45 | static struct platform_device mca_device = { | ||
46 | .name = "serial8250", | ||
47 | .id = 5, | ||
48 | .dev = { | ||
49 | .platform_data = mca_data, | ||
50 | }, | ||
51 | }; | ||
52 | |||
53 | static int __init mca_init(void) | ||
54 | { | ||
55 | if (!MCA_bus) | ||
56 | return -ENODEV; | ||
57 | return platform_device_register(&mca_device); | ||
58 | } | ||
59 | |||
60 | module_init(mca_init); | ||
61 | |||
62 | MODULE_AUTHOR("Russell King"); | ||
63 | MODULE_DESCRIPTION("8250 serial probe module for MCA ports"); | ||
64 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index 25fcef2c42de..e879bce160df 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig | |||
@@ -89,11 +89,11 @@ config SERIAL_8250_NR_UARTS | |||
89 | int "Maximum number of non-legacy 8250/16550 serial ports" | 89 | int "Maximum number of non-legacy 8250/16550 serial ports" |
90 | depends on SERIAL_8250 | 90 | depends on SERIAL_8250 |
91 | default "4" | 91 | default "4" |
92 | ---help--- | 92 | help |
93 | Set this to the number of non-legacy serial ports you want | 93 | Set this to the number of serial ports you want the driver |
94 | the driver to support. This includes any ports discovered | 94 | to support. This includes any ports discovered via ACPI or |
95 | via ACPI or PCI enumeration and any ports that may be added | 95 | PCI enumeration and any ports that may be added at run-time |
96 | at run-time via hot-plug. | 96 | via hot-plug, or any ISA multi-port serial cards. |
97 | 97 | ||
98 | config SERIAL_8250_EXTENDED | 98 | config SERIAL_8250_EXTENDED |
99 | bool "Extended 8250/16550 serial driver options" | 99 | bool "Extended 8250/16550 serial driver options" |
@@ -141,31 +141,74 @@ config SERIAL_8250_DETECT_IRQ | |||
141 | 141 | ||
142 | If unsure, say N. | 142 | If unsure, say N. |
143 | 143 | ||
144 | config SERIAL_8250_MULTIPORT | ||
145 | bool "Support special multiport boards" | ||
146 | depends on SERIAL_8250_EXTENDED | ||
147 | help | ||
148 | Some multiport serial ports have special ports which are used to | ||
149 | signal when there are any serial ports on the board which need | ||
150 | servicing. Say Y here to enable the serial driver to take advantage | ||
151 | of those special I/O ports. | ||
152 | |||
153 | config SERIAL_8250_RSA | 144 | config SERIAL_8250_RSA |
154 | bool "Support RSA serial ports" | 145 | bool "Support RSA serial ports" |
155 | depends on SERIAL_8250_EXTENDED | 146 | depends on SERIAL_8250_EXTENDED |
156 | help | 147 | help |
157 | ::: To be written ::: | 148 | ::: To be written ::: |
158 | 149 | ||
159 | comment "Non-8250 serial port support" | 150 | # |
151 | # Multi-port serial cards | ||
152 | # | ||
153 | |||
154 | config SERIAL_8250_FOURPORT | ||
155 | tristate "Support Fourport cards" | ||
156 | depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS | ||
157 | help | ||
158 | Say Y here if you have an AST FourPort serial board. | ||
159 | |||
160 | To compile this driver as a module, choose M here: the module | ||
161 | will be called 8250_fourport. | ||
162 | |||
163 | config SERIAL_8250_ACCENT | ||
164 | tristate "Support Accent cards" | ||
165 | depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS | ||
166 | help | ||
167 | Say Y here if you have an Accent Async serial board. | ||
168 | |||
169 | To compile this driver as a module, choose M here: the module | ||
170 | will be called 8250_accent. | ||
171 | |||
172 | |||
173 | config SERIAL_8250_BOCA | ||
174 | tristate "Support Boca cards" | ||
175 | depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS | ||
176 | help | ||
177 | Say Y here if you have a Boca serial board. Please read the Boca | ||
178 | mini-HOWTO, avaialble from <http://www.tldp.org/docs.html#howto> | ||
179 | |||
180 | To compile this driver as a module, choose M here: the module | ||
181 | will be called 8250_boca. | ||
182 | |||
183 | |||
184 | config SERIAL_8250_HUB6 | ||
185 | tristate "Support Hub6 cards" | ||
186 | depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS | ||
187 | help | ||
188 | Say Y here if you have a HUB6 serial board. | ||
189 | |||
190 | To compile this driver as a module, choose M here: the module | ||
191 | will be called 8250_hub6. | ||
192 | |||
193 | config SERIAL_8250_MCA | ||
194 | tristate "Support 8250-type ports on MCA buses" | ||
195 | depends on SERIAL_8250 != n && MCA | ||
196 | help | ||
197 | Say Y here if you have a MCA serial ports. | ||
198 | |||
199 | To compile this driver as a module, choose M here: the module | ||
200 | will be called 8250_mca. | ||
160 | 201 | ||
161 | config SERIAL_8250_ACORN | 202 | config SERIAL_8250_ACORN |
162 | tristate "Acorn expansion card serial port support" | 203 | tristate "Acorn expansion card serial port support" |
163 | depends on ARM && ARCH_ACORN && SERIAL_8250 | 204 | depends on ARCH_ACORN && SERIAL_8250 |
164 | help | 205 | help |
165 | If you have an Atomwide Serial card or Serial Port card for an Acorn | 206 | If you have an Atomwide Serial card or Serial Port card for an Acorn |
166 | system, say Y to this option. The driver can handle 1, 2, or 3 port | 207 | system, say Y to this option. The driver can handle 1, 2, or 3 port |
167 | cards. If unsure, say N. | 208 | cards. If unsure, say N. |
168 | 209 | ||
210 | comment "Non-8250 serial port support" | ||
211 | |||
169 | config SERIAL_AMBA_PL010 | 212 | config SERIAL_AMBA_PL010 |
170 | tristate "ARM AMBA PL010 serial port support" | 213 | tristate "ARM AMBA PL010 serial port support" |
171 | depends on ARM_AMBA | 214 | depends on ARM_AMBA |
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile index 8f1cdde7dbed..65bd4381685e 100644 --- a/drivers/serial/Makefile +++ b/drivers/serial/Makefile | |||
@@ -17,6 +17,11 @@ obj-$(CONFIG_SERIAL_8250) += 8250.o $(serial-8250-y) | |||
17 | obj-$(CONFIG_SERIAL_8250_CS) += serial_cs.o | 17 | obj-$(CONFIG_SERIAL_8250_CS) += serial_cs.o |
18 | obj-$(CONFIG_SERIAL_8250_ACORN) += 8250_acorn.o | 18 | obj-$(CONFIG_SERIAL_8250_ACORN) += 8250_acorn.o |
19 | obj-$(CONFIG_SERIAL_8250_CONSOLE) += 8250_early.o | 19 | obj-$(CONFIG_SERIAL_8250_CONSOLE) += 8250_early.o |
20 | obj-$(CONFIG_SERIAL_8250_FOURPORT) += 8250_fourport.o | ||
21 | obj-$(CONFIG_SERIAL_8250_ACCENT) += 8250_accent.o | ||
22 | obj-$(CONFIG_SERIAL_8250_BOCA) += 8250_boca.o | ||
23 | obj-$(CONFIG_SERIAL_8250_HUB6) += 8250_hub6.o | ||
24 | obj-$(CONFIG_SERIAL_8250_MCA) += 8250_mca.o | ||
20 | obj-$(CONFIG_SERIAL_AMBA_PL010) += amba-pl010.o | 25 | obj-$(CONFIG_SERIAL_AMBA_PL010) += amba-pl010.o |
21 | obj-$(CONFIG_SERIAL_AMBA_PL011) += amba-pl011.o | 26 | obj-$(CONFIG_SERIAL_AMBA_PL011) += amba-pl011.o |
22 | obj-$(CONFIG_SERIAL_CLPS711X) += clps711x.o | 27 | obj-$(CONFIG_SERIAL_CLPS711X) += clps711x.o |
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c index 0d7b65f93e8d..73a34b18866f 100644 --- a/drivers/serial/serial_cs.c +++ b/drivers/serial/serial_cs.c | |||
@@ -772,6 +772,111 @@ serial_event(event_t event, int priority, event_callback_args_t * args) | |||
772 | return 0; | 772 | return 0; |
773 | } | 773 | } |
774 | 774 | ||
775 | static struct pcmcia_device_id serial_ids[] = { | ||
776 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0057, 0x0021), | ||
777 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0089, 0x110a), | ||
778 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0104, 0x000a), | ||
779 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0105, 0xea15), | ||
780 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0109, 0x0501), | ||
781 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0138, 0x110a), | ||
782 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0140, 0x000a), | ||
783 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0143, 0x3341), | ||
784 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0143, 0xc0ab), | ||
785 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x016c, 0x0081), | ||
786 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x021b, 0x0101), | ||
787 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x08a1, 0xc0ab), | ||
788 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0105, 0x0d0a), | ||
789 | PCMCIA_PFC_DEVICE_MANF_CARD(1, 0x0105, 0x0e0a), | ||
790 | PCMCIA_PFC_DEVICE_PROD_ID123(1, "MEGAHERTZ", "CC/XJEM3288", "DATA/FAX/CELL ETHERNET MODEM", 0xf510db04, 0x04cd2988, 0x46a52d63), | ||
791 | PCMCIA_PFC_DEVICE_PROD_ID123(1, "MEGAHERTZ", "CC/XJEM3336", "DATA/FAX/CELL ETHERNET MODEM", 0xf510db04, 0x0143b773, 0x46a52d63), | ||
792 | PCMCIA_PFC_DEVICE_PROD_ID123(1, "MEGAHERTZ", "EM1144T", "PCMCIA MODEM", 0xf510db04, 0x856d66c8, 0xbd6c43ef), | ||
793 | PCMCIA_PFC_DEVICE_PROD_ID123(1, "MEGAHERTZ", "XJEM1144/CCEM1144", "PCMCIA MODEM", 0xf510db04, 0x52d21e1e, 0xbd6c43ef), | ||
794 | PCMCIA_PFC_DEVICE_PROD_ID13(1, "Xircom", "CEM28", 0x2e3ee845, 0x0ea978ea), | ||
795 | PCMCIA_PFC_DEVICE_PROD_ID13(1, "Xircom", "CEM33", 0x2e3ee845, 0x80609023), | ||
796 | PCMCIA_PFC_DEVICE_PROD_ID13(1, "Xircom", "CEM56", 0x2e3ee845, 0xa650c32a), | ||
797 | PCMCIA_PFC_DEVICE_PROD_ID13(1, "Xircom", "REM10", 0x2e3ee845, 0x76df1d29), | ||
798 | PCMCIA_PFC_DEVICE_PROD_ID13(1, "Xircom", "XEM5600", 0x2e3ee845, 0xf1403719), | ||
799 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "AnyCom", "Fast Ethernet ", 0x578ba6e7, 0x02d92d1e), | ||
800 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "D-Link", "DME336T", 0x1a424a1c, 0xb23897ff), | ||
801 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "Gateway 2000", "XJEM3336", 0xdd9989be, 0x662c394c), | ||
802 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "Grey Cell", "GCS3000", 0x2a151fac, 0x48b932ae), | ||
803 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "Linksys", "EtherFast 10&100 + 56K PC Card (PCMLM56)", 0x0733cc81, 0xb3765033), | ||
804 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "LINKSYS", "PCMLM336", 0xf7cb0b07, 0x7a821b58), | ||
805 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "MEGAHERTZ", "XJEM1144/CCEM1144", 0xf510db04, 0x52d21e1e), | ||
806 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "Ositech", "Trumpcard", 0x0c2f80cd, 0x0573c29f), | ||
807 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "Ositech", "Trumpcard", 0x0c2f80cd, 0x0573c29f), | ||
808 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "PCMCIAs", "ComboCard", 0xdcfe12d3, 0xcd8906cc), | ||
809 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "PCMCIAs", "LanModem", 0xdcfe12d3, 0xc67c648f), | ||
810 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "TDK", "GlobalNetworker 3410/3412", 0x1eae9475, 0xd9a93bed), | ||
811 | PCMCIA_PFC_DEVICE_PROD_ID12(1, "Xircom", "CreditCard Ethernet", 0x2e3ee845, 0xc0e778c2), | ||
812 | PCMCIA_MFC_DEVICE_MANF_CARD(0, 0x0104, 0x0070), | ||
813 | PCMCIA_MFC_DEVICE_MANF_CARD(1, 0x0101, 0x0562), | ||
814 | PCMCIA_MFC_DEVICE_MANF_CARD(1, 0x0104, 0x0070), | ||
815 | PCMCIA_MFC_DEVICE_MANF_CARD(1, 0x016c, 0x0020), | ||
816 | PCMCIA_MFC_DEVICE_PROD_ID123(1, "APEX DATA", "MULTICARD", "ETHERNET-MODEM", 0x11c2da09, 0x7289dc5d, 0xaad95e1f), | ||
817 | PCMCIA_MFC_DEVICE_PROD_ID12(1, "IBM", "Home and Away 28.8 PC Card ", 0xb569a6e5, 0x5bd4ff2c), | ||
818 | PCMCIA_MFC_DEVICE_PROD_ID12(1, "IBM", "Home and Away Credit Card Adapter", 0xb569a6e5, 0x4bdf15c3), | ||
819 | PCMCIA_MFC_DEVICE_PROD_ID12(1, "IBM", "w95 Home and Away Credit Card ", 0xb569a6e5, 0xae911c15), | ||
820 | PCMCIA_MFC_DEVICE_PROD_ID1(1, "Motorola MARQUIS", 0xf03e4e77), | ||
821 | PCMCIA_MFC_DEVICE_PROD_ID2(1, "FAX/Modem/Ethernet Combo Card ", 0x1ed59302), | ||
822 | PCMCIA_DEVICE_MANF_CARD(0x0089, 0x0301), | ||
823 | PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0039), | ||
824 | PCMCIA_DEVICE_MANF_CARD(0x0104, 0x0006), | ||
825 | PCMCIA_DEVICE_MANF_CARD(0x0105, 0x410a), | ||
826 | PCMCIA_DEVICE_MANF_CARD(0x010b, 0x0d50), | ||
827 | PCMCIA_DEVICE_MANF_CARD(0x010b, 0x0d51), | ||
828 | PCMCIA_DEVICE_MANF_CARD(0x010b, 0x0d52), | ||
829 | PCMCIA_DEVICE_MANF_CARD(0x010b, 0x0d53), | ||
830 | PCMCIA_DEVICE_MANF_CARD(0x010b, 0xd180), | ||
831 | PCMCIA_DEVICE_MANF_CARD(0x0137, 0x000e), | ||
832 | PCMCIA_DEVICE_MANF_CARD(0x0137, 0x001b), | ||
833 | PCMCIA_DEVICE_MANF_CARD(0x0137, 0x0025), | ||
834 | PCMCIA_DEVICE_MANF_CARD(0x0137, 0x0045), | ||
835 | PCMCIA_DEVICE_MANF_CARD(0x0137, 0x0052), | ||
836 | PCMCIA_DEVICE_PROD_ID134("ADV", "TECH", "COMpad-32/85", 0x67459937, 0x916d02ba, 0x8fbe92ae), | ||
837 | PCMCIA_DEVICE_PROD_ID124("GATEWAY2000", "CC3144", "PCMCIA MODEM", 0x506bccae, 0xcb3685f1, 0xbd6c43ef), | ||
838 | PCMCIA_DEVICE_PROD_ID14("MEGAHERTZ", "PCMCIA MODEM", 0xf510db04, 0xbd6c43ef), | ||
839 | PCMCIA_DEVICE_PROD_ID124("TOSHIBA", "T144PF", "PCMCIA MODEM", 0xb4585a1a, 0x7271409c, 0xbd6c43ef), | ||
840 | PCMCIA_DEVICE_PROD_ID123("FUJITSU", "FC14F ", "MBH10213", 0x6ee5a3d8, 0x30ead12b, 0xb00f05a0), | ||
841 | PCMCIA_DEVICE_PROD_ID13("MEGAHERTZ", "V.34 PCMCIA MODEM", 0xf510db04, 0xbb2cce4a), | ||
842 | PCMCIA_DEVICE_PROD_ID12("Brain Boxes", "Bluetooth PC Card", 0xee138382, 0xd4ce9b02), | ||
843 | PCMCIA_DEVICE_PROD_ID12("CIRRUS LOGIC", "FAX MODEM", 0xe625f451, 0xcecd6dfa), | ||
844 | PCMCIA_DEVICE_PROD_ID12("COMPAQ", "PCMCIA 28800 FAX/DATA MODEM", 0xa3a3062c, 0x8cbd7c76), | ||
845 | PCMCIA_DEVICE_PROD_ID12("COMPAQ", "PCMCIA 33600 FAX/DATA MODEM", 0xa3a3062c, 0x5a00ce95), | ||
846 | PCMCIA_DEVICE_PROD_ID12("Computerboards, Inc.", "PCM-COM422", 0xd0b78f51, 0x7e2d49ed), | ||
847 | PCMCIA_DEVICE_PROD_ID12("Dr. Neuhaus", "FURY CARD 14K4", 0x76942813, 0x8b96ce65), | ||
848 | PCMCIA_DEVICE_PROD_ID12("Intelligent", "ANGIA FAX/MODEM", 0xb496e65e, 0xf31602a6), | ||
849 | PCMCIA_DEVICE_PROD_ID12("Intel", "MODEM 2400", 0x816cc815, 0x23539b80), | ||
850 | PCMCIA_DEVICE_PROD_ID12("IOTech Inc ", "PCMCIA Dual RS-232 Serial Port Card", 0x3bd2d898, 0x92abc92f), | ||
851 | PCMCIA_DEVICE_PROD_ID12("MACRONIX", "FAX/MODEM", 0x668388b3, 0x3f9bdf2f), | ||
852 | PCMCIA_DEVICE_PROD_ID12("Multi-Tech", "MT1432LT", 0x5f73be51, 0x0b3e2383), | ||
853 | PCMCIA_DEVICE_PROD_ID12("Multi-Tech", "MT2834LT", 0x5f73be51, 0x4cd7c09e), | ||
854 | PCMCIA_DEVICE_PROD_ID12("OEM ", "C288MX ", 0xb572d360, 0xd2385b7a), | ||
855 | PCMCIA_DEVICE_PROD_ID12("PCMCIA ", "C336MX ", 0x99bcafe9, 0xaa25bcab), | ||
856 | PCMCIA_DEVICE_PROD_ID12("Quatech Inc", "PCMCIA Dual RS-232 Serial Port Card", 0xc4420b35, 0x92abc92f), | ||
857 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1, "PCMCIA", "EN2218-LAN/MODEM", 0x281f1c5d, 0x570f348e, "PCMLM28.cis"), | ||
858 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1, "PCMCIA", "UE2218-LAN/MODEM", 0x281f1c5d, 0x6fdcacee, "PCMLM28.cis"), | ||
859 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1, "Psion Dacom", "Gold Card V34 Ethernet", 0xf5f025c2, 0x338e8155, "PCMLM28.cis"), | ||
860 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1, "Psion Dacom", "Gold Card V34 Ethernet GSM", 0xf5f025c2, 0x4ae85d35, "PCMLM28.cis"), | ||
861 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1, "LINKSYS", "PCMLM28", 0xf7cb0b07, 0x66881874, "PCMLM28.cis"), | ||
862 | PCMCIA_MFC_DEVICE_CIS_PROD_ID12(1, "DAYNA COMMUNICATIONS", "LAN AND MODEM MULTIFUNCTION", 0x8fdf8f89, 0xdd5ed9e8, "DP83903.cis"), | ||
863 | PCMCIA_MFC_DEVICE_CIS_PROD_ID4(1, "NSC MF LAN/Modem", 0x58fc6056, "DP83903.cis"), | ||
864 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0556, "3CCFEM556.cis"), | ||
865 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0175, 0x0000, "DP83903.cis"), | ||
866 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0035, "3CXEM556.cis"), | ||
867 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x003d, "3CXEM556.cis"), | ||
868 | PCMCIA_DEVICE_CIS_PROD_ID12("MultiTech", "PCMCIA 56K DataFax", 0x842047ee, 0xc2efcf03, "MT5634ZLX.cis"), | ||
869 | PCMCIA_DEVICE_CIS_PROD_ID12("ADVANTECH", "COMpad-32/85B-4", 0x96913a85, 0xcec8f102, "COMpad4.cis"), | ||
870 | PCMCIA_DEVICE_CIS_PROD_ID123("ADVANTECH", "COMpad-32/85", "1.0", 0x96913a85, 0x8fbe92ae, 0x0877b627, "COMpad2.cis"), | ||
871 | PCMCIA_DEVICE_CIS_PROD_ID2("RS-COM 2P", 0xad20b156, "RS-COM-2P.cis"), | ||
872 | /* too generic */ | ||
873 | /* PCMCIA_MFC_DEVICE_MANF_CARD(0, 0x0160, 0x0002), */ | ||
874 | /* PCMCIA_MFC_DEVICE_MANF_CARD(1, 0x0160, 0x0002), */ | ||
875 | PCMCIA_DEVICE_FUNC_ID(2), | ||
876 | PCMCIA_DEVICE_NULL, | ||
877 | }; | ||
878 | MODULE_DEVICE_TABLE(pcmcia, serial_ids); | ||
879 | |||
775 | static struct pcmcia_driver serial_cs_driver = { | 880 | static struct pcmcia_driver serial_cs_driver = { |
776 | .owner = THIS_MODULE, | 881 | .owner = THIS_MODULE, |
777 | .drv = { | 882 | .drv = { |
@@ -779,6 +884,7 @@ static struct pcmcia_driver serial_cs_driver = { | |||
779 | }, | 884 | }, |
780 | .attach = serial_attach, | 885 | .attach = serial_attach, |
781 | .detach = serial_detach, | 886 | .detach = serial_detach, |
887 | .id_table = serial_ids, | ||
782 | }; | 888 | }; |
783 | 889 | ||
784 | static int __init init_serial_cs(void) | 890 | static int __init init_serial_cs(void) |