]> git.alsa-project.org Git - alsa-lib.git/commitdiff
conf: topology: Add topology file for broadwell audio DSP
authorLiam Girdwood <liam.r.girdwood@linux.intel.com>
Wed, 29 Jul 2015 16:45:25 +0000 (17:45 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 30 Jul 2015 15:10:32 +0000 (17:10 +0200)
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
configure.ac
src/conf/Makefile.am
src/conf/topology/Makefile.am [new file with mode: 0644]
src/conf/topology/broadwell/Makefile.am [new file with mode: 0644]
src/conf/topology/broadwell/broadwell.conf [new file with mode: 0644]

index b6bea2dca434e6f68fb131b5e659136ad546ba50..a482b3e7f6cae58f84a1c542257d3e5c9e39c603 100644 (file)
@@ -663,6 +663,8 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \
          src/conf/ucm/PAZ00/Makefile \
          src/conf/ucm/GoogleNyan/Makefile \
          src/conf/ucm/broadwell-rt286/Makefile \
+         src/conf/topology/Makefile \
+         src/conf/topology/broadwell/Makefile \
          modules/Makefile modules/mixer/Makefile modules/mixer/simple/Makefile \
          alsalisp/Makefile aserver/Makefile \
          test/Makefile test/lsb/Makefile \
index 948d5a1c822e8e8c93c0df232a95e6431f1d7ccb..a04f73fddc6590f5b7a8be4180f4fa82ec1e3959 100644 (file)
@@ -1,4 +1,4 @@
-SUBDIRS=cards pcm alsa.conf.d ucm
+SUBDIRS=cards pcm alsa.conf.d ucm topology
 
 cfg_files = alsa.conf
 if BUILD_ALISP
diff --git a/src/conf/topology/Makefile.am b/src/conf/topology/Makefile.am
new file mode 100644 (file)
index 0000000..f56a96c
--- /dev/null
@@ -0,0 +1 @@
+SUBDIRS=broadwell
diff --git a/src/conf/topology/broadwell/Makefile.am b/src/conf/topology/broadwell/Makefile.am
new file mode 100644 (file)
index 0000000..35d1e83
--- /dev/null
@@ -0,0 +1,4 @@
+alsaconfigdir = @ALSA_CONFIG_DIR@
+topologydir = $(alsaconfigdir)/topology/broadwell
+topology_DATA = broadwell.conf
+EXTRA_DIST = $(topology_DATA)
diff --git a/src/conf/topology/broadwell/broadwell.conf b/src/conf/topology/broadwell/broadwell.conf
new file mode 100644 (file)
index 0000000..05b3889
--- /dev/null
@@ -0,0 +1,375 @@
+# Dynamic Firmware Configuration for Broadwell
+
+# TLV
+SectionTLV."hsw_vol_tlv" {
+       Comment "TLV used by both global and stream volumes"
+
+       scale {
+               min "-9000"
+               step "300"
+               mute "1"
+       }
+}
+
+# Controls
+SectionControlMixer."Master Playback Volume" {
+       Comment "Global DSP volume"
+
+       # control belongs to this index group
+       index "1"
+
+       # Channel register and shift for Front Left/Right
+       channel."FL" {
+               reg "0"
+               shift "0"
+       }
+       channel."FR" {
+               reg "0"
+               shift "8"
+       }
+
+       # max control value and whether value is inverted
+       max "31"
+       invert "false"
+
+       # control uses bespoke driver get/put/info ID 0
+       ops."ctl" {
+               info "volsw"
+               get "256"
+               put "256"
+       }
+
+       # uses TLV data above
+       tlv "hsw_vol_tlv"
+}
+
+SectionControlMixer."Media0 Playback Volume" {
+       Comment "Offload 0 volume"
+
+       # control belongs to this index group
+       index "1"
+
+       # Channel register and shift for Front Left/Right
+       channel."FL" {
+               reg "1"
+               shift "0"
+       }
+       channel."FR" {
+               reg "1"
+               shift "8"
+       }
+
+       # max control value and whether value is inverted
+       max "31"
+       invert "false"
+
+       # control uses bespoke driver get/put/info ID 0
+       ops."ctl" {
+               info "volsw"
+               get "257"
+               put "257"
+       }
+
+       # uses TLV data above
+       tlv "hsw_vol_tlv"
+}
+
+SectionControlMixer."Media1 Playback Volume" {
+       Comment "Offload 1 volume"
+
+       # control belongs to this index group
+       index "1"
+
+       # Channel register and shift for Front Left/Right
+       channel."FL" {
+               reg "2"
+               shift "0"
+       }
+       channel."FR" {
+               reg "2"
+               shift "8"
+       }
+
+       # max control value and whether value is inverted
+       max "31"
+       invert "false"
+
+       # control uses bespoke driver get/put/info ID 0
+       ops."ctl" {
+               info "volsw"
+               get "257"
+               put "257"
+       }
+
+       # uses TLV data above
+       tlv "hsw_vol_tlv"
+}
+
+SectionControlMixer."Mic Capture Volume" {
+       Comment "Mic Capture volume"
+
+       # control belongs to this index group
+       index "1"
+
+       # Channel register and shift for Front Left/Right
+       channel."FL" {
+               reg "0"
+               shift "0"
+       }
+       channel."FR" {
+               reg "0"
+               shift "8"
+       }
+
+       # max control value and whether value is inverted
+       max "31"
+       invert "false"
+
+       # control uses bespoke driver get/put/info ID 0
+       ops."ctl" {
+               info "volsw"
+               get "257"
+               put "257"
+       }
+
+       # uses TLV data above
+       tlv "hsw_vol_tlv"
+}
+
+SectionWidget."SSP0 CODEC IN" {
+
+       index "1"
+       type "aif_in"
+       no_pm "true"
+       shift "0"
+       invert "0"
+}
+
+SectionWidget."SSP0 CODEC OUT" {
+
+       index "1"
+       type "aif_out"
+       no_pm "true"
+       shift "0"
+       invert "0"
+}
+
+SectionWidget."SSP1 BT IN" {
+
+       index "1"
+       type "aif_in"
+       no_pm "true"
+       shift "0"
+       invert "0"
+}
+
+SectionWidget."SSP1 BT OUT" {
+
+       index "1"
+       type "aif_out"
+       no_pm "true"
+       shift "0"
+       invert "0"
+}
+
+SectionWidget."Playback VMixer" {
+
+       index "1"
+       type "mixer"
+       no_pm "true"
+       shift "0"
+       invert "0"
+}
+
+# PCM Configurations supported by FW
+SectionPCMConfig."PCM 48k Stereo 24bit" {
+
+       config."playback" {
+               format "S24_LE"
+               rate "48000"
+               channels "2"
+               tdm_slot "0xf"
+       }
+
+       config."capture" {
+               format "S24_LE"
+               rate "48000"
+               channels "2"
+               tdm_slot "0xf"
+       }
+}
+
+SectionPCMConfig."PCM 48k Stereo 16bit" {
+
+       config."playback" {
+               format "S16_LE"
+               rate "48000"
+               channels "2"
+               tdm_slot "0xf"
+       }
+
+       config."capture" {
+               format "S16_LE"
+               rate "48000"
+               channels "2"
+               tdm_slot "0xf"
+       }
+}
+
+SectionPCMConfig."PCM 48k 2P/4C 16bit" {
+
+       config."playback" {
+               format "S16_LE"
+               rate "48000"
+               channels "2"
+               tdm_slot "0xf"
+       }
+
+       config."capture" {
+               format "S16_LE"
+               rate "48000"
+               channels "4"
+               tdm_slot "0xf"
+       }
+}
+
+# PCM capabilities supported by FW
+SectionPCMCapabilities."System Playback" {
+
+       formats "S24_LE,S16_LE"
+       rate_min "48000"
+       rate_max "48000"
+       channels_min "2"
+       channels_max "2"
+}
+
+SectionPCMCapabilities."Analog Capture" {
+
+       formats "S24_LE,S16_LE"
+       rate_min "48000"
+       rate_max "48000"
+       channels_min "2"
+       channels_max "4"
+}
+
+SectionPCMCapabilities."Loopback Capture" {
+
+       formats "S24_LE,S16_LE"
+       rate_min "48000"
+       rate_max "48000"
+       channels_min "2"
+       channels_max "2"
+}
+
+SectionPCMCapabilities."Offload0 Playback" {
+       formats "S24_LE,S16_LE"
+       rate_min "8000"
+       rate_max "192000"
+       channels_min "2"
+       channels_max "2"
+}
+
+SectionPCMCapabilities."Offload1 Playback" {
+       formats "S24_LE,S16_LE"
+       rate_min "8000"
+       rate_max "48000"
+       channels_min "2"
+       channels_max "2"
+}
+
+# PCM devices exported by Firmware
+SectionPCM."System Pin" {
+
+       index "1"
+
+       # used for binding to the PCM
+       ID "0"
+
+       pcm."playback" {
+
+               capabilities "System Playback"
+
+               configs [
+                       "PCM 48k Stereo 24bit"
+                       "PCM 48k Stereo 16bit"
+               ]
+       }
+
+       pcm."capture" {
+
+               capabilities "Analog Capture"
+
+               configs [
+                       "PCM 48k Stereo 24bit"
+                       "PCM 48k Stereo 16bit"
+                       "PCM 48k 2P/4C 16bit"
+               ]
+       }
+}
+
+SectionPCM."Offload0 Pin" {
+
+       index "1"
+
+       # used for binding to the PCM
+       ID "1"
+
+       pcm."playback" {
+
+               capabilities "Offload0 Playback"
+
+               configs [
+                       "PCM 48k Stereo 24bit"
+                       "PCM 48k Stereo 16bit"
+               ]
+       }
+}
+
+SectionPCM."Offload1 Pin" {
+
+       index "1"
+
+       # used for binding to the PCM
+       ID "2"
+
+       pcm."playback" {
+
+               capabilities "Offload1 Playback"
+
+               configs [
+                       "PCM 48k Stereo 24bit"
+                       "PCM 48k Stereo 16bit"
+               ]
+       }
+}
+
+SectionPCM."Loopback Pin" {
+
+       index "1"
+
+       # used for binding to the PCM
+       ID "3"
+
+       pcm."capture" {
+
+               capabilities "Loopback Capture"
+
+               configs [
+                       "PCM 48k Stereo 24bit"
+                       "PCM 48k Stereo 16bit"
+               ]
+       }
+}
+
+SectionGraph."dsp" {
+       index "1"
+
+       lines [
+               "Playback VMixer, , System Playback"
+               "Playback VMixer, , Offload0 Playback"
+               "Playback VMixer, , Offload1 Playback"
+               "SSP0 CODEC OUT, , Playback VMixer"
+               "Loopback Capture, , Playback VMixer"
+               "Analog Capture, , SSP0 CODEC IN"
+       ]
+}