diff options
| -rw-r--r-- | sound/soc/omap/omap-mcbsp.c | 72 | ||||
| -rw-r--r-- | sound/soc/omap/omap-mcbsp.h | 16 |
2 files changed, 53 insertions, 35 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 | ||
| 384 | struct 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 | |||
| 415 | struct 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 | |||
| 415 | EXPORT_SYMBOL_GPL(omap_mcbsp_dai); | 427 | EXPORT_SYMBOL_GPL(omap_mcbsp_dai); |
| 416 | 428 | ||
| 417 | MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@nokia.com>"); | 429 | MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@nokia.com>"); |
diff --git a/sound/soc/omap/omap-mcbsp.h b/sound/soc/omap/omap-mcbsp.h index ed8afb550671..df7ad13ba73d 100644 --- a/sound/soc/omap/omap-mcbsp.h +++ b/sound/soc/omap/omap-mcbsp.h | |||
| @@ -38,11 +38,17 @@ enum omap_mcbsp_div { | |||
| 38 | OMAP_MCBSP_CLKGDV, /* Sample rate generator divider */ | 38 | OMAP_MCBSP_CLKGDV, /* Sample rate generator divider */ |
| 39 | }; | 39 | }; |
| 40 | 40 | ||
| 41 | /* | 41 | #if defined(CONFIG_ARCH_OMAP2420) |
| 42 | * REVISIT: Preparation for the ASoC v2. Let the number of available links to | 42 | #define NUM_LINKS 2 |
| 43 | * be same than number of McBSP ports found in OMAP(s) we are compiling for. | 43 | #endif |
| 44 | */ | 44 | #if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) |
| 45 | #define NUM_LINKS 1 | 45 | #undef NUM_LINKS |
| 46 | #define NUM_LINKS 3 | ||
| 47 | #endif | ||
| 48 | #if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP34XX) | ||
| 49 | #undef NUM_LINKS | ||
| 50 | #define NUM_LINKS 5 | ||
| 51 | #endif | ||
| 46 | 52 | ||
| 47 | extern struct snd_soc_dai omap_mcbsp_dai[NUM_LINKS]; | 53 | extern struct snd_soc_dai omap_mcbsp_dai[NUM_LINKS]; |
| 48 | 54 | ||
