Skip to content
This repository was archived by the owner on Jan 17, 2019. It is now read-only.

Commit 576d15b

Browse files
authored
Merge pull request #26 from RanderWang/icl
tplg: add nocodec topology for icelake
2 parents 8555c3b + 6ba6074 commit 576d15b

3 files changed

Lines changed: 111 additions & 1 deletion

File tree

topology/Makefile.am

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ MACHINES = \
3131
sof-hsw-rt5640.tplg \
3232
sof-apl-tdf8532.tplg \
3333
sof-apl-pcm512x.tplg \
34-
sof-glk-codec.tplg
34+
sof-glk-codec.tplg \
35+
sof-icl-nocodec.tplg
3536

3637
# Uncomment the following line if you want to debug conf files
3738
.PRECIOUS: %.conf

topology/platform/intel/icl.m4

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#
2+
# Icelake differentiation for pipelines and components
3+
#
4+
5+
include(`memory.m4')
6+
7+
dnl Memory capabilities for different buffer types on Icelake
8+
define(`PLATFORM_DAI_MEM_CAP',
9+
MEMCAPS(MEM_CAP_RAM, MEM_CAP_DMA, MEM_CAP_CACHE, MEM_CAP_HP))
10+
define(`PLATFORM_HOST_MEM_CAP',
11+
MEMCAPS(MEM_CAP_RAM, MEM_CAP_DMA, MEM_CAP_CACHE, MEM_CAP_HP))
12+
define(`PLATFORM_PASS_MEM_CAP',
13+
MEMCAPS(MEM_CAP_RAM, MEM_CAP_DMA, MEM_CAP_CACHE, MEM_CAP_HP))
14+
define(`PLATFORM_COMP_MEM_CAP', MEMCAPS(MEM_CAP_RAM, MEM_CAP_CACHE))
15+
16+
# Low Latency PCM Configuration
17+
W_VENDORTUPLES(pipe_ll_schedule_plat_tokens, sof_sched_tokens,
18+
LIST(` ', `SOF_TKN_SCHED_MIPS "50000"'))
19+
20+
W_DATA(pipe_ll_schedule_plat, pipe_ll_schedule_plat_tokens)
21+
22+
# Media PCM Configuration
23+
W_VENDORTUPLES(pipe_media_schedule_plat_tokens, sof_sched_tokens,
24+
LIST(` ', `SOF_TKN_SCHED_MIPS "100000"'))
25+
26+
W_DATA(pipe_media_schedule_plat, pipe_media_schedule_plat_tokens)
27+
28+
# Tone Signal Generator Configuration
29+
W_VENDORTUPLES(pipe_tone_schedule_plat_tokens, sof_sched_tokens,
30+
LIST(` ', `SOF_TKN_SCHED_MIPS "200000"'))
31+
32+
W_DATA(pipe_tone_schedule_plat, pipe_tone_schedule_plat_tokens)
33+
34+
# DAI schedule Configuration - scheduled by IRQ
35+
W_VENDORTUPLES(pipe_dai_schedule_plat_tokens, sof_sched_tokens,
36+
LIST(` ', `SOF_TKN_SCHED_MIPS "5000"'))
37+
38+
W_DATA(pipe_dai_schedule_plat, pipe_dai_schedule_plat_tokens)

topology/sof-icl-nocodec.m4

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#
2+
# Topology for generic Icelake board with nocodec
3+
#
4+
5+
# Include topology builder
6+
include(`utils.m4')
7+
include(`dai.m4')
8+
include(`pipeline.m4')
9+
include(`ssp.m4')
10+
11+
# Include TLV library
12+
include(`common/tlv.m4')
13+
14+
# Include Token library
15+
include(`sof/tokens.m4')
16+
17+
# Include Icelake DSP configuration
18+
include(`platform/intel/icl.m4')
19+
20+
#
21+
# Define the pipelines
22+
#
23+
# PCM0 ----> Volume ----> SSP0
24+
#
25+
# PCM1 <---- Volume <---- SSP0
26+
#
27+
28+
# Low Latency playback pipeline 1 on PCM 0 using max 2 channels of s24le.
29+
# Schedule 48 frames per 1000us deadline on core 0 with priority 0
30+
PIPELINE_PCM_DAI_ADD(sof/pipe-volume-playback.m4,
31+
1, 0, 2, s24le,
32+
48, 1000, 0, 0, SSP, 0, s24le, 2)
33+
34+
# Low Latency capture pipeline 2 on PCM 0 using max 2 channels of s24le.
35+
# Schedule 48 frames per 1000us deadline on core 0 with priority 0
36+
PIPELINE_PCM_DAI_ADD(sof/pipe-volume-capture.m4,
37+
2, 0, 2, s24le,
38+
48, 1000, 0, 0, SSP, 0, s24le, 2)
39+
40+
#
41+
# DAI configuration
42+
#
43+
# SSP port 0 is our only pipeline DAI
44+
#
45+
46+
# playback DAI is SSP0 using 2 periods
47+
# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
48+
DAI_ADD(sof/pipe-dai-playback.m4,
49+
1, SSP, 0, NoCodec-0,
50+
PIPELINE_SOURCE_1, 2, s24le,
51+
48, 1000, 0, 0)
52+
53+
# capture DAI is SSP0 using 2 periods
54+
# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
55+
DAI_ADD(sof/pipe-dai-capture.m4,
56+
2, SSP, 0, NoCodec-0,
57+
PIPELINE_SINK_2, 2, s24le,
58+
48, 1000, 0, 0)
59+
60+
# PCM Low Latency
61+
PCM_DUPLEX_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2)
62+
63+
#
64+
# BE configurations - overrides config in ACPI if present
65+
#
66+
DAI_CONFIG(SSP, 0, 0, NoCodec-0,
67+
SSP_CONFIG(DSP_B, SSP_CLOCK(mclk, 38400000, codec_mclk_in),
68+
SSP_CLOCK(bclk, 2400000, codec_slave),
69+
SSP_CLOCK(fsync, 48000, codec_slave),
70+
SSP_TDM(2, 25, 3, 3),
71+
SSP_CONFIG_DATA(SSP, 0, 24)))

0 commit comments

Comments
 (0)