From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH 1/2] conf/ucm: Add UCM profile for cht-bsw-rt5672 boards Date: Mon, 02 Sep 2019 09:07:22 +0200 Message-ID: References: <20190831145842.32990-1-hdegoede@redhat.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 0D970F80392 for ; Mon, 2 Sep 2019 09:07:23 +0200 (CEST) In-Reply-To: <20190831145842.32990-1-hdegoede@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" To: Hans de Goede Cc: alsa-devel@alsa-project.org, Pierre-Louis Bossart List-Id: alsa-devel@alsa-project.org On Sat, 31 Aug 2019 16:58:41 +0200, 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 > > Signed-off-by: Hans de Goede We've recently set up a new alsa-ucm-conf repo for keeping UCM profiles outside alsa-lib repo. The new repo has a different license (BSD3-Clause) for easily adapting to OSes with license restriction. I guess we should put the stuff there from now on, as much as possible? The handling of UCM profile is currently pending, and we need to decide the general policy, as well as how to transfer the existing profiles to the new repo... thanks, Takashi > --- > 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" > + } > +} > -- > 2.23.0 > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@alsa-project.org > https://mailman.alsa-project.org/mailman/listinfo/alsa-devel > 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=-11.7 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,URIBL_BLOCKED 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 70E20C3A59B for ; Mon, 2 Sep 2019 07:08:24 +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 E75BB214AE for ; Mon, 2 Sep 2019 07:08:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="u5qeXLqz" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E75BB214AE Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de 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 20CE81694; Mon, 2 Sep 2019 09:07:32 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 20CE81694 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1567408102; bh=uS4oNiiESQrgyV8gqOYGVaXIXoABU0ZDKV13VfDRiHg=; h=Date:From:To:In-Reply-To:References:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=u5qeXLqzPFvOGOzGlGuQuAz49BA3RiQAgK1tWVEYSV/Y1Hj6DMWGabgzgnouAh6hH ED378Wtc2xfIPF1DNjKEX0gYMxEK6RADLqESdmbZWmTpZBlFd0UvzFoYML3roiMjlJ k/IYcJZUskQZGZBfFd3DMLwmgYkF5ssMX9lnGv40= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 8564AF80392; Mon, 2 Sep 2019 09:07:31 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 385AEF80392; Mon, 2 Sep 2019 09:07:30 +0200 (CEST) Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 0D970F80392 for ; Mon, 2 Sep 2019 09:07:23 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 0D970F80392 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 1B93EB61F; Mon, 2 Sep 2019 07:07:23 +0000 (UTC) Date: Mon, 02 Sep 2019 09:07:22 +0200 Message-ID: From: Takashi Iwai To: Hans de Goede In-Reply-To: <20190831145842.32990-1-hdegoede@redhat.com> References: <20190831145842.32990-1-hdegoede@redhat.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/25.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Cc: alsa-devel@alsa-project.org, Pierre-Louis Bossart 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-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Message-ID: <20190902070722.1Gn5LY94Q8OWv91nw2NVKZeruMfz70osE7mSAefo_UI@z> On Sat, 31 Aug 2019 16:58:41 +0200, 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 > > Signed-off-by: Hans de Goede We've recently set up a new alsa-ucm-conf repo for keeping UCM profiles outside alsa-lib repo. The new repo has a different license (BSD3-Clause) for easily adapting to OSes with license restriction. I guess we should put the stuff there from now on, as much as possible? The handling of UCM profile is currently pending, and we need to decide the general policy, as well as how to transfer the existing profiles to the new repo... thanks, Takashi > --- > 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" > + } > +} > -- > 2.23.0 > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@alsa-project.org > https://mailman.alsa-project.org/mailman/listinfo/alsa-devel > _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org https://mailman.alsa-project.org/mailman/listinfo/alsa-devel