Commit Graph

348 Commits

Author SHA1 Message Date
SaiSurya Ch 6a448db42e topology: Update topology name of platform ACP_6_3
update topology file name of platform ACP_6_3

Signed-off-by: SaiSurya Ch <saisurya.chakkaveeravenkatanaga@amd.com>
2024-08-08 14:40:40 +03:00
Iuliana Prodan 00664d091a topology: imx: Add a variable for schedule domain
Add DMA_DOMAIN variable and based on this we set
SCHEDULE_DOMAIN to SCHEDULE_TIME_DOMAIN_DMA, otherwise
is SCHEDULE_TIME_DOMAIN_TIMER.

Now, only i.MX8MP is using SCHEDULE_TIME_DOMAIN_DMA.
Therefore the DMA_DOMAIN is added only for 8MP topologies.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2024-05-23 19:17:56 +03:00
Seppo Ingalsuo b6f1bba44f Tools: Topology1: Change name of default DRC test blob
The tplg1 blobs are still used with IPC3 testbench test pipelines.

The updated script example_drc.m exports the blob used for DRC
test with name "speaker_default" so, the blob file name to include
to test pipeline is changed. The blob content is same as before.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2024-05-22 16:20:03 +01:00
Laurentiu Mihalcea 65b8a32f27 nxp: imx8ulp: switch to native Zephyr drivers and timer domain
Switch to Zephyr native drivers and timer domain. This
includes:
	1) Switching all imx8ulp topologies to timer domain.
	2) Disabling Zephyr DMA domain
	3) Various interrupt-related fixes via Kconfig-related
	ifdef logic.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-25 14:12:41 +03:00
Laurentiu Mihalcea 9737e124bc nxp: imx8/imx8x: switch to native Zephyr drivers and timer domain
This commit includes all necessary changes for switching
to timer domain and Zephyr native drivers on imx8 and imx8x.
This consists of:
	1) Switching all imx8 topologies to timer domain.
	2) Disabling Zephyr DMA domain
	3) Various interrupt-related fixes via Kconfig-related
	ifdef logic.

This commit includes all necessary changes for switching
to native Zephyr drivers on imx8/imx8x.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-23 12:20:31 +01:00
Laurentiu Mihalcea aaf2f11eb9 nxp: imx93: Switch to native Zephyr drivers and timer domain
Starting with this commit, i.MX93 now uses the timer domain
in conjunction with the Zephyr native drivers.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-25 15:12:00 +02:00
Laurentiu Mihalcea 2711784ed5 tools: topology1: imx8ulp: change protocol and BCLK polarity
The BT codec used by the IW416 chip expects FSYNC to be
asserted for only one BCLK. Also, FSYNC should be active HIGH.
As such, change from I2S protocol to DSP_A protocol since the
configurations made for this protocol inside the SAI driver
are more suited.

Also, by default, the BT codec drives data on BCLK rising
edge and samples it on falling edge. With the DSP_A protocol,
the SAI driver also has the same configuration, which is wrong
since we can't drive and sample on the same edge and cycle. As such,
invert BCLK polarity such that the SAI will drive on rising edge
and sample on falling edge.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-25 12:31:02 +02:00
Laurentiu Mihalcea bbd20a9766 tools: topology1: imx8ulp: correct BCLK frequency
8ULP has two supported BT HFP scenarios: NBS and WBS. For
NBS the frequency of FSYNC is 8k, while for WBS the frequency
of FSYNC is 16k. Since the BCLK is computed as:
	Freq(BCLK) = TDM_SLOTS * TDM_SLOT_WIDTH * Freq(FSYNC)
then that means we're going to end up with two different BCLK
frequencies (one for each supported scenario).

Currently, what we do is pass the frequency of FSYNC
as a build argument, while keeping the frequency of BCLK
constant (set to 256000, which would be the same value as the
one used in WBS). This causes the following issues:

	1) The Zephyr native SAI driver returns an error
	when trying to commit the configuration because the
	frequency of BCLK doesn't abide by the aforementioned
	formula.

	2) We end up consuming twice as many samples in a given
	unit of time.

