topology2: add auxiliary data classes for ssp

Auxiliary data can be added at the end of ssp data blob to enable for
example early clocks for certain platform. Add intel_ssp_aux_config.conf
that includes all possible aux data classes. These can be used inside
ssp hw_configs and will be embedded as tlv data after basic data blob.

Example of using mn_config class inside hw_config:

Object.Base.hw_config."SSP0_0" {
	id              0
	mclk_freq       38400000
	bclk_freq       256000
	tdm_slot_width  16
	format          "DSP_A"
	bclk            "codec_provider"
	fsync           "codec_provider"
	fsync_freq      16000

	Object.Base.mn_config."MN_0" {
		m_div   100
		n_div   200
	}
}

Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
This commit is contained in:
Jaska Uimonen 2022-12-13 20:48:46 +02:00 committed by Liam Girdwood
parent 3f26bf172d
commit 7be11aaf28
1 changed files with 280 additions and 0 deletions

View File

@ -0,0 +1,280 @@
Class.Base."mn_config" {
DefineAttribute."id" {}
DefineAttribute."name" {
type "string"
}
#
# Value of m in m/n divider
#
DefineAttribute."m_div" {}
#
# Value of n in m/n divider
#
DefineAttribute."n_div" {}
attributes {
!constructor [
"id"
]
unique "name"
}
}
Class.Base."clk_config" {
DefineAttribute."id" {}
DefineAttribute."name" {
type "string"
}
#
# Value of clock warm up delay in ms
#
DefineAttribute."clock_warm_up" {}
#
# Value set to 1 -> target is MCLK, otherwise SCLK
#
DefineAttribute."mclk" {}
#
# Value set to 1 -> clock starts immediately
#
DefineAttribute."warm_up_ovr" {}
#
# Value of clock stopped after the interface, in ms
#
DefineAttribute."clock_stop_delay" {}
#
# Value set to 1 means clock should be kept running
#
DefineAttribute."keep_running" {}
#
# Value set to 1 -> clock stops immediately
#
DefineAttribute."clock_stop_ovr" {}
attributes {
!constructor [
"id"
]
unique "name"
}
}
Class.Base."tr_start_config" {
DefineAttribute."id" {}
DefineAttribute."name" {
type "string"
}
#
# Values for audio format for "not running state" 0 value sample generation
#
DefineAttribute."sampling_frequency" {}
DefineAttribute."bit_depth" {}
DefineAttribute."channel_map" {}
DefineAttribute."channel_config" {}
DefineAttribute."interleaving_style" {}
DefineAttribute."number_of_channels" {}
DefineAttribute."valid_bit_depth" {}
DefineAttribute."sample_type" {}
attributes {
!constructor [
"id"
]
unique "name"
}
}
Class.Base."tr_stop_config" {
DefineAttribute."id" {}
DefineAttribute."name" {
type "string"
}
#
# Values for audio format for "not running state" 0 value sample generation
#
DefineAttribute."sampling_frequency" {}
DefineAttribute."bit_depth" {}
DefineAttribute."channel_map" {}
DefineAttribute."channel_config" {}
DefineAttribute."interleaving_style" {}
DefineAttribute."number_of_channels" {}
DefineAttribute."valid_bit_depth" {}
DefineAttribute."sample_type" {}
attributes {
!constructor [
"id"
]
unique "name"
}
}
Class.Base."run_config" {
DefineAttribute."id" {}
DefineAttribute."name" {
type "string"
}
#
# Value set to 1 -> transfer/production of 0 samples will
# continue in consumer mode even without clock
#
DefineAttribute."always_run" {}
attributes {
!constructor [
"id"
]
unique "name"
}
}
Class.Base."sync_config" {
DefineAttribute."id" {}
DefineAttribute."name" {
type "string"
}
#
# Value in Hz for global sync denominator for all linked items
#
DefineAttribute."sync_denominator" {}
#
# Follows variable amount of synced node_config items, see above
#
attributes {
!constructor [
"id"
]
unique "name"
}
}
Class.Base."node_config" {
DefineAttribute."id" {}
DefineAttribute."name" {
type "string"
}
#
# Gateway id of the to be synced node
#
DefineAttribute."node_id" {}
#
# Sample rate of the to be synced node
#
DefineAttribute."sampling_rate" {}
attributes {
!constructor [
"id"
]
unique "name"
}
}
Class.Base."ext_config" {
DefineAttribute."id" {}
DefineAttribute."name" {
type "string"
}
#
# Boolean values for overriding default policies for
# enabling/disabling MCLK
#
DefineAttribute."mclk_policy_override" {}
DefineAttribute."mclk_always_running" {}
DefineAttribute."mclk_starts_on_gtw_init" {}
DefineAttribute."mclk_starts_on_run" {}
DefineAttribute."mclk_starts_on_pause" {}
DefineAttribute."mclk_stops_on_pause" {}
DefineAttribute."mclk_stops_on_reset" {}
#
# Boolean values for overriding default policies for
# enabling/disabling BCLK
#
DefineAttribute."bclk_policy_override" {}
DefineAttribute."bclk_always_running" {}
DefineAttribute."bclk_starts_on_gtw_init" {}
DefineAttribute."bclk_starts_on_run" {}
DefineAttribute."bclk_starts_on_pause" {}
DefineAttribute."bclk_stops_on_pause" {}
DefineAttribute."bclk_stops_on_reset" {}
#
# Boolean values for overriding default policies for
# enabling/disabling SYNC
#
DefineAttribute."sync_policy_override" {}
DefineAttribute."sync_always_running" {}
DefineAttribute."sync_starts_on_gtw_init" {}
DefineAttribute."sync_starts_on_run" {}
DefineAttribute."sync_starts_on_pause" {}
DefineAttribute."sync_stops_on_pause" {}
DefineAttribute."sync_stops_on_reset" {}
attributes {
!constructor [
"id"
]
unique "name"
}
}
Class.Base."link_config" {
DefineAttribute."id" {}
DefineAttribute."name" {
type "string"
}
#
# Value for provider link clock source:
#
# XTAL 0
# CARDINAL 1
# PLL 2
# MCLK 3
# WOV_CRO 4
#
DefineAttribute."clock_source" {}
attributes {
!constructor [
"id"
]
unique "name"
}
}