[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180620073442.20913-7-esben.haabendal@gmail.com>
Date: Wed, 20 Jun 2018 09:34:36 +0200
From: Esben Haabendal <esben.haabendal@...il.com>
To: Mark Brown <broonie@...nel.org>, linux-spi@...r.kernel.org
Cc: Kurt Kanzenbach <kurt@...utronix.de>,
Angelo Dureghello <angelo@...am.it>,
Nikita Yushchenko <nikita.yoush@...entembedded.com>,
Sanchayan Maity <maitysanchayan@...il.com>,
Yuan Yao <yao.yuan@....com>, linux-kernel@...r.kernel.org,
Esben Haabendal <eha@...f.com>,
Martin Hundebøll <martin@...nix.com>
Subject: [PATCH 06/12] spi: spi-fsl-dspi: Fixup regmap configuration
From: Esben Haabendal <eha@...f.com>
Mark volatile registers to avoid caching bugs.
Note: SPI_MCR is marked volatile because of CLR_TXF and CLR_RXF bits.
Signed-off-by: Esben Haabendal <eha@...f.com>
Cc: Martin Hundebøll <martin@...nix.com>
---
drivers/spi/spi-fsl-dspi.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c
index df07dd4722fb..5c5905b6509f 100644
--- a/drivers/spi/spi-fsl-dspi.c
+++ b/drivers/spi/spi-fsl-dspi.c
@@ -862,11 +862,23 @@ static int dspi_resume(struct device *dev)
static SIMPLE_DEV_PM_OPS(dspi_pm, dspi_suspend, dspi_resume);
+static const struct regmap_range dspi_volatile_ranges[] = {
+ regmap_reg_range(SPI_MCR, SPI_TCR),
+ regmap_reg_range(SPI_SR, SPI_SR),
+ regmap_reg_range(SPI_PUSHR, SPI_RXFR3),
+};
+
+static const struct regmap_access_table dspi_volatile_table = {
+ .yes_ranges = dspi_volatile_ranges,
+ .n_yes_ranges = ARRAY_SIZE(dspi_volatile_ranges),
+};
+
static const struct regmap_config dspi_regmap_config = {
.reg_bits = 32,
.val_bits = 32,
.reg_stride = 4,
.max_register = 0x88,
+ .volatile_table = &dspi_volatile_table,
};
static void dspi_init(struct fsl_dspi *dspi)
--
2.17.1
Powered by blists - more mailing lists