[All] Add ALSA UCM2 profiles

This commit is contained in:
j1nx 2024-02-03 12:36:14 +00:00
parent c3a0370a4b
commit 46e0ebdded
511 changed files with 19427 additions and 0 deletions

View File

@ -0,0 +1,5 @@
Use Case Configuration files v1 syntax
--------------------------------------
This directory holds old UCM configuration files. The new
configuration files should be created in the ucm2 tree only.

View File

@ -0,0 +1,88 @@
SectionVerb {
EnableSequence [
disdevall ""
]
}
If.dmic {
Condition {
Type String
Empty "${var:DeviceDmic}"
}
False.SectionDevice."Mic" {
Comment "Digital Microphone"
Value {
CapturePriority 100
CapturePCM "hw:${CardId},${var:DeviceDmic}"
CaptureChannels 2
}
}
}
SectionDevice."Speaker" {
Comment "Speakers"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='Speaker Switch' on"
]
DisableSequence [
cset "name='Speaker Switch' off"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
# The es8316 only has a HP-amp which is muxed to the speaker
# or to the headpones output
PlaybackMixerElem "Headphone Mixer"
PlaybackMasterElem "DAC"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
ConflictingDevice [
"Speaker"
]
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "Headphone Mixer"
PlaybackMasterElem "DAC"
JackControl "Headphone Jack"
JackHWMute "Speaker"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
EnableSequence [
cset "name='Differential Mux' lin1-rin1"
cset "name='Headset Mic Switch' on"
cset "name='Digital Mic Mux' 'dmic disable'"
cset "name='Internal Mic Switch' on"
]
DisableSequence [
cset "name='Headset Mic Switch' on"
cset "name='Internal Mic Switch' off"
]
Value {
CapturePriority 300
CapturePCM "hw:${CardId}"
CaptureMixerElem "ADC PGA Gain"
CaptureMasterElem "ADC"
JackControl "Headset Mic Jack"
}
}

View File

@ -0,0 +1,33 @@
Syntax 6
Define.DeviceDmic "$${find-device:type=pcm,stream=capture,field=id,regex='dmic'}"
BootSequence [
# Setup muxes / switches
cset "name='Left Headphone Mixer Left DAC Switch' on"
cset "name='Right Headphone Mixer Right DAC Switch' on"
# Set digital mix mux to "dmic disable"
# That doesn't affect dmic, but other values mute headset mic
cset "name='Digital Mic Mux' 0"
# Set HP vol to 0 dB
cset "name='Headphone Playback Volume' 100%"
cset "name='Headphone Mixer Volume' 100%"
# Set DAC vol
cset "name='DAC Playback Volume' 70%"
# LDATA TO LDAC, RDATA TO RDAC
cset "name='DAC Source Mux' 0"
# Disable Auto Level Control
cset "name='ALC Capture Switch' off"
# Set capture vol
cset "name='ADC Capture Volume' 70%"
]
SectionUseCase."HiFi" {
File "/AMD/acp3x-es83xx/HiFi.conf"
Comment "Play and record HiFi quality Music"
}

View File

@ -0,0 +1,144 @@
If.jelboz {
Condition {
Type RegexMatch
Regex "^(Jelboz|Jelboz360|Shuboz)$"
String "${sys:devices/virtual/dmi/id/product_name}"
}
True.Define.volume 3
False.Define.volume 2
}
SectionVerb {
EnableSequence [
cset "name='Headphone Jack Switch' off"
cset "name='HPOL Playback Switch' off"
cset "name='HPOR Playback Switch' off"
cset "name='Stereo1 DAC MIXL DAC L1 Switch' 0"
cset "name='Stereo1 DAC MIXR DAC R1 Switch' 0"
cset "name='Stereo1 ADC L Mux' 0"
cset "name='STO1 ADC Capture Switch' on"
cset "name='RECMIX1L CBJ Switch' 1"
cset "name='IF1 01 ADC Swap Mux' 2"
cset "name='CBJ Boost Volume' ${var:volume}"
cset "name='Stereo1 ADC L1 Mux' 1"
cset "name='Stereo1 ADC R1 Mux' 1"
cset "name='Stereo1 ADC MIXL ADC2 Switch' 0"
cset "name='Stereo1 ADC MIXR ADC2 Switch' 0"
cset "name='Stereo1 ADC MIXL ADC1 Switch' 1"
cset "name='Stereo1 ADC MIXR ADC1 Switch' 1"
]
}
SectionDevice."Speaker" {
Comment "Speaker"
Value {
PlaybackPCM "hw:${CardId},1"
PlaybackPriority 200
}
EnableSequence [
cset "name='Spk Switch' on"
]
DisableSequence [
cset "name='Spk Switch' off"
]
}
SectionDevice."Headphones" {
Comment "Headphones"
Value {
PlaybackPCM "hw:${CardId},0"
PlaybackPriority 300
PlaybackMixerElem "DAC1"
JackControl "Headphone Jack"
}
EnableSequence [
cset "name='Headphone Jack Switch' on"
cset "name='HPOL Playback Switch' 1"
cset "name='HPOR Playback Switch' 1"
]
DisableSequence [
cset "name='Headphone Jack Switch' off"
cset "name='HPOL Playback Switch' 0"
cset "name='HPOR Playback Switch' 0"
]
}
If.1mic {
Condition {
Type String
Empty "${var:1mic}"
}
True {
SectionDevice."Mic1" {
Comment "Front Microphone"
ConflictingDevice [
"Mic2"
]
Value {
CapturePCM "hw:${CardId},2"
CapturePriority 200
}
EnableSequence [
cset "name='Dmic Mux' Front Mic"
]
}
SectionDevice."Mic2" {
Comment "Rear Microphone"
ConflictingDevice [
"Mic1"
]
Value {
CapturePCM "hw:${CardId},2"
CapturePriority 100
}
EnableSequence [
cset "name='Dmic Mux' Rear Mic"
]
}
SectionDevice."Mic3" {
Comment "Microphone"
Value {
CapturePCM "hw:${CardId},0"
CapturePriority 300
CaptureMixerElem "Headset Mic"
JackControl "Headset Mic Jack"
}
EnableSequence [
cset "name='Headset Mic Switch' on"
]
DisableSequence [
cset "name='Headset Mic Switch' off"
]
}
}
False {
SectionDevice."Mic1" {
Comment "Internal Microphone"
Value {
CapturePCM "hw:${CardId},2"
CapturePriority 200
}
EnableSequence [
cset "name='Dmic Mux' Front Mic"
]
}
SectionDevice."Mic2" {
Comment "Microphone"
Value {
CapturePCM "hw:${CardId},0"
CapturePriority 300
CaptureMixerElem "Headset Mic"
JackControl "Headset Mic Jack"
}
EnableSequence [
cset "name='Headset Mic Switch' on"
]
DisableSequence [
cset "name='Headset Mic Switch' off"
]
}
}
}

View File

@ -0,0 +1,72 @@
# Based on:
# https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/ad560b208139b80e97a7c2d39c7bfea1dcc29da9/overlay-zork/chromeos-base/chromeos-bsp-zork/files/
# https://chromium.googlesource.com/chromiumos/project/+/f1387fd5f4effe236dd2a8e6e2b8e665eb2a6cfb/zork/
Syntax 4
Define { Found="" 1mic="" }
If.zork {
Condition {
Type String
String1 "Google_Zork"
String2 "${sys:devices/virtual/dmi/id/product_family}"
}
True {
If.1mic {
Condition {
Type RegexMatch
Regex "^(Berknip|Dirinboz|Gumboz|Jelboz|Trembyle|Woomax)$"
String "${sys:devices/virtual/dmi/id/product_name}"
}
True.Define { Found=y 1mic=y }
}
If.2mic {
Condition {
Type RegexMatch
Regex "^(Dalboz|Ezkinil|Jelboz360|Morphius)$"
String "${sys:devices/virtual/dmi/id/product_name}"
}
True.Define.Found y
}
If.shuboz {
Condition {
Type String
String1 "Shuboz"
String2 "${sys:devices/virtual/dmi/id/product_name}"
}
True {
If.shuboz_jelboz {
Condition {
Type RegexMatch
Regex "^sku(1518731265|1518731266|1518731267|1518731268|1518731269|1518731270|1518731271|1518731272|1518731273|1518731274|1518731275|1518731276|1518731277|1518731278|2147483647)$"
String "${sys:devices/virtual/dmi/id/product_sku}"
}
True.Define { Found=y 1mic=y }
}
If.shuboz_jelboz360 {
Condition {
Type RegexMatch
Regex "^sku(1518862337|1518862338|1518862339|1518862340)$"
String "${sys:devices/virtual/dmi/id/product_sku}"
}
True.Define.Found y
}
}
}
}
}
If.found {
Condition {
Type String
Empty "${var:Found}"
}
False.SectionUseCase."HiFi" {
File "/AMD/acp3xalc5682m98/HiFi.conf"
Comment "Default"
}
}

View File

@ -0,0 +1,136 @@
Macro.apcmremap.CtlRemapMonoToStereoVolSw {
Type Volume
Stereo "Analog PCM"
MonoL "Left Analog PCM"
MonoR "Right Analog PCM"
}
Macro.dpcmremap.CtlRemapMonoToStereoVolSw {
Type Volume
Stereo "Digital PCM"
MonoL "Left Digital PCM"
MonoR "Right Digital PCM"
}
SectionVerb {
EnableSequence [
disdevall ""
cset "name='ADC Phase Switch' 1"
cset "name='BIQ Coefficients' 0x03,0x5a,0x00,0x06,0xfc,0xac,0x00,0x00,0xfe,0x58,0x00,0x00,0x03,0x50,0x00,0x06,0xfe,0x58,0x00,0x08"
cset "name='Left PCM Source' DSP"
cset "name='Right PCM Source' DSP"
]
Value {
TQ "HiFi"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='Headphone Switch' on"
]
DisableSequence [
cset "name='Headphone Switch' off"
]
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},0"
JackControl "Headphone Jack"
PlaybackMixerElem "Headphone"
PlaybackMasterElem "Digital Playback"
}
}
SectionDevice."Speaker" {
Comment "Speaker"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='Left DSP RX1 Source' ASPRX1"
cset "name='Right DSP RX1 Source' ASPRX2"
cset "name='Left DSP RX2 Source' ASPRX1"
cset "name='Right DSP RX2 Source' ASPRX2"
cset "name='Left DSP1 Preload Switch' 1"
cset "name='Right DSP1 Preload Switch' 1"
]
DisableSequence [
cset "name='Left DSP RX1 Source' Zero"
cset "name='Right DSP RX1 Source' Zero"
cset "name='Left DSP RX2 Source' Zero"
cset "name='Right DSP RX2 Source' Zero"
cset "name='Left DSP1 Preload Switch' 0"
cset "name='Right DSP1 Preload Switch' 0"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId},1"
PlaybackMixerElem "Digital PCM"
PlaybackMasterElem "Analog PCM"
PlaybackVolume "Digital PCM Volume"
}
}
SectionDevice."Mic" {
Comment "Internal Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='Int Mic Switch' on"
cset "name='DMIC Enable Switch' on"
]
DisableSequence [
cset "name='Int Mic Switch' off"
cset "name='DMIC Enable Switch' off"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId},0"
CaptureMixerElem "Int Mic"
CaptureVolume "Mic Volume"
CaptureSwitch "Int Mic Switch"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='Headset Mic Switch' on"
]
DisableSequence [
cset "name='Headset Mic Switch' off"
]
Value {
CapturePriority 300
CapturePCM "hw:${CardId},0"
CaptureMixerElem "Headset Mic"
CaptureVolume "Mic Volume"
CaptureSwitch "Headset Mic Switch"
JackControl "Headset Mic Jack"
}
}

View File

@ -0,0 +1,92 @@
Syntax 6
Comment "Vangogh internal card"
#
# Macro CtlRemapMonoToStereoVolSw - join two mono controls into one stereo
#
# Arguments:
# Type - Volume or Switch
# Stereo - Name of the stereo control to be created
# MonoL - Name of the mono control to be used as Left channel
# MonoR - Name of the mono control to be used as Right channel
#
DefineMacro.CtlRemapMonoToStereoVolSw {
LibraryConfig.remap.Config {
ctl.default.map."name='${var:__Stereo} ${var:__Type}'" {
"name='${var:__MonoL} ${var:__Type}'".vindex.0 0
"name='${var:__MonoR} ${var:__Type}'".vindex.1 0
}
}
}
#
# Currently restricted to Steam Deck hardware.
#
If.jupiter {
Condition {
Type String
String1 "Jupiter"
String2 "${sys:devices/virtual/dmi/id/product_name}"
}
True {
SectionUseCase."HiFi" {
File "/AMD/acp5x/HiFi.conf"
Comment "Default"
}
BootSequence [
cset "name='Digital Playback Volume' 252"
cset "name='Left Analog PCM Volume' 17"
cset "name='Right Analog PCM Volume' 17"
cset "name='Left Digital PCM Volume' 870"
cset "name='Right Digital PCM Volume' 870"
cset "name='Headphone Volume' 2"
cset "name='Digital Playback Volume' 192"
cset "name='Mic Volume' 252"
cset "name='Frontend PGA Volume' 27"
]
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"
}
}
#
# Currently restricted to Steam Deck OLED hardware.
#
If.galileo {
Condition {
Type String
String1 "Galileo"
String2 "${sys:devices/virtual/dmi/id/product_name}"
}
True {
SectionUseCase."HiFi" {
If.upstream {
Condition {
Type ControlExists
Control "name='Left Analog PCM Volume'"
}
True.File "HiFi-upstream.conf"
False.File "HiFi.conf"
}
Comment "Default"
}
BootSequence [
cset "name='Digital Playback Volume' 252"
cset "name='Left Analog PCM Volume' 17"
cset "name='Right Analog PCM Volume' 17"
cset "name='Left Digital PCM Volume' 870"
cset "name='Right Digital PCM Volume' 870"
cset "name='Headphone Volume' 2"
cset "name='Digital Playback Volume' 192"
cset "name='Mic Volume' 252"
cset "name='Frontend PGA Volume' 27"
]
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"
}
}

View File

