From c0172307ff924fd8a3d1a72370b5d5cff626035f Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Wed, 20 Jun 2018 21:21:09 -0700 Subject: [PATCH 1/6] topology: add new token for SSP MCLK ID Some platforms might have more than one MCLK's exposed. Add a token that will allow specifying the MCLK ID to be used in such cases. Signed-off-by: Ranjani Sridharan --- topology/sof/tokens.m4 | 1 + 1 file changed, 1 insertion(+) diff --git a/topology/sof/tokens.m4 b/topology/sof/tokens.m4 index f0b34284c..7033b7440 100644 --- a/topology/sof/tokens.m4 +++ b/topology/sof/tokens.m4 @@ -55,6 +55,7 @@ SectionVendorTokens."sof_ssp_tokens" { SOF_TKN_INTEL_SSP_MCLK_KEEP_ACTIVE "500" SOF_TKN_INTEL_SSP_BCLK_KEEP_ACTIVE "501" SOF_TKN_INTEL_SSP_FS_KEEP_ACTIVE "502" + SOF_TKN_INTEL_SSP_MCLK_ID "503" } SectionVendorTokens."sof_dmic_tokens" { From 6d9ad7a5053394dd19cd84e266e6774857296649 Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Sun, 24 Jun 2018 21:41:22 -0700 Subject: [PATCH 2/6] tokens: move SAMPLE_BITS to ssp tokens SAMPLE_BITS is SSP specific. So move it to be part of the ssp tokens. Signed-off-by: Ranjani Sridharan --- topology/sof/tokens.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/topology/sof/tokens.m4 b/topology/sof/tokens.m4 index 7033b7440..dfc6f3348 100644 --- a/topology/sof/tokens.m4 +++ b/topology/sof/tokens.m4 @@ -18,7 +18,6 @@ SectionVendorTokens."sof_dai_tokens" { SOF_TKN_DAI_DMAC_CONFIG "153" SOF_TKN_DAI_TYPE "154" SOF_TKN_DAI_INDEX "155" - SOF_TKN_DAI_SAMPLE_BITS "156" } SectionVendorTokens."sof_sched_tokens" { @@ -56,6 +55,7 @@ SectionVendorTokens."sof_ssp_tokens" { SOF_TKN_INTEL_SSP_BCLK_KEEP_ACTIVE "501" SOF_TKN_INTEL_SSP_FS_KEEP_ACTIVE "502" SOF_TKN_INTEL_SSP_MCLK_ID "503" + SOF_TKN_INTEL_SSP_SAMPLE_BITS "504" } SectionVendorTokens."sof_dmic_tokens" { From 1adb92ab2e39969d6e8e7f43e7d4e71e37ffcfb1 Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Sun, 24 Jun 2018 22:03:16 -0700 Subject: [PATCH 3/6] topology: dai: rename sample_bits macro to config_data Rename SAMPLE_BITS macro to a more generic CONFIG_DATA macro for SSP to also include the mclk id. Also modify users of the macro with the new name. Signed-off-by: Ranjani Sridharan --- topology/m4/dai.m4 | 14 +++++++++----- topology/sof-apl-nocodec.m4 | 2 +- topology/sof-apl-tdf8532.m4 | 12 ++++++------ topology/sof-bdw-rt286.m4 | 2 +- topology/sof-bdw-rt5640.m4 | 2 +- topology/sof-byt-da7213.m4 | 2 +- topology/sof-byt-nocodec.m4 | 2 +- topology/sof-byt-rt5640.m4 | 2 +- topology/sof-byt-rt5645.m4 | 2 +- topology/sof-byt-rt5651.m4 | 2 +- topology/sof-cht-max98090.m4 | 2 +- topology/sof-cht-nocodec.m4 | 2 +- topology/sof-cnl-rt274.m4 | 2 +- topology/sof-hsw-rt5640.m4 | 2 +- topology/test/test-all.m4 | 2 +- topology/test/test-capture.m4 | 2 +- topology/test/test-playback.m4 | 2 +- topology/test/test-tone-playback.m4 | 2 +- 18 files changed, 31 insertions(+), 27 deletions(-) diff --git a/topology/m4/dai.m4 b/topology/m4/dai.m4 index bd6741387..882d958e8 100644 --- a/topology/m4/dai.m4 +++ b/topology/m4/dai.m4 @@ -134,7 +134,7 @@ define(`DAI_TDM', ` tx_slots 'STR($3) ` rx_slots 'STR($4) ) -dnl SSP_CONFIG(format, mclk, bclk, fsync, tdm, ssp sample bits) +dnl SSP_CONFIG(format, mclk, bclk, fsync, tdm, ssp_config_data) define(`SSP_CONFIG', ` format "'$1`"' ` '$2 @@ -145,12 +145,16 @@ define(`SSP_CONFIG', $6 ) -dnl SSP_SAMPLE_BITS(type, idx, valid bits) -define(`SSP_SAMPLE_BITS', +dnl SSP_CONFIG_DATA(type, idx, valid bits, mclk_id) +dnl mclk_id is optional +define(`SSP_CONFIG_DATA', `SectionVendorTuples."'N_DAI_CONFIG($1$2)`_tuples" {' -` tokens "sof_dai_tokens"' +` tokens "sof_ssp_tokens"' ` tuples."word" {' -` SOF_TKN_DAI_SAMPLE_BITS' STR($3) +` SOF_TKN_INTEL_SSP_SAMPLE_BITS' STR($3) +` }' +` tuples."short" {' +` SOF_TKN_INTEL_SSP_MCLK_ID' ifelse($4, `', "0", STR($4)) ` }' `}' `SectionData."'N_DAI_CONFIG($1$2)`_data" {' diff --git a/topology/sof-apl-nocodec.m4 b/topology/sof-apl-nocodec.m4 index 32a3b869c..0698b4293 100644 --- a/topology/sof-apl-nocodec.m4 +++ b/topology/sof-apl-nocodec.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 2, 0, NoCodec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 2, 24))) + SSP_CONFIG_DATA(SSP, 2, 24))) diff --git a/topology/sof-apl-tdf8532.m4 b/topology/sof-apl-tdf8532.m4 index a0b44e261..b913d42b5 100644 --- a/topology/sof-apl-tdf8532.m4 +++ b/topology/sof-apl-tdf8532.m4 @@ -183,42 +183,42 @@ DAI_CONFIG(SSP, 4, 4, SSP4-Codec, DAI_CLOCK(bclk, 12288000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(8, 32, 15, 15), - SSP_SAMPLE_BITS(SSP, 4, 32))) + SSP_CONFIG_DATA(SSP, 4, 32))) DAI_CONFIG(SSP, 2, 2, SSP2-Codec, SSP_CONFIG(DSP_B, DAI_CLOCK(mclk, 24576000, codec_mclk_in), DAI_CLOCK(bclk, 12288000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 32, 255, 255), - SSP_SAMPLE_BITS(SSP, 2, 32))) + SSP_CONFIG_DATA(SSP, 2, 32))) DAI_CONFIG(SSP, 0, 0, SSP0-Codec, SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24576000, codec_mclk_in), DAI_CLOCK(bclk, 1536000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 16, 3, 3), - SSP_SAMPLE_BITS(SSP, 0, 16))) + SSP_CONFIG_DATA(SSP, 0, 16))) DAI_CONFIG(SSP, 1, 1, SSP1-Codec, SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24576000, codec_mclk_in), DAI_CLOCK(bclk, 1536000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 16, 3, 3), - SSP_SAMPLE_BITS(SSP, 1, 16))) + SSP_CONFIG_DATA(SSP, 1, 16))) DAI_CONFIG(SSP, 3, 3, SSP3-Codec, SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24576000, codec_mclk_in), DAI_CLOCK(bclk, 1536000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 16, 3, 3), - SSP_SAMPLE_BITS(SSP, 3, 16))) + SSP_CONFIG_DATA(SSP, 3, 16))) DAI_CONFIG(SSP, 5, 5, SSP5-Codec, SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24576000, codec_mclk_in), DAI_CLOCK(bclk, 1536000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 16, 3, 3), - SSP_SAMPLE_BITS(SSP, 5, 16))) + SSP_CONFIG_DATA(SSP, 5, 16))) VIRTUAL_DAPM_ROUTE_IN(BtHfp_ssp0_in, SSP, 0, IN, 0) diff --git a/topology/sof-bdw-rt286.m4 b/topology/sof-bdw-rt286.m4 index d1ef53562..e1f5bfbfd 100644 --- a/topology/sof-bdw-rt286.m4 +++ b/topology/sof-bdw-rt286.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 0, 0, Codec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 0, 24))) + SSP_CONFIG_DATA(SSP, 0, 24))) diff --git a/topology/sof-bdw-rt5640.m4 b/topology/sof-bdw-rt5640.m4 index 258ecc4de..cd955505b 100644 --- a/topology/sof-bdw-rt5640.m4 +++ b/topology/sof-bdw-rt5640.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 0, 0, Codec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 0, 24))) + SSP_CONFIG_DATA(SSP, 0, 24))) diff --git a/topology/sof-byt-da7213.m4 b/topology/sof-byt-da7213.m4 index a89e51b0c..a8c5c0196 100644 --- a/topology/sof-byt-da7213.m4 +++ b/topology/sof-byt-da7213.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 2, 0, SSP2-Codec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 2, 24))) + SSP_CONFIG_DATA(SSP, 2, 24))) diff --git a/topology/sof-byt-nocodec.m4 b/topology/sof-byt-nocodec.m4 index b305d2739..ac4af7906 100644 --- a/topology/sof-byt-nocodec.m4 +++ b/topology/sof-byt-nocodec.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 2, 0, NoCodec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 2, 24))) + SSP_CONFIG_DATA(SSP, 2, 24))) diff --git a/topology/sof-byt-rt5640.m4 b/topology/sof-byt-rt5640.m4 index aafa10fa4..19eca6d16 100644 --- a/topology/sof-byt-rt5640.m4 +++ b/topology/sof-byt-rt5640.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 2, 0, SSP2-Codec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 2, 24))) + SSP_CONFIG_DATA(SSP, 2, 24))) diff --git a/topology/sof-byt-rt5645.m4 b/topology/sof-byt-rt5645.m4 index 415bc0aea..2c0eac500 100644 --- a/topology/sof-byt-rt5645.m4 +++ b/topology/sof-byt-rt5645.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 2, 0, SSP2-Codec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 2, 24))) + SSP_CONFIG_DATA(SSP, 2, 24))) diff --git a/topology/sof-byt-rt5651.m4 b/topology/sof-byt-rt5651.m4 index 14e45c089..4397b3bd8 100644 --- a/topology/sof-byt-rt5651.m4 +++ b/topology/sof-byt-rt5651.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 2, 0, SSP2-Codec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 2, 24))) + SSP_CONFIG_DATA(SSP, 2, 24))) diff --git a/topology/sof-cht-max98090.m4 b/topology/sof-cht-max98090.m4 index e02056c9c..5a3a89564 100644 --- a/topology/sof-cht-max98090.m4 +++ b/topology/sof-cht-max98090.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 2, 0, SSP2-Codec, DAI_CLOCK(bclk, 1920000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 20, 3, 3), - SSP_SAMPLE_BITS(SSP, 2, 16))) + SSP_CONFIG_DATA(SSP, 2, 16))) diff --git a/topology/sof-cht-nocodec.m4 b/topology/sof-cht-nocodec.m4 index f56a7a517..cfb2453f4 100644 --- a/topology/sof-cht-nocodec.m4 +++ b/topology/sof-cht-nocodec.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 2, 0, NoCodec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 2, 24))) + SSP_CONFIG_DATA(SSP, 2, 24))) diff --git a/topology/sof-cnl-rt274.m4 b/topology/sof-cnl-rt274.m4 index a805f9e9f..66bd3a07b 100644 --- a/topology/sof-cnl-rt274.m4 +++ b/topology/sof-cnl-rt274.m4 @@ -67,7 +67,7 @@ DAI_CONFIG(SSP, 0, 0, SSP0-Codec, DAI_CLOCK(bclk, 4800000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(4, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 0, 24))) + SSP_CONFIG_DATA(SSP, 0, 24))) VIRTUAL_DAPM_ROUTE_OUT(codec0_out, SSP, 0, OUT, 0) VIRTUAL_DAPM_ROUTE_OUT(codec1_out, SSP, 0, OUT, 1) diff --git a/topology/sof-hsw-rt5640.m4 b/topology/sof-hsw-rt5640.m4 index c99f39bd6..f839fc382 100644 --- a/topology/sof-hsw-rt5640.m4 +++ b/topology/sof-hsw-rt5640.m4 @@ -95,4 +95,4 @@ DAI_CONFIG(SSP, 0, 0, Codec, DAI_CLOCK(bclk, 2400000, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, 25, 3, 3), - SSP_SAMPLE_BITS(SSP, 0, 24))) + SSP_CONFIG_DATA(SSP, 0, 24))) diff --git a/topology/test/test-all.m4 b/topology/test/test-all.m4 index 2a4dae429..00318b015 100644 --- a/topology/test/test-all.m4 +++ b/topology/test/test-all.m4 @@ -90,5 +90,5 @@ DAI_CONFIG(TEST_DAI_TYPE, TEST_DAI_PORT, 0, TEST_DAI_LINK_NAME, DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, TEST_SSP_PHY_BITS, 3, 3), - SSP_SAMPLE_BITS(TEST_DAI_TYPE, TEST_DAI_PORT, + SSP_CONFIG_DATA(TEST_DAI_TYPE, TEST_DAI_PORT, TEST_SSP_DATA_BITS))) diff --git a/topology/test/test-capture.m4 b/topology/test/test-capture.m4 index 7e5ca86c2..9d85009a4 100644 --- a/topology/test/test-capture.m4 +++ b/topology/test/test-capture.m4 @@ -74,7 +74,7 @@ DAI_CONFIG(TEST_DAI_TYPE, TEST_DAI_PORT, 0, TEST_DAI_LINK_NAME, DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, TEST_SSP_PHY_BITS, 3, 3), - SSP_SAMPLE_BITS(TEST_DAI_TYPE, TEST_DAI_PORT, + SSP_CONFIG_DATA(TEST_DAI_TYPE, TEST_DAI_PORT, TEST_SSP_DATA_BITS)), TEST_DAI_TYPE, `DMIC', DMIC_CONFIG(TEST_DMIC_DRIVER_VERSION,TEST_DMIC_CLK_MIN, diff --git a/topology/test/test-playback.m4 b/topology/test/test-playback.m4 index ade8a8e45..d607d3a45 100644 --- a/topology/test/test-playback.m4 +++ b/topology/test/test-playback.m4 @@ -73,5 +73,5 @@ DAI_CONFIG(TEST_DAI_TYPE, TEST_DAI_PORT, 0, TEST_DAI_LINK_NAME, DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, TEST_SSP_PHY_BITS, 3, 3), - SSP_SAMPLE_BITS(TEST_DAI_TYPE, TEST_DAI_PORT, + SSP_CONFIG_DATA(TEST_DAI_TYPE, TEST_DAI_PORT, TEST_SSP_DATA_BITS))) diff --git a/topology/test/test-tone-playback.m4 b/topology/test/test-tone-playback.m4 index 1c38c092a..524842766 100644 --- a/topology/test/test-tone-playback.m4 +++ b/topology/test/test-tone-playback.m4 @@ -62,5 +62,5 @@ DAI_CONFIG(TEST_DAI_TYPE, TEST_DAI_PORT, 0, TEST_DAI_LINK_NAME, DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), DAI_CLOCK(fsync, 48000, codec_slave), DAI_TDM(2, TEST_SSP_PHY_BITS, 3, 3), - SSP_SAMPLE_BITS(TEST_DAI_TYPE, TEST_DAI_PORT, + SSP_CONFIG_DATA(TEST_DAI_TYPE, TEST_DAI_PORT, TEST_SSP_DATA_BITS))) From a835ff2ae962a483af8f63f02142938c0278d909 Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Sun, 24 Jun 2018 23:42:07 -0700 Subject: [PATCH 4/6] topology: move platform m4 files from dsps directory to platform/intel Signed-off-by: Ranjani Sridharan --- configure.ac | 3 ++- topology/Makefile.am | 4 ++-- topology/platform/Makefile.am | 1 + topology/{dsps => platform/intel}/Makefile.am | 0 topology/{dsps => platform/intel}/bdw.m4 | 0 topology/{dsps => platform/intel}/bxt.m4 | 0 topology/{dsps => platform/intel}/byt.m4 | 0 topology/{dsps => platform/intel}/cht.m4 | 0 topology/{dsps => platform/intel}/cnl.m4 | 0 topology/{dsps => platform/intel}/hsw.m4 | 0 topology/sof-apl-nocodec.m4 | 2 +- topology/sof-apl-tdf8532.m4 | 2 +- topology/sof-bdw-rt286.m4 | 2 +- topology/sof-bdw-rt5640.m4 | 2 +- topology/sof-byt-da7213.m4 | 2 +- topology/sof-byt-nocodec.m4 | 2 +- topology/sof-byt-rt5640.m4 | 2 +- topology/sof-byt-rt5645.m4 | 2 +- topology/sof-byt-rt5651.m4 | 2 +- topology/sof-cht-max98090.m4 | 2 +- topology/sof-cht-nocodec.m4 | 2 +- topology/sof-cnl-rt274.m4 | 2 +- topology/sof-hsw-rt5640.m4 | 2 +- topology/test/Makefile.am | 2 +- topology/test/test-all.m4 | 2 +- topology/test/test-capture.m4 | 2 +- topology/test/test-playback.m4 | 2 +- topology/test/test-tone-playback.m4 | 2 +- topology/test/tplg-build.sh | 2 +- 29 files changed, 24 insertions(+), 22 deletions(-) create mode 100644 topology/platform/Makefile.am rename topology/{dsps => platform/intel}/Makefile.am (100%) rename topology/{dsps => platform/intel}/bdw.m4 (100%) rename topology/{dsps => platform/intel}/bxt.m4 (100%) rename topology/{dsps => platform/intel}/byt.m4 (100%) rename topology/{dsps => platform/intel}/cht.m4 (100%) rename topology/{dsps => platform/intel}/cnl.m4 (100%) rename topology/{dsps => platform/intel}/hsw.m4 (100%) diff --git a/configure.ac b/configure.ac index cc5e59e13..df5cd92a1 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,8 @@ AC_OUTPUT([ rmbox/Makefile topology/Makefile topology/common/Makefile - topology/dsps/Makefile + topology/platform/Makefile + topology/platform/intel/Makefile topology/m4/Makefile topology/sof/Makefile topology/test/Makefile diff --git a/topology/Makefile.am b/topology/Makefile.am index 73e10e90e..25410b0f2 100644 --- a/topology/Makefile.am +++ b/topology/Makefile.am @@ -3,10 +3,10 @@ # Dependencies # -SUBDIRS = test m4 sof common dsps +SUBDIRS = test m4 sof common platform DEPS = \ - dsps/*.m4 \ + platform/intel/*.m4 \ common/*.m4 \ m4/*.m4 \ sof/*.m4 diff --git a/topology/platform/Makefile.am b/topology/platform/Makefile.am new file mode 100644 index 000000000..c6966a9b6 --- /dev/null +++ b/topology/platform/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = intel diff --git a/topology/dsps/Makefile.am b/topology/platform/intel/Makefile.am similarity index 100% rename from topology/dsps/Makefile.am rename to topology/platform/intel/Makefile.am diff --git a/topology/dsps/bdw.m4 b/topology/platform/intel/bdw.m4 similarity index 100% rename from topology/dsps/bdw.m4 rename to topology/platform/intel/bdw.m4 diff --git a/topology/dsps/bxt.m4 b/topology/platform/intel/bxt.m4 similarity index 100% rename from topology/dsps/bxt.m4 rename to topology/platform/intel/bxt.m4 diff --git a/topology/dsps/byt.m4 b/topology/platform/intel/byt.m4 similarity index 100% rename from topology/dsps/byt.m4 rename to topology/platform/intel/byt.m4 diff --git a/topology/dsps/cht.m4 b/topology/platform/intel/cht.m4 similarity index 100% rename from topology/dsps/cht.m4 rename to topology/platform/intel/cht.m4 diff --git a/topology/dsps/cnl.m4 b/topology/platform/intel/cnl.m4 similarity index 100% rename from topology/dsps/cnl.m4 rename to topology/platform/intel/cnl.m4 diff --git a/topology/dsps/hsw.m4 b/topology/platform/intel/hsw.m4 similarity index 100% rename from topology/dsps/hsw.m4 rename to topology/platform/intel/hsw.m4 diff --git a/topology/sof-apl-nocodec.m4 b/topology/sof-apl-nocodec.m4 index 0698b4293..847bfb40b 100644 --- a/topology/sof-apl-nocodec.m4 +++ b/topology/sof-apl-nocodec.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Apollolake DSP configuration -include(`dsps/bxt.m4') +include(`platform/intel/bxt.m4') # # Define the pipelines diff --git a/topology/sof-apl-tdf8532.m4 b/topology/sof-apl-tdf8532.m4 index b913d42b5..9110ffaa4 100644 --- a/topology/sof-apl-tdf8532.m4 +++ b/topology/sof-apl-tdf8532.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Apollolake DSP configuration -include(`dsps/bxt.m4') +include(`platform/intel/bxt.m4') # # Define the pipelines diff --git a/topology/sof-bdw-rt286.m4 b/topology/sof-bdw-rt286.m4 index e1f5bfbfd..461cb6ab4 100644 --- a/topology/sof-bdw-rt286.m4 +++ b/topology/sof-bdw-rt286.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Broadwell DSP configuration -include(`dsps/bdw.m4') +include(`platform/intel/bdw.m4') # # Define the pipelines diff --git a/topology/sof-bdw-rt5640.m4 b/topology/sof-bdw-rt5640.m4 index cd955505b..e811a130f 100644 --- a/topology/sof-bdw-rt5640.m4 +++ b/topology/sof-bdw-rt5640.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Broadwell DSP configuration -include(`dsps/bdw.m4') +include(`platform/intel/bdw.m4') # # Define the pipelines diff --git a/topology/sof-byt-da7213.m4 b/topology/sof-byt-da7213.m4 index a8c5c0196..c36ed67c2 100644 --- a/topology/sof-byt-da7213.m4 +++ b/topology/sof-byt-da7213.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Baytrail DSP configuration -include(`dsps/byt.m4') +include(`platform/intel/byt.m4') # # Define the pipelines diff --git a/topology/sof-byt-nocodec.m4 b/topology/sof-byt-nocodec.m4 index ac4af7906..2bde71a72 100644 --- a/topology/sof-byt-nocodec.m4 +++ b/topology/sof-byt-nocodec.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Baytrail DSP configuration -include(`dsps/byt.m4') +include(`platform/intel/byt.m4') # # Define the pipelines diff --git a/topology/sof-byt-rt5640.m4 b/topology/sof-byt-rt5640.m4 index 19eca6d16..a64d5c3a5 100644 --- a/topology/sof-byt-rt5640.m4 +++ b/topology/sof-byt-rt5640.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Baytrail DSP configuration -include(`dsps/byt.m4') +include(`platform/intel/byt.m4') # # Define the pipelines diff --git a/topology/sof-byt-rt5645.m4 b/topology/sof-byt-rt5645.m4 index 2c0eac500..57e395969 100644 --- a/topology/sof-byt-rt5645.m4 +++ b/topology/sof-byt-rt5645.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Baytrail DSP configuration -include(`dsps/byt.m4') +include(`platform/intel/byt.m4') # # Define the pipelines diff --git a/topology/sof-byt-rt5651.m4 b/topology/sof-byt-rt5651.m4 index 4397b3bd8..c5bd97418 100644 --- a/topology/sof-byt-rt5651.m4 +++ b/topology/sof-byt-rt5651.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Baytrail DSP configuration -include(`dsps/byt.m4') +include(`platform/intel/byt.m4') # # Define the pipelines diff --git a/topology/sof-cht-max98090.m4 b/topology/sof-cht-max98090.m4 index 5a3a89564..96ac5a5d8 100644 --- a/topology/sof-cht-max98090.m4 +++ b/topology/sof-cht-max98090.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Cherrytrail DSP configuration -include(`dsps/cht.m4') +include(`platform/intel/cht.m4') # # Define the pipelines diff --git a/topology/sof-cht-nocodec.m4 b/topology/sof-cht-nocodec.m4 index cfb2453f4..f1c6694fb 100644 --- a/topology/sof-cht-nocodec.m4 +++ b/topology/sof-cht-nocodec.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include CherryTrail DSP configuration -include(`dsps/cht.m4') +include(`platform/intel/cht.m4') # # Define the pipelines diff --git a/topology/sof-cnl-rt274.m4 b/topology/sof-cnl-rt274.m4 index 66bd3a07b..5a55c8a32 100644 --- a/topology/sof-cnl-rt274.m4 +++ b/topology/sof-cnl-rt274.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Apollolake DSP configuration -include(`dsps/cnl.m4') +include(`platform/intel/cnl.m4') # # Define the pipelines diff --git a/topology/sof-hsw-rt5640.m4 b/topology/sof-hsw-rt5640.m4 index f839fc382..92722869a 100644 --- a/topology/sof-hsw-rt5640.m4 +++ b/topology/sof-hsw-rt5640.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Haswell DSP configuration -include(`dsps/hsw.m4') +include(`platform/intel/hsw.m4') # # Define the pipelines diff --git a/topology/test/Makefile.am b/topology/test/Makefile.am index d494fcb5a..e1894e0de 100644 --- a/topology/test/Makefile.am +++ b/topology/test/Makefile.am @@ -8,7 +8,7 @@ export USE_XARGS=yes endif DEPS = \ - ../dsps/*.m4 \ + ../platform/intel/*.m4 \ ../common/*.m4 \ ../m4/*.m4 \ ../sof/*.m4 diff --git a/topology/test/test-all.m4 b/topology/test/test-all.m4 index 00318b015..709e861bf 100644 --- a/topology/test/test-all.m4 +++ b/topology/test/test-all.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Baytrail DSP configuration -include(`dsps/byt.m4') +include(`byt.m4') # # Machine Specific Config - !! MUST BE SET TO MATCH TEST MACHINE DRIVER !! diff --git a/topology/test/test-capture.m4 b/topology/test/test-capture.m4 index 9d85009a4..b9aa29bb3 100644 --- a/topology/test/test-capture.m4 +++ b/topology/test/test-capture.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Baytrail DSP configuration -include(`dsps/byt.m4') +include(`byt.m4') # # Machine Specific Config - !! MUST BE SET TO MATCH TEST MACHINE DRIVER !! diff --git a/topology/test/test-playback.m4 b/topology/test/test-playback.m4 index d607d3a45..10a9eb6d2 100644 --- a/topology/test/test-playback.m4 +++ b/topology/test/test-playback.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Baytrail DSP configuration -include(`dsps/byt.m4') +include(`byt.m4') # # Machine Specific Config - !! MUST BE SET TO MATCH TEST MACHINE DRIVER !! diff --git a/topology/test/test-tone-playback.m4 b/topology/test/test-tone-playback.m4 index 524842766..e16a525cf 100644 --- a/topology/test/test-tone-playback.m4 +++ b/topology/test/test-tone-playback.m4 @@ -14,7 +14,7 @@ include(`common/tlv.m4') include(`sof/tokens.m4') # Include Baytrail DSP configuration -include(`dsps/byt.m4') +include(`byt.m4') # # Machine Specific Config - !! MUST BE SET TO MATCH TEST MACHINE DRIVER !! diff --git a/topology/test/tplg-build.sh b/topology/test/tplg-build.sh index ad4d1da10..89cd51561 100755 --- a/topology/test/tplg-build.sh +++ b/topology/test/tplg-build.sh @@ -8,7 +8,7 @@ set -e # M4 preprocessor flags -export M4PATH="../:../m4:../common" +export M4PATH="../:../m4:../common:../platform/intel" # Simple component test cases # can be used on components with 1 sink and 1 source. From f58a047278cbf6254da2a3500c2dc74ef07e4f3a Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Mon, 25 Jun 2018 00:04:27 -0700 Subject: [PATCH 5/6] topology: move ssp related macros to ssp.m4 in platform/common Signed-off-by: Ranjani Sridharan --- configure.ac | 1 + topology/Makefile.am | 3 +- topology/m4/dai.m4 | 41 ----------------------- topology/platform/Makefile.am | 2 +- topology/platform/common/Makefile.am | 2 ++ topology/platform/common/ssp.m4 | 46 ++++++++++++++++++++++++++ topology/sof-apl-nocodec.m4 | 9 ++--- topology/sof-apl-tdf8532.m4 | 49 ++++++++++++++-------------- topology/sof-bdw-rt286.m4 | 9 ++--- topology/sof-bdw-rt5640.m4 | 9 ++--- topology/sof-byt-da7213.m4 | 9 ++--- topology/sof-byt-nocodec.m4 | 9 ++--- topology/sof-byt-rt5640.m4 | 9 ++--- topology/sof-byt-rt5645.m4 | 9 ++--- topology/sof-byt-rt5651.m4 | 9 ++--- topology/sof-cht-max98090.m4 | 9 ++--- topology/sof-cht-nocodec.m4 | 9 ++--- topology/sof-cnl-rt274.m4 | 9 ++--- topology/sof-hsw-rt5640.m4 | 9 ++--- topology/test/test-all.m4 | 9 ++--- topology/test/test-capture.m4 | 9 ++--- topology/test/test-playback.m4 | 9 ++--- topology/test/test-tone-playback.m4 | 9 ++--- topology/test/tplg-build.sh | 2 +- 24 files changed, 158 insertions(+), 132 deletions(-) create mode 100644 topology/platform/common/Makefile.am create mode 100644 topology/platform/common/ssp.m4 diff --git a/configure.ac b/configure.ac index df5cd92a1..033637827 100644 --- a/configure.ac +++ b/configure.ac @@ -22,6 +22,7 @@ AC_OUTPUT([ topology/common/Makefile topology/platform/Makefile topology/platform/intel/Makefile + topology/platform/common/Makefile topology/m4/Makefile topology/sof/Makefile topology/test/Makefile diff --git a/topology/Makefile.am b/topology/Makefile.am index 25410b0f2..b59c6f588 100644 --- a/topology/Makefile.am +++ b/topology/Makefile.am @@ -7,6 +7,7 @@ SUBDIRS = test m4 sof common platform DEPS = \ platform/intel/*.m4 \ + platform/common/*.m4 \ common/*.m4 \ m4/*.m4 \ sof/*.m4 @@ -34,7 +35,7 @@ MACHINES = \ .PRECIOUS: %.conf %.conf : %.m4 ${DEPS} - m4 -I m4 -I common $< > $@ + m4 -I m4 -I common -I platform/common $< > $@ %.tplg : %.conf alsatplg -v 1 -c $< -o $@ diff --git a/topology/m4/dai.m4 b/topology/m4/dai.m4 index 882d958e8..5fc1dedde 100644 --- a/topology/m4/dai.m4 +++ b/topology/m4/dai.m4 @@ -121,47 +121,6 @@ define(`D_DAI', `SectionDAI."'N_DAI`" {' ` capture "'$3`"' `}') -dnl DAI_CLOCK(clock, freq, codec_master) -define(`DAI_CLOCK', - $1 STR($3) - $1_freq STR($2)) - - -dnl DAI_TDM(slots, width, tx_mask, rx_mask) -define(`DAI_TDM', -`tdm_slots 'STR($1) -` tdm_slot_width 'STR($2) -` tx_slots 'STR($3) -` rx_slots 'STR($4) -) -dnl SSP_CONFIG(format, mclk, bclk, fsync, tdm, ssp_config_data) -define(`SSP_CONFIG', -` format "'$1`"' -` '$2 -` '$3 -` '$4 -` '$5 -`}' -$6 -) - -dnl SSP_CONFIG_DATA(type, idx, valid bits, mclk_id) -dnl mclk_id is optional -define(`SSP_CONFIG_DATA', -`SectionVendorTuples."'N_DAI_CONFIG($1$2)`_tuples" {' -` tokens "sof_ssp_tokens"' -` tuples."word" {' -` SOF_TKN_INTEL_SSP_SAMPLE_BITS' STR($3) -` }' -` tuples."short" {' -` SOF_TKN_INTEL_SSP_MCLK_ID' ifelse($4, `', "0", STR($4)) -` }' -`}' -`SectionData."'N_DAI_CONFIG($1$2)`_data" {' -` tuples "'N_DAI_CONFIG($1$2)`_tuples"' -`}' -) - dnl PDM_TUPLES(pdm ctrl id, mic_a_enable, mic_b_enable, polarity_a, polarity_b, dnl clk_egde, skew) define(`PDM_TUPLES', diff --git a/topology/platform/Makefile.am b/topology/platform/Makefile.am index c6966a9b6..011ff9e93 100644 --- a/topology/platform/Makefile.am +++ b/topology/platform/Makefile.am @@ -1 +1 @@ -SUBDIRS = intel +SUBDIRS = intel common diff --git a/topology/platform/common/Makefile.am b/topology/platform/common/Makefile.am new file mode 100644 index 000000000..a8576d588 --- /dev/null +++ b/topology/platform/common/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + ssp.m4 diff --git a/topology/platform/common/ssp.m4 b/topology/platform/common/ssp.m4 new file mode 100644 index 000000000..f3c78626c --- /dev/null +++ b/topology/platform/common/ssp.m4 @@ -0,0 +1,46 @@ +divert(-1) + +dnl SSP related macros + +dnl SSP_CLOCK(clock, freq, codec_master) +define(`SSP_CLOCK', + $1 STR($3) + $1_freq STR($2)) + + +dnl SSP_TDM(slots, width, tx_mask, rx_mask) +define(`SSP_TDM', +`tdm_slots 'STR($1) +` tdm_slot_width 'STR($2) +` tx_slots 'STR($3) +` rx_slots 'STR($4) +) +dnl SSP_CONFIG(format, mclk, bclk, fsync, tdm, ssp_config_data) +define(`SSP_CONFIG', +` format "'$1`"' +` '$2 +` '$3 +` '$4 +` '$5 +`}' +$6 +) + +dnl SSP_CONFIG_DATA(type, idx, valid bits, mclk_id) +dnl mclk_id is optional +define(`SSP_CONFIG_DATA', +`SectionVendorTuples."'N_DAI_CONFIG($1$2)`_tuples" {' +` tokens "sof_ssp_tokens"' +` tuples."word" {' +` SOF_TKN_INTEL_SSP_SAMPLE_BITS' STR($3) +` }' +` tuples."short" {' +` SOF_TKN_INTEL_SSP_MCLK_ID' ifelse($4, `', "0", STR($4)) +` }' +`}' +`SectionData."'N_DAI_CONFIG($1$2)`_data" {' +` tuples "'N_DAI_CONFIG($1$2)`_tuples"' +`}' +) + +divert(0)dnl diff --git a/topology/sof-apl-nocodec.m4 b/topology/sof-apl-nocodec.m4 index 847bfb40b..07a1c5b2c 100644 --- a/topology/sof-apl-nocodec.m4 +++ b/topology/sof-apl-nocodec.m4 @@ -6,6 +6,7 @@ include(`pipeline.m4') include(`utils.m4') include(`dai.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 2, 0, NoCodec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 19200000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 19200000, 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, 2, 24))) diff --git a/topology/sof-apl-tdf8532.m4 b/topology/sof-apl-tdf8532.m4 index 9110ffaa4..a37e5216a 100644 --- a/topology/sof-apl-tdf8532.m4 +++ b/topology/sof-apl-tdf8532.m4 @@ -6,6 +6,7 @@ include(`utils.m4') include(`dai.m4') include(`pipeline.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -179,45 +180,45 @@ PCM_DUPLEX_ADD(Port5, 5, 5, 5, PIPELINE_PCM_9, PIPELINE_PCM_10) # DAI_CONFIG(SSP, 4, 4, SSP4-Codec, - SSP_CONFIG(DSP_B, DAI_CLOCK(mclk, 24576000, codec_mclk_in), - DAI_CLOCK(bclk, 12288000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(8, 32, 15, 15), + SSP_CONFIG(DSP_B, SSP_CLOCK(mclk, 24576000, codec_mclk_in), + SSP_CLOCK(bclk, 12288000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(8, 32, 15, 15), SSP_CONFIG_DATA(SSP, 4, 32))) DAI_CONFIG(SSP, 2, 2, SSP2-Codec, - SSP_CONFIG(DSP_B, DAI_CLOCK(mclk, 24576000, codec_mclk_in), - DAI_CLOCK(bclk, 12288000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 32, 255, 255), + SSP_CONFIG(DSP_B, SSP_CLOCK(mclk, 24576000, codec_mclk_in), + SSP_CLOCK(bclk, 12288000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, 32, 255, 255), SSP_CONFIG_DATA(SSP, 2, 32))) DAI_CONFIG(SSP, 0, 0, SSP0-Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24576000, codec_mclk_in), - DAI_CLOCK(bclk, 1536000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 16, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), + SSP_CLOCK(bclk, 1536000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, 16, 3, 3), SSP_CONFIG_DATA(SSP, 0, 16))) DAI_CONFIG(SSP, 1, 1, SSP1-Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24576000, codec_mclk_in), - DAI_CLOCK(bclk, 1536000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 16, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), + SSP_CLOCK(bclk, 1536000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, 16, 3, 3), SSP_CONFIG_DATA(SSP, 1, 16))) DAI_CONFIG(SSP, 3, 3, SSP3-Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24576000, codec_mclk_in), - DAI_CLOCK(bclk, 1536000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 16, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), + SSP_CLOCK(bclk, 1536000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, 16, 3, 3), SSP_CONFIG_DATA(SSP, 3, 16))) DAI_CONFIG(SSP, 5, 5, SSP5-Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24576000, codec_mclk_in), - DAI_CLOCK(bclk, 1536000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 16, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), + SSP_CLOCK(bclk, 1536000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, 16, 3, 3), SSP_CONFIG_DATA(SSP, 5, 16))) diff --git a/topology/sof-bdw-rt286.m4 b/topology/sof-bdw-rt286.m4 index 461cb6ab4..f8294d202 100644 --- a/topology/sof-bdw-rt286.m4 +++ b/topology/sof-bdw-rt286.m4 @@ -6,6 +6,7 @@ include(`pipeline.m4') include(`utils.m4') include(`dai.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 0, 0, Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24000000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + 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))) diff --git a/topology/sof-bdw-rt5640.m4 b/topology/sof-bdw-rt5640.m4 index e811a130f..3c72d3008 100644 --- a/topology/sof-bdw-rt5640.m4 +++ b/topology/sof-bdw-rt5640.m4 @@ -6,6 +6,7 @@ include(`utils.m4') include(`dai.m4') include(`pipeline.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 0, 0, Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24000000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + 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))) diff --git a/topology/sof-byt-da7213.m4 b/topology/sof-byt-da7213.m4 index c36ed67c2..af5129c8d 100644 --- a/topology/sof-byt-da7213.m4 +++ b/topology/sof-byt-da7213.m4 @@ -6,6 +6,7 @@ include(`utils.m4') include(`dai.m4') include(`pipeline.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 2, 0, SSP2-Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 19200000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 19200000, 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, 2, 24))) diff --git a/topology/sof-byt-nocodec.m4 b/topology/sof-byt-nocodec.m4 index 2bde71a72..aed2b977a 100644 --- a/topology/sof-byt-nocodec.m4 +++ b/topology/sof-byt-nocodec.m4 @@ -6,6 +6,7 @@ include(`pipeline.m4') include(`utils.m4') include(`dai.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 2, 0, NoCodec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 19200000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 19200000, 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, 2, 24))) diff --git a/topology/sof-byt-rt5640.m4 b/topology/sof-byt-rt5640.m4 index a64d5c3a5..41074914d 100644 --- a/topology/sof-byt-rt5640.m4 +++ b/topology/sof-byt-rt5640.m4 @@ -6,6 +6,7 @@ include(`utils.m4') include(`dai.m4') include(`pipeline.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 2, 0, SSP2-Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 19200000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 19200000, 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, 2, 24))) diff --git a/topology/sof-byt-rt5645.m4 b/topology/sof-byt-rt5645.m4 index 57e395969..028cb45d6 100644 --- a/topology/sof-byt-rt5645.m4 +++ b/topology/sof-byt-rt5645.m4 @@ -6,6 +6,7 @@ include(`utils.m4') include(`dai.m4') include(`pipeline.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 2, 0, SSP2-Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 19200000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 19200000, 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, 2, 24))) diff --git a/topology/sof-byt-rt5651.m4 b/topology/sof-byt-rt5651.m4 index c5bd97418..d2cdfad5e 100644 --- a/topology/sof-byt-rt5651.m4 +++ b/topology/sof-byt-rt5651.m4 @@ -6,6 +6,7 @@ include(`utils.m4') include(`dai.m4') include(`pipeline.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 3, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 2, 0, SSP2-Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 19200000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 19200000, 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, 2, 24))) diff --git a/topology/sof-cht-max98090.m4 b/topology/sof-cht-max98090.m4 index 96ac5a5d8..38244d76f 100644 --- a/topology/sof-cht-max98090.m4 +++ b/topology/sof-cht-max98090.m4 @@ -6,6 +6,7 @@ include(`utils.m4') include(`dai.m4') include(`pipeline.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 2, 0, SSP2-Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 19200000, codec_mclk_in), - DAI_CLOCK(bclk, 1920000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 20, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 19200000, codec_mclk_in), + SSP_CLOCK(bclk, 1920000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, 20, 3, 3), SSP_CONFIG_DATA(SSP, 2, 16))) diff --git a/topology/sof-cht-nocodec.m4 b/topology/sof-cht-nocodec.m4 index f1c6694fb..466f56d0c 100644 --- a/topology/sof-cht-nocodec.m4 +++ b/topology/sof-cht-nocodec.m4 @@ -6,6 +6,7 @@ include(`pipeline.m4') include(`utils.m4') include(`dai.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 2, 0, NoCodec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 19200000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + SSP_CONFIG(I2S, SSP_CLOCK(mclk, 19200000, 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, 2, 24))) diff --git a/topology/sof-cnl-rt274.m4 b/topology/sof-cnl-rt274.m4 index 5a55c8a32..e416ce3f6 100644 --- a/topology/sof-cnl-rt274.m4 +++ b/topology/sof-cnl-rt274.m4 @@ -6,6 +6,7 @@ include(`utils.m4') include(`dai.m4') include(`pipeline.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -63,10 +64,10 @@ PCM_DUPLEX_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 0, 0, SSP0-Codec, - SSP_CONFIG(DSP_B, DAI_CLOCK(mclk, 24000000, codec_mclk_in), - DAI_CLOCK(bclk, 4800000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(4, 25, 3, 3), + SSP_CONFIG(DSP_B, SSP_CLOCK(mclk, 24000000, codec_mclk_in), + SSP_CLOCK(bclk, 4800000, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(4, 25, 3, 3), SSP_CONFIG_DATA(SSP, 0, 24))) VIRTUAL_DAPM_ROUTE_OUT(codec0_out, SSP, 0, OUT, 0) diff --git a/topology/sof-hsw-rt5640.m4 b/topology/sof-hsw-rt5640.m4 index 92722869a..9bf8976df 100644 --- a/topology/sof-hsw-rt5640.m4 +++ b/topology/sof-hsw-rt5640.m4 @@ -6,6 +6,7 @@ include(`utils.m4') include(`dai.m4') include(`pipeline.m4') +include(`ssp.m4') # Include TLV library include(`common/tlv.m4') @@ -91,8 +92,8 @@ PCM_DUPLEX_ADD(Low Latency, 6, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # BE configurations - overrides config in ACPI if present # DAI_CONFIG(SSP, 0, 0, Codec, - SSP_CONFIG(I2S, DAI_CLOCK(mclk, 24000000, codec_mclk_in), - DAI_CLOCK(bclk, 2400000, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, 25, 3, 3), + 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))) diff --git a/topology/test/test-all.m4 b/topology/test/test-all.m4 index 709e861bf..174f7d260 100644 --- a/topology/test/test-all.m4 +++ b/topology/test/test-all.m4 @@ -4,6 +4,7 @@ # Include topology builder include(`dai.m4') +include(`ssp.m4') include(`utils.m4') include(`pipeline.m4') @@ -86,9 +87,9 @@ PCM_DUPLEX_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_1, PIPELINE_PCM_2) # DAI_CONFIG(TEST_DAI_TYPE, TEST_DAI_PORT, 0, TEST_DAI_LINK_NAME, SSP_CONFIG(TEST_SSP_MODE, - DAI_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in), - DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, TEST_SSP_PHY_BITS, 3, 3), + SSP_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in), + SSP_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, TEST_SSP_PHY_BITS, 3, 3), SSP_CONFIG_DATA(TEST_DAI_TYPE, TEST_DAI_PORT, TEST_SSP_DATA_BITS))) diff --git a/topology/test/test-capture.m4 b/topology/test/test-capture.m4 index b9aa29bb3..128717b86 100644 --- a/topology/test/test-capture.m4 +++ b/topology/test/test-capture.m4 @@ -4,6 +4,7 @@ # Include topology builder include(`dai.m4') +include(`ssp.m4') include(`utils.m4') include(`pipeline.m4') @@ -70,10 +71,10 @@ PCM_CAPTURE_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_2) DAI_CONFIG(TEST_DAI_TYPE, TEST_DAI_PORT, 0, TEST_DAI_LINK_NAME, ifelse(TEST_DAI_TYPE, `SSP', SSP_CONFIG(TEST_SSP_MODE, - DAI_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in), - DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, TEST_SSP_PHY_BITS, 3, 3), + SSP_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in), + SSP_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, TEST_SSP_PHY_BITS, 3, 3), SSP_CONFIG_DATA(TEST_DAI_TYPE, TEST_DAI_PORT, TEST_SSP_DATA_BITS)), TEST_DAI_TYPE, `DMIC', diff --git a/topology/test/test-playback.m4 b/topology/test/test-playback.m4 index 10a9eb6d2..789c8bb6e 100644 --- a/topology/test/test-playback.m4 +++ b/topology/test/test-playback.m4 @@ -5,6 +5,7 @@ # Include topology builder include(`pipeline.m4') include(`dai.m4') +include(`ssp.m4') include(`utils.m4') # Include TLV library @@ -69,9 +70,9 @@ PCM_PLAYBACK_ADD(Passthrough, 3, 0, 0, PIPELINE_PCM_1) # DAI_CONFIG(TEST_DAI_TYPE, TEST_DAI_PORT, 0, TEST_DAI_LINK_NAME, SSP_CONFIG(TEST_SSP_MODE, - DAI_CLOCK(mclk, TEST_SSP_MCLK, codec_slave), - DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, TEST_SSP_PHY_BITS, 3, 3), + SSP_CLOCK(mclk, TEST_SSP_MCLK, codec_slave), + SSP_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, TEST_SSP_PHY_BITS, 3, 3), SSP_CONFIG_DATA(TEST_DAI_TYPE, TEST_DAI_PORT, TEST_SSP_DATA_BITS))) diff --git a/topology/test/test-tone-playback.m4 b/topology/test/test-tone-playback.m4 index e16a525cf..e74ae4ac5 100644 --- a/topology/test/test-tone-playback.m4 +++ b/topology/test/test-tone-playback.m4 @@ -5,6 +5,7 @@ # Include topology builder include(`pipeline.m4') include(`dai.m4') +include(`ssp.m4') include(`utils.m4') # Include TLV library @@ -58,9 +59,9 @@ DAI_ADD(sof/pipe-dai-playback.m4, # DAI_CONFIG(TEST_DAI_TYPE, TEST_DAI_PORT, 0, TEST_DAI_LINK_NAME, SSP_CONFIG(TEST_SSP_MODE, - DAI_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in), - DAI_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), - DAI_CLOCK(fsync, 48000, codec_slave), - DAI_TDM(2, TEST_SSP_PHY_BITS, 3, 3), + SSP_CLOCK(mclk, TEST_SSP_MCLK, codec_mclk_in), + SSP_CLOCK(bclk, TEST_SSP_BCLK, codec_slave), + SSP_CLOCK(fsync, 48000, codec_slave), + SSP_TDM(2, TEST_SSP_PHY_BITS, 3, 3), SSP_CONFIG_DATA(TEST_DAI_TYPE, TEST_DAI_PORT, TEST_SSP_DATA_BITS))) diff --git a/topology/test/tplg-build.sh b/topology/test/tplg-build.sh index 89cd51561..ec750934d 100755 --- a/topology/test/tplg-build.sh +++ b/topology/test/tplg-build.sh @@ -8,7 +8,7 @@ set -e # M4 preprocessor flags -export M4PATH="../:../m4:../common:../platform/intel" +export M4PATH="../:../m4:../common:../platform/intel:../platform/common" # Simple component test cases # can be used on components with 1 sink and 1 source. From f73aa7397896b58f1a17fcc16513f79625881d22 Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Mon, 25 Jun 2018 00:09:53 -0700 Subject: [PATCH 6/6] topology: move dmic related macros to dmic.m4 in platform/intel Signed-off-by: Ranjani Sridharan --- topology/m4/dai.m4 | 55 -------------------------- topology/platform/intel/Makefile.am | 3 +- topology/platform/intel/dmic.m4 | 60 +++++++++++++++++++++++++++++ topology/test/test-capture.m4 | 1 + 4 files changed, 63 insertions(+), 56 deletions(-) create mode 100644 topology/platform/intel/dmic.m4 diff --git a/topology/m4/dai.m4 b/topology/m4/dai.m4 index 5fc1dedde..b0802affd 100644 --- a/topology/m4/dai.m4 +++ b/topology/m4/dai.m4 @@ -121,61 +121,6 @@ define(`D_DAI', `SectionDAI."'N_DAI`" {' ` capture "'$3`"' `}') -dnl PDM_TUPLES(pdm ctrl id, mic_a_enable, mic_b_enable, polarity_a, polarity_b, -dnl clk_egde, skew) -define(`PDM_TUPLES', -` tuples."short.pdm$1" {' -` SOF_TKN_INTEL_DMIC_PDM_CTRL_ID' STR($1) -` SOF_TKN_INTEL_DMIC_PDM_MIC_A_Enable' STR($2) -` SOF_TKN_INTEL_DMIC_PDM_MIC_B_Enable' STR($3) -` SOF_TKN_INTEL_DMIC_PDM_POLARITY_A' STR($4) -` SOF_TKN_INTEL_DMIC_PDM_POLARITY_B' STR($5) -` SOF_TKN_INTEL_DMIC_PDM_CLK_EDGE' STR($6) -` SOF_TKN_INTEL_DMIC_PDM_SKEW' STR($7) -` }' -) - -dnl PDM_CONFIG(type, idx, pdm tuples list) -define(`PDM_CONFIG', -`SectionVendorTuples."'N_DAI_CONFIG($1$2)`_pdm_tuples" {' -` tokens "sof_dmic_pdm_tokens"' -$3 -`}' -) - -dnl DMIC currently only supports 16 bit or 32-bit word length -dnl DMIC_WORD_LENGTH(frame format) -define(`DMIC_WORD_LENGTH', -`ifelse($1, `s16le', 16, $1, `s32le', 32, `')') - -dnl DMIC_CONFIG(driver_version, clk_min, clk_mac, duty_min, duty_max, -dnl req pdm count, sample_rate, -dnl fifo word length, type, idx, pdm controller config) -define(`DMIC_CONFIG', -`SectionVendorTuples."'N_DAI_CONFIG($9$10)`_dmic_tuples" {' -` tokens "sof_dmic_tokens"' -` tuples."word" {' -` SOF_TKN_INTEL_DMIC_DRIVER_VERSION' STR($1) -` SOF_TKN_INTEL_DMIC_CLK_MIN' STR($2) -` SOF_TKN_INTEL_DMIC_CLK_MAX' STR($3) -` SOF_TKN_INTEL_DMIC_DUTY_MIN' STR($4) -` SOF_TKN_INTEL_DMIC_DUTY_MAX' STR($5) -` SOF_TKN_INTEL_DMIC_NUM_PDM_ACTIVE' STR($6) -` SOF_TKN_INTEL_DMIC_SAMPLE_RATE' STR($7) -` SOF_TKN_INTEL_DMIC_FIFO_WORD_LENGTH' STR($8) -` }' -`}' -dnl PDM config for the number of active PDM controllers -$11 -`SectionData."'N_DAI_CONFIG($9$10)`_pdm_data" {' -` tuples "'N_DAI_CONFIG($9$10)`_pdm_tuples"' -`}' -`SectionData."'N_DAI_CONFIG($9$10)`_data" {' -` tuples "'N_DAI_CONFIG($9$10)`_dmic_tuples"' - -`}' -) - dnl DAI Config) define(`N_DAI_CONFIG', `DAICONFIG.'$1) diff --git a/topology/platform/intel/Makefile.am b/topology/platform/intel/Makefile.am index d4c8dd6f2..bc5697198 100644 --- a/topology/platform/intel/Makefile.am +++ b/topology/platform/intel/Makefile.am @@ -4,5 +4,6 @@ EXTRA_DIST = \ byt.m4 \ cht.m4 \ hsw.m4 \ - cnl.m4 + cnl.m4 \ + dmic.m4 diff --git a/topology/platform/intel/dmic.m4 b/topology/platform/intel/dmic.m4 new file mode 100644 index 000000000..393c3a08b --- /dev/null +++ b/topology/platform/intel/dmic.m4 @@ -0,0 +1,60 @@ +divert(-1) + +dnl DMIC related macros + +dnl PDM_TUPLES(pdm ctrl id, mic_a_enable, mic_b_enable, polarity_a, polarity_b, +dnl clk_egde, skew) +define(`PDM_TUPLES', +` tuples."short.pdm$1" {' +` SOF_TKN_INTEL_DMIC_PDM_CTRL_ID' STR($1) +` SOF_TKN_INTEL_DMIC_PDM_MIC_A_Enable' STR($2) +` SOF_TKN_INTEL_DMIC_PDM_MIC_B_Enable' STR($3) +` SOF_TKN_INTEL_DMIC_PDM_POLARITY_A' STR($4) +` SOF_TKN_INTEL_DMIC_PDM_POLARITY_B' STR($5) +` SOF_TKN_INTEL_DMIC_PDM_CLK_EDGE' STR($6) +` SOF_TKN_INTEL_DMIC_PDM_SKEW' STR($7) +` }' +) + +dnl PDM_CONFIG(type, idx, pdm tuples list) +define(`PDM_CONFIG', +`SectionVendorTuples."'N_DAI_CONFIG($1$2)`_pdm_tuples" {' +` tokens "sof_dmic_pdm_tokens"' +$3 +`}' +) + +dnl DMIC currently only supports 16 bit or 32-bit word length +dnl DMIC_WORD_LENGTH(frame format) +define(`DMIC_WORD_LENGTH', +`ifelse($1, `s16le', 16, $1, `s32le', 32, `')') + +dnl DMIC_CONFIG(driver_version, clk_min, clk_mac, duty_min, duty_max, +dnl req pdm count, sample_rate, +dnl fifo word length, type, idx, pdm controller config) +define(`DMIC_CONFIG', +`SectionVendorTuples."'N_DAI_CONFIG($9$10)`_dmic_tuples" {' +` tokens "sof_dmic_tokens"' +` tuples."word" {' +` SOF_TKN_INTEL_DMIC_DRIVER_VERSION' STR($1) +` SOF_TKN_INTEL_DMIC_CLK_MIN' STR($2) +` SOF_TKN_INTEL_DMIC_CLK_MAX' STR($3) +` SOF_TKN_INTEL_DMIC_DUTY_MIN' STR($4) +` SOF_TKN_INTEL_DMIC_DUTY_MAX' STR($5) +` SOF_TKN_INTEL_DMIC_NUM_PDM_ACTIVE' STR($6) +` SOF_TKN_INTEL_DMIC_SAMPLE_RATE' STR($7) +` SOF_TKN_INTEL_DMIC_FIFO_WORD_LENGTH' STR($8) +` }' +`}' +dnl PDM config for the number of active PDM controllers +$11 +`SectionData."'N_DAI_CONFIG($9$10)`_pdm_data" {' +` tuples "'N_DAI_CONFIG($9$10)`_pdm_tuples"' +`}' +`SectionData."'N_DAI_CONFIG($9$10)`_data" {' +` tuples "'N_DAI_CONFIG($9$10)`_dmic_tuples"' + +`}' +) + +divert(0)dnl diff --git a/topology/test/test-capture.m4 b/topology/test/test-capture.m4 index 128717b86..dd75bf5d9 100644 --- a/topology/test/test-capture.m4 +++ b/topology/test/test-capture.m4 @@ -5,6 +5,7 @@ # Include topology builder include(`dai.m4') include(`ssp.m4') +include(`dmic.m4') include(`utils.m4') include(`pipeline.m4')