aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/board-rm680.c1
-rw-r--r--arch/arm/mach-omap2/common.h3
-rw-r--r--arch/arm/mach-omap2/include/mach/debug-macro.S2
-rw-r--r--arch/arm/mach-omap2/include/mach/uncompress.h2
-rw-r--r--arch/arm/mach-omap2/io.c2
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2420_data.c1
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c2
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c1
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c3
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c1
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_3xxx_data.c3
-rw-r--r--arch/arm/mach-omap2/serial.c2
-rw-r--r--arch/arm/mach-omap2/serial.h112
13 files changed, 120 insertions, 15 deletions
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c
index d42ecfe56096..d0a33130aaaf 100644
--- a/arch/arm/mach-omap2/board-rm680.c
+++ b/arch/arm/mach-omap2/board-rm680.c
@@ -25,7 +25,6 @@
25#include <plat/usb.h> 25#include <plat/usb.h>
26#include "gpmc.h" 26#include "gpmc.h"
27#include "common.h" 27#include "common.h"
28#include <plat/serial.h>
29 28
30#include "mux.h" 29#include "mux.h"
31#include "mmc.h" 30#include "mmc.h"
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index d135d551d124..c85022ab22d5 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -34,11 +34,10 @@
34 34
35#include <asm/proc-fns.h> 35#include <asm/proc-fns.h>
36 36
37#include <plat/serial.h>
38
39#include "../plat-omap/common.h" 37#include "../plat-omap/common.h"
40 38
41#include "i2c.h" 39#include "i2c.h"
40#include "serial.h"
42 41
43#define OMAP_INTC_START NR_IRQS 42#define OMAP_INTC_START NR_IRQS
44 43
diff --git a/arch/arm/mach-omap2/include/mach/debug-macro.S b/arch/arm/mach-omap2/include/mach/debug-macro.S
index 93d10de7129f..4b5cbdfac028 100644
--- a/arch/arm/mach-omap2/include/mach/debug-macro.S
+++ b/arch/arm/mach-omap2/include/mach/debug-macro.S
@@ -13,7 +13,7 @@
13 13
14#include <linux/serial_reg.h> 14#include <linux/serial_reg.h>
15 15
16#include <plat/serial.h> 16#include <../mach-omap2/serial.h>
17 17
18#define UART_OFFSET(addr) ((addr) & 0x00ffffff) 18#define UART_OFFSET(addr) ((addr) & 0x00ffffff)
19 19
diff --git a/arch/arm/mach-omap2/include/mach/uncompress.h b/arch/arm/mach-omap2/include/mach/uncompress.h
index 226c7571583b..28d1ec0e869a 100644
--- a/arch/arm/mach-omap2/include/mach/uncompress.h
+++ b/arch/arm/mach-omap2/include/mach/uncompress.h
@@ -23,7 +23,7 @@
23#include <asm/memory.h> 23#include <asm/memory.h>
24#include <asm/mach-types.h> 24#include <asm/mach-types.h>
25 25
26#include <plat/serial.h> 26#include <../mach-omap2/serial.h>
27 27
28#define MDR1_MODE_MASK 0x07 28#define MDR1_MODE_MASK 0x07
29 29
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 80d1cf17af8c..4fadc7895579 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -25,7 +25,6 @@
25#include <asm/tlb.h> 25#include <asm/tlb.h>
26#include <asm/mach/map.h> 26#include <asm/mach/map.h>
27 27
28#include <plat/serial.h>
29#include <plat-omap/dma-omap.h> 28#include <plat-omap/dma-omap.h>
30 29
31#include "../plat-omap/sram.h" 30#include "../plat-omap/sram.h"
@@ -43,6 +42,7 @@
43#include "clock44xx.h" 42#include "clock44xx.h"
44#include "omap-pm.h" 43#include "omap-pm.h"
45#include "sdrc.h" 44#include "sdrc.h"
45#include "serial.h"
46 46
47/* 47/*
48 * The machine specific code may provide the extra mapping besides the 48 * The machine specific code may provide the extra mapping besides the
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
index 3efed3d633d1..a8b3368dca3d 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
@@ -29,6 +29,7 @@
29#include "prm-regbits-24xx.h" 29#include "prm-regbits-24xx.h"
30#include "i2c.h" 30#include "i2c.h"
31#include "mmc.h" 31#include "mmc.h"
32#include "serial.h"
32#include "wd_timer.h" 33#include "wd_timer.h"
33 34
34/* 35/*
diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c
index 74ae76767510..0413daba2dba 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c
@@ -13,8 +13,6 @@
13 */ 13 */
14#include <asm/sizes.h> 14#include <asm/sizes.h>
15 15
16#include <plat/serial.h>
17
18#include "omap_hwmod.h" 16#include "omap_hwmod.h"
19 17
20#include "omap_hwmod_common_data.h" 18#include "omap_hwmod_common_data.h"
diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
index 57fc2f95584d..05c6a5906550 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
@@ -10,7 +10,6 @@
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11 */ 11 */
12 12
13#include <plat/serial.h>
14#include <plat-omap/dma-omap.h> 13#include <plat-omap/dma-omap.h>
15 14
16#include "../plat-omap/common.h" 15#include "../plat-omap/common.h"
diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c b/arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
index dd3809c8f409..47901a5e76de 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
@@ -13,11 +13,10 @@
13 */ 13 */
14#include <asm/sizes.h> 14#include <asm/sizes.h>
15 15
16#include <plat/serial.h>
17
18#include "omap_hwmod.h" 16#include "omap_hwmod.h"
19#include "l3_2xxx.h" 17#include "l3_2xxx.h"
20#include "l4_2xxx.h" 18#include "l4_2xxx.h"
19#include "serial.h"
21 20
22#include "omap_hwmod_common_data.h" 21#include "omap_hwmod_common_data.h"
23 22
diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
index 27bdff46fda0..a0116d08cf45 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
@@ -9,7 +9,6 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 */ 10 */
11 11
12#include <plat/serial.h>
13#include <linux/platform_data/gpio-omap.h> 12#include <linux/platform_data/gpio-omap.h>
14#include <plat-omap/dma-omap.h> 13#include <plat-omap/dma-omap.h>
15#include <plat/dmtimer.h> 14#include <plat/dmtimer.h>
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index d5d52a776278..abe66ced903f 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -20,8 +20,6 @@
20#include <linux/platform_data/gpio-omap.h> 20#include <linux/platform_data/gpio-omap.h>
21 21
22#include <plat-omap/dma-omap.h> 22#include <plat-omap/dma-omap.h>
23#include <plat/serial.h>
24
25#include "l3_3xxx.h" 23#include "l3_3xxx.h"
26#include "l4_3xxx.h" 24#include "l4_3xxx.h"
27#include <linux/platform_data/asoc-ti-mcbsp.h> 25#include <linux/platform_data/asoc-ti-mcbsp.h>
@@ -41,6 +39,7 @@
41#include "i2c.h" 39#include "i2c.h"
42#include "mmc.h" 40#include "mmc.h"
43#include "wd_timer.h" 41#include "wd_timer.h"
42#include "serial.h"
44 43
45/* 44/*
46 * OMAP3xxx hardware module integration data 45 * OMAP3xxx hardware module integration data
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index 12363f313f08..812976eac536 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -29,7 +29,6 @@
29 29
30#include <plat/omap-serial.h> 30#include <plat/omap-serial.h>
31#include <plat-omap/dma-omap.h> 31#include <plat-omap/dma-omap.h>
32#include <plat/serial.h>
33 32
34#include "common.h" 33#include "common.h"
35#include "omap_hwmod.h" 34#include "omap_hwmod.h"
@@ -42,6 +41,7 @@
42#include "prm-regbits-34xx.h" 41#include "prm-regbits-34xx.h"
43#include "control.h" 42#include "control.h"
44#include "mux.h" 43#include "mux.h"
44#include "serial.h"
45 45
46/* 46/*
47 * NOTE: By default the serial auto_suspend timeout is disabled as it causes 47 * NOTE: By default the serial auto_suspend timeout is disabled as it causes
diff --git a/arch/arm/mach-omap2/serial.h b/arch/arm/mach-omap2/serial.h
new file mode 100644
index 000000000000..6a6806271fcf
--- /dev/null
+++ b/arch/arm/mach-omap2/serial.h
@@ -0,0 +1,112 @@
1/*
2 * arch/arm/plat-omap/include/mach/serial.h
3 *
4 * Copyright (C) 2009 Texas Instruments
5 * Added 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, relative to
20 * start of RAM. See also 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_OFS 0x3ffc
31
32/* OMAP2 serial ports */
33#define OMAP2_UART1_BASE 0x4806a000
34#define OMAP2_UART2_BASE 0x4806c000
35#define OMAP2_UART3_BASE 0x4806e000
36
37/* OMAP3 serial ports */
38#define OMAP3_UART1_BASE OMAP2_UART1_BASE
39#define OMAP3_UART2_BASE OMAP2_UART2_BASE
40#define OMAP3_UART3_BASE 0x49020000
41#define OMAP3_UART4_BASE 0x49042000 /* Only on 36xx */
42#define OMAP3_UART4_AM35XX_BASE 0x4809E000 /* Only on AM35xx */
43
44/* OMAP4 serial ports */
45#define OMAP4_UART1_BASE OMAP2_UART1_BASE
46#define OMAP4_UART2_BASE OMAP2_UART2_BASE
47#define OMAP4_UART3_BASE 0x48020000
48#define OMAP4_UART4_BASE 0x4806e000
49
50/* TI81XX serial ports */
51#define TI81XX_UART1_BASE 0x48020000
52#define TI81XX_UART2_BASE 0x48022000
53#define TI81XX_UART3_BASE 0x48024000
54
55/* AM3505/3517 UART4 */
56#define AM35XX_UART4_BASE 0x4809E000 /* Only on AM3505/3517 */
57
58/* AM33XX serial port */
59#define AM33XX_UART1_BASE 0x44E09000
60
61/* OMAP5 serial ports */
62#define OMAP5_UART1_BASE OMAP2_UART1_BASE
63#define OMAP5_UART2_BASE OMAP2_UART2_BASE
64#define OMAP5_UART3_BASE OMAP4_UART3_BASE
65#define OMAP5_UART4_BASE OMAP4_UART4_BASE
66#define OMAP5_UART5_BASE 0x48066000
67#define OMAP5_UART6_BASE 0x48068000
68
69/* External port on Zoom2/3 */
70#define ZOOM_UART_BASE 0x10000000
71#define ZOOM_UART_VIRT 0xfa400000
72
73#define OMAP_PORT_SHIFT 2
74#define ZOOM_PORT_SHIFT 1
75
76#define OMAP24XX_BASE_BAUD (48000000/16)
77
78/*
79 * DEBUG_LL port encoding stored into the UART1 scratchpad register by
80 * decomp_setup in uncompress.h
81 */
82#define OMAP2UART1 21
83#define OMAP2UART2 22
84#define OMAP2UART3 23
85#define OMAP3UART1 OMAP2UART1
86#define OMAP3UART2 OMAP2UART2
87#define OMAP3UART3 33
88#define OMAP3UART4 34 /* Only on 36xx */
89#define OMAP4UART1 OMAP2UART1
90#define OMAP4UART2 OMAP2UART2
91#define OMAP4UART3 43
92#define OMAP4UART4 44
93#define TI81XXUART1 81
94#define TI81XXUART2 82
95#define TI81XXUART3 83
96#define AM33XXUART1 84
97#define OMAP5UART3 OMAP4UART3
98#define OMAP5UART4 OMAP4UART4
99#define ZOOM_UART 95 /* Only on zoom2/3 */
100
101#ifndef __ASSEMBLER__
102
103struct omap_board_data;
104struct omap_uart_port_info;
105
106extern void omap_serial_init(void);
107extern void omap_serial_board_init(struct omap_uart_port_info *platform_data);
108extern void omap_serial_init_port(struct omap_board_data *bdata,
109 struct omap_uart_port_info *platform_data);
110#endif
111
112#endif