[alsa-devel] Question about write asoc driver
Hi guys,
I am write a codec driver under asoc frame work for ad1980 by study the sample driver wm9712.c. I find there are some control item likes "out3 switch" to control 16h:15. There are also some widget item likes "out 3 PGA" to control 24:5. How can I determine a register bit should be a control item or widget item? Thanks ahead.
-Roy
On Mon, 2007-07-09 at 16:50 +0800, Roy Huang wrote:
Hi guys,
I am write a codec driver under asoc frame work for ad1980 by study the sample driver wm9712.c. I find there are some control item likes "out3 switch" to control 16h:15. There are also some widget item likes "out 3 PGA" to control 24:5. How can I determine a register bit should be a control item or widget item? Thanks ahead.
A widget describes a power block within the audio subsystem (this includes the codec and machine). Widgets usually have several kcontrols that control their power state and map to hardware audio components like mixers, amps, DAC'c, ADC's, etc (anything that draws power). A widget is "on" when there is a valid signal path routing from it's source to sink.
Widgets are entirely optional under ASoC and are only used by DAPM when making power management decisions. I'd recommend adding them in only for low power codecs and after you have audio working in the codec driver (easier to debug).
A general rule for deciding whether something is a widget :-
* Is a widget if it control audio signal routing (e.g. mixer, mux, jack) * Is a codec/machine audio sink or source (pin, DAC, ADC)
HTH
Liam
participants (2)
-
Liam Girdwood
-
Roy Huang