Can you possibly send me the output from i2cdump ? That might help figuring out what is going on.I tested the driver on 3.15 version of the kernel. Having looked in the git log of regmap.c and regmap-i2c.c, there has been some endianess-related patches going into the kernel in newer versions. Maybe that is the reason for me seeing this problem? I will try to look into that further.
I my test I only disabled following two lines of code
+ if (data->byte_swap)
+ regval = swab16(regval);