Merge tag 'v3.3.7' into 3.3/master
[zen-stable.git] / drivers / tty / serial / 8250 / 8250_mca.c
blobd20abf04541e5f43c608ba4ec53d8ef9f9033a38
1 /*
2 * Copyright (C) 2005 Russell King.
3 * Data taken from include/asm-i386/serial.h
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9 #include <linux/module.h>
10 #include <linux/init.h>
11 #include <linux/mca.h>
12 #include <linux/serial_8250.h>
15 * FIXME: Should we be doing AUTO_IRQ here?
17 #ifdef CONFIG_SERIAL_8250_DETECT_IRQ
18 #define MCA_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ
19 #else
20 #define MCA_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST
21 #endif
23 #define PORT(_base,_irq) \
24 { \
25 .iobase = _base, \
26 .irq = _irq, \
27 .uartclk = 1843200, \
28 .iotype = UPIO_PORT, \
29 .flags = MCA_FLAGS, \
32 static struct plat_serial8250_port mca_data[] = {
33 PORT(0x3220, 3),
34 PORT(0x3228, 3),
35 PORT(0x4220, 3),
36 PORT(0x4228, 3),
37 PORT(0x5220, 3),
38 PORT(0x5228, 3),
39 { },
42 static struct platform_device mca_device = {
43 .name = "serial8250",
44 .id = PLAT8250_DEV_MCA,
45 .dev = {
46 .platform_data = mca_data,
50 static int __init mca_init(void)
52 if (!MCA_bus)
53 return -ENODEV;
54 return platform_device_register(&mca_device);
57 module_init(mca_init);
59 MODULE_AUTHOR("Russell King");
60 MODULE_DESCRIPTION("8250 serial probe module for MCA ports");
61 MODULE_LICENSE("GPL");