lkml.org 
[lkml]   [2019]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 148/267] spi: atmel: Fix CS high support
    Date
    From: Gregory CLEMENT <gregory.clement@bootlin.com>

    commit 7cbb16b2122c09f2ae393a1542fed628505b9da6 upstream.

    Until a few years ago, this driver was only used with CS GPIO. The
    only exception is CS0 on AT91RM9200 which has to use internal CS. A
    limitation of the internal CS is that they don't support CS High.

    So by using the CS GPIO the CS high configuration was available except
    for the particular case CS0 on RM9200.

    When the support for the internal chip-select was added, the check of
    the CS high support was not updated. Due to this the driver accepts
    this configuration for all the SPI controller v2 (used by all SoCs
    excepting the AT91RM9200) whereas the hardware doesn't support it for
    infernal CS.

    This patch fixes the test to match the hardware capabilities.

    Fixes: 4820303480a1 ("spi: atmel: add support for the internal chip-select of the spi controller")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Link: https://lore.kernel.org/r/20191017141846.7523-3-gregory.clement@bootlin.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/spi/spi-atmel.c | 6 ++----
    1 file changed, 2 insertions(+), 4 deletions(-)

    --- a/drivers/spi/spi-atmel.c
    +++ b/drivers/spi/spi-atmel.c
    @@ -1150,10 +1150,8 @@ static int atmel_spi_setup(struct spi_de
    as = spi_master_get_devdata(spi->master);

    /* see notes above re chipselect */
    - if (!atmel_spi_is_v2(as)
    - && spi->chip_select == 0
    - && (spi->mode & SPI_CS_HIGH)) {
    - dev_dbg(&spi->dev, "setup: can't be active-high\n");
    + if (!as->use_cs_gpios && (spi->mode & SPI_CS_HIGH)) {
    + dev_warn(&spi->dev, "setup: non GPIO CS can't be active-high\n");
    return -EINVAL;
    }


    \
     
     \ /
      Last update: 2019-12-16 18:58    [W:3.636 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site