aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xarch/arm/mach-omap2/board-tuna.c35
-rw-r--r--arch/arm/mach-omap2/board-tuna.h1
2 files changed, 24 insertions, 12 deletions
diff --git a/arch/arm/mach-omap2/board-tuna.c b/arch/arm/mach-omap2/board-tuna.c
index bd4af92..4d61466 100755
--- a/arch/arm/mach-omap2/board-tuna.c
+++ b/arch/arm/mach-omap2/board-tuna.c
@@ -282,6 +282,15 @@ static void tuna_gsd4t_gps_gpio(void)
omap_mux_init_signal("mcspi1_cs0.gpio_137", OMAP_PIN_OUTPUT);
/* GPS_UART_SEL - GPIO 164 */
omap_mux_init_signal("usbb2_ulpitll_dat3.gpio_164", OMAP_PIN_OUTPUT);
+
+ if (omap4_tuna_get_revision() >= TUNA_REV_03) {
+ /* GPS_UART_CTS - GPIO 139 */
+ omap_mux_init_signal("mcspi1_cs2.gpio_139",
+ OMAP_MUX_MODE1 | OMAP_PIN_INPUT);
+ /* GPS_UART_RTS - GPIO 140 */
+ omap_mux_init_signal("mcspi1_cs3.gpio_140",
+ OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT);
+ }
}
static void tuna_gsd4t_gps_init(void)
@@ -601,6 +610,13 @@ static struct omap_board_mux board_wkup_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR },
};
+static struct omap_device_pad serial1_pads[] __initdata = {
+ OMAP_MUX_STATIC("mcspi1_cs1.uart1_rx",
+ OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE1),
+ OMAP_MUX_STATIC("uart3_cts_rctx.uart1_tx",
+ OMAP_PIN_OUTPUT | OMAP_MUX_MODE1),
+};
+
static struct omap_device_pad serial2_pads[] __initdata = {
OMAP_MUX_STATIC("uart2_cts.uart2_cts",
OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0),
@@ -613,10 +629,6 @@ static struct omap_device_pad serial2_pads[] __initdata = {
};
static struct omap_device_pad serial3_pads[] __initdata = {
- OMAP_MUX_STATIC("uart3_cts_rctx.uart3_cts_rctx",
- OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0),
- OMAP_MUX_STATIC("uart3_rts_sd.uart3_rts_sd",
- OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
OMAP_MUX_STATIC("uart3_rx_irrx.uart3_rx_irrx",
OMAP_PIN_INPUT | OMAP_MUX_MODE0),
OMAP_MUX_STATIC("uart3_tx_irtx.uart3_tx_irtx",
@@ -630,6 +642,12 @@ static struct omap_device_pad serial4_pads[] __initdata = {
OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
};
+static struct omap_board_data serial1_data __initdata = {
+ .id = 0,
+ .pads = serial1_pads,
+ .pads_cnt = ARRAY_SIZE(serial1_pads),
+};
+
static struct omap_board_data serial2_data __initdata = {
.id = 1,
.pads = serial2_pads,
@@ -650,14 +668,7 @@ static struct omap_board_data serial4_data __initdata = {
static inline void __init board_serial_init(void)
{
- struct omap_board_data bdata;
- bdata.flags = 0;
- bdata.pads = NULL;
- bdata.pads_cnt = 0;
- bdata.id = 0;
- /* pass dummy data for UART1 */
- omap_serial_init_port(&bdata);
-
+ omap_serial_init_port(&serial1_data);
omap_serial_init_port(&serial2_data);
omap_serial_init_port(&serial3_data);
omap_serial_init_port(&serial4_data);
diff --git a/arch/arm/mach-omap2/board-tuna.h b/arch/arm/mach-omap2/board-tuna.h
index ab4cd35..c056f01 100644
--- a/arch/arm/mach-omap2/board-tuna.h
+++ b/arch/arm/mach-omap2/board-tuna.h
@@ -17,6 +17,7 @@
#define TUNA_REV_PRE_LUNCHBOX 0x5
#define TUNA_REV_LUNCHBOX 0x0
#define TUNA_REV_MASK 0xf
+#define TUNA_REV_03 0x3
#define TUNA_TYPE_TORO 0x10
#define TUNA_TYPE_MAGURO 0x00