aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/mpc52xx_psc_spi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi/mpc52xx_psc_spi.c')
-rw-r--r--drivers/spi/mpc52xx_psc_spi.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c
index 11f36bef3057..d2a4b2bdb07b 100644
--- a/drivers/spi/mpc52xx_psc_spi.c
+++ b/drivers/spi/mpc52xx_psc_spi.c
@@ -270,6 +270,9 @@ static void mpc52xx_psc_spi_work(struct work_struct *work)
270 spin_unlock_irq(&mps->lock); 270 spin_unlock_irq(&mps->lock);
271} 271}
272 272
273/* the spi->mode bits understood by this driver: */
274#define MODEBITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LSB_FIRST)
275
273static int mpc52xx_psc_spi_setup(struct spi_device *spi) 276static int mpc52xx_psc_spi_setup(struct spi_device *spi)
274{ 277{
275 struct mpc52xx_psc_spi *mps = spi_master_get_devdata(spi->master); 278 struct mpc52xx_psc_spi *mps = spi_master_get_devdata(spi->master);
@@ -279,6 +282,12 @@ static int mpc52xx_psc_spi_setup(struct spi_device *spi)
279 if (spi->bits_per_word%8) 282 if (spi->bits_per_word%8)
280 return -EINVAL; 283 return -EINVAL;
281 284
285 if (spi->mode & ~MODEBITS) {
286 dev_dbg(&spi->dev, "setup: unsupported mode bits %x\n",
287 spi->mode & ~MODEBITS);
288 return -EINVAL;
289 }
290
282 if (!cs) { 291 if (!cs) {
283 cs = kzalloc(sizeof *cs, GFP_KERNEL); 292 cs = kzalloc(sizeof *cs, GFP_KERNEL);
284 if (!cs) 293 if (!cs)