[alsa-devel] [PATCH] ASoC: MAX9877: add MAX9877 amp driver
Mark Brown
broonie at opensource.wolfsonmicro.com
Tue Jul 14 11:54:26 CEST 2009
On Tue, Jul 14, 2009 at 03:39:37PM +0900, Joonyoung Shim wrote:
Overall this looks great, thanks. Clearly it's not an ideal approach
but it gets the job done and it can be adapted to use core features as
they're added.
A couple of relatively nitpicky issues below:
> +++ b/sound/soc/codecs/Kconfig
> @@ -188,3 +188,7 @@ config SND_SOC_WM9712
>
> config SND_SOC_WM9713
> tristate
> +
> +# Amp
> +config SND_SOC_MAX9877
> + tristate
I'd add it to SND_SOC_ALL_CODECS too - while it's not strictly a CODEC
the point of the Kconfig option is to get build coverage and this driver
will benefit from that as much as others.
> +static const char *max9877_osc_mode[] = {
> + "1176KHz",
> + "1100KHz",
> + "700KHz",
> +};
Would this be better as platform data for the device?
> +static const struct snd_kcontrol_new max9877_controls[] = {
> + SOC_SINGLE_EXT_TLV("MAX9877 Amp HP Left Playback Volume",
> + MAX9877_HPL_VOLUME, 0, 31, 0,
> + max9877_get_reg, max9877_set_reg, max9877_output_tlv),
> + SOC_SINGLE_EXT_TLV("MAX9877 Amp HP Right Playback Volume",
> + MAX9877_HPR_VOLUME, 0, 31, 0,
> + max9877_get_reg, max9877_set_reg, max9877_output_tlv),
Ideally these would be a SOC_DOUBLE_EXT_TLV() but we don't have that yet
- would you mind sending a patch for that?
> +/* This function is called from ASoC machine driver */
> +int max9877_add_controls(struct snd_soc_codec *codec)
> +{
> + return snd_soc_add_controls(codec, max9877_controls,
> + ARRAY_SIZE(max9877_controls));
> +}
> +
This should have an EXPORT_SYMBOL_GPL() to allow it to be used from
machine drivers which are built modular.
More information about the Alsa-devel
mailing list