aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap1/board-innovator.c
diff options
context:
space:
mode:
authorJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>2009-10-22 17:47:42 -0400
committerTony Lindgren <tony@atomide.com>2009-10-22 17:47:42 -0400
commitc33da3a80074094303d643a90ef589330b491270 (patch)
tree64c8a0d9a56a4590e21641c04deae0b6a66eb8c0 /arch/arm/mach-omap1/board-innovator.c
parentdcc730dc9d7614fdaf6bce73d6e8ffe47c8820b1 (diff)
omap1: Fix redundant UARTs pin muxing that can break other hardware support
Commit 15ac408ee5a509053a765b816e9179515329369f removed enabled_uart and OMAP_TAG_UART. This works for mach-omap2, but causes issues on mach-omap1 for some boards as the mach-omap1 serial.c was muxing pins based on the enabled_uart flag for 15xx. Fix this by muxing pins in board-*.c files for the 15xx boards for the uart ports that had enabled_uart flag set before the commit above. Tested on Amsdtrad Delta only. Note that in the future we should add support for powering down the uarts with a timer like mach-omap2/serial.c does. Otherwise the enabled uarts will be blocking retention-while-idle. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap1/board-innovator.c')
-rw-r--r--arch/arm/mach-omap1/board-innovator.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c
index cc2abbb2d0f4..cd6c39514826 100644
--- a/arch/arm/mach-omap1/board-innovator.c
+++ b/arch/arm/mach-omap1/board-innovator.c
@@ -376,6 +376,26 @@ static void __init innovator_init(void)
376{ 376{
377#ifdef CONFIG_ARCH_OMAP15XX 377#ifdef CONFIG_ARCH_OMAP15XX
378 if (cpu_is_omap1510()) { 378 if (cpu_is_omap1510()) {
379 unsigned char reg;
380
381 /* mux pins for uarts */
382 omap_cfg_reg(UART1_TX);
383 omap_cfg_reg(UART1_RTS);
384 omap_cfg_reg(UART2_TX);
385 omap_cfg_reg(UART2_RTS);
386 omap_cfg_reg(UART3_TX);
387 omap_cfg_reg(UART3_RX);
388
389 reg = fpga_read(OMAP1510_FPGA_POWER);
390 reg |= OMAP1510_FPGA_PCR_COM1_EN;
391 fpga_write(reg, OMAP1510_FPGA_POWER);
392 udelay(10);
393
394 reg = fpga_read(OMAP1510_FPGA_POWER);
395 reg |= OMAP1510_FPGA_PCR_COM2_EN;
396 fpga_write(reg, OMAP1510_FPGA_POWER);
397 udelay(10);
398
379 platform_add_devices(innovator1510_devices, ARRAY_SIZE(innovator1510_devices)); 399 platform_add_devices(innovator1510_devices, ARRAY_SIZE(innovator1510_devices));
380 spi_register_board_info(innovator1510_boardinfo, 400 spi_register_board_info(innovator1510_boardinfo,
381 ARRAY_SIZE(innovator1510_boardinfo)); 401 ARRAY_SIZE(innovator1510_boardinfo));