aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap/include/plat/serial.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-omap/include/plat/serial.h')
-rw-r--r--arch/arm/plat-omap/include/plat/serial.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/plat/serial.h b/arch/arm/plat-omap/include/plat/serial.h
new file mode 100644
index 00000000000..de3b10c1812
--- /dev/null
+++ b/arch/arm/plat-omap/include/plat/serial.h
@@ -0,0 +1,120 @@
1/*
2 * arch/arm/plat-omap/include/mach/serial.h
3 *
4 * Copyright (C) 2009 Texas Instruments
5 * Addded OMAP4 support- Santosh Shilimkar <santosh.shilimkar@ti.com>
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#ifndef __ASM_ARCH_SERIAL_H
14#define __ASM_ARCH_SERIAL_H
15
16#include <linux/init.h>
17
18/*
19 * Memory entry used for the DEBUG_LL UART configuration. See also
20 * uncompress.h and debug-macro.S.
21 *
22 * Note that using a memory location for storing the UART configuration
23 * has at least two limitations:
24 *
25 * 1. Kernel uncompress code cannot overlap OMAP_UART_INFO as the
26 * uncompress code could then partially overwrite itself
27 * 2. We assume printascii is called at least once before paging_init,
28 * and addruart has a chance to read OMAP_UART_INFO
29 */
30#define OMAP_UART_INFO (PLAT_PHYS_OFFSET + 0x3ffc)
31
32/* OMAP1 serial ports */
33#define OMAP1_UART1_BASE 0xfffb0000
34#define OMAP1_UART2_BASE 0xfffb0800
35#define OMAP1_UART3_BASE 0xfffb9800
36
37/* OMAP2 serial ports */
38#define OMAP2_UART1_BASE 0x4806a000
39#define OMAP2_UART2_BASE 0x4806c000
40#define OMAP2_UART3_BASE 0x4806e000
41
42/* OMAP3 serial ports */
43#define OMAP3_UART1_BASE OMAP2_UART1_BASE
44#define OMAP3_UART2_BASE OMAP2_UART2_BASE
45#define OMAP3_UART3_BASE 0x49020000
46#define OMAP3_UART4_BASE 0x49042000 /* Only on 36xx */
47
48/* OMAP4 serial ports */
49#define OMAP4_UART1_BASE OMAP2_UART1_BASE
50#define OMAP4_UART2_BASE OMAP2_UART2_BASE
51#define OMAP4_UART3_BASE 0x48020000
52#define OMAP4_UART4_BASE 0x4806e000
53
54/* TI816X serial ports */
55#define TI816X_UART1_BASE 0x48020000
56#define TI816X_UART2_BASE 0x48022000
57#define TI816X_UART3_BASE 0x48024000
58
59/* AM3505/3517 UART4 */
60#define AM35XX_UART4_BASE 0x4809E000 /* Only on AM3505/3517 */
61
62/* External port on Zoom2/3 */
63#define ZOOM_UART_BASE 0x10000000
64#define ZOOM_UART_VIRT 0xfa400000
65
66#define OMAP_PORT_SHIFT 2
67#define OMAP7XX_PORT_SHIFT 0
68#define ZOOM_PORT_SHIFT 1
69
70#define OMAP1510_BASE_BAUD (12000000/16)
71#define OMAP16XX_BASE_BAUD (48000000/16)
72#define OMAP24XX_BASE_BAUD (48000000/16)
73
74/*
75 * DEBUG_LL port encoding stored into the UART1 scratchpad register by
76 * decomp_setup in uncompress.h
77 */
78#define OMAP1UART1 11
79#define OMAP1UART2 12
80#define OMAP1UART3 13
81#define OMAP2UART1 21
82#define OMAP2UART2 22
83#define OMAP2UART3 23
84#define OMAP3UART1 OMAP2UART1
85#define OMAP3UART2 OMAP2UART2
86#define OMAP3UART3 33
87#define OMAP3UART4 34 /* Only on 36xx */
88#define OMAP4UART1 OMAP2UART1
89#define OMAP4UART2 OMAP2UART2
90#define OMAP4UART3 43
91#define OMAP4UART4 44
92#define TI816XUART1 81
93#define TI816XUART2 82
94#define TI816XUART3 83
95#define ZOOM_UART 95 /* Only on zoom2/3 */
96
97/* This is only used by 8250.c for omap1510 */
98#define is_omap_port(pt) ({int __ret = 0; \
99 if ((pt)->port.mapbase == OMAP1_UART1_BASE || \
100 (pt)->port.mapbase == OMAP1_UART2_BASE || \
101 (pt)->port.mapbase == OMAP1_UART3_BASE) \
102 __ret = 1; \
103 __ret; \
104 })
105
106#ifndef __ASSEMBLER__
107
108struct omap_board_data;
109
110extern void omap_serial_init(void);
111extern void omap_serial_init_port(struct omap_board_data *bdata);
112extern int omap_uart_can_sleep(void);
113extern void omap_uart_check_wakeup(void);
114extern void omap_uart_prepare_suspend(void);
115extern void omap_uart_prepare_idle(int num);
116extern void omap_uart_resume_idle(int num);
117extern void omap_uart_enable_irqs(int enable);
118#endif
119
120#endif