[Sound-open-firmware] [PATCH 5/6] topology: Add machine specific topology configurations.

Liam Girdwood liam.r.girdwood at linux.intel.com
Thu Jul 6 17:53:04 CEST 2017


Add some initial machine specific topology configurations that define
some simple pipelines for certain machines.

Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
---
 topology/reef-apl-nocodec.m4 | 79 ++++++++++++++++++++++++++++++++++++++++++++
 topology/reef-bdw-rt286.m4   | 76 ++++++++++++++++++++++++++++++++++++++++++
 topology/reef-bdw-rt5640.m4  | 76 ++++++++++++++++++++++++++++++++++++++++++
 topology/reef-bxt-nocodec.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++
 topology/reef-byt-nocodec.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++
 topology/reef-byt-rt5640.m4  | 77 ++++++++++++++++++++++++++++++++++++++++++
 topology/reef-byt-rt5651.m4  | 76 ++++++++++++++++++++++++++++++++++++++++++
 topology/reef-cht-nocodec.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++
 topology/reef-hsw-rt5640.m4  | 76 ++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 691 insertions(+)
 create mode 100644 topology/reef-apl-nocodec.m4
 create mode 100644 topology/reef-bdw-rt286.m4
 create mode 100644 topology/reef-bdw-rt5640.m4
 create mode 100644 topology/reef-bxt-nocodec.m4
 create mode 100644 topology/reef-byt-nocodec.m4
 create mode 100644 topology/reef-byt-rt5640.m4
 create mode 100644 topology/reef-byt-rt5651.m4
 create mode 100644 topology/reef-cht-nocodec.m4
 create mode 100644 topology/reef-hsw-rt5640.m4

