summaryrefslogtreecommitdiff
path: root/meta
diff options
context:
space:
mode:
authorMike Turquette <mturquette@ti.com>2009-08-05 09:11:10 -0500
committerMike Turquette <mturquette@ti.com>2009-08-05 09:11:10 -0500
commit63dffacec4d267d239f789d4812ba390ac1784f5 (patch)
tree20b540484e4932b44e7b240a9ff93dc8ba7e952f /meta
parent5e88a54c71ac4ad701e26886834644c6ade89ae6 (diff)
downloadopenembedded-core-63dffacec4d267d239f789d4812ba390ac1784f5.tar.gz
openembedded-core-63dffacec4d267d239f789d4812ba390ac1784f5.tar.bz2
openembedded-core-63dffacec4d267d239f789d4812ba390ac1784f5.zip
linux-omap3-pm: OMAP3 kernel recipe to build Kevin Hilman's linux-omap-pm tree
Currently tested on Zoom2 and Beagle board. Please test if you have an OMAP3 board! The source tree for this recipe is the latest and greatest power management code for OMAP3. You can find it at http://git.kernel.org/?p=linux/kernel/git/khilman/linux-omap-pm.git;a=summary Signed-off-by: Mike Turquette <mturquette@ti.com>
Diffstat (limited to 'meta')
-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
9 files changed, 2015 insertions, 0 deletions
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
+}