diff --git a/tools/topology/topology2/cavs-nocodec-bt.conf b/tools/topology/topology2/cavs-nocodec-bt.conf index c4cb933e95f7..f40f3b387b0a 100644 --- a/tools/topology/topology2/cavs-nocodec-bt.conf +++ b/tools/topology/topology2/cavs-nocodec-bt.conf @@ -3,6 +3,7 @@ + @@ -20,7 +21,7 @@ - + @@ -81,7 +82,6 @@ Object.Dai.SSP [ Object.Base.hw_config.1 { name "SSP0" id 0 - mclk_freq $MCLK bclk_freq 3072000 tdm_slot_width 32 } @@ -99,7 +99,6 @@ Object.Dai.SSP [ Object.Base.hw_config.1 { name "SSP1" id 0 - mclk_freq $MCLK bclk_freq 3072000 tdm_slot_width 32 } diff --git a/tools/topology/topology2/cavs-nocodec.conf b/tools/topology/topology2/cavs-nocodec.conf index 7eb3ca8808c3..f215e20e16e5 100644 --- a/tools/topology/topology2/cavs-nocodec.conf +++ b/tools/topology/topology2/cavs-nocodec.conf @@ -3,6 +3,7 @@ + @@ -30,7 +31,7 @@ - + @@ -111,7 +112,6 @@ Object.Dai.SSP [ Object.Base.hw_config.1 { name "SSP0" id 0 - mclk_freq $MCLK bclk_freq 3072000 tdm_slot_width 32 } @@ -129,7 +129,6 @@ Object.Dai.SSP [ Object.Base.hw_config.1 { name "SSP2" id 0 - mclk_freq $MCLK bclk_freq 3072000 tdm_slot_width 32 } @@ -693,7 +692,6 @@ IncludeByKey.SSP1_ENABLED { Object.Base.hw_config.1 { name "SSP1" id 0 - mclk_freq $MCLK bclk_freq 3072000 tdm_slot_width 32 } diff --git a/tools/topology/topology2/cavs-rt5682.conf b/tools/topology/topology2/cavs-rt5682.conf index cc60b84ab408..81bc3140a548 100644 --- a/tools/topology/topology2/cavs-rt5682.conf +++ b/tools/topology/topology2/cavs-rt5682.conf @@ -3,6 +3,7 @@ + @@ -27,7 +28,7 @@ - + @@ -132,7 +133,6 @@ Object.Dai.SSP [ Object.Base.hw_config.1 { name $HEADSET_HW_CONFIG_NAME id 0 - mclk_freq $MCLK bclk_freq 3072000 tdm_slot_width 32 } @@ -157,7 +157,6 @@ Object.Dai.SSP [ Object.Base.hw_config.1 { name $SPEAKER_HW_CONFIG_NAME id 0 - mclk_freq $MCLK bclk_freq 3072000 tdm_slot_width 32 } diff --git a/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf b/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf index 50a9f9b15d6f..cc2af063ffd3 100644 --- a/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf +++ b/tools/topology/topology2/cavs-sdw-src-gain-mixin.conf @@ -4,6 +4,7 @@ + @@ -17,7 +18,7 @@ - + diff --git a/tools/topology/topology2/cavs-sdw.conf b/tools/topology/topology2/cavs-sdw.conf index 8b4e8912602d..a7af19d90edc 100644 --- a/tools/topology/topology2/cavs-sdw.conf +++ b/tools/topology/topology2/cavs-sdw.conf @@ -27,7 +27,7 @@ - + diff --git a/tools/topology/topology2/include/dais/hw_config_simple.conf b/tools/topology/topology2/include/dais/hw_config_simple.conf new file mode 100644 index 000000000000..e87daa36ed52 --- /dev/null +++ b/tools/topology/topology2/include/dais/hw_config_simple.conf @@ -0,0 +1,35 @@ +# Simple hardware config class definition for HDA/SDW/DMIC type DAIs. All attributes defined herein +# are namespaced by alsatplg to "Object.Base.hw_config.1.attribute_name" +# +# Object.Base.hw_config.1 { +# id 0 +# name "HDA0" +# } +# +# where 1 is the unique instance ID for the hw_config object within the same alsaconf +# node. + +Class.Base."hw_config" { + # + # Argument used to construct hw config (hw config ID) + # + DefineAttribute."id" {} + DefineAttribute."instance" {} + + DefineAttribute."name" { + type "string" + } + + attributes { + !constructor [ + "id" + ] + !mandatory [ + "name" + ] + # + # hw_config objects instantiated within the same alsaconf node must have unique + # 'instance' attribute + unique "instance" + } +} diff --git a/tools/topology/topology2/platform/intel/bt-ssp-config-lbm.conf b/tools/topology/topology2/platform/intel/bt-ssp-config-lbm.conf index 39f4a143c83f..afbc6c2ba267 100644 --- a/tools/topology/topology2/platform/intel/bt-ssp-config-lbm.conf +++ b/tools/topology/topology2/platform/intel/bt-ssp-config-lbm.conf @@ -22,6 +22,9 @@ Object.Dai.SSP [ tdm_slots 1 tx_slots 1 rx_slots 1 + Object.Base.link_config.1 { + clock_source 0 + } } Object.Base.hw_config.2 { id 1 @@ -37,6 +40,9 @@ Object.Dai.SSP [ tdm_slots 1 tx_slots 1 rx_slots 1 + Object.Base.link_config.1 { + clock_source 0 + } } Object.Base.hw_config.3 { id 2 @@ -51,6 +57,9 @@ Object.Dai.SSP [ tdm_slots 2 tx_slots 3 rx_slots 3 + Object.Base.link_config.1 { + clock_source 0 + } } } ] diff --git a/tools/topology/topology2/platform/intel/bt-ssp-config.conf b/tools/topology/topology2/platform/intel/bt-ssp-config.conf index 11a4919a9a4b..edce4b8d1399 100644 --- a/tools/topology/topology2/platform/intel/bt-ssp-config.conf +++ b/tools/topology/topology2/platform/intel/bt-ssp-config.conf @@ -21,6 +21,9 @@ Object.Dai.SSP [ tdm_slots 1 tx_slots 1 rx_slots 1 + Object.Base.link_config.1 { + clock_source 0 + } } Object.Base.hw_config.2 { id 1 @@ -36,6 +39,9 @@ Object.Dai.SSP [ tdm_slots 1 tx_slots 1 rx_slots 1 + Object.Base.link_config.1 { + clock_source 0 + } } Object.Base.hw_config.3 { id 2 @@ -50,6 +56,9 @@ Object.Dai.SSP [ tdm_slots 2 tx_slots 3 rx_slots 0 + Object.Base.link_config.1 { + clock_source 0 + } } } ] diff --git a/tools/topology/topology2/include/dais/hw_config.conf b/tools/topology/topology2/platform/intel/hw_config_cardinal_clk.conf similarity index 60% rename from tools/topology/topology2/include/dais/hw_config.conf rename to tools/topology/topology2/platform/intel/hw_config_cardinal_clk.conf index 96cbc7cb5ce9..463e98f97d95 100644 --- a/tools/topology/topology2/include/dais/hw_config.conf +++ b/tools/topology/topology2/platform/intel/hw_config_cardinal_clk.conf @@ -1,15 +1,16 @@ -# Hardware config class definition DAIs. All attributes defined herein +# Hardware config class definition. All attributes defined herein # are namespaced by alsatplg to "Object.Base.hw_config.NAME.attribute_name" # -# Object.Base.hw_config."NAME" { +# Object.Base.hw_config.1 { # id 0 -# mclk_freq 24000000 -# bclk_freq 4800000 -# tdm_slot_width 25 +# bclk_freq 3072000 +# tdm_slot_width 32 # } # -# where NAME is the unique instance name for the hw_config object -# within the same alsaconf node. +# where 1 is the unique instance ID for the hw_config object within the same alsaconf +# node. + + Class.Base."hw_config" { # @@ -44,7 +45,21 @@ Class.Base."hw_config" { type "string" } - DefineAttribute."bclk_freq" {} + DefineAttribute."bclk_freq" { + constraints { + # Allowed values of bclk derived from mclk_freq of 24.576MHz + !valid_values [ + "12288000" + "6144000" + "3072000" + "1536000" + "768000" + "384000" + "256000" + "128000" + ] + } + } DefineAttribute."fsync" { type "string" @@ -68,15 +83,20 @@ Class.Base."hw_config" { "name" ] # - # hw_cfg objects instantiated within the same alsaconf node must have unique + # hw_config objects instantiated within the same alsaconf node must have unique # 'instance' attribute - # unique "instance" } + Object.Base.link_config.1 { + clock_source 1 + } + #TODO: Add link flags format "I2S" + # TODO: Make this immutable + mclk_freq 24576000 mclk "codec_mclk_in" bclk "codec_consumer" fsync "codec_consumer" diff --git a/tools/topology/topology2/include/dais/intel/intel_ssp_aux_config.conf b/tools/topology/topology2/platform/intel/ssp_aux_config.conf similarity index 100% rename from tools/topology/topology2/include/dais/intel/intel_ssp_aux_config.conf rename to tools/topology/topology2/platform/intel/ssp_aux_config.conf diff --git a/tools/topology/topology2/sof-hda-generic.conf b/tools/topology/topology2/sof-hda-generic.conf index 074510e61ec1..e253f3ada38e 100644 --- a/tools/topology/topology2/sof-hda-generic.conf +++ b/tools/topology/topology2/sof-hda-generic.conf @@ -29,7 +29,7 @@ - +