]> git.alsa-project.org Git - alsa-ucm-conf.git/commitdiff
bytcr-wm5102: Add new UCM profile for BYT boards with a WM5102 codec
authorHans de Goede <hdegoede@redhat.com>
Tue, 9 Feb 2021 19:08:59 +0000 (20:08 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 11 Feb 2021 18:19:03 +0000 (19:19 +0100)
Add new UCM profile for BYT boards with a WM5102 codec. This has been
tested with both the SST and the SOF driver on a
Lenovo Yoga Tablet 2 1051L.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
ucm2/SOF/HiFi.conf
ucm2/bytcr-wm5102/HiFi.conf [new file with mode: 0644]
ucm2/bytcr-wm5102/bytcr-wm5102.conf [new file with mode: 0644]
ucm2/codecs/wm5102/EnableSeq.conf [new file with mode: 0644]
ucm2/codecs/wm5102/HeadPhones.conf [new file with mode: 0644]
ucm2/codecs/wm5102/IN1-HeadsetMic.conf [new file with mode: 0644]
ucm2/codecs/wm5102/IN3-InternalMic.conf [new file with mode: 0644]
ucm2/codecs/wm5102/Speaker.conf [new file with mode: 0644]

index af0d8c9eb9d816866483e044b62117a2e6c2c14b..adf8cc54b531e9f201fe0e25c40fbc52d3f75737 100644 (file)
@@ -79,6 +79,15 @@ If.bytcht_max98090 {
        True.Include.main.File "/chtmax98090/HiFi.conf"
 }
 
+If.bytcht_wm5102 {
+       Condition {
+               Type String
+               Haystack "${CardName}"
+               Needle "bytcht wm5102"
+       }
+       True.Include.main.File "/bytcr-wm5102/HiFi.conf"
+}
+
 If.bdw_rt286 {
        Condition {
                Type String
diff --git a/ucm2/bytcr-wm5102/HiFi.conf b/ucm2/bytcr-wm5102/HiFi.conf
new file mode 100644 (file)
index 0000000..1269868
--- /dev/null
@@ -0,0 +1,27 @@
+SectionVerb {
+
+       Value {
+               TQ "HiFi"
+       }
+
+       Include.e.File "/codecs/wm5102/EnableSeq.conf"
+
+       If.Controls {
+               Condition {
+                       Type ControlExists
+                       Control "name='media0_in Gain 0 Switch'"
+               }
+               True {
+                       Include.pe {
+                               File "/platforms/bytcr/PlatformEnableSeq.conf"
+                               Before.EnableSequence "0"
+                       }
+                       Include.pd.File "/platforms/bytcr/PlatformDisableSeq.conf"
+               }
+       }
+}
+
+Include.spk.File "/codecs/wm5102/Speaker.conf"
+Include.hp.File "/codecs/wm5102/HeadPhones.conf"
+Include.mic.File "/codecs/wm5102/IN3-InternalMic.conf"
+Include.headset.File "/codecs/wm5102/IN1-HeadsetMic.conf"
diff --git a/ucm2/bytcr-wm5102/bytcr-wm5102.conf b/ucm2/bytcr-wm5102/bytcr-wm5102.conf
new file mode 100644 (file)
index 0000000..af966ef
--- /dev/null
@@ -0,0 +1,6 @@
+Syntax 3
+
+SectionUseCase."HiFi" {
+       File "HiFi.conf"
+       Comment "Play HiFi quality Music"
+}
diff --git a/ucm2/codecs/wm5102/EnableSeq.conf b/ucm2/codecs/wm5102/EnableSeq.conf
new file mode 100644 (file)
index 0000000..6a857a2
--- /dev/null
@@ -0,0 +1,16 @@
+EnableSequence [
+       # Route AIF1 to the speakers and headphones
+       cset "name='SPKOUTL Input 1' AIF1RX1"
+       cset "name='SPKOUTR Input 1' AIF1RX2"
+       cset "name='HPOUT1L Input 1' AIF1RX1"
+       cset "name='HPOUT1R Input 1' AIF1RX2"
+
+       # Both mics are quite soft by default, boost then
+       cset "name='IN1L Volume' 28"
+       cset "name='IN3L Volume' 28"
+
+       cset "name='Headphone Switch' off"
+       cset "name='Headset Mic Switch' off"
+       cset "name='Internal Mic Switch' off"
+       cset "name='Speaker Switch' off"
+]
diff --git a/ucm2/codecs/wm5102/HeadPhones.conf b/ucm2/codecs/wm5102/HeadPhones.conf
new file mode 100644 (file)
index 0000000..cb29347
--- /dev/null
@@ -0,0 +1,23 @@
+SectionDevice."Headphones" {
+       Comment "Headphones"
+
+       Value {
+               PlaybackPriority 200
+               PlaybackPCM "hw:${CardId}"
+               JackControl "Headphone Jack"
+       }
+
+       ConflictingDevice [
+               "Speaker"
+       ]
+
+       EnableSequence [
+               cset "name='HPOUT1 Digital Switch' on"
+               cset "name='Headphone Switch' on"
+       ]
+
+       DisableSequence [
+               cset "name='HPOUT1 Digital Switch' off"
+               cset "name='Headphone Switch' off"
+       ]
+}
diff --git a/ucm2/codecs/wm5102/IN1-HeadsetMic.conf b/ucm2/codecs/wm5102/IN1-HeadsetMic.conf
new file mode 100644 (file)
index 0000000..a607487
--- /dev/null
@@ -0,0 +1,24 @@
+SectionDevice."Headset" {
+       Comment "Headset Microphone"
+
+       ConflictingDevice [
+               "Mic"
+       ]
+
+       EnableSequence [
+               cset "name='AIF1TX1 Input 1' IN1L"
+               cset "name='AIF1TX2 Input 1' IN1L"
+
+               cset "name='Headset Mic Switch' on"
+       ]
+
+       DisableSequence [
+               cset "name='Headset Mic Switch' off"
+       ]
+
+       Value {
+               CapturePriority 200
+               CapturePCM "hw:${CardId}"
+               JackControl "Headset Mic Jack"
+       }
+}
diff --git a/ucm2/codecs/wm5102/IN3-InternalMic.conf b/ucm2/codecs/wm5102/IN3-InternalMic.conf
new file mode 100644 (file)
index 0000000..3a03ac3
--- /dev/null
@@ -0,0 +1,23 @@
+SectionDevice."Mic" {
+       Comment "Internal Microphone"
+
+       ConflictingDevice [
+               "Headset"
+       ]
+
+       EnableSequence [
+               cset "name='AIF1TX1 Input 1' IN3L"
+               cset "name='AIF1TX2 Input 1' IN3L"
+
+               cset "name='Internal Mic Switch' on"
+       ]
+
+       DisableSequence [
+               cset "name='Internal Mic Switch' off"
+       ]
+
+       Value {
+               CapturePriority 100
+               CapturePCM "hw:${CardId}"
+       }
+}
diff --git a/ucm2/codecs/wm5102/Speaker.conf b/ucm2/codecs/wm5102/Speaker.conf
new file mode 100644 (file)
index 0000000..9f631f5
--- /dev/null
@@ -0,0 +1,22 @@
+SectionDevice."Speaker" {
+       Comment "Speakers"
+
+       Value {
+               PlaybackPriority 100
+               PlaybackPCM "hw:${CardId}"
+       }
+
+       ConflictingDevice [
+               "Headphones"
+       ]
+
+       EnableSequence [
+               cset "name='Speaker Digital Switch' on"
+               cset "name='Speaker Switch' on"
+       ]
+
+       DisableSequence [
+               cset "name='Speaker Digital Switch' off"
+               cset "name='Speaker Switch' off"
+       ]
+}