1/* 2 * linux/drivers/serial/8250_hub6.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/serial_8250.h> 14 15#define HUB6(card,port) \ 16 { \ 17 .iobase = 0x302, \ 18 .irq = 3, \ 19 .uartclk = 1843200, \ 20 .iotype = UPIO_HUB6, \ 21 .flags = UPF_BOOT_AUTOCONF, \ 22 .hub6 = (card) << 6 | (port) << 3 | 1, \ 23 } 24 25static struct plat_serial8250_port hub6_data[] = { 26 HUB6(0, 0), 27 HUB6(0, 1), 28 HUB6(0, 2), 29 HUB6(0, 3), 30 HUB6(0, 4), 31 HUB6(0, 5), 32 HUB6(1, 0), 33 HUB6(1, 1), 34 HUB6(1, 2), 35 HUB6(1, 3), 36 HUB6(1, 4), 37 HUB6(1, 5), 38 { }, 39}; 40 41static struct platform_device hub6_device = { 42 .name = "serial8250", 43 .id = PLAT8250_DEV_HUB6, 44 .dev = { 45 .platform_data = hub6_data, 46 }, 47}; 48 49static int __init hub6_init(void) 50{ 51 return platform_device_register(&hub6_device); 52} 53 54module_init(hub6_init); 55 56MODULE_AUTHOR("Russell King"); 57MODULE_DESCRIPTION("8250 serial probe module for Hub6 cards"); 58MODULE_LICENSE("GPL"); 59