From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 587D1C3A5A2 for ; Tue, 3 Sep 2019 14:23:55 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D588E23697 for ; Tue, 3 Sep 2019 14:23:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="KMX95WWo" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D588E23697 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id EE4371687; Tue, 3 Sep 2019 16:23:02 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz EE4371687 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1567520633; bh=9Unkz00gPFN1wtA+bWNTHLkUaBISJ1slVl47+3N7fZY=; h=To:References:From:Date:In-Reply-To:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=KMX95WWoA6q1VFsXsRALfC8hTmT75wM9oaM/Lb2nOnBpb9q7kq/rb7rSWW+uMzmjl QQR/3+mDBcDk8eD84dlcSklGz+TWRzSQCaCDws6l6bqsg3YOyZ0SeYqaBWTPSisims RsJw5fgoJeIl+U6U6zZlOCVNQRpyqHsfPLNddrCY= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 1EDABF803D7; Tue, 3 Sep 2019 16:22:08 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 7FD21F805F9; Tue, 3 Sep 2019 16:22:06 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id DE464F803D7 for ; Tue, 3 Sep 2019 16:21:58 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz DE464F803D7 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Sep 2019 07:21:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,463,1559545200"; d="scan'208";a="184765159" Received: from mloktyuk-mobl.amr.corp.intel.com (HELO [10.251.152.40]) ([10.251.152.40]) by orsmga003.jf.intel.com with ESMTP; 03 Sep 2019 07:21:53 -0700 To: Hans de Goede , alsa-devel@alsa-project.org References: <20190831145842.32990-1-hdegoede@redhat.com> From: Pierre-Louis Bossart Message-ID: <6fb859af-0ef8-5e64-6799-7679aaba1cb0@linux.intel.com> Date: Tue, 3 Sep 2019 09:09:09 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20190831145842.32990-1-hdegoede@redhat.com> Content-Language: en-US Cc: Takashi Iwai Subject: Re: [alsa-devel] [PATCH 1/2] conf/ucm: Add UCM profile for cht-bsw-rt5672 boards X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" On 8/31/19 9:58 AM, Hans de Goede wrote: > Add an UCM profile for Intel boards with a RT5672 codec. > > Re-use the existing platform enable and disable sequences for BYT/CHT SST > support and add a codecs/rt5672 dir with codec specific enable / disable > sequences for the various inputs and outputs. > > This is partly based on earlier work done here: > https://github.com/plbossart/UCM/tree/master/cht-bsw-rt5672 Thanks for restarting this Hans. I can't recall if I did any work here, took default settings from Bard Liao (when he was a Realtek) or if I just took examples from a Chromebook UCM file. I know there's a Dell tablet which uses this codec, but I just can't recall other devices. Also how does the selection of the configs work, I don't see the same thing as in bytcr_rt5640/51 to play with the card long name and quirks. Do you expect the user to select the 'right' configs based on experimental trial-and-error. > > Signed-off-by: Hans de Goede > --- > configure.ac | 2 + > src/conf/ucm/Makefile.am | 1 + > src/conf/ucm/cht-bsw-rt5672/HiFi.conf | 27 +++++++++++ > src/conf/ucm/cht-bsw-rt5672/Makefile.am | 4 ++ > .../ucm/cht-bsw-rt5672/cht-bsw-rt5672.conf | 6 +++ > src/conf/ucm/codecs/Makefile.am | 1 + > src/conf/ucm/codecs/rt5672/DMIC1.conf | 28 +++++++++++ > src/conf/ucm/codecs/rt5672/DMIC2.conf | 28 +++++++++++ > src/conf/ucm/codecs/rt5672/EnableSeq.conf | 48 +++++++++++++++++++ > src/conf/ucm/codecs/rt5672/HeadPhones.conf | 23 +++++++++ > src/conf/ucm/codecs/rt5672/HeadsetMic.conf | 38 +++++++++++++++ > src/conf/ucm/codecs/rt5672/Makefile.am | 5 ++ > src/conf/ucm/codecs/rt5672/MonoSpeaker.conf | 26 ++++++++++ > src/conf/ucm/codecs/rt5672/Speaker.conf | 22 +++++++++ > 14 files changed, 259 insertions(+) > create mode 100644 src/conf/ucm/cht-bsw-rt5672/HiFi.conf > create mode 100644 src/conf/ucm/cht-bsw-rt5672/Makefile.am > create mode 100644 src/conf/ucm/cht-bsw-rt5672/cht-bsw-rt5672.conf > create mode 100644 src/conf/ucm/codecs/rt5672/DMIC1.conf > create mode 100644 src/conf/ucm/codecs/rt5672/DMIC2.conf > create mode 100644 src/conf/ucm/codecs/rt5672/EnableSeq.conf > create mode 100644 src/conf/ucm/codecs/rt5672/HeadPhones.conf > create mode 100644 src/conf/ucm/codecs/rt5672/HeadsetMic.conf > create mode 100644 src/conf/ucm/codecs/rt5672/Makefile.am > create mode 100644 src/conf/ucm/codecs/rt5672/MonoSpeaker.conf > create mode 100644 src/conf/ucm/codecs/rt5672/Speaker.conf > > diff --git a/configure.ac b/configure.ac > index 2e955760..9ccca7aa 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -741,6 +741,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ > src/conf/ucm/bytcr-rt5651-stereo-spk-in1-mic/Makefile \ > src/conf/ucm/bytcr-rt5651-stereo-spk-in2-mic/Makefile \ > src/conf/ucm/bytcr-rt5651-stereo-spk-in12-mic/Makefile \ > + src/conf/ucm/cht-bsw-rt5672/Makefile \ > src/conf/ucm/chtnau8824/Makefile \ > src/conf/ucm/chtrt5645/Makefile \ > src/conf/ucm/chtrt5645-mono-speaker-analog-mic/Makefile \ > @@ -772,6 +773,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ > src/conf/ucm/codecs/rt5640/Makefile \ > src/conf/ucm/codecs/rt5645/Makefile \ > src/conf/ucm/codecs/rt5651/Makefile \ > + src/conf/ucm/codecs/rt5672/Makefile \ > src/conf/ucm/platforms/Makefile \ > src/conf/ucm/platforms/bytcr/Makefile \ > src/conf/topology/Makefile \ > diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am > index 02257048..2ed4e1a3 100644 > --- a/src/conf/ucm/Makefile.am > +++ b/src/conf/ucm/Makefile.am > @@ -25,6 +25,7 @@ bytcr-rt5651-stereo-spk-dmic-mic \ > bytcr-rt5651-stereo-spk-in1-mic \ > bytcr-rt5651-stereo-spk-in2-mic \ > bytcr-rt5651-stereo-spk-in12-mic \ > +cht-bsw-rt5672 \ > chtnau8824 \ > chtrt5645 \ > chtrt5645-mono-speaker-analog-mic \ > diff --git a/src/conf/ucm/cht-bsw-rt5672/HiFi.conf b/src/conf/ucm/cht-bsw-rt5672/HiFi.conf > new file mode 100644 > index 00000000..b83099d8 > --- /dev/null > +++ b/src/conf/ucm/cht-bsw-rt5672/HiFi.conf > @@ -0,0 +1,27 @@ > +# Adapted from https://github.com/plbossart/UCM/tree/master/cht-bsw-rt5672 > + > +SectionVerb { > + EnableSequence [ > + cdev "hw:chtbswrt5672" > + > + > + ] > + > + DisableSequence [ > + cdev "hw:chtbswrt5672" > + > + ] > + > + Value { > + PlaybackPCM "hw:chtbswrt5672" > + CapturePCM "hw:chtbswrt5672" > + } > +} > + > + > + > + > + > + > + > + > diff --git a/src/conf/ucm/cht-bsw-rt5672/Makefile.am b/src/conf/ucm/cht-bsw-rt5672/Makefile.am > new file mode 100644 > index 00000000..c3d557fa > --- /dev/null > +++ b/src/conf/ucm/cht-bsw-rt5672/Makefile.am > @@ -0,0 +1,4 @@ > +alsaconfigdir = @ALSA_CONFIG_DIR@ > +ucmdir = $(alsaconfigdir)/ucm/cht-bsw-rt5672 > +ucm_DATA = cht-bsw-rt5672.conf HiFi.conf > +EXTRA_DIST = $(ucm_DATA) > diff --git a/src/conf/ucm/cht-bsw-rt5672/cht-bsw-rt5672.conf b/src/conf/ucm/cht-bsw-rt5672/cht-bsw-rt5672.conf > new file mode 100644 > index 00000000..c79024d9 > --- /dev/null > +++ b/src/conf/ucm/cht-bsw-rt5672/cht-bsw-rt5672.conf > @@ -0,0 +1,6 @@ > +# Adapted from https://github.com/plbossart/UCM/tree/master/cht-bsw-rt5672 > + > +SectionUseCase."HiFi" { > + File "HiFi.conf" > + Comment "Play HiFi quality Music" > +} > diff --git a/src/conf/ucm/codecs/Makefile.am b/src/conf/ucm/codecs/Makefile.am > index 5987b9cf..17c4ebf9 100644 > --- a/src/conf/ucm/codecs/Makefile.am > +++ b/src/conf/ucm/codecs/Makefile.am > @@ -4,4 +4,5 @@ es8316 \ > rt5640 \ > rt5645 \ > rt5651 \ > +rt5672 \ > nau8824 > diff --git a/src/conf/ucm/codecs/rt5672/DMIC1.conf b/src/conf/ucm/codecs/rt5672/DMIC1.conf > new file mode 100644 > index 00000000..9a8db1a5 > --- /dev/null > +++ b/src/conf/ucm/codecs/rt5672/DMIC1.conf > @@ -0,0 +1,28 @@ > +SectionDevice."DigitalMic-DMIC1" { > + Comment "Internal Digital Microphone on DMIC1" > + > + ConflictingDevice [ > + "DigitalMic-DMIC2" > + "HeadsetMic" > + ] > + > + EnableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Int Mic Switch' on" > + cset "name='Stereo1 DMIC Mux' DMIC1" > + cset "name='Stereo1 ADC 2 Mux' DMIC" > + cset "name='Sto1 ADC MIXL ADC2 Switch' on" > + cset "name='Sto1 ADC MIXR ADC2 Switch' on" > + ] > + > + DisableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Int Mic Switch' off" > + cset "name='Sto1 ADC MIXL ADC2 Switch' off" > + cset "name='Sto1 ADC MIXR ADC2 Switch' off" > + ] > + > + Value { > + CaptureChannels 2 > + } > +} > diff --git a/src/conf/ucm/codecs/rt5672/DMIC2.conf b/src/conf/ucm/codecs/rt5672/DMIC2.conf > new file mode 100644 > index 00000000..b960436e > --- /dev/null > +++ b/src/conf/ucm/codecs/rt5672/DMIC2.conf > @@ -0,0 +1,28 @@ > +SectionDevice."DigitalMic-DMIC2" { > + Comment "Internal Digital Microphone on DMIC2" > + > + ConflictingDevice [ > + "DigitalMic-DMIC1" > + "HeadsetMic" > + ] > + > + EnableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Int Mic Switch' on" > + cset "name='Stereo1 DMIC Mux' DMIC2" > + cset "name='Stereo1 ADC 2 Mux' DMIC" > + cset "name='Sto1 ADC MIXL ADC2 Switch' on" > + cset "name='Sto1 ADC MIXR ADC2 Switch' on" > + ] > + > + DisableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Int Mic Switch' off" > + cset "name='Sto1 ADC MIXL ADC2 Switch' off" > + cset "name='Sto1 ADC MIXR ADC2 Switch' off" > + ] > + > + Value { > + CaptureChannels 2 > + } > +} > diff --git a/src/conf/ucm/codecs/rt5672/EnableSeq.conf b/src/conf/ucm/codecs/rt5672/EnableSeq.conf > new file mode 100644 > index 00000000..bd4f357c > --- /dev/null > +++ b/src/conf/ucm/codecs/rt5672/EnableSeq.conf > @@ -0,0 +1,48 @@ > +# Playback (I2S1) > + > +# common > +cset "name='DAC1 L Mux' IF1 DAC" > +cset "name='DAC1 R Mux' IF1 DAC" > +cset "name='DAC1 MIXL DAC1 Switch' on" > +cset "name='DAC1 MIXR DAC1 Switch' on" > +cset "name='Stereo DAC MIXL DAC L1 Switch' on" > +cset "name='Stereo DAC MIXL DAC R1 Switch' off" > +cset "name='Stereo DAC MIXR DAC R1 Switch' on" > +cset "name='Stereo DAC MIXR DAC L1 Switch' off" > + > +# speaker > +cset "name='PDM1 L Mux' Stereo DAC" > +cset "name='PDM1 R Mux' Stereo DAC" > + > +# headphone > +cset "name='HPOVOL MIXL DAC1 Switch' on" > +cset "name='HPOVOL MIXR DAC1 Switch' on" > +cset "name='HPO MIX HPVOL Switch' on" > + > +# line out > +# cset "name='OUT MIXL DAC L1 Switch' on" > +# cset "name='OUT MIXR DAC R1 Switch' on" > +# cset "name='LOUT MIX OUTMIX L Switch' on" > +# cset "name='LOUT MIX OUTMIX R Switch' on" > + > +# 47=0dB, 0.375 dB/step > +cset "name='ADC Capture Volume' 47" > +cset "name='ADC Capture Switch' on" > + > +# Headset mic is quite soft, boost it a bit, 1 = 20dB which is the first > +# available boost step > +cset "name='IN1 Boost Volume' 1" > + > +# Start with all outputs / inputs disabled > +cset "name='Ext Spk Switch' off" > +cset "name='Headphone Switch' off" > +cset "name='Int Mic Switch' off" > +cset "name='Headset Mic Switch' off" > +cset "name='Sto1 ADC MIXL ADC1 Switch' off" > +cset "name='Sto1 ADC MIXR ADC1 Switch' off" > +cset "name='Sto1 ADC MIXL ADC2 Switch' off" > +cset "name='Sto1 ADC MIXR ADC2 Switch' off" > +cset "name='RECMIXL BST1 Switch' off" > +cset "name='RECMIXR BST1 Switch' off" > +cset "name='RECMIXL BST2 Switch' off" > +cset "name='RECMIXR BST2 Switch' off" > diff --git a/src/conf/ucm/codecs/rt5672/HeadPhones.conf b/src/conf/ucm/codecs/rt5672/HeadPhones.conf > new file mode 100644 > index 00000000..cb8aad2d > --- /dev/null > +++ b/src/conf/ucm/codecs/rt5672/HeadPhones.conf > @@ -0,0 +1,23 @@ > +SectionDevice."Headphones" { > + Comment "Headphones" > + > + ConflictingDevice [ > + "Speaker" > + "MonoSpeaker" > + ] > + > + EnableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Headphone Switch' on" > + ] > + > + DisableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Headphone Switch' off" > + ] > + > + Value { > + PlaybackChannels "2" > + JackControl "Headphone Jack" > + } > +} > diff --git a/src/conf/ucm/codecs/rt5672/HeadsetMic.conf b/src/conf/ucm/codecs/rt5672/HeadsetMic.conf > new file mode 100644 > index 00000000..cc6d8d56 > --- /dev/null > +++ b/src/conf/ucm/codecs/rt5672/HeadsetMic.conf > @@ -0,0 +1,38 @@ > +SectionDevice."HeadsetMic" { > + Comment "Headset Microphone" > + > + ConflictingDevice [ > + "DigitalMic-DMIC1" > + "DigitalMic-DMIC2" > + ] > + > + EnableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Headset Mic Switch' on" > + cset "name='RECMIXL BST1 Switch' on" > + cset "name='RECMIXR BST1 Switch' on" > + cset "name='Sto1 ADC MIXL ADC1 Switch' on" > + cset "name='Sto1 ADC MIXR ADC1 Switch' on" > + # For unknown reasons the headset mic sound is only recorded > + # on the left channel, we tweak the data-stream reception to > + # use the left samples for both slots, so that we get a stereo > + # stream with the mic sound on both channels > + cset "name='codec_in rx deinterleaver codec_in0_1' 1" > + ] > + > + DisableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Headset Mic Switch' off" > + cset "name='RECMIXL BST1 Switch' off" > + cset "name='RECMIXR BST1 Switch' off" > + cset "name='Sto1 ADC MIXL ADC1 Switch' off" > + cset "name='Sto1 ADC MIXR ADC1 Switch' off" > + # Undo data-stream reception mono-mix workaround > + cset "name='codec_in rx deinterleaver codec_in0_1' 2" > + ] > + > + Value { > + CaptureChannels "2" > + JackControl "Headset Mic Jack" > + } > +} > diff --git a/src/conf/ucm/codecs/rt5672/Makefile.am b/src/conf/ucm/codecs/rt5672/Makefile.am > new file mode 100644 > index 00000000..feba0b76 > --- /dev/null > +++ b/src/conf/ucm/codecs/rt5672/Makefile.am > @@ -0,0 +1,5 @@ > +alsaconfigdir = @ALSA_CONFIG_DIR@ > +ucmdir = $(alsaconfigdir)/ucm/codecs/rt5672 > +ucm_DATA = DMIC1.conf DMIC2.conf EnableSeq.conf HeadPhones.conf \ > + HeadsetMic.conf MonoSpeaker.conf Speaker.conf > +EXTRA_DIST = $(ucm_DATA) > diff --git a/src/conf/ucm/codecs/rt5672/MonoSpeaker.conf b/src/conf/ucm/codecs/rt5672/MonoSpeaker.conf > new file mode 100644 > index 00000000..828a1154 > --- /dev/null > +++ b/src/conf/ucm/codecs/rt5672/MonoSpeaker.conf > @@ -0,0 +1,26 @@ > +SectionDevice."MonoSpeaker" { > + Comment "Mono Speaker" > + > + ConflictingDevice [ > + "Speaker" > + "Headphones" > + ] > + > + EnableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Stereo DAC MIXR DAC R1 Switch' off" > + cset "name='Stereo DAC MIXL DAC R1 Switch' on" > + cset "name='Ext Spk Switch' on" > + ] > + > + DisableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Ext Spk Switch' off" > + cset "name='Stereo DAC MIXL DAC R1 Switch' off" > + cset "name='Stereo DAC MIXR DAC R1 Switch' on" > + ] > + > + Value { > + PlaybackChannels "2" > + } > +} > diff --git a/src/conf/ucm/codecs/rt5672/Speaker.conf b/src/conf/ucm/codecs/rt5672/Speaker.conf > new file mode 100644 > index 00000000..f9291e53 > --- /dev/null > +++ b/src/conf/ucm/codecs/rt5672/Speaker.conf > @@ -0,0 +1,22 @@ > +SectionDevice."Speaker" { > + Comment "Speakers" > + > + ConflictingDevice [ > + "MonoSpeaker" > + "Headphones" > + ] > + > + EnableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Ext Spk Switch' on" > + ] > + > + DisableSequence [ > + cdev "hw:chtbswrt5672" > + cset "name='Ext Spk Switch' off" > + ] > + > + Value { > + PlaybackChannels "2" > + } > +} > _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel