diff options
Diffstat (limited to 'arch/arm/mach-imx/mmdc.c')
-rw-r--r-- | arch/arm/mach-imx/mmdc.c | 11 |
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", |