diff --git a/platform/msm7x27a/gpio.c b/platform/msm7x27a/gpio.c
index a49efec..9615d33 100644
--- a/platform/msm7x27a/gpio.c
+++ b/platform/msm7x27a/gpio.c
@@ -40,6 +40,7 @@
 #define GPIO_OUT_2		 GPIO1_REG(0x04)  /* gpio  67-43 */
 #define GPIO_OUT_3		 GPIO1_REG(0x08)  /* gpio  94-68 */
 #define GPIO_OUT_4		 GPIO1_REG(0x0C)  /* gpio 106-95 */
+#define GPIO_OUT_5		 GPIO1_REG(0x50)  /* gpio 132-107 */
 
 /* same pin map as above, output enable */
 #define GPIO_OE_0		  GPIO1_REG(0x10)
@@ -47,6 +48,7 @@
 #define GPIO_OE_2		  GPIO1_REG(0x14)
 #define GPIO_OE_3		  GPIO1_REG(0x18)
 #define GPIO_OE_4		  GPIO1_REG(0x1C)
+#define GPIO_OE_5		  GPIO1_REG(0x54)
 
 /* same pin map as above, input read */
 #define GPIO_IN_0		  GPIO1_REG(0x34)
@@ -54,6 +56,7 @@
 #define GPIO_IN_2		  GPIO1_REG(0x38)
 #define GPIO_IN_3		  GPIO1_REG(0x3C)
 #define GPIO_IN_4		  GPIO1_REG(0x40)
+#define GPIO_IN_5		  GPIO1_REG(0x44)
 
 /* same pin map as above, 1=edge 0=level interrup */
 #define GPIO_INT_EDGE_0	GPIO1_REG(0x60)
@@ -61,6 +64,7 @@
 #define GPIO_INT_EDGE_2	GPIO1_REG(0x64)
 #define GPIO_INT_EDGE_3	GPIO1_REG(0x68)
 #define GPIO_INT_EDGE_4	GPIO1_REG(0x6C)
+#define GPIO_INT_EDGE_5	GPIO1_REG(0xC0)
 
 /* same pin map as above, 1=positive 0=negative */
 #define GPIO_INT_POS_0	 GPIO1_REG(0x70)
@@ -68,6 +72,7 @@
 #define GPIO_INT_POS_2	 GPIO1_REG(0x74)
 #define GPIO_INT_POS_3	 GPIO1_REG(0x78)
 #define GPIO_INT_POS_4	 GPIO1_REG(0x7C)
+#define GPIO_INT_POS_5	 GPIO1_REG(0xBC)
 
 /* same pin map as above, interrupt enable */
 #define GPIO_INT_EN_0	  GPIO1_REG(0x80)
@@ -75,6 +80,7 @@
 #define GPIO_INT_EN_2	  GPIO1_REG(0x84)
 #define GPIO_INT_EN_3	  GPIO1_REG(0x88)
 #define GPIO_INT_EN_4	  GPIO1_REG(0x8C)
+#define GPIO_INT_EN_5	  GPIO1_REG(0xB8)
 
 /* same pin map as above, write 1 to clear interrupt */
 #define GPIO_INT_CLEAR_0   GPIO1_REG(0x90)
@@ -82,6 +88,7 @@
 #define GPIO_INT_CLEAR_2   GPIO1_REG(0x94)
 #define GPIO_INT_CLEAR_3   GPIO1_REG(0x98)
 #define GPIO_INT_CLEAR_4   GPIO1_REG(0x9C)
+#define GPIO_INT_CLEAR_5   GPIO1_REG(0xB4)
 
 /* same pin map as above, 1=interrupt pending */
 #define GPIO_INT_STATUS_0  GPIO1_REG(0xA0)
@@ -89,6 +96,7 @@
 #define GPIO_INT_STATUS_2  GPIO1_REG(0xA4)
 #define GPIO_INT_STATUS_3  GPIO1_REG(0xA8)
 #define GPIO_INT_STATUS_4  GPIO1_REG(0xAC)
+#define GPIO_INT_STATUS_5  GPIO1_REG(0xB0)
 
 typedef struct gpioregs gpioregs;
 
