lkml.org 
[lkml]   [2015]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2] spi: omap2-mcspi: Add support for GPIO chipselects
    Date
    This patch allows for GPIOs specified in the devicetree to be used as SPI
    chipselects on TI OMAP2 SoCs.

    Tested on the AM3354.

    Signed-off-by: Michael Welling <mwelling@ieee.org>
    ---

    v2: Considers the possible use of SPI_CS_HIGH during chip select activation.

    drivers/spi/spi-omap2-mcspi.c | 13 +++++++++++++
    1 file changed, 13 insertions(+)

    diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
    index d1a5b9f..5e388a8 100644
    --- a/drivers/spi/spi-omap2-mcspi.c
    +++ b/drivers/spi/spi-omap2-mcspi.c
    @@ -35,6 +35,7 @@
    #include <linux/gcd.h>

    #include <linux/spi/spi.h>
    +#include <linux/gpio.h>

    #include <linux/platform_data/spi-omap2-mcspi.h>

    @@ -246,6 +247,12 @@ static void omap2_mcspi_force_cs(struct spi_device *spi, int cs_active)
    {
    u32 l;

    + if (gpio_is_valid(spi->cs_gpio)) {
    + gpio_set_value(spi->cs_gpio, (cs_active) ?
    + !!(spi->mode & SPI_CS_HIGH) :
    + !(spi->mode & SPI_CS_HIGH));
    + }
    +
    l = mcspi_cached_chconf0(spi);
    if (cs_active)
    l |= OMAP2_MCSPI_CHCONF_FORCE;
    @@ -1015,6 +1022,12 @@ static int omap2_mcspi_setup(struct spi_device *spi)
    if (ret < 0)
    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 = omap2_mcspi_setup_transfer(spi, NULL);
    pm_runtime_mark_last_busy(mcspi->dev);
    pm_runtime_put_autosuspend(mcspi->dev);
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2015-04-27 06:21    [W:2.906 / U:0.448 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site