summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2009-08-11 12:04:11 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2009-08-11 12:04:11 +0100
commitf56add4559dea1bb2857c220aab69c6d83d161b6 (patch)
tree15465e24e9bd5fba706ce7e5b1661b51f7f2d05a
parent083745a26e717b1c927bd86d604bdab586620567 (diff)
parent63dffacec4d267d239f789d4812ba390ac1784f5 (diff)
downloadopenembedded-core-f56add4559dea1bb2857c220aab69c6d83d161b6.tar.gz
openembedded-core-f56add4559dea1bb2857c220aab69c6d83d161b6.tar.bz2
openembedded-core-f56add4559dea1bb2857c220aab69c6d83d161b6.zip
Merge branch 'mturquette/zoom2' of git://git.pokylinux.org/poky-contrib
-rw-r--r--meta/conf/machine/zoom2.conf20
-rw-r--r--meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch170
-rw-r--r--meta/packages/linux/linux-omap3-pm-git/zoom2/0002-OMAP3-Zoom2-Add-TWL4030-support.patch281
-rw-r--r--meta/packages/linux/linux-omap3-pm-git/zoom2/0003-OMAP3-Zoom2-Update-board-defconfig.patch1102
-rw-r--r--meta/packages/linux/linux-omap3-pm-git/zoom2/0004-serial-8250-add-IRQ-trigger-support.patch143
-rw-r--r--meta/packages/linux/linux-omap3-pm-git/zoom2/0005-OMAP2-Zoom2-Pass-irqflags-to-8250-driver.patch41
-rw-r--r--meta/packages/linux/linux-omap3-pm-git/zoom2/0006-OMAP3-Zoom2-ext-UART-needs-plaform_device.id-3.patch29
-rw-r--r--meta/packages/linux/linux-omap3-pm-git/zoom2/0007-omap-zoom2-add-external-uart-DEBUG_LL-support-to-zoo.patch71
-rw-r--r--meta/packages/linux/linux-omap3-pm-git/zoom2/0008-omap2-add-support-for-DEBUG_LL-on-external-UART.patch103
-rw-r--r--meta/packages/linux/linux-omap3-pm_git.bb75
10 files changed, 2035 insertions, 0 deletions
diff --git a/meta/conf/machine/zoom2.conf b/meta/conf/machine/zoom2.conf
new file mode 100644
index 0000000000..c71bc6df98
--- /dev/null
+++ b/meta/conf/machine/zoom2.conf
@@ -0,0 +1,20 @@
+#@TYPE: Machine
+#@NAME: Logic PD Zoom2
+#@DESCRIPTION: Machine configuration for the OMAP3-powered Logic PD Zoom2
+TARGET_ARCH = "arm"
+PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te armv6 armv7a"
+
+PREFERRED_PROVIDER_virtual/kernel = "linux-omap3-pm"
+
+MACHINE_FEATURES = "kernel26 apm alsa usbgadget usbhost screen touchscreen"
+
+KERNEL_IMAGETYPE = "uImage"
+IMAGE_FSTYPES ?= "tar.gz jffs2 ext2"
+UBOOT_ENTRYPOINT ="0x80008000"
+UBOOT_LOADADDRESS ="0x80008000"
+
+EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n"
+SERIAL_CONSOLE = "-L 115200 ttyS3"
+#MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS = "u-boot x-load"
+
+require conf/machine/include/tune-cortexa8.inc
diff --git a/meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch b/meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch
new file mode 100644
index 0000000000..70db8219ae
--- /dev/null
+++ b/meta/packages/linux/linux-omap3-pm-git/zoom2/0001-OMAP3-MMC-Add-mux-for-pins.patch
@@ -0,0 +1,170 @@
+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
+
diff --git a/meta/packages/linux/linux-omap3-pm-git/zoom2/0002-OMAP3-Zoom2-Add-TWL4030-support.patch b/meta/packages/linux/linux-omap3-pm-git/zoom2/0002-OMAP3-Zoom2-Add-TWL4030-support.patch
new file mode 100644
index 0000000000..ed5b4e2df0
--- /dev/null
+++ b/meta/packages/linux/linux-omap3-pm-git/zoom2/0002-OMAP3-Zoom2-Add-TWL4030-support.patch
@@ -0,0 +1,281 @@
+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
+
diff --git a/meta/packages/linux/linux-omap3-pm-git/zoom2/0003-OMAP3-Zoom2-Update-board-defconfig.patch b/meta/packages/linux/linux-omap3-pm-git/zoom2/0003-OMAP3-Zoom2-Update-board-defconfig.patch
new file mode 100644
index 0000000000..a2e89e280a
--- /dev/null
+++ b/meta/packages/linux/linux-omap3-pm-git/zoom2/0003-OMAP3-Zoom2-Update-board-defconfig.patch
@@ -0,0 +1,1102 @@
+From 6ee03ed1dc74b4e777d65c73b7ef9c0222fc98a8 Mon Sep 17 00:00:00 2001
+From: Vikram Pandita <vikram.pandita@ti.com>
+Date: Fri, 12 Jun 2009 17:47:38 -0500
+Subject: [PATCH 3/8] OMAP3:Zoom2: Update board defconfig
+
+Update defconfig for Zoom2 to include
+TWL4030 core
+TWL4030 drivers (bci, gpio, keypad, usb, mmc)
+
+Also sync the defconfig after issuing a menuconfig
+
+Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
+---
+ arch/arm/configs/omap_zoom2_defconfig | 484 +++++++++++++++++++++++++++-----
+ 1 files changed, 408 insertions(+), 76 deletions(-)
+
+diff --git a/arch/arm/configs/omap_zoom2_defconfig b/arch/arm/configs/omap_zoom2_defconfig
+index 213fe9c..f1739fa 100644
+--- a/arch/arm/configs/omap_zoom2_defconfig
++++ b/arch/arm/configs/omap_zoom2_defconfig
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+-# Linux kernel version: 2.6.27-rc5
+-# Fri Oct 10 11:49:41 2008
++# Linux kernel version: 2.6.30-omap1
++# Fri Jun 12 17:25:46 2009
+ #
+ CONFIG_ARM=y
+ CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+@@ -22,8 +22,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
+ # CONFIG_ARCH_HAS_ILOG2_U64 is not set
+ CONFIG_GENERIC_HWEIGHT=y
+ CONFIG_GENERIC_CALIBRATE_DELAY=y
+-CONFIG_ARCH_SUPPORTS_AOUT=y
+-CONFIG_ZONE_DMA=y
+ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+ CONFIG_VECTORS_BASE=0xffff0000
+ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+@@ -39,44 +37,61 @@ CONFIG_LOCALVERSION_AUTO=y
+ CONFIG_SWAP=y
+ CONFIG_SYSVIPC=y
+ CONFIG_SYSVIPC_SYSCTL=y
++# CONFIG_POSIX_MQUEUE is not set
+ CONFIG_BSD_PROCESS_ACCT=y
+ # CONFIG_BSD_PROCESS_ACCT_V3 is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_AUDIT is not set
++
++#
++# RCU Subsystem
++#
++CONFIG_CLASSIC_RCU=y
++# CONFIG_TREE_RCU is not set
++# CONFIG_PREEMPT_RCU is not set
++# CONFIG_TREE_RCU_TRACE is not set
++# CONFIG_PREEMPT_RCU_TRACE is not set
+ # CONFIG_IKCONFIG is not set
+ CONFIG_LOG_BUF_SHIFT=14
+-# CONFIG_CGROUPS is not set
+ CONFIG_GROUP_SCHED=y
+ CONFIG_FAIR_GROUP_SCHED=y
+ # CONFIG_RT_GROUP_SCHED is not set
+ CONFIG_USER_SCHED=y
+ # CONFIG_CGROUP_SCHED is not set
++# CONFIG_CGROUPS is not set
+ CONFIG_SYSFS_DEPRECATED=y
+ CONFIG_SYSFS_DEPRECATED_V2=y
+ # CONFIG_RELAY is not set
+ # CONFIG_NAMESPACES is not set
+ CONFIG_BLK_DEV_INITRD=y
+ CONFIG_INITRAMFS_SOURCE=""
++CONFIG_RD_GZIP=y
++# CONFIG_RD_BZIP2 is not set
++# CONFIG_RD_LZMA is not set
+ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+ CONFIG_SYSCTL=y
++CONFIG_ANON_INODES=y
+ CONFIG_EMBEDDED=y
+ CONFIG_UID16=y
+ # CONFIG_SYSCTL_SYSCALL is not set
+ CONFIG_KALLSYMS=y
+ # CONFIG_KALLSYMS_ALL is not set
+ CONFIG_KALLSYMS_EXTRA_PASS=y
++# CONFIG_STRIP_ASM_SYMS is not set
+ CONFIG_HOTPLUG=y
+ CONFIG_PRINTK=y
+ CONFIG_BUG=y
+ CONFIG_ELF_CORE=y
+-CONFIG_COMPAT_BRK=y
+ CONFIG_BASE_FULL=y
+ CONFIG_FUTEX=y
+-CONFIG_ANON_INODES=y
+ CONFIG_EPOLL=y
+ CONFIG_SIGNALFD=y
+ CONFIG_TIMERFD=y
+ CONFIG_EVENTFD=y
+ CONFIG_SHMEM=y
++CONFIG_AIO=y
+ CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_COMPAT_BRK=y
+ CONFIG_SLAB=y
+ # CONFIG_SLUB is not set
+ # CONFIG_SLOB is not set
+@@ -84,19 +99,13 @@ CONFIG_SLAB=y
+ # CONFIG_MARKERS is not set
+ CONFIG_HAVE_OPROFILE=y
+ # CONFIG_KPROBES is not set
+-# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
+-# CONFIG_HAVE_IOREMAP_PROT is not set
+ CONFIG_HAVE_KPROBES=y
+ CONFIG_HAVE_KRETPROBES=y
+-# CONFIG_HAVE_ARCH_TRACEHOOK is not set
+-# CONFIG_HAVE_DMA_ATTRS is not set
+-# CONFIG_USE_GENERIC_SMP_HELPERS is not set
+ CONFIG_HAVE_CLK=y
+-CONFIG_PROC_PAGE_MONITOR=y
++# CONFIG_SLOW_WORK is not set
+ CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+ CONFIG_SLABINFO=y
+ CONFIG_RT_MUTEXES=y
+-# CONFIG_TINY_SHMEM is not set
+ CONFIG_BASE_SMALL=0
+ CONFIG_MODULES=y
+ # CONFIG_MODULE_FORCE_LOAD is not set
+@@ -104,11 +113,8 @@ CONFIG_MODULE_UNLOAD=y
+ # CONFIG_MODULE_FORCE_UNLOAD is not set
+ CONFIG_MODVERSIONS=y
+ CONFIG_MODULE_SRCVERSION_ALL=y
+-CONFIG_KMOD=y
+ CONFIG_BLOCK=y
+ # CONFIG_LBD is not set
+-# CONFIG_BLK_DEV_IO_TRACE is not set
+-# CONFIG_LSF is not set
+ # CONFIG_BLK_DEV_BSG is not set
+ # CONFIG_BLK_DEV_INTEGRITY is not set
+
+@@ -124,7 +130,7 @@ CONFIG_DEFAULT_AS=y
+ # CONFIG_DEFAULT_CFQ is not set
+ # CONFIG_DEFAULT_NOOP is not set
+ CONFIG_DEFAULT_IOSCHED="anticipatory"
+-CONFIG_CLASSIC_RCU=y
++CONFIG_FREEZER=y
+
+ #
+ # System Type
+@@ -134,10 +140,10 @@ CONFIG_CLASSIC_RCU=y
+ # CONFIG_ARCH_REALVIEW is not set
+ # CONFIG_ARCH_VERSATILE is not set
+ # CONFIG_ARCH_AT91 is not set
+-# CONFIG_ARCH_CLPS7500 is not set
+ # CONFIG_ARCH_CLPS711X is not set
+ # CONFIG_ARCH_EBSA110 is not set
+ # CONFIG_ARCH_EP93XX is not set
++# CONFIG_ARCH_GEMINI is not set
+ # CONFIG_ARCH_FOOTBRIDGE is not set
+ # CONFIG_ARCH_NETX is not set
+ # CONFIG_ARCH_H720X is not set
+@@ -158,14 +164,17 @@ CONFIG_CLASSIC_RCU=y
+ # CONFIG_ARCH_ORION5X is not set
+ # CONFIG_ARCH_PNX4008 is not set
+ # CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_MMP is not set
+ # CONFIG_ARCH_RPC is not set
+ # CONFIG_ARCH_SA1100 is not set
+ # CONFIG_ARCH_S3C2410 is not set
++# CONFIG_ARCH_S3C64XX is not set
+ # CONFIG_ARCH_SHARK is not set
+ # CONFIG_ARCH_LH7A40X is not set
+ # CONFIG_ARCH_DAVINCI is not set
+ CONFIG_ARCH_OMAP=y
+-# CONFIG_ARCH_MSM7X00A is not set
++# CONFIG_ARCH_MSM is not set
++# CONFIG_ARCH_W90X900 is not set
+
+ #
+ # TI OMAP Implementations
+@@ -174,6 +183,7 @@ CONFIG_ARCH_OMAP_OTG=y
+ # CONFIG_ARCH_OMAP1 is not set
+ # CONFIG_ARCH_OMAP2 is not set
+ CONFIG_ARCH_OMAP3=y
++# CONFIG_ARCH_OMAP4 is not set
+
+ #
+ # OMAP Feature Selections
+@@ -185,6 +195,7 @@ CONFIG_OMAP_MUX=y
+ CONFIG_OMAP_MUX_DEBUG=y
+ CONFIG_OMAP_MUX_WARNINGS=y
+ CONFIG_OMAP_MCBSP=y
++# CONFIG_OMAP_MBOX_FWK is not set
+ # CONFIG_OMAP_MPU_TIMER is not set
+ CONFIG_OMAP_32K_TIMER=y
+ CONFIG_OMAP_32K_TIMER_HZ=128
+@@ -192,25 +203,20 @@ CONFIG_OMAP_DM_TIMER=y
+ # CONFIG_OMAP_LL_DEBUG_UART1 is not set
+ # CONFIG_OMAP_LL_DEBUG_UART2 is not set
+ CONFIG_OMAP_LL_DEBUG_UART3=y
+-CONFIG_OMAP_SERIAL_WAKE=y
+ CONFIG_ARCH_OMAP34XX=y
+ CONFIG_ARCH_OMAP3430=y
+
+ #
+ # OMAP Board Type
+ #
+-# CONFIG_MACH_OMAP3_BEAGLE is not set
++# CONFIG_MACH_NOKIA_RX51 is not set
+ # CONFIG_MACH_OMAP_LDP is not set
+-CONFIG_MACH_OMAP_ZOOM2=y
++# CONFIG_MACH_OMAP_3430SDP is not set
++# CONFIG_MACH_OMAP3EVM is not set
++# CONFIG_MACH_OMAP3_BEAGLE is not set
+ # CONFIG_MACH_OVERO is not set
+-
+-#
+-# Boot options
+-#
+-
+-#
+-# Power management
+-#
++# CONFIG_MACH_OMAP3_PANDORA is not set
++CONFIG_MACH_OMAP_ZOOM2=y
+
+ #
+ # Processor Type
+@@ -239,6 +245,10 @@ CONFIG_ARM_THUMB=y
+ # CONFIG_CPU_BPREDICT_DISABLE is not set
+ CONFIG_HAS_TLS_REG=y
+ # CONFIG_OUTER_CACHE is not set
++# CONFIG_ARM_ERRATA_430973 is not set
++# CONFIG_ARM_ERRATA_458693 is not set
++# CONFIG_ARM_ERRATA_460075 is not set
++CONFIG_COMMON_CLKDEV=y
+
+ #
+ # Bus support
+@@ -254,26 +264,32 @@ CONFIG_TICK_ONESHOT=y
+ CONFIG_NO_HZ=y
+ CONFIG_HIGH_RES_TIMERS=y
+ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
++CONFIG_VMSPLIT_3G=y
++# CONFIG_VMSPLIT_2G is not set
++# CONFIG_VMSPLIT_1G is not set
++CONFIG_PAGE_OFFSET=0xC0000000
+ # CONFIG_PREEMPT is not set
+ CONFIG_HZ=128
+ CONFIG_AEABI=y
+ CONFIG_OABI_COMPAT=y
+-CONFIG_ARCH_FLATMEM_HAS_HOLES=y
+-# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
++# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
++# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
++# CONFIG_HIGHMEM is not set
+ CONFIG_SELECT_MEMORY_MODEL=y
+ CONFIG_FLATMEM_MANUAL=y
+ # CONFIG_DISCONTIGMEM_MANUAL is not set
+ # CONFIG_SPARSEMEM_MANUAL is not set
+ CONFIG_FLATMEM=y
+ CONFIG_FLAT_NODE_MEM_MAP=y
+-# CONFIG_SPARSEMEM_STATIC is not set
+-# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+ CONFIG_PAGEFLAGS_EXTENDED=y
+ CONFIG_SPLIT_PTLOCK_CPUS=4
+-# CONFIG_RESOURCES_64BIT is not set
+-CONFIG_ZONE_DMA_FLAG=1
+-CONFIG_BOUNCE=y
++# CONFIG_PHYS_ADDR_T_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=0
+ CONFIG_VIRT_TO_BUS=y
++CONFIG_UNEVICTABLE_LRU=y
++CONFIG_HAVE_MLOCK=y
++CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+ # CONFIG_LEDS is not set
+ CONFIG_ALIGNMENT_TRAP=y
+
+@@ -287,9 +303,10 @@ CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.0.1:/home/user/buildroot ip=192.16
+ # CONFIG_KEXEC is not set
+
+ #
+-# CPU Frequency scaling
++# CPU Power Management
+ #
+ # CONFIG_CPU_FREQ is not set
++# CONFIG_CPU_IDLE is not set
+
+ #
+ # Floating point emulation
+@@ -309,13 +326,23 @@ CONFIG_VFPv3=y
+ # Userspace binary formats
+ #
+ CONFIG_BINFMT_ELF=y
++# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
++CONFIG_HAVE_AOUT=y
+ # CONFIG_BINFMT_AOUT is not set
+ CONFIG_BINFMT_MISC=y
+
+ #
+ # Power management options
+ #
+-# CONFIG_PM is not set
++CONFIG_PM=y
++CONFIG_PM_DEBUG=y
++CONFIG_PM_VERBOSE=y
++CONFIG_CAN_PM_TRACE=y
++CONFIG_PM_SLEEP=y
++CONFIG_SUSPEND=y
++# CONFIG_PM_TEST_SUSPEND is not set
++CONFIG_SUSPEND_FREEZER=y
++# CONFIG_APM_EMULATION is not set
+ CONFIG_ARCH_SUSPEND_POSSIBLE=y
+ CONFIG_NET=y
+
+@@ -378,7 +405,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
+ # CONFIG_LAPB is not set
+ # CONFIG_ECONET is not set
+ # CONFIG_WAN_ROUTER is not set
++# CONFIG_PHONET is not set
+ # CONFIG_NET_SCHED is not set
++# CONFIG_DCB is not set
+
+ #
+ # Network testing
+@@ -389,8 +418,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
+ # CONFIG_IRDA is not set
+ # CONFIG_BT is not set
+ # CONFIG_AF_RXRPC is not set
+-# CONFIG_PHONET is not set
+ # CONFIG_WIRELESS is not set
++# CONFIG_WIMAX is not set
+ # CONFIG_RFKILL is not set
+ # CONFIG_NET_9P is not set
+
+@@ -416,14 +445,28 @@ CONFIG_BLK_DEV=y
+ # CONFIG_BLK_DEV_COW_COMMON is not set
+ CONFIG_BLK_DEV_LOOP=y
+ # CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_UB is not set
+ CONFIG_BLK_DEV_RAM=y
+ CONFIG_BLK_DEV_RAM_COUNT=16
+ CONFIG_BLK_DEV_RAM_SIZE=16384
+ # CONFIG_BLK_DEV_XIP is not set
+ # CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
+ CONFIG_MISC_DEVICES=y
+-# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_ICS932S401 is not set
++# CONFIG_OMAP_STI is not set
+ # CONFIG_ENCLOSURE_SERVICES is not set
++# CONFIG_ISL29003 is not set
++# CONFIG_C2PORT is not set
++
++#
++# EEPROM support
++#
++# CONFIG_EEPROM_AT24 is not set
++# CONFIG_EEPROM_AT25 is not set
++# CONFIG_EEPROM_LEGACY is not set
++# CONFIG_EEPROM_93CX6 is not set
+ CONFIG_HAVE_IDE=y
+ # CONFIG_IDE is not set
+
+@@ -461,14 +504,20 @@ CONFIG_SCSI_WAIT_SCAN=m
+ #
+ # CONFIG_SCSI_SPI_ATTRS is not set
+ # CONFIG_SCSI_FC_ATTRS is not set
++# CONFIG_SCSI_ISCSI_ATTRS is not set
+ # CONFIG_SCSI_SAS_LIBSAS is not set
+ # CONFIG_SCSI_SRP_ATTRS is not set
+ CONFIG_SCSI_LOWLEVEL=y
++# CONFIG_ISCSI_TCP is not set
++# CONFIG_LIBFC is not set
++# CONFIG_LIBFCOE is not set
+ # CONFIG_SCSI_DEBUG is not set
+ # CONFIG_SCSI_DH is not set
++# CONFIG_SCSI_OSD_INITIATOR is not set
+ # CONFIG_ATA is not set
+ # CONFIG_MD is not set
+ CONFIG_NETDEVICES=y
++CONFIG_COMPAT_NET_DEV_OPS=y
+ # CONFIG_DUMMY is not set
+ # CONFIG_BONDING is not set
+ # CONFIG_MACVLAN is not set
+@@ -501,8 +550,10 @@ CONFIG_MII=y
+ # CONFIG_SMC91X is not set
+ # CONFIG_DM9000 is not set
+ # CONFIG_ENC28J60 is not set
++# CONFIG_ETHOC is not set
+ # CONFIG_SMC911X is not set
+ CONFIG_SMSC911X=y
++# CONFIG_DNET is not set
+ # CONFIG_IBM_NEW_EMAC_ZMII is not set
+ # CONFIG_IBM_NEW_EMAC_RGMII is not set
+ # CONFIG_IBM_NEW_EMAC_TAH is not set
+@@ -519,7 +570,10 @@ CONFIG_NETDEV_10000=y
+ #
+ # CONFIG_WLAN_PRE80211 is not set
+ # CONFIG_WLAN_80211 is not set
+-# CONFIG_IWLWIFI_LEDS is not set
++
++#
++# Enable WiMAX (Networking options) to see the WiMAX drivers
++#
+
+ #
+ # USB Network Adapters
+@@ -561,17 +615,25 @@ CONFIG_INPUT_EVDEV=y
+ # CONFIG_INPUT_TABLET is not set
+ CONFIG_INPUT_TOUCHSCREEN=y
+ CONFIG_TOUCHSCREEN_ADS7846=y
++# CONFIG_TOUCHSCREEN_AD7877 is not set
++# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
++# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
++# CONFIG_TOUCHSCREEN_AD7879 is not set
+ # CONFIG_TOUCHSCREEN_FUJITSU is not set
+ # CONFIG_TOUCHSCREEN_GUNZE is not set
+ # CONFIG_TOUCHSCREEN_ELO is not set
++# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+ # CONFIG_TOUCHSCREEN_MTOUCH is not set
+ # CONFIG_TOUCHSCREEN_INEXIO is not set
+ # CONFIG_TOUCHSCREEN_MK712 is not set
+ # CONFIG_TOUCHSCREEN_PENMOUNT is not set
+ # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+ # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+-# CONFIG_TOUCHSCREEN_UCB1400 is not set
++# CONFIG_TOUCHSCREEN_TSC2005 is not set
++# CONFIG_TOUCHSCREEN_TSC210X is not set
++# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+ # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
++# CONFIG_TOUCHSCREEN_TSC2007 is not set
+ # CONFIG_INPUT_MISC is not set
+
+ #
+@@ -607,13 +669,15 @@ CONFIG_SERIAL_8250_RSA=y
+ #
+ # Non-8250 serial port support
+ #
++# CONFIG_SERIAL_MAX3100 is not set
+ CONFIG_SERIAL_CORE=y
+ CONFIG_SERIAL_CORE_CONSOLE=y
+ CONFIG_UNIX98_PTYS=y
++# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+ # CONFIG_LEGACY_PTYS is not set
+ # CONFIG_IPMI_HANDLER is not set
+ CONFIG_HW_RANDOM=y
+-# CONFIG_NVRAM is not set
++# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+ # CONFIG_R3964 is not set
+ # CONFIG_RAW_DRIVER is not set
+ # CONFIG_TCG_TPM is not set
+@@ -639,6 +703,7 @@ CONFIG_I2C_OMAP=y
+ #
+ # CONFIG_I2C_PARPORT_LIGHT is not set
+ # CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_TINY_USB is not set
+
+ #
+ # Other I2C/SMBus bus drivers
+@@ -650,14 +715,11 @@ CONFIG_I2C_OMAP=y
+ # Miscellaneous I2C Chip support
+ #
+ # CONFIG_DS1682 is not set
+-# CONFIG_EEPROM_AT24 is not set
+-# CONFIG_EEPROM_LEGACY is not set
+ # CONFIG_SENSORS_PCF8574 is not set
+ # CONFIG_PCF8575 is not set
+ # CONFIG_SENSORS_PCA9539 is not set
+-# CONFIG_SENSORS_PCF8591 is not set
+-# CONFIG_ISP1301_OMAP is not set
+-# CONFIG_TPS65010 is not set
++# CONFIG_TWL4030_MADC is not set
++# CONFIG_TWL4030_POWEROFF is not set
+ # CONFIG_SENSORS_MAX6875 is not set
+ # CONFIG_SENSORS_TSL2550 is not set
+ # CONFIG_I2C_DEBUG_CORE is not set
+@@ -672,12 +734,12 @@ CONFIG_SPI_MASTER=y
+ # SPI Master Controller Drivers
+ #
+ # CONFIG_SPI_BITBANG is not set
++# CONFIG_SPI_GPIO is not set
+ CONFIG_SPI_OMAP24XX=y
+
+ #
+ # SPI Protocol Masters
+ #
+-# CONFIG_EEPROM_AT25 is not set
+ # CONFIG_SPI_SPIDEV is not set
+ # CONFIG_SPI_TLE62X0 is not set
+ CONFIG_ARCH_REQUIRE_GPIOLIB=y
+@@ -686,11 +748,16 @@ CONFIG_GPIOLIB=y
+ # CONFIG_GPIO_SYSFS is not set
+
+ #
++# Memory mapped GPIO expanders:
++#
++
++#
+ # I2C GPIO expanders:
+ #
+ # CONFIG_GPIO_MAX732X is not set
+ # CONFIG_GPIO_PCA953X is not set
+ # CONFIG_GPIO_PCF857X is not set
++CONFIG_GPIO_TWL4030=y
+
+ #
+ # PCI GPIO expanders:
+@@ -702,26 +769,34 @@ CONFIG_GPIOLIB=y
+ # CONFIG_GPIO_MAX7301 is not set
+ # CONFIG_GPIO_MCP23S08 is not set
+ CONFIG_W1=y
++CONFIG_W1_CON=y
+
+ #
+ # 1-wire Bus Masters
+ #
++# CONFIG_W1_MASTER_DS2490 is not set
+ # CONFIG_W1_MASTER_DS2482 is not set
+ # CONFIG_W1_MASTER_DS1WM is not set
+ # CONFIG_W1_MASTER_GPIO is not set
++# CONFIG_HDQ_MASTER_OMAP is not set
+
+ #
+ # 1-wire Slaves
+ #
+ # CONFIG_W1_SLAVE_THERM is not set
+ # CONFIG_W1_SLAVE_SMEM is not set
++# CONFIG_W1_SLAVE_DS2431 is not set
+ # CONFIG_W1_SLAVE_DS2433 is not set
+ # CONFIG_W1_SLAVE_DS2760 is not set
++# CONFIG_W1_SLAVE_BQ27000 is not set
+ CONFIG_POWER_SUPPLY=y
+ # CONFIG_POWER_SUPPLY_DEBUG is not set
+ # CONFIG_PDA_POWER is not set
+ # CONFIG_BATTERY_DS2760 is not set
++# CONFIG_BATTERY_BQ27x00 is not set
+ # CONFIG_HWMON is not set
++# CONFIG_THERMAL is not set
++# CONFIG_THERMAL_HWMON is not set
+ CONFIG_WATCHDOG=y
+ CONFIG_WATCHDOG_NOWAYOUT=y
+
+@@ -729,11 +804,17 @@ CONFIG_WATCHDOG_NOWAYOUT=y
+ # Watchdog Device Drivers
+ #
+ # CONFIG_SOFT_WATCHDOG is not set
++# CONFIG_OMAP_WATCHDOG is not set
+
+ #
+-# Sonics Silicon Backplane
++# USB-based Watchdog Cards
+ #
++# CONFIG_USBPCWATCHDOG is not set
+ CONFIG_SSB_POSSIBLE=y
++
++#
++# Sonics Silicon Backplane
++#
+ # CONFIG_SSB is not set
+
+ #
+@@ -741,12 +822,19 @@ CONFIG_SSB_POSSIBLE=y
+ #
+ # CONFIG_MFD_CORE is not set
+ # CONFIG_MFD_SM501 is not set
++# CONFIG_MFD_ASIC3 is not set
+ # CONFIG_HTC_EGPIO is not set
+ # CONFIG_HTC_PASIC3 is not set
++# CONFIG_TPS65010 is not set
++CONFIG_TWL4030_CORE=y
+ # CONFIG_MFD_TMIO is not set
+ # CONFIG_MFD_T7L66XB is not set
+ # CONFIG_MFD_TC6387XB is not set
+ # CONFIG_MFD_TC6393XB is not set
++# CONFIG_PMIC_DA903X is not set
++# CONFIG_MFD_WM8400 is not set
++# CONFIG_MFD_WM8350_I2C is not set
++# CONFIG_MFD_PCF50633 is not set
+
+ #
+ # Multimedia devices
+@@ -756,12 +844,14 @@ CONFIG_SSB_POSSIBLE=y
+ # Multimedia core support
+ #
+ # CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
+ # CONFIG_VIDEO_MEDIA is not set
+
+ #
+ # Multimedia drivers
+ #
+ CONFIG_DAB=y
++# CONFIG_USB_DABUSB is not set
+
+ #
+ # Graphics support
+@@ -782,10 +872,12 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
+ # CONFIG_VGA_CONSOLE is not set
+ CONFIG_DUMMY_CONSOLE=y
+ CONFIG_SOUND=y
++# CONFIG_SOUND_OSS_CORE is not set
+ CONFIG_SND=y
+ # CONFIG_SND_SEQUENCER is not set
+ # CONFIG_SND_MIXER_OSS is not set
+ # CONFIG_SND_PCM_OSS is not set
++# CONFIG_SND_HRTIMER is not set
+ # CONFIG_SND_DYNAMIC_MINORS is not set
+ CONFIG_SND_SUPPORT_OLD_API=y
+ CONFIG_SND_VERBOSE_PROCFS=y
+@@ -798,19 +890,197 @@ CONFIG_SND_DRIVERS=y
+ # CONFIG_SND_MPU401 is not set
+ CONFIG_SND_ARM=y
+ CONFIG_SND_SPI=y
++CONFIG_SND_USB=y
++# CONFIG_SND_USB_AUDIO is not set
++# CONFIG_SND_USB_CAIAQ is not set
+ # CONFIG_SND_SOC is not set
+ # CONFIG_SOUND_PRIME is not set
+ CONFIG_HID_SUPPORT=y
+ CONFIG_HID=y
+ # CONFIG_HID_DEBUG is not set
+ # CONFIG_HIDRAW is not set
+-# CONFIG_USB_SUPPORT is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_HID_PID is not set
++# CONFIG_USB_HIDDEV is not set
++
++#
++# Special HID drivers
++#
++# CONFIG_HID_A4TECH is not set
++# CONFIG_HID_APPLE is not set
++# CONFIG_HID_BELKIN is not set
++# CONFIG_HID_CHERRY is not set
++# CONFIG_HID_CHICONY is not set
++# CONFIG_HID_CYPRESS is not set
++# CONFIG_DRAGONRISE_FF is not set
++# CONFIG_HID_EZKEY is not set
++# CONFIG_HID_KYE is not set
++# CONFIG_HID_GYRATION is not set
++# CONFIG_HID_KENSINGTON is not set
++# CONFIG_HID_LOGITECH is not set
++# CONFIG_HID_MICROSOFT is not set
++# CONFIG_HID_MONTEREY is not set
++# CONFIG_HID_NTRIG is not set
++# CONFIG_HID_PANTHERLORD is not set
++# CONFIG_HID_PETALYNX is not set
++# CONFIG_HID_SAMSUNG is not set
++# CONFIG_HID_SONY is not set
++# CONFIG_HID_SUNPLUS is not set
++# CONFIG_GREENASIA_FF is not set
++# CONFIG_HID_TOPSEED is not set
++# CONFIG_THRUSTMASTER_FF is not set
++# CONFIG_ZEROPLUS_FF is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++CONFIG_USB_ARCH_HAS_EHCI=y
++CONFIG_USB=y
++CONFIG_USB_DEBUG=y
++CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
++
++#
++# Miscellaneous USB options
++#
++# CONFIG_USB_DEVICEFS is not set
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++CONFIG_USB_SUSPEND=y
++CONFIG_USB_OTG=y
++# CONFIG_USB_OTG_WHITELIST is not set
++# CONFIG_USB_OTG_BLACKLIST_HUB is not set
++CONFIG_USB_MON=y
++# CONFIG_USB_WUSB is not set
++# CONFIG_USB_WUSB_CBAF is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_C67X00_HCD is not set
++# CONFIG_USB_EHCI_HCD is not set
++# CONFIG_USB_OXU210HP_HCD is not set
++# CONFIG_USB_ISP116X_HCD is not set
++# CONFIG_USB_ISP1760_HCD is not set
++# CONFIG_USB_OHCI_HCD is not set
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++# CONFIG_USB_HWA_HCD is not set
++CONFIG_USB_MUSB_HDRC=y
++CONFIG_USB_MUSB_SOC=y
++
++#
++# OMAP 343x high speed USB support
++#
++# CONFIG_USB_MUSB_HOST is not set
++# CONFIG_USB_MUSB_PERIPHERAL is not set
++CONFIG_USB_MUSB_OTG=y
++CONFIG_USB_GADGET_MUSB_HDRC=y
++CONFIG_USB_MUSB_HDRC_HCD=y
++# CONFIG_MUSB_PIO_ONLY is not set
++CONFIG_USB_INVENTRA_DMA=y
++# CONFIG_USB_TI_CPPI_DMA is not set
++CONFIG_USB_MUSB_DEBUG=y
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++# CONFIG_USB_WDM is not set
++# CONFIG_USB_TMC is not set
++
++#
++# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
++#
++
++#
++# also be needed; see USB_STORAGE Help for more info
++#
++# CONFIG_USB_STORAGE is not set
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++# CONFIG_USB_MICROTEK is not set
++
++#
++# USB port drivers
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_SEVSEG is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_ISIGHTFW is not set
++# CONFIG_USB_VST is not set
++CONFIG_USB_GADGET=y
++CONFIG_USB_GADGET_DEBUG=y
++CONFIG_USB_GADGET_DEBUG_FILES=y
++CONFIG_USB_GADGET_VBUS_DRAW=2
++CONFIG_USB_GADGET_SELECTED=y
++# CONFIG_USB_GADGET_AT91 is not set
++# CONFIG_USB_GADGET_ATMEL_USBA is not set
++# CONFIG_USB_GADGET_FSL_USB2 is not set
++# CONFIG_USB_GADGET_LH7A40X is not set
++# CONFIG_USB_GADGET_OMAP is not set
++# CONFIG_USB_GADGET_PXA25X is not set
++# CONFIG_USB_GADGET_PXA27X is not set
++# CONFIG_USB_GADGET_S3C2410 is not set
++# CONFIG_USB_GADGET_IMX is not set
++# CONFIG_USB_GADGET_M66592 is not set
++# CONFIG_USB_GADGET_AMD5536UDC is not set
++# CONFIG_USB_GADGET_FSL_QE is not set
++# CONFIG_USB_GADGET_CI13XXX is not set
++# CONFIG_USB_GADGET_NET2280 is not set
++# CONFIG_USB_GADGET_GOKU is not set
++# CONFIG_USB_GADGET_DUMMY_HCD is not set
++CONFIG_USB_GADGET_DUALSPEED=y
++CONFIG_USB_ZERO=y
++# CONFIG_USB_ZERO_HNPTEST is not set
++# CONFIG_USB_ETH is not set
++# CONFIG_USB_GADGETFS is not set
++# CONFIG_USB_FILE_STORAGE is not set
++# CONFIG_USB_G_SERIAL is not set
++# CONFIG_USB_MIDI_GADGET is not set
++# CONFIG_USB_G_PRINTER is not set
++# CONFIG_USB_CDC_COMPOSITE is not set
++
++#
++# OTG and related infrastructure
++#
++CONFIG_USB_OTG_UTILS=y
++# CONFIG_USB_GPIO_VBUS is not set
++# CONFIG_ISP1301_OMAP is not set
++CONFIG_TWL4030_USB=y
++# CONFIG_NOP_USB_XCEIV is not set
+ CONFIG_MMC=y
+ # CONFIG_MMC_DEBUG is not set
+ # CONFIG_MMC_UNSAFE_RESUME is not set
+
+ #
+-# MMC/SD Card Drivers
++# MMC/SD/SDIO Card Drivers
+ #
+ CONFIG_MMC_BLOCK=y
+ CONFIG_MMC_BLOCK_BOUNCE=y
+@@ -818,11 +1088,13 @@ CONFIG_MMC_BLOCK_BOUNCE=y
+ # CONFIG_MMC_TEST is not set
+
+ #
+-# MMC/SD Host Controller Drivers
++# MMC/SD/SDIO Host Controller Drivers
+ #
+ # CONFIG_MMC_SDHCI is not set
+-# CONFIG_MMC_OMAP is not set
++CONFIG_MMC_OMAP_HS=y
+ # CONFIG_MMC_SPI is not set
++# CONFIG_MEMSTICK is not set
++# CONFIG_ACCESSIBILITY is not set
+ # CONFIG_NEW_LEDS is not set
+ CONFIG_RTC_LIB=y
+ CONFIG_RTC_CLASS=y
+@@ -852,43 +1124,55 @@ CONFIG_RTC_INTF_DEV=y
+ # CONFIG_RTC_DRV_PCF8563 is not set
+ # CONFIG_RTC_DRV_PCF8583 is not set
+ # CONFIG_RTC_DRV_M41T80 is not set
++# CONFIG_RTC_DRV_TWL4030 is not set
+ # CONFIG_RTC_DRV_S35390A is not set
+ # CONFIG_RTC_DRV_FM3130 is not set
++# CONFIG_RTC_DRV_RX8581 is not set
+
+ #
+ # SPI RTC drivers
+ #
+ # CONFIG_RTC_DRV_M41T94 is not set
+ # CONFIG_RTC_DRV_DS1305 is not set
++# CONFIG_RTC_DRV_DS1390 is not set
+ # CONFIG_RTC_DRV_MAX6902 is not set
+ # CONFIG_RTC_DRV_R9701 is not set
+ # CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_DS3234 is not set
+
+ #
+ # Platform RTC drivers
+ #
+ # CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1286 is not set
+ # CONFIG_RTC_DRV_DS1511 is not set
+ # CONFIG_RTC_DRV_DS1553 is not set
+ # CONFIG_RTC_DRV_DS1742 is not set
+ # CONFIG_RTC_DRV_STK17TA8 is not set
+ # CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T35 is not set
+ # CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_BQ4802 is not set
+ # CONFIG_RTC_DRV_V3020 is not set
+
+ #
+ # on-CPU RTC drivers
+ #
+ # CONFIG_DMADEVICES is not set
+-
+-#
+-# Voltage and Current regulators
+-#
+-# CONFIG_REGULATOR is not set
++# CONFIG_AUXDISPLAY is not set
++CONFIG_REGULATOR=y
++# CONFIG_REGULATOR_DEBUG is not set
+ # CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+ # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+ # CONFIG_REGULATOR_BQ24022 is not set
++CONFIG_REGULATOR_TWL4030=y
+ # CONFIG_UIO is not set
++# CONFIG_STAGING is not set
++
++#
++# CBUS support
++#
++# CONFIG_CBUS is not set
+
+ #
+ # File systems
+@@ -897,18 +1181,24 @@ CONFIG_EXT2_FS=y
+ # CONFIG_EXT2_FS_XATTR is not set
+ # CONFIG_EXT2_FS_XIP is not set
+ CONFIG_EXT3_FS=y
++# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+ # CONFIG_EXT3_FS_XATTR is not set
+-# CONFIG_EXT4DEV_FS is not set
++# CONFIG_EXT4_FS is not set
+ CONFIG_JBD=y
+ # CONFIG_REISERFS_FS is not set
+ # CONFIG_JFS_FS is not set
+-# CONFIG_FS_POSIX_ACL is not set
++CONFIG_FS_POSIX_ACL=y
++CONFIG_FILE_LOCKING=y
+ # CONFIG_XFS_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_BTRFS_FS is not set
+ CONFIG_DNOTIFY=y
+ CONFIG_INOTIFY=y
+ CONFIG_INOTIFY_USER=y
+ CONFIG_QUOTA=y
++# CONFIG_QUOTA_NETLINK_INTERFACE is not set
+ CONFIG_PRINT_QUOTA_WARNING=y
++CONFIG_QUOTA_TREE=y
+ # CONFIG_QFMT_V1 is not set
+ CONFIG_QFMT_V2=y
+ CONFIG_QUOTACTL=y
+@@ -917,6 +1207,11 @@ CONFIG_QUOTACTL=y
+ # CONFIG_FUSE_FS is not set
+
+ #
++# Caches
++#
++# CONFIG_FSCACHE is not set
++
++#
+ # CD-ROM/DVD Filesystems
+ #
+ # CONFIG_ISO9660_FS is not set
+@@ -937,15 +1232,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+ #
+ CONFIG_PROC_FS=y
+ CONFIG_PROC_SYSCTL=y
++CONFIG_PROC_PAGE_MONITOR=y
+ CONFIG_SYSFS=y
+ CONFIG_TMPFS=y
+ # CONFIG_TMPFS_POSIX_ACL is not set
+ # CONFIG_HUGETLB_PAGE is not set
+ # CONFIG_CONFIGFS_FS is not set
+-
+-#
+-# Miscellaneous filesystems
+-#
++CONFIG_MISC_FILESYSTEMS=y
+ # CONFIG_ADFS_FS is not set
+ # CONFIG_AFFS_FS is not set
+ # CONFIG_HFS_FS is not set
+@@ -954,6 +1247,7 @@ CONFIG_TMPFS=y
+ # CONFIG_BFS_FS is not set
+ # CONFIG_EFS_FS is not set
+ # CONFIG_CRAMFS is not set
++# CONFIG_SQUASHFS is not set
+ # CONFIG_VXFS_FS is not set
+ # CONFIG_MINIX_FS is not set
+ # CONFIG_OMFS_FS is not set
+@@ -962,6 +1256,7 @@ CONFIG_TMPFS=y
+ # CONFIG_ROMFS_FS is not set
+ # CONFIG_SYSV_FS is not set
+ # CONFIG_UFS_FS is not set
++# CONFIG_NILFS2_FS is not set
+ CONFIG_NETWORK_FILESYSTEMS=y
+ CONFIG_NFS_FS=y
+ CONFIG_NFS_V3=y
+@@ -975,7 +1270,6 @@ CONFIG_NFS_ACL_SUPPORT=y
+ CONFIG_NFS_COMMON=y
+ CONFIG_SUNRPC=y
+ CONFIG_SUNRPC_GSS=y
+-# CONFIG_SUNRPC_REGISTER_V4 is not set
+ CONFIG_RPCSEC_GSS_KRB5=y
+ # CONFIG_RPCSEC_GSS_SPKM3 is not set
+ # CONFIG_SMB_FS is not set
+@@ -1045,6 +1339,7 @@ CONFIG_NLS_ISO8859_1=y
+ # CONFIG_NLS_KOI8_R is not set
+ # CONFIG_NLS_KOI8_U is not set
+ # CONFIG_NLS_UTF8 is not set
++# CONFIG_DLM is not set
+
+ #
+ # Kernel hacking
+@@ -1062,6 +1357,9 @@ CONFIG_DEBUG_KERNEL=y
+ CONFIG_DETECT_SOFTLOCKUP=y
+ # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+ CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
++CONFIG_DETECT_HUNG_TASK=y
++# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
++CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+ CONFIG_SCHED_DEBUG=y
+ # CONFIG_SCHEDSTATS is not set
+ # CONFIG_TIMER_STATS is not set
+@@ -1084,21 +1382,36 @@ CONFIG_DEBUG_INFO=y
+ # CONFIG_DEBUG_MEMORY_INIT is not set
+ # CONFIG_DEBUG_LIST is not set
+ # CONFIG_DEBUG_SG is not set
+-CONFIG_FRAME_POINTER=y
++# CONFIG_DEBUG_NOTIFIERS is not set
+ # CONFIG_BOOT_PRINTK_DELAY is not set
+ # CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+ # CONFIG_BACKTRACE_SELF_TEST is not set
++# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+ # CONFIG_FAULT_INJECTION is not set
+ # CONFIG_LATENCYTOP is not set
+-CONFIG_HAVE_FTRACE=y
+-CONFIG_HAVE_DYNAMIC_FTRACE=y
+-# CONFIG_FTRACE is not set
++# CONFIG_PAGE_POISONING is not set
++CONFIG_HAVE_FUNCTION_TRACER=y
++CONFIG_TRACING_SUPPORT=y
++
++#
++# Tracers
++#
++# CONFIG_FUNCTION_TRACER is not set
+ # CONFIG_IRQSOFF_TRACER is not set
+ # CONFIG_SCHED_TRACER is not set
+ # CONFIG_CONTEXT_SWITCH_TRACER is not set
++# CONFIG_EVENT_TRACER is not set
++# CONFIG_BOOT_TRACER is not set
++# CONFIG_TRACE_BRANCH_PROFILING is not set
++# CONFIG_STACK_TRACER is not set
++# CONFIG_KMEMTRACE is not set
++# CONFIG_WORKQUEUE_TRACER is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
+ # CONFIG_SAMPLES is not set
+ CONFIG_HAVE_ARCH_KGDB=y
+ # CONFIG_KGDB is not set
++CONFIG_ARM_UNWIND=y
+ # CONFIG_DEBUG_USER is not set
+ # CONFIG_DEBUG_ERRORS is not set
+ # CONFIG_DEBUG_STACK_USAGE is not set
+@@ -1110,17 +1423,28 @@ CONFIG_DEBUG_LL=y
+ #
+ # CONFIG_KEYS is not set
+ # CONFIG_SECURITY is not set
++# CONFIG_SECURITYFS is not set
+ # CONFIG_SECURITY_FILE_CAPABILITIES is not set
+ CONFIG_CRYPTO=y
+
+ #
+ # Crypto core or helper
+ #
++# CONFIG_CRYPTO_FIPS is not set
+ CONFIG_CRYPTO_ALGAPI=y
++CONFIG_CRYPTO_ALGAPI2=y
++CONFIG_CRYPTO_AEAD2=y
+ CONFIG_CRYPTO_BLKCIPHER=y
++CONFIG_CRYPTO_BLKCIPHER2=y
++CONFIG_CRYPTO_HASH=y
++CONFIG_CRYPTO_HASH2=y
++CONFIG_CRYPTO_RNG2=y
++CONFIG_CRYPTO_PCOMP=y
+ CONFIG_CRYPTO_MANAGER=y
++CONFIG_CRYPTO_MANAGER2=y
+ # CONFIG_CRYPTO_GF128MUL is not set
+ # CONFIG_CRYPTO_NULL is not set
++CONFIG_CRYPTO_WORKQUEUE=y
+ # CONFIG_CRYPTO_CRYPTD is not set
+ # CONFIG_CRYPTO_AUTHENC is not set
+ # CONFIG_CRYPTO_TEST is not set
+@@ -1152,7 +1476,7 @@ CONFIG_CRYPTO_PCBC=m
+ #
+ # Digest
+ #
+-# CONFIG_CRYPTO_CRC32C is not set
++CONFIG_CRYPTO_CRC32C=y
+ # CONFIG_CRYPTO_MD4 is not set
+ CONFIG_CRYPTO_MD5=y
+ # CONFIG_CRYPTO_MICHAEL_MIC is not set
+@@ -1189,15 +1513,21 @@ CONFIG_CRYPTO_DES=y
+ # Compression
+ #
+ # CONFIG_CRYPTO_DEFLATE is not set
++# CONFIG_CRYPTO_ZLIB is not set
+ # CONFIG_CRYPTO_LZO is not set
++
++#
++# Random Number Generation
++#
++# CONFIG_CRYPTO_ANSI_CPRNG is not set
+ CONFIG_CRYPTO_HW=y
++# CONFIG_BINARY_PRINTF is not set
+
+ #
+ # Library routines
+ #
+ CONFIG_BITREVERSE=y
+-# CONFIG_GENERIC_FIND_FIRST_BIT is not set
+-# CONFIG_GENERIC_FIND_NEXT_BIT is not set
++CONFIG_GENERIC_FIND_LAST_BIT=y
+ CONFIG_CRC_CCITT=y
+ # CONFIG_CRC16 is not set
+ CONFIG_CRC_T10DIF=y
+@@ -1205,7 +1535,9 @@ CONFIG_CRC_T10DIF=y
+ CONFIG_CRC32=y
+ # CONFIG_CRC7 is not set
+ CONFIG_LIBCRC32C=y
+-CONFIG_PLIST=y
++CONFIG_ZLIB_INFLATE=y
++CONFIG_DECOMPRESS_GZIP=y
+ CONFIG_HAS_IOMEM=y
+ CONFIG_HAS_IOPORT=y
+ CONFIG_HAS_DMA=y
++CONFIG_NLATTR=y
+--
+1.6.3.2
+
diff --git a/meta/packages/linux/linux-omap3-pm-git/zoom2/0004-serial-8250-add-IRQ-trigger-support.patch b/meta/packages/linux/linux-omap3-pm-git/zoom2/0004-serial-8250-add-IRQ-trigger-support.patch
new file mode 100644
index 0000000000..05ca90512e
--- /dev/null
+++ b/meta/packages/linux/linux-omap3-pm-git/zoom2/0004-serial-8250-add-IRQ-trigger-support.patch
@@ -0,0 +1,143 @@
+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
+
diff --git a/meta/packages/linux/linux-omap3-pm-git/zoom2/0005-OMAP2-Zoom2-Pass-irqflags-to-8250-driver.patch b/meta/packages/linux/linux-omap3-pm-git/zoom2/0005-OMAP2-Zoom2-Pass-irqflags-to-8250-driver.patch
new file mode 100644
index 0000000000..a86622bf1f
--- /dev/null
+++ b/meta/packages/linux/linux-omap3-pm-git/zoom2/0005-OMAP2-Zoom2-Pass-irqflags-to-8250-driver.patch
@@ -0,0 +1,41 @@
+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
+
diff --git a/meta/packages/linux/linux-omap3-pm-git/zoom2/0006-OMAP3-Zoom2-ext-UART-needs-plaform_device.id-3.patch b/meta/packages/linux/linux-omap3-pm-git/zoom2/0006-OMAP3-Zoom2-ext-UART-needs-plaform_device.id-3.patch
new file mode 100644
index 0000000000..2e1e87151d
--- /dev/null
+++ b/meta/packages/linux/linux-omap3-pm-git/zoom2/0006-OMAP3-Zoom2-ext-UART-needs-plaform_device.id-3.patch
@@ -0,0 +1,29 @@
+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
+
diff --git a/meta/packages/linux/linux-omap3-pm-git/zoom2/0007-omap-zoom2-add-external-uart-DEBUG_LL-support-to-zoo.patch b/meta/packages/linux/linux-omap3-pm-git/zoom2/0007-omap-zoom2-add-external-uart-DEBUG_LL-support-to-zoo.patch
new file mode 100644
index 0000000000..d2f98c5b52
--- /dev/null
+++ b/meta/packages/linux/linux-omap3-pm-git/zoom2/0007-omap-zoom2-add-external-uart-DEBUG_LL-support-to-zoo.patch
@@ -0,0 +1,71 @@
+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
+
diff --git a/meta/packages/linux/linux-omap3-pm-git/zoom2/0008-omap2-add-support-for-DEBUG_LL-on-external-UART.patch b/meta/packages/linux/linux-omap3-pm-git/zoom2/0008-omap2-add-support-for-DEBUG_LL-on-external-UART.patch
new file mode 100644
index 0000000000..7ca2dcb9fe
--- /dev/null
+++ b/meta/packages/linux/linux-omap3-pm-git/zoom2/0008-omap2-add-support-for-DEBUG_LL-on-external-UART.patch
@@ -0,0 +1,103 @@
+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
+
diff --git a/meta/packages/linux/linux-omap3-pm_git.bb b/meta/packages/linux/linux-omap3-pm_git.bb
new file mode 100644
index 0000000000..86824f2558
--- /dev/null
+++ b/meta/packages/linux/linux-omap3-pm_git.bb
@@ -0,0 +1,75 @@
+DESCRIPTION = "Linux Kernel"
+SECTION = "kernel"
+LICENSE = "GPL"
+
+inherit kernel
+
+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"
+
+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://0001-OMAP3-MMC-Add-mux-for-pins.patch;patch=1 \
+ 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 \
+ "
+
+COMPATIBLE_MACHINE = "beagleboard|omap-3430sdp|omap3evm|overo|rx51|zoom2"
+
+S = "${WORKDIR}/git"
+
+do_configure_prepend() {
+ # logo support: if you supply logo_linux_clut224.ppm in SRC_URI,
+ # then it's going to be used instead of "Tux" in the kernel sources
+ if [ -e ${WORKDIR}/logo_linux_clut224.ppm ]; then
+ install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm \
+ drivers/video/logo/logo_linux_clut224.ppm
+ fi
+
+ # use the externally-supplied ${MACHINE}_external_defconfig if present,
+ # else use omap3_pm_defconfig from the sources
+ if [ -e ${WORKDIR}/${MACHINE}_external_defconfig ]; then
+ cp ${WORKDIR}/${MACHINE}_external_defconfig ${S}/arch/arm/configs/
+ yes '' | oe_runmake ${MACHINE}_external_defconfig
+ else
+ case ${MACHINE} in
+ omap-3430sdp|omap3evm)
+ # works out of the box
+ yes '' | oe_runmake omap3_pm_defconfig
+ ;;
+ beagleboard | overo | rx51)
+ # adjust LL_DEBUG console for these boards
+ 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_OMAP_LL_DEBUG_UART3 is not set/CONFIG_OMAP_LL_DEBUG_UART3=y/" \
+ -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
+ ;;
+ zoom2)
+ # adjust LL_DEBUG console for these boards
+ 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
+# yes '' | oe_runmake oldconfig
+ ;;
+ *)
+ # its worth a try...
+ yes '' | oe_runmake ${MACHINE}_defconfig
+ ;;
+ esac
+ fi
+}