On Tue, 21 May 2019 08:26:51 +0200, Takashi Iwai wrote: > > Hi, > > the merge window was closed, and now it's time for fun again. > This is a v6 revision of ASoC CX2072X codec support patchset for Intel > platforms. > > > Takashi Since Debian seems to take my patches, I post the corresponding patch for UCM below, too. It should be applicable to the latest alsa-lib git repo. Takashi -- 8< -- From: Takashi Iwai <tiwai@xxxxxxx> Subject: [PATCH alsa-lib] ucm: Add UCM profile for CX2072X codec on Baytrail/Cherrytrail profiles Adding a new Conexant CX2072X codec profile and reusing the existing BYT/CHT platform snippets. Currently tested only on ASUS E200HA laptop. Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> --- configure.ac | 2 ++ src/conf/ucm/Makefile.am | 1 + src/conf/ucm/bytcht-cx2072x/HiFi.conf | 24 ++++++++++++++++++++++++ src/conf/ucm/bytcht-cx2072x/Makefile.am | 4 ++++ src/conf/ucm/bytcht-cx2072x/bytcht-cx2072x.conf | 8 ++++++++ src/conf/ucm/codecs/Makefile.am | 1 + src/conf/ucm/codecs/cx2072x/DisableSeq.conf | 7 +++++++ src/conf/ucm/codecs/cx2072x/EnableSeq.conf | 13 +++++++++++++ src/conf/ucm/codecs/cx2072x/HeadPhones.conf | 24 ++++++++++++++++++++++++ src/conf/ucm/codecs/cx2072x/HeadsetMic.conf | 25 +++++++++++++++++++++++++ src/conf/ucm/codecs/cx2072x/InternalMic.conf | 24 ++++++++++++++++++++++++ src/conf/ucm/codecs/cx2072x/Makefile.am | 6 ++++++ src/conf/ucm/codecs/cx2072x/Speaker.conf | 23 +++++++++++++++++++++++ 13 files changed, 162 insertions(+) create mode 100644 src/conf/ucm/bytcht-cx2072x/HiFi.conf create mode 100644 src/conf/ucm/bytcht-cx2072x/Makefile.am create mode 100644 src/conf/ucm/bytcht-cx2072x/bytcht-cx2072x.conf create mode 100644 src/conf/ucm/codecs/cx2072x/DisableSeq.conf create mode 100644 src/conf/ucm/codecs/cx2072x/EnableSeq.conf create mode 100644 src/conf/ucm/codecs/cx2072x/HeadPhones.conf create mode 100644 src/conf/ucm/codecs/cx2072x/HeadsetMic.conf create mode 100644 src/conf/ucm/codecs/cx2072x/InternalMic.conf create mode 100644 src/conf/ucm/codecs/cx2072x/Makefile.am create mode 100644 src/conf/ucm/codecs/cx2072x/Speaker.conf diff --git a/configure.ac b/configure.ac index e9e1a3698bed..d451e5970b03 100644 --- a/configure.ac +++ b/configure.ac @@ -720,6 +720,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ src/conf/ucm/ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN/Makefile \ src/conf/ucm/broadwell-rt286/Makefile \ src/conf/ucm/broxton-rt298/Makefile \ + src/conf/ucm/bytcht-cx2072x/Makefile \ src/conf/ucm/bytcht-es8316/Makefile \ src/conf/ucm/bytcht-es8316-mono-spk-in1-mic/Makefile \ src/conf/ucm/bytcht-es8316-mono-spk-in2-mic/Makefile \ @@ -765,6 +766,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ src/conf/ucm/tegraalc5632/Makefile \ src/conf/ucm/VEYRON-I2S/Makefile \ src/conf/ucm/codecs/Makefile \ + src/conf/ucm/codecs/cx2072x/Makefile \ src/conf/ucm/codecs/es8316/Makefile \ src/conf/ucm/codecs/nau8824/Makefile \ src/conf/ucm/codecs/rt5640/Makefile \ diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am index e9f88ed683a2..02257048860f 100644 --- a/src/conf/ucm/Makefile.am +++ b/src/conf/ucm/Makefile.am @@ -4,6 +4,7 @@ platforms \ ASUSTeKCOMPUTERINC.-T100HAN-1.0-T100HAN \ broadwell-rt286 \ broxton-rt298 \ +bytcht-cx2072x \ bytcht-es8316 \ bytcht-es8316-mono-spk-in1-mic \ bytcht-es8316-mono-spk-in2-mic \ diff --git a/src/conf/ucm/bytcht-cx2072x/HiFi.conf b/src/conf/ucm/bytcht-cx2072x/HiFi.conf new file mode 100644 index 000000000000..e9c1f7573d50 --- /dev/null +++ b/src/conf/ucm/bytcht-cx2072x/HiFi.conf @@ -0,0 +1,24 @@ +SectionVerb { + EnableSequence [ + cdev "hw:bytchtcx2072x" + <platforms/bytcr/PlatformEnableSeq.conf> + <codecs/cx2072x/EnableSeq.conf> + ] + + DisableSequence [ + cdev "hw:bytchtcx2072x" + <codecs/cx2072x/DisableSeq.conf> + <platforms/bytcr/PlatformDisableSeq.conf> + ] + + Value { + PlaybackPCM "hw:bytchtcx2072x" + CapturePCM "hw:bytchtcx2072x" + } +} + +<codecs/cx2072x/Speaker.conf> +<codecs/cx2072x/HeadPhones.conf> + +<codecs/cx2072x/InternalMic.conf> +<codecs/cx2072x/HeadsetMic.conf> diff --git a/src/conf/ucm/bytcht-cx2072x/Makefile.am b/src/conf/ucm/bytcht-cx2072x/Makefile.am new file mode 100644 index 000000000000..373b2a77079a --- /dev/null +++ b/src/conf/ucm/bytcht-cx2072x/Makefile.am @@ -0,0 +1,4 @@ +alsaconfigdir = @ALSA_CONFIG_DIR@ +ucmdir = $(alsaconfigdir)/ucm/bytcht-cx2072x +ucm_DATA = bytcht-cx2072x.conf HiFi.conf +EXTRA_DIST = $(ucm_DATA) diff --git a/src/conf/ucm/bytcht-cx2072x/bytcht-cx2072x.conf b/src/conf/ucm/bytcht-cx2072x/bytcht-cx2072x.conf new file mode 100644 index 000000000000..fce04456c678 --- /dev/null +++ b/src/conf/ucm/bytcht-cx2072x/bytcht-cx2072x.conf @@ -0,0 +1,8 @@ +SectionUseCase."HiFi" { + File "HiFi.conf" + Comment "Play HiFi quality Music" +} + +SectionDefaults [ + cdev "hw:bytchtcx2072x" +] diff --git a/src/conf/ucm/codecs/Makefile.am b/src/conf/ucm/codecs/Makefile.am index f78fd0817f75..5987b9cf89a4 100644 --- a/src/conf/ucm/codecs/Makefile.am +++ b/src/conf/ucm/codecs/Makefile.am @@ -1,4 +1,5 @@ SUBDIRS=\ +cx2072x \ es8316 \ rt5640 \ rt5645 \ diff --git a/src/conf/ucm/codecs/cx2072x/DisableSeq.conf b/src/conf/ucm/codecs/cx2072x/DisableSeq.conf new file mode 100644 index 000000000000..1e3d5489da3f --- /dev/null +++ b/src/conf/ucm/codecs/cx2072x/DisableSeq.conf @@ -0,0 +1,7 @@ +# Output Configuration +cset "name='I2S DAC1L Switch' off" +cset "name='I2S DAC1R Switch' off" + +# Input Configuration +cset "name='I2S ADC1L Switch' off" +cset "name='I2S ADC1R Switch' off" diff --git a/src/conf/ucm/codecs/cx2072x/EnableSeq.conf b/src/conf/ucm/codecs/cx2072x/EnableSeq.conf new file mode 100644 index 000000000000..fb8e3fe23c4d --- /dev/null +++ b/src/conf/ucm/codecs/cx2072x/EnableSeq.conf @@ -0,0 +1,13 @@ +# Disable all inputs / outputs +cset "name='Ext Spk Switch' off" +cset "name='Headphone Switch' off" +cset "name='Headset Mic Switch' off" +cset "name='Int Mic Switch' off" + +# Output Configuration +cset "name='I2S DAC1L Switch' on" +cset "name='I2S DAC1R Switch' on" + +# Input Configuration +cset "name='I2S ADC1L Switch' on" +cset "name='I2S ADC1R Switch' on" diff --git a/src/conf/ucm/codecs/cx2072x/HeadPhones.conf b/src/conf/ucm/codecs/cx2072x/HeadPhones.conf new file mode 100644 index 000000000000..4e3ff950c130 --- /dev/null +++ b/src/conf/ucm/codecs/cx2072x/HeadPhones.conf @@ -0,0 +1,24 @@ +SectionDevice."Headphones" { + Comment "Headphones" + + ConflictingDevice [ + "Speaker" + ] + + EnableSequence [ + cdev "hw:bytchtcx2072x" + cset "name='Headphone Switch' on" + cset "name='PortA Out En Switch' on" + ] + + DisableSequence [ + cdev "hw:bytchtcx2072x" + cset "name='Headphone Switch' off" + cset "name='PortA Out En Switch' off" + ] + + Value { + PlaybackChannels "2" + JackControl "Headphone Jack" + } +} diff --git a/src/conf/ucm/codecs/cx2072x/HeadsetMic.conf b/src/conf/ucm/codecs/cx2072x/HeadsetMic.conf new file mode 100644 index 000000000000..26b8df160385 --- /dev/null +++ b/src/conf/ucm/codecs/cx2072x/HeadsetMic.conf @@ -0,0 +1,25 @@ +SectionDevice."HeadsetMic" { + Comment "Headset Microphone" + + ConflictingDevice [ + "InternalMic" + ] + + EnableSequence [ + cdev "hw:bytchtcx2072x" + cset "name='Headset Mic Switch' on" + cset "name='ADC1 Mux' 'PortD Switch'" + cset "name='PortD In En Switch' on" + ] + + DisableSequence [ + cdev "hw:bytchtcx2072x" + cset "name='Headset Mic Switch' off" + cset "name='PortD In En Switch' off" + ] + + Value { + CaptureChannels "2" + JackControl "Headset Mic Jack" + } +} diff --git a/src/conf/ucm/codecs/cx2072x/InternalMic.conf b/src/conf/ucm/codecs/cx2072x/InternalMic.conf new file mode 100644 index 000000000000..a3e14538fe58 --- /dev/null +++ b/src/conf/ucm/codecs/cx2072x/InternalMic.conf @@ -0,0 +1,24 @@ +SectionDevice."InternalMic" { + Comment "Internal Microphone" + + ConflictingDevice [ + "HeadsetMic" + ] + + EnableSequence [ + cdev "hw:bytchtcx2072x" + cset "name='Int Mic Switch' on" + cset "name='ADC1 Mux' 'PortC Switch'" + cset "name='PortC In En Switch' on" + ] + + DisableSequence [ + cdev "hw:bytchtcx2072x" + cset "name='Int Mic Switch' off" + cset "name='PortC In En Switch' off" + ] + + Value { + CaptureChannels "2" + } +} diff --git a/src/conf/ucm/codecs/cx2072x/Makefile.am b/src/conf/ucm/codecs/cx2072x/Makefile.am new file mode 100644 index 000000000000..2990fd096178 --- /dev/null +++ b/src/conf/ucm/codecs/cx2072x/Makefile.am @@ -0,0 +1,6 @@ +alsaconfigdir = @ALSA_CONFIG_DIR@ +ucmdir = $(alsaconfigdir)/ucm/codecs/cx2072x +ucm_DATA = EnableSeq.conf DisableSeq.conf \ + HeadPhones.conf Speaker.conf \ + InternalMic.conf HeadsetMic.conf +EXTRA_DIST = $(ucm_DATA) diff --git a/src/conf/ucm/codecs/cx2072x/Speaker.conf b/src/conf/ucm/codecs/cx2072x/Speaker.conf new file mode 100644 index 000000000000..55e2b2ba33e4 --- /dev/null +++ b/src/conf/ucm/codecs/cx2072x/Speaker.conf @@ -0,0 +1,23 @@ +SectionDevice."Speaker" { + Comment "Speakers" + + ConflictingDevice [ + "Headphones" + ] + + EnableSequence [ + cdev "hw:bytchtcx2072x" + cset "name='Ext Spk Switch' on" + cset "name='PortG Out En Switch' on" + ] + + DisableSequence [ + cdev "hw:bytchtcx2072x" + cset "name='Ext Spk Switch' off" + cset "name='PortG Out En Switch' off" + ] + + Value { + PlaybackChannels "2" + } +} -- 2.16.4 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel