On Wed, Aug 13, 2014 at 12:08:44PM +0100, Charles Keepax wrote:
On Wed, Aug 13, 2014 at 11:47:20AM +0100, Nikesh Oswal wrote:
case 2: dcs_reg = WM8994_DC_SERVO_4E; break;
- case 1:
dcs_reg = WM8994_DC_SERVO_READBACK;
default: dcs_reg = WM8993_DC_SERVO_3; break;break;
This doesn't look right, firstly if it is the same register for all versions then surely we should change the code that sets dcs_readback_mode rather than setting that to different values but treating them the same. Although obviously if nothing still uses this case we could remove it as well.
Also I think the situation is more complex for example on version 4.4 of the datasheet for wm8994 the WR_VAL fields appear to be in register 59h. Which is not consistent with this.
There was a change in the DC servo between revisions of the WM8994 (at revision E from the look of the code). This isn't documented in the datasheets as they only document current silicon.