diff options
author | Kamal Dasu <kdasu.kdev@gmail.com> | 2020-04-20 15:08:53 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2020-04-21 19:48:12 +0100 |
commit | 2f5f5302c569f773f58d7f31db2c9e8bbbacc6a7 (patch) | |
tree | ded846f9547fba0c98cc31c474ee1211faa4dc01 /drivers/spi/spi-bcm-qspi.c | |
parent | ab2b493d174e55867464fdd3212a141815807368 (diff) | |
download | lwn-2f5f5302c569f773f58d7f31db2c9e8bbbacc6a7.tar.gz lwn-2f5f5302c569f773f58d7f31db2c9e8bbbacc6a7.zip |
spi: bcm-qspi: MSPI_SPCR0_MSB MSTR bit exists only on legacy controllers
Set MASTER bit on the MSPI_SPCR0_MSB only for legacy MSPI and HIF_MSPI
controllers.
Fixes: fa236a7ef240 ("spi: bcm-qspi: Add Broadcom MSPI driver")
Signed-off-by: Kamal Dasu <kdasu.kdev@gmail.com>
Link: https://lore.kernel.org/r/20200420190853.45614-10-kdasu.kdev@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-bcm-qspi.c')
-rw-r--r-- | drivers/spi/spi-bcm-qspi.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/spi/spi-bcm-qspi.c b/drivers/spi/spi-bcm-qspi.c index 4b139717ff9e..23cad49e7405 100644 --- a/drivers/spi/spi-bcm-qspi.c +++ b/drivers/spi/spi-bcm-qspi.c @@ -576,11 +576,17 @@ static void bcm_qspi_hw_set_parms(struct bcm_qspi *qspi, spcr = clamp_val(spbr, bcm_qspi_spbr_min(qspi), QSPI_SPBR_MAX); bcm_qspi_write(qspi, MSPI, MSPI_SPCR0_LSB, spcr); - spcr = MSPI_MASTER_BIT; + if (!qspi->mspi_maj_rev) + /* legacy controller */ + spcr = MSPI_MASTER_BIT; + else + spcr = 0; + /* for 16 bit the data should be zero */ if (xp->bits_per_word != 16) spcr |= xp->bits_per_word << 2; spcr |= xp->mode & 3; + bcm_qspi_write(qspi, MSPI, MSPI_SPCR0_MSB, spcr); if (bcm_qspi_has_fastbr(qspi)) { |