Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sead3-serial.c
Go to the documentation of this file.
1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License. See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved.
7  */
8 #include <linux/module.h>
9 #include <linux/init.h>
10 #include <linux/serial_8250.h>
11 
12 #define UART(base, int) \
13 { \
14  .mapbase = base, \
15  .irq = int, \
16  .uartclk = 14745600, \
17  .iotype = UPIO_MEM32, \
18  .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, \
19  .regshift = 2, \
20 }
21 
22 static struct plat_serial8250_port uart8250_data[] = {
23  UART(0x1f000900, MIPS_CPU_IRQ_BASE + 4), /* ttyS0 = USB */
24  UART(0x1f000800, MIPS_CPU_IRQ_BASE + 4), /* ttyS1 = RS232 */
25  { },
26 };
27 
28 static struct platform_device uart8250_device = {
29  .name = "serial8250",
31  .dev = {
32  .platform_data = uart8250_data,
33  },
34 };
35 
36 static int __init uart8250_init(void)
37 {
38  return platform_device_register(&uart8250_device);
39 }
40 
41 module_init(uart8250_init);
42 
43 MODULE_AUTHOR("Chris Dearman <[email protected]>");
44 MODULE_LICENSE("GPL");
45 MODULE_DESCRIPTION("8250 UART probe driver for the SEAD-3 platform");