.name          = "ds1wm",
        .enable        = ds1wm_enable,
        .disable       = ds1wm_disable,
-       .driver_data   = &ds1wm_pdata,
+       .mfd_data      = &ds1wm_pdata,
        .num_resources = ARRAY_SIZE(ds1wm_resources),
        .resources     = ds1wm_resources,
 };
 
        .name          = "ds1wm",
        .enable        = ds1wm_enable,
        .disable       = ds1wm_disable,
-       .driver_data   = &ds1wm_pdata,
+       .mfd_data      = &ds1wm_pdata,
        .num_resources = 2,
        .resources     = ds1wm_resources,
 };
        }
 
        if (pdata && pdata->led_pdata) {
-               led_cell.driver_data = pdata->led_pdata;
                ret = mfd_add_devices(&pdev->dev, pdev->id, &led_cell, 1, r, 0);
                if (ret < 0)
                        dev_warn(dev, "failed to register LED device\n");
 
 static void ds1wm_up(struct ds1wm_data *ds1wm_data)
 {
        int divisor;
-       struct ds1wm_driver_data *plat = ds1wm_data->cell->driver_data;
+       struct ds1wm_driver_data *plat = mfd_get_data(ds1wm_data->pdev);
 
        if (ds1wm_data->cell->enable)
                ds1wm_data->cell->enable(ds1wm_data->pdev);
                ret = -ENOMEM;
                goto err0;
        }
-       plat = cell->driver_data;
+       plat = mfd_get_data(pdev);
 
        /* calculate bus shift from mem resource */
        ds1wm_data->bus_shift = resource_size(res) >> 3;