From 1f8785da6209707256732962c5b5e6d77ddb7ae2 Mon Sep 17 00:00:00 2001 From: Brent Lu Date: Thu, 19 Sep 2024 18:15:07 +0800 Subject: [PATCH 1/4] Revert "topology: sof-jsl-rt5682: add SSP_CC_BCLK_ES flag to codec DAI" This reverts commit b365447dc61226c8e53358c15d588ba9616f8cd2. Signed-off-by: Brent Lu --- tools/topology/topology1/CMakeLists.txt | 1 - tools/topology/topology1/sof-jsl-rt5682.m4 | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/topology/topology1/CMakeLists.txt b/tools/topology/topology1/CMakeLists.txt index 08a903b2404c..7aa7febf375b 100644 --- a/tools/topology/topology1/CMakeLists.txt +++ b/tools/topology/topology1/CMakeLists.txt @@ -218,7 +218,6 @@ set(TPLGS "sof-jsl-rt5682\;sof-jsl-rt5682-rt1015\;-DPLATFORM=jsl-rt1015" "sof-jsl-rt5682\;sof-jsl-rt5682-rt1015-xperi\;-DPLATFORM=jsl-rt1015\;-DINCLUDE_IIR_EQ=1" "sof-jsl-rt5682\;sof-jsl-rt5682-mx98360a\;-DPLATFORM=jsl-dedede" - "sof-jsl-rt5682\;sof-jsl-cs42l42-mx98360a\;-DPLATFORM=jsl-dedede" "sof-jsl-rt5682\;sof-jsl-rt5682\;-DHEADPHONE=rt5682\;-DPLATFORM=icl\;-DNO_AMP" ## DRC/EQ topologies diff --git a/tools/topology/topology1/sof-jsl-rt5682.m4 b/tools/topology/topology1/sof-jsl-rt5682.m4 index 89fa84b2f28c..6c49a1dcb0f9 100644 --- a/tools/topology/topology1/sof-jsl-rt5682.m4 +++ b/tools/topology/topology1/sof-jsl-rt5682.m4 @@ -182,7 +182,7 @@ DAI_CONFIG(SSP, 0, 0, SSP0-Codec, SSP_CLOCK(bclk, 2400000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave), SSP_TDM(2, 25, 3, 3), - SSP_CONFIG_DATA(SSP, 0, 24, 0, 0, 0, SSP_CC_BCLK_ES))) + SSP_CONFIG_DATA(SSP, 0, 24))) ifdef(`NO_AMP',`',` # SSP 1 (ID: 6) From defc9a3b3f2b360a808214b46c6cceafa403105c Mon Sep 17 00:00:00 2001 From: Brent Lu Date: Wed, 28 Jul 2021 14:24:09 +0800 Subject: [PATCH 2/4] topology: sof-jsl-rt5682: add support for cs42l42 with max98360a Add support for cs42l42 with max98360a running on JSL boards. The cs42l42 needs to enable bclk earlier in prepare stage and disable bclk at hw_free statge so we add the SSP_CC_BCLK_ES flag for it. Signed-off-by: Brent Lu (cherry picked from commit 80a7795bd1c32387cf351a54d062bf7ddd5a3604) --- tools/topology/topology1/CMakeLists.txt | 7 ++++--- tools/topology/topology1/sof-jsl-rt5682.m4 | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/tools/topology/topology1/CMakeLists.txt b/tools/topology/topology1/CMakeLists.txt index 7aa7febf375b..44596d58630f 100644 --- a/tools/topology/topology1/CMakeLists.txt +++ b/tools/topology/topology1/CMakeLists.txt @@ -215,9 +215,10 @@ set(TPLGS "sof-jsl-da7219\;sof-jsl-da7219\;-DPLATFORM=jsl" "sof-jsl-da7219\;sof-jsl-da7219-mx98360a\;-DPLATFORM=jsl-dedede" "sof-smart-amplifier-nocodec\;sof-smart-amplifier-nocodec" - "sof-jsl-rt5682\;sof-jsl-rt5682-rt1015\;-DPLATFORM=jsl-rt1015" - "sof-jsl-rt5682\;sof-jsl-rt5682-rt1015-xperi\;-DPLATFORM=jsl-rt1015\;-DINCLUDE_IIR_EQ=1" - "sof-jsl-rt5682\;sof-jsl-rt5682-mx98360a\;-DPLATFORM=jsl-dedede" + "sof-jsl-rt5682\;sof-jsl-rt5682-rt1015\;-DHEADPHONE=rt5682\;-DPLATFORM=jsl-rt1015" + "sof-jsl-rt5682\;sof-jsl-rt5682-rt1015-xperi\;-DHEADPHONE=rt5682\;-DPLATFORM=jsl-rt1015\;-DINCLUDE_IIR_EQ=1" + "sof-jsl-rt5682\;sof-jsl-rt5682-mx98360a\;-DHEADPHONE=rt5682\;-DPLATFORM=jsl-dedede" + "sof-jsl-rt5682\;sof-jsl-cs42l42-mx98360a\;-DHEADPHONE=cs42l42\;-DPLATFORM=jsl-dedede" "sof-jsl-rt5682\;sof-jsl-rt5682\;-DHEADPHONE=rt5682\;-DPLATFORM=icl\;-DNO_AMP" ## DRC/EQ topologies diff --git a/tools/topology/topology1/sof-jsl-rt5682.m4 b/tools/topology/topology1/sof-jsl-rt5682.m4 index 6c49a1dcb0f9..a554229d63a6 100644 --- a/tools/topology/topology1/sof-jsl-rt5682.m4 +++ b/tools/topology/topology1/sof-jsl-rt5682.m4 @@ -1,5 +1,8 @@ # -# Topology for JasperLake with rt5682 codec + DMIC + 3 HDMI + Speaker amp +# Topology for JasperLake with rt5682 or cs42l42 codec + +# DMIC + +# 3 HDMI + +# speaker amp # # Include topology builder @@ -25,7 +28,7 @@ DEBUG_START # ifdef(`NO_AMP',`',` # PCM0 ----> volume -----> SSP1 (Speaker - ALC1015)') -# PCM1 <---> volume <----> SSP0 (Headset - ALC5682) +`# PCM1 <---> volume <----> SSP0 (Headset - 'HEADPHONE`)' # PCM2 ----> volume -----> iDisp1 # PCM3 ----> volume -----> iDisp2 # PCM4 ----> volume -----> iDisp3 @@ -176,6 +179,7 @@ dnl SSP_CONFIG(format, mclk, bclk, fsync, tdm, ssp_config_data) dnl SSP_CLOCK(clock, freq, codec_master, polarity) dnl SSP_CONFIG_DATA(type, idx, valid bits, mclk_id) +ifelse(HEADPHONE, `rt5682', ` # SSP 0 (ID: 0) ALC5682 DAI_CONFIG(SSP, 0, 0, SSP0-Codec, SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24000000, codec_mclk_in), @@ -183,6 +187,15 @@ DAI_CONFIG(SSP, 0, 0, SSP0-Codec, SSP_CLOCK(fsync, 48000, codec_slave), SSP_TDM(2, 25, 3, 3), SSP_CONFIG_DATA(SSP, 0, 24))) +', HEADPHONE, `cs42l42', ` +# SSP 0 (ID: 0) CS42L42 +DAI_CONFIG(SSP, 0, 0, SSP0-Codec, + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24000000, codec_mclk_in), + SSP_CLOCK(bclk, 2400000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, 25, 3, 3), + SSP_CONFIG_DATA(SSP, 0, 24, 0, 0, 0, SSP_CC_BCLK_ES))) +', ) ifdef(`NO_AMP',`',` # SSP 1 (ID: 6) From 9c4b7f00507f5cc62df912f1826bd5590528db9a Mon Sep 17 00:00:00 2001 From: Brent Lu Date: Mon, 27 Jun 2022 17:07:52 +0800 Subject: [PATCH 3/4] topology: sof-jsl-rt5682: enable mclk always-on feature Enable the always-on feature for pop. Signed-off-by: Brent Lu (cherry picked from commit 41e56b336de33bd0f52ab3047281f4421432e42f) (cherry picked from commit dd08b24e104c3ad7e1ff4136d8bb3ce5c79ad7c9) --- tools/topology/topology1/sof-jsl-rt5682.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/topology/topology1/sof-jsl-rt5682.m4 b/tools/topology/topology1/sof-jsl-rt5682.m4 index a554229d63a6..5e39e707d9e1 100644 --- a/tools/topology/topology1/sof-jsl-rt5682.m4 +++ b/tools/topology/topology1/sof-jsl-rt5682.m4 @@ -186,7 +186,7 @@ DAI_CONFIG(SSP, 0, 0, SSP0-Codec, SSP_CLOCK(bclk, 2400000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave), SSP_TDM(2, 25, 3, 3), - SSP_CONFIG_DATA(SSP, 0, 24))) + SSP_CONFIG_DATA(SSP, 0, 24, 0, 0, 0, SSP_CC_MCLK_AON))) ', HEADPHONE, `cs42l42', ` # SSP 0 (ID: 0) CS42L42 DAI_CONFIG(SSP, 0, 0, SSP0-Codec, From 5e561b4d81b231a6c2ae24973e763e2a2f58f4ce Mon Sep 17 00:00:00 2001 From: Brent Lu Date: Fri, 11 Aug 2023 11:41:31 +0800 Subject: [PATCH 4/4] topology1: sof-jsl-rt5650: support ALC5650 Add a new topology sof-jsl-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 (cherry picked from commit 6dc35044e6af98197e79c1e49c8e08b365312540) --- tools/topology/topology1/CMakeLists.txt | 1 + tools/topology/topology1/platform/intel/jsl-rt1015.m4 | 9 +++++++++ tools/topology/topology1/sof-jsl-rt5682.m4 | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/tools/topology/topology1/CMakeLists.txt b/tools/topology/topology1/CMakeLists.txt index 44596d58630f..e2a6509c7831 100644 --- a/tools/topology/topology1/CMakeLists.txt +++ b/tools/topology/topology1/CMakeLists.txt @@ -220,6 +220,7 @@ set(TPLGS "sof-jsl-rt5682\;sof-jsl-rt5682-mx98360a\;-DHEADPHONE=rt5682\;-DPLATFORM=jsl-dedede" "sof-jsl-rt5682\;sof-jsl-cs42l42-mx98360a\;-DHEADPHONE=cs42l42\;-DPLATFORM=jsl-dedede" "sof-jsl-rt5682\;sof-jsl-rt5682\;-DHEADPHONE=rt5682\;-DPLATFORM=icl\;-DNO_AMP" + "sof-jsl-rt5682\;sof-jsl-rt5650\;-DHEADPHONE=rt5650\;-DPLATFORM=jsl-rt1015" ## DRC/EQ topologies "sof-tgl-max98357a-rt5682\;sof-adl-max98357a-rt5682-drceq\;-DCODEC=MAX98357A\;-DFMT=s16le\;-DPLATFORM=adl\;-DLINUX_MACHINE_DRIVER=sof_rt5682\;-DAMP_SSP=2\;-DDYNAMIC=1\;-DDRC_EQ" diff --git a/tools/topology/topology1/platform/intel/jsl-rt1015.m4 b/tools/topology/topology1/platform/intel/jsl-rt1015.m4 index 981045d93f6b..d1b8a003b294 100644 --- a/tools/topology/topology1/platform/intel/jsl-rt1015.m4 +++ b/tools/topology/topology1/platform/intel/jsl-rt1015.m4 @@ -10,9 +10,18 @@ define(`SPK_NAME', `SSP1-Codec') undefine(`SPK_DATA_FORMAT') define(`SPK_DATA_FORMAT', `s24le') +ifelse(HEADPHONE, `rt5650', ` +define(`SET_SSP_CONFIG', + `SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), + SSP_CLOCK(bclk, 3072000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, 32, 3, 3), + SSP_CONFIG_DATA(SSP, 1, 24, 0, 0, 0, SSP_CC_MCLK_AON))') +', ` define(`SET_SSP_CONFIG', `SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24000000, codec_mclk_in), SSP_CLOCK(bclk, 3072000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave), SSP_TDM(2, 32, 3, 3), SSP_CONFIG_DATA(SSP, 1, 24))') +') \ No newline at end of file diff --git a/tools/topology/topology1/sof-jsl-rt5682.m4 b/tools/topology/topology1/sof-jsl-rt5682.m4 index 5e39e707d9e1..14da0da4d346 100644 --- a/tools/topology/topology1/sof-jsl-rt5682.m4 +++ b/tools/topology/topology1/sof-jsl-rt5682.m4 @@ -195,6 +195,14 @@ DAI_CONFIG(SSP, 0, 0, SSP0-Codec, SSP_CLOCK(fsync, 48000, codec_slave), SSP_TDM(2, 25, 3, 3), SSP_CONFIG_DATA(SSP, 0, 24, 0, 0, 0, SSP_CC_BCLK_ES))) +', HEADPHONE, `rt5650', ` +# SSP 0 (ID: 0) ALC5650-I2S1 +DAI_CONFIG(SSP, 0, 0, SSP0-Codec, + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), + SSP_CLOCK(bclk, 3072000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, 32, 3, 3), + SSP_CONFIG_DATA(SSP, 0, 24, 0, 0, 0, SSP_CC_MCLK_AON))) ', ) ifdef(`NO_AMP',`',`