l |= (word_len - 1) << 7;
if (!(spi->mode & SPI_CS_HIGH))
l |= OMAP2_MCSPI_CHCONF_EPOL;
+ else
+ l &= ~OMAP2_MCSPI_CHCONF_EPOL;
l &= ~OMAP2_MCSPI_CHCONF_CLKD_MASK;
l |= div << 2;
if (spi->mode & SPI_CPOL)
l |= OMAP2_MCSPI_CHCONF_POL;
+ else
+ l &= ~OMAP2_MCSPI_CHCONF_POL;
if (spi->mode & SPI_CPHA)
l |= OMAP2_MCSPI_CHCONF_PHA;
+ else
+ l &= ~OMAP2_MCSPI_CHCONF_PHA;
mcspi_write_cs_reg(spi, OMAP2_MCSPI_CHCONF0, l);
return 0;
struct spi_message *m;
struct spi_device *spi;
struct spi_transfer *t = NULL;
- int cs_active;
+ int cs_active = 0;
struct omap2_mcspi_device_config *conf;
struct omap2_mcspi_cs *cs;
int par_override = 0;
conf = (struct omap2_mcspi_device_config *) spi->controller_data;
cs = (struct omap2_mcspi_cs *) spi->controller_state;
- omap2_mcspi_force_cs(spi, 1);
- cs_active = 1;
-
list_for_each_entry(t, &m->transfers, transfer_list) {
if (t->tx_buf == NULL && t->rx_buf == NULL && t->len) {
status = -EINVAL;