ar71xx: spi-ath79: fix initial GPIO CS line setup
[openwrt.git] / target / linux / ar71xx / patches-3.10 / 206-spi-ath79-make-chipselect-logic-more-flexible.patch
index 993fcdd55705d74beaf873614456e41bfe6f4b14..b57dd5d5bab51bf3fe2c02f43f4cd07ed7dd2edc 100644 (file)
@@ -170,7 +170,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  struct ath79_spi {
        struct spi_bitbang      bitbang;
        u32                     ioc_base;
-@@ -69,6 +71,7 @@ static void ath79_spi_chipselect(struct 
+@@ -69,6 +71,7 @@ static void ath79_spi_chipselect(struct
  {
        struct ath79_spi *sp = ath79_spidev_to_sp(spi);
        int cs_high = (spi->mode & SPI_CS_HIGH) ? is_active : !is_active;
@@ -178,7 +178,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  
        if (is_active) {
                /* set initial clock polarity */
-@@ -80,20 +83,24 @@ static void ath79_spi_chipselect(struct 
+@@ -80,20 +83,24 @@ static void ath79_spi_chipselect(struct
                ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, sp->ioc_base);
        }
  
@@ -236,9 +236,9 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 +      case ATH79_SPI_CS_TYPE_GPIO:
                flags = GPIOF_DIR_OUT;
                if (spi->mode & SPI_CS_HIGH)
-                       flags |= GPIOF_INIT_HIGH;
-               else
                        flags |= GPIOF_INIT_LOW;
+               else
+                       flags |= GPIOF_INIT_HIGH;
  
 -              status = gpio_request_one(cdata->gpio, flags,
 +              status = gpio_request_one(cdata->cs_line, flags,