diff options
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | src/conf/topology/Makefile.am | 2 | ||||
-rw-r--r-- | src/conf/topology/qcom/Makefile.am | 4 | ||||
-rw-r--r-- | src/conf/topology/qcom/qcom.conf | 399 |
4 files changed, 405 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index a06a4b71..9dc0906f 100644 --- a/configure.ac +++ b/configure.ac @@ -680,6 +680,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \ src/conf/ucm/DB820c/Makefile \ src/conf/topology/Makefile \ src/conf/topology/broadwell/Makefile \ + src/conf/topology/qcom/Makefile \ modules/Makefile modules/mixer/Makefile modules/mixer/simple/Makefile \ src/conf/topology/sklrt286/Makefile \ src/conf/topology/bxtrt298/Makefile \ diff --git a/src/conf/topology/Makefile.am b/src/conf/topology/Makefile.am index 8adaed90..14e30b79 100644 --- a/src/conf/topology/Makefile.am +++ b/src/conf/topology/Makefile.am @@ -1 +1 @@ -SUBDIRS=broadwell sklrt286 bxtrt298 +SUBDIRS=broadwell sklrt286 bxtrt298 qcom diff --git a/src/conf/topology/qcom/Makefile.am b/src/conf/topology/qcom/Makefile.am new file mode 100644 index 00000000..35c72262 --- /dev/null +++ b/src/conf/topology/qcom/Makefile.am @@ -0,0 +1,4 @@ +alsaconfigdir = @ALSA_CONFIG_DIR@ +topologydir = $(alsaconfigdir)/topology/qcom +topology_DATA = qcom.conf +EXTRA_DIST = $(topology_DATA) diff --git a/src/conf/topology/qcom/qcom.conf b/src/conf/topology/qcom/qcom.conf new file mode 100644 index 00000000..21aaf7e7 --- /dev/null +++ b/src/conf/topology/qcom/qcom.conf @@ -0,0 +1,399 @@ +# Dynamic Firmware Configuration for Qualcomm QDSPV2 + +#FrontEnd dais. + +SectionWidget."MM_DL1" { + index "2" + stream_name "MultiMedia1 Playback" + type "aif_in" + no_pm "true" + shift "0" + invert "0" + reg "0" +} + +SectionWidget."MM_DL2" { + index "2" + stream_name "MultiMedia2 Playback" + type "aif_in" + no_pm "true" + shift "0" + reg "0" + invert "0" +} + +SectionWidget."MM_DL3" { + index "2" + stream_name "MultiMedia3 Playback" + type "aif_in" + no_pm "true" + shift "0" + reg "0" + invert "0" +} + +SectionWidget."MM_DL4" { + index "2" + stream_name "MultiMedia4 Playback" + type "aif_in" + no_pm "true" + shift "0" + reg "0" + invert "0" +} + +SectionWidget."MM_DL5" { + index "2" + stream_name "MultiMedia5 Playback" + type "aif_in" + no_pm "true" + shift "0" + reg "0" + invert "0" +} + +SectionWidget."MM_DL6" { + index "2" + stream_name "MultiMedia6 Playback" + type "aif_in" + no_pm "true" + shift "0" + reg "0" + invert "0" +} + +SectionWidget."MM_DL7" { + index "2" + stream_name "MultiMedia7 Playback" + type "aif_in" + no_pm "true" + shift "0" + invert "0" + reg "0" +} + +SectionWidget."MM_DL8" { + index "2" + stream_name "MultiMedia8 Playback" + type "aif_in" + no_pm "true" + reg "0" + shift "0" + invert "0" +} + +# FrontEnd mixer controls + +SectionControlMixer."MultiMedia1" { + + # control belongs to this index group + index "2" + #AFE_PORT_HDMI_RX + + channel."FL" { + reg "8" + shift "0" + } + channel."FR" { + reg "8" + shift "0" + } + + # max control value and whether value is inverted + min "0" + max "1" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } +} + +SectionControlMixer."MultiMedia2" { + #Comment "Hdmi Mux Control" + + # control belongs to this index group + index "2" + #AFE_PORT_HDMI_RX + channel."FL" { + reg "8" + shift "1" + } + channel."FR" { + reg "8" + shift "1" + } + + # max control value and whether value is inverted + min "0" + max "1" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } +} + +SectionControlMixer."MultiMedia3" { + #Comment "Hdmi Mux Control" + + # control belongs to this index group + index "2" + #AFE_PORT_HDMI_RX + channel."FL" { + reg "8" + shift "2" + } + channel."FR" { + reg "8" + shift "2" + } + + # max control value and whether value is inverted + min "0" + max "1" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } +} + +SectionControlMixer."MultiMedia4" { + #Comment "Hdmi Mux Control" + + # control belongs to this index group + index "2" + #AFE_PORT_HDMI_RX + channel."FL" { + reg "8" + shift "3" + } + channel."FR" { + reg "8" + shift "3" + } + + # max control value and whether value is inverted + min "0" + max "1" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } +} + +SectionControlMixer."MultiMedia5" { + #Comment "Hdmi Mux Control" + + # control belongs to this index group + index "2" + #AFE_PORT_HDMI_RX + channel."FL" { + reg "8" + shift "4" + } + channel."FR" { + reg "8" + shift "4" + } + + # max control value and whether value is inverted + min "0" + max "1" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } +} + +SectionControlMixer."MultiMedia6" { + #Comment "Hdmi Mux Control" + + # control belongs to this index group + index "2" + #AFE_PORT_HDMI_RX + channel."FL" { + reg "8" + shift "5" + } + channel."FR" { + reg "8" + shift "5" + } + + # max control value and whether value is inverted + min "0" + max "1" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } +} + +SectionControlMixer."MultiMedia7" { + #Comment "Hdmi Mux Control" + + # control belongs to this index group + index "2" + #AFE_PORT_HDMI_RX + channel."FL" { + reg "8" + shift "6" + } + channel."FR" { + reg "8" + shift "6" + } + + # max control value and whether value is inverted + min "0" + max "1" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } +} + +SectionControlMixer."MultiMedia8" { + #Comment "Hdmi Mux Control" + + # control belongs to this index group + index "2" + #AFE_PORT_HDMI_RX + channel."FL" { + reg "8" + shift "7" + } + channel."FR" { + reg "8" + shift "7" + } + + # max control value and whether value is inverted + min "0" + max "1" + invert "false" + + # control uses bespoke driver get/put/info ID 0 + ops."ctl" { + info "volsw" + get "257" + put "257" + } +} + +SectionWidget."HDMI Mixer" { + index "2" + reg "-1" + + type "mixer" + no_pm "true" + shift "0" + invert "0" + mixer [ + "MultiMedia1" + "MultiMedia2" + "MultiMedia3" + "MultiMedia4" + "MultiMedia5" + "MultiMedia6" + "MultiMedia7" + "MultiMedia8" + ] +} + +# Backend Dais configuration. +SectionPCMCapabilities."MultiMedia cap" { + + formats "S24_LE,S16_LE" + rate_min "8000" + rate_max "192000" + channels_min "1" + channels_max "8" +} + +SectionPCMCapabilities."HDMI Playback" { + + index "1" + formats "S24_LE,S16_LE" + rate_min "48000" + rate_max "96000" + channels_min "2" + channels_max "8" +} + +SectionDAI."HDMI" { + + index "1" + id "8" + +# stream_name "HDMI Playback" + + pcm."playback" { + + capabilities "HDMI Playback" + + } +} + +#PCM configuration aka Frontends. + +SectionPCM."MultiMedia1 Playback" { + + index "3" + + id "0" + + dai."MultiMedia1 Playback" { + # MSM_FRONTEND_DAI_MULTIMEDIA1 + id "0" + } + + pcm."playback" { + + capabilities "MultiMedia cap" + + } +} + +SectionGraph."dsp" { + index "2" + + lines [ + "HDMI Mixer, MultiMedia1, MM_DL1" + "HDMI Mixer, MultiMedia2, MM_DL2" + "HDMI Mixer, MultiMedia3, MM_DL3" + "HDMI Mixer, MultiMedia4, MM_DL4" + "HDMI Mixer, MultiMedia5, MM_DL5" + "HDMI Mixer, MultiMedia6, MM_DL6" + "HDMI Mixer, MultiMedia7, MM_DL7" + "HDMI Mixer, MultiMedia8, MM_DL8" +# "HDMI, , HDMI Mixer" + ] +} |