1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-25 08:35:56 +02:00
openwrt-xburst/target/linux/xburst/patches-2.6.31/400-spi-gpio-3wire.patch

38 lines
1010 B
Diff
Raw Normal View History

--- a/drivers/spi/spi_gpio.c
+++ b/drivers/spi/spi_gpio.c
2009-10-08 15:42:39 +03:00
@@ -254,9 +254,11 @@ spi_gpio_request(struct spi_gpio_platfor
2009-09-03 12:59:10 +03:00
if (value)
goto done;
- value = spi_gpio_alloc(SPI_MISO_GPIO, label, true);
- if (value)
- goto free_mosi;
+ if (SPI_MISO_GPIO != SPI_MOSI_GPIO) {
+ value = spi_gpio_alloc(SPI_MISO_GPIO, label, true);
+ if (value)
+ goto free_mosi;
+ }
value = spi_gpio_alloc(SPI_SCK_GPIO, label, false);
if (value)
2009-10-08 15:42:39 +03:00
@@ -319,7 +321,8 @@ static int __devinit spi_gpio_probe(stru
2009-09-03 12:59:10 +03:00
if (status < 0) {
spi_master_put(spi_gpio->bitbang.master);
gpio_free:
- gpio_free(SPI_MISO_GPIO);
+ if (SPI_MISO_GPIO != SPI_MOSI_GPIO)
+ gpio_free(SPI_MISO_GPIO);
gpio_free(SPI_MOSI_GPIO);
gpio_free(SPI_SCK_GPIO);
spi_master_put(master);
2009-10-08 15:42:39 +03:00
@@ -343,7 +346,8 @@ static int __devexit spi_gpio_remove(str
2009-09-03 12:59:10 +03:00
platform_set_drvdata(pdev, NULL);
- gpio_free(SPI_MISO_GPIO);
+ if (SPI_MISO_GPIO != SPI_MOSI_GPIO)
+ gpio_free(SPI_MISO_GPIO);
gpio_free(SPI_MOSI_GPIO);
gpio_free(SPI_SCK_GPIO);