@@ -1,5 +1,7 @@
# Adapted from https://github.com/plbossart/UCM/tree/master/bytcr-rt5651
+<searchdir:ucm>
+
SectionVerb {
EnableSequence [
cdev "hw:bytcrrt5651"
@@ -18,194 +20,11 @@ SectionVerb {
}
}
-SectionDevice."Headphones" {
- Comment "Headphones playback"
-
- ConflictingDevice [
- "Speaker"
- ]
-
- EnableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Headphones playback enable sequence"
- cset "name='Headphone Switch' on"
- cset "name='HPO L Playback Switch' on"
- cset "name='HPO R Playback Switch' on"
- # Done after turning the HP on to keep the bias and clk on
- cset "name='Speaker Switch' off"
- cset "name='LOUT L Playback Switch' off"
- cset "name='LOUT R Playback Switch' off"
- ]
-
- DisableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Headphones playback disable sequence"
- # This is done by the Speaker EnableSequence, so that the
- # Platform Clock and BIAS do not temporarily get turned off
- # as that breaks audio-streams which are playing when
- # switching between Speaker/Headphone
- ]
-
- Value {
- PlaybackChannels "2"
- JackControl "Headphone Jack"
- }
-}
-
-SectionDevice."Speaker" {
- Comment "Speaker playback"
-
- ConflictingDevice [
- "Headphones"
- ]
-
- EnableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Speaker enable sequence"
- cset "name='Speaker Switch' on"
- cset "name='LOUT L Playback Switch' on"
- cset "name='LOUT R Playback Switch' on"
- # Done after turning the speaker on to keep the bias and clk on
- cset "name='Headphone Switch' off"
- cset "name='HPO L Playback Switch' off"
- cset "name='HPO R Playback Switch' off"
- ]
-
- DisableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Speaker disable sequence"
- # This is done by the Headphones EnableSequence, so that the
- # Platform Clock and BIAS do not temporarily get turned off
- # as that breaks audio-streams which are playing when
- # switching between Speaker/Headphone
- ]
-
- Value {
- PlaybackChannels "2"
- }
-}
-
-SectionDevice."InternalMic-IN1" {
- Comment "Internal Microphone on IN1"
-
- ConflictingDevice [
- "InternalMic-IN2"
- "InternalMic-IN12"
- "HeadsetMic-IN3"
- ]
-
- EnableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Internal Mic IN1 Microphone enable sequence"
- cset "name='Internal Mic Switch' on"
- cset "name='RECMIXL BST1 Switch' on"
- cset "name='RECMIXR BST1 Switch' on"
- ]
-
- DisableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Internal Mic IN1 Microphone disable sequence"
- cset "name='Internal Mic Switch' off"
- cset "name='RECMIXL BST1 Switch' off"
- cset "name='RECMIXR BST1 Switch' off"
- ]
-
- Value {
- CaptureChannels "2"
- }
-}
-
-SectionDevice."InternalMic-IN2" {
- Comment "Internal Microphone on IN2"
-
- ConflictingDevice [
- "InternalMic-IN1"
- "InternalMic-IN12"
- "HeadsetMic-IN3"
- ]
-
- EnableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Internal Mic IN2 Microphone enable sequence"
- cset "name='Internal Mic Switch' on"
- cset "name='RECMIXL BST2 Switch' on"
- cset "name='RECMIXR BST2 Switch' on"
- ]
-
- DisableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Internal Mic IN2 Microphone disable sequence"
- cset "name='Internal Mic Switch' off"
- cset "name='RECMIXL BST2 Switch' off"
- cset "name='RECMIXR BST2 Switch' off"
- ]
-
- Value {
- CaptureChannels "2"
- }
-}
-
-SectionDevice."InternalMic-IN12" {
- Comment "Internal Microphones on IN1 and IN2"
-
- ConflictingDevice [
- "InternalMic-IN1"
- "InternalMic-IN2"
- "HeadsetMic-IN3"
- ]
-
- EnableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Internal Mic IN12 Microphone enable sequence"
- cset "name='Internal Mic Switch' on"
- cset "name='RECMIXL BST1 Switch' on"
- cset "name='RECMIXR BST1 Switch' on"
- cset "name='RECMIXL BST2 Switch' on"
- cset "name='RECMIXR BST2 Switch' on"
- ]
-
- DisableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo Internal Mic IN12 Microphone disable sequence"
- cset "name='Internal Mic 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"
- ]
-
- Value {
- CaptureChannels "2"
- }
-}
-
-SectionDevice."HeadsetMic-IN3" {
- Comment "Headset Microphone"
-
- ConflictingDevice [
- "InternalMic-IN1"
- "InternalMic-IN2"
- "InternalMic-IN12"
- ]
+<rt5651/Speaker.conf>
+<rt5651/HeadPhones.conf>
- EnableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo HeadsetMic-IN3 Microphone enable sequence"
- cset "name='Headset Mic Switch' on"
- cset "name='RECMIXL BST3 Switch' on"
- cset "name='RECMIXR BST3 Switch' on"
- ]
- DisableSequence [
- cdev "hw:bytcrrt5651"
- exec "echo HeadsetMic-IN3 Microphone disable sequence"
- cset "name='Headset Mic Switch' off"
- cset "name='RECMIXL BST3 Switch' off"
- cset "name='RECMIXR BST3 Switch' off"
- ]
-
- Value {
- CaptureChannels "2"
- JackControl "Headset Mic Jack"
- }
-}
+<rt5651/IN1-InternalMic.conf>
+<rt5651/IN2-InternalMic.conf>
+<rt5651/IN12-InternalMic.conf>
+<rt5651/IN3-HeadsetMic.conf>
new file mode 100644
@@ -0,0 +1,31 @@
+SectionDevice."Headphones" {
+ Comment "Headphones"
+
+ ConflictingDevice [
+ "Speaker"
+ ]
+
+ EnableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Headphone Switch' on"
+ cset "name='HPO L Playback Switch' on"
+ cset "name='HPO R Playback Switch' on"
+ # Done after turning the HP on to keep the bias and clk on
+ cset "name='Speaker Switch' off"
+ cset "name='LOUT L Playback Switch' off"
+ cset "name='LOUT R Playback Switch' off"
+ ]
+
+ DisableSequence [
+ cdev "hw:bytcrrt5651"
+ # This is done by the Speaker EnableSequence, so that the
+ # Platform Clock and BIAS do not temporarily get turned off
+ # as that breaks audio-streams which are playing when
+ # switching between Speaker/Headphone
+ ]
+
+ Value {
+ PlaybackChannels "2"
+ JackControl "Headphone Jack"
+ }
+}
new file mode 100644
@@ -0,0 +1,27 @@
+SectionDevice."InternalMic-IN1" {
+ Comment "Internal Microphone on IN1"
+
+ ConflictingDevice [
+ "InternalMic-IN2"
+ "InternalMic-IN12"
+ "HeadsetMic-IN3"
+ ]
+
+ EnableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Internal Mic Switch' on"
+ cset "name='RECMIXL BST1 Switch' on"
+ cset "name='RECMIXR BST1 Switch' on"
+ ]
+
+ DisableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Internal Mic Switch' off"
+ cset "name='RECMIXL BST1 Switch' off"
+ cset "name='RECMIXR BST1 Switch' off"
+ ]
+
+ Value {
+ CaptureChannels "2"
+ }
+}
new file mode 100644
@@ -0,0 +1,31 @@
+SectionDevice."InternalMic-IN12" {
+ Comment "Internal Microphones on IN1 and IN2"
+
+ ConflictingDevice [
+ "InternalMic-IN1"
+ "InternalMic-IN2"
+ "HeadsetMic-IN3"
+ ]
+
+ EnableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Internal Mic Switch' on"
+ cset "name='RECMIXL BST1 Switch' on"
+ cset "name='RECMIXR BST1 Switch' on"
+ cset "name='RECMIXL BST2 Switch' on"
+ cset "name='RECMIXR BST2 Switch' on"
+ ]
+
+ DisableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Internal Mic 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"
+ ]
+
+ Value {
+ CaptureChannels "2"
+ }
+}
new file mode 100644
@@ -0,0 +1,27 @@
+SectionDevice."InternalMic-IN2" {
+ Comment "Internal Microphone on IN2"
+
+ ConflictingDevice [
+ "InternalMic-IN1"
+ "InternalMic-IN12"
+ "HeadsetMic-IN3"
+ ]
+
+ EnableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Internal Mic Switch' on"
+ cset "name='RECMIXL BST2 Switch' on"
+ cset "name='RECMIXR BST2 Switch' on"
+ ]
+
+ DisableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Internal Mic Switch' off"
+ cset "name='RECMIXL BST2 Switch' off"
+ cset "name='RECMIXR BST2 Switch' off"
+ ]
+
+ Value {
+ CaptureChannels "2"
+ }
+}
new file mode 100644
@@ -0,0 +1,28 @@
+SectionDevice."HeadsetMic-IN3" {
+ Comment "Headset Microphone"
+
+ ConflictingDevice [
+ "InternalMic-IN1"
+ "InternalMic-IN2"
+ "InternalMic-IN12"
+ ]
+
+ EnableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Headset Mic Switch' on"
+ cset "name='RECMIXL BST3 Switch' on"
+ cset "name='RECMIXR BST3 Switch' on"
+ ]
+
+ DisableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Headset Mic Switch' off"
+ cset "name='RECMIXL BST3 Switch' off"
+ cset "name='RECMIXR BST3 Switch' off"
+ ]
+
+ Value {
+ CaptureChannels "2"
+ JackControl "Headset Mic Jack"
+ }
+}
@@ -1,4 +1,6 @@
alsaconfigdir = @ALSA_CONFIG_DIR@
ucmdir = $(alsaconfigdir)/ucm/rt5651
-ucm_DATA = EnableSeq.conf
+ucm_DATA = EnableSeq.conf HeadPhones.conf IN1-InternalMic.conf \
+ IN2-InternalMic.conf IN12-InternalMic.conf IN3-HeadsetMic.conf \
+ Speaker.conf
EXTRA_DIST = $(ucm_DATA)
new file mode 100644
@@ -0,0 +1,30 @@
+SectionDevice."Speaker" {
+ Comment "Speakers"
+
+ ConflictingDevice [
+ "Headphones"
+ ]
+
+ EnableSequence [
+ cdev "hw:bytcrrt5651"
+ cset "name='Speaker Switch' on"
+ cset "name='LOUT L Playback Switch' on"
+ cset "name='LOUT R Playback Switch' on"
+ # Done after turning the speaker on to keep the bias and clk on
+ cset "name='Headphone Switch' off"
+ cset "name='HPO L Playback Switch' off"
+ cset "name='HPO R Playback Switch' off"
+ ]
+
+ DisableSequence [
+ cdev "hw:bytcrrt5651"
+ # This is done by the Headphones EnableSequence, so that the
+ # Platform Clock and BIAS do not temporarily get turned off
+ # as that breaks audio-streams which are playing when
+ # switching between Speaker/Headphone
+ ]
+
+ Value {
+ PlaybackChannels "2"
+ }
+}