On Mon, May 25, 2009 at 08:47:31PM +0800, Leung Chi Tat wrote:
I'm right now studying the driver code for wm8980 codec (from the main trunk of linux-2.6-asoc) as it seems to be more close to wm8985. I can't find any code for triggering those volume update bits after modified those volume registers. But, the wm8980 datasheet states that we have to do so to make those volume updates properly. Is there some black magic in the code?
The normal approach for volume update bits is to set them when initialising the CODEC at startup - this is what the wm8990 driver is doing when it writes to the volume registers in wm8990_init(). This means that any further register writes which only change the volume field in the registers will also have the volume update bit set.