To fix these issues, use the aforementioned formula to compute
the frequency of BCLK.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-25 12:31:02 +02:00
Laurentiu Mihalcea 03dd62abbd tools: topology1: imx8ulp: rename `RATE` to `FSYNC_RATE`
Rename the `RATE` parameter to `FSYNC_RATE` in order to
remove ambiguity regarding what the parameter is.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-25 12:31:02 +02:00
Andy Ross ba9f8fc8ab topology1/mt8195: Add Graphviz output markers
Add the .dot file header/footer macros.  These are benign if unused,
and it seems like most other devices have them defined.

Signed-off-by: Andy Ross <andyross@google.com>
2024-03-11 11:43:08 +02:00
Iuliana Prodan a6700afea1 topology1: imx8ulp: overwrite CHANNELS_MIN
On 8ULP SAI is connected to BT which supports
only 1 channel for both playback and record.

Fixes: aaff352314 ('topology1: pipe-volume-capture.m4: Set minimum number of channels to 2')

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-02-12 20:07:47 +02:00
Seppo Ingalsuo 6eed29c74f Tools: Topology1: Add speaker DRC blob for testbench run
This blob exercises fully the features of DRC and is
therefore good for testbench runs to evaluate performance
in all operation regions.

The pipeline pipe-drc-playback.m4 is used only with testbench
so it is safe to change to use this blob.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-12-19 17:18:44 +00:00
Laurentiu Mihalcea aaff352314 topology1: pipe-volume-capture.m4: Set minimum number of channels to 2
Currently, the minimum number of channels for the capture PCM
is set to the same value as the maximum number. This restricts
the number of channels supported by the PCM to the maximum number.
This is wrong if we want to allow arecord to work with multiple channel
values. As such, follow the example of "pipe-volume-playback.m4" and
introduce a new macro: LOCAL_CHANNELS_MIN. This will be set to
"CHANNELS_MIN" if said macro is defined, otherwise it will be set to
2.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2023-12-13 15:26:16 +02:00
Curtis Malainey 285c090a10 topology: Add support for buffer flags
Flags have been a part of IPC3 for ages, add support for them in the topology.

Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
2023-11-30 10:16:59 +02:00
barry.jan 5cf1c9c0d6 topology: Add Waves codec to MT8188 topology
Modify sof-mt8188-mt6359 topology so Waves codec can be added
to playback in case 'WAVES' is defined.

Signed-off-by: barry.jan <barry.jan@waves.com>
2023-11-29 16:33:19 +00:00
maruthi machani 8862f8863a topology1: amd: topology support for soundwire
topology support for soundwire

Signed-off-by: maruthi machani <maruthi.machani@amd.corp-partner.google.com>
2023-11-15 14:30:31 +02:00
Marc Herbert 884dad565b tools/topology1: mass replace codec_master -> codec_provider
This removes a lot of warning noise and may help spot other warnings
like `ALSA lib ops.c:48:(lookup_ops) wrong kcontrol ops value string ''`
and others.

