[Sound-open-firmware] [PATCH 5/5] topology: Add machine specific update for buffer and scheduling tokens
Liam Girdwood
liam.r.girdwood at linux.intel.com
Wed Aug 9 16:02:17 CEST 2017
Allow machines to specify scheduling config in pipeline topologies.
Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
---
topology/reef-apl-nocodec.m4 | 86 ++++++++++++++++++++++++--------------------
topology/reef-bdw-rt286.m4 | 83 ++++++++++++++++++++++++------------------
topology/reef-bdw-rt5640.m4 | 83 ++++++++++++++++++++++++------------------
topology/reef-bxt-nocodec.m4 | 84 ++++++++++++++++++++++++-------------------
topology/reef-byt-nocodec.m4 | 84 ++++++++++++++++++++++++-------------------
topology/reef-byt-rt5640.m4 | 84 ++++++++++++++++++++++++-------------------
topology/reef-byt-rt5651.m4 | 85 ++++++++++++++++++++++++-------------------
topology/reef-cht-nocodec.m4 | 86 +++++++++++++++++++++++++-------------------
topology/reef-hsw-rt5640.m4 | 83 ++++++++++++++++++++++++------------------
9 files changed, 434 insertions(+), 324 deletions(-)
diff --git a/topology/reef-apl-nocodec.m4 b/topology/reef-apl-nocodec.m4
index f1c1819..93febe0 100644
--- a/topology/reef-apl-nocodec.m4
+++ b/topology/reef-apl-nocodec.m4
@@ -18,29 +18,40 @@ include(`dsps/bxt.m4')
#
# Define the pipelines
#
+# PCM0 ----> volume ---------------+
+# |--low latency mixer ----> volume ----> SSP2
+# PCM2 ----> SRC -----> volume ----+
+# |
+# PCM3 ----> SRC -----> volume ----+
+# |
+# Tone -----> volume ----+
+#
+# PCM1 <---- Volume <---- SSP2
+#
-# 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)
+# Low Latency playback pipeline 1 on PCM 0 using max 2 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_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, 48, 1000, 0, 0, 0, 1)
-# PCM Media Playback pipeline 3 on PCM 2
-PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+# Low Latency capture pipeline 2 on PCM 1 using max 2 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_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 2, s32le, 48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 4 on PCM 3
-PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 3 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 2, s32le, 96, 2000, 1, 0, 0, 3)
-# Tone Playback pipeline 5
-PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 4 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 2, s32le, 96, 2000, 1, 0, 0, 4)
-
-#
-# 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))
+# Tone Playback pipeline 5 using max 2 channels of s32le.
+# Schedule 192 frames per 4000us deadline on core 0 with priority 2
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 2, s32le, 192, 4000, 2, 0)
# Connect pipelines together
SectionGraph."pipe-apl-nocodec" {
@@ -48,32 +59,31 @@ SectionGraph."pipe-apl-nocodec" {
lines [
# media 0
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3)
# media 1
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_4)
#tone
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5)
]
}
-
#
-# BE configurations - overrides config in ACPI if present
+# DAI configuration
+#
+# SSP port 2 is our only pipeline DAI
#
-# 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"
-}
+# playback DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+# capture DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+DAI_CONFIG(SSP, 2, NoCodec, I2S, I2S,
+ DAI_CLOCK(mclk, 19200000, slave),
+ DAI_CLOCK(bclk, 2400000, slave),
+ DAI_CLOCK(fsync, 48000, slave),
+ DAI_TDM(2, 24, 3, 3))
diff --git a/topology/reef-bdw-rt286.m4 b/topology/reef-bdw-rt286.m4
index 38d1c6a..4135353 100644
--- a/topology/reef-bdw-rt286.m4
+++ b/topology/reef-bdw-rt286.m4
@@ -18,29 +18,40 @@ include(`dsps/bdw.m4')
#
# Define the pipelines
#
+# PCM0 ----> volume ---------------+
+# |--low latency mixer ----> volume ----> SSP2
+# PCM2 ----> SRC -----> volume ----+
+# |
+# PCM3 ----> SRC -----> volume ----+
+# |
+# Tone -----> volume ----+
+#
+# PCM1 <---- Volume <---- SSP0
+#
-# 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)
+# Low Latency playback pipeline 1 on PCM 0 using max 2 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_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, 48, 1000, 0, 0, 0, 1)
-# Tone Playback pipeline 5
-PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+# Low Latency capture pipeline 2 on PCM 1 using max 2 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_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 2, s32le, 48, 1000, 0, 0, 0, 2)
+# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 3 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 2, s32le, 96, 2000, 1, 0, 0, 3)
-#
-# DAI configuration
-#
+# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 4 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 2, s32le, 96, 2000, 1, 0, 0, 4)
-# SSP port 2 is our pipeline DAI
-DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+# Tone Playback pipeline 5 using max 2 channels of s32le.
+# Schedule 192 frames per 4000us deadline on core 0 with priority 2
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 2, s32le, 192, 4000, 2, 0)
# Connect pipelines together
SectionGraph."pipe-bdw-rt286" {
@@ -48,29 +59,31 @@ SectionGraph."pipe-bdw-rt286" {
lines [
# media 0
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3)
# media 1
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_4)
#tone
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5)
]
}
+#
+# DAI configuration
+#
+# SSP port 0 is our only pipeline DAI
+#
+
+# playback DAI is SSP0 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 0, I2S, PIPELINE_SOURCE_1, 2)
+
+# capture DAI is SSP0 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 0, I2S, PIPELINE_SINK_2, 2)
#
# 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"
-}
+DAI_CONFIG(SSP, 0, Codec, I2S, I2S,
+ DAI_CLOCK(mclk, 24000000, slave),
+ DAI_CLOCK(bclk, 2400000, slave),
+ DAI_CLOCK(fsync, 48000, slave),
+ DAI_TDM(2, 24, 3, 3))
diff --git a/topology/reef-bdw-rt5640.m4 b/topology/reef-bdw-rt5640.m4
index 4bdfdb4..540ac4c 100644
--- a/topology/reef-bdw-rt5640.m4
+++ b/topology/reef-bdw-rt5640.m4
@@ -18,29 +18,40 @@ include(`dsps/bdw.m4')
#
# Define the pipelines
#
+# PCM0 ----> volume ---------------+
+# |--low latency mixer ----> volume ----> SSP2
+# PCM2 ----> SRC -----> volume ----+
+# |
+# PCM3 ----> SRC -----> volume ----+
+# |
+# Tone -----> volume ----+
+#
+# PCM1 <---- Volume <---- SSP0
+#
-# 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)
+# Low Latency playback pipeline 1 on PCM 0 using max 2 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_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, 48, 1000, 0, 0, 0, 1)
-# Tone Playback pipeline 5
-PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+# Low Latency capture pipeline 2 on PCM 1 using max 2 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_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 2, s32le, 48, 1000, 0, 0, 0, 2)
+# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 3 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 2, s32le, 96, 2000, 1, 0, 0, 3)
-#
-# DAI configuration
-#
+# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 4 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 2, s32le, 96, 2000, 1, 0, 0, 4)
-# SSP port 2 is our pipeline DAI
-DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+# Tone Playback pipeline 5 using max 2 channels of s32le.
+# Schedule 192 frames per 4000us deadline on core 0 with priority 2
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 2, s32le, 192, 4000, 2, 0)
# Connect pipelines together
SectionGraph."pipe-bdw-rt5640" {
@@ -48,29 +59,31 @@ SectionGraph."pipe-bdw-rt5640" {
lines [
# media 0
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3)
# media 1
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_4)
#tone
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5)
]
}
+#
+# DAI configuration
+#
+# SSP port 0 is our only pipeline DAI
+#
+
+# playback DAI is SSP0 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 0, I2S, PIPELINE_SOURCE_1, 2)
+
+# capture DAI is SSP0 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 0, I2S, PIPELINE_SINK_2, 2)
#
# 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"
-}
+DAI_CONFIG(SSP, 0, Codec, I2S, I2S,
+ DAI_CLOCK(mclk, 24000000, slave),
+ DAI_CLOCK(bclk, 2400000, slave),
+ DAI_CLOCK(fsync, 48000, slave),
+ DAI_TDM(2, 24, 3, 3))
diff --git a/topology/reef-bxt-nocodec.m4 b/topology/reef-bxt-nocodec.m4
index 8634d3a..564e78c 100644
--- a/topology/reef-bxt-nocodec.m4
+++ b/topology/reef-bxt-nocodec.m4
@@ -18,29 +18,40 @@ include(`dsps/bxt.m4')
#
# Define the pipelines
#
+# PCM0 ----> volume ---------------+
+# |--low latency mixer ----> volume ----> SSP2
+# PCM2 ----> SRC -----> volume ----+
+# |
+# PCM3 ----> SRC -----> volume ----+
+# |
+# Tone -----> volume ----+
+#
+# PCM1 <---- Volume <---- SSP2
+#
-# 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)
+# Low Latency playback pipeline 1 on PCM 0 using max 2 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_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, 48, 1000, 0, 0, 0, 1)
-# Tone Playback pipeline 5
-PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+# Low Latency capture pipeline 2 on PCM 1 using max 2 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_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 2, s32le, 48, 1000, 0, 0, 0, 2)
+# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 3 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 2, s32le, 96, 2000, 1, 0, 0, 3)
-#
-# DAI configuration
-#
+# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 4 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 2, s32le, 96, 2000, 1, 0, 0, 4)
-# SSP port 2 is our pipeline DAI
-DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+# Tone Playback pipeline 5 using max 2 channels of s32le.
+# Schedule 192 frames per 4000us deadline on core 0 with priority 2
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 2, s32le, 192, 4000, 2, 0)
# Connect pipelines together
SectionGraph."pipe-bxt-nocodec" {
@@ -48,30 +59,31 @@ SectionGraph."pipe-bxt-nocodec" {
lines [
# media 0
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3)
# media 1
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_4)
#tone
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5)
]
}
+#
+# DAI configuration
+#
+# SSP port 2 is our only pipeline DAI
+#
+
+# playback DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+
+# capture DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
#
# 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"
-}
-
+DAI_CONFIG(SSP, 2, NoCodec, I2S, I2S,
+ DAI_CLOCK(mclk, 19200000, slave),
+ DAI_CLOCK(bclk, 2400000, slave),
+ DAI_CLOCK(fsync, 48000, slave),
+ DAI_TDM(2, 24, 3, 3))
diff --git a/topology/reef-byt-nocodec.m4 b/topology/reef-byt-nocodec.m4
index 14660fa..ab0cd8e 100644
--- a/topology/reef-byt-nocodec.m4
+++ b/topology/reef-byt-nocodec.m4
@@ -18,29 +18,40 @@ include(`dsps/byt.m4')
#
# Define the pipelines
#
+# PCM0 ----> volume ---------------+
+# |--low latency mixer ----> volume ----> SSP2
+# PCM2 ----> SRC -----> volume ----+
+# |
+# PCM3 ----> SRC -----> volume ----+
+# |
+# Tone -----> volume ----+
+#
+# PCM1 <---- Volume <---- SSP2
+#
-# 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)
+# Low Latency playback pipeline 1 on PCM 0 using max 2 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_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, 48, 1000, 0, 0, 0, 1)
-# Tone Playback pipeline 5
-PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+# Low Latency capture pipeline 2 on PCM 1 using max 2 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_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 2, s32le, 48, 1000, 0, 0, 0, 2)
+# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 3 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 2, s32le, 96, 2000, 1, 0, 0, 3)
-#
-# DAI configuration
-#
+# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 4 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 2, s32le, 96, 2000, 1, 0, 0, 4)
-# SSP port 2 is our pipeline DAI
-DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+# Tone Playback pipeline 5 using max 2 channels of s32le.
+# Schedule 192 frames per 4000us deadline on core 0 with priority 2
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 2, s32le, 192, 4000, 2, 0)
# Connect pipelines together
SectionGraph."pipe-byt-nocodec" {
@@ -48,30 +59,31 @@ SectionGraph."pipe-byt-nocodec" {
lines [
# media 0
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3)
# media 1
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_4)
#tone
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5)
]
}
+#
+# DAI configuration
+#
+# SSP port 2 is our only pipeline DAI
+#
+
+# playback DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+
+# capture DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
#
# 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"
-}
-
+DAI_CONFIG(SSP, 2, NoCodec, I2S, I2S,
+ DAI_CLOCK(mclk, 19200000, slave),
+ DAI_CLOCK(bclk, 2400000, slave),
+ DAI_CLOCK(fsync, 48000, slave),
+ DAI_TDM(2, 24, 3, 3))
diff --git a/topology/reef-byt-rt5640.m4 b/topology/reef-byt-rt5640.m4
index 90acec9..2cee093 100644
--- a/topology/reef-byt-rt5640.m4
+++ b/topology/reef-byt-rt5640.m4
@@ -18,29 +18,40 @@ include(`dsps/byt.m4')
#
# Define the pipelines
#
+# PCM0 ----> volume ---------------+
+# |--low latency mixer ----> volume ----> SSP2
+# PCM2 ----> SRC -----> volume ----+
+# |
+# PCM3 ----> SRC -----> volume ----+
+# |
+# Tone -----> volume ----+
+#
+# PCM1 <---- Volume <---- SSP2
+#
-# 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)
+# Low Latency playback pipeline 1 on PCM 0 using max 2 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_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, 48, 1000, 0, 0, 0, 1)
-# Tone Playback pipeline 5
-PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+# Low Latency capture pipeline 2 on PCM 1 using max 2 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_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 2, s32le, 48, 1000, 0, 0, 0, 2)
+# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 3 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 2, s32le, 96, 2000, 1, 0, 0, 3)
-#
-# DAI configuration
-#
+# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 4 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 2, s32le, 96, 2000, 1, 0, 0, 4)
-# SSP port 2 is our pipeline DAI
-DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+# Tone Playback pipeline 5 using max 2 channels of s32le.
+# Schedule 192 frames per 4000us deadline on core 0 with priority 2
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 2, s32le, 192, 4000, 2, 0)
# Connect pipelines together
SectionGraph."pipe-byt-rt5640" {
@@ -48,30 +59,31 @@ SectionGraph."pipe-byt-rt5640" {
lines [
# media 0
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3)
# media 1
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_4)
#tone
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5)
]
}
+#
+# DAI configuration
+#
+# SSP port 2 is our only pipeline DAI
+#
+
+# playback DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+
+# capture DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
#
# 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"
-}
-
+DAI_CONFIG(SSP, 2, Baytrail Audio, Audio, I2S,
+ DAI_CLOCK(mclk, 19200000, slave),
+ DAI_CLOCK(bclk, 2400000, slave),
+ DAI_CLOCK(fsync, 48000, slave),
+ DAI_TDM(2, 24, 3, 3))
diff --git a/topology/reef-byt-rt5651.m4 b/topology/reef-byt-rt5651.m4
index e031807..4679343 100644
--- a/topology/reef-byt-rt5651.m4
+++ b/topology/reef-byt-rt5651.m4
@@ -1,5 +1,5 @@
#
-# Topology for generic Baytrail board with no codec.
+# Topology for generic Baytrail board with no RT5651.
#
# Include topology builder
@@ -18,29 +18,40 @@ include(`dsps/byt.m4')
#
# Define the pipelines
#
+# PCM0 ----> volume ---------------+
+# |--low latency mixer ----> volume ----> SSP2
+# PCM2 ----> SRC -----> volume ----+
+# |
+# PCM3 ----> SRC -----> volume ----+
+# |
+# Tone -----> volume ----+
+#
+# PCM1 <---- Volume <---- SSP2
+#
-# 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)
+# Low Latency playback pipeline 1 on PCM 0 using max 2 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_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, 48, 1000, 0, 0, 0, 1)
-# Tone Playback pipeline 5
-PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+# Low Latency capture pipeline 2 on PCM 1 using max 2 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_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 2, s32le, 48, 1000, 0, 0, 0, 2)
+# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 3 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 2, s32le, 96, 2000, 1, 0, 0, 3)
-#
-# DAI configuration
-#
+# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 4 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 2, s32le, 96, 2000, 1, 0, 0, 4)
-# SSP port 2 is our pipeline DAI
-DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+# Tone Playback pipeline 5 using max 2 channels of s32le.
+# Schedule 192 frames per 4000us deadline on core 0 with priority 2
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 2, s32le, 192, 4000, 2, 0)
# Connect pipelines together
SectionGraph."pipe-byt-rt5651" {
@@ -48,29 +59,31 @@ SectionGraph."pipe-byt-rt5651" {
lines [
# media 0
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3)
# media 1
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_4)
#tone
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5)
]
}
+#
+# DAI configuration
+#
+# SSP port 2 is our only pipeline DAI
+#
+
+# playback DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+
+# capture DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
#
# 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"
-}
+DAI_CONFIG(SSP, 2, Baytrail Audio, Audio, I2S,
+ DAI_CLOCK(mclk, 19200000, slave),
+ DAI_CLOCK(bclk, 2400000, slave),
+ DAI_CLOCK(fsync, 48000, slave),
+ DAI_TDM(2, 24, 3, 3))
diff --git a/topology/reef-cht-nocodec.m4 b/topology/reef-cht-nocodec.m4
index 6ceed8e..f754551 100644
--- a/topology/reef-cht-nocodec.m4
+++ b/topology/reef-cht-nocodec.m4
@@ -18,29 +18,40 @@ include(`dsps/cht.m4')
#
# Define the pipelines
#
+# PCM0 ----> volume ---------------+
+# |--low latency mixer ----> volume ----> SSP2
+# PCM2 ----> SRC -----> volume ----+
+# |
+# PCM3 ----> SRC -----> volume ----+
+# |
+# Tone -----> volume ----+
+#
+# PCM1 <---- Volume <---- SSP2
+#
-# 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)
+# Low Latency playback pipeline 1 on PCM 0 using max 2 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_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, 48, 1000, 0, 0, 0, 1)
-# PCM Media Playback pipeline 3 on PCM 2
-#PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 1536, 1536, 96, 2000, 1)
+# Low Latency capture pipeline 2 on PCM 1 using max 2 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_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 2, s32le, 48, 1000, 0, 0, 0, 2)
-# PCM Media Playback pipeline 4 on PCM 3
-#PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 1536, 1536, 96, 2000, 1)
+# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 3 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 2, s32le, 96, 2000, 1, 0, 0, 3)
-# Tone Playback pipeline 5
-#PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 4 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 2, s32le, 96, 2000, 1, 0, 0, 4)
-
-#
-# 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))
+# Tone Playback pipeline 5 using max 2 channels of s32le.
+# Schedule 192 frames per 4000us deadline on core 0 with priority 2
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 2, s32le, 192, 4000, 2, 0)
# Connect pipelines together
SectionGraph."pipe-cht-nocodec" {
@@ -48,30 +59,31 @@ SectionGraph."pipe-cht-nocodec" {
lines [
# media 0
-# dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3)
# media 1
-# dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_4)
#tone
-# dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5)
]
}
#
-# BE configurations - overrides config in ACPI if present
+# DAI configuration
#
-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"
-}
+# SSP port 2 is our only pipeline DAI
+#
+
+# playback DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 2, I2S, PIPELINE_SOURCE_1, 2)
+# capture DAI is SSP2 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 2, I2S, PIPELINE_SINK_2, 2)
+
+#
+# BE configurations - overrides config in ACPI if present
+#
+DAI_CONFIG(SSP, 2, NoCodec, I2S, I2S,
+ DAI_CLOCK(mclk, 19200000, slave),
+ DAI_CLOCK(bclk, 2400000, slave),
+ DAI_CLOCK(fsync, 48000, slave),
+ DAI_TDM(2, 24, 3, 3))
diff --git a/topology/reef-hsw-rt5640.m4 b/topology/reef-hsw-rt5640.m4
index 0648df2..cbbbfbe 100644
--- a/topology/reef-hsw-rt5640.m4
+++ b/topology/reef-hsw-rt5640.m4
@@ -18,29 +18,40 @@ include(`dsps/hsw.m4')
#
# Define the pipelines
#
+# PCM0 ----> volume ---------------+
+# |--low latency mixer ----> volume ----> SSP2
+# PCM2 ----> SRC -----> volume ----+
+# |
+# PCM3 ----> SRC -----> volume ----+
+# |
+# Tone -----> volume ----+
+#
+# PCM1 <---- Volume <---- SSP0
+#
-# 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)
+# Low Latency playback pipeline 1 on PCM 0 using max 2 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_ADD(sof/pipe-low-latency-playback.m4, 1, 0, 2, s32le, 48, 1000, 0, 0, 0, 1)
-# Tone Playback pipeline 5
-PIPELINE_ADD(sof/pipe-tone.m4, 5, 3072, 192, 4000, 2)
+# Low Latency capture pipeline 2 on PCM 1 using max 2 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_ADD(sof/pipe-low-latency-capture.m4, 2, 1, 2, s32le, 48, 1000, 0, 0, 0, 2)
+# PCM Media Playback pipeline 3 on PCM 2 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 3 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 3, 2, 2, s32le, 96, 2000, 1, 0, 0, 3)
-#
-# DAI configuration
-#
+# PCM Media Playback pipeline 4 on PCM 3 using max 2 channels of s32le.
+# Schedule 96 frames per 2000us deadline on core 0 with priority 1
+# Use DMAC 0 channel 4 for PCM audio playback data
+PIPELINE_PCM_ADD(sof/pipe-pcm-media.m4, 4, 3, 2, s32le, 96, 2000, 1, 0, 0, 4)
-# SSP port 2 is our pipeline DAI
-DAI_ADD(sof/pipe-dai.m4, SSP2, I2S Audio, NPIPELINE_BUFFER(2, 0), NPIPELINE_BUFFER(1, 3))
+# Tone Playback pipeline 5 using max 2 channels of s32le.
+# Schedule 192 frames per 4000us deadline on core 0 with priority 2
+PIPELINE_ADD(sof/pipe-tone.m4, 5, 2, s32le, 192, 4000, 2, 0)
# Connect pipelines together
SectionGraph."pipe-hsw-rt5640" {
@@ -48,29 +59,31 @@ SectionGraph."pipe-hsw-rt5640" {
lines [
# media 0
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(3, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_3)
# media 1
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(4, 2))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_4)
#tone
- dapm(NPIPELINE_MIXER(1, 0), NPIPELINE_BUFFER(5, 1))
+ dapm(PIPELINE_MIXER_1, PIPELINE_SOURCE_5)
]
}
+#
+# DAI configuration
+#
+# SSP port 0 is our only pipeline DAI
+#
+
+# playback DAI is SSP0 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-playback.m4, SSP, 0, I2S, PIPELINE_SOURCE_1, 2)
+
+# capture DAI is SSP0 using I2S DAPM stream and 2 periods
+DAI_ADD(sof/pipe-dai-capture.m4, SSP, 0, I2S, PIPELINE_SINK_2, 2)
#
# 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"
-}
+DAI_CONFIG(SSP, 0, Codec, I2S, I2S,
+ DAI_CLOCK(mclk, 24000000, slave),
+ DAI_CLOCK(bclk, 2400000, slave),
+ DAI_CLOCK(fsync, 48000, slave),
+ DAI_TDM(2, 24, 3, 3))
--
2.11.0
More information about the Sound-open-firmware
mailing list