summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-fsl-espi.c
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2016-11-13 14:37:41 +0100
committerMark Brown <broonie@kernel.org>2016-11-14 12:21:27 +0100
commit7cb55577232fa07a089e0e0353fb445403f34697 (patch)
tree8029cbabd807e6a4997b142cf9f94422c0fa225f /drivers/spi/spi-fsl-espi.c
parentspi: fsl-espi: remove usage of mpc8xxx_spi->irq (diff)
downloadlinux-7cb55577232fa07a089e0e0353fb445403f34697.tar.xz
linux-7cb55577232fa07a089e0e0353fb445403f34697.zip
spi: fsl-espi: migrate relevant parts of mpc8xxx_spi_probe and of_mpc8xxx_spi_probe
Very little of the library functions mpc8xxx_spi_probe and of_mpc8xxx_spi_probe is relevant for fsl-espi. Therefore migrate the relevant parts to fsl-espi (considering that get_brgfreq() always returns -1 on systems with ESPI) and remove use of these functions. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-fsl-espi.c')
-rw-r--r--drivers/spi/spi-fsl-espi.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c
index e378622f4a60..58314d775925 100644
--- a/drivers/spi/spi-fsl-espi.c
+++ b/drivers/spi/spi-fsl-espi.c
@@ -587,9 +587,9 @@ static int fsl_espi_probe(struct device *dev, struct resource *mem,
dev_set_drvdata(dev, master);
- mpc8xxx_spi_probe(dev, mem, irq);
-
- master->mode_bits |= SPI_RX_DUAL;
+ master->mode_bits = SPI_RX_DUAL | SPI_CPOL | SPI_CPHA | SPI_CS_HIGH |
+ SPI_LSB_FIRST | SPI_LOOP;
+ master->dev.of_node = dev->of_node;
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 16);
master->setup = fsl_espi_setup;
master->cleanup = fsl_espi_cleanup;
@@ -601,6 +601,16 @@ static int fsl_espi_probe(struct device *dev, struct resource *mem,
mpc8xxx_spi = spi_master_get_devdata(master);
spin_lock_init(&mpc8xxx_spi->lock);
+ mpc8xxx_spi->dev = dev;
+ mpc8xxx_spi->spibrg = fsl_get_sys_freq();
+ if (mpc8xxx_spi->spibrg == -1) {
+ dev_err(dev, "Can't get sys frequency!\n");
+ ret = -EINVAL;
+ goto err_probe;
+ }
+
+ init_completion(&mpc8xxx_spi->done);
+
mpc8xxx_spi->local_buf =
devm_kmalloc(dev, SPCOM_TRANLEN_MAX, GFP_KERNEL);
if (!mpc8xxx_spi->local_buf) {
@@ -713,10 +723,6 @@ static int of_fsl_espi_probe(struct platform_device *ofdev)
return -EINVAL;
}
- ret = of_mpc8xxx_spi_probe(ofdev);
- if (ret)
- return ret;
-
num_cs = of_fsl_espi_get_chipselects(dev);
if (!num_cs)
return -EINVAL;