diff options
Diffstat (limited to 'arch/arm/mach-omap2')
| -rw-r--r-- | arch/arm/mach-omap2/board-rm680.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/common.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/include/mach/debug-macro.S | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/include/mach/uncompress.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/io.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2420_data.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/serial.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/serial.h | 112 | 
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 d42ecfe5609..d0a33130aaa 100644 --- a/arch/arm/mach-omap2/board-rm680.c +++ b/arch/arm/mach-omap2/board-rm680.c @@ -25,7 +25,6 @@  #include <plat/usb.h>  #include "gpmc.h"  #include "common.h" -#include <plat/serial.h>  #include "mux.h"  #include "mmc.h" diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index d135d551d12..c85022ab22d 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h @@ -34,11 +34,10 @@  #include <asm/proc-fns.h> -#include <plat/serial.h> -  #include "../plat-omap/common.h"  #include "i2c.h" +#include "serial.h"  #define OMAP_INTC_START		NR_IRQS diff --git a/arch/arm/mach-omap2/include/mach/debug-macro.S b/arch/arm/mach-omap2/include/mach/debug-macro.S index 93d10de7129..4b5cbdfac02 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 @@  #include <linux/serial_reg.h> -#include <plat/serial.h> +#include <../mach-omap2/serial.h>  #define UART_OFFSET(addr)	((addr) & 0x00ffffff) diff --git a/arch/arm/mach-omap2/include/mach/uncompress.h b/arch/arm/mach-omap2/include/mach/uncompress.h index 226c7571583..28d1ec0e869 100644 --- a/arch/arm/mach-omap2/include/mach/uncompress.h +++ b/arch/arm/mach-omap2/include/mach/uncompress.h @@ -23,7 +23,7 @@  #include <asm/memory.h>  #include <asm/mach-types.h> -#include <plat/serial.h> +#include <../mach-omap2/serial.h>  #define MDR1_MODE_MASK			0x07 diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 80d1cf17af8..4fadc789557 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@ -25,7 +25,6 @@  #include <asm/tlb.h>  #include <asm/mach/map.h> -#include <plat/serial.h>  #include <plat-omap/dma-omap.h>  #include "../plat-omap/sram.h" @@ -43,6 +42,7 @@  #include "clock44xx.h"  #include "omap-pm.h"  #include "sdrc.h" +#include "serial.h"  /*   * 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 3efed3d633d..a8b3368dca3 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 @@  #include "prm-regbits-24xx.h"  #include "i2c.h"  #include "mmc.h" +#include "serial.h"  #include "wd_timer.h"  /* 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 74ae7676751..0413daba2db 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 @@   */  #include <asm/sizes.h> -#include <plat/serial.h> -  #include "omap_hwmod.h"  #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 57fc2f95584..05c6a590655 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 @@   * published by the Free Software Foundation.   */ -#include <plat/serial.h>  #include <plat-omap/dma-omap.h>  #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 dd3809c8f40..47901a5e76d 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 @@   */  #include <asm/sizes.h> -#include <plat/serial.h> -  #include "omap_hwmod.h"  #include "l3_2xxx.h"  #include "l4_2xxx.h" +#include "serial.h"  #include "omap_hwmod_common_data.h" 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 27bdff46fda..a0116d08cf4 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 @@   * published by the Free Software Foundation.   */ -#include <plat/serial.h>  #include <linux/platform_data/gpio-omap.h>  #include <plat-omap/dma-omap.h>  #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 d5d52a77627..abe66ced903 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 @@  #include <linux/platform_data/gpio-omap.h>  #include <plat-omap/dma-omap.h> -#include <plat/serial.h> -  #include "l3_3xxx.h"  #include "l4_3xxx.h"  #include <linux/platform_data/asoc-ti-mcbsp.h> @@ -41,6 +39,7 @@  #include "i2c.h"  #include "mmc.h"  #include "wd_timer.h" +#include "serial.h"  /*   * OMAP3xxx hardware module integration data diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 12363f313f0..812976eac53 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -29,7 +29,6 @@  #include <plat/omap-serial.h>  #include <plat-omap/dma-omap.h> -#include <plat/serial.h>  #include "common.h"  #include "omap_hwmod.h" @@ -42,6 +41,7 @@  #include "prm-regbits-34xx.h"  #include "control.h"  #include "mux.h" +#include "serial.h"  /*   * 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 00000000000..6a6806271fc --- /dev/null +++ b/arch/arm/mach-omap2/serial.h @@ -0,0 +1,112 @@ +/* + * arch/arm/plat-omap/include/mach/serial.h + * + * Copyright (C) 2009 Texas Instruments + * Added OMAP4 support- Santosh Shilimkar <santosh.shilimkar@ti.com> + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __ASM_ARCH_SERIAL_H +#define __ASM_ARCH_SERIAL_H + +#include <linux/init.h> + +/* + * Memory entry used for the DEBUG_LL UART configuration, relative to + * start of RAM. See also uncompress.h and debug-macro.S. + * + * Note that using a memory location for storing the UART configuration + * has at least two limitations: + * + * 1. Kernel uncompress code cannot overlap OMAP_UART_INFO as the + *    uncompress code could then partially overwrite itself + * 2. We assume printascii is called at least once before paging_init, + *    and addruart has a chance to read OMAP_UART_INFO + */ +#define OMAP_UART_INFO_OFS	0x3ffc + +/* OMAP2 serial ports */ +#define OMAP2_UART1_BASE	0x4806a000 +#define OMAP2_UART2_BASE	0x4806c000 +#define OMAP2_UART3_BASE	0x4806e000 + +/* OMAP3 serial ports */ +#define OMAP3_UART1_BASE	OMAP2_UART1_BASE +#define OMAP3_UART2_BASE	OMAP2_UART2_BASE +#define OMAP3_UART3_BASE	0x49020000 +#define OMAP3_UART4_BASE	0x49042000	/* Only on 36xx */ +#define OMAP3_UART4_AM35XX_BASE	0x4809E000	/* Only on AM35xx */ + +/* OMAP4 serial ports */ +#define OMAP4_UART1_BASE	OMAP2_UART1_BASE +#define OMAP4_UART2_BASE	OMAP2_UART2_BASE +#define OMAP4_UART3_BASE	0x48020000 +#define OMAP4_UART4_BASE	0x4806e000 + +/* TI81XX serial ports */ +#define TI81XX_UART1_BASE	0x48020000 +#define TI81XX_UART2_BASE	0x48022000 +#define TI81XX_UART3_BASE	0x48024000 + +/* AM3505/3517 UART4 */ +#define AM35XX_UART4_BASE	0x4809E000	/* Only on AM3505/3517 */ + +/* AM33XX serial port */ +#define AM33XX_UART1_BASE	0x44E09000 + +/* OMAP5 serial ports */ +#define OMAP5_UART1_BASE	OMAP2_UART1_BASE +#define OMAP5_UART2_BASE	OMAP2_UART2_BASE +#define OMAP5_UART3_BASE	OMAP4_UART3_BASE +#define OMAP5_UART4_BASE	OMAP4_UART4_BASE +#define OMAP5_UART5_BASE	0x48066000 +#define OMAP5_UART6_BASE	0x48068000 + +/* External port on Zoom2/3 */ +#define ZOOM_UART_BASE		0x10000000 +#define ZOOM_UART_VIRT		0xfa400000 + +#define OMAP_PORT_SHIFT		2 +#define ZOOM_PORT_SHIFT		1 + +#define OMAP24XX_BASE_BAUD	(48000000/16) + +/* + * DEBUG_LL port encoding stored into the UART1 scratchpad register by + * decomp_setup in uncompress.h + */ +#define OMAP2UART1		21 +#define OMAP2UART2		22 +#define OMAP2UART3		23 +#define OMAP3UART1		OMAP2UART1 +#define OMAP3UART2		OMAP2UART2 +#define OMAP3UART3		33 +#define OMAP3UART4		34		/* Only on 36xx */ +#define OMAP4UART1		OMAP2UART1 +#define OMAP4UART2		OMAP2UART2 +#define OMAP4UART3		43 +#define OMAP4UART4		44 +#define TI81XXUART1		81 +#define TI81XXUART2		82 +#define TI81XXUART3		83 +#define AM33XXUART1		84 +#define OMAP5UART3		OMAP4UART3 +#define OMAP5UART4		OMAP4UART4 +#define ZOOM_UART		95		/* Only on zoom2/3 */ + +#ifndef __ASSEMBLER__ + +struct omap_board_data; +struct omap_uart_port_info; + +extern void omap_serial_init(void); +extern void omap_serial_board_init(struct omap_uart_port_info *platform_data); +extern void omap_serial_init_port(struct omap_board_data *bdata, +		struct omap_uart_port_info *platform_data); +#endif + +#endif  |