spi: pxa2xx: Don't touch CS pin until we have a transfer pending
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 27 Jul 2017 15:49:33 +0000 (18:49 +0300)
committerMark Brown <broonie@kernel.org>
Fri, 28 Jul 2017 12:33:18 +0000 (13:33 +0100)
GPIO descriptors, when being requested, may configure pin at the same
time. In case of SPI chip select we shouldn't do any assumptions of the
state of pin since we don't know yet what chip is connected there and if
it uses high or low active state. So, leave the state of pin as is until
transfer will start.

Fixes: 99f499cd6504 ("spi: pxa2xx: Add support for GPIO descriptor chip selects")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mika Westeberg <mika.westerberg@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-pxa2xx.c

index 38d0536828927c0a05192e1765eb2915164685f0..6e5af88b7c6ff7238abf8aba8ba4d128cbc4d113 100644 (file)
@@ -1769,8 +1769,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
                for (i = 0; i < master->num_chipselect; i++) {
                        struct gpio_desc *gpiod;
 
-                       gpiod = devm_gpiod_get_index(dev, "cs", i,
-                                                    GPIOD_OUT_HIGH);
+                       gpiod = devm_gpiod_get_index(dev, "cs", i, GPIOD_ASIS);
                        if (IS_ERR(gpiod)) {
                                /* Means use native chip select */
                                if (PTR_ERR(gpiod) == -ENOENT)