Now that commit 1b1ec6c492 ("topology/cmake: skip all topologies when
alsatplg < 1.2.5") enforces alsatplg version >= 1.2.5, it is finally safe
to do this!

I compared the generated .tplg files before/after this commit and
they're bit for bit identical. Tested with both alsatplg v2.6.1 from
Ubuntu 22 and version 1.2.9 from the SOF docker container.

Note this is a much smaller commit than the reverted
commit f50b6fe0ad ("topologies: switch all .m4 files to codec_provider
and codec_consumer") because most topologies v1 have been removed from
the main branch. Most topologies v1 are now only in stable-v2.2 where
the warning spam is still a problem :-(

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-11-09 11:20:09 +02:00
Iuliana Prodan b9bd2303bd topology: imx: fix tdm slot width value
Set correct TDM slot width to 32 bits.

The error has been discovered after commit
0ba64e98ec ("SAI: use topology params").
We start using the tdm_slot_width from topology,
rather than hardcoded in code.


Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2023-11-08 15:02:19 +01:00
Seppo Ingalsuo a6d65ee6dc Tools: Topology1: Change ASRC mode to synchronous in pipeline macro
This pipeline PCM -> ASRC -> DAI is used only in testbench test
topologies usage. None of the normal topologies build in SOF
use it. Since testbench can't support without failure the DAI
timestamps, the asynchronous mode is disabled. This allows
to test ASRC objective audio quality similarly as normal SRC.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-11-03 16:59:59 +00:00
Kai Vehmanen c6ba44228a topology1: remove Intel GLK/TGL/ADL/RPL topology definitions
These topologies are no longer supported by mainline firmware code for
these platforms. The stable-v2.2 branch continues to support these
targets with topology1. Also SOF main branch provides topology2 targets
for a subset of these configurations.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-10-27 12:31:35 +03:00
SaiSurya Ch 559f3ffdb9 tools: topology: add ACP_6_3 topology support
Add ACP_6_3 platform topology.

Signed-off-by: SaiSurya Ch <saisurya.chakkaveeravenkatanaga@amd.com>
2023-10-19 20:47:38 +03:00
Daniel Baluta 15507ec9ef topology: Add MICFIL topology for imx8mp
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2023-10-16 12:47:50 +02:00
Kai Vehmanen 1479462824 topology1: remove Intel CML and EHL topologies
These topologies are no longer supported by mainline firmware
code for these platforms. The stable-v2.2 branch continues to
support these targets.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-09-20 15:41:51 +01:00
Vamshi Krishna Gopal 6f2475b086 topology1: Use DYNAMIC for ADL and RPL topologies
use dynamic for all the adl and rpl topologies except 3p(waves,DTS),
excluded Dell sdw topologies which are not tested.

Signed-off-by: Vamshi Krishna Gopal <vamshi.krishna.gopal@intel.com>
2023-09-18 19:09:57 +03:00
Bard Liao 3eada7c188 topology1: add sof-rpl-rt711-l0-rt1316-l12.tplg support
Adding sof-rpl-rt711-l0-rt1316-l12.tplg. The topology is the same
as sof-rpl-rt711-l0-rt1316-l12-rt714-l3, but without local mic (rt714).

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
2023-09-14 16:48:15 +01:00
Ranjani Sridharan 9ccfbc4e39 sof-glk-nocodec: disable pipelines when disabling SSPs
When we added the flags to disable SSP0 and SSP1 on the UP2, we took the
shortcut of just removing the PCMs in topology but left the pipelines
and widgets in the topology in. While this works in practice to prevent
us from testing those SSPs, the right way is to also remove those
pipelines also when the SSPs are disabled.

This stops tplgtool2.py from complaining constantly about this
inconsistency since https://github.com/thesofproject/sof-test/pull/1079
which made the sof-test verify-tplg-binary.sh fail every time:

```
tplgtool2.py sof-glk-nocodec.tplg

ERROR: No pcm id=0 for widget=PCM0C
ERROR: No pcm id=1 for widget=PCM1C
ERROR: No pcm id=0 for widget=PCM0P
ERROR: No pcm id=1 for widget=PCM1P
ERROR: tplgtool2.py returned 4
```

This change affects only sof-apl-nocodec and sof-glk-nocodec.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
2023-09-11 10:17:07 +03:00
Brent Lu bd6933b5ab 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>
2023-09-08 14:38:57 +01:00
Brent Lu dca9085047 topology1: adl-max98360a-da7219: support DA7219 headphone codec
Add an new topology adl-max98360a-da7219.tplg for DA7219 headphone
codec with MAX98360A speaker amplifier on ADL boards. The MCLK
frequency is set to 24.576MHz to use PLL bypass mode and avoid the
WCLK locking problem on earlier platforms.

Signed-off-by: Brent Lu <brent.lu@intel.com>
2023-08-30 14:10:23 +01:00
Seppo Ingalsuo 77a41bebeb Tools: Topology1: Multiband-DRC: Update setup blobs
The multiband_drc_coef_default.m4 is updated to what the current
setup tool example_multiband_drc() exports.

Another blob for pass-through is added with emphasis and all bands
processing disabled. Such blob is useful when headphone and
speaker paths are shared. Headphone mode should use pass-through.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-08-29 18:51:00 +03:00
Seppo Ingalsuo 6cebb327a2 Tools: Topology1: Add IIR and IIR+FIR HDA generic playback topologies
This patch removes non-practical sof-hda-generic-loud topologies and
generates instead IIR and IIR+FIR topologies for headphone/speaker
path for no-DMIC/2ch-DMIC/4ch-DMIC platforms. The IIR and FIR are
by default programmed for pass-through without any processing.

sof-hda-generic-iir.tplg
sof-hda-generic-iir-2ch.tplg
sof-hda-generic-iir-4ch.tplg
sof-hda-generic-iir-fir.tplg
sof-hda-generic-iir-fir-2ch.tplg
sof-hda-generic-iir-fir-4ch.tplg

The custom topologies can be used e.g. copying them to
/lib/firmware/intel/sof-tplg-custom/ and by adding
to /etc/modprobe.d/sof.conf the following lines with desired
configuration un-commmented.

#options snd_sof_pci tplg_filename="sof-hda-generic-iir.tplg" tplg_path="intel/sof-tplg-custom"
#options snd_sof_pci tplg_filename="sof-hda-generic-iir-fir.tplg" tplg_path="intel/sof-tplg-custom"
#options snd_sof_pci tplg_filename="sof-hda-generic-iir-2ch.tplg" tplg_path="intel/sof-tplg-custom"
#options snd_sof_pci tplg_filename="sof-hda-generic-iir-fir-2ch.tplg" tplg_path="intel/sof-tplg-custom"
#options snd_sof_pci tplg_filename="sof-hda-generic-iir-4ch.tplg" tplg_path="intel/sof-tplg-custom"
#options snd_sof_pci tplg_filename="sof-hda-generic-iir-fir-4ch.tplg" tplg_path="intel/sof-tplg-custom"

The patch contains a fix for pipeline with FIR to undefine the
related macros to avoid them to possibly impact another FIR instance.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-08-25 09:15:18 +03:00
Iuliana Prodan afe5bb76f7 topology: imx: Add compress and PCM mixer topology file for boards with wm8962 codec
Generate compress and PCM mixer topology file for i.MX8 and i.MX8MP
with wm8962 codec based on sof-imx8-compr-wm8960-mixer.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2023-08-21 13:18:58 +01:00
Iuliana Prodan b16d5bf662 topology: imx: Combine mixer of compress and PCM topology files for i.MX8MP and i.MX8
Combine topology files for i.MX8MP and i.MX8 using different
variables like SAI_INDEX and CODEC.

Based on CODEC use the proper STREAM_NAME.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2023-08-21 13:18:58 +01:00
Pin-chih Lin b793d1ce2b topology1: waves: add definition WAVES_SPK_ONLY
Introduced var WAVES_SPK_ONLY (depend on WAVES) for specifying the
topology requested to apply Waves module on Speaker pipeline only
(not on Heaadphones).

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2023-08-17 17:06:06 +01:00
Pin-chih Lin ad2f035c06 smart amp : Do not use DYNAMIC topology with DTS
Follows after:
    214f98378 ("smart amp : Do not use DYNAMIC topology")

which makes DYNAMIC undefined during smart amp tplg pipeline pcm/dai config due
to the use of volatile Kcontrols.

This commit applies the same on sof-eq-iir-dts-codec-smart-amplifier.m4 which
is used for (DTS + smart amp) projects.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
2023-08-16 14:00:31 +01:00
Seppo Ingalsuo fb6c3b7e9d Tools: Topology: Add test topologies for crossover component
This patch adds build of tplg1 development topologies
sof-tgl-nocodec-crossover-2way.tplg
sof-tgl-nocodec-crossover-4way.tplg

The tplg2 development topology version is
sof-tgl-nocodec-crossover-2way.tplg

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
2023-08-10 12:16:53 +01:00
Alexander Boehm edda342d6a topology1: fix sai.m4 clock inversion
A misplaced ) prevented the optional 'inverted'
flag from working as intended.

Signed-off-by: Alexander Boehm <aboehm@eurofunk.com>
2023-08-04 12:10:42 +01:00
Alexander Boehm d176d09529 topology1: add imx8mp dual SAI topology, 8ch each
Use btsco driver to output and capture 8ch on SAI2 and 8ch on SAI3

Signed-off-by: Alexander Boehm <aboehm@eurofunk.com>
2023-08-04 12:10:42 +01:00
SaiSurya Ch ea233be4a7 tools: topology: add vangogh topology support
Add vangogh platform topology for nau8821,max988388.

Signed-off-by: SaiSurya Ch <saisurya.chakkaveeravenkatanaga@amd.com>
2023-07-25 15:00:03 +01:00
Sathya Prakash M R 214f98378f smart amp : Do not use DYNAMIC topology
DYNAMIC topology should not be used for pipeline with volatile
Kcontrols.
Hence ensuring the flag is un defined before processing
smart amp related PCM and DAI configs

Suggested-by: Sridharan, Ranjani <ranjani.sridharan@linux.intel.com>
Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
2023-07-20 22:10:43 +03:00
Jaska Uimonen 8380946137 topology1: test topology for tgl nocodec mux
Add test topology for muxing 2 pipelines into 1 with SSP dai and
capturing the result from loopback.

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
2023-07-04 15:37:21 +01:00
MARUTHI MACHANI 388075ec82 topology1:amd: comments update
topology comments update

Signed-off-by: MARUTHI MACHANI <maruthi.machani@amd.com>
2023-07-04 15:18:52 +01:00
MARUTHI MACHANI 3fa5085a4e topology1:amd: topology changes to support virtual playback passthrough for mux
Topology changes to support virtual playback passthrough for mux

Signed-off-by: MARUTHI MACHANI <maruthi.machani@amd.com>
2023-07-04 15:18:52 +01:00
Balamurugan C 81f582279c topology1: adl: add support for Nocodec amp and HDMI-in capture.
Adding support for the alderlake products which doesn't have no ssp
amplifier but need to support HDMI audio playback and HDMI-in capture
via I2S

Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
2023-06-21 12:14:03 +03:00
Balamurugan C 310b10c055 topology1: tgl: add support for Nocodec amp and HDMI-in capture.
Adding support for the product which doesn't have no ssp amplifier
but need to support HDMI audio playback and HDMI-in capture via I2S.

Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
2023-06-21 12:14:03 +03:00
Balamurugan C d0dbfd62ca topology1: add support for rt1308 ssp amp + HDMI-in capture.
Adding support for rt1308 ssp amplifier and HDMI-in capture via I2S.

Signed-off-by: Balamurugan C <balamurugan.c@intel.com>
2023-06-21 12:14:03 +03:00
Pierre-Louis Bossart 058e6571a5 topology1: add support for Dell SKU 0934
Yet another permutation. This needs to be back-ported to 2.2 releases

Closes: https://github.com/thesofproject/linux/issues/4399
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2023-06-02 13:12:06 +03:00
Pierre-Louis Bossart 3d54d14f3f topology1: add Dell SKU 0BDA support
Yet another missing topology

This needs to be back-ported to the 2.2 stable branch for releases

Closes: https://github.com/thesofproject/linux/issues/4380
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
2023-05-26 10:49:33 +03:00
apoorv 5fa9cb6be4 topology1: CMakeLists: add RPLP CRB support for SoundWire
Added RPLP CRB support for SoundWire0 and SoundWire2

Signed-off-by: apoorv <apoorv@intel.com>
2023-05-19 10:07:45 +03:00
Iuliana Prodan 6580e68302 topology: imx: Add mixer topology file for i.MX8 and i.MX8MP with wm8962 codec
Generate MIXER topology file for i.MX8 and i.MX8MP with wm8962 codec
based on sof-imx8-wm8960-mixer.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2023-05-04 16:43:50 +03:00
Iuliana Prodan 5846763006 topology: imx: Combine mixer topology files for i.MX8MP and i.MX8
Combine mixer topology files for i.MX8MP and i.MX8 using different
variables like RATE, SAI_INDEX, CODEC.

Based on CODEC and SAI_INDEX use the proper DAI_CONFIG or STREAM_NAME.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2023-05-04 16:43:50 +03:00