blob: def0529c75eb8ccc764657ee1bec2aa237ed9b62 [file] [log] [blame]
Russell Kinga09e64f2008-08-05 16:14:15 +01001/*
Santosh Shilimkar44169072009-05-28 14:16:04 -07002 * 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>
Russell Kinga09e64f2008-08-05 16:14:15 +01006 *
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#if defined(CONFIG_ARCH_OMAP1)
17/* OMAP1 serial ports */
18#define OMAP_UART1_BASE 0xfffb0000
19#define OMAP_UART2_BASE 0xfffb0800
20#define OMAP_UART3_BASE 0xfffb9800
Santosh Shilimkar44169072009-05-28 14:16:04 -070021#define OMAP_MAX_NR_PORTS 3
Russell Kinga09e64f2008-08-05 16:14:15 +010022#elif defined(CONFIG_ARCH_OMAP2)
23/* OMAP2 serial ports */
24#define OMAP_UART1_BASE 0x4806a000
25#define OMAP_UART2_BASE 0x4806c000
26#define OMAP_UART3_BASE 0x4806e000
Santosh Shilimkar44169072009-05-28 14:16:04 -070027#define OMAP_MAX_NR_PORTS 3
Jouni Hogander6e811762008-10-06 15:49:15 +030028#elif defined(CONFIG_ARCH_OMAP3)
29/* OMAP3 serial ports */
30#define OMAP_UART1_BASE 0x4806a000
31#define OMAP_UART2_BASE 0x4806c000
32#define OMAP_UART3_BASE 0x49020000
Santosh Shilimkar44169072009-05-28 14:16:04 -070033#define OMAP_MAX_NR_PORTS 3
34#elif defined(CONFIG_ARCH_OMAP4)
35/* OMAP4 serial ports */
36#define OMAP_UART1_BASE 0x4806a000
37#define OMAP_UART2_BASE 0x4806c000
38#define OMAP_UART3_BASE 0x48020000
39#define OMAP_UART4_BASE 0x4806e000
40#define OMAP_MAX_NR_PORTS 4
Russell Kinga09e64f2008-08-05 16:14:15 +010041#endif
42
Russell Kinga09e64f2008-08-05 16:14:15 +010043#define OMAP1510_BASE_BAUD (12000000/16)
44#define OMAP16XX_BASE_BAUD (48000000/16)
Jouni Hogander6e811762008-10-06 15:49:15 +030045#define OMAP24XX_BASE_BAUD (48000000/16)
Russell Kinga09e64f2008-08-05 16:14:15 +010046
Russell King56685452008-09-01 21:25:33 +010047#define is_omap_port(pt) ({int __ret = 0; \
48 if ((pt)->port.mapbase == OMAP_UART1_BASE || \
49 (pt)->port.mapbase == OMAP_UART2_BASE || \
50 (pt)->port.mapbase == OMAP_UART3_BASE) \
51 __ret = 1; \
52 __ret; \
Russell Kinga09e64f2008-08-05 16:14:15 +010053 })
54
Kevin Hilman4af40162009-02-04 10:51:40 -080055#ifndef __ASSEMBLER__
56extern void omap_serial_init(void);
57extern int omap_uart_can_sleep(void);
58extern void omap_uart_check_wakeup(void);
59extern void omap_uart_prepare_suspend(void);
60extern void omap_uart_prepare_idle(int num);
61extern void omap_uart_resume_idle(int num);
Tero Kristo24662112009-03-05 16:32:23 +020062extern void omap_uart_enable_irqs(int enable);
Kevin Hilman4af40162009-02-04 10:51:40 -080063#endif
64
Russell Kinga09e64f2008-08-05 16:14:15 +010065#endif