Merge "mdm9x25: update shared IMEM for V2 H/W"
diff --git a/dev/pmic/pm8x41/include/pm8x41.h b/dev/pmic/pm8x41/include/pm8x41.h
index c199011..eada6cc 100644
--- a/dev/pmic/pm8x41/include/pm8x41.h
+++ b/dev/pmic/pm8x41/include/pm8x41.h
@@ -61,6 +61,8 @@
#define PON_PSHOLD_WARM_RESET 0x1
+#define PMIC_VERSION_V2 1
+
struct pm8x41_gpio {
int direction;
int output_buffer;
@@ -82,6 +84,7 @@
void pm8x41_reset_configure(uint8_t);
int pm8x41_ldo_set_voltage(const char *, uint32_t);
int pm8x41_ldo_control(const char *, uint8_t);
+uint8_t pm8x41_get_pmic_rev();
struct pm8x41_ldo {
const char *name;
diff --git a/dev/pmic/pm8x41/include/pm8x41_hw.h b/dev/pmic/pm8x41/include/pm8x41_hw.h
index 470e02b..86cfee5 100644
--- a/dev/pmic/pm8x41/include/pm8x41_hw.h
+++ b/dev/pmic/pm8x41/include/pm8x41_hw.h
@@ -35,6 +35,7 @@
/* SMBB bit values */
#define BOOT_DONE_BIT 7
+#define REVID_REVISION4 0x103
/* GPIO Registers */
#define GPIO_PERIPHERAL_BASE 0xC000
diff --git a/dev/pmic/pm8x41/pm8x41.c b/dev/pmic/pm8x41/pm8x41.c
index f28dd91..62014ad 100644
--- a/dev/pmic/pm8x41/pm8x41.c
+++ b/dev/pmic/pm8x41/pm8x41.c
@@ -344,3 +344,9 @@
return 0;
}
+
+uint8_t pm8x41_get_pmic_rev()
+{
+ return REG_READ(REVID_REVISION4);
+}
+
diff --git a/platform/msm_shared/smem.h b/platform/msm_shared/smem.h
index 846ebf5..2920ba9 100755
--- a/platform/msm_shared/smem.h
+++ b/platform/msm_shared/smem.h
@@ -266,6 +266,7 @@
HW_PLATFORM_RUMI = 15,
HW_PLATFORM_VIRTIO = 16,
HW_PLATFORM_BTS = 19,
+ HW_PLATFORM_DMA = 22,
HW_PLATFORM_32BITS = 0x7FFFFFFF,
};
diff --git a/target/copper/init.c b/target/copper/init.c
index 79f7b81..e60fbb7 100644
--- a/target/copper/init.c
+++ b/target/copper/init.c
@@ -98,7 +98,10 @@
uint32_t target_volume_down()
{
/* Volume down button is tied in with RESIN on MSM8974. */
- return pm8x41_resin_bark_workaround_status();
+ if (pm8x41_get_pmic_rev() == PMIC_VERSION_V2)
+ return pm8x41_resin_bark_workaround_status();
+ else
+ return pm8x41_resin_status();
}
static void target_keystatus()
diff --git a/target/msm8960/include/target/board.h b/target/msm8960/include/target/board.h
index 1e2606a..9a6f150 100644
--- a/target/msm8960/include/target/board.h
+++ b/target/msm8960/include/target/board.h
@@ -60,5 +60,6 @@
#define LINUX_MACHTYPE_8064_MPQ_HRD 3994
#define LINUX_MACHTYPE_8064_MPQ_DTV 3995
#define LINUX_MACHTYPE_8064_EP 3996
+#define LINUX_MACHTYPE_8064_MPQ_DMA 4511
#endif
diff --git a/target/msm8960/init.c b/target/msm8960/init.c
index 912983b..cf57250 100755
--- a/target/msm8960/init.c
+++ b/target/msm8960/init.c
@@ -308,6 +308,7 @@
case LINUX_MACHTYPE_8064_MPQ_CDP:
case LINUX_MACHTYPE_8064_MPQ_HRD:
case LINUX_MACHTYPE_8064_MPQ_DTV:
+ case LINUX_MACHTYPE_8064_MPQ_DMA:
uart_dm_init(5, 0x1A200000, 0x1A240000);
break;
@@ -397,6 +398,9 @@
case HW_PLATFORM_DTV:
target_id = LINUX_MACHTYPE_8064_MPQ_DTV;
break;
+ case HW_PLATFORM_DMA:
+ target_id = LINUX_MACHTYPE_8064_MPQ_DMA;
+ break;
default:
target_id = LINUX_MACHTYPE_8064_MPQ_CDP;
}