aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/omap/omap-mcbsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/omap/omap-mcbsp.c')
-rw-r--r--sound/soc/omap/omap-mcbsp.c72
1 files changed, 42 insertions, 30 deletions
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
index fb920e1b551e..d32eb4703cfe 100644
--- a/sound/soc/omap/omap-mcbsp.c
+++ b/sound/soc/omap/omap-mcbsp.c
@@ -381,37 +381,49 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
381 return err; 381 return err;
382} 382}
383 383
384struct snd_soc_dai omap_mcbsp_dai[NUM_LINKS] = { 384#define OMAP_MCBSP_DAI_BUILDER(link_id) \
385{ 385{ \
386 .name = "omap-mcbsp-dai", 386 .name = "omap-mcbsp-dai-(link_id)", \
387 .id = 0, 387 .id = (link_id), \
388 .type = SND_SOC_DAI_I2S, 388 .type = SND_SOC_DAI_I2S, \
389 .playback = { 389 .playback = { \
390 .channels_min = 2, 390 .channels_min = 2, \
391 .channels_max = 2, 391 .channels_max = 2, \
392 .rates = OMAP_MCBSP_RATES, 392 .rates = OMAP_MCBSP_RATES, \
393 .formats = SNDRV_PCM_FMTBIT_S16_LE, 393 .formats = SNDRV_PCM_FMTBIT_S16_LE, \
394 }, 394 }, \
395 .capture = { 395 .capture = { \
396 .channels_min = 2, 396 .channels_min = 2, \
397 .channels_max = 2, 397 .channels_max = 2, \
398 .rates = OMAP_MCBSP_RATES, 398 .rates = OMAP_MCBSP_RATES, \
399 .formats = SNDRV_PCM_FMTBIT_S16_LE, 399 .formats = SNDRV_PCM_FMTBIT_S16_LE, \
400 }, 400 }, \
401 .ops = { 401 .ops = { \
402 .startup = omap_mcbsp_dai_startup, 402 .startup = omap_mcbsp_dai_startup, \
403 .shutdown = omap_mcbsp_dai_shutdown, 403 .shutdown = omap_mcbsp_dai_shutdown, \
404 .trigger = omap_mcbsp_dai_trigger, 404 .trigger = omap_mcbsp_dai_trigger, \
405 .hw_params = omap_mcbsp_dai_hw_params, 405 .hw_params = omap_mcbsp_dai_hw_params, \
406 }, 406 }, \
407 .dai_ops = { 407 .dai_ops = { \
408 .set_fmt = omap_mcbsp_dai_set_dai_fmt, 408 .set_fmt = omap_mcbsp_dai_set_dai_fmt, \
409 .set_clkdiv = omap_mcbsp_dai_set_clkdiv, 409 .set_clkdiv = omap_mcbsp_dai_set_clkdiv, \
410 .set_sysclk = omap_mcbsp_dai_set_dai_sysclk, 410 .set_sysclk = omap_mcbsp_dai_set_dai_sysclk, \
411 }, 411 }, \
412 .private_data = &mcbsp_data[0].bus_id, 412 .private_data = &mcbsp_data[(link_id)].bus_id, \
413}, 413}
414
415struct snd_soc_dai omap_mcbsp_dai[] = {
416 OMAP_MCBSP_DAI_BUILDER(0),
417 OMAP_MCBSP_DAI_BUILDER(1),
418#if NUM_LINKS >= 3
419 OMAP_MCBSP_DAI_BUILDER(2),
420#endif
421#if NUM_LINKS == 5
422 OMAP_MCBSP_DAI_BUILDER(3),
423 OMAP_MCBSP_DAI_BUILDER(4),
424#endif
414}; 425};
426
415EXPORT_SYMBOL_GPL(omap_mcbsp_dai); 427EXPORT_SYMBOL_GPL(omap_mcbsp_dai);
416 428
417MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@nokia.com>"); 429MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@nokia.com>");