[alsa-devel] Cherry Trail + RT5645 devices analog microphone not working.

Bard Liao bardliao at realtek.com
Thu Dec 28 04:05:11 CET 2017


> -----Original Message-----
> From: Hans de Goede [mailto:hdegoede at redhat.com]
> Sent: Thursday, December 28, 2017 3:13 AM
> To: Bard Liao
> Cc: Pierre-Louis Bossart; alsa-devel at alsa-project.org
> Subject: Re: Cherry Trail + RT5645 devices analog microphone not working.
> 
> Hi,
> 
> On 26-12-17 06:29, Bard Liao wrote:
> >> -----Original Message-----
> >> From: Hans de Goede [mailto:hdegoede at redhat.com]
> >> Sent: Monday, December 25, 2017 8:03 PM
> >> To: Bard Liao
> >> Cc: Pierre-Louis Bossart; alsa-devel at alsa-project.org
> >> Subject: Re: Cherry Trail + RT5645 devices analog microphone not working.
> >>
> >> Hi,
> >>
> >> On 25-12-17 03:15, Bard Liao wrote:
> >>>> -----Original Message-----
> >>>> From: Hans de Goede [mailto:hdegoede at redhat.com]
> >>>> Sent: Sunday, December 24, 2017 6:43 PM
> >>>> To: Bard Liao
> >>>> Cc: Pierre-Louis Bossart; alsa-devel at alsa-project.org
> >>>> Subject: Cherry Trail + RT5645 devices analog microphone not working.
> >>>>
> >>>> Hi Bard,
> >>>>
> >>>> I've been looking into getting the microphone to work on
> >>>> some Cherry Trail + RT5645 devices with what appears to
> >>>> be a simple analog microphone.
> >>>>
> >>>> You can see the microphone on one of the models I'm trying
> >>>> to get it to work on soldered onto the right side of the PCB
> >>>> here: https://i.imgur.com/bJzBQWe.jpg
> >>>>
> >>>> I'm using this ucm config:
> >>>>
> >>>> https://fedorapeople.org/~jwrdegoede/chtrt5645/
> >>>>
> >>>> Which is basically Pierre-Louis Bossart's config from:
> >>>> https://github.com/plbossart/UCM
> >>>>
> >>>> Adjusted because the devices all have a mono speaker.
> >>>>
> >>>> I've been trying to get this to work myself and I can get
> >>>> some sound while recording by adding:
> >>>>
> >>>>                    cset "name='RECMIXL BST2 Switch' on"
> >>>>                    cset "name='RECMIXR BST2 Switch' on"
> >>>>
> >>>> But then I mainly get noise, I do get some sound from the
> >>>> microphone if I talk really really loudly, but it is
> >>>> barely above the noise-floor. I've the feeling that BST2
> >>>> is only picking up the microphone via cross-talk and
> >>>> that BST1 indeed is the correct input, but for some reason
> >>>> I get complete silence when recording when only BST1 is
> >>>> selected in the RECMIXR, and yes I've checked / set the
> >>>> "IN1 boost volume".
> >>>>
> >>>> TL;DR: I'm trying to get an analog mic to work on 3
> >>>> different models Cherry Trail + RT5645 devices and I've
> >>>> been unable to get this to work. I've put a registerdump
> >>>> of the rt5645 with gnome-sound-recorder running here:
> >>>> https://fedorapeople.org/~jwrdegoede/rt5645-mic-red.dump
> >>>>
> >>>> Any insights / help with this would be very much
> >>>> welcome.
> >>>
> >>> I don't have the schematic, but I think you probably need micbias
> >>> for the capture. Please add both "micbias1" and "micbias2" in
> >>> the audio route since I don't know which one is needed.
> >>> for example
> >>> static const struct snd_soc_dapm_route cht_rt5645_audio_map[] = {
> >>> ...
> >>> 	{"Int Mic", NULL, "micbias1"},
> >>> 	{"Int Mic", NULL, "micbias2"},
> >>> ...
> >>> };
> >>
> >> Thank you for your reply. I've tested this, but unfortunately it
> >> does not help.
> >>
> >> Do you perhaps have a cherrytrail device withrt5645 codec where you
> >> can test an analog mic input with the upstream driver + latest ucm
> >> file from Pierre-Louis with yourself ? I've the feeling that this is
> >> not specific to the 3 devices I've access to but a general problem
> >> in the driver and/or the ucm files.
> >
> > Please try the attached patch. I don't have any cherrytrail device with
> > rt5645 codec. But I verified the register settings on my rt5645 EVB.
> > If the patch doesn't work, please dump register for me.
> > Note that adding "micbias1" and "micbias2 in the audio route is also
> > needed.
> 
> Thank you, modifying the RT5645_GEN_CTRL2 reg seems to help, for
> some reason the patch does not work and neither MB1 and MB2 in reg
> 0x64 nor the RT5645_GEN_CTRL2 changes happen, but after manually
> applying these with i2cset I can actual use the mic, although there
> is still quite a bit of white noise in the background.

I think the reason why the patch didn't work is because "micbias1"
and "micbias2" are not connected to the audio route. The white
noise probably because the gain is too high. And if you are using a
differential mic, please set rt5645->pdata.in2_diff = true;

> 
> Attached is a regdump after making the manual changes to reg 0x64 and
> reg 0xfb.
> 
> I did add the micbias audio routes:
> 
> @@ -2297,6 +2297,9 @@ static const struct snd_soc_dapm_route
> rt5645_dapm_routes[] = {
>   	{ "DMIC2", NULL, "DMIC L2" },
>   	{ "DMIC2", NULL, "DMIC R2" },
> 
> +	{ "Int Mic", NULL, "micbias1" },
> +	{ "Int Mic", NULL, "micbias2" },
> +
>   	{ "BST1", NULL, "IN1P" },
>   	{ "BST1", NULL, "IN1N" },
>   	{ "BST1", NULL, "JD Power" },

 +	{ "Int Mic", NULL, "micbias1" },
 +	{ "Int Mic", NULL, "micbias2" },
should add in machine driver.
Please make sure "Int Mic" is registered and its connected to
"IN1P" and "IN1N". Like
{"IN1P", NULL, "Int Mic"},
{"IN1N", NULL, "Int Mic"},
Or you can share your machine driver so I can check it.

> 
> But I believe that your tree has some patches which are not upstream yet,
> the last patch you attached expects the micbias1 and micbias2 lines
> in the widget lists to be of the "SND_SOC_DAPM_SUPPLY" type, but here:
> https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/tree/sound/
> soc/codecs/rt5645.c?h=topic/rt5645
> 
> They are still of the SND_SOC_DAPM_MICBIAS type.

Sorry, I forget to send the attached patch to upstream.
Please apply it first.

> 
> Regards,
> 
> Hans
> 
> 
> >
> >>
> >> Regards,
> >>
> >> Hans
> >>
> >> ------Please consider the environment before printing this e-mail.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ASoC-rt5645-change-micbias-widget-type-to-supply.patch
Type: application/octet-stream
Size: 1161 bytes
Desc: 0001-ASoC-rt5645-change-micbias-widget-type-to-supply.patch
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20171228/0edcd1b3/attachment.obj>


More information about the Alsa-devel mailing list