/* * 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/module.h> #include <linux/init.h> #include <linux/serial_8250.h> #define HUB6(card,port) \ { \ .iobase = 0x302, \ .irq = 3, \ .uartclk = 1843200, \ .iotype = UPIO_HUB6, \ .flags = UPF_BOOT_AUTOCONF, \ .hub6 = (card) << 6 | (port) << 3 | 1, \ } static struct plat_serial8250_port hub6_data[] = { HUB6(0, 0), HUB6(0, 1), HUB6(0, 2), HUB6(0, 3), HUB6(0, 4), HUB6(0, 5), HUB6(1, 0), HUB6(1, 1), HUB6(1, 2), HUB6(1, 3), HUB6(1, 4), HUB6(1, 5), { }, }; static struct platform_device hub6_device = { .name = "serial8250", .id = PLAT8250_DEV_HUB6, .dev = { .platform_data = hub6_data, }, }; static int __init hub6_init(void) { return platform_device_register(&hub6_device); } module_init(hub6_init); MODULE_AUTHOR("Russell King"); MODULE_DESCRIPTION("8250 serial probe module for Hub6 cards"); MODULE_LICENSE("GPL");