[Sound-open-firmware] [PATCH v3] topology: apl-tdf8532: create m4 file for gpmrb platform

Wu Zhigang zhigang.wu at linux.intel.com
Wed Mar 21 11:49:31 CET 2018


Here add topology file for apollolake GP-MRB platform,
it is initial version, we only support one playback
and one capture PCM pipeline at the moment,
with SSP/DAI set to tdm8-32le-48kHz
(active on first 4 slots for both transmit and receive).

Signed-off-by: Wu Zhigang <zhigang.wu at linux.intel.com>

Reviewed-by: Keyon Jie <yang.jie at linux.intel.com>

---
v3:
 change tplg file to support output 4-slot.

v2:
 update the topology based on latest version.

v1:
 create the m4 file for gpmrb platform.

---
Tested with
apl-gpmrb board
kernel: https://github.com/plbossart/sound.git  branch: topic/sof-v4.14
	4881a4bd906f8b52bebd209b88ff920005550d53

firmware: git://git.alsa-project.org/sound-open-firmware.git  branch: 1.1-stable
	ffd9093267aa8d3deeffeb09b73c8b0789ad4071

tools:	branch: 1.1-stable
	cc91c73aa3e91eea35abdeb76d578b97f718feff
---
 topology/Makefile.am         |  6 ++--
 topology/reef-apl-tdf8532.m4 | 71 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+), 2 deletions(-)
 create mode 100644 topology/reef-apl-tdf8532.m4

diff --git a/topology/Makefile.am b/topology/Makefile.am
index f161ba2..a7e86fd 100644
--- a/topology/Makefile.am
+++ b/topology/Makefile.am
@@ -28,7 +28,8 @@ MACHINES = \
 	reef-byt-rt5651.tplg \
 	reef-byt-da7213.tplg \
 	reef-cnl-rt274.tplg \
-	reef-hsw-rt5640.tplg
+	reef-hsw-rt5640.tplg \
+	reef-apl-tdf8532.tplg
 
 # Uncomment the following line if you want to debug conf files
 .PRECIOUS: %.conf
@@ -58,4 +59,5 @@ EXTRA_DIST = \
 	reef-byt-rt5651.m4 \
 	reef-byt-da7213.m4 \
 	reef-cnl-rt274.m4 \
-	reef-hsw-rt5640.m4
+	reef-hsw-rt5640.m4 \
+	reef-apl-tdf8532.m4
diff --git a/topology/reef-apl-tdf8532.m4 b/topology/reef-apl-tdf8532.m4
new file mode 100644
index 0000000..eaddac9
--- /dev/null
+++ b/topology/reef-apl-tdf8532.m4
@@ -0,0 +1,71 @@
+#
+# Topology for generic Apollolake board with TDF8532
+#
+
+# Include topology builder
+include(`utils.m4')
+include(`dai.m4')
+include(`pipeline.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include Apollolake DSP configuration
+include(`dsps/bxt.m4')
+
+#
+# Define the pipelines
+#
+# PCM0 ----> volume -----> SSP4
+#
+# PCM1 <---- Volume <----- SSP4
+#
+
+# Low Latency playback pipeline 1 on PCM 0 using max 4 channels of s32le.
+# Schedule 48 frames per 1000us deadline on core 0 with priority 0
+# Use DMAC 0 channel 1 for PCM audio playback data
+PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4,
+	1, 0, 4, s32le,
+	48, 1000, 0, 0, 0, 1, SSP, 4, s32le, 2)
+
+# Low Latency capture pipeline 2 on PCM 0 using max 4 channels of s32le.
+# Schedule 48 frames per 1000us deadline on core 0 with priority 0
+# Use DMAC 0 channel 2 for PCM audio capture data
+PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4,
+	2, 0, 4, s32le,
+	48, 1000, 0, 0, 0, 1, SSP, 4, s32le, 2)
+
+#
+# DAI configuration
+#
+# SSP port 4 is our only pipeline DAI
+#
+
+# playback DAI is SSP4 using 2 periods
+# Buffers use s32le format, with 48 frame per 1000us on core 0 with priority 0
+DAI_ADD(sof/pipe-dai-playback.m4,
+	1, SSP, 4, SSP4-Codec,
+	PIPELINE_SOURCE_1, 2, s32le,
+	48, 1000, 0, 0)
+
+# capture DAI is SSP4 using 2 periods
+# Buffers use s32le format, with 48 frame per 1000us on core 0 with priority 0
+DAI_ADD(sof/pipe-dai-capture.m4,
+	2, SSP, 4, SSP4-Codec,
+	PIPELINE_SINK_2, 2, s32le,
+	48, 1000, 0, 0)
+
+# PCM Low Latency
+PCM_DUPLEX_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+DAI_CONFIG(SSP, 4, SSP4-Codec, DSP_B, 32,
+	DAI_CLOCK(mclk, 24576000, slave),
+	DAI_CLOCK(bclk, 12288000, slave),
+	DAI_CLOCK(fsync, 48000, slave),
+	DAI_TDM(8, 32, 15, 15))
-- 
2.11.0



More information about the Sound-open-firmware mailing list