/* * linux/drivers/serial/8250_mca.c * * Copyright (C) 2005 Russell King. * Data taken from include/asm-i386/serial.h * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include <linux/config.h> #include <linux/module.h> #include <linux/init.h> #include <linux/mca.h> #include <linux/serial_8250.h> /* * FIXME: Should we be doing AUTO_IRQ here? */ #ifdef CONFIG_SERIAL_8250_DETECT_IRQ #define MCA_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ #else #define MCA_FLAGS UPF_BOOT_AUTOCONF | UPF_SKIP_TEST #endif #define PORT(_base,_irq) \ { \ .iobase = _base, \ .irq = _irq, \ .uartclk = 1843200, \ .iotype = UPIO_PORT, \ .flags = MCA_FLAGS, \ } static struct plat_serial8250_port mca_data[] = { PORT(0x3220, 3), PORT(0x3228, 3), PORT(0x4220, 3), PORT(0x4228, 3), PORT(0x5220, 3), PORT(0x5228, 3), { }, }; static struct platform_device mca_device = { .name = "serial8250", .id = PLAT8250_DEV_MCA, .dev = { .platform_data = mca_data, }, }; static int __init mca_init(void) { if (!MCA_bus) return -ENODEV; return platform_device_register(&mca_device); } module_init(mca_init); MODULE_AUTHOR("Russell King"); MODULE_DESCRIPTION("8250 serial probe module for MCA ports"); MODULE_LICENSE("GPL");