mpc52xx_psc_spi: convert to cs_control callback
authorAnton Vorontsov <avorontsov@ru.mvista.com>
Wed, 17 Jun 2009 23:26:05 +0000 (16:26 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 18 Jun 2009 20:03:42 +0000 (13:03 -0700)
mpc52xx_psc_spi driver is the last user of the legacy activate_cs and
deactivate_cs callbacks, so convert the driver to the cs_control hook and
remove the legacy callbacks from fsl_spi_platform_data struct.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/spi/mpc52xx_psc_spi.c
include/linux/fsl_devices.h

index bdae9f9089781b63c9191eb88eea7a5469a0dfc5..1b74d5ca03f30dd849a7b394057ef694317d2cb2 100644 (file)
@@ -13,6 +13,7 @@
 
 #include <linux/module.h>
 #include <linux/init.h>
+#include <linux/types.h>
 #include <linux/errno.h>
 #include <linux/interrupt.h>
 #include <linux/of_platform.h>
@@ -30,8 +31,7 @@
 
 struct mpc52xx_psc_spi {
        /* fsl_spi_platform data */
-       void (*activate_cs)(u8, u8);
-       void (*deactivate_cs)(u8, u8);
+       void (*cs_control)(struct spi_device *spi, bool on);
        u32 sysclk;
 
        /* driver internal data */
@@ -111,18 +111,16 @@ static void mpc52xx_psc_spi_activate_cs(struct spi_device *spi)
        out_be16((u16 __iomem *)&psc->ccr, ccr);
        mps->bits_per_word = cs->bits_per_word;
 
-       if (mps->activate_cs)
-               mps->activate_cs(spi->chip_select,
-                               (spi->mode & SPI_CS_HIGH) ? 1 : 0);
+       if (mps->cs_control)
+               mps->cs_control(spi, (spi->mode & SPI_CS_HIGH) ? 1 : 0);
 }
 
 static void mpc52xx_psc_spi_deactivate_cs(struct spi_device *spi)
 {
        struct mpc52xx_psc_spi *mps = spi_master_get_devdata(spi->master);
 
-       if (mps->deactivate_cs)
-               mps->deactivate_cs(spi->chip_select,
-                               (spi->mode & SPI_CS_HIGH) ? 1 : 0);
+       if (mps->cs_control)
+               mps->cs_control(spi, (spi->mode & SPI_CS_HIGH) ? 0 : 1);
 }
 
 #define MPC52xx_PSC_BUFSIZE (MPC52xx_PSC_RFNUM_MASK + 1)
@@ -382,15 +380,13 @@ static int __init mpc52xx_psc_spi_do_probe(struct device *dev, u32 regaddr,
        mps->irq = irq;
        if (pdata == NULL) {
                dev_warn(dev, "probe called without platform data, no "
-                               "(de)activate_cs function will be called\n");
-               mps->activate_cs = NULL;
-               mps->deactivate_cs = NULL;
+                               "cs_control function will be called\n");
+               mps->cs_control = NULL;
                mps->sysclk = 0;
                master->bus_num = bus_num;
                master->num_chipselect = 255;
        } else {
-               mps->activate_cs = pdata->activate_cs;
-               mps->deactivate_cs = pdata->deactivate_cs;
+               mps->cs_control = pdata->cs_control;
                mps->sysclk = pdata->sysclk;
                master->bus_num = pdata->bus_num;
                master->num_chipselect = pdata->max_chipselect;
index 244677cc082bba2a1173d49b9c5d15610b041cc4..43fc95d822d5e51f2ddd21321a2791c96613abf4 100644 (file)
@@ -79,10 +79,6 @@ struct fsl_spi_platform_data {
        u16     max_chipselect;
        void    (*cs_control)(struct spi_device *spi, bool on);
        u32     sysclk;
-
-       /* Legacy hooks, used by mpc52xx_psc_spi driver. */
-       void    (*activate_cs)(u8 cs, u8 polarity);
-       void    (*deactivate_cs)(u8 cs, u8 polarity);
 };
 
 struct mpc8xx_pcmcia_ops {