summaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/mmdc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-imx/mmdc.c')
-rw-r--r--arch/arm/mach-imx/mmdc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c
index 78262899a590..e73a6d56758d 100644
--- a/arch/arm/mach-imx/mmdc.c
+++ b/arch/arm/mach-imx/mmdc.c
@@ -31,6 +31,8 @@
#define MMDC_MDMISC 0x18
#define BM_MMDC_MDMISC_DDR_TYPE 0x18
#define BP_MMDC_MDMISC_DDR_TYPE 0x3
+#define BM_MMDC_MDMISC_LPDDR2_2CH 0x4
+#define BP_MMDC_MDMISC_LPDDR2_2CH 0x2
#define TOTAL_CYCLES 0x0
#define BUSY_CYCLES 0x1
@@ -64,6 +66,7 @@
#define to_mmdc_pmu(p) container_of(p, struct mmdc_pmu, pmu)
static int ddr_type;
+static int lpddr2_2ch_mode;
struct fsl_mmdc_devtype_data {
unsigned int flags;
@@ -557,6 +560,9 @@ static int imx_mmdc_probe(struct platform_device *pdev)
val = readl_relaxed(reg);
ddr_type = (val & BM_MMDC_MDMISC_DDR_TYPE) >>
BP_MMDC_MDMISC_DDR_TYPE;
+ /* Get lpddr2 2ch-mode */
+ lpddr2_2ch_mode = (val & BM_MMDC_MDMISC_LPDDR2_2CH) >>
+ BP_MMDC_MDMISC_LPDDR2_2CH;
reg = mmdc_base + MMDC_MAPSR;
@@ -583,6 +589,11 @@ int imx_mmdc_get_ddr_type(void)
return ddr_type;
}
+int imx_mmdc_get_lpddr2_2ch_mode(void)
+{
+ return lpddr2_2ch_mode;
+}
+
static struct platform_driver imx_mmdc_driver = {
.driver = {
.name = "imx-mmdc",