@ -0,0 +1,53 @@
SectionDevice."Speaker" {
Comment "Speaker"
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId},2"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},0"
PlaybackMixerElem "Headphone"
JackControl "Headphone Jack"
}
EnableSequence [
cset "name='Headphone Switch' on"
]
DisableSequence [
cset "name='Headphone Switch' off"
]
}
SectionDevice."Mic" {
Comment "Internal Microphone"
Value {
CapturePriority 100
CapturePCM "hw:${CardId},4"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
Value {
CapturePriority 200
CapturePCM "hw:${CardId},1"
CaptureMixerElem "Headset Mic"
JackControl "Headset Mic Jack"
}
EnableSequence [
cset "name='Headset Mic Switch' on"
cset "name='Mic Switch' on"
]
DisableSequence [
cset "name='Headset Mic Switch' off"
cset "name='Mic Switch' off"
]
}

View File

@ -0,0 +1,8 @@
Syntax 6
SectionUseCase."HiFi" {
File "HiFi.conf"
Comment "Default"
}
Include.codec-init.File "/codecs/da7219/init.conf"

View File

@ -0,0 +1,109 @@
SectionVerb {
EnableSequence [
cset "name='AIF2 Digital DAC Playback Switch' off"
cset "name='AIF2 ADC Mixer ADC Capture Switch' off"
]
}
SectionDevice."Speaker" {
Comment "Internal speaker"
EnableSequence [
cset "name='Line Out Playback Switch' on"
]
DisableSequence [
cset "name='Line Out Playback Switch' off"
]
Value {
PlaybackMixerElem "Line Out"
PlaybackPriority 300
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Earpiece" {
Comment "Internal Earpiece"
EnableSequence [
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
cset "name='Earpiece Playback Switch' on"
]
DisableSequence [
cset "name='Earpiece Playback Switch' off"
cset "name='AIF1 DA0 Stereo Playback Route' Stereo"
]
Value {
PlaybackMixerElem "Earpiece"
PlaybackPriority 200
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Mic" {
Comment "Internal Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='Mic1 Capture Switch' on"
]
DisableSequence [
cset "name='Mic1 Capture Switch' off"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId},0"
CaptureVolume "ADC Capture Volume"
CaptureSwitch "Mic1 Capture Switch"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='Mic2 Capture Switch' on"
]
DisableSequence [
cset "name='Mic2 Capture Switch' off"
]
Value {
CapturePriority 500
CapturePCM "hw:${CardId},0"
CaptureVolume "ADC Capture Volume"
CaptureSwitch "Mic2 Capture Switch"
JackControl "Headset Microphone Jack"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
EnableSequence [
cset "name='Headphone Playback Switch' on"
]
DisableSequence [
cset "name='Headphone Playback Switch' off"
]
Value {
PlaybackMixerElem "Headphone"
PlaybackPriority 500
PlaybackPCM "hw:${CardId},0"
JackControl "Headphone Jack"
}
}

View File

@ -0,0 +1,74 @@
Syntax 2
# To understand (or propose bug reports) for the different
# parts of these configuration files, see:
# https://www.alsa-project.org/alsa-doc/alsa-lib/group__ucm__conf.html
# PinePhone-specific audio card structure help:
# https://files.pine64.org/doc/PinePhone/PinePhone%20v1.2%20Released%20Schematic.pdf
# https://xnux.eu/devices/feature/audio-pp.html
# General PinePhone help:
# https://wiki.pine64.org/index.php/PinePhone
SectionUseCase."HiFi" {
File "/Allwinner/A64/PinePhone/HiFi.conf"
Comment "Play HiFi quality music"
}
SectionUseCase."Voice Call" {
File "/Allwinner/A64/PinePhone/VoiceCall.conf"
Comment "Make a phone call"
}
FixedBootSequence [
# Routing.
cset "name='ADC Digital DAC Playback Switch' off"
cset "name='AIF1 DA0 Stereo Playback Route' Stereo"
cset "name='AIF1 Data Digital ADC Capture Switch' on"
cset "name='AIF1 Slot 0 Digital DAC Playback Switch' on"
cset "name='AIF2 DAC Source Playback Route' AIF2"
# AIF2 (Modem) is mono.
cset "name='AIF2 DAC Stereo Playback Route' Mix Mono"
cset "name='AIF3 ADC Source Capture Route' None"
cset "name='DAC Playback Switch' on"
# Routes DACR->MIXL and DACL->MIXR => MIXL are MIXR are identical mono-mix of the DAC.
cset "name='DAC Reversed Playback Switch' on"
cset "name='Earpiece Source Playback Route' Left Mixer"
cset "name='Headphone Source Playback Route' DAC"
# The Pinephone speaker is mono.
cset "name='Line Out Source Playback Route' Mono Differential"
]
BootSequence [
# Playback volumes.
cset "name='AIF1 DA0 Playback Volume' 160"
cset "name='AIF2 DAC Playback Volume' 160"
cset "name='DAC Playback Volume' 160"
cset "name='Earpiece Playback Volume' 100%"
cset "name='Headphone Playback Volume' 70%"
cset "name='Line Out Playback Volume' 100%"
cset "name='Mic2 Boost Volume' 1"
# Capture volumes.
cset "name='ADC Capture Volume' 160"
cset "name='AIF1 AD0 Capture Volume' 160"
cset "name='AIF2 ADC Capture Volume' 160"
]
SectionDefaults [
# Switch playback off.
cset "name='Earpiece Playback Switch' off"
cset "name='Headphone Playback Switch' off"
cset "name='Line In Playback Switch' off"
cset "name='Line Out Playback Switch' off"
cset "name='Mic1 Playback Switch' off"
cset "name='Mic2 Playback Switch' off"
# Switch capture off.
cset "name='Line In Capture Switch' off"
cset "name='Mic1 Capture Switch' off"
cset "name='Mic2 Capture Switch' off"
cset "name='Mixer Capture Switch' off"
cset "name='Mixer Reversed Capture Switch' off"
]

View File

@ -0,0 +1,115 @@
SectionVerb {
EnableSequence [
cset "name='AIF2 Digital DAC Playback Switch' on"
cset "name='AIF2 ADC Mixer ADC Capture Switch' on"
cset "name='AIF2 ADC Stereo Capture Route' Mix Mono"
]
Value {
PlaybackRate 8000
}
}
SectionDevice."Speaker" {
Comment "Internal speaker"
EnableSequence [
cset "name='Line Out Playback Switch' on"
]
DisableSequence [
cset "name='Line Out Playback Switch' off"
]
Value {
PlaybackMixerElem "Line Out"
PlaybackPriority 300
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Earpiece" {
Comment "Internal Earpiece"
EnableSequence [
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
cset "name='Earpiece Playback Switch' on"
]
DisableSequence [
cset "name='Earpiece Playback Switch' off"
cset "name='AIF1 DA0 Stereo Playback Route' Stereo"
]
Value {
PlaybackMixerElem "Earpiece"
PlaybackPriority 500
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Mic" {
Comment "Internal Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='Mic1 Capture Switch' on"
]
DisableSequence [
cset "name='Mic1 Capture Switch' off"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId},0"
CaptureVolume "ADC Capture Volume"
CaptureSwitch "Mic1 Capture Switch"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='Mic2 Capture Switch' on"
]
DisableSequence [
cset "name='Mic2 Capture Switch' off"
]
Value {
CapturePriority 500
CapturePCM "hw:${CardId},0"
CaptureVolume "ADC Capture Volume"
CaptureSwitch "Mic2 Capture Switch"
JackControl "Headset Microphone Jack"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
EnableSequence [
cset "name='Headphone Playback Switch' on"
]
DisableSequence [
cset "name='Headphone Playback Switch' off"
]
Value {
PlaybackMixerElem "Headphone"
PlaybackPriority 500
PlaybackPCM "hw:${CardId},0"
JackControl "Headphone Jack"
}
}

View File

@ -0,0 +1,40 @@
SectionDevice."Line" {
Comment "Analog Lineout"
EnableSequence [
cset "name='AIU ACODEC SRC' I2S"
cset "name='AIU ACODEC OUT EN Switch' 1"
cset "name='ACODEC Playback Switch' 1"
]
DisableSequence [
cset "name='ACODEC Playback Switch' 0"
cset "name='AIU ACODEC OUT EN Switch' 0"
cset "name='AIU ACODEC SRC' DISABLED"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId},0"
PlaybackChannels 2
PlaybackVolume "ACODEC Playback Volume"
PlaybackMixerElem "ACODEC"
}
}
SectionDevice."HDMI" {
Comment "HDMI"
EnableSequence [
cset "name='AIU HDMI CTRL SRC' I2S"
]
DisableSequence [
cset "name='AIU HDMI CTRL SRC' DISABLED"
]
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},0"
}
}

View File

@ -0,0 +1,31 @@
# Use case for the p241 Amlogic s805x reference design
Syntax 3
SectionUseCase."HiFi" {
File "/Amlogic/p241/p241-HiFi.conf"
Comment "Play HiFi quality Music"
}
FixedBootSequence [
cset "name='AIU SPDIF SRC SEL' SPDIF"
]
BootSequence [
cset "name='AIU ACODEC I2S Lane Select' 0"
cset "name='ACODEC Playback Channel Mode' Stereo"
cset "name='ACODEC Playback Volume' 80%"
cset "name='ACODEC Ramp Rate' Fast"
cset "name='ACODEC Volume Ramp Switch' on"
cset "name='ACODEC Mute Ramp Switch' on"
cset "name='ACODEC Unmute Ramp Switch' on"
cset "name='ACODEC Right DAC Sel' Right"
cset "name='ACODEC Left DAC Sel' Left"
]
SectionDefaults [
cset "name='ACODEC Playback Switch' off"
cset "name='AIU ACODEC OUT EN Switch' off"
cset "name='AIU ACODEC SRC' DISABLED"
cset "name='AIU HDMI CTRL SRC' DISABLED"
]

View File

@ -0,0 +1,121 @@
Overview
--------
UCM works on top of the standard ALSA subsystem. If there is something
missing or non-working, it usually means that UCM describes the devices
and required control sequences in an incomplete or a wrong way.
It is not required to be a developer to test your hardware.
Use latest UCM configuration
----------------------------
The archive can be obtained from
https://github.com/alsa-project/alsa-ucm-conf/archive/refs/heads/master.tar.gz
or fetched from github https://github.com/alsa-project/alsa-ucm-conf .
The default path for ucm2 configuration is `/usr/share/alsa/ucm2`. This
path may be redirected temporary to the latest configuration tree like:
````
mv /usr/share/alsa/ucm2 /usr/share/alsa/ucm2.distro
ln -s /NEW/UCM2/TREE/PATH /usr/share/alsa/ucm2
````
It is necessary to restart pulseaudio or pipewire to use the new ucm2
configuration.
The configuration revert is simple:
````
rm /usr/share/alsa/ucm2
mv /usr/share/alsa/ucm2.distro /usr/share/alsa/ucm2
````
Useful commands and tools
-------------------------
````
alsa-info.sh --no-upload # dump the system / ALSA state information
aplay -l # dump playback ALSA cards and PCM devices
arecord -l # dump capture ALSA cards and PCM devices
amixer -c 0 contents # dump all controls for the ALSA card (zero = card number)
amixer -c 0 events # dump events for controls (zero = card number)
# useful for Jack detection
amixer -c 0 scontents # dump simple mixer controls for the ALSA card (zero = card number)
alsamixer -c 0 # set native ALSA mixer (zero = card number)
speaker-test -c hw:CARD=0,DEV=0 # playback test
arecord -D hw:CARD=0,DEV=0 -f dat -vvv a.wav # capture test
alsaucm -c hw:0 dump text # dump the UCM configuration (zero = card number)
spa-acp-tool -vvv -c 0 # pipewire audio profile test tool (zero = card number)
````
The components for the UCM device
---------------------------------
1) ALSA PCM device
2) ALSA Jack control name (optional, if available - for the presence detection)
3) Simple mixer control name (optional, if available - for the hardware volume control)
Example of the UCM configuration:
````
Value {
PlaybackPCM "hw:${CardId},0" # equivalent to hw:0,0 (for the first sound card)
JackControl "Speakers Jack" # should be in 'amixer -c 0 contents' dump
PlaybackMixerElem "Speaker" # Speaker bar should be in 'alsamixer -c 0'
}
````
Checking of the corresponding ALSA PCM device
---------------------------------------------
Use `aplay -l` or `capture -l` to list the PCM devices in the system. Pick
the device numbers for the tested ALSA soundcard and substitute those values
for the playback test (`speaker-test -c hw:CARD=0,DEV=0`) and capture test
(`arecord -D hw:CARD=0,DEV=0 -f dat -vvv a.wav`) commands.
Note: If a sound server is running, it should be suspended (see
`man pasuspender` for an example or manage appropriate services or
sockets using systemd - systemctl).
Checking of the corresponding ALSA Jack control
-----------------------------------------------
Use `amixer -c 0 events` (replace zero with the corresponding ALSA card
number) command and watch '??? Jack' control changes when you plug and
unplug the correspoding sound equipment to the tested physical jack.
Checking of the corresponding simple mixer name
-----------------------------------------------
Use `alsamixer -c 0` (replace zero with the corresponding ALSA card
number) command and try to find the corresponding bar which controls the
volume when the PCM device is active. It is recommended to open the
alsamixer tool in a separate terminal window and do the PCM tests in
another.
Testing changes in the UCM configuration
----------------------------------------
The sound server must be restarted to reload the UCM configuration. For
PipeWire, the command `systemctl --user restart wireplumber` is sufficient.
To check the configuration syntax, use `alsaucm -c hw:0 dump text` command
(replace zero with the corresponding ALSA card number). This command should
not return an error.
Notes
-----
Some special hardware (mostly from the ASoC /ALSA SoC/ tree) may require
special ALSA control initialization sequences. In this case, the driver
developers should provide the hints.
The `_ucmXXXX.` prefixes in the UCM dumps are referring the private
ALSA device names - to test those devices, just remove this prefix. It
will not work for special devices defined only in UCM configuration files.
If you like to test this special alsa-lib configuration, you may dump the
alsa-lib configuration using `alsaucm -c hw:0 get _alibcfg` and put the
configuration to `~/.asoundrc` for example.

View File

@ -0,0 +1,15 @@
Comment "HDAudio with dual HD-audio codecs"
SectionUseCase."HiFi" {
File "/HDA/DualCodecs/HiFi.conf"
Comment "Default"
}
Include.init1.File "/HDA/init.conf"
BootSequence [
cset "name='Front Playback Volume' 100%"
cset "name='Front Playback Switch' on"
cset "name='Rear-Panel Capture Volume' 100%"
cset "name='Rear-Panel Capture Switch' on"
cset "name='Input Source' 'Rear Mic'"
]

View File

@ -0,0 +1,160 @@
SectionVerb {
Value {
TQ "HiFi"
}
EnableSequence [
cset "name='Front Playback Switch' off"
cset "name='Rear-Panel Capture Switch' off"
cset "name='Headphone Playback Switch' off"
]
DisableSequence [
cset "name='Front Playback Switch' off"
cset "name='Front-Panel Capture Switch' off"
cset "name='Rear-Panel Capture Switch' off"
]
}
If.speaker {
Condition {
Type ControlExists
Control "name='Speaker Playback Switch'"
}
True {
SectionVerb {
EnableSequence [
cset "name='Speaker Playback Switch' on"
]
DisableSequence [
cset "name='Speaker Playback Switch' off"
]
}
SectionDevice."Speaker" {
Comment "Speaker"
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId},4"
PlaybackMixerElem "Speaker"
}
DisableSequence [
cset "name='Speaker Playback Switch' off"
]
ConflictingDevice [
"Headphones"
]
}
}
}
SectionDevice."Line1" {
Comment "Line Out"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId}"
}
If.0 {
Condition {
Type ControlExists
Control "name='Front Playback Switch'"
}
True.Value.PlaybackMixerElem "Front"
}
# make S/PDIF output working when no analog jacks are connected
If.speaker {
Condition {
Type ControlExists
Control "name='Speaker Playback Switch'"
}
True.If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='Line Out Front Jack'"
}
True.Value.JackControl "Line Out Front Jack"
False.Value.JackControl "Line Out Jack"
}
}
}
SectionDevice."Headphones" {
Comment "Headphones"
EnableSequence [
cset "name='Headphone Playback Switch' on"
]
DisableSequence [
cset "name='Headphone Playback Switch' off"
]
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId},4"
PlaybackMixerElem "Headphone"
JackControl "Front Headphone Jack"
}
If.speaker {
Condition {
Type ControlExists
Control "name='Speaker Playback Switch'"
}
True.Value.JackHWMute "Speaker"
}
}
SectionDevice."Line2" {
Comment "Rear Line In"
ConflictingDevice [
"Mic2"
]
EnableSequence [
cset "name='Input Source' Line"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId}"
CaptureMixerElem "Rear-Panel"
CaptureMasterElem "Line Boost"
JackControl "Line Jack"
}
}
SectionDevice."Mic2" {
Comment "Rear Microphone"
Value {
CapturePriority 300
CapturePCM "hw:${CardId}"
CaptureMixerElem "Rear-Panel"
CaptureMasterElem "Rear Mic Boost"
JackHWMute "Line2"
JackControl "Rear Mic Jack"
}
EnableSequence [
cset "name='Input Source' 'Rear Mic'"
]
}
SectionDevice."Mic1" {
Comment "Front Microphone"
Value {
CapturePriority 100
CapturePCM "hw:${CardId},4"
CaptureMixerElem "Front-Panel"
CaptureMasterElem "Front Mic Boost"
JackControl "Front Mic Jack"
}
}

View File

@ -0,0 +1,4 @@
CapturePCM "hw:${CardId}"
CaptureMixerElem "Capture"
CaptureVolume "Capture Volume"
CaptureSwitch "Capture Switch"

View File

@ -0,0 +1,71 @@
Syntax 6
Define.Use "" # a non-empty string to use UCM configuration for HDA devices
Define.Done "" # a non-empty string to skip the end error
Define.AcpCardId "$${find-card:field=name,return=id,regex='^acp(|6[23x])$'}"
Define.DeviceMic "Mic"
If.dualcodec {
Condition {
Type String
Haystack "${CardLongName}"
Needle "DualCodecs"
}
True {
Define.Done y
Define.AcpCardId ""
Include.dual.File "/HDA/DualCodecs/DualCodecs.conf"
}
}
If.acp {
Condition {
Type String
Empty "${var:AcpCardId}"
}
False {
Define.Use y
Define.DeviceMic "Mic2"
}
}
If.use {
Condition {
Type String
Empty "${var:Use}"
}
False {
Define.Done y
SectionUseCase."HiFi" {
File "/HDA/HiFi.conf"
Comment "Play HiFi quality Music"
}
If.analog {
Condition {
Type ControlExists
Control "name='Master Playback Switch'"
}
True {
Include.init.File "/HDA/init.conf"
FixedBootSequence [
cset-new "name='Mic ACP LED Capture Switch' type=bool,count=1 off"
exec "-/sbin/modprobe snd_ctl_led"
sysw "-/class/sound/ctl-led/mic/card${CardNumber}/attach:Mic ACP LED Capture Switch"
sysw "-/class/sound/ctl-led/mic/card${CardNumber}/detach:Capture Switch"
]
}
}
}
}
If.err {
Condition {
Type String
Empty "${var:Done}"
}
True.Error "UCM is not supported for this HDA model (${CardLongName})"
}

View File

@ -0,0 +1,57 @@
# HDA HDMI devices
Include.hdmi.File "/codecs/hda/hdmi.conf"
If.hdmi1 {
Condition { Type AlwaysTrue }
True.Macro.hdmi1.HDMI {
Number 1
Device 3
Priority 1100
}
}
If.hdmi2 {
Condition { Type AlwaysTrue }
True.Macro.hdmi2.HDMI {
Number 2
Device 7
Priority 1200
}
}
If.hdmi3 {
Condition { Type AlwaysTrue }
True.Macro.hdmi3.HDMI {
Number 3
Device 8
Priority 1300
}
}
If.hdmi4 {
Condition { Type AlwaysTrue }
True.Macro.hdmi4.HDMI {
Number 4
Device 9
Priority 1400
}
}
If.hdmi5 {
Condition { Type AlwaysTrue }
True.Macro.hdmi5.HDMI {
Number 5
Device 10
Priority 1500
}
}
If.hdmi6 {
Condition { Type AlwaysTrue }
True.Macro.hdmi5.HDMI {
Number 6
Device 11
Priority 1600
}
}

View File

@ -0,0 +1,10 @@
SectionDevice."Mic1" {
Comment "Digital Microphone"
Value {
CapturePriority 100
CapturePCM "hw:${var:AcpCardId}"
CaptureMixerElem "Mic ACP LED"
CaptureSwitch "Mic ACP LED Capture Switch"
}
}

View File

