[Sound-open-firmware] [PATCH V2 3/3] topology: test: Add loopback topology
Xiuli Pan
xiuli.pan at linux.intel.com
Wed Jun 20 11:32:13 CEST 2018
From: Pan Xiuli <xiuli.pan at linux.intel.com>
loopback topology will have a token to let driver create a kcontrol for
the dai loopback mode.
Signed-off-by: Pan Xiuli <xiuli.pan at linux.intel.com>
---
Work with patch set:
SOF-Kernel(7):
ASoC: SOF: Add debug_mode flag in sof dev
ASoC: SOF: debug: add debugmode debugfs for sof_dev debug_mode
ASoC: SOF: uapi: topology: Add SOF_TKN_DAI_LBM_KCONTROL for ssp
loopback mode kcontrol
ASoC: SOF: add headers for switch control callback functions
ASoC: SOF: add switch kcontrol callback functions
ASoC: SOF: topology: Add DAI TOKEN string bool parser
ASoC: SOF: topology: Add topology handler for dai lbm kcontrol
SOF(5):
dai: add lbm status for dai ssp
dai: add get_loopback_mode function
DMIC: add empty get_loopback_mode function
SSP: support for get/set_loopback_mode functions
dai: add dai_cmd support for loopback mode switch
SOF-Tools(3):
topology: Add SOF_TKN_DAI_LBM_KCONTROL for ssp loopback mode kcontrol
topology: m4: add dai lbm kcotnrol support
topology: test: Add loopback topology
test & santity test with:
Mininow max rt5651 and UP2 Hifiberry PRO and CNL nocodec
SOF master: 27795ece0ff9405795cef866fc28a7ab6db20d82
SOF-Tool master: bd7dc88231f31d385340310cef467f211a739eeb
sof-dev: df15329163229fe3436ad914561430c20f778cf1
---
topology/test/test-loopback.m4 | 94 ++++++++++++++++++++++++++++++++++++++++++
topology/test/tplg-build.sh | 2 +-
2 files changed, 95 insertions(+), 1 deletion(-)
create mode 100644 topology/test/test-loopback.m4
diff --git a/topology/test/test-loopback.m4 b/topology/test/test-loopback.m4
new file mode 100644
index 0000000..1db8acc
--- /dev/null
+++ b/topology/test/test-loopback.m4
@@ -0,0 +1,94 @@
+#
+# Topology for pass through pipeline
+#
+
+# Include topology builder
+include(`dai.m4')
+include(`utils.m4')
+include(`pipeline.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include Baytrail DSP configuration
+include(`dsps/byt.m4')
+
+#
+# Machine Specific Config - !! MUST BE SET TO MATCH TEST MACHINE DRIVER !!
+#
+# TEST_PIPE_NAME - Pipe name
+# TEST_DAI_LINK_NAME - BE DAI link name e.g. "NoCodec"
+# TEST_DAI_PORT - SSP port number e.g. 2
+# TEST_DAI_FORMAT - SSP data format e.g s16le
+# TEST_PIPE_FORMAT - Pipeline format e.g. s16le
+# TEST_SSP_MCLK - SSP BCLK in Hz
+# TEST_SSP_BCLK - SSP BCLK in Hz
+# TEST_SSP_PHY_BITS - SSP physical slot size
+# TEST_SSP_DATA_BITS - SSP data slot size
+# TEST_SSP_MODE - SSP mode e.g. I2S, LEFT_J, DSP_A and DSP_B
+#
+
+#
+# Define the pipeline
+#
+# PCM0 <-- TEST_PIPE_NAME pipe --> SSP TEST_DAI_PORT
+#
+
+# Passthrough playback pipeline 1 on PCM 0 using max 2 channels of s24le.
+# Schedule 48 frames per 1000us deadline on core 0 with priority 0
+
+PIPELINE_PCM_DAI_ADD(sof/pipe-TEST_PIPE_NAME-playback.m4,
+ 1, 0, 2, TEST_PIPE_FORMAT,
+ 48, 1000, 0, 0,
+ TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2)
+
+
+# Passthrough playback pipeline 2 on PCM 0 using max 2 channels of s24le.
+# Schedule 48 frames per 1000us deadline on core 0 with priority 0
+
+PIPELINE_PCM_DAI_ADD(sof/pipe-TEST_PIPE_NAME-capture.m4,
+ 2, 0, 2, TEST_PIPE_FORMAT,
+ 48, 1000, 0, 0,
+ TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_FORMAT, 2)
+
+#
+# DAI configuration
+#
+# SSP port TEST_DAI_PORT is our only pipeline DAI
+#
+
+# playback DAI is SSP TEST_DAI_PORT using 2 periods
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
+DAI_ADD(sof/pipe-dai-playback.m4,
+ 1, TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_LINK_NAME,
+ PIPELINE_SOURCE_1, 2, TEST_DAI_FORMAT,
+ 48, 1000, 0, 0, "TRUE")
+
+# capture DAI is SSP TEST_DAI_PORT using 2 periods
+# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
+DAI_ADD(sof/pipe-dai-capture.m4,
+ 2, TEST_DAI_TYPE, TEST_DAI_PORT, TEST_DAI_LINK_NAME,
+ PIPELINE_SINK_2, 2, TEST_DAI_FORMAT,
+ 48, 1000, 0, 0)
+
+# PCM Passthrough
+PCM_DUPLEX_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+# Clocks masters wrt codec
+#
+# TEST_SSP_DATA_BITS bit I2S using TEST_SSP_PHY_BITS bit sample conatiner on SSP TEST_DAI_PORT
+#
+DAI_CONFIG(TEST_DAI_TYPE, TEST_DAI_PORT, 0, TEST_DAI_LINK_NAME,
+ SSP_CONFIG(TEST_SSP_MODE,
+ DAI_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in),
+ DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave),
+ DAI_CLOCK(fsync, 48000, codec_slave),
+ DAI_TDM(2, TEST_SSP_PHY_BITS, 3, 3),
+ SSP_SAMPLE_BITS(TEST_DAI_TYPE, TEST_DAI_PORT,
+ TEST_SSP_DATA_BITS)))
diff --git a/topology/test/tplg-build.sh b/topology/test/tplg-build.sh
index 6721768..facbe17 100755
--- a/topology/test/tplg-build.sh
+++ b/topology/test/tplg-build.sh
@@ -12,7 +12,7 @@ export M4PATH="../:../m4:../common"
# Simple component test cases
# can be used on components with 1 sink and 1 source.
-SIMPLE_TESTS=(test-all test-capture test-playback)
+SIMPLE_TESTS=(test-all test-capture test-playback test-loopback)
TONE_TEST=test-tone-playback
DMIC_TEST=test-capture
TEST_STRINGS=""
--
2.7.4
More information about the Sound-open-firmware
mailing list