diff options
-rw-r--r-- | arch/arm/mach-imx/common.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/mmdc.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-imx/mxc.h | 3 |
3 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index 224273315fda..154cd0b286e8 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h @@ -169,8 +169,10 @@ void imx6_enet_mac_init(const char *enet_compat, const char *ocotp_compat); int imx7ulp_set_lpm(enum imx7ulp_cpu_pwr_mode mode); #ifdef CONFIG_HAVE_IMX_MMDC int imx_mmdc_get_ddr_type(void); +int imx_mmdc_get_lpddr2_2ch_mode(void); #else static inline int imx_mmdc_get_ddr_type(void) { return 0; } +static inline int imx_mmdc_get_lpddr2_2ch_mode(void) { return 0; } #endif #ifdef CONFIG_HAVE_IMX_DDRC int imx_ddrc_get_ddr_type(void); 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", diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h index 5dcda87d9308..f162e82d3ca1 100644 --- a/arch/arm/mach-imx/mxc.h +++ b/arch/arm/mach-imx/mxc.h @@ -49,6 +49,9 @@ #define IMX_DDR_TYPE_LPDDR3 2 #define IMX_MMDC_DDR_TYPE_LPDDR3 3 +#define IMX_LPDDR2_1CH_MODE 0 +#define IMX_LPDDR2_2CH_MODE 1 + #ifndef __ASSEMBLY__ extern unsigned int __mxc_cpu_type; |