msm8930: Add support for pm8917

Change-Id: I4bd9b02c2928a8fa0e8c287a3bd94297963ea524
diff --git a/platform/msm8960/gpio.c b/platform/msm8960/gpio.c
index 58a582b..3f85dad 100644
--- a/platform/msm8960/gpio.c
+++ b/platform/msm8960/gpio.c
@@ -214,6 +214,14 @@
 	PM8XXX_GPIO_OUTPUT(PM_GPIO(9), 0),
 };
 
+/* pm8917 GPIO configuration for MSM8930 keypad */
+static struct pm8xxx_gpio_init pm8917_keypad_gpios[] = {
+	/* keys GPIOs */
+	PM8XXX_GPIO_INPUT(PM_GPIO(27), PM_GPIO_PULL_UP_30),
+	PM8XXX_GPIO_INPUT(PM_GPIO(28), PM_GPIO_PULL_UP_30),
+	PM8XXX_GPIO_INPUT(PM_GPIO(36), PM_GPIO_PULL_UP_30),
+	PM8XXX_GPIO_INPUT(PM_GPIO(37), PM_GPIO_PULL_UP_30),
+};
 
 void msm8960_keypad_gpio_init()
 {
@@ -233,13 +241,26 @@
 {
 	int i = 0;
 	int num = 0;
+	struct pm8xxx_gpio_init *gpio_array;
+	uint32_t pmic_type;
 
-	num = ARRAY_SIZE(pm8038_keypad_gpios);
+	pmic_type = board_pmic_type();
+
+	if (pmic_type == PMIC_IS_PM8917)
+	{
+		num = ARRAY_SIZE(pm8917_keypad_gpios);
+		gpio_array = pm8917_keypad_gpios;
+	}
+	else
+	{
+		num = ARRAY_SIZE(pm8038_keypad_gpios);
+		gpio_array = pm8038_keypad_gpios;
+	}
 
 	for(i=0; i < num; i++)
 	{
-		pm8921_gpio_config(pm8038_keypad_gpios[i].gpio,
-							&(pm8038_keypad_gpios[i].config));
+		pm8921_gpio_config(gpio_array[i].gpio,
+							&(gpio_array[i].config));
 	}
 }