Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
uart.c
Go to the documentation of this file.
1 /*
2  * arch/arm/mach-iop33x/uart.c
3  *
4  * Author: Dave Jiang ([email protected])
5  * Copyright (C) 2004 Intel Corporation.
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 
12 #include <linux/mm.h>
13 #include <linux/init.h>
14 #include <linux/major.h>
15 #include <linux/fs.h>
16 #include <linux/platform_device.h>
17 #include <linux/serial.h>
18 #include <linux/tty.h>
19 #include <linux/serial_8250.h>
20 #include <linux/io.h>
21 #include <asm/pgtable.h>
22 #include <asm/page.h>
23 #include <asm/mach/map.h>
24 #include <asm/setup.h>
25 #include <asm/memory.h>
26 #include <mach/hardware.h>
27 #include <asm/hardware/iop3xx.h>
28 #include <asm/mach/arch.h>
29 
30 #define IOP33X_UART_XTAL 33334000
31 
32 static struct plat_serial8250_port iop33x_uart0_data[] = {
33  {
34  .membase = (char *)IOP33X_UART0_VIRT,
38  .regshift = 2,
39  .iotype = UPIO_MEM,
41  },
42  { },
43 };
44 
45 static struct resource iop33x_uart0_resources[] = {
46  [0] = {
48  .end = IOP33X_UART0_PHYS + 0x3f,
49  .flags = IORESOURCE_MEM,
50  },
51  [1] = {
52  .start = IRQ_IOP33X_UART0,
53  .end = IRQ_IOP33X_UART0,
54  .flags = IORESOURCE_IRQ,
55  },
56 };
57 
59  .name = "serial8250",
61  .dev = {
62  .platform_data = iop33x_uart0_data,
63  },
64  .num_resources = 2,
65  .resource = iop33x_uart0_resources,
66 };
67 
68 
69 static struct resource iop33x_uart1_resources[] = {
70  [0] = {
71  .start = IOP33X_UART1_PHYS,
72  .end = IOP33X_UART1_PHYS + 0x3f,
73  .flags = IORESOURCE_MEM,
74  },
75  [1] = {
76  .start = IRQ_IOP33X_UART1,
77  .end = IRQ_IOP33X_UART1,
78  .flags = IORESOURCE_IRQ,
79  },
80 };
81 
82 static struct plat_serial8250_port iop33x_uart1_data[] = {
83  {
84  .membase = (char *)IOP33X_UART1_VIRT,
88  .regshift = 2,
89  .iotype = UPIO_MEM,
91  },
92  { },
93 };
94 
96  .name = "serial8250",
98  .dev = {
99  .platform_data = iop33x_uart1_data,
100  },
101  .num_resources = 2,
102  .resource = iop33x_uart1_resources,
103 };