blob: 7609150e7d5eeec1da05fed57c97fac82d60ce9f [file] [log] [blame]
Russell Kingec9f47c2005-06-27 11:12:54 +01001/*
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[] = {
Alan Cox3b0fd362008-02-08 04:18:51 -080026 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),
Russell Kingec9f47c2005-06-27 11:12:54 +010038 { },
39};
40
41static struct platform_device hub6_device = {
42 .name = "serial8250",
Russell King6df29de2005-09-08 16:04:41 +010043 .id = PLAT8250_DEV_HUB6,
Russell Kingec9f47c2005-06-27 11:12:54 +010044 .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");