Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6ee8a2f7 authored by Qipan Li's avatar Qipan Li Committed by Mark Brown
Browse files

spi: sirf: make GPIO chipselect function work well



orignal GPIO chipslect is not standard because it don't take care to the
chipselect signal: BITBANG_CS_ACTIVE and BITBANG_CS_INACTIVE.

Signed-off-by: default avatarQipan Li <Qipan.Li@csr.com>
Signed-off-by: default avatarBarry Song <Baohua.Song@csr.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 625227a4
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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;
		}
	}
}