Message ID | 1435758275-4047-2-git-send-email-liam.r.girdwood@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
At Wed, 1 Jul 2015 14:44:24 +0100, Liam Girdwood wrote: > > Signed-off-by: Liam Girdwood <liam.r.girdwood@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 >
On Wed, 2015-07-01 at 17:47 +0200, Takashi Iwai wrote: > At Wed, 1 Jul 2015 14:44:24 +0100, > Liam Girdwood wrote: > > > > Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> > > It's a kind of example, so maybe better to put at the end of the > series? I did originally have it at the end, but moved it to show the schema early for anyone reviewing the parser code. I'll stick it back for v3. Liam
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" + ] +}
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> --- 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