Skip to content

Commit bd6933b

Browse files
brentlulgirdwood
authored andcommitted
topology1: sof-tgl-max98357a-rt5682: add sof-adl-rt5650 topology
Add a new topology sof-adl-rt5650 for ALC5650 which supports SSP0 for headset and SSP1 for speakers since this codec implements two I2S interfaces. DAI format changed to mclk: 24.576MHz, bclk: 3.072MHz, sample bits: 24-bit to avoid using ASRC function on codec side. Signed-off-by: Brent Lu <brent.lu@intel.com>
1 parent 2c6c1b4 commit bd6933b

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

tools/topology/topology1/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ set(TPLGS
112112
"sof-tgl-max98357a-rt5682\;sof-adl-cs35l41-waves\;-DCODEC=CS35L41\;-DFMT=s24le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_ssp_amp\;-DAMP_SSP=1\;-DBT_OFFLOAD\;-DNO_HEADPHONE\;-DWAVES\;-DNOHOTWORD\;-DNO16KDMIC"
113113
"sof-tgl-max98357a-rt5682\;sof-adl-cs35l41-google-aec-waves\;-DCODEC=CS35L41\;-DFMT=s24le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_ssp_amp\;-DAMP_SSP=1\;-DBT_OFFLOAD\;-DNO_HEADPHONE\;-DGOOGLE_RTC_AUDIO_PROCESSING\;-DWAVES\;-DNOHOTWORD\;-DNO16KDMIC\;-DSPK_MIC_PERIOD_US=10000"
114114
"sof-tgl-max98357a-rt5682\;sof-adl-max98360a-da7219\;-DUSE_DA7219\;-DCODEC=MAX98360A\;-DFMT=s32le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682\;-DAMP_SSP=1\;-DBT_OFFLOAD\;-DSPK_MIC_PERIOD_US=10000\;-DNOHOTWORD\;-DNO16KDMIC"
115+
"sof-tgl-max98357a-rt5682\;sof-adl-rt5650\;-DUSE_RT5650\;-DFMT=s24le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682\;-DAMP_SSP=1\;-DSPK_MIC_PERIOD_US=10000\;-DBT_OFFLOAD\;-DNOHOTWORD\;-DNO16KDMIC"
115116
"sof-tgl-max98373-rt5682\;sof-tgl-max98373-rt5682\;-DAMP_SSP=1"
116117
"sof-tgl-max98373-rt5682\;sof-tgl-max98373-rt5682-igonr\;-DAMP_SSP=1\;-DIGO"
117118
"sof-tgl-max98373-rt5682\;sof-tgl-max98373-rt5682-xperi\;-DAMP_SSP=1\;-DINCLUDE_IIR_EQ=1"

tools/topology/topology1/sof-tgl-max98357a-rt5682.m4

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,24 @@ DEBUG_START
3030
#
3131
ifdef(`2CH_2WAY', `ifdef(`4CH_PASSTHROUGH', `fatal_error(note: 2CH_2WAY and 4CH_PASSTHROUGH are mutually exclusive)')')
3232

33-
ifdef(`USE_DA7219',`define(HEADPHONE, `DA7219')',`define(HEADPHONE, `RT5682')')
34-
ifdef(`USE_DA7219',`define(MCLK_RATE, `24576000')',`define(MCLK_RATE, `19200000')')
33+
#
34+
# Set headphone type, default is RT5682
35+
#
36+
ifdef(`USE_DA7219',`define(HEADPHONE, `DA7219')',`
37+
ifdef(`USE_RT5650',`define(HEADPHONE, `RT5650')',`define(HEADPHONE, `RT5682')')')
38+
39+
#
40+
# Set the MCLK rate for headphone and amplifier SSP ports
41+
#
42+
ifelse(
43+
HEADPHONE, `DA7219', `
44+
define(MCLK_RATE, `24576000')',
45+
HEADPHONE, `RT5650', `
46+
define(MCLK_RATE, `24576000')
47+
define(CODEC, `RT5650')',
48+
HEADPHONE, `RT5682', `
49+
define(MCLK_RATE, `19200000')',
50+
`fatal_error(note: unknown HEADPHONE type)')
3551

3652
#
3753
# Define the demux configure
@@ -470,6 +486,12 @@ ifelse(
470486
SSP_CLOCK(fsync, 48000, codec_slave),
471487
SSP_TDM(4, 32, 3, 15),
472488
SSP_CONFIG_DATA(SSP, SPK_SSP_INDEX, 24)))',
489+
CODEC, `RT5650', `
490+
SSP_CONFIG(I2S, SSP_CLOCK(mclk, MCLK_RATE, codec_mclk_in),
491+
SSP_CLOCK(bclk, 3072000, codec_slave),
492+
SSP_CLOCK(fsync, 48000, codec_slave),
493+
SSP_TDM(2, 32, 3, 3),
494+
SSP_CONFIG_DATA(SSP, SPK_SSP_INDEX, 24, 0, 0, 0, SSP_CC_MCLK_AON)))',
473495
)')
474496

475497
ifdef(`NO_HEADPHONE',`',`
@@ -488,6 +510,12 @@ ifelse(
488510
SSP_CLOCK(fsync, 48000, codec_slave),
489511
SSP_TDM(2, 25, 3, 3),
490512
SSP_CONFIG_DATA(SSP, 0, 24, 0, 0, 0, SSP_CC_BCLK_ES)))',
513+
HEADPHONE, `RT5650', `
514+
SSP_CONFIG(I2S, SSP_CLOCK(mclk, MCLK_RATE, codec_mclk_in),
515+
SSP_CLOCK(bclk, 3072000, codec_slave),
516+
SSP_CLOCK(fsync, 48000, codec_slave),
517+
SSP_TDM(2, 32, 3, 3),
518+
SSP_CONFIG_DATA(SSP, 0, 24, 0, 0, 0, SSP_CC_MCLK_AON)))',
491519
)')
492520

493521
# 4 HDMI/DP outputs (ID: 3,4,5,6)

0 commit comments

Comments
 (0)