From 396f7f915fc8d69b06005b44d9c39ad9d9649708 Mon Sep 17 00:00:00 2001 From: Davide Cardillo <davide.cardillo@seco.com> Date: Sun, 31 Oct 2021 16:54:15 +0100 Subject: [PATCH] [i.MX6][drivers/bus/imx-weim.c] Add WCR property of WEIM BUS The original driver does not manage WCR, one of the parameter of the WEIM bus. Now the WCR can be set via device-tree. --- drivers/bus/imx-weim.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c index 28bb65a5613fd..1662983943de3 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; } -- GitLab