Raffaele Recalcati <[email protected]> writes: > From: Raffaele Recalcati <[email protected]>
Missing changelog. Stopped reading here. Kevin > Signed-off-by: Raffaele Recalcati <[email protected]> > Signed-off-by: Davide Bonfanti <[email protected]> > --- > arch/arm/mach-davinci/dm365.c | 10 ++++++---- > drivers/spi/davinci_spi.c | 27 ++++++++++++++++++--------- > 2 files changed, 24 insertions(+), 13 deletions(-) > > diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c > index a146849..42fd4a4 100644 > --- a/arch/arm/mach-davinci/dm365.c > +++ b/arch/arm/mach-davinci/dm365.c > @@ -677,10 +677,12 @@ void __init dm365_init_spi0(unsigned chipselect_mask, > davinci_cfg_reg(DM365_SPI0_SDO); > > /* not all slaves will be wired up */ > - if (chipselect_mask & BIT(0)) > - davinci_cfg_reg(DM365_SPI0_SDENA0); > - if (chipselect_mask & BIT(1)) > - davinci_cfg_reg(DM365_SPI0_SDENA1); > + if (!((unsigned long) info->controller_data)) { > + if (chipselect_mask & BIT(0)) > + davinci_cfg_reg(DM365_SPI0_SDENA0); > + if (chipselect_mask & BIT(1)) > + davinci_cfg_reg(DM365_SPI0_SDENA1); > + } > > spi_register_board_info(info, len); > > diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c > index 95afb6b..621ae46 100644 > --- a/drivers/spi/davinci_spi.c > +++ b/drivers/spi/davinci_spi.c > @@ -29,6 +29,7 @@ > #include <linux/spi/spi_bitbang.h> > #include <linux/slab.h> > > +#include <mach/gpio.h> > #include <mach/spi.h> > #include <mach/edma.h> > > @@ -270,18 +271,26 @@ static void davinci_spi_chipselect(struct spi_device > *spi, int value) > pdata = davinci_spi->pdata; > > /* > - * Board specific chip select logic decides the polarity and cs > - * line for the controller > - */ > + * Board specific chip select logic decides the polarity and cs > + * line for the controller > + */ > if (value == BITBANG_CS_INACTIVE) { > - set_io_bits(davinci_spi->base + SPIDEF, CS_DEFAULT); > - > - data1_reg_val |= CS_DEFAULT << SPIDAT1_CSNR_SHIFT; > - iowrite32(data1_reg_val, davinci_spi->base + SPIDAT1); > - > + if ((unsigned long) spi->controller_data) { > + gpio_set_value(spi->controller_data, \ > + !(spi->mode & SPI_CS_HIGH)); > + } else { > + set_io_bits(davinci_spi->base + SPIDEF, CS_DEFAULT); > + > + data1_reg_val |= CS_DEFAULT << SPIDAT1_CSNR_SHIFT; > + iowrite32(data1_reg_val, davinci_spi->base + SPIDAT1); > + } > while ((ioread32(davinci_spi->base + SPIBUF) > - & SPIBUF_RXEMPTY_MASK) == 0) > + & SPIBUF_RXEMPTY_MASK) == 0) > cpu_relax(); > + } else { > + if ((unsigned long) spi->controller_data) > + gpio_set_value(spi->controller_data, \ > + (spi->mode & SPI_CS_HIGH)); > } > } > > -- > 1.7.0.4 > > _______________________________________________ > Davinci-linux-open-source mailing list > [email protected] > http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
