Skip to content

Commit d97933a

Browse files
committed
topology2: sof-mtl-rt5650: add SSP FMT 24 bits support
use 24 bits format on playback and capture pipelines if codec needs, e.g. RT5650 HS/SPK codec. Signed-off-by: Mac Chiang <mac.chiang@intel.com>
1 parent 37b36f7 commit d97933a

File tree

5 files changed

+136
-17
lines changed

5 files changed

+136
-17
lines changed

tools/topology/topology2/cavs-mixin-mixout-eqiir-dts-ssp.conf

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,25 @@ Object.Pipeline {
4646
copier_type "SSP"
4747
stream_name "$HEADSET_CODEC_NAME"
4848
node_type $I2S_LINK_OUTPUT_CLASS
49+
IncludeByKey.SSP_HS_FMT_24 {
50+
"true" {
51+
Object.Base.output_audio_format [
52+
{
53+
out_bit_depth 32
54+
out_valid_bit_depth 24
55+
out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]"
56+
}
57+
]
58+
}
59+
"false" {
60+
Object.Base.output_audio_format [
61+
{
62+
out_bit_depth 32
63+
out_valid_bit_depth 32
64+
}
65+
]
66+
}
67+
}
4968
}
5069

5170
Object.Widget.gain.1 {
@@ -76,6 +95,25 @@ Object.Pipeline {
7695
copier_type "SSP"
7796
stream_name "$SPEAKER_CODEC_NAME"
7897
node_type $I2S_LINK_OUTPUT_CLASS
98+
IncludeByKey.SSP_SPK_FMT_24 {
99+
"true" {
100+
Object.Base.output_audio_format [
101+
{
102+
out_bit_depth 32
103+
out_valid_bit_depth 24
104+
out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]"
105+
}
106+
]
107+
}
108+
"false" {
109+
Object.Base.output_audio_format [
110+
{
111+
out_bit_depth 32
112+
out_valid_bit_depth 32
113+
}
114+
]
115+
}
116+
}
79117
}
80118

81119
Object.Widget.gain.1 {

tools/topology/topology2/cavs-mixin-mixout-ssp.conf

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,25 @@ Object.Pipeline {
4747
copier_type "SSP"
4848
stream_name "$HEADSET_CODEC_NAME"
4949
node_type $I2S_LINK_OUTPUT_CLASS
50+
IncludeByKey.SSP_HS_FMT_24 {
51+
"true" {
52+
Object.Base.output_audio_format [
53+
{
54+
out_bit_depth 32
55+
out_valid_bit_depth 24
56+
out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]"
57+
}
58+
]
59+
}
60+
"false" {
61+
Object.Base.output_audio_format [
62+
{
63+
out_bit_depth 32
64+
out_valid_bit_depth 32
65+
}
66+
]
67+
}
68+
}
5069
}
5170

5271
Object.Widget.gain.1 {
@@ -64,6 +83,25 @@ Object.Pipeline {
6483
copier_type "SSP"
6584
stream_name "$SPEAKER_CODEC_NAME"
6685
node_type $I2S_LINK_OUTPUT_CLASS
86+
IncludeByKey.SSP_SPK_FMT_24 {
87+
"true" {
88+
Object.Base.output_audio_format [
89+
{
90+
out_bit_depth 32
91+
out_valid_bit_depth 24
92+
out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]"
93+
}
94+
]
95+
}
96+
"false" {
97+
Object.Base.output_audio_format [
98+
{
99+
out_bit_depth 32
100+
out_valid_bit_depth 32
101+
}
102+
]
103+
}
104+
}
67105
}
68106