@ -0,0 +1,327 @@
# Generic HDA devices for analog I/O
Define.FrontMicName ""
Define.FrontMicJack ""
Define.DeviceFrontMic ""
Define.LineDevice ""
Define.hpvol "Headphone"
Define.hpjack "Headphone Jack"
Define.loctl "Line"
Define.lovol "Line"
If.imicname {
Condition {
Type ControlExists
Control "name='Internal Mic Boost Volume'"
}
True.Define {
FrontMicName "Internal"
}
}
If.fmicname {
Condition {
Type ControlExists
Control "name='Front Mic Playback Switch'"
}
True.Define {
FrontMicName "Front"
FrontMicJack "Front Mic Jack"
}
}
If.fmic {
Condition {
Type String
Empty "${var:FrontMicName}"
}
False {
If.mic2 {
Condition {
Type String
String1 "${var:DeviceMic}"
String2 "Mic2"
}
True.Define {
DeviceFrontMic "Mic3"
}
False.Define {
DeviceMic "Mic1"
DeviceFrontMic "Mic2"
}
}
}
}
If.lineout {
Condition {
Type ControlExists
Control "name='Line Out Playback Volume'"
}
True.Define {
loctl "Line Out"
lovol "Line Out"
}
}
If.linefront {
Condition {
Type ControlExists
Control "name='Front Playback Volume'"
}
True.Define {
LineDevice "1"
}
}
If.hplo {
Condition {
Type ControlExists
Control "name='Headphone+LO Playback Volume'"
}
True.Define {
hpvol "Headphone+LO"
lovol "Headphone+LO"
}
}
If.hpjack {
Condition {
Type ControlExists
Control "iface=CARD,name='Headphone Mic Jack'"
}
True.Define.hpjack "Headphone Mic Jack"
False.If.front {
Condition {
Type ControlExists
Control "iface=CARD,name='Front Headphone Jack'"
}
True.Define.hpjack "Front Headphone Jack"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
If.headphone_switch {
Condition {
Type ControlExists
Control "name='Headphone Playback Switch'"
}
True {
EnableSequence [
cset "name='Headphone Playback Switch' on"
]
DisableSequence [
cset "name='Headphone Playback Switch' off"
]
}
}
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "${var:hpvol}"
PlaybackMasterElem "Master"
PlaybackVolume "${var:hpvol} Playback Volume"
PlaybackSwitch "Headphone Playback Switch"
JackControl "${var:hpjack}"
}
}
If.spk {
Condition {
Type ControlExists
Control "name='Speaker Playback Switch'"
}
True.SectionDevice."Speaker" {
Comment "Speaker"
If.seq {
Condition {
Type ControlExists
Control "name='Bass Speaker Playback Switch'"
}
True {
EnableSequence [
cset "name='Speaker Playback Switch' on"
cset "name='Bass Speaker Playback Switch' on"
]
DisableSequence [
cset "name='Speaker Playback Switch' off"
cset "name='Bass Speaker Playback Switch' off"
]
}
False {
EnableSequence [
cset "name='Speaker Playback Switch' on"
]
DisableSequence [
cset "name='Speaker Playback Switch' off"
]
}
}
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "Speaker"
PlaybackMasterElem "Master"
PlaybackVolume "Speaker Playback Volume"
PlaybackSwitch "Speaker Playback Switch"
}
}
}
If.monomic {
Condition {
Type ControlExists
Control "name='Input Source'"
ControlEnum "Headphone Mic"
}
True {
SectionDevice."${var:DeviceMic}" {
Comment "Headphones Stereo Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='Input Source' 'Headphone Mic'"
]
Value {
CapturePriority 200
Include.value.File "/HDA/HDA-Capture-value.conf"
CaptureMasterElem "Headphone Mic Boost"
JackControl "Headphone Mic Jack"
}
}
SectionDevice."Headset" {
Comment "Headset Mono Microphone"
EnableSequence [
cset "name='Input Source' 'Headset Mic'"
]
Value {
CapturePriority 300
Include.value.File "/HDA/HDA-Capture-value.conf"
CaptureMasterElem "Headset Mic Boost"
JackControl "Headphone Mic Jack"
}
}
}
False {
SectionDevice."${var:DeviceMic}" {
Comment "Headphones Stereo Microphone"
Value {
CapturePriority 200
Include.value.File "/HDA/HDA-Capture-value.conf"
CaptureMasterElem "Mic Boost"
JackControl "Mic Jack"
}
}
}
}
If.frontmic {
Condition {
Type String
Empty "${var:DeviceFrontMic}"
}
False.SectionDevice."${var:DeviceFrontMic}" {
Comment "${var:FrontMicName} Stereo Microphone"
ConflictingDevice [
"${var:DeviceMic}"
]
Value {
CapturePriority 400
Include.value.File "/HDA/HDA-Capture-value.conf"
CaptureMasterElem "${var:FrontMicName} Mic Boost"
}
If.jack {
Condition {
Type String
Empty "${var:FrontMicJack}"
}
False.Value.JackControl "${var:FrontMicJack}"
}
}
}
If.line {
Condition {
Type ControlExists
Control "name='${var:loctl} Playback Switch'"
}
True.SectionDevice."Line${var:LineDevice}" {
Comment "Line Output"
If.conflict {
Condition {
Type String
String1 "${var:lovol}"
String2 "Headphone+LO"
}
True.ConflictingDevice [
"Headphones"
]
}
EnableSequence [
cset "name='${var:loctl} Playback Switch' on"
]
DisableSequence [
cset "name='${var:loctl} Playback Switch' off"
]
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "${var:lovol}"
PlaybackMasterElem "Master"
PlaybackVolume "${var:lovol} Playback Volume"
PlaybackSwitch "${var:loctl} Playback Switch"
JackControl "${var:loctl} Jack"
}
}
}
If.linefront {
Condition {
Type ControlExists
Control "name='Front Playback Switch'"
}
True.SectionDevice."Line2" {
Comment "Second Line Output"
ConflictingDevice [
"Line${var:LineDevice}"
]
EnableSequence [
cset "name='Front Playback Switch' on"
]
DisableSequence [
cset "name='Front Playback Switch' off"
]
Value {
PlaybackPriority 250
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "Front"
PlaybackMasterElem "Master"
PlaybackVolume "Front Playback Volume"
PlaybackSwitch "Front Playback Switch"
JackControl "Line Out Front Jack"
}
}
}

View File

@ -0,0 +1,34 @@
# Use case Configuration for sof-hda-dsp
SectionVerb {
EnableSequence [
disdevall ""
]
Value.TQ "HiFi"
}
If.analog {
Condition {
Type ControlExists
Control "name='Master Playback Switch'"
}
True {
If.acp {
Condition {
Type String
Empty "${var:AcpCardId}"
}
True.Include.analog.File "/HDA/HiFi-analog.conf"
False.Include {
acp.File "/HDA/HiFi-acp.conf"
analog.File "/HDA/HiFi-analog.conf"
}
}
}
}
If.hdmi {
Condition { Type String Empty "" }
True.Include.hdmi.File "/HDA/Hdmi.conf"
}

View File

@ -0,0 +1,52 @@
If.amute {
Condition {
Type ControlExists
Control "name='Auto-Mute Mode'"
}
True.BootSequence [
cset "name='Auto-Mute Mode' off"
]
}
If.master {
Condition {
Type ControlExists
Control "name='Master Playback Volume'"
}
True.BootSequence [
cset "name='Master Playback Volume' 60%"
cset "name='Master Playback Switch' on"
]
}
If.speaker {
Condition {
Type ControlExists
Control "name='Speaker Playback Volume'"
}
True.BootSequence [
cset "name='Speaker Playback Volume' 60%"
cset "name='Speaker Playback Switch' off"
]
}
If.headphone {
Condition {
Type ControlExists
Control "name='Headphone Playback Volume'"
}
True.BootSequence [
cset "name='Headphone Playback Volume' 60%"
cset "name='Headphone Playback Switch' off"
]
}
If.capture {
Condition {
Type ControlExists
Control "name='Capture Volume'"
}
True.BootSequence [
cset "name='Capture Volume' 60%"
]
}

View File

@ -0,0 +1,116 @@
If.bytcht_rt5640 {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht rt5640"
}
True {
Include.init.File "/codecs/rt5640/init.conf"
Include.main.File "/Intel/bytcr-rt5640/HiFi.conf"
}
}
If.bytcht_rt5651 {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht rt5651"
}
True {
Include.init.File "/codecs/rt5651/init.conf"
Include.main.File "/Intel/bytcr-rt5651/HiFi.conf"
}
}
If.bytcht_cx2072x {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht cx2072x"
}
True.Include.main.File "/Intel/bytcht-cx2072x/HiFi.conf"
}
If.bytcht_es8316 {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht es8316"
}
True.Include.main.File "/Intel/bytcht-es8316/HiFi.conf"
}
If.bytcht_rt5672 {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht rt5672"
}
True.Include.main.File "/Intel/cht-bsw-rt5672/HiFi.conf"
}
If.bytcht_nau8824 {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht nau8824"
}
True.Include.main.File "/Intel/chtnau8824/HiFi.conf"
}
If.bytcht_rt5645 {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht rt5645"
}
True {
Include.init.File "/codecs/rt5645/init.conf"
Include.main.File "/Intel/chtrt5645/HiFi.conf"
}
}
If.bytcht_rt5650 {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht rt5650"
}
True.Include.main.File "/Intel/chtrt5650/HiFi.conf"
}
If.bytcht_max98090 {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht max98090"
}
True.Include.main.File "/Intel/chtmax98090/HiFi.conf"
}
If.bytcht_wm5102 {
Condition {
Type String
Haystack "${CardName}"
Needle "bytcht wm5102"
}
True.Include.main.File "/Intel/bytcr-wm5102/HiFi.conf"
}
If.bdw_rt286 {
Condition {
Type String
Haystack "${CardName}"
Needle "bdw rt286"
}
True.Include.main.File "/Intel/broadwell-rt286/HiFi.conf"
}
If.bdw_rt5677 {
Condition {
Type String
Haystack "${CardName}"
Needle "bdw rt5677"
}
True.Include.main.File "/Intel/bdw-rt5677/HiFi.conf"
}

View File

@ -0,0 +1,9 @@
Syntax 4
SectionUseCase."HiFi" {
File "/Intel/SOF/HiFi.conf"
Comment "Play HiFi quality Music"
}
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"

View File

@ -0,0 +1,187 @@
# Use case Configuration for bdw-rt5677
# command-line sequence to switch playback/capture
# alsaucm -c bdw-rt5677 set _verb HiFi
# alsaucm -c bdw-rt5677 set _verb HiFi set _enadev Headphones
LibraryConfig.remap.Config {
ctl.default.remap {
"name='IN1 Boost'" "name='IN1 Boost Capture Volume'"
"name='IN2 Boost'" "name='IN2 Boost Capture Volume'"
}
}
SectionVerb {
EnableSequence [
cset "name='PDM1 L Mux' STO1 DAC MIX"
cset "name='PDM1 R Mux' STO1 DAC MIX"
# Adjust Master Playback volume if needed
# cset "name='Master Playback Volume' 30"
cset "name='OUT1 Playback Switch' off"
cset "name='OUT2 Playback Switch' off"
cset "name='DAC1 Playback Volume' 175"
cset "name='DAC2 Playback Volume' 175"
cset "name='DAC12 SRC Mux' STO1 DAC MIX"
cset "name='Stereo DAC MIXL ST L Switch' off"
cset "name='Stereo DAC MIXL DAC1 L Switch' off"
cset "name='Stereo DAC MIXL DAC2 L Switch' off"
cset "name='Stereo DAC MIXL DAC1 R Switch' on"
cset "name='Stereo DAC MIXR ST R Switch' off"
cset "name='Stereo DAC MIXR DAC1 R Switch' off"
cset "name='Stereo DAC MIXR DAC2 R Switch' off"
cset "name='Stereo DAC MIXR DAC1 L Switch' on"
cset "name='DAC1 MIXL Stereo ADC Switch' off"
cset "name='DAC1 MIXL DAC1 Switch' on"
cset "name='DAC1 MIXR Stereo ADC Switch' off"
cset "name='DAC1 MIXR DAC1 Switch' on"
cset "name='DAC1 Mux' IF1 DAC 01"
cset "name='Stereo1 DMIC Mux' DMIC1"
cset "name='Stereo1 ADC2 Mux' DMIC"
cset "name='Stereo1 ADC1 Mux' ADC1/2"
cset "name='Sto1 ADC MIXL ADC1 Switch' off"
cset "name='Sto1 ADC MIXL ADC2 Switch' off"
cset "name='Sto1 ADC MIXL ADC2 Switch' on"
cset "name='Sto1 ADC MIXR ADC1 Switch' off"
cset "name='Sto1 ADC MIXR ADC2 Switch' off"
cset "name='Sto1 ADC MIXR ADC2 Switch' on"
cset "name='IF1 ADC1 Mux' STO1 ADC MIX"
cset "name='IF1 ADC1 Swap Mux' L/R"
# Adjust Mic Capture Volume if needed
# cset "name='Mic Capture Volume' 30"
cset "name='ADC1 Capture Switch' on"
cset "name='ADC1 Capture Volume' 31"
cset "name='STO1 ADC Boost Volume' 2"
cset "name='Headphone Switch' off"
cset "name='Speaker Switch' on"
cset "name='Remote DMICs Switch' on"
cset "name='Mono DMIC L Mux' DMIC1"
cset "name='Mono ADC2 L Mux' DMIC"
cset "name='Mono ADC MIXL ADC1 Switch' off"
cset "name='Mono ADC MIXL ADC2 Switch' on"
cset "name='VAD ADC Mux' MONO ADC MIX L"
cset "name='IB01 Mux' VAD ADC/DAC1 FS"
cset "name='IB01 Bypass Mux' Bypass"
cset "name='Mono ADC Boost Volume' 2"
]
}
SectionDevice."Speaker" {
Comment "Speakers"
ConflictingDevice [
"Headphones"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='Speaker Switch' off"
cset "name='Stereo DAC MIXL DAC1 R Switch' off"
cset "name='Stereo DAC MIXR DAC1 L Switch' off"
cset "name='Stereo DAC MIXL DAC1 L Switch' on"
cset "name='Stereo DAC MIXR DAC1 R Switch' on"
cset "name='OUT1 Playback Switch' on"
cset "name='OUT2 Playback Switch' on"
cset "name='Headphone Switch' on"
]
DisableSequence [
cset "name='Headphone Switch' off"
cset "name='OUT1 Playback Switch' off"
cset "name='OUT2 Playback Switch' off"
cset "name='Stereo DAC MIXL DAC1 L Switch' off"
cset "name='Stereo DAC MIXR DAC1 R Switch' off"
cset "name='Stereo DAC MIXL DAC1 R Switch' on"
cset "name='Stereo DAC MIXR DAC1 L Switch' on"
cset "name='Speaker Switch' on"
]
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId}"
JackControl "Headphone Jack"
JackHWMute "Speaker"
}
}
SectionDevice."Mic" {
Comment "Internal Microphone"
ConflictingDevice [
"Headset"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId}"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='Sto1 ADC MIXL ADC2 Switch' off"
cset "name='Sto1 ADC MIXR ADC2 Switch' off"
cset "name='Local DMICs Switch' off"
cset "name='IF1 ADC1 Swap Mux' L/L"
cset "name='Sto1 ADC MIXL ADC1 Switch' on"
cset "name='Sto1 ADC MIXR ADC1 Switch' on"
cset "name='Headset Mic Switch' on"
]
DisableSequence [
cset "name='Sto1 ADC MIXL ADC1 Switch' off"
cset "name='Sto1 ADC MIXR ADC1 Switch' off"
cset "name='Headset Mic Switch' off"
cset "name='IF1 ADC1 Swap Mux' L/R"
cset "name='Sto1 ADC MIXL ADC2 Switch' on"
cset "name='Sto1 ADC MIXR ADC2 Switch' on"
cset "name='Local DMICs Switch' on"
]
Value {
CapturePriority 300
CapturePCM "hw:${CardId}"
JackControl "Mic Jack"
}
}

View File

@ -0,0 +1,9 @@
Syntax 4
SectionUseCase."HiFi" {
File "/Intel/bdw-rt5677/HiFi.conf"
Comment "Default"
}
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"

View File

@ -0,0 +1,102 @@
# Use case Configuration for broadwell-rt286
SectionDevice."Speaker" {
Comment "Speakers"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='SPO Switch' on"
cset "name='Speaker Playback Switch' on"
cset "name='Speaker Switch' on"
]
DisableSequence [
cset "name='Speaker Switch' off"
cset "name='Speaker Playback Switch' off"
cset "name='SPO Switch' off"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "DAC0"
PlaybackMasterElem "Master"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='HPO L Switch' on"
cset "name='HPO R Switch' on"
cset "name='Headphone Jack Switch' on"
]
DisableSequence [
cset "name='Headphone Jack Switch' off"
cset "name='HPO L Switch' off"
cset "name='HPO R Switch' off"
]
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "DAC0"
PlaybackMasterElem "Master"
JackDev "rt286-jack"
JackControl "Headphone Jack"
}
}
SectionDevice."Mic" {
Comment "Internal Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='ADC 0 Mux' 2"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId}"
CaptureMixerElem "ADC0"
CaptureMasterElem "Mic"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='ADC 0 Mux' 0"
cset "name='AMIC Volume' 3"
]
DisableSequence [
cset "name='AMIC Volume' 0"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId}"
CaptureMixerElem "ADC0"
CaptureMasterElem "Mic"
JackDev "rt286-jack"
JackControl "Mic Jack"
}
}

View File

@ -0,0 +1,6 @@
Syntax 2
SectionUseCase."HiFi" {
File "/Intel/broadwell-rt286/HiFi.conf"
Comment "Play HiFi quality Music"
}

View File

@ -0,0 +1,43 @@
# Usecase for device HDMI1/Display Port stereo playback on Intel SKYLAKE/KABYLAKE platforms
SectionDevice."HDMI1" {
Comment "HDMI/Display Port 1 Stereo"
Value {
PlaybackPCM "hw:${CardId},4"
PlaybackPriority 500
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=4 Jack'"
}
True {
JackControl "HDMI/DP,pcm=4 Jack"
}
False {
JackControl "HDMI/DP, pcm=4 Jack"
}
}
}
}
SectionDevice."HDMI2" {
Comment "HDMI/Display Port 2 Stereo"
Value {
PlaybackPCM "hw:${CardId},5"
PlaybackPriority 600
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=5 Jack'"
}
True {
JackControl "HDMI/DP,pcm=5 Jack"
}
False {
JackControl "HDMI/DP, pcm=5 Jack"
}
}
}
}

View File

@ -0,0 +1,112 @@
# Usecase for stereo playback Speaker and Headset, Recording on DMIC and Headset MIC.
# For Audio in I2S mode on Intel Broxton platforms
SectionVerb {
EnableSequence [
cset "name='media0_out mo dmic01_hifi_in mi Switch' 1"
]
Value {
TQ "HiFi"
}
}
SectionDevice."Speaker" {
Comment "Speaker"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='SPO Switch' 1"
cset "name='Speaker Playback Switch' 1,1"
cset "name='Speaker Switch' 1"
cset "name='HPO L Switch' 0"
cset "name='HPO R Switch' 0"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='HPO L Switch' 1"
cset "name='HPO R Switch' 1"
cset "name='Headphone Jack Switch' 1"
cset "name='Speaker Playback Switch' 0,0"
]
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId}"
JackControl "Headphone Jack"
JackHWMute "Speaker"
}
}
SectionDevice."Mic" {
Comment "Digital Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='media0_out mo dmic01_hifi_in mi Switch' 1"
cset "name='media0_out mo codec0_in mi Switch' 0"
cset "name='Mic Jack Switch' 0"
]
DisableSequence [
cset "name='media0_out mo codec0_in mi Switch' 1"
cset "name='media0_out mo dmic01_hifi_in mi Switch' 0"
cset "name='Mic Jack Switch' 1"
cset "name='ADC 0 Mux' 0"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId},1"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='media0_out mo codec0_in mi Switch' 1"
cset "name='ADC0 Capture Volume' 105,105"
cset "name='ADC 0 Mux' 0"
cset "name='Mic Jack Switch' 1"
cset "name='media0_out mo dmic01_hifi_in mi Switch' 0"
]
DisableSequence [
cset "name='media0_out mo dmic01_hifi_in mi Switch' 1"
cset "name='media0_out mo codec0_in mi Switch' 0"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId},1"
JackControl "Mic Jack"
}
}
Include.hdmi.File "/Intel/broxton-rt298/Hdmi.conf"

