int edma_pcm_platform_register(struct device *dev)
 {
-       return devm_snd_dmaengine_pcm_register(dev, &edma_dmaengine_pcm_config, 0);
+       struct snd_dmaengine_pcm_config *config;
+
+       if (dev->of_node)
+               return devm_snd_dmaengine_pcm_register(dev,
+                                               &edma_dmaengine_pcm_config, 0);
+
+       config = devm_kzalloc(dev, sizeof(*config), GFP_KERNEL);
+       if (!config)
+               return -ENOMEM;
+
+       *config = edma_dmaengine_pcm_config;
+
+       config->chan_names[0] = "tx";
+       config->chan_names[1] = "rx";
+
+       return devm_snd_dmaengine_pcm_register(dev, config, 0);
 }
 EXPORT_SYMBOL_GPL(edma_pcm_platform_register);