提交 4f2c49fe 编写于 作者: T Tony Lindgren

omap: Clean the serial port defines

This way we don't have conflicts with the defines
with compiling in multiple omaps. Set the addresses
for uarts in struct omap_globals for the early serial
init code.
Signed-off-by: NTony Lindgren <tony@atomide.com>
上级 4e6d488a
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
* *
*/ */
#include <linux/serial_reg.h>
#include <plat/serial.h>
.macro addruart, rx, tmp .macro addruart, rx, tmp
mrc p15, 0, \rx, c1, c0 mrc p15, 0, \rx, c1, c0
tst \rx, #1 @ MMU enabled? tst \rx, #1 @ MMU enabled?
...@@ -30,13 +34,13 @@ ...@@ -30,13 +34,13 @@
.endm .endm
.macro busyuart,rd,rx .macro busyuart,rd,rx
1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends 1001: ldrb \rd, [\rx, #(UART_LSR << OMAP_PORT_SHIFT)]
and \rd, \rd, #0x60 and \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
teq \rd, #0x60 teq \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
beq 1002f beq 1002f
ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only ldrb \rd, [\rx, #(UART_LSR << OMAP7XX_PORT_SHIFT)]
and \rd, \rd, #0x60 and \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
teq \rd, #0x60 teq \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
bne 1001b bne 1001b
1002: 1002:
.endm .endm
......
...@@ -64,7 +64,7 @@ static void __init omap_serial_reset(struct plat_serial8250_port *p) ...@@ -64,7 +64,7 @@ static void __init omap_serial_reset(struct plat_serial8250_port *p)
static struct plat_serial8250_port serial_platform_data[] = { static struct plat_serial8250_port serial_platform_data[] = {
{ {
.mapbase = OMAP_UART1_BASE, .mapbase = OMAP1_UART1_BASE,
.irq = INT_UART1, .irq = INT_UART1,
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM, .iotype = UPIO_MEM,
...@@ -72,7 +72,7 @@ static struct plat_serial8250_port serial_platform_data[] = { ...@@ -72,7 +72,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
.uartclk = OMAP16XX_BASE_BAUD * 16, .uartclk = OMAP16XX_BASE_BAUD * 16,
}, },
{ {
.mapbase = OMAP_UART2_BASE, .mapbase = OMAP1_UART2_BASE,
.irq = INT_UART2, .irq = INT_UART2,
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM, .iotype = UPIO_MEM,
...@@ -80,7 +80,7 @@ static struct plat_serial8250_port serial_platform_data[] = { ...@@ -80,7 +80,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
.uartclk = OMAP16XX_BASE_BAUD * 16, .uartclk = OMAP16XX_BASE_BAUD * 16,
}, },
{ {
.mapbase = OMAP_UART3_BASE, .mapbase = OMAP1_UART3_BASE,
.irq = INT_UART3, .irq = INT_UART3,
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM, .iotype = UPIO_MEM,
......
...@@ -68,7 +68,7 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { ...@@ -68,7 +68,7 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
static void __init omap_sdp_map_io(void) static void __init omap_sdp_map_io(void)
{ {
omap2_set_globals_343x(); omap2_set_globals_36xx();
omap2_map_common_io(); omap2_map_common_io();
} }
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
static void __init omap_zoom_map_io(void) static void __init omap_zoom_map_io(void)
{ {
omap2_set_globals_343x(); omap2_set_globals_36xx();
omap2_map_common_io(); omap2_map_common_io();
} }
......
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
* *
*/ */
#include <linux/serial_reg.h>
#include <plat/serial.h>
.macro addruart, rx, tmp .macro addruart, rx, tmp
mrc p15, 0, \rx, c1, c0 mrc p15, 0, \rx, c1, c0
tst \rx, #1 @ MMU enabled? tst \rx, #1 @ MMU enabled?
...@@ -44,15 +48,10 @@ ...@@ -44,15 +48,10 @@
.endm .endm
.macro busyuart,rd,rx .macro busyuart,rd,rx
1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends 1001: ldrb \rd, [\rx, #(UART_LSR << OMAP_PORT_SHIFT)]
and \rd, \rd, #0x60 and \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
teq \rd, #0x60 teq \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
beq 1002f
ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only
and \rd, \rd, #0x60
teq \rd, #0x60
bne 1001b bne 1001b
1002:
.endm .endm
.macro waituart,rd,rx .macro waituart,rd,rx
......
...@@ -74,7 +74,6 @@ static LIST_HEAD(uart_list); ...@@ -74,7 +74,6 @@ static LIST_HEAD(uart_list);
static struct plat_serial8250_port serial_platform_data0[] = { static struct plat_serial8250_port serial_platform_data0[] = {
{ {
.mapbase = OMAP_UART1_BASE,
.irq = 72, .irq = 72,
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM, .iotype = UPIO_MEM,
...@@ -87,7 +86,6 @@ static struct plat_serial8250_port serial_platform_data0[] = { ...@@ -87,7 +86,6 @@ static struct plat_serial8250_port serial_platform_data0[] = {
static struct plat_serial8250_port serial_platform_data1[] = { static struct plat_serial8250_port serial_platform_data1[] = {
{ {
.mapbase = OMAP_UART2_BASE,
.irq = 73, .irq = 73,
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM, .iotype = UPIO_MEM,
...@@ -100,7 +98,6 @@ static struct plat_serial8250_port serial_platform_data1[] = { ...@@ -100,7 +98,6 @@ static struct plat_serial8250_port serial_platform_data1[] = {
static struct plat_serial8250_port serial_platform_data2[] = { static struct plat_serial8250_port serial_platform_data2[] = {
{ {
.mapbase = OMAP_UART3_BASE,
.irq = 74, .irq = 74,
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM, .iotype = UPIO_MEM,
...@@ -114,7 +111,6 @@ static struct plat_serial8250_port serial_platform_data2[] = { ...@@ -114,7 +111,6 @@ static struct plat_serial8250_port serial_platform_data2[] = {
#ifdef CONFIG_ARCH_OMAP4 #ifdef CONFIG_ARCH_OMAP4
static struct plat_serial8250_port serial_platform_data3[] = { static struct plat_serial8250_port serial_platform_data3[] = {
{ {
.mapbase = OMAP_UART4_BASE,
.irq = 70, .irq = 70,
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM, .iotype = UPIO_MEM,
...@@ -125,6 +121,17 @@ static struct plat_serial8250_port serial_platform_data3[] = { ...@@ -125,6 +121,17 @@ static struct plat_serial8250_port serial_platform_data3[] = {
} }
}; };
#endif #endif
void __init omap2_set_globals_uart(struct omap_globals *omap2_globals)
{
serial_platform_data0[0].mapbase = omap2_globals->uart1_phys;
serial_platform_data1[0].mapbase = omap2_globals->uart2_phys;
serial_platform_data2[0].mapbase = omap2_globals->uart3_phys;
#ifdef CONFIG_ARCH_OMAP4
serial_platform_data3[0].mapbase = omap2_globals->uart4_phys;
#endif
}
static inline unsigned int __serial_read_reg(struct uart_port *up, static inline unsigned int __serial_read_reg(struct uart_port *up,
int offset) int offset)
{ {
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include <plat/control.h> #include <plat/control.h>
#include <plat/mux.h> #include <plat/mux.h>
#include <plat/fpga.h> #include <plat/fpga.h>
#include <plat/serial.h>
#include <plat/clock.h> #include <plat/clock.h>
...@@ -219,6 +220,7 @@ static void __init __omap2_set_globals(struct omap_globals *omap2_globals) ...@@ -219,6 +220,7 @@ static void __init __omap2_set_globals(struct omap_globals *omap2_globals)
omap2_set_globals_sdrc(omap2_globals); omap2_set_globals_sdrc(omap2_globals);
omap2_set_globals_control(omap2_globals); omap2_set_globals_control(omap2_globals);
omap2_set_globals_prcm(omap2_globals); omap2_set_globals_prcm(omap2_globals);
omap2_set_globals_uart(omap2_globals);
} }
#endif #endif
...@@ -233,6 +235,9 @@ static struct omap_globals omap242x_globals = { ...@@ -233,6 +235,9 @@ static struct omap_globals omap242x_globals = {
.ctrl = OMAP2_L4_IO_ADDRESS(OMAP2420_CTRL_BASE), .ctrl = OMAP2_L4_IO_ADDRESS(OMAP2420_CTRL_BASE),
.prm = OMAP2_L4_IO_ADDRESS(OMAP2420_PRM_BASE), .prm = OMAP2_L4_IO_ADDRESS(OMAP2420_PRM_BASE),
.cm = OMAP2_L4_IO_ADDRESS(OMAP2420_CM_BASE), .cm = OMAP2_L4_IO_ADDRESS(OMAP2420_CM_BASE),
.uart1_phys = OMAP2_UART1_BASE,
.uart2_phys = OMAP2_UART2_BASE,
.uart3_phys = OMAP2_UART3_BASE,
}; };
void __init omap2_set_globals_242x(void) void __init omap2_set_globals_242x(void)
...@@ -251,6 +256,9 @@ static struct omap_globals omap243x_globals = { ...@@ -251,6 +256,9 @@ static struct omap_globals omap243x_globals = {
.ctrl = OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE), .ctrl = OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE),
.prm = OMAP2_L4_IO_ADDRESS(OMAP2430_PRM_BASE), .prm = OMAP2_L4_IO_ADDRESS(OMAP2430_PRM_BASE),
.cm = OMAP2_L4_IO_ADDRESS(OMAP2430_CM_BASE), .cm = OMAP2_L4_IO_ADDRESS(OMAP2430_CM_BASE),
.uart1_phys = OMAP2_UART1_BASE,
.uart2_phys = OMAP2_UART2_BASE,
.uart3_phys = OMAP2_UART3_BASE,
}; };
void __init omap2_set_globals_243x(void) void __init omap2_set_globals_243x(void)
...@@ -259,9 +267,9 @@ void __init omap2_set_globals_243x(void) ...@@ -259,9 +267,9 @@ void __init omap2_set_globals_243x(void)
} }
#endif #endif
#if defined(CONFIG_ARCH_OMAP3430) #if defined(CONFIG_ARCH_OMAP3)
static struct omap_globals omap343x_globals = { static struct omap_globals omap3_globals = {
.class = OMAP343X_CLASS, .class = OMAP343X_CLASS,
.tap = OMAP2_L4_IO_ADDRESS(0x4830A000), .tap = OMAP2_L4_IO_ADDRESS(0x4830A000),
.sdrc = OMAP2_L3_IO_ADDRESS(OMAP343X_SDRC_BASE), .sdrc = OMAP2_L3_IO_ADDRESS(OMAP343X_SDRC_BASE),
...@@ -269,11 +277,21 @@ static struct omap_globals omap343x_globals = { ...@@ -269,11 +277,21 @@ static struct omap_globals omap343x_globals = {
.ctrl = OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE), .ctrl = OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE),
.prm = OMAP2_L4_IO_ADDRESS(OMAP3430_PRM_BASE), .prm = OMAP2_L4_IO_ADDRESS(OMAP3430_PRM_BASE),
.cm = OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE), .cm = OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE),
.uart1_phys = OMAP3_UART1_BASE,
.uart2_phys = OMAP3_UART2_BASE,
.uart3_phys = OMAP3_UART3_BASE,
}; };
void __init omap2_set_globals_343x(void) void __init omap2_set_globals_343x(void)
{ {
__omap2_set_globals(&omap343x_globals); __omap2_set_globals(&omap3_globals);
}
void __init omap2_set_globals_36xx(void)
{
omap3_globals.uart4_phys = OMAP3_UART4_BASE;
__omap2_set_globals(&omap3_globals);
} }
#endif #endif
...@@ -285,6 +303,10 @@ static struct omap_globals omap4_globals = { ...@@ -285,6 +303,10 @@ static struct omap_globals omap4_globals = {
.prm = OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE), .prm = OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE),
.cm = OMAP2_L4_IO_ADDRESS(OMAP4430_CM_BASE), .cm = OMAP2_L4_IO_ADDRESS(OMAP4430_CM_BASE),
.cm2 = OMAP2_L4_IO_ADDRESS(OMAP4430_CM2_BASE), .cm2 = OMAP2_L4_IO_ADDRESS(OMAP4430_CM2_BASE),
.uart1_phys = OMAP4_UART1_BASE,
.uart2_phys = OMAP4_UART2_BASE,
.uart3_phys = OMAP4_UART3_BASE,
.uart4_phys = OMAP4_UART4_BASE,
}; };
void __init omap2_set_globals_443x(void) void __init omap2_set_globals_443x(void)
...@@ -292,6 +314,7 @@ void __init omap2_set_globals_443x(void) ...@@ -292,6 +314,7 @@ void __init omap2_set_globals_443x(void)
omap2_set_globals_tap(&omap4_globals); omap2_set_globals_tap(&omap4_globals);
omap2_set_globals_control(&omap4_globals); omap2_set_globals_control(&omap4_globals);
omap2_set_globals_prcm(&omap4_globals); omap2_set_globals_prcm(&omap4_globals);
omap2_set_globals_uart(&omap4_globals);
} }
#endif #endif
...@@ -47,11 +47,16 @@ struct omap_globals { ...@@ -47,11 +47,16 @@ struct omap_globals {
void __iomem *prm; /* Power and Reset Management */ void __iomem *prm; /* Power and Reset Management */
void __iomem *cm; /* Clock Management */ void __iomem *cm; /* Clock Management */
void __iomem *cm2; void __iomem *cm2;
unsigned long uart1_phys;
unsigned long uart2_phys;
unsigned long uart3_phys;
unsigned long uart4_phys;
}; };
void omap2_set_globals_242x(void); void omap2_set_globals_242x(void);
void omap2_set_globals_243x(void); void omap2_set_globals_243x(void);
void omap2_set_globals_343x(void); void omap2_set_globals_343x(void);
void omap2_set_globals_36xx(void);
void omap2_set_globals_443x(void); void omap2_set_globals_443x(void);
/* These get called from omap2_set_globals_xxxx(), do not call these */ /* These get called from omap2_set_globals_xxxx(), do not call these */
...@@ -59,6 +64,7 @@ void omap2_set_globals_tap(struct omap_globals *); ...@@ -59,6 +64,7 @@ void omap2_set_globals_tap(struct omap_globals *);
void omap2_set_globals_sdrc(struct omap_globals *); void omap2_set_globals_sdrc(struct omap_globals *);
void omap2_set_globals_control(struct omap_globals *); void omap2_set_globals_control(struct omap_globals *);
void omap2_set_globals_prcm(struct omap_globals *); void omap2_set_globals_prcm(struct omap_globals *);
void omap2_set_globals_uart(struct omap_globals *);
/** /**
* omap_test_timeout - busy-loop, testing a condition * omap_test_timeout - busy-loop, testing a condition
......
...@@ -125,43 +125,43 @@ ...@@ -125,43 +125,43 @@
#define OMAP16XX_MMCSD2_SSW_MPU_CONF (TIPB_SWITCH_BASE + 0x160) #define OMAP16XX_MMCSD2_SSW_MPU_CONF (TIPB_SWITCH_BASE + 0x160)
/* UART3 Registers Mapping through MPU bus */ /* UART3 Registers Mapping through MPU bus */
#define UART3_RHR (OMAP_UART3_BASE + 0) #define UART3_RHR (OMAP1_UART3_BASE + 0)
#define UART3_THR (OMAP_UART3_BASE + 0) #define UART3_THR (OMAP1_UART3_BASE + 0)
#define UART3_DLL (OMAP_UART3_BASE + 0) #define UART3_DLL (OMAP1_UART3_BASE + 0)
#define UART3_IER (OMAP_UART3_BASE + 4) #define UART3_IER (OMAP1_UART3_BASE + 4)
#define UART3_DLH (OMAP_UART3_BASE + 4) #define UART3_DLH (OMAP1_UART3_BASE + 4)
#define UART3_IIR (OMAP_UART3_BASE + 8) #define UART3_IIR (OMAP1_UART3_BASE + 8)
#define UART3_FCR (OMAP_UART3_BASE + 8) #define UART3_FCR (OMAP1_UART3_BASE + 8)
#define UART3_EFR (OMAP_UART3_BASE + 8) #define UART3_EFR (OMAP1_UART3_BASE + 8)
#define UART3_LCR (OMAP_UART3_BASE + 0x0C) #define UART3_LCR (OMAP1_UART3_BASE + 0x0C)
#define UART3_MCR (OMAP_UART3_BASE + 0x10) #define UART3_MCR (OMAP1_UART3_BASE + 0x10)
#define UART3_XON1_ADDR1 (OMAP_UART3_BASE + 0x10) #define UART3_XON1_ADDR1 (OMAP1_UART3_BASE + 0x10)
#define UART3_XON2_ADDR2 (OMAP_UART3_BASE + 0x14) #define UART3_XON2_ADDR2 (OMAP1_UART3_BASE + 0x14)
#define UART3_LSR (OMAP_UART3_BASE + 0x14) #define UART3_LSR (OMAP1_UART3_BASE + 0x14)
#define UART3_TCR (OMAP_UART3_BASE + 0x18) #define UART3_TCR (OMAP1_UART3_BASE + 0x18)
#define UART3_MSR (OMAP_UART3_BASE + 0x18) #define UART3_MSR (OMAP1_UART3_BASE + 0x18)
#define UART3_XOFF1 (OMAP_UART3_BASE + 0x18) #define UART3_XOFF1 (OMAP1_UART3_BASE + 0x18)
#define UART3_XOFF2 (OMAP_UART3_BASE + 0x1C) #define UART3_XOFF2 (OMAP1_UART3_BASE + 0x1C)
#define UART3_SPR (OMAP_UART3_BASE + 0x1C) #define UART3_SPR (OMAP1_UART3_BASE + 0x1C)
#define UART3_TLR (OMAP_UART3_BASE + 0x1C) #define UART3_TLR (OMAP1_UART3_BASE + 0x1C)
#define UART3_MDR1 (OMAP_UART3_BASE + 0x20) #define UART3_MDR1 (OMAP1_UART3_BASE + 0x20)
#define UART3_MDR2 (OMAP_UART3_BASE + 0x24) #define UART3_MDR2 (OMAP1_UART3_BASE + 0x24)
#define UART3_SFLSR (OMAP_UART3_BASE + 0x28) #define UART3_SFLSR (OMAP1_UART3_BASE + 0x28)
#define UART3_TXFLL (OMAP_UART3_BASE + 0x28) #define UART3_TXFLL (OMAP1_UART3_BASE + 0x28)
#define UART3_RESUME (OMAP_UART3_BASE + 0x2C) #define UART3_RESUME (OMAP1_UART3_BASE + 0x2C)
#define UART3_TXFLH (OMAP_UART3_BASE + 0x2C) #define UART3_TXFLH (OMAP1_UART3_BASE + 0x2C)
#define UART3_SFREGL (OMAP_UART3_BASE + 0x30) #define UART3_SFREGL (OMAP1_UART3_BASE + 0x30)
#define UART3_RXFLL (OMAP_UART3_BASE + 0x30) #define UART3_RXFLL (OMAP1_UART3_BASE + 0x30)
#define UART3_SFREGH (OMAP_UART3_BASE + 0x34) #define UART3_SFREGH (OMAP1_UART3_BASE + 0x34)
#define UART3_RXFLH (OMAP_UART3_BASE + 0x34) #define UART3_RXFLH (OMAP1_UART3_BASE + 0x34)
#define UART3_BLR (OMAP_UART3_BASE + 0x38) #define UART3_BLR (OMAP1_UART3_BASE + 0x38)
#define UART3_ACREG (OMAP_UART3_BASE + 0x3C) #define UART3_ACREG (OMAP1_UART3_BASE + 0x3C)
#define UART3_DIV16 (OMAP_UART3_BASE + 0x3C) #define UART3_DIV16 (OMAP1_UART3_BASE + 0x3C)
#define UART3_SCR (OMAP_UART3_BASE + 0x40) #define UART3_SCR (OMAP1_UART3_BASE + 0x40)
#define UART3_SSR (OMAP_UART3_BASE + 0x44) #define UART3_SSR (OMAP1_UART3_BASE + 0x44)
#define UART3_EBLR (OMAP_UART3_BASE + 0x48) #define UART3_EBLR (OMAP1_UART3_BASE + 0x48)
#define UART3_OSC_12M_SEL (OMAP_UART3_BASE + 0x4C) #define UART3_OSC_12M_SEL (OMAP1_UART3_BASE + 0x4C)
#define UART3_MVR (OMAP_UART3_BASE + 0x50) #define UART3_MVR (OMAP1_UART3_BASE + 0x50)
/* /*
* --------------------------------------------------------------------------- * ---------------------------------------------------------------------------
......
...@@ -15,37 +15,40 @@ ...@@ -15,37 +15,40 @@
#include <linux/init.h> #include <linux/init.h>
#if defined(CONFIG_ARCH_OMAP1)
/* OMAP1 serial ports */ /* OMAP1 serial ports */
#define OMAP_UART1_BASE 0xfffb0000 #define OMAP1_UART1_BASE 0xfffb0000
#define OMAP_UART2_BASE 0xfffb0800 #define OMAP1_UART2_BASE 0xfffb0800
#define OMAP_UART3_BASE 0xfffb9800 #define OMAP1_UART3_BASE 0xfffb9800
#elif defined(CONFIG_ARCH_OMAP2)
/* OMAP2 serial ports */ /* OMAP2 serial ports */
#define OMAP_UART1_BASE 0x4806a000 #define OMAP2_UART1_BASE 0x4806a000
#define OMAP_UART2_BASE 0x4806c000 #define OMAP2_UART2_BASE 0x4806c000
#define OMAP_UART3_BASE 0x4806e000 #define OMAP2_UART3_BASE 0x4806e000
#elif defined(CONFIG_ARCH_OMAP3)
/* OMAP3 serial ports */ /* OMAP3 serial ports */
#define OMAP_UART1_BASE 0x4806a000 #define OMAP3_UART1_BASE 0x4806a000
#define OMAP_UART2_BASE 0x4806c000 #define OMAP3_UART2_BASE 0x4806c000
#define OMAP_UART3_BASE 0x49020000 #define OMAP3_UART3_BASE 0x49020000
#elif defined(CONFIG_ARCH_OMAP4) #define OMAP3_UART4_BASE 0x49042000 /* Only on 36xx */
/* OMAP4 serial ports */ /* OMAP4 serial ports */
#define OMAP_UART1_BASE 0x4806a000 #define OMAP4_UART1_BASE 0x4806a000
#define OMAP_UART2_BASE 0x4806c000 #define OMAP4_UART2_BASE 0x4806c000
#define OMAP_UART3_BASE 0x48020000 #define OMAP4_UART3_BASE 0x48020000
#define OMAP_UART4_BASE 0x4806e000 #define OMAP4_UART4_BASE 0x4806e000
#endif
#define OMAP_PORT_SHIFT 2
#define OMAP7XX_PORT_SHIFT 0
#define OMAP1510_BASE_BAUD (12000000/16) #define OMAP1510_BASE_BAUD (12000000/16)
#define OMAP16XX_BASE_BAUD (48000000/16) #define OMAP16XX_BASE_BAUD (48000000/16)
#define OMAP24XX_BASE_BAUD (48000000/16) #define OMAP24XX_BASE_BAUD (48000000/16)
/* This is only used by 8250.c for omap1510 */
#define is_omap_port(pt) ({int __ret = 0; \ #define is_omap_port(pt) ({int __ret = 0; \
if ((pt)->port.mapbase == OMAP_UART1_BASE || \ if ((pt)->port.mapbase == OMAP1_UART1_BASE || \
(pt)->port.mapbase == OMAP_UART2_BASE || \ (pt)->port.mapbase == OMAP1_UART2_BASE || \
(pt)->port.mapbase == OMAP_UART3_BASE) \ (pt)->port.mapbase == OMAP1_UART3_BASE) \
__ret = 1; \ __ret = 1; \
__ret; \ __ret; \
}) })
......
...@@ -40,12 +40,13 @@ static void putc(int c) ...@@ -40,12 +40,13 @@ static void putc(int c)
#endif #endif
#ifdef CONFIG_ARCH_OMAP #ifdef CONFIG_ARCH_OMAP
/* Will get removed in the next patch, set to OMAP3 to compile */
#ifdef CONFIG_OMAP_LL_DEBUG_UART3 #ifdef CONFIG_OMAP_LL_DEBUG_UART3
uart = (volatile u8 *)(OMAP_UART3_BASE); uart = (volatile u8 *)(OMAP3_UART3_BASE);
#elif defined(CONFIG_OMAP_LL_DEBUG_UART2) #elif defined(CONFIG_OMAP_LL_DEBUG_UART2)
uart = (volatile u8 *)(OMAP_UART2_BASE); uart = (volatile u8 *)(OMAP3_UART2_BASE);
#elif defined(CONFIG_OMAP_LL_DEBUG_UART1) #elif defined(CONFIG_OMAP_LL_DEBUG_UART1)
uart = (volatile u8 *)(OMAP_UART1_BASE); uart = (volatile u8 *)(OMAP3_UART1_BASE);
#elif defined(CONFIG_OMAP_LL_DEBUG_NONE) #elif defined(CONFIG_OMAP_LL_DEBUG_NONE)
return; return;
#else #else
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册