• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/arm/plat-omap/include/plat/
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		(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/* External port on Zoom2/3 */
55#define ZOOM_UART_BASE		0x10000000
56#define ZOOM_UART_VIRT		0xfa400000
57
58#define OMAP_PORT_SHIFT		2
59#define OMAP7XX_PORT_SHIFT	0
60#define ZOOM_PORT_SHIFT		1
61
62#define OMAP1510_BASE_BAUD	(12000000/16)
63#define OMAP16XX_BASE_BAUD	(48000000/16)
64#define OMAP24XX_BASE_BAUD	(48000000/16)
65
66/*
67 * DEBUG_LL port encoding stored into the UART1 scratchpad register by
68 * decomp_setup in uncompress.h
69 */
70#define OMAP1UART1		11
71#define OMAP1UART2		12
72#define OMAP1UART3		13
73#define OMAP2UART1		21
74#define OMAP2UART2		22
75#define OMAP2UART3		23
76#define OMAP3UART1		OMAP2UART1
77#define OMAP3UART2		OMAP2UART2
78#define OMAP3UART3		33
79#define OMAP3UART4		34		/* Only on 36xx */
80#define OMAP4UART1		OMAP2UART1
81#define OMAP4UART2		OMAP2UART2
82#define OMAP4UART3		43
83#define OMAP4UART4		44
84#define ZOOM_UART		95		/* Only on zoom2/3 */
85
86/* This is only used by 8250.c for omap1510 */
87#define is_omap_port(pt)	({int __ret = 0;			\
88			if ((pt)->port.mapbase == OMAP1_UART1_BASE ||	\
89			    (pt)->port.mapbase == OMAP1_UART2_BASE ||	\
90			    (pt)->port.mapbase == OMAP1_UART3_BASE)	\
91				__ret = 1;				\
92			__ret;						\
93			})
94
95#ifndef __ASSEMBLER__
96extern void __init omap_serial_early_init(void);
97extern void omap_serial_init(void);
98extern void omap_serial_init_port(int port);
99extern int omap_uart_can_sleep(void);
100extern void omap_uart_check_wakeup(void);
101extern void omap_uart_prepare_suspend(void);
102extern void omap_uart_prepare_idle(int num);
103extern void omap_uart_resume_idle(int num);
104extern void omap_uart_enable_irqs(int enable);
105#endif
106
107#endif
108