View File

@ -0,0 +1,41 @@
# UCM for Intel Broxton platforms
# For Audio in I2S mode
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/broxton-rt298/HiFi.conf"
Comment "Play and record HiFi quality Music"
}
SectionDefaults [
cset "name='Headphone Jack Switch' 1"
cset "name='Speaker Switch' 1"
cset "name='Speaker Playback Switch' 0,0"
cset "name='Front DAC Switch' 1"
cset "name='Front RECMIX Switch' 0"
cset "name='Mic Jack Switch' 1"
cset "name='ADC 0 Mux' 2"
cset "name='ADC 1 Mux' 0"
cset "name='DAC0 Playback Volume' 100,100"
cset "name='HPO L Switch' 0"
cset "name='HPO Mux' 0"
cset "name='HPO R Switch' 0"
cset "name='Pin 5 Mux' 1"
cset "name='Pin 6 Mux' 2"
cset "name='Pin 7 Mux' 3"
cset "name='RECMIX Beep Switch' 0"
cset "name='RECMIX Line1 Switch' 0"
cset "name='RECMIX Mic1 Switch' 0"
cset "name='SPK Mux' 0"
cset "name='SPO Switch' 1"
cset "name='codec0_out mo codec0_in mi Switch' 0"
cset "name='codec0_out mo dmic01_hifi_in mi Switch' 0"
cset "name='codec0_out mo media0_in mi Switch' 1"
cset "name='codec1_out mo codec0_in mi Switch' 0"
cset "name='codec1_out mo dmic01_hifi_in mi Switch' 0"
cset "name='codec1_out mo media0_in mi Switch' 0"
cset "name='media0_out mo codec0_in mi Switch' 1"
cset "name='media0_out mo dmic01_hifi_in mi Switch' 1"
cset "name='media0_out mo media0_in mi Switch' 0"
]

View File

@ -0,0 +1,23 @@
SectionVerb {
Include.e.File "/codecs/cx2072x/EnableSeq.conf"
Include.d.File "/codecs/cx2072x/DisableSeq.conf"
If.Controls {
Condition {
Type ControlExists
Control "name='media0_in Gain 0 Switch'"
}
Before.EnableSequence "0"
True {
Include.pe.File "/platforms/bytcr/PlatformEnableSeq.conf"
Include.pd.File "/platforms/bytcr/PlatformDisableSeq.conf"
}
}
}
Include.spk.File "/codecs/cx2072x/Speaker.conf"
Include.hp.File "/codecs/cx2072x/HeadPhones.conf"
Include.imic.File "/codecs/cx2072x/InternalMic.conf"
Include.hsmic.File "/codecs/cx2072x/HeadsetMic.conf"

View File

@ -0,0 +1,6 @@
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/bytcht-cx2072x/HiFi.conf"
Comment "Play HiFi quality Music"
}

View File

@ -0,0 +1,43 @@
If.spk {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:2"
}
True.Include.spk.File "/codecs/es8316/Speaker.conf"
}
If.mono {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:1"
}
True.Include.mspk.File "/codecs/es8316/MonoSpeaker.conf"
}
Include.hs.File "/codecs/es8316/HeadPhones.conf"
If.in1 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:in1"
}
True {
Include.mic.File "/codecs/es8316/IN1-InternalMic.conf"
Include.hsmic.File "/codecs/es8316/IN2-HeadsetMic.conf"
}
}
If.in2 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:in2"
}
True {
Include.hsmic.File "/codecs/es8316/IN1-HeadsetMic.conf"
Include.mic.File "/codecs/es8316/IN2-InternalMic.conf"
}
}

View File

@ -0,0 +1,43 @@
If.spk {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-stereo-spk"
}
True.Include.spk.File "/codecs/es8316/Speaker.conf"
}
If.mono {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-mono-spk"
}
True.Include.mspk.File "/codecs/es8316/MonoSpeaker.conf"
}
Include.hs.File "/codecs/es8316/HeadPhones.conf"
If.in1 {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-in1-mic"
}
True {
Include.mic.File "/codecs/es8316/IN1-InternalMic.conf"
Include.hsmic.File "/codecs/es8316/IN2-HeadsetMic.conf"
}
}
If.in2 {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-in2-mic"
}
True {
Include.hsmic.File "/codecs/es8316/IN1-HeadsetMic.conf"
Include.mic.File "/codecs/es8316/IN2-InternalMic.conf"
}
}

View File

@ -0,0 +1,25 @@
SectionVerb {
Include.e.File "/codecs/es8316/EnableSeq.conf"
If.Controls {
Condition {
Type ControlExists
Control "name='media0_in Gain 0 Switch'"
}
Before.EnableSequence "0"
True {
Include.pe.File "/platforms/bytcr/PlatformEnableSeq.conf"
Include.pd.File "/platforms/bytcr/PlatformDisableSeq.conf"
}
}
}
If.0 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:"
}
True.Include.comp.File "/Intel/bytcht-es8316/HiFi-Components.conf"
False.Include.long.File "/Intel/bytcht-es8316/HiFi-LongName.conf"
}

View File

@ -0,0 +1,6 @@
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/bytcht-es8316/HiFi.conf"
Comment "Play HiFi quality Music"
}

View File

@ -0,0 +1,77 @@
If.spk {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:2"
}
True.Define.HaveSpeaker "2"
}
If.mono {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:1"
}
True.Define.HaveSpeaker "1"
}
If.hp2 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-hp2:lineout"
}
True.Define.HaveHeadPhones2 "yes"
}
If.dmic1 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:dmic1"
}
True {
Define.HaveInternalMic "dmic"
Define.StereoADC2Mux "DMIC1"
}
}
If.dmic2 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:dmic2"
}
True {
Define.HaveInternalMic "dmic"
Define.StereoADC2Mux "DMIC2"
}
}
If.in1 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:in1"
}
True.Define.HaveInternalMic "in1"
}
If.in3 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:in3"
}
True.Define.HaveInternalMic "in3"
}
If.hs2 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-hs2:in1"
}
True.Define.HaveHeadsetMic2 "in1"
}

View File

@ -0,0 +1,47 @@
If.spk {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-stereo-spk"
}
True.Define.HaveSpeaker "2"
}
If.mono {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-mono-spk"
}
True.Define.HaveSpeaker "1"
}
If.dmic1 {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-dmic1-mic"
}
True {
Define.HaveInternalMic "dmic"
Define.StereoADC2Mux "DMIC1"
}
}
If.in1 {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-in1-mic"
}
True.Define.HaveInternalMic "in1"
}
If.in3 {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-in3-mic"
}
True.Define.HaveInternalMic "in3"
}

View File

@ -0,0 +1,237 @@
# Use case Configuration for bytcr-rt5640
Define.HaveAif ""
Define.HaveSpeaker ""
Define.HaveHeadPhones2 ""
Define.HaveInternalMic ""
Define.HaveHeadsetMic "yes"
Define.HaveHeadsetMic2 ""
Define.StereoADC2Mux "DMIC1"
If.DefineAif1 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "aif:1"
}
True.Define.HaveAif "1"
}
If.DefineAif2 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "aif:2"
}
True.Define.HaveAif "2"
}
If.0 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:"
}
True.Include.comp.File "/Intel/bytcr-rt5640/HiFi-Components.conf"
False.Include.long.File "/Intel/bytcr-rt5640/HiFi-LongName.conf"
}
SectionVerb {
Include.e.File "/codecs/rt5640/EnableSeq.conf"
EnableSequence [
cset "name='Speaker Switch' off"
cset "name='Headphone Switch' off"
cset "name='Headset Mic Switch' off"
cset "name='Internal Mic Switch' off"
]
If.Controls {
Condition {
Type ControlExists
Control "name='media0_in Gain 0 Switch'"
}
Before.EnableSequence "0"
True {
Include.pe.File "/platforms/bytcr/PlatformEnableSeq.conf"
Include.pd.File "/platforms/bytcr/PlatformDisableSeq.conf"
}
}
}
If.spk {
Condition {
Type String
Haystack "${var:HaveSpeaker}"
Needle "2"
}
True {
Include.spk.File "/codecs/rt5640/Speaker.conf"
SectionDevice."Speaker" {
EnableSequence [
cset "name='Speaker Switch' on"
]
DisableSequence [
cset "name='Speaker Switch' off"
]
}
}
}
If.mono {
Condition {
Type String
Haystack "${var:HaveSpeaker}"
Needle "1"
}
True {
Include.mspk.File "/codecs/rt5640/MonoSpeaker.conf"
SectionDevice."Speaker" {
EnableSequence [
cset "name='Speaker Switch' on"
]
DisableSequence [
cset "name='Speaker Switch' off"
]
}
}
}
If.hp {
Condition { Type String Empty "" }
True {
Include.hs.File "/codecs/rt5640/HeadPhones.conf"
SectionDevice."Headphones" {
EnableSequence [
cset "name='Headphone Switch' on"
]
DisableSequence [
cset "name='Headphone Switch' off"
]
}
}
}
If.hp2 {
Condition { Type String Empty "${var:HaveHeadPhones2}" }
False {
Include.hs.File "/codecs/rt5640/HeadPhones2.conf"
SectionDevice."Headphones2" {
EnableSequence [
cset "name='Line Out Switch' on"
]
DisableSequence [
cset "name='Line Out Switch' off"
]
}
}
}
If.dmic {
Condition {
Type String
Haystack "${var:HaveInternalMic}"
Needle "dmic"
}
True {
Include.dmic.File "/codecs/rt5640/DigitalMics.conf"
SectionDevice."Mic" {
EnableSequence [
cset "name='Internal Mic Switch' on"
]
DisableSequence [
cset "name='Internal Mic Switch' off"
]
}
}
}
If.in1 {
Condition {
Type String
Haystack "${var:HaveInternalMic}"
Needle "in1"
}
True {
Include.mic1.File "/codecs/rt5640/IN1-InternalMic.conf"
SectionDevice."Mic" {
EnableSequence [
cset "name='Internal Mic Switch' on"
]
DisableSequence [
cset "name='Internal Mic Switch' off"
]
}
}
}
If.in3 {
Condition {
Type String
Haystack "${var:HaveInternalMic}"
Needle "in3"
}
True {
Include.mic3.File "/codecs/rt5640/IN3-InternalMic.conf"
SectionDevice."Mic" {
EnableSequence [
cset "name='Internal Mic Switch' on"
]
DisableSequence [
cset "name='Internal Mic Switch' off"
]
}
}
}
If.hsmic {
Condition { Type String Empty "" }
True {
Include.hsmic.File "/codecs/rt5640/HeadsetMic.conf"
SectionDevice."Headset" {
EnableSequence [
cset "name='Headset Mic Switch' on"
]
DisableSequence [
cset "name='Headset Mic Switch' off"
]
}
}
}
If.hsmic2 {
Condition {
Type String
Haystack "${var:HaveHeadsetMic2}"
Needle "in1"
}
True {
Include.hsmic.File "/codecs/rt5640/HeadsetMic2-IN1.conf"
SectionDevice."Headset2" {
EnableSequence [
cset "name='Headset Mic 2 Switch' on"
]
DisableSequence [
cset "name='Headset Mic 2 Switch' off"
]
}
}
}

View File

@ -0,0 +1,16 @@
Syntax 4
SectionUseCase."HiFi" {
File "/Intel/bytcr-rt5640/HiFi.conf"
Comment "Play HiFi quality Music"
}
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"
Include.codec-init.File "/codecs/rt5640/init.conf"
FixedBootSequence [
exec "-/sbin/modprobe snd_ctl_led"
sysw "-/class/sound/ctl-led/speaker/card${CardNumber}/attach:Speaker Channel Switch"
sysw "-/class/sound/ctl-led/speaker/card${CardNumber}/attach:HP Channel Switch"
]

View File

@ -0,0 +1,85 @@
If.spk {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:2"
}
True {
Include.spk.File "/codecs/rt5651/Speaker.conf"
}
}
If.mono {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:1"
}
True {
Include.mspk.File "/codecs/rt5651/MonoSpeaker.conf"
}
}
If.headphones {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-hp:lrswap"
}
True {
Include.hp.File "/codecs/rt5651/HeadPhones-swapped.conf"
}
False {
Include.hp.File "/codecs/rt5651/HeadPhones.conf"
}
}
If.dmic {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:dmic"
}
True {
Include.dmic.File "/codecs/rt5651/DigitalMic.conf"
Include.hsmic.File "/codecs/rt5651/IN2-HeadsetMic.conf"
SectionDevice."Mic".ConflictingDevice.0 "Headset"
}
False {
Include.hsmic.File "/codecs/rt5651/IN3-HeadsetMic.conf"
}
}
If.in2 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:in2"
}
True {
Include.mic.File "/codecs/rt5651/IN2-InternalMic.conf"
}
}
If.in12 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:in12"
}
True {
Include.mic.File "/codecs/rt5651/IN12-InternalMic.conf"
}
False {
If.in1 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:in1"
}
True {
Include.mic.File "/codecs/rt5651/IN1-InternalMic.conf"
}
}
}
}

View File

@ -0,0 +1,83 @@
If.spk {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-stereo-spk"
}
True {
Include.spk.File "/codecs/rt5651/Speaker.conf"
}
}
If.mono {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-mono-spk"
}
True {
Include.mspk.File "/codecs/rt5651/MonoSpeaker.conf"
}
}
If.headphones {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-mic-hp-swapped"
}
True {
Include.hp.File "/codecs/rt5651/HeadPhones-swapped.conf"
}
False {
Include.hp.File "/codecs/rt5651/HeadPhones.conf"
}
}
If.dmic1 {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-dmic1-mic"
}
True {
Include.dmic.File "/codecs/rt5651/DigitalMic.conf"
Include.hsmic.File "/codecs/rt5651/IN2-HeadsetMic.conf"
}
False {
Include.hsmic.File "/codecs/rt5651/IN3-HeadsetMic.conf"
}
}
If.in1 {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-in1-mic"
}
True {
Include.mic.File "/codecs/rt5651/IN1-InternalMic.conf"
}
}
If.in2 {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-in2-mic"
}
True {
Include.mic.File "/codecs/rt5651/IN2-InternalMic.conf"
}
}
If.in12 {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-in12-mic"
}
True {
Include.mic.File "/codecs/rt5651/IN12-InternalMic.conf"
}
}

View File

@ -0,0 +1,33 @@
# Adapted from https://github.com/plbossart/UCM/tree/master/bytcr-rt5651
SectionVerb {
Include.e.File "/codecs/rt5651/EnableSeq.conf"
If.Controls {
Condition {
Type ControlExists
Control "name='media0_in Gain 0 Switch'"
}
Before.EnableSequence "0"
True {
Include.pe.File "/platforms/bytcr/PlatformEnableSeq.conf"
Include.pd.File "/platforms/bytcr/PlatformDisableSeq.conf"
}
}
}
If.0 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:"
}
True {
Include.comp.File "/Intel/bytcr-rt5651/HiFi-Components.conf"
}
False {
Include.long.File "/Intel/bytcr-rt5651/HiFi-LongName.conf"
}
}

View File

@ -0,0 +1,12 @@
# Adapted from https://github.com/plbossart/UCM/tree/master/bytcr-rt5651
Syntax 4
SectionUseCase."HiFi" {
File "/Intel/bytcr-rt5651/HiFi.conf"
Comment "Play HiFi quality Music"
}
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"
Include.codec-init.File "/codecs/rt5651/init.conf"

View File

@ -0,0 +1,54 @@
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"
}
}
}
If.spk {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:hpout2"
}
True.Include.hpout2.File "/codecs/wm5102/HPOut2-Speaker.conf"
False.Include.spk.File "/codecs/wm5102/Speaker.conf"
}
Include.hp.File "/codecs/wm5102/HeadPhones.conf"
If.intmic {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-intmic:in1l"
}
True.Include.intmic1.File "/codecs/wm5102/IN1-InternalMic.conf"
False.Include.intmic3.File "/codecs/wm5102/IN3-InternalMic.conf"
}
If.hsmic {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-hsmic:in2l"
}
True.Include.hsmic2.File "/codecs/wm5102/IN2-HeadsetMic.conf"
False.Include.hsmic1.File "/codecs/wm5102/IN1-HeadsetMic.conf"
}

View File

@ -0,0 +1,6 @@
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/bytcr-wm5102/HiFi.conf"
Comment "Play HiFi quality Music"
}

View File

