Merge "msm_shared: Minor changes to nand driver."
diff --git a/platform/msm8960/gpio.c b/platform/msm8960/gpio.c
old mode 100644
new mode 100755
index 58a582b..eb5aead
--- a/platform/msm8960/gpio.c
+++ b/platform/msm8960/gpio.c
@@ -80,7 +80,8 @@
ASSERT(0);
}
}
- else if(board_platform_id() == APQ8064)
+ else if((board_platform_id() == APQ8064) ||
+ (board_platform_id() == APQ8064AB))
{
switch (id) {
@@ -214,6 +215,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 +242,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));
}
}
diff --git a/platform/msm_shared/smem.h b/platform/msm_shared/smem.h
old mode 100644
new mode 100755
index b43291a..1179739
--- a/platform/msm_shared/smem.h
+++ b/platform/msm_shared/smem.h
@@ -237,6 +237,10 @@
MSM8930AA = 142,
MSM8630AA = 143,
MSM8230AA = 144,
+ MDM9225 = 149,
+ MDM9225M = 150,
+ MDM9625M = 152,
+ APQ8064AB = 153, /* aka V2 PRIME */
};
enum platform {
diff --git a/target/msm8960/atags.c b/target/msm8960/atags.c
old mode 100644
new mode 100755
index 8142890..69141f0
--- a/target/msm8960/atags.c
+++ b/target/msm8960/atags.c
@@ -128,6 +128,7 @@
switch (platform_id) {
case APQ8064:
+ case APQ8064AB:
if(baseband == BASEBAND_MDM)
{
/* Use 8064 Fusion 3 memory map */
diff --git a/target/msm8960/init.c b/target/msm8960/init.c
old mode 100644
new mode 100755
index e1f67e1..0491a20
--- a/target/msm8960/init.c
+++ b/target/msm8960/init.c
@@ -124,8 +124,9 @@
{
msm8930_keypad_init();
}
- else if( (platform_id == APQ8064) ||
- (platform_id == MPQ8064))
+ else if((platform_id == APQ8064) ||
+ (platform_id == MPQ8064) ||
+ (platform_id == APQ8064AB))
{
apq8064_keypad_init();
}
@@ -383,7 +384,7 @@
default:
target_id = LINUX_MACHTYPE_8064_MPQ_CDP;
}
- } else if ((platform == APQ8064)) {
+ } else if ((platform == APQ8064) || (platform == APQ8064AB)) {
switch (platform_hw) {
case HW_PLATFORM_SURF:
target_id = LINUX_MACHTYPE_8064_CDP;
@@ -422,7 +423,7 @@
baseband = BASEBAND_SGLTE;
else if (platform == APQ8060)
baseband = BASEBAND_APQ;
- else if (platform == APQ8064)
+ else if ((platform == APQ8064) || (platform == APQ8064AB))
baseband = BASEBAND_APQ;
else if (platform == MPQ8064)
baseband = BASEBAND_APQ;
diff --git a/target/msm8960/keypad.c b/target/msm8960/keypad.c
index e331606..b84780b 100644
--- a/target/msm8960/keypad.c
+++ b/target/msm8960/keypad.c
@@ -65,14 +65,28 @@
[KEYMAP_INDEX(0, 1)] = KEY_VOLUMEDOWN, /* Volume key on the device/CDP */
};
-unsigned int msm8930_keys_gpiomap[] = {
+unsigned int msm8930_keys_pm8038_gpiomap[] = {
[KEYMAP_INDEX(0, 0)] = PM_GPIO(3), /* Volume key on the device/CDP */
[KEYMAP_INDEX(0, 1)] = PM_GPIO(8), /* Volume key on the device/CDP */
};
-struct qwerty_keypad_info msm8930_qwerty_keypad = {
+unsigned int msm8930_keys_pm8917_gpiomap[] = {
+ [KEYMAP_INDEX(0, 0)] = PM_GPIO(27), /* Volume key on the device/CDP */
+ [KEYMAP_INDEX(0, 1)] = PM_GPIO(28), /* Volume key on the device/CDP */
+};
+
+struct qwerty_keypad_info msm8930_pm8038_qwerty_keypad = {
.keymap = msm8930_qwerty_keymap,
- .gpiomap = msm8930_keys_gpiomap,
+ .gpiomap = msm8930_keys_pm8038_gpiomap,
+ .mapsize = ARRAY_SIZE(msm8930_qwerty_keymap),
+ .key_gpio_get = &pm8921_gpio_get,
+ .settle_time = 5 /* msec */ ,
+ .poll_time = 20 /* msec */ ,
+};
+
+struct qwerty_keypad_info msm8930_pm8917_qwerty_keypad = {
+ .keymap = msm8930_qwerty_keymap,
+ .gpiomap = msm8930_keys_pm8917_gpiomap,
.mapsize = ARRAY_SIZE(msm8930_qwerty_keymap),
.key_gpio_get = &pm8921_gpio_get,
.settle_time = 5 /* msec */ ,
@@ -120,8 +134,18 @@
void msm8930_keypad_init(void)
{
+ uint32_t pm_type = board_pmic_type();
+
msm8930_keypad_gpio_init();
- ssbi_gpio_keypad_init(&msm8930_qwerty_keypad);
+
+ if (pm_type == PMIC_IS_PM8917)
+ {
+ ssbi_gpio_keypad_init(&msm8930_pm8917_qwerty_keypad);
+ }
+ else
+ {
+ ssbi_gpio_keypad_init(&msm8930_pm8038_qwerty_keypad);
+ }
}
void apq8064_keypad_init(void)