Lines Matching +full:audio +full:- +full:widgets
2 Dynamic Audio Power Management for Portable Devices
8 Dynamic Audio Power Management (DAPM) is designed to allow portable
9 Linux devices to use the minimum amount of power within the audio
11 management frameworks and, as such, can easily co-exist with them.
16 switching decisions based upon any audio stream (capture/playback)
17 activity and audio mixer settings within the device.
19 DAPM is based on two basic elements, called widgets and routes:
21 * a **widget** is every part of the audio hardware that can be enabled by
23 * a **route** is an interconnection between widgets that exists when sound
27 audio routing graph. This graph is specific to each sound card and spans
28 the whole sound card, so some DAPM routes connect two widgets belonging to
32 The graph for the STM32MP1-DK1 sound card is shown in picture:
34 .. kernel-figure:: dapm-graph.svg
39 `tools/sound/dapm-graph` utility.
47 VREF, VMID (core codec and audio power)
60 audio subsystem signal paths
72 DAPM Widgets
75 Audio DAPM widgets fall into a number of types:
102 Power or clock supply widget used by other widgets.
104 External regulator that supplies power to audio components.
106 External clock that supplies clock to audio components.
108 Audio Interface Input (with TDM slot mask).
110 Audio Interface Output (with TDM slot mask).
114 Digital Audio Interface Input.
116 Digital Audio Interface Output.
124 Inter widget audio data buffer within a DSP.
129 Widget that performs an audio processing effect.
135 Widget that encodes audio data from one format (usually PCM) to another
138 Widget that decodes audio data from a compressed format to an
142 (Widgets are defined in include/sound/soc-dapm.h)
144 Widgets can be added to the sound card by any of the component driver types.
145 There are convenience macros defined in soc-dapm.h that can be used to quickly
146 build a list of widgets of the codecs and machines DAPM widgets.
148 Most widgets have a name, register, shift and invert. Some widgets have extra
152 Stream Domain Widgets
153 ---------------------
155 Stream Widgets relate to the stream power domain and only consist of ADCs
159 Stream widgets have the following format:
168 e.g. stream widgets for HiFi playback and capture
174 e.g. stream widgets for AIF
181 Path Domain Widgets
182 -------------------
184 Path domain widgets have a ability to control or affect the audio signal or
185 audio paths within the audio subsystem. They have the following form:
210 Machine domain Widgets
211 ----------------------
213 Machine widgets are different from codec widgets in that they don't have a
215 machine audio component (non codec or DSP) that can be independently
237 -------------------
239 The codec bias power domain has no widgets and is handled by the codec DAPM
244 Virtual Widgets
245 ---------------
247 Sometimes widgets exist in the codec or machine audio graph that don't have any
249 a virtual widget - a widget with no control bits e.g.
259 In many cases the DAPM widgets are implemented statically in a ``static
293 In more complex cases the list of DAPM widgets and/or routes can be only
296 separate widgets and routes arrays implementing the case-specific features
304 Widgets are connected to each other within the codec, platform and machine by
305 audio paths (called interconnections). Each interconnection must be defined in
306 order to create a graph of all audio paths between widgets.
309 audio system), as it requires joining widgets together via their audio signal
320 name. We can now connect the destination widget (wrt audio signal) with its
321 source widgets. ::
334 When there is no path name connecting widgets (e.g. a direct connection) we
341 Finally, snd_soc_dapm_new_widgets() must be called after all widgets and
348 -------------------------------
350 directly connect the codec pins to machine level widgets.
363 Endpoint Widgets
365 An endpoint is a start or end point (widget) of an audio signal within the
382 Widgets needing to implement a more complex behaviour than what DAPM can do
404 See soc-dapm.h for all other widgets that support events.
408 -----------
410 The following event types are supported by event widgets::
417 #define SND_SOC_DAPM_PRE_REG 0x10 /* before audio path setup */
418 #define SND_SOC_DAPM_POST_REG 0x20 /* after audio path setup */