@ -0,0 +1,155 @@
# Adapted from https://github.com/plbossart/UCM/tree/master/cht-bsw-rt5672
Define.Speaker "yes"
Define.Headphones "yes"
Define.MonoSpeaker "yes"
Define.DigitalMic1 "yes"
Define.DigitalMic2 "yes"
Define.HeadsetMic "yes"
# Figure out which components are in use on the device, we check both the
# components string (present on newer kernels) as well as checking for DMI
# strings for compatibility with older kernels. Note DMI matches for new
# models should only be added to the kernel, this UCM profile will then
# automatically pick up the info from the components string.
If.components-stereo-spk {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:2"
}
True.Define.MonoSpeaker ""
}
If.components-dmic1 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:dmic1"
}
True.Define.DigitalMic2 ""
}
If.components-dmic2 {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-mic:dmic2"
}
True.Define.DigitalMic1 ""
}
If.dmi-dmic1 {
Condition {
Type RegexMatch
String "${CardLongName}"
Regex "(LENOVO.*LenovoMiix210)|(LENOVO.*ThinkPad10)"
}
True {
Define.MonoSpeaker ""
Define.DigitalMic2 ""
}
}
If.dmi-dmic2 {
Condition {
Type RegexMatch
String "${CardLongName}"
Regex "(LENOVO.*ThinkPad8)"
}
True {
Define.MonoSpeaker ""
Define.DigitalMic1 ""
}
}
SectionVerb {
Include.e.File "/codecs/rt5672/EnableSeq.conf"
If.Controls {
Condition {
Type ControlExists
Control "name='media0_in Gain 0 Switch'"
}
Before.EnableSequence "0"
True {
Include.pe.File "/platforms/bytcr/PlatformEnableSeq.conf"
Include.pd.File "/platforms/bytcr/PlatformDisableSeq.conf"
}
}
}
If.spk {
Condition {
Type String
Empty "${var:Speaker}"
}
False.Include.spk.File "/codecs/rt5672/Speaker.conf"
}
If.mspk {
Condition {
Type String
Empty "${var:MonoSpeaker}"
}
True {
RenameDevice."Speaker1" "Speaker"
RemoveDevice."Speaker2" "Speaker2"
}
False.Include.mspk.File "/codecs/rt5672/MonoSpeaker.conf"
}
If.hp {
Condition {
Type String
Empty "${var:Headphones}"
}
#True.RemoveDevice."Headphones" "Headphones"
False.Include.hp.File "/codecs/rt5672/HeadPhones.conf"
}
If.dmic1 {
Condition {
Type String
Empty "${var:DigitalMic1}"
}
True.RemoveDevice."Mic1" "Mic1"
False {
Include.dmic1.File "/codecs/rt5672/DMIC1.conf"
If.dmic2 {
Condition {
Type "String"
Empty "${var:DigitalMic2}"
}
True.RenameDevice."Mic1" "Mic"
}
}
}
If.dmic2 {
Condition {
Type String
Empty "${var:DigitalMic2}"
}
True.RemoveDevice."Mic2" "Mic2"
False {
Include.dmic2.File "/codecs/rt5672/DMIC2.conf"
If.dmic1 {
Condition {
Type "String"
Empty "${var:DigitalMic1}"
}
True.RenameDevice."Mic2" "Mic"
}
}
}
If.hsmic {
Condition {
Type String
Empty "${var:HeadsetMic}"
}
#True.RemoveDevice."Headset" "Headset"
False.Include.hsmic.File "/codecs/rt5672/HeadsetMic.conf"
}

View File

@ -0,0 +1,14 @@
# Adapted from https://github.com/plbossart/UCM/tree/master/cht-bsw-rt5672
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/cht-bsw-rt5672/HiFi.conf"
Comment "Play HiFi quality Music"
}
FixedBootSequence [
exec "-/sbin/modprobe snd_ctl_led"
sysw "-/class/sound/ctl-led/speaker/card${CardNumber}/attach:DAC1 Playback Switch"
sysw "-/class/sound/ctl-led/mic/card${CardNumber}/attach:ADC Capture Switch"
]

View File

@ -0,0 +1,36 @@
SectionVerb {
Value {
TQ "HiFi"
}
Include.e.File "/codecs/max98090/EnableSeq.conf"
If.platform {
Condition {
Type ControlExists
Control "name='media0_in Gain 0 Switch'"
}
Before.EnableSequence "0"
True.Include.pe.File "/platforms/bytcr/PlatformEnableSeq.conf"
}
If.Quawks {
Condition {
Type String
Haystack "${CardLongName}"
Needle "GOOGLE-Quawks-1.0"
}
True {
EnableSequence [
# volume values modified
cset "name='Headphone Volume' 25"
cset "name='Speaker Volume' 32"
]
}
}
}
Include.hs.File "/codecs/max98090/Headphones.conf"
Include.spk.File "/codecs/max98090/Speaker.conf"
Include.mic.File "/codecs/max98090/InternalMic.conf"
Include.hsmic.File "/codecs/max98090/HeadsetMic.conf"

View File

@ -0,0 +1,5 @@
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/chtmax98090/HiFi.conf"
Comment "Play HiFi quality Music"
}

View File

@ -0,0 +1,90 @@
Define.Speaker "Speaker"
Define.Mic "InternalMic"
Define.SST "yes"
Define.RightOutputChannel 1
If.Controls {
Condition {
Type ControlExists
Control "name='media0_in Gain 0 Switch'"
}
False {
Define.SST ""
Define.RightOutputChannel 0
}
}
# Figure out which components are in use on the device, we check both the
# components string (present on newer kernels) as well as checking for DMI
# strings for compatibility with older kernels. Note DMI matches for new
# models should only be added to the kernel, this UCM profile will then
# automatically pick up the info from the components string.
If.components-mono-spk {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:1"
}
True.Define.Speaker "MonoSpeaker"
}
If.cfg-mspk {
Condition {
Type RegexMatch
String "${CardLongName}"
Regex "(cube-i1_TF|PIPO-W2S)"
}
True {
Define.Speaker "MonoSpeaker"
}
}
If.cfg-mic {
Condition {
Type RegexMatch
String "${CardLongName}"
# Medion E22??T models put DMIC in their product version
# when using DMICs
Regex "(MEDION-E22..T.*-DMIC-)"
}
True {
Define.Mic "DMIC1_2"
}
}
SectionVerb {
Value {
TQ "HiFi"
}
Include.e.File "/codecs/nau8824/EnableSeq.conf"
If.SST {
Condition {
Type String
Empty "${var:SST}"
}
False {
Include.pe {
File "/platforms/bytcr/PlatformEnableSeq.conf"
Before.EnableSequence "0"
}
Include.pd.File "/platforms/bytcr/PlatformDisableSeq.conf"
}
}
}
# The includes using $vars in there path must be conditional otherwise the
# $var gets expanded before the other If-s above can change the vars.
If.cfg-includes {
Condition { Type String Empty "" }
True {
Include.spk.File "/codecs/nau8824/${var:Speaker}.conf"
Include.hp.File "/codecs/nau8824/HeadPhones.conf"
Include.mic.File "/codecs/nau8824/${var:Mic}.conf"
Include.hsmic.File "/codecs/nau8824/HeadsetMic.conf"
}
}

View File

@ -0,0 +1,8 @@
Syntax 3
Comment "chtnau8824 internal card"
SectionUseCase."HiFi" {
File "/Intel/chtnau8824/HiFi.conf"
Comment "Default"
}

View File

@ -0,0 +1,208 @@
Define.MonoSpeaker ""
Define.AnalogMic "yes"
Define.DigitalMic ""
If.cfg-dmic1 {
Condition {
Type RegexMatch
String "${CardLongName}"
Regex "(ASUSTeK.*T100HAN|ASUSTeK.*T101HA)"
}
True {
Define.AnalogMic ""
Define.DigitalMic "DMIC1"
}
}
If.cfg-dmic2 {
Condition {
Type RegexMatch
String "${CardLongName}"
Regex "(LENOVO.*LenovoMIIX320|MEDION.*Wingman|Standard-EF20EA-1.0)"
}
True {
Define.AnalogMic ""
Define.DigitalMic "DMIC2"
}
}
If.cfg-mspk {
Condition {
Type RegexMatch
String "${CardLongName}"
Regex "(gpd-win-pocket-rt5645|TECLAST-X80Pro)"
}
True {
Define.MonoSpeaker "yes"
}
}
SectionVerb {
# ALSA PCM
Value {
TQ "HiFi"
}
Include.ce.File "/codecs/rt5645/EnableSeq.conf"
Include.cd.File "/codecs/rt5645/DisableSeq.conf"
EnableSequence [
cset "name='Stereo1 ADC1 Mux' 1"
cset "name='I2S2 Func Switch' on"
# 3/12 the headphone mic tends to be quite loud
cset "name='IN1 Boost' 3"
# 8/8 the internal analog mic tends to be quite soft
cset "name='IN2 Boost' 8"
]
If.Controls {
Condition {
Type ControlExists
Control "name='media0_in Gain 0 Switch'"
}
Before.EnableSequence "0"
True {
Include.pe.File "/platforms/bytcr/PlatformEnableSeq.conf"
Include.pd.File "/platforms/bytcr/PlatformDisableSeq.conf"
}
}
}
SectionDevice."Speaker" {
Comment "Speaker"
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
}
ConflictingDevice [
"Headphones"
]
Include.e.File "/codecs/rt5645/SpeakerEnableSeq.conf"
If.mspk {
Condition {
Type String
Empty "${var:MonoSpeaker}"
}
False {
EnableSequence [
# Monospeaker: Mix right to left
cset "name='Stereo DAC MIXL DAC R1 Switch' 1"
cset "name='Stereo DAC MIXR DAC R1 Switch' 0"
]
DisableSequence [
# Undo monospeaker mixing
cset "name='Stereo DAC MIXL DAC R1 Switch' 0"
cset "name='Stereo DAC MIXR DAC R1 Switch' 1"
]
}
}
DisableSequence [
cset "name='Ext Spk Switch' off"
cset "name='Speaker Channel Switch' off"
]
}
SectionDevice."Headphones" {
Comment "Headphones"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId}"
JackControl "Headphone Jack"
}
ConflictingDevice [
"Speaker"
]
Include.e.File "/codecs/rt5645/HeadphonesEnableSeq.conf"
DisableSequence [
cset "name='Headphone Switch' off"
cset "name='Headphone Channel Switch' off"
]
}
If.amic {
Condition {
Type String
Empty "${var:AnalogMic}"
}
Before.SectionDevice "Headset"
False.Include.amic.File "/codecs/rt5645/AnalogMic.conf"
}
If.dmic {
Condition {
Type String
Empty "${var:DigitalMic}"
}
Before.SectionDevice "Headset"
False {
SectionDevice."Mic" {
Comment "Internal Microphone"
Value {
CapturePriority 100
CapturePCM "hw:${CardId}"
}
Include.e.File "/codecs/rt5645/DigitalMicEnableSeq.conf"
Include.d.File "/codecs/rt5645/DigitalMicDisableSeq.conf"
EnableSequence [
cset "name='Stereo1 ADC2 Mux' DMIC"
cset "name='Mono ADC L2 Mux' DMIC"
cset "name='Mono ADC R2 Mux' DMIC"
]
If.dmic2 {
Condition {
Type String
String1 "${var:DigitalMic}"
String2 "DMIC1"
}
True {
EnableSequence [
cset "name='Stereo1 DMIC Mux' DMIC1"
]
}
False {
EnableSequence [
cset "name='Stereo1 DMIC Mux' DMIC2"
cset "name='Mono DMIC L Mux' DMIC2"
cset "name='Mono DMIC R Mux' DMIC2"
]
}
}
}
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
Value {
CapturePriority 200
CapturePCM "hw:${CardId}"
JackControl "Headset Mic Jack"
}
Include.e.File "/codecs/rt5645/HSMicEnableSeq.conf"
Include.d.File "/codecs/rt5645/HSMicDisableSeq.conf"
EnableSequence [
cset "name='Sto1 ADC MIXL ADC2 Switch' off"
cset "name='Sto1 ADC MIXR ADC2 Switch' off"
cset "name='Mono ADC MIXL ADC1 Switch' on"
cset "name='Mono ADC MIXR ADC1 Switch' on"
cset "name='Mono ADC MIXL ADC2 Switch' off"
cset "name='Mono ADC MIXR ADC2 Switch' off"
]
}

View File

@ -0,0 +1,11 @@
Syntax 4
Comment "Intel SoC Audio Device"
SectionUseCase."HiFi" {
File "/Intel/chtrt5645/HiFi.conf"
Comment "Default"
}
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"
Include.codec-init.File "/codecs/rt5645/init.conf"

View File

@ -0,0 +1,116 @@
SectionVerb {
# ALSA PCM
Value {
TQ "HiFi"
}
Include.e.File "/codecs/rt5645/EnableSeq.conf"
Include.d.File "/codecs/rt5645/DisableSeq.conf"
If.Controls {
Condition {
Type ControlExists
Control "name='media0_in Gain 0 Switch'"
}
Before.EnableSequence "0"
True {
Include.pe.File "/platforms/bytcr/PlatformEnableSeq.conf"
Include.pd.File "/platforms/bytcr/PlatformDisableSeq.conf"
}
}
EnableSequence [
cset "name='Speaker HWEQ' 1,164,237,135,1,165,0,0,1,166,237,135,1,167,0,0,1,192,30,196,1,193,0,0,1,194,30,196,1,195,0,0,1,196,31,180,1,197,0,75,1,198,31,180,1,199,31,180,1,200,0,75,1,201,31,180,0,177,51,224"
cset "name='DAC1 Playback Volume' 77,77"
cset "name='Speaker ClassD Playback Volume' 4"
cset "name='I2S2 Func Switch' off"
cset "name='RT5650 IF1 ADC Mux' 0"
]
}
SectionDevice."Speaker" {
Comment "Speaker"
Value {
PlaybackPCM "hw:${CardId}"
PlaybackPriority 100
}
ConflictingDevice [
"Headphones"
]
Include.spk.File "/codecs/rt5645/SpeakerEnableSeq.conf"
DisableSequence [
cset "name='Ext Spk Switch' off"
cset "name='Speaker Channel Switch' off"
]
}
SectionDevice."Headphones" {
Comment "Headphones"
Value {
PlaybackPCM "hw:${CardId}"
PlaybackPriority 200
JackControl "Headphone Jack"
JackHWMute "Speaker"
}
ConflictingDevice [
"Speaker"
]
Include.hse.File "/codecs/rt5645/HeadphonesEnableSeq.conf"
DisableSequence [
cset "name='Headphone Switch' off"
cset "name='Headphone Channel Switch' off"
]
}
SectionDevice."Mic1" {
Comment "Internal Microphone"
Value {
CapturePCM "hw:${CardId}"
CapturePriority 100
}
EnableSequence [
cset "name='Int Mic Switch' on"
cset "name='Sto1 ADC MIXL ADC2 Switch' on"
cset "name='Sto1 ADC MIXR ADC2 Switch' on"
]
DisableSequence [
cset "name='Sto1 ADC MIXL ADC2 Switch' off"
cset "name='Sto1 ADC MIXR ADC2 Switch' off"
cset "name='Int Mic Switch' off"
]
}
SectionDevice."Mic2" {
Comment "Headset Microphone"
Value {
CapturePCM "hw:${CardId}"
CapturePriority 200
JackControl "Headset Mic Jack"
JackHWMute "Mic1"
}
Include.hsmice.File "/codecs/rt5645/HSMicEnableSeq.conf"
EnableSequence [
cset "name='IN1 Boost' 1"
]
Include.hsmicd.File "/codecs/rt5645/HSMicDisableSeq.conf"
DisableSequence [
cset "name='IN1 Boost' 0"
]
}

View File

@ -0,0 +1,6 @@
Comment "Intel SoC Audio Device"
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/chtrt5650/HiFi.conf"
Comment "Default"
}

View File

@ -0,0 +1,24 @@
# Usecase for device HDMI1/Display Port stereo playback on Intel cAVS platforms
# For Audio in HDA mode
SectionDevice."HDMI1" {
Comment "HDMI/Display Port 1 Stereo"
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId},10"
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=17 Jack'"
}
True {
JackControl "HDMI/DP,pcm=17 Jack"
}
False {
JackControl "HDMI/DP, pcm=17 Jack"
}
}
}
}

View File

@ -0,0 +1,23 @@
# Usecase for device HDMI2/Display Port stereo playback on Intel cAVS platforms
# For Audio in HDA mode
SectionDevice."HDMI2" {
Comment "HDMI/Display Port 2 Stereo"
Value {
PlaybackPriority 400
PlaybackPCM "hw:${CardId},11"
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=18 Jack'"
}
True {
JackControl "HDMI/DP,pcm=18 Jack"
}
False {
JackControl "HDMI/DP, pcm=18 Jack"
}
}
}
}

View File

@ -0,0 +1,96 @@
# Usecase for stereo playback Speaker and Headset, Recording on DMIC and Headset MIC.
# For Audio in HDA mode on Intel cAVS platforms
SectionVerb {
EnableSequence [
cset "name='mch_cap_out mo mch_cap_in mi Switch' 1"
]
Value {
TQ "HiFi"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='Headphone Playback Switch' 1,1"
cset "name='Speaker Playback Switch' 0,0"
]
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},7"
PlaybackMixerElem "Headphone"
PlaybackMasterElem "Master"
PlaybackVolume "Headphone Playback Volume"
PlaybackSwitch "Headphone Playback Switch"
JackControl "Front Headphone Jack"
JackHWMute "Speaker"
}
}
SectionDevice."Speaker" {
Comment "Speaker"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='Headphone Playback Switch' 0,0"
cset "name='Speaker Playback Switch' 1,1"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId},7"
PlaybackMixerElem "Speaker"
PlaybackMasterElem "Master"
PlaybackVolume "Speaker Playback Volume"
PlaybackSwitch "Speaker Playback Switch"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='media0_out mo codec0_in mi Switch' 1"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId},7"
}
}
SectionDevice."Mic" {
Comment "Digital Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='mch_cap_out mo mch_cap_in mi Switch' 1"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId},13"
}
}
Include.hdmi1.File "/Intel/hda-dsp/Hdmi1.conf"
Include.hdmi2.File "/Intel/hda-dsp/Hdmi2.conf"

View File

@ -0,0 +1,16 @@
# UCM for Intel CAVS platforms
# For Audio in HDA and DMIC mode
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/hda-dsp/HiFi.conf"
Comment "Play HiFi quality Music"
}
SectionDefaults [
cset "name='Master Playback Switch' 1"
cset "name='codec0_out mo media0_in mi Switch' 1"
cset "name='media0_out mo codec0_in mi Switch' 1"
cset "name='mch_cap_out mo mch_cap_in mi Switch' 1"
]

View File

@ -0,0 +1,23 @@
# Usecase for device HDMI1/Display Port stereo playback on Intel KABYLAKE platforms
# For Audio in I2S mode
SectionDevice."HDMI1" {
Comment "HDMI/Display Port 1 Stereo"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},2"
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=4 Jack'"
}
True {
JackControl "HDMI/DP,pcm=4 Jack"
}
False {
JackControl "HDMI/DP, pcm=4 Jack"
}
}
}
}

View File

@ -0,0 +1,23 @@
# Usecase for device HDMI1/Display Port stereo playback on Intel KABYLAKE platforms
# For Audio in I2S mode
SectionDevice."HDMI2" {
Comment "HDMI/Display Port 2 Stereo"
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId},3"
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=5 Jack'"
}
True {
JackControl "HDMI/DP,pcm=5 Jack"
}
False {
JackControl "HDMI/DP, pcm=5 Jack"
}
}
}
}

