msm8960: Use new pmic type info to determine the type of pmic
Change-Id: I33504f737380d494faa2102c1c1f34f2f87a5104
diff --git a/platform/msm8960/gpio.c b/platform/msm8960/gpio.c
index 07d05a0..57d2591 100755
--- a/platform/msm8960/gpio.c
+++ b/platform/msm8960/gpio.c
@@ -253,11 +253,8 @@
int i = 0;
int num = 0;
struct pm8xxx_gpio_init *gpio_array;
- uint32_t pmic_type;
- pmic_type = board_pmic_type();
-
- if (pmic_type == PMIC_IS_PM8917)
+ if (platform_pmic_type(PMIC_IS_PM8917))
{
num = ARRAY_SIZE(pm8917_keypad_gpios);
gpio_array = pm8917_keypad_gpios;
@@ -280,11 +277,8 @@
int i = 0;
int num = 0;
struct pm8xxx_gpio_init *gpio_array;
- uint32_t pmic_type;
- pmic_type = board_pmic_type();
-
- if (pmic_type == PMIC_IS_PM8917)
+ if (platform_pmic_type(PMIC_IS_PM8917))
{
num = ARRAY_SIZE(pm8917_keypad_gpios_apq);
gpio_array = pm8917_keypad_gpios_apq;
diff --git a/platform/msm8960/platform.c b/platform/msm8960/platform.c
index ed0be2c..158b483 100644
--- a/platform/msm8960/platform.c
+++ b/platform/msm8960/platform.c
@@ -146,3 +146,23 @@
{
return ticks_per_sec;
}
+
+/* Return true if the pmic type matches */
+uint8_t platform_pmic_type(uint32_t pmic_type)
+{
+ uint8_t ret = 0;
+ uint8_t i = 0;
+ uint8_t num_ent = 0;
+ struct board_pmic_data pmic_info[SMEM_V7_SMEM_MAX_PMIC_DEVICES];
+
+ num_ent = board_pmic_info(&pmic_info, SMEM_V7_SMEM_MAX_PMIC_DEVICES);
+
+ for(i = 0; i < num_ent; i++) {
+ if (pmic_info[i].pmic_type == pmic_type) {
+ ret = 1;
+ break;
+ }
+ }
+
+ return ret;
+}
diff --git a/target/msm8960/keypad.c b/target/msm8960/keypad.c
index 82e049c..1639f19 100644
--- a/target/msm8960/keypad.c
+++ b/target/msm8960/keypad.c
@@ -134,11 +134,9 @@
void msm8930_keypad_init(void)
{
- uint32_t pm_type = board_pmic_type();
-
msm8930_keypad_gpio_init();
- if (pm_type == PMIC_IS_PM8917)
+ if (platform_pmic_type(PMIC_IS_PM8917))
{
ssbi_gpio_keypad_init(&msm8930_pm8917_qwerty_keypad);
}
@@ -150,11 +148,9 @@
void apq8064_keypad_init(void)
{
- uint32_t pm_type = board_pmic_type();
-
apq8064_keypad_gpio_init();
- if (pm_type == PMIC_IS_PM8917)
+ if (platform_pmic_type(PMIC_IS_PM8917))
ssbi_gpio_keypad_init(&apq8064_pm8917_qwerty_keypad);
else
ssbi_gpio_keypad_init(&apq8064_pm8921_qwerty_keypad);