mfd: Use mfd cell platform_data for ab3100 cells platform bits
authorSamuel Ortiz <sameo@linux.intel.com>
Tue, 5 Apr 2011 22:41:43 +0000 (00:41 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 26 May 2011 17:44:58 +0000 (19:44 +0200)
With the addition of a platform device mfd_cell pointer, MFD drivers
can go back to passing platform data back to their sub drivers.
This allows for an mfd_cell->mfd_data removal and thus keep the sub drivers
MFD agnostic. This is mostly needed for non MFD aware sub drivers.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/ab3100-core.c
drivers/regulator/ab3100.c

index a751927047ac967b6111359c3d8942253382be12..a20e1c41bed2f67c7fcdf65958ef83e62dde98e2 100644 (file)
@@ -949,8 +949,10 @@ static int __devinit ab3100_probe(struct i2c_client *client,
                goto exit_no_ops;
 
        /* Set up and register the platform devices. */
-       for (i = 0; i < ARRAY_SIZE(ab3100_devs); i++)
-               ab3100_devs[i].mfd_data = ab3100_plf_data;
+       for (i = 0; i < ARRAY_SIZE(ab3100_devs); i++) {
+               ab3100_devs[i].platform_data = ab3100_plf_data;
+               ab3100_devs[i].pdata_size = sizeof(struct ab3100_platform_data);
+       }
 
        err = mfd_add_devices(&client->dev, 0, ab3100_devs,
                ARRAY_SIZE(ab3100_devs), NULL, 0);
index b1d77946e9c64dd69aed6f840fcaf2c685846e92..585e4946fe0a7157b6ccaf6ae59465f788505a38 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/platform_device.h>
 #include <linux/regulator/driver.h>
 #include <linux/mfd/abx500.h>
-#include <linux/mfd/core.h>
 
 /* LDO registers and some handy masking definitions for AB3100 */
 #define AB3100_LDO_A           0x40
@@ -582,7 +581,7 @@ ab3100_regulator_desc[AB3100_NUM_REGULATORS] = {
 
 static int __devinit ab3100_regulators_probe(struct platform_device *pdev)
 {
-       struct ab3100_platform_data *plfdata = mfd_get_data(pdev);
+       struct ab3100_platform_data *plfdata = pdev->dev.platform_data;
        int err = 0;
        u8 data;
        int i;