You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.1 KiB
33 lines
1.1 KiB
6 years ago
|
From 02554ec274e6b76eb827f384c38f9c67fe93cb8a Mon Sep 17 00:00:00 2001
|
||
|
From: Phil Elwell <phil@raspberrypi.org>
|
||
|
Date: Tue, 3 Jul 2018 14:23:47 +0100
|
||
|
Subject: [PATCH 358/454] spi: Make GPIO CSs honour the SPI_NO_CS flag
|
||
|
|
||
|
The SPI configuration state includes an SPI_NO_CS flag that disables
|
||
|
all CS line manipulation, for applications that want to manage their
|
||
|
own chip selects. However, this flag is ignored by the GPIO CS code
|
||
|
in the SPI framework.
|
||
|
|
||
|
Correct this omission with a trivial patch.
|
||
|
|
||
|
See: https://github.com/raspberrypi/linux/issues/2169
|
||
|
|
||
|
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||
|
---
|
||
|
drivers/spi/spi.c | 4 +++-
|
||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||
|
|
||
|
--- a/drivers/spi/spi.c
|
||
|
+++ b/drivers/spi/spi.c
|
||
|
@@ -729,7 +729,9 @@ static void spi_set_cs(struct spi_device
|
||
|
enable = !enable;
|
||
|
|
||
|
if (gpio_is_valid(spi->cs_gpio)) {
|
||
|
- gpio_set_value_cansleep(spi->cs_gpio, !enable);
|
||
|
+ /* Honour the SPI_NO_CS flag */
|
||
|
+ if (!(spi->mode & SPI_NO_CS))
|
||
|
+ gpio_set_value(spi->cs_gpio, !enable);
|
||
|
/* Some SPI masters need both GPIO CS & slave_select */
|
||
|
if ((spi->controller->flags & SPI_MASTER_GPIO_SS) &&
|
||
|
spi->controller->set_cs)
|