Lines Matching +full:output +full:- +full:power
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 such, can easily co-exist with the other PM systems.
14 all power switching is done within the ASoC core. No code changes or
15 recompiling are required for user space applications. DAPM makes power
19 DAPM spans the whole machine. It covers power control within the entire
20 audio subsystem, this includes internal codec power blocks and machine
21 level power systems.
23 There are 4 power domains within DAPM
26 VREF, VMID (core codec and audio power)
29 can be set at stream time if power is not needed for sidetone, etc.
50 All DAPM power switching decisions are made automatically by consulting an audio
53 internal codec components). All audio components that effect power are called
60 Audio DAPM widgets fall into a number of types:-
76 Output
77 A codec output pin
83 Line Input/Output (and optional Jack)
87 Power or clock supply widget used by other widgets.
89 External regulator that supplies power to audio components.
95 Audio Interface Output (with TDM slot mask).
101 Digital Audio Interface Output.
127 (Widgets are defined in include/sound/soc-dapm.h)
130 There are convenience macros defined in soc-dapm.h that can be used to quickly
138 ---------------------
140 Stream Widgets relate to the stream power domain and only consist of ADCs
144 Stream widgets have the following format:-
167 -------------------
170 audio paths within the audio subsystem. They have the following form:-
180 /* Output Mixer */
187 SND_SOC_DAPM_MIXER("Output Mixer", WM8731_PWR, 4, 1, wm8731_output_mixer_controls,
196 ----------------------
210 when the Mic is inserted:-::
222 -------------------
224 The codec bias power domain has no widgets and is handled by the codecs DAPM
230 ---------------
233 corresponding soft power control. In this case it is necessary to create
234 a virtual widget - a widget with no control bits e.g.
256 e.g., from the WM8731 output mixer (wm8731.c)
258 The WM8731 output mixer has 3 inputs (sources)
265 above) and is connected to the output mixer via its kcontrol name. We can now
269 /* output mixer */
270 {"Output Mixer", "Line Bypass Switch", "Line Input"},
271 {"Output Mixer", "HiFi Playback Switch", "DAC"},
272 {"Output Mixer", "Mic Sidetone Switch", "Mic Bias"},
274 So we have :-
278 * ``Output Mixer`` is connected to the ``DAC`` via the ``HiFi Playback Switch``.
283 Interconnections are created with a call to:-
295 -------------------------------
306 This allows the DAPM to power on and off pins that are connected (and in use)
322 order to save power. e.g. NC codecs pins will be switched OFF, unconnected
345 Please see soc-dapm.h for all other widgets that support events.
349 -----------
355 #define SND_SOC_DAPM_PRE_PMU 0x1 /* before widget power up */
356 #define SND_SOC_DAPM_POST_PMU 0x2 /* after widget power up */
357 #define SND_SOC_DAPM_PRE_PMD 0x4 /* before widget power down */
358 #define SND_SOC_DAPM_POST_PMD 0x8 /* after widget power down */