ALSA: ASoC: OMAP: Add multilink support to McBSP DAI driver
Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
9296bb43f1
commit
8def464ddd
|
@ -381,37 +381,49 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
|
|||
return err;
|
||||
}
|
||||
|
||||
struct snd_soc_dai omap_mcbsp_dai[NUM_LINKS] = {
|
||||
{
|
||||
.name = "omap-mcbsp-dai",
|
||||
.id = 0,
|
||||
.type = SND_SOC_DAI_I2S,
|
||||
.playback = {
|
||||
.channels_min = 2,
|
||||
.channels_max = 2,
|
||||
.rates = OMAP_MCBSP_RATES,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
},
|
||||
.capture = {
|
||||
.channels_min = 2,
|
||||
.channels_max = 2,
|
||||
.rates = OMAP_MCBSP_RATES,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
},
|
||||
.ops = {
|
||||
.startup = omap_mcbsp_dai_startup,
|
||||
.shutdown = omap_mcbsp_dai_shutdown,
|
||||
.trigger = omap_mcbsp_dai_trigger,
|
||||
.hw_params = omap_mcbsp_dai_hw_params,
|
||||
},
|
||||
.dai_ops = {
|
||||
.set_fmt = omap_mcbsp_dai_set_dai_fmt,
|
||||
.set_clkdiv = omap_mcbsp_dai_set_clkdiv,
|
||||
.set_sysclk = omap_mcbsp_dai_set_dai_sysclk,
|
||||
},
|
||||
.private_data = &mcbsp_data[0].bus_id,
|
||||
},
|
||||
#define OMAP_MCBSP_DAI_BUILDER(link_id) \
|
||||
{ \
|
||||
.name = "omap-mcbsp-dai-(link_id)", \
|
||||
.id = (link_id), \
|
||||
.type = SND_SOC_DAI_I2S, \
|
||||
.playback = { \
|
||||
.channels_min = 2, \
|
||||
.channels_max = 2, \
|
||||
.rates = OMAP_MCBSP_RATES, \
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE, \
|
||||
}, \
|
||||
.capture = { \
|
||||
.channels_min = 2, \
|
||||
.channels_max = 2, \
|
||||
.rates = OMAP_MCBSP_RATES, \
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE, \
|
||||
}, \
|
||||
.ops = { \
|
||||
.startup = omap_mcbsp_dai_startup, \
|
||||
.shutdown = omap_mcbsp_dai_shutdown, \
|
||||
.trigger = omap_mcbsp_dai_trigger, \
|
||||
.hw_params = omap_mcbsp_dai_hw_params, \
|
||||
}, \
|
||||
.dai_ops = { \
|
||||
.set_fmt = omap_mcbsp_dai_set_dai_fmt, \
|
||||
.set_clkdiv = omap_mcbsp_dai_set_clkdiv, \
|
||||
.set_sysclk = omap_mcbsp_dai_set_dai_sysclk, \
|
||||
}, \
|
||||
.private_data = &mcbsp_data[(link_id)].bus_id, \
|
||||
}
|
||||
|
||||
struct snd_soc_dai omap_mcbsp_dai[] = {
|
||||
OMAP_MCBSP_DAI_BUILDER(0),
|
||||
OMAP_MCBSP_DAI_BUILDER(1),
|
||||
#if NUM_LINKS >= 3
|
||||
OMAP_MCBSP_DAI_BUILDER(2),
|
||||
#endif
|
||||
#if NUM_LINKS == 5
|
||||
OMAP_MCBSP_DAI_BUILDER(3),
|
||||
OMAP_MCBSP_DAI_BUILDER(4),
|
||||
#endif
|
||||
};
|
||||
|
||||
EXPORT_SYMBOL_GPL(omap_mcbsp_dai);
|
||||
|
||||
MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@nokia.com>");
|
||||
|
|
|
@ -38,11 +38,17 @@ enum omap_mcbsp_div {
|
|||
OMAP_MCBSP_CLKGDV, /* Sample rate generator divider */
|
||||
};
|
||||
|
||||
/*
|
||||
* REVISIT: Preparation for the ASoC v2. Let the number of available links to
|
||||
* be same than number of McBSP ports found in OMAP(s) we are compiling for.
|
||||
*/
|
||||
#define NUM_LINKS 1
|
||||
#if defined(CONFIG_ARCH_OMAP2420)
|
||||
#define NUM_LINKS 2
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX)
|
||||
#undef NUM_LINKS
|
||||
#define NUM_LINKS 3
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP34XX)
|
||||
#undef NUM_LINKS
|
||||
#define NUM_LINKS 5
|
||||
#endif
|
||||
|
||||
extern struct snd_soc_dai omap_mcbsp_dai[NUM_LINKS];
|
||||
|
||||
|
|
Loading…
Reference in New Issue