[PATCH 5/6] ASoC: sirf-inner: add mach driver for SiRFSoC internal codec

Barry Song 21cnbao at gmail.com
Thu Jul 25 04:57:22 EDT 2013


2013/7/20 Mark Brown <broonie at kernel.org>:
> On Fri, Jul 19, 2013 at 07:07:21PM +0800, Barry Song wrote:
>
>> +#ifndef CONFIG_ANDROID
>> +     unsigned int            gpio_hp_detect;
>> +     struct snd_soc_jack     hp_jack;
>> +#endif
>
> Not for mainline.  I'd suggest setting it up for extcon anyway
> especially if it's just a simple accessory, that should work for both
> Android and mainline.

sounds good as if CONFIG_ANDROID is enabled without
CONFIG_ANDROID_SWITCH, /sys/class/switch/* will be symbolically linked
to /sys/class/extcon/, so that they are still compatible with legacy
userspace processes.

>
>> +static int sirf_inner_speaker_out_put(struct snd_kcontrol *kcontrol,
>> +             struct snd_ctl_elem_value *ucontrol)
>> +{
>> +     int is_spk_out = ucontrol->value.integer.value[0];
>> +     struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
>> +     struct snd_soc_card *card = codec->card;
>> +     struct sirf_inner_card *sinner_card = snd_soc_card_get_drvdata(card);
>> +
>> +     if (gpio_is_valid(sinner_card->gpio_spk_pa))
>> +             gpio_direction_output(sinner_card->gpio_spk_pa, is_spk_out);
>> +     return 0;
>> +}
>
> Oh, right.  If this is doing what I think this is doing you want to use
> DAPM within the CODEC then this can just become a pin switch or you can
> hook in directly if you continue to use soc-jack - it has DAPM
> integration.

ok. here it is more of machine stuff than codec stuff, so i think we
move to snd_soc_jack_gpio.

-barry



More information about the linux-arm-kernel mailing list