linux-omap3-pm: refresh patches and remove some sed magic to boot zoom2
Signed-off-by: Mike Turquette <mturquette@ti.com>
This commit is contained in:
parent
db4cd6d67e
commit
3f8afe492f
|
@ -0,0 +1,217 @@
|
|||
From 51f967864f0e30225c8a8e50e0bbaf92258c0032 Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Thu, 20 Aug 2009 16:13:20 -0500
|
||||
Subject: [PATCH 1/5] OMAP1/2/3/4: DEBUG_LL: cleanup
|
||||
|
||||
This patch cleans up the DEBUG_LL infrastructure for omap boards.
|
||||
|
||||
The three stages of log printing infrastructure is using their own #defines
|
||||
The patch integrates the three stages to use the same variable.
|
||||
|
||||
Three stages are:
|
||||
Stage 1: Prints - Uncompressing Linux......
|
||||
File getting used: arch/arm/plat-omap/include/mach/uncompress.h
|
||||
Stage 2: Prints - <5>Linux version 2.6.31
|
||||
File getting used: arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
Stage 3: Kernel ttyS console takes over
|
||||
|
||||
On enabling the DEBUG_LL menuconfig item
|
||||
[Kernel Hacking -> Kernel low-level debugging functions]
|
||||
|
||||
the following entry gets auto selected
|
||||
[Systerm Type -> TI OMAP Implementations -> Low-level Debug console UART]
|
||||
|
||||
This is the physical address of the UART getting used for the board.
|
||||
The physical address of debug uart is provided as a menuconfig option now.
|
||||
|
||||
Issue with current system:
|
||||
(a) Zoom2 board has a detachable debug board having the TL16CP754 Quad uart chip.
|
||||
If the debug board is not attached, _NO_ debug uart is available.
|
||||
OMAP internal uarts are not used for traces on zoom2 board.
|
||||
Current framework does not account for boards that may not have a debug uart
|
||||
at all. The Stage 1 always accesses one of the uarts. Thats fixed now.
|
||||
|
||||
(b) this patch does a cleanup of arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
---
|
||||
arch/arm/plat-omap/Kconfig | 50 ++++++++++++++++++-------
|
||||
arch/arm/plat-omap/include/mach/common.h | 7 +++
|
||||
arch/arm/plat-omap/include/mach/debug-macro.S | 40 ++++----------------
|
||||
arch/arm/plat-omap/include/mach/uncompress.h | 12 +----
|
||||
4 files changed, 54 insertions(+), 55 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
|
||||
index ab9f9ef..2fefb64 100644
|
||||
--- a/arch/arm/plat-omap/Kconfig
|
||||
+++ b/arch/arm/plat-omap/Kconfig
|
||||
@@ -162,21 +162,43 @@ config OMAP_DM_TIMER
|
||||
help
|
||||
Select this option if you want to use OMAP Dual-Mode timers.
|
||||
|
||||
-choice
|
||||
- prompt "Low-level debug console UART"
|
||||
- depends on ARCH_OMAP
|
||||
- default OMAP_LL_DEBUG_UART1
|
||||
-
|
||||
-config OMAP_LL_DEBUG_UART1
|
||||
- bool "UART1"
|
||||
-
|
||||
-config OMAP_LL_DEBUG_UART2
|
||||
- bool "UART2"
|
||||
|
||||
-config OMAP_LL_DEBUG_UART3
|
||||
- bool "UART3"
|
||||
-
|
||||
-endchoice
|
||||
+config OMAP_DEBUG_LL_UART_PHY_ADDR
|
||||
+ hex "Low-level debug console UART Physical Address"
|
||||
+ depends on ARCH_OMAP && DEBUG_LL
|
||||
+
|
||||
+ default "0xfffb0800" if ARCH_OMAP1 && (MACH_OMAP_PALMTT || MACH_SX1)
|
||||
+ default "0xfffb0000" if ARCH_OMAP1
|
||||
+ default "0x4806e000" if ARCH_OMAP2 && MACH_NOKIA_N8X0
|
||||
+ default "0x4806a000" if ARCH_OMAP2
|
||||
+ default "0x49020000" if ARCH_OMAP3 && (MACH_NOKIA_RX51 || MACH_OMAP_BEAGLE)
|
||||
+ default "0x49020000" if ARCH_OMAP3 && (MACH_OMAP3_PANDORA || MACH_OMAP_LDP || MACH_OVERO)
|
||||
+ default "0x10000000" if ARCH_OMAP3 && MACH_OMAP_ZOOM2
|
||||
+ default "0x4806a000" if ARCH_OMAP3
|
||||
+ default "0x4806a000" if ARCH_OMAP4
|
||||
+ help
|
||||
+ Specify the Physical address of Low level debug UART
|
||||
+ Specify 0x0 in case you do not want DEBUG_LL functions to iterfere with your board uarts
|
||||
+
|
||||
+ OMAP1:
|
||||
+ -------------------
|
||||
+ UART1 -> 0xfffb0000 (default)
|
||||
+ UART2 -> 0xfffb0800
|
||||
+ UART3 -> 0xfffb9800 (sx1, palmtt)
|
||||
+
|
||||
+ OMAP2:
|
||||
+ -------------------
|
||||
+ UART1 -> 0x4806a000 (default)
|
||||
+ UART2 -> 0x4806c000
|
||||
+ UART3 -> 0x4806e000 (N8X0)
|
||||
+
|
||||
+ OMAP3/4:
|
||||
+ -------------------
|
||||
+ UART1 -> 0x4806a000 (default: except following)
|
||||
+ UART2 -> 0x4806c000
|
||||
+ UART3 -> 0x49020000 (rx51, beagle, pendora, ldp, overo)
|
||||
+ UART4 -> 0x4806e000
|
||||
+ UART_EXT -> 0x10000000 (zoom2: Debug uart is on external debug board)
|
||||
|
||||
config OMAP_SERIAL_WAKE
|
||||
bool "Enable wake-up events for serial ports"
|
||||
diff --git a/arch/arm/plat-omap/include/mach/common.h b/arch/arm/plat-omap/include/mach/common.h
|
||||
index fdeab42..f29d31f 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/common.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/common.h
|
||||
@@ -68,4 +68,11 @@ void omap2_set_globals_sdrc(struct omap_globals *);
|
||||
void omap2_set_globals_control(struct omap_globals *);
|
||||
void omap2_set_globals_prcm(struct omap_globals *);
|
||||
|
||||
+/* In case Low Level debug is not defined
|
||||
+ * make the low level uart address as zero
|
||||
+ */
|
||||
+#if !defined(CONFIG_DEBUG_LL)
|
||||
+#define CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR 0
|
||||
+#endif
|
||||
+
|
||||
#endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */
|
||||
diff --git a/arch/arm/plat-omap/include/mach/debug-macro.S b/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
index ac24050..f546d6c 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
+++ b/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
@@ -10,43 +10,19 @@
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
+#include "io.h"
|
||||
|
||||
.macro addruart,rx
|
||||
mrc p15, 0, \rx, c1, c0
|
||||
tst \rx, #1 @ MMU enabled?
|
||||
#ifdef CONFIG_ARCH_OMAP1
|
||||
- moveq \rx, #0xff000000 @ physical base address
|
||||
- movne \rx, #0xfe000000 @ virtual base
|
||||
- orr \rx, \rx, #0x00fb0000
|
||||
-#ifdef CONFIG_OMAP_LL_DEBUG_UART3
|
||||
- orr \rx, \rx, #0x00009000 @ UART 3
|
||||
-#endif
|
||||
-#if defined(CONFIG_OMAP_LL_DEBUG_UART2) || defined(CONFIG_OMAP_LL_DEBUG_UART3)
|
||||
- orr \rx, \rx, #0x00000800 @ UART 2 & 3
|
||||
-#endif
|
||||
-
|
||||
-#elif CONFIG_ARCH_OMAP2
|
||||
- moveq \rx, #0x48000000 @ physical base address
|
||||
- movne \rx, #0xd8000000 @ virtual base
|
||||
- orr \rx, \rx, #0x0006a000
|
||||
-#ifdef CONFIG_OMAP_LL_DEBUG_UART2
|
||||
- add \rx, \rx, #0x00002000 @ UART 2
|
||||
-#endif
|
||||
-#ifdef CONFIG_OMAP_LL_DEBUG_UART3
|
||||
- add \rx, \rx, #0x00004000 @ UART 3
|
||||
-#endif
|
||||
-
|
||||
-#elif defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
|
||||
- moveq \rx, #0x48000000 @ physical base address
|
||||
- movne \rx, #0xd8000000 @ virtual base
|
||||
- orr \rx, \rx, #0x0006a000
|
||||
-#ifdef CONFIG_OMAP_LL_DEBUG_UART2
|
||||
- add \rx, \rx, #0x00002000 @ UART 2
|
||||
-#endif
|
||||
-#ifdef CONFIG_OMAP_LL_DEBUG_UART3
|
||||
- add \rx, \rx, #0x00fb0000 @ UART 3
|
||||
- add \rx, \rx, #0x00006000
|
||||
-#endif
|
||||
+ /* omap1 */
|
||||
+ ldr \rx, =CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR @ physical base address
|
||||
+ subne \rx, #CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, #OMAP1_IO_OFFSET @ virtual base
|
||||
+#else
|
||||
+ /* omap2/omap3/omap4 */
|
||||
+ ldr \rx, =CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR @ physical base address
|
||||
+ orrne \rx, \rx, #OMAP2_IO_OFFSET @ virtual base
|
||||
#endif
|
||||
.endm
|
||||
|
||||
diff --git a/arch/arm/plat-omap/include/mach/uncompress.h b/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
index 0814c5f..0e21eb3 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
@@ -38,14 +38,8 @@ static void putc(int c)
|
||||
return;
|
||||
#endif
|
||||
|
||||
-#ifdef CONFIG_ARCH_OMAP
|
||||
-#ifdef CONFIG_OMAP_LL_DEBUG_UART3
|
||||
- uart = (volatile u8 *)(OMAP_UART3_BASE);
|
||||
-#elif defined(CONFIG_OMAP_LL_DEBUG_UART2)
|
||||
- uart = (volatile u8 *)(OMAP_UART2_BASE);
|
||||
-#else
|
||||
- uart = (volatile u8 *)(OMAP_UART1_BASE);
|
||||
-#endif
|
||||
+#if defined(CONFIG_DEBUG_LL)
|
||||
+ uart = (volatile u8 *)(CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR);
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP1
|
||||
/* Determine which serial port to use */
|
||||
@@ -62,7 +56,6 @@ static void putc(int c)
|
||||
return;
|
||||
} while (0);
|
||||
#endif /* CONFIG_ARCH_OMAP1 */
|
||||
-#endif
|
||||
|
||||
/*
|
||||
* Now, xmit each character
|
||||
@@ -70,6 +63,7 @@ static void putc(int c)
|
||||
while (!(uart[UART_LSR << shift] & UART_LSR_THRE))
|
||||
barrier();
|
||||
uart[UART_TX << shift] = c;
|
||||
+#endif /* CONFIG_DEBUG_LL */
|
||||
}
|
||||
|
||||
static inline void flush(void)
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -1,170 +0,0 @@
|
|||
From be0e1c0f2f529d6f5adb9c5050731d881874c34b Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Thu, 18 Jun 2009 13:40:08 -0500
|
||||
Subject: [PATCH 1/8] OMAP3: MMC: Add mux for pins
|
||||
|
||||
For OMAP3 add MMC1 MMC2 pin mux
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Signed-off-by: Chikkature Rajashekar <madhu.cr@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/devices.c | 42 ++++++++++++++++++++++++++++
|
||||
arch/arm/mach-omap2/mux.c | 49 +++++++++++++++++++++++++++++++++
|
||||
arch/arm/plat-omap/include/mach/mux.h | 28 +++++++++++++++++++
|
||||
3 files changed, 119 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
|
||||
index 81f47d9..243815e 100644
|
||||
--- a/arch/arm/mach-omap2/devices.c
|
||||
+++ b/arch/arm/mach-omap2/devices.c
|
||||
@@ -455,6 +455,48 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller,
|
||||
omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ if (cpu_is_omap3430()) {
|
||||
+ if (controller_nr == 0) {
|
||||
+ omap_cfg_reg(N28_3430_MMC1_CLK);
|
||||
+ omap_cfg_reg(M27_3430_MMC1_CMD);
|
||||
+ omap_cfg_reg(N27_3430_MMC1_DAT0);
|
||||
+ if (mmc_controller->slots[0].wires == 4 ||
|
||||
+ mmc_controller->slots[0].wires == 8) {
|
||||
+ omap_cfg_reg(N26_3430_MMC1_DAT1);
|
||||
+ omap_cfg_reg(N25_3430_MMC1_DAT2);
|
||||
+ omap_cfg_reg(P28_3430_MMC1_DAT3);
|
||||
+ }
|
||||
+ if (mmc_controller->slots[0].wires == 8) {
|
||||
+ omap_cfg_reg(P27_3430_MMC1_DAT4);
|
||||
+ omap_cfg_reg(P26_3430_MMC1_DAT5);
|
||||
+ omap_cfg_reg(R27_3430_MMC1_DAT6);
|
||||
+ omap_cfg_reg(R25_3430_MMC1_DAT7);
|
||||
+ }
|
||||
+ }
|
||||
+ if (controller_nr == 1) {
|
||||
+ /* MMC2 */
|
||||
+ omap_cfg_reg(AE2_3430_MMC2_CLK);
|
||||
+ omap_cfg_reg(AG5_3430_MMC2_CMD);
|
||||
+ omap_cfg_reg(AH5_3430_MMC2_DAT0);
|
||||
+ if (mmc_controller->slots[0].wires == 4 ||
|
||||
+ mmc_controller->slots[0].wires == 8) {
|
||||
+ omap_cfg_reg(AH4_3430_MMC2_DAT1);
|
||||
+ omap_cfg_reg(AG4_3430_MMC2_DAT2);
|
||||
+ omap_cfg_reg(AF4_3430_MMC2_DAT3);
|
||||
+ }
|
||||
+ if (mmc_controller->slots[0].wires == 8)
|
||||
+ printk(KERN_WARNING
|
||||
+ "\n MMC2: DAT4, DAT5, DAT6, DAT7: "
|
||||
+ "Setup the mux in board file");
|
||||
+ }
|
||||
+ if (controller_nr == 2) {
|
||||
+ /* MMC3 */
|
||||
+ printk(KERN_WARNING
|
||||
+ "\n MMC3: Setup the mux in board file: "
|
||||
+ "Multiple options exist, so is board specific");
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
#define MAX_OMAP_MMC_HWMOD_NAME_LEN 16
|
||||
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
|
||||
index 026c4fc..d49b9a7 100644
|
||||
--- a/arch/arm/mach-omap2/mux.c
|
||||
+++ b/arch/arm/mach-omap2/mux.c
|
||||
@@ -486,6 +486,55 @@ MUX_CFG_34XX("H19_34XX_GPIO164_OUT", 0x19c,
|
||||
OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_OUTPUT)
|
||||
MUX_CFG_34XX("J25_34XX_GPIO170", 0x1c6,
|
||||
OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT)
|
||||
+/* MMC1 */
|
||||
+MUX_CFG_34XX("N28_3430_MMC1_CLK", 0x144,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("M27_3430_MMC1_CMD", 0x146,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("N27_3430_MMC1_DAT0", 0x148,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("N26_3430_MMC1_DAT1", 0x14a,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("N25_3430_MMC1_DAT2", 0x14c,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("P28_3430_MMC1_DAT3", 0x14e,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("P27_3430_MMC1_DAT4", 0x150,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("P26_3430_MMC1_DAT5", 0x152,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("R27_3430_MMC1_DAT6", 0x154,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("R25_3430_MMC1_DAT7", 0x156,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+
|
||||
+/* MMC2 */
|
||||
+MUX_CFG_34XX("AE2_3430_MMC2_CLK", 0x158,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AG5_3430_MMC2_CMD", 0x15A,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AH5_3430_MMC2_DAT0", 0x15c,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AH4_3430_MMC2_DAT1", 0x15e,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AG4_3430_MMC2_DAT2", 0x160,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AF4_3430_MMC2_DAT3", 0x162,
|
||||
+ OMAP34XX_MUX_MODE0 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+
|
||||
+/* MMC3 */
|
||||
+MUX_CFG_34XX("AF10_3430_MMC3_CLK", 0x5d8,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AC3_3430_MMC3_CMD", 0x1d0,
|
||||
+ OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AE11_3430_MMC3_DAT0", 0x5e4,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AH9_3430_MMC3_DAT1", 0x5e6,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AF13_3430_MMC3_DAT2", 0x5e8,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
+MUX_CFG_34XX("AF13_3430_MMC3_DAT3", 0x5e2,
|
||||
+ OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
|
||||
};
|
||||
|
||||
#define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins)
|
||||
diff --git a/arch/arm/plat-omap/include/mach/mux.h b/arch/arm/plat-omap/include/mach/mux.h
|
||||
index 85a6217..d24fdf9 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/mux.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/mux.h
|
||||
@@ -853,6 +853,34 @@ enum omap34xx_index {
|
||||
AE5_34XX_GPIO143,
|
||||
H19_34XX_GPIO164_OUT,
|
||||
J25_34XX_GPIO170,
|
||||
+
|
||||
+ /* MMC1 */
|
||||
+ N28_3430_MMC1_CLK,
|
||||
+ M27_3430_MMC1_CMD,
|
||||
+ N27_3430_MMC1_DAT0,
|
||||
+ N26_3430_MMC1_DAT1,
|
||||
+ N25_3430_MMC1_DAT2,
|
||||
+ P28_3430_MMC1_DAT3,
|
||||
+ P27_3430_MMC1_DAT4,
|
||||
+ P26_3430_MMC1_DAT5,
|
||||
+ R27_3430_MMC1_DAT6,
|
||||
+ R25_3430_MMC1_DAT7,
|
||||
+
|
||||
+ /* MMC2 */
|
||||
+ AE2_3430_MMC2_CLK,
|
||||
+ AG5_3430_MMC2_CMD,
|
||||
+ AH5_3430_MMC2_DAT0,
|
||||
+ AH4_3430_MMC2_DAT1,
|
||||
+ AG4_3430_MMC2_DAT2,
|
||||
+ AF4_3430_MMC2_DAT3,
|
||||
+
|
||||
+ /* MMC3 */
|
||||
+ AF10_3430_MMC3_CLK,
|
||||
+ AC3_3430_MMC3_CMD,
|
||||
+ AE11_3430_MMC3_DAT0,
|
||||
+ AH9_3430_MMC3_DAT1,
|
||||
+ AF13_3430_MMC3_DAT2,
|
||||
+ AF13_3430_MMC3_DAT3,
|
||||
};
|
||||
|
||||
struct omap_mux_cfg {
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -0,0 +1,268 @@
|
|||
From 533dc09b3515211d6bee1f63aa3ddd659d0d319c Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Thu, 20 Aug 2009 16:58:42 -0500
|
||||
Subject: [PATCH 2/5] OMAP1/2/3/4: Adapt board files for cleand DEBUG_LL interface
|
||||
|
||||
This patch assigns the physical address of debug uart as defined
|
||||
in menucoinfig item CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR to phys_io
|
||||
|
||||
The virtual address for io_pg_offset is calculated as per static
|
||||
mapping
|
||||
|
||||
CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR is a hex value and for boards
|
||||
like Zoom2, the phy address can be zero, in case debug board
|
||||
is not attached.
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-2430sdp.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-3430sdp.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-4430sdp.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-apollon.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-generic.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-h4.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-ldp.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-n8x0.c | 12 ++++++------
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-omap3evm.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-omap3pandora.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-overo.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-rx51.c | 4 ++--
|
||||
arch/arm/mach-omap2/board-zoom2.c | 4 ++--
|
||||
14 files changed, 32 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c
|
||||
index c693668..9ed2f2c 100644
|
||||
--- a/arch/arm/mach-omap2/board-2430sdp.c
|
||||
+++ b/arch/arm/mach-omap2/board-2430sdp.c
|
||||
@@ -225,8 +225,8 @@ static void __init omap_2430sdp_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
|
||||
/* Maintainer: Syed Khasim - Texas Instruments Inc */
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_2430sdp_map_io,
|
||||
.init_irq = omap_2430sdp_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
|
||||
index c71417f..f085eee 100644
|
||||
--- a/arch/arm/mach-omap2/board-3430sdp.c
|
||||
+++ b/arch/arm/mach-omap2/board-3430sdp.c
|
||||
@@ -505,8 +505,8 @@ static void __init omap_3430sdp_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
|
||||
/* Maintainer: Syed Khasim - Texas Instruments Inc */
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_3430sdp_map_io,
|
||||
.init_irq = omap_3430sdp_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
|
||||
index 646079f..4c1a166 100644
|
||||
--- a/arch/arm/mach-omap2/board-4430sdp.c
|
||||
+++ b/arch/arm/mach-omap2/board-4430sdp.c
|
||||
@@ -83,8 +83,8 @@ static void __init omap_4430sdp_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
|
||||
/* Maintainer: Santosh Shilimkar - Texas Instruments Inc */
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_4430sdp_map_io,
|
||||
.init_irq = omap_4430sdp_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c
|
||||
index e2947fd..61da659 100644
|
||||
--- a/arch/arm/mach-omap2/board-apollon.c
|
||||
+++ b/arch/arm/mach-omap2/board-apollon.c
|
||||
@@ -336,8 +336,8 @@ static void __init omap_apollon_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
|
||||
/* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_apollon_map_io,
|
||||
.init_irq = omap_apollon_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
|
||||
index fc9eccb..6d39eaa 100644
|
||||
--- a/arch/arm/mach-omap2/board-generic.c
|
||||
+++ b/arch/arm/mach-omap2/board-generic.c
|
||||
@@ -59,8 +59,8 @@ static void __init omap_generic_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
|
||||
/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR - OMAP1_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_generic_map_io,
|
||||
.init_irq = omap_generic_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c
|
||||
index 7eda321..4ce760f 100644
|
||||
--- a/arch/arm/mach-omap2/board-h4.c
|
||||
+++ b/arch/arm/mach-omap2/board-h4.c
|
||||
@@ -379,8 +379,8 @@ static void __init omap_h4_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
|
||||
/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_h4_map_io,
|
||||
.init_irq = omap_h4_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
|
||||
index 4a4b300..5f06434 100644
|
||||
--- a/arch/arm/mach-omap2/board-ldp.c
|
||||
+++ b/arch/arm/mach-omap2/board-ldp.c
|
||||
@@ -398,8 +398,8 @@ static void __init omap_ldp_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_LDP, "OMAP LDP board")
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_ldp_map_io,
|
||||
.init_irq = omap_ldp_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
|
||||
index af6fcee..464b432 100644
|
||||
--- a/arch/arm/mach-omap2/board-n8x0.c
|
||||
+++ b/arch/arm/mach-omap2/board-n8x0.c
|
||||
@@ -125,8 +125,8 @@ static void __init n8x0_init_machine(void)
|
||||
}
|
||||
|
||||
MACHINE_START(NOKIA_N800, "Nokia N800")
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = n8x0_map_io,
|
||||
.init_irq = n8x0_init_irq,
|
||||
@@ -135,8 +135,8 @@ MACHINE_START(NOKIA_N800, "Nokia N800")
|
||||
MACHINE_END
|
||||
|
||||
MACHINE_START(NOKIA_N810, "Nokia N810")
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = n8x0_map_io,
|
||||
.init_irq = n8x0_init_irq,
|
||||
@@ -145,8 +145,8 @@ MACHINE_START(NOKIA_N810, "Nokia N810")
|
||||
MACHINE_END
|
||||
|
||||
MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = n8x0_map_io,
|
||||
.init_irq = n8x0_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 07aee90..4d30948 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -428,8 +428,8 @@ static void __init omap3_beagle_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
|
||||
/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap3_beagle_map_io,
|
||||
.init_irq = omap3_beagle_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
|
||||
index c0cb29d..8f24dd6 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3evm.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3evm.c
|
||||
@@ -324,8 +324,8 @@ static void __init omap3_evm_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP3EVM, "OMAP3 EVM")
|
||||
/* Maintainer: Syed Mohammed Khasim - Texas Instruments */
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap3_evm_map_io,
|
||||
.init_irq = omap3_evm_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
|
||||
index 1991f19..05d1994 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3pandora.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
|
||||
@@ -412,8 +412,8 @@ static void __init omap3pandora_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console")
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap3pandora_map_io,
|
||||
.init_irq = omap3pandora_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
|
||||
index a9d7c2e..4057a1b 100644
|
||||
--- a/arch/arm/mach-omap2/board-overo.c
|
||||
+++ b/arch/arm/mach-omap2/board-overo.c
|
||||
@@ -454,8 +454,8 @@ static void __init overo_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(OVERO, "Gumstix Overo")
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = overo_map_io,
|
||||
.init_irq = overo_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
|
||||
index 8a3dc61..4b97fe8 100644
|
||||
--- a/arch/arm/mach-omap2/board-rx51.c
|
||||
+++ b/arch/arm/mach-omap2/board-rx51.c
|
||||
@@ -88,8 +88,8 @@ static void __init rx51_map_io(void)
|
||||
|
||||
MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
|
||||
/* Maintainer: Lauri Leukkunen <lauri.leukkunen@nokia.com> */
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = rx51_map_io,
|
||||
.init_irq = rx51_init_irq,
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
|
||||
index 4d295d5..58baee3 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom2.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom2.c
|
||||
@@ -280,8 +280,8 @@ static void __init omap_zoom2_map_io(void)
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR,
|
||||
+ .io_pg_offst = ((ZOOM2_EXT_QUART_VIRT) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_zoom2_map_io,
|
||||
.init_irq = omap_zoom2_init_irq,
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -1,281 +0,0 @@
|
|||
From b71cd09cefcd54e792a2ac032c3be64a97ef830c Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Fri, 12 Jun 2009 17:44:07 -0500
|
||||
Subject: [PATCH 2/8] OMAP3:Zoom2: Add TWL4030 support
|
||||
|
||||
Add TWL4030 CORE and TWL4030 drivers to Zoom2 board file
|
||||
TWL drivers enabled are:
|
||||
bci
|
||||
madc
|
||||
usb
|
||||
keypad
|
||||
mmc
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom2.c | 204 +++++++++++++++++++++++++++++++++++--
|
||||
1 files changed, 193 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
|
||||
index 0ec2023..e4bf50a 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom2.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom2.c
|
||||
@@ -12,18 +12,85 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
+#include <linux/input.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c/twl4030.h>
|
||||
+#include <linux/regulator/machine.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <mach/usb.h>
|
||||
+#include <mach/keypad.h>
|
||||
|
||||
#include "mmc-twl4030.h"
|
||||
#include "omap3-opp.h"
|
||||
|
||||
+/* Zoom2 has Qwerty keyboard*/
|
||||
+static int zoom2_twl4030_keymap[] = {
|
||||
+ KEY(0, 0, KEY_E),
|
||||
+ KEY(1, 0, KEY_R),
|
||||
+ KEY(2, 0, KEY_T),
|
||||
+ KEY(3, 0, KEY_HOME),
|
||||
+ KEY(6, 0, KEY_I),
|
||||
+ KEY(7, 0, KEY_LEFTSHIFT),
|
||||
+ KEY(0, 1, KEY_D),
|
||||
+ KEY(1, 1, KEY_F),
|
||||
+ KEY(2, 1, KEY_G),
|
||||
+ KEY(3, 1, KEY_SEND),
|
||||
+ KEY(6, 1, KEY_K),
|
||||
+ KEY(7, 1, KEY_ENTER),
|
||||
+ KEY(0, 2, KEY_X),
|
||||
+ KEY(1, 2, KEY_C),
|
||||
+ KEY(2, 2, KEY_V),
|
||||
+ KEY(3, 2, KEY_END),
|
||||
+ KEY(6, 2, KEY_DOT),
|
||||
+ KEY(7, 2, KEY_CAPSLOCK),
|
||||
+ KEY(0, 3, KEY_Z),
|
||||
+ KEY(1, 3, KEY_KPPLUS),
|
||||
+ KEY(2, 3, KEY_B),
|
||||
+ KEY(3, 3, KEY_F1),
|
||||
+ KEY(6, 3, KEY_O),
|
||||
+ KEY(7, 3, KEY_SPACE),
|
||||
+ KEY(0, 4, KEY_W),
|
||||
+ KEY(1, 4, KEY_Y),
|
||||
+ KEY(2, 4, KEY_U),
|
||||
+ KEY(3, 4, KEY_F2),
|
||||
+ KEY(4, 4, KEY_VOLUMEUP),
|
||||
+ KEY(6, 4, KEY_L),
|
||||
+ KEY(7, 4, KEY_LEFT),
|
||||
+ KEY(0, 5, KEY_S),
|
||||
+ KEY(1, 5, KEY_H),
|
||||
+ KEY(2, 5, KEY_J),
|
||||
+ KEY(3, 5, KEY_F3),
|
||||
+ KEY(5, 5, KEY_VOLUMEDOWN),
|
||||
+ KEY(6, 5, KEY_M),
|
||||
+ KEY(4, 5, KEY_ENTER),
|
||||
+ KEY(7, 5, KEY_RIGHT),
|
||||
+ KEY(0, 6, KEY_Q),
|
||||
+ KEY(1, 6, KEY_A),
|
||||
+ KEY(2, 6, KEY_N),
|
||||
+ KEY(3, 6, KEY_BACKSPACE),
|
||||
+ KEY(6, 6, KEY_P),
|
||||
+ KEY(7, 6, KEY_UP),
|
||||
+ KEY(6, 7, KEY_SELECT),
|
||||
+ KEY(7, 7, KEY_DOWN),
|
||||
+ KEY(0, 7, KEY_PROG1), /*MACRO 1 <User defined> */
|
||||
+ KEY(1, 7, KEY_PROG2), /*MACRO 2 <User defined> */
|
||||
+ KEY(2, 7, KEY_PROG3), /*MACRO 3 <User defined> */
|
||||
+ KEY(3, 7, KEY_PROG4), /*MACRO 4 <User defined> */
|
||||
+ 0
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_keypad_data zoom2_kp_twl4030_data = {
|
||||
+ .rows = 8,
|
||||
+ .cols = 8,
|
||||
+ .keymap = zoom2_twl4030_keymap,
|
||||
+ .keymapsize = ARRAY_SIZE(zoom2_twl4030_keymap),
|
||||
+ .rep = 1,
|
||||
+};
|
||||
+
|
||||
static struct omap_uart_config zoom2_uart_config __initdata = {
|
||||
.enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
|
||||
};
|
||||
@@ -42,10 +109,128 @@ static void __init omap_zoom2_init_irq(void)
|
||||
omap_gpio_init();
|
||||
}
|
||||
|
||||
+
|
||||
+static struct regulator_consumer_supply zoom2_vmmc1_supply = {
|
||||
+ .supply = "vmmc",
|
||||
+};
|
||||
+
|
||||
+static struct regulator_consumer_supply zoom2_vsim_supply = {
|
||||
+ .supply = "vmmc_aux",
|
||||
+};
|
||||
+
|
||||
+static struct regulator_consumer_supply zoom2_vmmc2_supply = {
|
||||
+ .supply = "vmmc",
|
||||
+};
|
||||
+
|
||||
+/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
|
||||
+static struct regulator_init_data zoom2_vmmc1 = {
|
||||
+ .constraints = {
|
||||
+ .min_uV = 1850000,
|
||||
+ .max_uV = 3150000,
|
||||
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
+ | REGULATOR_MODE_STANDBY,
|
||||
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
+ | REGULATOR_CHANGE_MODE
|
||||
+ | REGULATOR_CHANGE_STATUS,
|
||||
+ },
|
||||
+ .num_consumer_supplies = 1,
|
||||
+ .consumer_supplies = &zoom2_vmmc1_supply,
|
||||
+};
|
||||
+
|
||||
+/* VMMC2 for MMC2 card */
|
||||
+static struct regulator_init_data zoom2_vmmc2 = {
|
||||
+ .constraints = {
|
||||
+ .min_uV = 1850000,
|
||||
+ .max_uV = 1850000,
|
||||
+ .apply_uV = true,
|
||||
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
+ | REGULATOR_MODE_STANDBY,
|
||||
+ .valid_ops_mask = REGULATOR_CHANGE_MODE
|
||||
+ | REGULATOR_CHANGE_STATUS,
|
||||
+ },
|
||||
+ .num_consumer_supplies = 1,
|
||||
+ .consumer_supplies = &zoom2_vmmc2_supply,
|
||||
+};
|
||||
+
|
||||
+/* VSIM for OMAP VDD_MMC1A (i/o for DAT4..DAT7) */
|
||||
+static struct regulator_init_data zoom2_vsim = {
|
||||
+ .constraints = {
|
||||
+ .min_uV = 1800000,
|
||||
+ .max_uV = 3000000,
|
||||
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
||||
+ | REGULATOR_MODE_STANDBY,
|
||||
+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
|
||||
+ | REGULATOR_CHANGE_MODE
|
||||
+ | REGULATOR_CHANGE_STATUS,
|
||||
+ },
|
||||
+ .num_consumer_supplies = 1,
|
||||
+ .consumer_supplies = &zoom2_vsim_supply,
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_hsmmc_info mmc[] __initdata = {
|
||||
+ {
|
||||
+ .mmc = 1,
|
||||
+ .wires = 4,
|
||||
+ .gpio_wp = -EINVAL,
|
||||
+ },
|
||||
+ {
|
||||
+ .mmc = 2,
|
||||
+ .wires = 4,
|
||||
+ .gpio_wp = -EINVAL,
|
||||
+ },
|
||||
+ {} /* Terminator */
|
||||
+};
|
||||
+
|
||||
+static int zoom2_twl_gpio_setup(struct device *dev,
|
||||
+ unsigned gpio, unsigned ngpio)
|
||||
+{
|
||||
+ /* gpio + 0 is "mmc0_cd" (input/IRQ),
|
||||
+ * gpio + 1 is "mmc1_cd" (input/IRQ)
|
||||
+ */
|
||||
+ mmc[0].gpio_cd = gpio + 0;
|
||||
+ mmc[1].gpio_cd = gpio + 1;
|
||||
+ twl4030_mmc_init(mmc);
|
||||
+
|
||||
+ /* link regulators to MMC adapters ... we "know" the
|
||||
+ * regulators will be set up only *after* we return.
|
||||
+ */
|
||||
+ zoom2_vmmc1_supply.dev = mmc[0].dev;
|
||||
+ zoom2_vsim_supply.dev = mmc[0].dev;
|
||||
+ zoom2_vmmc2_supply.dev = mmc[1].dev;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+static int zoom2_batt_table[] = {
|
||||
+/* 0 C*/
|
||||
+30800, 29500, 28300, 27100,
|
||||
+26000, 24900, 23900, 22900, 22000, 21100, 20300, 19400, 18700, 17900,
|
||||
+17200, 16500, 15900, 15300, 14700, 14100, 13600, 13100, 12600, 12100,
|
||||
+11600, 11200, 10800, 10400, 10000, 9630, 9280, 8950, 8620, 8310,
|
||||
+8020, 7730, 7460, 7200, 6950, 6710, 6470, 6250, 6040, 5830,
|
||||
+5640, 5450, 5260, 5090, 4920, 4760, 4600, 4450, 4310, 4170,
|
||||
+4040, 3910, 3790, 3670, 3550
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_bci_platform_data zoom2_bci_data = {
|
||||
+ .battery_tmp_tbl = zoom2_batt_table,
|
||||
+ .tblsize = ARRAY_SIZE(zoom2_batt_table),
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_usb_data zoom2_usb_data = {
|
||||
+ .usb_mode = T2_USB_MODE_ULPI,
|
||||
+};
|
||||
+
|
||||
static struct twl4030_gpio_platform_data zoom2_gpio_data = {
|
||||
.gpio_base = OMAP_MAX_GPIO_LINES,
|
||||
.irq_base = TWL4030_GPIO_IRQ_BASE,
|
||||
.irq_end = TWL4030_GPIO_IRQ_END,
|
||||
+ .setup = zoom2_twl_gpio_setup,
|
||||
+};
|
||||
+
|
||||
+static struct twl4030_madc_platform_data zoom2_madc_data = {
|
||||
+ .irq_line = 1,
|
||||
};
|
||||
|
||||
static struct twl4030_platform_data zoom2_twldata = {
|
||||
@@ -53,7 +238,15 @@ static struct twl4030_platform_data zoom2_twldata = {
|
||||
.irq_end = TWL4030_IRQ_END,
|
||||
|
||||
/* platform_data for children goes here */
|
||||
+ .bci = &zoom2_bci_data,
|
||||
+ .madc = &zoom2_madc_data,
|
||||
+ .usb = &zoom2_usb_data,
|
||||
.gpio = &zoom2_gpio_data,
|
||||
+ .keypad = &zoom2_kp_twl4030_data,
|
||||
+ .vmmc1 = &zoom2_vmmc1,
|
||||
+ .vmmc2 = &zoom2_vmmc2,
|
||||
+ .vsim = &zoom2_vsim,
|
||||
+
|
||||
};
|
||||
|
||||
static struct i2c_board_info __initdata zoom2_i2c_boardinfo[] = {
|
||||
@@ -74,16 +267,6 @@ static int __init omap_i2c_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static struct twl4030_hsmmc_info mmc[] __initdata = {
|
||||
- {
|
||||
- .mmc = 1,
|
||||
- .wires = 4,
|
||||
- .gpio_cd = -EINVAL,
|
||||
- .gpio_wp = -EINVAL,
|
||||
- },
|
||||
- {} /* Terminator */
|
||||
-};
|
||||
-
|
||||
extern int __init omap_zoom2_debugboard_init(void);
|
||||
|
||||
static void __init omap_zoom2_init(void)
|
||||
@@ -91,7 +274,6 @@ static void __init omap_zoom2_init(void)
|
||||
omap_i2c_init();
|
||||
omap_serial_init();
|
||||
omap_zoom2_debugboard_init();
|
||||
- twl4030_mmc_init(mmc);
|
||||
usb_musb_init();
|
||||
}
|
||||
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -0,0 +1,171 @@
|
|||
From 98d46e88ffe23a9adcf6ae1acf19b210d5ac3737 Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Thu, 20 Aug 2009 17:16:24 -0500
|
||||
Subject: [PATCH 3/5] OMAP: Zoom2: Add DEBUG_LL interface using external Quart
|
||||
|
||||
This patch adds DEBUG_LL interface for Zoom2 board.
|
||||
The low level debug uart now points corrctly to External Quad uart
|
||||
controller on detachable debug board.
|
||||
|
||||
The Quad uart is available over GPMC chip select with physical address
|
||||
0x10000000.
|
||||
|
||||
This physical address has been mapped to virtual address 0xFB000000
|
||||
as per static mapping.
|
||||
|
||||
Also the register accesses to Quad uart have a requirement of shift=1
|
||||
based on the h/w mapping of the registers
|
||||
|
||||
This patch is adapted from a version by Erik Gilling:
|
||||
http://android.git.kernel.org/?p=kernel/omap.git;
|
||||
a=commit;h=e9d72efdd88877d2d6ea74a08983ace0dcc771d3
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Cc: Erik Gilling <konkers@android.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom-debugboard.c | 5 +++--
|
||||
arch/arm/mach-omap2/board-zoom2.c | 15 +++++++++++++++
|
||||
arch/arm/plat-omap/include/mach/debug-macro.S | 14 ++++++++++++--
|
||||
arch/arm/plat-omap/include/mach/io.h | 6 ++++++
|
||||
arch/arm/plat-omap/include/mach/uncompress.h | 7 +++++++
|
||||
5 files changed, 43 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
index f546063..f8b0726 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
@@ -82,9 +82,10 @@ static inline void __init zoom2_init_smsc911x(void)
|
||||
|
||||
static struct plat_serial8250_port serial_platform_data[] = {
|
||||
{
|
||||
- .mapbase = 0x10000000,
|
||||
+ .membase = IOMEM(ZOOM2_EXT_QUART_VIRT),
|
||||
+ .mapbase = ZOOM2_EXT_QUART_PHYS,
|
||||
.irq = OMAP_GPIO_IRQ(102),
|
||||
- .flags = UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ,
|
||||
+ .flags = UPF_BOOT_AUTOCONF|UPF_SHARE_IRQ,
|
||||
.irqflags = IRQF_SHARED | IRQF_TRIGGER_RISING,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 1,
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
|
||||
index 58baee3..fc27b07 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom2.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom2.c
|
||||
@@ -16,9 +16,11 @@
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c/twl4030.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
+#include <linux/io.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
+#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <mach/usb.h>
|
||||
@@ -273,9 +275,22 @@ static void __init omap_zoom2_init(void)
|
||||
usb_musb_init();
|
||||
}
|
||||
|
||||
+static struct map_desc zoom2_io_desc[] __initdata = {
|
||||
+ {
|
||||
+ .virtual = ZOOM2_EXT_QUART_VIRT,
|
||||
+ .pfn = __phys_to_pfn(ZOOM2_EXT_QUART_PHYS),
|
||||
+ .length = ZOOM2_EXT_QUART_SIZE,
|
||||
+ .type = MT_DEVICE
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
static void __init omap_zoom2_map_io(void)
|
||||
{
|
||||
omap2_set_globals_343x();
|
||||
+
|
||||
+ /* Map external quad UART virt to phy mapping */
|
||||
+ iotable_init(zoom2_io_desc, ARRAY_SIZE(zoom2_io_desc));
|
||||
+
|
||||
omap2_map_common_io();
|
||||
}
|
||||
|
||||
diff --git a/arch/arm/plat-omap/include/mach/debug-macro.S b/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
index f546d6c..a97f2fb 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
+++ b/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
@@ -12,6 +12,14 @@
|
||||
*/
|
||||
#include "io.h"
|
||||
|
||||
+#if (CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR == 0x10000000)
|
||||
+#define REGSHIFT 1
|
||||
+#define UART_VIRT_TO_PHY_OFFSET ZOOM2_EXT_QUART_PHY_TO_VIRT_OFF
|
||||
+#else
|
||||
+#define REGSHIFT 2
|
||||
+#define UART_VIRT_TO_PHY_OFFSET OMAP2_IO_OFFSET
|
||||
+#endif
|
||||
+
|
||||
.macro addruart,rx
|
||||
mrc p15, 0, \rx, c1, c0
|
||||
tst \rx, #1 @ MMU enabled?
|
||||
@@ -22,7 +30,7 @@
|
||||
#else
|
||||
/* omap2/omap3/omap4 */
|
||||
ldr \rx, =CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR @ physical base address
|
||||
- orrne \rx, \rx, #OMAP2_IO_OFFSET @ virtual base
|
||||
+ orrne \rx, \rx, #UART_VIRT_TO_PHY_OFFSET @ virtual base
|
||||
#endif
|
||||
.endm
|
||||
|
||||
@@ -31,13 +39,15 @@
|
||||
.endm
|
||||
|
||||
.macro busyuart,rd,rx
|
||||
-1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends
|
||||
+1001: ldrb \rd, [\rx, #(0x5 << REGSHIFT)] @ OMAP-1510 and friends
|
||||
and \rd, \rd, #0x60
|
||||
teq \rd, #0x60
|
||||
+#if (CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR != 0x10000000)
|
||||
beq 1002f
|
||||
ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only
|
||||
and \rd, \rd, #0x60
|
||||
teq \rd, #0x60
|
||||
+#endif
|
||||
bne 1001b
|
||||
1002:
|
||||
.endm
|
||||
diff --git a/arch/arm/plat-omap/include/mach/io.h b/arch/arm/plat-omap/include/mach/io.h
|
||||
index 8d32df3..97702e6 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/io.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/io.h
|
||||
@@ -169,6 +169,12 @@
|
||||
#define DSP_MMU_34XX_VIRT 0xe2000000
|
||||
#define DSP_MMU_34XX_SIZE SZ_4K
|
||||
|
||||
+/* Map External Quad UART for Zoom2 board */
|
||||
+#define ZOOM2_EXT_QUART_PHYS 0x10000000 /* PHY address if fixed */
|
||||
+#define ZOOM2_EXT_QUART_PHY_TO_VIRT_OFF 0xeb000000
|
||||
+#define ZOOM2_EXT_QUART_VIRT 0xfb000000
|
||||
+#define ZOOM2_EXT_QUART_SIZE SZ_16
|
||||
+
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
* Omap4 specific IO mapping
|
||||
diff --git a/arch/arm/plat-omap/include/mach/uncompress.h b/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
index 0e21eb3..959195a 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
@@ -41,6 +41,13 @@ static void putc(int c)
|
||||
#if defined(CONFIG_DEBUG_LL)
|
||||
uart = (volatile u8 *)(CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR);
|
||||
|
||||
+#if (CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR == 0x10000000)
|
||||
+ /* External UART has a shift=1 requirement
|
||||
+ * Internal OMAP UARTs have shift=2 requirement
|
||||
+ */
|
||||
+ shift = 1;
|
||||
+#endif
|
||||
+
|
||||
#ifdef CONFIG_ARCH_OMAP1
|
||||
/* Determine which serial port to use */
|
||||
do {
|
||||
--
|
||||
1.6.3.2
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -1,143 +0,0 @@
|
|||
From 3f819713f3c7ccfd56146f4c007155bc47a170ac Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Mon, 22 Jun 2009 17:58:47 -0500
|
||||
Subject: [PATCH 4/8] serial: 8250: add IRQ trigger support
|
||||
|
||||
There is currently no provision for passing IRQ trigger flags for
|
||||
serial IRQs with triggering requirements (such as GPIO IRQs)
|
||||
|
||||
This patch adds irqflags to plat_serial8250_port that can be passed
|
||||
from board file to reqest_irq() of 8250 driver
|
||||
|
||||
Changes are backward compatible with boards passing UPF_SHARE_IRQ flag
|
||||
|
||||
Tested on Zoom2 board that has IRQF_TRIGGER_RISING requirement for 8250 irq
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
---
|
||||
drivers/serial/8250.c | 14 +++++++++-----
|
||||
drivers/serial/8250.h | 1 +
|
||||
include/linux/serial_8250.h | 1 +
|
||||
include/linux/serial_core.h | 1 +
|
||||
4 files changed, 12 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
|
||||
index 606fabb..6474fe4 100644
|
||||
--- a/drivers/serial/8250.c
|
||||
+++ b/drivers/serial/8250.c
|
||||
@@ -1681,7 +1681,7 @@ static int serial_link_irq_chain(struct uart_8250_port *up)
|
||||
INIT_LIST_HEAD(&up->list);
|
||||
i->head = &up->list;
|
||||
spin_unlock_irq(&i->lock);
|
||||
-
|
||||
+ irq_flags |= up->port.irqflags;
|
||||
ret = request_irq(up->port.irq, serial8250_interrupt,
|
||||
irq_flags, "serial", i);
|
||||
if (ret < 0)
|
||||
@@ -2030,7 +2030,7 @@ static int serial8250_startup(struct uart_port *port)
|
||||
* allow register changes to become visible.
|
||||
*/
|
||||
spin_lock_irqsave(&up->port.lock, flags);
|
||||
- if (up->port.flags & UPF_SHARE_IRQ)
|
||||
+ if (up->port.irqflags & IRQF_SHARED)
|
||||
disable_irq_nosync(up->port.irq);
|
||||
|
||||
wait_for_xmitr(up, UART_LSR_THRE);
|
||||
@@ -2043,7 +2043,7 @@ static int serial8250_startup(struct uart_port *port)
|
||||
iir = serial_in(up, UART_IIR);
|
||||
serial_out(up, UART_IER, 0);
|
||||
|
||||
- if (up->port.flags & UPF_SHARE_IRQ)
|
||||
+ if (up->port.irqflags & IRQF_SHARED)
|
||||
enable_irq(up->port.irq);
|
||||
spin_unlock_irqrestore(&up->port.lock, flags);
|
||||
|
||||
@@ -2688,6 +2688,7 @@ static void __init serial8250_isa_init_ports(void)
|
||||
i++, up++) {
|
||||
up->port.iobase = old_serial_port[i].port;
|
||||
up->port.irq = irq_canonicalize(old_serial_port[i].irq);
|
||||
+ up->port.irqflags = old_serial_port[i].irqflags;
|
||||
up->port.uartclk = old_serial_port[i].baud_base * 16;
|
||||
up->port.flags = old_serial_port[i].flags;
|
||||
up->port.hub6 = old_serial_port[i].hub6;
|
||||
@@ -2696,7 +2697,7 @@ static void __init serial8250_isa_init_ports(void)
|
||||
up->port.regshift = old_serial_port[i].iomem_reg_shift;
|
||||
set_io_from_upio(&up->port);
|
||||
if (share_irqs)
|
||||
- up->port.flags |= UPF_SHARE_IRQ;
|
||||
+ up->port.irqflags |= IRQF_SHARED;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2886,6 +2887,7 @@ int __init early_serial_setup(struct uart_port *port)
|
||||
p->iobase = port->iobase;
|
||||
p->membase = port->membase;
|
||||
p->irq = port->irq;
|
||||
+ p->irqflags = port->irqflags;
|
||||
p->uartclk = port->uartclk;
|
||||
p->fifosize = port->fifosize;
|
||||
p->regshift = port->regshift;
|
||||
@@ -2959,6 +2961,7 @@ static int __devinit serial8250_probe(struct platform_device *dev)
|
||||
port.iobase = p->iobase;
|
||||
port.membase = p->membase;
|
||||
port.irq = p->irq;
|
||||
+ port.irqflags = p->irqflags;
|
||||
port.uartclk = p->uartclk;
|
||||
port.regshift = p->regshift;
|
||||
port.iotype = p->iotype;
|
||||
@@ -2971,7 +2974,7 @@ static int __devinit serial8250_probe(struct platform_device *dev)
|
||||
port.serial_out = p->serial_out;
|
||||
port.dev = &dev->dev;
|
||||
if (share_irqs)
|
||||
- port.flags |= UPF_SHARE_IRQ;
|
||||
+ port.irqflags |= IRQF_SHARED;
|
||||
ret = serial8250_register_port(&port);
|
||||
if (ret < 0) {
|
||||
dev_err(&dev->dev, "unable to register port at index %d "
|
||||
@@ -3113,6 +3116,7 @@ int serial8250_register_port(struct uart_port *port)
|
||||
uart->port.iobase = port->iobase;
|
||||
uart->port.membase = port->membase;
|
||||
uart->port.irq = port->irq;
|
||||
+ uart->port.irqflags = port->irqflags;
|
||||
uart->port.uartclk = port->uartclk;
|
||||
uart->port.fifosize = port->fifosize;
|
||||
uart->port.regshift = port->regshift;
|
||||
diff --git a/drivers/serial/8250.h b/drivers/serial/8250.h
|
||||
index 5202603..9b34b04 100644
|
||||
--- a/drivers/serial/8250.h
|
||||
+++ b/drivers/serial/8250.h
|
||||
@@ -20,6 +20,7 @@ struct old_serial_port {
|
||||
unsigned int baud_base;
|
||||
unsigned int port;
|
||||
unsigned int irq;
|
||||
+ unsigned long irqflags;
|
||||
unsigned int flags;
|
||||
unsigned char hub6;
|
||||
unsigned char io_type;
|
||||
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h
|
||||
index d4d2a78..fb46aba 100644
|
||||
--- a/include/linux/serial_8250.h
|
||||
+++ b/include/linux/serial_8250.h
|
||||
@@ -22,6 +22,7 @@ struct plat_serial8250_port {
|
||||
void __iomem *membase; /* ioremap cookie or NULL */
|
||||
resource_size_t mapbase; /* resource base */
|
||||
unsigned int irq; /* interrupt number */
|
||||
+ unsigned long irqflags; /* request_irq flags */
|
||||
unsigned int uartclk; /* UART clock rate */
|
||||
void *private_data;
|
||||
unsigned char regshift; /* register shift */
|
||||
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
|
||||
index 23d2fb0..3cd255f 100644
|
||||
--- a/include/linux/serial_core.h
|
||||
+++ b/include/linux/serial_core.h
|
||||
@@ -265,6 +265,7 @@ struct uart_port {
|
||||
unsigned int (*serial_in)(struct uart_port *, int);
|
||||
void (*serial_out)(struct uart_port *, int, int);
|
||||
unsigned int irq; /* irq number */
|
||||
+ unsigned long irqflags; /* irq flags */
|
||||
unsigned int uartclk; /* base uart clock */
|
||||
unsigned int fifosize; /* tx fifo size */
|
||||
unsigned char x_char; /* xon/xoff char */
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
From 04c8398ae7dfdbe0d9aaf27fdda35f6ab91e8b85 Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Thu, 20 Aug 2009 17:31:58 -0500
|
||||
Subject: [PATCH 5/5] OMAP: Zoom2: Release Dbg board detect gpio
|
||||
|
||||
Release the Dbg board detection gpio once its purpose is served
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom-debugboard.c | 7 ++++---
|
||||
1 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
index 4dd714d..d80e448 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
@@ -130,6 +130,7 @@ static inline void __init zoom2_init_quaduart(void)
|
||||
static inline int omap_zoom2_debugboard_detect(void)
|
||||
{
|
||||
int debug_board_detect = 0;
|
||||
+ int ret = 1;
|
||||
|
||||
debug_board_detect = ZOOM2_SMSC911X_GPIO;
|
||||
|
||||
@@ -141,10 +142,10 @@ static inline int omap_zoom2_debugboard_detect(void)
|
||||
gpio_direction_input(debug_board_detect);
|
||||
|
||||
if (!gpio_get_value(debug_board_detect)) {
|
||||
- gpio_free(debug_board_detect);
|
||||
- return 0;
|
||||
+ ret = 0;
|
||||
}
|
||||
- return 1;
|
||||
+ gpio_free(debug_board_detect);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static struct platform_device *zoom2_devices[] __initdata = {
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
From a9551305279caac19d9f7ee121633fd18baa2fab Mon Sep 17 00:00:00 2001
|
||||
From: Vikram Pandita <vikram.pandita@ti.com>
|
||||
Date: Mon, 22 Jun 2009 18:20:04 -0500
|
||||
Subject: [PATCH 5/8] OMAP2: Zoom2: Pass irqflags to 8250 driver
|
||||
|
||||
Pass irqflags to 8250 driver from zoom2 board file
|
||||
Zoom2 has IRQF_TRIGGER_RISING requirement for the 8250 GPIO irq
|
||||
|
||||
This patch is dependent on 8250 driver changes getting accepted upstream:
|
||||
http://patchwork.kernel.org/patch/31884/
|
||||
|
||||
Warn: could cause compilation break if above patch is not integrated first
|
||||
|
||||
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom-debugboard.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
index bac5c43..f546063 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/smsc911x.h>
|
||||
+#include <linux/interrupt.h>
|
||||
|
||||
#include <mach/gpmc.h>
|
||||
|
||||
@@ -84,6 +85,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
|
||||
.mapbase = 0x10000000,
|
||||
.irq = OMAP_GPIO_IRQ(102),
|
||||
.flags = UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ,
|
||||
+ .irqflags = IRQF_SHARED | IRQF_TRIGGER_RISING,
|
||||
.iotype = UPIO_MEM,
|
||||
.regshift = 1,
|
||||
.uartclk = QUART_CLK,
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
From 14b507c8e7fc09e91297a82819296533ab35d8ae Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Hilman <khilman@deeprootsystems.com>
|
||||
Date: Mon, 20 Jul 2009 16:12:32 -0700
|
||||
Subject: [PATCH 6/8] OMAP3: Zoom2: ext UART needs plaform_device.id >= 3
|
||||
|
||||
The on-chip UARTs now have individual platform_device.id numbers,
|
||||
so for the external UART to register properly, it needs an id >= 3.
|
||||
|
||||
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom-debugboard.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
index f546063..e0948c9 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
|
||||
@@ -96,7 +96,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
|
||||
|
||||
static struct platform_device zoom2_debugboard_serial_device = {
|
||||
.name = "serial8250",
|
||||
- .id = PLAT8250_DEV_PLATFORM1,
|
||||
+ .id = 3,
|
||||
.dev = {
|
||||
.platform_data = serial_platform_data,
|
||||
},
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
From e2d19993731b3b4b083329f3acb4538e9d94fc36 Mon Sep 17 00:00:00 2001
|
||||
From: Erik Gilling <konkers@android.com>
|
||||
Date: Tue, 21 Apr 2009 13:38:12 -0700
|
||||
Subject: [PATCH 7/8] omap: zoom2: add external uart DEBUG_LL support to zoom2 board file
|
||||
|
||||
Signed-off-by: Erik Gilling <konkers@android.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-zoom2.c | 23 +++++++++++++++++++++--
|
||||
1 files changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
|
||||
index e4bf50a..5742b55 100644
|
||||
--- a/arch/arm/mach-omap2/board-zoom2.c
|
||||
+++ b/arch/arm/mach-omap2/board-zoom2.c
|
||||
@@ -16,9 +16,11 @@
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c/twl4030.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
+#include <linux/io.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
+#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <mach/usb.h>
|
||||
@@ -27,6 +29,10 @@
|
||||
#include "mmc-twl4030.h"
|
||||
#include "omap3-opp.h"
|
||||
|
||||
+#define ZOOM2_QUART_PHYS 0x10000000
|
||||
+#define ZOOM2_QUART_VIRT 0xFB000000
|
||||
+#define ZOOM2_QUART_SIZE SZ_1M
|
||||
+
|
||||
/* Zoom2 has Qwerty keyboard*/
|
||||
static int zoom2_twl4030_keymap[] = {
|
||||
KEY(0, 0, KEY_E),
|
||||
@@ -277,15 +283,28 @@ static void __init omap_zoom2_init(void)
|
||||
usb_musb_init();
|
||||
}
|
||||
|
||||
+static struct map_desc zoom2_io_desc[] __initdata = {
|
||||
+ {
|
||||
+ .virtual = ZOOM2_QUART_VIRT,
|
||||
+ .pfn = __phys_to_pfn(ZOOM2_QUART_PHYS),
|
||||
+ .length = ZOOM2_QUART_SIZE,
|
||||
+ .type = MT_DEVICE
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static void __init omap_zoom2_map_io(void)
|
||||
{
|
||||
omap2_set_globals_343x();
|
||||
+ iotable_init(zoom2_io_desc, ARRAY_SIZE(zoom2_io_desc));
|
||||
omap2_map_common_io();
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
|
||||
- .phys_io = 0x48000000,
|
||||
- .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
+ /* phys_io is only used for DEBUG_LL early printing. The Zoom2's
|
||||
+ * console is on an external quad UART sitting at address 0x10000000
|
||||
+ */
|
||||
+ .phys_io = 0x10000000,
|
||||
+ .io_pg_offst = ((0xfb000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_zoom2_map_io,
|
||||
.init_irq = omap_zoom2_init_irq,
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -1,103 +0,0 @@
|
|||
From bef0894d8a200e43593117a3832cab825ea8aa8c Mon Sep 17 00:00:00 2001
|
||||
From: Erik Gilling <konkers@android.com>
|
||||
Date: Tue, 21 Apr 2009 13:37:25 -0700
|
||||
Subject: [PATCH 8/8] omap2: add support for DEBUG_LL on external UART
|
||||
|
||||
Signed-off-by: Erik Gilling <konkers@android.com>
|
||||
---
|
||||
arch/arm/plat-omap/Kconfig | 3 +++
|
||||
arch/arm/plat-omap/include/mach/debug-macro.S | 14 +++++++++++++-
|
||||
arch/arm/plat-omap/include/mach/serial.h | 1 +
|
||||
arch/arm/plat-omap/include/mach/uncompress.h | 5 ++++-
|
||||
4 files changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
|
||||
index c782418..e891f07 100644
|
||||
--- a/arch/arm/plat-omap/Kconfig
|
||||
+++ b/arch/arm/plat-omap/Kconfig
|
||||
@@ -210,6 +210,9 @@ config OMAP_LL_DEBUG_UART2
|
||||
config OMAP_LL_DEBUG_UART3
|
||||
bool "UART3"
|
||||
|
||||
+config OMAP_LL_DEBUG_UART_EXT
|
||||
+ bool "UART_EXT"
|
||||
+
|
||||
endchoice
|
||||
|
||||
config OMAP_SERIAL_WAKE
|
||||
diff --git a/arch/arm/plat-omap/include/mach/debug-macro.S b/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
index ac24050..5864019 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
+++ b/arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
@@ -37,6 +37,10 @@
|
||||
#endif
|
||||
|
||||
#elif defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
|
||||
+#ifdef CONFIG_OMAP_LL_DEBUG_UART_EXT
|
||||
+ moveq \rx, #0x10000000 @ physical base address
|
||||
+ movne \rx, #0xfb000000 @ virtual base address
|
||||
+#else
|
||||
moveq \rx, #0x48000000 @ physical base address
|
||||
movne \rx, #0xd8000000 @ virtual base
|
||||
orr \rx, \rx, #0x0006a000
|
||||
@@ -48,20 +52,28 @@
|
||||
add \rx, \rx, #0x00006000
|
||||
#endif
|
||||
#endif
|
||||
+#endif
|
||||
.endm
|
||||
|
||||
.macro senduart,rd,rx
|
||||
strb \rd, [\rx]
|
||||
.endm
|
||||
|
||||
+#ifdef CONFIG_OMAP_LL_DEBUG_UART_EXT
|
||||
+#define REGSHIFT 1
|
||||
+#else
|
||||
+#define REGSHIFT 2
|
||||
+#endif
|
||||
.macro busyuart,rd,rx
|
||||
-1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends
|
||||
+1001: ldrb \rd, [\rx, #(0x5 << REGSHIFT)] @ OMAP-1510 and friends
|
||||
and \rd, \rd, #0x60
|
||||
teq \rd, #0x60
|
||||
+#ifndef CONFIG_OMAP_LL_DEBUG_UART_EXT
|
||||
beq 1002f
|
||||
ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only
|
||||
and \rd, \rd, #0x60
|
||||
teq \rd, #0x60
|
||||
+#endif
|
||||
bne 1001b
|
||||
1002:
|
||||
.endm
|
||||
diff --git a/arch/arm/plat-omap/include/mach/serial.h b/arch/arm/plat-omap/include/mach/serial.h
|
||||
index e249186..7ae4567 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/serial.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/serial.h
|
||||
@@ -32,6 +32,7 @@
|
||||
#define OMAP_UART1_BASE 0x4806a000
|
||||
#define OMAP_UART2_BASE 0x4806c000
|
||||
#define OMAP_UART3_BASE 0x49020000
|
||||
+#define OMAP_UART_EXT_BASE 0x10000000
|
||||
#define OMAP_MAX_NR_PORTS 3
|
||||
#elif defined(CONFIG_ARCH_OMAP4)
|
||||
/* OMAP4 serial ports */
|
||||
diff --git a/arch/arm/plat-omap/include/mach/uncompress.h b/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
index 0814c5f..082c0cd 100644
|
||||
--- a/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
+++ b/arch/arm/plat-omap/include/mach/uncompress.h
|
||||
@@ -39,7 +39,10 @@ static void putc(int c)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP
|
||||
-#ifdef CONFIG_OMAP_LL_DEBUG_UART3
|
||||
+#ifdef CONFIG_OMAP_LL_DEBUG_UART_EXT
|
||||
+ uart = (volatile u8 *)(OMAP_UART_EXT_BASE);
|
||||
+ shift = 1;
|
||||
+#elif defined(CONFIG_OMAP_LL_DEBUG_UART3)
|
||||
uart = (volatile u8 *)(OMAP_UART3_BASE);
|
||||
#elif defined(CONFIG_OMAP_LL_DEBUG_UART2)
|
||||
uart = (volatile u8 *)(OMAP_UART2_BASE);
|
||||
--
|
||||
1.6.3.2
|
||||
|
|
@ -8,20 +8,17 @@ FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/${PN}-git/${MACHINE}
|
|||
|
||||
SRCREV = "${AUTOREV}"
|
||||
|
||||
PV = "2.6.31-rc1+${PR}+git${SRCREV}"
|
||||
PR = "r1"
|
||||
PV = "2.6.31-rc7+pm+${PR}+git${SRCREV}"
|
||||
PR = "r3"
|
||||
|
||||
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git;branch=pm;protocol=git"
|
||||
|
||||
SRC_URI_append_zoom2 = " \
|
||||
file://0002-OMAP3-Zoom2-Add-TWL4030-support.patch;patch=1 \
|
||||
file://0003-OMAP3-Zoom2-Update-board-defconfig.patch;patch=1 \
|
||||
file://0004-serial-8250-add-IRQ-trigger-support.patch;patch=1 \
|
||||
file://0005-OMAP2-Zoom2-Pass-irqflags-to-8250-driver.patch;patch=1 \
|
||||
file://0006-OMAP3-Zoom2-ext-UART-needs-plaform_device.id-3.patch;patch=1 \
|
||||
file://0007-omap-zoom2-add-external-uart-DEBUG_LL-support-to-zoo.patch;patch=1 \
|
||||
file://0008-omap2-add-support-for-DEBUG_LL-on-external-UART.patch;patch=1 \
|
||||
"
|
||||
file://0001-OMAP1-2-3-4-DEBUG_LL-cleanup.patch;patch=1 \
|
||||
file://0002-OMAP1-2-3-4-Adapt-board-files-for-cleand-DEBUG_LL-in.patch;patch=1 \
|
||||
file://0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch;patch=1 \
|
||||
file://0005-OMAP-Zoom2-Release-Dbg-board-detect-gpio.patch;patch=1 \
|
||||
"
|
||||
|
||||
COMPATIBLE_MACHINE = "beagleboard|omap-3430sdp|omap3evm|overo|rx51|zoom2"
|
||||
|
||||
|
@ -42,7 +39,7 @@ do_configure_prepend() {
|
|||
yes '' | oe_runmake ${MACHINE}_external_defconfig
|
||||
else
|
||||
case ${MACHINE} in
|
||||
omap-3430sdp|omap3evm)
|
||||
omap-3430sdp | omap3evm)
|
||||
# works out of the box
|
||||
yes '' | oe_runmake omap3_pm_defconfig
|
||||
;;
|
||||
|
@ -56,11 +53,9 @@ do_configure_prepend() {
|
|||
-i ${S}/.config
|
||||
;;
|
||||
zoom2)
|
||||
# adjust LL_DEBUG console for these boards
|
||||
# adjust LL_DEBUG console for this board
|
||||
yes '' | oe_runmake omap3_pm_defconfig
|
||||
sed -e "s/CONFIG_OMAP_LL_DEBUG_UART1=y/# CONFIG_OMAP_LL_DEBUG_UART1 is not set/" \
|
||||
-e "s/CONFIG_MMC_BLOCK=m/CONFIG_MMC_BLOCK=y/" \
|
||||
-e "s/CONFIG_MMC_OMAP_HS=m/CONFIG_MMC_OMAP_HS=y/" \
|
||||
-i ${S}/.config
|
||||
echo "CONFIG_OMAP_LL_DEBUG_UART_EXT=y" >> ${S}/.config
|
||||
;;
|
||||
|
|
Loading…
Reference in New Issue