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));
}
}