View File

@ -0,0 +1,77 @@
# UCM for Intel Kabylake platforms with RT5660
# For Audio in I2S mode
LibraryConfig.remap.Config {
ctl.default.remap {
"name='IN1 Boost Volume'" "name='IN1 Boost Capture Volume'"
"name='IN2 Boost Volume'" "name='IN2 Boost Capture Volume'"
"name='IN3 Boost Volume'" "name='IN3 Boost Capture Volume'"
"name='STO1 ADC Boost Gain Volume'" "name='STO1 ADC Boost Capture Volume'"
}
}
SectionDevice."Line1" {
Comment "Line playback"
EnableSequence [
cset "name='DAC1 Playback Volume' 30"
cset "name='OUT Playback Volume' 19"
cset "name='OUT Playback Switch' on"
cset "name='codec0_out mo media0_in mi Switch' on"
cset "name='DAC1 MIXL DAC1 Switch' on"
cset "name='DAC1 MIXR DAC1 Switch' on"
cset "name='Stereo DAC MIXL DAC L1 Switch' on"
cset "name='Stereo DAC MIXR DAC L1 Switch' off"
cset "name='Stereo DAC MIXR DAC R1 Switch' on"
cset "name='Stereo DAC MIXL DAC R1 Switch' off"
cset "name='LOUT MIX DAC Switch' on"
cset "name='Line Out Switch' on"
]
DisableSequence [
cset "name='Line Out Switch' off"
cset "name='DAC1 MIXL DAC1' off"
cset "name='DAC1 MIXR DAC1' off"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
JackDev "rt5660-jack"
JackControl "Line Out Jack"
}
}
SectionDevice."Line2" {
Comment "Line capture"
EnableSequence [
cset "name='ADC Capture Volume' 30"
cset "name='IN1 Boost Volume' 30"
cset "name='IN2 Boost Volume' 30"
cset "name='STO1 ADC Boost Gain Volume' 1"
cset "name='RECMIXL BST1 Switch' off"
cset "name='RECMIXR BST1 Switch' on"
cset "name='RECMIXL BST2 Switch' on"
cset "name='RECMIXR BST2 Switch' off"
cset "name='Line In Switch' on"
cset "name='Sto1 ADC MIXR ADC1 Switch' on"
cset "name='Sto1 ADC MIXL ADC1 Switch' on"
cset "name='media0_out mo codec0_in mi Switch' on"
]
DisableSequence [
cset "name='Line In Switch' off"
cset "name='Sto1 ADC MIXR ADC1 Switch' off"
cset "name='Sto1 ADC MIXL ADC1 Switch' off"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId},1"
JackDev "rt5660-jack"
JackControl "Line In Jack"
}
}

View File

@ -0,0 +1,19 @@
Syntax 4
SectionUseCase."HiFi" {
File "/Intel/kblrt5660/HiFi.conf"
Comment "Play HiFi quality Music"
}
SectionUseCase."Hdmi1" {
File "/Intel/kblrt5660/Hdmi1.conf"
Comment "Play on Hdmi/DP 1"
}
SectionUseCase."Hdmi2" {
File "/Intel/kblrt5660/Hdmi2.conf"
Comment "Play on Hdmi/DP 2"
}
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"

View File

@ -0,0 +1,23 @@
# Usecase for device HDMI1/Display Port stereo playback on Intel SKYLAKE/KABYLAKE platforms
# For Audio in I2S mode
SectionDevice."HDMI1" {
Comment "HDMI/Display Port 1 Stereo"
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId},4"
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=4 Jack'"
}
True {
JackControl "HDMI/DP,pcm=4 Jack"
}
False {
JackControl "HDMI/DP, pcm=4 Jack"
}
}
}
}

View File

@ -0,0 +1,23 @@
# Usecase for device HDMI2/Display Port stereo playback on Intel SKYLAKE/KABYLAKE platforms
# For Audio in I2S mode
SectionDevice."HDMI2" {
Comment "HDMI/Display Port 2 Stereo"
Value {
PlaybackPriority 400
PlaybackPCM "hw:${CardId},5"
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=5 Jack'"
}
True {
JackControl "HDMI/DP,pcm=5 Jack"
}
False {
JackControl "HDMI/DP, pcm=5 Jack"
}
}
}
}

View File

@ -0,0 +1,112 @@
# Usecase for stereo playback Speaker and Headset, Recording on DMIC and Headset MIC.
# For Audio in I2S mode on Intel SKYLAKE/KABYLAKE platforms
SectionVerb {
EnableSequence [
cset "name='media0_out mo dmic01_hifi_in mi Switch' 1"
]
Value {
TQ "HiFi"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='HPO L Switch' 1"
cset "name='HPO R Switch' 1"
cset "name='Headphone Jack Switch' 1"
cset "name='Speaker Playback Switch' 0,0"
]
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId}"
JackControl "Headphone Jack"
JackHWMute "Speaker"
}
}
SectionDevice."Speaker" {
Comment "Speaker"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='SPO Switch' 1"
cset "name='Speaker Playback Switch' 1,1"
cset "name='Speaker Switch' 1"
cset "name='HPO L Switch' 0"
cset "name='HPO R Switch' 0"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='media0_out mo codec0_in mi Switch' 1"
cset "name='ADC0 Capture Switch' 1,1"
cset "name='ADC 0 Mux' 0"
cset "name='Mic Jack Switch' 1"
cset "name='media0_out mo dmic01_hifi_in mi Switch' 0"
]
DisableSequence [
cset "name='media0_out mo dmic01_hifi_in mi Switch' 1"
cset "name='media0_out mo codec0_in mi Switch' 0"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId},1"
JackControl "Mic Jack"
}
}
SectionDevice."Mic" {
Comment "Digital Stereo Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='media0_out mo dmic01_hifi_in mi Switch' 1"
cset "name='media0_out mo codec0_in mi Switch' 0"
cset "name='ADC0 Capture Switch' 0,0"
cset "name='Mic Jack Switch' 0"
cset "name='ADC 0 Mux' 0"
]
DisableSequence [
cset "name='media0_out mo codec0_in mi Switch' 1"
cset "name='media0_out mo dmic01_hifi_in mi Switch' 0"
cset "name='ADC0 Capture Switch' 1,1"
cset "name='Mic Jack Switch' 1"
cset "name='ADC 0 Mux' 2"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId},1"
}
}
Include.hdmi1.File "/Intel/skylake-rt286/Hdmi1.conf"
Include.hdmi2.File "/Intel/skylake-rt286/Hdmi2.conf"

View File

@ -0,0 +1,44 @@
# UCM for Intel SKYLAKE/KABYLAKE platforms
# For Audio in I2S mode
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/skylake-rt286/HiFi.conf"
Comment "Play and record HiFi quality Music"
}
SectionDefaults [
cset "name='Headphone Jack Switch' 1"
cset "name='Speaker Switch' 1"
cset "name='Speaker Playback Switch' 0,0"
cset "name='Front DAC Switch' 1"
cset "name='Front RECMIX Switch' 0"
cset "name='Mic Jack Switch' 1"
cset "name='ADC 0 Mux' 2"
cset "name='ADC 1 Mux' 0"
cset "name='ADC0 Capture Volume' 105,105"
cset "name='ADC0 Capture Switch' 1,1"
cset "name='AMIC Volume' 3"
cset "name='DAC0 Playback Volume' 100,100"
cset "name='HPO L Switch' 0"
cset "name='HPO Mux' 0"
cset "name='HPO R Switch' 0"
cset "name='Pin 5 Mux' 1"
cset "name='Pin 6 Mux' 2"
cset "name='Pin 7 Mux' 3"
cset "name='RECMIX Beep Switch' 0"
cset "name='RECMIX Line1 Switch' 0"
cset "name='RECMIX Mic1 Switch' 0"
cset "name='SPK Mux' 0"
cset "name='SPO Switch' 1"
cset "name='codec0_out mo codec0_in mi Switch' 0"
cset "name='codec0_out mo dmic01_hifi_in mi Switch' 0"
cset "name='codec0_out mo media0_in mi Switch' 1"
cset "name='codec1_out mo codec0_in mi Switch' 0"
cset "name='codec1_out mo dmic01_hifi_in mi Switch' 0"
cset "name='codec1_out mo media0_in mi Switch' 0"
cset "name='media0_out mo codec0_in mi Switch' 1"
cset "name='media0_out mo dmic01_hifi_in mi Switch' 1"
cset "name='media0_out mo media0_in mi Switch' 0"
]

View File

@ -0,0 +1,85 @@
# Usecase for device HDMI/Display Port stereo playback on Intel ELKHARTLAKE platforms
SectionDevice."HDMI1" {
Comment "HDMI/Display Port 1 Stereo"
Value {
PlaybackPCM "hw:${CardId},3"
PlaybackPriority 500
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=3 Jack'"
}
True {
JackControl "HDMI/DP,pcm=3 Jack"
}
False {
JackControl "HDMI/DP, pcm=3 Jack"
}
}
}
}
SectionDevice."HDMI2" {
Comment "HDMI/Display Port 2 Stereo"
Value {
PlaybackPCM "hw:${CardId},4"
PlaybackPriority 600
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=4 Jack'"
}
True {
JackControl "HDMI/DP,pcm=4 Jack"
}
False {
JackControl "HDMI/DP, pcm=4 Jack"
}
}
}
}
SectionDevice."HDMI3" {
Comment "HDMI/Display Port 3 Stereo"
Value {
PlaybackPCM "hw:${CardId},5"
PlaybackPriority 600
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=5 Jack'"
}
True {
JackControl "HDMI/DP,pcm=5 Jack"
}
False {
JackControl "HDMI/DP, pcm=5 Jack"
}
}
}
}
SectionDevice."HDMI4" {
Comment "HDMI/Display Port 4 Stereo"
Value {
PlaybackPCM "hw:${CardId},6"
PlaybackPriority 600
If.1 {
Condition {
Type ControlExists
Control "iface=CARD,name='HDMI/DP,pcm=6 Jack'"
}
True {
JackControl "HDMI/DP,pcm=6 Jack"
}
False {
JackControl "HDMI/DP, pcm=6 Jack"
}
}
}
}

View File

@ -0,0 +1,75 @@
# Usecase for stereo playback Speaker and Headset, Recording on DMIC and Headset MIC.
# For Audio in I2S mode on Intel ElkhartLake platforms
SectionVerb {
}
SectionDevice."Speaker" {
Comment "Speaker"
ConflictingDevice [
"Lineout"
]
EnableSequence [
cset "name='Speaker Switch' on"
]
DisableSequence [
cset "name='Speaker Switch' off"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
}
}
SectionDevice."Lineout" {
Comment "Lineout"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='Line Out Switch' on"
]
DisableSequence [
cset "name='Line Out Switch' off"
]
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId}"
}
}
SectionDevice."Mic" {
Comment "Digital Microphone"
Value {
CapturePriority 100
CapturePCM "hw:${CardId},1"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
EnableSequence [
cset "name='Headset Mic2 Switch' on"
]
DisableSequence [
cset "name='Headset Mic2 Switch' off"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId}"
}
}
Include.hdmi.File "/Intel/sof-ehl-rt5660/Hdmi.conf"

View File

@ -0,0 +1,19 @@
# UCM for Intel ElkhartLake platforms
# For Audio in I2S mode
Syntax 3
SectionUseCase."HiFi" {
File "/Intel/sof-ehl-rt5660/HiFi.conf"
Comment "Play and record HiFi quality Music"
}
SectionDefaults [
cset "name='DAC1 MIXL DAC1 Switch' on"
cset "name='DAC1 MIXR DAC1 Switch' on"
cset "name='Stereo DAC MIXL DAC L1 Switch' on"
cset "name='Stereo DAC MIXR DAC R1 Switch' on"
cset "name='LOUT MIX DAC Switch' on"
cset "name='RECMIXL BST2 Switch' on"
cset "name='RECMIXR BST2 Switch' on"
]

View File

@ -0,0 +1,30 @@
# Use case Configuration for sof-es8336
Include.hdmi.File "/codecs/hda/hdmi.conf"
If.hdmi1 {
Condition { Type AlwaysTrue }
True.Macro.hdmi1.HDMI {
Number 1
Device 5
Priority 500
}
}
If.hdmi2 {
Condition { Type AlwaysTrue }
True.Macro.hdmi2.HDMI {
Number 2
Device 6
Priority 600
}
}
If.hdmi3 {
Condition { Type AlwaysTrue }
True.Macro.hdmi3.HDMI {
Number 3
Device 7
Priority 700
}
}

View File

@ -0,0 +1,152 @@
SectionVerb {
EnableSequence [
disdevall ""
# Disable all inputs / outputs
# (may be duplicated with disdevall)
cset "name='Headphone Switch' off"
cset "name='Headset Mic Switch' off"
cset "name='Internal Mic Switch' off"
cset "name='DAC Mono Mix Switch' off"
]
}
If.amic {
Condition {
Type String
Empty "${var:DeviceDmic}"
}
True.SectionDevice."Mic" {
Comment "Analog Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='Differential Mux' lin1-rin1"
cset "name='Internal Mic Switch' on"
]
DisableSequence [
cset "name='Internal Mic Switch' off"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId}"
CaptureMixerElem "ADC PGA Gain"
CaptureMasterElem "ADC"
}
}
}
If.dmic {
Condition {
Type String
Empty "${var:DeviceDmic}"
}
False.SectionDevice."${var:DeviceDmic}" {
Comment "Digital Microphone"
Value {
CapturePriority 100
CapturePCM "hw:${CardId},1"
If.chn {
Condition {
Type RegexMatch
Regex "cfg-dmics:[34]"
String "${CardComponents}"
}
True {
CaptureChannels 4
}
}
CaptureMixerElem "Dmic0"
CaptureVolume "Dmic0 Capture Volume"
CaptureSwitch "Dmic0 Capture Switch"
}
}
}
SectionDevice."Speaker" {
Comment "Speakers"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='Speaker Switch' on"
]
DisableSequence [
cset "name='Speaker Switch' off"
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
# The es8316 only has a HP-amp which is muxed to the speaker
# or to the headpones output
PlaybackMixerElem "Headphone Mixer"
PlaybackMasterElem "DAC"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='Headphone Switch' on"
]
DisableSequence [
cset "name='Headphone Switch' off"
]
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId}"
PlaybackMixerElem "Headphone Mixer"
PlaybackMasterElem "DAC"
JackControl "Headphone Jack"
JackHWMute "Speaker"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
If.conflict {
Condition {
Type String
Empty "${var:DeviceDmic}"
}
True.ConflictingDevice [
"Mic"
]
}
EnableSequence [
cset "name='Headset Mic Switch' on"
cset "name='Digital Mic Mux' 'dmic disable'"
]
DisableSequence [
cset "name='Headset Mic Switch' off"
]
Value {
CapturePriority 300
CapturePCM "hw:${CardId}"
CaptureMixerElem "ADC PGA Gain"
CaptureMasterElem "ADC"
JackControl "Headset Mic Jack"
}
}
Include.hdmi.File "/Intel/sof-essx8336/Hdmi.conf"

View File

@ -0,0 +1,57 @@
Syntax 6
BootSequence [
# Setup muxes / switches
cset "name='Left Headphone Mixer Left DAC Switch' on"
cset "name='Right Headphone Mixer Right DAC Switch' on"
# Set digital mix mux to "dmic disable"
# That doesn't affect dmic, but other values mute headset mic
cset "name='Digital Mic Mux' 0"
# Set HP vol to 0 dB
cset "name='Headphone Playback Volume' 100%"
cset "name='Headphone Mixer Volume' 100%"
# Set DAC vol
cset "name='DAC Playback Volume' 60%"
# LDATA TO LDAC, RDATA TO RDAC
cset "name='DAC Source Mux' 0"
# Disable Auto Level Control
cset "name='ALC Capture Switch' off"
# Set capture vol
cset "name='ADC Capture Volume' 60%"
]
Define.DeviceDmic ""
If.devdmic {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-dmics:"
}
True.Define.DeviceDmic "Mic"
}
SectionUseCase."HiFi" {
File "/Intel/sof-essx8336/HiFi.conf"
Comment "Play and record HiFi quality Music"
}
If.dmic {
Condition {
Type String
Empty "${var:DeviceDmic}"
}
False.If.Dmic0 {
Condition {
Type ControlExists
Control "name='Dmic0 Capture Volume'"
}
True.BootSequence [
cset "name='Dmic0 Capture Volume' 70%"
]
}
}

View File

@ -0,0 +1,30 @@
# Use case Configuration for sof-glkda7219max
Include.hdmi.File "/codecs/hda/hdmi.conf"
If.hdmi1 {
Condition { Type AlwaysTrue }
True.Macro.hdmi1.HDMI {
Number 1
Device 5
Priority 500
}
}
If.hdmi2 {
Condition { Type AlwaysTrue }
True.Macro.hdmi2.HDMI {
Number 2
Device 6
Priority 600
}
}
If.hdmi3 {
Condition { Type AlwaysTrue }
True.Macro.hdmi3.HDMI {
Number 3
Device 7
Priority 700
}
}

View File

