SND_SOC_DAPM_INPUT("INR"),
 };
 
-static const struct snd_soc_dapm_route intercon[] = {
+static const struct snd_soc_dapm_route max9850_dapm_routes[] = {
        /* output mixer */
        {"Output Mixer", NULL, "DAC"},
        {"Output Mixer", "Line In Switch", "Line Input"},
 
 static int max9850_probe(struct snd_soc_codec *codec)
 {
-       struct snd_soc_dapm_context *dapm = &codec->dapm;
        int ret;
 
        ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_I2C);
        /* set slew-rate 125ms */
        snd_soc_update_bits(codec, MAX9850_CHARGE_PUMP, 0xff, 0xc0);
 
-       snd_soc_dapm_new_controls(dapm, max9850_dapm_widgets,
-                                 ARRAY_SIZE(max9850_dapm_widgets));
-       snd_soc_dapm_add_routes(dapm, intercon, ARRAY_SIZE(intercon));
-
-       snd_soc_add_controls(codec, max9850_controls,
-                       ARRAY_SIZE(max9850_controls));
-
        return 0;
 }
 
        .reg_word_size = sizeof(u8),
        .reg_cache_default = max9850_reg,
        .volatile_register = max9850_volatile_register,
+
+       .controls = max9850_controls,
+       .num_controls = ARRAY_SIZE(max9850_controls),
+       .dapm_widgets = max9850_dapm_widgets,
+       .num_dapm_widgets = ARRAY_SIZE(max9850_dapm_widgets),
+       .dapm_routes = max9850_dapm_routes,
+       .num_dapm_routes = ARRAY_SIZE(max9850_dapm_routes),
 };
 
 static int __devinit max9850_i2c_probe(struct i2c_client *i2c,