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/module.h> 12#include <linux/init.h> 13#include <linux/mca.h> 14#include <linux/serial_8250.h> 15 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 21 22#define PORT(_base,_irq) \ 23 { \ 24 .iobase = _base, \ 25 .irq = _irq, \ 26 .uartclk = 1843200, \ 27 .iotype = UPIO_PORT, \ 28 .flags = MCA_FLAGS, \ 29 } 30 31static 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 { }, 39}; 40 41static struct platform_device mca_device = { 42 .name = "serial8250", 43 .id = PLAT8250_DEV_MCA, 44 .dev = { 45 .platform_data = mca_data, 46 }, 47}; 48 49static int __init mca_init(void) 50{ 51 if (!MCA_bus) 52 return -ENODEV; 53 return platform_device_register(&mca_device); 54} 55 56module_init(mca_init); 57 58MODULE_AUTHOR("Russell King"); 59MODULE_DESCRIPTION("8250 serial probe module for MCA ports"); 60MODULE_LICENSE("GPL"); 61