topology: enable LBM for nocodec topology

Add quirks parameter in SSP_CONFIG_DATA(). Enable LBM in dupulex pipelines
by setting quirks as SOF_DAI_INTEL_SSP_QUIRK_LBM 64(1<<6). SSPx.IN port get
PCM data from SSPx.OUT. Note both mclk and quirks are optional parameter.
When quirks set, mclk should have value or initialize to default value
which is 0.

Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
This commit is contained in:
Fred Oh 2019-03-20 09:42:57 -07:00 committed by Liam Girdwood
parent 5194eabf4f
commit 498a5f571d
4 changed files with 13 additions and 13 deletions

View File

@ -237,43 +237,43 @@ DAI_CONFIG(SSP, 0, 0, NoCodec-0,
SSP_CLOCK(bclk, 1536000, codec_slave), SSP_CLOCK(bclk, 1536000, codec_slave),
SSP_CLOCK(fsync, 48000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave),
SSP_TDM(2, 16, 3, 3), SSP_TDM(2, 16, 3, 3),
dnl SSP_CONFIG_DATA(type, dai_index, valid bits, mclk_id) dnl SSP_CONFIG_DATA(type, dai_index, valid bits, mclk_id, quirks)
SSP_CONFIG_DATA(SSP, 0, 16))) SSP_CONFIG_DATA(SSP, 0, 16, 0, SSP_QUIRK_LBM)))
DAI_CONFIG(SSP, 1, 1, NoCodec-1, DAI_CONFIG(SSP, 1, 1, NoCodec-1,
SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in),
SSP_CLOCK(bclk, 1536000, codec_slave), SSP_CLOCK(bclk, 1536000, codec_slave),
SSP_CLOCK(fsync, 48000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave),
SSP_TDM(2, 16, 3, 3), SSP_TDM(2, 16, 3, 3),
SSP_CONFIG_DATA(SSP, 1, 16))) SSP_CONFIG_DATA(SSP, 1, 16, 0, SSP_QUIRK_LBM)))
#DAI_CONFIG(SSP, 2, 2, NoCodec-2, #DAI_CONFIG(SSP, 2, 2, NoCodec-2,
# SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), # SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in),
# SSP_CLOCK(bclk, 1536000, codec_slave), # SSP_CLOCK(bclk, 1536000, codec_slave),
# SSP_CLOCK(fsync, 48000, codec_slave), # SSP_CLOCK(fsync, 48000, codec_slave),
# SSP_TDM(2, 16, 3, 3), # SSP_TDM(2, 16, 3, 3),
# SSP_CONFIG_DATA(SSP, 2, 16))) # SSP_CONFIG_DATA(SSP, 2, 16, 0, SSP_QUIRK_LBM)))
DAI_CONFIG(SSP, 3, 3, NoCodec-3, DAI_CONFIG(SSP, 3, 3, NoCodec-3,
SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in),
SSP_CLOCK(bclk, 1536000, codec_slave), SSP_CLOCK(bclk, 1536000, codec_slave),
SSP_CLOCK(fsync, 48000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave),
SSP_TDM(2, 16, 3, 3), SSP_TDM(2, 16, 3, 3),
SSP_CONFIG_DATA(SSP, 3, 16))) SSP_CONFIG_DATA(SSP, 3, 16, 0, SSP_QUIRK_LBM)))
#DAI_CONFIG(SSP, 4, 4, NoCodec-4, #DAI_CONFIG(SSP, 4, 4, NoCodec-4,
# SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), # SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in),
# SSP_CLOCK(bclk, 1536000, codec_slave), # SSP_CLOCK(bclk, 1536000, codec_slave),
# SSP_CLOCK(fsync, 48000, codec_slave), # SSP_CLOCK(fsync, 48000, codec_slave),
# SSP_TDM(2, 16, 3, 3), # SSP_TDM(2, 16, 3, 3),
# SSP_CONFIG_DATA(SSP, 4, 16))) # SSP_CONFIG_DATA(SSP, 4, 16, 0, SSP_QUIRK_LBM)))
DAI_CONFIG(SSP, 5, 5, NoCodec-5, DAI_CONFIG(SSP, 5, 5, NoCodec-5,
SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in), SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24576000, codec_mclk_in),
SSP_CLOCK(bclk, 1536000, codec_slave), SSP_CLOCK(bclk, 1536000, codec_slave),
SSP_CLOCK(fsync, 48000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave),
SSP_TDM(2, 16, 3, 3), SSP_TDM(2, 16, 3, 3),
SSP_CONFIG_DATA(SSP, 5, 16))) SSP_CONFIG_DATA(SSP, 5, 16, 0, SSP_QUIRK_LBM)))
DAI_CONFIG(DMIC, 0, 6, NoCodec-6, DAI_CONFIG(DMIC, 0, 6, NoCodec-6,
dnl DMIC_CONFIG(driver_version, clk_min, clk_mac, duty_min, duty_max, dnl DMIC_CONFIG(driver_version, clk_min, clk_mac, duty_min, duty_max,

View File

@ -90,4 +90,4 @@ DAI_CONFIG(SSP, 2, 2, NoCodec-2,
SSP_CLOCK(bclk, 2400000, codec_slave), SSP_CLOCK(bclk, 2400000, codec_slave),
SSP_CLOCK(fsync, 48000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave),
SSP_TDM(2, 25, 3, 3), SSP_TDM(2, 25, 3, 3),
SSP_CONFIG_DATA(SSP, 2, 24))) SSP_CONFIG_DATA(SSP, 2, 24, 0, SSP_QUIRK_LBM)))

View File

@ -149,22 +149,22 @@ DAI_CONFIG(SSP, 0, 0, NoCodec-0,
SSP_CLOCK(bclk, 4800000, codec_slave), SSP_CLOCK(bclk, 4800000, codec_slave),
SSP_CLOCK(fsync, 48000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave),
SSP_TDM(2, 25, 3, 3), SSP_TDM(2, 25, 3, 3),
dnl SSP_CONFIG_DATA(type, dai_index, valid bits, mclk_id) dnl SSP_CONFIG_DATA(type, dai_index, valid bits, mclk_id, quirks)
SSP_CONFIG_DATA(SSP, 0, 24))) SSP_CONFIG_DATA(SSP, 0, 24, 0, SSP_QUIRK_LBM)))
DAI_CONFIG(SSP, 1, 1, NoCodec-1, DAI_CONFIG(SSP, 1, 1, NoCodec-1,
SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24000000, codec_mclk_in), SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24000000, codec_mclk_in),
SSP_CLOCK(bclk, 4800000, codec_slave), SSP_CLOCK(bclk, 4800000, codec_slave),
SSP_CLOCK(fsync, 48000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave),
SSP_TDM(2, 25, 3, 3), SSP_TDM(2, 25, 3, 3),
SSP_CONFIG_DATA(SSP, 1, 24))) SSP_CONFIG_DATA(SSP, 1, 24, 0, SSP_QUIRK_LBM)))
DAI_CONFIG(SSP, 2, 2, NoCodec-2, DAI_CONFIG(SSP, 2, 2, NoCodec-2,
SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24000000, codec_mclk_in), SSP_CONFIG(I2S, SSP_CLOCK(mclk, 24000000, codec_mclk_in),
SSP_CLOCK(bclk, 4800000, codec_slave), SSP_CLOCK(bclk, 4800000, codec_slave),
SSP_CLOCK(fsync, 48000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave),
SSP_TDM(2, 25, 3, 3), SSP_TDM(2, 25, 3, 3),
SSP_CONFIG_DATA(SSP, 2, 24))) SSP_CONFIG_DATA(SSP, 2, 24, 0, SSP_QUIRK_LBM)))
DAI_CONFIG(DMIC, 0, 3, NoCodec-3, DAI_CONFIG(DMIC, 0, 3, NoCodec-3,
DMIC_CONFIG(1, 500000, 4800000, 40, 60, 48000, DMIC_CONFIG(1, 500000, 4800000, 40, 60, 48000,

View File

@ -66,4 +66,4 @@ DAI_CONFIG(SSP, 0, 0, NoCodec-0,
SSP_CLOCK(bclk, 2400000, codec_slave), SSP_CLOCK(bclk, 2400000, codec_slave),
SSP_CLOCK(fsync, 48000, codec_slave), SSP_CLOCK(fsync, 48000, codec_slave),
SSP_TDM(2, 25, 3, 3), SSP_TDM(2, 25, 3, 3),
SSP_CONFIG_DATA(SSP, 0, 24))) SSP_CONFIG_DATA(SSP, 0, 24, 0, SSP_QUIRK_LBM)))