aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac1
-rw-r--r--src/conf/topology/Makefile.am2
-rw-r--r--src/conf/topology/qcom/Makefile.am4
-rw-r--r--src/conf/topology/qcom/qcom.conf399
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"
+ ]
+}