@ -0,0 +1,72 @@
# command-line sequence to switch playback/capture
# alsaucm -c sof-glkda7219max set _verb HiFi set _enadev Headphone
# alsaucm -c sof-glkda7219max set _verb HiFi set _enadev Speaker
# alsaucm -c sof-glkda7219max set _verb HiFi set _enadev Headset
# alsaucm -c sof-glkda7219max set _verb HiFi set _enadev InternalMic
SectionDevice."Speaker" {
Comment "Speaker"
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
}
EnableSequence [
cset "name='Spk Switch' on"
]
DisableSequence [
cset "name='Spk Switch' off"
]
}
SectionDevice."Headphones" {
Comment "Headphones"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},1"
PlaybackMixerElem "Headphone"
JackControl "Headphone Jack"
}
EnableSequence [
cset "name='Headphone Jack Switch' on"
cset "name='Headphone Switch' 1"
]
DisableSequence [
cset "name='Headphone Jack Switch' off"
cset "name='Headphone Switch' 0"
]
}
SectionDevice."Mic" {
Comment "Internal Microphone"
Value {
CapturePriority 100
CapturePCM "hw:${CardId},99"
CaptureChannels 4
#CaptureChannelMap "0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1"
#MaxSoftwareGain "2000"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
Value {
CapturePriority 200
CapturePCM "hw:${CardId},1"
CaptureMixerElem "Headset Mic"
JackControl "Headset Mic Jack"
}
EnableSequence [
cset "name='Headset Mic Switch' on"
cset "name='Mic Switch' on"
]
DisableSequence [
cset "name='Headset Mic Switch' off"
cset "name='Mic Switch' off"
]
}
Include.hdmi.File "/Intel/sof-glkda7219max/Hdmi.conf"

View File

@ -0,0 +1,8 @@
Syntax 6
SectionUseCase."HiFi" {
File "/Intel/sof-glkda7219max/HiFi.conf"
Comment "Play and record HiFi quality Music"
}
Include.codec-init.File "/codecs/da7219/init.conf"

View File

@ -0,0 +1,30 @@
# Use case Configuration for sof-hda-dsp
Include.hdmi.File "/codecs/hda/hdmi.conf"
If.hdmi1 {
Condition { Type AlwaysTrue }
True.Macro.hdmi1.HDMI {
Number 1
Device 3
Priority 500
}
}
If.hdmi2 {
Condition { Type AlwaysTrue }
True.Macro.hdmi1.HDMI {
Number 2
Device 4
Priority 600
}
}
If.hdmi3 {
Condition { Type AlwaysTrue }
True.Macro.hdmi1.HDMI {
Number 3
Device 5
Priority 700
}
}

View File

@ -0,0 +1,56 @@
# Use case Configuration for sof-hda-dsp
SectionVerb {
EnableSequence [
disdevall ""
]
Value.TQ "HiFi"
}
Include.hda-analog.File "/HDA/HiFi-analog.conf"
If.dmic {
Condition {
Type String
Empty "${var:DeviceDmic}"
}
Before.SectionDevice "${var:DeviceMic}"
False.SectionDevice."${var:DeviceDmic}" {
Comment "Digital Microphone"
Value {
CapturePriority 100
CapturePCM "hw:${CardId},6"
CaptureMicInfoFile "${var:LibDir}/dmics-nhlt.json"
If.chn {
Condition {
Type RegexMatch
Regex "cfg-dmics:[34]"
String "${CardComponents}"
}
True {
CaptureChannels 4
}
}
If.vol {
Condition {
Type ControlExists
Control "name='Dmic0 Capture Switch'"
}
True {
CaptureMixerElem "Dmic0"
CaptureVolume "Dmic0 Capture Volume"
CaptureSwitch "Dmic0 Capture Switch"
}
False {
# v1.3 SOF firmware
CaptureMixerElem "PGA10.0 10 Master"
CaptureVolume "PGA10.0 10 Master Capture Volume"
}
}
}
}
}
Include.hdmi.File "/Intel/sof-hda-dsp/Hdmi.conf"

View File

@ -0,0 +1,117 @@
Syntax 6
Define.DeviceMic "Mic"
Define.DeviceDmic ""
Include.card-init.File "/lib/card-init.conf"
If.devdmic {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-dmics:"
}
True {
Define.DeviceDmic "Mic1"
Define.DeviceMic "Mic2"
FixedBootSequence [
#
# users expect to turn the LED on when only internal
# mic is off, but it makes sense to turn this LED
# when all internal inputs are off
#
sysw "-/class/sound/ctl-led/mic/card${CardNumber}/detach:Capture Switch"
# dmic array info
exec "-nhlt-dmic-info -o ${var:LibDir}/dmics-nhlt.json"
]
}
}
SectionUseCase."HiFi" {
File "/Intel/sof-hda-dsp/HiFi.conf"
Comment "Play HiFi quality Music"
}
# the kcontrols initial values, which will be set by `alsactl init`
If.amute {
Condition {
Type ControlExists
Control "name='Auto-Mute Mode'"
}
True.BootSequence [
cset "name='Auto-Mute Mode' off"
]
}
If.master {
Condition {
Type ControlExists
Control "name='Master Playback Volume'"
}
True.BootSequence [
cset "name='Master Playback Volume' 60%"
cset "name='Master Playback Switch' on"
]
}
If.speaker {
Condition {
Type ControlExists
Control "name='Speaker Playback Volume'"
}
True.BootSequence [
cset "name='Speaker Playback Volume' 60%"
]
}
If.DellMuteLed {
Condition {
Type String
Haystack "$${sys:class/leds/platform::mute/device}"
Needle "dell-laptop"
}
True {
FixedBootSequence [
sysw "-/class/sound/ctl-led/speaker/card${CardNumber}/attach:Master Playback Switch"
]
}
}
If.headphone {
Condition {
Type ControlExists
Control "name='Headphone Playback Volume'"
}
True.BootSequence [
cset "name='Headphone Playback Volume' 60%"
]
}
If.dmic {
Condition {
Type String
Empty "${var:DeviceDmic}"
}
False.If.Dmic0 {
Condition {
Type ControlExists
Control "name='Dmic0 Capture Volume'"
}
True.BootSequence [
cset "name='Dmic0 Capture Volume' 70%"
cset "name='Dmic0 Capture Switch' on"
]
}
}
If.Capture {
Condition {
Type ControlExists
Control "name='Capture Switch'"
}
True.BootSequence [
cset "name='Capture Volume' 60%"
cset "name='Capture Switch' on"
]
}

View File

@ -0,0 +1,88 @@
SectionVerb {
EnableSequence [
disdevall ""
]
Value {
TQ "HiFi"
}
}
SectionDevice."Speaker" {
Comment "Speaker"
EnableSequence [
cset "name='Speakers Switch' 1"
]
DisableSequence [
cset "name='Speakers Switch' 0"
]
Value {
PlaybackPCM "hw:${CardId},0"
PlaybackPriority 100
}
}
SectionDevice."Headphones" {
Comment "Headphones"
EnableSequence [
cset "name='Headphone Jack Switch' 1"
]
DisableSequence [
cset "name='Headphone Jack Switch' 0"
]
Value {
PlaybackPCM "hw:${CardId},3"
JackControl "Headphone Jack"
PlaybackMixerElem "DAC1"
PlaybackPriority 200
}
}
SectionDevice."Mic" {
Comment "Internal Microphone"
EnableSequence [
cset "name='MTKAIF_DMIC Switch' 1"
]
DisableSequence [
cset "name='MTKAIF_DMIC Switch' 0"
]
Value {
CapturePCM "hw:${CardId},10"
CapturePriority 100
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
EnableSequence [
cset "name='Headset Mic Switch' 1"
cset "name='STO1 ADC Capture Switch' 1"
cset "name='RECMIX1L CBJ Switch' 1"
cset "name='Stereo1 ADC MIXL ADC1 Switch' 1"
cset "name='Stereo1 ADC MIXR ADC1 Switch' 1"
]
DisableSequence [
cset "name='STO1 ADC Capture Switch' 0"
cset "name='RECMIX1L CBJ Switch' 0"
cset "name='Stereo1 ADC MIXL ADC1 Switch' 0"
cset "name='Stereo1 ADC MIXR ADC1 Switch' 0"
cset "name='Headset Mic Switch' 0"
]
Value {
CapturePCM "hw:${CardId},11"
JackControl "Headset Mic Jack"
CapturePriority 200
}
}

View File

@ -0,0 +1,24 @@
BootSequence [
# Speaker
cset "name='I2S3_CH1 DL1_CH1' 1"
cset "name='I2S3_CH2 DL1_CH2' 1"
cset "name='I2S3_HD_Mux' 1"
# Headphone
cset "name='I2S9_CH1 DL3_CH1' 1"
cset "name='I2S9_CH2 DL3_CH2' 1"
cset "name='I2S9_HD_Mux' 1"
# Internal Mic
cset "name='UL1_CH1 ADDA_UL_CH1' 1"
cset "name='UL1_CH2 ADDA_UL_CH2' 1"
cset "name='UL_SRC_MUX' DMIC"
# Headset Mic
cset "name='UL2_CH1 I2S8_CH1' 1"
cset "name='UL2_CH2 I2S8_CH2' 1"
cset "name='I2S8_HD_Mux' 1"
cset "name='Stereo1 ADC L1 Mux' 1"
cset "name='Stereo1 ADC R1 Mux' 1"
cset "name='CBJ Boost Volume' 3"
]

View File

@ -0,0 +1,11 @@
Comment "MT8192 MT6359 RT1015P RT5682 sound card"
Syntax 4
SectionUseCase."HiFi" {
File "HiFi.conf"
Comment "Default"
}
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"
Include.init.File "init.conf"

View File

@ -0,0 +1,20 @@
# mt8195 specific boot sequence
BootSequence [
# eTDM
cset "name='ETDM_IN1_Clock_Source' a1sys_a2sys"
cset "name='ETDM_OUT1_Clock_Source' a1sys_a2sys"
# mt6359 audio
cset "name='UL_SRC_MUX' DMIC"
# AFE
cset "name='O048 I070 Switch' 1"
cset "name='O049 I071 Switch' 1"
cset "name='O072 I020 Switch' 1"
cset "name='O073 I021 Switch' 1"
cset "name='O036 I012 Switch' 1"
cset "name='O037 I013 Switch' 1"
cset "name='O034 I168 Switch' 1"
cset "name='O035 I169 Switch' 1"
]

View File

@ -0,0 +1,94 @@
# Use case configuration for mt8195-mt6359-rt1019-rt5682
SectionVerb {
EnableSequence [
disdevall ""
]
Value.TQ "HiFi"
}
SectionDevice."Speaker" {
Comment "Speaker"
EnableSequence [
cset "name='Ext Spk Switch' 1"
]
DisableSequence [
cset "name='Ext Spk Switch' 0"
]
Value {
PlaybackChannels 2
PlaybackPCM "hw:${CardId},16"
PlaybackPriority 100
PlaybackMixerElem "Speaker"
PlaybackVolume "Speaker Playback Volume"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
EnableSequence [
cset "name='Headphone Switch' on"
cset "name='HPOL Playback Switch' 1"
cset "name='HPOR Playback Switch' 1"
]
DisableSequence [
cset "name='HPOL Playback Switch' 0"
cset "name='HPOR Playback Switch' 0"
cset "name='Headphone Switch' off"
]
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},17"
JackControl "Headphone Jack"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
EnableSequence [
cset "name='Headset Mic Switch' on"
cset "name='STO1 ADC Capture Switch' 1"
cset "name='RECMIX1L CBJ Switch' 1"
cset "name='Stereo1 ADC MIXL ADC1 Switch' 1"
cset "name='Stereo1 ADC MIXR ADC1 Switch' 1"
]
DisableSequence [
cset "name='STO1 ADC Capture Switch' 0"
cset "name='RECMIX1L CBJ Switch' 0"
cset "name='Stereo1 ADC MIXL ADC1 Switch' 0"
cset "name='Stereo1 ADC MIXR ADC1 Switch' 0"
cset "name='Headset Mic Switch' off"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId},19"
JackControl "Headset Mic Jack"
}
}
SectionDevice."Mic" {
Comment "Internal Microphone"
EnableSequence [
cset "name='MTKAIF_DMIC' On"
]
DisableSequence [
cset "name='MTKAIF_DMIC' Off"
]
Value {
CapturePCM "hw:${CardId},18"
CapturePriority 100
}
}

View File

@ -0,0 +1,22 @@
# rt1019-rt5682 specific boot sequence
BootSequence [
cset "name='Stereo1 DAC MIXL DAC L1 Switch' 1"
cset "name='Stereo1 DAC MIXR DAC R1 Switch' 1"
cset "name='DAC L Mux' IF1"
cset "name='DAC R Mux' IF1"
cset "name='IF1 01 ADC Swap Mux' 2"
cset "name='CBJ Boost Volume' 3"
cset "name='Stereo1 ADC L Mux' 'ADC1 L'"
cset "name='Stereo1 ADC R Mux' 'ADC1 R'"
cset "name='Stereo1 ADC L1 Mux' 1"
cset "name='Stereo1 ADC R1 Mux' 1"
cset "name='DAC1 MIXL DAC1 Switch' 1"
cset "name='DAC1 MIXR DAC1 Switch' 1"
cset "name='DAC1 MIXL Stereo ADC Switch' 0"
cset "name='DAC1 MIXR Stereo ADC Switch' 0"
cset "name='Stereo1 ADC MIXL ADC2 Switch' 0"
cset "name='Stereo1 ADC MIXR ADC2 Switch' 0"
]

View File

@ -0,0 +1,12 @@
Comment "MT8195 MT6359 RT1019 RT5682 sound card"
Syntax 4
SectionUseCase."HiFi" {
File "/MediaTek/mt8195-sof/mt6359-rt1019-rt5682/HiFi.conf"
Comment "Default"
}
Include.card-init.File "/lib/card-init.conf"
Include.ctl-remap.File "/lib/ctl-remap.conf"
Include.init.File "/MediaTek/mt8195-sof/init.conf"
Include.init-rt1019-rt5682.File "/MediaTek/mt8195-sof/mt6359-rt1019-rt5682/init.conf"

View File

@ -0,0 +1,117 @@
SectionVerb {
EnableSequence [
cset "name='HDMI_OUT_MUX' Connect"
cset "name='DPTX_OUT_MUX' Connect"
cset "name='O176 I070 Switch' on"
cset "name='O177 I071 Switch' on"
cset "name='O034 I168 Switch' on"
cset "name='O035 I169 Switch' on"
cset "name='O036 I012 Switch' on"
cset "name='O037 I013 Switch' on"
cset "name='O072 I022 Switch' on"
cset "name='O073 I023 Switch' on"
cset "name='O074 I024 Switch' on"
cset "name='O075 I025 Switch' on"
cset "name='O076 I026 Switch' on"
cset "name='O077 I027 Switch' on"
cset "name='O078 I028 Switch' on"
cset "name='O079 I029 Switch' on"
cset "name='O002 I004 Switch' on"
cset "name='O003 I005 Switch' on"
cset "name='O004 I006 Switch' on"
cset "name='O005 I007 Switch' on"
cset "name='O006 I008 Switch' on"
cset "name='O007 I009 Switch' on"
cset "name='O008 I010 Switch' on"
cset "name='O009 I011 Switch' on"
]
DisableSequence [
cset "name='HDMI_OUT_MUX' Disconnect"
cset "name='DPTX_OUT_MUX' Disconnect"
cset "name='O176 I070 Switch' off"
cset "name='O177 I071 Switch' off"
cset "name='O034 I168 Switch' off"
cset "name='O035 I169 Switch' off"
cset "name='O036 I012 Switch' off"
cset "name='O037 I013 Switch' off"
cset "name='O072 I022 Switch' off"
cset "name='O073 I023 Switch' off"
cset "name='O074 I024 Switch' off"
cset "name='O075 I025 Switch' off"
cset "name='O076 I026 Switch' off"
cset "name='O077 I027 Switch' off"
cset "name='O078 I028 Switch' off"
cset "name='O079 I029 Switch' off"
cset "name='O002 I004 Switch' off"
cset "name='O003 I005 Switch' off"
cset "name='O004 I006 Switch' off"
cset "name='O005 I007 Switch' off"
cset "name='O006 I008 Switch' off"
cset "name='O007 I009 Switch' off"
cset "name='O008 I010 Switch' off"
cset "name='O009 I011 Switch' off"
]
}
SectionDevice."HDMI" {
Comment "Hdmi/DP output"
Value {
PlaybackPriority 250
PlaybackPCM "hw:${CardId},5"
}
}
SectionDevice."Headphones" {
Comment "Headset speakers"
Value {
PlaybackPriority 300
PlaybackChannels 2
PlaybackPCM "hw:${CardId},0"
PlaybackVolume "name='Headset Volume'"
}
}
SectionDevice."Mic1" {
Comment "Headset microphone"
Value {
CapturePriority 300
CaptureChannels 1
CapturePCM "hw:${CardId},10"
CaptureVolume "PGA1 Volume"
}
}
SectionDevice."Line1" {
Comment "I2S Line In"
Value {
CapturePriority 200
CaptureChannels 2
CapturePCM "hw:${CardId},11"
}
}
SectionDevice."Line2" {
Comment "I2S Line out"
Value {
PlaybackPriority 200
PlaybackChannels 8
PlaybackPCM "hw:${CardId},6"
}
}
SectionDevice."Mic2" {
Comment "PDM microphones"
Value {
CapturePriority 100
CaptureChannels 8
CapturePCM "hw:${CardId},14"
}
}

View File

@ -0,0 +1,45 @@
Syntax 2
SectionUseCase."HiFi" {
File "/MediaTek/mt8195_demo/HiFi.conf"
Comment "Play high quality music"
}
BootSequence [
cset "name='Headset Volume' 0"
cset "name='Lineout Volume' 0"
cset "name='HP Mux' Audio\ Playback"
cset "name='LOL Mux' Playback"
cset "name='MISO0_MUX' UL1_CH1"
cset "name='MISO1_MUX' UL1_CH1"
cset "name='ADC_L_Mux' Left\ Preamplifier"
cset "name='PGA_L_Mux' AIN1"
cset "name='HDMI_OUT_MUX' Connect"
cset "name='DPTX_OUT_MUX' Connect"
# we need to enable all devices before starting PA.
# In our driver we use PCM, which means that we have
# to route Front End to a BackEnd and then only we can
# open a device. Without linking to BE it will fail.
cset "name='O176 I070 Switch' on"
cset "name='O177 I071 Switch' on"
cset "name='O072 I022 Switch' on"
cset "name='O073 I023 Switch' on"
cset "name='O074 I024 Switch' on"
cset "name='O075 I025 Switch' on"
cset "name='O076 I026 Switch' on"
cset "name='O077 I027 Switch' on"
cset "name='O078 I028 Switch' on"
cset "name='O079 I029 Switch' on"
cset "name='O034 I168 Switch' on"
cset "name='O035 I169 Switch' on"
cset "name='O036 I012 Switch' on"
cset "name='O037 I013 Switch' on"
cset "name='O002 I004 Switch' on"
cset "name='O003 I005 Switch' on"
cset "name='O004 I006 Switch' on"
cset "name='O005 I007 Switch' on"
cset "name='O006 I008 Switch' on"
cset "name='O007 I009 Switch' on"
cset "name='O008 I010 Switch' on"
cset "name='O009 I011 Switch' on"
]

