[alsa-devel] [PATCH v2 02/13] conf: topology: Add topology file for broadwell audio DSP

Takashi Iwai tiwai at suse.de
Wed Jul 1 17:47:20 CEST 2015


At Wed,  1 Jul 2015 14:44:24 +0100,
Liam Girdwood wrote:
> 
> Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>

It's a kind of example, so maybe better to put at the end of the
series?


Takashi

> ---
>  src/conf/Makefile.am                       |   2 +-
>  src/conf/topology/Makefile.am              |   1 +
>  src/conf/topology/broadwell/Makefile.am    |   4 +
>  src/conf/topology/broadwell/broadwell.conf | 375 +++++++++++++++++++++++++++++
>  4 files changed, 381 insertions(+), 1 deletion(-)
>  create mode 100644 src/conf/topology/Makefile.am
>  create mode 100644 src/conf/topology/broadwell/Makefile.am
>  create mode 100644 src/conf/topology/broadwell/broadwell.conf
> 
> diff --git a/src/conf/Makefile.am b/src/conf/Makefile.am
> index 948d5a1..a04f73f 100644
> --- a/src/conf/Makefile.am
> +++ b/src/conf/Makefile.am
> @@ -1,4 +1,4 @@
> -SUBDIRS=cards pcm alsa.conf.d ucm
> +SUBDIRS=cards pcm alsa.conf.d ucm topology
>  
>  cfg_files = alsa.conf
>  if BUILD_ALISP
> diff --git a/src/conf/topology/Makefile.am b/src/conf/topology/Makefile.am
> new file mode 100644
> index 0000000..f56a96c
> --- /dev/null
> +++ b/src/conf/topology/Makefile.am
> @@ -0,0 +1 @@
> +SUBDIRS=broadwell
> diff --git a/src/conf/topology/broadwell/Makefile.am b/src/conf/topology/broadwell/Makefile.am
> new file mode 100644
> index 0000000..35d1e83
> --- /dev/null
> +++ b/src/conf/topology/broadwell/Makefile.am
> @@ -0,0 +1,4 @@
> +alsaconfigdir = @ALSA_CONFIG_DIR@
> +topologydir = $(alsaconfigdir)/topology/broadwell
> +topology_DATA = broadwell.conf
> +EXTRA_DIST = $(topology_DATA)
> diff --git a/src/conf/topology/broadwell/broadwell.conf b/src/conf/topology/broadwell/broadwell.conf
> new file mode 100644
> index 0000000..05b3889
> --- /dev/null
> +++ b/src/conf/topology/broadwell/broadwell.conf
> @@ -0,0 +1,375 @@
> +# Dynamic Firmware Configuration for Broadwell
> +
> +# TLV
> +SectionTLV."hsw_vol_tlv" {
> +	Comment "TLV used by both global and stream volumes"
> +
> +	scale {
> +		min "-9000"
> +		step "300"
> +		mute "1"
> +	}
> +}
> +
> +# Controls
> +SectionControlMixer."Master Playback Volume" {
> +	Comment "Global DSP volume"
> +
> +	# control belongs to this index group
> +	index "1"
> +
> +	# Channel register and shift for Front Left/Right
> +	channel."FL" {
> +		reg "0"
> +		shift "0"
> +	}
> +	channel."FR" {
> +		reg "0"
> +		shift "8"
> +	}
> +
> +	# max control value and whether value is inverted
> +	max "31"
> +	invert "false"
> +
> +	# control uses bespoke driver get/put/info ID 0
> +	ops."ctl" {
> +		info "volsw"
> +		get "256"
> +		put "256"
> +	}
> +
> +	# uses TLV data above
> +	tlv "hsw_vol_tlv"
> +}
> +
> +SectionControlMixer."Media0 Playback Volume" {
> +	Comment "Offload 0 volume"
> +
> +	# control belongs to this index group
> +	index "1"
> +
> +	# Channel register and shift for Front Left/Right
> +	channel."FL" {
> +		reg "1"
> +		shift "0"
> +	}
> +	channel."FR" {
> +		reg "1"
> +		shift "8"
> +	}
> +
> +	# max control value and whether value is inverted
> +	max "31"
> +	invert "false"
> +
> +	# control uses bespoke driver get/put/info ID 0
> +	ops."ctl" {
> +		info "volsw"
> +		get "257"
> +		put "257"
> +	}
> +
> +	# uses TLV data above
> +	tlv "hsw_vol_tlv"
> +}
> +
> +SectionControlMixer."Media1 Playback Volume" {
> +	Comment "Offload 1 volume"
> +
> +	# control belongs to this index group
> +	index "1"
> +
> +	# Channel register and shift for Front Left/Right
> +	channel."FL" {
> +		reg "2"
> +		shift "0"
> +	}
> +	channel."FR" {
> +		reg "2"
> +		shift "8"
> +	}
> +
> +	# max control value and whether value is inverted
> +	max "31"
> +	invert "false"
> +
> +	# control uses bespoke driver get/put/info ID 0
> +	ops."ctl" {
> +		info "volsw"
> +		get "257"
> +		put "257"
> +	}
> +
> +	# uses TLV data above
> +	tlv "hsw_vol_tlv"
> +}
> +
> +SectionControlMixer."Mic Capture Volume" {
> +	Comment "Mic Capture volume"
> +
> +	# control belongs to this index group
> +	index "1"
> +
> +	# Channel register and shift for Front Left/Right
> +	channel."FL" {
> +		reg "0"
> +		shift "0"
> +	}
> +	channel."FR" {
> +		reg "0"
> +		shift "8"
> +	}
> +
> +	# max control value and whether value is inverted
> +	max "31"
> +	invert "false"
> +
> +	# control uses bespoke driver get/put/info ID 0
> +	ops."ctl" {
> +		info "volsw"
> +		get "257"
> +		put "257"
> +	}
> +
> +	# uses TLV data above
> +	tlv "hsw_vol_tlv"
> +}
> +
> +SectionWidget."SSP0 CODEC IN" {
> +
> +	index "1"
> +	type "aif_in"
> +	no_pm "true"
> +	shift "0"
> +	invert "0"
> +}
> +
> +SectionWidget."SSP0 CODEC OUT" {
> +
> +	index "1"
> +	type "aif_out"
> +	no_pm "true"
> +	shift "0"
> +	invert "0"
> +}
> +
> +SectionWidget."SSP1 BT IN" {
> +
> +	index "1"
> +	type "aif_in"
> +	no_pm "true"
> +	shift "0"
> +	invert "0"
> +}
> +
> +SectionWidget."SSP1 BT OUT" {
> +
> +	index "1"
> +	type "aif_out"
> +	no_pm "true"
> +	shift "0"
> +	invert "0"
> +}
> +
> +SectionWidget."Playback VMixer" {
> +
> +	index "1"
> +	type "mixer"
> +	no_pm "true"
> +	shift "0"
> +	invert "0"
> +}
> +
> +# PCM Configurations supported by FW
> +SectionPCMConfig."PCM 48k Stereo 24bit" {
> +
> +	config."playback" {
> +		format "S24_LE"
> +		rate "48000"
> +		channels "2"
> +		tdm_slot "0xf"
> +	}
> +
> +	config."capture" {
> +		format "S24_LE"
> +		rate "48000"
> +		channels "2"
> +		tdm_slot "0xf"
> +	}
> +}
> +
> +SectionPCMConfig."PCM 48k Stereo 16bit" {
> +
> +	config."playback" {
> +		format "S16_LE"
> +		rate "48000"
> +		channels "2"
> +		tdm_slot "0xf"
> +	}
> +
> +	config."capture" {
> +		format "S16_LE"
> +		rate "48000"
> +		channels "2"
> +		tdm_slot "0xf"
> +	}
> +}
> +
> +SectionPCMConfig."PCM 48k 2P/4C 16bit" {
> +
> +	config."playback" {
> +		format "S16_LE"
> +		rate "48000"
> +		channels "2"
> +		tdm_slot "0xf"
> +	}
> +
> +	config."capture" {
> +		format "S16_LE"
> +		rate "48000"
> +		channels "4"
> +		tdm_slot "0xf"
> +	}
> +}
> +
> +# PCM capabilities supported by FW
> +SectionPCMCapabilities."System Playback" {
> +
> +	formats "S24_LE,S16_LE"
> +	rate_min "48000"
> +	rate_max "48000"
> +	channels_min "2"
> +	channels_max "2"
> +}
> +
> +SectionPCMCapabilities."Analog Capture" {
> +
> +	formats "S24_LE,S16_LE"
> +	rate_min "48000"
> +	rate_max "48000"
> +	channels_min "2"
> +	channels_max "4"
> +}
> +
> +SectionPCMCapabilities."Loopback Capture" {
> +
> +	formats "S24_LE,S16_LE"
> +	rate_min "48000"
> +	rate_max "48000"
> +	channels_min "2"
> +	channels_max "2"
> +}
> +
> +SectionPCMCapabilities."Offload0 Playback" {
> +	formats "S24_LE,S16_LE"
> +	rate_min "8000"
> +	rate_max "192000"
> +	channels_min "2"
> +	channels_max "2"
> +}
> +
> +SectionPCMCapabilities."Offload1 Playback" {
> +	formats "S24_LE,S16_LE"
> +	rate_min "8000"
> +	rate_max "48000"
> +	channels_min "2"
> +	channels_max "2"
> +}
> +
> +# PCM devices exported by Firmware
> +SectionPCM."System Pin" {
> +
> +	index "1"
> +
> +	# used for binding to the PCM
> +	ID "0"
> +
> +	pcm."playback" {
> +
> +		capabilities "System Playback"
> +
> +		configs [
> +			"PCM 48k Stereo 24bit"
> +			"PCM 48k Stereo 16bit"
> +		]
> +	}
> +
> +	pcm."capture" {
> +
> +		capabilities "Analog Capture"
> +
> +		configs [
> +			"PCM 48k Stereo 24bit"
> +			"PCM 48k Stereo 16bit"
> +			"PCM 48k 2P/4C 16bit"
> +		]
> +	}
> +}
> +
> +SectionPCM."Offload0 Pin" {
> +
> +	index "1"
> +
> +	# used for binding to the PCM
> +	ID "1"
> +
> +	pcm."playback" {
> +
> +		capabilities "Offload0 Playback"
> +
> +		configs [
> +			"PCM 48k Stereo 24bit"
> +			"PCM 48k Stereo 16bit"
> +		]
> +	}
> +}
> +
> +SectionPCM."Offload1 Pin" {
> +
> +	index "1"
> +
> +	# used for binding to the PCM
> +	ID "2"
> +
> +	pcm."playback" {
> +
> +		capabilities "Offload1 Playback"
> +
> +		configs [
> +			"PCM 48k Stereo 24bit"
> +			"PCM 48k Stereo 16bit"
> +		]
> +	}
> +}
> +
> +SectionPCM."Loopback Pin" {
> +
> +	index "1"
> +
> +	# used for binding to the PCM
> +	ID "3"
> +
> +	pcm."capture" {
> +
> +		capabilities "Loopback Capture"
> +
> +		configs [
> +			"PCM 48k Stereo 24bit"
> +			"PCM 48k Stereo 16bit"
> +		]
> +	}
> +}
> +
> +SectionGraph."dsp" {
> +	index "1"
> +
> +	lines [
> +		"Playback VMixer, , System Playback"
> +		"Playback VMixer, , Offload0 Playback"
> +		"Playback VMixer, , Offload1 Playback"
> +		"SSP0 CODEC OUT, , Playback VMixer"
> +		"Loopback Capture, , Playback VMixer"
> +		"Analog Capture, , SSP0 CODEC IN"
> +	]
> +}
> -- 
> 2.1.4
> 


More information about the Alsa-devel mailing list