[alsa-devel] [PATCH 2/2] ASoC: OMAP-McBSP: ASoC interface for McBSP sidetone
ilkka.koskinen at nokia.com
ilkka.koskinen at nokia.com
Fri Jan 29 13:06:24 CET 2010
Hi,
>From: ext Liam Girdwood [mailto:lrg at slimlogic.co.uk]
>Sent: 28 January, 2010 18:22
>On Thu, 2010-01-28 at 17:46 +0200, Ilkka Koskinen wrote:
>> Add ASoC interface for OMAP McBSP2 and McBSP3 sidetones.
>>
>> Signed-off-by: Ilkka Koskinen <ilkka.koskinen at nokia.com>
>> ---
>> sound/soc/omap/omap-mcbsp.c | 187
>+++++++++++++++++++++++++++++++++++++++++++
>> sound/soc/omap/omap-mcbsp.h | 2 +
>> 2 files changed, 189 insertions(+), 0 deletions(-)
>>
>> diff --git a/sound/soc/omap/omap-mcbsp.c
>b/sound/soc/omap/omap-mcbsp.c
>> index 6bbbd2a..295620b 100644
>> --- a/sound/soc/omap/omap-mcbsp.c
>> +++ b/sound/soc/omap/omap-mcbsp.c
>> @@ -39,6 +39,14 @@
>
>snip
>
>> +/* McBSP Sidetone Switch */
>> +static const char *omap_mcbsp_st_status[] = {
>> + "off",
>> + "on",
>> +};
>> +
>
>Should this not be a switch (like a mute switch) rather than an enum
>kcontrol ?
Makes sense. I'll change it.
>> +static const struct soc_enum omap_mcbsp_st_status_enum[] = {
>> + SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(omap_mcbsp_st_status),
>> + omap_mcbsp_st_status),
>> +};
>> +
>> +static const struct snd_kcontrol_new omap_mcbsp2_st_controls[] = {
>> + SOC_ENUM_EXT("McBSP2 Sidetone Switch",
>omap_mcbsp_st_status_enum[0],
>> + omap_mcbsp2_st_get_mode,
>omap_mcbsp2_st_set_mode),
>> + OMAP_MCBSP_SOC_SINGLE_S16_EXT("McBSP2 Sidetone Channel
>0 Volume",
>> + -32768, 32767,
>> + omap_mcbsp2_get_st_ch0_volume,
>> + omap_mcbsp2_set_st_ch0_volume),
>> + OMAP_MCBSP_SOC_SINGLE_S16_EXT("McBSP2 Sidetone Channel
>1 Volume",
>> + -32768, 32767,
>> + omap_mcbsp2_get_st_ch1_volume,
>> + omap_mcbsp2_set_st_ch1_volume),
>> +};
>> +
>> +static const struct snd_kcontrol_new omap_mcbsp3_st_controls[] = {
>> + SOC_ENUM_EXT("McBSP3 Sidetone Switch",
>omap_mcbsp_st_status_enum[0],
>> + omap_mcbsp3_st_get_mode,
>omap_mcbsp3_st_set_mode),
>> + OMAP_MCBSP_SOC_SINGLE_S16_EXT("McBSP3 Sidetone Channel
>0 Volume",
>> + -32768, 32767,
>> + omap_mcbsp3_get_st_ch0_volume,
>> + omap_mcbsp3_set_st_ch0_volume),
>> + OMAP_MCBSP_SOC_SINGLE_S16_EXT("McBSP3 Sidetone Channel
>1 Volume",
>> + -32768, 32767,
>> + omap_mcbsp3_get_st_ch1_volume,
>> + omap_mcbsp3_set_st_ch1_volume),
>> +};
>> +
>> +int omap_mcbsp_st_add_controls(struct snd_soc_codec *codec,
>int mcbsp_id)
>> +{
>> + if (!cpu_is_omap34xx())
>> + return -ENODEV;
>> +
>> + switch (mcbsp_id) {
>> + case 2: /* McBSP 2 */
>> + return snd_soc_add_controls(codec,
>omap_mcbsp2_st_controls,
>> +
>ARRAY_SIZE(omap_mcbsp2_st_controls));
>> + case 3: /* McBSP 3 */
>> + return snd_soc_add_controls(codec,
>omap_mcbsp3_st_controls,
>> +
>ARRAY_SIZE(omap_mcbsp3_st_controls));
>> + default:
>> + break;
>> + }
>> +
>> + return -1;
>
>-EINVAL;
Oops, thanks.
Cheers, Ilkka
>> +}
>> +EXPORT_SYMBOL_GPL(omap_mcbsp_st_add_controls);
>> +
>> static int __init snd_omap_mcbsp_init(void)
>> {
>> return snd_soc_register_dais(omap_mcbsp_dai,
>> diff --git a/sound/soc/omap/omap-mcbsp.h
>b/sound/soc/omap/omap-mcbsp.h
>> index 647d2f9..7537435 100644
>> --- a/sound/soc/omap/omap-mcbsp.h
>> +++ b/sound/soc/omap/omap-mcbsp.h
>> @@ -57,4 +57,6 @@ enum omap_mcbsp_div {
>>
>> extern struct snd_soc_dai omap_mcbsp_dai[NUM_LINKS];
>>
>> +int omap_mcbsp_st_add_controls(struct snd_soc_codec *codec,
>int mcbsp_id);
>> +
>> #endif
>
>
>
More information about the Alsa-devel
mailing list