#include <linux/mfd/wm831x/core.h>
 #include <linux/mfd/wm831x/pdata.h>
 
-static int wm831x_i2c_probe(struct i2c_client *i2c,
-                           const struct i2c_device_id *id)
+static int wm831x_i2c_probe(struct i2c_client *i2c)
 {
+       const struct i2c_device_id *id = i2c_client_get_device_id(i2c);
        struct wm831x_pdata *pdata = dev_get_platdata(&i2c->dev);
        const struct of_device_id *of_id;
        struct wm831x *wm831x;
                .of_match_table = of_match_ptr(wm831x_of_match),
                .suppress_bind_attrs = true,
        },
-       .probe = wm831x_i2c_probe,
+       .probe_new = wm831x_i2c_probe,
        .id_table = wm831x_i2c_id,
 };