提交 a3a9b36e 编写于 作者: T Tony Lindgren

omap2/3/4: Fix mach-omap2/serial.c for multiboot

Initialize UART4 only for 3630 and 44xx.
Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: NTony Lindgren <tony@atomide.com>
上级 3f1686a9
...@@ -114,7 +114,7 @@ static struct plat_serial8250_port serial_platform_data2[] = { ...@@ -114,7 +114,7 @@ static struct plat_serial8250_port serial_platform_data2[] = {
} }
}; };
#ifdef CONFIG_ARCH_OMAP4 #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
static struct plat_serial8250_port serial_platform_data3[] = { static struct plat_serial8250_port serial_platform_data3[] = {
{ {
.irq = 70, .irq = 70,
...@@ -126,6 +126,15 @@ static struct plat_serial8250_port serial_platform_data3[] = { ...@@ -126,6 +126,15 @@ static struct plat_serial8250_port serial_platform_data3[] = {
.flags = 0 .flags = 0
} }
}; };
static inline void omap2_set_globals_uart4(struct omap_globals *omap2_globals)
{
serial_platform_data3[0].mapbase = omap2_globals->uart4_phys;
}
#else
static inline void omap2_set_globals_uart4(struct omap_globals *omap2_globals)
{
}
#endif #endif
void __init omap2_set_globals_uart(struct omap_globals *omap2_globals) void __init omap2_set_globals_uart(struct omap_globals *omap2_globals)
...@@ -133,9 +142,8 @@ void __init omap2_set_globals_uart(struct omap_globals *omap2_globals) ...@@ -133,9 +142,8 @@ void __init omap2_set_globals_uart(struct omap_globals *omap2_globals)
serial_platform_data0[0].mapbase = omap2_globals->uart1_phys; serial_platform_data0[0].mapbase = omap2_globals->uart1_phys;
serial_platform_data1[0].mapbase = omap2_globals->uart2_phys; serial_platform_data1[0].mapbase = omap2_globals->uart2_phys;
serial_platform_data2[0].mapbase = omap2_globals->uart3_phys; serial_platform_data2[0].mapbase = omap2_globals->uart3_phys;
#ifdef CONFIG_ARCH_OMAP4 if (cpu_is_omap3630() || cpu_is_omap44xx())
serial_platform_data3[0].mapbase = omap2_globals->uart4_phys; omap2_set_globals_uart4(omap2_globals);
#endif
} }
static inline unsigned int __serial_read_reg(struct uart_port *up, static inline unsigned int __serial_read_reg(struct uart_port *up,
...@@ -581,7 +589,7 @@ static struct omap_uart_state omap_uart[] = { ...@@ -581,7 +589,7 @@ static struct omap_uart_state omap_uart[] = {
}, },
}, },
}, },
#ifdef CONFIG_ARCH_OMAP4 #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
{ {
.pdev = { .pdev = {
.name = "serial8250", .name = "serial8250",
...@@ -728,8 +736,13 @@ void __init omap_serial_init_port(int port) ...@@ -728,8 +736,13 @@ void __init omap_serial_init_port(int port)
*/ */
void __init omap_serial_init(void) void __init omap_serial_init(void)
{ {
int i; int i, nr_ports;
if (!(cpu_is_omap3630() || cpu_is_omap4430()))
nr_ports = 3;
else
nr_ports = ARRAY_SIZE(omap_uart);
for (i = 0; i < ARRAY_SIZE(omap_uart); i++) for (i = 0; i < nr_ports; i++)
omap_serial_init_port(i); omap_serial_init_port(i);
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册