diff --git a/drivers/input/touchscreen/ad7879-spi.c b/drivers/input/touchscreen/ad7879-spi.c index 9fa8e5de5ff9a2d87ccd732c6c2be3a13664f9f3..59c6e68c432507a61392993b572541dc2c8693a4 100644 --- a/drivers/input/touchscreen/ad7879-spi.c +++ b/drivers/input/touchscreen/ad7879-spi.c @@ -134,6 +134,7 @@ static const struct ad7879_bus_ops ad7879_spi_bus_ops = { static int __devinit ad7879_spi_probe(struct spi_device *spi) { struct ad7879 *ts; + int err; /* don't exceed max specified SPI CLK frequency */ if (spi->max_speed_hz > MAX_SPI_FREQ_HZ) { @@ -141,6 +142,13 @@ static int __devinit ad7879_spi_probe(struct spi_device *spi) return -EINVAL; } + spi->bits_per_word = 16; + err = spi_setup(spi); + if (err) { + dev_dbg(&spi->dev, "spi master doesn't support 16 bits/word\n"); + return err; + } + ts = ad7879_probe(&spi->dev, AD7879_DEVID, spi->irq, &ad7879_spi_bus_ops); if (IS_ERR(ts)) return PTR_ERR(ts);