@@ -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
new file mode 100644
@@ -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"
new file mode 100644
@@ -0,0 +1,6 @@
+Syntax 3
+
+SectionUseCase."HiFi" {
+ File "HiFi.conf"
+ Comment "Play HiFi quality Music"
+}
new file mode 100644
@@ -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"
+]
new file mode 100644
@@ -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"
+ ]
+}
new file mode 100644
@@ -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"
+ }
+}
new file mode 100644
@@ -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}"
+ }
+}
new file mode 100644
@@ -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"
+ ]
+}
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> --- ucm2/SOF/HiFi.conf | 9 +++++++++ ucm2/bytcr-wm5102/HiFi.conf | 27 +++++++++++++++++++++++++ ucm2/bytcr-wm5102/bytcr-wm5102.conf | 6 ++++++ ucm2/codecs/wm5102/EnableSeq.conf | 16 +++++++++++++++ ucm2/codecs/wm5102/HeadPhones.conf | 23 +++++++++++++++++++++ ucm2/codecs/wm5102/IN1-HeadsetMic.conf | 24 ++++++++++++++++++++++ ucm2/codecs/wm5102/IN3-InternalMic.conf | 23 +++++++++++++++++++++ ucm2/codecs/wm5102/Speaker.conf | 22 ++++++++++++++++++++ 8 files changed, 150 insertions(+) create mode 100644 ucm2/bytcr-wm5102/HiFi.conf create mode 100644 ucm2/bytcr-wm5102/bytcr-wm5102.conf create mode 100644 ucm2/codecs/wm5102/EnableSeq.conf create mode 100644 ucm2/codecs/wm5102/HeadPhones.conf create mode 100644 ucm2/codecs/wm5102/IN1-HeadsetMic.conf create mode 100644 ucm2/codecs/wm5102/IN3-InternalMic.conf create mode 100644 ucm2/codecs/wm5102/Speaker.conf