On Mon, 02 Sep 2019 10:31:30 +0200, Hans de Goede wrote: > > Hi Takashi, > > On 02-09-19 09:07, Takashi Iwai wrote: > > 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 <hdegoede@xxxxxxxxxx> > > > > 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... > > I think it is good that we now have a separate repo and I'm fine > with re-licensing all my UCM profile work under a BSD3-Clause license. > > But I believe that until we have actually figured out how this is > all going to work and we are actually doing releases from the > new alsa-ucm-conf repo, we should keep adding new profiles to > alsa-lib for now, because these profiles are necessary for things > to work OOTB for our end users. Well, putting to both repos isn't a good idea from the packaging POV, either. If we're going to release the alsa-ucm-conf sooner or later together with the next alsa-lib release, we can put into the new repo from the beginning. Other than that, I'm fine to put to alsa-lib at first. thanks, Takashi > > Regards, > > Hans > > > >> --- > >> 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" > >> + <platforms/bytcr/PlatformEnableSeq.conf> > >> + <codecs/rt5672/EnableSeq.conf> > >> + ] > >> + > >> + DisableSequence [ > >> + cdev "hw:chtbswrt5672" > >> + <platforms/bytcr/PlatformDisableSeq.conf> > >> + ] > >> + > >> + Value { > >> + PlaybackPCM "hw:chtbswrt5672" > >> + CapturePCM "hw:chtbswrt5672" > >> + } > >> +} > >> + > >> +<codecs/rt5672/Speaker.conf> > >> +<codecs/rt5672/MonoSpeaker.conf> > >> +<codecs/rt5672/HeadPhones.conf> > >> + > >> +<codecs/rt5672/DMIC1.conf> > >> +<codecs/rt5672/DMIC2.conf> > >> +<codecs/rt5672/HeadsetMic.conf> > >> 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@xxxxxxxxxxxxxxxx > >> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel > >> > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel