diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c
index 28bb65a5613fd282dc735b5c516d9d2dabc302cd..1662983943de3c79354367f530ce7dd8cae4d77d 100644
--- a/drivers/bus/imx-weim.c
+++ b/drivers/bus/imx-weim.c
@@ -15,6 +15,8 @@
 #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
 #include <linux/regmap.h>
 
+#define WCR_REG_OFFSET   0x90
+
 struct imx_weim_devtype {
 	unsigned int	cs_count;
 	unsigned int	cs_regs_count;
@@ -131,7 +133,7 @@ static int weim_timing_setup(struct device *dev,
 			     const struct imx_weim_devtype *devtype,
 			     struct cs_timing_state *ts)
 {
-	u32 cs_idx, value[MAX_CS_REGS_COUNT];
+	u32 cs_idx, value[MAX_CS_REGS_COUNT], wcr;
 	int i, ret;
 	int reg_idx, num_regs;
 	struct cs_timing *cst;
@@ -184,6 +186,12 @@ static int weim_timing_setup(struct device *dev,
 		}
 	}
 
+	ret = of_property_read_u32 (np, "fsl,weim-wcr", &wcr);
+	if ( ret )
+		return ret;
+
+	writel(wcr, base + WCR_REG_OFFSET);
+
 	return 0;
 }