at91_set_A_periph(AT91_PIN_PB21, 1);
 }
 
-static struct platform_device at91sam9260_ssc_dai_device = {
-       .name   = "atmel-ssc-dai",
-       .id     = 0,
-       .dev    = {
-               .parent = &(at91sam9260_ssc_device.dev),
-       },
-};
-
 /*
  * SSC controllers are accessed through library code, instead of any
  * kind of all-singing/all-dancing driver.  For example one could be
        }
 
        platform_device_register(pdev);
-       platform_device_register(&at91sam9260_ssc_dai_device);
 }
 
 #else
 
         },
 };
 
-static struct platform_device sam9g20ek_pcm_device = {
-       .name   = "atmel-pcm-audio",
-       .id = -1,
-};
-
 static struct platform_device sam9g20ek_audio_device = {
        .name   = "at91sam9g20ek-audio",
        .id     = -1,
 
 static void __init ek_add_device_audio(void)
 {
-       platform_device_register(&sam9g20ek_pcm_device);
        platform_device_register(&sam9g20ek_audio_device);
 }
 
 
 static struct snd_soc_dai_link at91sam9g20ek_dai = {
        .name = "WM8731",
        .stream_name = "WM8731 PCM",
-       .cpu_dai_name = "atmel-ssc-dai.0",
+       .cpu_dai_name = "at91rm9200_ssc.0",
        .codec_dai_name = "wm8731-hifi",
        .init = at91sam9g20ek_wm8731_init,
-       .platform_name = "atmel-pcm-audio",
+       .platform_name = "at91rm9200_ssc.0",
        .codec_name = "wm8731.0-001b",
        .ops = &at91sam9g20ek_ops,
 };
        if (!(machine_is_at91sam9g20ek() || machine_is_at91sam9g20ek_2mmc()))
                return -ENODEV;
 
+       ret = atmel_ssc_set_audio(0);
+       if (ret) {
+               dev_err(&pdev->dev, "ssc channel is not valid\n");
+               return -EINVAL;
+       }
+
        /*
         * Codec MCLK is supplied by PCK0 - set it up.
         */
        clk_put(mclk);
        mclk = NULL;
 err:
+       atmel_ssc_put_audio(0);
        return ret;
 }
 
 {
        struct snd_soc_card *card = platform_get_drvdata(pdev);
 
+       atmel_ssc_put_audio(0);
        snd_soc_unregister_card(card);
        clk_put(mclk);
        mclk = NULL;