On Tue, Apr 21, 2015 at 01:33:51PM +0100, Richard Fitzgerald wrote: > + switch (arizona->type) { > + case WM8998: > + case WM1814: > + /* Some bits are shifted on WM8998, > + * rearrange to match the standard bit layout > + */ > + val[0] = ((val[0] & 0x60e0) >> 1) | > + ((val[0] & 0x1e00) >> 2) | > + (val[0] & 0x000f); > + break; Are you sure this approach is going to scale (and avoid confusion)?