Commit bc7f9bbc authored by Michael Welling's avatar Michael Welling Committed by Mark Brown

spi: omap2-mcspi: Add gpio_request and init CS

If GPIO chip select is specified, request the GPIO in the setup function
and release it in the cleanup function.
Signed-off-by: default avatarMichael Welling <mwelling@ieee.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent b28cb941
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <linux/gcd.h> #include <linux/gcd.h>
#include <linux/spi/spi.h> #include <linux/spi/spi.h>
#include <linux/gpio.h>
#include <linux/platform_data/spi-omap2-mcspi.h> #include <linux/platform_data/spi-omap2-mcspi.h>
...@@ -1011,6 +1012,12 @@ static int omap2_mcspi_setup(struct spi_device *spi) ...@@ -1011,6 +1012,12 @@ static int omap2_mcspi_setup(struct spi_device *spi)
return ret; return ret;
} }
if (gpio_is_valid(spi->cs_gpio)) {
if (gpio_request(spi->cs_gpio, dev_name(&spi->dev)) == 0)
gpio_direction_output(spi->cs_gpio,
!(spi->mode & SPI_CS_HIGH));
}
ret = pm_runtime_get_sync(mcspi->dev); ret = pm_runtime_get_sync(mcspi->dev);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -1050,6 +1057,9 @@ static void omap2_mcspi_cleanup(struct spi_device *spi) ...@@ -1050,6 +1057,9 @@ static void omap2_mcspi_cleanup(struct spi_device *spi)
mcspi_dma->dma_tx = NULL; mcspi_dma->dma_tx = NULL;
} }
} }
if (gpio_is_valid(spi->cs_gpio))
gpio_free(spi->cs_gpio);
} }
static int omap2_mcspi_work_one(struct omap2_mcspi *mcspi, static int omap2_mcspi_work_one(struct omap2_mcspi *mcspi,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment