[alsa-devel] [PATCH v6 0/2] ASoC: CX2072X codec support (revised, v6)
Takashi Iwai
tiwai at suse.de
Thu May 23 08:51:02 CEST 2019
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 at suse.de>
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 at suse.de>
---
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
More information about the Alsa-devel
mailing list