diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-6.1/950-0388-spi-gpio-Add-sck-idle-input-property.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-6.1/950-0388-spi-gpio-Add-sck-idle-input-property.patch | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/target/linux/bcm27xx/patches-6.1/950-0388-spi-gpio-Add-sck-idle-input-property.patch b/target/linux/bcm27xx/patches-6.1/950-0388-spi-gpio-Add-sck-idle-input-property.patch deleted file mode 100644 index 461fd7f9e8..0000000000 --- a/target/linux/bcm27xx/patches-6.1/950-0388-spi-gpio-Add-sck-idle-input-property.patch +++ /dev/null @@ -1,57 +0,0 @@ -From d9061fef9a7109c32d7e4eb1d42e387b9781e92a Mon Sep 17 00:00:00 2001 -From: Phil Elwell <phil@raspberrypi.com> -Date: Wed, 12 Jan 2022 08:23:28 +0000 -Subject: [PATCH] spi: gpio: Add sck-idle-input property - -The sck-idle-input property indicates that the spi-gpio driver should -return the SCK line to an input when the chip select signals are -inactive. - -Signed-off-by: Phil Elwell <phil@raspberrypi.com> ---- - drivers/spi/spi-gpio.c | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - ---- a/drivers/spi/spi-gpio.c -+++ b/drivers/spi/spi-gpio.c -@@ -35,6 +35,7 @@ struct spi_gpio { - struct gpio_desc *sck; - struct gpio_desc *miso; - struct gpio_desc *mosi; -+ bool sck_idle_input; - struct gpio_desc **cs_gpios; - }; - -@@ -225,8 +226,12 @@ static void spi_gpio_chipselect(struct s - struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); - - /* set initial clock line level */ -- if (is_active) -- gpiod_set_value_cansleep(spi_gpio->sck, spi->mode & SPI_CPOL); -+ if (is_active) { -+ if (spi_gpio->sck_idle_input) -+ gpiod_direction_output(spi_gpio->sck, spi->mode & SPI_CPOL); -+ else -+ gpiod_set_value_cansleep(spi_gpio->sck, spi->mode & SPI_CPOL); -+ } - - /* Drive chip select line, if we have one */ - if (spi_gpio->cs_gpios) { -@@ -235,6 +240,9 @@ static void spi_gpio_chipselect(struct s - /* SPI chip selects are normally active-low */ - gpiod_set_value_cansleep(cs, (spi->mode & SPI_CS_HIGH) ? is_active : !is_active); - } -+ -+ if (spi_gpio->sck_idle_input && !is_active) -+ gpiod_direction_input(spi_gpio->sck); - } - - static int spi_gpio_setup(struct spi_device *spi) -@@ -323,6 +331,7 @@ static int spi_gpio_request(struct devic - if (IS_ERR(spi_gpio->miso)) - return PTR_ERR(spi_gpio->miso); - -+ spi_gpio->sck_idle_input = device_property_read_bool(dev, "sck-idle-input"); - spi_gpio->sck = devm_gpiod_get(dev, "sck", GPIOD_OUT_LOW); - return PTR_ERR_OR_ZERO(spi_gpio->sck); - } |