diff options
author | Charles Keepax <ckeepax@opensource.wolfsonmicro.com> | 2014-01-09 06:53:54 -0500 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2014-01-21 03:29:02 -0500 |
commit | 02915661dbb91b25b621ab3f387ab55311bded7f (patch) | |
tree | 0300ad36a7056e46d7c29300ac77552e06d0d121 | |
parent | 76a0775d46da052f123b8598a3dfc3b330b8de4f (diff) |
mfd: wm5110: Add register patch for rev D chip
Evaluation of revision D of WM5110 suggests updates to the register
patch for optimal performance. For the sake of clarity rev C of the chip
does not require a register patch.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
-rw-r--r-- | drivers/mfd/wm5110-tables.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/drivers/mfd/wm5110-tables.c b/drivers/mfd/wm5110-tables.c index 8dc49ec3b246..24ec464379e4 100644 --- a/drivers/mfd/wm5110-tables.c +++ b/drivers/mfd/wm5110-tables.c | |||
@@ -224,6 +224,31 @@ static const struct reg_default wm5110_revb_patch[] = { | |||
224 | { 0x80, 0x0 }, | 224 | { 0x80, 0x0 }, |
225 | }; | 225 | }; |
226 | 226 | ||
227 | static const struct reg_default wm5110_revd_patch[] = { | ||
228 | { 0x80, 0x3 }, | ||
229 | { 0x80, 0x3 }, | ||
230 | { 0x393, 0x27 }, | ||
231 | { 0x394, 0x27 }, | ||
232 | { 0x395, 0x27 }, | ||
233 | { 0x396, 0x27 }, | ||
234 | { 0x397, 0x27 }, | ||
235 | { 0x398, 0x26 }, | ||
236 | { 0x221, 0x90 }, | ||
237 | { 0x211, 0x8 }, | ||
238 | { 0x36c, 0x1fb }, | ||
239 | { 0x26e, 0x64 }, | ||
240 | { 0x26f, 0xea }, | ||
241 | { 0x270, 0x1f16 }, | ||
242 | { 0x51b, 0x1 }, | ||
243 | { 0x55b, 0x1 }, | ||
244 | { 0x59b, 0x1 }, | ||
245 | { 0x4f0, 0x633 }, | ||
246 | { 0x441, 0xc059 }, | ||
247 | { 0x209, 0x27 }, | ||
248 | { 0x80, 0x0 }, | ||
249 | { 0x80, 0x0 }, | ||
250 | }; | ||
251 | |||
227 | /* We use a function so we can use ARRAY_SIZE() */ | 252 | /* We use a function so we can use ARRAY_SIZE() */ |
228 | int wm5110_patch(struct arizona *arizona) | 253 | int wm5110_patch(struct arizona *arizona) |
229 | { | 254 | { |
@@ -236,7 +261,10 @@ int wm5110_patch(struct arizona *arizona) | |||
236 | return regmap_register_patch(arizona->regmap, | 261 | return regmap_register_patch(arizona->regmap, |
237 | wm5110_revb_patch, | 262 | wm5110_revb_patch, |
238 | ARRAY_SIZE(wm5110_revb_patch)); | 263 | ARRAY_SIZE(wm5110_revb_patch)); |
239 | 264 | case 3: | |
265 | return regmap_register_patch(arizona->regmap, | ||
266 | wm5110_revd_patch, | ||
267 | ARRAY_SIZE(wm5110_revd_patch)); | ||
240 | default: | 268 | default: |
241 | return 0; | 269 | return 0; |
242 | } | 270 | } |