sof/tools/topology/topology2/development/cavs-nocodec-crossover.conf

383 lines
10 KiB
Plaintext

<searchdir:include>
<searchdir:include/common>
<searchdir:include/components>
<searchdir:include/dais>
<searchdir:include/pipelines/cavs>
<searchdir:platform>
<searchdir:platform/intel>
<vendor-token.conf>
<manifest.conf>
<tokens.conf>
<virtual.conf>
<host-gateway-capture.conf>
<host-gateway-playback.conf>
<io-gateway-capture.conf>
<io-gateway.conf>
<data.conf>
<pcm.conf>
<pcm_caps.conf>
<fe_dai.conf>
<ssp.conf>
<intel/hw_config_cardinal_clk.conf>
<manifest.conf>
<route.conf>
<common_definitions.conf>
<dai-copier.conf>
<module-copier.conf>
<pipeline.conf>
<dai.conf>
<host.conf>
<kpb.conf>
<input_pin_binding.conf>
<output_pin_binding.conf>
<input_audio_format.conf>
<output_audio_format.conf>
<controls/bytes.conf>
<platform/intel/efx-default.conf>
<crossover.conf>
Define {
MCLK 24576000
PLATFORM "none"
SSP0_PCM_ID 0
SSP0_PCM_NAME "Port0"
SSP1_PCM_NAME "Port1"
SSP2_PCM_NAME "Port2"
}
# override defaults with platform-specific config
IncludeByKey.PLATFORM {
"tgl" "platform/intel/tgl.conf"
"adl" "platform/intel/tgl.conf"
"mtl" "platform/intel/mtl.conf"
"lnl" "platform/intel/mtl.conf"
}
#
# List of all DAIs
#
Object.Dai.SSP [
{
id 0
dai_index 0
direction "duplex"
name NoCodec-0
default_hw_conf_id 0
sample_bits 32
quirks "lbm_mode"
io_clk $MCLK
Object.Base.hw_config.1 {
name "SSP0"
id 0
bclk_freq 3072000
tdm_slot_width 32
# TODO: remove this. Needs alsaptlg change.
Object.Base.link_config.1 {
clock_source 1
}
}
}
{
id 2
dai_index 2
direction "duplex"
name NoCodec-2
default_hw_conf_id 0
sample_bits 32
quirks "lbm_mode"
io_clk $MCLK
Object.Base.hw_config.1 {
name "SSP2"
id 0
bclk_freq 3072000
tdm_slot_width 32
# TODO: remove this. Needs alsaptlg change.
Object.Base.link_config.1 {
clock_source 1
}
}
}
]
#
# Pipeline definitions
#
# PCM0 ---> Crossover ---> SSP0
# |
# +--------> SSP2
#
# SSP0 ---> PCM0
# SSP2 ---> PCM2
Object.Pipeline.io-gateway [
{
index 101
direction playback
Object.Widget.dai-copier.1 {
dai_index 0
dai_type "SSP"
copier_type "SSP"
stream_name "NoCodec-0"
node_type $I2S_LINK_OUTPUT_CLASS
num_input_pins 1
num_input_audio_formats 1
Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
num_output_audio_formats 1
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]
}
}
{
index 102
direction playback
Object.Widget.dai-copier.1 {
dai_index 2
dai_type "SSP"
copier_type "SSP"
stream_name "NoCodec-2"
node_type $I2S_LINK_OUTPUT_CLASS
num_input_pins 1
num_input_audio_formats 1
Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
num_output_audio_formats 1
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]
}
}
]
Object.Pipeline.host-gateway-playback [
{
index 1
Object.Widget.host-copier.1 {
stream_name 'SSP0 Playback'
pcm_id 0
num_input_audio_formats 3
Object.Base.input_audio_format [
{
in_bit_depth 16
in_valid_bit_depth 16
}
{
in_bit_depth 32
in_valid_bit_depth 24
}
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
num_output_audio_formats 1
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]
}
}
]
Object.Widget.crossover [
{
index 1
name "crossover.1.1"
num_input_audio_formats 1
Object.Base.input_audio_format.1 {
input_pin_index 0
in_bit_depth 32
in_valid_bit_depth 32
}
num_output_pins 2
num_output_audio_formats 2
Object.Base.output_audio_format {
1 {
output_pin_index 0
out_bit_depth 32
out_valid_bit_depth 32
}
2 {
output_pin_index 1
out_bit_depth 32
out_valid_bit_depth 32
}
}
Object.Base.output_pin_binding.1 {
output_pin_binding_name "dai-copier.SSP.NoCodec-0.playback"
}
Object.Base.output_pin_binding.2 {
output_pin_binding_name "dai-copier.SSP.NoCodec-2.playback"
}
Object.Control.bytes."1" {
name "crossover.1.1_bytes_control"
IncludeByKey.EFX_CROSSOVER_PARAMS {
"2way" "include/components/crossover/coef_2way_48000_200_0_1.conf"
"3way" "include/components/crossover/coef_3way_48000_200_1000_0_1_2.conf"
"4way" "include/components/crossover/coef_4way_48000_200_1000_3000_0_1_2_3.conf"
}
}
}
]
Object.Pipeline.host-gateway-capture [
{
index 7
Object.Widget.host-copier.1 {
stream_name 'SSP0 Capture'
pcm_id 0
}
}
]
Object.Pipeline.io-gateway-capture [
{
index 8
direction capture
Object.Widget.dai-copier."1" {
dai_index 0
dai_type "SSP"
type dai_out
copier_type "SSP"
stream_name "NoCodec-0"
node_type $I2S_LINK_INPUT_CLASS
num_output_pins 2
num_input_audio_formats 1
Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
num_output_audio_formats 1
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]
}
}
]
Object.Pipeline.host-gateway-capture [
{
index 11
Object.Widget.host-copier.1 {
stream_name 'SSP2 Capture'
pcm_id 2
}
}
]
Object.Pipeline.io-gateway-capture [
{
index 12
direction capture
Object.Widget.dai-copier."1" {
dai_index 2
dai_type "SSP"
type dai_out
copier_type "SSP"
stream_name "NoCodec-2"
node_type $I2S_LINK_INPUT_CLASS
}
}
]
Object.PCM.pcm [
{
name "$SSP0_PCM_NAME"
id $SSP0_PCM_ID
direction "duplex"
Object.Base.fe_dai.1 {
name "$SSP0_PCM_NAME"
}
Object.PCM.pcm_caps.1 {
direction "playback"
name "SSP0 Playback"
formats 'S16_LE,S24_LE,S32_LE'
}
Object.PCM.pcm_caps.2 {
direction "capture"
name "SSP0 Capture"
formats 'S32_LE'
}
}
{
name "$SSP2_PCM_NAME"
id 2
direction "capture"
Object.Base.fe_dai.1 {
name "$SSP2_PCM_NAME"
}
Object.PCM.pcm_caps.2 {
direction "capture"
name "SSP2 Capture"
formats 'S32_LE'
}
}
]
Object.Base.route [
{
source "dai-copier.SSP.NoCodec-0.capture"
sink "host-copier.0.capture"
}
{
source "host-copier.0.playback"
sink "crossover.1.1"
}
{
source "crossover.1.1"
sink "dai-copier.SSP.NoCodec-0.playback"
}
{
source "dai-copier.SSP.NoCodec-2.capture"
sink "host-copier.2.capture"
}
{
source "crossover.1.1"
sink "dai-copier.SSP.NoCodec-2.playback"
}
]