69107
Object.Widget.gain.1 {

tools/topology/topology2/cavs-rt5682.conf

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ Define {
118118
DMIC_PIPELINE_PRIORITY 1
119119
ECHO_REF_PIPELINE_PRIORITY 0
120120
PLAYBACK_PIPELINE_SRC "volume"
121+
SSP_SPK_FMT_24 false
122+
SSP_HS_FMT_24 false
121123
}
122124

123125
# override defaults with platform-specific config
@@ -245,18 +247,39 @@ Object.Pipeline {
245247
copier_type "SSP"
246248
stream_name "$HEADSET_CODEC_NAME"
247249
node_type $I2S_LINK_INPUT_CLASS
248-
Object.Base.input_audio_format [
249-
{
250-
in_bit_depth 32
251-
in_valid_bit_depth 32
250+
251+
IncludeByKey.SSP_HS_FMT_24 {
252+
"true" {
253+
Object.Base.input_audio_format [
254+
{
255+
in_bit_depth 32
256+
in_valid_bit_depth 24
257+
in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]"
258+
}
259+
]
260+
Object.Base.output_audio_format [
261+
{
262+
out_bit_depth 32
263+
out_valid_bit_depth 32
264+
}
265+
]
252266
}
253-
]
254-
Object.Base.output_audio_format [
255-
{
256-
out_bit_depth 32
257-
out_valid_bit_depth 32
267+
"false" {
268+
Object.Base.input_audio_format [
269+
{
270+
in_bit_depth 32
271+
in_valid_bit_depth 32
272+
}
273+
274+
]
275+
Object.Base.output_audio_format [
276+
{
277+
out_bit_depth 32
278+
out_valid_bit_depth 32
279+
}
280+
]
258281
}
259-
]
282+
}
260283
}
261284
}
262285
]

tools/topology/topology2/platform/intel/speaker-echo-ref.conf

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,25 @@ Object.Pipeline {
1414
stream_name $SPEAKER_CODEC_NAME
1515
node_type $I2S_LINK_INPUT_CLASS
1616
num_input_audio_formats 1
17-
Object.Base.input_audio_format [
18-
{
19-
in_bit_depth 32
20-
in_valid_bit_depth 32
17+
IncludeByKey.SSP_SPK_FMT_24 {
18+
"true" {
19+
Object.Base.input_audio_format [
20+
{
21+
in_bit_depth 32
22+
in_valid_bit_depth 24
23+
in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]"
24+
}
25+
]
2126
}
22-
]
27+
"false" {
28+
Object.Base.input_audio_format [
29+
{
30+
in_bit_depth 32
31+
in_valid_bit_depth 32
32+
}
33+
]
34+
}
35+
}
2336
num_output_audio_formats 1
2437
Object.Base.output_audio_format [
2538
{

tools/topology/topology2/production/tplg-targets-ace1.cmake

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,19 @@ NHLT_BIN=nhlt-sof-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_I
6464
SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\
6565
INCLUDE_ECHO_REF=true,INCLUDE_BT_OFFLOAD=false"
6666

67+
"cavs-rt5682\;sof-mtl-rt5650\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\
68+
PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\
69+
NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\
70+
SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\
71+
BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\
72+
DEEP_BUF_SPK=true,SSP_SPK_FMT_24=true,SSP_HS_FMT_24=true"
73+
6774
"cavs-rt5682\;sof-mtl-rt5650-dts\;PLATFORM=mtl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\
6875
PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\
6976
NHLT_BIN=nhlt-sof-mtl-max98357a-rt5682.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\
7077
SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\
71-
BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,USE_CHAIN_DMA=true,\
72-
GOOGLE_RTC_AEC_SUPPORT=1,DEEP_BUF_SPK=true,PLAYBACK_PIPELINE_SRC=dts"
78+
BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,\
79+
DEEP_BUF_SPK=true,SSP_SPK_FMT_24=true,SSP_HS_FMT_24=true,PLAYBACK_PIPELINE_SRC=dts"
7380

7481
#ES83x6+HDMI-IN
7582
"cavs-es83x6\;sof-mtl-es83x6-ssp1-hdmi-ssp02\;PLATFORM=mtl,PREPROCESS_PLUGINS=nhlt,\

0 commit comments

Comments
 (0)