RT-AC56 3.0.0.4.374.37 core
[tomato.git] / release / src-rt-6.x.4708 / linux / linux-2.6.36 / drivers / serial / 8250_mca.c
blobd9b233f4bde61f285b0fbfee22cc89978d06ac5c
1 /*
2 * linux/drivers/serial/8250_mca.c
4 * Copyright (C) 2005 Russell King.
5 * Data taken from include/asm-i386/serial.h
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.
11 #include <linux/module.h>
12 #include <linux/init.h>
13 #include <linux/mca.h>
14 #include <linux/serial_8250.h>
16 #ifdef CONFIG_SERIAL_8250_DETECT_IRQ
17 #define MCA_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ
18 #else
19 #define MCA_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST
20 #endif
22 #define PORT(_base,_irq) \
23 { \
24 .iobase = _base, \
25 .irq = _irq, \
26 .uartclk = 1843200, \
27 .iotype = UPIO_PORT, \
28 .flags = MCA_FLAGS, \
31 static struct plat_serial8250_port mca_data[] = {
32 PORT(0x3220, 3),
33 PORT(0x3228, 3),
34 PORT(0x4220, 3),
35 PORT(0x4228, 3),
36 PORT(0x5220, 3),
37 PORT(0x5228, 3),
38 { },
41 static struct platform_device mca_device = {
42 .name = "serial8250",
43 .id = PLAT8250_DEV_MCA,
44 .dev = {
45 .platform_data = mca_data,
49 static int __init mca_init(void)
51 if (!MCA_bus)
52 return -ENODEV;
53 return platform_device_register(&mca_device);
56 module_init(mca_init);
58 MODULE_AUTHOR("Russell King");
59 MODULE_DESCRIPTION("8250 serial probe module for MCA ports");
60 MODULE_LICENSE("GPL");