projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
spi: dspi: clear SPI_SR before enable interrupt
[cascardo/linux.git]
/
drivers
/
spi
/
spi-fsl-dspi.c
diff --git
a/drivers/spi/spi-fsl-dspi.c
b/drivers/spi/spi-fsl-dspi.c
index
35c0dd9
..
a67b0ff
100644
(file)
--- a/
drivers/spi/spi-fsl-dspi.c
+++ b/
drivers/spi/spi-fsl-dspi.c
@@
-70,6
+70,7
@@
#define SPI_SR 0x2c
#define SPI_SR_EOQF 0x10000000
#define SPI_SR_TCFQF 0x80000000
#define SPI_SR 0x2c
#define SPI_SR_EOQF 0x10000000
#define SPI_SR_TCFQF 0x80000000
+#define SPI_SR_CLEAR 0xdaad0000
#define SPI_RSER 0x30
#define SPI_RSER_EOQFE 0x10000000
#define SPI_RSER 0x30
#define SPI_RSER_EOQFE 0x10000000
@@
-646,6
+647,11
@@
static const struct regmap_config dspi_regmap_config = {
.max_register = 0x88,
};
.max_register = 0x88,
};
+static void dspi_init(struct fsl_dspi *dspi)
+{
+ regmap_write(dspi->regmap, SPI_SR, SPI_SR_CLEAR);
+}
+
static int dspi_probe(struct platform_device *pdev)
{
struct device_node *np = pdev->dev.of_node;
static int dspi_probe(struct platform_device *pdev)
{
struct device_node *np = pdev->dev.of_node;
@@
-709,6
+715,7
@@
static int dspi_probe(struct platform_device *pdev)
return PTR_ERR(dspi->regmap);
}
return PTR_ERR(dspi->regmap);
}
+ dspi_init(dspi);
dspi->irq = platform_get_irq(pdev, 0);
if (dspi->irq < 0) {
dev_err(&pdev->dev, "can't get platform irq\n");
dspi->irq = platform_get_irq(pdev, 0);
if (dspi->irq < 0) {
dev_err(&pdev->dev, "can't get platform irq\n");