View File

@ -0,0 +1,141 @@
SectionDevice."HDMI" {
Comment "Hdmi output"
Value {
PlaybackPriority 250
PlaybackChannels 2
PlaybackPCM "hw:${CardId},1"
}
EnableSequence [
cset "name='O00 I07 Switch' on"
cset "name='O01 I08 Switch' on"
]
DisableSequence [
cset "name='O00 I07 Switch' off"
cset "name='O01 I08 Switch' off"
]
}
SectionDevice."Speaker" {
Comment "Line-out Jack "
ConflictingDevice [
"Headphones"
]
Value {
PlaybackPriority 300
PlaybackChannels 2
PlaybackPCM "hw:${CardId},0"
PlaybackVolume "name='Lineout_PGAL_GAIN'"
}
EnableSequence [
cset "name='Audio_Amp_L_Switch' Off"
cset "name='Audio_Amp_R_Switch' Off"
cset "name='Lineout_PGAL_GAIN' 0"
cset "name='Speaker_Amp_Switch' On"
]
DisableSequence [
cset "name='Audio_Amp_L_Switch' On"
cset "name='Audio_Amp_R_Switch' On"
cset "name='Speaker_Amp_Switch' Off"
]
}
SectionDevice."Headphones" {
Comment "Headset speakers"
ConflictingDevice [
"Speaker"
]
Value {
PlaybackPriority 300
PlaybackChannels 2
PlaybackPCM "hw:${CardId},0"
PlaybackVolume "name='Headset_PGAL_GAIN'"
}
EnableSequence [
cset "name='Audio_Amp_L_Switch' On"
cset "name='Audio_Amp_R_Switch' On"
cset "name='Headset_PGAL_GAIN' 1"
cset "name='Speaker_Amp_Switch' Off"
]
DisableSequence [
cset "name='Audio_Amp_L_Switch' Off"
cset "name='Audio_Amp_R_Switch' Off"
cset "name='Speaker_Amp_Switch' On"
]
}
SectionDevice."Mic1" {
Comment "Amic"
ConflictingDevice [
"Mic2"
]
Value {
CapturePriority 300
CaptureChannels 1
CapturePCM "hw:${CardId},2"
}
EnableSequence [
cset "name='Audio_MicSource1_Setting' ADC1"
cset "name='Audio_MICBIAS0_Switch' Off"
]
DisableSequence [
cset "name='Audio_MicSource1_Setting' ADC2"
cset "name='Audio_MICBIAS0_Switch' On"
]
}
SectionDevice."Mic2" {
Comment "Headset microphone"
ConflictingDevice [
"Mic1"
]
Value {
CapturePriority 350
CaptureChannels 1
CapturePCM "hw:${CardId},2"
}
EnableSequence [
cset "name='Audio_MicSource1_Setting' ADC2"
cset "name='Audio_MICBIAS0_Switch' On"
]
DisableSequence [
cset "name='Audio_MicSource1_Setting' ADC1"
cset "name='Audio_MICBIAS0_Switch' Off"
]
}
SectionDevice."Mic3" {
Comment "PDM microphones"
Value {
CapturePriority 100
CaptureChannels 2
CapturePCM "hw:${CardId},3"
}
EnableSequence [
cset "name='Audio_MICBIAS0_Switch' On"
]
DisableSequence [
cset "name='Audio_MICBIAS0_Switch' Off"
]
}

View File

@ -0,0 +1,39 @@
Syntax 4
SectionUseCase."HiFi" {
File "/MediaTek/mt8365-evk/HiFi.conf"
Comment "Play high quality music"
}
BootSequence [
#Audio volume
cset "name='Headset_PGAL_GAIN' 0"
cset "name='Lineout_PGAL_GAIN' 0"
#Audio amp
cset "name='Audio_Amp_R_Switch' On"
cset "name='Audio_Amp_L_Switch' On"
#Headset out
cset "name='Speaker_Amp_Switch' Off"
#Dmic
cset "name='Audio_MICBIAS0_Switch' On"
#HDMI audio (I2S3 Out)
cset "name='O00 I07 Switch' on"
cset "name='O01 I08 Switch' on"
#jack_mic Headset In
cset "name='Audio_MicSource1_Setting' ADC2"
cset "name='O03 I05 Switch' on"
cset "name='O04 I06 Switch' on"
cset "name='O05 I03 Switch' on"
cset "name='O06 I04 Switch' on"
cset "name='O09 I14 Switch' on"
cset "name='O10 I15 Switch' on"
cset "name='AUD_CLK_BUF_Switch' On"
cset "name='Audio_ADC_1_Switch' On"
cset "name='INT ADDA O03_O04 Switch' on"
]

View File

@ -0,0 +1,165 @@
SectionDevice."HDMI1" {
Comment "HDMI output"
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId},5"
JackControl "HDMI Jack"
}
EnableSequence [
cset "name='HDMI_OUT_MUX' 1"
]
DisableSequence [
cset "name='HDMI_OUT_MUX' 0"
]
}
SectionDevice."HDMI2" {
Comment "DP output"
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId},5"
JackControl "DP Jack"
}
EnableSequence [
cset "name='DPTX_OUT_MUX' 1"
]
DisableSequence [
cset "name='DPTX_OUT_MUX' 0"
]
}
SectionDevice."Speaker" {
Comment "Lineout speaker"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='LOL Mux' Playback_L_DAC"
]
DisableSequence [
cset "name='LOL Mux' Open"
]
Value {
PlaybackPriority 400
PlaybackChannels 2
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Headphones" {
Comment "Earphone speaker"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='HP Mux' Audio Playback"
]
DisableSequence [
cset "name='HP Mux' Open"
]
Value {
PlaybackPriority 500
PlaybackChannels 2
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Headset" {
Comment "Earphone microphone"
ConflictingDevice [
"Mic1"
]
EnableSequence [
cset "name='PGA_L_Mux' AIN1"
]
Value {
CapturePriority 500
CaptureChannels 1
CapturePCM "hw:${CardId},10"
}
}
SectionDevice."Mic1" {
Comment "Analog microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='PGA_L_Mux' AIN0"
]
Value {
CapturePriority 400
CaptureChannels 1
CapturePCM "hw:${CardId},10"
}
}
SectionDevice."Mic2" {
Comment "Digital microphone"
Value {
CapturePriority 300
CaptureChannels 2
CapturePCM "hw:${CardId},14"
}
}
SectionDevice."Line1" {
Comment "PCM input"
Value {
CapturePriority 200
CaptureChannels 2
CapturePCM "hw:${CardId},8"
}
}
SectionDevice."Line2" {
Comment "PCM output"
Value {
PlaybackPriority 200
PlaybackChannels 2
PlaybackPCM "hw:${CardId},2"
}
}
SectionDevice."Line3" {
Comment "I2S input"
Value {
CapturePriority 100
CaptureChannels 2
CapturePCM "hw:${CardId},11"
}
}
SectionDevice."Line4" {
Comment "I2S output"
Value {
PlaybackPriority 100
PlaybackChannels 8
PlaybackPCM "hw:${CardId},6"
}
}

View File

@ -0,0 +1,45 @@
Syntax 4
SectionUseCase."HiFi" {
File "/MediaTek/mt8370-evk/HiFi.conf"
Comment "Play high quality music"
}
BootSequence [
cset "name='HP Mux' Audio Playback"
cset "name='LOL Mux' Open"
cset "name='MISO0_MUX' UL1_CH1"
cset "name='MISO1_MUX' UL1_CH1"
cset "name='ADC_L_Mux' Left Preamplifier"
cset "name='PGA_L_Mux' AIN1"
cset "name='HDMI_OUT_MUX' Connect"
cset "name='DPTX_OUT_MUX' Disconnect"
cset "name='ETDM_OUT1_Clock_Source' a1sys_a2sys"
cset "name='ETDM_OUT2_Clock_Source' a1sys_a2sys"
cset "name='ETDM_OUT3_Clock_Source' a1sys_a2sys"
cset "name='ETDM_IN1_Clock_Source' a1sys_a2sys"
cset "name='ETDM_IN2_Clock_Source' a1sys_a2sys"
cset "name='Lineout Volume' 10"
cset "name='Headset Volume' 2"
cset "name='PGA1 Volume' 4"
cset "name='O000 I000 Switch' on"
cset "name='O001 I001 Switch' on"
cset "name='O002 I004 Switch' on"
cset "name='O003 I006 Switch' on"
cset "name='O034 I168 Switch' on"
cset "name='O035 I169 Switch' on"
cset "name='O036 I012 Switch' on"
cset "name='O037 I013 Switch' on"
cset "name='O040 I002 Switch' on"
cset "name='O041 I003 Switch' on"
cset "name='O048 I022 Switch' on"
cset "name='O049 I023 Switch' on"
cset "name='O050 I024 Switch' on"
cset "name='O051 I025 Switch' on"
cset "name='O052 I026 Switch' on"
cset "name='O053 I027 Switch' on"
cset "name='O054 I028 Switch' on"
cset "name='O055 I029 Switch' on"
cset "name='O176 I070 Switch' on"
cset "name='O177 I071 Switch' on"
]

View File

@ -0,0 +1,165 @@
SectionDevice."HDMI1" {
Comment "HDMI output"
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId},5"
JackControl "HDMI Jack"
}
EnableSequence [
cset "name='HDMI_OUT_MUX' 1"
]
DisableSequence [
cset "name='HDMI_OUT_MUX' 0"
]
}
SectionDevice."HDMI2" {
Comment "DP output"
Value {
PlaybackPriority 300
PlaybackPCM "hw:${CardId},5"
JackControl "DP Jack"
}
EnableSequence [
cset "name='DPTX_OUT_MUX' 1"
]
DisableSequence [
cset "name='DPTX_OUT_MUX' 0"
]
}
SectionDevice."Speaker" {
Comment "Lineout speaker"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='LOL Mux' Playback_L_DAC"
]
DisableSequence [
cset "name='LOL Mux' Open"
]
Value {
PlaybackPriority 400
PlaybackChannels 2
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Headphones" {
Comment "Earphone speaker"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='HP Mux' Audio Playback"
]
DisableSequence [
cset "name='HP Mux' Open"
]
Value {
PlaybackPriority 500
PlaybackChannels 2
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Headset" {
Comment "Earphone microphone"
ConflictingDevice [
"Mic1"
]
EnableSequence [
cset "name='PGA_L_Mux' AIN1"
]
Value {
CapturePriority 500
CaptureChannels 1
CapturePCM "hw:${CardId},10"
}
}
SectionDevice."Mic1" {
Comment "Analog microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='PGA_L_Mux' AIN0"
]
Value {
CapturePriority 400
CaptureChannels 1
CapturePCM "hw:${CardId},10"
}
}
SectionDevice."Mic2" {
Comment "Digital microphone"
Value {
CapturePriority 300
CaptureChannels 2
CapturePCM "hw:${CardId},14"
}
}
SectionDevice."Line1" {
Comment "PCM input"
Value {
CapturePriority 200
CaptureChannels 2
CapturePCM "hw:${CardId},8"
}
}
SectionDevice."Line2" {
Comment "PCM output"
Value {
PlaybackPriority 200
PlaybackChannels 2
PlaybackPCM "hw:${CardId},2"
}
}
SectionDevice."Line3" {
Comment "I2S input"
Value {
CapturePriority 100
CaptureChannels 2
CapturePCM "hw:${CardId},11"
}
}
SectionDevice."Line4" {
Comment "I2S output"
Value {
PlaybackPriority 100
PlaybackChannels 8
PlaybackPCM "hw:${CardId},6"
}
}

View File

@ -0,0 +1,45 @@
Syntax 4
SectionUseCase."HiFi" {
File "/MediaTek/mt8390-evk/HiFi.conf"
Comment "Play high quality music"
}
BootSequence [
cset "name='HP Mux' Audio Playback"
cset "name='LOL Mux' Open"
cset "name='MISO0_MUX' UL1_CH1"
cset "name='MISO1_MUX' UL1_CH1"
cset "name='ADC_L_Mux' Left Preamplifier"
cset "name='PGA_L_Mux' AIN1"
cset "name='HDMI_OUT_MUX' Connect"
cset "name='DPTX_OUT_MUX' Disconnect"
cset "name='ETDM_OUT1_Clock_Source' a1sys_a2sys"
cset "name='ETDM_OUT2_Clock_Source' a1sys_a2sys"
cset "name='ETDM_OUT3_Clock_Source' a1sys_a2sys"
cset "name='ETDM_IN1_Clock_Source' a1sys_a2sys"
cset "name='ETDM_IN2_Clock_Source' a1sys_a2sys"
cset "name='Lineout Volume' 10"
cset "name='Headset Volume' 2"
cset "name='PGA1 Volume' 4"
cset "name='O000 I000 Switch' on"
cset "name='O001 I001 Switch' on"
cset "name='O002 I004 Switch' on"
cset "name='O003 I006 Switch' on"
cset "name='O034 I168 Switch' on"
cset "name='O035 I169 Switch' on"
cset "name='O036 I012 Switch' on"
cset "name='O037 I013 Switch' on"
cset "name='O040 I002 Switch' on"
cset "name='O041 I003 Switch' on"
cset "name='O048 I022 Switch' on"
cset "name='O049 I023 Switch' on"
cset "name='O050 I024 Switch' on"
cset "name='O051 I025 Switch' on"
cset "name='O052 I026 Switch' on"
cset "name='O053 I027 Switch' on"
cset "name='O054 I028 Switch' on"
cset "name='O055 I029 Switch' on"
cset "name='O176 I070 Switch' on"
cset "name='O177 I071 Switch' on"
]

View File

@ -0,0 +1,163 @@
SectionDevice."HDMI1" {
Comment "HDMI output"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},5"
JackControl "HDMI Jack"
}
EnableSequence [
cset "name='HDMI_OUT_MUX' 1"
]
DisableSequence [
cset "name='HDMI_OUT_MUX' 0"
]
}
SectionDevice."HDMI2" {
Comment "DP output"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},5"
JackControl "DP Jack"
}
EnableSequence [
cset "name='DPTX_OUT_MUX' 1"
]
DisableSequence [
cset "name='DPTX_OUT_MUX' 0"
]
}
SectionDevice."HDMI3" {
Comment "HDMI RX"
Value {
CapturePriority 200
CapturePCM "hw:${CardId},7"
}
}
SectionDevice."Speaker" {
Comment "Lineout speaker"
ConflictingDevice [
"Headphones"
]
EnableSequence [
cset "name='LOL Mux' Playback_L_DAC"
]
DisableSequence [
cset "name='LOL Mux' Open"
]
Value {
PlaybackPriority 300
PlaybackChannels 2
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Headphones" {
Comment "Earphone speaker"
ConflictingDevice [
"Speaker"
]
EnableSequence [
cset "name='HP Mux' Audio Playback"
]
DisableSequence [
cset "name='HP Mux' Open"
]
Value {
PlaybackPriority 400
PlaybackChannels 2
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Headset" {
Comment "Earphone microphone"
ConflictingDevice [
"Mic1"
]
EnableSequence [
cset "name='PGA_L_Mux' AIN1"
]
Value {
CapturePriority 500
CaptureChannels 3
CapturePCM "hw:${CardId},15"
}
}
SectionDevice."Mic1" {
Comment "Analog microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='PGA_L_Mux' AIN0"
cset "name='O039 I169 Switch' on"
cset "name='O182 I170 Switch' on"
cset "name='MISO1_MUX' UL1_CH2"
]
DisableSequence [
cset "name='O039 I169 Switch' off"
cset "name='O182 I170 Switch' off"
cset "name='MISO1_MUX' UL1_CH1"
]
Value {
CapturePriority 400
CaptureChannels 3
CapturePCM "hw:${CardId},15"
}
}
SectionDevice."Mic2" {
Comment "Digital microphone"
Value {
CapturePriority 300
CaptureChannels 2
CapturePCM "hw:${CardId},14"
}
}
SectionDevice."Line1" {
Comment "PCM input"
Value {
CapturePriority 100
CaptureChannels 2
CapturePCM "hw:${CardId},8"
}
}
SectionDevice."Line2" {
Comment "PCM output"
Value {
PlaybackPriority 100
PlaybackChannels 2
PlaybackPCM "hw:${CardId},2"
}
}

View File

@ -0,0 +1,47 @@
Syntax 4
SectionUseCase."HiFi" {
File "/MediaTek/mt8395-evk/HiFi.conf"
Comment "Play high quality music"
}
BootSequence [
cset "name='HP Mux' Audio Playback"
cset "name='LOL Mux' Open"
cset "name='MISO0_MUX' UL1_CH1"
cset "name='MISO1_MUX' UL1_CH1"
cset "name='ADC_L_Mux' Left Preamplifier"
cset "name='ADC_R_Mux' Right Preamplifier"
cset "name='ADC_3_Mux' Preamplifier"
cset "name='PGA_L_Mux' AIN1"
cset "name='PGA_R_Mux' AIN2"
cset "name='PGA_3_Mux' AIN3"
cset "name='HDMI_OUT_MUX' Connect"
cset "name='DPTX_OUT_MUX' Disconnect"
cset "name='MULTI_IN1_MUX' HDMI_RX_I2S"
cset "name='Lineout Volume' 10"
cset "name='Headset Volume' 2"
cset "name='PGA1 Volume' 4"
cset "name='PGA2 Volume' 4"
cset "name='PGA3 Volume' 4"
cset "name='O000 I000 Switch' on"
cset "name='O001 I001 Switch' on"
cset "name='O002 I004 Switch' on"
cset "name='O003 I005 Switch' on"
cset "name='O004 I006 Switch' on"
cset "name='O005 I007 Switch' on"
cset "name='O006 I008 Switch' on"
cset "name='O007 I009 Switch' on"
cset "name='O008 I010 Switch' on"
cset "name='O009 I011 Switch' on"
cset "name='O034 I168 Switch' on"
cset "name='O035 I169 Switch' on"
cset "name='O038 I168 Switch' on"
cset "name='O039 I169 Switch' on"
cset "name='O040 I002 Switch' on"
cset "name='O041 I003 Switch' on"
cset "name='O176 I070 Switch' on"
cset "name='O177 I071 Switch' on"
cset "name='O182 I170 Switch' on"
cset "name='O183 I171 Switch' on"
]

Some files were not shown because too many files have changed in this diff Show More