|
@@ -470,7 +470,16 @@ static void spi_sirfsoc_chipselect(struct spi_device *spi, int value)
|
|
|
writel(regval, sspi->base + SIRFSOC_SPI_CTRL);
|
|
|
} else {
|
|
|
int gpio = sspi->chipselect[spi->chip_select];
|
|
|
- gpio_direction_output(gpio, spi->mode & SPI_CS_HIGH ? 0 : 1);
|
|
|
+ switch (value) {
|
|
|
+ case BITBANG_CS_ACTIVE:
|
|
|
+ gpio_direction_output(gpio,
|
|
|
+ spi->mode & SPI_CS_HIGH ? 1 : 0);
|
|
|
+ break;
|
|
|
+ case BITBANG_CS_INACTIVE:
|
|
|
+ gpio_direction_output(gpio,
|
|
|
+ spi->mode & SPI_CS_HIGH ? 0 : 1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|