@@ -155,12 +163,26 @@
 		.int_pos =	 GPIO_INT_POS_4,
 		.oe =		  GPIO_OE_4,
 	},
+	{
+		.out =		 GPIO_OUT_5,
+		.in =		  GPIO_IN_5,
+		.int_status =  GPIO_INT_STATUS_5,
+		.int_clear =   GPIO_INT_CLEAR_5,
+		.int_en =	  GPIO_INT_EN_5,
+		.int_edge =	GPIO_INT_EDGE_5,
+		.int_pos =	 GPIO_INT_POS_5,
+		.oe =		  GPIO_OE_5,
+	},
 };
 
 static gpioregs *find_gpio(unsigned n, unsigned *bit)
 {
-	if(n > 106)
+	if(n > 132)
 		return 0;
+	if(n > 106) {
+		*bit = 1 << (n - 107);
+		return GPIO_REGS + 5;
+	}
 	if(n > 94) {
 		*bit = 1 << (n - 95);
 		return GPIO_REGS + 4;
diff --git a/target/msm7627a/init.c b/target/msm7627a/init.c
index 7a22b7c..a591f46 100644
--- a/target/msm7627a/init.c
+++ b/target/msm7627a/init.c
@@ -116,13 +116,10 @@
 
 	dprintf(INFO, "target_init()\n");
 
-/* TODO: Enable keypad support */
-#if 0
 #if (!ENABLE_NANDWRITE)
 	keys_init();
 	keypad_init();
 #endif
-#endif
 
 	if (target_is_emmc_boot())
 	{
diff --git a/target/msm7627a/keypad.c b/target/msm7627a/keypad.c
index c51c015..354e632 100644
--- a/target/msm7627a/keypad.c
+++ b/target/msm7627a/keypad.c
@@ -38,61 +38,41 @@
 /* don't turn this on without updating the ffa support */
 #define SCAN_FUNCTION_KEYS 0
 
-static unsigned int halibut_row_gpios[] = {
-	31, 32, 33, 34, 35, 41
-#if SCAN_FUNCTION_KEYS
-	, 42
-#endif
-};
-
-static unsigned int halibut_col_gpios[] = { 36, 37, 38, 39, 40 };
+static unsigned int halibut_row_gpios[] = {31, 32, 33, 34, 35};
+static unsigned int halibut_col_gpios[] = {36, 37, 38, 39, 40};
 
 #define KEYMAP_INDEX(row, col) ((row)*ARRAY_SIZE(halibut_col_gpios) + (col))
 
 static const unsigned short halibut_keymap[ARRAY_SIZE(halibut_col_gpios) * ARRAY_SIZE(halibut_row_gpios)] = {
-	[KEYMAP_INDEX(0, 0)] = KEY_5,
-	[KEYMAP_INDEX(0, 1)] = KEY_9,
-	[KEYMAP_INDEX(0, 2)] = KEY_SOFT1,
-	[KEYMAP_INDEX(0, 3)] = KEY_6,
-	[KEYMAP_INDEX(0, 4)] = KEY_LEFT,
+	[KEYMAP_INDEX(0, 0)] = KEY_7,
+	[KEYMAP_INDEX(0, 1)] = KEY_DOWN,
+	[KEYMAP_INDEX(0, 2)] = KEY_UP,
+	[KEYMAP_INDEX(0, 3)] = KEY_RIGHT,
+	[KEYMAP_INDEX(0, 4)] = KEY_CENTER,
 
-	[KEYMAP_INDEX(1, 0)] = KEY_0,
-	[KEYMAP_INDEX(1, 1)] = KEY_RIGHT,
+	[KEYMAP_INDEX(1, 0)] = KEY_LEFT,
+	[KEYMAP_INDEX(1, 1)] = KEY_SEND,
 	[KEYMAP_INDEX(1, 2)] = KEY_1,
-	[KEYMAP_INDEX(1, 3)] = KEY_SHARP,
-	[KEYMAP_INDEX(1, 4)] = KEY_SEND,
+	[KEYMAP_INDEX(1, 3)] = KEY_4,
+	[KEYMAP_INDEX(1, 4)] = KEY_CLEAR,
 
-	[KEYMAP_INDEX(2, 0)] = KEY_VOLUMEUP,
-	[KEYMAP_INDEX(2, 1)] = KEY_HOME,	  /* FA   */
-	[KEYMAP_INDEX(2, 2)] = KEY_F8,		/* QCHT */
-	[KEYMAP_INDEX(2, 3)] = KEY_F6,		/* R+   */
-	[KEYMAP_INDEX(2, 4)] = KEY_F7,		/* R-   */
+	[KEYMAP_INDEX(2, 0)] = KEY_6,
+	[KEYMAP_INDEX(2, 1)] = KEY_5,
+	[KEYMAP_INDEX(2, 2)] = KEY_8,
+	[KEYMAP_INDEX(2, 3)] = KEY_3,
+	[KEYMAP_INDEX(2, 4)] = KEY_STAR,
 
-	[KEYMAP_INDEX(3, 0)] = KEY_UP,
-	[KEYMAP_INDEX(3, 1)] = KEY_CLEAR,
-	[KEYMAP_INDEX(3, 2)] = KEY_4,
-	[KEYMAP_INDEX(3, 3)] = KEY_MUTE,	  /* SPKR */
-	[KEYMAP_INDEX(3, 4)] = KEY_2,
+	[KEYMAP_INDEX(3, 0)] = KEY_9,
+	[KEYMAP_INDEX(3, 1)] = KEY_SOFT1,
+	[KEYMAP_INDEX(3, 2)] = KEY_0,
+	[KEYMAP_INDEX(3, 3)] = KEY_2,
+	[KEYMAP_INDEX(3, 4)] = KEY_SOFT2,
 
-	[KEYMAP_INDEX(4, 0)] = KEY_SOFT2,		   /* SOFT2 */
-	[KEYMAP_INDEX(4, 1)] = KEY_CENTER,	/* KEY_CENTER */
-	[KEYMAP_INDEX(4, 2)] = KEY_DOWN,
-	[KEYMAP_INDEX(4, 3)] = KEY_BACK,	  /* FB */
-	[KEYMAP_INDEX(4, 4)] = KEY_8,
-
-	[KEYMAP_INDEX(5, 0)] = KEY_VOLUMEDOWN,
-	[KEYMAP_INDEX(5, 1)] = KEY_STAR,	  /* KEY_STAR */
-	[KEYMAP_INDEX(5, 2)] = KEY_MAIL,	  /* MESG */
-	[KEYMAP_INDEX(5, 3)] = KEY_3,
-	[KEYMAP_INDEX(5, 4)] = KEY_7,
-
-#if SCAN_FUNCTION_KEYS
-	[KEYMAP_INDEX(6, 0)] = KEY_F5,
-	[KEYMAP_INDEX(6, 1)] = KEY_F4,
-	[KEYMAP_INDEX(6, 2)] = KEY_F3,
-	[KEYMAP_INDEX(6, 3)] = KEY_F2,
-	[KEYMAP_INDEX(6, 4)] = KEY_F1
-#endif
+	[KEYMAP_INDEX(4, 0)] = KEY_MENU,		/*R-*/
+	[KEYMAP_INDEX(4, 1)] = KEY_HOME,		/*L+*/
+	[KEYMAP_INDEX(4, 2)] = KEY_BACK,		/*L-*/
+	[KEYMAP_INDEX(4, 3)] = KEY_VOLUMEUP,
+	[KEYMAP_INDEX(4, 4)] = KEY_VOLUMEDOWN,
 };
 
 static struct gpio_keypad_info halibut_keypad_info = {
@@ -103,7 +83,7 @@
 	.ninputs	= ARRAY_SIZE(halibut_col_gpios),
 	.settle_time	= 5 /* msec */,
 	.poll_time	= 20 /* msec */,
-	.flags		= GPIOKPF_DRIVE_INACTIVE,
+	.flags		= (GPIOKPF_DRIVE_INACTIVE | GPIOKPF_ACTIVE_HIGH),
 };
 
 void keypad_init(void)
