diff options
Diffstat (limited to 'target/linux/generic-2.6/patches-2.6.29/920-02-spi-gpio-without-cs.patch')
-rw-r--r-- | target/linux/generic-2.6/patches-2.6.29/920-02-spi-gpio-without-cs.patch | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/target/linux/generic-2.6/patches-2.6.29/920-02-spi-gpio-without-cs.patch b/target/linux/generic-2.6/patches-2.6.29/920-02-spi-gpio-without-cs.patch deleted file mode 100644 index 8b2198ef1..000000000 --- a/target/linux/generic-2.6/patches-2.6.29/920-02-spi-gpio-without-cs.patch +++ /dev/null @@ -1,73 +0,0 @@ -Optionally omit the CS signal, if there's only one device on the bus. - ---mb - - - ---- a/drivers/spi/spi_gpio.c -+++ b/drivers/spi/spi_gpio.c -@@ -178,8 +178,10 @@ static void spi_gpio_chipselect(struct s - if (is_active) - setsck(spi, spi->mode & SPI_CPOL); - -- /* SPI is normally active-low */ -- gpio_set_value(cs, (spi->mode & SPI_CS_HIGH) ? is_active : !is_active); -+ if (cs != SPI_GPIO_NO_CHIPSELECT) { -+ /* SPI is normally active-low */ -+ gpio_set_value(cs, (spi->mode & SPI_CS_HIGH) ? is_active : !is_active); -+ } - } - - static int spi_gpio_setup(struct spi_device *spi) -@@ -191,15 +193,17 @@ static int spi_gpio_setup(struct spi_dev - return -EINVAL; - - if (!spi->controller_state) { -- status = gpio_request(cs, spi->dev.bus_id); -- if (status) -- return status; -- status = gpio_direction_output(cs, spi->mode & SPI_CS_HIGH); -+ if (cs != SPI_GPIO_NO_CHIPSELECT) { -+ status = gpio_request(cs, spi->dev.bus_id); -+ if (status) -+ return status; -+ status = gpio_direction_output(cs, spi->mode & SPI_CS_HIGH); -+ } - } - if (!status) - status = spi_bitbang_setup(spi); - if (status) { -- if (!spi->controller_state) -+ if (!spi->controller_state && cs != SPI_GPIO_NO_CHIPSELECT) - gpio_free(cs); - } - return status; -@@ -209,7 +213,8 @@ static void spi_gpio_cleanup(struct spi_ - { - unsigned long cs = (unsigned long) spi->controller_data; - -- gpio_free(cs); -+ if (cs != SPI_GPIO_NO_CHIPSELECT) -+ gpio_free(cs); - spi_bitbang_cleanup(spi); - } - ---- a/include/linux/spi/spi_gpio.h -+++ b/include/linux/spi/spi_gpio.h -@@ -25,10 +25,16 @@ - * ... - * }; - * -+ * If chipselect is not used (there's only one device on the bus), assign -+ * SPI_GPIO_NO_CHIPSELECT to the controller_data: -+ * .controller_data = (void *) SPI_GPIO_NO_CHIPSELECT; -+ * - * If the bitbanged bus is later switched to a "native" controller, - * that platform_device and controller_data should be removed. - */ - -+#define SPI_GPIO_NO_CHIPSELECT ((unsigned long)-1l) -+ - /** - * struct spi_gpio_platform_data - parameter for bitbanged SPI master - * @sck: number of the GPIO used for clock output |