mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-21 11:26:59 +00:00
3aeebece0e
Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
170 lines
5.1 KiB
Diff
170 lines
5.1 KiB
Diff
From bce492c04ba8fc66a4ea0a52b181ba255daaaf54 Mon Sep 17 00:00:00 2001
|
|
From: Govindraj.R <govindraj.raja@ti.com>
|
|
Date: Tue, 17 Apr 2012 10:35:47 -0700
|
|
Subject: [PATCH] ARM: OMAP2+: UART: Fix incorrect population of default uart pads
|
|
|
|
Commit (7496ba3 ARM: OMAP2+: UART: Add default mux for all uarts)
|
|
wrongly added muxing of default pads for all uarts. This causes
|
|
breakage on multiple boards using uart pins for alternate functions.
|
|
|
|
For example, on zoom3 random oopses can be seen with nfsroot as
|
|
the smsc911x ethernet FIFO timings on GPMC bus are controlled
|
|
by gpmc_wait2 and gpmc_wait3 pins. This means we can't mux these
|
|
pads to uart4 functionality as commit 7496ba3 was doing.
|
|
|
|
Not all boards tend to use all uarts and most of unused uart pins
|
|
are muxed for other purpose. This commit breaks the modules which
|
|
where trying to use unused uart pins on their boards.
|
|
|
|
So remove the default pad muxing. Note that this is not a complete
|
|
fix, as we now rely on bootloader set muxing for the uart wake-up
|
|
events. Further patching is needed to enable wake-up events for
|
|
uarts that are already muxed to uart mode.
|
|
|
|
Upstream-Status: Backport
|
|
* Backported from commit bce492c0 in linux mainline
|
|
|
|
Cc: Felipe Balbi <balbi@ti.com>
|
|
Cc: Kevin Hilman <khilman@ti.com>
|
|
Acked-by: Russ Dill <russ.dill@gmail.com>
|
|
Reported-by: Tony Lindgren <tony@atomide.com>
|
|
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
|
|
[tony@atomide.com: updated comments to describe oops on zoom3]
|
|
Signed-off-by: Tony Lindgren <tony@atomide.com>
|
|
---
|
|
arch/arm/mach-omap2/serial.c | 116 ------------------------------------------
|
|
1 files changed, 0 insertions(+), 116 deletions(-)
|
|
|
|
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
|
|
index 0cdd359..2e351f5 100644
|
|
--- a/arch/arm/mach-omap2/serial.c
|
|
+++ b/arch/arm/mach-omap2/serial.c
|
|
@@ -120,124 +120,8 @@ static void omap_uart_set_smartidle(struct platform_device *pdev) {}
|
|
#endif /* CONFIG_PM */
|
|
|
|
#ifdef CONFIG_OMAP_MUX
|
|
-static struct omap_device_pad default_uart1_pads[] __initdata = {
|
|
- {
|
|
- .name = "uart1_cts.uart1_cts",
|
|
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart1_rts.uart1_rts",
|
|
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart1_tx.uart1_tx",
|
|
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart1_rx.uart1_rx",
|
|
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
|
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
|
- .idle = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
|
- },
|
|
-};
|
|
-
|
|
-static struct omap_device_pad default_uart2_pads[] __initdata = {
|
|
- {
|
|
- .name = "uart2_cts.uart2_cts",
|
|
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart2_rts.uart2_rts",
|
|
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart2_tx.uart2_tx",
|
|
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart2_rx.uart2_rx",
|
|
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
|
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
|
- .idle = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
|
- },
|
|
-};
|
|
-
|
|
-static struct omap_device_pad default_uart3_pads[] __initdata = {
|
|
- {
|
|
- .name = "uart3_cts_rctx.uart3_cts_rctx",
|
|
- .enable = OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart3_rts_sd.uart3_rts_sd",
|
|
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart3_tx_irtx.uart3_tx_irtx",
|
|
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart3_rx_irrx.uart3_rx_irrx",
|
|
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
|
- .enable = OMAP_PIN_INPUT | OMAP_MUX_MODE0,
|
|
- .idle = OMAP_PIN_INPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
-};
|
|
-
|
|
-static struct omap_device_pad default_omap36xx_uart4_pads[] __initdata = {
|
|
- {
|
|
- .name = "gpmc_wait2.uart4_tx",
|
|
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "gpmc_wait3.uart4_rx",
|
|
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
|
- .enable = OMAP_PIN_INPUT | OMAP_MUX_MODE2,
|
|
- .idle = OMAP_PIN_INPUT | OMAP_MUX_MODE2,
|
|
- },
|
|
-};
|
|
-
|
|
-static struct omap_device_pad default_omap4_uart4_pads[] __initdata = {
|
|
- {
|
|
- .name = "uart4_tx.uart4_tx",
|
|
- .enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
- {
|
|
- .name = "uart4_rx.uart4_rx",
|
|
- .flags = OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
|
|
- .enable = OMAP_PIN_INPUT | OMAP_MUX_MODE0,
|
|
- .idle = OMAP_PIN_INPUT | OMAP_MUX_MODE0,
|
|
- },
|
|
-};
|
|
-
|
|
static void omap_serial_fill_default_pads(struct omap_board_data *bdata)
|
|
{
|
|
- switch (bdata->id) {
|
|
- case 0:
|
|
- bdata->pads = default_uart1_pads;
|
|
- bdata->pads_cnt = ARRAY_SIZE(default_uart1_pads);
|
|
- break;
|
|
- case 1:
|
|
- bdata->pads = default_uart2_pads;
|
|
- bdata->pads_cnt = ARRAY_SIZE(default_uart2_pads);
|
|
- break;
|
|
- case 2:
|
|
- bdata->pads = default_uart3_pads;
|
|
- bdata->pads_cnt = ARRAY_SIZE(default_uart3_pads);
|
|
- break;
|
|
- case 3:
|
|
- if (cpu_is_omap44xx()) {
|
|
- bdata->pads = default_omap4_uart4_pads;
|
|
- bdata->pads_cnt =
|
|
- ARRAY_SIZE(default_omap4_uart4_pads);
|
|
- } else if (cpu_is_omap3630()) {
|
|
- bdata->pads = default_omap36xx_uart4_pads;
|
|
- bdata->pads_cnt =
|
|
- ARRAY_SIZE(default_omap36xx_uart4_pads);
|
|
- }
|
|
- break;
|
|
- default:
|
|
- break;
|
|
- }
|
|
}
|
|
#else
|
|
static void omap_serial_fill_default_pads(struct omap_board_data *bdata) {}
|
|
--
|
|
1.7.0.4
|
|
|