[Sound-open-firmware] [PATCH 1/2] topology: add kcontrol for tone
Ranjani Sridharan
ranjani.sridharan at linux.intel.com
Sun Mar 4 07:14:25 CET 2018
This patch adds the changes required to support kcontrols for tone
components in topology
Signed-off-by: Ranjani Sridharan <ranjani.sridharan at linux.intel.com>
---
Tested with:
Minnowboard Turbot rt5651
SOF master: 28cb21b578759cdaa884d440d7d79b2c44e716a4
SOF-Tool master: a02abb799405d0e4ad0d6bb46eacf6fbe958c06e
https://github.com/plbossart/sound/tree/topic/sof-v4.14:
9513a73b981bc1917705671ec54402a7e21672eb
---
---
topology/m4/local.m4 | 5 ++++-
topology/sof/pipe-tone.m4 | 31 ++++++++++++++++++++++++++++++-
2 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/topology/m4/local.m4 b/topology/m4/local.m4
index 29b8b29..a340ec3 100644
--- a/topology/m4/local.m4
+++ b/topology/m4/local.m4
@@ -227,7 +227,7 @@ define(`W_MIXER',
dnl Tone name)
define(`N_TONE', `TONE'PIPELINE_ID`.'$1)
-dnl W_TONE(name, format, periods_sink, periods_source, preload)
+dnl W_TONE(name, format, periods_sink, periods_source, preload, kcontrols)
define(`W_TONE',
`SectionVendorTuples."'N_TONE($1)`_tuples_w" {'
` tokens "sof_comp_tokens"'
@@ -257,6 +257,9 @@ define(`W_TONE',
` "'N_TONE($1)`_data_w"'
` "'N_TONE($1)`_data_str"'
` ]'
+` mixer ['
+ $6
+` ]'
`}')
dnl DAI name)
diff --git a/topology/sof/pipe-tone.m4 b/topology/sof/pipe-tone.m4
index e04a1b9..8f92680 100644
--- a/topology/sof/pipe-tone.m4
+++ b/topology/sof/pipe-tone.m4
@@ -32,6 +32,7 @@ SectionControlMixer.STR(Tone Volume PIPELINE_ID) {
# control uses bespoke driver get/put/info ID 0
ops."ctl" {
info "volsw"
+ # 256 binds the mixer control to volume get/put handlers
get "256"
put "256"
}
@@ -42,12 +43,40 @@ SectionControlMixer.STR(Tone Volume PIPELINE_ID) {
tlv "vtlv_m90s3"
}
+SectionControlMixer.STR(Tone Switch PIPELINE_ID) {
+
+ # control belongs to this index group
+ index STR(PIPELINE_ID)
+
+ # Channel register and shift for Front Left/Right
+ channel."FL" {
+ reg "2"
+ shift "0"
+ }
+ channel."FR" {
+ reg "2"
+ shift "1"
+ }
+
+ # control uses bespoke driver get/put/info ID 0
+ ops."ctl" {
+ info "volsw"
+ # 256 binds the mixer control to volume get/put handlers
+ get "256"
+ put "256"
+ }
+
+ # max 1 indicates switch type mixer control
+ max "1"
+ invert "false"
+}
+
#
# Components and Buffers
#
# "Tone 0" has 2 sink period and 0 source periods
-W_TONE(0, PIPELINE_FORMAT, 2, 0, 0)
+W_TONE(0, PIPELINE_FORMAT, 2, 0, 0, KCONTROLS("Tone Switch PIPELINE_ID"))
# "Tone Volume" has 2 sink period and 2 source periods
W_PGA(0, PIPELINE_FORMAT, 2, 2, 0, KCONTROLS("Tone Volume PIPELINE_ID"))
--
2.14.1
More information about the Sound-open-firmware
mailing list