[alsa-devel] [PATCH] ASoC: add RT5640 CODEC driver

Stephen Warren swarren at wwwdotorg.org
Tue Jun 4 23:51:34 CEST 2013

On 05/31/2013 01:04 AM, bardliao at realtek.com wrote:
> From: Bard Liao <bardliao at realtek.com>
> * Use regmap_range_cfg to replace index read/write function.
> * Remove I2S3 related code since there is no I2S3 in ALC5640.
> * Remove Voice DSP related code since there is no Voice DSP in ALC5640.
> * Remove MICBIAS2 since there is no MICBIAS2 in ALC5640.
> * Change DMIC1/2 CLK to DMIC1/2 Power since it is for enable/disable DMIC1/2
> * Modify some texts for consistent coding style.
> * Merge sto adc l/r mux since it shares the same control bits.
> * Other minor changes.

> +static const struct snd_soc_dapm_widget rt5640_dapm_widgets[] = {

> +	/* Input Lines */

Can you explain that more? In the spec for this part, I don't see any
DMIC1/2 input pins. Instead, I think they're alternative uses for the
IN1P/N pins, right?

> +		rt5640_hpo_mix, ARRAY_SIZE(rt5640_hpo_mix)),
> +		rt5640_hpo_mix, ARRAY_SIZE(rt5640_hpo_mix)),

In the version of the driver I posted, I had replaced this with a single
"HPO MIX" DAPM_MIXER, because there is a single bit in HW that controls
both the L and R channels. I think you should incorporate that same change.

That relies on commit 85762e7 "ASoC: dapm: Implement mixer control sharing".

In an earlier review, IIRC, Mark had asked you to implement platform
data to configure whether the microphones were single-ended or not. I
don't see that in this patch.

Finally, I really would prefer if you could implement the support for
the LDO1_EN GPIO via platform data. Getting that right requires a bit of
knowledge of how set_bias_level() is supposed to work on this CODEC, and
I think Realtek have the best information to get that right. I'll
certainly send a patch to implement this all by device tree after that.

Anyway, I'll go test this patch and see if it works for me on my HW.

More information about the Alsa-devel mailing list