diff --git a/topology/reef-apl-nocodec.m4 b/topology/reef-apl-nocodec.m4
new file mode 100644
index 0000000..f1c1819
--- /dev/null
+++ b/topology/reef-apl-nocodec.m4
@@ -0,0 +1,79 @@
+#
+# Topology for generic Apollolake board with no codec.
+#
+
+# Include topology builder
+include(`local.m4')
+include(`build.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
+#
+
+# Low Latency playback pipeline 1 on PCM 0
+PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 768, 768, 48, 1000, 0)
+
+# Low Latency capture pipeline 2 on PCM 1
+PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 768, 768, 48, 1000, 0)
+
+# PCM Media Playback pipeline 3 on PCM 2
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+
+# PCM Media Playback pipeline 4 on PCM 3
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+
+# Tone Playback pipeline 5
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+
+
+#
+# DAI configuration
+#
+
+# SSP port 2 is our pipeline DAI
+DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+
+# Connect pipelines together
+SectionGraph."pipe-apl-nocodec" {
+	index "0"
+
+	lines [
+		# media 0
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+		# media 1
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+		#tone
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+	]
+}
+
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+
+# BE configurations - overrides config in ACPI if present
+SectionHWConfig."SSP2" {
+
+	id 		"2"
+	format 		"I2S"
+	bclk_master	"true"
+	bclk_freq	"2400000"
+	mclk_freq	"19200000"
+	fsyn_master	"true"
+	fsync_freq	"48000"
+	tdm_slots	"2"
+	tdm_slot_width	"25"
+	tx_slots	"2"
+	rx_slots	"2"
+}
+
diff --git a/topology/reef-bdw-rt286.m4 b/topology/reef-bdw-rt286.m4
new file mode 100644
index 0000000..38d1c6a
--- /dev/null
+++ b/topology/reef-bdw-rt286.m4
@@ -0,0 +1,76 @@
+#
+# Topology for generic Broadwell board with no codec.
+#
+
+# Include topology builder
+include(`local.m4')
+include(`build.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include Broadwell DSP configuration
+include(`dsps/bdw.m4')
+
+#
+# Define the pipelines
+#
+
+# Low Latency playback pipeline 1 on PCM 0
+PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 768, 768, 48, 1000, 0)
+
+# Low Latency capture pipeline 2 on PCM 1
+PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 768, 768, 48, 1000, 0)
+
+# PCM Media Playback pipeline 3 on PCM 2
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+
+# PCM Media Playback pipeline 4 on PCM 3
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+
+# Tone Playback pipeline 5
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+
+
+#
+# DAI configuration
+#
+
+# SSP port 2 is our pipeline DAI
+DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+
+# Connect pipelines together
+SectionGraph."pipe-bdw-rt286" {
+	index "0"
+
+	lines [
+		# media 0
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+		# media 1
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+		#tone
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+	]
+}
+
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+SectionHWConfig."SSP0" {
+
+	id 		"2"
+	format 		"I2S"
+	bclk_master	"true"
+	bclk_freq	"2400000"
+	mclk_freq	"24000000"
+	fsyn_master	"true"
+	fsync_freq	"48000"
+	tdm_slots	"2"
+	tdm_slot_width	"25"
+	tx_slots	"2"
+	rx_slots	"2"
+}
diff --git a/topology/reef-bdw-rt5640.m4 b/topology/reef-bdw-rt5640.m4
new file mode 100644
index 0000000..4bdfdb4
--- /dev/null
+++ b/topology/reef-bdw-rt5640.m4
@@ -0,0 +1,76 @@
+#
+# Topology for generic Broadwell board with no codec.
+#
+
+# Include topology builder
+include(`local.m4')
+include(`build.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include Broadwell DSP configuration
+include(`dsps/bdw.m4')
+
+#
+# Define the pipelines
+#
+
+# Low Latency playback pipeline 1 on PCM 0
+PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 768, 768, 48, 1000, 0)
+
+# Low Latency capture pipeline 2 on PCM 1
+PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 768, 768, 48, 1000, 0)
+
+# PCM Media Playback pipeline 3 on PCM 2
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+
+# PCM Media Playback pipeline 4 on PCM 3
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+
+# Tone Playback pipeline 5
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+
+
+#
+# DAI configuration
+#
+
+# SSP port 2 is our pipeline DAI
+DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+
+# Connect pipelines together
+SectionGraph."pipe-bdw-rt5640" {
+	index "0"
+
+	lines [
+		# media 0
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+		# media 1
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+		#tone
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+	]
+}
+
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+SectionHWConfig."SSP0" {
+
+	id 		"2"
+	format 		"I2S"
+	bclk_master	"true"
+	bclk_freq	"2400000"
+	mclk_freq	"24000000"
+	fsyn_master	"true"
+	fsync_freq	"48000"
+	tdm_slots	"2"
+	tdm_slot_width	"25"
+	tx_slots	"2"
+	rx_slots	"2"
+}
diff --git a/topology/reef-bxt-nocodec.m4 b/topology/reef-bxt-nocodec.m4
new file mode 100644
index 0000000..8634d3a
--- /dev/null
+++ b/topology/reef-bxt-nocodec.m4
@@ -0,0 +1,77 @@
+#
+# Topology for generic Broxton board with no codec.
+#
+
+# Include topology builder
+include(`local.m4')
+include(`build.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include Broxton DSP configuration
+include(`dsps/bxt.m4')
+
+#
+# Define the pipelines
+#
+
+# Low Latency playback pipeline 1 on PCM 0
+PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 768, 768, 48, 1000, 0)
+
+# Low Latency capture pipeline 2 on PCM 1
+PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 768, 768, 48, 1000, 0)
+
+# PCM Media Playback pipeline 3 on PCM 2
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+
+# PCM Media Playback pipeline 4 on PCM 3
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+
+# Tone Playback pipeline 5
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+
+
+#
+# DAI configuration
+#
+
+# SSP port 2 is our pipeline DAI
+DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+
+# Connect pipelines together
+SectionGraph."pipe-bxt-nocodec" {
+	index "0"
+
+	lines [
+		# media 0
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+		# media 1
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+		#tone
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+	]
+}
+
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+SectionHWConfig."SSP2" {
+
+	id 		"2"
+	format 		"I2S"
+	bclk_master	"true"
+	bclk_freq	"2400000"
+	mclk_freq	"19200000"
+	fsyn_master	"true"
+	fsync_freq	"48000"
+	tdm_slots	"2"
+	tdm_slot_width	"25"
+	tx_slots	"2"
+	rx_slots	"2"
+}
+
diff --git a/topology/reef-byt-nocodec.m4 b/topology/reef-byt-nocodec.m4
new file mode 100644
index 0000000..14660fa
--- /dev/null
+++ b/topology/reef-byt-nocodec.m4
@@ -0,0 +1,77 @@
+#
+# Topology for generic Baytrail board with no codec.
+#
+
+# Include topology builder
+include(`local.m4')
+include(`build.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include Baytrail DSP configuration
+include(`dsps/byt.m4')
+
+#
+# Define the pipelines
+#
+
+# Low Latency playback pipeline 1 on PCM 0
+PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 768, 768, 48, 1000, 0)
+
+# Low Latency capture pipeline 2 on PCM 1
+PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 768, 768, 48, 1000, 0)
+
+# PCM Media Playback pipeline 3 on PCM 2
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+
+# PCM Media Playback pipeline 4 on PCM 3
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+
+# Tone Playback pipeline 5
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+
+
+#
+# DAI configuration
+#
+
+# SSP port 2 is our pipeline DAI
+DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+
+# Connect pipelines together
+SectionGraph."pipe-byt-nocodec" {
+	index "0"
+
+	lines [
+		# media 0
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+		# media 1
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+		#tone
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+	]
+}
+
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+SectionHWConfig."SSP2" {
+
+	id 		"2"
+	format 		"I2S"
+	bclk_master	"true"
+	bclk_freq	"2400000"
+	mclk_freq	"19200000"
+	fsyn_master	"true"
+	fsync_freq	"48000"
+	tdm_slots	"2"
+	tdm_slot_width	"25"
+	tx_slots	"2"
+	rx_slots	"2"
+}
+
diff --git a/topology/reef-byt-rt5640.m4 b/topology/reef-byt-rt5640.m4
new file mode 100644
index 0000000..90acec9
--- /dev/null
+++ b/topology/reef-byt-rt5640.m4
@@ -0,0 +1,77 @@
+#
+# Topology for generic Baytrail board with no codec.
+#
+
+# Include topology builder
+include(`local.m4')
+include(`build.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include Baytrail DSP configuration
+include(`dsps/byt.m4')
+
+#
+# Define the pipelines
+#
+
+# Low Latency playback pipeline 1 on PCM 0
+PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 768, 768, 48, 1000, 0)
+
+# Low Latency capture pipeline 2 on PCM 1
+PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 768, 768, 48, 1000, 0)
+
+# PCM Media Playback pipeline 3 on PCM 2
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+
+# PCM Media Playback pipeline 4 on PCM 3
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+
+# Tone Playback pipeline 5
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+
+
+#
+# DAI configuration
+#
+
+# SSP port 2 is our pipeline DAI
+DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+
+# Connect pipelines together
+SectionGraph."pipe-byt-rt5640" {
+	index "0"
+
+	lines [
+		# media 0
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+		# media 1
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+		#tone
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+	]
+}
+
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+SectionHWConfig."SSP2" {
+
+	id 		"2"
+	format 		"I2S"
+	bclk_master	"true"
+	bclk_freq	"2400000"
+	mclk_freq	"19200000"
+	fsyn_master	"true"
+	fsync_freq	"48000"
+	tdm_slots	"2"
+	tdm_slot_width	"25"
+	tx_slots	"2"
+	rx_slots	"2"
+}
+
diff --git a/topology/reef-byt-rt5651.m4 b/topology/reef-byt-rt5651.m4
new file mode 100644
index 0000000..e031807
--- /dev/null
+++ b/topology/reef-byt-rt5651.m4
@@ -0,0 +1,76 @@
+#
+# Topology for generic Baytrail board with no codec.
+#
+
+# Include topology builder
+include(`local.m4')
+include(`build.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include Baytrail DSP configuration
+include(`dsps/byt.m4')
+
+#
+# Define the pipelines
+#
+
+# Low Latency playback pipeline 1 on PCM 0
+PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 768, 768, 48, 1000, 0)
+
+# Low Latency capture pipeline 2 on PCM 1
+PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 768, 768, 48, 1000, 0)
+
+# PCM Media Playback pipeline 3 on PCM 2
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+
+# PCM Media Playback pipeline 4 on PCM 3
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+
+# Tone Playback pipeline 5
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+
+
+#
+# DAI configuration
+#
+
+# SSP port 2 is our pipeline DAI
+DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+
+# Connect pipelines together
+SectionGraph."pipe-byt-rt5651" {
+	index "0"
+
+	lines [
+		# media 0
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+		# media 1
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+		#tone
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+	]
+}
+
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+SectionHWConfig."SSP2" {
+
+	id 		"2"
+	format 		"I2S"
+	bclk_master	"true"
+	bclk_freq	"2400000"
+	mclk_freq	"19200000"
+	fsyn_master	"true"
+	fsync_freq	"48000"
+	tdm_slots	"2"
+	tdm_slot_width	"25"
+	tx_slots	"2"
+	rx_slots	"2"
+}
diff --git a/topology/reef-cht-nocodec.m4 b/topology/reef-cht-nocodec.m4
new file mode 100644
index 0000000..6ceed8e
--- /dev/null
+++ b/topology/reef-cht-nocodec.m4
@@ -0,0 +1,77 @@
+#
+# Topology for generic CherryTrail board with no codec.
+#
+
+# Include topology builder
+include(`local.m4')
+include(`build.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include CherryTrail DSP configuration
+include(`dsps/cht.m4')
+
+#
+# Define the pipelines
+#
+
+# Low Latency playback pipeline 1 on PCM 0
+PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 768, 768, 48, 1000, 0)
+
+# Low Latency capture pipeline 2 on PCM 1
+PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 768, 768, 48, 1000, 0)
+
+# PCM Media Playback pipeline 3 on PCM 2
+#PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+
+# PCM Media Playback pipeline 4 on PCM 3
+#PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+
+# Tone Playback pipeline 5
+#PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+
+
+#
+# DAI configuration
+#
+
+# SSP port 2 is our pipeline DAI
+DAI_ADD(sof/pipe-dai.m4, SSP2, I2S, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+
+# Connect pipelines together
+SectionGraph."pipe-cht-nocodec" {
+	index "0"
+
+	lines [
+		# media 0
+#		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+		# media 1
+#		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+		#tone
+#		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+	]
+}
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+SectionHWConfig."SSP2" {
+
+	id 		"2"
+	format 		"I2S"
+	bclk		"master"
+	bclk_freq	"2400000"
+	mclk		"master"
+	mclk_freq	"19200000"
+	fsync		"master"
+	fsync_freq	"48000"
+	tdm_slots	"2"
+	tdm_slot_width	"25"
+	tx_slots	"2"
+	rx_slots	"2"
+}
+
diff --git a/topology/reef-hsw-rt5640.m4 b/topology/reef-hsw-rt5640.m4
new file mode 100644
index 0000000..0648df2
--- /dev/null
+++ b/topology/reef-hsw-rt5640.m4
@@ -0,0 +1,76 @@
+#
+# Topology for generic Haswell board with no codec.
+#
+
+# Include topology builder
+include(`local.m4')
+include(`build.m4')
+
+# Include TLV library
+include(`common/tlv.m4')
+
+# Include Token library
+include(`sof/tokens.m4')
+
+# Include Haswell DSP configuration
+include(`dsps/hsw.m4')
+
+#
+# Define the pipelines
+#
+
+# Low Latency playback pipeline 1 on PCM 0
+PIPELINE_PCM_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 768, 768, 48, 1000, 0)
+
+# Low Latency capture pipeline 2 on PCM 1
+PIPELINE_PCM_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 768, 768, 48, 1000, 0)
+
+# PCM Media Playback pipeline 3 on PCM 2
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+
+# PCM Media Playback pipeline 4 on PCM 3
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+
+# Tone Playback pipeline 5
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+
+
+#
+# DAI configuration
+#
+
+# SSP port 2 is our pipeline DAI
+DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+
+# Connect pipelines together
+SectionGraph."pipe-hsw-rt5640" {
+	index "0"
+
+	lines [
+		# media 0
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+		# media 1
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+		#tone
+		dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+	]
+}
+
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+SectionHWConfig."SSP0" {
+
+	id 		"2"
+	format 		"I2S"
+	bclk_master	"true"
+	bclk_freq	"2400000"
+	mclk_freq	"24000000"
+	fsyn_master	"true"
+	fsync_freq	"48000"
+	tdm_slots	"2"
+	tdm_slot_width	"25"
+	tx_slots	"2"
+	rx_slots	"2"
+}
-- 
2.11.0



More information about the Sound-open-firmware mailing list